跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

宇树 Unitree 机器人 ROS 2 Humble 环境部署指南 (Go2/B2/H1)

Ubuntu 22.04 系统下安装 ROS 2 Humble 并配置宇树 Unitree 机器人(Go2/B2/H1)通信环境。重点解决 CycloneDDS 网络接口设置与静态 IP 配置问题,通过修改 setup.sh 脚本实现 ROS 节点与底层 DDS 直接通信,包含依赖安装、工作空间编译及话题测试步骤。

锁机制发布于 2026/3/30更新于 2026/10/2597 浏览

宇树 Unitree 机器人 ROS 2 Humble 环境部署指南

本文面向希望在 Ubuntu 22.04 + ROS 2 Humble 环境下开发宇树(Unitree)机器人(支持 Go2, B2, H1)的开发者。我们将重点讲解如何配置 unitree_ros2 功能包,实现 ROS 2 节点与机器人底层 DDS 系统的直接通信。本教程基于官方文档优化,针对 Humble 环境调整了 CycloneDDS 相关步骤。

核心环境:

  • 操作系统: Ubuntu 22.04 (Jammy)
  • ROS 2 版本: Humble Hawksbill (LTS)
  • 目标硬件: Unitree Go2 / B2 / H1 (真实机器人)

一、为什么选择 unitree_ros2

宇树官方的 unitree_ros2 仓库提供了一种更原生的集成方式。与传统 SDK 封装桥接不同,它利用 Unitree SDK 2 (CycloneDDS) 和 ROS 2 (DDS) 在通信机制上的共性,让 ROS 2 节点能直接与机器人底层通信,无需额外接口封装,数据交换更高效。

二、安装 ROS 2 Humble (Ubuntu 22.04)

若已安装可跳过此步。

1. 设置 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

2. 添加 ROS 2 软件源

添加 GPG 密钥并配置仓库。

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

3. 安装 ROS 2 (Humble)

安装桌面完整版,包含 RVIZ 及示例工具。

sudo apt update
sudo apt install ros-humble-desktop

4. 安装构建工具

colcon 是 ROS 2 的标准构建工具,后续编译工作空间会用到。

sudo apt update
sudo apt install python3-colcon-common-extensions

5. 设置环境变量

将 ROS 2 环境脚本加入 .bashrc,新终端自动加载。

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

6. 测试安装

打开两个终端分别运行 talker 和 listener:

终端 1:

ros2 run demo_nodes_cpp talker

终端 2:

ros2 run demo_nodes_py listener

若 Listener 收到 Talker 消息,说明安装成功。

三、部署 Unitree ROS 2 功能包

这是连接真实机器人的核心环节。

1. 安装特定依赖

需要安装 RMW 实现及相关库。

sudo apt update
sudo apt install ros-humble-rmw-cyclonedds-cpp
sudo apt install ros-humble-rosidl-generator-dds-idl
sudo apt install libyaml-cpp-dev
sudo apt install git

2. 克隆与编译工作空间

注意: 相比 Foxy 版本,Humble 自带的 rmw_cyclonedds 已兼容,无需手动编译 CycloneDDS。

# 进入工作空间
cd ~/unitree_ros2/cyclonedds_ws
source /opt/ros/humble/setup.bash
# 编译所有包
colcon build

等待编译完成,生成 install, build, log 目录后,克隆官方仓库:

cd ~
git clone https://github.com/unitreerobotics/unitree_ros2

3. 配置网络(连接真实机器人)

  1. 物理连接:用网线连接电脑与机器人。
  2. 查找网卡:运行 ifconfig 或 ip a,记下有线网卡名称(如 enp3s0 或 eth0)。
  3. 设置静态 IP:
    • 进入 Ubuntu 网络设置 -> IPv4。
    • 模式改为'手动'。
    • 地址:192.168.123.99
    • 子网掩码:255.255.255.0
    • 应用并重新连接。

4. 修改环境脚本 (关键步骤)

我们需要根据当前环境和网卡名称修改 setup.sh。

打开脚本文件:

gedit ~/unitree_ros2/setup.sh

修改前 (原始内容):

#!/bin/bash
echo "Setup unitree ros2 environment"
source /opt/ros/foxy/setup.bash
source $HOME/unitree_ros2/cyclonedds_ws/install/setup.bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces> <NetworkInterface name="enp3s0" priority="default" multicast="default" /> </Interfaces></General></Domain></CycloneDDS>'

修改后 (适配您的环境):

