【学习】ROS2 Jazzy和Humble 快速入门
一、前期调研
- 什么是ROS
- 全称:Robot Operating System,机器人操作系统(广义上),本质上是机器人开发平台;
- 本质:
- 一个分布式通信框架(核心本质);
- 提供跨进程、跨机器的消息传递机制。
- 开发工具集合;
- 将复杂机器人系统拆解成各种模块化的节点、工具,方便复用。
- 一系列开源软件包。
- 形成了庞大的软件包生态。
- 一个分布式通信框架(核心本质);
- ROS1和ROS2的区别
- ROS1是中心化的,有master节点,ROS2去中心化网络,没有master节点;
- ROS1的通信协议是TCP\UDP\XMLRPC,而ROS2的主要通信协议是DDS;
- ROS1只能在ubuntu上使用,ROS2可以在Linux、Windows、Mac、RTOS全平台上使用。
- ROS对不同平台的支持情况
- ROS1主流仅支持ubuntu;
- ROS2支持Linux、Windows、Mac、RTOS全平台。
- ROS2版本区别
- 参考链接:https://docs.ros.org/
- 主要分成长期支持版、尝鲜版、开发版
- 长期支持版:稳定性最好,维护5年左右,适合长期课题;
- 尝鲜版:新功能多,生命周期短,适合想尝鲜最新功能的研究;
- 开发版:总是弓虽最新改动,适合极客、核心代码贡献者,不适合科研和生产。
- 能否在windows上做ROS开发
- 目前(2025)ROS2长期支持版是:Jazzy Jalisco,其官方文档:https://docs.ros.org/en/jazzy/Installation.html;
- ROS1不行,ROS2 Jazzy Jalisco 的官方文档中明确标注了支持windows;
- 但是整个社区大部分软件包、教程、代码都是基于ubuntu,很多作者都没测试过windows版本,导致windows下只能跑通ROS2的核心源码,离完整使用距离较远,因此不能直接在windows上做ROS2开发;
- 方案优劣:
- 使用原生ubuntu电脑
- 体验最优;
- 需要额外电脑安装ubuntu系统。
- 使用ubuntu服务器
- 云服务器:当机器人存在大量外设时(相机、雷达、机械臂),公有云基本不支持直接把硬件设备直通到云端虚拟机,即使能连接,延迟和抖动也会很大;
- 物理服务器:外设连接时需要到机房中进行测试。
- 使用vmware等虚拟机
- 文件、网络交互繁琐;
- 安装即用。
- 使用wsl
- 部署简单快捷;
- 日常开发体验好;
- GUI渲染较慢;
- 外设连接可能需要额外配置。
- 使用原生ubuntu电脑
- 配置倾向
- ROS的通信、调度、日志均依赖CPU和内存,对GPU无要求;
- 常见的ROS2包(导航、路径规划、控制、驱动)都是纯CPU算法;
- 仿真对对GPU和CPU的要求较高(CPU是木桶中的短板);
- 如果是做目标检测、语义分割等视觉、推理场景,对GPU要求更高。
- 最终方案:
- 在个人电脑(CPU配置够高)上使用WSL2作为学习和测试的开发环境;
- 需要大规模仿真、深度学习训练时,部署到物理服务器(GPU配置够高)上进行训练。
二、WSL2配置(可选)
如果你没有一台ubuntu电脑或服务器,只能在windows上进行安装,那么我推荐你在windows wsl下进行安装。
这里可以直接参考这篇博客,安装Ubuntu24.04(Jazzy 选24,Humble 选22):
https://www.cnblogs.com/quantoublog/articles/17674475.html
只需修改一处命令即可:
wsl --install -d Ubuntu-24.04
或
wsl --install -d Ubuntu-22.04
三、安装ROS2 Jazzy(Humble不同之处我会标出)
3.1 更换下载源
管理员身份启动wsl(如果你是纯ubuntu,忽略此步)
# Jazzy
wsl -d Ubuntu-24.04
# Humble
wsl -d Ubuntu-22.04
备份原配置文件
cd /etc/apt/
sudo cp sources.list sources.list.bk
修改下载源
cd /etc/apt/sources.list.d/
sudo vim ubuntu.sources
将原来的配置注释:

