2024年Go最新机器人避障系统基础_避障算法(2),2024年最新看完全都会了

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

加速度计是一种用来测量加速力的传感器,加速力是在物体在加速过程中作用在物体上的力,例如地球引力,也就是重力;我们可以通过测量由重力引起的加速度,从而计算出设备相对于水平面的倾斜角度。

在三维立体空间中,利用重力和传感器的关系,可以分析得到如图3.5所示的三个姿态角p(pitch)、p(roll)、日(yaw):X轴相对于地面的角度是p、是Y轴相对于地面的角度是φ、Z轴相对于重力的夹角是0。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2OCZhJlV-1655011794621)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112125168.png)]

因此可以推导出:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dLeTLb6B-1655011794621)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112125749.png)]

其中:

ax是重力在X轴方向产生的加速度

ay是重力在Y轴方向产生的加速度

az是重力在Z轴方向产生的加速度

2.陀螺仪

陀螺仪(角速度的传感器)是一种以角动量的守恒为工作原理的传感器,它是一个用于维持方向以及测量角度的设备,通常的陀螺仪分为Gimbal陀螺仪及MEMS陀螺仪两种类型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2yO7hOVM-1655011794622)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112126499.png)]

(1)Gimbal2型陀螺仪

如图3.4(A)所示的是传统的Gimba陀螺仪,其中在外面的三个环称作平衡环,而中间的是一个转子,它是在不停旋转的所以由于惯性的作用不会受到外界的影响,然而外面的三个环却会因为设备姿态的改变而跟着改变,这样就可以以此来检测所测物体的当前状态,陀螺仪里面的X、Y、Z三个轴就是外面的这三个环所在的轴;但是Gimbal陀螺仪有一个万向节锁24,即指当三个万向节中的两个轴发生重合的时候,会失去一个自由度的情况。为了消除这一个缺陷,一般的应用中就需要使用更多更昂贵的机械部件来进行协助补偿。

(b)MEMS陀螺仪

MEMS陀螺仪相比于体积较大的Gimbal陀螺仪有着更大的优势;如图3.4-B中的旋转盘,在直线0A上的两个点B和C,当磁盘顺时针旋转时,B位置的点会移动到C的位置,虽然这两个点的角度率是相同的,但是在C点的速度是比B点快,这说明存在一个作用力引起了这个速度的改变,而这个力被称为科里奥利力;MEMS陀螺仪的工作原理就是通过利用科里奥利力来对物体的角速度进行测量的。

(3)传感器选择

目前MEMS陀螺仪与加速度传感器由于其体积和价格上的优势,被广泛应用于电子设备中进行姿态检测,故本设计采用MEMS陀螺仪与加速度传感器,在选择传感器类型时需要综合考虑到器件的量程、灵敏度及供电电压,表3.1和表3.2列出了目前市场上主流的3轴MMS陀螺仪和加速度传感器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d8Pjt8B1-1655011794622)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112129481.png)]

通过上表参数,考虑到重量等各方面因素,本设计选取了加速度和角速度一体的MUP-6050芯片作为飞行器的姿态控制传感器。


本文采用的PU6500集成了三轴MEMS数字陀螺仪、数字加速度计,可以测量多旋翼无人飞行器运动状态下的三轴角速率®,0,0:、三轴加速度Q,a,a。陀螺仪测量的角速度数据动态响应速度快,长期使用时,存在较大的积分误差,因此,陀螺仪无法单独使用。加速度计是一种长期稳定的惯性器件。

解算姿态时,通过融合珈速度计与陀螺仪的数据,能够得到稳定的姿态角信息;计算速度和位置信息时,通过加速度计积分获得相应的速度与位置。

3.磁力计

三轴磁力计通过磁敏器件,获取地磁场在机体坐标系下的三维磁场矢量投影。通过磁力计对航向角解算时,无需进行积分运算,因此它是一种长期稳定的器件。

4.气压计

所采用的M$5611气压高度计可以获得高度信息。气压计通过测量大气压的值能够计算当前海拔高度。其中,气压与高度的关系如下所示:

image-20220611214923136

式中,R代表大气温度下限值、g代表重力加速度,P,为当前高度测得的大气静压,T6P,h,代表当前大气压的大气温度下限值、大气压力和重力势高度,B为温度垂直变化率。通过上述公式,能够计算得到当前高度。

