多项式轨迹规划
公众号“轻松玩转机器人”,欢迎关注。
1、简介
常用的多项式规划一般泛指3次、5次和7次等多项式规划,4次多项式规划用到的比较少,暂不介绍。
为什么奇数次多项式比较常用呢?因为其有偶数个系数!
偶数个系数有什么用呢?能列偶数个方程来求解,偶数个方程可能包括始末位移、速度和加速度,甚至包括跃度。
一般机器人规划都是点到点的规划,从零速到零速。在某些场景下机器人需要柔顺启停,此时要求启动和停止时的加速度是零,甚至要求始末跃度为零。
下面以5次多项式规划为例进行介绍,其余类型多项式规划类似。
2、原理
5次多项式规划的位移方程:
s = c0 + c1 * t + c2 * t^2 + c3 * t^3 + c4 * t^4 + c5 * t^5
由上式,可以看到5次多项式有6个系数,需要6个方程联立求解,该方程组可以通过以下6个条件得到:
s(0) = 0 %起始位移为零
s(T) = s %终点位移为s
v(0) = 0 %起始速度为零(零速启动)
v(T) = 0 %终点速度为零(零速停止)
a(0) = 0 %起始加速度为零(零加速度启动,柔顺、冲击小)
a(T) = 0 %终点加速度为零(零加速度停止,柔顺、冲击小)
列出上述6个方程就可以解了嘛,答案是不行滴,方程组里还有个未知数T,也就是该运动的时间,一般可以通过如下思路计算:
(1)计算速度最大值(始末时刻及速度导数等于零的时刻),得到位移、运动时间T_v和速度最大值的关系;
(2)计算加速度最大值(始末时刻及加速度导数等于零的时刻),得到位移、运动时间T_a和加速度最大值的关系;
(3)计算跃度最大值(始末时刻及跃度导数等于零的时刻),得到位移、运动时间T_j和跃度最大值的关系。
对于某一款机器人,都有其运动性能参数,如最大速度v_max、最大加速度a_max和最大跃度j_max。分别假设运动过程中达到了最大速度、最大加速度和最大跃度,可以得到三种时间,公式如下:
T_v = 15 * s / (8 * v_max);
T_a = sqrt(10 * s / (sqrt(3) * a_max));
T_j = (60 * s / j_max) ^ (1/3);
运动时间要取三种时间的最大值,否则会存在速度、加速度或跃度超限的问题:
T = max([T_v, T_a, T_j]);
此时再去解方程组,即可得到多项式系数,完成5次多项式规划的创建,更新时只需将时间t代入位移方程即可得到每个时刻的位移。
3、实验
设机器人运动性能:
v_max = 2000;
a_max = 40000;
j_max = 1.8e7;
设运动参数:
s = 25;
位移曲线:
速度曲线:
加速度曲线:
跃度曲线:
由上述速度、加速度和跃度曲线可以看到:
(1)加速度达到最大值,速度和跃度均没达到最大值,满足计算运动时间的方程和条件;
(2)速度和加速度都是从零开始、以零结束,而跃度则不是,这符合我们求解多项式系数所列的条件。
(3)若要求跃度在运动启动和结束时为零,则要用7次多项式规划,若不要求加速度在启动和结束时为零,则可以降低计算量,用3次多项式规划,原理类似,可以自行求解、测试。
推荐阅读
-
路径规划 - 搜索算法详解 (III):用 MATLAB 代码解释 RRT 算法
-
客户关系管理系统(CRM)与巴特勒分销企业资源规划系统(ERP)的集成:无代码开发的互联解决方案
-
企业资源规划软件:哪个更好用?傻瓜版库存》和《管家婆》哪个更好用?
-
标准化的企业资源规划系统有多重要?
-
动力扣爆发刷新动态规划五连环的第 129 天(完美方格、单词拆分和劫持房子)
-
企业资源规划系统应用架构图 企业资源规划系统软件
-
了解子网掩码的功能及其在网络规划中的重要性
-
127 从基础开始的学习网络--大中型医院的网络规划
-
数据仓库系列:如何优雅地规划数字仓库系统
-
iOS MKMapView 地图轨迹回放动画实现