轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
arm32v7/ros
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

ros Docker 镜像下载 - 轩辕镜像

ros 镜像详细信息和使用指南

ros 镜像标签列表和版本信息

ros 镜像拉取命令和加速下载

ros 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

ros
arm32v7/ros

ros 镜像详细信息

ros 镜像标签列表

ros 镜像使用说明

ros 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

机器人操作系统(ROS)是一个用于构建机器人应用程序的开源项目,提供软件库、工具、驱动和算法,支持机器人开发的各个方面。
7 收藏0 次下载activearm32v7镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

ros 镜像详细说明

ros 使用指南

ros 配置说明

ros 官方文档

arm32v7/ros 镜像文档

注意: 这是 ros 官方镜像 的 arm32v7 架构构建的 "per-architecture" 仓库——更多信息,请参见官方镜像文档中的 "除 amd64 之外的架构?" 和官方镜像常见问题中的 "镜像源在 Git 中已更改,现在该怎么办?"。

快速参考

  • 维护者:
    开源机器人基金会

  • 获取帮助:
    Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow

支持的标签及对应的 Dockerfile 链接

警告: 此镜像在 arm32v7 架构上不受支持

快速参考(续)

  • 问题反馈地址:
    [***]

  • 支持的架构: (更多信息)
    amd64、arm64v8

  • 已发布镜像制品详情:
    repo-info 仓库的 repos/ros/ 目录 (历史记录)
    (镜像元数据、传输大小等)

  • 镜像更新:
    official-images 仓库的 library/ros 标签
    official-images 仓库的 library/ros 文件 (历史记录)

  • 本描述的来源:
    docs 仓库的 ros/ 目录 (历史记录)

什么是 ROS?

机器人操作系统(ROS)是一组帮助构建机器人应用程序的软件库和工具。从驱动程序到最先进的算法,再到强大的开发工具,ROS 为您的下一个机器人项目提供所需的一切。且全部开源。

***.org/wiki/Robot_Operating_System

