17
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows10のWSL2にROS2をインストールする

Last updated at Posted at 2021-09-27

SS 192.png さいごに悶絶が待っている。

やること

Windows10WSL2ubuntu20.04を入れ、その上に**ROS2(foxy)**をインストールします。
さらにXserverを入れることでRVIZ2やgazeboも動くようにします。
すでに他のサイトで方法が丁寧に紹介されていますが、2021年9月現在の近道としてメモに残します。自分も成功できた方法が掲載されているサイトを閲覧すべき順に紹介します。

Dockerを使う場合

Dockerを使う場合は@Tiryohさんの記事が大変参考になります。手元でも動作確認ができました。すごい。

Dockerを使わない場合

今回はあえてDockerを使わず、Windows10がまっさらな状態からインストールする方法を試してみました。
WSLを入れる → GUIを使えるようにする → ROS2を入れる → ROS2アプリを入れる
といった手順で進めていきます。

必要なもの

  • windows10のPC(今回の例では64bit版)

(自分用メモ)

自分用のメモですすみません。Mac用キーボードの設定です。
#### ▼ キーボードのコマンドキーを使えるようにする https://www.secret-base.org/entry/Apple-keyboard-Windows10#AutoHotkey%E3%81%8C%E6%B1%BA%E5%AE%9A%E7%89%88

らいちのヒミツ基地さんのサイトを参考にそのまま実行します。

▼ コマンドキー+スペースで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を導入する方法については、以下にメモを残しておきました。

17
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?