Skip to content

Latest commit

 

History

History
86 lines (64 loc) · 3.25 KB

README.md

File metadata and controls

86 lines (64 loc) · 3.25 KB

DockerでCON-SAIを動かす

CON-SAIのDockerイメージは SSL-Roots/consai_ros2/pkgs/container/consai_ros2 に公開されています。

イメージ名はghcr.io/ssl-roots/consai_ros2:mainです。

CON-SAIを動かす

GUIアプリを起動するため、 osrf/rocker を使用することを推奨します

# rockerのインストール
$ sudo apt install python3-rocker

rockerのオプションには、 ホストのネットワーク環境を使用するための--net=hostネットワーク使用時のエラー を回避するための--privilegedを与えます。

またROSは通信に共有メモリを使用するため、/dev/shmをコンテナにマウントします。

次のコマンドはstart.launch.pyを起動する例です

$ rocker --x11 --net=host --privileged --volume /dev/shm:/dev/shm -- ghcr.io/ssl-roots/consai_ros2:main ros2 launch consai_examples start.launch.py

DockerでCON-SAIを開発する

ローカルにCON-SAIパッケージをクローンし、それをDockerコンテナにマウントして作業することを推奨します。 ローカルでのファイル変更がコンテナにも反映され、 コンテナ内での作業(例:colcon buildによるワークスペースのビルド)もローカルに反映されます。

# ワークスペースの作成
$ mkdir -p ~/consai_ws/src
$ cd ~/consai_ws/src

# CON-SAIと依存パッケージをクローン
$ git clone https://github.com/SSL-Roots/consai_ros2.git
$ git clone https://github.com/SSL-Roots/consai_frootspi_msgs.git

# 以下、どのディレクトリでコマンドを実行してもOKです
# --volumeオプションでワークスペースをマウントしてコンテナを起動
$ rocker --x11 --net=host --privileged --volume /dev/shm:/dev/shm ~/consai_ws:/root/ros2_ws -- ghcr.io/ssl-roots/consai_ros2:main
# 例:パッケージをビルドする
$ rocker --x11 --net=host --privileged --volume /dev/shm:/dev/shm ~/consai_ws:/root/ros2_ws -- ghcr.io/ssl-roots/consai_ros2:main colcon build --symlink-install
# 例:CON-SAIを起動する
$ rocker --x11 --net=host --privileged --volume /dev/shm:/dev/shm ~/consai_ws:/root/ros2_ws -- ghcr.io/ssl-roots/consai_ros2:main ros2 launch consai_examples start.launch.py

Dockerイメージをビルドする

ローカルでもDockerイメージをビルドできます。 Dockerfileを編集したい場合におすすめです。

build.shの引数には$ROS_DISTRO(例:humble)を与えます。 成功するとconsai:humbleという名前のイメージが生成されます。

$ cd consai_ros2/.docker
$ ./build.sh 
...
Summary: 10 packages finished [1min 58s]
Removing intermediate container bd43dc976256
 ---> b5a4f3477119
Step 9/9 : COPY ./ros_entrypoint.sh /ros_entrypoint.sh
 ---> 2707a311afa4
Successfully built 2707a311afa4
Successfully tagged consai:humble

その他

環境変数の渡し方

--envオプションを使用します

$ rocker --env ROS_DOMAIN_ID=22 --x11 --net=host --privileged --volume /dev/shm:/dev/shm ~/consai_ws:/root/ros2_ws -- ghcr.io/ssl-roots/consai_ros2:main