# **MODUL 3 : Robotics Control and Safe Interaction**
Tujuan Materi :
1. Memahami kapan diperlukan kontrol gaya.
1. Bisa implementasi PID sederhana pada aktuator kecil.
1. Bisa merancang minimal satu safety mechanism berbasis mikrokontroler.
---
Sistem kontrol sangat penting dalam robotika karena ia bertindak sebagai otak yang menerjemahkan perintah menjadi gerakan fisik yang tepat dan terkoordinasi. Sistem ini juga menggunakan umpan balik sensor untuk secara terus-menerus mengoreksi kesalahan dan beradaptasi terhadap gangguan lingkungan (presisi, stabilitas, dan kecerdasan).
---
**Contoh Implementasi Sistem Kontrol pada Robotik**
| Jenis Sistem Kontrol / Keamanan | Tujuan Utama | Implementasi Umum pada Mikrokontroler |
| ------------------------------- | ------------ | ------------------------------------- |
| Impedance Control | Membuat robot “lembut” terhadap gaya eksternal; membatasi gaya kontak agar aman saat interaksi dengan manusia. | Mikrokontroler membaca sensor gaya/arus → menyesuaikan torsi motor seolah memiliki pegas virtual. |
| Admittance Control |Mengatur gerakan berdasarkan gaya yang diterima (respon posisi terhadap gaya). Cocok untuk robot manipulatif. | Sensor gaya sebagai input → mikrokontroler menghasilkan target posisi/kecepatan baru untuk aktuator. |
| Compliance Control | Memberi fleksibilitas pada gerakan; mencegah kerusakan akibat gaya berlebih atau tabrakan. |Mikrokontroler mengatur batas torsi atau menurunkan gain PID saat mendeteksi resistansi besar. |
| Fail-safe / Safe State Control | Menghentikan sistem atau masuk ke mode aman saat terjadi error, batas gaya tercapai, atau komunikasi gagal. | Mikrokontroler menonaktifkan PWM atau relay jika sensor out of range / tombol E-stop ditekan. |
| PID Control (Proportional–Integral–Derivative) | Menjaga stabilitas dan mengoreksi error posisi/kecepatan agar robot tidak bergerak liar atau overshoot. | PID loop untuk motor DC/servo berdasarkan feedback encoder atau sensor posisi. |
---
## Implementasi PID
What is PID? 
**Proportional-Integral-Derivative (PID)** controller merupakan salah satu algoritma kontrol paling umum digunakan di dunia teknik, termasuk pada sistem robotik, otomasi industri, dan biomedis. PID bekerja dengan cara menghitung error (kesalahan) antara **nilai target (setpoint)** dan n**ilai aktual (feedback)**, kemudian menyesuaikan sinyal kontrol untuk meminimalkan error tersebut secara bertahap dan stabil.
dengan:
u(t) : sinyal keluaran (output) ke aktuator
e(t) : selisih antara target dan nilai aktual
𝐾𝑝: konstanta Proportional (mengatur seberapa kuat respon terhadap error saat ini)
𝐾𝑖 : konstanta Integral (mengatur respon terhadap akumulasi error dari waktu ke waktu)
𝐾𝑑 : konstanta Derivative (mengatur respon terhadap laju perubahan error untuk mengantisipasi overshoot)
**CONTOH KASUS**
Bayangkan anda menggerakkan salah satu tangan surgical robotics menuju titik insisi pada koordinat (1,1,1) pada peta robot (titik yang sudah anda hitung melalui inverse kinematics dan berbagai perhitungan posisi lainnya). Anda akan melakukan pemotongan jaringan di titik tersebut.
Namun, ketika anda memberikan sinyal langsung ke aktuator untuk mencapai posisi itu, gerakan tangan robot menjadi terlalu cepat dan ekstrem, sehingga berpotensi melewati titik target dan memotong jaringan pasien secara berlebihan.
Nah, fungsi PID adalah untuk menghaluskan dan menstabilkan gerakan tersebut.
PID akan menyesuaikan perintah aktuator secara bertahap dan terukur, dengan cara:
Proportional (P): merespons seberapa jauh posisi robot dari target — semakin besar error, semakin besar koreksi.
Integral (I): mengoreksi error kecil yang terus-menerus terjadi (misalnya ujung pisau sedikit di bawah target).
Derivative (D): memperkirakan arah dan kecepatan perubahan error, sehingga dapat mengurangi overshoot dan mencegah gerakan mendadak.
Dengan kombinasi ketiga komponen ini, gerakan tangan robot akan menuju titik (1,1,1) secara halus, stabil, dan presisi, tanpa menimbulkan gerakan tiba-tiba yang berbahaya bagi pasien.
TRIAL TINKERCAD

