开发系统我们首先限定,开发使用的系统是ubuntu,或者其他debian系的系统,使用apt作为包管理软件,为此,我们需要安装一个ubuntu系统。
为什么要使用ubuntu系统,原因有很多,它有着开箱即用的包管理支持,可以使用指令来下载你需要的所有依赖库,常用软件也是如此,再者,Linux系统所耗性能一般较小,内存不会吃那么紧,而ubuntu又是众多linux发行版中比较完备的一款(其实就是臃肿),适合新人上手。
至于如何安装ubuntu,这里有一个简略的教程,建议配合浏览器搜索食用:如何安稳地安装ubuntu系统
工具链安装安装终端工具终端是与ubuntu交互的最常用的途径,它默认的...
嗟叹岁月我是2024赛季Alliance的哨兵定位负责人,大三已至,想来是没有多少时日投入到战队中,是时候留下一些文字,以便后辈学习。
还记得那是一次全体大会后的组内小会,那时视觉组组长覃某稍稍列举了有哪些项目需要分配,有雷达,哨兵定位导航,大符等,一人一个项目,尽数分配出去。
现在想想,一个人几乎从零开始打通雷达,定位,导航这种方量级的方案,几近天方夜谭,别的战队那是一整个组别在研发,我们只有单枪匹马。
我入队之时,队长覃某便放任我们几人生长,成体系的教程是完全没有的,有的只是一个数年Cpp开发经验的覃某可以追着问一些Cpp问题,剩下的,只能靠自己寻找搜索了。
庞然巨影刚接触 SLAM...
目的导向我们的目的是让哨兵知道自己处于赛场的哪个位置,为此,我们使用SLAM,SLAM的全称是同时定位与建图构建,这意味着随着传感器持续地扫描,SLAM项目可以算出机器人相对于程序开始那一刻机器人所处的平移量和旋转量,同时还可以获得周遭的二维或者三维地图。
这里便引出一个问题,SLAM程序求出的是相对于起始点的位姿,那么我们怎么获得机器人在比赛场地的绝对位姿呢,答案有两个:
一个是在比赛开始时将哨兵准确无误地放置在一个固定位置,这样我们便可以用这个固定位姿换算出绝对位姿;
另一个是提前把比赛场地的地图建好(比赛前会单独提供一个时间段给哨兵建图),然后手动指定地图的原点,哨兵比赛时只需要讲...
现代Cpp开发在开始之前,我们需要了解一个标准的cmake项目是如何构建的。
请先查看这篇教程配置好相关环境:cpp系开发环境配置
CPP的基础知识请自行学习,本篇教程默认读者掌握一定CPP基础。
开源机器人框架首先需要明确的是,我们的机器人运行在ubuntu server上,通过docker虚拟出一个ros-humble的环境。
如何利用docker开发ros2请见这篇文章:TODO
雷达,这就是你看到的世界吗我们有三个选择:
一个现代而兼具美感的ROS2可视化平台,Foxglove,但是连接不稳定,消息带宽有瓶颈
稳定的原生ROS2可视化工具 RVIZ2,可是不现代,不好看
拿...
仓库介绍原版fast-lio代码风格糟糕,虽然它效果好,抗旋转,消耗小,但一旦要去进行个性化地修改,比如添加一个service使其进行程序内重启,或者添加初始位姿设定等,便会感到万般无奈,大量无效变量和调试用变量充斥其中,全局变量一层套一层,using namespace std 惊现其中,于是乎,我愤然将其重构,重命名为 rmcs-slam,供我们战队使用。
这是仓库地址:Alliance-Algorithm/rmcs_slam
该如何部署下载mid-360的驱动程序
首先是 livox-sdk2,这是该激光雷达的底层驱动,安装教程看这里
下一步安装 livox-ros-d...
你无法逃脱的线性代数
知名线性代数库 Eigen,重度模板元优化,恐怖的报错地狱,你将在这里体会到一处BUG百行报错,想要良好地使用Cpp描述哨兵的运动和位姿,这是你不得不跨越的门槛。
上述引言并非夸大其词,但实际上 Eigen 用起来挺好使的,你想怎么乘,只要符合线性代数规律,它都能给出正确答案
点云界的PS,Point Cloud Library
基础设施浏览器配置代理配置使用apt安装依赖程序Docker使用代理拉取镜像Docker维护开发工具VsCodeVOFA+installation123# solve dependency errorwget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.22_amd64.debsudo apt install ./libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb