回到基础——机器人的运动规划

机器人运动规划基础知识

“回到基础”这个系列意在为读者介绍与工业机器人相关的基础知识。事实上,之前我们介绍欧拉角与几何旋转原理的文章,是本站阅读量最高的博文之一。

这个月,我们将详细介绍RoboDK内置的运动规划器。今天的内容作为开篇,将介绍关于机器人运动规划的原理基础。

对于市面上大部分已经投入使用的工业机械臂而言,它们在不断进行着示教/路径编辑<——>执行重复性任务的循环,而机器人的路径规划属于一种高级编程功能,所以今天我们从基础开始,介绍它的相关知识。

什么是机器人运动规划?

运动规划是一种算法,用于自动计划机器人末端从A点到达B点的路线(又称轨迹,或路径)。如今,几乎每个人都熟悉路线计划器,只是大多数人没有意识到——感谢带有卫星定位(GPS)和地图应用程序的智能手机,让我们更容易理解运动规划器的工作内容。这些手机应用使用的就是与机器人运动规划器相同类型的算法。

你每天都“规划运动”

想象一下,你想通过手机地图查出“我怎样步行找到附近的中国银行?”
手机地图应用会显示两个位置:

  • 开始位置(你的当前位置)
  • 终点位置(中国银行)

在这两个位置点之间,有相互连接的街道网络。几乎有无数条不同路线连接这两个位置,而地图应用程序会使用一种规划来绘制(推荐)两个位置之间的最佳路线。

但是,应用程序如何知道“最佳路线”是什么?其实它不知道! 也许“最佳”路线是最短的,也许是最快的。只有你知道“最佳”的含义。这就是为什么该应用要为你提供几条不同的路线,而你需要在它们之间进行选择。不过,我们一次最多只能处理3个或4个选项,因此你的应用可能会选择3条最好的路线,并要求你在其中选择。

机器人运动规划器使用相同类型的算法,来决定哪一条应该是机器人采用的最佳路径。它最常用于看起来与我们的手机地图示例非常相似的移动机器人中(计划2D平面路径)。但是,它也可用于工业机械臂。在这种情况下,规划问题会稍微复杂一些,因为需要在3D空间中规划路径,还要考虑到机器人在不同位置点的位姿。

工业机器人技术中的运动规划

我们使用运动规划的主要原因,是因为当机器人处于复杂的环境中时,它可以加快编程过程。运动规划器可以创建一条或多条可用的路线,以代替我们人脑靠对空间的认知、手动为机器人计划每一个动作。

请注意,当我们说“机器人处于复杂环境中”时,我们指的是有很多障碍物的环境。对于许多机器人应用来说,其工作空间中任意两个位置点之间的路径并没有障碍。如果是这样,一个简单的“关节运动”(Joing Move)命令将会更快、更高效。但是,当环境中有障碍物时,机器人可能会与它们碰撞。在这种情况下,手动计划会比使用运动规划器效率低。所以,在使用运动规划器避免碰撞之前,请确保你没有更简单的另一种方法来避免机器人碰撞。

运动规划器如何工作?

自动计划路径的算法有很多,工作原理也略有不同。但是在这里,我们想列举3个它们之间的共同点。

1. 配置空间:为什么你比智能手机聪明?

配置空间描述了机器人可能在环境中定位自己的所有位置和方向(位姿)。在算法进行路线规划之前,它需要知道该路线上所有可到达的位置点。

让我们回到智能手机GPS的示例。配置空间就是整个世界上已有的所有街道(是的,可以在你跟中国银行之间绘制一条绕道马来西亚再回来的路线)。世界很大,因此规划算法可能会将配置空间限制为起点和终点之间半径范围内的所有街道。

重要的是你的配置空间必须准确地代表环境。原因如下:想象一下,你知道去中国银行的捷径,该捷径需要穿过一家饭店的后院并跨过一个栅栏。 即使这是最佳路线,该算法也永远不会使用此方案,因为配置空间不包含穿过后院或者跨过围栏的线路。

对于机械臂来说,其配置空间与机器人工作空间非常相似,而你可以在RoboDK中查看机器人模型的有效工作空间。

2. 可用空间:机器人可以在哪里移动?

机器人工作空间中会有一些机器人无法移动到的区域,例如,因为里面有障碍物。该算法将从配置空间中删除所有受限的位置。这样就留下了“可用空间”,其中包含所有可用于运动计划的位置。

配置空间是固定的。但是,当新对象进入和离开工作环境时,可用空间可能会改变。

3. 计划:机器人会选择哪条路径?

最后,运动规划算法会在可用空间内绘制最佳路线。这里也是各个的运动规划器略有不同的地方。

有些算法(称为组合规划算法)被称为“完整”算法,这意味着它们将始终找到解决方案(如果方案存在)或者报告失败。其他方法(称为基于抽样的规划)效率更高,但在某些情况下可能找不到解决方案。

在工业机器人技术中,更有效率的算法会更好,即使它在某些情况下可能错过一些可用方案。快速获得答案,比等待运动规划算法对所有可能的路线都测试一遍要有用得多。这就是为什么人们通常采用基于抽样的规划算法,例如概率路线图(PRM),而不是其他的“完整”算法。

在机器人应用中如何使用运动规划器?

你的机器人应用中需要运动规划吗?如果你需要在应用中加入自动轨迹计算,那么最简单方法就是使用一款离线编程软件自带的运动规划器。现在,你可以在最新版本的RoboDK中使用我们的PRM运动规划器了。下一篇内容中,我们将详细介绍PRM的功能。

Leave a Reply

Your email address will not be published. Required fields are marked *