Robomaster 2023赛季哨兵设计思路
目前方案
麦克纳姆轮底盘,弹仓置于底盘,因供弹链,所以 NUC 无法放置于云台中心点,转动惯量相比于普通步兵较大。
因 USB3.0 滑环成本较高,故 NUC ,雷达受相机位置所限制只能放置于云台。
基于算法层面的考虑
此前在 RMUA 所有队伍都是使用 2d 激光雷达进行定位,实力较强的队伍会在定位算法上进行创新。
后来基于 3d 激光雷达的里程计算法越来越成熟,fast-lio, point-lio,定位准确,精度高。鉴于 RMUC 场地的复杂性(盲道,斜坡),故使用 3d 雷达方案进行定位。
对比
3d 雷达里程计算法在较为空旷地区(体育馆)以及走廊会出现定位缓慢、漂移,需要参照物较多的地形。
CPU 占用比 2d 点云匹配位置估计算法较高。
为何规划导航使用基于 2d 而不是 3d 的算法
ego-planner 也是比较成熟的 3d 路径规划算法,但是考虑到相比于 2d 规划导航,当时哨兵组开发人员更熟悉 2d 规划导航,时间紧迫,故没有评估其可行性。
为何使用 roborts 框架
虽然该框架较为复杂(相比 move_base),但是有前人的代码可以参考(RMUA),而且开发灵活。
基于成本方面的考虑
设备
mid-360 相比于 2d 雷达并不是特别贵,而且范围广,自带 imu,雷达里程计算法稳定(相对)。
位置
由于云台相机位置,如果需要将 NUC 通过滑环,则需要购买 2k+ 可以通过 USB3.0 的滑环,所以 NUC 暂时放在滑环上层,由于底盘需要自旋,所以雷达也暂时放在云台上(当然也可以考虑华工的龙门架,雷达倒置放置在最高处与底盘固连)。
其他学校
在哨兵出现的第一年(2023年),深圳大学使用的是 fast-lio + move_base(靠慢速和双云台避免雷达运动畸变),华南农业大学使用的是 2d 雷达修改的 icp 算法进行定位 + move_base(去掉了局部规划,即没有避障,双 2d 雷达(30hz)放置于舵轮底盘的两个舵上,NUC 在云台上,雷达网线通过滑环)。
现在还存在的问题
雷达运动畸变
将雷达和云台固定在一起,由于 2d 雷达刷新频率低(10hz),导致云台运动索敌过程中点云畸变,代价地图被畸变的点云污染,车辆运动轨迹不是很顺畅(猜想华农因为这个原因去掉了局部规划实时避障)。
期望解决方案
雷达运动畸变矫正:2d 雷达无直接可用的功能包,需要自己编写(rplidar 官方和第三方有,但是效果不理想)。3d 雷达 livox 官方则提供了一个畸变矫正功能包。
双云台:雷达相对于云台和底盘运动,相对于场地没有旋转只有平移,但是对机械和电控要求较高。
全向感知:自瞄改用传统视觉,在云台加上多个 USB 相机,使用 openvino 利用 GPU 进行目标识别。