跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashAI

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

本指南详细说明了如何在 Ubuntu 22.04 配合 ROS 2 Humble 环境下部署宇树 Unitree 机器人驱动。重点涵盖了 ROS 2 基础安装、unitree_ros2 功能包编译、以及最关键的静态 IP 网络配置与 setup.sh 脚本修改。通过配置 CycloneDDS 实现 ROS 2 节点与机器人底层的直接 DDS 通信,支持 Go2、B2、H1 等型号的真实硬件接入与状态数据读取。

邪神洛基发布于 2026/4/11更新于 2026/7/2455 浏览

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

本文旨在为希望在 Ubuntu 22.04 + ROS 2 Humble 环境下开发宇树(Unitree)机器人的开发者提供一份从零开始的部署指南。我们将配置 unitree_ros2 功能包,实现 ROS 2 节点与机器人底层 DDS 系统的直接通信。

一、为什么选择 unitree_ros2?

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

本教程将带你走通这个配置流程,并针对 Humble 环境优化了步骤,特别是跳过了 Foxy 版本中复杂的 CycloneDDS 编译环节。

核心环境要求:

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

二、安装 ROS 2 Humble

如果你已经装好了 ROS 2 Humble,可以跳过这一步。

1. 设置区域语言

确保系统支持 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. 添加软件源

添加 GPG 密钥并配置 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

3. 安装 ROS 2 桌面版

包含 RVIZ 和常用示例工具。

sudo apt update
sudo apt install ros-humble-desktop

4. 安装构建工具

colcon 是 ROS 2 的标准构建工具,务必确认已安装。

sudo apt install python3-colcon-common-extensions

5. 环境变量配置

将 ROS 2 加载脚本加入 .bashrc,这样每次打开终端都会自动生效。

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

6. 验证安装

打开两个终端窗口测试。 终端 1:

ros2 run demo_nodes_cpp talker

终端 2:

ros2 run demo_nodes_py listener

如果 Listener 能收到 Talker 的消息,说明 ROS 2 环境正常。

三、部署 Unitree ROS 2 功能包

这是连接真实机器人的关键步骤。

1. 安装依赖

除了基础 ROS 包,还需要特定的 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 版本需要手动编译 CycloneDDS,但 Humble 自带版本已兼容,我们直接编译即可。

# 进入工作空间目录
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. 网络配置

要让电脑和机器人通信,必须设置静态 IP。

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

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

unitree_ros2 提供了 setup.sh 来配置 DDS,我们需要根据当前环境修改它。

打开脚本文件:

gedit ~/unitree_ros2/setup.sh

你需要做两处关键修改:

  1. 将 source /opt/ros/foxy/setup.bash 改为 source /opt/ros/humble/setup.bash。
  2. 将 <NetworkInterface name="enp3s0" ...> 中的网卡名改为你实际使用的网卡名(如 eth0)。

修改后的内容大致如下:

#!/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>'

5. 连接与测试

启动机器人后,先在新终端运行你修改好的 setup.sh:

source ~/unitree_ros2/setup.sh

然后查看话题列表:

ros2 topic list

如果网络配置正确,你应该能看到 /api/sport/request, /lf/lowstate, /sportmodestate 等来自机器人的话题。

尝试读取状态:

ros2 topic echo /sportmodestate

如果数据开始刷屏,恭喜,部署成功!

四、编译和运行示例

仓库中还提供了一个 example 工作空间用于演示。

  1. 进入 example 目录并编译:
cd ~/unitree_ros2/example
colcon build
  1. 加载环境(必须执行):
source ~/unitree_ros2/setup.sh
  1. 运行示例程序(例如读取运动状态):
./install/unitree_ros2_example/bin/read_motion_state

你将看到格式化的位置、速度等信息输出。

五、常见问题排查

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

  1. 检查网线是否插好,机器人是否开机。
  2. 确认电脑 IP 是否静态设置为 192.168.123.99。
  3. 确认是否 source 了修改后的 setup.sh。
  4. 检查 CYCLONEDDS_URI 中的网卡名是否绝对正确。
  5. 尝试临时关闭防火墙:sudo ufw disable。

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


希望这份指南能帮你顺利跑通环境。如果在实际操作中遇到其他特定问题,建议查阅官方 GitHub 仓库的最新 Issue。

目录

  1. ROS 2 Humble 环境下宇树 Unitree 机器人部署指南
  2. 一、为什么选择 unitree_ros2?
  3. 二、安装 ROS 2 Humble
  4. 1. 设置区域语言
  5. 2. 添加软件源
  6. 3. 安装 ROS 2 桌面版
  7. 4. 安装构建工具
  8. 5. 环境变量配置
  9. 6. 验证安装
  10. 三、部署 Unitree ROS 2 功能包
  11. 1. 安装依赖
  12. 2. 克隆工作空间
  13. 进入工作空间目录
  14. 确保环境已加载
  15. 编译所有包
  16. 3. 网络配置
  17. 4. 修改环境脚本 (最关键一步)
  18. 5. 连接与测试
  19. 四、编译和运行示例
  20. 五、常见问题排查
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • STM32 驱动 MPU6050 传感器及四元数姿态解算
  • Qwen3-TTS 多语种语音合成实战:Python API 调用与 WebUI 使用指南
  • Copilot 最佳使用方式与深度配置指南
  • Stable Diffusion v1-5 本地部署与 LoRA 微调实战
  • Claude Skills 实战:自动化工作流与前端设计生成
  • VSCode 本地运行 DeepSeek 模型配置指南
  • FastGPT 集成 MCP 协议构建工具增强型智能体
  • AI 安全:Stable Diffusion 视觉提示词注入攻击原理与实现
  • Stable Diffusion 3.5 FP8 模型在消费级显卡上的部署与性能优化
  • Python 实现 MCP 客户端调用高德地图天气查询示例
  • 世界模型发展脉络整理:理解世界与预测未来综述
  • Spring Cloud 与 Dubbo 架构哲学与实战选型
  • 2025 大模型行业现状与方向调研:LLM、MLLM 及 AIGC 赛道分析
  • 支持向量机(SVM)原理与 Python 代码实现:分类与回归详解
  • 基于 Llama 3 构建 RAG 语音助手:集成 Qdrant、Whisper 与 LangChain
  • 2026 年 Python+AI 入门指南:从零基础到实操落地,避开新手常见坑
  • Vivado 工程创建与 FPGA 开发流程指南
  • Go 仿真实践:免疫治疗门诊排队、irAE 与床位挤兑建模
  • DeerFlow 2.0 开源介绍:基于 LangGraph 的智能体编排框架
  • AI 编程范式:从 Vibe Coding 到 Spec Coding

相关免费在线工具

  • RSA密钥对生成器

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

  • Mermaid 预览与可视化编辑

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

  • 随机西班牙地址生成器

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

  • Base64 字符串编码/解码

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

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online