Matematika Fondasi Robotika

Aljabar Linear untuk Robotika

Dokumentasi tutorial lengkap dan mendalam — dari vektor dasar hingga quaternion, Jacobian, dan kinematika robot. Referensi kurikulum Security Researcher Master Class.

Vektor & Matriks Transformasi Homogen Quaternion Jacobian SVD Kinematika Robot Kontrol Optimal Deep Learning
01

Pengantar & Notasi

Aljabar linear adalah bahasa universal robotika. Setiap posisi lengan robot, orientasi sensor, kecepatan end-effector, dan sinyal kontrol dinyatakan dalam bentuk vektor dan matriks. Pemahaman mendalam tentang struktur matematika ini adalah prasyarat mutlak sebelum mempelajari kinematika, dinamika, SLAM, maupun kontrol optimal.

📐
Ruang Lingkup Dokumen Tutorial ini mencakup aljabar linear dari tingkat fondasi hingga aplikasi lanjutan dalam robotika modern: manipulator, mobile robot, drone, dan sistem persepsi berbasis deep learning.

Notasi Standar

SimbolArtiContoh
a, b, x (huruf kecil italic)Skalar\(a = 3.14\)
v, u, p (bold lowercase)Vektor kolom\(\mathbf{v} \in \mathbb{R}^3\)
A, R, T (bold uppercase)Matriks\(\mathbf{A} \in \mathbb{R}^{m \times n}\)
\(\mathbf{v}^T\)Transpose vektor/matriks\([v_1, v_2, v_3]\)
\(\|\mathbf{v}\|\)Norma Euclidean vektor\(\|\mathbf{v}\|_2\)
\(\mathbf{I}_n\)Matriks identitas \(n \times n\)\(\mathbf{I}_3\)
\(\mathbf{A}^{-1}\)Invers matriks\(\mathbf{A}\mathbf{A}^{-1} = \mathbf{I}\)
\(\text{rank}(\mathbf{A})\)Rank matriksDimensi ruang kolom
\({}^A\mathbf{p}_B\)Vektor \(B\) dilihat dari frame \(A\)Notasi robotika
\({}^A_B\mathbf{R}\)Matriks rotasi dari \(B\) ke \(A\)\(3\times 3\) ortogonal

Sistem Koordinat dalam Robotika

Robot menggunakan multiple frames of reference secara simultan. Konvensi standar industri:

🌍
World Frame {W}
Frame global tetap. Semua posisi robot akhirnya dinyatakan relatif terhadap frame ini.
🤖
Base Frame {B}
Frame tetap di pangkal robot. Untuk manipulator, ini adalah titik mounting di lantai.
🔗
Link Frame {i}
Frame pada setiap link robot. Bergerak bersama link. Didefinisikan via konvensi Denavit-Hartenberg.
🎯
Tool Frame {T}
Frame di ujung end-effector (gripper, sensor, las). Target planning kinematika invers.
02

Vektor & Ruang Vektor

Definisi Vektor

Vektor adalah elemen dari ruang vektor \(\mathbb{R}^n\). Dalam robotika 3D, posisi dinyatakan sebagai vektor kolom:

Vektor posisi 3D $$\mathbf{p} = \begin{bmatrix} x \\ y \\ z \end{bmatrix} \in \mathbb{R}^3, \qquad \mathbf{v} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix} \in \mathbb{R}^n$$

Operasi Dasar Vektor

Penjumlahan dan Skalar

$$\mathbf{u} + \mathbf{v} = \begin{bmatrix} u_1 + v_1 \\ u_2 + v_2 \\ u_3 + v_3 \end{bmatrix}, \qquad c\mathbf{v} = \begin{bmatrix} cv_1 \\ cv_2 \\ cv_3 \end{bmatrix}$$

Aplikasi robotika: Superposisi kecepatan, penggabungan gaya/momen, interpolasi lintasan.

Dot Product (Produk Dalam)

Inner Product $$\mathbf{u} \cdot \mathbf{v} = \mathbf{u}^T\mathbf{v} = \sum_{i=1}^{n} u_i v_i = \|\mathbf{u}\|\|\mathbf{v}\|\cos\theta$$
🤖
Aplikasi: Deteksi Tabrakan Sudut antara dua vektor: \(\cos\theta = \dfrac{\mathbf{u}\cdot\mathbf{v}}{\|\mathbf{u}\|\|\mathbf{v}\|}\). Jika \(\theta = 0°\) (dot product maksimal), dua vektor normal sejajar — digunakan dalam algoritma GJK untuk deteksi collision robot.

Cross Product (Produk Silang)

Cross Product ℝ³ $$\mathbf{u} \times \mathbf{v} = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ u_1 & u_2 & u_3 \\ v_1 & v_2 & v_3 \end{vmatrix} = \begin{bmatrix} u_2 v_3 - u_3 v_2 \\ u_3 v_1 - u_1 v_3 \\ u_1 v_2 - u_2 v_1 \end{bmatrix}$$

Cross product menghasilkan vektor tegak lurus terhadap bidang \(\mathbf{u}\) dan \(\mathbf{v}\), dengan besar \(\|\mathbf{u}\|\|\mathbf{v}\|\sin\theta\).

⚙️
Aplikasi: Momen Torsi Torsi pada joint robot: \(\boldsymbol{\tau} = \mathbf{r} \times \mathbf{F}\), di mana \(\mathbf{r}\) adalah vektor posisi dari titik pivot ke titik aplikasi gaya. Cross product memberikan arah dan besar torsi sekaligus.

Norma Vektor

$$\|\mathbf{v}\|_1 = \sum_i |v_i|, \quad \|\mathbf{v}\|_2 = \sqrt{\sum_i v_i^2}, \quad \|\mathbf{v}\|_\infty = \max_i |v_i|, \quad \|\mathbf{v}\|_p = \left(\sum_i |v_i|^p\right)^{1/p}$$

Vektor unit: \(\hat{\mathbf{v}} = \dfrac{\mathbf{v}}{\|\mathbf{v}\|_2}\). Digunakan untuk menyatakan arah murni tanpa magnitude (sumbu rotasi, normal permukaan).

Kebebasan Linear & Basis

Set vektor \(\{\mathbf{v}_1, \ldots, \mathbf{v}_k\}\) bebas linear jika:

