分享

工业机器人运动规划及应用

 阿明哥哥资料区 2023-03-05 发布于上海

引言    ✦ 

运动规划(Motion Planning)作为一个从机器人学诞生以来就一直被活跃研究的问题,从上世纪70年代至今,在许多机器人的从业人员和学者的努力下已经成为一个非常系统且经典的课题,无论从数学表达、物理建模以及到计算机实现的各个层面,都有着非常前沿且极具实践性的方法和成果。

本文会以导论的形式,从运动规划的发展、方法流派、定义、常用算法以及一些在工业场景下落地的案例等角度展开,希望给大家带来一个初步且较为全面的理解。

图片

图1 某机器人公司的拆码垛应用案例

1 运动规划的定义和分类 ✦ 

机器人运动规划主要是负责解决从开始状态到结束状态的机器人运动问题,在整个过程中,不仅要保证整个运动中避免与障碍物发生碰撞,与此同时,一系列与机器人自身相关的约束会被引入,从关节位置到关节速度,加速度一直到电机的扭矩都会被加入考虑。由于其问题的范围与广度涉及硬件设计到软件算法实现,这也使得运动规划在机器人相关研究中非常活跃。在机器人学中,“搬运钢琴”问题(Piano mover’s problem)就是关于运动规划最著名的一个例子。具体任务是我们需要规划路径,使机器人从屋子里把一架钢琴搬出去,同时在整个过程中,钢琴本身不会发生任何的磕碰(毕竟钢琴比较贵…)。这个例子就提出了所有在运动规划中工程师所关注的问题:路径的寻找、避障算法、基于各种约束寻找最优解等等。

同许多问题一样,运动规划的分类也是有许多种类,不过有一点是很确定的,针对运动规划问题,目前没有任何一个分类方法可以处理所有的运动规划问题。根据目前比较主流的分类,运动规划主要被分为以下几类:1. 完整方法;2. 网格方法;3. 采样方法;4. 虚拟势场法;5. 非线性优化。

其中完整方法是指理论上对问题的对象进行精确地表示,在求解中是保证了完备性。不过完整方法并没有在实际场景中使用,具体的原因以及这几种方法的详细介绍和对比会在下一章节中详细介绍。

图片

图2 左图为一个基于ROS的简单运动规划,

右图为搬运钢琴的一个简单图示

2 路径规划✦ 

2.1 路径规划的定义

路径规划(Path Planning)是运动规划的一个子问题,通常我们认为路径规划指:给定起点和终点寻找一段轨迹,不需要考虑整个过程中的动力学约束,运动时间以及控制相关的问题。基于这个定义,路径规划可以被看作一个纯几何问题。这与我们在数学中接触到的“寻路问题”本质上是一样的。

由于其纯粹的数学性,一些经典的图搜索方法,比如A*、Dijkstra等就可以引入解决路径规划的问题。需要强调的是,在路径规划问题中,我们更多想要解决的是路径找寻和规避碰撞的问题。

2.2 不同方法的介绍与比较

在之前的章节中,介绍了关于运动规划的几种常见方法,通过了解路径规划的定义,我们其实不难发现:在多数情况下,路径规划是运动规划中比较主要且重点的部分(除去了动力学等相关的因素),所以运动规划的分类也往往是路径规划主要方法的分类。在这里我将引用上文中运动规划的分类,对几种方法进行介绍和对比。

完整方法

完整方法是指通过对被研究对象进行完整的数学拓扑描述,然后利用相关的数学工具去完成路径规划的问题。这里举一个不太恰当但是可以帮助理解的例子。如果你之前听说过或者亲自玩过Minecraft(我的世界)这款游戏,那么你应该知道,游戏世界中的所有物体都是由一个一个的立方体所构建而成。这在某种程度上就是对世界的一种数学描述。游戏中玩家控制角色进行运动前进,某种程度上可以认为是一种基于完整方法完成的路径规划(尽管实际的底层算法可能并不是这样)。但是我们也不难发现,不是所有日常生活中的物体都可以被某种类似的方法去描述。即使可以描述,在解决实际问题时,不精确的表达也很难在工业场景中落地。所以完整方法是一个很完美但是却很少在实际问题中使用的方法。值得一提的是,如果路径规划问题是低维度且环境较为简单的情况。完整方法是一个很值得尝试的解决方案。

