本篇博客 的 ROS 2 安装 主要是 安装 ROS 2 Humble 版本 , 这是 自动驾驶 Autoware Universe 使用的版本 , 运行在 Ubuntu 22.04.5 LTS 操作系统 上 ;





一、ROS 2 安装方式




1、三种安装方式


ROS 2 的 核心安装方式 有 二进制安装 ( apt ) 、源码安装、Docker 容器安装 三类 ,

  • 二进制安装 ( apt 安装 ) : 通过 系统包管理器 ( apt ) 安装 ROS 2 官方预编译的二进制包 ;
  • 源码安装 : 从 ROS 2 官方 GitHub 仓库拉取源码 , 本地编译整个 ROS 2 核心栈 , 是高度定制化的安装方式 ;
  • Docker 容器安装 : 基于 ROS 2 官方预构建的 Docker 镜像 , 通过 容器化方式 运行 ROS 2 ;

安装方式对比 :

安装方式 便捷性 定制性 环境隔离 适配场景 推荐度 ( 普通用户 )
二进制安装 ★★★★★ ★☆☆☆☆ ☆☆☆☆☆ 标准 ROS 2 开发 / 部署、Autoware 使用 ★★★★★
源码安装 ★☆☆☆☆ ★★★★★ ☆☆☆☆☆ 定制 ROS 2 核心、适配特殊系统 ★☆☆☆☆
Docker 安装 ★★★★☆ ★★★☆☆ ★★★★★ 多版本共存、环境隔离、快速部署 ★★★★☆

2、二进制安装



① 安装方式简介


二进制安装使用 Debian 包 / apt 安装 , 这是 ROS 2 官方最推荐 的 标准安装方式 , 适用于 Ubuntu 等官方适配的 Linux 发行版 , 本质是通过系统包管理器 ( apt ) 安装 ROS 2 官方预编译的二进制包 ;

  • 安装方便 : 无需编译 , 一键安装 , 耗时仅数分钟 ;
  • 版本更新 : 版本稳定 , 与系统适配性最优 , 支持 apt update / upgrade 快速更新 ;
  • 系统匹配 : 仅支持 ROS 2 官方适配的系统 , Ubuntu 22.04 对应 ROS 2 Humble、Ubuntu 24.04 对应 ROS 2 Jazzy ;

② 安装过程参考


安装过程参考 :

# 1. 添加 ROS 2 软件源
sudo apt update && sudo apt install -y curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# 2. 安装 ROS 2 包 ( 桌面完整版含可视化工具 ) 
sudo apt update && sudo apt install -y ros-humble-desktop

# 3. 配置环境变量 ( 每次终端生效 , 建议写入 ~/.bashrc ) 
source /opt/ros/humble/setup.bash
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

③ 适用场景


二进制安装 适用场景 :

  • 适用于 99% 的普通用户 , 用于 开发、测试、部署 ROS 2 标准功能 ;
  • 搭配 Autoware Universe 自动驾驶 使用 ( 官方推荐方式 ) ;
  • 追求 稳定性、不想折腾环境 的场景 ;

④ 安装方式优缺点


优点 缺点
安装快、稳定、易维护 仅支持 官方适配的系统 ( 如 Ubuntu LTS )
可通过 apt 一键更新 无法修改 ROS 2 核心源码
无编译依赖问题 功能固定 , 无法使用开发版特性

3、源码安装



① 安装方式简介


源码安装方式 从 ROS 2 官方 GitHub 仓库拉取源码 , 本地编译 整个 ROS 2 核心栈 , 是高度定制化的安装方式 ; 有如下 核心特点 :

  • 修改 ROS 2 底层代码 ( 如 rclcpp、DDS 插件、参数系统 ) ;
  • 适配 非标准系统 ( 如 Fedora、Arch、ARMv7 等 ) ;
  • 可选择 ROS 2 开发分支 ( main ) 或 未发布的 补丁版本 ;

② 安装过程参考


安装过程参考 :