$$c_1\mathbf{v}_1 + c_2\mathbf{v}_2 + \cdots + c_k\mathbf{v}_k = \mathbf{0} \implies c_1 = c_2 = \cdots = c_k = 0$$

Basis standar \(\mathbb{R}^3\): \(\mathbf{e}_1 = [1,0,0]^T\), \(\mathbf{e}_2 = [0,1,0]^T\), \(\mathbf{e}_3 = [0,0,1]^T\). Sumbu X, Y, Z dalam koordinat robot.

Proyeksi Ortogonal

Proyeksi $$\text{proj}_{\mathbf{u}}\mathbf{v} = \frac{\mathbf{v}\cdot\mathbf{u}}{\mathbf{u}\cdot\mathbf{u}}\,\mathbf{u} = \frac{\mathbf{v}^T\mathbf{u}}{\|\mathbf{u}\|^2}\,\mathbf{u}$$

Aplikasi: Dekomposisi kecepatan end-effector menjadi komponen tangensial dan normal terhadap constraint surface.

03

Matriks & Operasi

Definisi Matriks

Matriks \(\mathbf{A} \in \mathbb{R}^{m \times n}\) adalah array bilangan dengan \(m\) baris dan \(n\) kolom:

$$\mathbf{A} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}$$

Perkalian Matriks

Untuk \(\mathbf{A} \in \mathbb{R}^{m \times k}\) dan \(\mathbf{B} \in \mathbb{R}^{k \times n}\), hasil \(\mathbf{C} = \mathbf{A}\mathbf{B} \in \mathbb{R}^{m \times n}\):

Matrix multiplication $$c_{ij} = \sum_{l=1}^{k} a_{il}\, b_{lj} = \mathbf{a}_i^T \mathbf{b}_j$$
⚠️
Non-Komutatif! Umumnya \(\mathbf{A}\mathbf{B} \neq \mathbf{B}\mathbf{A}\). Ini kritis dalam robotika: urutan transformasi matriks rotasi menentukan orientasi akhir yang berbeda. \(R_z R_y R_x \neq R_x R_y R_z\).

Jenis-Jenis Matriks Penting dalam Robotika

JenisDefinisiPropertiPenggunaan
Identitas \(\mathbf{I}\)\(i_{ij} = 1\) if \(i=j\), else \(0\)\(\mathbf{A}\mathbf{I} = \mathbf{I}\mathbf{A} = \mathbf{A}\)Elemen netral perkalian
Simetri\(\mathbf{A} = \mathbf{A}^T\)Eigenvalue real semuaInertia tensor, covariance
Anti-simetri (skew)\(\mathbf{A} = -\mathbf{A}^T\)Diagonal nolMatriks cross product \([\boldsymbol{\omega}]_\times\)
Ortogonal\(\mathbf{Q}^T\mathbf{Q} = \mathbf{I}\)\(\mathbf{Q}^{-1} = \mathbf{Q}^T\), \(\det = \pm 1\)Matriks rotasi
Diagonal\(a_{ij} = 0\) for \(i \neq j\)Mudah diinversScaling, inertia diagonal
Positif Definit (SPD)\(\mathbf{x}^T\mathbf{A}\mathbf{x} > 0\)Eigenvalue positif semuaInertia, Hessian, covariance
SparseKebanyakan entri nolKomputasi efisienJacobian robot besar, SLAM

Matriks Skew-Symmetric (Cross Product Matrix)

Sangat penting dalam robotika untuk menyatakan angular velocity dan cross product sebagai operasi matriks:

Skew-Symmetric Operator $$[\boldsymbol{\omega}]_\times = \begin{bmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{bmatrix}, \quad \text{sehingga} \quad \boldsymbol{\omega} \times \mathbf{v} = [\boldsymbol{\omega}]_\times \mathbf{v}$$

Transpose

$$(\mathbf{A}^T)_{ij} = A_{ji}, \qquad (\mathbf{AB})^T = \mathbf{B}^T\mathbf{A}^T, \qquad (\mathbf{ABC})^T = \mathbf{C}^T\mathbf{B}^T\mathbf{A}^T$$

Kritis: Untuk matriks rotasi ortogonal, \(\mathbf{R}^{-1} = \mathbf{R}^T\) — invers gratis tanpa Gauss-Jordan!

04

Determinan & Invers Matriks

Determinan

Determinan adalah skalar yang mengukur "faktor skala volume" dari transformasi linear:

$$\det(\mathbf{A}_{2\times 2}) = ad - bc, \qquad \det\begin{bmatrix}a&b\\c&d\end{bmatrix} = ad - bc$$
Ekspansi Laplace $$\det(\mathbf{A}_{3\times 3}) = a_{11}(a_{22}a_{33} - a_{23}a_{32}) - a_{12}(a_{21}a_{33} - a_{23}a_{31}) + a_{13}(a_{21}a_{32} - a_{22}a_{31})$$
💡
Interpretasi Geometri \(|\det(\mathbf{A})|\) = volume parallelotope yang dibentuk oleh kolom-kolom \(\mathbf{A}\). Jika \(\det = 0\): matriks singular (tidak bisa diinvers, rank deficient). Untuk matriks rotasi: \(\det(\mathbf{R}) = +1\) selalu.

Invers Matriks

$$\mathbf{A}^{-1} = \frac{1}{\det(\mathbf{A})}\, \text{adj}(\mathbf{A}), \qquad \text{adj}(\mathbf{A})_{ij} = (-1)^{i+j} M_{ji}$$

di mana \(M_{ji}\) adalah minor (determinan submatriks dengan baris \(j\) dan kolom \(i\) dihapus).

Dalam praktik komputasi, invers dihitung via dekomposisi LU (jauh lebih efisien dari formula analitik).

Pseudo-Inverse (Moore-Penrose)

Untuk matriks non-persegi (matriks Jacobian robot sering \(6 \times n\) dengan \(n \neq 6\)):

Moore-Penrose Pseudoinverse $$\mathbf{A}^+ = \mathbf{V}\boldsymbol{\Sigma}^+\mathbf{U}^T \quad \text{(via SVD)}$$ $$\text{Overdetermined } (m > n): \quad \mathbf{A}^+ = (\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T$$ $$\text{Underdetermined } (m < n): \quad \mathbf{A}^+ = \mathbf{A}^T(\mathbf{A}\mathbf{A}^T)^{-1}$$
🦾
Aplikasi: Inverse Kinematics Robot 7-DOF memiliki Jacobian \(6 \times 7\) (underdetermined). Pseudo-inverse memberikan solusi minimum-norm: \(\dot{\mathbf{q}} = \mathbf{J}^+\dot{\mathbf{x}}\). Konfigurasi sendi bergerak seminimal mungkin untuk mencapai kecepatan end-effector yang diinginkan.
05

Transformasi Linear

Definisi Formal

Fungsi \(T: \mathbb{R}^n \to \mathbb{R}^m\) adalah transformasi linear jika:

$$T(\mathbf{u} + \mathbf{v}) = T(\mathbf{u}) + T(\mathbf{v}), \qquad T(c\mathbf{v}) = c\,T(\mathbf{v})$$

Setiap transformasi linear dapat dinyatakan sebagai perkalian matriks: \(T(\mathbf{x}) = \mathbf{A}\mathbf{x}\).

Empat Ruang Fundamental (Four Fundamental Subspaces)

Untuk matriks \(\mathbf{A} \in \mathbb{R}^{m \times n}\) dengan \(\text{rank}(A) = r\):

RuangDefinisiDimensiRelevansi Robot
Column Space \(C(\mathbf{A})\)Semua \(\mathbf{A}\mathbf{x}\) untuk \(\mathbf{x} \in \mathbb{R}^n\)\(r\)Kecepatan Cartesian yang bisa dicapai
Null Space \(N(\mathbf{A})\)\(\mathbf{A}\mathbf{x} = \mathbf{0}\)\(n - r\)Gerak sendi yang tidak menggerakkan end-effector (null-space motion)
Row Space \(C(\mathbf{A}^T)\)Semua kombinasi baris \(\mathbf{A}\)\(r\)Gaya Cartesian yang bisa ditransmisikan
Left Null Space \(N(\mathbf{A}^T)\)\(\mathbf{A}^T\mathbf{y} = \mathbf{0}\)\(m - r\)Gaya yang tidak bisa dilawan (robot singular)
🔧
Null Space Motion dalam Redundant Robot Robot 7-DOF (KUKA iiwa, Franka Panda) memiliki null space 1-dimensi. Gerak dalam null space memungkinkan robot menghindari rintangan atau singularitas tanpa mengubah pose end-effector: \(\dot{\mathbf{q}} = \mathbf{J}^+\dot{\mathbf{x}} + (\mathbf{I} - \mathbf{J}^+\mathbf{J})\dot{\mathbf{q}}_0\).
06

Rotasi 2D & 3D

Rotasi 2D

Rotation Matrix 2D $$\mathbf{R}(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}, \qquad \mathbf{R}^{-1}(\theta) = \mathbf{R}(-\theta) = \mathbf{R}^T(\theta)$$

Rotasi 3D — Sumbu Koordinat

Rotasi Elementar $$\mathbf{R}_x(\alpha) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\alpha & -\sin\alpha \\ 0 & \sin\alpha & \cos\alpha \end{bmatrix}, \quad \mathbf{R}_y(\beta) = \begin{bmatrix} \cos\beta & 0 & \sin\beta \\ 0 & 1 & 0 \\ -\sin\beta & 0 & \cos\beta \end{bmatrix}$$ $$\mathbf{R}_z(\gamma) = \begin{bmatrix} \cos\gamma & -\sin\gamma & 0 \\ \sin\gamma & \cos\gamma & 0 \\ 0 & 0 & 1 \end{bmatrix}$$

Rotasi Sumbu Arbitrer (Rodrigues' Rotation Formula)

Rotasi sebesar \(\theta\) di sekitar sumbu satuan \(\hat{\mathbf{k}} = [k_x, k_y, k_z]^T\):

Rodrigues Formula $$\mathbf{R}(\hat{\mathbf{k}}, \theta) = \cos\theta\,\mathbf{I} + (1-\cos\theta)\,\hat{\mathbf{k}}\hat{\mathbf{k}}^T + \sin\theta\,[\hat{\mathbf{k}}]_\times$$

di mana \([\hat{\mathbf{k}}]_\times\) adalah matriks skew-symmetric dari \(\hat{\mathbf{k}}\).

Properti Matriks Rotasi

$$\mathbf{R} \in SO(3) \Leftrightarrow \mathbf{R}^T\mathbf{R} = \mathbf{I}, \quad \det(\mathbf{R}) = +1$$

\(SO(3)\) adalah Special Orthogonal Group — grup Lie yang menjadi fondasi orientasi 3D dalam robotika. Setiap orientasi 3D valid adalah elemen \(SO(3)\).

⚠️
Komposisi Rotasi Rotasi berurutan: \({}^A_C\mathbf{R} = {}^A_B\mathbf{R}\, {}^B_C\mathbf{R}\). Perhatikan urutan! Rotasi post-multiply (relative to current frame) vs pre-multiply (relative to fixed frame) menghasilkan orientasi akhir yang berbeda.
07

Koordinat Homogen & Matriks Transformasi

Motivasi

Rotasi adalah transformasi linear (bisa dinyatakan sebagai matriks). Namun translasi bukan transformasi linear — ia tidak bisa dinyatakan sebagai perkalian matriks \(3 \times 3\). Solusi: augment ke dimensi-4 menggunakan koordinat homogen.

Koordinat Homogen

Homogeneous Coordinates $$\tilde{\mathbf{p}} = \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} \in \mathbb{R}^4 \quad \text{(titik)}, \qquad \tilde{\mathbf{v}} = \begin{bmatrix} v_x \\ v_y \\ v_z \\ 0 \end{bmatrix} \in \mathbb{R}^4 \quad \text{(vektor/arah)}$$

Komponen keempat \(w=1\) untuk titik (terpengaruh translasi), \(w=0\) untuk vektor (tidak terpengaruh translasi) — elegan secara matematis!

Matriks Transformasi Homogen (HTM)

Homogeneous Transformation Matrix $$\mathbf{T} = \begin{bmatrix} \mathbf{R}_{3\times 3} & \mathbf{p}_{3\times 1} \\ \mathbf{0}_{1\times 3} & 1 \end{bmatrix} \in SE(3), \qquad \mathbf{T}^{-1} = \begin{bmatrix} \mathbf{R}^T & -\mathbf{R}^T\mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix}$$

\(SE(3)\) adalah Special Euclidean Group — grup transformasi rigid body 3D (rotasi + translasi).

Contoh: Transformasi Frame Kamera → Robot

Example HTM $${}^W_C\mathbf{T} = \begin{bmatrix} 0 & 0 & 1 & 0.5 \\ -1 & 0 & 0 & 0.3 \\ 0 & -1 & 0 & 1.2 \\ 0 & 0 & 0 & 1 \end{bmatrix}$$

Kolom 1–3 adalah matriks rotasi \(\mathbf{R}\), kolom 4 adalah posisi origin kamera dalam frame world \([0.5, 0.3, 1.2]^T\) meter.

Komposisi Transformasi

$${}^A_C\mathbf{T} = {}^A_B\mathbf{T}\, {}^B_C\mathbf{T}, \qquad {}^A\mathbf{p} = {}^A_B\mathbf{T}\, {}^B\mathbf{p}$$
🦿
Rantai Kinematika Robot Posisi end-effector dalam world frame: \({}^W\mathbf{p}_{EE} = {}^W_0\mathbf{T}\, {}^0_1\mathbf{T}\, {}^1_2\mathbf{T}\, \cdots\, {}^{n-1}_n\mathbf{T}\, {}^n\mathbf{p}_{EE}\). Setiap \({}^{i-1}_i\mathbf{T}\) adalah HTM joint ke-\(i\), dihitung via parameter Denavit-Hartenberg.
08

Sudut Euler & Representasi RPY

Sudut Euler ZYX (Yaw-Pitch-Roll)

Representasi orientasi paling umum dalam robotika dan drone. Tiga rotasi berurutan:

ZYX Euler (Aerospace Convention) $$\mathbf{R}_{ZYX}(\psi, \theta, \phi) = \mathbf{R}_z(\psi)\,\mathbf{R}_y(\theta)\,\mathbf{R}_x(\phi)$$ $$= \begin{bmatrix} c_\psi c_\theta & c_\psi s_\theta s_\phi - s_\psi c_\phi & c_\psi s_\theta c_\phi + s_\psi s_\phi \\ s_\psi c_\theta & s_\psi s_\theta s_\phi + c_\psi c_\phi & s_\psi s_\theta c_\phi - c_\psi s_\phi \\ -s_\theta & c_\theta s_\phi & c_\theta c_\phi \end{bmatrix}$$

di mana \(c_\alpha = \cos\alpha\), \(s_\alpha = \sin\alpha\).

⚠️
Gimbal Lock! Sudut Euler memiliki singularitas gimbal lock ketika \(\theta = \pm 90°\): dua derajat kebebasan menjadi satu — hilang satu DOF orientasi. Untuk drone dalam manuver akrobatik atau robot saat orientasi arbitrer, ini berbahaya. Solusi: gunakan quaternion.

Invers: Matriks Rotasi → Sudut Euler

Extraction dari R $$\psi = \text{atan2}(r_{21}, r_{11}), \quad \theta = \text{atan2}(-r_{31}, \sqrt{r_{32}^2 + r_{33}^2}), \quad \phi = \text{atan2}(r_{32}, r_{33})$$

Selalu gunakan atan2(y, x) (dua argumen) bukan atan(y/x) untuk mendapatkan kuadran yang benar.

Konvensi Lain

KonvensiUrutanDigunakan di
ZYX (Tait-Bryan)Yaw → Pitch → RollAerospace, drone, ROS
ZYZ (Euler proper)Precession → Nutation → SpinMekanika klasik, robot industri
XYZ (RPY)Roll → Pitch → YawMarine, beberapa robotika
ZXZMekanika kuantum, kristalografi
09

Quaternion

Definisi

Quaternion adalah ekstensi bilangan kompleks ke dimensi-4, diperkenalkan Hamilton (1843). Dalam robotika, unit quaternion merepresentasikan rotasi 3D tanpa gimbal lock:

Unit Quaternion $$\mathbf{q} = w + x\mathbf{i} + y\mathbf{j} + z\mathbf{k} = \begin{bmatrix} w \\ \mathbf{v} \end{bmatrix}, \quad \mathbf{v} = \begin{bmatrix} x \\ y \\ z \end{bmatrix}$$ $$\text{Unit quaternion: } \|\mathbf{q}\| = \sqrt{w^2 + x^2 + y^2 + z^2} = 1$$

Aturan perkalian basis: \(\mathbf{i}^2 = \mathbf{j}^2 = \mathbf{k}^2 = \mathbf{ijk} = -1\), \(\mathbf{ij} = \mathbf{k}\), \(\mathbf{jk} = \mathbf{i}\), \(\mathbf{ki} = \mathbf{j}\).

Quaternion ↔ Axis-Angle

Konversi Axis-Angle $$\mathbf{q} = \begin{bmatrix} \cos(\theta/2) \\ \hat{\mathbf{k}}\sin(\theta/2) \end{bmatrix} = \begin{bmatrix} \cos(\theta/2) \\ k_x\sin(\theta/2) \\ k_y\sin(\theta/2) \\ k_z\sin(\theta/2) \end{bmatrix}$$

Perkalian Quaternion

Hamilton Product $$\mathbf{q}_1 \otimes \mathbf{q}_2 = \begin{bmatrix} w_1 w_2 - \mathbf{v}_1 \cdot \mathbf{v}_2 \\ w_1 \mathbf{v}_2 + w_2 \mathbf{v}_1 + \mathbf{v}_1 \times \mathbf{v}_2 \end{bmatrix}$$

Rotasi Vektor dengan Quaternion

Quaternion Rotation $$\mathbf{p}' = \mathbf{q} \otimes \mathbf{p} \otimes \mathbf{q}^* , \quad \text{di mana } \mathbf{p} = \begin{bmatrix}0 \\ \mathbf{v}\end{bmatrix}, \quad \mathbf{q}^* = \begin{bmatrix}w \\ -\mathbf{v}\end{bmatrix}$$

Quaternion → Matriks Rotasi

$$\mathbf{R}(\mathbf{q}) = \begin{bmatrix} 1-2(y^2+z^2) & 2(xy-wz) & 2(xz+wy) \\ 2(xy+wz) & 1-2(x^2+z^2) & 2(yz-wx) \\ 2(xz-wy) & 2(yz+wx) & 1-2(x^2+y^2) \end{bmatrix}$$

SLERP — Spherical Linear Interpolation

Interpolasi rotasi yang smooth di permukaan unit sphere \(S^3\):

SLERP $$\text{slerp}(\mathbf{q}_0, \mathbf{q}_1, t) = \mathbf{q}_0 \left(\mathbf{q}_0^{-1} \mathbf{q}_1\right)^t = \frac{\sin((1-t)\Omega)}{\sin\Omega}\mathbf{q}_0 + \frac{\sin(t\Omega)}{\sin\Omega}\mathbf{q}_1$$ $$\text{di mana } \cos\Omega = \mathbf{q}_0 \cdot \mathbf{q}_1$$
Kapan Pakai Quaternion? Selalu gunakan quaternion untuk: interpolasi orientasi smooth, filter orientasi (EKF, Madgwick), penghindaran gimbal lock, performa komputasi (16 mult + 12 add vs 27 mult matriks), dan aplikasi real-time (drone, legged robot, manipulator dengan workspace penuh).
10

Eigenvalue & Eigenvector

Definisi

Vektor \(\mathbf{v} \neq \mathbf{0}\) adalah eigenvector dari \(\mathbf{A}\) dengan eigenvalue \(\lambda\) jika:

$$\mathbf{A}\mathbf{v} = \lambda\mathbf{v} \quad \Leftrightarrow \quad (\mathbf{A} - \lambda\mathbf{I})\mathbf{v} = \mathbf{0}$$ $$\text{Characteristic equation: } \det(\mathbf{A} - \lambda\mathbf{I}) = 0$$

Dekomposisi Eigen (Eigendecomposition)

Eigendecomposition $$\mathbf{A} = \mathbf{Q}\boldsymbol{\Lambda}\mathbf{Q}^{-1}, \quad \boldsymbol{\Lambda} = \text{diag}(\lambda_1, \ldots, \lambda_n), \quad \mathbf{Q} = [\mathbf{v}_1, \ldots, \mathbf{v}_n]$$

Untuk matriks simetris \(\mathbf{A} = \mathbf{A}^T\): eigenvalue selalu real, eigenvectors saling ortogonal → \(\mathbf{A} = \mathbf{Q}\boldsymbol{\Lambda}\mathbf{Q}^T\) (spectral theorem).

Aplikasi dalam Robotika

⚖️
Inertia Tensor
Eigenvalue inertia tensor adalah principal moments of inertia. Eigenvectors adalah sumbu-sumbu inersia utama — memudahkan analisis dinamika rotasi.
📊
Analisis PCA
Principal Component Analysis di point cloud 3D: eigenvektor matriks kovarians memberikan arah variasi maksimal — berguna untuk estimasi normal surface dan segmentasi objek.
🔄
Stabilitas Sistem
Sistem dinamis \(\dot{\mathbf{x}} = \mathbf{A}\mathbf{x}\) stabil jika semua eigenvalue \(\mathbf{A}\) memiliki bagian real negatif (Re\((\lambda_i) < 0\)).
🎯
Manipulability
Eigenvalue dari \(\mathbf{J}\mathbf{J}^T\) mengukur kemudahan gerak robot di berbagai arah. Singularitas terjadi saat eigenvalue minimum mendekati nol.
11

Singular Value Decomposition (SVD)

Teorema SVD

Setiap matriks \(\mathbf{A} \in \mathbb{R}^{m \times n}\) dapat didekomposisi:

SVD Theorem $$\mathbf{A} = \mathbf{U}\boldsymbol{\Sigma}\mathbf{V}^T$$ $$\mathbf{U} \in \mathbb{R}^{m\times m} \text{ ortogonal}, \quad \boldsymbol{\Sigma} \in \mathbb{R}^{m\times n} \text{ diagonal}, \quad \mathbf{V} \in \mathbb{R}^{n\times n} \text{ ortogonal}$$ $$\boldsymbol{\Sigma} = \text{diag}(\sigma_1, \sigma_2, \ldots, \sigma_r, 0, \ldots), \quad \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0$$

\(\sigma_i\) adalah singular values. Kolom \(\mathbf{U}\) adalah left singular vectors, kolom \(\mathbf{V}\) adalah right singular vectors.

Interpretasi Geometri

SVD mendekomposisi transformasi linear sembarang menjadi: rotasi (\(\mathbf{V}^T\)) → stretching (\(\boldsymbol{\Sigma}\)) → rotasi (\(\mathbf{U}\)). Ini cara paling fundamental memahami apa yang dilakukan sebuah transformasi.

Low-Rank Approximation

Eckart-Young Theorem $$\mathbf{A}_k = \sum_{i=1}^{k} \sigma_i \mathbf{u}_i \mathbf{v}_i^T = \mathbf{U}_k\boldsymbol{\Sigma}_k\mathbf{V}_k^T$$ $$\|\mathbf{A} - \mathbf{A}_k\|_F = \sqrt{\sum_{i=k+1}^{r}\sigma_i^2} \quad \text{(minimum)}$$

Kondisi Matriks & Singularitas Robot

$$\kappa(\mathbf{A}) = \frac{\sigma_{\max}}{\sigma_{\min}} = \text{condition number}$$

Manipulability ellipsoid robot: sumbu-sumbu ellipsoid adalah singular vectors \(\mathbf{U}\), panjang sumbu adalah singular values \(\boldsymbol{\sigma}\). Robot mendekati singularitas ketika \(\sigma_{\min} \to 0\) (kondisi \(\kappa \to \infty\)).

🔬
Pseudo-inverse via SVD \(\mathbf{A}^+ = \mathbf{V}\boldsymbol{\Sigma}^+\mathbf{U}^T\), di mana \(\boldsymbol{\Sigma}^+ = \text{diag}(1/\sigma_1, \ldots, 1/\sigma_r, 0, \ldots)\). Untuk mencegah instabilitas saat \(\sigma_i\) kecil: gunakan Damped Least Squares (DLS) — \(\mathbf{A}^+_{DLS} = \mathbf{A}^T(\mathbf{A}\mathbf{A}^T + \lambda^2\mathbf{I})^{-1}\) dengan \(\lambda\) sebagai damping factor.
12

Jacobian Matrix Robot

Definisi Jacobian

Jacobian \(\mathbf{J}(\mathbf{q}) \in \mathbb{R}^{6 \times n}\) memetakan kecepatan sendi ke kecepatan end-effector:

Velocity Mapping $$\dot{\mathbf{x}} = \mathbf{J}(\mathbf{q})\,\dot{\mathbf{q}}, \qquad \dot{\mathbf{x}} = \begin{bmatrix}\dot{\mathbf{p}} \\ \boldsymbol{\omega}\end{bmatrix} \in \mathbb{R}^6, \quad \dot{\mathbf{q}} \in \mathbb{R}^n$$ $$J_{ij} = \frac{\partial x_i}{\partial q_j}$$

Jacobian Geometrik

Dihitung dari forward kinematics. Untuk setiap joint \(j\):

Geometric Jacobian Columns $$\text{Revolute joint: } \mathbf{J}_j = \begin{bmatrix} \hat{\mathbf{z}}_j \times (\mathbf{p}_e - \mathbf{p}_j) \\ \hat{\mathbf{z}}_j \end{bmatrix}, \quad \text{Prismatic: } \mathbf{J}_j = \begin{bmatrix} \hat{\mathbf{z}}_j \\ \mathbf{0} \end{bmatrix}$$

di mana \(\hat{\mathbf{z}}_j\) adalah sumbu rotasi joint ke-\(j\) dan \(\mathbf{p}_e - \mathbf{p}_j\) adalah vektor dari joint \(j\) ke end-effector.

Static Force/Torque Duality

Force Duality (Virtual Work) $$\boldsymbol{\tau} = \mathbf{J}^T(\mathbf{q})\,\mathbf{F}_{ext}$$

Prinsip virtual work: torsi sendi yang diperlukan untuk melawan gaya eksternal di end-effector = transpose Jacobian kali gaya. Ini fondasi torque control dan impedance control.

Analisis Singularitas via Jacobian

$$\text{Singularitas: } \det(\mathbf{J}\mathbf{J}^T) = 0 \quad \text{atau} \quad \text{rank}(\mathbf{J}) < 6$$ $$\text{Manipulability index: } w = \sqrt{\det(\mathbf{J}\mathbf{J}^T)} = \prod_{i=1}^{r}\sigma_i$$
13

Forward & Inverse Kinematics

Denavit-Hartenberg (DH) Parameters

Konvensi standar untuk parameterisasi rantai kinematika. Setiap joint ke-\(i\) didefinisikan oleh 4 parameter:

ParameterSimbolArtiTipe
Link length\(a_i\)Jarak antara \(z_{i-1}\) dan \(z_i\) sepanjang \(x_i\)Konstanta
Link twist\(\alpha_i\)Sudut antara \(z_{i-1}\) dan \(z_i\) sekitar \(x_i\)Konstanta
Link offset\(d_i\)Jarak antara \(x_{i-1}\) dan \(x_i\) sepanjang \(z_{i-1}\)Variabel (prismatic)
Joint angle\(\theta_i\)Sudut antara \(x_{i-1}\) dan \(x_i\) sekitar \(z_{i-1}\)Variabel (revolute)

DH Transformation Matrix

DH Homogeneous Transform $${}^{i-1}_i\mathbf{T} = \mathbf{R}_z(\theta_i)\,\mathbf{T}_z(d_i)\,\mathbf{T}_x(a_i)\,\mathbf{R}_x(\alpha_i)$$ $$= \begin{bmatrix} c_\theta & -s_\theta c_\alpha & s_\theta s_\alpha & a c_\theta \\ s_\theta & c_\theta c_\alpha & -c_\theta s_\alpha & a s_\theta \\ 0 & s_\alpha & c_\alpha & d \\ 0 & 0 & 0 & 1 \end{bmatrix}$$

Forward Kinematics (FK)

$${}^0_n\mathbf{T}(\mathbf{q}) = {}^0_1\mathbf{T}(q_1)\, {}^1_2\mathbf{T}(q_2)\, \cdots\, {}^{n-1}_n\mathbf{T}(q_n)$$

FK selalu unik dan efisien (\(\mathcal{O}(n)\) HTM perkalian). Hasil: pose end-effector \(\mathbf{T} = [\mathbf{R} | \mathbf{p}]\) dalam frame base.

Inverse Kinematics (IK)

Diberikan pose target \(\mathbf{T}_d\), cari konfigurasi sendi \(\mathbf{q}\) yang memenuhi \(FK(\mathbf{q}) = \mathbf{T}_d\). Jauh lebih sulit dari FK!

Solusi Numerik: Jacobian Iteratif

Newton-Raphson IK $$\mathbf{q}_{k+1} = \mathbf{q}_k + \mathbf{J}^+(\mathbf{q}_k)\,\mathbf{e}_k, \quad \mathbf{e}_k = \mathbf{x}_d - FK(\mathbf{q}_k)$$

Dengan error pose \(\mathbf{e}_k \in \mathbb{R}^6\) (translasi + rotasi). Konvergen saat \(\|\mathbf{e}_k\| < \epsilon\).

IK Analitik (untuk robot standar)

Robot 6-DOF dengan pergelangan spherical (3 joint terakhir berpotongan di satu titik) memiliki solusi IK tertutup. Contoh: PUMA 560, UR5/UR10 — maksimum 8 konfigurasi berbeda.

14

Least Squares & Optimasi

Least Squares Problem

Minimasi residual untuk sistem overdetermined \(\mathbf{A}\mathbf{x} = \mathbf{b}\) (lebih banyak persamaan dari variabel):

Ordinary Least Squares $$\min_{\mathbf{x}} \|\mathbf{A}\mathbf{x} - \mathbf{b}\|_2^2 \quad \Rightarrow \quad \mathbf{x}^* = (\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{b} = \mathbf{A}^+\mathbf{b}$$

Normal equations: \(\mathbf{A}^T\mathbf{A}\mathbf{x} = \mathbf{A}^T\mathbf{b}\).

Weighted Least Squares

$$\min_{\mathbf{x}} \|\mathbf{W}^{1/2}(\mathbf{A}\mathbf{x} - \mathbf{b})\|_2^2 \quad \Rightarrow \quad \mathbf{x}^* = (\mathbf{A}^T\mathbf{W}\mathbf{A})^{-1}\mathbf{A}^T\mathbf{W}\mathbf{b}$$

Regularisasi Tikhonov (Ridge Regression)

$$\min_{\mathbf{x}} \|\mathbf{A}\mathbf{x} - \mathbf{b}\|_2^2 + \lambda\|\mathbf{x}\|_2^2 \quad \Rightarrow \quad \mathbf{x}^* = (\mathbf{A}^T\mathbf{A} + \lambda\mathbf{I})^{-1}\mathbf{A}^T\mathbf{b}$$

Regularisasi \(\lambda > 0\) mencegah solusi blow-up saat \(\mathbf{A}\) near-singular. Ini basis Damped Least Squares IK.

Aplikasi: Robot Calibration

Kalibrasi kinematika robot: diberikan \(N\) pengukuran pose, cari koreksi parameter DH \(\Delta\mathbf{p}\) yang meminimasi error:

$$\min_{\Delta\mathbf{p}} \sum_{k=1}^{N} \|\mathbf{J}_k \Delta\mathbf{p} - \mathbf{e}_k\|_2^2 \quad \Rightarrow \quad \Delta\mathbf{p} = (\mathbf{J}_{stack}^T\mathbf{J}_{stack})^{-1}\mathbf{J}_{stack}^T\mathbf{e}_{stack}$$
15

State Space & Kontrol Linear

Representasi State Space

Model sistem dinamis robot yang dilinearisasi di sekitar titik kerja:

Linear State Space Model $$\dot{\mathbf{x}} = \mathbf{A}\mathbf{x} + \mathbf{B}\mathbf{u}$$ $$\mathbf{y} = \mathbf{C}\mathbf{x} + \mathbf{D}\mathbf{u}$$ $$\mathbf{x} \in \mathbb{R}^n \text{ (state)}, \quad \mathbf{u} \in \mathbb{R}^m \text{ (input)}, \quad \mathbf{y} \in \mathbb{R}^p \text{ (output)}$$

Controllability & Observability

$$\mathbf{C}_{ctrl} = \begin{bmatrix}\mathbf{B} & \mathbf{AB} & \mathbf{A}^2\mathbf{B} & \cdots & \mathbf{A}^{n-1}\mathbf{B}\end{bmatrix}$$ $$\text{Fully controllable} \Leftrightarrow \text{rank}(\mathbf{C}_{ctrl}) = n$$
$$\mathbf{O} = \begin{bmatrix}\mathbf{C} \\ \mathbf{CA} \\ \mathbf{CA}^2 \\ \vdots \\ \mathbf{CA}^{n-1}\end{bmatrix}$$ $$\text{Fully observable} \Leftrightarrow \text{rank}(\mathbf{O}) = n$$

LQR — Linear Quadratic Regulator

Optimal control: minimasi cost function quadratic:

LQR Cost Function $$J = \int_0^\infty \left(\mathbf{x}^T\mathbf{Q}\mathbf{x} + \mathbf{u}^T\mathbf{R}\mathbf{u}\right)dt$$ $$\mathbf{u}^* = -\mathbf{K}\mathbf{x}, \quad \mathbf{K} = \mathbf{R}^{-1}\mathbf{B}^T\mathbf{P}$$ $$\text{CARE: } \mathbf{A}^T\mathbf{P} + \mathbf{P}\mathbf{A} - \mathbf{P}\mathbf{B}\mathbf{R}^{-1}\mathbf{B}^T\mathbf{P} + \mathbf{Q} = \mathbf{0}$$

CARE = Continuous Algebraic Riccati Equation. Solusinya \(\mathbf{P}\) adalah SPD matrix — memberikan gain kontrol optimal \(\mathbf{K}\).

Kalman Filter

Kalman Update Equations $$\text{Predict: } \hat{\mathbf{x}}_{k|k-1} = \mathbf{A}\hat{\mathbf{x}}_{k-1}, \quad \mathbf{P}_{k|k-1} = \mathbf{A}\mathbf{P}_{k-1}\mathbf{A}^T + \mathbf{Q}$$ $$\text{Gain: } \mathbf{K}_k = \mathbf{P}_{k|k-1}\mathbf{C}^T(\mathbf{C}\mathbf{P}_{k|k-1}\mathbf{C}^T + \mathbf{R})^{-1}$$ $$\text{Update: } \hat{\mathbf{x}}_k = \hat{\mathbf{x}}_{k|k-1} + \mathbf{K}_k(\mathbf{y}_k - \mathbf{C}\hat{\mathbf{x}}_{k|k-1})$$

Kalman filter = estimator linier optimal (minimum variance). Esensial untuk sensor fusion IMU+GPS, odometry, SLAM.

16

Aljabar Linear dalam Deep Learning

Forward Pass sebagai Operasi Matriks

Layer Fully Connected $$\mathbf{z}^{(l)} = \mathbf{W}^{(l)}\mathbf{a}^{(l-1)} + \mathbf{b}^{(l)}, \quad \mathbf{a}^{(l)} = \sigma(\mathbf{z}^{(l)})$$

Batch forward pass untuk \(N\) sampel sekaligus: \(\mathbf{Z} = \mathbf{W}\mathbf{A} + \mathbf{b}\mathbf{1}^T\) — satu operasi GEMM (General Matrix-Matrix Multiply) yang dioptimalkan di GPU.

Backpropagation & Jacobian

$$\frac{\partial \mathcal{L}}{\partial \mathbf{W}^{(l)}} = \frac{\partial \mathcal{L}}{\partial \mathbf{z}^{(l)}} \left(\mathbf{a}^{(l-1)}\right)^T = \boldsymbol{\delta}^{(l)}\left(\mathbf{a}^{(l-1)}\right)^T$$ $$\boldsymbol{\delta}^{(l)} = \left(\mathbf{W}^{(l+1)}\right)^T \boldsymbol{\delta}^{(l+1)} \odot \sigma'(\mathbf{z}^{(l)})$$

Attention Mechanism (Transformer)

Scaled Dot-Product Attention $$\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}\right)\mathbf{V}$$

Sepenuhnya operasi matriks: \(\mathbf{Q}\mathbf{K}^T\) adalah dot-product similarity, \(\sqrt{d_k}\) adalah normalisasi untuk stabilitas numerik, softmax adalah normalisasi baris, dikali \(\mathbf{V}\) untuk weighted sum.

Konvolusi sebagai Matriks Toeplitz

Konvolusi 1D \((f * g)[n]\) ekivalen dengan perkalian matriks Toeplitz (banded). Konvolusi 2D (CNN) ekivalen dengan doubly block circulant matrix multiplication — ini mengapa CNN dapat diimplementasikan via FFT.

Tensorisasi dalam Robotics ML

$$\text{Point cloud: } \mathbf{X} \in \mathbb{R}^{N \times 3}, \quad \text{Feature: } \mathbf{F} \in \mathbb{R}^{N \times C}$$ $$\text{PointNet global: } \mathbf{f}_{global} = \text{MaxPool}(\{\mathbf{MLP}(\mathbf{x}_i)\}_{i=1}^N) \in \mathbb{R}^C$$
17

Implementasi Python — NumPy & SciPy

Setup & Dasar

Pythonimport numpy as np
import scipy.linalg as la
from scipy.spatial.transform import Rotation

# Vektor dan matriks dasar
v = np.array([1.0, 2.0, 3.0])
A = np.array([[1,2,3],[4,5,6],[7,8,9]])

# Operasi dasar
dot   = np.dot(v, v)          # dot product: 14.0
cross = np.cross(v, v)       # cross product: [0,0,0]
norm  = np.linalg.norm(v)    # norm: 3.742
vhat  = v / norm              # unit vector

# Matriks perkalian
B = np.eye(3)
C = A @ B                    # matrix multiply (prefer @)

# Eigendecomposition
eigvals, eigvecs = np.linalg.eig(A)

# SVD
U, sigma, Vt = np.linalg.svd(A, full_matrices=False)

Rotasi dengan scipy

Pythonfrom scipy.spatial.transform import Rotation as R

# Buat rotasi dari berbagai representasi
r_euler = R.from_euler('ZYX', [30, 45, 60], degrees=True)
r_quat  = R.from_quat([0, 0, np.sin(np.pi/4), np.cos(np.pi/4)])
r_rotvec= R.from_rotvec(np.pi/2 * np.array([0, 0, 1]))
r_matrix= R.from_matrix(np.eye(3))

# Konversi antar representasi
matrix = r_euler.as_matrix()     # → 3x3 rotation matrix
quat   = r_euler.as_quat()       # → [x,y,z,w] (scipy convention)
euler  = r_quat.as_euler('ZYX', degrees=True)

# Komposisi rotasi
r_total = r_euler * r_quat        # Hamilton product

