[足式机器人]Part4 南科大高等机器人控制课 Ch07 Velocity Kinematics: Geometric and Analytic Jacobian of Open Chain

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

南科大高等机器人控制课 Ch07 Velocity Kinematics: Geometric and Analytic Jacobian of Open Chain

  • 1. Background
  • 1.1 Velocity Kinematics
    • 1.2 Simple Illustration Example: Geometric Jacobian
  • 2. Geometric Jacobian Derivations
    • 2.1 Geometric Jacobian : General Case
    • 2.2 Geometric Jacobian Example
  • 3. Analytic Jacobian


1. Background

1.1 Velocity Kinematics

  • Velocity Kinematics : How does the velocity of { b } \left\{ b \right\} {b} relate to the joint velocities θ ˙ 1 , ⋯   , θ ˙ n \dot{\theta}_1,\cdots ,\dot{\theta}_{\mathrm{n}} θ˙1,,θ˙n (Note : { b } \left\{ b \right\} {b}'s velocity is due to joint velocity)

FK: Find the func of [ T b ( θ 1 , ⋯   , θ n ) ] \left[ T_b\left( \theta _1,\cdots ,\theta _{\mathrm{n}} \right) \right] [Tb(θ1,,θn)]
Result: [ T b ( θ 1 , ⋯   , θ n ) ] = e [ S ˉ 1 0 ] θ 1 e [ S ˉ 2 0 ] θ 2 ⋯ e [ S ˉ n 0 ] θ n [ M ] \left[ T_b\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] [Tb(θ1,,θn)]=e[Sˉ10]θ1e[Sˉ20]θ2e[Sˉn0]θn[M] —— meaning screw axis i i i when θ i = 0 \theta _{\mathrm{i}}=0 θi=0 wrt to frame { 0 } \left\{ 0 \right\} {0}

Can we use [ T ˙ b ] \left[ \dot{T}_b \right] [T˙b] to represent velocity of { b } \left\{ b \right\} {b}? —— NO- [ T ˙ b ] ∣ 4 × 4 \left. \left[ \dot{T}_b \right] \right|_{4\times 4} [T˙b] 4×4

  • This depends on how to represent { b } \left\{ b \right\} {b}'s velocity
  1. Twist representation ⟶ \longrightarrow Geometric Jacobian
    V b = [ ω ⃗ v ⃗ ] , V b ( θ , θ ˙ ) \mathcal{V} _b=\left[ \begin{array}{c} \vec{\omega}\\ \vec{v}\\ \end{array} \right] ,\mathcal{V} _b\left( \theta ,\dot{\theta} \right) Vb=[ω v ],Vb(θ,θ˙) , it turns out , V b \mathcal{V} _b Vb is a linear func of θ ˙ \dot{\theta} θ˙ , ⇒ V b ( θ , θ ˙ ) = J ( θ ) θ ˙ , J ( θ ) ∈ R 6 × n \Rightarrow \mathcal{V} _b\left( \theta ,\dot{\theta} \right) =J\left( \theta \right) \dot{\theta},J\left( \theta \right) \in \mathbb{R} ^{6\times n} Vb(θ,θ˙)=J(θ)θ˙,J(θ)R6×n
    This matrix is the Geometric
  2. Local coordinate of SE(3) ⟶ \longrightarrow Analytic Jacobian
    θ 1 , ⋯   , θ n ⟶ F K [ T b ( θ 1 , ⋯   , θ n ) ] = [ T b ( [ Q ] , R ⃗ p ) ] ⟶ [ p x p y p z α β γ ] ∈ R 6 \theta _1,\cdots ,\theta _{\mathrm{n}}\overset{FK}{\longrightarrow}\left[ T_b\left( \theta _1,\cdots ,\theta _{\mathrm{n}} \right) \right] =\left[ T_b\left( \left[ Q \right] ,\vec{R}_{\mathrm{p}} \right) \right] \longrightarrow \left[ \begin{array}{l} p_{\mathrm{x}}\\ p_{\mathrm{y}}\\ p_{\mathrm{z}}\\ \alpha\\ \beta\\ \gamma\\ \end{array} \right] \in \mathbb{R} ^6 θ1,,θnFK[Tb(θ1,,θn)]=[Tb([Q],R p)] pxpypzαβγ R6
    ⇒ θ 1 , ⋯   , θ n ⟶ g ( ⋅ ) [ p x p y p z α β γ ] ⇒ x = g ( θ 1 , ⋯   , θ n ) ⇒ x ˙ = [ ∂ g ∂ θ ] ∣ 6 × n [ θ ˙ 1 ⋮ θ ˙ n ]    , [ ∂ g ∂ θ ] i j = [ ∂ g i ∂ θ j ] \Rightarrow \theta _1,\cdots ,\theta _{\mathrm{n}}\overset{g\left( \cdot \right)}{\longrightarrow}\left[ \begin{array}{l} p_{\mathrm{x}}\\ p_{\mathrm{y}}\\ p_{\mathrm{z}}\\ \alpha\\ \beta\\ \gamma\\ \end{array} \right] \Rightarrow x=g\left( \theta _1,\cdots ,\theta _{\mathrm{n}} \right) \Rightarrow \dot{x}=\left. \left[ \frac{\partial g}{\partial \theta} \right] \right|_{6\times n}\left[ \begin{array}{c} \dot{\theta}_1\\ \vdots\\ \dot{\theta}_{\mathrm{n}}\\ \end{array} \right] \,\,, \left[ \frac{\partial g}{\partial \theta} \right] _{\mathrm{ij}}=\left[ \frac{\partial g_{\mathrm{i}}}{\partial \theta _{\mathrm{j}}} \right] θ1,,θng() pxpypzαβγ x=g(θ1,,θn)x˙=[θg] 6×n θ˙1θ˙n ,[θg]ij=[θjgi]

[ ∂ g ∂ θ ] \left[ \frac{\partial g}{\partial \theta} \right] [θg] 称为 Analytic Jacobian

1.2 Simple Illustration Example: Geometric Jacobian

[足式机器人]Part4 南科大高等机器人控制课 Ch07 Velocity Kinematics: Geometric and Analytic Jacobian of Open Chain_第1张图片

  • Coordinate-free
    screw axis: Joint 1 S 1 \mathcal{S} _1 S1-independs of θ 1 , θ 2 \theta _1,\theta _2 θ1,θ2 ; Joint 2 S 2 ( θ 1 ) \mathcal{S} _2\left( \theta _1 \right) S2(θ1) depends on θ 1 \theta _1 θ1
    Spatial velocity of each link (when θ ˙ 1 , θ ˙ 2 \dot{\theta}_1,\dot{\theta}_2 θ˙1,θ˙2)
    1.Link 0 : V L 0 = 0 ∈ R 6 \mathcal{V} _{\mathrm{L}_0}=0\in \mathbb{R} ^6 VL0=0R6
    2.Link 1 : V L 1 = S 1 θ ˙ 1 \mathcal{V} _{\mathrm{L}_1}=\mathcal{S} _1\dot{\theta}_1 VL1=S1θ˙1
    3.Link 2 : V L 2 → V L 2 / L 0 = V L 2 / L 1 + V L 1 / L 0 = S 2 θ ˙ 2 + S 1 θ ˙ 1 = [ S 1 S 2 ] [ θ ˙ 1 θ ˙ 2 ] \mathcal{V} _{\mathrm{L}_2}\rightarrow \mathcal{V} _{{{\mathrm{L}_2}/{\mathrm{L}_0}}}=\mathcal{V} _{{{\mathrm{L}_2}/{\mathrm{L}_1}}}+\mathcal{V} _{{{\mathrm{L}_1}/{\mathrm{L}_0}}}=\mathcal{S} _2\dot{\theta}_2+\mathcal{S} _1\dot{\theta}_1=\left[ \begin{matrix} \mathcal{S} _1& \mathcal{S} _2\\ \end{matrix} \right] \left[ \begin{array}{c} \dot{\theta}_1\\ \dot{\theta}_2\\ \end{array} \right] VL2VL2/L0=VL2/L1+VL1/L0=S2θ˙2+S1θ˙1=[S1S2][θ˙1θ˙2]

  • { b } \left\{ b \right\} {b}
    V b = V L 2 = [ S 1 S 2 ] [ θ ˙ 1 θ ˙ 2 ] = [ J 1 ( θ ) J 2 ( θ ) ] [ θ ˙ 1 θ ˙ 2 ] \mathcal{V} _{\mathrm{b}}=\mathcal{V} _{\mathrm{L}_2}=\left[ \begin{matrix} \mathcal{S} _1& \mathcal{S} _2\\ \end{matrix} \right] \left[ \begin{array}{c} \dot{\theta}_1\\ \dot{\theta}_2\\ \end{array} \right] =\left[ \begin{matrix} J_1\left( \theta \right)& J_2\left( \theta \right)\\ \end{matrix} \right] \left[ \begin{array}{c} \dot{\theta}_1\\ \dot{\theta}_2\\ \end{array} \right] Vb=VL2=[S1S2][θ˙1θ˙2]=[J1(θ)J2(θ)][θ˙1θ˙2]
    J 1 ( θ ) J_1\left( \theta \right) J1(θ) 1st-column of Geomatric Jacobian; J 2 ( θ ) J_2\left( \theta \right) J2(θ) 2st-column of Geomatric Jacobian
    J i ( θ ) J_{\mathrm{i}}\left( \theta \right) Ji(θ) : the twist of { b } \left\{ b \right\} {b} when θ i = 1 , θ j = 0 , i ≠ j \theta _{\mathrm{i}}=1,\theta _{\mathrm{j}}=0,i\ne j θi=1,θj=0,i=j

  • Computation : Let’s work with { o } \left\{ o \right\} {o}
    S 1 0 ( θ ) = S 1 0 ( θ = 0 ) = S ˉ 1 0 = [ 0 0 1 0 0 0 ] \mathcal{S} _{1}^{0}\left( \theta \right) =\mathcal{S} _{1}^{0}\left( \theta =0 \right) =\bar{\mathcal{S}}_{1}^{0}=\left[ \begin{array}{l} 0\\ 0\\ 1\\ 0\\ 0\\ 0\\ \end{array} \right] S10(θ)=S10(θ=0)=Sˉ10= 001000
    S 2 0 ( θ 1 ) = S 2 0 ( θ 1 = 0 ) = S ˉ 2 0 = [ 0 0 1 0 − L 1 0 ] \mathcal{S} _{2}^{0}\left( \theta _1 \right) =\mathcal{S} _{2}^{0}\left( \theta _1=0 \right) =\bar{\mathcal{S}}_{2}^{0}=\left[ \begin{array}{l} 0\\ 0\\ 1\\ 0\\ -L_1\\ 0\\ \end{array} \right] S20(θ1)=S20(θ1=0)=Sˉ20= 0010L10
    Let’s θ 1 ≠ 0 \theta _1\ne 0 θ1=0 : S ˉ 2 0 = S 2 0 ( 0 ) ⟶ [ T ( θ 1 ) ] = e [ S ˉ 1 0 ] θ 1 S 2 0 ( θ 1 ) = [ A d [ T ( θ 1 ) ] ] S ˉ 2 0 \bar{\mathcal{S}}_{2}^{0}=\mathcal{S} _{2}^{0}\left( 0 \right) \overset{\left[ T\left( \theta _1 \right) \right] =e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}}{\longrightarrow}\mathcal{S} _{2}^{0}\left( \theta _1 \right) =\left[ Ad_{\left[ T\left( \theta _1 \right) \right]} \right] \bar{\mathcal{S}}_{2}^{0} Sˉ20=S20(0)[T(θ1)]=e[Sˉ10]θ1S20(θ1)=[Ad[T(θ1)]]Sˉ20

⇒ J 0 ( θ ) = [ S ˉ 1 0 [ A d [ T ( θ 1 ) ] ] S ˉ 2 0 ] \Rightarrow J^0\left( \theta \right) =\left[ \begin{matrix} \bar{\mathcal{S}}_{1}^{0}& \left[ Ad_{\left[ T\left( \theta _1 \right) \right]} \right] \bar{\mathcal{S}}_{2}^{0}\\ \end{matrix} \right] J0(θ)=[Sˉ10[Ad[T(θ1)]]Sˉ20]

2. Geometric Jacobian Derivations

2.1 Geometric Jacobian : General Case

  • Let V = ( ω ⃗ , v ⃗ ) \mathcal{V} =\left( \vec{\omega},\vec{v} \right) V=(ω ,v ) be the end-effector twist(coordinate-free notation), we aim to find J ( θ ) J\left( \theta \right) J(θ) such that :
    V = J ( θ ) θ ˙ = J 1 ( θ ) θ ˙ 1 + ⋯ + J n ( θ ) θ ˙ n = [ J 1 ( θ ) ⋯ J n ( θ ) ] [ θ ˙ 1 ⋮ θ ˙ n ] , J i ( θ ) : θ ˙ i = 1 , θ ˙ j = 0 , i ≠ j \mathcal{V} =J\left( \theta \right) \dot{\theta}=J_1\left( \theta \right) \dot{\theta}_1+\cdots +J_{\mathrm{n}}\left( \theta \right) \dot{\theta}_{\mathrm{n}}=\left[ \begin{matrix} J_1\left( \theta \right)& \cdots& J_{\mathrm{n}}\left( \theta \right)\\ \end{matrix} \right] \left[ \begin{array}{c} \dot{\theta}_1\\ \vdots\\ \dot{\theta}_{\mathrm{n}}\\ \end{array} \right] ,J_{\mathrm{i}}\left( \theta \right) :\dot{\theta}_{\mathrm{i}}=1,\dot{\theta}_{\mathrm{j}}=0,i\ne j V=J(θ)θ˙=J1(θ)θ˙1++Jn(θ)θ˙n=[J1(θ)Jn(θ)] θ˙1θ˙n ,Ji(θ):θ˙i=1,θ˙j=0,i=j

  • The i i ith column J i ( θ ) J_{\mathrm{i}}\left( \theta \right) Ji(θ) is the end-effector velocity when the robot is rotating about S i \mathcal{S} _{\mathrm{i}} Si at unit speed θ ˙ i = 1 \dot{\theta}_{\mathrm{i}}=1 θ˙i=1 while all other joints do not move ( θ ˙ j = 0 , i ≠ j \dot{\theta}_{\mathrm{j}}=0,i\ne j θ˙j=0,i=j)

  • Therefore, in coordinate free notation, J i J_{\mathrm{i}} Ji is just the screw axis of joint i i i :
    J i ( θ ) = S i ( θ ) J_{\mathrm{i}}\left( \theta \right) =\mathcal{S} _{\mathrm{i}}\left( \theta \right) Ji(θ)=Si(θ)

  • The simplest way to write Jacobian is to use local coordinate:
    J i i = S i i , i = 1 , ⋯   , n , J 0 = [ J 1 0 , J 2 0 , ⋯   , J n 0 ] J_{\mathrm{i}}^{i}=\mathcal{S} _{\mathrm{i}}^{i}, i=1,\cdots ,n,J^0=\left[ J_{1}^{0},J_{2}^{0},\cdots ,J_{\mathrm{n}}^{0} \right] Jii=Sii,i=1,,n,J0=[J10,J20,,Jn0]

  • In fixed frame { 0 } \left\{ 0 \right\} {0} , we have
    J i 0 = [ X i 0 ( θ ) ] S i i , i = 1 , ⋯   , n J_{\mathrm{i}}^{0}=\left[ X_{\mathrm{i}}^{0}\left( \theta \right) \right] \mathcal{S} _{\mathrm{i}}^{i}, i=1,\cdots ,n Ji0=[Xi0(θ)]Sii,i=1,,n
    Recall : [ X i 0 ] \left[ X_{\mathrm{i}}^{0} \right] [Xi0] is the change of coordinate matrix for spatial velocities.

  • Assume θ = ( θ 1 , θ 2 ⋯   , θ n ) \theta =\left( \theta _1,\theta _2\cdots ,\theta _{\mathrm{n}} \right) θ=(θ1,θ2,θn) then (pose of frame { i } \left\{ i \right\} {i} relative to { 0 } \left\{ 0 \right\} {0})
    [ T i 0 ( θ ) ] = e [ S ˉ 1 0 ] θ 1 e [ S ˉ 2 0 ] θ 2 ⋯ e [ S ˉ i 0 ] θ i [ M ] ⇒ [ X i 0 ( θ ) ] = [ A d [ T i 0 ( θ ) ] ] \left[ T_{\mathrm{i}}^{0}\left( \theta \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{i}}^{0} \right] \theta _{\mathrm{i}}}\left[ M \right] \Rightarrow \left[ X_{\mathrm{i}}^{0}\left( \theta \right) \right] =\left[ Ad_{\left[ T_{\mathrm{i}}^{0}\left( \theta \right) \right]} \right] [Ti0(θ)]=e[Sˉ10]θ1e[Sˉ20]θ2e[Sˉi0]θi[M][Xi0(θ)]=[Ad[Ti0(θ)]]

The Jacobian formula above is conceptually simple, but can be cumbersome for calculation. We now derive a recursive Jacobian formula

Note : J i 0 ( θ ) = S i 0 ( θ ) J_{\mathrm{i}}^{0}\left( \theta \right) =\mathcal{S} _{\mathrm{i}}^{0}\left( \theta \right) Ji0(θ)=Si0(θ)

  • For i = 1 i=1 i=1, S 1 0 ( θ ) = S 1 0 ( 0 ) = S ˉ 1 0 \mathcal{S} _{1}^{0}\left( \theta \right) =\mathcal{S} _{1}^{0}\left( 0 \right) =\bar{\mathcal{S}}_{1}^{0} S10(θ)=S10(0)=Sˉ10 (independent of θ \theta θ)
  • For i = 2 i=2 i=2, S 2 0 ( θ ) = S 2 0 ( θ 1 ) = [ A d [ T ( θ 1 ) ] ] S ˉ 2 0 \mathcal{S} _{2}^{0}\left( \theta \right) =\mathcal{S} _{2}^{0}\left( \theta _1 \right) =\left[ Ad_{\left[ T\left( \theta _1 \right) \right]} \right] \bar{\mathcal{S}}_{2}^{0} S20(θ)=S20(θ1)=[Ad[T(θ1)]]Sˉ20 where [ T ( θ 1 ) ] ≜ e [ S ˉ 1 0 ] θ 1 \left[ T\left( \theta _1 \right) \right] \triangleq e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1} [T(θ1)]e[Sˉ10]θ1
  • For general i i i, we have
    J i 0 ( θ ) = S i 0 ( θ ) = [ A d [ T i 0 ( θ 1 , ⋯   , θ i − 1 ) ] ] S ˉ i 0 J_{\mathrm{i}}^{0}\left( \theta \right) =\mathcal{S} _{\mathrm{i}}^{0}\left( \theta \right) =\left[ Ad_{\left[ T_{\mathrm{i}}^{0}\left( \theta _1,\cdots ,\theta _{\mathrm{i}-1} \right) \right]} \right] \bar{\mathcal{S}}_{\mathrm{i}}^{0} Ji0(θ)=Si0(θ)=[Ad[Ti0(θ1,,θi1)]]Sˉi0
    where : [ T i 0 ( θ 1 , ⋯   , θ i − 1 ) ] ≜ e [ S ˉ 1 0 ] θ 1 ⋯ e [ S ˉ i − 1 0 ] θ i − 1 \left[ T_{\mathrm{i}}^{0}\left( \theta _1,\cdots ,\theta _{\mathrm{i}-1} \right) \right] \triangleq e^{\left[ \bar{\mathcal{S}}_{1}^{0} \right] \theta _1}\cdots e^{\left[ \bar{\mathcal{S}}_{\mathrm{i}-1}^{0} \right] \theta _{\mathrm{i}-1}} [Ti0(θ1,,θi1)]e[Sˉ10]θ1e[Sˉi10]θi1

2.2 Geometric Jacobian Example

[足式机器人]Part4 南科大高等机器人控制课 Ch07 Velocity Kinematics: Geometric and Analytic Jacobian of Open Chain_第2张图片
[足式机器人]Part4 南科大高等机器人控制课 Ch07 Velocity Kinematics: Geometric and Analytic Jacobian of Open Chain_第3张图片

[足式机器人]Part4 南科大高等机器人控制课 Ch07 Velocity Kinematics: Geometric and Analytic Jacobian of Open Chain_第4张图片

3. Analytic Jacobian

  • Let x ∈ R p x\in \mathbb{R} ^p xRp be the task space variable of interest with desired reference x d x_d xd
    E.g : x x x can be Cartesian(spherical coordinate) + Euler angle(ZYZ ZYX) of end-effctor frame
    p < 6 p<6 p<6 os allowed, which means a partial parameterization of SE(3), e.g. we only care about the position or the orientation of the end-effector frame

  • Analytic Jacobian : x = g ( θ ) , x ˙ = J a ( θ ) θ ˙ , J a ( θ ) = ∂ g ∂ θ x=g\left( \theta \right) ,\dot{x}=J_{\mathrm{a}}\left( \theta \right) \dot{\theta},J_{\mathrm{a}}\left( \theta \right) =\frac{\partial g}{\partial \theta} x=g(θ),x˙=Ja(θ)θ˙,Ja(θ)=θg

  • Recall Geometric Jacobian : V = [ ω ⃗ v ⃗ ] = J ( θ ) θ ˙ \mathcal{V} =\left[ \begin{array}{c} \vec{\omega}\\ \vec{v}\\ \end{array} \right] =J\left( \theta \right) \dot{\theta} V=[ω v ]=J(θ)θ˙

  • They are related by : J a ( θ ) = E ( x ) J ( θ ) = E ( θ ) J ( θ ) J_{\mathrm{a}}\left( \theta \right) =E\left( x \right) J\left( \theta \right) =E\left( \theta \right) J\left( \theta \right) Ja(θ)=E(x)J(θ)=E(θ)J(θ)
    E ( x ) E\left( x \right) E(x) can be found with given parameterization x x x

[足式机器人]Part4 南科大高等机器人控制课 Ch07 Velocity Kinematics: Geometric and Analytic Jacobian of Open Chain_第5张图片
[足式机器人]Part4 南科大高等机器人控制课 Ch07 Velocity Kinematics: Geometric and Analytic Jacobian of Open Chain_第6张图片

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