やること
Windows10のWSL2にubuntu20.04を入れ、その上に**ROS2(foxy)**をインストールします。
さらにXserverを入れることでRVIZ2やgazeboも動くようにします。
すでに他のサイトで方法が丁寧に紹介されていますが、2021年9月現在の近道としてメモに残します。自分も成功できた方法が掲載されているサイトを閲覧すべき順に紹介します。
Dockerを使う場合
Dockerを使う場合は@Tiryohさんの記事が大変参考になります。手元でも動作確認ができました。すごい。
Dockerを使わない場合
今回はあえてDockerを使わず、Windows10がまっさらな状態からインストールする方法を試してみました。
WSLを入れる → GUIを使えるようにする → ROS2を入れる → ROS2アプリを入れる
といった手順で進めていきます。
必要なもの
- windows10のPC(今回の例では64bit版)
(自分用メモ)
自分用のメモですすみません。Mac用キーボードの設定です。
らいちのヒミツ基地さんのサイトを参考にそのまま実行します。
▼ コマンドキー+スペースでIMEの切り替えができるようにする
IMEの設定から「キーの割り当て」の各キーに好みの機能を与えるをオン。設定はデフォルトでOK。ほとんどMacと同じ操作感になります。
Mac用キーボードのテンキーが効かない場合は、再起動することでテンキーも使えるようになるようです。
(なぜここにこの内容を載せているかというと、USB使いたさにカーネルをいぢって失敗しWINDOWSの再インストールをしたりするからです。)
STEP1 :WSL2を導入する
AsTechLogさんの上記サイトを参考に以下の項目を実施します。
- 「システム要件の確認」
- 「WSL2をインストールする」
- 「Linuxディストリビューションのインストール」
ポイント:
-
Ubuntu 20.04 LTSをインストールしました。
-
カーネルのアップデートが必要なれどリンク先で該当の「wsl_update_x64.msi」が見つからないという場合は、以下の直リンクでDLできるかもしれません。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -
ubuntuを起動できたら、ubuntuのウィンドウのメニューバーを右クリックしてオプションを開き、「Ctrl+Shift+C/Vをコピー/貼り付けとして使用する」にチェックを入れておくと便利です。
STEP2 :Xserverを導入する
そのままではGUIに対応していないので、使えるようにします。
同じくAsTechLogさんの上記サイトを参考に以下の項目を実施します。
- 「Windows側にXサーバーをインストール」
- 「Ubuntu側にGUIアプリをインストール」
- 「GUIアプリの起動を試してみる」
ポイント:
ここまでできたらxeyesの表示ができることを確認します。
いったんPCを再起動し、改めてubuntuからxeyesが実行できるかを確認します。
STEP3 :ROS2を導入する
いよいよROS2を導入します。demura.netさんの上記サイトを参考に以下の項目を実施します。
- 「準 備」
- 「ROS2 のインストール」
- 「環境設定」
- 「アプリのインストール」
- 「テスト」
ポイント:
- テストの時、「source /opt/ros/foxy/setup.bash」を入力しなくてもROS2は動いているようです。環境設定のところで「~/.bashrc」を登録したのが効いているのでしょう。
STEP4 :RVIZ2を導入する
上記公式サイトを参考に以下の項目を実施します。
・「Build」
$rviz2
とすると起動のテストができます。
STEP5 :python3.8のインストール
@syu-kwsk さんの記事を参考に以下の項目を実施します。
- update.shを実行
- python3.8をinstall
ポイント:
-
ここで
python3 --version
を実行し、3.8が確認できればOKです。(pythonを初めて入れる場合。複数ある場合は「デフォルトを変更する」を試す) -
pipが遅くなる場合はこちらの記事に改善のヒントが ありそうです
STEP6 :gazeboのインストール
上記公式サイトを参考に以下の項目を実施します。
-
「Install from debian packages (on Ubuntu)」
→$ sudo apt install ros-foxy-gazebo-ros-pkgs のみ実行 -
Testing Gazebo and ROS 2 integration
→4番はたぶん飛ばして大丈夫。
→7番はgeditがなければnanoやvimを使うが、内容の確認なので飛ばしても大丈夫。
ポイント:
これでgazeboのデモをテストできます。
publishingの命令で模型がノコノコと動き出すはずです。
WSL+ROS2のいかんともしがたいところ
なんとWSL2はUSBデバイスに対応しておらず、たとえばUSBカメラなどはそのままでは使えません。カーネルを調整する方法もあるようですが手元では失敗しました。。。
一方WSL1はUSBデバイスには対応しているようですが、GUIに対応していないという課題があります。
Windows10に直接ROS2を入れる方法もありますが、Linuxのコマンドが使えないため、ubuntu用のアプリを導入するところからしていまいちわかりません。
3種類も導入方法があるのに、どれも一長一短で惜しい感じです。
WSL2のバージョンアップに期待してます。
ニュース : USB導入の成功事例(2021.1014追記)
USBカメラ導入の成功事例が共有されていました。すごい。(まだ試していません)
おまけ
ちなみにwindowsにWSLを経由せずROS2を導入する方法については、以下にメモを残しておきました。