[足式机器人]Part4 南科大高等机器人控制课 Ch06 Product of Exponential and Kinematics of Open Chain

本文仅供学习使用
本文参考:
B站:CLEAR_LAB
笔者带更新-运动学
课程主讲教师:
Prof. Wei Zhang

南科大高等机器人控制课 Ch06 Product of Exponential and Kinematics of Open Chain

  • 1. Motivating Example
    • 1.1 Kinematics
    • 1.2 Illustration Example
    • 1.3 Noation Setup
  • 2. Product of Exponential Formula Derivations
    • 2.1 Product of Exponential : Main Idea
    • 2.2 PoE : Screw Motion in Different Order
    • 2.3 PoE Example: 3R Spatial Open Chain
  • 3. Practice Example


1. Motivating Example

1.1 Kinematics

  • Kinematics is a branch of classical mechanics that describes the motion of points, bodies(objects), and systems of bodies(groups of objects) without considering the mass of each or the forces that caused the motion

  • Robot : Multiple rigid bodies interconnected through joints
    [足式机器人]Part4 南科大高等机器人控制课 Ch06 Product of Exponential and Kinematics of Open Chain_第1张图片

  1. Forward Kinematics: calculation of the configuration [ T ] = ( [ Q ] , R ⃗ ) \left[ T \right] =\left( \left[ Q \right] ,\vec{R} \right) [T]=([Q],R ) of the end-effector frame from joint variables θ ⃗ = ( θ 1 , ⋯ θ n ) \vec{\theta}=\left( \theta _1,\cdots \theta _{\mathrm{n}} \right) θ =(θ1,θn)
  2. Velocity Kinematics(Next Lecture): Deriving the Jacobian matrix: linearized map fro the joint velocities θ ˙ \dot{\theta} θ˙ to the spatial velocity V \mathcal{V} V of the end-effector

1.2 Illustration Example