5.GPS

GPS能够测量三轴速度、经度、维度以及海拔高度。在开阔的户外环境中,GPS能够达到2.5米的位置定位精度(采用差分GPS甚至可达到厘米级的定位精度),速度测量精度能够达到约0.1m/s。然而,GPS的海拔高度以及竖直方向速度测量精度较低,且附近有遮挡物时,由于信号折射等原因,GPS的位置定位精度会大幅下降,但速度测量精度影响较小。

综上所述,陀螺仪测量得到的三轴角速度数据通过积分能够得到短时精度较高的姿态角。然而,随着时间的推移,由于陀螺仪传感器存在零偏、随机游走以及温漂等误差存在,导致了其长期姿态角解算精度较低。因此,本文将加速度计、磁力计传感器测量得到的数据与陀螺仪测量得到的数据进行融合,进行姿态解算,从而得到长期稳定的姿态角信息。另外,GP$虽然能够测量速度、位置信息,但其测量精度与工作环境相关,存在延时大,输出频率低,信号不稳定的问题。此外,气压计虽然能够检测海拔高度,但由于大气易受干扰,短时间内无法反映真实的海拔高度。综上所述,四旋翼飞行器所配置的每一个传感器都存在一定的局限性,单一的传感器测量数据都无法满足无人机的导航精度要求,因此,需要进行优势互补,以得到长期解算稳定,短期解算精度高的目的。

三、传感器数据融合

多传感器信息融合(Multi-sensor Information Fusion,MSIF),就是利用计算机技术将来自多传感器或多源的信息和数据,在一定的准则下加以自动分析和综合,以完成所需要的决策和估计而进行的信息处理过程。

1.多传感器融合几个概念

硬件同步、硬同步:使用同一种硬件同时发布触发采集命令,实现各传感器采集、测量的时间同步。做到同一时刻采集相同的信息。

软件同步:时间同步、空间同步。

时间同步、时间戳同步、软同步:通过统一的主机给各个传感器提供基准时间,各传感器根据已经校准后的各自时间为各自独立采集的数据加上时间戳信息,可以做到所有传感器时间戳同步,但由于各个传感器各自采集周期相互独立,无法保证同一时刻采集相同的信息。

空间同步: 将不同传感器坐标系的测量值转换到同一个坐标系中,其中激光传感器在高速移动的情况下需要考虑当前速度下的帧内位移校准。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bbSrqDKo-1655011794623)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112305811.png)]

2.基本原理

多传感器融合基本原理就像人脑综合处理信息的过程一样,将各种传感器进行多层次、多空间的信息互补和优化组合处理,最终产生对观测环境的一致性解释。在这个过程中要充分利用多源数据进行合理支配与使用,而信息融合的最终目标则是基于各传感器获得的分离观测信息,通过对信息多级别、多方面组合导出更多有用信息。这不仅是利用了多个传感器相互协同操作的优势,而且也综合处理了其它信息源的数据来提高整个传感器系统的智能化。

具体来讲,多传感器数据融合原理如下:

(1)多个不同类型传感器(有源或无源)收集观测目标的数据;

(2)对传感器的输出数据(离散或连续的时间函数数据、输出矢量、成像数据或一个直接的属性说明)进行特征提取的变换,提取代表观测数据的特征矢量Yi;

(3)对特征矢量Yi进行模式识别处理(如聚类算法、自适应神经网络或其他能将特征矢量Yi变换成目标属性判决的统计模式识别法等),完成各传感器关于目标的说明;

(4)将各传感器关于目标的说明数据按同一目标进行分组,即关联;

(5)利用融合算法将目标的各传感器数据进行合成,得到该目标的一致性解释与描述。

3.多传感器的前融合与后融合技术
3.1后融合算法:

每个传感器各自独立处理生成的目标数据。
每个传感器都有自己独立的感知,比如激光雷达有激光雷达的感知,摄像头有摄像头的感知,毫米波雷达也会做出自己的感知。
当所有传感器完成目标数据生成后,再由主处理器进行数据融合。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mtkwubmt-1655011794623)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206121323298.png)]

3.2前融合算法:

只有一个感知的算法。对融合后的多维综合数据进行感知。
在原始层把数据都融合在一起,融合好的数据就好比是一个Super传感器,而且这个传感器不仅有能力可以看到红外线,还有能力可以看到摄像头或者RGB,也有能力看到LiDAR的三维信息,就好比是一双超级眼睛。在这双超级眼睛上面,开发自己的感知算法,最后会输出一个结果层的物体。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eMXO5e4W-1655011794623)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112305779.png)]

4.融合算法

对于多传感器系统而言,信息具有多样性和复杂性,因此对信息融合算法的基本要求是具有鲁棒性和并行处理能力。其他要求还有算法的运算速度和精度;与前续预处理系统和后续信息识别系统的接口性能;与不同技术和方法的协调能力;对信息样本的要求等。一般情况下,基于非线性的数学方法,如果具有容错性、自适应性、联想记忆和并行处理能力,则都可以用来作为融合方法。

多传感器数据融合的常用方法基本上可分为两大类:随机类和人工智能类。

4.1随机类

(1)加权平均法

信号级融合方法最简单直观的方法是加权平均法,将一组传感器提供的冗余信息进行加权平均,结果作为融合值。该方法是一种直接对数据源进行操作的方法。

(2)卡尔曼滤波法

主要用于融合低层次实时动态多传感器冗余数据。该方法用测量模型的统计特性递推,决定统计意义下的最优融合和数据估计。如果系统具有线性动力学模型,且系统与传感器的误差符合高斯白噪声模型,则卡尔曼滤波将为融合数据提供唯一统计意义下的最优估计。

卡尔曼滤波的递推特性使系统处理无需大量的数据存储和计算。但是采用单一的卡尔曼滤波器对多传感器组合系统进行数据统计时,存在很多严重问题,例如:① 在组合信息大量冗余情况下,计算量将以滤波器维数的三次方剧增,实时性难以满足。② 传感器子系统的增加使故障概率增加,在某一系统出现故障而没有来得及被检测出时,故障会污染整个系统,使可靠性降低。

(3)多贝叶斯估计法

将每一个传感器作为一个贝叶斯估计,把各单独物体的关联概率分布合成一个联合的后验概率分布函数,通过使联合分布函数的似然函数为最小,提供多传感器信息的最终融合值,融合信息与环境的一个先验模型以提供整个环境的一个特征描述。

(4)D-S证据推理法

该方法是贝叶斯推理的扩充,包含3个基本要点:基本概率赋值函数、信任函数和似然函数。

D-S方法的推理结构是自上而下的,分为三级:第一级为目标合成,其作用是把来自独立传感器的观测结果合成为一个总的输出结果(ID);第二级为推断,其作用是获得传感器的观测结果并进行推断,将传感器观测结果扩展成目标报告。这种推理的基础是:一定的传感器报告以某种可信度在逻辑上会产生可信的某些目标报告;第三级为更新,各传感器一般都存在随机误差,因此在时间上充分独立地来自同一传感器的一组连续报告比任何单一报告更加可靠。所以在推理和多传感器合成之前,要先组合(更新)传感器的观测数据。

(5)产生式规则

采用符号表示目标特征和相应传感器信息之间的联系,与每一个规则相联系的置信因子表示它的不确定性程度。当在同一个逻辑推理过程中,2个或多个规则形成一个联合规则时,可以产生融合。应用产生式规则进行融合的主要问题是每个规则置信因子的定义与系统中其他规则的置信因子相关,如果系统中引入新的传感器,需要加入相应的附加规则。

4.2.AI类

(1)模糊逻辑推理

模糊逻辑是多值逻辑,通过指定一个0到1之间的实数表示真实度(相当于隐含算子的前提),允许将多个传感器信息融合过程中的不确定性直接表示在推理过程中。如果采用某种系统化的方法对融合过程中的不确定性进行推理建模,则可以产生一致性模糊推理。

与概率统计方法相比,逻辑推理存在许多优点,它在一定程度上克服了概率论所面临的问题,对信息的表示和处理更加接近人类的思维方式,一般比较适合于在高层次上的应用(如决策)。但是逻辑推理本身还不够成熟和系统化。此外由于逻辑推理对信息的描述存在很多的主观因素,所以信息的表示和处理缺乏客观性。

