Day1 unitree_G1人形机器人“身外化身”基础学习
第一层:数据源层(感知层)—— 怎么“看”到人?
-
目标:把人体的真实动作变成电脑能识别的数字信号。
-
核心概念:
-
诺亦腾(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”,就把它杀掉,防止僵尸进程。
-
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)