如何提高激光slam 行走速度
答案:2 悬赏:80 手机版
解决时间 2021-02-07 07:14
- 提问者网友:雨不眠的下
- 2021-02-06 16:22
如何提高激光slam 行走速度
最佳答案
- 五星知识达人网友:迟山
- 2021-02-06 17:27
SLAM涵盖的东西比较多,分为前端和后端两大块。
前端主要是研究相邻帧的拼接,又叫配准。
根据传感器不一样,有激光点云、像、RGB-D拼接几种,其中像配准中又分基于稀疏特征(Sparse)的和稠密(Dense)的两种。
后端主要是研究地拼接(前端)中累积误差的校正,主流就两种,基于概率学理论的贝叶斯滤波器(EKF,PF)以及基于优化的方法。
EKF已经用得很少了,PF也就在2D地SLAM(Gmapping)中用得多,大多还是用优化的方法在做。
自己已经说了这块需要的知识,一个是数学,一个是编程。
所以入门,也从这两块开始弄。
一、数学方面 数学,建议楼上说过的Thrun的《probabilistic robotics》,其实不需要全部看完,了解下概率学是如何解决机器人中的问题的,关键学习贝叶斯滤波,也是就是贝叶斯公式在各个问题(定位,SLAM)中的应用。
另外,优化,建议先把最小二乘优化中给弄透彻,数学推导要会,因为很多问题,最后都是归结到最小二乘优化,然后就是梯度下降、求Jacobian之类的。
二、编程方面 理论的东西是比较无聊的,必须得实战。
建议入门先写一发最小二乘优化,可以就做一个简单的直线拟合,不要用Matlab中的优化工具,了解数学推导最后是怎么写到代码里面的。
然后,一定要玩好Matlab优化工具包,做实验最方便了。
有了一些基础之后,可以尝试玩一些现有的SLAM包,推荐两个地方,一个是www.openslam.org,里面有各种SLAM包,主流的SLAM算法,在这一般都有源码。
另外一个就是ROS了,里面有很多现成的SLAM包,像Gmapping,RGB-D SLAM,上手非常快,甚至没有任何设备,也可以利用ROS中的仿真环境(如Gazebo)跑。
建议先试试Gmapping,百度上有很多中文教程,一开始跑这些package还是很涨成就感的,可以提高兴趣。
如果是做视觉或者RGB-D,那么OpenCV和PCL是必不可少的工具。
早点上手肯定没得错。
三、进阶 大体入门之后,就需要根据实验室研究的项目来学习了,看是用激光、相机、还是Kinect来做了,不同传感器的前端算法还是有些差距的。
激光一般是ICP,相对简单。
视觉的东西还是比较多的,楼上推荐《Multiview Geometry in Computer Vision》确实很重要,不过,觉得这同时还应该了解特征提取、特征描述子、特征匹配这些东西。
如果们实验室做的Dense registration,那还得学李代数那些东西(高大上,神马李群看好多天都看不懂。
。
。
)。
其实,很多算法都有开源包,可以去ROS、一些大神博客、牛逼实验室主页中多逛逛。
前端主要是研究相邻帧的拼接,又叫配准。
根据传感器不一样,有激光点云、像、RGB-D拼接几种,其中像配准中又分基于稀疏特征(Sparse)的和稠密(Dense)的两种。
后端主要是研究地拼接(前端)中累积误差的校正,主流就两种,基于概率学理论的贝叶斯滤波器(EKF,PF)以及基于优化的方法。
EKF已经用得很少了,PF也就在2D地SLAM(Gmapping)中用得多,大多还是用优化的方法在做。
自己已经说了这块需要的知识,一个是数学,一个是编程。
所以入门,也从这两块开始弄。
一、数学方面 数学,建议楼上说过的Thrun的《probabilistic robotics》,其实不需要全部看完,了解下概率学是如何解决机器人中的问题的,关键学习贝叶斯滤波,也是就是贝叶斯公式在各个问题(定位,SLAM)中的应用。
另外,优化,建议先把最小二乘优化中给弄透彻,数学推导要会,因为很多问题,最后都是归结到最小二乘优化,然后就是梯度下降、求Jacobian之类的。
二、编程方面 理论的东西是比较无聊的,必须得实战。
建议入门先写一发最小二乘优化,可以就做一个简单的直线拟合,不要用Matlab中的优化工具,了解数学推导最后是怎么写到代码里面的。
然后,一定要玩好Matlab优化工具包,做实验最方便了。
有了一些基础之后,可以尝试玩一些现有的SLAM包,推荐两个地方,一个是www.openslam.org,里面有各种SLAM包,主流的SLAM算法,在这一般都有源码。
另外一个就是ROS了,里面有很多现成的SLAM包,像Gmapping,RGB-D SLAM,上手非常快,甚至没有任何设备,也可以利用ROS中的仿真环境(如Gazebo)跑。
建议先试试Gmapping,百度上有很多中文教程,一开始跑这些package还是很涨成就感的,可以提高兴趣。
如果是做视觉或者RGB-D,那么OpenCV和PCL是必不可少的工具。
早点上手肯定没得错。
三、进阶 大体入门之后,就需要根据实验室研究的项目来学习了,看是用激光、相机、还是Kinect来做了,不同传感器的前端算法还是有些差距的。
激光一般是ICP,相对简单。
视觉的东西还是比较多的,楼上推荐《Multiview Geometry in Computer Vision》确实很重要,不过,觉得这同时还应该了解特征提取、特征描述子、特征匹配这些东西。
如果们实验室做的Dense registration,那还得学李代数那些东西(高大上,神马李群看好多天都看不懂。
。
。
)。
其实,很多算法都有开源包,可以去ROS、一些大神博客、牛逼实验室主页中多逛逛。
全部回答
- 1楼网友:像个废品
- 2021-02-06 17:52
激光雷达:
1.解析度高,测距精度高
2.抗有源干扰能力强
3.探测性能好
4.不受光线影响
5.测速范围大
视觉(主要是摄像头):
成本低廉,用摄像头做算法开发的人员也比较多,技术相对比较成熟。摄像头的劣势,第一,获取准确三维信息非常难(单目摄像头几乎不可能,也有人提出双目或三目摄像头去做);另一个缺点是受环境光限制比较大。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