# SLERP interpolasi
r0, r1 = R.from_euler('z', 0), R.from_euler('z', 90, degrees=True)
times = np.linspace(0, 1, 10)
from scipy.spatial.transform import Slerp
slerp = Slerp([0, 1], R.concatenate([r0, r1]))
interp = slerp(times)

Transformasi Homogen

Pythondef make_htm(R, t):
    """Buat Homogeneous Transformation Matrix dari R dan t."""
    T = np.eye(4)
    T[:3, :3] = R
    T[:3,  3] = t
    return T

def htm_inv(T):
    """Invers HTM yang efisien (tidak pakai np.linalg.inv)."""
    R = T[:3, :3]
    t = T[:3,  3]
    T_inv = np.eye(4)
    T_inv[:3, :3] = R.T
    T_inv[:3,  3] = -R.T @ t
    return T_inv

# Contoh penggunaan
Rz90 = R.from_euler('z', 90, degrees=True).as_matrix()
t    = np.array([0.5, 0.3, 1.0])
T    = make_htm(Rz90, t)

# Transformasi titik
p_local = np.array([1, 0, 0, 1])  # homogeneous
p_world = T @ p_local

Jacobian & Pseudo-Inverse IK

Pythondef jacobian_numerical(fk_func, q, eps=1e-6):
    """Jacobian numerik via finite differences."""
    n = len(q)
    x0 = fk_func(q)
    m = len(x0)
    J = np.zeros((m, n))
    for i in range(n):
        q_plus = q.copy(); q_plus[i] += eps
        J[:, i] = (fk_func(q_plus) - x0) / eps
    return J

