OE:Operations Engineer,ROS2:robot operations system version2
在 Ubuntu 24.04 (Noble Numbat) 上安装 ROS2,推荐安装 ROS2 Jazzy Jalisco(2024年5月发布的 LTS 长期支持版)。以下是完整详细的安装步骤:
一、系统要求确认
表格
| 项目 | 要求 |
|---|---|
| 操作系统 | Ubuntu 24.04 LTS (Noble Numbat) |
| 架构 | x86_64 / ARM64 |
| ROS2 版本 | Jazzy Jalisco (LTS) 或 Rolling |
| 支持周期 | Jazzy 支持到 2029 年 5 月 |
bash
# 确认系统版本
lsb_release -a
# 确认系统架构
uname -m
二、完整安装步骤
步骤 1:设置系统语言环境
ROS2 需要 UTF-8 语言环境:
bash
# 检查当前语言环境
locale
# 如果看到警告,执行以下命令
sudo apt update
sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
# 验证
export LANG=en_US.UTF-8
locale
步骤2:添加 ROS2 软件源
bash
# 安装必要的证书和工具
sudo apt install software-properties-common gnupg curl -y
# 添加 ROS2 GPG 密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加软件源(Jazzy 版本)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
⚠️ 注意:Ubuntu 24.04 的代号是 noble,不要使用 jammy 或其他
步骤3:更新软件包索引
bash
sudo apt update
步骤4:选择并安装 ROS2 版本
方案 A:安装桌面完整版(推荐新手)
bash
sudo apt install ros-jazzy-desktop -y
包含:ROS2 核心 + Rviz + Gazebo + 演示程序 + 工具
方案 B:安装基础版(服务器/最小化)
bash
sudo apt install ros-jazzy-ros-base -y
仅包含 ROS2 核心通信库
方案 C:安装开发版(开发者)
bash
sudo apt install ros-jazzy-desktop-full -y
包含所有工具 + 仿真器 + 调试工具
步骤5:配置环境变量
bash
# 临时生效(当前终端)
source /opt/ros/jazzy/setup.bash
# 永久生效(添加到 ~/.bashrc)
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc
步骤6:安装常用依赖工具
bash
sudo apt install python3-colcon-common-extensions \
python3-rosdep \
python3-vcstool \
python3-flake8 \
python3-pytest \
python3-pip \
ros-jazzy-rmw-fastrtps-cpp \
-y
步骤7:初始化 rosdep
bash
# 初始化 rosdep
sudo rosdep init
# 更新 rosdep 数据库
rosdep update
# 安装系统依赖
rosdep install --from-paths src --ignore-src -r -y
⚠️ 如果 rosdep update 失败(网络问题),使用:
bash
rosdep update --include-eol-distros
三、验证安装
测试 1:检查 ROS2 版本
bash
ros2 --version
预期输出:
text
ros2 0.32.x
测试 2:运行示例(两个终端)
终端 1 - 发布消息:
bash
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker
终端 2 - 接收消息:
bash
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_py listener
如果看到消息正常收发,说明安装成功!
测试 3:检查节点和话题
bash
# 查看节点列表
ros2 node list
# 查看话题列表
ros2 topic list
# 查看话题信息
ros2 topic echo /chatter
四、常见问题解决
问题 1:ros2: command not found
bash
# 检查是否已 source
echo $ROS_DISTRO
# 如果没有输出,重新 source
source /opt/ros/jazzy/setup.bash
# 永久添加
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc
问题 2:rosdep update 超时/失败
bash
# 方法1:使用国内镜像
export ROSDEP_SOURCE_URL=https://raw.githubusercontent.com/ros/rosdistro/master/rosdep
export ROSDISTRO_URL=https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
# 方法2:多次重试
rosdep update --timeout 100
# 方法3:使用代理
export https_proxy=http://proxy:port
export http_proxy=http://proxy:port
rosdep update
问题 3:GPG 密钥错误
bash
# 重新添加密钥
sudo rm /usr/share/keyrings/ros-archive-keyring.gpg
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
sudo apt update
问题 4:软件源 404 错误
bash
# 检查软件源配置
cat /etc/apt/sources.list.d/ros2.list
# 确认是 noble 不是 jammy
# 错误:deb ... jammy main
# 正确:deb ... noble main
# 修正后更新
sudo apt update
问题 5:Python 版本冲突
Ubuntu 24.04 默认 Python 3.12,ROS2 Jazzy 支持 Python 3.12:
bash
# 检查 Python 版本
python3 --version
# 如果有冲突,使用虚拟环境
sudo apt install python3-venv
python3 -m venv ~/ros2_venv
source ~/ros2_venv/bin/activate
五、可选组件安装
1. Gazebo 仿真器
bash
# 安装 Gazebo Harmonic(与 Jazzy 兼容)
sudo apt install gz-harmonic -y
# 或安装 ROS2 集成的 Gazebo
sudo apt install ros-jazzy-gazebo-ros-pkg -y
2. Rviz2 可视化工具
bash
# 桌面版已包含,单独安装:
sudo apt install ros-jazzy-rviz2 -y
3. 导航栈
bash
sudo apt install ros-jazzy-navigation2 -y
sudo apt install ros-jazzy-nav2-bringup -y
4. SLAM 工具
bash
sudo apt install ros-jazzy-slam-toolbox -y
- 常用功能包
bash
sudo apt install ros-jazzy-rqt* -y
sudo apt install ros-jazzy-robot-state-publisher -y
sudo apt install ros-jazzy-joint-state-publisher -y
sudo apt install ros-jazzy-urdf -y
sudo apt install ros-jazzy-xacro -y
六、ROS2 版本对比
| 版本 | 代号 | Ubuntu 支持 | 支持周期 | 推荐场景 |
|---|---|---|---|---|
| Jazzy | Jalisco | 24.04 | 2029.5 | 生产环境 |
| Humble | Hawksbill | 22.04 | 2027.5 | 旧项目维护 |
| Rolling | Ridley | 最新 | 持续 | 开发测试 |
七、完整安装脚本(一键安装)
保存为 install_ros2_jazzy.sh:
bash
#!/bin/bash
set -e
echo "=== ROS2 Jazzy 安装脚本 (Ubuntu 24.04) ==="
# 1. 设置语言环境
echo "[1/7] 设置语言环境..."
sudo apt update
sudo apt install -y locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
# 2. 添加软件源
echo "[2/7] 添加 ROS2 软件源..."
sudo apt install -y software-properties-common gnupg curl
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 noble main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 3. 更新
echo "[3/7] 更新软件包索引..."
sudo apt update
# 4. 安装 ROS2
echo "[4/7] 安装 ROS2 Jazzy Desktop..."
sudo apt install -y ros-jazzy-desktop
# 5. 配置环境变量
echo "[5/7] 配置环境变量..."
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 6. 安装开发工具
echo "[6/7] 安装开发工具..."
sudo apt install -y python3-colcon-common-extensions python3-rosdep python3-vcstool
# 7. 初始化 rosdep
echo "[7/7] 初始化 rosdep..."
sudo rosdep init
rosdep update || echo "rosdep update 可能需要重试"
echo ""
echo "=== 安装完成!==="
echo "ROS 版本:$(ros2 --version)"
echo "ROS 发行版:$ROS_DISTRO"
echo ""
echo "运行测试:"
echo " 终端1: ros2 run demo_nodes_cpp talker"
echo " 终端2: ros2 run demo_nodes_py listener"
运行:
bash
chmod +x install_ros2_jazzy.sh
./install_ros2_jazzy.sh
八、工作空间创建示例
bash
# 创建 ROS2 工作空间
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
# 编译
colcon build
# 加载环境
source install/setup.bash
# 永久加载
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
九、参考资源
安装完成后,您就可以开始 ROS2 开发了!结合您之前的手套项目,现在可以正常创建 ROS2 节点和话题了。有任何问题随时问我!🤖