# Modul 2 : Sensing and Perception ### Tujuan - Peserta memahami dasar sensor mekanikal. - Peserta memahami dasar sensor pengukuran (sensor analog/digital). - Peserta mendapat gambaran penginderaan visual dasar (menggunakan webcam sederhana). - Peserta memahami pengkondisian sinyal dasar seperti *low-pass filter* dan *moving average*. ### Sensor Mekanikal **Sensor mekanikal** adalah sensor yang mendeteksi perubahan gerakan atau gaya mekanis seperti posisi, kecepatan, tekanan, atau gaya sentuh. Dalam robotika medis, sensor ini penting untuk proses kuantisasi interaksi antara robot dan lingkungan sehingga setiap pergerakan terukur, misalnya tekanan jari pada robot rehabilitasi atau gerakan lengan prostetik. Informasi ini dibutuhkan untuk merencanakan pergerakan selanjutnya dari robot agar tepat sasaran sesuai dengan fungsi dan fitur dari robot. Ada beberapa jenis sensor mekanikal yang umum dipakai dalam robotika medis, yaitu: - **Encoder** Digunakan untuk mendeteksi **posisi rotasi atau kecepatan putaran**. Encoder sering ditemukan pada motor servo atau motor DC untuk mengetahui sejauh mana aktuator bergerak. **Contoh:** pengukuran sudut jari pada *rehabilitation glove* atau posisi sendi pada *exoskeleton*. - **Load Cell** Sensor ini mengukur **gaya atau berat** dengan memanfaatkan perubahan resistansi pada *strain gauge*. **Contoh:** pengukuran gaya genggaman pasien stroke saat latihan terapi tangan. - **Tactile Sensor** Sensor ini mendeteksi **sentuhan atau tekanan permukaan**, mirip dengan indra peraba manusia. **Contoh:** pada robot bedah, tactile sensor membantu mengenali tekanan jaringan agar tidak merusak organ pasien. - **Accelerometer & Gyrometer (IMU/Motion Sensing Sensors)** IMU (*Inertial Measurement Unit*) adalah kombinasi dari **accelerometer** dan **gyroscope** yang digunakan untuk mengukur percepatan linier dan kecepatan sudut. **Contoh:** mendeteksi gerakan tangan pada sarung tangan rehabilitasi, atau memantau postur pasien dengan sensor yang menempel di tubuh. ### Dasar Sensor Pengukuran **Sensor pengukuran** adalah sensor yang mendeteksi berbagai parameter fisik atau fisiologis untuk diubah jadi sinyal listrik yang akan diproses oleh sistem kendali robot untuk melakukan fungsi atau fitur tertentu. Sensor ini mengukur besaran-besaran secara akurat, bahkan untuk parameter yang tidak berinteraksi secara langsung dengan robot. Adapun beberapa jenis sensor pengukuran yang umum digunakan dalam robotika medis, yaitu: - **Sensor Analog** Sensor analog menghasilkan sinyal keluaran kontinu (misalnya tegangan atau arus) yang proporsional dengan besaran fisik tertentu seperti suhu atau tekanan. **Contoh:** sensor suhu LM35, sensor tekanan, dan sensor kelembaban. - **Sensor Digital** Sensor digital menghasilkan sinyal diskrit (umumnya logika susunan *binary number* 0/1) yang menunjukkan kondisi tertentu sesuai dengan kegunaannya. **Contoh:** sensor proximity digital dan *limit switch*. - **Sensor Kontak** Sensor kontak mengukur suatu parameter dengan menyentuh objek fisik secara langsung **Contoh:** saklar *limit* pada ujung gerak robot. - **Sensor Non-Kontak** Sensor non-kontak mengukur suatu parameter tanpa adanya kontak langsung antara sensor dan objek pengukuran. Hal ini dilakukan secara jarak jauh dengan memanfaatkan gelombang cahaya atau suara **Contoh:** sensor ultrasonik atau optik untuk mengukur jarak dan sensor inframerah yang sering dipakai pada termometer dahi. ![infrared-obstacle-avoidance-sensor-ir-proximity-296391](https://hackmd.io/_uploads/B1I0YdNple.jpg) Masing-masing sensor memiliki karakteristik penting seperti *range pengukuran*, *sensitivitas*, *resolusi*, dan *akurasi*. Pemilihan sensor dalam desain robotika medis harus memperhatikan parameter-parameter tersebut agar sesuai dengan kebutuhan aplikasi (misal rentang gerak instrumen bedah, atau sensitivitas dalam deteksi sinyal fisiologis). ### Sensor Visual (Webcam Sederhana) Selain sensor fisik, sistem robotika juga butuh **“mata”**, yaitu sensor visual atau sensor yang mengambil gambar dari lingkungan sekitar (sinyal cahaya) dan menghasilkan suatu gambar yang dapat diinterpretasi oleh robot itu sendiri atau oleh manusia yang mengoperasikannya. Sensor visual yang digunakan umumnya berupa kamera pada robotika medis (misal untuk endoskopi atau pemantauan pasien). Sebagai contoh, ***webcam*** adalah kamera video yang dapat dipasang pada robot untuk merekam dan mengirimkan video ke komputer atau jaringan. Hasil video ini kemudian dikirimkan pada *controller* atau dijadikan *output* sehingga manusia yang mengoperasikan robot dapat melihatnya ![ids_usb3-1024x640](https://hackmd.io/_uploads/SkBBK_4plg.jpg) **Webcam modern** umumnya memakai sensor CMOS yang terdiri dari matriks *pixel* yang sensitif terhadap cahaya. Setiap *pixel* mengubah intensitas cahaya menjadi sinyal listrik, yang mana susunan *pixel* tersebut dapat membentuk gambar digital beresolusi tertentu (misalnya 640×480 *pixel*) pada *framerate* hingga puluhan *frame* per detik. Data gambar dari webcam kemudian diolah dengan menggunakan algoritma *computer vision* (seperti OpenCV) untuk aplikasi medis. > Dengan library seperti **OpenCV**, data dari webcam bisa diolah untuk mengenali objek, mengukur jarak, atau bahkan mendeteksi gerakan. Contoh dari penggunaan pengolahan gambar ini dalam situasi medis adalah pendeteksian bentuk organ dari hasil pencitraan, pelacakan gerakan organ atau *surgery robot*, atau analisis ekspresi wajah pasien untuk mendeteksi adanya indikasi penyakit *stroke*. ### Signal Conditioning: Filter Sederhana Informasi yang didapatkan dari sensor sering tercampur dengan *noise* atau gangguan dan fluktuasi cepat yang tertangkap pula oleh sensor. Sehingga, sinyal utama yang dibutuhkan robot untuk beroperasin menjadi samar dan tidak bisa diproses dengan baik. Maka dari itu, dilakukan **pengkondisian sinyal (signal conditioning)**, salah satunya menggunakan filter. Contoh dari *signal conditioning* yang umum dipakai dalam pengambilan pencitraan pasien, yaitu: - **Low-pass filter (LPF)** LPF merupakan *filter* yang dapat melewatkan sinyal berfrekuensi rendah dan menahan sinyal frekuensi tinggi. Hal ini bertujuan untuk mengeliminasi sinyal-sinyal yang mengganggu atau *noise* berfrekuensi tinggi sehingga sinyal yang ditangkap murni sinyal yang dituju. **Contoh:** rangkaian RC atau *filter* digital dengan *cutoff frequency* rendah. - **Moving average filter** *Moving average filter* adalah *filter* yang mengambil rata-rata dari beberapa sampel terakhir untuk meratakan sinyal sehingga nilai yang diambil tepat saran. >Contoh: Kalau saat ini memiliki data `[10, 12, 11, 50, 12]`, maka *moving average* dari 3 titik terakhir adalah sebagai berikut x = `(11+50+12)/3 = 24.3`