#!/bin/bash
echo "Setup unitree ros2 environment"
source /opt/ros/humble/setup.bash
source $HOME/unitree_ros2/cyclonedds_ws/install/setup.bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces> <NetworkInterface name="YOUR_INTERFACE_NAME" priority="default" multicast="default" /> </Interfaces></General></Domain></CycloneDDS>'

请将 YOUR_INTERFACE_NAME 替换为第 3 步中查到的实际网卡名(如 eth0)。

5. 连接与测试

  1. 启动机器人。
  2. 打开新终端,运行修改后的 setup.sh:
    source ~/unitree_ros2/setup.sh
    
  3. 查看话题列表:
    ros2 topic list
    
    若网络正常,应能看到 /api/sport/request, /lf/lowstate, /sportmodestate 等话题。
  4. 验证数据:
    ros2 topic echo /sportmodestate
    
    若看到状态数据刷屏,部署成功。

四、编译和运行示例

仓库提供了 example 工作空间用于验证。

cd ~/unitree_ros2/example
colcon build

加载环境后运行示例程序:

./install/unitree_ros2_example/bin/read_motion_state

您将看到格式化后的运动状态信息:

[INFO] [1697525196.266174885] [motion_state_suber]: Position -- x: 0.567083; y: 0.213920; z: 0.052338...

五、常见问题与总结

最关键的步骤是修改 setup.sh 脚本,确保指向 humble 并使用正确的网卡名称。

Q: 运行 ros2 topic list 看不到机器人话题? A: 99% 是网络问题。

  1. 检查物理连接:网线是否插好?机器人是否开机?
  2. 检查 IP 地址:电脑 IP 是否静态设置为 192.168.123.99?
  3. 检查 setup.sh:是否 source 了修改后的脚本?
  4. 检查网卡名称:CYCLONEDDS_URI 中的 name 是否绝对正确?
  5. 检查防火墙:尝试 sudo ufw disable 临时禁用。

Q: colcon build 编译失败? A: 确保编译前运行了 source /opt/ros/humble/setup.bash,并已安装 ros-humble-rmw-cyclonedds-cpp 等依赖。

目录

  1. 宇树 Unitree 机器人 ROS 2 Humble 环境部署指南
  2. 一、为什么选择 unitree_ros2
  3. 二、安装 ROS 2 Humble (Ubuntu 22.04)
  4. 1. 设置 UTF-8 区域
  5. 2. 添加 ROS 2 软件源
  6. 3. 安装 ROS 2 (Humble)
  7. 4. 安装构建工具
  8. 5. 设置环境变量
  9. 6. 测试安装
  10. 三、部署 Unitree ROS 2 功能包
  11. 1. 安装特定依赖
  12. 2. 克隆与编译工作空间
  13. 进入工作空间
  14. 编译所有包
  15. 3. 配置网络(连接真实机器人)
  16. 4. 修改环境脚本 (关键步骤)
  17. 5. 连接与测试
  18. 四、编译和运行示例
  19. 五、常见问题与总结

更多推荐文章

查看全部
  • 美以伊战中 AI 全场景落地细节与成效实战解析
  • Axum Rust Web 框架核心特性与实战指南
  • Qwen-Image-2512 V2 模型特性与 ComfyUI/WebUI 部署指南
  • 轻小说机翻机器人:日语小说自动翻译工具
  • 基于改进 YOLOv8 的美食图像分割系统实战
  • 5 种主流生成模型对比:VAE、GAN、AR、Flow 与 Diffusion 原理及代码
  • 从工具辅助到 AI 开发:前端新范式
  • AI 产品经理核心指南:角色定义、能力模型与工作流详解
  • AI 工作流实践:构建日报生成工具
  • 树莓派 libwebkit2gtk-4.1-0 安装与 GUI 启动优化
  • OpenClaw 配置飞书机器人完整指南
  • ArduPilot RemoteID Transmitter 实现无人机远程识别合规方案
  • 链表实战:LeetCode Hot 100 经典题目深度解析
  • Windows 下安装 OpenClaw 并接入飞书机器人实战指南
  • Android 面试高频问答与核心知识点解析
  • Xilinx Vivado FPGA 开发工具安装教程:官网下载与配置指南
  • AI 实现一镜到底视频:从教材插图到全景视频生成指南
  • AI 驱动的自动化运维机器人:从数字劳动力到智能协作者
  • 大龄零基础转行网络安全行业的可行性与学习路径
  • LOFAR 物理频谱特征提取与实现

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online