【问题标题】:Running ROS in docker container and echo/pub from another docker container within same docker network (non-host network)在 docker 容器中运行 ROS 并从同一 docker 网络(非主机网络)中的另一个 docker 容器中运行 echo/pub
【发布时间】:2022-01-24 16:48:20
【问题描述】:

我正在一个 docker 容器中运行 ROS,并尝试通过 rosnode 列表检查来自另一个容器的信息,它们都在同一个自定义 docker 网络(非主机)下。

在 docker 方面,我很确定其中两个容器可以相互通信,因为我已经尝试从 container2 发送 ping container1 而不会丢失任何数据包。

container1 IP为172.22.0.2,container2 IP为172.22.0.3

我已经将两个容器的配置设置如下:

container1 export ROS_IP=172.22.0.2 export ROS_MASTER_URL=http://172.22.0.2:11311/

container2 export ROS_IP=172.22.0.3 export ROS_MASTER_URL=http://172.22.0.2:11311/

之后,我开始在container1上运行roscore并在container2上输入命令rosnode list,但是container2显示错误消息:Unable to communicate with master!

似乎即使我为两个容器都设置了 ros master url,我仍然无法在容器之间共享相同的 roscore。

是否有任何遗漏或我所做的事情不正确?

【问题讨论】:

    标签: docker ros docker-container docker-network


    【解决方案1】:

    您需要的环境变量是ROS_MASTER_URI 而不是ROS_MASTER_URL。将前者设置为主IP。

    【讨论】:

    • 我认为这是我这辈子做过的最愚蠢的事情。感谢您的纠正,现在可以正常使用了
    猜你喜欢
    • 1970-01-01
    • 2019-08-25
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多