先看效果

请添加图片描述
以上是我们正在制作开源底盘课程在英伟达 Jetson 上跑 VLN 仿真的效果。
如果你感兴趣,麻烦点个start 底盘课程,会给我们莫大的动了!
指令是 Locate the refrigerator in the room and stop beside it。我们的底盘小车在 MuJoCo 里走走停停,每停一次就向模型要下一段路,哈哈哈。

系统和版本

项值
计算平台Jetson AGX Orin 32GB,载板 reComputer Robotics J501(Seeed)
VLN 模型LightNav-0(LightOrigins 开源),GPU 推理
仿真MuJoCo,CPU 物理线程
机器人DM-H65,课程用两轮差速底盘

相机是虚拟的约 1 米观察配置,动力学参数仍是估计值,这两点后面还会提到。实车标定没有开始,本文所有内容都在仿真里。

从 CAD 到数字孪生

在这里插入图片描述

底盘模型从 Onshape 导出,处理成 45 个 STL,在 MuJoCo 里拼出来。车体是自由的,两个驱动轮带有限力矩,四组真实脚轮各自有转向和滚动关节,碰撞用 47 个真实形状,尺寸直接来自 CAD,驱动轮半径 0.0854 米。碰撞包络里把 4 个脚轮的完整外形都算了进去,安全检查用 20 毫米净空,再留 10 毫米给模型和动力学的不确定度。

这里想强调一点,脚轮不能用一个圆柱糊弄。脚轮会转、会摆,转向姿态不同,扫过的形状差很多。严格模式的制动分支预演里,脚轮包络是被重点覆盖的对象之一。

闭环怎么跑

一次完整循环是这样的。在这里插入图片描述
指令进来,机器人先稳定停车,按 4Hz 顺序采集真实的 4 帧历史画面,发给 GPU 上的模型。模型输出 10 个累计 SE(2) 路径点,坐标约定是 X 向前、Y 向左、逆时针偏航为正,只在采集时的根位姿上转换一次到世界坐标,不做重复积分。路径按原始 10 点做碰撞检查,起点到首点、当前位置的连接区间、还没走过的路线都要查,不裁剪危险后缀,也不本地绕行生成替代路。检查通过就交给 MPC 跟踪,走若干段,每段 0.5 秒。走完或者路径用尽,停车,重新观察,要下一次预测。

运动层在连续模式里用的是简化差速运动学,界面上也标了 simplified differential kinematics。这是刻意的取舍,换来流畅的连续闭环,代价是它不是完整动力学。完整物理在严格模式那一侧。

视频里能看到的三种恢复行为,都是闭环的一部分,不是异常。

预测被拒绝,停车重新观察,重新规划计数加一。路径过期,原地等待,不拿旧路径硬走。模型输出 STOP,立刻停车。我的体会是,恢复行为比一次顺利的演示更能说明系统成熟度。

CPU 和 GPU 的分工

环节位置说明
LightNav-0 推理GPU每次停车后发请求,一次真实预测
4Hz 帧采集与历史队列CPU真实 4Hz FIFO,采帧和耗时工作解耦
RVQ 解码、路径坐标转换CPU10 点 SE(2),只转换一次
碰撞检查与安全审计CPU连续模式轻量检查,严格模式加逐段认证
MPC 跟踪CPU10Hz
MuJoCo 物理CPU5 毫秒步长
界面渲染浏览器录屏里约 23 到 26 FPS

录屏界面上实时因子显示约 1.0,指的是仿真按自己的节奏在跑,不是端到端实时性承诺。4Hz 采样、10Hz MPC、5 毫秒物理这套频率组合是当前配置,不是普适最优解。

最容易骗自己的几个坑

把模型 STOP 当成到达。模型说停只代表它认为该停了,自由指令下没有评分器兜底。要下结论,就得挂注册评测,按距离、速度、时间一起判。

把简化运动学当完整物理。连续模式的流畅是拿动力学精度换的,写文案和做汇报的时候要把 simplified differential kinematics 这句话带上,不然就是给自己挖坑。

靠裁剪危险后缀换流畅。严格模式明确不做这件事,宁可走不动,也不执行没认证的路径。这个取舍我认为是对的,慢可以优化,先撒谎再圆不回来。

把离线资格当在线验证。287 项回归全过只说明改动没破坏已测行为,跑没跑得动,得重新跑那次失败的任务才算数。

下一步

我们将模型接入真实的底盘进行实机的闭环测试,感兴趣可以来我们开源仓库点个小星星,及时收到最新状态。

资料和致谢

代码和课程在 GitHub:
https://github.com/Seeed-Projects/mobile-robot-full-stack-course
Seeed-Projects/mobile-robot-full-stack-course
注: VLN 是第 7 模块的方向。
VLN 模型是 LightNav-0,来自 LightOrigins 的开源工作,仿真用 MuJoCo,硬件是 Seeed 的 Jetson 平台。上一篇把同一套大脑接进 Microduck 的记录在这里https://blog.csdn.net/a1691125058/article/details/168117615?spm=1001.2014.3001.5501。

仿真实录,开发中版本。有具体问题或者想看哪部分的细节,评论区聊。

Logo

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

更多推荐