ROS2 Jazzy 开发环境搭建指南
ROS2 Jazzy 开发环境搭建指南从零开始在 Windows 10 WSL2 上搭建 ROS2 机器人开发环境目录系统环境第一步安装WSL2和Ubuntu第二步安装ROS2 Jazzy第三步配置X Server图形界面第四步安装TurtleBot3第五步运行第一个机器人常见问题下一步学习系统环境操作系统: Windows 10 ProLinux发行版: Ubuntu 24.04 LTS (WSL2)ROS2版本: Jazzy Jalisco (LTS)Python版本: 3.12第一步安装WSL2和Ubuntu1.1 检查现有WSL在PowerShell (管理员)中执行wsl--list--verbose1.2 检查Ubuntu版本如果已有Ubuntu检查版本lsb_release-a输出示例Distributor ID: Ubuntu Description: Ubuntu 24.04.3 LTS Release: 24.04 Codename: noble1.3 安装Ubuntu 24.04如果需要方法1Microsoft Store推荐打开 Microsoft Store搜索 “Ubuntu 24.04”点击获取安装方法2命令行wsl--install-d Ubuntu-24.041.4 重置WSL密码如果忘记# 以root身份进入WSLwsl-u root# 重置密码passwd 你的用户名# 退出exit第二步安装ROS2 Jazzy2.1 更新系统在WSL Ubuntu中执行sudoaptupdatesudoaptupgrade-ysudoaptinstallsoftware-properties-commoncurl-y常见问题如果遇到apt lock错误# 方法1等待1-2分钟让后台更新完成# 方法2重启WSLwsl--shutdown# 在PowerShell中执行wsl# 重新进入2.2 添加ROS2官方源# 添加ROS2 GPG密钥sudocurl-sSLhttps://raw.githubusercontent.com/ros/rosdistro/master/ros.key-o/usr/share/keyrings/ros-archive-keyring.gpg# 添加ROS2软件源echodeb [arch$(dpkg --print-architecture)signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu$(./etc/os-releaseecho$UBUNTU_CODENAME)main|sudotee/etc/apt/sources.list.d/ros2.list/dev/null如果访问GitHub超时# 修改hosts文件sudonano/etc/hosts# 添加以下行185.199.108.133 raw.githubusercontent.com# 保存CtrlO → Enter → CtrlX2.3 安装ROS2 Jazzy Desktop版# 更新软件包列表sudoaptupdate# 安装ROS2桌面版包含RViz、仿真工具等约2GBsudoaptinstallros-jazzy-desktop-y# 安装开发工具sudoaptinstallros-dev-tools-y⏱️预计时间15-30分钟取决于网速2.4 配置环境变量# 添加到bashrc每次启动自动加载echosource /opt/ros/jazzy/setup.bash~/.bashrc# 立即生效source~/.bashrc2.5 验证安装# 测试ROS2命令ros2--help# 应该显示ROS2的帮助信息第三步配置X Server图形界面Windows 10需要X Server来显示WSL2的图形界面。3.1 下载并安装VcXsrv下载地址https://sourceforge.net/projects/vcxsrv/双击安装包一路Next3.2 启动XLaunch重要配置每次使用ROS2图形工具前都要先启动XLaunch运行XLaunch开始菜单搜索显示设置选择“Multiple windows”→ Next启动方式选择“Start no client”→ Next额外设置✅勾选 “Disable access control”必须→ Next完成Finish右下角托盘会出现X图标表示运行中。3.3 配置WSL的DISPLAY环境变量# 添加DISPLAY变量到bashrcechoexport DISPLAY$(cat /etc/resolv.conf | grep nameserver | awk {print \$2}):0~/.bashrc# 立即生效source~/.bashrc# 验证配置echo$DISPLAY# 应该显示类似172.x.x.x:03.4 测试图形界面# 安装测试工具sudoaptinstallx11-apps-y# 测试图形显示xeyes如果弹出眼睛窗口眼珠会跟随鼠标说明配置成功按CtrlC关闭测试窗口。如果图形不显示检查防火墙Windows搜索 “防火墙”允许应用通过防火墙找到VcXsrv勾选专用和公用确认XLaunch配置必须勾选 “Disable access control”托盘有X图标第四步安装TurtleBot34.1 强制使用IPv4解决网络问题# 配置apt使用IPv4echoAcquire::ForceIPv4 true;|sudotee/etc/apt/apt.conf.d/99force-ipv4# 更新源sudoaptupdate4.2 安装TurtleBot3核心包# 安装核心仿真包sudoaptinstall\ros-jazzy-turtlebot3-description\ros-jazzy-turtlebot3-gazebo\ros-jazzy-turtlebot3-teleop\ros-jazzy-turtlebot3-msgs\ros-jazzy-turtlebot3-fake-node\ros-jazzy-turtlebot3-navigation2-y4.3 配置机器人型号# 设置机器人型号为burgerechoexport TURTLEBOT3_MODELburger~/.bashrcsource~/.bashrc4.4 安装通用键盘控制工具sudoaptinstallros-jazzy-teleop-twist-keyboard-y第五步运行第一个机器人5.1 启动Fake Node RViz终端1启动仿真机器人ros2 launch turtlebot3_fake_node turtlebot3_fake_node.launch.py成功后会自动弹出RViz窗口显示机器人3D模型。5.2 启动键盘控制终端2新开WSL窗口启动键盘控制source/opt/ros/jazzy/setup.bashexportTURTLEBOT3_MODELburger ros2 run teleop_twist_keyboard teleop_twist_keyboard5.3 控制机器人在终端2中按键控制基本移动i- 前进,- 后退j- 原地左转l- 原地右转k- 停止组合移动u- 前进左转o- 前进右转m- 后退左转.- 后退右转速度调节x- 降低线速度推荐先按几次默认太快c- 降低角速度w- 增加线速度e- 增加角速度在RViz中你会看到机器人移动激光雷达和坐标系也会实时更新5.4 测试ROS2话题通信终端3可选查看ROS2系统状态source/opt/ros/jazzy/setup.bash# 查看所有节点ros2nodelist# 查看所有话题ros2 topic list# 查看机器人速度命令ros2 topicecho/cmd_vel# 查看里程计数据ros2 topicecho/odom# 查看话题发布频率ros2 topic hz /odom常见问题Q1: Gazebo无法启动问题ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py一直显示 “Requesting list of world names”原因Gazebo Harmonic在WSL2中有兼容性问题解决方案使用Fake Node代替ros2 launch turtlebot3_fake_node turtlebot3_fake_node.launch.pyQ2: teleop_keyboard报错KeyError: TURTLEBOT3_MODEL解决方案exportTURTLEBOT3_MODELburger或永久设置echoexport TURTLEBOT3_MODELburger~/.bashrcsource~/.bashrcQ3: RViz中机器人模型消失解决方案添加RobotModelRViz左下角点击Add选择RobotModelOK调整视角滚轮缩放点击顶部Reset按钮重启fake_node# CtrlC停止然后重新启动ros2 launch turtlebot3_fake_node turtlebot3_fake_node.launch.pyQ4: 机器人移动速度太快解决方案在teleop终端按键调速x- 降低线速度多按几次c- 降低角速度z- 同时降低所有速度建议设置线速度0.1 - 0.2 m/s角速度0.3 - 0.5 rad/sQ5: apt安装时遇到lock错误E: Could not get lock /var/lib/apt/lists/lock解决方案# 方法1等待1-2分钟系统自动更新# 方法2重启WSLwsl--shutdown# 在PowerShell中执行wsl# 重新进入Q6: 图形界面不显示检查清单VcXsrv是否运行Windows托盘有X图标DISPLAY变量echo$DISPLAY# 应该显示IP地址不是 :0防火墙允许VcXsrv通过防火墙测试xeyes# 能弹窗说明X Server正常下一步学习1. ROS2基础概念节点Node独立的进程执行特定任务话题Topic节点间异步通信的数据流服务Service节点间同步通信的请求/响应参数Parameter节点的配置参数动作Action长时间运行的任务2. 探索ROS2命令# 节点操作ros2nodelist# 列出所有节点ros2nodeinfo /turtlebot3_fake_node# 查看节点详情# 话题操作ros2 topic list# 列出所有话题ros2 topicecho/odom# 查看话题内容ros2 topic hz /scan# 查看发布频率ros2 topic info /cmd_vel# 查看话题详情# 手动发布消息ros2 topic pub /cmd_vel geometry_msgs/msg/Twist\{linear: {x: 0.1}, angular: {z: 0.0}}# 服务操作ros2servicelist# 列出所有服务ros2servicecall /reset std_srvs/srv/Empty# 调用服务3. 学习SLAM建图安装Cartographer地图构建sudoaptinstallros-jazzy-turtlebot3-cartographer-y启动SLAM# 终端1启动fake_noderos2 launch turtlebot3_fake_node turtlebot3_fake_node.launch.py# 终端2启动SLAMros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:False# 终端3键盘控制建图ros2 run teleop_twist_keyboard teleop_twist_keyboard4. 创建自己的ROS2包# 创建工作空间mkdir-p~/ros2_ws/srccd~/ros2_ws/src# 创建Python包ros2 pkg create --build-type ament_python my_robot_controller# 构建cd~/ros2_ws colcon build# 加载环境sourceinstall/setup.bash5. 学习资源官方文档ROS2官方教程https://docs.ros.org/en/jazzy/Tutorials.htmlTurtleBot3文档https://emanual.robotis.com/docs/en/platform/turtlebot3/在线课程The ConstructROS2实战课程https://www.theconstructsim.com/Udemy: ROS2 for Beginners书籍《机器人操作系统ROS2入门与实践》《Programming Robots with ROS》社区ROS Discoursehttps://discourse.ros.org/ROS Answershttps://answers.ros.org/GitHub ROS2https://github.com/ros2环境总结已安装的软件栈Windows 10 └── WSL2 └── Ubuntu 24.04 LTS ├── ROS2 Jazzy Desktop │ ├── rclcpp/rclpy (核心库) │ ├── RViz (3D可视化) │ └── ros-dev-tools (开发工具) ├── TurtleBot3 │ ├── turtlebot3_fake_node (仿真节点) │ ├── turtlebot3_description (机器人模型) │ └── turtlebot3_teleop (遥控) └── X Server (VcXsrv)每次使用的启动流程Windows端启动XLaunch勾选Disable access controlWSL端# 终端1启动机器人ros2 launch turtlebot3_fake_node turtlebot3_fake_node.launch.py# 终端2启动控制source/opt/ros/jazzy/setup.bash ros2 run teleop_twist_keyboard teleop_twist_keyboard贡献与反馈这份文档记录了从零开始搭建ROS2开发环境的完整过程。如果遇到新的问题或有改进建议欢迎更新此文档。文档版本1.0创建日期2026-07-19适用环境Windows 10 WSL2 Ubuntu 24.04 ROS2 Jazzy恭喜你完成了ROS2机器人开发环境的搭建开始你的机器人之旅吧