1. 项目场景与开发背景梳理

这个 Jetson 项目,主要解决的是仿生脸 + 灵巧手 + 全身机器人控制的工程化实现。背景就是 2026 年 2 月接手的一个宇树 G1 机器人的全身控制项目。说来话长,这个全身控制项目,前面一共有五代目人在搞(我是第六个)。出乎意料的,前面几代目人全部卡死搞不出来,兜兜转转,到我这就成了第六代目。原本一月份左右得知这个项目,但是因为还有其他事情要忙,所以只能慢慢来,到二月份是都忙完了,准备大展拳脚了。整个项目其实是特别追赶匆忙的、先是实现全人形控制环境部署、然后实现全人形遥操、再到装有可以对话的仿生脸的机器人部署、再到舞肌手的控制和一体化,大概一个活小一个月吧,兜兜转转到 6 月多结束。最终是实现了一个可对话的 AI 全人形机器人。
图 1 全人形机器人照片

2. 全套技术栈复盘

Jetson 设备是宇树 G1 机器人自带的 Jetson Orin NX,JetPack 版本是 6.2,CUDA 是 12.1,TensorRT 版本是 10.7,采用 ROS Humble。主体是基于英伟达官方的 GearSonic 来进行全人形机器人的控制。其他部分 SDK,音频交互是用的宇树官方的音频 SDK,对于仿生头的控制,是用的我们内部自己写的基于音素的控制方案,对于灵巧手的控制,则是采用了舞肌的 SDK。原本打算走 Beyondmemic 方案来实现控制,后来因为开发一半,发现 GearSonic 开源了,故改为 GearSonic 来作为底层控制方案,Jetson 设备不是我们自己选的,是基于宇树官方提供的开发板,就是 Orin NX,无法更改,但是默认机载 JetPack 版本是 5.1.1,因为 GearSonic 官方要求的版本就是 JetPack 6 以上。

3. 全流程开发思路总结

最开始环境搭建,因为网络问题和系统预制组件问题,安装过很多个不同版本的 JetPack 系统,5.1.1 的那个 Beyondmemic 没有 leg_control 这个库,缺少最核心的组件,整个就跟废了一样,后来换了 JetPack 6.0 发现系统没有无线网卡驱动,修好之后(实际上是直接用有线来传输网络),运行 Robojudo 框架,缺少一个叫做 onnxruntime-gpu 的包,我在 CSDN 上花 88 元之后,发现有大佬解决这个问题,用的是他自编译的一个包,这个包只兼容 JetPack 6.0 不支持更高版本,没有发现类似的其他包或者是库。如果想在其他 JetPack 版本上运行,必须得自己编译。为了项目,只能先吃这个 6.0 系统的屎了。一通折腾,终于成了。成了当天,英伟达的 GearSonic 开源,老师让换去 GearSonic 方案,于是我又开始搞。这个方案要求在 JetPack 6.2 上运行,得了。又得重新烧录系统。不过当时发现一个问题,进系统后没网,后来发现是系统时间不对,导致连不上网络。修改之后就好了。结果重启之后又没网了,发现是重启之后就忘记了时间了,导致又回 1980 年了,后来找到是 RTC 设置问题,一通修,终于在重重困难之后修好了。然后就是熟悉的装桌面环境,配置 RDP 服务,后来发现默认浏览器在桌面环境中打开报错,又开始修,具体怎么解决的经验忘了,好像是安装了个火狐 QAQ。总之开发环境弄好了,不用每次调试都外接显示器和手机共享的有线网络了。后面开始开发,按照英伟达官方的文档,就是下面这个 https://nvlabs.github.io/GR00T-WholeBodyControl/,一点点把适合的 TensorRT 安装上以及配置各种环境,解决各种 just build 报错之类的问题。终于是搞定了。
图 2 全是现阶段文档,配个环境那会跟碎嘴子一样

后来先是实现工具,能让机器人按照特定动作动起来:根据 MP4 视频中的人物,作出符合的动作。(MP4 -> GVHMR -> GMR -> 机器人动作),整套流程挺顺利的,之后还开发了能编辑人物动作的软件。
图 3 全人形机器人动作编辑工具界面

