先来三幅经典的案例图:
1. 什么时候会出现零空间
当末端保持不动,而其他关节可转动时,这些所有能转动的位形即构成零空间。
- 对于冗余机器人,由于机器人自由度大于空间自由度,因此在任何时候都能出现;
- 对于非冗余的情况,当机器人自由度大于要控制的空间自由度时,也会出现(如只控制末端位置而不管姿态的情况下);
即:
∃
q
˙
,
J
q
˙
=
0
\exists \dot q,J\dot q = 0
∃q˙,Jq˙=0
2. 零空间控制的基本原理
只要机械臂的关节速度在其雅克比矩阵的零空间中,那么末端连杆的速度总是零。
x
˙
=
J
q
˙
q
˙
=
J
+
x
˙
+
(
I
−
J
+
J
)
ϕ
\dot x=J\dot q \\ \dot q = J^+ \dot x + (I-J^+J)\phi
x˙=Jq˙q˙=J+x˙+(I−J+J)ϕ
w
h
e
r
e
,
ϕ
为
任
意
关
节
角
速
度
向
量
,
(
I
−
J
+
J
)
为
零
空
间
投
影
矩
阵
where,\phi为任意关节角速度向量, (I-J^+J)为零空间投影矩阵
where,ϕ为任意关节角速度向量,(I−J+J)为零空间投影矩阵,
J
+
=
J
T
(
J
J
T
)
−
1
J^+=J^T(JJ^T)^{-1}
J+=JT(JJT)−1
3. 应用
- 对于一个有冗余自由度的机器人,假设你除了要控制end effector运动到某一位置,还要保证过程中它的手肘不碰到障碍物,那你总是可以在nullspace中找到一组解满足你的要求:在不改变end effector轨迹的同时避开障碍物
4. 说明
-
机器人零空间内的运动只会改变整个机器人位形,末端位姿(相对而言)不会改变;
-
机器人的零空间是相对主任务定的,也就是说主任务变了,零空间也会随之改变;
-
冗余自由度越多,零空间可以调整的余地越大,否则零空间的优化效果较弱;
-
高优先级任务的零空间内仍然可以继续完成次优先级任务,此为机器人的分层控制或任务优先级控制。
5. 零空间阻抗控制
零空间阻抗一种方案是实现关节柔顺控制,此种情况在受到外部环境时,关节会顺应着力的方向运动;另一种方案是实现臂角平面柔顺
M ( q ) q ¨ + C ( q , q ˙ ) q ˙ + g ( q ) + τ e x t = τ M(q)\ddot q+C(q,\dot q)\dot q+g(q)+\tau_{ext}=\tau M(q)q¨+C(q,q˙)q˙+g(q)+τext=τ
机械臂零空间阻抗控制此处主要是指在机械臂主任务的零空间内实现关节阻抗,由于关节阻抗通常具有良好的交互特性,比如说握手,所以在主任务的零空间内的阻抗控制可以使得机械臂在不影响主任务的情况下实现整个臂的构型调整,从而回避开撞击到臂杆处的外部冲击。
q ¨ c = J + ( x ¨ c − J ˙ q ˙ ) + N [ q ¨ d + M d − 1 ( B d ϕ ˙ + K d ϕ ˙ ) ] \ddot q_c=J^+(\ddot x_c-\dot J\dot q)+N[\ddot q_d+M^{-1}_{d}(B_d\dot \phi + K_d \dot \phi)] q¨c=J+(x¨c−J˙q˙)+N[q¨d+Md−1(Bdϕ˙+Kdϕ˙)]
6. 任务优先级控制
在零空间内无法有效地百分之百地完成任务的原因是冗余度小于优化任务维度,如果冗余度大于零空间内任务维数,则零空间内任务会被确定执行。
任务优先级控制:将机器人笛卡尔任务进行分层处理,其笛卡尔主任务分为高优先级任务以及次优先级任务。如果在高低优先级主任务的完成时,还存在冗余度,在此冗余度执行优化任务。
上述主要包含主任务和零空间任务。 一般适用于七自由度机械臂的控制,更多的优先级任务分解会导致较大的计算量,对机械臂的控制系统要求也更高。对笛卡尔任务进行任务分层,主要是针对特定的位置或姿态的任务精度控制。
7. 无反作用零空间
对于浮动基座机器人来说,机械臂的运动会引起基座的连带运动,从力的角度去分析,主要是机械臂对基座产生了反向作用力和作用力矩,从而引起了基座的运动。
即求解机械臂运动不会影响基座的反作用力/力矩零空间,此时产生反作用力/力矩为0
上式,
P
b
m
P_{bm}
Pbm为无反作用零空间
反作用力矩方程:
反作用力矩零空间:
博主Note:了解概念即可,用时再深入研究
参考文献: