第一层:数据源层(感知层)—— 怎么“看”到人?

  • 目标:把人体的真实动作变成电脑能识别的数字信号。

  • 核心概念

    • 诺亦腾(Noitom)的 PNLink 盒子通过 Wi-Fi 把 23 个关节的数据发出来。

    • 数据格式有两种拿法:UDP 原始广播(简单)或 TCP 通过 MocapApi SDK(专业)。

    • 拿到的数据是:23 个关节的 3D 位置 + 四元数旋转(比如“大腿转了 30 度”)。


第二层:重定向层(认知层)—— 怎么让“人”适配“机器人”?

  • 目标:把“人的骨架”映射到“宇树 G1 的钢铁骨架”上。这是最核心的算法层。

  • 核心概念

    • 人的身高 1.8米,G1 机器人可能只有 1.3米,数据进来要先缩放

    • 人只有 23 个关键点,G1 有 29 个自由度(关节)。需要 IK(反向运动学) 来解算,比如根据“手的位置”反推“肘关节和肩关节的角度”。

    • 调参配置文件,定义了每个关节的“位置权重”和“旋转权重”(比如脚底要死死贴地,权重就高;手臂灵活,权重就低)。


第三层:传输层(通信层)—— 怎么把数据“快递”给机器人?

  • 目标:把算好的 29 个关节角度,从电脑端毫秒级发送给 G1 机器人。

  • 核心概念

    • 用 gRPC(谷歌的高性能远程调用框架)

    • 定义了一个叫 MocapFrame 的数据结构(包含 29 个关节位置、速度、根节点姿态等)。

    • 电脑是客户端,G1 机器人上的程序是服务端。建立双向流(Stream),一边发数据,一边接收机器人的状态反馈(比如缓冲区满了没)。

  • 你现在要关注:gRPC 为什么比普通 UDP 更稳(有反馈机制)。


第四层:控制执行层(运动层)—— 机器人怎么“动”起来?

  • 目标:G1 接收到角度指令后,如何让电机平滑、稳定地转动。

  • 核心概念

    • G1 收到数据后,并不是直接发给电机,而是先喂给一个 ONNX 神经网络(策略网络)。它会把生硬的动作“修饰”得更加平滑、符合物理规律。

    • 然后通过 Unitree SDK,把最终指令(LowCmd)以 50Hz(50次/秒)的频率通过网线/网络下发。

    • 机器人的物理模型(关节限位、电机扭矩)定义在 .xml 和 .yaml 文件里。


第五层:系统服务层(运维层)—— 怎么让程序稳定运行?

  • 目标:让你不用在黑框框里敲复杂命令,用鼠标点一点就能控制整个流程。

  • 核心概念

    • 这一层包装了 WebSocket 服务,提供 start/stop/status 接口。

    • 它的作用是进程管理:当你点击 GUI 的“Start”,它会把 xsens_core.exe 拉起来;点击“Stop”,就把它杀掉,防止僵尸进程。

Logo

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

更多推荐