在哪里提交问题: https:
//github.com/osrf/docker_images/issues
支持的体系结构:(更多信息)
已发布图像工件详细信息:
repo-info 存储库的repos/ros/目录(历史)
(图像元数据、传输大小等)
图片更新:
此描述的来源:
********************************************************
部署用例
ROS 的这个 dockerized 图像旨在提供一个简化且一致的平台来构建和部署分布式机器人应用程序。它基于官方 Ubuntu 映像和 ROS 的官方 Debian 软件包构建,包括最新支持的版本,以便快速访问和下载。这为研究和工业领域的机器人专家提供了一种简单的方法来开发、重用和运送用于自主行动和任务规划、控制动力学、定位和映射、群体行为以及一般系统集成的软件。
使用新发布算法的尖端实现来开发如此复杂的系统仍然具有挑战性,因为机器人软件的可重复性和再现性可能会在创新竞赛中落伍。随着编码、调整和部署跨越许多工程学科的多个软件组件的难度增加,更具协作性的方法变得很有吸引力。然而,在多个机器人和平台上共享和维护软件集合的技术困难已经超出了许多小型实验室和企业所能承受的时间和精力。
随着软件容器的进步和标准化,机器人专家准备获得大量改进的开发人员工具来构建和运输软件。为了帮助减轻采用新实践带来的成长烦恼和技术挑战,我们专注于提供官方资源,以便将 ROS 与这些新技术结合使用。
有关每个 ROS 发行版支持的架构和基础映像的完整列表,请阅读ROS 1或ROS 2目标平台上的官方 REP 。
部署建议
可用的标签包括受支持的发行版以及基于最常见的元包依赖项的层次结构标签,旨在占用空间小且配置简单:
ros-core: 最小的 ROS 安装
ros-base: 基本工具和库(也用 LTS 版本的发行版名称标记为latest)
ros1-bridge: 运行混合 ROS 1 - ROS 2 系统并在它们之间桥接消息的工具和库
为了使ros-core标签的图像大小保持最小,开发人员工具(例如rosdep和colcon)vcstools并未随附在 中ros_core,而是在ros-base中。
其他常见的元包,例如desktop托管在 OSRF 的 Docker Hub 配置文件下的 repos上。这些元包包括图形依赖项并挂钩许多其他大型包,如 X11、X 服务器等。因此,为了保持官方图像的精简和安全,桌面包仅使用 OSRF 的配置文件托管。有关可用变体的详尽列表,请阅读ROS 1或ROS 2目标平台上的官方 REP 。
卷
ROS 使用该~/.ros/目录来存储日志和调试信息。如果您希望将这些文件保留到生成它们的容器的生命周期之后,~/.ros/可以将文件夹挂载到主机上的外部卷,或者派生图像可以指定由 Docker 引擎管理的卷。默认情况下,容器以root用户身份运行,/root/.ros/这些文件的完整路径也是如此。
例如,如果一个人希望使用他们自己的.ros文件夹,该文件夹已经存在于他们的本地主目录中,用户名是ubuntu,我们可以简单地使用一个额外的 volume 参数启动容器:
$ docker run -v "/home/ubuntu/.ros/:/root/.ros/" ros
设备
某些应用程序可能需要设备访问权限以从连接的相机获取图像、从人机界面设备控制输入或用于硬件加速的 GPUS。--device这可以使用run 参数将设备安装在容器内来完成,从而提供硬件访问内部的进程。
网络
ROS 允许使用 ROS 通信基础设施松散耦合的进程(可能分布在机器之间)的对等网络。ROS 实现了几种不同的通信方式,包括服务上的同步 RPC 式通信、主题上类型化数据的异步流、通过请求/回复和状态/反馈操作的先验组合,以及通过参数配置进行的运行时设置。为了遵守每个容器一个进程的最佳实践,Docker 网络可用于将多个正在运行的 ROS 进程串在一起。有关详细信息,请参阅下面的部署示例。
或者,可以使用更宽松的网络设置来与容器共享所有主机网络接口,例如host网络驱动程序,简化与外部网络参与者的连接。但是请注意,这会消除容器之间的网络命名空间分离,并且会影响 DDS 参与者在容器之间进行通信的能力,如此处所述。
网友评论