[足式机器人]Part4 南科大高等机器人控制课 CH12 Robotic Motion Control

本文仅供学习使用
本文参考:
B站:CLEAR_LAB
笔者带更新-运动学
课程主讲教师:
Prof. Wei Zhang
课程链接 :
https://www.wzhanglab.site/teaching/mee-5114-advanced-control-for-robotics/

南科大高等机器人控制课 Ch12 Robotic Motion Control

  • 1. Basic Linear Control Design
    • 1.1 Error Response
    • 1.2 Standard Second-Order Systems
    • 1.3 Second-Order Response Characteristics
    • 1.4 State-Space Controller Design
  • 2. Motion Control Problems
    • 2.1 Robotic Motion Control Problem
    • 2.2 Variations in Robot Motion Control
  • 3. Motion Control with Velocity/Acceleration as Input
    • 3.1 Velocity-Resolved Control
      • 3.2.1 Velocity-Resolved Joint Space Control
      • 3.2.2 Velocity-Resolved Task Space Control
    • 3.2 Acceleration-Resolved Control
      • 3.2.1 Acceleration-Resolved Control in Joint Space
      • 3.2.2 Acceleration-Resolved Control in Task Space
  • 4. Motion Control with Torque as Input and Task Space Inverse Dynamics
    • 4.1 Recall Properties of Robot Dynamics
    • 4.2 Computed Torque Control
    • 4.3 Inverse Dynamics Control


机器人——运动能力、计算能力、感知决策能力 的机电系统

1. Basic Linear Control Design

1.1 Error Response

在这里插入图片描述
Steady-state error : e s s = lim ⁡ t → ∞ θ e ( t ) e_{\mathrm{ss}}=\underset{t\rightarrow \infty}{\lim}\theta _{\mathrm{e}}\left( t \right) ess=tlimθe(t)

Precent overshoot : P.O.

Rise time / Peak time :

Settling time : T s T_{\mathrm{s}} Ts

1.2 Standard Second-Order Systems

详细推导见 : (待补充)
在这里插入图片描述

1.3 Second-Order Response Characteristics

详细推导见 : (待补充)
在这里插入图片描述

1.4 State-Space Controller Design

在这里插入图片描述

  • Eigenvalue assignment : Find control gain K K K such that e i g ( A − B K ) = e i g d e s i r e d eig\left( A-BK \right) =eig_{\mathrm{desired}} eig(ABK)=eigdesired
  • Solvability : We can always find such K K K if ( A , B ) \left( A,B \right) (A,B) is controllable ( r a n k ( m c ) = n rank\left( m_{\mathrm{c}} \right) =n rank(mc)=n)
  • How to choose desired eigs? —— refer to 2nd-order system
    specification (P.O. T s T_{\mathrm{s}} Ts T p T_{\mathrm{p}} Tp) ⇒ a r t \overset{art}{\Rightarrow} art dominant poles + other poles ⇒ \Rightarrow e i g d e s i r e d eig_{\mathrm{desired}} eigdesired ⇒ s c i e n c e \overset{science}{\Rightarrow} science K K K

2. Motion Control Problems

2.1 Robotic Motion Control Problem

Dynamic equation of fully-acuated robot (with external force) : { τ = M ( q ) q ¨ + c ( q , q ˙ ) q ˙ + g ( q ) + J T ( q ) F e x t y = h ( q ) \begin{cases} \tau =M\left( q \right) \ddot{q}+c\left( q,\dot{q} \right) \dot{q}+g\left( q \right) +J^{\mathrm{T}}\left( q \right) \mathcal{F} _{\mathrm{ext}}\\ y=h\left( q \right)\\ \end{cases} {τ=M(q)q¨+c(q,q˙)q˙+g(q)+JT(q)Fexty=h(q)
q ∈ R n q\in \mathbb{R} ^n qRn : joint positions (generalized coordinate)
τ ∈ R n \tau \in \mathbb{R} ^n τRn : joint torque (generalized input)
y y y : output (variable to be controlled) —— can be any func of q q q , e.g. y = q , y = [ T ( q ) ] ∈ S E ( 3 ) y=q,y=\left[ T\left( q \right) \right] \in SE\left( 3 \right) y=q,y=[T(q)]SE(3)

  • Motion Control Problems : Let y y y track given reference y d y_{\mathrm{d}} yd
    在这里插入图片描述
    often times q d q_{\mathrm{d}} qd is given by planner represented by polynomials , so that q ˙ d , q ¨ d \dot{q}_{\mathrm{d}},\ddot{q}_{\mathrm{d}} q˙d,q¨d can be easily obtained

2.2 Variations in Robot Motion Control

  • Joint-space vs. Task-space control
    Joint-space : y ( t ) = q ( t ) y\left( t \right) =q\left( t \right) y(t)=q(t) , i.e. , want q ( t ) q\left( t \right) q(t) to track a given q d ( t ) q_{\mathrm{d}}\left( t \right) qd(t) joint reference
    Task-space : y ( t ) = [ T ( q ( t ) ) ] ∈ S E ( 3 ) y\left( t \right) =\left[ T\left( q\left( t \right) \right) \right] \in SE\left( 3 \right) y(t)=[T(q(t))]SE(3) denotes end-effector pose/configuration, we want y ( t ) y\left( t \right) y(t) to track y d ( t ) y_{\mathrm{d}}\left( t \right) yd(t)

  • Actuation models:
    Velocity source : u = q ˙ u=\dot{q} u=q˙ —— directly control velocity
    Acceleration sources : u = q ¨ u=\ddot{q} u=q¨ —— directly control acceleration
    Torque sources : u = τ u=\tau u=τ —— directly control torque
    在这里插入图片描述
    Acutation model make sense if for ant given u u u , the joint velocity q ˙ \dot{q} q˙ can immediatly reach u u u

Motion Control Problem
Design u u u to set y y y track desired reference y d y_{\mathrm{d}} yd

  • Depending on our assumption on u / y u/y u/y
    output y y y —— 6大基本问题
    y ↔ q ∈ R n y\leftrightarrow q\in \mathbb{R} ^n yqRn - joint variable : Joint space motion control (Velocity-resolved Joint-space control ; Acceleration-resolved Joint-space control ; Torque-resolved Joint-space control ; )
    y ↔ [ T ( q ) ] ∈ S E ( 3 ) y\leftrightarrow \left[ T\left( q \right) \right] \in SE\left( 3 \right) y[T(q)]SE(3) or y = f ( q ) y=f\left( q \right) y=f(q) - task space variable - e.g. origin of end-effector frame : Task space motion control (Velocity-resolved Task-space ; Acceleration-resolved Task-space ; Torque-resolved Task-space ; )

Linear control / feedback lineariazation

3. Motion Control with Velocity/Acceleration as Input

3.1 Velocity-Resolved Control

Each joints’ velocity q ˙ i \dot{q}_{\mathrm{i}} q˙i can be directly controlled

Good approximation for hydraulic actuators

Common approxiamtion of the outer-loop control for the Inner / outer loop control setup
在这里插入图片描述

3.2.1 Velocity-Resolved Joint Space Control

Joint-space ‘dynamics’ : single integrator q ˙ = u \dot{q}=u q˙=u

Joint-space tracking becomes standard linear tracking control problem : u = q ˙ d + K 0 q ¨ ⇒ q ~ ˙ + K 0 q ¨ = 0 u=\dot{q}_{\mathrm{d}}+K_0\ddot{q}\Rightarrow \dot{\tilde{q}}+K_0\ddot{q}=0 u=q˙d+K0q¨q~˙+K0q¨=0 , where q ~ = q d − q \tilde{q}=q_{\mathrm{d}}-q q~=qdq is the joint position error. —— stable if e i g ( − K 0 ) ∈ O L H P eig\left( -K_0 \right) \in OLHP eig(K0)OLHP

The error dynamic is stable if − K 0 -K_0 K0 is Hurwitz

3.2.2 Velocity-Resolved Task Space Control

For task space control , y = [ T ( q ) ] y=\left[ T\left( q \right) \right] y=[T(q)] needs to track y d y_{\mathrm{d}} yd , y y y can be ant function of q q q, in particular , it can represents position and/or the end-effector frame

Taking derivatives of y y y , and letting u = q ˙ u=\dot{q} u=q˙ , we have : y ˙ = J a ( q ) u \dot{y}=J_{\mathrm{a}}\left( q \right) u y˙=Ja(q)u
Note that q q q is function of y y y through inverse kinematics ( q = I K ( y ) q=IK\left( y \right) q=IK(y))
So the above dynamics can be written in terms of y y y and u u u only. The detailed form can be quite complex in general y ˙ = J a ( I K ( y ) ) u \dot{y}=J_{\mathrm{a}}\left( IK\left( y \right) \right) u y˙=Ja(IK(y))u

  1. Let v y v_{\mathrm{y}} vy be virtual control y ˙ = v y \dot{y}=v_{\mathrm{y}} y˙=vy design v y v_{\mathrm{y}} vy to track y d y_{\mathrm{d}} yd (same as above)
  2. Find actual control u u u such that J a ( I K ( y ) ) u ≈ v y J_{\mathrm{a}}\left( IK\left( y \right) \right) u\approx v_{\mathrm{y}} Ja(IK(y))uvy

在这里插入图片描述
在这里插入图片描述
We can design outer-loop controller as if we can directly control y ˙ \dot{y} y˙
y ˙ = v y = y ˙ d + K ( y d − y ) ⟹ p l u g i n y ˙ = v y y ~ ˙ = − K y ~ \dot{y}=v_{\mathrm{y}}=\dot{y}_{\mathrm{d}}+K\left( y_{\mathrm{d}}-y \right) \overset{plug\,\,in\,\,\dot{y}=v_{\mathrm{y}}\,\,}{\Longrightarrow}\dot{\tilde{y}}=-K\tilde{y} y˙=vy=y˙d+K(ydy)pluginy˙=vyy~˙=Ky~
We can select K K K such that − K -K K is Hurtwiz , object of inner loop : determine u = q ˙ u=\dot{q} u=q˙ such that y ˙ ≈ v y \dot{y}\approx v_{\mathrm{y}} y˙vy

System(2) is nonlinear system , a commeon way is to break it into inner-outer loop , where the outer loop directly control velocity of y y y, and the inner loop tries to find u u u to generate desired task space velocity

Outer loop : y ˙ = v y \dot{y}=v_{\mathrm{y}} y˙=vy , where control v y = y ˙ d + K 0 y ~ v_{\mathrm{y}}=\dot{y}_{\mathrm{d}}+K_0\tilde{y} vy=y˙d+K0y~ , resulting in task-space closed-loop error dynamics: y ~ ˙ + K 0 y ~ = 0 \dot{\tilde{y}}+K_0\tilde{y}=0 y~˙+K0y~=0

Above task space tracking relies on a fictitious control v y v_{\mathrm{y}} vy , i.e. , it assumes y ˙ \dot{y} y˙ can be arbitrarily controlled by selecting appropriate u = q ˙ u=\dot{q} u=q˙ , which is true if J a J_{\mathrm{a}} Ja is full-row rank

Inner loop : Given v y v_{\mathrm{y}} vy from the outer loop, find the joint velocity control by solving
{ min ⁡ u ∥ v y − J a ( q ) u ∥ 2 + r e g u l a r i z a t i o n t e r m s u b j . t o : C o n s t r a i n t s o n u , e . g . { q ˙ min ⁡ ⩽ u ⩽ q ˙ max ⁡ q min ⁡ ⩽ q + u Δ t ⩽ q max ⁡ \begin{cases} \min _{\mathrm{u}}\left\| v_{\mathrm{y}}-J_{\mathrm{a}}\left( q \right) u \right\| ^2+regularization\,\,term\\ subj.to\,\,: Constraints\,\,on\,\,u\,\,, e.g.\begin{cases} \dot{q}_{\min}\leqslant u\leqslant \dot{q}_{\max}\\ q_{\min}\leqslant q+u\varDelta t\leqslant q_{\max}\\ \end{cases}\\ \end{cases} minuvyJa(q)u2+regularizationtermsubj.to:Constraintsonu,e.g.{q˙minuq˙maxqminq+uΔtqmax
Inner-loop is essentially a differential IK controller
One can also use the pseudo-inverse control u = J a † v y u={J_{\mathrm{a}}}^{\dagger}v_{\mathrm{y}} u=Javy

3.2 Acceleration-Resolved Control

3.2.1 Acceleration-Resolved Control in Joint Space

Joint acceleration cna be directly controlled , resulting in double-integrator dynamics q ¨ = u \ddot{q}=u q¨=u . Given q d q_{\mathrm{d}} qd reference , we want q → q d q\rightarrow q_{\mathrm{d}} qqd (double integartor)

Joint-space tracking becomes standard linear tracking control problem for double-integrator system:
u = q ¨ d + K 1 q ~ ˙ + K 0 q ~ = 0 , q ~ ∈ R n u=\ddot{q}_{\mathrm{d}}+K_1\dot{\tilde{q}}+K_0\tilde{q}=0,\tilde{q}\in \mathbb{R} ^n u=q¨d+K1q~˙+K0q~=0,q~Rn
—— PD control , closed-loop system , where q ~ = q d − q \tilde{q}=q_{\mathrm{d}}-q q~=qdq is the joint position error.

Stablility condition : Let x = [ q ~ q ~ ˙ ] ∈ R 2 n x=\left[ \begin{array}{c} \tilde{q}\\ \dot{\tilde{q}}\\ \end{array} \right] \in \mathbb{R} ^{2n} x=[q~q~˙]R2n , [ 0 E − K 0 − K 1 ] [ q ~ q ~ ˙ ] , x ˙ = A x \left[ \begin{matrix} 0& E\\ -K_0& -K_1\\ \end{matrix} \right] \left[ \begin{array}{c} \tilde{q}\\ \dot{\tilde{q}}\\ \end{array} \right] ,\dot{x}=Ax [0K0EK1][q~q~˙],x˙=Ax
closed-loop system is stable . if e i g ( A ) ∈ O L H P eig\left( A \right) \in OLHP eig(A)OLHP or A A A is Hurwitz

3.2.2 Acceleration-Resolved Control in Task Space

For task space control , y = [ T ( q ) ] ∈ S E ( 3 ) y=\left[ T\left( q \right) \right] \in SE\left( 3 \right) y=[T(q)]SE(3) needs to track y d y_{\mathrm{d}} yd
在这里插入图片描述
Note : For y = f ( q ) y=f\left( q \right) y=f(q) y ˙ = J a ( q ) q ˙ \dot{y}=J_{\mathrm{a}}\left( q \right) \dot{q} y˙=Ja(q)q˙ and y ¨ = J ˙ a ( q ) q ˙ + J a ( q ) q ¨ ⇒ y ¨ = J ˙ a ( q ) q ˙ + J a ( q ) u ⇐ \ddot{y}=\dot{J}_{\mathrm{a}}\left( q \right) \dot{q}+J_{\mathrm{a}}\left( q \right) \ddot{q}\Rightarrow \ddot{y}=\dot{J}_{\mathrm{a}}\left( q \right) \dot{q}+J_{\mathrm{a}}\left( q \right) u\Leftarrow y¨=J˙a(q)q˙+Ja(q)q¨y¨=J˙a(q)q˙+Ja(q)u nonlinear dynamics

Following the same inner-outer loop strategy deiscussed before . Introduce virtual control , a y a_{\mathrm{y}} ay such that y ¨ = a y \ddot{y}=a_{\mathrm{y}} y¨=ay , we can design controller for a y a_{\mathrm{y}} ay to let y → y d y\rightarrow y_{\mathrm{d}} yyd

Outer-loop dynamics : y ¨ = a y \ddot{y}=a_{\mathrm{y}} y¨=ay , with a y a_{\mathrm{y}} ay being the outer-loop control input a y = y ¨ d + K 1 y ~ ˙ + K 0 y ~ ⇒ y ~ ¨ + K 1 y ~ ˙ + K 0 y ~ = 0 a_{\mathrm{y}}=\ddot{y}_{\mathrm{d}}+K_1\dot{\tilde{y}}+K_0\tilde{y}\Rightarrow \ddot{\tilde{y}}+K_1\dot{\tilde{y}}+K_0\tilde{y}=0 ay=y¨d+K1y~˙+K0y~y~¨+K1y~˙+K0y~=0
在这里插入图片描述
—— PD control , stable if [ 0 E − K 0 − K 1 ] \left[ \begin{matrix} 0& E\\ -K_0& -K_1\\ \end{matrix} \right] [0K0EK1] Hurwitz

Inner-loop : given a y a_{\mathrm{y}} ay from outer loop , find the “best” joint acceleration:
{ min ⁡ u ∥ a y − J ˙ a ( q ) q ˙ − J a ( q ) u ∥ 2 + r e g u l a r i z a t i o n t e r m s u b j . t o : C o n s t r a i n t s o n u \begin{cases} \min _{\mathrm{u}}\left\| a_{\mathrm{y}}-\dot{J}_{\mathrm{a}}\left( q \right) \dot{q}-J_{\mathrm{a}}\left( q \right) u \right\| ^2+regularization\,\,term\\ subj.to\,\,: Constraints\,\,on\,\,u\,\,\\ \end{cases} minu ayJ˙a(q)q˙Ja(q)u 2+regularizationtermsubj.to:Constraintsonu
—— u u u : optimization variable , J ˙ a ( q ) , q ˙ , q \dot{J}_{\mathrm{a}}\left( q \right) ,\dot{q},q J˙a(q),q˙,q - known
{ A c c : q ¨ min ⁡ ⩽ u ⩽ q ¨ max ⁡ V e l : q ˙ min ⁡ ⩽ q + u Δ t ⩽ q ˙ max ⁡ \begin{cases} Acc\,\,: \ddot{q}_{\min}\leqslant u\leqslant \ddot{q}_{\max}\\ Vel\,\,: \dot{q}_{\min}\leqslant q+u\varDelta t\leqslant \dot{q}_{\max}\\ \end{cases} {Acc:q¨minuq¨maxVel:q˙minq+uΔtq˙max

Mathematically , the above problem is the same as the Differential IK problem

At any given time , q ˙ , q \dot{q},q q˙,q can be measured , and then y , y ˙ y,\dot{y} y,y˙ can be computed, which allows us to compute outer loop control a y a_{\mathrm{y}} ay and inner loop control u u u

4. Motion Control with Torque as Input and Task Space Inverse Dynamics

4.1 Recall Properties of Robot Dynamics

For fully actuated robot :
τ = M ( q ) q ¨ + C ( q , q ˙ ) q ˙ + g ( q ) \tau =M\left( q \right) \ddot{q}+C\left( q,\dot{q} \right) \dot{q}+g\left( q \right) τ=M(q)q¨+C(q,q˙)q˙+g(q)
M ( q ) = ∑ J i T [ I i ] 6 × 6 J i ∈ R n × n M\left( q \right) =\sum{{J_{\mathrm{i}}}^{\mathrm{T}}\left[ \mathcal{I} _{\mathrm{i}} \right] _{6\times 6}J_{\mathrm{i}}}\in \mathbb{R} ^{n\times n} M(q)=JiT[Ii]6×6JiRn×n

There are many valid difinitions of C ( q , q ˙ ) C\left( q,\dot{q} \right) C(q,q˙) , typical choice for C C C include:
C i j = ∑ k 1 2 ( ∂ M i j ∂ q k + ∂ M i k ∂ q j − ∂ M j k ∂ q i ) C_{\mathrm{ij}}=\sum_k^{}{\frac{1}{2}\left( \frac{\partial M_{\mathrm{ij}}}{\partial q_{\mathrm{k}}}+\frac{\partial M_{\mathrm{ik}}}{\partial q_{\mathrm{j}}}-\frac{\partial M_{\mathrm{jk}}}{\partial q_{\mathrm{i}}} \right)} Cij=k21(qkMij+qjMikqiMjk)
For the above defined C C C , we have M ˙ − 2 C \dot{M}-2C M˙2C is skew symmetric
For all valid C C C, we have q ˙ T [ M ˙ − 2 C ] q ˙ = 0 \dot{q}^{\mathrm{T}}\left[ \dot{M}-2C \right] \dot{q}=0 q˙T[M˙2C]q˙=0
These properties play improtant role in designing motion controller

4.2 Computed Torque Control

For fully-actuated robot, we have M ( q ) ≻ 0 M\left( q \right) \succ 0 M(q)0 and q ¨ \ddot{q} q¨ can be arbitrarily specified through torque control u = τ u=\tau u=τ
q ¨ = M − 1 ( q ) [ u − C ( q , q ˙ ) q ˙ − g ( q ) ] \ddot{q}=M^{-1}\left( q \right) \left[ u-C\left( q,\dot{q} \right) \dot{q}-g\left( q \right) \right] q¨=M1(q)[uC(q,q˙)q˙g(q)]

we know how to design controller if u = q ¨ u=\ddot{q} u=q¨
在这里插入图片描述
Thus , for fully-acuated robot, torque controlled case can be reduced to the acceleration-resolved case

Outer loop: q ¨ = a q \ddot{q}=a_{\mathrm{q}} q¨=aq with joint acceleration as control input
a q = q ¨ + K 1 y ~ ˙ + K 0 y ~ ⇒ q ~ ¨ + K 1 q ~ ˙ + K 0 q ~ = 0 a_{\mathrm{q}}=\ddot{q}+K_1\dot{\tilde{y}}+K_0\tilde{y}\Rightarrow \ddot{\tilde{q}}+K_1\dot{\tilde{q}}+K_0\tilde{q}=0 aq=q¨+K1y~˙+K0y~q~¨+K1q~˙+K0q~=0

Inner loop : since M ( q ) M\left( q \right) M(q) is square and nonsingular , inner loop control u u u can be found analytically:
u = M ( q ) ( q ¨ d + K 1 q ~ ˙ + K 0 q ~ ) + C ( q , q ˙ ) q ˙ + g ( q ) u=M\left( q \right) \left( \ddot{q}_{\mathrm{d}}+K_1\dot{\tilde{q}}+K_0\tilde{q} \right) +C\left( q,\dot{q} \right) \dot{q}+g\left( q \right) u=M(q)(q¨d+K1q~˙+K0q~)+C(q,q˙)q˙+g(q)
在这里插入图片描述
The control law is a function of q , q ˙ q,\dot{q} q,q˙ and the reference q d q_{\mathrm{d}} qd. It is called computed-torque control.

The control law also relies on system model M , C , g M,C,g M,C,g if these model information are not accurate, the control will not perform well.
y = f ( q ) , y ¨ = J ˙ a ( q ) q ˙ + J a ( q ) M − 1 ( u − C − g ) y=f\left( q \right) ,\ddot{y}=\dot{J}_{\mathrm{a}}\left( q \right) \dot{q}+J_{\mathrm{a}}\left( q \right) M^{-1}\left( u-C-g \right) y=f(q),y¨=J˙a(q)q˙+Ja(q)M1(uCg)
Idea easily extends to task space : y ˙ = J a ( q ) q ˙ \dot{y}=J_{\mathrm{a}}\left( q \right) \dot{q} y˙=Ja(q)q˙ and y ¨ = J ˙ a ( q ) q ˙ + J a ( q ) q ¨ \ddot{y}=\dot{J}_{\mathrm{a}}\left( q \right) \dot{q}+J_{\mathrm{a}}\left( q \right) \ddot{q} y¨=J˙a(q)q˙+Ja(q)q¨ —— τ = u = τ , q ¨ = M − 1 [ u − C − g ] \tau =u=\tau ,\ddot{q}=M^{-1}\left[ u-C-g \right] τ=u=τ,q¨=M1[uCg]

Outer loop : y ¨ = a y \ddot{y}=a_{\mathrm{y}} y¨=ay and a y = y ¨ d + K 1 y ~ ˙ + K 0 y ~ a_{\mathrm{y}}=\ddot{y}_{\mathrm{d}}+K_1\dot{\tilde{y}}+K_0\tilde{y} ay=y¨d+K1y~˙+K0y~

Inner loop : sekect torque control u = τ u=\tau u=τ by
{ min ⁡ u ∥ a y − J ˙ a ( q ) q ˙ − J a ( q ) M − 1 ( u − C q ˙ − g ) ∥ 2 s u b j . t o : C o n s t r a i n t s \begin{cases} \min _{\mathrm{u}}\left\| a_{\mathrm{y}}-\dot{J}_{\mathrm{a}}\left( q \right) \dot{q}-J_{\mathrm{a}}\left( q \right) M^{-1}\left( u-C\dot{q}-g \right) \right\| ^2\\ subj.to\,\,: Constraints\,\,\\ \end{cases} minu ayJ˙a(q)q˙Ja(q)M1(uCq˙g) 2subj.to:Constraints
If J a J_{\mathrm{a}} Jais invertible and we don’t impose additional torque constraints, analytical control law can be easily obtained —— u = ( J a ( q ) M − 1 ) − 1 ( a y − J ˙ a ( q ) q ˙ . . . ) u=\left( J_{\mathrm{a}}\left( q \right) M^{-1} \right) ^{-1}\left( a_{\mathrm{y}}-\dot{J}_{\mathrm{a}}\left( q \right) \dot{q}... \right) u=(Ja(q)M1)1(ayJ˙a(q)q˙...)

4.3 Inverse Dynamics Control

The computed-torque controller above is also canned inverse dynamics control

Forward dynamics : given τ \tau τ to compute q ¨ \ddot{q} q¨ —— from torque to motion

Inverse dynamics : given desired acceleration a q a_{\mathrm{q}} aq, we inverted it to find the required control by u = M a q + C q ˙ + g u=Ma_{\mathrm{q}}+C\dot{q}+g u=Maq+Cq˙+g

Task space case can be viewed as inverting the task space dynamics —— Given a y a_{\mathrm{y}} ay ( y y y task space) , find τ \tau τ such that y ¨ = a y \ddot{y}=a_{\mathrm{y}} y¨=ay

With recent advances in optimization , it is often preferred to do ID with quedratic program
在这里插入图片描述
For example, above equation can be viewed as task-space ID. We can incorporate torque contraints explicitly as follows:
{ min ⁡ u ∥ a y − J ˙ a ( q ) q ˙ − J a M − 1 ( u − C q ˙ − g ) ∥ 2 s u b j . t o : u − ⩽ u ⩽ u + \begin{cases} \min _{\mathrm{u}}\left\| a_{\mathrm{y}}-\dot{J}_{\mathrm{a}}\left( q \right) \dot{q}-J_{\mathrm{a}}M^{-1}\left( u-C\dot{q}-g \right) \right\| ^2\\ subj.to\,\,: u_-\leqslant u\,\,\leqslant u_+\,\,\\ \end{cases} minu ayJ˙a(q)q˙JaM1(uCq˙g) 2subj.to:uuu+
optimization variable u ∈ R n u\in \mathbb{R} ^n uRn

This is equivalent to the following more popular form:
{ min ⁡ u , q ¨ ∥ a y − J ˙ a q ˙ − J a q ¨ ∥ 2 s u b j . t o : M q ¨ + C q ˙ + g = u u − ⩽ u ∈ R n ⩽ u + \begin{cases} \underset{u,\ddot{q}}{\min}\left\| a_{\mathrm{y}}-\dot{J}_{\mathrm{a}}\dot{q}-J_{\mathrm{a}}\ddot{q} \right\| ^2\\ subj.to\,\,: \begin{array}{c} M\ddot{q}+C\dot{q}+g=u\\ u_-\leqslant u\in \mathbb{R} ^n\,\,\leqslant u_+\,\,\\ \end{array}\\ \end{cases} u,q¨min ayJ˙aq˙Jaq¨ 2subj.to:Mq¨+Cq˙+g=uuuRnu+
optimization variable u , q ¨ ∈ R n u,\ddot{q}\in \mathbb{R} ^n u,q¨Rn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2661799.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

竞赛保研 基于情感分析的网络舆情热点分析系统

文章目录 0 前言1 课题背景2 数据处理3 文本情感分析3.1 情感分析-词库搭建3.2 文本情感分析实现3.3 建立情感倾向性分析模型 4 数据可视化工具4.1 django框架介绍4.2 ECharts 5 Django使用echarts进行可视化展示5.1 修改setting.py连接mysql数据库5.2 导入数据5.3 使用echarts…

将H5封装为App:实现跨平台移动应用开发的新趋势

H5技术指的是HTML5、CSS3和JavaScript等一系列前端技术的综合应用。它具有跨平台、开发成本低、开发周期短等优势,可以快速实现丰富的界面和交互效果。而原生应用开发受限于操作系统的差异,需要分别开发不同平台的应用,这就增加了开发成本和工…

记一次redis内存没满发生key逐出的情况。

现象: 从监控上看,redis的内存使用率最大是80%,但是发生了key evicted 分析: 原因1、可能是阿里云监控没抓取到内存100%监控数据。 阿里控制台监控监控粒度是5秒。 内存使用率的计算方法。 used_memory_human/maxmemory 原因2、…

shiro1.10版本后-IniSecurityManagerFactory过期失效

1、问题概述? 今天在研究了shiro的新版本shiro1.13.0版本,发现用了很长时间的IniSecurityManagerFactory工厂失效了。 从下图中可以看出,在新版本中IniSecurityManagerFactory被打上了过期线了。 那么问题来了,新版本如何使用呢…

在SpringBoot中自定义指标并使用Prometheus监控报警

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 在10 分钟教你使用Prometheus监控Spring Boot工程中介绍了如何使用Prometheus监控Spring Boot提供的默认指标,这篇介绍如何自定义业务指标,并使用Prometheus进行…

神经网络:模型部署

【一】模型压缩的必要性与可行性? 模型压缩是指对算法模型进行精简,进而得到一个轻量且性能相当的小模型,压缩后的模型具有更小的结构和更少的参数,可以有效降低计算和存储开销,便于部署在端侧设备中。 随着AI技术的…

ERP与智能商品系统在供应链管理上有哪些区别和优势?

ERP系统和智能商品系统在供应链管理方面有以下区别和优势: 范围和综合性:ERP系统涵盖了企业的整个供应链管理过程,包括供应商管理、采购管理、库存管理、生产计划和物流管理等。它可以实现供应链上下游的信息共享和协同,提高供应…

鸿蒙原生应用/元服务开发-Stage模型能力接口(十)下

ohos.app.form.FormExtensionAbility (FormExtensionAbility) 系统能力:SystemCapability.Ability.Form 示例 import FormExtensionAbility from ohos.app.form.FormExtensionAbility; import formBindingData from ohos.app.form.formBindingData; import formP…

【Java干货教程】JSON,JSONObject,JSONArray类详解

一、定义 JSON:就是一种轻量级的数据交换格式,被广泛应用于WEB应用程序开发。JSON的简洁和清晰的层次结构,易于阅读和编写;同时也易于机器解析和生成,有效的提升网络传输效率;支持多种语言,很多…

Java商城 免 费 搭 建:鸿鹄云商实现多种商业模式,VR全景到SAAS,应有尽有!

鸿鹄云商 b2b2c产品概述 【b2b2c平台】,以传统电商行业为基石,鸿鹄云商支持“商家入驻平台自营”多运营模式,积极打造“全新市场,全新 模式”企业级b2b2c电商平台,致力干助力各行/互联网创业腾飞并获取更多的收益。从消…

pdf编辑器:Acrobat Pro DC 2023中文

Acrobat Pro DC 2023是一款功能强大的PDF处理软件,可以帮助用户在创建、编辑、转换和合并PDF文档方面达到前所未有的高度。Acrobat Pro DC 2023具备创建PDF的功能,用户可以将各种类型的文件,如Word、Excel、PowerPoint、图片等,轻…

HTTP与HTTPS的区别,看这一篇就够了

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是网页传输中常用的两种协议,它们之间的主要区别在于安全性。 HTTP是一种用于在Web浏览器和服务器之间传递信息的标准协议。然而&#…

【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)

文章目录 🍔Bean的获取🎄注入IOC容器对象⭐代码实现🛸根据bean的名称获取🛸根据bean的类型获取🛸根据bean的名称和类型获取 🎄Bean的作用域⭐代码实现🎈注意 🎄第三方Bean⭐代码实现…

【Unity动画系统】Animator有限状态机参数详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

怎么快速去除图片水印?这些快速去除的工具赶紧码住

在数字时代的大潮中,图片与视频中的水印如同微小的瑕疵,虽然旨在维护原创者的权益,却往往损害了内容的观感,降低了他人的分享欲望。那些恼人的水印,常常让人们束手无策。但别担心,接下来我将为你揭秘几种快…

羊大师讲解,羊奶怎么加热才不容易破坏营养

羊大师讲解,羊奶怎么加热才不容易破坏营养 随着人们对健康饮食的重视,越来越多的人开始选择羊奶作为补充营养的饮品。在加热羊奶的过程中,如果方法不当,很容易造成营养价值的损失。那么,如何加热羊奶才能最大程度地保…

gem5学习(7):内存系统中创建 SimObjects--Creating SimObjects in the memory system

目录 一、gem5 master and slave ports 二、Packets 三、Port interface 1、主设备发送请求时从设备忙 2、从设备发送响应时主设备忙 四、Simple memory object example 1、Declare the SimObject 2、Define the SimpleMemobj class 3、Define the SimpleMemobj class…

私域营销新趋势:电商品牌如何打破传统,实现共赢?

一、自私的私域 私域运营已经成为企业营销的重要手段之一,越来越多的品牌开始重视私域的构建和运营。瑞幸咖啡、熊猫不走和泡泡玛特等品牌的成功案例证明了私域运营的重要性和价值。这些品牌通过建立自己的用户社区,提供个性化的服务和营销策略&#xf…

ffmpeg 解码文件时的时间戳问题

实时流和普通文件 1 实时流 实时流编码时,我们一般不进行b帧编码,但是文件存储时为了减小大小,会增加b帧,实时流只带了I,P帧,那就会好很多 2 普通文件 很多文件带了b帧,所以要使用解码时间去同…

JavaScript(简写js)常用事件举例演示

目录 1.窗口事件onblur :失去焦点onfocus:获得焦点onload:窗口加载事件onresize:窗口大小缩放事件 二、表单事件oninput :当文本框内容改变时 ,立即将改变内容 输出在控制台onchange: 内容改变事件onclick:鼠标单击时触发此事件 三…