一、项目原始目标

项目核心目标:实现人体动作捕获 → 人形机器人动作复现

整体链路:

诺亦腾动捕服
        |
        |
PNLink UDP
        |
        |
PC端动作解析
(xsens_core.exe)
        |
        |
人体动作数据
        |
        |
动作重定向
(GMR)
        |
        |
机器人动作控制
(Unitree G1)
        |
        |
ONNX优化
        |
        |
LowCmd
        |
        |
29个电机执行

原始重点:

  • 动作采集
  • 人体骨骼数据解析
  • 人体动作映射到机器人
  • 机器人执行动作

二、项目深入后发现的问题

随着源码分析和系统拆解,发现原方案低估了实际算法复杂度。

原本看似:

采集动作
 ↓
传给机器人

实际上包含多个核心算法环节:

人体动作
 |
 |
人体骨骼理解
 |
 |
坐标转换
 |
 |
23人体关节
 |
 |
GMR重定向
 |
 |
IK求解
 |
 |
29机器人关节
 |
 |
运动优化
 |
 |
控制执行

因此算法工作量远超过简单数据传输。


三、主要新增/修改内容总结


1. 增加人体动作重定向算法模块(核心新增)

人体 → G1动作映射算法

包括:

(1)关节拓扑映射

建立:

人体肩

↓

G1肩部多个自由度

例如:

人体:

Shoulder
Elbow
Wrist

转换:

G1 Shoulder Pitch
G1 Shoulder Roll
G1 Shoulder Yaw
G1 Elbow

(2)bvh_xsens_to_g1.json映射体系

新增理解和使用:

字段:

  • source
  • position_weight
  • rotation_weight
  • position_offset
  • quaternion_rotation_offset

作用实现:

人体骨骼姿态

↓

机器人关节姿态

(3)IK逆运动学优化

新增:

人体空间位置:

手的位置
脚的位置
身体姿态

转换:

机器人:

关节角度

需要:

  • IK求解
  • 权重优化
  • 关节限制
  • 姿态修正

2. 增加机器人29 DOF运动模型理解

原方案:只关注动作发送。

修改后:增加:G1运动结构解析

包括:

左腿
 ↓
右腿
 ↓
腰部
 ↓
左臂
 ↓
右臂

29个自由度顺序确认,作用保证:

人体动作

↓

正确机器人关节

↓

正确电机

3. 增加机器人运动控制算法分析

机器人不能直接执行人体动作,中间需要:

目标动作

↓

控制器

↓

电机

涉及:

  • PD控制
  • 阻抗控制
  • 姿态跟踪
  • 平衡控制
  • 关节限位
  • 动作平滑

尤其人形机器人:

必须保证:

  • 不跌倒
  • 姿态稳定
  • 动作连续

4. 增加ONNX动作优化模块

新增:

动作输入

↓

ONNX模型

↓

优化动作

↓

LowCmd

包括:

  • 模型输入输出接口
  • 推理流程
  • 实时部署
  • 动作优化

5. gRPC通信架构重新设计

原方案:

MocapFrame

↓

gRPC Stream

↓

G1 Controller

发现问题:

gRPC适合:

  • 云服务
  • RPC调用

不适合:

高频机器人动作流。

问题:

  • TCP队头阻塞
  • Stream缓存堆积
  • 延迟抖动
  • 旧动作阻塞新动作

6. 提出gRPC → ZMQ实时通信优化方案

新增:ZeroMQ PUB/SUB通信架构

原:

gRPC Stream


改:

ZMQ PUB/SUB

新结构:

GMR

↓

MotionFrame

↓

ZMQ PUB

↓

网络

↓

ZMQ SUB

↓

G1 Controller

7. 增加MotionFrame实时协议设计

新增MotionFrame Header。包含:

version

frame_id

timestamp

send_time

payload_size

DOF

crc

作用:解决:

  • 丢帧
  • 乱序
  • 延迟统计

8. 增加实时性能评价体系

新增:通信性能测试。

延迟

send_time

↓

receive_time

帧率

FPS

丢帧率

frame_id gap

抖动

Jitter

9. 增加MuJoCo仿真验证体系

原:直接考虑真机。

修改:增加数字孪生验证。

路线:

GMR

↓

ZMQ

↓

MuJoCo G1

↓

ONNX

↓

动作执行

验证:

  • 动作映射正确性
  • 通信延迟
  • 控制稳定性
  • 算法效果

四、重新划分后的算法工作内容

模块1:人体动作理解算法

内容:

  • 动捕数据解析
  • 骨骼结构处理
  • 姿态转换

模块2:人体-机器人重定向算法 

核心:

  • 23→29关节映射
  • 坐标转换
  • IK优化
  • 四元数修正
  • 权重调整

模块3:机器人动作生成算法 

内容:

  • 关节目标生成
  • 动作平滑
  • 姿态约束
  • 稳定控制

模块4:实时动作传输算法 

内容:

  • MotionFrame设计
  • 时间同步
  • 丢帧处理
  • 最新状态保持

模块5:模型推理算法 

内容:

  • ONNX部署
  • 动作优化
  • 实时推理

模块6:仿真验证算法 

内容:

  • MuJoCo模型
  • 虚实一致性验证
  • 参数调整
Logo

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

更多推荐