反光板导航SLAM(一)安装VEnus

最近在做反光板导航,从网上看到一个案例:反光柱建图venus和我的方案
这里面讲述了一个反光板导航的一个示例,主要使用的是一个开源的项目包venus,这个代码的源码是在这里。由于它不是一个ROS库,所以安装方式与ROS的安装方式略有不同。简单记录一下:

1、下载源码

home目录下,在终端执行下述命令

git clone https://gitee.com/dustinksi/VEnus.git --depth=1

2、编译

进入刚才下好的文件夹下,注意这里可能文件夹内会存在一个build文件夹。如果有的话需要先删除掉。要不然后面的步骤会出现很多问题。然后执行下述操作:

mkdir build && cd build
cmake .. -DBUILD_VENUS_TEST=true
make -j1
make test
sudo make install

这里在执行安装命令的时候会检查依赖项,关于ceres的问题,可以参考上一篇博文中的ceres的安装过程。另外如果是要求opencv版本依赖问题,可以在CMAKEList文件中将关于opencv的那一行改为:

find_package(OpenCV REQUIRED QUIET)

其他的应该就没有什么问题了。

3、envus基本思路

安装完成后当然是要看一下别人的代码具体实现啦,详细的介绍下一篇展开讲,这里简单介绍其中几个比较重要的函数:

3.1 IntensityExtraction::Extract

Extract函数可以算是envus的起始函数,这个函数的作用是从激光点云中提取出反光柱的中心点。它的基本思路是对激光点云取连续的点,比如3个或者5个,然后如果这里面有超过一半的点的强度instensite都超过阈值。则认为这个点是一个反光柱点可能的位置。最后数据会被保存到candidate_cloud里面

3.2 DBscanAssociation::Association

Association是其中的第二个函数。前面我们提取出了反光柱的中心点,但是这个点是不是反光柱以及它属于哪个反光柱我们还不知道,所以这个函数的作用就是区分出这个强光点是属于噪声点还是反光柱点。

3.3 CartoMapping::InsertFeatureList

InsertFeatureList函数所执行的东西有点多,它包含了:

3.3.1 InsertToFeatureGraph

插入一个新的反光柱

3.3.2 SiftNewFeaturePoints

判断当前获取的反光柱中心与反光柱集合中的哪个反光柱所匹配

3.3.3 ComputeCurrentPose

这里输入为匹配上的当前反光柱与全局反光柱的集合,返回出一个大致的机器人位姿

3.3.4 OptimizeCurrentPose

然后根据预估的位姿关系以及匹配关系进一步优化最终位姿,得到机器人的实际位姿。

从这里我们大致可以看到整个算法的整体流程。它主要是通过反光柱与反光柱之间的匹配得到预估位姿,然后再通过匹配关系以及预估位姿调用ceres得到优化后的位姿。这里最关键的点再于第二步的匹配不能出错,要不然的话会导致后面的位姿出现偏差。另外这个算法只是采用了激光数据,可以考虑以里程计作为预估。最后对于位姿跳变也应该做一定判断。

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 自己动手制作一台SLAM导航机器人是一项非常具有挑战性的项目,需要一定的机械、电子、计算机编程等综合技能。首先需要设计机器人的整体结构,包括底盘、轮子、控制电路等等,并进行适当的加工和组装。 其次,机器人需要配备激光雷达、相机等传感器,以获取周围环境的数据,并使用SLAM算法实现地图构建和自主导航。这涉及到深度学习、计算机视觉等技术的应用,需要有一定的专业知识和实践经验。 最后,机器人的控制和调试也是项目中非常关键的一步。需要对机器人的控制器编程,以实现自主导航、避障等功能,并不断对其进行调试,使其性能最优化。 自己动手制作一台SLAM导航机器人是一项极具挑战性的任务,但也会带来非常有趣和有意义的经历。能够通过自己的努力和创造力,实现一个自主导航机器人,不仅是一种技术上的成就,更体现了自己不懈追求的精神和自我超越的力量。 ### 回答2: 自己动手做一台SLAM导航机器人需要一定的相关知识和技能,并且需要进行步骤繁琐的操作。首先需要了解SLAM技术原理、机器人硬件结构、编程语言和相关软件等基础知识。其次需要购买所需的硬件器材,包括一个基于ROS系统的移动底盘、LIDAR传感器、IMU传感器、控制器、电源和其他所需材料。接着需要进行硬件组装和连接,把所有的硬件器材和传感器按照设计要求进行组装和连接。 接下来需要完成编程部分,对机器人进行代码编写和程序调试。编程需要涉及ROS系统、C++等多种编程语言,需要进行程序设计、实现、调试,以确保机器人顺利工作,并能实现SLAM导航功能。此外,还需要进行传感器校准,以确保机器人获取到的传感器数据准确无误。 最后,需要进行实地测试和调试,检验机器人的导航、避障等功能是否正常运作。整个过程复杂繁琐,需要耗费大量时间和精力。自己动手做一台SLAM导航机器人可以锻炼自己的技能和动手能力,同时也可以满足个人的爱好和需求,但需要投入足够的精力和耐心。 ### 回答3: 建造一台 slam 导航机器人需要计划、材料和技能。首先,您需要确定您的机器人将运行的环境类型,并为其选择合适的传感器和控制器。一般来说,您需要使用激光雷达扫描环境,并安装摄像头和微控制器等设备以控制机器人的运动。其次,您需要设计、打印或制造机器人的外壳,并组装电气元件和机器人控制器。最后,您需要编写软件以使机器人能够感知其环境、规划路径并导航至目标。 然而,这并不是一项简单的任务。要建造高效的 slam 导航机器人需要一定的电子、机械和编程技能。因此,新手建议始于初级项目,例如制造追踪线的机器人或机械臂。这些项目将帮助您熟悉机器人技术,同时也提高了您的技能和信心,为进一步建造 slam 导航机器人做好准备。 如果您决定 DIY 一台 slam 导航机器人,提前做好计划和准备工作很重要。购买正确的材料、学习机器人编程和构建的技能,是这个过程中最关键的部分。当您完成了这个项目时,您将拥有一台能够感知、规划和导航的机器人,并且这个项目还能提高您的技能并激发您的创造力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶执念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值