공부/Modern Robotics

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

InculPark 2024. 12. 6. 02:39
반응형

 

 

 

 

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

 

 

 

+)Math fundamentals

Positive-definite: A positive matrix can be regarded as a positive value. (My own explanation, uncertain)

For $A\in \mathbb{R}^{n\times n},x\in \mathbb{R^{n}},x\neq 0$, A is a positive-definite matrix if $x^{T}Ax>0$

●If A is a positive-definite matrix, $det\begin{bmatrix}a_{11}\end{bmatrix}>0$, $det\begin{bmatrix}a_{11} & a_{12} \\a_{21} & a_{22}\end{bmatrix}>0, \cdots , det\begin{bmatrix}a_{11} & \cdots  & a_{1n} \\ & \vdots  &  \\a_{n1} & \cdots  & a_{nn}\end{bmatrix}=det(A)>0$ 

●All eigenvalues are positive.

●e.g. Mass matrix, Stiffness matrix, Inertia matrix, etc.

 

 

Christoffel sybols of the first kind

$\Gamma_{ijk}(\theta)=\frac{1}{2}\left( \frac{\partial m_{ij}}{\partial \theta_{k}}+\frac{\partial m_{ik}}{\partial \theta_{j}}-\frac{\partial m_{jk}}{\partial \theta_{i}} \right)$

●For inverse dynamics equations, $m$ indicates a element of mass matrix.

●$\Gamma(\theta)\in\mathbb{R}^{n\times n\times n}$ consist of $\Gamma_{ijk}(\theta)$ ($1\le i,j,k\le n$)

●$\Gamma_{i}(\theta)\in\mathbb{R}^{n\times n}$ consist of $\Gamma_{ijk}(\theta)$ ($1\le i,j,k\le n$)

 

 

 

 

 

 

 


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)$

 

Lagrangian dynamics formulation

Lagrangian mechanics: Analyze motions using the energy.

$\mathcal{L}(q,\dot{q})=\sum\limits_{i=1}^{n}\mathcal{L}_{i}=\sum\limits_{i=1}^{n}(\mathcal{K}_{i}(q,\dot{q})-\mathcal{P}_{i}(q))$

●Lagrangian $\mathcal{L}$ is the system's energy term (Kinetic energy - Potential energy). ($q$: Generalized coordinates)

 

 

Euler-Lagrangian equations with external forces. ($f$: Generalized forces)

$f_{i}=\frac{d }{dt}\left( \frac{\partial\mathcal{L} }{\partial\dot{q}_{i}} \right)-\frac{\partial\mathcal{L} }{\partial q_{i}}$

●The result of EoM must be the same as that of Newton's second law. (& F=m\frac{d v}{dt} &)

●Suitable for systems with fewer than 3-DoF.

 

 

Inverse dynamics with Lagrangian method: Derive inverse dynamics equation with Euler-Lagrange equation.

 

(Single joint): $\tau_{i}=\frac{d }{dt}\left( \frac{\partial\mathcal{L} }{\partial\dot{\theta}_{i}} \right)-\frac{\partial\mathcal{L} }{\partial \theta_{i}}=\sum\limits_{j=1}^{n}m_{ij}(\theta)\ddot{\theta}+\sum\limits_{j=1}^{n}\sum\limits_{k=1}^{n}\Gamma_{ijk}\dot{\theta}_{j}\dot{\theta}_{k}+\frac{\partial \mathcal{P}}{\partial \theta_{i}}$

 

(Entire joint): $\tau=M(\theta)\ddot{\theta}+c(\theta,\dot{\theta})+g(\theta)=M(\theta)\ddot{\theta}+C(\theta,\dot{\theta})\dot{\theta}+g(\theta) $       ($\tau_{i}\in \mathbb{R}$,    $\tau,\theta,\dot{\theta},\ddot{\theta}\in \mathbb{R}^{n}$)

 

●If there are additional $\tau$ from end effector static wrench $\mathcal{F}_{tip}$,   $\tau=M(\theta)\ddot{\theta}+c(\theta,\dot{\theta})+g(\theta)+J^{T}(\theta)\mathcal{F}_{tip} $

