[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-3(3) 刚体的位形 Configuration of Rigid Body

本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。

2024年底本人学位论文发表后方可摘抄
若有帮助请引用
本文参考:
.

食用方法
如何表达刚体在空间中的位置与姿态
姿态参数如何表达?不同表达方式直接的转换关系?
旋转矩阵?转换矩阵?有什么意义和性质?转置代表什么?
如何表示连续变换?——与RPY有关
齐次坐标的意义——简化公式?
务必自己推导全部公式,并理解每个符号的含义

机构运动学与动力学分析与建模 Ch00-3刚体的位形 Configuration of Rigid BodyPart3

    • 3.8 点、线、面、向量在坐标系下的表达
      • 3.8.1 线的特征
      • 3.8.2 面的特征
    • 3.9 简单的示例与计算

3.8 点、线、面、向量在坐标系下的表达

对于固定坐标系下同一点/向量,在不同坐标系

{

A

}

,

{

B

}

left{ A
ight} ,left{ B
ight}

{A},{B}下进行表达,存在如下转换关系:

R

?

V

e

c

t

o

r

A

=

[

Q

B

A

]

R

?

V

e

c

t

o

r

B

vec{R}_{mathrm{Vector}}^{A}=left[ Q_{mathrm{B}}^{A}
ight] vec{R}_{mathrm{Vector}}^{B}

R
VectorA?=[QBA?]R
VectorB?

R

?

P

A

=

[

Q

B

A

]

R

?

P

B

+

R

?

B

A

vec{R}_{mathrm{P}}^{A}=left[ Q_{mathrm{B}}^{A}
ight] vec{R}_{mathrm{P}}^{B}+vec{R}_{mathrm{B}}^{A}

R
PA?=[QBA?]R
PB?+R
BA?
对于固定坐标系下同一线/面,在不同坐标系

{

A

}

,

{

B

}

left{ A
ight} ,left{ B
ight}

{A},{B}下进行表达,存在如下转换关系:

R

?

P

A

+

λ

R

?

V

e

c

t

o

r

A

=

[

Q

B

A

]

R

?

P

B

+

R

?

B

A

+

λ

[

Q

B

A

]

R

?

V

e

c

t

o

r

B

=

[

Q

B

A

]

(

R

?

P

B

+

λ

R

?

V

e

c

t

o

r

B

)

+

R

?

B

A

vec{R}_{mathrm{P}}^{A}+lambda vec{R}_{mathrm{Vector}}^{A}=left[ Q_{mathrm{B}}^{A}
ight] vec{R}_{mathrm{P}}^{B}+vec{R}_{mathrm{B}}^{A}+lambda left[ Q_{mathrm{B}}^{A}
ight] vec{R}_{mathrm{Vector}}^{B}=left[ Q_{mathrm{B}}^{A}
ight] left( vec{R}_{mathrm{P}}^{B}+lambda vec{R}_{mathrm{Vector}}^{B}
ight) +vec{R}_{mathrm{B}}^{A}

R
PA?+λR
VectorA?=[QBA?]R
PB?+R
BA?+λ[QBA?]R
VectorB?=[QBA?](R
PB?+λR
VectorB?)+R
BA?

R

?

P

A

+

λ

1

R

?

V

e

c

t

o

r

1

A

+

λ

2

R

?

V

e

c

t

o

r

2

A

=

[

Q

B

A

]

R

?

P

B

+

R

?

B

A

+

λ

1

[

Q

B

A

]

R

?

V

e

c

t

o

r

1

B

+

λ

2

[

Q

B

A

]

R

?

V

e

c

t

o

r

2

B

=

[

Q

B

A

]

(

R

?

P

B

+

λ

1

R

?

V

e

c

t

o

r

1

B

+

λ

2

R

?

V

e

c

t

o

r

2

B

)

+

R

?

B

A

vec{R}_{mathrm{P}}^{A}+lambda _1vec{R}_{mathrm{Vector}_1}^{A}+lambda _2vec{R}_{mathrm{Vector}_2}^{A}=left[ Q_{mathrm{B}}^{A}
ight] vec{R}_{mathrm{P}}^{B}+vec{R}_{mathrm{B}}^{A}+lambda _1left[ Q_{mathrm{B}}^{A}
ight] vec{R}_{mathrm{Vector}_1}^{B}+lambda _2left[ Q_{mathrm{B}}^{A}
ight] vec{R}_{mathrm{Vector}_2}^{B}=left[ Q_{mathrm{B}}^{A}
ight] left( vec{R}_{mathrm{P}}^{B}+lambda _1vec{R}_{mathrm{Vector}_1}^{B}+lambda _2vec{R}_{mathrm{Vector}_2}^{B}
ight) +vec{R}_{mathrm{B}}^{A}

R
PA?+λ1?R
Vector1?A?+λ2?R
Vector2?A?=[QBA?]R
PB?+R
BA?+λ1?[QBA?]R
Vector1?B?+λ2?[QBA?]R
Vector2?B?=[QBA?](R
PB?+λ1?R
Vector1?B?+λ2?R
Vector2?B?)+R
BA?

3.8.1 线的特征

  • 线的单位方向

    l

    ?

    vec{l}

    l

    已知平面上存在点

    P

    1

    (

    x

    1

    ,

    y

    1

    ,

    z

    1

    )

    ,

    P

    2

    (

    x

    2

    ,

    y

    2

    ,

    z

    2

    )

    P_1left( x_1,y_1,z_1
    ight) ,P_2left( x_2,y_2,z_2
    ight)

    P1?(x1?,y1?,z1?),P2?(x2?,y2?,z2?),则其单位方向向量

    l

    ?

    vec{l}

    l
    为:

    l

    ?

    =

    P

    1

    P

    2

    ?

    P

    1

    P

    2

    ?

    =

    (

    x

    2

    ?

    x

    1

    )

    i

    ?

    +

    (

    y

    2

    ?

    y

    1

    )

    j

    ?

    +

    (

    z

    2

    ?

    z

    1

    )

    k

    ?

    (

    x

    2

    ?

    x

    1

    )

    2

    +

    (

    y

    2

    ?

    y

    1

    )

    2

    +

    (

    z

    2

    ?

    z

    1

    )

    2

    vec{l}=frac{overrightharpoon{P_1P_2}}{left| overrightharpoon{P_1P_2}
    ight|}=frac{left( x_2-x_1
    ight) vec{i}+left( y_2-y_1
    ight) vec{j}+left( z_2-z_1
    ight) vec{k}}{sqrt{left( x_2-x_1
    ight) ^2+left( y_2-y_1
    ight) ^2+left( z_2-z_1
    ight) ^2}}

    l
    =
    ?P1?P2?
    ?
    ?P1?P2?
    ??=(x2??x1?)2+(y2??y1?)2+(z2??z1?)2
    ?(x2??x1?)i
    +(y2??y1?)j
    ?+(z2??z1?)k
    ?

  • 线的姿态参数

    (

    θ

    ,

    ?

    )

    left( heta ,phi
    ight)

    (θ,?)(见1.2.3)
    已知平面上存在点

    P

    1

    (

    x

    1

    ,

    y

    1

    ,

    z

    1

    )

    ,

    P

    2

    (

    x

    2

    ,

    y

    2

    ,

    z

    2

    )

    P_1left( x_1,y_1,z_1
    ight) ,P_2left( x_2,y_2,z_2
    ight)

    P1?(x1?,y1?,z1?),P2?(x2?,y2?,z2?),则其球坐标系姿态角

    (

    θ

    ,

    ?

    )

    left( heta ,phi
    ight)

    (θ,?), 为:

    R

    ?

    P

    1

    P

    2

    F

    =

    (

    x

    2

    ?

    x

    1

    )

    i

    ?

    +

    (

    y

    2

    ?

    y

    1

    )

    j

    ?

    +

    (

    z

    2

    ?

    z

    1

    )

    k

    ?

    =

    P

    1

    P

    2

    ?

    (

    cos

    ?

    ?

    sin

    ?

    θ

    i

    ?

    +

    sin

    ?

    ?

    sin

    ?

    θ

    j

    ?

    +

    cos

    ?

    ?

    k

    ?

    )

    ?

    {

    ?

    =

    a

    r

    c

    cos

    ?

    (

    z

    2

    ?

    z

    1

    P

    1

    P

    2

    ?

    )

    θ

    =

    a

    r

    c

    sin

    ?

    (

    (

    x

    2

    ?

    x

    1

    )

    2

    +

    (

    y

    2

    ?

    y

    1

    )

    2

    )

    ?

    π

    2

    (

    y

    2

    ?

    y

    1

    y

    2

    ?

    y

    1

    ?

    1

    )

    P

    1

    P

    2

    ?

    vec{R}_{P_1P_2}^{F}=left( x_2-x_1
    ight) vec{i}+left( y_2-y_1
    ight) vec{j}+left( z_2-z_1
    ight) vec{k}=left| overrightharpoon{P_1P_2}
    ight|left( cos phi sin heta vec{i}+sin phi sin heta vec{j}+cos phi vec{k}
    ight) \ Rightarrow egin{cases} phi =mathrm{arc}cos left( frac{z_2-z_1}{left| overrightharpoon{P_1P_2}
    ight|}
    ight)\ heta =mathrm{arc}sin frac{left( sqrt{left( x_2-x_1
    ight) ^2+left( y_2-y_1
    ight) ^2}
    ight) -frac{pi}{2}left( frac{y_2-y_1}{left| y_2-y_1
    ight|}-1
    ight)}{left| overrightharpoon{P_1P_2}
    ight|}\ end{cases}

    R
    P1?P2?F?=(x2??x1?)i
    +(y2??y1?)j
    ?+(z2??z1?)k
    =
    ?P1?P2?
    ?
    ?(cos?sinθi
    +sin?sinθj
    ?+cos?k
    )??
    ?
    ???=arccos
    ?
    ?P1?P2?
    ?
    ?z2??z1??
    ?θ=arcsin
    ?P1?P2?
    ?
    ?((x2??x1?)2+(y2??y1?)2
    ?)?2π?(∣y2??y1?∣y2??y1???1)??

3.8.2 面的特征

  • 法矢量

    n

    ?

    vec{n}

    n

    已知平面上存在点

    P

    1

    (

    x

    1

    ,

    y

    1

    ,

    z

    1

    )

    ,

    P

    2

    (

    x

    2

    ,

    y

    2

    ,

    z

    2

    )

    ,

    P

    3

    (

    x

    3

    ,

    y

    3

    ,

    z

    3

    )

    P_1left( x_1,y_1,z_1
    ight) ,P_2left( x_2,y_2,z_2
    ight) ,P_3left( x_3,y_3,z_3
    ight)

    P1?(x1?,y1?,z1?),P2?(x2?,y2?,z2?),P3?(x3?,y3?,z3?), 则其法矢量

    n

    ?

    vec{n}

    n
    为:

    n

    ?

    =

    P

    1

    P

    2

    ?

    ×

    P

    1

    P

    3

    ?

    =

    i

    ?

    j

    ?

    k

    ?

    x

    2

    ?

    x

    1

    y

    2

    ?

    y

    1

    z

    2

    ?

    z

    1

    x

    3

    ?

    x

    1

    y

    3

    ?

    y

    1

    z

    3

    ?

    z

    1

    =

    a

    i

    ?

    +

    b

    j

    ?

    +

    c

    k

    ?

    ;

    n

    ?

    (

    a

    ,

    b

    ,

    c

    )

    {

    a

    =

    (

    y

    2

    ?

    y

    1

    )

    (

    z

    3

    ?

    z

    1

    )

    ?

    (

    y

    3

    ?

    y

    1

    )

    (

    z

    2

    ?

    z

    1

    )

    b

    =

    (

    z

    2

    ?

    z

    1

    )

    (

    x

    3

    ?

    x

    1

    )

    ?

    (

    z

    3

    ?

    z

    1

    )

    (

    x

    2

    ?

    x

    1

    )

    c

    =

    (

    x

    2

    ?

    x

    1

    )

    (

    y

    3

    ?

    y

    1

    )

    ?

    (

    x

    3

    ?

    x

    1

    )

    (

    y

    2

    ?

    y

    1

    )

    ??

    vec{n}=overrightharpoon{P_1P_2} imes overrightharpoon{P_1P_3}=left| egin{matrix} vec{i}& vec{j}& vec{k}\ x_2-x_1& y_2-y_1& z_2-z_1\ x_3-x_1& y_3-y_1& z_3-z_1\ end{matrix}
    ight|=avec{i}+bvec{j}+cvec{k};vec{n}left( a,b,c
    ight) \ egin{cases} a=left( y_2-y_1
    ight) left( z_3-z_1
    ight) -left( y_3-y_1
    ight) left( z_2-z_1
    ight)\ b=left( z_2-z_1
    ight) left( x_3-x_1
    ight) -left( z_3-z_1
    ight) left( x_2-x_1
    ight)\ c=left( x_2-x_1
    ight) left( y_3-y_1
    ight) -left( x_3-x_1
    ight) left( y_2-y_1
    ight) ,,\ end{cases}

    n
    =P1?P2?
    ?×P1?P3?
    ?=
    ?i
    x2??x1?x3??x1??j
    ?y2??y1?y3??y1??k
    z2??z1?z3??z1??
    ?=ai
    +bj
    ?+ck
    ;n
    (a,b,c)?
    ?
    ??a=(y2??y1?)(z3??z1?)?(y3??y1?)(z2??z1?)b=(z2??z1?)(x3??x1?)?(z3??z1?)(x2??x1?)c=(x2??x1?)(y3??y1?)?(x3??x1?)(y2??y1?)?

  • 平面的姿态参数
    已知平面上存在点

    P

    1

    (

    x

    1

    ,

    y

    1

    ,

    z

    1

    )

    ,

    P

    2

    (

    x

    2

    ,

    y

    2

    ,

    z

    2

    )

    ,

    P

    3

    (

    x

    3

    ,

    y

    3

    ,

    z

    3

    )

    P_1left( x_1,y_1,z_1
    ight) ,P_2left( x_2,y_2,z_2
    ight) ,P_3left( x_3,y_3,z_3
    ight)

    P1?(x1?,y1?,z1?),P2?(x2?,y2?,z2?),P3?(x3?,y3?,z3?), 令

    i

    ?

    M

    =

    P

    1

    P

    2

    ?

    P

    1

    P

    2

    ?

    =

    (

    x

    2

    ?

    x

    1

    )

    i

    ?

    +

    (

    y

    2

    ?

    y

    1

    )

    j

    ?

    +

    (

    z

    2

    ?

    z

    1

    )

    k

    ?

    (

    x

    2

    ?

    x

    1

    )

    2

    +

    (

    y

    2

    ?

    y

    1

    )

    2

    +

    (

    z

    2

    ?

    z

    1

    )

    2

    vec{i}^M=frac{overrightharpoon{P_1P_2}}{left| overrightharpoon{P_1P_2}
    ight|}=frac{left( x_2-x_1
    ight) vec{i}+left( y_2-y_1
    ight) vec{j}+left( z_2-z_1
    ight) vec{k}}{sqrt{left( x_2-x_1
    ight) ^2+left( y_2-y_1
    ight) ^2+left( z_2-z_1
    ight) ^2}}

    i
    M=
    ?P1?P2?
    ?
    ?P1?P2?
    ??=(x2??x1?)2+(y2??y1?)2+(z2??z1?)2
    ?(x2??x1?)i
    +(y2??y1?)j
    ?+(z2??z1?)k
    ?,

    k

    ?

    M

    =

    a

    i

    ?

    F

    +

    b

    j

    ?

    F

    +

    c

    k

    ?

    F

    a

    2

    +

    b

    2

    +

    c

    2

    ,

    {

    a

    =

    (

    y

    2

    ?

    y

    1

    )

    (

    z

    3

    ?

    z

    1

    )

    ?

    (

    y

    3

    ?

    y

    1

    )

    (

    z

    2

    ?

    z

    1

    )

    b

    =

    (

    z

    2

    ?

    z

    1

    )

    (

    x

    3

    ?

    x

    1

    )

    ?

    (

    z

    3

    ?

    z

    1

    )

    (

    x

    2

    ?

    x

    1

    )

    c

    =

    (

    x

    2

    ?

    x

    1

    )

    (

    y

    3

    ?

    y

    1

    )

    ?

    (

    x

    3

    ?

    x

    1

    )

    (

    y

    2

    ?

    y

    1

    )

    ??

    vec{k}^M=frac{avec{i}^F+bvec{j}^F+cvec{k}^F}{sqrt{a^2+b^2+c^2}},egin{cases} a=left( y_2-y_1
    ight) left( z_3-z_1
    ight) -left( y_3-y_1
    ight) left( z_2-z_1
    ight)\ b=left( z_2-z_1
    ight) left( x_3-x_1
    ight) -left( z_3-z_1
    ight) left( x_2-x_1
    ight)\ c=left( x_2-x_1
    ight) left( y_3-y_1
    ight) -left( x_3-x_1
    ight) left( y_2-y_1
    ight) ,,\ end{cases}

    k
    M=a2+b2+c2
    ?ai
    F+bj
    ?F+ck
    F?,?
    ?
    ??a=(y2??y1?)(z3??z1?)?(y3??y1?)(z2??z1?)b=(z2??z1?)(x3??x1?)?(z3??z1?)(x2??x1?)c=(x2??x1?)(y3??y1?)?(x3??x1?)(y2??y1?)?, 根据笛卡尔坐标系的基矢量转换关系:

    j

    ?

    M

    =

    k

    ?

    M

    ×

    i

    ?

    M

    vec{j}^M=vec{k}^M imes vec{i}^M

    j
    ?M=k
    M×i
    M
    可得:

    [

    i

    ?

    M

    j

    ?

    M

    k

    ?

    M

    ]

    =

    [

    Q

    F

    M

    ]

    [

    i

    ?

    F

    j

    ?

    F

    k

    ?

    F

    ]

    ;

    [

    Q

    M

    F

    ]

    =

    [

    Q

    F

    M

    ]

    T

    =

    [

    q

    11

    q

    12

    q

    13

    q

    21

    q

    22

    q

    23

    q

    31

    q

    32

    q

    33

    ]

    left[ egin{array}{c} vec{i}^M\ vec{j}^M\ vec{k}^M\ end{array}
    ight] =left[ Q_{mathrm{F}}^{M}
    ight] left[ egin{array}{c} vec{i}^F\ vec{j}^F\ vec{k}^F\ end{array}
    ight] ;left[ Q_{mathrm{M}}^{F}
    ight] =left[ Q_{mathrm{F}}^{M}
    ight] ^{mathrm{T}}=left[ egin{matrix} q_{11}& q_{12}& q_{13}\ q_{21}& q_{22}& q_{23}\ q_{31}& q_{32}& q_{33}\ end{matrix}
    ight]

    ?i
    Mj
    ?Mk
    M?
    ?=[QFM?]
    ?i
    Fj
    ?Fk
    F?
    ?;[QMF?]=[QFM?]T=
    ?q11?q21?q31??q12?q22?q32??q13?q23?q33??
    ?
    将该矩阵内的元素带入上述小节中对应的转换关系,即可得到对应表达下的姿态参数。

3.9 简单的示例与计算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述