学习笔记——机器人微分运动学(1)
雅可比矩阵(Jacobian matrix)
假设某函数从 f : R n → R m f:R^n\to R^m f:Rn→Rm ,从 x ∈ R n x\in R^n x∈Rn 映射到 向量 f ( x ) ∈ R m f(x)\in R^m f(x)∈Rm , 其雅可比矩阵是 m × n m\times n m×n 的矩阵,换句话讲也就是从 R n R^n Rn 到 R m R^m Rm 的线性映射,其重要意义在于它表现了一个多变数向量函数的最佳线性逼近。因此,雅可比矩阵类似于单变数函数的导数。
此函数
f
f
f的雅可比矩阵
J
J
J为
m
×
n
m×n
m×n 的矩阵,一般由以下方式定义:
J
=
[
∂
f
∂
x
1
⋯
∂
f
∂
x
n
]
=
[
∂
f
1
∂
x
1
⋯
∂
f
1
∂
x
n
⋮
⋱
⋮
∂
f
m
∂
x
1
⋯
∂
f
m
∂
x
n
]
\left.\mathbf{J}=\left[\begin{array}{ccc}{{\frac{\partial\mathbf{f}}{\partial x_{1}}}}&{\cdots}&{{\frac{\partial\mathbf{f}}{\partial x_{n}}}}\end{array}\right.\right]=\left[\begin{array}{ccc}{{\frac{\partial f_{1}}{\partial x_{1}}}}&{\cdots}&{{\frac{\partial f_{1}}{\partial x_{n}}}}\\{\vdots}&{\ddots}&{\vdots}\\{{\frac{\partial f_{m}}{\partial x_{1}}}}&{\cdots}&{{\frac{\partial f_{m}}{\partial x_{n}}}}\end{array}\right]
J=[∂x1∂f⋯∂xn∂f]=
∂x1∂f1⋮∂x1∂fm⋯⋱⋯∂xn∂f1⋮∂xn∂fm
于是,矩阵的某一分量可表示为:
J
i
j
=
∂
f
i
∂
x
j
\mathbf{J}_{ij}={\frac{\partial f_{i}}{\partial x_{j}}}
Jij=∂xj∂fi
示例:
对于 F : R 3 → R 4 \mathbf{F}:\mathbb{R}^3\to\mathbb{R}^4 F:R3→R4其各分量如下:
{ y 1 = x 1 y 2 = 5 x 3 y 3 = 4 x 2 2 − 2 x 3 y 4 = x 3 sin x 1 \begin{cases}y_1&=x_1\\y_2&=5x_3\\y_3&=4x_2^2-2x_3\\y_4&=x_3\sin x_1\end{cases} ⎩ ⎨ ⎧y1y2y3y4=x1=5x3=4x22−2x3=x3sinx1
其雅可比矩阵为:
J F ( x 1 , x 2 , x 3 ) = [ ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 ∂ y 1 ∂ x 3 ∂ y 2 ∂ x 1 ∂ y 2 ∂ x 2 ∂ y 2 ∂ x 3 ∂ y 3 ∂ x 1 ∂ y 3 ∂ x 2 ∂ y 3 ∂ x 3 ∂ y 4 ∂ x 1 ∂ y 4 ∂ x 2 ∂ y 4 ∂ x 3 ] J_F(x_1,x_2,x_3)=\begin{bmatrix}\frac{\partial y_1}{\partial x_1}&\frac{\partial y_1}{\partial x_2}&\frac{\partial y_1}{\partial x_3}\\\frac{\partial y_2}{\partial x_1}&\frac{\partial y_2}{\partial x_2}&\frac{\partial y_2}{\partial x_3}\\\frac{\partial y_3}{\partial x_1}&\frac{\partial y_3}{\partial x_2}&\frac{\partial y_3}{\partial x_3}\\\frac{\partial y_4}{\partial x_1}&\frac{\partial y_4}{\partial x_2}&\frac{\partial y_4}{\partial x_3}\end{bmatrix} JF(x1,x2,x3)= ∂x1∂y1∂x1∂y2∂x1∂y3∂x1∂y4∂x2∂y1∂x2∂y2∂x2∂y3∂x2∂y4∂x3∂y1∂x3∂y2∂x3∂y3∂x3∂y4
若机器人由D-H建模得到的各个关节速度表示为
q
˙
=
(
q
˙
1
q
˙
2
⋅
⋅
⋅
q
˙
n
)
T
\dot{\boldsymbol{q}}=(\dot{\boldsymbol{q}}_1\dot{\boldsymbol{q}}_2{\boldsymbol{\cdotp\cdotp\cdotp}} \dot{\boldsymbol{q}}_n)^\mathrm{T}
q˙=(q˙1q˙2⋅⋅⋅q˙n)T(
n
n
n为机器人关节数),机器人末端执行器的线速度表示为
v
v
v,角速度表示为
w
w
w,则关节速度的线性关系为:
v
=
J
v
(
q
)
q
˙
w
=
J
w
(
q
)
q
˙
\begin{aligned}&v=\boldsymbol{J}_v(\boldsymbol{q})\dot{\boldsymbol{q}}\\&w=\boldsymbol{J}_w(\boldsymbol{q})\dot{\boldsymbol{q}}\end{aligned}
v=Jv(q)q˙w=Jw(q)q˙
其中
J
v
(
3
×
n
)
\boldsymbol{J}_v(3{\times}n)
Jv(3×n)表示
q
˙
\dot{q}
q˙和
v
v
v的映射关系,
J
w
(
3
×
n
)
\boldsymbol{J}_w(3{\times}n)
Jw(3×n)表示
q
˙
\dot{q}
q˙和
w
w
w的映射关系
为什么 J v \boldsymbol{J}_v Jv, J w \boldsymbol{J}_w Jw是 ( 3 × n ) (3{\times}n) (3×n)的矩阵?因为在D-H建模中,将每个关节以笛卡尔坐标系进行建模,每个向量被分解为三个方向/角度的分量。
下面是一个例子,可以清晰的展示出 J v \boldsymbol{J}_v Jv, J w \boldsymbol{J}_w Jw分别长什么样子:
让我们考虑一个具有三个滑动关节的机器人系统。这意味着机器人的每个关节可以在直线方向上滑动,而不是旋转。我们将定义机器人的几何结构和关节坐标,然后推导出末端执行器的线速度 p ˙ = [ v x , v y , v z ] T \dot{p} = [v_x, v_y, v_z]^T p˙=[vx,vy,vz]T 和角速度 ϕ ˙ = [ w x , w y , w z ] T \dot{\phi} = [w_x, w_y, w_z]^T ϕ˙=[wx,wy,wz]T 与关节速度 q ˙ = [ d ˙ 1 , d ˙ 2 , d ˙ 3 ] T \dot{q} = [\dot{d}_1, \dot{d}_2, \dot{d}_3]^T q˙=[d˙1,d˙2,d˙3]T 的映射关系。
假设机器人的末端执行器的笛卡尔坐标为 p = [ x , y , z ] T p = [x, y, z]^T p=[x,y,z]T,并且每个关节的滑动距离分别为 d 1 , d 2 , d 3 d_1, d_2, d_3 d1,d2,d3。我们可以得到末端执行器位置和姿态的表达式如下:
x = f ( d 1 , d 2 , d 3 ) , y = g ( d 1 , d 2 , d 3 ) , z = h ( d 1 , d 2 , d 3 ) x = f(d_1, d_2, d_3), \quad y = g(d_1, d_2, d_3), \quad z = h(d_1, d_2, d_3) x=f(d1,d2,d3),y=g(d1,d2,d3),z=h(d1,d2,d3)
其中 f , g , h f, g, h f,g,h 是关于滑动距离的函数。我们首先计算末端执行器的线速度 p ˙ \dot{p} p˙ 对关节速度 q ˙ \dot{q} q˙ 的雅可比矩阵 J v \boldsymbol{J}_v Jv:
J v = [ ∂ x ∂ d 1 ∂ x ∂ d 2 ∂ x ∂ d 3 ∂ y ∂ d 1 ∂ y ∂ d 2 ∂ y ∂ d 3 ∂ z ∂ d 1 ∂ z ∂ d 2 ∂ z ∂ d 3 ] \boldsymbol{J}_v = \begin{bmatrix} \frac{\partial x}{\partial d_1} & \frac{\partial x}{\partial d_2} & \frac{\partial x}{\partial d_3} \\ \frac{\partial y}{\partial d_1} & \frac{\partial y}{\partial d_2} & \frac{\partial y}{\partial d_3} \\ \frac{\partial z}{\partial d_1} & \frac{\partial z}{\partial d_2} & \frac{\partial z}{\partial d_3} \end{bmatrix} Jv= ∂d1∂x∂d1∂y∂d1∂z∂d2∂x∂d2∂y∂d2∂z∂d3∂x∂d3∂y∂d3∂z
接下来,我们计算末端执行器的姿态 ϕ \phi ϕ 对关节速度 q ˙ \dot{q} q˙ 的雅可比矩阵 J w \boldsymbol{J}_w Jw。假设末端执行器的滚转角度、俯仰角度和偏航角度分别为 r o l l , p i t c h , y a w roll, pitch, yaw roll,pitch,yaw,我们有:
J w = [ ∂ r o l l ∂ d 1 ∂ r o l l ∂ d 2 ∂ r o l l ∂ d 3 ∂ p i t c h ∂ d 1 ∂ p i t c h ∂ d 2 ∂ p i t c h ∂ d 3 ∂ y a w ∂ d 1 ∂ y a w ∂ d 2 ∂ y a w ∂ d 3 ] \boldsymbol{J}_w = \begin{bmatrix} \frac{\partial roll}{\partial d_1} & \frac{\partial roll}{\partial d_2} & \frac{\partial roll}{\partial d_3} \\ \frac{\partial pitch}{\partial d_1} & \frac{\partial pitch}{\partial d_2} & \frac{\partial pitch}{\partial d_3} \\ \frac{\partial yaw}{\partial d_1} & \frac{\partial yaw}{\partial d_2} & \frac{\partial yaw}{\partial d_3} \end{bmatrix} Jw= ∂d1∂roll∂d1∂pitch∂d1∂yaw∂d2∂roll∂d2∂pitch∂d2∂yaw∂d3∂roll∂d3∂pitch∂d3∂yaw
这里的 ∂ r o l l ∂ d i , ∂ p i t c h ∂ d i , ∂ y a w ∂ d i \frac{\partial roll}{\partial d_i}, \frac{\partial pitch}{\partial d_i}, \frac{\partial yaw}{\partial d_i} ∂di∂roll,∂di∂pitch,∂di∂yaw 分别表示滚转角、俯仰角和偏航角对第 i i i 个滑动关节距离的偏导数。
若机器人末端执行器的速度为
x
˙
\dot{x}
x˙,则:
x
˙
=
[
v
w
]
=
J
(
q
)
q
˙
.
\dot{x}=\begin{bmatrix}\boldsymbol{v}\\\boldsymbol{w}\end{bmatrix}=\boldsymbol{J}(q)\dot{\boldsymbol{q}}.
x˙=[vw]=J(q)q˙.
其中
J
(
q
)
\boldsymbol{J}(q)
J(q)称为机器人的雅可比矩阵,它是一个
6
×
n
6 \times n
6×n的矩阵,是机器人末端执行器的速度与关节速度的线性变换矩阵。用公式表示如下:
J
(
q
)
=
[
J
v
J
w
]
J\left(q\right)=\begin{bmatrix}J_v\\J_w\end{bmatrix}
J(q)=[JvJw]