作者:K.Fire | 来源:计算机视觉工坊
添加微信:dddvisiona,备注:自动驾驶,拉你入群。文末附行业细分群。
1 前言
全覆盖路径规划(complete coverage path planning, CCPP)问题的任务是确定一条路径,该路径在避开障碍物的情况下通过一个区域或一定空间范围内的所有点。

Choset根据环境地图是否先验已知,将全覆盖路径规划算法分为“在线式”和“离线式”两类。离线式CCPP算法只依赖于静态环境信息,并且假设环境是先验已知的。然而,在许多情况下,假设对环境有充分的先验知识可能是不现实的。在线式CCPP算法不假设对要覆盖的环境有充分的先验知识,而是利用传感器数据实时扫描目标空间。因此,这些后期算法也被称为基于传感器的覆盖算法。这里也推荐「3D视觉工坊」新课程《深度剖析面向自动驾驶领域的车载传感器空间同步(标定)》。

根据CCPP算法工作原理不同,可以分为随机碰撞法、单元分解法、生物激励法、模板法、智能算法等,但CCPP算法都应该满足覆盖必须满足的要求,主要有:
-
机器人必须通过目标区域内除障碍物外的所有点,完全覆盖目标区域;
-
机器人在覆盖过程中应尽量避免路径重复;
-
为了控制方便,应尽量使用简单的运动轨迹(例如,直线或圆);
-
在允许条件下,获得一条“最优”路径(路线总长度最短或能量消耗最少);
2 随机碰撞法
随机碰撞法本质上是一种用时间换取空间的算法,它的思路是是机器人选择任意一个初始方向,驱动机器人在环境中直线行走,覆盖这条直线范围中的面积,当机器人检测到障碍物时,使机器人顺时针转过一定角度,并重复上述过程。这种策略的覆盖面积具有极大的随机性,从理论上讲,给定充足的时间,能够使机器人覆盖足够的空间范围,但这种方法非常低效。这种方法的优点是:不需要复杂的定位传感器,通常只需要配备红外传感器,也不需要耗费巨大的计算资源;这种方法的缺点是:在局部范围内存在大量的重复路径,且环境适用性差,当环境中有多个子场景时,特别是两个子场景之间通过狭长的走廊连接,随机碰撞法可能会耗费大量的无用时间才能够从一个区域走到另外一个区域。
在实际使用过程中,扫地机器人常常会因为动态的障碍物等信息陷入困局,调用随机路径覆盖挣脱此困局也是一种常见的手段。

3 单元分解法
单元分解法是将整个空间中的自由区域通过某种方法分割为简单且无重叠区域的子区域,每一部分子区域称为细胞,这些细胞的并集刚好填满整个自由空间,机器人使用简单的覆盖方式(比如往复运动或螺旋运动)对每个子区域进行覆盖,当完成每个子区域的覆盖后,就实现了整个区域的全覆盖。
以梯形分解法为例,它是最简单的精确细胞分解方法。该方法先使机器人沿着空间的边缘行走一圈,构建整个区域地图,然后用一条竖直的切割线从左至右扫描过整个区域,党切割线与多边形障碍物的顶点相遇时,就会分解出一个子区域,这样整个自由空间就被分解为诸多子区域,每个子区域都是梯形。机器人在每个子区域中进行往复运动对子区域进行覆盖。梯形分解法如图所示。

其他代表方法有:牛耕单元分解法[1,2]、莫尔斯分解法[3,4]、线扫分割法等。这里不过多叙述,感兴趣可以阅读参考文献。
4 生物激励法
Yang和Luo将生物激励的神经网络模型应用在清洁机器人的全覆盖路径规划工作上。他们首先对环境进行建模,利用栅格地图对环境进行表示,每一个栅格点对应一个神经元细胞,并提出了分流方程用来计算周围神经元对当前神经元的激励或抑制程度,分流方程如下式所示。
其中xi表示第i个神经元的状态;A是非负常数,表示神经元活性的衰减速率;B、D代表神经元状态的上下限;Ii代表外部输入,ωij表示第i个神经元与第j个神经元的连接权值,一般由两个神经元之间的距离计算得到。第i个神经元的活性值连接图如图所示。

