ROS的Docker镜像无法使用?

The Docker image of ROS is unusable?

所以,我使用

从 docker hub 中拉出了 ros 容器
docker pull ros

这让我得到了最新的 docker 'foxy' 版本。

我继续 tutorial 启动 ROS 的 docker 容器。我可以成功启动容器并连接到它。这是一个小教程。既不长也不复杂。

该教程的倒数第二步要求获取 setup.bash 文件,我这样做了并且没有收到任何错误。 (实际上什么都没有。既没有成功也没有失败)。

source /opt/ros/<distro>/setup.bash

然后,为了品尝我辛勤劳动的甜美果实,我输入了最终命令(如教程中所述),

rostopic list

令我惊讶的是

rostopic command not found

然后我继续在终端 roscoreroscd 等处输入,其中 none 有效。都没有找到。

我确实尝试 运行 从终端自己设置脚本,而不使用 source,例如:

$ /opt/ros/foxy/setup.bash

(当然是在更改权限之后),情况几乎没有变化。

我查看了 docker 的 ros 页面,但没有找到有用的信息。那里有很多关于如何为 ROS 构建我自己的 docker 图像的说明,但我想这不是我现在想做的。

我用谷歌搜索,第一页上的搜索结果是:

  1. this(我一直在关注的原始教程),
  2. this(关于 docker 的一般信息) 并且,
  3. this(关于如何 运行 带有 Docker 的 GUI - 坦率地说还没有),

这引出了一个问题,如果我必须按照他们的其他教程自己安装所有东西,容器有什么用?

还是我没看懂?如果有人能对此有所启发,我们将不胜感激。

你的容器有 ROS2,不是 ROS1。尝试

ros2 topic list

如果您想获取 ROS1 版本,请尝试拉取 运行 不同的图像:

docker pull ros:noetic-robot
docker run ros:noetic-robot

上下文

您正在看的教程是前段时间写的,当时默认容器使用的是ROS1。新的 latest 容器使用 ROS2(在您的例子中是 Foxy)。 ROS2 没有相同的命令名称。 rostopic不行,连高手都没有,所以roscore就没意义了!

好消息是,教程页面是一个 wiki,所以我已经对其进行了更新以使其(至少稍微)更清晰。如果您有改进的想法,您也可以创建一个帐户并这样做。