Consider a 2R robot:

  • Three links and two joints θ 1 , θ 2 \theta _1,\theta _2 θ1,θ2

  • Link/body frame attached to link i i i at joint i i i (one of possible choices)

  • Fixed/world frame { s } \left\{ s \right\} {s} frame, end-effector frame { b } \left\{ b \right\} {b}

  • Goal : compute [ T B S ( θ 1 , θ 2 ) ] \left[ T_{\mathrm{B}}^{S}\left( \theta _1,\theta _2 \right) \right] [TBS(θ1,θ2)] : function of θ 1 , θ 2 \theta _1,\theta _2 θ1,θ2

  • Initial pose: [ M ] = [ T B S ( 0 , 0 ) ] \left[ M \right] =\left[ T_{\mathrm{B}}^{S}\left( 0,0 \right) \right] [M]=[TBS(0,0)]
    [足式机器人]Part4 南科大高等机器人控制课 Ch06 Product of Exponential and Kinematics of Open Chain_第2张图片
    [ M ] = [ T B S ( 0 , 0 ) ] = [ 1 0 0 L 1 + L 2 0 1 0 0 0 0 1 L 0 0 0 0 1 ] \left[ M \right] =\left[ T_{\mathrm{B}}^{S}\left( 0,0 \right) \right] =\left[ \begin{matrix} 1& 0& 0& L_1+L_2\\ 0& 1& 0& 0\\ 0& 0& 1& L_0\\ 0& 0& 0& 1\\ \end{matrix} \right] [M]=[TBS(0,0)]= 100001000010L1+L20L01

  • Fixed joint 1 at θ 1 = 0 \theta _1=0 θ1=0, rotate about joint 2 by θ 2 \theta _2 θ2 , we have T B S ( 0 , θ 2 ) T_{\mathrm{B}}^{S}\left( 0,\theta _2 \right) TBS(0,θ2)
    Rigid body motion for Link2/ { b } \left\{ b \right\} {b} , represented by screw motion
    In coordinate-free way : [ M ] θ 1 = 0 , θ 2 = 0 ⟶ [ T ] = e [ S 2 0 ] θ 2 [ T ] [ M ] = e [ S 2 0 ] θ 2 [ M ] \underset{\theta _1=0,\theta _2=0}{\left[ M \right]}\overset{\left[ T \right] =e^{\left[ \mathcal{S} _{2}^{0} \right] \theta _2}}{\longrightarrow}\left[ T \right] \left[ M \right] =e^{\left[ \mathcal{S} _{2}^{0} \right] \theta _2}\left[ M \right] θ1=0,θ2=0[M][T]=e[S20]θ2[T][M]=e[S20]θ2[M]
    In { s } \left\{ s \right\} {s} \ { o } \left\{ o \right\} {o} frame [ T B S ( 0 , θ 2 ) ] = e [ S 2 0 ] θ 2 [ T B S ( 0 , 0 ) ] \left[ T_{\mathrm{B}}^{S}\left( 0,\theta _2 \right) \right] =e^{\left[ \mathcal{S} _{2}^{0} \right] \theta _2}\left[ T_{\mathrm{B}}^{S}\left( 0,0 \right) \right] [TBS(0,θ2)]=e[S20]θ2[TBS(0,0)]
    S 2 0 \mathcal{S} _{2}^{0} S20 is a function of θ 1 \theta _1 θ1 , more precisely S 2 0 ( θ 1 ) \mathcal{S} _{2}^{0}\left( \theta _1 \right) S20(θ1)
    Now θ 1 = 0 \theta _1=0 θ1=0, define S ˉ 2 0 = S 2 0 ( 0 ) , S ˉ 2 0 = [ ω ⃗ 2 0 v ⃗ 2 0 ] , ω ⃗ 2 0 = [ 0 0 1 ] \bar{\mathcal{S}}_{2}^{0}=\mathcal{S} _{2}^{0}\left( 0 \right) ,\bar{\mathcal{S}}_{2}^{0}=\left[ \begin{array}{c} \vec{\omega}_{2}^{0}\\ \vec{v}_{2}^{0}\\ \end{array} \right] ,\vec{\omega}_{2}^{0}=\left[ \begin{array}{c} 0\\ 0\\ 1\\ \end{array} \right] Sˉ20=S20(0),Sˉ20=[ω 20v 20],ω 20= 001
    h = 0 , v ⃗ 2 0 = − ω ⃗ 2 0 × R ⃗ 2 0 = [ 0 0 − 1 ] × [ L 1 0 0 ] = [ 0 − L 1 0 ] h=0,\vec{v}_{2}^{0}=-\vec{\omega}_{2}^{0}\times \vec{R}_{2}^{0}=\left[ \begin{array}{c} 0\\ 0\\ -1\\ \end{array} \right] \times \left[ \begin{array}{c} L_1\\ 0\\ 0\\ \end{array} \right] =\left[ \begin{array}{c} 0\\ -L_1\\ 0\\ \end{array} \right] h=0,v 20=ω 20×R 20= 001 × L100 = 0L10
    ⇒ S ˉ 2 0 = [ 0 0 1 0 − L 1 0 ] ⇒ [ T B S ( 0 , θ 2 ) ] = e [ S ˉ 2 0 ] θ 2 [ M ] \Rightarrow \bar{\mathcal{S}}_{2}^{0}=\left[ \begin{array}{l} 0\\ 0\\ 1\\ 0\\ -L_1\\ 0\\ \end{array} \right] \Rightarrow \left[ T_{\mathrm{B}}^{S}\left( 0,\theta _2 \right) \right] =e^{\left[ \bar{\mathcal{S}}_{2}^{0} \right] \theta _2}\left[ M \right] Sˉ20= 0010L10 [TBS(0,θ2)]=e[Sˉ20]θ2[M]

  • Fix joint 2 at θ 2 \theta _2 θ2 , and rotate joint 1 by θ 1 \theta _1 θ1 [ T B S ( θ 1 , θ 2 ) ] \left[ T_{\mathrm{B}}^{S}\left( \theta _1,\theta _2 \right) \right] [TBS(θ1,θ2)]
    rigidi body motion [ T B S ( θ 1 , θ 2 ) ] = e [ S ˉ 1 0 ] θ 1 [ T B S ( 0 , θ 2 ) ] \left[ T_{\mathrm{B}}^{S}\left( \theta _1,\theta _2 \right) \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}\left[ T_{\mathrm{B}}^{S}\left( 0,\theta _2 \right) \right] [TBS(θ1,θ2)]=e[Sˉ10]θ1[TBS(0,θ2)]
    S ˉ 1 0 \bar{\mathcal{S}}_{1}^{0} Sˉ10 indepent of θ 1 , θ 2 \theta _1,\theta _2 θ1,θ2 , S ˉ 1 0 = [ ω ⃗ 1 0 v ⃗ 1 0 ] = [ 0 0 1 0 0 0 ] \bar{\mathcal{S}}_{1}^{0}=\left[ \begin{array}{c} \vec{\omega}_{1}^{0}\\ \vec{v}_{1}^{0}\\ \end{array} \right] =\left[ \begin{array}{l} 0\\ 0\\ 1\\ 0\\ 0\\ 0\\ \end{array} \right] Sˉ10=[ω 10v 10]= 001000

⇒ [ T B S ( θ 1 , θ 2 ) ] = e [ S ˉ 1 0 ] θ 1 e [ S ˉ 2 0 ] θ 2 [ M ] \Rightarrow \left[ T_{\mathrm{B}}^{S}\left( \theta _1,\theta _2 \right) \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}e^{\left[ \bar{\mathcal{S}}_{2}^{0} \right] \theta _2}\left[ M \right] [TBS(θ1,θ2)]=e[Sˉ10]θ1e[Sˉ20]θ2[M]—— product of exp

1.3 Noation Setup

Suppose that the robot has n n n joints and n n n links. Each joint has one degree of freedom represented bt joint variable θ i , i = 1 , ⋯   , n \theta _{\mathrm{i}},i=1,\cdots ,n θi,i=1,,n ( θ i \theta _{\mathrm{i}} θi : the joint angle - Revolute Joint or joint placement - Primatic Joint )

Specify a fixed frame { s } \left\{ s \right\} {s} : also referred to as frame { 0 } \left\{ 0 \right\} {0}

Attach frame { i } \left\{ i \right\} {i} to link i i i at joint i i i, for i = 1 , ⋯   , n i=1,\cdots ,n i=1,,n

Attach frame { b } \left\{ b \right\} {b} at the end-effector : sometimes referred to as frame { n + 1 } \left\{ n+1 \right\} {n+1}

S i i \mathcal{S} _{\mathrm{i}}^{i} Sii : screw axis of joint i i i expressed in frame { i } \left\{ i \right\} {i} (local coordinate of S i \mathcal{S} _{\mathrm{i}} Si)

S i 0 \mathcal{S} _{\mathrm{i}}^{0} Si0 : screw axis of joint i i i expressed in the fixed frame { 0 } \left\{ 0 \right\} {0} (i.e. frame { s } \left\{ s \right\} {s})

For simplicity, we write configuration as [ T S B ] \left[ T_{\mathrm{SB}} \right] [TSB] , which is the same as [ T B S ] \left[ T_{\mathrm{B}}^{S} \right] [TBS]. Similarly [ T i j ] = [ T j i ] \left[ T_{\mathrm{ij}} \right] =\left[ T_{\mathrm{j}}^{i} \right] [Tij]=[Tji]

Note : S i i \mathcal{S} _{\mathrm{i}}^{i} Sii does not change when the robot moves (i.e. when θ \theta θ changes), but S i 0 \mathcal{S} _{\mathrm{i}}^{0} Si0 depends on θ 1 , ⋯   , θ i \theta _1,\cdots ,\theta _{\mathrm{i}} θ1,,θi. Sometimes, we write out the dependenct explicitly i.e. S i 0 ( θ 1 , ⋯   , θ i ) \mathcal{S} _{\mathrm{i}}^{0}\left( \theta _1,\cdots ,\theta _{\mathrm{i}} \right) Si0(θ1,,θi)

Define home position : θ 1 = 0 , ⋯   , θ i = 0 \theta _1=0,\cdots ,\theta _{\mathrm{i}}=0 θ1=0,,θi=0. This is the configuration when all the joint angles are zero. One can also choose other fixed angles as the home position.

Define S ˉ i 0 = S i 0 ( 0 , ⋯   , 0 ) \bar{\mathcal{S}}_{\mathrm{i}}^{0}=\mathcal{S} _{\mathrm{i}}^{0}\left( 0,\cdots ,0 \right) Sˉi0=Si0(0,,0) : the screw axis of joint i i i expressed in frame { 0 } \left\{ 0 \right\} {0} , when the robot is at the home position

2. Product of Exponential Formula Derivations

2.1 Product of Exponential : Main Idea

[足式机器人]Part4 南科大高等机器人控制课 Ch06 Product of Exponential and Kinematics of Open Chain_第3张图片

  • Goal : Derive [ T S B ( θ 1 , ⋯   , θ n ) ] \left[ T_{\mathrm{SB}}\left( \theta _1,\cdots ,\theta _{\mathrm{n}} \right) \right] [TSB(θ1,,θn)]
  • (Step 1) Compute [ M ] ≜ [ T S B ( 0 , ⋯   , 0 ) ] \left[ M \right] \triangleq \left[ T_{\mathrm{SB}}\left( 0,\cdots ,0 \right) \right] [M][TSB(0,,0)] : configuration of end-effector when the robot is at home position
  • (Step 2) Apply screw motion to joint n n n : [ T S B ( 0 , ⋯   , 0 , θ n ) ] = e [ S ˉ n 0 ] θ n [ M ] \left[ T_{\mathrm{SB}}\left( 0,\cdots ,0,\theta _{\mathrm{n}} \right) \right] =e^{\left[ \bar{\mathcal{S}}_{\mathrm{n}}^{0} \right] \theta _{\mathrm{n}}}\left[ M \right] [TSB(0,,0,θn)]=e[Sˉn0]θn[M](this operator does not move S n − 1 , S n − 2 \mathcal{S} _{\mathrm{n}-1},\mathcal{S} _{\mathrm{n}-2} Sn1,Sn2)
  • (Step 3) Apply screw motion to joint n − 1 n-1 n1 to obtain : [ T S B ( 0 , ⋯   , 0 , θ n − 1 , θ n ) ] = e [ S ˉ n − 1 0 ] θ n − 1 e [ S ˉ n 0 ] θ n [ M ] \left[ T_{\mathrm{SB}}\left( 0,\cdots ,0,\theta _{\mathrm{n}-1},\theta _{\mathrm{n}} \right) \right] =e^{\left[ \bar{\mathcal{S}}_{\mathrm{n}-1}^{0} \right] \theta _{\mathrm{n}-1}}e^{\left[ \bar{\mathcal{S}}_{\mathrm{n}}^{0} \right] \theta _{\mathrm{n}}}\left[ M \right] [TSB(0,,0,θn1,θn)]=e[Sˉn10]θn1e[Sˉn0]θn[M]
  • After n n n screw motions, the overall forward kinematics:
    [ T S B ( θ 1 , ⋯   , θ n ) ] = e [ S ˉ 1 0 ] θ 1 e [ S ˉ 2 0 ] θ 2 ⋯ e [ S ˉ n 0 ] θ n [ M ] \left[ T_{\mathrm{SB}}\left( \theta _1,\cdots ,\theta _{\mathrm{n}} \right) \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}e^{\left[ \bar{\mathcal{S}}_{2}^{0} \right] \theta _2}\cdots e^{\left[ \bar{\mathcal{S}}_{\mathrm{n}}^{0} \right] \theta _{\mathrm{n}}}\left[ M \right] [TSB(θ1,,θn)]=e[Sˉ10]θ1e[Sˉ20]θ2e[Sˉn0]θn[M]

2.2 PoE : Screw Motion in Different Order

  • PoE was obtained by applying screw motions along screw axes S ˉ n − 1 0 , S ˉ n 0 , ⋯ \bar{\mathcal{S}}_{\mathrm{n}-1}^{0},\bar{\mathcal{S}}_{\mathrm{n}}^{0},\cdots Sˉn10,Sˉn0, What happens if the order is changed?
    [足式机器人]Part4 南科大高等机器人控制课 Ch06 Product of Exponential and Kinematics of Open Chain_第4张图片

  • For simplicity, assume that n = 2 n=2 n=2, and let us apply screw motion along S ˉ 1 0 \bar{\mathcal{S}}_{1}^{0} Sˉ10 first
    [ T S B ( θ 1 , 0 ) ] = e [ S ˉ 1 0 ] θ 1 [ M ] \left[ T_{\mathrm{SB}}\left( \theta _1,0 \right) \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}\left[ M \right] [TSB(θ1,0)]=e[Sˉ10]θ1[M]
    Now screw axis for joint 2 has been changed. The new axis S 2 0 = S 2 0 ( θ 1 , 0 ) ≠ S ˉ 2 0 \mathcal{S} _{2}^{0}=\mathcal{S} _{2}^{0}\left( \theta _1,0 \right) \ne \bar{\mathcal{S}}_{2}^{0} S20=S20(θ1,0)=Sˉ20
    [ T S B ( θ 1 , θ 2 ) ] = e [ S 2 0 ] θ 2 [ T S B ( θ 1 , 0 ) ] \left[ T_{\mathrm{SB}}\left( \theta _1,\theta _2 \right) \right] =e^{\left[ \mathcal{S} _{2}^{0} \right] \theta _2}\left[ T_{\mathrm{SB}}\left( \theta _1,0 \right) \right] [TSB(θ1,θ2)]=e[S20]θ2[TSB(θ1,0)]
    S ˉ 2 0 ⟶ [ T ] = e [ S ˉ 1 0 ] θ 1 S 2 0 ( θ 1 ) 6 × 1 = [ A d T ] 6 × 6 S ˉ 2 0 6 × 1 , [ T ] = e [ S ˉ 1 0 ] θ 1 \bar{\mathcal{S}}_{2}^{0}\overset{\left[ T \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}}{\longrightarrow}\mathcal{S} _{2}^{0}\left( \theta _1 \right) _{6\times 1}=\left[ Ad_T \right] _{6\times 6}{\bar{\mathcal{S}}_{2}^{0}}_{6\times 1},\left[ T \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1} Sˉ20[T]=e[Sˉ10]θ1S20(θ1)6×1=[AdT]6×6Sˉ206×1,[T]=e[Sˉ10]θ1

  • [ T S B ( θ 1 , θ 2 ) ] = e [ S 2 0 ] θ 2 [ T S B ( θ 1 , 0 ) ] \left[ T_{\mathrm{SB}}\left( \theta _1,\theta _2 \right) \right] =e^{\left[ \mathcal{S} _{2}^{0} \right] \theta _2}\left[ T_{\mathrm{SB}}\left( \theta _1,0 \right) \right] [TSB(θ1,θ2)]=e[S20]θ2[TSB(θ1,0)]
    e [ S 2 0 ] θ 2 = e [ [ A d T ] S ˉ 2 0 ] θ 2 = e T [ S ˉ 2 0 ] T − 1 θ 2 = [ T ] e [ S ˉ 2 0 ] θ 2 [ T ] − 1 ⇒ [ T ] = e [ S ˉ 1 0 ] θ 1 [ T S B ( θ 1 , θ 2 ) ] = [ T ] e [ S ˉ 2 0 ] θ 2 [ T ] − 1 e [ S ˉ 1 0 ] θ 1 [ M ] = e [ S ˉ 1 0 ] θ 1 e [ S ˉ 2 0 ] θ 2 [ M ] e^{\left[ \mathcal{S} _{2}^{0} \right] \theta _2}=e^{\left[ \left[ Ad_T \right] \bar{\mathcal{S}}_{2}^{0} \right] \theta _2}=e^{T\left[ \bar{\mathcal{S}}_{2}^{0} \right] T^{-1}\theta _2}=\left[ T \right] e^{\left[ \bar{\mathcal{S}}_{2}^{0} \right] \theta _2}\left[ T \right] ^{-1}\overset{\left[ T \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}}{\Rightarrow}\left[ T_{\mathrm{SB}}\left( \theta _1,\theta _2 \right) \right] =\left[ T \right] e^{\left[ \bar{\mathcal{S}}_{2}^{0} \right] \theta _2}\left[ T \right] ^{-1}e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}\left[ M \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}e^{\left[ \bar{\mathcal{S}}_{2}^{0} \right] \theta _2}\left[ M \right] e[S20]θ2=e[[AdT]Sˉ20]θ2=eT[Sˉ20]T1θ2=[T]e[Sˉ20]θ2[T]1[T]=e[Sˉ10]θ1[TSB(θ1,θ2)]=[T]e[Sˉ20]θ2[T]1e[Sˉ10]θ1[M]=e[Sˉ10]θ1e[Sˉ20]θ2[M]

2.3 PoE Example: 3R Spatial Open Chain

[足式机器人]Part4 南科大高等机器人控制课 Ch06 Product of Exponential and Kinematics of Open Chain_第5张图片

3. Practice Example

代码-待补充

你可能感兴趣的:(控制算法,足式机器人,机器人,学习笔记)