def ik_jacobian(fk_func, x_target, q_init, 
               max_iter=200, tol=1e-6, lam=0.01):
    """IK via Damped Least Squares Jacobian."""
    q = q_init.copy()
    for _ in range(max_iter):
        x_cur = fk_func(q)
        e = x_target - x_cur
        if np.linalg.norm(e) < tol:
            break
        J    = jacobian_numerical(fk_func, q)
        # Damped Least Squares: J^T (JJ^T + λ²I)^{-1}
        JJt  = J @ J.T
        dq   = J.T @ np.linalg.solve(JJt + lam**2*np.eye(JJt.shape[0]), e)
        q   += dq
    return q

Kalman Filter Sederhana

Pythonclass KalmanFilter:
    def __init__(self, A, C, Q, R_noise, x0, P0):
        self.A, self.C   = A, C
        self.Q, self.R   = Q, R_noise
        self.x, self.P   = x0, P0
        self.n           = A.shape[0]

    def predict(self):
        self.x = self.A @ self.x
        self.P = self.A @ self.P @ self.A.T + self.Q

    def update(self, y):
        S  = self.C @ self.P @ self.C.T + self.R
        K  = self.P @ self.C.T @ np.linalg.inv(S)
        self.x += K @ (y - self.C @ self.x)
        self.P  = (np.eye(self.n) - K @ self.C) @ self.P

