[Modern Robotics] 강좌 3: 로봇 동역학 #1
+)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)
========================================================================
정확한 정보 전달보단 공부 겸 기록에 초점을 둔 글입니다.
틀린 내용이 있을 수 있습니다.
틀린 내용이나 다른 문제가 있으면 댓글에 남겨주시면 감사하겠습니다. : )
========================================================================