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

官方QQ群: 13763429

轩辕镜像
镜像详情
amd64/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
amd64/ros

ros 镜像详细信息

ros 镜像标签列表

ros 镜像使用说明

ros 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

机器人操作系统(ROS)是用于构建机器人应用的开源项目。
4 收藏0 次下载activeamd64镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

ros 镜像详细说明

ros 使用指南

ros 配置说明

ros 官方文档

ROS Docker 镜像文档

镜像概述与主要用途

注意: 本仓库是 官方 ros 镜像 的 amd64 架构构建版本。更多信息请参见官方镜像文档中的 "除 amd64 外的架构?" 和官方镜像 FAQ 中的 "镜像源在 Git 中已更改,该怎么办?"。

机器人操作系统(ROS)是一个开源项目,用于构建机器人应用程序。本 Docker 镜像是 ROS 官方镜像的 amd64 架构版本,基于官方 Ubuntu 镜像和 ROS 官方 Debian 软件包构建,提供了简化且一致的平台,用于开发、构建和部署分布式机器人应用。

核心功能与特性

多版本与变体支持

提供多种 ROS 发行版(如 humble、jazzy、kilted、rolling)及不同功能层级的镜像变体:

  • ros-core:最小化 ROS 安装,包含核心组件
  • ros-base:基础工具和库,包含 ros-core 及额外基础功能(部分发行版以此为默认标签)
  • perception:包含感知相关功能包的扩展版本

构建优化

  • 支持多阶段构建(Multi-Stage Build),分离依赖推导、编译和运行环境,减小最终镜像体积
  • 集成缓存机制(如 apt 缓存、构建依赖缓存),加速镜像构建过程
  • 支持通过 rosdep 自动解析依赖,简化第三方包集成

部署灵活性

  • 兼容 Docker 网络,支持多容器分布式 ROS 应用部署
  • 支持设备挂载(如相机、GPU)以实现硬件访问
  • 可持久化日志目录(~/.ros/),便于调试和数据留存

支持的标签及对应 Dockerfile 链接

标签Dockerfile 链接
humble-ros-core, humble-ros-core-jammy链接
humble-ros-base, humble-ros-base-jammy, humble链接
humble-perception, humble-perception-jammy链接
jazzy-ros-core, jazzy-ros-core-noble链接
jazzy-ros-base, jazzy-ros-base-noble, jazzy, latest链接
jazzy-perception, jazzy-perception-noble链接
kilted-ros-core, kilted-ros-core-noble链接
kilted-ros-base, kilted-ros-base-noble, kilted链接
kilted-perception, kilted-perception-noble链接
rolling-ros-core, rolling-ros-core-noble链接
rolling-ros-base, rolling-ros-base-noble, rolling链接
rolling-perception, rolling-perception-noble链接

使用场景与适用范围

本镜像适用于需要快速构建、测试和部署机器人应用的场景,包括但不限于:

学术研究

  • 机器人算法验证(如路径规划、SLAM)
  • 多机器人系统协作研究
  • 可重复的实验环境搭建

工业应用

  • 自动化生产线机器人控制
  • 物流仓储机器人系统部署
  • 服务机器人应用开发

教育与开发

  • ROS 入门学***环境
  • 机器人应用原型快速迭代
  • 开源项目二次开发与分发

使用方法与配置说明

快速参考信息

  • 维护方:开源机器人基金会(OSRF)
  • 获取帮助:Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
  • 提交 issue:[***]
  • 支持架构:amd64、arm64v8
  • 镜像元数据:repo-info 仓库的 ros/ 目录

通过 apt 安装 ROS 包

创建 Dockerfile 安装预编译的 ROS 包(以 demo-nodes-cpp 和 demo-nodes-py 为例):

FROM amd64/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"]

构建与运行:

$ 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]
...

说明:所有 ROS 镜像包含默认入口点(entrypoint),会在执行命令前自动加载 ROS 环境变量(如 ROS_DISTRO)。

从源码构建 ROS 包

使用多阶段构建从源码编译 ROS 包,优化镜像体积:

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

# 阶段 1:依赖推导与缓存
FROM $FROM_IMAGE AS cacher
ARG OVERLAY_WS

# 更新 rosdep 并配置 apt 缓存
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

# 克隆源码(以 ros2/demos 为例)
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

# 阶段 2:编译源码
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

# 阶段 3:运行环境
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"]

构建结果对比(示例):

$ docker image ls my/ros --format "table {{.Tag}}\t{{.Size}}"
TAG                SIZE
aptgetter          504MB  # apt 安装版
runner             510MB  # 源码编译版(多阶段优化后)
builder            941MB  # 编译阶段镜像(不用于部署)

部署建议

数据卷(Volumes)

持久化 ROS 日志目录(~/.ros/):

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

设备访问

通过 --device 参数挂载硬件设备(如相机、GPU):

$ docker run --device=/dev/video0:/dev/video0 amd64/ros  # 挂载摄像头

网络配置

  • Docker 网络:使用自定义网络连接多个 ROS 容器(推荐)
  • Host 网络:使用 --net=host 共享主机网络栈(简化外部通信,但降低隔离性)

Docker Compose 部署示例

使用 docker compose 部署分布式 ROS 应用(发布者-订阅者模型):

  1. 创建目录 ~/ros_demos,放入上述 Dockerfile(aptgetter 版本)
  2. 创建 compose.yaml:
services:
  talker:  # C++ 发布者节点
    build: ./
    command: ros2 run demo_nodes_cpp talker

  listener:  # Python 订阅者节点
    build: ./
    environment:
      - "PYTHONUNBUFFERED=1"  # 实时输出 Python 日志
    command: ros2 run demo_nodes_py listener
  1. 启动与管理:
# 构建并后台启动
$ docker compose up -d

# 查看自动创建的网络
$ docker network inspect ros_demos_default

# 查看 listener 节点日志
$ docker compose logs listener

# 停止并清理
$ docker compose stop
$ docker compose rm
$ docker compose down  # 同时删除网络

更多资源

  • ROS 官方文档
  • ROS 问答社区
  • ROS 论坛
  • ROS 包索引
  • 开源机器人基金会(OSRF)

许可证

本镜像包含的软件许可证信息可通过以下途径获取:

  • ROS 包索引
  • repo-info 仓库的 ros/ 目录

使用本镜像时,用户需自行确保遵守其中所有软件的相关许可证。

查看更多 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 天前
arm32v7/ros logo
arm32v7/ros
by arm32v7
机器人操作系统(ROS)是一个用于构建机器人应用程序的开源项目,提供软件库、工具、驱动和算法,支持机器人开发的各个方面。
7100K+ pulls
上次更新:4 个月前
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.