LoginSignup
14
6

More than 3 years have passed since last update.

ROS2 Dashing Docker通信

Posted at

背景

前回に続きというか、ほぼ同じ内容だが、ROS2 Dashのdocker imageを利用してROS2 docker間でROS2通信(正確にはeProsima FastRTPS DDSI-RTPS通信)が疎通することを確認した。Docker間で特に手順を必要とせずにdocker networkで通信させれば、特定のROS2 node軍(群)を複数のdocker imageに分配してdeployすることができるし、別にcrystal使ってもいいし、Eシリーズを使ってもいいので、ROS2 applicationを開発する側としては嬉しいじゃんという話。

手順

  1. ros2 dashingのdocker imageをdownloadする。
  2. docker runして必要なpackageをインストールする。
  3. ros2 demoを実行する。

環境

Host Linux: Ubuntu 16.04.6 LTS
Docker version 18.09.7, build 2d0083d
Host環境にはROS2はインストールしていない。(汚したくないから)

実際にやってみる

ros2 dashingのdocker imageのdownload

# docker pull ros:dashing
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ros                 dashing             9dadb912c594        6 days ago          837MB

これだけでOK!!!

docker runして必要なpackageのインストール

今回はros_dash dockerからros_dash_2 dockerへtopic送信してみる。
使うのは提供されているdemo_nodes_cpp packageのtalker/listenerを利用する。

[Terminal-1]

/// ros_dash docker
# docker run --name ros_dash -v /home/tomoyafujita/docker_ws:/root/docker_ws -it 9dadb912c594

root@23c0445301fd:~# apt update
root@23c0445301fd:~# apt install net-tools iputils-ping ros-dashing-demo-nodes-cpp

[Terminal-2]

/// ros_dash_2 docker
# docker run --name ros_dash_2 -v /home/tomoyafujita/docker_ws:/root/docker_ws -it 9dadb912c594

root@23c0445301fd:~# apt update
root@23c0445301fd:~# apt install net-tools iputils-ping ros-dashing-demo-nodes-cpp

ros2 run 実行

[Terminal-1]

root@b328e1e39a4a:~/docker_ws# ros2 run demo_nodes_cpp talker
[INFO] [talker]: Publishing: 'Hello World: 1'
[INFO] [talker]: Publishing: 'Hello World: 2'
[INFO] [talker]: Publishing: 'Hello World: 3'
[INFO] [talker]: Publishing: 'Hello World: 4'
[INFO] [talker]: Publishing: 'Hello World: 5'
[INFO] [talker]: Publishing: 'Hello World: 6'
[INFO] [talker]: Publishing: 'Hello World: 7'
[INFO] [talker]: Publishing: 'Hello World: 8'
...

[Terminal-2]

root@23c0445301fd:~# ros2 run demo_nodes_cpp listener
[INFO] [listener]: I heard: [Hello World: 20]
[INFO] [listener]: I heard: [Hello World: 21]
[INFO] [listener]: I heard: [Hello World: 22]
[INFO] [listener]: I heard: [Hello World: 23]
[INFO] [listener]: I heard: [Hello World: 24]
[INFO] [listener]: I heard: [Hello World: 25]
[INFO] [listener]: I heard: [Hello World: 26]
[INFO] [listener]: I heard: [Hello World: 27]
...

できました。

14
6
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
14
6