あまプロではROSのGazeboを使う事が有ります。
インストールがややこしかったので、あメログ。
Windows10上のDockerのコンテナにUbuntuを構築して、Ubuntu上でGazebo Simを起動してみます。
- いきなり端折りますが、Docker Desktopをインストールして、WSLを有効にしておいて下さい。
インスートラをダウンロードして、インストールするだけなので、そない難しくないと考えます。
既にインストール済みの方は最新版のDockerDesktopとWSLにアップデートして下さい。
WSLのアップデートはwsl --update
で行えます。 - WindowsStoreでUbuntuをインストールする Ubuntuインストール時にユーザとパスワードを求められるので、適当に決めて入力する。
- スタートメニューにUbutu24.04 LTSが追加されるので、クリックしてターミナルのUbuntuを起動する。
- Ubuntuターミナルで設定変更する
sed "s/\"credsStore\": \"desktop.exe\"//g" ~/.docker/config.json
- UbuntuターミナルでROSのコンテナを作成する
docker run --name ros2 -d --env="DISPLAY=:0" --env="WAYLAND_DISPLAY=$WAYLAND_DISPLAY" --env="XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR" --env="QT_X11_NO_MITSHM=1" --env="LIBGL_ALWAYS_SOFTWARE=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="/mnt/wslg:/mnt/wslg:rw" --device=/dev/dri:/dev/dri ros:jazzy-perception
もしドライバ周りでエラーが発生する場合は--deviceを削除した下記でコンテナ作成して下さい。docker run --name ros2 -d --env="DISPLAY=:0" --env="WAYLAND_DISPLAY=$WAYLAND_DISPLAY" --env="XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR" --env="QT_X11_NO_MITSHM=1" --env="LIBGL_ALWAYS_SOFTWARE=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="/mnt/wslg:/mnt/wslg:rw" ros:jazzy-perception
ros用コンテナが作成されます。 - Dockerの設定⚙のResourcesのWSL integrationでUbuntu 24.04を有効にする
- Ubuntuターミナルでコンテナを起動する
docker start ros2
- Ubuntuターミナルでコンテナに入る
docker exec -it ros2 bash
- UbuntuターミナルでGazeboをインストールする
sudo apt update && sudo apt install -y ros-jazzy-ros-gz
- Ubuntuターミナルでros設定
source /opt/ros/jazzy/setup.bash
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc - UbuntuターミナルでGazebo起動
ros2 launch ros_gz_sim gz_sim.launch.py gz_args:='-r empty.sdf'
そうすると、コンテナのGUIがホストのディスプレイに表示されて上記の様にWindowsのアプリの様に表示されます。
あんまないやろうけど、コンテナのGUIをホストで表示したい場合にはこれでできます。





0 件のコメント:
コメントを投稿
つっこみ