然后新增下面的下载源:
Types: deb
URIs: https://mirrors.aliyun.com/ubuntu/
Suites: noble noble-security noble-updates noble-proposed noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
保存并退出后,验证有效性
sudo apt list --upgradable
3.2 配置UTF-8
从这里开始主要参考官方安装说明:
- Jazzy
- Humble
locale # check for UTF-8
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 # verify settings
3.3 添加ROS存储库
sudo apt install software-properties-common
sudo add-apt-repository universe
这里需要注意,如果使用wsl安装ros,这里不能用$VERSION_CODENAME获取版本别名,ubuntu24对应noble,ubuntu22对应jammy,拼进去就行了(命令中我已改好,不必再进行修改)。
sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
# Jazzy
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.noble_all.deb"
# Humble
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.jammy_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb
如果无法下载,可访问https://github.com/ros-infrastructure/ros-apt-source/releases手动下载deb。
3.4 安装开发套件
sudo apt update && sudo apt install ros-dev-tools
3.5 安装ROS2本体
更新
sudo apt update
sudo apt upgrade -y
安装完整版
# Jazzy
sudo apt install ros-jazzy-desktop
# Humble
sudo apt install ros-humble-desktop
安装精简版(仅包含通信库、消息库、命令行工具)
# Jazzy
sudo apt install ros-jazzy-ros-base
# Humble
sudo apt install ros-humble-ros-base
3.6 配置环境变量
每次打开终端需要加载ROS环境
# Jazzy
source /opt/ros/jazzy/setup.bash
# Humble
source /opt/ros/humble/setup.bash
可以把source添加到bashrc中,使其自动生效
# Jazzy
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
# Humble
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
如果是多用户环境,可以直接创建自启动脚本
# ROS 2 全局环境初始化
# Jazzy
sudo vim /etc/profile.d/ros2_jazzy.sh
加入以下内容:
if [ -f /opt/ros/jazzy/setup.bash ]; then
source /opt/ros/jazzy/setup.bash
fi
# Humble
sudo vim /etc/profile.d/ros2_humble.sh
加入以下内容:
if [ -f /opt/ros/humble/setup.bash ]; then
source /opt/ros/humble/setup.bash
fi
3.7 运行实例程序
测试C++发布者和python订阅者
终端1:
# Jazzy
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker
# Humble
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker
终端2:
# Jazzy
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_py listener
# Humble
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener
如果一边输出 Publishing,另一边输出 I heard,说明 ROS 2 环境成功运行

3.8 常见问题
https://docs.ros.org/en/jazzy/How-To-Guides/Installation-Troubleshooting.html
四、小乌龟示例
官方文档:
4.1 安装基础模拟器
sudo apt update
sudo apt install ros-rolling-turtlesim
检查是否安装成功
ros2 pkg executables turtlesim
期望输出:
turtlesim draw_square
turtlesim mimic
turtlesim turtle_teleop_key
turtlesim turtlesim_node
4.2 运行
终端1:
ros2 run turtlesim turtlesim_node

其负责显示。
终端2:
ros2 run turtlesim turtle_teleop_key
负责控制小乌龟移动,在终端2中按方向键和'g|b|v|c|d|e|r|t'。

五、ros2_control(humble)
ros2_control是ros2系统中连接“高层算法(大脑)”和“底层硬件(四肢)”的标准中间件。它将物理层和算法层进行了有效的解耦,并通过插件的形式组合各个模块,具有很高的拓展性。
如果希望深入机器人领域学习,让自己的代码能够运行到各种设备上,那么就需要ros2_control。
- 创建ros2_control工作空间
mkdir -p ~/ros2_control_ws/src
cd ~/ros2_control_ws/
wget https://raw.githubusercontent.com/ros-controls/ros2_control_ci/master/ros_controls.$ROS_DISTRO.repos
vcs import src < ros_controls.$ROS_DISTRO.repos
- 安装依赖包
# 可用rosdep
rosdepc update --rosdistro=$ROS_DISTRO
sudo apt-get update
rosdepc install --from-paths src --ignore-src -r -y
- 编译ros2_control
colcon build --symlink-install
- 添加到环境变量
vim ~/.bashrc
source 你的ros2_control目录/install/setup.bash

浙公网安备 33010602011771号