【学习】ROS2 Jazzy 快速入门
一、前期调研
- 什么是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配置
这里可以直接参考这篇博客,安装Ubuntu24.04:
https://www.cnblogs.com/quantoublog/articles/17674475.html
只需修改一处命令即可:
wsl --install -d Ubuntu-24.04
三、安装ROS2 Jazzy
3.1 更换下载源
管理员身份启动wsl
wsl -d Ubuntu-24.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
从这里开始主要参考官方安装说明:
https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html
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.04,因此直接把noble拼进去就行了。
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}')
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"
sudo dpkg -i /tmp/ros2-apt-source.deb
3.4 安装开发套件
sudo apt update && sudo apt install ros-dev-tools
3.5 安装ROS2本体
更新
sudo apt update
sudo apt upgrade -y
安装完整版
sudo apt install ros-jazzy-desktop
安装精简版(仅包含通信库、消息库、命令行工具)
sudo apt install ros-jazzy-ros-base
3.6 配置环境变量
每次打开终端需要加载ROS环境
source /opt/ros/jazzy/setup.bash
可以把source添加到bashrc中,使其自动生效
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
3.7 运行实例程序
测试C++发布者和python订阅者
终端1:
source /opt/ros/jazzy/setup.bash
ros2 run demo_nodes_cpp talker
终端2:
source /opt/ros/jazzy/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'。


浙公网安备 33010602011771号