📜 Table of contents
🔗 Relevant links and bibliography
📚 28th Nov and 05th Dec 2023, Geometric algebra study group, NTU EE
👨🏻🎓 Wei-Hsuan Cheng 程偉軒
Introduction to serial robots
Techman robot
Dual arm robot
D-H parameters [Pei-Chun Lin]
$$ \begin{align*}^{i-1}i T &= \text{Rot}(\hat{x}{i-1},\alpha_{i-1})\text{Trans}(\hat{x}i,a{i-1})\text{Trans}(\hat{z}{i},d_i)\text{Rot}(\hat{z}{i},\theta_i) \in SE(3) .\end{align*} $$
<aside> <img src="/icons/kind_blue.svg" alt="/icons/kind_blue.svg" width="40px" /> Definition Link parameters $(\alpha,a,d,\theta)$ in terms of the link frames assignment
Screw motion along $\hat{X}_{i-1}$-direction.
Screw motion along $\hat{Z}_{i}$-direction.
$(\alpha,\,a,\,\theta,\,d)\in \R^4$. </aside>
Link Twist $\alpha_{i-1}$
Link Length $|a_{i-1}|$
Link Offset $|d_i|$
Joint Angle $\theta_i$
Only the revolute joints are introduced in this text.
Traditional method (Homogeneous transformation $T_{4\times 4}$) [Pei-Chun Lin]
$$ \begin{align*}^{i-1}i T &= \text{Rot}(\hat{x}{i-1},\alpha_{i-1})\text{Trans}(\hat{x}i,a{i-1})\text{Trans}(\hat{z}{i},d_i)\text{Rot}(\hat{z}{i},\theta_i) \in SE(3) \\ &= \begin{bmatrix}\cos(\theta_i) & -\sin(\theta_i) & 0 & a_{i-1}\\ \sin(\theta_i)\cos(\alpha_{i-1}) & \cos(\theta_i)\cos(\alpha_{i-1}) & -\sin(\alpha_{i-1}) & -\sin(\alpha_{i-1}) d_i \\ \sin(\theta_i)\sin(\alpha_{i-1}) & \cos(\theta_i)\sin(\alpha_{i-1}) & \cos(\alpha_{i-1}) & \cos(\alpha_{i-1})d_i \\ 0 & 0 & 0 & 1\end{bmatrix}.\end{align*} $$
CGA method (By the use of CGA translator and rotors) [I. Zaplana, et al. 2022]
$$ \begin{align*} &R_{\alpha_{i-1}} = e^{-\frac{\alpha_{i-1}}{2}(\hat{y}{i-1}\wedge\hat{z}{i-1})} ,\\ &T_{a_{i-1}} = e^{-\frac{a_{i-1}}{2}(\hat{x}{i-1} \wedge e\infty)},\\ &T_{d_{i}} = e^{-\frac{d_i}{2}(\hat{z}{i} \wedge e\infty)},\\ &R_{\theta_{i}} = e^{-\frac{\theta{i}}{2}(\hat{x}{i}\wedge\hat{y}{i})}.\end{align*} $$
The two screw motions,
$$ \begin{align*} &M_{i-1}:=R_{\alpha_{i-1}} T_{a_{i-1}},\\ &M_i := T_{d_{i-1}}R_{\theta_{i-1}},\\ &^{i-1}i M = M{i-1}M_i.\end{align*} $$
<aside> <img src="/icons/kind_blue.svg" alt="/icons/kind_blue.svg" width="40px" /> Note
All the translators, rotors, and motors are of mixed-graded (grade-0 and graded-2).
</aside>
https://enkimute.github.io/ganja.js/examples/coffeeshop.html#gH2a025Og
$$ \underbrace{\text{Joint Space}}{\theta_i}\xrightleftharpoons[\text{IK},\,\theta=f^{-1}(^{\text{base}}{\text{end}}T)]{\text{FK},\ ^{\text{base}}{\text{end}}T = f(\theta)} \underbrace{\text{Cartesian Space}}{^{\text{base}_{\text{end}}T}} $$
https://enkimute.github.io/ganja.js/examples/coffeeshop.html#hphk0etX6
First, construct geometric entities and intersect them to solve for the desired null point positions,