# 1. 安装编译依赖工具
sudo apt update && sudo apt install -y python3-colcon-common-extensions git python3-rosdep

# 2. 创建源码工作空间并克隆 ROS 2 源码
mkdir -p ~/ros2_humble/src && cd ~/ros2_humble
git clone https://github.com/ros2/ros2.git src/ros2 -b humble

# 3. 安装编译依赖
cd ~/ros2_humble
rosdep init && rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"

# 4. 编译源码 ( 耗时 1~2 小时 , 视硬件而定 ) 
colcon build --symlink-install

# 5. 配置环境变量
source ~/ros2_humble/install/setup.bash
echo "source ~/ros2_humble/install/setup.bash" >> ~/.bashrc

③ 适用场景


源码安装 适用场景 :

  • 需要 修改 ROS 2 核心逻辑 ( 如定制通信机制、调试底层 bug ) ;
  • 适配 非 Ubuntu 系统 或 特殊硬件架构 ( 如 ARM 嵌入式 ) ;
  • 使用 ROS 2 开发版 / 未发布 的功能 ;
  • 深度调试 ROS 2 与 Autoware 交互的底层问题 ;

④ 安装方式优缺点


优点 缺点
高度定制 , 支持特殊场景 编译耗时久 ( 1~2 小时 )
可使用最新 / 定制化特性 易因依赖 / 编译器版本失败 , 维护成本高
适配非标准系统 无官方维护 , 需手动处理更新

4、Docker 安装



① 安装方式简介


Docker 安装 方式基于 ROS 2 官方预构建的 Docker 镜像 , 通过 容器化方式运行 ROS 2 , 环境隔离性极强 , 无需担心主机环境污染 , 该安装方式有如下 核心特点 :

  • 一键拉取镜像 , 秒级启动 , 多版本 ROS 2 可共存 ;
  • 镜像包含完整的 ROS 2 环境 , 无需手动配置依赖 ;
  • 支持自定义镜像 ( 如集成 Autoware、源码编译的 ROS 2 ) ;

② 安装过程参考


安装过程参考 :

# 1. 安装 Docker ( 略 , 参考 Docker 官方文档 ) 
# 2. 拉取 ROS 2 官方镜像 ( 桌面版含可视化工具 ) 
docker pull osrf/ros:humble-desktop

# 3. 运行容器 ( 映射主机目录、开启图形化、网络共享 ) 
docker run -it --rm \
  --env="DISPLAY" \
  --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
  --volume="$HOME/ros2_ws:/root/ros2_ws:rw" \
  --net=host \
  osrf/ros:humble-desktop

# 4. 容器内直接使用 ROS 2 ( 已配置好环境变量 ) 
ros2 --version

③ 适用场景


ROS 2 Docker 安装适用场景 :

  • 快速部署 统一的 ROS 2 开发 / 测试环境 ;
  • 多版本 ROS 2 并行开发 ( 如同时用 Humble、Jazzy ) ;
  • 避免主机环境 依赖冲突 ( 如不同项目依赖不同版本库 ) ;
  • 云端 / 服务器部署 ROS 2 应用 ;
  • Autoware 开发 ( 官方提供 Docker 镜像 , 无需手动配置环境 ) ;

④ 安装方式优缺点


优点 缺点
环境隔离 , 无依赖冲突 容器内图形化工具体验略差 ( 需额外配置 )
版本切换灵活 性能略有损耗 ( 可忽略 )
无需手动配置环境 容器内文件需映射到主机 , 否则易丢失




二、安装文档




1、安装文档简介


ROS 2 Humble 安装 参考 安装文档 : https://docs.ros.org/en/humble/Installation.html ;

在这里插入图片描述

在上述文档中 , 针对 Ubuntu 22.04 的 二进制安装 给出了 两种安装方式 ;

Ubuntu Linux (amd64 / aarch64) - Jammy Jellyfish (22.04)

  • deb packages (recommended) 安装方式 : 使用 apt 命令进行安装 ;
  • binary archive 安装方式 : 下载 tar.gz 压缩包 , 手动解压缩 , 手动配置环境变量和路径 ;