实现对机器人动作的编辑修改等功能,按照时间以匹配正确的电机动作。后来根据需求,制作了一半的数据采集系统(只差手,但是做的太慢了,后来被砍了)。之后又把团队哥们儿做的头也给接入整个机器人,我负责程序和系统部分,硬件的小伙伴忙炸了,每天都在改结构件和做调整。(尤其摔倒之后,特别感谢臣凯大哥的鼎力支持和维修)。通过之前接入 AI 算力的能智能对话的头,机器人能根据人的交流来做各种动作。以及又根据官方文档,接入了 Pico VR 为方案的遥操系统,可以实时运控动作。也是买错版本了,官方说 Pico4 和 Pico4 Pro,结果真买到手,发现官方示例给的是 Pico4 Ultra 版本的安装包,低版本的安不上,我又开始反编译降 SDK 版本,也是成功让 Pico4 Pro 跑起来了。遥操搞完了,又准备接入灵巧手,G1 官方带的和推荐的是 Dex3 的手,只有三指。我们这边实验室有五指的舞肌灵巧手。于是我又开始接入。舞肌手的官方资产还是挺不错的,很快就能动起来了,后来就是设计连接电路。发现舞肌手一只手就得 10A,官方电池很容易过载,然后限流保护,然后整个机器人瞬间断电摔倒,后来只能说给机器人写了个带缓速过度的代码,终于是让机器人较为安全的动起来了。后面就是跟哥们儿一起给机器人穿衣服带头发,录制 Demo 巴拉巴拉,赶到非常晚。最终也是把论文需要的东西做出来了,这个是我负责部分的图像。(我不参与论文直接撰写,但是论文里面的图啥的基本上都是我和我另外两个小伙伴搞出的 TAT)
图 4 全人形机器人对话、演讲、唱京剧

图 5 根据 SMPL 来让机器人作出各种动作

总之最终是搞定了,录了很多动作和示例,能放在论文中。论文应该投最新的 CoRL 了,也欢迎大家多多关注。

4. 难点排查与问题解决沉淀

具体实现过程中有各种环境问题,上文也都在碎碎念中说了(笑)。调个环境,wuji 要求 Python3.10,GearSonic 还不一样,得多环境融合。像是硬件适配线路,我们做了很多版供电,有用 G1 官方背板上 12V 输出给手供电的,后来因为供电不足,也通过 G1 电池直接引出 50V 电来降压之后给手供电的,一块电源转换版的电流不够,那就两块并联在一起。还有什么 G1 原装头要拆下来,得把主板整体拆下来把雷达的线什么给拔了。舞肌手不能直接装宇树 G1 的手腕上,所以还得自己建模制作特定的转接头(我哥们儿做的)。GearSonic 代码整合舞肌手控制代码之后,因为逻辑问题,手一断连,身体的控制也一起退出,机器人直接倒地,我们就把舞肌手的代码和 GearSonic 来隔离运行,确保报错了也不闪退,断连之后能热重连,还能正常控制手部。我们当时遇到的问题反正全是坑,一个一个解决的过程,也是非常有趣的。

5. 项目效果量化与长期优化思考

全人形机器人控制频率我们定为 30Hz,延迟主要在 AI 系统方面,因为 AI 作出语音对话之后,得要时间才能得到大语言模型的回复,所以延迟肉眼可见的在 2-3 秒之间。所以还是比较慢的,因为对话模型用的是豆包的 TTS,通用问题的准确率回答还是在可接受范围内,问他一些基础问题,还是能正确回答的,但是也是会存在大语言模型固有的幻觉问题没能解决。我们的优势原本是第一款全人形的机器人(之前几乎没有把仿生头和灵巧手一齐接入全人形机器人的),但是优必选的情感陪伴机器人出炉之后,真觉得我们自己做的就是全是不足,我们的机器人的头可以说是比优必选的牛逼,是我们结构工程师的杰作,稳定性和效果都很好,但是对于身体来说,我们的全机械人形,必然比不过人家的全硅胶表面的仿真皮肤结构的。我们的看着太生硬和愚钝了,给人一种恐怖谷效应。如果说后期能大改身体,通过 GearSonic 重新训练一套新的全带皮肤的人形的,肯定会更好!之后迭代可以考虑先改进手部牢固性,现在用的舞肌手,虽然能很好做各种灵巧操作,但是对于人形机器人来说,过于容易损坏了,轻微的磕碰就会导致机械故障。(至少换修了 3 台手了),我们这一套整体成本也比较高,手得要 10 万,宇树 G1 得要 20 万,头最少也得 10 万吧。成本有点搂不住(是的,只是买来纯新的硬件,不算我们改装调试的还)。相比优必选的,感觉就差远了。这个是非常有前景的改进。我也希望我们的全人形情感陪伴机器人能越做越好。愿世界拥抱和平。

Logo

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

更多推荐