WSL2 Ubuntu22.04 安装 ROS2 Humble
环境说明:小车系统 Ubuntu22.04 + Humble,WSL 必须同版本 ROS2,避免消息不兼容推荐:Windows11 + WSL2(自带 WSLg,直接弹出 Rviz2 图形界面,不用额外 VcXsrv)
一、先确认 WSL 系统版本
打开 WSL 终端执行
bash
运行
lsb_release -a确保Jammy Jellyfish (Ubuntu 22.04),如果不是需要重装对应 Ubuntu。
二、正式安装步骤(逐条复制执行)
1. 配置语言环境
bash
运行
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-82. 启用 Ubuntu universe 软件源
bash
运行
sudo apt install software-properties-common sudo add-apt-repository universe3. 添加 ROS2 官方 GPG 密钥 & 软件源
bash
运行
sudo apt update && sudo apt install curl gnupg lsb-release 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 $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null4. 更新软件缓存
bash
运行
sudo apt update sudo apt upgrade -y5. 安装 ROS2 Humble 完整版(强烈推荐)
bash
运行
sudo apt install ros-humble-desktop -y
ros-humble-desktop包含:rviz2、demo、tf2、可视化全套工具,开发机器人首选 极简版本(无 GUI,不推荐):ros-humble-base
6. 环境变量配置(关键!)
bash
运行
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc source ~/.bashrc每次新开终端自动加载 ROS2 环境,不用反复手动 source
7. 安装编译工具(colcon + rosdep)
机器人编译功能包必备
bash
运行
sudo apt install python3-colcon-common-extensions python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y # 初始化rosdep sudo rosdep init rosdep update三、验证安装(海龟测试)
终端 1(仿真)
bash
运行
ros2 run turtlesim turtlesim_node终端 2(键盘控制)
bash
运行
ros2 run turtlesim turtle_teleop_key✅ 弹出蓝色海龟窗口、方向键可以控制海龟 = 安装成功 测试 Rviz2 图形界面:
bash
运行
rviz2Windows11 WSLg 直接弹出窗口;Windows10 需要额外配置 Xserver
四、【重中之重】WSL ↔ 局域网 ROSMASTER M1 小车通信配置
WSL 默认 NAT 网络,DDS 自动发现经常看不到小车话题,两套解决方案
1. 统一 DDS(先执行!两端保持一致)
WSL 内写入环境变量
bash
运行
echo 'export RMW_IMPLEMENTATION=rmw_fastrtps_cpp' >> ~/.bashrc source ~/.bashrc小车 Ubuntu 系统也要设置同样环境变量,必须都使用 FastDDS
2. 两种连通方案
方案 A(工程稳定方案)FastDDS 静态发现 XML(推荐)
指定机器人 IP 和 WSL IP,绕开不稳定的组播自动发现
方案 B(简易测试)桥接 WSL
把 WSL 设置成局域网独立 IP,和小车在同一网段(设置相对复杂)
五、USB 设备直通(手柄、串口、摄像头,调试小车必备)
Windows PowerShell【管理员】安装 usbipd
powershell
winget install usbipd.usbipd # 查看usb设备 usbipd list # 绑定设备 usbipd bind --busid x-x # 挂载到WSL usbipd attach --wsl --busid x-xWSL 内验证
bash
运行
ls /dev/input六、高频踩坑清单
- 新开终端 ros2 命令找不到没有写入
~/.bashrc,重新执行环境配置命令 - WSL 启动 rviz2 报错无法显示Windows10:安装 VcXsrv;Windows11 原生 WSLg 无需操作
- WSL 和小车互相看不到话题① RMW 必须统一 fastrtps ② Windows 防火墙放行 UDP 7400~7600 端口 ③ 优先使用静态 DDS 发现配置
- colcon build 编译报错执行
rosdep install --from-paths src --ignore-src -r -y自动安装依赖
拓展:后续导入亚博小车源码
bash
运行
# 进入工作空间 cd ~/yahboomcar_ws # 安装依赖 rosdep install --from-paths src --ignore-src -r -y # 编译 colcon build source install/setup.bash