Bab II. Mobile Robot dan Komponennya II.1. Tipe-tipe Robot Terdapat banyak versi mengenai pendefinisian robot. International Standard Organisation dalam ISO 8373 mendefinisikan robot sebagai [1]: An automatically controlled, reprogrammable, multipurpose, manipulator programmable in three or more axes, which may be either fixed in place or mobile for use in industrial automation applications.
Sedangkan Robotics Institute of America (RIA) mendefinisikan robot ke dalam empat kelompok berikut [2]. a. Handling devices dengan kendali manual. b. Automated handling devices dengan siklus kerja yang telah didefiniskan sebelumnya. c. Programmable, servo terkontrol dengan trayektori kontinyu titik-ke-titik. d. Tipe c (programmable) dengan kemampuan tambahan mengumpulkan informasi dari lingkungan untuk gerakan cerdas (intelligent motion). Dengan demikian, penjinak bom kendali jarak jauh Morolipi-V.1 [3] buatan Lembaga Ilmu Pengetahuan Indonesia (LIPI) pun dapat dikategorikan sebagai robot. Secara umum, robot dibagi menjadi dua kelas, yakni robot manipulator (atau industrial robot) dan mobile robot [4]. Mobile robot memiliki kemampuan untuk bergerak dalam lingkungannya dan tidak terikat pada lokasi fisik tertentu. Sedangkan industrial robot biasanya terdiri dari lengan terhubung (multi-linked manipulator) dan susunan gripper (pencengkram, atau end effector) yang terpasang pada permukaan tertentu. Mobile robot diklasifikasikan berdasarkan lingkungan dan alat geraknya [4]. Berdasarkan lingkungan pergerakannya, diklasifikasikan menjadi sebagai berikut. a. Land robots atau home robots. Bergerak di lingkungan darat. Umumnya menggunakan roda atau kaki. b. Aerial robots. Bergerak di udara. Biasanya disebut unmanned aerial vehicles (UAVs). c. Underwater robots. Bergerak di lingkungan air. Biasanya disebut autonomous underwater vehicles (AUVs) Sedangkan berdasarkan alat geraknya, diklasifikasikan menjadi sebagai berikut. a. Legged robot. Menggunakan kaki untuk bergerak.
4
b. Wheeled robot. Menggunakan roda untuk bergerak. c. Track robot. Menggunakan track untuk bergerak. Dalam tugas akhir ini dikembangkan “home wheeled mobile robot kendali jarak jauh” yang bisa dikendalikan secara manual ataupun otomatis. II.2. Sistem Kemudi Mobile Robot Terdapat dua tipe kemudi (steering) menggunakan roda, yakni kemudi Ackerman dan kemudi diferensial [5].
a. Kemudi Ackerman Kemudi Ackerman dikenal juga sebagai kemudi tipe mobil. Metode ini menggunakan dua roda depan, terkadang menggunakan satu roda, yang berbelok bersama untuk menghasilkan gerak berbelok. Gambar II.1 mengilustrasikan mekanisme belok menggunakan kemudi Ackerman. Tipe kemudi lebih presisi dibandingkan kemudi diferensial dalam menelusuri lintasan tertentu [5]. Tipe kemudi ini juga bekerja baik pada kecepatan tinggi, seperti pada semua tipe mobil dan mobil balap. Kelemahan dari tipe kemudi Ackerman ialah tidak mampu berotasi terhadap sumbu vertikalnya sendiri. Selain itu, radius beloknya dibatasi oleh jarak roda depan-belakang dan sudut belok roda depan.
Gambar II.1 Contoh kemudi Ackerman.
b. Kemudi Diferensial Kemudi diferensial dikenal juga sebagai kemudi tipe tank. Tipe kemudi ini menggunakan perbedaan laju roda kiri dan kanan untuk menghasilkan gerak berbelok. 5
Gambar II.2 memperlihatkan contoh kemudi menggunakan kemudi diferensial untuk menghasilkan gerak maju, mundur, dan belok.
Gambar II.2 Contoh kemudi diferensial.
Dengan memvariasikan arah gerak dan kecepatan putaran motor, dapat dihasilkan berbagai variasi gerak [5]. Tipe kemudi ini banyak dipakai dalam robot remote control dan robot promosi (iklan). Kelemahan dari tipe kemudi diferensial ialah menghasilkan gesekan pada roda depan dan belakang saat melakukan gerak berbelok. II.3. Mikrokontroller Mikrokontroller, atau microcomputer, ialah sistem yang terdiri dari CPU (central processing unit), RAM (random access memory), ROM (read only memory), bus (untuk address/alamat, data, sinyal kontrol), dan divais I/O (input/output) yang dikemas dalam suatu IC (integrated circuit) [13]. Mikrokontroller yang akan digunakan dalam tugas akhir ini ialah AT89S52 (keluarga MCS-51® 1 ) buatan Atmel Corporation. Gambar II.3 berikut memperlihatkan bentuk dan kaki-kaki dari mikrokontroller AT89S52 untuk kemasan PDIP (plastic dual-in-line package).
1
MCS-51 merupakan merk dagang dari Intel Corporation.
6
(a)
(b)
Gambar II.3 Bentuk fisik (a) dan kaki-kaki (b) dari mikrokontroller AT89S52.
Untuk dapat bekerja, mikrokontroller ini memerlukan catu daya pada pin VCC dan osilator pada pin XTAL1 dan XTAL2. Pin RST merupakan kaki reset yang akan mereset mikrokontroller ketika pin ini diberi logika 1. Pin EA/VPP mengatur apakah mikrokontroller mengeksekusi program dari ROM internal atau dari ROM eksternal jika diberi logika 1 atau 0, berturut-turut. Salah satu fitur penting yang akan dipakai dalam tugas akhir ini ialah fitur external interrupt. Interupsi ialah suatu kondisi (atau kejadian) yang menyebabkan program disangga untuk sementara ketika kondisi tersebut dilayani oleh bagian program lain [13], bagian program yang melayani interupsi ini disebut interrupt service routine (ISR). Register yang mengatur interupsi ialah register IE, IP, dan TCON. Ketika terjadi interupsi, program counter (PC, menampung alamat ROM yang sedang dieksekusi) akan mengarah ke alamat tertentu (dinamakan vector address) yang bersesuaian dengan sumber interupsi sebagai berikut. Sumber interupsi Eksternal 0 Timer 0 Eksternal 1 Timer 1 Serial port Timer 2 Sumber : [15].
Vector address 0x0003 0x000B 0x0013 0x001B 0x0023 0x002B
Register IE : interrupt enable Register ini dapat dialamati per bit. Fungsi tiap bit ialah sebagai berikut. 7
EA
-
EA ET2
IE.7 IE.6 IE.5
ES ET1 EX1 ET0 EX0
IE.4 IE.3 IE.2 IE.1 IE.0
ET2
ES
ET1
EX1
ET0
EX0
Mengaktifkan/mematikan seluruh interupsi. Tidak diimplementasikan. Mengaktifkan/mematikan interupsi overflow 2 atau capture pada Timer 2. Mengaktifkan/mematikan interupsi port serial. Mengaktifkan/mematikan interupsi overflow pada Timer 1. Mengaktifkan/mematikan interupsi eksternal 1. Mengaktifkan/mematikan interupsi overflow pada Timer 0. mengaktifkan/mematikan interupsi eksternal 0.
Bit diberi logika 0 untuk mengaktifkan atau 1 untuk mematikan. Register IP : interrupt priority Register ini dapat dialamati per bit. Fungsi tiap bit ialah sebagai berikut. -
-
PT2 PS PT1 PX1 PT0 PX0
IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0
PT2
PS
PT1
PX1
PT0
PX0
Tidak diimplementasikan. Tidak diimplementasikan. Mendefinisikan prioritas interupsi Timer 2. Mendefinisikan prioritas interupsi Port Serial. Mendefinisikan prioritas interupsi Timer 1. Mendefinisikan prioritas interupsi Eksternal 1. Mendefinisikan prioritas interupsi Timer 0. Mendefinisikan prioritas interupsi Eksternal 0.
Bit diberi logika 0 atau 1 untuk mengatur agar interupsi yang bersesuaian berada pada prioritas rendah atau tinggi, berturut-turut. Jika terjadi interupsi berprioritas tinggi ketika program sedang mengeksekusi ISR interupsi berprioritas rendah, maka ISR tersebut akan disangga dan PC mengarah ke ISR interupsi berprioritas tinggi; jika telah selesai, program akan kembali mengeksekusi ISR interupsi berprioritas rendah mulai dari alamat ROM yang disangga tadi. Sedangkan interupsi berprioritas rendah tidak dapat menginterupsi ISR interupsi berprioritas tinggi. Register TCON : timer/counter control Register ini dapat dialamati per bit. Fungsi tiap bit ialah sebagai berikut. TF1
TR1
TF0
TF1
TCON.7
TR1
TCON.6
TF0
TCON.5
TR0
TCON.4
2 3
TR0
IE1
IT1
IE0
IT0
Flag overflow Timer 1. Diset 3 oleh hardware ketika Timer/Counter 1 mengalami overflow. Diclear kembali oleh hardware ketika processor vector mengarah ke ISR. Bit run control Timer 1. Diset/clear untuk menghidup/matikan Timer/Counter 1. Flag overflow Timer 0. Diset oleh hardware ketika Timer/Counter 0 mengalami overflow. Diclear kembali oleh hardware ketika processor vector mengarah ke ISR. Bit run control Timer 0. Diset/clear untuk menghidup/matikan
Overflow merupakan kondisi ketika pencacahan kembali dari 0xFFFF ke 0x0000 Set/clear diasosiasikan dengan membuat bit berlogika high/low
8
IE1
TCON.3
IT1
TCON.2
IE0
TCON.1
IT0
TCON.0
Timer/Counter 0. Flag interupsi eksternal 1. Diset oleh hardware ketika interupsi eksternal terdeteksi. Diclear oleh hardware ketika interupsi diproses. Bit kontrol tipe interupsi eksternal 1. Diset/clear oleh software untuk menentukan apakah interupsi eksternal dipicu oleh falling edge (1-ke-0) / low level (logika 0). Flag interupsi eksternal 0. Diset oleh hardware ketika interupsi eksternal terdeteksi. Diclear oleh hardware ketika interupsi diproses. Bit kontrol tipe interupsi eksternal 0. Diset/clear oleh software untuk menentukan apakah interupsi eksternal dipicu oleh falling edge (1-ke-0) / low level (logika 0).
Untuk memasukan file program (dalam bentuk file berekstensi *.hex) ke flash ROM memory dapat dilakukan menggunakan mode parallel atau mode serial [14]. Pada tugas akhir ini digunakan pemrograman flash memory menggunakan mode serial. Pada Gambar II.4(b), sinyal SCK (melalui P1.7) digunakan untuk sinkronisasi bit di MOSI dan di MISO. Saat melakukan pemrograman, pin RST diberi logika 1.
(a)
(b) Gambar II.4 Koneksi untuk pemrograman flash memory melalui mode serial, (a); dan bentuk sinyal MOSI, MISO, dan SCK, (b).
9
II.4. Antarmuka Komputer Antarmuka antara komputer dengan peralatan elektronik yang lazim digunakan ialah port serial, port parallel, dan universal serial bus. Dalam tugas akhir ini akan digunakan antarmuka dengan komputer menggunakan port parallel. Port parallel merupakan tipe soket pada PC (personal computer) untuk antarmuka dengan berbagai peralatan, dikenal sebagai printer port atau Centronics port, dengan komunikasi paralel dua arah menggunakan standar IEEE 1284 [6]. Gambar II.5 memperlihatkan kakikaki pada port parallel tipe IBM, atau DB25. Penjelasan fungsi tiap pin dijelaskan dalam Tabel II.1 berikut.
(a)
(b)
Gambar II.5 Bentuk fisik port parallel, (a); kaki-kaki pada port parallel [7], (b). Tabel II.1
Deskripsi tiap pin pada port parallel.
No. Pin 1
Nama Sinyal Strobe
2–9
Carry data
10
Acknowledge
11
Busy
12
Paper Out
13
Select
14 15
Linefeed Error
16
Initialize
Arah* Deskripsi O Mempertahankan sinyal antara 2.8 hingga 5.0 volt. Turun menjadi 0.5 volt ketika komputer mengirim satu byte data. I/O Data satu byte. Bit 1 ditandai dengan tegangan 5 volt, dan bit 0 ditandai dengan tegangan di bawah 0.5 volt. I Seperti pin 1, tetapi turun tegangan untuk memberitahu komputer bahwa data telah diterima. I Jika printer/alat dalam keadaan busy, pin 11 dihighkan. Tegangan diturunkan di bawah 0.5 volt untuk memberitahu komputer bahwa printer/alat telah siap menerima data. I Printer/alat memberitahu komputer bahwa kertas cetak telah habis dengan menghighkan pin 12. I Selama tegangan pin 13 high, komputer menganggap printer/alat sedang online. O Sinyal perintah auto feed. I Jika printer mengalami masalah, pin 15 dilowkan untuk memberitahu komputer bahwa telah terjadi error. O Ketika tugas pencetakan baru telah siap, komputer
10
17
nSelect
O
18 – 25
Ground
-
melowkan pin 16. Komputer melowkan pin 17 untuk membuat printer menjadi offline. Ground
*: O, dari komputer ke alat, I, dari alat ke komputer.
(Sumber: [7,8]) Alamat tipikal port parallel pada PC dengan bus ISA ialah sebagai berikut. LPT1: 0x3BC LPT2: 0x378 LPT3: 0x278 Jika terdeteksi 3 port. LPT1: 0x378 LPT2: 0x278 Jika terdeteksi 2 port. LPT1: 0x378 Jika terdeteksi 1 port. (Sumber: [9])
II.5. Sistem Telemetri Radio Sistem telemetri radio merupakan sistem pengiriman data jarak jauh menggunakan frekuensi gelombang radio, yakni sekitar 60 – 1000 MHz [10]. Sinyal data dimodulasi dengan sinyal carrier/pembawa dengan berbagai cara, yakni amplitude shift keying (ASK), frequency shift keying (FSK), phase shift keying (PSK), dan lain-lain. Pada tugas akhir ini akan digunakan modulasi ASK.
Gambar II.6 Modulasi amplitudo, (bawah) sinyal TTL data, (tengah) sinyal bandlimited, (atas) sinyal ASK. [11].
Apabila diinginkan sinyal dari pemancar diterima oleh penerima tertentu saja, maka sinyal dapat diberi suatu alamat/address yang unik untuk tiap penerima sehingga penerima hanya akan mengolah sinyal yang alamatnya sesuai.
11
00101010
Data-1
f = 315 MHz
Alamat cocok, data diteruskan Data-1
f = 315 MHz 00101010
01101010
Data-2
Alamat tidak cocok
00101010
01101010
Gambar II.7 Ilustrasi penggunaan alamat sinyal untuk memilah data dari dua gelombang dengan frekuensi carrier yang sama.
II.6. Pengolahan Citra Robot vision, atau penglihatan robot, merupakan sistem computer vision yang diaplikasikan pada robot. Computer vision ialah cabang dari kecerdasan buatan (artificial intelligence) dan pengolahan citra (image processing) yang terkait dengan pengolahan gambar komputer yang diperoleh dari dunia nyata [20]. Dalam tugas akhir ini dibuat dua contoh aplikasi pada robot pengikut bola merah dan pengikut garis hitam. Pengolahan citra yang digunakan ialah transformasi warna ke greyscale, binarisasi, dan filter warna. Model Warna RGB Model warna yang digunakan ialah model RGB, yakni warna dimodelkan sebagai kombinasi dari warna merah (red), hijau (green), dan biru (blue) dalam berbagai persentase untuk menghasilkan warna lain [21]. Dengan model RGB, warna dapat dinyatakan dalam mode 24-bit (true color), 16-bit (high color), 32-bit, atau 48-bit. Mode 24-bit per pixel menyatakan warna oleh tiga bilangan bulat dengan jangkauan dari 0 hingga 255 berturut-turut untuk warna merah 8-bit, warna hijau 8-bit, dan warna biru 8-bit. Nilai 0 hingga 255 bagi tiap warna menyatakan intensitas komponen warna tersebut. warna( R, G , B ) = (intensitas biru) × 216 + (intensitas hijau) × 28 + (intensitas merah) × 20 Misalnya warna merah dinyatakan sebagai 0x0000FF, hijau sebagai 0x00FF00, biru sebagai 0xFF0000, kuning sebagai 0x00FFFF, dan hitam sebagai 0x000000. Mode 16-bit per pixel juga menyatakan warna oleh tiga bilangan bulat, tetapi hanya 5-bit untuk merah, 6-bit untuk hijau, dan 5-bit untuk biru. Mode 32-bit per pixel sangat mirip dengan mode 24-bit. 8-bit tambahannya tidak digunakan, ini karena hardware hanya bisa mengakses data dengan kelipatan dua dari tiap byte (8-bit). Yakni 0xFFFFFFFF dapat 12
diakses, tetapi tidak 0xFFFFFF. Mode 48-bit per pixel pun mirip dengan mode-24 bit, tetapi tiap intensitas warna dinyatakan dalam bilangan 16-bit, yakni 0 hingga 65536. Gambar II.8 memperlihatkan kubus warna dalam model RGB.
Gambar II.8 Kubus warna dalam model RGB, tiap sumbu menyatakan intensitas komponen merah, hijau, dan biru. [21]
Transformasi Warna ke Greyscale Untuk mentransformasi gambar berwarna ke gambar greyscale (skala/derajat keabuan), diperlukan informasi nilai intensitas dari komponen merah, hijau, dan biru [22]. Nilai derajat keabuan untuk tiap pixel diperoleh sebagai berikut.
greyscale = a ⋅ (intensitas merah) + b ⋅ (intensitas hijau) + c ⋅ (intensitas biru) Dengan koefisien a, b, dan c dapat dipilih bernilai 1/3, 1/3, dan 1/3, atau 0.42, 0.32, dan 0.28. Komposisi terakhir sering digunakan untuk menghasilkan derajat keabuan lebih realistik dalam menyatakan warna [23]. Binarisasi Binarisasi ialah proses mengubah gambar dari gambar greyscale menjadi gambar yang hanya terdiri dari dua komponen, yakni hitam dan putih [24]. Bisa merupakan hasil proses segmentasi ataupun thresholding. Beberapa divais I/O juga hanya bisa mengolah data biner.
(a)
(b)
(c)
Gambar II.9 Contoh gambar berwarna (a) yang diubah menjadi gambar dengan derajat keabuan (b) dan gambar biner dari gambar keabuan (c).
13
Filter Warna Filter warna dimaksudkan untuk meneruskan warna tertentu dan menghilangkan warna yang lain. Gambar II.10 memperlihatkan contoh gambar hasil pemfilteran warna merah. Percobaan menghasilkan warna merah yang diinginkan berada dalam jangkauan RGB(130255, 0-90, 0-90). Dengan meloloskan warna yang berada dalam jangkauan ini dan menghitamkan warna (diberi nilai 0) yang lain, maka diperoleh gambar dari objek warna merah saja.
(a)
(b)
Gambar II.10 Gambar asli (a) dan gambar hasil filter warna (b).
14