本ページではWindows subsystem linux (WSL)上でROSを導入する方法を紹介します.ここでは以下の環境を想定して説明します.使用するROSのディストリビューションに合わせてUbuntuのバージョンを変更してください.
- Windows 10
- WSL2: Ubuntu 18.04.5 LTS
- ROS Melodic
2022年6月11日追記
WSL2のUbuntu 20.04.4 LTS,ROS Noeticでも動作することを確認.
概要
- WSL2上にUbuntuをインストール
-
X11 forwardingの導入
- 【Windows側】 MobaXtermのインストール
- 【Ubuntu側】DISPLAY変数の設定
- ROSのインストール
- ROSの実行
WSL2上にUbuntuをインストール
WSL2を有効化しその上で動かすUbuntuをインストールします.WSL2の有効化は以下の記事で詳しく紹介されています.
ここでは,ROS Melodicを使うためMicrosoft StoreからUbuntu 18.04.5 LTSを検索してインストールします.Noeticなど別のディストリビューションを利用する場合,Ubuntuのバージョンも変更してください.
WSL上にUbuntu 18.04のインストールが完了したらUbuntuのターミナルを起動します.ユーザー名・パスワードを設定したのち,以下を実行しておきましょう.
$ sudo apt-get update
$ sudo apt-get upgrade
X11 forwardingの導入
RvizなどUbuntuの画面をWindows上で表示するための準備をします.ここではX11 forwardingを利用するため,Windows側でのMobaXtermの導入とUbuntu側でのDISPLAY変数の設定を紹介します.
【Windows側】 MobaXtermのインストール
WindowsのX server機能はVcXsrvやXmingが有名ですが,ここではMobaXtermを紹介します.X server機能に加えてWSLにインストールしたLinuxのターミナルを開くことができたりなかなか便利です.
上のページからインストールしてMobaXtermを起動すると,画面左側のタブ[Sessions]からターミナルを選べるのでWSLのUbuntu 18.04を開きます.
【Ubuntu側】DISPLAY変数の設定
MobaXtermで立ち上げたUbuntu 18.04で~/.bashrc
を開き以下を追記します.
export DISPLAY=`hostname`.mshome.net:0.0
export LIBGL_ALWAYS_INDIRECT=0
追記したら,source ~/.bashrc
で再読み込みします.
WSL2ではmshome.netをドメインにしたホストが割り振られており,`hostname`.mshome.net
でホスト名を設定可能です.
ROSのインストール
ROSのインストールは通常のUbuntuと同じように行います.今回はUbuntu 18.04のためROS Melodicをインストールします.インストールはROS Wikiをご参照ください.
ROSの実行
ROSが起動し,Ubuntuの画面がWindows上で見えることを確認します.まずはMobaXtermを開いて,Ubuntuのターミナル上で以下を実行します.
$ roscore
続いて,別のターミナルから以下を実行します.
$ rosrun turtlesim turtlesim_node
これで下のようにturtlesimの画面が確認できれば無事完了です.