2、Debian 软件包安装文档


使用 Debian 软件包 ( deb packages ) 安装方式 参考 https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html 文档 进行安装 ;

在这里插入图片描述


3、二进制归档包安装文档


使用 二进制归档包 ( binary archive ) 安装方式 参考 https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Install-Binary.html 文档 ;

在这里插入图片描述


4、源码安装文档


在 Ubuntu 22.04 LTS 系统中 , 使用源码安装 ROS 2 Humble 参考文档 https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html

在这里插入图片描述





三、Ubuntu 二进制安装方式



Ubuntu 二进制安装方式 有两种 :

  • deb packages ( Debian 软件包 ) 安装方式 : 通过 apt / dpkg 管理 , 深度集成 Ubuntu 系统包管理体系 , 也是 ROS 2 官方推荐的 " 二进制安装 " 核心形式 ;
  • binary archive ( 二进制归档包 ) 安装方式 : 将 预编译好的二进制可执行文件、库文件等直接打包成 .tar.gz/.tar.xz/.zip 等压缩归档文件 , 手动解压 , 手动配置 环境变量 / 路径 即可运行 ;

1、Debian 软件包 ( deb packages )


Debian 软件包 安装Ubuntu 原生的 标准化 预编译 安装方式 , 以 .deb 为文件后缀 , 是 包含 二进制可执行文件、配置文件、依赖说明、安装 / 卸载脚本 的完整软件包 ;

核心 通过 apt / dpkg 管理 , 深度集成 Ubuntu 系统包管理体系 , 也是 ROS 2 官方推荐的 " 二进制安装 " 核心形式 ;

Debian 软件包 是 Ubuntu 最原生、最核心的软件安装方式 ( ROS 2 的 " 二进制安装 " 本质就是这种方式 ) , 主要分为两种形式 , ① 通过 APT 仓库自动安装 ( 主流 ) , ② 手动下载 .deb 包本地安装 ( 不常用 ) ;


Debian 软件包安装方式 有如下特点 :

  • 自动解决依赖 ( 无需手动处理包之间的依赖关系 ) ;
  • 一键安装 / 更新 / 卸载 , 操作简单 ;
  • 包由官方维护 , 稳定性高 ( ROS 2 官方 deb 包经过严格测试 ) ;
  • 仅支持 配置好的 仓库中的包 , 无法安装 仓库外的自定义 deb 包 ;

使用 Debian 软件包 ( deb packages ) 安装方式 参考 https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html 文档 进行安装 ;


2、二进制归档包 ( binary archive )


预编译好的 二进制可执行文件、库文件 等 直接打包成 .tar.gz/.tar.xz/.zip 等 压缩归档文件 , 无安装脚本、无依赖说明、不关联系统包管理 ; 使用时需 手动解压 , 手动配置环境变量 / 路径即可运行 , 本质是 " 解压即用 " 的预编译文件集合 ;


使用 二进制归档包 ( binary archive ) 安装方式 参考 https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Install-Binary.html 文档 ;


3、两种安装方式区别


Debian 软件包 ( deb packages ) 安装 和 二进制归档包 ( binary archive ) 安装 区别 :

维度 deb packages binary archive
文件格式 .deb 标准化包 .tar.gz/.xz 等压缩归档
系统集成度 深度集成 Ubuntu 包管理 ( apt ) 无集成 , 仅解压到指定目录
依赖处理 apt 自动解析、安装依赖 完全手动处理 ( 需自行安装依赖 )
安装 / 卸载 apt install/remove 一键操作 解压即用 , 手动删除文件卸载
更新方式 apt update/upgrade 自动更新 手动下载新版本归档包替换
系统适配 适配 Ubuntu 系统规范 跨系统 ( 如同架构的 Linux 发行版 ) , 无系统限制
典型场景 ROS 2 标准安装、Ubuntu 官方软件 定制化软件、跨发行版预编译程序、临时测试版软件
Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