0% found this document useful (0 votes)
11 views

06_NewtonEulerDynamics

The document discusses the Newton-Euler approach to dynamic modeling of robots, emphasizing its application in real-time inverse dynamics. It details the equations governing the dynamics of rigid bodies, including the balance of forces and moments, and outlines the forward and backward recursion methods for computing velocities, accelerations, forces, and moments. Additionally, it highlights the advantages of using the Newton-Euler method for efficient computational schemes in robotics.

Uploaded by

settuuma13
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

06_NewtonEulerDynamics

The document discusses the Newton-Euler approach to dynamic modeling of robots, emphasizing its application in real-time inverse dynamics. It details the equations governing the dynamics of rigid bodies, including the balance of forces and moments, and outlines the forward and backward recursion methods for computing velocities, accelerations, forces, and moments. Additionally, it highlights the advantages of using the Newton-Euler method for efficient computational schemes in robotics.

Uploaded by

settuuma13
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Robotics 2

Dynamic model of robots:


Newton-Euler approach

Prof. Alessandro De Luca


Approaches to dynamic modeling
(reprise)

energy-based approach Newton-Euler method


(Euler-Lagrange) (balance of forces/moments)
n multi-body robot seen as a whole n dynamic equations written
separately for each link/body
n constraint (internal) reaction forces
between the links are automatically n mainly used for inverse dynamics
eliminated: in fact, they do not in real time
perform work n equations are evaluated in a
n closed-form (symbolic) equations numeric and recursive way
are directly obtained n best for synthesis
(=implementation) of model-
n best suited for study of dynamic
properties and analysis of control based control schemes
schemes n by eliminating the internal reaction forces
and performing back-substitution of all
expressions, we get dynamic equations in
closed-form (identical to Euler-Lagrange!)
Robotics 2 2
Derivative of a vector in a moving frame
… from velocity to acceleration

!
𝑣" = 0𝑅" 𝑖𝑣" !
𝑅̇ " = 𝑆 0𝜔" 0𝑅
"

!
𝑣̇ " = 0𝑎" = 0𝑅" 𝑖𝑎" = 0𝑅" "𝑣̇ " + 0𝑅̇ " 𝑖𝑣"
= 0𝑅" "𝑣̇ " + 0𝜔" × 0𝑅" 𝑖𝑣" = 0𝑅" #
𝑣̇ # + #𝜔# × 𝑖𝑣"

" " " derivative of a “unit” vector


𝑎" = 𝑣̇ " + 𝜔" × 𝑖𝑣
" in a moving frame
!
𝜔! 𝑑 𝑖 𝑒!
= 𝑖 𝜔! × 𝑖 𝑒!
𝑑𝑡
𝑖𝑒
!

Robotics 2 3
Dynamics of a rigid body
n Newton dynamic equation
n balance: sum of forces = variation of linear momentum
𝑑
! 𝑓! = 𝑚𝑣" = 𝑚𝑣̇"
𝑑𝑡
n Euler dynamic equation
n balance: sum of moments = variation of angular momentum
𝑑 𝑑
! 𝜇! = 𝐼𝜔 = 𝐼 𝜔̇ + 𝑅𝐼𝑅̅ $ 𝜔 = 𝐼𝜔̇ + 𝑅̇ 𝐼𝑅 ̅ $ + 𝑅𝐼 𝑅
̅ ̇$ 𝜔
𝑑𝑡 𝑑𝑡
= 𝐼𝜔̇ + 𝑆 𝜔 𝑅𝐼𝑅̅ # 𝜔 + 𝑅𝐼𝑅
̅ # 𝑆 # 𝜔 𝜔 = 𝐼 𝜔̇ + 𝜔 × 𝐼𝜔

n principle of action and reaction


n forces/moments: applied by body 𝑖 to body 𝑖 + 1
= − applied by body 𝑖 + 1 to body 𝑖
Robotics 2 4
Newton-Euler equations -1

link 𝑖
FORCES

center 𝒗𝒄𝒊 𝑓! force applied


of mass from link 𝑖 − 1 on link 𝑖
𝑧"#$ 𝑪𝒊 𝑧"
𝑓!$% force applied
. from link 𝑖 on link 𝑖 + 1
.𝑂 𝑂! 𝑓!$%
𝑓!
!&%
𝑚! 𝑔 gravity force
axis 𝑖 𝑚! 𝑔 axis 𝑖 + 1
(𝑞! ) (𝑞!$% ) all vectors expressed in the
same RF (better in RF𝑖 …)

Newton equation 𝑓# − 𝑓#&' + 𝑚# 𝑔 = 𝑚# 𝑎(# N

linear acceleration of 𝐶!
Robotics 2 5
Newton-Euler equations -2
link 𝑖
MOMENTS 𝜔!

𝜏! moment applied 𝑧"


𝑧"#$
from link (𝑖 − 1) on link 𝑖 𝜏!$%
𝜏! 𝑟!&%,(! 𝑟!,(!
𝜏!$% moment applied .
from link 𝑖 on link (𝑖 + 1) .𝑂 𝑪𝒊 𝑓!$%
𝑓! !&% 𝑂!
𝑓! × 𝑟!&%,"! moment due to 𝑓! w.r.t. 𝐶! axis 𝑖 axis 𝑖 + 1
(𝑞! ) (𝑞!$% )
−𝑓!$% × 𝑟!,(! moment due to −𝑓!$% w.r.t. 𝐶!
all vectors expressed in
gravity force gives the same RF (… RF𝑖 !!)
Euler equation no moment at 𝐶!

𝜏# − 𝜏#&' + 𝑓# × 𝑟#)',(# −𝑓#&' × 𝑟#,(# = 𝐼# 𝜔̇ # + 𝜔# × 𝐼# 𝜔# E

angular acceleration of body 𝑖


Robotics 2 6
Forward recursion
Computing velocities and accelerations
§ “moving frames” algorithm (as for velocities in Lagrange)
§ for simplicity, only revolute joints here
(see textbook for the more general treatment)
initializations
!
𝜔! = !&%𝑅!# !&%
𝜔!&% + 𝑞̇ ! !&%𝑧!&% (
𝜔(
!
𝜔̇ ! = !&%𝑅!# !&%
𝜔̇ !&% + 𝑞̈ ! !&%𝑧!&% + !&%𝑅̇ !# !&%
𝜔!&% + 𝑞̇ ! !&%𝑧!&%
!&% # !&% !&% !&% !&% (
AR = 𝑅! 𝜔̇ !&% + 𝑞̈ ! 𝑧!&% + 𝑞̇ ! 𝜔!&%× 𝑧!&% 𝜔̇ (
(
!
𝑎( − 0𝑔
𝑎! = !&%𝑅!# !&%𝑎!&% + !𝜔̇ ! × !𝑟!&%,! + !𝜔! × !
𝜔! × !𝑟!&%,!
!
𝑎"! = !𝑎! + !𝜔̇ ! × !𝑟!,"! + !𝜔! × !
𝜔! × !𝑟!,"!

the gravity force term can be skipped in Newton equation, if added here
Robotics 2 7
Backward recursion
Computing forces and moments
eliminated, if inserted
from 𝑁! to 𝑁!&% in forward recursion (𝑖 =0) initializations
!
𝑓! = !𝑅!$% !$%𝑓!$% + 𝑚! !
𝑎"! − !𝑔 𝑓)$% 𝜏)$%
F/MR
!
𝜏! = !𝑅!$% !$%𝜏!$% + !
𝑅!$% !$%𝑓!$% × !𝑟!,"! − !𝑓! × !
𝑟!&%,! + !𝑟!,"!

from 𝐸! to 𝐸!&% + !𝐼! !𝜔̇ ! + !𝜔! × !𝐼! !𝜔!

at each recursion step, the two vector equations (𝑁𝑖 + 𝐸𝑖 ) at joint 𝑖 provide
a wrench (𝑓! , 𝜏! ) ∈ ℝ*): this contains ALSO reaction forces/moments at
the joint axis ⇒ to be “projected” along/around this axis to produce work
! # !
𝑓! 𝑧!&% + 𝐹)! 𝑞̇ ! for prismatic joint 𝑁 scalar
FP 𝑢! = ; ! # !
𝜏! 𝑧!&% + 𝐹)! 𝑞̇ ! for revolute joint equations
at the end
generalized forces add any dissipative term
(in rhs of Euler-Lagrange eqs) (here, viscous friction only)
Robotics 2 8
Comments on Newton-Euler method
n the previous forward/backward recursive formulas can
be evaluated in symbolic or numeric form
n symbolic
n substituting expressions in a recursive way

n at the end, a closed-form dynamic model is obtained, which

is identical to the one obtained using Euler-Lagrange (or any


other) method
n there is no special convenience in using N-E in this way …

n numeric
n substituting numeric values (numbers!) at each step

n computational complexity of each step remains constant ⇒

grows in a linear fashion with the number 𝑁 of joints (𝑂(𝑁))


n strongly recommended for real-time use, especially when the

number 𝑁 of joints is large

Robotics 2 9
Newton-Euler algorithm
efficient computational scheme for inverse dynamics
(
𝜔( , (𝜔̇ ( , (𝑎( − (𝑔 (at robot base) numeric steps
at every instant 𝑡
𝑞%
$
𝑞̇ % AR 𝑓$ , $𝜏$ FP 𝑢%
𝑞̈ %
$
𝜔$ , $𝜔̇ $ , $𝑎$ , $𝑎)$ F/MR

%
inputs 𝑓% , %𝜏% outputs

&#$
𝜔&#$ , &#$𝜔̇ &#$ , &#$𝑎&#$ , &#$𝑎),&#$
𝑞)
&
𝑞̇ ) AR 𝑓& , &𝜏& FP 𝑢)
𝑞̈ )
&
𝜔& , &𝜔̇ & , &𝑎& , &𝑎)& F/MR
(force/moment exchange
&'$
𝑓&'$ , &'$𝜏&'$ from EE to environment)
Robotics 2 10
Matlab (or C) script
assuming no interaction
general routine 𝑁𝐸# (arg1, arg2, arg3) with the environment
(𝑓&'$ = 𝜏&'$ = 0)
n data file (of a specific robot)
n number 𝑁 and types σ = 0,1 + of joints (revolute/prismatic)
n table of DH kinematic parameters
n list of ALL dynamic parameters of the links (and of the motors)
n input
n vector parameter 𝛼 = 0𝑔, 0 (presence or absence of gravity)
n three ordered vector arguments
n typically, samples of joint position, velocity, acceleration

taken from a desired trajectory


n output
n generalized force 𝑢 for the complete inverse dynamics
n … or single terms of the dynamic model
Robotics 2 11
Examples of output

n complete inverse dynamics


𝑢 = 𝑁𝐸 "5 (𝑞𝑑 , 𝑞̇ 7 , 𝑞̈ 7 ) = 𝑀(𝑞7 )𝑞̈ 7 + 𝑐(𝑞7 , 𝑞̇ 7 ) + 𝑔(𝑞7 ) = 𝑢7
n gravity term
𝑢 = 𝑁𝐸 "5 (𝑞, 0, 0) = 𝑔(𝑞)
n centrifugal and Coriolis term
𝑢 = 𝑁𝐸6 (𝑞, 𝑞,̇ 0) = 𝑐(𝑞, 𝑞)
̇
n 𝑖 -th column of the inertia matrix
𝑒! = 𝑖-th column
𝑢 = 𝑁𝐸6 (𝑞, 0, 𝑒# ) = 𝑀# (𝑞) of identity matrix
n generalized momentum
𝑢 = 𝑁𝐸6 𝑞, 0, 𝑞̇ = 𝑀 𝑞 𝑞̇ = 𝑝
Robotics 2 12
A further example of output
n factorization of centrifugal and Coriolis term
𝑢 = 𝑁𝐸6 𝑞, 𝑞,̇ 0 = 𝑐 𝑞, 𝑞̇ = 𝑆(𝑞, 𝑞)
̇ 𝑞̇
n for later use, what about a “mixed” velocity term?
𝑢 = 𝑁𝐸6 (𝑞, 𝑞̇ 8 , 0) = 𝑆(𝑞, 𝑞̇ 8 )𝑞̇ 8
𝑆(𝑞, 𝑞)
̇ 𝑞̇ 8 ⇎ no good!
𝑢 = 𝑁𝐸6 (𝑞, 𝑒# 𝑞̇ 8# , 0) = 𝑆# (𝑞, 𝑒# 𝑞̇ 8# )𝑞̇ 8#
a) 𝑆 𝑞, 𝑞̇ 𝑞̇ 8 = 𝑆 𝑞, 𝑞̇ 8 𝑞̇ , when using Christoffel symbols
b) 𝑆 𝑞, 𝑞̇ + 𝑞̇ 8 𝑞̇ + 𝑞̇ 8 = 𝑆 𝑞, 𝑞̇ 𝑞̇ + 𝑆 𝑞, 𝑞̇ 8 𝑞̇ 8 + 2𝑆 𝑞, 𝑞̇ 𝑞̇ 8
1
⇒ 𝑢 = 𝑁𝐸6 𝑞, 𝑞̇ + 𝑞̇ 8 , 0 − 𝑁𝐸6 𝑞, 𝑞,̇ 0 − 𝑁𝐸6 (𝑞, 𝑞̇ 8 , 0)
2
= 𝑆 𝑞, 𝑞̇ 𝑞̇ 8 (i.e., with 3 calls of standard NE algorithm)
[Kawasaki et al., IEEE T-RA 1996]
Robotics 2 13
Modified NE algorithm
2 # (arg1, arg2, arg3, arg4) with 4 arguments
modified routine 𝑁𝐸
[De Luca, Ferrajoli, ICRA 2009]

E : 𝑥, 𝑦, 𝑦, 𝑧 = 𝑁𝐸: (𝑥, 𝑦, 𝑧)
𝑁𝐸 consistency property

e.g., E "5 𝑞, 0, 0, 0 = 𝑁𝐸 "5 𝑞, 0, 0 = 𝑔(𝑞)


𝑢 = 𝑁𝐸
E 6 𝑞, 𝑞,̇ 𝑞,̇ 0 = 𝑁𝐸6 𝑞, 𝑞,̇ 0 = 𝑐 𝑞, 𝑞̇ = 𝑆(𝑞, 𝑞)
𝑢 = 𝑁𝐸 ̇ 𝑞̇

E 6 𝑞, 𝑞,̇ 𝑞̇ 8 , 0 = 𝑆(𝑞, 𝑞)
⇒ 𝑢 = 𝑁𝐸 ̇ 𝑞̇ 8 with 𝑀̇ − 2𝑆 skew-symmetric
(i.e., with 1 call of modified NE algorithm)

E 6 𝑞, 𝑞,̇ 𝑒# , 0 = 𝑆# (𝑞, 𝑞)
⇒ 𝑢 = 𝑁𝐸 ̇
(i.e., the full matrix 𝑆 satisfying the skew-symmetry of
𝑀̇ − 2𝑆 with 𝑁 calls of the modified NE algorithm)
Robotics 2 14
Inverse dynamics of a 2R planar robot

desired (smooth) joint motion:


quintic polynomials for 𝑞%, 𝑞, with

zero vel/acc boundary conditions
o o o o
from (90 , -180 ) to (0 , 90 ) in 𝑇 = 1 s

Robotics 2 15
Inverse dynamics of a 2R planar robot

zero final torques


initial torques =
𝑢% ≠ 0, 𝑢* = 0
free equilibrium
balance
configuration
link weights
+ o o
in final (0 , 90 )
zero initial
configuration
accelerations

motion in vertical plane (under gravity)


both links are thin rods of uniform mass 𝑚% = 10 kg, 𝑚* = 5 kg
Robotics 2 16
Inverse dynamics of a 2R planar robot

torque contributions at the two joints for the desired motion


= total, = inertial
= Coriolis/centrifugal, = gravitational
Robotics 2 17
Use of NE routine for simulation
direct dynamics

n numerical integration, at current state (𝑞, 𝑞̇ ), of


𝑞̈ = 𝑀)' (𝑞)[𝑢 – (𝑐(𝑞, 𝑞)
̇ + 𝑔(𝑞))] = 𝑀)' (𝑞)[𝑢 – 𝑛(𝑞, 𝑞)]
̇
n Coriolis, centrifugal, and gravity terms
𝑛 = 𝑁𝐸 "5 (𝑞, 𝑞,̇ 0) complexity 𝑂(𝑁)
n 𝑖 -th column of the inertia matrix, for 𝑖 = 1, . . , 𝑁
𝑀# = 𝑁𝐸6 (𝑞, 0, 𝑒# ) 𝑂(𝑁 ,)
n numerical inversion of inertia matrix
𝐼𝑛𝑣𝑀 = inv(𝑀) 𝑂(𝑁 -)
but with small coefficient
n given 𝑢, integrate acceleration computed as
new state (𝑞, 𝑞̇ )
𝑞̈ = 𝐼𝑛𝑣𝑀 ∗ [𝑢 – 𝑛]
and repeat over time ...
Robotics 2 18

You might also like