![logo]([***]

如何使用此镜像

创建安装 ROS 包的 Dockerfile

要创建自己的 ROS 镜像并安装自定义包,以下是一个简单示例:通过 apt-get 使用官方发布的 Debian 包安装 C++、Python 客户端库演示程序。

FROM arm32v7/ros:rolling-ros-core as aptgetter

# 安装 ROS 包
RUN apt-get update && apt-get install -y \
      ros-${ROS_DISTRO}-demo-nodes-cpp \
      ros-${ROS_DISTRO}-demo-nodes-py && \
    rm -rf /var/lib/apt/lists/*

# 启动 ROS 包
CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener_launch.py"]

注意:所有 ROS 镜像都包含默认的入口点,在执行配置的命令之前会先加载 ROS 环境设置,此处为演示包的启动文件。然后可以像这样构建和运行 Docker 镜像:

$ docker build -t my/ros:aptgetter .
$ docker run -it --rm my/ros:aptgetter
[INFO] [launch]: process[talker-1]: started with pid [813]
[INFO] [launch]: process[listener-2]: started with pid [814]
[INFO] [talker]: Publishing: 'Hello World: 1'
[INFO] [listener]: I heard: [Hello World: 1]
[INFO] [talker]: Publishing: 'Hello World: 2'
[INFO] [listener]: I heard: [Hello World: 2]
...

创建构建 ROS 包的 Dockerfile

要创建自己的 ROS 镜像并构建自定义包,以下是一个简单示例:安装包的构建依赖项,从源代码编译,并将生成的构建产物安装到最终的多阶段镜像层。

ARG FROM_IMAGE=arm32v7/ros:rolling
ARG OVERLAY_WS=/opt/ros/overlay_ws

# 多阶段缓存
FROM $FROM_IMAGE AS cacher
ARG OVERLAY_WS

# 覆盖默认值以持久化最小缓存
RUN rosdep update --rosdistro $ROS_DISTRO && \
    cat <<EOF > /etc/apt/apt.conf.d/docker-clean && apt-get update
APT::Install-Recommends "false";
APT::Install-Suggests "false";
EOF

# 克隆覆盖层源代码
WORKDIR $OVERLAY_WS/src
RUN cat <<EOF | vcs import .
repositories:
  ros2/demos:
    type: git
    url: [***]
    version: ${ROS_DISTRO}
EOF

# 推导构建/执行依赖项
RUN bash -e <<'EOF'
declare -A types=(
  [exec]="--dependency-types=exec"
  [build]="")
for type in "${!types[@]}"; do
  rosdep install -y \
    --from-paths \
      ros2/demos/demo_nodes_cpp \
      ros2/demos/demo_nodes_py \
    --ignore-src \
    --reinstall \
    --simulate \
    ${types[$type]} \
    | grep 'apt-get install' \
    | awk '{gsub(/'\''/,"",$4); print $4}' \
    | sort -u > /tmp/${type}_debs.txt
done
EOF

# 多阶段构建
FROM $FROM_IMAGE AS builder
ARG OVERLAY_WS

# 安装构建依赖项
COPY --from=cacher /tmp/build_debs.txt /tmp/build_debs.txt
RUN --mount=type=cache,target=/etc/apt/apt.conf.d,from=cacher,source=/etc/apt/apt.conf.d \
    --mount=type=cache,target=/var/lib/apt/lists,from=cacher,source=/var/lib/apt/lists \
    --mount=type=cache,target=/var/cache/apt,sharing=locked \
    < /tmp/build_debs.txt xargs apt-get install -y

# 构建覆盖层源代码
WORKDIR $OVERLAY_WS
COPY --from=cacher $OVERLAY_WS/src ./src
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
    colcon build \
      --packages-select \
        demo_nodes_cpp \
        demo_nodes_py \
      --mixin release

# 多阶段运行
FROM $FROM_IMAGE-ros-core AS runner
ARG OVERLAY_WS

# 安装执行依赖项
COPY --from=cacher /tmp/exec_debs.txt /tmp/exec_debs.txt
RUN --mount=type=cache,target=/etc/apt/apt.conf.d,from=cacher,source=/etc/apt/apt.conf.d \
    --mount=type=cache,target=/var/lib/apt/lists,from=cacher,source=/var/lib/apt/lists \
    --mount=type=cache,target=/var/cache/apt,sharing=locked \
    < /tmp/exec_debs.txt xargs apt-get install -y

# 设置覆盖层安装
ENV OVERLAY_WS=$OVERLAY_WS
COPY --from=builder $OVERLAY_WS/install $OVERLAY_WS/install
RUN sed --in-place --expression \
      '$isource "$OVERLAY_WS/install/setup.bash"' \
      /ros_entrypoint.sh

# 运行启动文件
CMD ["ros2", "launch", "demo_nodes_cpp", "talker_listener_launch.py"]

上面的示例包含三个连续阶段。cacher 阶段首先更新 apt 列表和 ROS 索引,使用 vcstool 将演示仓库克隆到工作区源代码目录,并使用 rosdep 推导构建和运行时依赖集。builder 阶段安装推导的构建依赖项,加载 ROS 安装底层,并使用 colcon 以发布模式编译源代码。最后,runner 阶段仅安装运行时依赖项,复制编译后的工作区产物,并设置环境以启动演示。注意该示例包含几个细微的优化:

  • 多阶段构建

    • 依赖项推导、编译和运行时设置分区
    • 最大化缓存保留,不受包源代码或构建/运行时变化影响
    • 更高并发性,例如 colcon 构建与运行时 apt 安装并行
  • 持久缓存传播

    • 使用 --mount 缓存临时数据而不膨胀层
    • 保持并行阶段之间 apt 列表的时间一致性
    • 避免阶段之间或 Docker 重建时不必要的网络 I/O
  • 最小镜像大小

    • 最终阶段基于 ros-core 构建,以获得最小运行时镜像
    • 仅构建和安装工作区中的少数选定包
    • 仅将工作区安装产物复制到最终层

作为比较,生成的 runner 镜像大小与前面的 aptgetter 示例相似。这允许您开发和分发自定义 ROS 包,而不会比预构建的 Debian 安装显著增加镜像大小:

$ docker image ls my/ros --format "table {{.Tag}}\t{{.Size}}"
TAG                SIZE
aptgetter          504MB
runner             510MB
builder            941MB
$ docker image ls ros --format "table {{.Tag}}\t{{.Size}}"
TAG                SIZE
rolling-ros-core   489MB
rolling            876MB

有关更高级的示例,例如通过链接多个覆盖工作区来改进 Docker 镜像构建层的缓存、使用 ccache 加速 colcon 编译、或使用 buildkit 在依赖项更改时节省构建时间和带宽,Navigation2 仓库中的项目 Dockerfile 是很好的参考资源。

部署用例

此 ROS 容器化镜像旨在提供一个简化且一致的平台,用于构建和部署分布式机器人应用程序。基于 官方 Ubuntu 镜像 和 ROS 官方 Debian 包构建,包含最新支持的版本,便于快速访问和下载。这为研究和工业领域的机器人专家提供了一种简单的方式来开发、重用和交付用于自主行动与任务规划、控制动力学、定位与地图构建、群体行为以及一般系统集成的软件。

使用新发布算法的前沿实现开发此类复杂系统仍然具有挑战性,因为在创新竞赛中,机器人软件的可重复性和可再现性可能被忽视。加上跨多个工程学科编写、调优和部署多个软件组件的难度,协作方法变得更具吸引力。然而,在多个机器人和平台上共享和维护软件集合的技术困难,长期以来超出了许多小型实验室和企业的时间和精力承受范围。

随着软件容器的发展和标准化,机器人专家已准备好获得一系列改进的开发工具,用于构建和交付软件。为帮助缓解采用新实践的成长痛苦和技术挑战,我们专注于提供将 ROS 与这些新技术结合使用的官方资源。

有关每个 ROS 发行版支持的架构和基础镜像的完整列表,请阅读关于目标平台的官方 REP 此处。

部署建议

可用标签包括支持的发行版以及基于最常见元包依赖项的层次结构标签,旨在具有小 footprint 和简单配置:

  • ros-core:最小 ROS 安装
  • ros-base:基本工具和库(也使用发行版名称标记,LTS 版本为 latest)

为保持 ros-core 标签的镜像大小最小,rosdep、colcon 和 vcstools 等开发工具未包含在 ros_core 中,而是包含在 ros-base 中。

其他常见元包(如 desktop)托管在 OSRF 的 Docker Hub 个人资料下的仓库中 此处。这些元包包含图形依赖项,并关联许多其他大型包(如 X11、X server 等)。因此,为保持官方镜像精简和安全,桌面包仅托管在 OSRF 的个人资料中。

卷

ROS 使用 ~/.ros/ 目录存储日志和调试信息。如果希望这些文件的生命周期超出生成它们的容器,可以将 ~/.ros/ 文件夹挂载到主机上的外部卷,或者派生镜像可以指定由 Docker 引擎管理的卷。默认情况下,容器以 root 用户运行,因此 /root/.ros/ 是这些文件的完整路径。

例如,如果希望使用本地主目录中已存在的 .ros 文件夹(用户名为 ubuntu),只需使用额外的卷参数启动容器:

$ docker run -v "/home/ubuntu/.ros/:/root/.ros/" arm32v7/ros

设备

某些应用可能需要设备访问,例如从连接的相机获取图像、从人机接口设备获取控制输入,或用于硬件加速的 GPU。这可以使用 --device 运行参数将设备挂载到容器内,为内部进程提供硬件访问。

网络

ROS 允许通过 ROS 通信基础设施松散耦合的进程(可能分布在多台机器上)进行点对点网络通信。ROS 实现了多种通信方式,包括通过服务的同步 RPC 式通信、通过主题的异步类型化数据流、通过动作的请求/回复与状态/反馈组合,以及通过参数的运行时配置。为遵守 每个容器一个进程 的最佳实践,可以使用 Docker 网络将多个运行的 ROS 进程连接起来。详情见下文部署示例。

或者,可以使用更宽松的网络设置,如 host 网络驱动,将所有主机网络接口共享给容器,简化与外部网络参与者的连接。但请注意,这会移除容器之间的网络命名空间隔离,并可能影响 DDS 参与者在容器之间的通信能力,如 此处 所述。

部署示例

Docker Compose

在此示例中,我们将演示使用 docker compose 在共享的软件定义网络中生成一对消息发布者和订阅者节点,分别位于不同的容器中。

创建目录 ~/ros_demos 并添加上面的第一个 Dockerfile 示例。在同一目录中,创建文件 compose.yaml,内容如下,运行 C++ 发布者和 Python 订阅者:

services:
  talker:
    build: ./
    command: ros2 run demo_nodes_cpp talker

  listener:
    build: ./
    environment:
      - "PYTHONUNBUFFERED=1"
    command: ros2 run demo_nodes_py listener

在同一目录中使用 docker compose 启动 ROS 节点。由于创建的容器源自同一个 docker compose 项目,它们将共存于共享的项目网络中:

$ docker compose up -d

注意已创建名为 ros_demos_default 的新网络,可通过以下命令进一步查看:

$ docker network inspect ros_demos_default

可以监控每个容器的日志输出,例如查看 listener 节点:

$ docker compose logs listener

最后,可以从同一目录使用 docker compose 停止并删除所有相关容器:

$ docker compose stop
$ docker compose rm

注意:自动生成的网络 ros_demos_default 将一直存在,直到使用 docker compose down 显式删除。

更多资源

文档:ROS 开发者文档
问答:提问并获取答案
论坛:了解最新讨论
包:发现索引包
[OSRF](

查看更多 ros 相关镜像 →
ros logo
ros
by library
官方
机器人操作系统(ROS)是一个开源项目,旨在为构建机器人应用提供全面支持,它集成了丰富的工具、库和通信协议,能够实现硬件抽象、设备驱动管理、节点间消息传递及软件包分发等关键功能,通过模块化架构和跨平台兼容性,有效简化了从简单移动机器人到复杂人机交互系统的开发流程,广泛应用于科研实验、工业自动化、服务机器人及智能家居等领域,极大促进了机器人技术的协作创新与快速迭代发展。
70210M+ pulls
上次更新:16 天前
osrf/ros logo
osrf/ros
by Open Source Robotics Foundation
机器人操作系统(ROS)是一个为构建各类机器人应用程序提供支持的开源软件项目,它提供了一套灵活的框架、丰富的工具和库,支持机器人系统的开发、调试与运行,广泛应用于科研、工业、服务等多个领域,旨在简化机器人应用的创建过程,促进机器人技术的普及与创新。
1981M+ pulls
上次更新:18 小时前
arm64v8/ros logo
arm64v8/ros
by arm64v8
机器人操作系统(ROS)是一个致力于简化机器人应用开发流程的开源项目,它通过提供丰富的工具、库和标准化约定,支持开发者高效构建从感知、规划到控制的各类机器人功能模块,兼容多种硬件平台并促进跨团队协作,广泛应用于科研探索、工业自动化、教育实践等领域,为全球机器人开发者社区提供了灵活且强大的技术框架。
30500K+ pulls
上次更新:16 天前
amd64/ros logo
amd64/ros
by amd64
机器人操作系统(ROS)是用于构建机器人应用的开源项目。
4500K+ pulls
上次更新:16 天前
dustynv/ros logo
dustynv/ros
by dustynv
为NVIDIA Jetson平台提供预配置的ROS环境,支持机器人应用的快速开发、部署与运行,适配Jetson硬件加速能力。
21100K+ pulls
上次更新:7 个月前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.