本文基于Unitree官方开发文档,详细总结go2机器人unitree_sdk2的使用流程,包含环境配置、SDK安装、例程编译与运行等核心步骤,并附上常见问题及解决方案,助力开发者快速开展机器人开发工作。

一、开发环境准备

(一)系统环境要求

推荐使用Ubuntu 20.04操作系统进行开发,目前暂不支持Mac、Windows系统,且不能直接在Go2机器人的内置电脑上开发。

(二)网络环境配置

Go2机器人内置电脑的固定IP地址为192.168.123.161,需将用户电脑与机器人通信的网卡配置在123网段,具体步骤如下:

  1. 用网线连接Go2机器人与用户电脑,开启电脑的USB Ethernet功能;

  2. 配置USB Ethernet的IPv4参数:

    • 方法选择“Manual(手动)”;
    • 地址填写192.168.123.xxx(xxx可自定义,如222,不可设为161);
    • 子网掩码设置为255.255.255.0
    • 网关无需填写。
      在这里插入图片描述
  3. 网络连通性测试:打开终端,输入以下命令,若出现连续的响应信息则表示连接成功:

ping 192.168.123.161
  1. 查看123网段对应的网卡名称:执行ifconfig命令,找到IP为192.168.123.xxx对应的网卡名(如enxf8e43b808e06),后续运行例程需用到该名称。

二、unitree_sdk2安装与编译

(一)SDK安装

假设工作目录为用户主目录(~),安装步骤如下:

  1. 下载unitree_sdk2压缩包,解压至用户主目录(~);
  2. 打开终端,执行以下命令安装至默认目录:
cd ~/unitree_sdk2/
mkdir build
cd build
cmake ..
sudo make install
  1. 若需安装到指定目录(如/opt/unitree_robotics),执行以下命令:
cd ~/unitree_sdk2/
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unitree_robotics
sudo make install

注:修改CMAKE_INSTALL_PREFIX后的路径可自定义安装目录。

(二)例程编译

  1. 终端中执行以下命令编译例程:
cd ~/unitree_sdk2
mkdir build
cd build
cmake ..
make
  1. 编译成功判定:进度达到100%且无报错,会显示类似以下的目标文件构建信息:
[  5%] Built target test_jsonize
[ 10%] Built target wireless
[ 15%] Built target humanoid
...
[100%] Built target go2_sub
  1. 编译产物位置:生成的例程二进制文件位于~/unitree_sdk2/build/bin目录下,绿色字符对应的文件即为可执行文件。

三、例程运行演示

unitree_sdk2的例程分为高层控制例程(如high_level)和底层控制例程(如low_level),以下以两个常用例程为例,展示完整运行流程。

(一)low_level例程(控制右前腿摆动)

  1. 前置准备:
    • 关闭Go2主运控服务(sport_mode):通过App-设置-服务状态关闭,或参考stand_example_go2例程调用ServiceSwitch接口关闭;
    • 确保机器人四腿悬空,避免运行时硬件受损。
  2. 运行命令:终端中执行以下命令(替换网卡名为步骤一中查询到的123网段网卡名):
cd ~/unitree_sdk2/build/bin
sudo ./low_level enxf8e43b808e06
  1. 成功标志:终端无报错,机器人右前小腿呈规律性摆动。

(二)stand_example_go2例程(趴下/站立切换)

  1. 前置准备:确保机器人处于静止趴下状态,无需手动关闭主运控服务(例程会自动关闭)。
  2. 运行命令:
cd ~/unitree_sdk2/build/bin
sudo ./stand_example_go2 enxf8e43b808e06
  1. 成功标志:机器人从趴下状态起身站立,维持一段时间后自动趴下。

四、常见问题及解决方案

(一)网络连接失败(ping 192.168.123.161无响应)

  1. 排查要点:
    • 网线连接是否牢固,USB Ethernet功能是否开启;
    • 电脑网卡IP是否正确配置在123网段(需与192.168.123.161同网段);
    • 子网掩码是否设置为255.255.255.0
  2. 解决方案:重新插拔网线,检查网络配置参数,确保无IP冲突(避免多台设备使用同一123网段IP)。

(二)编译报错(make命令执行失败)

  1. 常见原因:
    • 缺少CMake依赖或依赖版本过低;
    • 工作目录权限不足;
    • SDK压缩包解压不完整。
  2. 解决方案:
    • 安装对应依赖:sudo apt-get install cmake build-essential
    • 确保用户对~/unitree_sdk2目录有读写权限,或使用sudo提升命令权限;
    • 重新下载SDK压缩包并解压,避免文件缺失。

(三)例程运行时机器人无响应

  1. 排查要点:
    • 网卡名称是否填写正确(需与123网段对应的网卡名一致);
    • 底层控制例程运行前,主运控服务(sport_mode)是否已关闭;
    • 机器人是否处于例程要求的初始状态(如stand_example_go2需趴下状态)。
  2. 解决方案:
    • 重新执行ifconfig确认网卡名,替换命令中的错误名称;
    • 通过App再次确认主运控服务已关闭;
    • 调整机器人初始姿态,按例程要求摆放。

(四)运行例程时权限报错

  1. 原因:例程需要root权限才能与机器人通信。
  2. 解决方案:在运行例程的命令前添加sudo,如sudo ./low_level enxf8e43b808e06

注意事项

  1. unitree_sdk2会持续更新,build/bin目录下的可执行文件可能与本文示例不一致,以实际编译结果为准;
  2. 运行底层控制例程时,必须关闭主运控服务,否则会导致机器人接收多个控制指令而失控;
  3. 操作机器人时需注意安全,避免在机器人运动范围内放置障碍物,四腿悬空操作时需做好防护,防止机器人跌落损坏。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