图片来源:here
机器人的连续路径规划主要涉及到基座姿态、机械臂末端位置或者姿态的规划,在此过程中,位置可以通过三维矢量唯一表示,因此对于机械臂末端位置的规划主要是针对三维向量坐标的规划,而对于姿态的规划,由于姿态表示的方法不唯一,因此会衍生出多种姿态规划方式。但是不管是针对位置以及姿态的规划或者插值,其相应的规划算法具有通用性。
由于多刚体的旋转可以有多种方式表示,一般采用欧拉角、轴角以及四元数等表示,欧拉角都由于涉及到被除数是正余弦,因此在实际使用中会出现姿态奇异,而采用基于四元数的方法则可以有效避免姿态奇异问题。
机器人的连续路径规划可以分为点到点的连续路径以及多点之间的连续路径。对于空间机器人笛卡尔连续路径,需要合理的规划其位置或者姿态轨迹,笛卡尔的轨迹一般是和时间相关的参数化的函数。一般笛卡尔连续路径中会采用诸如多项式、三角函数以及指数函数作为基函数,以此表示一段位置连续,速度和加速度满足要求的轨迹。从数学的角度来说,在时间t_0-t_1内一维的轨迹可以表示如下:
式中q:某方向的位置或者姿态标量值;t_0,t_1 起始和终止时刻;
若上述轨迹以多项式为基函数的,且在初始和终止时刻的速度和加速度均有初始值,则轨迹描述如下
式中q_0,q_f经过规划的某方向的位置或者姿态标量,v_0,v_f起始和终止时刻的速度值;a_0,a_f起始和终止时刻的加速度值.
在上述条件下,定义T=t_f-t_0,h=q_f-q_0,则基于五次多项式的轨迹可任意表示如下
其中
式中c_i多项式的常数,T总时间,h终止值与初始值的差值.
实际机械臂在运动中,可能会经过多个中间节点,这样的路径可以规避障碍物,且可以更平稳地完成设定的跟踪任务。理论上,对于多点之间的轨迹可以采用一个多项式去连接各个中间点,但求解过程中存在数值稳定性问题,因此,对于多点的轨迹规划方案,一般采取插值的方式实现。
本文采用样条曲线规划多点之间的轨迹,为了保证轨迹的连续性,一般会规定轨迹的初始与终止点速度。因此,给定n+1个点,如(t_k,q_k).边界速度是标量v_0和v_n,。期望轨迹根据下述方程所描述的样条曲线进行规划
其中:
式中:
q_k,\dot q_k,\ddot q_k,经过第k个点对应的标量值、速度值、加速度值;
s(t)样条曲线函数
c_{ki}样条曲线系数
v_k经过第k个点速度值
t_k经过第k个点的时间值
在此过程中,如果各个中间的速度是已知的,那么可以得到
式中 u_k 每两个点之间的时间间隔u_k=t_{k+1}-t{k}
此外,如果中间点的速度是未知的,则可以通过插值点的加速度连续等条件来计算多点之间的运动轨迹。连续加速度条件可以表示如下
对于上式,通过代入c_{k,2},c_{k,3},c_{k+1,2}的表达式,进一步推导可以得到
上述表达式关系可以写成矩阵表达式具体如下
v^{'}=[v_0,v_1,......v_n]^T ,d^{'}=[d_0,d_1,......d_{n-2}]^T ,d^{'}为与时间间隔以及位置相关的矩阵。
由于在上式中,轨迹的初始和终止时刻的速度式已知的,因此,有必要消去和初始速度以及终止速度相关项,从而可以得到
其中
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。