模糊集合理论对于数据融合的实际价值在于它外延到模糊逻辑,模糊逻辑是一种多值逻辑,隶属度可视为一个数据真值的不精确表示。在MSF过程中,存在的不确定性可以直接用模糊逻辑表示,然后使用多值逻辑推理,根据模糊集合理论的各种演算对各种命题进行合并,进而实现数据融合。

(2)人工神经网络法

神经网络具有很强的容错性以及自学习、自组织及自适应能力,能够模拟复杂的非线性映射。神经网络的这些特性和强大的非线性处理能力,恰好满足多传感器数据融合技术处理的要求。在多传感器系统中,各信息源所提供的环境信息都具有一定程度的不确定性,对这些不确定信息的融合过程实际上是一个不确定性推理过程。神经网络根据当前系统所接受的样本相似性确定分类标准,这种确定方法主要表现在网络的权值分布上,同时可以采用学习算法来获取知识,得到不确定性推理机制。利用神经网络的信号处理能力和自动推理功能,即实现了多传感器数据融合。

再推荐几篇比较好的文章:

传感器融合是什么?及其类型和应用

多传感器融合(算法)综述


四、避障常用算法

首先我们要区分避障算法和路径规划算法。在讲避障算法之前,我们假定机器人已经有了一个导航规划算法对自己的运动进行规划,并按照规划的路径行走。避障算法的任务就是在机器人执行正常行走任务的时候,由于传感器的输入感知到了障碍物的存在,实时地更新目标轨迹,绕过障碍物。

1.Bug算法

Bug算法应该是最简单的一种避障算法了,它的基本思想是在发现障碍后,围着检测到的障碍物轮廓行走,从而绕开它。Bug算法目前有很多变种, 比如Bug1算法,机器人首先完全地围绕物体,然后从距目标最短距离的点离开。Bug1算法的效率很低,但可以保证机器人达到目标。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fTskXRXh-1655011794624)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112201110.png)]

Bug1算法示例

改进后的Bug2算法中,机器人开始时会跟踪物体的轮廓,但不会完全围绕物体一圈,当机器人可以直接移动至目标时,就可以直接从障碍分离,这样可以达到比较短的机器人行走总路径。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8h6wxkWt-1655011794624)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112201218.png)]

Bug2算法示例

除此之外,Bug算法还有很多其他的变种, 比如正切Bug算法等等。在许多简单的场景中,Bug算法是实现起来比较容易和方便的,但是它们并没有考虑到机器人的动力学等限制,因此在更复杂的实际环境中就不是那么可靠好用了。

2.势场法(PFM)

人工势场避障控制法,是一种比较简单又新颖的做法,是另一种仿生学,仿照物理学中电势和电场力的概念,建立机器人工作空间中的虚拟势场,按照虚拟势场力方向,实现局部路径规划。通过构造目标位姿引力场和障碍物周围斥力场共同作用的人工势场,来搜索势函数的下降方向,然后寻找无碰撞路径。听起来很玄乎,但是早已经有应用产品了,Khatib曾应用于移动机器人的导航上。但是并没有得到大规模应用。因为即使对于简单环境很有效,但是都是在静态的研究中得出的,而没有考虑障碍物的速度和加速度的影响,所以在动态避障控制中,人工势场法避障控制不是很理想。因为在复杂的多障碍环境中,不合理的势场数学方程容易产生局部极值点,导致机器人未到达目标就停止运动,或者产生振荡、摆动等现象。另外,传统的人工势场法着眼于得到一条能够避障的可行路径,还没有研究出什么最优路径。

实际上,势场法不仅仅可以用来避障,还可以用来进行路径的规划。势场法把机器人处理在势场下的 一个点,随着势场而移动,目标表现为低谷值,即对机器人的吸引力,而障碍物扮演的势场中的一个高峰,即斥力,所有这些力迭加于机器人身上,平滑地引导机器人走向目标,同时避免碰撞已知的障碍物。当机器人移动过程中检测新的障碍物,则需要更新势场并重新规划。

undefined

