공부/Modern Robotics

[Modern Robotics] 강좌 3: 로봇 동역학 #2

InculPark 2024. 12. 11. 13:51
반응형

 

 

 

 

+)This chapter deals with open chains, n-joint serial robots.

 

 

Inverse dynamics: $\text{Given } \theta,\dot{\theta} \text{ and } \ddot{\theta}\in\mathbb{R}^{n},\text{ find }\tau\in \mathbb{R}^{n}$

●$\tau=M(\theta)\ddot{\theta}+h(\theta,\dot{\theta})$

 

Forward dynamics: $\text{Given } \theta,\dot{\theta} \text{ and } \tau\in\mathbb{R}^{n},\text{ find } \ddot{\theta} \in \mathbb{R}^{n}$

●$\ddot{\theta}=M^{-1}(\theta)\left( \tau-h(\theta,\dot{\theta}) \right)$

 

 

 

Newton-Euler dynamics formulation

A single rigid body

Inverse dynamics for a single rigid body: Derive inverse dynamics equation with Newton-Euler dynamics.

 

 

$\text{Given } \mathcal{V}\text{(velocity)}\text{ and }\dot{\mathcal{V}}\text{(acceleration)},\text{ find }\mathcal{F}\text{(force,moment)}$

 

$\mathcal{F}_{b}=\mathcal{G}_{b}\dot{\mathcal{V}}_{b}-[ad_{\mathcal{V_{b}}}]^{T}\mathcal{G}_{b}\mathcal{V}_{b}$ (Body frame reference)(Generally used)

 

$\mathcal{F}_{a}=\mathcal{G}_{a}\dot{\mathcal{V}}_{a}-[ad_{\mathcal{V_{a}}}]^{T}\mathcal{G}_{a}\mathcal{V}_{a}$ (Other frame reference)

 

$\mathcal{F}=\begin{bmatrix}m \\ f\end{bmatrix}$,  $\mathcal{V}=\begin{bmatrix}\omega \\ v\end{bmatrix}$,  $\dot{\mathcal{V}}=\begin{bmatrix}\dot{\omega} \\ \dot{v}\end{bmatrix}$

 

●The wrench($\mathcal{F}_{b}$) needed to accelerate($\mathcal{\dot{V}}_{b}$) a rigid body moving at $\mathcal{V}_{b}$.

 

+)Derived by combining a rigid body's linear and rotational dynamics equations.

$f_{b}=ma_{b}=m\left( \dot{v}_{b}+[\omega_{b}]v_{b} \right)$  (Newton's second law for a rotating rigid body)

$m_{b}=\mathcal{I}_{b}\alpha_{b}=\mathcal{I}_{b}\dot{\omega}_{b}+[\omega_{b}]\mathcal{I}_{b}\omega_{b}$   ($m_{b}$: moment applied to the body)  (Euler's equation for a rotating rigid body)

 

 

 

+)Explanations below presuppose that body frame {b} is on the body's center of mass (CoM) 

+)Note that $\color{Red}\mathfrak{m}\in\mathbb{R}$ indicates the mass of the body and $\color{Red}m\in\mathbb{R}^3$ indicates moments.

 

Spatial inertia matrix $\mathcal{G}_{b}$: represents a single rigid body's both linear and rotational inertia.

$\mathcal{G}_{b}=\begin{bmatrix}\mathcal{I}_{b} & 0 \\0 & \mathfrak{m}I\end{bmatrix}\in\mathbb{R}^{6\times 6}$

●Symmetric, Positive-definite

 

(Rotational) Inertia matrix $\mathcal{I}_{b}$: represents a rigid body's rotational inertia about the origin of {b}

$\mathcal{I}_{b}=\begin{bmatrix}\sum m_{i}(y_{i}^{2}+z_{i}^{2})&-\sum m_{i}x_{i}y_{i}&-\sum m_{i}x_{i}y_{i}\\-\sum m_{i}x_{i}y_{i}&\sum m_{i}(x_{i}^{2}+z_{i}^{2})  &-\sum m_{i}y_{i}z_{i}\\-\sum m_{i}x_{i}z_{i}&-\sum m_{i}y_{i}z_{i}&\sum m_{i}(x_{i}^{2}+y_{i}^{2})\end{bmatrix}=-\sum\limits_{i}m_{i}[r_{i}]^{2}\in\mathbb{R}^{3\times 3}$

●Diagonal elements: (Mass) moment of inertia, Off-diagonal elements: Product of inertia

Symmetric, Positive-definite

Constant. Not changing with $\theta$

●Eigenvalues: Principal moment of inertia,  Eigenvectors: Principal axes of inertia

●For asymmetric rigid bodies, a set of principal axes (moments)of inertia is unique. > A set of axes that maximizes the moment of inertia.

●If {b} is aligned with the principal axes, all off-diagonal elements are zero, and diagonal elements are the principal moment of inertia.

●$\mathcal{I}_{c}=R_{bc}^{T}\mathcal{I}_{b}R_{bc}$  (Note that the origin of {c} is the same as that of {b}, only differ in orientation.)

Steiner's theorem(Parallel axis theorem): $\mathcal{I}_{q}=\mathcal{I}_{b}+\mathfrak{m}(q^{T}qI-qq^{T})$   $(q\in \mathbb{R}^3)$ for when {b} is not on the center of mass, but at point q in {b}

●Inertia matrice of the same reference frame can be added. ($\mathcal{I}_{b}^{1}+\mathcal{I}_{b}^{2}$)

 

 

 

 

Coriolis and centripetal term $-[ad_{\mathcal{V_{b}}}]^{T}\mathcal{G}_{b}\mathcal{V}_{b}$

●For a rigid body that rotates without translation($\omega_{b}\neq 0, v_b=0$), this term becomes zero if it rotates about in a principal axis.

 

Lie bracket $[ad_{\mathcal{V}_{1}}]\mathcal{V}_{2}$: Represents special cross-product of Lie algebra se(3). Represent an acceleration effect from combining two twists.

Vector form: $[ad_{\mathcal{V}}]=\begin{bmatrix}[\omega] & 0 \\ [v] &[\omega]\end{bmatrix}\in \mathbb{R}^{6\times 6}$,        $[ad_{\mathcal{V}_{1}}]\mathcal{V}_{2}=\begin{bmatrix}[\omega_1] & 0 \\ [v_{1}] &[\omega_{1}]\end{bmatrix}\begin{bmatrix}\omega_{2} \\ v_2\end{bmatrix}$

Matrix form: $[\mathcal{V}_{1}][\mathcal{V}_{2}]-[\mathcal{V}_{2}][\mathcal{V}_{1}]\in se(3)$

●Used to represent the Coriolis and centripetal effect.

 

 

 

 

 

Open chains

Inverse dynamics algorithm for open chains: Inverse dynamics algorithm that uses the recursive method.

$\text{Given } \theta,\dot{\theta},\ddot{\theta}\text{ and }\mathcal{F}_{tip},\text{ find }\tau$

 

 

※I'll skip the detailed equation. Refer to the book p.294, eq.8.50-8.54

Forward iterations:

●Given $\theta,\dot{\theta},\ddot{\theta}$ (joint configurations, velocities, accelerations), find $\mathcal{V},\dot{\mathcal{V}}$ (link velocities, accelerations).

●Carried out in the order of from {0} to {n}.

●$A_{i}$ is the screw axis of joint i expressed in {i} frame. Since {i} is affected by movement of joint i, use body PoE(Product of exponential) to find $T_{i,i+1}$

●$\dot{\mathcal{V}}_{0}=[0,0,0,0,0,-g]^{T}$

$\mathcal{V}_{i}$ consist of two terms: ⓐtwist due to $\dot{\theta}_{i}$, ⓑtwist of formal link $\mathcal{V}_{i-1}$

●$\dot{\mathcal{V}}_{i}$ consist of three terms: ⓐacceleration due to $\ddot{\theta}_{i}$, ⓑacceleration of formal link $\dot{\mathcal{V}}_{i-1}$, ⓒthe Coriolis and centripetal acceleration

 

Backward iterations:

●Given $\theta,\dot{\theta},\ddot{\theta}$ (joint configurations, velocities, accelerations) and $\mathcal{V},\dot{\mathcal{V}}$ (link velocities, accelerations), find $\mathcal{F}$ (wrench applied to each body) and $\color{red}\tau$ (joint torque)

●Carried out in the order of from {n} to {0}.

●$\mathcal{F}_{n+1}=\mathcal{F}_{tip}$

●For each joint, use the inverse dynamics of a single rigid body with $\mathcal{F}_{i+1}$(reaction force) to find $\mathcal{F}_{i}$.

For each joint, use $\tau_{i}=\mathcal{F}_{i}^{T}A_{i}$.

 

 

 

 

 

Forward dynamics for open chains: Given $\theta,\dot{\theta},\tau$ and $\mathcal{F}_{tip}$, find $\ddot{\theta}$

 

$M(\theta)\ddot{\theta}=\tau-h(\theta,\dot{\theta})-J^{T}(\theta)\mathcal{F}_{tip}$    $(h(\theta,\dot{\theta})=c(\theta,\dot{\theta})+g(\theta)$)

 

●Used to simulate open-chain robots.

●Each term can be computed

●$h(\theta,\dot{\theta})$ : Using the Inverse dynamic algorithm with $\ddot{\theta}=0, \mathcal{F}_{tip}=0$, then $h(\theta,\dot{\theta})=\tau$

●Mass matrix $M(\theta)$ :

ⓐUsing $M(\theta)=\sum\limits_{i=1}^{n}J_{ib}^{T}(\theta)\mathcal{G}_{i}J_{ib}(\theta)$

ⓑ Using the Inverse dynamic algorithm with $g=0, \dot{\theta}=0, \mathcal{F}_{tip}=0 \text{ and }\ddot{\theta}=[0,0\cdots ,1,\cdots 0]^{T}$, then $\text{ith column of }M(\theta)=\tau$

 

 

 

 

========================================================================
정확한 정보 전달보단 공부 겸 기록에 초점을 둔 글입니다.
틀린 내용이 있을 수 있습니다.
틀린 내용이나 다른 문제가 있으면 댓글에 남겨주시면 감사하겠습니다. : )
========================================================================

 

반응형