Skip to content

SDK 使用指南

Go2 机器人主要通过 Unitree SDK2 进行开发。SDK2 基于 DDS (Data Distribution Service) 通讯,支持高性能的实时控制。

官方资源

环境准备

算力板 (192.168.123.18) 上,SDK2 环境通常已预装。

如果是在自己的开发机上:

  1. 确保已安装 CMake, Build-essential。
  2. 克隆 SDK 仓库:
    bash
    git clone https://github.com/unitreerobotics/unitree_sdk2.git
    cd unitree_sdk2

Python SDK (推荐入门)

Python SDK 适合快速验证逻辑和编写非实时性业务。

1. 依赖安装

bash
cd unitree_sdk2
pip3 install -e .

2. 运动控制示例 (High Level)

以下代码展示如何控制机器人站立:

python
import time
import sys
from unitree_sdk2py.core.channel import ChannelPublisher, ChannelFactoryInitialize
from unitree_sdk2py.go2.sport.sport_client import SportClient

# 初始化 DDS
ChannelFactoryInitialize(0, "lo") # 本机调试用 lo,实机用 eth0 或 wlan0

# 创建运动控制客户端
client = SportClient()
client.SetTimeout(10.0)
client.Init()

print("Robot standing up...")
# 发送站立指令
client.StandUp()
time.sleep(2)

print("Hello world (Action)...")
# 发送打招呼动作
client.Hello()

3. 获取状态示例

python
# 订阅运动状态
def HighStateHandler(msg):
    print("Position:", msg.position)
    print("Velocity:", msg.velocity)

# ... 初始化代码同上 ...
# 只需要 Publisher 改为 Subscriber 即可监听 "rt/sportmodestate" 话题

C++ SDK (高性能)

C++ SDK 适合编写核心算法和底层控制。

1. 编译示例

bash
cd unitree_sdk2
mkdir build
cd build
cmake ..
make

2. 运行示例

bash
# 运行 High Level 示例 (运动控制)
./bin/high_level_demo "eno1"  # 注意替换为实际网卡名

常见控制模式

Go2 提供了多种控制层级:

  1. Sport Mode (运动模式):

    • API: SportClient
    • 功能: 站立、移动、舞蹈、特殊动作。
    • 适用: 绝大多数应用开发。
  2. Low Level (底层控制):

    • API: LowCmd / LowState
    • 功能: 直接控制每个电机的力矩、位置、速度 (Kp/Kd)。
    • 适用: 步态算法研发。

警告

Low Level 模式下没有安全保护,错误的指令可能导致机器人摔倒损坏或伤人。请务必将机器人吊起调试

RoGo Engineering Team