点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
今天自动驾驶之心为大家分享自动驾驶仿真算法专家张峻川最新开源的基于3DGS的自动驾驶硬件在环仿真系统!如果您有相关工作需要分享,请在文末联系我们!
自动驾驶课程学习与技术交流群事宜,也欢迎添加小助理微信AIDriver004做进一步咨询
编辑 | 自动驾驶之心
背景
3DGS技术自从问世以来,收获了学术界和工业界的大量关注,势头甚至已经超过NERF。感谢自动驾驶之心的邀请,我之前在自动驾驶之心平台上通过直播发布了我的开源项目:“GaussianRPG:首个开源的基于3DGS的自动驾驶闭环仿真器”【1】。该项目使用Street Gaussians方法作为图像渲染器,在ROS2架构下,实现了一个可测试AEB场景的软件在环闭环仿真demo。
在直播的“展望和讨论”部分,我提到了一种将3DGS渲染技术应用在自动驾驶硬件在环仿真测试中的可能。本文就讲述了将GaussianRPG拓展为硬件在环仿真系统的一次尝试。本文所有相关代码已经合并到了参考链接【1】,更详细的说明可以参考项目wiki。

硬件介绍
本文所述的硬件在环,专门指的是自动驾驶域控制器在环。我选择了一款机器人开发板来代替实际的域控制器。我选择的是24年地瓜机器人新推出的RDK X5开发板【2】,号称“千元内最好用的机器人套件”,具有 10Tops 端侧推理算力与 8 核 ARM A55 处理能力,支持 2 路 MIPI Camera 接入,4 路 USB3.0 接口,关键是开发板系统自带部署好的yolov5s模型,可以快速实现感知节点的目标检测的功能。

RDK X5可以接受MIPI摄像头、USB摄像头作为输入。我在某大型电商购物平台上找到了一款HDMI信号转USB信号的转换器(一百块以内即可全款拿下),可以模拟一路USB摄像头,将工作站显卡渲染出的图像通过HDMI转USB输入开发板,在1920x1080的分辨率下可以达到60Hz的频率,以此作为本demo系统中的视频注入板卡。

系统搭建
本文的硬件在环demo的系统图如图1所示。GaussianRPG运行在一台工作站中,Street Gaussians渲染出的一帧图像可以显示在指定位置的窗口中。视频注入板卡一端连接工作站的显卡HDMI接口作为其输入,输出一路USB接口,连接到RDK X5的USB接口上。当RDK X5上运行起一个调用USB摄像头的程序时,就会将来自视频注入板卡的输入当作一路USB摄像头,实现摄像头的仿真。
GaussianRPG本身也进行了修改,Street Gaussians输出的图像会渲染在指定位置的窗口中,以便视频注入板卡获取,这和成熟的硬件在环方案中的仿真软件的处理方式是相似的。
实现了视频注入,本demo的闭环开发工作就算完成了一大半。此时需要对这款RER-H2U-V2转换器在视频注入时产生的延迟做出测试,方法是:首先对工作站和RDK X5进行时间同步(在此采用的是将RDK X5的时源设定成工作站的方式),然后在工作站系统中开启一个显示系统时间的窗口,最后在RDK X5端采集视频注入的图像时,将保存下的图片命名为USB摄像头收到图像时的时间戳。通过保存的图片中的窗口中的时间戳和文件名中的时间戳的对比,可以得出视频注入板卡的时间延迟。测试的其中一帧如图4所示:

经过测试,我们可以看出,此方案的视频注入环节的时间延迟大概在200ms左右。目前业界成熟的硬件在环测试方案中的视频注入环节,时间延迟至少可以做到100ms以下。同时我还使用同样的方法测试了一款真实的1080P USB免驱摄像头的延迟,发现时延甚至要在300ms以上。当然,在自动驾驶实际应用中,车载摄像头的出图延迟一般都是很小的,在几十ms的量级,肯定要远小于仿真方案中的200ms。
除视频注入板卡的连接以外,还需要用网线将RDK X5和工作站连接起来,以便通过以太网传输代表整车信号的车速rostopic和代表控制命令的减速度rostopic。经过测试,本方案下通过以太网跨平台的rostopic传输,延迟只在1-2ms左右,和视频注入的延迟相比可以忽略不计。
闭环效果
本文的硬件在环demo运行闭环测试后,RDK X5板端的感知节点可以正常收到图像,且可以正常输出目标检测结果,如图5所示。

同时,在闭环测试中,RDK X5中的dummy AEB controller节点可以输出有效的刹车信号,也就是说RDK X5作为一个域控制器成功刹停了GaussianRPG系统中的仿真车辆。
我使用qt生成窗口,将Street Gaussian推理出的图像渲染出来,并未对推理过程或qt窗口的渲染刷新做任何优化。在闭环测试中,单帧的渲染出图时间至少要在80ms左右,再加上上一节讲到的视频注入时间延迟,本demo的硬件在环测试系统的单帧延迟将累积到280ms左右。再加上我编写的板端感知节点处理一帧图像还要将近100ms,因此需要AEB controller节点中设置更激进的刹车动作相关参数,才能让仿真车辆在demo中成功刹停。
讨论
作为一个硬件在环测试的demo,本项目存在一个重要的不足,那就是完全未考虑系统的实时性。首先GaussianRPG内部目前并没有对单帧渲染时间做严格控制,也就是如果渲染时间不稳定,超过了预期的100ms,那么系统整体也会有相应延迟。其次是也没有引入实时机,整体依赖的是工作站的计算机时间。最后就是,作为一个只包含单目前视相机的demo,也没有考虑多路相机时间同步的问题。
RDK X5具有丰富的接口,其中就包括CAN通讯接口。因此后续本系统也可以脱离ROS通讯,扩展成以CAN通讯传递整车信号和控制命令的形式。
RDK X5本身是一个机器人开发套件,因此本文的demo证明了,3DGS相关技术应该也可以很方便地应用到具身智能机器人硬件在环仿真测试中去。
参考链接:
【1】https://github.com/GimpelZhang/GaussianRPG
【2】https://developer.d-robotics.cc/rdk_doc/RDK
① 自动驾驶论文辅导来啦
② 国内首个自动驾驶学习社区
『自动驾驶之心知识星球』近4000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(端到端自动驾驶、世界模型、仿真闭环、2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎扫描加入

③全网独家视频课程
端到端自动驾驶、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
④【自动驾驶之心】全平台矩阵