《机器人学导论》第六章-轨迹规划
文章目录
{T}为工具坐标系,{G}目标坐标系
轨迹是机械手臂(末端点或操作点)的位置、速度、加速度对时间的历程
可进一步定义为{T}相对{G}的状态历程,{G}也可随时间变动
关节坐标系下的轨迹规划joint space
在各个关节空间做规划
必须要知道所有的相对关系 初始、过程、最后point T有16个参数包括移动和转动,将 T G T i ^G_TT_i TGTi以六个参数的 G X T ^GX_T GXT来表达,前三个表示位置(三个自由度的移动),后三个表示姿态(三个自由度的转动)
一开始定义好初始点要到达的最终点的姿态,做inverse 把joint space下的关节角度求出,然后对所有的joints进行smooth规划,然后利用forward K将joint的状态转换至末端执行的状态,检查末端执行器在笛卡尔空间下轨迹的可行性
第一列图和第四列图里的initial、via、final point 应该是对应的
笛卡尔空间下的轨迹规划
末端点有想要到达的位置
- 对所有手臂末端点状态规划smooth轨迹,
- 然后将规划好的手臂末端点的状态做IK转换到joint坐标系下, G X T → θ i ^GX_T\rarr\theta_i GXT→θi
- 检查joint状态在joint-space下轨迹的可行性
优缺点:
- 有较直观的轨迹
- 较高的运算负载(joint轨迹规划不要这么多点做ik,只要initial一个final一个via几个,而笛卡尔轨迹规划需要一直跟随点做ik)
三次多项式轨迹规划
Cubic Polynomials说明
- 原则
- 求解cubic polynomial
- 以矩阵进行运算
θ \theta θ和 Δ t \Delta t Δt是已知量, a 0 , a 1 , a 2 , a 3 a_0,a_1,a_2,a_3 a0,a1,a2,a3是未知量
多段Cubic Polynomials规划
-
选择速度条件 θ ˙ i \dot{\theta}_i θ˙i和 θ ˙ i + 1 \dot{\theta}_{i+1} θ˙i+1
-
直接定义。但无论在关节空间还是笛卡尔空间下都建议,过于复杂,尤其当轨迹落在singular points附近时
-
自动生成
-
-
规划速度使过程中加速度也连续,有效使用可调控的变数
举例:有一个中间点的轨迹规划
代数解法
矩阵解法
一般情况下的三次样条曲线
设置 N + 1 N+1 N+1个点,包括一个初始点, N − 1 N-1 N−1个中间点,一个最终点。可以形成N段三次多项式,一共有 4 N 4N 4N个未知数
👉4N个未知数的求解
-
每个 s j ( x ) s_j(x) sj(x)两端的位置条件共有 2 N 2N 2N个条件
-
N − 1 N-1 N−1个中间点的速度和加速度连续条件共有 2 ( N − 1 ) 2(N-1) 2(N−1)个条件
-
还需要2个条件才能求解,需要通过以下方式定义
例题-RRR Manipulator
在Cartesian-space下规划轨迹
-
对$X,Y,\theta $ 中的每一个来说,需要通过四个点,形成三段cubic polynomials,一个cubic polynomial有4个未知数,所以对 X , Y , θ X,Y,\theta X,Y,θ中的每一个来说一共有12个未知数需要求解。
-
对 X , Y , θ X,Y,\theta X,Y,θ 三个量规划smooth轨迹
-
I.K.,找出各个关节的对应轨迹
-
将求解的joints带入手臂模拟动作,确认手臂末端点轨迹如在笛卡尔坐标系下所规划的轨迹运作
在joint-space下规划轨迹
高阶多项式
位置、速度、加速度都必须要规划时,必须使用五阶多项式求解六个未知数
带有抛物线过渡的线性函数
在原有的直线轨迹的基础上导入二次多项式,让直线和直线的轨迹之间通过二次抛物线进行连接,让轨迹更圆滑
θ ˙ 0 = θ ˙ f = 0 \dot{\theta}_0=\dot{\theta}_f=0 θ˙0=θ˙f=0的情况
将原来的 [ t 0 , t f ] [t_0,t_f] [t0,tf]时间段上的线性函数分为三段 [ t 0 , t b ] , [ t b , t f − t b ] , [ t f − t b , t f ] [t_0,t_b],[t_b,t_f-t_b],[t_f-t_b,t_f] [t0,tb],[tb,tf−tb],[tf−tb,tf],其中定义 t h t_h th为时间的中点。
- [ t 0 , t b ] [t_0,t_b] [t0,tb]抛物线段1,有恒定加速度 θ ¨ 1 \ddot{\theta}_1 θ¨1
- [ t b , t f − t b ] [t_b,t_f-t_b] [tb,tf−tb]线性函数段,有恒定速度 θ ˙ = θ ˙ t b = θ f − θ 0 t f − t 0 \dot{\theta}=\dot{\theta}_{t_b}=\frac{\theta_f-\theta_0}{t_f-t_0} θ˙=θ˙tb=tf−t0θf−θ0,永远不变,与抛物线段无关
- [ t f − t b , t f ] [t_f-t_b,t_f] [tf−tb,tf]抛物线段2,与抛物线段1关于时间中点 t h t_h th对称,有恒定加速度 θ ¨ 2 \ddot{\theta}_2 θ¨2,与 θ ¨ 1 \ddot{\theta}_1 θ¨1互为相反数
三者之间的关系为:抛物线段1末端的速度和抛物线段2初始的速度与线性函数段速度相同(交界处速度需要连续),当抛物线段的加速度的绝对值越小时,抛物线所需的时间越长,直线段时间越短,当加速度处于最小临界值时,即
θ
¨
m
i
n
=
4
(
θ
f
−
θ
0
)
t
f
2
\ddot{\theta}_{min}=\frac{4(\theta_f-\theta_0)}{{t_f}^2}
θ¨min=tf24(θf−θ0),没有直线段,两个抛物线段相接。
多段带有抛物线过渡的线性函数
此时前后连接段的速度不为零,如 θ ˙ f ≠ 0 \dot{\theta}_f≠0 θ˙f=0
将原来的
[
t
θ
j
,
t
θ
k
]
[t_{\theta_j},t_{\theta_k}]
[tθj,tθk]时间段上的线性函数分为三段
[
t
θ
j
,
t
θ
j
+
1
2
t
j
]
,
[
t
θ
j
+
1
2
t
j
,
t
θ
k
−
1
2
t
k
]
,
[
t
θ
k
−
1
2
t
k
,
t
θ
k
]
[t_{\theta_j},t_{\theta_j}+\frac{1}{2}t_j],[t_{\theta_j}+\frac{1}{2}t_j,t_{\theta_k}-\frac{1}{2}t_k],[t_{\theta_k}-\frac{1}{2}t_k,t_{\theta_k}]
[tθj,tθj+21tj],[tθj+21tj,tθk−21tk],[tθk−21tk,tθk],
将原来的
[
t
θ
k
,
t
θ
l
]
[t_{\theta_k},t_{\theta_l}]
[tθk,tθl]时间段上的线性函数分为三段
[
t
θ
k
,
t
θ
k
+
1
2
t
k
]
,
[
t
θ
k
+
1
2
t
k
,
t
θ
l
−
1
2
t
l
]
,
[
t
θ
l
−
1
2
t
l
,
t
θ
l
]
[t_{\theta_k},t_{\theta_k}+\frac{1}{2}t_k],[t_{\theta_k}+\frac{1}{2}t_k,t_{\theta_l}-\frac{1}{2}t_l],[t_{\theta_l}-\frac{1}{2}t_l,t_{\theta_l}]
[tθk,tθk+21tk],[tθk+21tk,tθl−21tl],[tθl−21tl,tθl],
-
对于 t d j k t_{djk} tdjk时间段上第一段抛物线有恒定加速度 θ j ¨ \ddot{\theta_j} θj¨,与 t d j k t_{djk} tdjk时间段上第二段抛物线有恒定加速度 θ k ¨ \ddot{\theta_k} θk¨无关;
-
t d j k t_{djk} tdjk时间段上第二段抛物线有恒定加速度与 t d k l t_{dkl} tdkl时间段上第一段抛物线加速度相同,都为 θ k ¨ \ddot{\theta_k} θk¨,
-
任何时间段上的直线段的速度仅与这一段的初始和最终 θ \theta θ和时间t有关
第jk段的末端抛物线和第kl段的初始抛物线,加速度是不变的,等加速运动,即 θ k ¨ \ddot{\theta_k} θk¨是一个常数
头尾段有特殊性
-
第一段(假设起始点t0处的速度为0,在t1时间内速度匀加速到 θ ˙ 12 \dot{\theta}_{12} θ˙12, θ 1 \theta_1 θ1相当于 θ 0 \theta_0 θ0的时间往后延迟 1 2 t 1 \frac{1}{2}t_1 21t1)
-
最后一段(假设最后一段最后到达的点速度为0,与第一段是一个逆过程, θ n \theta_n θn相当于 θ f \theta_f θf的时间往前提前 1 2 t n \frac{1}{2}t_n 21tn)
注释
- 真实系统中的 θ ¨ \ddot{\theta} θ¨取决于许多因素
τ = I θ ¨ \tau=I\ddot{\theta} τ=Iθ¨
- τ \tau τ是力矩,它是施加在物体上的力对旋转运动产生的影响,单位是 N ⋅ m N·m N⋅m;
- I I I是物体的转动惯量,它是物体对于旋转运动的惯性特性的度量。转动惯量的单位是千克·米平方( k g ⋅ m 2 kg·m^2 kg⋅m2);
- θ ¨ \ddot{\theta} θ¨是角加速度,它是物体旋转速度变化的率。角加速度的单位是弧度每秒平方( r a d / s 2 rad/s^2 rad/s2);
加速度取决于力矩,力矩来自于控制马达,马达生出来的 τ \tau τ要应付M,V,G
- 使用二次抛物线规划后的轨迹并没有通过via points
只有当抛物线段的加速度趋向于无穷大时,时间会趋向于无穷小,此时无限逼近via points,可以理解为仅有加速度趋向于无穷大时,轨迹会通过via points
比如在笛卡尔坐标系下,在一些轨迹上面要求必须是直线,须在笛卡尔坐标系下完成轨迹规划。如果必须通过via points👉在直线段延长线上建立虚拟的via points(伪中间点),让原本的via points落在linear段上,就可以通过via points,但不会通过虚拟的viapoint。因为即使圆滑化后,直线段不会受影响,该通过的点还是会通过
- programming力,仔细定义时间t所属的线段或曲线
例题-RRR Manipulator
因为现在的求解是在笛卡尔坐标系下,所以需要在求解出的笛卡尔坐标系上的轨迹按一定时间长度抽样,通过IK计算出三个轴角 θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3 θ1,θ2,θ3,然后进行拟合求解 θ \theta θ对时间的轨迹,才有办法带入手臂里,让手臂做一个操作