上面这个图是势场比较典型的示例图,最上的图a左上角是出发点,右下角是目标点,中间三个方块是障碍物。中间的图b就是等势位图,图中的每条连续的线就代表了一个等势位的一条线,然后虚线表示的在整个势场里面所规划出来的一条路径,我们的机器人是沿着势场所指向的那个方向一直行走,可以看见它会绕过这个比较高的障碍物。最下面的图,即我们整个目标的吸引力还有我们所有障碍物产生的斥力最终形成的一个势场效果图,可以看到机器人从左上角的出发点出发,一路沿着势场下降的方向达到最终的目标点,而每个障碍物势场表现出在很高的平台,所以,它规划出来的路径是不会从这个障碍物上面走的。

一种扩展的方法在基本的势场上附加了?另外两个势场:转运势场和任务势场。它们额外考虑了由于机器人本身运动方向、运动速度等状态和障碍物之间的相互影响。

转动势场":考虑了障碍与机器人的相对方位,当机器人朝着障碍物行走时,增加斥力, 而当平行于物体行走时,因为很明显并不会撞到障碍物,则减小斥力。任务势场:则排除了那些根据当前机器人速度不会对近期势能造成影响的障碍,因此允许规划出 一条更为平滑的轨迹。

另外还有谐波势场法等其他改进方法。势场法在理论上有诸多局限性, 比如局部最小点问题,或者震荡性的问题,但实际应用过程中效果还是不错的,实现起来也比较容易。

3.向量场直方图(VFH)

它执行过程中针对移动机器人当前周边环境创建了一个基于极坐标表示的局部地图,这个局部使用栅格图的表示方法,会被最近的一些传感器数据所更新。VFH算法产生的极坐标直方图如图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zgwXCsve-1655011794625)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112204261.png)]

图中x轴是以机器人为中心感知到的障碍物的角度,y轴表示在该方向存在障碍物的概率大小p。实际应用的过程中会根据这个直方图首先辨识出允许机器人通过的足够大的所有空隙,然后对所有这些空隙计算其代价函数,最终选择具有最低代价函数的通路通过。

代价函数受三个因素影响: 目标方向、机器人当前方向、之前选择的方向,最终生成的代价是这三个因素的加权值,通过调节不同的权重可以调整机器人的选择偏好。VFH算法也有其他的扩展和改进,比如在VFH+算法中,就考虑了机器人运动学的限制。由于实际底层运动结构的不同,机器的实际运动能力是受限的,比如汽车结构,就不能随心所欲地原地转向等。VFH+算法会考虑障碍物对机器人实际运动能力下轨迹的阻挡效应,屏蔽掉那些虽然没有被障碍物占据但由于其阻挡实际无法达到的运动轨迹。我们的E巡机器人采用的是两轮差动驱动的运动形式,运动非常灵活,实际应用较少受到这些因素的影响。

具体可以看 一下这个图示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1pouRYYc-1655011794625)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112204219.png)]

类似这样传统的避障方法还有很多,除此之外,还有许多其他的智能避障技术,比如神经网络、模糊逻辑等。

神经网络方法对机器人从初始位置到目标位置的整个行走路径进行训练建模,应用的时候,神经网络的输 入为之前机器人的位姿和速度以及传感器的输 入,输出期望的下一目标或运动方向。

模糊逻辑方法核心是模糊控制器,需要将专家的知识或操作人员的经验写成多条模糊逻辑语句,以此控制机器人的避障过程。 比如这样的模糊逻辑:第一条,若右前方较远处检测到障碍物,则稍向左转;第 二条,若右前方较近处检测到障碍物,则减速并向左转更多角度;等等。

避障过程中存在哪些问题?

4.模糊逻辑控制

不必创建可分析的环境模型,目前模糊逻辑方法在解决机器人避开障碍物问题上己经有了大量的研究工作。另一个独特优点也让用专家知识调整规则成为可能,因为规则库的每条规则具有明确的物理意义。在模糊逻辑控制避障法中,模糊控制规则是模糊控制的核心。当前研究工作的新趋势之一是它的渐增本质,特别是在模糊控制规则的自动生成方面,即连同自动模糊数据获取,给予算法在线模糊规则学习能力,数据获取和规则生成均自动执行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TcOBxZF0-1655011794625)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206112205264.png)]

5.人工神经网络避障控制法