Buatlah Duplikat dari Tinkercad dibawah ini! Lakukankan eksplorasi terhadap kode!
https://www.tinkercad.com/things/hDsk15B8Rrl-pid-control-trial?sharecode=PaXFMZYvVmrt4tgm8IdawJrIktNkZsEVPGQq7fM64OM
---
# Perhitungan Parameter PID dengan Metode Ziegler-Nichols
**PID Tuning -> Ziegler-Nichols Method**

Metode Ziegler-Nichols adalah salah satu teknik tuning parameter PID yang paling klasik dan banyak digunakan dalam industri. Metode ini memungkinkan kita untuk mendapatkan parameter PID yang optimal melalui prosedur sistematis dan terukur.
1. Persiapan Parameter Awal
Atur nilai Ki = 0 (integral gain)
Atur nilai Kd = 0 (derivative gain)
Hanya gunakan Kp (proportional gain) yang akan diubah-ubah
2. Pencarian Titik Kritis
Mulai dengan nilai Kp yang kecil (misalnya 0 atau nilai sangat rendah)
Naikkan nilai Kp secara perlahan dan bertahap
Amati respons sistem terhadap setiap kenaikan Kp
Teruskan sampai sistem mulai menunjukkan tanda-tanda osilasi
3. Identifikasi Constant Oscillation
Sistem telah mencapai "constant oscillation" ketika:
* Sistem berosilasi di sekitar setpoint
* Amplitudo osilasi tetap konstan (tidak membesar dan tidak mengecil)
* Osilasi berlangsung secara stabil tanpa perubahan
Pada kondisi inilah sistem mencapai *critical point* atau titik kritis.
Data yang Harus Dicatat
Ketika sistem telah mencapai constant oscillation, catat dua parameter penting:
1. Kcu (Critical Gain / Ultimate Gain)
Definisi: Nilai Kp pada saat sistem mencapai constant oscillation
Cara memperoleh: Nilai Kp yang Anda gunakan ketika sistem berosilasi dengan amplitudo konstan adalah Kcu
Contoh: Jika sistem mencapai osilasi konstan pada Kp = 25, maka Kcu = 25
2. Pu (Ultimate Period / Periode Osilasi)
Definisi: Waktu yang diperlukan untuk menyelesaikan satu siklus osilasi lengkap
Cara memperoleh:
**Amati osilasi konstan dari satu titik tertentu
Ukur waktu sampai osilasi kembali ke posisi yang sama
Waktu tersebut adalah Pu**
# Perhitungan Parameter PID dengan Metode Ziegler-Nichols
## Contoh Penentuan Periode Osilasi Kritis ($P_u$)
Jika satu siklus osilasi lengkap membutuhkan waktu 4 detik, maka:
$$P_u = 4 \text{ detik}$$
---
## Rumus Perhitungan Parameter PID
Setelah memperoleh nilai **Critical Gain** ($K_{cu}$) dan **Ultimate Period** ($P_u$), gunakan **Rumus Ziegler-Nichols** berikut untuk menghitung ketiga parameter PID.
### Rumus Dasar Ziegler-Nichols:
| Parameter | Rumus |
| :--- | :--- |
| **Gain Proporsional** ($K_p$) | $$K_p = 0.6 \times K_{cu}$$ |
| **Gain Integral** ($K_i$) | $$K_i = \frac{1.2 \times K_{cu}}{P_u}$$ |
| **Gain Derivatif** ($K_d$) | $$K_d = 0.075 \times K_{cu} \times P_u$$ |
---
## Penjelasan Rumus
| Parameter | Fungsi |
| :--- | :--- |
| **$K_p$** | $\mathbf{60\%}$ dari *critical gain* ($K_{cu}$), bertanggung jawab untuk **kecepatan respons**. |
| **$K_i$** | Proporsi dari $K_{cu}$ dibagi periode osilasi ($P_u$), bertanggung jawab **menghilangkan *steady-state error***. |
| **$K_d$** | Produk dari $K_{cu}$ dan periode osilasi ($P_u$), bertanggung jawab **mengurangi *overshoot***. |