Linear Function with Parabolic Blends 轨迹规划法
1.缘由
- 在很多类型的任务上均需要使用直线轨迹;
- 轨迹中若包含多个直线段轨迹,线段间转择点速度不连续;
- 该方法保证直线的同时,保证直线段轨迹之间有二次连接,保证轨迹的圆滑;
- 转折处,由速度为0瞬间变为某个速度,加速度趋近于∞!
- 解决方法:将直线两端修正为二次方程式,让速度轨迹smooth...
2.规划方法
头尾对称,中间直线等速运动;
- linear 直线段,一次多项式:
- Parabolic 二次多项式,等加速度:
所以①②中的 需要相等,故:
于是有:
这里要注意的是,根号内需为正数或者0才有意义:
关于加速度 状态讨论;
三种方式比较:
(1)only linear function,可以发现,加速度在速度突变出趋于∞;
(2)一般状况,Linear function with parabolic blends,加上二次轨迹后,速度不会突变,加速、减速阶段为等加速度;(很多电系统响应快,所以大致能够满足这种非连续加速度场景)
(3)特例,Only parabolic function,没有直线段;等加速直接等减速;可以发现其最大速度是第一种情况的2倍,因为位移相同,所以速度曲线包含的面积应相同,故速度必是2倍才能满足相同的位移。
多段Linear Function with Parabolic Blends
- 设定:A path with n via points;
将每一个区段 各自等效到之前举例单一linear线段 ,要注意的是,与此线段前后相连接线段的速度不为0;
串接所有的转择点(二次式,使速度连续)
1---对中间任意几个线段:详细分析:
- Linear段(直线,一次多项式)
, ; - Parabolic (二次多项式)
- 方法一:设定加速度解时间:
- # 正负号判定;
- 解出需要的时间大小:
- 方法二:设定时间解加速度:
2---对头尾段进行探索
- 第一个线段:(头)
- 可以视为整段轨迹起始点 在时间上往后移(parabolic曲线段所需时间 的一半)以导入parabolic(二次抛物线)曲线段,让速度由起始点开始可以连续。(一开始的缓加速需要 的时间, 实际是由 变动得到的)
- 这样做的好处,在t=0的时候,仍然可以保持在 的位置;这样到达 的时候,它就可以到达需要的速度。
- 在进行轨迹规划前,要对“头”的起始点进行一个时间往后平移的动作。
- 第一段:等加速;第二段:等速
- 方法一:设定加速度解时间(判定符号、求解时间)
- 接着,通过第一段可以计算得到到达 的时间:
- 方法二:设定时间解加速度
- 最后一个线段(尾)
- 一个trick,同开始一样,引入 ,这个 的位置与 一样,但是位置要稍微提前(此时 处速度不为0),parabolic曲线段所需时间为 的一半,以导入parabolic曲线段,让速度由起始点开始可以连续。
- 方法一:设定加速度求解时间:
- 方法二:设定时间解加速度
Linear Function with Parabolic Blends注解-1
☺ 真实系统中可以达到的加速度 取决于很多因素
- Motor的规格(规划的θ得是马达能给到的τ);
- 手臂姿态:手臂在不同姿态下,各轴所需承载(如重力)的扭力不同;
- 手臂运动状态:手臂在不同动态下,各轴需承载惯性力不用;
马达所能输出扭力τ与运动变量之间的关系(以RR机械手臂为例):
其中:第一部分——惯性力部分(转动惯量矩阵M); 第二部分——离心力与科氏力(只要手臂有速度,这项就有值,手臂需要有τ);第三部分——可以考虑为重力所造成的部分,手臂即使不动,也需要产生τ来保持住姿态。
可以看出,机械臂的实际应用场景中,若G较大,能够用来产生离心力或者加减速运动的第一部分的τ就有局限;同样,如果第二项较大,即手臂工作在离型力较大的场合,则τ能够用来应付加减速与自身重力的部分就很小(Joint Space下)。
☺ 规划后轨迹并未通过via points的情况
- 连接的parabolic段没有通过via points,仅加速度趋于∞的轨迹有通过via points
- 该种情况下,如果通过via points为必须,则需要建立pseudo via points,让原本的via points落在linear的线段上,就会通过。(以为在直端左右,无论怎么规划,都不会不通过临界两点)然后再进行规划。
☺ 若有Cartesian Space下直线轨迹的需求,轨迹规划需要在Cartesian Space下进行——(Linear Function with Parabolic Blends一般是在Cartesian space下进行,才能确保最后是直观的是直线轨迹)
☺ Programming里,需要仔细的定义好某时间t所属的线段或者曲线段;
针对同一个时间基准t,写出该轨迹方程
- 先看直线段, ,根据Kinematics Equation:
- 再来看二次段(parabolic), ,同样以 为基准,向后进行计算;
评论(0)
您还未登录,请登录后发表或查看评论