在容器中运行ROS2节点

在系统环境中无法发现容器中运行的ROS节点?

在容器中运行ROS2节点

容器中运行ROS2节点本身并不困难,ROS官方有提供各个版本的容器镜像,按需适配即可。

如果首次做这件事情,遇到的第一个问题恐怕是在容器外的系统环境无法发现这个节点。

ros2 node list
# 输出为空

这是由于ROS2所依赖的分布式数据通讯组件FastDDS的限制。容器的各种隔离措施使得数据通讯出现了阻碍。因此需要在运行容器时,指定一些参数,例如: