七. 运动规划与任务规划

运动规划和任务规划同属机器人的研究热点,对于初学者来说,这两个概念比较容易混淆。

运动规划,即motion planning(和路径规划即path planning做的事情也类似,因此有时可以看做一个东西),顾名思义,就是在给定的空间中找出一条可行的路线让机器人去执行。对于真的是“空”的空间(一点障碍物没有,这个事情是非常好办的,只要把开始点和结束点连起来,然后在中间插值就行了。而对于含有障碍物的空间,我们就得先做一点处理了。为了直观一点,还是看图说话。

七. 运动规划与任务规划_第1张图片

以机器人在平面中移动为例,在上图中q0是机器人,G是目的地,图中的黑线是我们期望得到的规划路径。为了得到这条路径,我们可以这么做:

1.在空间中随意撒播一堆点

2.去掉撒到障碍物里面的点

3.用搜索算法,查找沿着这些点从q0到G的最短路径。

4.这个最短路径就是规划出来的最优路径。

这个只是一个简单的例子,因为障碍物是静态的,对于动态障碍物高级玩法就很多了,当然核心思想还是类似的,就是找一条可行路径。在大部分实际应用中,运动规划是用来规划机械臂的运动轨迹的,特别是当机械臂的工作空间中存在障碍物的时候,比如说机器人想拿杯子后面的蛋糕,没有运动规划的话,机器人是永远拿不到蛋糕的,因为杯子处在它的运动轨迹上,机械臂就会一直推杯子,杯子就会推到蛋糕(画面自己脑补)。而如果有运动规划的话,机械臂就可以绕过杯子去拿蛋糕。

 

而任务规划则(task planning)相对抽象一些,因为一般情况下它不直接控制机器人。举个形象一点的例子:我们都知道如何把一头大象放进冰箱,其具体步骤就是开冰箱,放大象,关冰箱。而这些个开冰箱的步骤其实就是任务规划,而开冰箱的过程,比如说以怎样的路径去开冰箱,这就是运动规划。因此任务规划更偏向于高层决策,而非过程实现。对于简单任务,比如说把a抓起来,放到b上面。这种一般不需要严格区分task planning或者motion planning。只有对于复杂任务才有做task planning的价值,而现今大部分机器人承担的都是简单任务,因此在机器人研究领域中,做task planning的人要比做motion planning的人少得多。task planning中比较有名也比较老的解析器有PDDL(Planning Domain Definition Language),具体做法是你设定好各种条件以后,系统通过逻辑分析,会告诉你第一步做什么,第二步做什么,如此类推。最近几年虽然有很多新花样,但还是需要设定各种繁琐的条件,本质上暂时没有质的飞跃。

你可能感兴趣的:(机器人从零开始)