Open3

WSL2 + DockerでROS1をセットアップ

TakahiroTakahiro

環境

HW

  • CPU: Intel Core i5-3570K
  • RAM: 8GB
  • GPU: Radeon RTX570

SW

  • Microsoft Windows [Version 10.0.19044.1889]
  • WSL2: version 5.10.102.1
    WSL2はUbuntu 20.4を動かす
  • Docker Desktop for windows: version 4.11.1 (84025)

ROS環境のセットアップ

ROSのDocker imageをダウンロード

ROSのdocker imageは公式にもあるが、ビジュアリゼーション関連の設定が結構面倒らしい。
その辺の設定をを行わなくても実行できる"docker-ros-desktop-vnc"というDocker imageを使用する。
"docker-ros-desktop-vnc"は、Ubuntu LXDE + ROSにアクセスするためのHTML5 VNCインターフェースを提供する。

以下のコマンドをUbuntu上で実行

docker run -p 6080:80 --shm-size=1024m tiryoh/ros-desktop-vnc:noetic

ROSのディストリビューションは2022年8月現在最新のNoeticを使用する

動作確認

  1. ブラウザで"http://127.0.0.1:6080/"を開く

  2. 左下のメニューからターミナル(SystemTools/LXTerminal)を開く。

  1. ROSのバージョンを確認
$ rosversion -d
noetic
  1. roscoreの起動
    以下のコマンドを実行する(ターミナルは前のものを使用しても良い)
$ roscore

起動に成功すると以下のようなコンソールログが表示される

  1. turtlesim_nodeの起動
    新しいターミナルを開いて以下のコマンドを実行する
$ rosrun turtlesim turtlesim_node

起動に成功すると以下のような画面が表示される

  1. turtle_teleop_keyノードの起動
    新しいターミナルを開いて以下のコマンドを実行する
$ rosrun turtlesim turtle_teleop_key

turtle_teleop_keyを起動したターミナルを選択した状態で、カメを方向キー操作できる

参考

TakahiroTakahiro

疑問点

Issue?

  • WSL2を落としてもRAMのリソースが開放されていないようにみえる
    2023/1/21 追記
    WSL2を落とした後にタスクマネージャーを開くと、"Vmmem"というプロセス名でRAMを使用し続けている。

    過去からある不具合のようだが未だに修正されていない模様。
    参考: https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120
    以下のコマンドで実行されているディストリビューションは完全に終了させることが出来る。
    これを実行しても完全にRAMが開放される訳では無いが、使用量は減るので作業中に重くなったときなどに使える。(現状根本の解決手段にはPC再起動しかない)
wsl --shutdown
TakahiroTakahiro

WSLがGUIアプリに対応したため、Dockerのコンテナを使用しなくてもROSのGUIアプリが起動できるようになった。