# Usage: estimasi posisi robot 2D
A  = np.array([[1,0,0.1,0],[0,1,0,0.1],[0,0,1,0],[0,0,0,1]])
C  = np.eye(2, 4)  # observasi posisi saja (x, y)
kf = KalmanFilter(A, C, 0.01*np.eye(4), 0.1*np.eye(2),
                  np.zeros(4), np.eye(4))
🐍
Library Robotika Python roboticstoolbox-python (Peter Corke) — FK/IK lengkap, visualisasi. modern_robotics (Lynch & Park) — implementasi buku Modern Robotics. pytransform3d — transformasi 3D dan visualisasi. pin (Pinocchio) — dinamika robot rigid body ultra-cepat.
// Document Fingerprint — BlueDragonSec
AUTHOR
Antonius · BlueDragonSec
DOMAIN
bluedragonsec.com
CLASSIFICATION
Research · Curriculum
TOPIC
Linear Algebra for Robotics
RELEASE
2026-04-15
VERSION
v1.0.0
GITHUB
github.com/bluedragonsecurity
TWITTER
@bluedragonsec
DOC-SHA256: bd2026::alg-lin-robotika::antonius::4f8a1c9e2b7d3e6f0a5b8c1d4e7f2a3b9c0d1e4f7a2b5c8d3e6f1a4b7c0d2e5f
© 2026 BlueDragonSec — Tangerang, Indonesia. Referensi kurikulum Security Researcher Master Class. Distribusi bebas untuk keperluan pendidikan non-komersial dengan atribusi.
Daftar Isi