当前位置: 华文星空 > 知识

机械臂的轨迹规划,路径规划,运动规划有什么区别呢?

2019-10-10知识

先解决定义问题。名词定义不重要,但是我们有必要了解它们可能涉及机器人研究中的哪些工作。

路径规划 ,规划的就是路径,也即机器人运动到目标点的空间路线,它规划的结果往往是不包含速度、时间信息的,也即 \theta(s)(0\leq s\leq1) ,解决的是可达性的问题。

轨迹规划 ,规划的就是轨迹,也即动点在空间的位置随时间连续变化而形成的曲线,它规划的结果是机器人关节角度随时间变化的关系,也即 \theta(t) (t_{min} \leq t \leq t_{max}) ,解决的是与时间、速度等微分约束相关的问题。

运动规划 ,可以认为是更加宽泛的概念,它规划的结果是让机器人实现某种约束目标的动作(motion),这些动作既可以是离散的空间路径点 {\theta_1, \theta_2, ..., \theta_n} ,也可以是一个连续的空间路径 \theta(s) ,又可以是带有时间信息的空间轨迹 \theta(t) ,甚至可以是机器人底层的控制信息 u(t) ,或者是某种控制策略。

再解决这些工作之间的关系问题。

机器人底层控制最终需要的就是一堆电流控制指令,所以,不管是什么任务,最终都需要翻译成每个电机的控制指令。但是,由于不同任务的硬件平台、任务需求、约束不同,所以,可能会不同层次地将任务进行分解。

对于最简单的任务,只要求机器人从 A 运动到 B,中间避开障碍物,而不用考虑运动时间等问题。这时候,基本上规划部分只需要进行路径规划即可:规划器输出一条几何路径 \theta(s) ,发送给机器人控制器,机器人控制器自行进行路径点之间的轨迹插补(如 T型速度曲线、样条插值等),计算得到 \theta(t) ,并通过 PID 之类的闭环控制算法转换电机控制指令,控制机器人完成任务。

例如,之前的一个回答,要求机器人运动的时候避开相机视野区域,就是这样的问题:

另一方面,不同任务,即使在其空间路径相同的情况下,也可能对轨迹有不同的要求。例如,有些任务要求机器人的运动时间最短,有些任务要求机器人的运动节拍固定,有些任务要求机器人的末端匀速运动。甚至是,从运动平稳性考虑,需要规划出速度、加速度、甚至是加加速度连续的轨迹。

对于这类任务,仅做路径规划就无法满足要求,往往需要路径规划与轨迹规划相结合。对于这类任务,可以先进行路径规划,获得满足任务的空间路径,之后再进行轨迹插补,获得需要的轨迹后,通过实时通讯的方式,将轨迹发送给机器人控制器,通过闭环控制,得到电机控制指令。

下面的视频是相同的路径,但是不同的轨迹规划结果。分别是时间最优、节拍固定和末端匀速的轨迹:

但是,如果机器人的运动轨迹需要满足某种动力学约束,那么,往往需要规划器直接计算出符合约束的轨迹,而不是分为路径规划和轨迹插补两部分。

例如,之前发布的一篇文章,介绍如何通过运动规划实现机械臂高速搬运液体:

对于某些任务,规划的时候,环境的状态不完全可观,或者说环境可能发生变化。这时候,需要的是某种运动策略,输入当前的环境与机器人状态 s,输出当前时刻的控制指令 u。很多强化学习的工作,其实就是在做这类工作,通过 DRL 去学习不同状态下的控制策略。

所有上面这些场景,都可以是运动规划的范畴。