使用DISCOVERSE仿真器与ACT算法完成机器人任务并部署在RDK X5开发板的经验分享


一、基本目标

通过DISCOVERSE仿真器收集搭积木任务的轨迹数据,并使用其自带的ACT算法进行训练。最终,将训练好的模型量化和编译后部署到地瓜RDKx5开发板上,并尝试实现单步推理成功。


二、数据生成与仿真环境搭建

1. DISCOVERSE仿真器简介

DISCOVERSE是一个基于3DGS技术的高保真仿真框架,支持大规模并行仿真和多种传感器模态。它通过Gaussian Splatting和MuJoCo引擎,实现了高效的物理模拟和逼真的视觉效果。

2. 数据生成

我使用DISCOVERSE的block_bridge_place.py脚本,模拟机器人完成搭积木任务,并收集其轨迹数据。仿真器提供了丰富的数据格式转换工具,方便将轨迹数据导出为训练所需的格式。(3D高斯场景可以使用3D扫描仪生成)


三、模型训练与ACT算法

1. ACT算法简介

ACT(Action Chunking with Transformers)是一种基于Transformer的动作分块策略,通过条件VAE(CVAE)捕获人类数据中的可变性。它在模拟和现实世界的精细操作任务上表现优异。

2. 训练过程

我们使用DISCOVERSE提供的ACT算法训练脚本,将收集到的轨迹数据输入模型。训练过程中,重点关注模型的收敛情况和动作序列的平滑性。使用默认配置文件的超参数得到了一个性能良好的模型。

3. 模型推理

在配置文件中使用支持时间集成实测会使动作更加平滑,成功率更高,temporal ensemble是一个绝妙的trick。


四、模型量化与部署

1. 地瓜RDKx5算法工具链

地瓜RDKx5的算法工具链(ai_toolchain)提供了完整的模型量化和部署解决方案。我按照官方教程安装了Docker环境(GPU版本),使用脚本就可以一键在开发板中安装所有需要的依赖,十分友好,我们全程跟着教程安装和配置,参考官方文档

2. 模型量化与编译

我们将训练好的浮点模型转换成模型onnx,通过工具链进行量化,将其转换为int8的模型。随后,使用工具链提供的编译工具将模型编译为适用于RDKx5的格式,全程参考地平线旭日5算法工具链


五、单步推理与测试

在开发板上部署模型后,进行了单步推理测试(可以先执行hrt_model_exec perf快速验证,详见文档)。通过编写简单的推理代码,验证模型是否可以输入张量得到输出。经过多次调试,最终成功实现了单步推理,即得到维度(25,7)的动作轨迹张量。(act模型的输出是一条动作轨迹。)-


六、总结与展望

通过这次项目,我们深刻体会到了DISCOVERSE仿真器的强大功能和ACT算法的高效性。同时,地瓜RDKx5的算法工具链也为模型部署提供了极大的便利。DISCOVERSE仿真器和RDK X5这些便利的机器人开发平台会加速将这些技术应用于实际场景中,进一步提升机器人的性能和适应性。

致谢:感谢清华AIR开源的DISCOVERSE平台与地瓜机器人提供的RDK Studio一站式开发环境,显著降低了机器人开发门槛。


技术文档索引

如需更详细代码实现或参数配置,可参考我们的开源仓库,我们也在DISCOVERSE仿真器原有的基础上添加了PPO算法(使用SB3融合)和Diffusion Policy(参考ACT-plus-plus实现)。