在Docker中运行ROS 2节点 [社区-贡献] [待校准@6510]
在单个docker容器中运行两个节点 [待校准@6511]
拉出带有标签 “foxy-桌面” 的ROS docker映像。 [待校准@6512]
docker pull osrf/ros:foxy-desktop
在交互式模式下在容器中运行映像。 [待校准@6513]
$ docker run -it osrf/ros:foxy-desktop
root@<container-id>:/#
你最好的朋友现在是 ros2
命令行帮助。 [待校准@6514]
root@<container-id>:/# ros2 --help
例如,列出所有已安装的包。 [待校准@6515]
root@<container-id>:/# ros2 pkg list
(you will see a list of packages)
例如列出所有可执行文件: [待校准@6516]
root@<container-id>:/# ros2 pkg executables
(you will see a list of <package> <executable>)
在此容器中的包 demo_nodes_cpp
中运行2个c + + 节点的最小示例 (1个话题订户 listener
,1个话题出版商 talker
): [待校准@6517]
ros2 run demo_nodes_cpp listener &
ros2 run demo_nodes_cpp talker
在两个单独的docker容器中运行两个节点 [待校准@6518]
打开终端。运行图像容器交互模式launcha话题出版商 (可执行 talker
从包 demo_nodes_cpp
) ros2 run
: [待校准@6519]
docker run -it --rm osrf/ros:foxy-desktop ros2 run demo_nodes_cpp talker
打开第二个终端。运行图像容器交互模式launcha话题用户 (可执行 listener
从包 demo_nodes_cpp
) ros2 run
: [待校准@6520]
docker run -it --rm osrf/ros:foxy-desktop ros2 run demo_nodes_cpp listener
作为命令行调用的替代方法,您可以创建一个包含以下 (最小) 内容的 docker-compose.yml
文件 (此处为版本2): [待校准@6521]
version: '2'
services:
talker:
image: osrf/ros:foxy-desktop
command: ros2 run demo_nodes_cpp talker
listener:
image: osrf/ros:foxy-desktop
command: ros2 run demo_nodes_cpp listener
depends_on:
- talker
在同一目录下运行容器调用 docker-compose up
。您可以使用 “ctrl + c” 关闭容器。 [待校准@6522]