人工神经网络是由许多单元(又称神经元),按照一定的拓扑结构相互连接而成的一种具有并行计算能力的网络系统,它具有较强的非线性拟合能力和多输入多输出同时处理的能力。用在机器人上,就是通过模拟人脑神经网络处理信息的方式,从另一个研究角度来获取具有人脑那样的信息处理能力。对于智能机器人来说,采用人工神经网络进行信息融合有一个最大优势,即可大规模地并行处理和分布式信息存储,具有良好的自适应、自组织性,以及很强的学习功能、联想功能和容错功能,接近人脑的信息处理模式。

6. 栅格法避障控制法

于用启发式算法在单元中搜索安全路径。赋予每个栅格一个通行因子后,路径规划问题就变成在栅格网上寻求两个栅格节点间的最优路径问题。搜索过程多采用四叉树或八叉树表示工作空间。栅格法以基本元素为最小栅格粒度,将地图进行栅格划分,比如基本元素位于自由区取值为0,处在障碍物区或包含障碍物区为1,直到每个区域中所包含的基本单元全为0或全为1,这样在计算机中就较容易建立一幅可用于路径规划的地图。栅格粒度越小,障碍物的表示会越精确,也就更好避障。但往往会占用大量的储存空间,而且算法也将按指数增加。

五、路径规划算法

在规划模块中首先明确经常容易混淆的几个概念:

运动规划Motion Planning

路径规划Path Planning

轨迹规划Trajectory Planning

1.路径规划+轨迹规划=运动规划

2.路径规划:已知几何约束的情况下(障碍物、地图信息),求解一条路径,也即是找到一条无碰撞的路径。

**3.轨迹规划:已知运动学约束(时间约束、速度约束等)**情况下求解轨迹。

当然也有的路径规划算法在搜索路径过程中也将动力学约束(Hybrid A*)考虑进去,本系列的所涉及的规划算法主要是路径规划,也会涉及一部分轨迹规划。

1. 作用

**路径规划(path planning)**目的是为了寻找成本最小的路径, 需要给出的条件包括: 地图, 起始地点, 目标地点, 成本函数.

2. 组成

img路径规划组成

路径规划主要由两部分组成,前端是路径搜索,后端是**轨迹规划,**最后生成一条机器人可执行的路径。

**路径搜索——**在地图中,搜索出一条避开障碍物的轨迹;

**轨迹规划(优化)——**对搜索到的轨迹进行优化,从而符合机器人的运动学和动力学约束。

img规划示意图

如上图所示,a路径为前端路径搜索得出的,为一条无碰撞的路径,b为a路径经过轨迹规划过的路径,该路径满足运动学和动力学约束,为一条机器人可执行的路径。

3. 分类

路径规划(搜索)的算法主要可分成这三类,后续的章节也是按照以下的顺序进行介绍的。

3.1 基于搜索的算法

DIjkstra、A*、JPS

3.2 基于采样的算法

PRM、RRT、RRT*

3.3 满足动力学约束的搜索算法

Hybrid A*

更多的内容可看下面的介绍:

焉知科技:路径规划五种算法简述及对比

路径规划算法总结


六、SLAM

SLAM是 Simultaneous Localization And Mapping的 英文首字母组合,一般翻译为:同时定位与建图、同时定位与地图构建。

「同时定位与地图构建」这几个词,乍一听起来非常拗口,为了不在一开始就吓跑读者,我们先不对其进行专业的解释,用一个日常生活中形象的例子来进行说明。

1.初步认识SLAM

我们知道现在有不少家用的扫地机器人,可以代替人对室内进行自动清扫。早期的扫地机器人并不智能,它只是具有简单的避障功能,在室内随机游走,遇到障碍物就转弯,这样会导致有很多地方会漏掉,扫地效率非常低。

img

而现在随着SLAM技术在扫地机器人中的应用,现在的扫地机器人已经变的非常智能,可以通过自身的传感器对室内进行扫描建图,根据当前的定位进行Z字形规划清扫,还能实现自动回充、断点续扫等高级功能。

根据前面介绍,我们总结一下,要想真正实现智能的清扫,扫地机器人至少需要知道以下几件事情:

1、我在哪里?也就是扫地机器人在工作过程中要知道自己在房间的具体位置。对应的术语叫:定位(Localization)

2、我周围的环境是什么样子?也就是扫地机器人需要知道整个房间的地面结构信息。对应的术语叫:建图(Mapping)