机器人处于某一栅格时,会计算周围神经元的活性值,选择其中活性值最大的栅格作为下一步位置。生物激励法的优点是适用性好,且在避障和实时性方面表现较好,缺点是可能会导致路径重复率较高。
5 模板法
模板法由Neumann de Carvalho R等人提出,依赖于二维环境地图的先验知识,并可以处理地图上没有表示的意外障碍,他们将机器人的运动行为预先规定为七种固定的模板,如下图所示。这些模板包含了机器人在地图中可能遇到的所有情况,机器人根据模板在地图中运动,最终实现地图的全覆盖。

模板法的优点是原理简单,计算消耗小,可以处理动态障碍物;缺点是需要地图的先验知识,适用性较差,智能度较低。这里也推荐「3D视觉工坊」新课程《深度剖析面向自动驾驶领域的车载传感器空间同步(标定)》。
6 智能算法
Wang[5]将遗传算法与牛耕单元分解法结合,当使用分割线将整个自由空间划分为子区域后,通过遗传算法对各子区域进行编码,简历子区域与子区域之间的基点信息,并通过遗传算法得到最优覆盖序列,在每个子区域内以往复运动的形式实现覆盖,将CCPP问题转化为旅行商问题(TSP)。
Zhang[6]将蚁群算法引入单元分解法,根据两个子区域之间的连通性信息定义距离矩阵,并采用蚁群算法根据距离矩阵优化覆盖顺序,他们的实验结果表明,这样结合的算法不仅能保证覆盖所有工作空间,而且规划路径更短,路径重叠率更小,规划效率更高,但对于复杂环境,很难避开障碍物附近的恢复区域。
7 参考文献
[1] Choset, H. Coverage of Known Spaces: The Boustrophedon Cellular Decomposition[J]. Autonomous Robots 9, 247–253 (2000). https://doi.org/10.1023/A:1008958800904
[2] Rekleitis, I., New, A.P., Rankin, E.S. et al. Efficient Boustrophedon Multi-Robot Coverage: an algorithmic approach[J]. Ann Math Artif Intell 52, 109–142 (2008). https://doi.org/10.1007/s10472-009-9120-2
[3] Acar EU, Choset H, Rizzi AA, Atkar PN, Hull D. Morse Decompositions for Coverage Tasks[J]. The International Journal of Robotics Research. 2002;21(4):331-344. doi:10.1177/027836402320556359
[4] Acar EU, Choset H. Sensor-based Coverage of Unknown Environments: Incremental Construction of Morse Decompositions[J]. The International Journal of Robotics Research. 2002;21(4):345-366. doi:10.1177/027836402320556368
[5] Z. Chibin, W. Xingsong and D. Yong, Complete Coverage Path Planning Based on Ant Colony Algorithm[C], 2008 15th International Conference on Mechatronics and Machine Vision in Practice, Auckland, New Zealand, 2008, pp. 357-361, doi: 10.1109/MMVIP.2008.4749559.
[6] Gabriely, Y., Rimon, E. Online Scan Coverage of Grid Environments by a Mobile Robot[J]. In: Boissonnat, JD., Burdick, J., Goldberg, K., Hutchinson, S. (eds) Algorithmic Foundations of Robotics V. 2004. Springer Tracts in Advanced Robotics, vol 7. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45058-0_25
—END—高效学习3D视觉三部曲
第一步 加入行业交流群,保持技术的先进性
目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。

第二步 加入知识星球,问题及时得到解答
针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」
学习3D视觉核心技术,扫描查看,3天内无条件退款
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行
如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com
基础课程:
[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶
[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]
工业3D视觉方向课程:
[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]
SLAM方向课程:
[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战
[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化
[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析
[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)
视觉三维重建
[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进)
自动驾驶方向课程:
[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)
[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程
[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)