●For mass $M(\theta)$ and Coriolis matrix $C(\theta,\dot{\theta})$, $\dot{M}-2C$ should be a skew-symmetric matrix.(Passivity property)

 

 

+)Explanation of mappings from acceleration to force below are only for the zero velocity case. (No Coriolis and centripetal effect)

Mass matrix $M(\theta)$: Represents the amount of (linear+rotational) inertia around each joint that changes depending on the joint configuration $\theta$.

●$M\in \mathbb{R}^{n\times n}$ contains the entire robot's both linear and rotational inertia.

●$m_{ij}$ represents (i,j)th element of Mass matrix $M(\theta)$

●Symmetric, Positive-definite

●Not simply represents mass and mass moment of inertia. (was my misconception)

●Mapping: $\ddot{\theta}\longrightarrow \tau$

●Unlike a point mass ($\tau=I\ddot{\theta}, F=m\ddot{x}$), $\tau_{i}$ is generally not proportional to $\ddot{\theta}_{i}$ due to off-diagonal elements of $M(\theta)$.

 

End effector mass matrix $\Lambda$: Represent the whole robot's effective inertia at the end effector. (Not good enough)

$\Lambda(\theta)=J^{T}(\theta)M(\theta)J^{-1}(\theta)$

●Calculated from the mass matrix M

●Mapping: $\ddot{x}\longrightarrow f_{x}$,   ($x$: End effector configuration,   $f_{x}$: Force along the direction $x$)

 

 

 

 

Coriolis and Centripetal term $c(\theta,\dot{\theta})$: Represent torques arise from the Coriolis and centripetal accelerations. These terms can occur even when $\ddot{\theta}=0$

 

 

Centripetal term: The centripetal force is essential for the mass to move in a circular motion and this makes torque on joints.

●Terms containing $\dot{\theta}_{i}^{2}$

$\dot{\theta}_{i}^{2}$ doesn't make any torque on joint $i$ because the centripetal's force direction.(Heading to center of joint $i$)

●Each joint have n-1 different centripetal terms. ($\dot{\theta}_{1}^{2} ~ \dot{\theta}_{n}^{2}$, except $\dot{\theta}_{i}^{2}$)

 

Coriolis term: The Coriolis force is applied to the mass when the mass is in radius-changing circular motion. (Not good enough)

●Terms containing $\dot{\theta}_{i} \dot{\theta}_{j}$

●$\dot{\theta}_{1}\cdots \dot{\theta}_{i-1}$ don't make any torque on joint $i$.

●e.g. For n-joint open chain robots, if all joints are actuated, there will be $_n\mathrm{C}_2$ Coriolis terms on joint 1. (Uncertain)

 

Christoffel symbol: Represents the Coriolis and centripetal term on the joint i. ($\tau_{i}=$~~~ equation)

●Index i: joint i

●$\Gamma_{ijk}$, $j=k$: Generate the centripetal term with $\dot{\theta}_j^{2}$ 

$\Gamma_{ijk}$, $j≠k$: Generate the Coriolis term with $\dot{\theta}_j \dot{\theta}_k $ 

●If mass matrix $M$ is independent of $\theta$, $\Gamma_{ijk}(\theta)=0$ which means no Coriolis and centripetal force at all.

 

Coriolis matrix $C(\theta,\dot{\theta})$: The $n\times n$ matrix for expressing Coriolis and Centripetal term $c(\theta,\dot{\theta})$ as $C(\theta,\dot{\theta})\dot{\theta}$ form.

An element of $C(\theta,\dot{\theta})$ is $c_{ij}(\theta,\dot{\theta})=\sum\limits_{k=1}^{n}\Gamma_{ijk}(\theta)\dot{\theta_{k}}$

 

 

 

 

Gravitational torque term $g(\theta)$: Represent torques arise from the gravity force.

$g(\theta)=\frac{\partial \mathcal{P}}{\partial \theta}$

●Holds only when gravity is the only conservative force applied to the open chain system. (e.g. Spring force that makes torque on joints)

 

 

 

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

 

반응형