一、雅可比矩阵的作用
机器人雅克比矩阵描述的是关节速度和末端笛卡尔速度和角速度之间的关系。它的行数等于机器人在空间中自由度的数目,列数等于机器人关节的数目。
二、雅可比矩阵的求解
1、矢量积法
对于移动关节
z
i
\boldsymbol{z}_i
zi:
仅有移动,仅对末端执行器产生一个与
z
i
\boldsymbol{z}_i
zi方向相同的角速度,大小为
q
˙
i
\dot{q}_i
q˙i,因此:
[
v
w
]
=
[
0
z
i
]
q
˙
i
\begin{bmatrix}\boldsymbol{v}\\ \boldsymbol{w}\\ \end{bmatrix}=\begin{bmatrix} \boldsymbol{0}\\ \boldsymbol{z}_i\\ \end{bmatrix}\dot{q}_i
[vw]=[0zi]q˙i
所以,雅可比矩阵第
i
i
i列为:
J
i
=
[
0
z
i
]
\boldsymbol{J}_i=\begin{bmatrix} \boldsymbol{0}\\ \boldsymbol{z}_i\\ \end{bmatrix}
Ji=[0zi]
对于转动关节
z
i
\boldsymbol{z}_i
zi:
仅有转动,对末端执行器产生一个大小为
q
˙
i
\dot{q}_i
q˙i,方向与
z
i
\boldsymbol{z}_i
zi方向相同的角速度,以及一个
(
z
i
×
0
p
i
p
e
)
q
˙
i
(\boldsymbol{z}_i \times ^{0}\boldsymbol{p}_i\boldsymbol{p}_e)\dot{q}_i
(zi×0pipe)q˙i的线速度,因此:
[
v
w
]
=
[
z
i
×
0
p
i
p
e
z
i
]
q
˙
i
\begin{bmatrix}\boldsymbol{v}\\ \boldsymbol{w}\\ \end{bmatrix}=\begin{bmatrix} \boldsymbol{z}_i \times ^{0}\boldsymbol{p}_i\boldsymbol{p}_e\\ \boldsymbol{z}_i\\ \end{bmatrix}\dot{q}_i
[vw]=[zi×0pipezi]q˙i
其中,
0
p
i
p
e
^{0}\boldsymbol{p}_i\boldsymbol{p}_e
0pipe为末端执行器原点相对于坐标系{
i
i
i}的位置矢量在世界坐标系{
0
0
0}下的表示,故
0
p
i
p
e
^{0}\boldsymbol{p}_i\boldsymbol{p}_e
0pipe=
0
R
i
⋅
i
p
i
p
e
^{0}\boldsymbol{R}_i \cdot ^{i}\boldsymbol{p}_i\boldsymbol{p}_e
0Ri⋅ipipe
所以,雅可比矩阵第
i
i
i列为:
J
i
=
[
z
i
×
(
0
R
i
⋅
i
p
i
p
e
)
z
i
]
\boldsymbol{J}_i=\begin{bmatrix} \boldsymbol{z}_i \times (^{0}\boldsymbol{R}_i \cdot ^{i}\boldsymbol{p}_i\boldsymbol{p}_e)\\ \boldsymbol{z}_i\\ \end{bmatrix}
Ji=[zi×(0Ri⋅ipipe)zi]
2、微分变换法
绕
x
,
y
,
z
x,y,z
x,y,z旋转
θ
\theta
θ角的旋转矩阵为:
R
(
x
,
θ
)
=
[
1
0
0
0
c
o
s
θ
−
s
i
n
θ
0
s
i
n
θ
c
o
s
θ
]
R
(
y
,
θ
)
=
[
c
o
s
θ
0
s
i
n
θ
0
1
0
−
s
i
n
θ
0
c
o
s
θ
]
R
(
z
,
θ
)
=
[
c
o
s
θ
−
s
i
n
θ
0
s
i
n
θ
c
o
s
θ
0
0
0
1
]
\boldsymbol{R}(x,\theta)=\begin{bmatrix}1&0&0\\ 0&cos\theta&-sin\theta\\ 0&sin\theta&cos\theta\\ \end{bmatrix} \boldsymbol{R}(y,\theta)=\begin{bmatrix}cos\theta&0&sin\theta\\ 0&1&0\\ -sin\theta&0&cos\theta\\ \end{bmatrix} \boldsymbol{R}(z,\theta)=\begin{bmatrix}cos\theta&-sin\theta&0\\ sin\theta&cos\theta&0\\ 0&0&1\\ \end{bmatrix}
R(x,θ)=
1000cosθsinθ0−sinθcosθ
R(y,θ)=
cosθ0−sinθ010sinθ0cosθ
R(z,θ)=
cosθsinθ0−sinθcosθ0001
当
θ
\theta
θ极小时
s
i
n
θ
=
θ
sin\theta=\theta
sinθ=θ,
c
o
s
θ
=
1
cos\theta=1
cosθ=1,记分别绕
x
,
y
,
z
x,y,z
x,y,z旋转的角度为
δ
x
,
δ
y
,
δ
z
\delta_x,\delta_y,\delta_z
δx,δy,δz,则绕
x
,
y
,
z
x,y,z
x,y,z的旋转矩阵可以写为:
R
(
x
,
δ
x
)
=
[
1
0
0
0
1
−
δ
x
0
δ
x
1
]
R
(
y
,
δ
y
)
=
[
1
0
δ
y
0
1
0
−
δ
y
0
1
]
R
(
z
,
δ
z
)
=
[
1
−
δ
z
0
δ
z
1
0
0
0
1
]
\boldsymbol{R}(x,\delta_x)=\begin{bmatrix}1&0&0\\ 0&1&-\delta_x\\ 0&\delta_x&1\\ \end{bmatrix} \boldsymbol{R}(y,\delta_y)=\begin{bmatrix}1&0&\delta_y\\ 0&1&0\\ -\delta_y&0&1\\ \end{bmatrix} \boldsymbol{R}(z,\delta_z)=\begin{bmatrix}1&-\delta_z&0\\ \delta_z&1&0\\ 0&0&1\\ \end{bmatrix}
R(x,δx)=
10001δx0−δx1
R(y,δy)=
10−δy010δy01
R(z,δz)=
1δz0−δz10001
因此,旋转矩阵可以写为:
R
=
R
(
x
,
δ
x
)
R
(
y
,
δ
y
)
R
(
z
,
δ
z
)
=
[
1
−
δ
z
δ
y
δ
z
1
−
δ
x
−
δ
y
δ
x
1
]
\boldsymbol{R}=\boldsymbol{R}(x,\delta_x)\boldsymbol{R}(y,\delta_y)\boldsymbol{R}(z,\delta_z)=\begin{bmatrix}1&-\delta_z&\delta_y\\ \delta_z&1&-\delta_x\\ -\delta_y&\delta_x&1\\ \end{bmatrix}
R=R(x,δx)R(y,δy)R(z,δz)=
1δz−δy−δz1δxδy−δx1
当微分平移向量为
δ
d
=
d
x
i
+
d
y
j
+
d
z
k
\boldsymbol{\delta}_d=d_x\boldsymbol{i}+d_y\boldsymbol{j}+d_z\boldsymbol{k}
δd=dxi+dyj+dzk时,结合上述旋转矩阵可以写出变换矩阵为:
T
=
[
1
−
δ
z
δ
y
d
x
δ
z
1
−
δ
x
d
y
−
δ
y
δ
x
1
d
z
0
0
0
1
]
\boldsymbol{T}=\begin{bmatrix}1&-\delta_z&\delta_y&d_x\\ \delta_z&1&-\delta_x&d_y\\ -\delta_y&\delta_x&1&d_z\\0&0&0&1 \end{bmatrix}
T=
1δz−δy0−δz1δx0δy−δx10dxdydz1
对变换矩阵
i
T
i
+
1
^{i}\boldsymbol{T}_{i+1}
iTi+1,它对坐标系{
i
i
i}的微分变换可以表示为:
i
T
i
+
1
+
d
i
T
i
+
1
=
i
T
i
+
1
⋅
T
r
a
n
(
δ
x
,
δ
y
,
δ
z
,
d
)
d
i
T
i
+
1
=
i
T
i
+
1
⋅
(
T
r
a
n
(
δ
x
,
δ
y
,
δ
z
,
d
)
−
I
)
^{i}\boldsymbol{T}_{i+1}+d^{i}\boldsymbol{T}_{i+1}=^{i}\boldsymbol{T}_{i+1}\cdot\boldsymbol{Tran}(\delta_x,\delta_y,\delta_z,d)\\ d^{i}\boldsymbol{T}_{i+1}=^{i}\boldsymbol{T}_{i+1}\cdot(\boldsymbol{Tran}(\delta_x,\delta_y,\delta_z,d)-\boldsymbol{I})
iTi+1+diTi+1=iTi+1⋅Tran(δx,δy,δz,d)diTi+1=iTi+1⋅(Tran(δx,δy,δz,d)−I)
令
i
Δ
i
,
i
+
1
=
T
r
a
n
(
δ
x
,
δ
y
,
δ
z
,
d
)
−
I
^{i}\Delta_{i,i+1}=\boldsymbol{Tran}(\delta_x,\delta_y,\delta_z,d)-\boldsymbol{I}
iΔi,i+1=Tran(δx,δy,δz,d)−I,其中
δ
x
,
δ
y
,
δ
z
\delta_x,\delta_y,\delta_z
δx,δy,δz分别为绕坐标系{
i
i
i}的
x
,
y
,
z
x,y,z
x,y,z轴的旋转角度,
d
d
d为坐标系{
i
i
i}下的位置矢量,
i
Δ
i
,
i
+
1
^{i}\Delta_{i,i+1}
iΔi,i+1为坐标系{
i
i
i}下的微分变换算子。
对变换矩阵
i
T
i
+
1
^{i}\boldsymbol{T}_{i+1}
iTi+1,它对坐标系{
i
+
1
i+1
i+1}的微分变换可以表示为:
i
T
i
+
1
+
d
i
T
i
+
1
=
T
r
a
n
(
δ
x
,
δ
y
,
δ
z
,
d
)
⋅
i
T
i
+
1
d
i
T
i
+
1
=
(
T
r
a
n
(
δ
x
,
δ
y
,
δ
z
,
d
)
−
I
)
⋅
i
T
i
+
1
^{i}\boldsymbol{T}_{i+1}+d^{i}\boldsymbol{T}_{i+1}=\boldsymbol{Tran}(\delta_x,\delta_y,\delta_z,d)\cdot^{i}\boldsymbol{T}_{i+1}\\ d^{i}\boldsymbol{T}_{i+1}=(\boldsymbol{Tran}(\delta_x,\delta_y,\delta_z,d)-\boldsymbol{I})\cdot^{i}\boldsymbol{T}_{i+1}
iTi+1+diTi+1=Tran(δx,δy,δz,d)⋅iTi+1diTi+1=(Tran(δx,δy,δz,d)−I)⋅iTi+1
令
i
+
1
Δ
i
,
i
+
1
=
T
r
a
n
(
δ
x
,
δ
y
,
δ
z
,
d
)
−
I
^{i+1}\Delta_{i,i+1}=\boldsymbol{Tran}(\delta_x,\delta_y,\delta_z,d)-\boldsymbol{I}
i+1Δi,i+1=Tran(δx,δy,δz,d)−I,其中
δ
x
,
δ
y
,
δ
z
\delta_x,\delta_y,\delta_z
δx,δy,δz分别为绕坐标系{
i
+
1
i+1
i+1}的
x
,
y
,
z
x,y,z
x,y,z轴的旋转角度,
d
d
d为坐标系{
i
i
i}下的位置矢量,
i
+
1
Δ
i
,
i
+
1
^{i+1}\Delta_{i,i+1}
i+1Δi,i+1为坐标系{
i
+
1
i+1
i+1}下的微分变换算子。
微分变换算子
Δ
\Delta
Δ:
Δ
=
[
0
−
δ
z
δ
y
d
x
δ
z
0
−
δ
x
d
y
−
δ
y
δ
x
0
d
z
0
0
0
0
]
\Delta=\begin{bmatrix}0&-\delta_z&\delta_y&d_x\\ \delta_z&0&-\delta_x&d_y\\ -\delta_y&\delta_x&0&d_z\\0&0&0&0 \end{bmatrix}
Δ=
0δz−δy0−δz0δx0δy−δx00dxdydz0
由机器人末端相对基坐标系的齐次变换矩阵为:
0
T
6
=
0
T
1
⋅
1
T
2
⋅
2
T
3
⋅
3
T
4
⋅
4
T
5
⋅
5
T
6
^{0}\boldsymbol{T}_{6}=^{0}\boldsymbol{T}_{1}\cdot^{1}\boldsymbol{T}_{2}\cdot^{2}\boldsymbol{T}_{3}\cdot^{3}\boldsymbol{T}_{4}\cdot^{4}\boldsymbol{T}_{5}\cdot^{5}\boldsymbol{T}_{6}
0T6=0T1⋅1T2⋅2T3⋅3T4⋅4T5⋅5T6
第
i
i
i个关节的微分变换引起机器人末端的微分变换为:
d
(
0
T
6
)
=
0
T
6
⋅
6
Δ
0
,
6
⋅
d
q
i
d(^{0}\boldsymbol{T}_{6})=^{0}\boldsymbol{T}_{6}\cdot^{6}\Delta_{0,6}\cdot dq_i
d(0T6)=0T6⋅6Δ0,6⋅dqi
由
i
+
1
Δ
i
,
i
+
1
=
i
T
i
+
1
−
1
⋅
i
Δ
i
,
i
+
1
⋅
i
T
i
+
1
^{i+1}\Delta_{i,i+1}=^{i}\boldsymbol{T}_{i+1}^{-1}\cdot^{i}\Delta_{i,i+1}\cdot^{i}\boldsymbol{T}_{i+1}
i+1Δi,i+1=iTi+1−1⋅iΔi,i+1⋅iTi+1可得:
6
Δ
i
,
6
=
i
T
6
−
1
⋅
i
Δ
i
,
6
⋅
i
T
6
^{6}\Delta_{i,6}=^{i}\boldsymbol{T}_{6}^{-1}\cdot^{i}\Delta_{i,6}\cdot^{i}\boldsymbol{T}_{6}
6Δi,6=iT6−1⋅iΔi,6⋅iT6
其中,
i
T
6
=
i
T
i
+
1
⋅
i
+
1
T
i
+
2
⋅
⋅
⋅
5
T
6
^{i}\boldsymbol{T}_{6}=^{i}\boldsymbol{T}_{i+1}\cdot^{i+1}\boldsymbol{T}_{i+2}\cdot\cdot\cdot^{5}\boldsymbol{T}_{6}
iT6=iTi+1⋅i+1Ti+2⋅⋅⋅5T6,故:
6
Δ
i
,
6
=
(
i
T
i
+
1
⋅
i
+
1
T
i
+
2
⋅
⋅
⋅
5
T
6
)
−
1
⋅
i
Δ
i
,
6
⋅
(
i
T
i
+
1
⋅
i
+
1
T
i
+
2
⋅
⋅
⋅
5
T
6
)
^{6}\Delta_{i,6}=(^{i}\boldsymbol{T}_{i+1}\cdot^{i+1}\boldsymbol{T}_{i+2}\cdot\cdot\cdot^{5}\boldsymbol{T}_{6})^{-1}\cdot^{i}\Delta_{i,6}\cdot(^{i}\boldsymbol{T}_{i+1}\cdot^{i+1}\boldsymbol{T}_{i+2}\cdot\cdot\cdot^{5}\boldsymbol{T}_{6})
6Δi,6=(iTi+1⋅i+1Ti+2⋅⋅⋅5T6)−1⋅iΔi,6⋅(iTi+1⋅i+1Ti+2⋅⋅⋅5T6)
i
T
6
=
[
i
n
x
i
o
x
i
a
x
i
p
x
i
n
y
i
o
y
i
a
y
i
p
y
i
n
z
i
o
z
i
a
z
i
p
z
0
0
0
1
]
^{i}\boldsymbol{T}_{6}=\begin{bmatrix}^{i}n_x&^{i}o_x&^{i}a_x&^{i}p_x\\ ^{i}n_y&^{i}o_y&^{i}a_y&^{i}p_y\\ ^{i}n_z&^{i}o_z&^{i}a_z&^{i}p_z\\0&0&0&1 \end{bmatrix}
iT6=
inxinyinz0ioxioyioz0iaxiayiaz0ipxipyipz1
[
6
d
x
6
d
y
6
d
z
6
δ
x
6
δ
x
6
δ
x
]
=
[
i
n
x
i
n
y
i
n
z
(
i
p
×
i
n
)
x
(
i
p
×
i
n
)
y
(
i
p
×
i
n
)
z
i
o
x
i
o
y
i
o
z
(
i
p
×
i
o
)
x
(
i
p
×
i
o
)
y
(
i
p
×
i
o
)
z
i
a
x
i
a
y
i
a
z
(
i
p
×
i
a
)
x
(
i
p
×
i
a
)
y
(
i
p
×
i
a
)
z
0
0
0
i
n
x
i
n
y
i
n
z
0
0
0
i
o
x
i
o
y
i
o
z
0
0
0
i
a
x
i
a
y
i
a
z
]
[
d
i
x
d
i
y
d
i
z
δ
i
x
δ
i
y
δ
i
z
]
\begin{bmatrix}^{6}d_{x}\\^{6}d_{y}\\^{6}d_{z}\\^{6}\delta_{x}\\^{6}\delta_{x}\\^{6}\delta_{x}\end{bmatrix}=\begin{bmatrix}^{i}n_x&^{i}n_y&^{i}n_z&(^{i}p \times ^{i}n)_x&(^{i}p \times ^{i}n)_y&(^{i}p \times ^{i}n)_z\\ ^{i}o_x&^{i}o_y&^{i}o_z&(^{i}p \times ^{i}o)_x&(^{i}p \times ^{i}o)_y&(^{i}p \times ^{i}o)_z\\ ^{i}a_x&^{i}a_y&^{i}a_z&(^{i}p \times ^{i}a)_x&(^{i}p \times ^{i}a)_y&(^{i}p \times ^{i}a)_z\\0&0&0&^{i}n_x& ^{i}n_y&^{i}n_z\\0&0&0&^{i}o_x& ^{i}o_y&^{i}o_z\\0&0&0&^{i}a_x& ^{i}a_y&^{i}a_z\end{bmatrix}\begin{bmatrix}d_{ix}\\d_{iy}\\d_{iz}\\ \delta_{ix}\\ \delta_{iy}\\ \delta_{iz}\end{bmatrix}
6dx6dy6dz6δx6δx6δx
=
inxioxiax000inyioyiay000inzioziaz000(ip×in)x(ip×io)x(ip×ia)xinxioxiax(ip×in)y(ip×io)y(ip×ia)yinyioyiay(ip×in)z(ip×io)z(ip×ia)zinzioziaz
dixdiydizδixδiyδiz
对于移动关节
i
i
i:
d
i
=
[
d
i
x
d
i
y
d
i
z
]
=
[
0
0
1
]
,
δ
i
=
[
δ
i
x
δ
i
y
δ
i
z
]
=
[
0
0
0
]
d_{i}=\begin{bmatrix}d_{ix}&d_{iy}&d_{iz}\end{bmatrix}=\begin{bmatrix}0&0&1\end{bmatrix},\delta_{i}=\begin{bmatrix}\delta_{ix}&\delta_{iy}&\delta_{iz}\end{bmatrix}=\begin{bmatrix}0&0&0\end{bmatrix}
di=[dixdiydiz]=[001],δi=[δixδiyδiz]=[000]
因此:
J
l
i
=
[
i
n
z
i
o
z
i
a
z
]
,
J
a
i
=
[
0
0
0
]
\boldsymbol{J}_{li}=\begin{bmatrix} ^{i}n_z\\^{i}o_z\\^{i}a_z\end{bmatrix},\boldsymbol{J}_{ai}=\begin{bmatrix}0\\0\\0 \end{bmatrix}
Jli=
inzioziaz
,Jai=
000
对于转动关节
i
i
i:
d
i
=
[
d
i
x
d
i
y
d
i
z
]
=
[
0
0
0
]
,
δ
i
=
[
δ
i
x
δ
i
y
δ
i
z
]
=
[
0
0
1
]
d_{i}=\begin{bmatrix}d_{ix}&d_{iy}&d_{iz}\end{bmatrix}=\begin{bmatrix}0&0&0\end{bmatrix},\delta_{i}=\begin{bmatrix}\delta_{ix}&\delta_{iy}&\delta_{iz}\end{bmatrix}=\begin{bmatrix}0&0&1\end{bmatrix}
di=[dixdiydiz]=[000],δi=[δixδiyδiz]=[001]
因此:
J
l
i
=
[
(
i
p
×
i
n
)
z
(
i
p
×
i
o
)
z
(
i
p
×
i
z
)
z
]
,
J
a
i
=
[
i
n
z
i
o
z
i
a
z
]
\boldsymbol{J}_{li}=\begin{bmatrix} (^{i}p \times ^{i}n)_z\\(^{i}p \times ^{i}o)_z\\(^{i}p \times ^{i}z)_z \end{bmatrix},\boldsymbol{J}_{ai}=\begin{bmatrix} ^{i}n_z\\^{i}o_z\\^{i}a_z \end{bmatrix}
Jli=
(ip×in)z(ip×io)z(ip×iz)z
,Jai=
inzioziaz
文章来源:https://www.toymoban.com/news/detail-418120.html
3、世界坐标系下的雅可比矩阵
上述雅可比矩阵为工具坐标系{
e
e
e}下的关节速度与末端速度、角速度之间的映射,即工具坐标系{
e
e
e}下的雅可比矩阵。
世界坐标系{
0
0
0}下的末端速度、角速度与工具坐标系{
e
e
e}下的末端速度、角速度之间的转换关系为:
[
v
w
]
=
[
0
R
e
0
0
0
R
e
]
[
e
v
e
w
]
\begin{bmatrix}\boldsymbol{v}\\ \boldsymbol{w}\\ \end{bmatrix}=\begin{bmatrix} ^{0}\boldsymbol{R}_{e}& \boldsymbol{0}\\ \boldsymbol{0}& ^0\boldsymbol{R}_{e}\\ \end{bmatrix}\begin{bmatrix} ^{e}\boldsymbol{v}\\ ^{e}\boldsymbol{w}\\ \end{bmatrix}
[vw]=[0Re000Re][evew]
因此,当想要获得世界坐标系{
0
0
0}下的关节速度与末端速度、角速度之间的映射即世界坐标系{
0
0
0}下的雅可比矩阵时,只需要将工具坐标系{
e
e
e}下的雅可比矩阵左乘世界坐标系{
0
0
0}与工具坐标系{
e
e
e}之间的旋转矩阵
0
R
e
^{0}\boldsymbol{R}_e
0Re,即:
J
0
=
[
0
R
e
0
0
0
R
e
]
J
e
\boldsymbol{J}_{0}=\begin{bmatrix} ^{0}\boldsymbol{R}_{e}& \boldsymbol{0}\\ \boldsymbol{0}& ^0\boldsymbol{R}_{e}\\ \end{bmatrix} \boldsymbol{J}_{e}
J0=[0Re000Re]Je文章来源地址https://www.toymoban.com/news/detail-418120.html
到了这里,关于机器人雅可比矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!