机械臂算法中的重要概念与结论总结(不含详细推导)3

三、路径与轨迹规划

在总结之前,首先介绍路径与轨迹规划是机器人领域非常重要的问题,不仅仅是机械臂,无人车、无人机的各类各种类型的移动机器人的导航与避障都离不开路径与轨迹规划问题,其核心通俗来看,可以解释为在任意已知空间内,获知起点与终点的情况下,找到一条合适的路径。而这条路径根据需求不同,会有不同的结果。

下面来介绍什么是路径与轨迹规划?他们的区别是什么?

路径规划:首先明确路径规划是点的规划,其目的在于在起点与终点之间插补运动点,拟合成一条路径,这条路径可能需要满足最短、避障、耗能低等最优问题。

轨迹规划:轨迹规划是线的规划,其目的在于已知路径点的前提下,拟合出相邻两点的具体曲线路径,以及速度加速度等值。

举例说明:已知起点O1,终点P1,做zhu出路径规划,找到中间的路径点T1 T2 T3....Tn。随后进行轨迹规划,设位置关于时间的函数p(t),求出p(t)使其以O1为起点,P1为终点,且经过所有T的函数曲线。

注:在概念的基础上,一个完整的路径与轨迹规划算法应该能在有确实解的前提下找到解,并在不存在解的前提下在有限时间内返回失败信号。其最终输出应是一个关于t的函数。

好的,在了解完路径规划与轨迹规划的概念后,我们首先来介绍几种路径规划的方法:

1、joint space路径规划:joint space故名思意是指在关节空间内进行路径的规划,即机械臂的位姿信息由关节信息来表示,这是一种最为基础的规划方法,对于一次运动,只注意其起始点和目标点的关节空间信息,也就是[θi1]到[θi2],其中θi是每个关节的转角信息。在具体实际应用中,首先基于DH参数表读出[θi1],再将目标点用逆运动学方式解出[θ2],这就是所谓的joint space轨迹规划。同理多个目标点会组成一个策略list,其形似[[θi1],[θi2],[θi3]......]。在joint space规划下的机械臂末端所走出的路径是根据路径规划方式决定的,在后边会提到。

2、Cartesian space路径规划:根据上面的规划方式,我们在细化策略list中的过程点,也就是在两个距离较远的θi之间,按一定密度插补一些Cartesian space下的点,例如直线轨迹中已知初始状态DH参数,正解出当前位置,再根据目标位置,得到空间内的两个点,在其中按直线路径与一定密度插入一些点,形成list,这就是cartesian space下的路径规划,同理也可以做出圆弧轨迹或一些其他的路径形式。但要注意,一些插补点中很有可能会出现奇异问题,这是无法避免的,一种简单的解决方式是删去这些奇异点,也就是将奇异位置转化回joint space中处理。

3、RRT、A*等算法。这些是一些非常常见的机器人路径规划方法。在这个网站中PathFinding.js,我们可以看到这些算法在平面中是如何实现的,空间中的规划方法与之类似。这种方式也归纳叫做人工势场的方式:这种方式的核心思路是,将起始点看作质点,目标点散发着一个引力场,引力大小随距离增大而增大,而障碍物散发斥力场,斥力大小随距离增大而减小,在此基础上求出质点受力情况。目标位置为受力最小点,利用梯度下降的方法求出前往最优位置路径点。这种方法的挑战在于如何规避局部最优的情况。

以上方法有许多开源算法可以找到,讲解也有很多,在此不介绍。下面介绍轨迹规划。轨迹规划也就是根据上述的路径点,拟合出一条真正的轨迹曲线。对于机械臂来说,可以看作i条关于θ的函数,i为关节数。其原则包括,1必须经过每一个路径点2尽量平滑3避免奇异。在此基础上,我们可使用线性拟合、带有二次型的直线、多项式等方式拟合,其本质举例说明:对于某一关节x,其路径list为[θ1,θ2,θ3.....],首先线性情况下,其θ曲线是几段线段,这种情况下,并不意味着末端轨迹会是直线,而是一个根据机械臂多个自由度联动以及连杆参数所累积计算得出的曲线,并且在这种情况下,意味着路径求导是以一段段常数组合,代表着每段之间速度恒定且中间存在速度突变,也就是加速度离散的情况。在此之上我们在每个路径点的地方使用二次型进行拟合,这意味着轨迹求导变得光滑了,也就是速度突变不见了,但加速度仍有突变情况。于是可以使用多项式的方法来使得加速度也变得光滑。具体方法可见哔哩哔哩中林沛群教授的运动学课程较为清楚。

至此,最为基础的路径与轨迹规划概述结束,虽然看似篇幅不长,但其实路径与轨迹规划是机器人领域最为复杂的问题之一。其每一种算法都值得仔细推敲,在此只是大体介绍,方便保留记忆。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值