☰
如何远程控制 Unitree Go2:OM1 三种操控方式完整指南
2026/10/20 1:52:28 网站建设 项目流程

如何远程控制 Unitree Go2:OM1 三种操控方式完整指南

【免费下载链接】OM1Modular AI HAL (Hardware Abstraction Layer) for Robots项目地址: https://gitcode.com/GitHub_Trending/om/OM1

读完本文,你就能用 OM1(Modular AI HAL,给机器人装"神经中枢"的开源系统)远程指挥 Unitree Go2 机器狗:办公室按键盘它就走,手柄推杆它就转向,甚至隔着一个公网发命令也能让它待命巡逻,状态还能回传。

原理速览

整条链路很短:你的指令从控制端经 WebSocket(跨网络传消息的长连接协议)发到 OM1 服务器;OM1 再翻译成 DDS 报文(机器与外设之间传数据用的实时协议)发给 Go2;Go2 的传感器数据原路返回,变成你能看到的状态。

底层编解码与远程动作的实现,详见 internal/zenoh/ 与 plugins/actions/。

动手前的核对清单

先对照下表清点,缺一项后面都会卡住:

项目要求是否可选
Unitree Go2 EDU 机器狗硬件本体,网线可直连必需
控制端电脑Linux 或 macOS必需
稳定网络有线直连,或 5G Wi-Fi必需
CycloneDDSDDS 通信中间件,本地编译安装必需
硬件驱动依赖Linux 装libhidapi-dev、python3-dev;macOS 装 hidapi必需
游戏手柄Xbox / PS4 手柄均可可选

第一次连通:四步走到本地通信成功

第 1 步:物理连接。用网线直连 Go2 EDU 和控制端电脑,把控制端网卡设为静态 IP192.168.123.99、掩码255.255.255.0,然后在配置里把unitree_ethernet指向该网卡名(如en0)。

第 2 步:编译 CycloneDDS。源码安装并带着示例一起编译:

git clone https://gitcode.com/eclipse-cyclonedds/cyclonedds -b releases/0.10.x cd cyclonedds && mkdir build install && cd build cmake .. -DCMAKE_INSTALL_PREFIX=../install -DBUILD_EXAMPLES=ON && cmake --build . --target install

第 3 步:配置环境变量。把CYCLONEDDS_HOME、CMAKE_PREFIX_PATH、CYCLONEDDS_URI指到安装目录,其中CYCLONEDDS_URI里声明你的网络接口名,写入.zshrc持久生效。

第 4 步:验证发现能力。

cd $CYCLONEDDS_HOME/share/CycloneDDS/examples/listtopics ./listtopics

看到成片的alive:行,尤其是rt/lowstate、rt/sportmodestate这类主题,说明链路已经打通。

三种操控方式怎么选

先给结论,按你的场景对号入座:

操控方式输入设备适用场景启动命令上手难度
键盘控制键盘 WASD远程桌面、临时指挥uv run system_hw_test/om_keyboard_remote_control.py低
手柄控制Xbox / PS4 手柄本地精细操作uv run src/run.py unitree_go2_basic中
跨网络控制键盘 + 公网不在机器人身边本地运行键盘控制脚本并加--server wss://服务器:8080中

键盘方式最直白,演示一下:

uv run system_hw_test/om_keyboard_remote_control.py

W 前进、S 后退、A 左转、D 右转。脚本持续读取按键集合,把线性速度和角速度打包成 DDS 指令发出,松手即停。手柄方式则映射了站立/坐下切换、左右摇杆移动与姿态、肩键切速度档;最大速度与死区这类参数在 Go2 的配置项move_go2_teleops里调(运动控制插件,详见 plugins/actions/)。

跨网络方式:在公网服务器上跑uv run src/run.py full_autonomy部署 OM1,本地脚本追加--server参数指向它即可。公网暴露记得配 API 密钥与 IP 白名单,别让任何人随便指挥你的狗。

出问题怎么办

现象 / 报错原因解决动作
Channel factory init error网卡名配错ifconfig确认真实接口名,改回配置里的unitree_ethernet
listtopics 列不出 Go2 主题网线或 IP 没通先ping 192.168.123.161,通了再重跑 listtopics
控制明显延迟网络或数据量偏大有线环境设 MTU 1500 避免分片;视频降到 640x480、15fps、h264 压缩;QoS 在cyclonedds/cyclonedds.xml里调

还能拿它做什么

家庭安防巡逻。把巡逻路线存成 preset,让狗定点循环巡逻,地图上能看到它的点位与路线:

uv run src/actions/navigate_location/ --preset patrol --repeat

远程教育演示。学生隔着 Web 的 Robot Control 界面选姿态与步态,实时指挥教学演示用的机器人:

uv run src/run.py unitree_go2_basic

科研数据采集。建图模式跑起来,数据直接推到远端存储,不用来回倒:

uv run src/run.py unitree_go2_mapper --remote-storage s3://your-bucket/path

另外两件进阶的事:摄像头流可以远程拉起,在浏览器看实时画面;长时间遥控时开低功耗模式(power_manager.py --mode eco)并设置自动休眠,电量更扛用。

从一根网线到跨公网指挥,OM1 把 Go2 的远程控制拆成了"连得上、控得动、看得见"三件事,按上面的顺序做就行。想继续深入,看这几份文档:

  • Go2 接入与配置细节:docs/robotics/unitree_go2_quadruped.md
  • 全自主架构总览:docs/full_autonomy_guidelines/architecture_overview.md
  • 参与开发:CONTRIBUTING.md

【免费下载链接】OM1Modular AI HAL (Hardware Abstraction Layer) for Robots项目地址: https://gitcode.com/GitHub_Trending/om/OM1

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询