去年给宇树机器人配 ROS 2 Humble 的时候记的流程,最近又重装了一次,干脆整理出来。主要是给真实硬件用,Go2、B2、H1 都适用。
官方的 unitree_ros2 仓库直接基于 CycloneDDS 跟机器人底层的 DDS 通信,跳过了 SDK 那一层封装,数据交换上要直接一些,跟 Humble 自带的 rmw_cyclonedds 也刚好合拍。
先把 ROS 2 跑起来
系统是 Ubuntu 22.04,目标 ROS 版本 Humble。如果你已经装好了,跳过这节。
UTF-8 区域
避免后面编译或运行时冒出乱码,先确认系统用了 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
添加 ROS 2 源
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/null
安装 Humble
装桌面完整版省事,RVIZ 和一些工具都带了:
sudo apt update
sudo apt install ros-humble-desktop
colcon 构建工具
sudo apt install python3-colcon-common-extensions
环境变量
把 setup 脚本加到 .bashrc,新开终端就会自动加载:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
测试
两个终端分别跑 talker 和 listener,能互相听到就说明装好了:
ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_py listener

