ROSはWindows非対応なので、通常はUbuntuを別PCあるいは仮想PC環境に用意しないといけません。ただ、普段はWindows PCを使っているため、Ubuntuとのデータやり取りが面倒になるので、なんとかWindows上でROSを使うことが出来ないのかについて調べましたので、その方法についてご紹介します。具体的にはWindows上でLinux環境を扱うことのできるWSL2(Windows Subsystem for Linux 2)上でROSを使用する方法について説明をします。
まず、管理者権限でWindows PowerShellを起動して、WSL2をインストールします。下記コマンドを実行してインストールします。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
インストール環境後、PCを再起動します。
古いバージョンのWSLではなく、WSL2をデフォルトに設定するために下記コマンドを実行します。
wsl --set-default-version 2
Microsoft Storeを起動して、[検索]で「ubuntu」を検索します。検索結果から下図の通り「Ubuntu 18.04 LTS」を選択します。
「入手」をクリックしてUbuntu 18.04をインストールします。
Ubuntuにログインするためのユーザー名とパスワードを設定します。
これでWSL2 + Ubuntuのインストールは完了です。
エクスプローラからUbuntuのファイルシステムにアクセスするには、エクスプローラ上でアクセス先フォルダ名として「\\wsl$\Ubuntu-18.04」を指定します。この方法で、通常のWindowsファイルシステムと同様にUbuntuのファイルシステムにアクセスできるので、Windows-Linux間でのファイルやり取りを簡単に行うことができます。
次にROSをXサーバーアプリケーションとして実行するために、WSL2からGUI転送をするためのアプリをインストールします。 ここではVcXsrvというアプリを使います。https://sourceforge.net/projects/vcxsrv/ からダウンロードしてインストールします。
[Multiple windows]を選択します。
[Start no client]を選択します。
下記の通りオプションを設定します。
[Save configuration]で上記設定を保存します。次回起動時にはここで設定したファイルをダブルクリックすることで、同じ設定でVcXsrvを起動出来ます。
Xサーバーを転送する先のIPアドレスを設定するために下記でDISPLAY環境変数を設定します。
echo 'export DISPLAY=XXX.XXX.XXX.XXX:0.0' >> ~/.bashrc
XXX.XXX.XXX.XXXに使用しているPCのIPアドレスを入力します。例えば、192.168.0.2の場合は、
echo 'export DISPLAY=192.168.0.2:0.0' >> ~/.bashrc
とします。
下記コマンドを実行して~/.bashrcの変更を反映します。
source ~/.bashrc
余談ですが、実は私は10年くらい前にLPI(Linux Professional Institute) Level 3まで資格取得しています。ただ、普段はMicrosoft MVPとしてM系OSを愛用しているので、なかなかL系OSのコマンド、忘れてしまっていますね...
Xサーバー転送がちゃんと動作しているかを確認するために基本的なXサーバーアプリをインストールします。下記のコマンドを実行してください。
sudo apt update sudo apt install x11-apps
下記コマンドで電卓アプリがXサーバーで開くことを確認します。
xcalc
ここからROSをインストールしますが、その前に下記コマンドでOS環境を最新版に更新します。
sudo apt update sudo apt upgrade
ROSのパッケージ情報をWSLのソースリストに追加します。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
追加したパッケージリポジトリ用のキーを設定します。
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
新たに追加したROSのパッケージを有効なパッケージとするために下記コマンドを実行します。
sudo apt update
rqt, rviz, simulators, navigation, perceptionなどのパッケージを全てインストールします。
sudo apt install ros-melodic-desktop-full
ROSのsetup.bashをbashシェルを起動した際に毎回実行するために下記でbashrcを更新します。
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
更新を有効にします。
source ~/.bashrc
ROSの開発で必要なパッケージをインストールします。
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
ROS用のシステム依存をインストール、初期化します。
sudo apt install python-rosdep sudo rosdep init rosdep update
さあ、これでROSのインストールは完了です。いよいよRvizのXサーバー上での起動です。
roscore & rosrun rviz rviz
うまく行けば下記のようにRviz画面を見ることが出来るはずです!Windows上でこの画面を見ることが出来ると感動ですね。