图片

图3 微软的经典游戏-Minecraft(我的世界)

网格方法

网格方法是指通过将空间离散化为网格,然后通过对网格的搜索以达成从起始点到终点的运动规划。对于许多场景,网格方法可以很好地实现并且给出最优解。网格化的过程可能对学过有限元分析(FEM)的人不会太陌生。通过对规划空间的网格化和离散化,然后我们可以利用一些图搜索的方法将起点和终点进行连接。

网格化的缺点也很明显,随着规划空间的维度上升,网格的数量也会呈指数级上升。这对于计算机储存来说会是一个非常不好的消息。同时随着网格数量的上升,搜索的时间和迭代次数也会相应上升。尽管我们可以通过对网格的分布进行一些策略化的设计,比如在障碍物附近进行更高密度的分割(如图-4所示) 。但是从整体上来看,网格方法仍然不太适用于高维度的运动规划问题。

图片

图4 二维平面的网格化示例

采样方法

采样方法是一种基于概率随机的方法,也是近几年在工业场景中使用较为频繁的算法。通常的采样算法可以描述为:在空间中随机选取一个样本集,然后通过对这个样本集进行一些评估以判断样本是否接近“最优解”。通过对样本集的不断采样、评估、添加,最终我们可以得到一个从起点到终点的运动。通常在计算机科学 (Computer Science) 中, 我们会利用图或者树的结构来表示这个样本集。

采样方法比起上述的两种方法,具有一些不可替代的优点。首先,采样往往可以用简单的随机算法完成,且具有概率的完备性 (Probabilistically complete) 。这里稍微解释一下概率完备性,完备性是衡量一个算法的重要特性之一,主要是用来描述问题与解的关系。一个算法具有完备性,可以笼统的理解为:如果一个问题有解,那么完备的算法一定可以找到这个解;如果该算法找不到解,那么这个问题一定没有解。而概率完备性则是说,如果一个问题有可行解存在,只要规划或者迭代的次数足够长或者多,就一定保证找到解,但是反过来,如果算法没有找到解,并不能说明该问题没有解。在了解了概率完备性之后,我们也不难猜测,采样方法正是通过不断的采样与搜索来尽可能的找到可行解,尽管这个解可能不是最优的,但是在不断的迭代中,这个解也往往趋于“令人满意的状态”。

除此之外,采样算法可以很方便的拓展到高维问题中,例如7轴机械臂在轴空间的规划往往是一个 R^7 的实数空间规划。这对于我们而言不仅难以理解而且不直观,所以采用采样算法有时可以帮我们解决高维度的规划问题,同时不需要对高维度空间本身加以理解。

常用的采样方法有概率路线图 (PRM) 和快速随机树 (RRT) 等,这两种方法都是非常易于实现且高效的采样算法,关于这两种算法,在之前的分享中有过详细地介绍,这里就不再赘述。

图片

图5 基于PRM的路径规划

图片

图6 基于RRT的路径规划示例

除了上述的三种方法,路径规划还有虚拟势场法,非线性优化等。但是由于在实际使用中会结合一些启发式算法,如蚁群算法,模拟退火算法等。这需要介绍更多的知识背景来介绍相关的算法,这里就不展开介绍给大家了。

3 行业难点及应用 ✦ 

