WSL 中 ROS 2 (Humble) 安装与话题测试全流程 (Ubuntu 22.04)
一、环境要求
- WSL 2 运行 Ubuntu 22.04 (Jammy)
- 网络可正常访问
packages.ros.org
二、安装 ROS 2 Humble
# 1. 设置 locale
sudo apt update && sudo apt install locales -y
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. 添加 ROS 2 GPG 密钥
sudo apt install curl gnupg lsb-release -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 3. 添加 ROS 2 软件源
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
# 4. 安装 ROS 2 Humble 桌面版
sudo apt update
sudo apt install ros-humble-desktop python3-colcon-common-extensions -y

# 5. 配置环境变量(添加到 ~/.bashrc)
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
三、安装 rosdep 并初始化
# 1. 安装 rosdep
sudo apt install python3-rosdep -y# 2. 初始化 rosdep
sudo rosdep init
rosdep update
如遇网络问题,可使用镜像:
sudo apt install python3-pip -y pip install rosdepc sudo rosdepc init rosdepc update
四、验证安装
# 检查 ROS 2 环境变量
ros2 --help# 查看已安装的包
ros2 pkg list | wc -l
五、测试 ROS 2 话题通信
打开终端 A:运行发布者节点
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker
预期输出:
[INFO] [xxx]: Publishing: 'Hello World: 1'
[INFO] [xxx]: Publishing: 'Hello World: 2'
...
打开终端 B:运行订阅者节点
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener
预期输出:
[INFO] [xxx]: I heard: [Hello World: 1]
[INFO] [xxx]: I heard: [Hello World: 2]
...

查看所有活动话题
ros2 topic list
预期输出应包含 /chatter。
查看话题内容
ros2 topic echo /chatter
六、创建自定义工作空间(可选)
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
source install/setup.bash
七、常见问题处理
| 问题 | 解决方案 |
|---|---|
curl 下载密钥失败 |
使用 wget 替代:sudo wget -O /usr/share/keyrings/ros-archive-keyring.gpg https://raw.githubusercontent.com/ros/rosdistro/master/ros.key |
rosdep update 超时 |
使用 rosdepc 替代 |
找不到 ros2 命令 |
检查 ~/.bashrc 是否包含 source /opt/ros/humble/setup.bash |
| 话题通信无数据 | 检查防火墙是否放行本地回环,WSL 默认无需额外配置 |
八、版本对应关系
| Ubuntu 版本 | ROS 2 版本 |
|---|---|
| 22.04 (Jammy) | Humble |
| 24.04 (Noble) | Jazzy |
九、卸载(如需清理)
sudo apt remove ros-humble-* -y
sudo rm /etc/apt/sources.list.d/ros2.list
sudo rm /usr/share/keyrings/ros-archive-keyring.gpg