3、我怎样到达指定地点(充电器)?当扫地机器人电量不足时,如何以最短的路径到达充电器所在位置进行自动充电。对应的术语叫:路径规划(Route Planning)。

img

有了以上的几个能力,扫地机器人就变的非常智能了,不再像无头苍蝇一样在室内乱跑,而是可以从任意位置出发,按照建立好的地图进行规划清扫。当然房间里的物品摆放也会发生变化,所以扫地机器人每次清扫也会根据当前的定位及扫描情况,在建好的地图基础上对进行更新。随着使用时间的增长,扫地机器人建立的地图会越来越准确,规划的清扫路线越来越高效,变的越来越智能。

看明白了上面的例子,我们给出SLAM的定义。SLAM是指当某种移动设备(如机器人、无人机、手机等)从一个未知环境里的未知地点出发,在运动过程中通过传感器(如激光雷达、摄像头等)观测定位自身位置、姿态、运动轨迹,再根据自身位置进行增量式的地图构建,从而达到同时定位和地图构建的目的。定位和建图是两个相辅相成的过程,地图可以提供更好的定位,而定位也可以进一步扩建地图。需要说明的是,上述扫地机器人例子中,定位和建图是SLAM的基本要求,而路径规划是在此基础上的高级功能,不属于SLAM的讨论范畴。

2.SLAM的应用

SLAM所使用的传感器主要分为激光雷达和视觉两大类。在SLAM研究史上,早期SLAM研究几乎全使用激光雷达作为传感器,其优点是精度高,解决方案相对成熟。但是缺点也非常明显,比如价格贵、体积大,信息少不够直观等。

视觉SLAM就是用摄像头作为主传感器,用拍摄的视频流作为输入来实现同时定位与建图。视觉SLAM广泛应用于AR、自动驾驶、智能机器人、无人机等前沿领域。我们知道SLAM的两大核心:定位和建图。下面分别进行说明。

1、定位相关应用

SLAM在自动驾驶中最主要的功能就是更加精确的确定汽车自身的位置(当然建图也很重要)。说到这里,很多人会有疑问:现在手机上的百度/高德/腾讯等地图类App就可以定位,为什么还需要SLAM来定位呢?

原因是这样的:目前地图类App在室外定位、导航方面确实做的很不错,而且衍生出很多基于地理位置的游戏、社交、生活类应用。不过现在的定位系统仍然存在以下两个主要问题。

1、地图类App背后使用的是GPS技术,但民用GPS最多也就达到几米的定位精度,驾车的读者应该深有体会:这些地图类App导航时并不知道当前车辆在哪个车道上。

2、GPS只能在室外使用。而在建筑物内、洞穴、海底等很多地方,GPS会失效。而往往这些地方对于定位的需求很强烈,要想解决GPS失效区域的定位,目前最有效的就是SLAM技术。

如下图所示是著名开源算法ORB-SLAM2使用架设在汽车上的摄像头进行定位的结果。从图中不难看出,算法非常清晰的展现了汽车当前所在的车道。

动图封面

同样的,对于室内使用的自主移动机器人来说,定位也完全依赖SLAM技术。如下图是单目SLAM的过程。此外像京东,阿里这种大型的电商已经在自己的仓库配备了仓储机器人,也称AGV(Automated Guided Vehicle),可以根据建立的地图确定自身的位置,然后根据任务需求进行路径规划来搬运货物。

动图封面

2、建图相关应用

比如使用手机上的单目摄像头可以对物体进行扫描,生成对应的三维模型。这称为小尺度下的三维建模。当然,也可以对较大尺度的场景进行三维重建,比如下图下就是Google project tango利用鱼眼摄像头对室外的大场景进行的三维重建。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

(https://img-blog.csdnimg.cn/img_convert/02ad51b9276ba0b59df69c605f0a282f.png)

2、建图相关应用

比如使用手机上的单目摄像头可以对物体进行扫描,生成对应的三维模型。这称为小尺度下的三维建模。当然,也可以对较大尺度的场景进行三维重建,比如下图下就是Google project tango利用鱼眼摄像头对室外的大场景进行的三维重建。

[外链图片转存中…(img-l6Ft4T7f-1715388707086)]
[外链图片转存中…(img-YQ2MuaA8-1715388707087)]
[外链图片转存中…(img-5yIrMwrU-1715388707087)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值