在实际的行业应用中,路径规划的重要性主要体现在对复杂环境的处理上。对于复杂环境,机器人感知 (Perception) 和路径规划一样是一个需要注意的部分。由于传感器 (3D相机,激光雷达…) 对于环境的感知结果会直接作为路径规划的直接输入——路径的起点,所以实际上我们遇到的第一个难点就是对于环境的感知往往是不可靠的。这部分的难点与路径规划的算法无关,但是确确实实是机器人实际应用中遇到的难点。主要体现在对一些传感器无法处理的物体的感知上,如黑色物体,透明物体,高反光率的金属工件等。在以上特定场景下的工程实践中,我们会通过一些图像处理算法或者滤波算法来减少影响。也可以从传感器的底层设计方向从根本上解决问题,比如设计一些专门处理黑色或者反光物体的相机或者传感器。

第二个常见的难点是,在一些需要机器人进行抓取操作的场景中,被抓取物体的材料有时对于抓取不是非常友好。比如说使用真空吸盘作为机器人的末端执行器,如果抓取物体的表面气密性不好,或者有太多褶皱,此时由于漏气就会导致抓取任务的失败。再比如,如果使用夹爪作为机器人的末端执行器,光滑的材料表面就会带来同样抓取失败的结果。在工程中,常用的解决方案有切换末端执行器,对机器人末端进行运动学约束以保证抓取稳定等各种策略。

如果以上两个问题都可以有成熟的工程方法解决,机器人已经可以开始正式进行运动规划了。第三个会遇到的问题就是在机器人真正开始运行时,一些关于碰撞检测和机器人奇异点的情况。关于碰撞检测,如果环境发生了一些动态的变化然后没有在路径规划中加入这个更新的信息。那么这段路径就会有发生碰撞的可能性。有一些前沿的研究可以处理动态/连续碰撞检测 (Continuous Collision Checking) ,但是由于实际工业应用中对系统的安全性和鲁棒性的严格要求,工程师一般都会选择较为安全的策略解决碰撞问题。比如使用在线的力/力矩传感来避免严重的碰撞。关于机器人奇异点,如果是常见的工业6轴机械臂构型 (Ortho-parallel Basis and a Spherical Wrist), 奇异点的位置都非常类似。工程中可以通过对机器人轴空间做路径规划以此来避开奇异点。如果必须在笛卡尔空间或者机器人任务空间中进行规划,要么加入对奇异点的在线检测和动态规避,要么对末端执行器和法兰盘的机械连接进行一些偏心量设计 (用于规避腕部奇异点-Wrist Singularity) 。

图片

图7 末端执行器的偏量设计

在实际应用中,以上问题多为与路径规划相关的问。除此以外,如果考虑完整的运动规划 (Motion Planning),如何对机器人的动力学模型进行建模以及基于动力学进行轨迹规划?这对于我们来说也是非常值得研究和解决的问题。

小结✦ 

目前在工业应用中,运动规划在基于视觉引导和自主规划的机器人分拣、拆码垛、工件处理、焊接喷涂、AGV的路径规划和调度中都有着非常广泛的应用和案例。其中路径规划带来的免人工示教、力控、时间最优的节拍规划等优点在一定程度上为一些工业自动化场景带来了新的解决思路。当然,之前提到的问题并没有被全部地解决。

以上就是对于机器人运动规划的一个简单介绍,在实际工业场景中,有许多需要具体问题具体分析的情况,一般都需要对以上提到的算法做一些定制。但是总体来说,运动规划作为一个相对成熟且系统的课题,在工业应用中已经在扮演相对重要的角色了。

参考文献   ✦ 

[1] Modern Robotics, Control Kevin M. Lynch and Frank C. Park,2017

[2] Probabilistic roadmaps for path planning in high-dimensional configuration spaces,

Kavraki, L.E., P. Svestka, J.-C. Latombe, and M.H. Overmars. Aug 1996

[3] https://www.cnblogs.com/icmzn/p/11985313.html

[4] http:///rrt/

[5] https://www.cnblogs.com/21207-iHome/p/

7210543.html

[6] http://coecsl.ece./ge423/spring13/

RickRekoskeAvoid/rrt.html

[7] https://www.cnblogs.com/21207-iHome/p/

7210543.html

[8] https://zhuanlan.zhihu.com/p/75458108, 邱强,李群与视觉伺服      

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多