嗟叹岁月
我是2024赛季Alliance的哨兵定位负责人,大三已至,想来是没有多少时日投入到战队中,是时候留下一些文字,以便后辈学习。
还记得那是一次全体大会后的组内小会,那时视觉组组长覃某稍稍列举了有哪些项目需要分配,有雷达,哨兵定位导航,大符等,一人一个项目,尽数分配出去。
现在想想,一个人几乎从零开始打通雷达,定位,导航这种方量级的方案,几近天方夜谭,别的战队那是一整个组别在研发,我们只有单枪匹马。
我入队之时,队长覃某便放任我们几人生长,成体系的教程是完全没有的,有的只是一个数年Cpp开发经验的覃某可以追着问一些Cpp问题,剩下的,只能靠自己寻找搜索了。
庞然巨影
刚接触 SLAM 体系,你会发现突然间工具链和技术栈被急剧地拓宽了,需要了解ROS2那一大坨,Cpp with class 也被迫进化到 Effective Cpp,还要搞懂 SLAM 的概念,弄清各种坐标系转换,Eigen运算。
也许你还会接触到什么《高翔SLAM十四讲》,《RoboMaster视觉圣经》这种超大篇幅教程,我觉得但凡是一个没什么相关项目经历的同学,都会被吓得不轻,当然,包括当时的我自己。
但是我们要注意的是,哨兵定位并不是要求你自己实现一个SLAM算法,你只需要找到适合RoboMaster赛场的开源项目,把它clone下载,编译运行,然后学会怎么使用这个项目发布出来的坐标信息来做导航决策就足够了,这相当简单,只需要你稍微熟悉ros2工具链,懂得怎么解决一些依赖,设备问题就行了,剩下的,就交给导航控制的同学吧(也许是你自己呢)。
罢,引言就说这么多,我希望后辈通过阅读此篇教程,能够消除一点对于巨大项目的畏惧,其实严格来讲,哨兵定位的最小解决途径,其实只有连接雷达,编译部署项目这两个步骤,至于需要自主写代码的部分,那都是锦上添花了。