BAB II LANDASAN TEORI

advertisement
BAB II
LANDASAN TEORI
2.1.
Perkembangan Robot
Istilah “robot” muncul pertama kali pada Czecholoslovakian satirical play,
Rossum’s Universal Robots, oleh Karel Capek pada tahun 1920. Robot pada
pementasan ini cenderung berperilaku seperti manusia. Berangkat dari hal
tersebut, terlihat beberapa cerita fiksi ilmiah yang melibatkan robot dengan emosi
manusia dalam masyarakat.
Hal tersebut berubah ketika General Motors
memasang robot pertamanya di pabrik manufakturingnya pada tahun 1961.
Mesin-mesin automatis ini merepresentasi image yang seluruhnya berbeda dari
robot berbentuk manusia.
Ketika para pencipta robot pertama kali mencoba meniru manuasia dan
hewan, mereka menemukan bahwa hal tersebut sangatlah sulit, membutuhkan
tenaga perhitungan yang jauh lebih banyak dari yang tersedia pada masa itu. Jadi,
penekanan perkembangan diubah ke bidang riset lainnya. Robot sederhana beroda
digunakan untuk melakukan eksperimen dalam tingkah laku, navigasi, dan
perencanaan jalur. Teknik navigasi tersebut telah berkembang menjadi sistem
kontrol robot otonom yang tersedia secara komersial, contoh paling mutakhir dari
8
sistem kontrol navigasi otonom yang tersedia sekarang ini termasuk sistem
navigasi berdasarkan laserdan VSLAM (Visual SimulraneousLocalization and
Mapping) dari Activ Media Robotics dan Evolution Robotics.
Ketika para teknisi siap untuk mencoba robot berjalan kembali, mereka
mulai dengan heksapoda dan platform berkaki banyak lainnya. Robot-robot
tersebut meniru serangga dan arthropoda dalam bentuk dan fungsi. Tren menuju
jenis badan tersebut menawarkan fleksibilitas yang besar dan terbukti dapat
beradaptasi dengan berbagai macam lingkungan, tetapi biaya dari penambahan
kerumitan mekanikal telah mencegah pengadopsian oleh para konsumen. Dengan
lebih dari empat kaki, robot-robot ini stabil secara statis yang membuat mereka
bekerja lebih mudah. Tujuan dari riset robot berkaki dua adalah mencapai gerakan
berjalan menggunakan gerakan pasif-dinamik yang meniru gerakan manusia.
Perkembangan
hebat
telah
dibuat
dalam robot
medis,dengan
dua
perusahan khusus, Computer Motion dan Intuitive Surgical, yang menerima
pengesahan peraturan di Amerika Utara, Eropa, dan Asia atas robot-robotnya
untuk digunakan dalam prosedur pembedahan minimal.
Tempat lain dimana robot disukai untuk menggantikan pekerjaan rumah
adalah dalam ekspolorasi laut dan ekspolorasi antartika. Untuk tugas-tugas ini,
bentuk tubuh artropoda umumnya disukai. Mark W. Tilden dahulunya spesialis
Laboratorium Nasional Los Alamos, membuat robot mudah dengan kaki bengkok
tetapi tidak menyambung, sementara orang lain mencoba membuat kaki kepiting
yang dapat bergerak dan tersambung penuh.
9
Robot bersayap eksperintal dan contoh lain mengeksploitasi biomimikri
juga dalam tahap pengembangan dini.
Yang disebut “nanomotor” dan “kawat
cerdas” diperkirakan dapat menyederhanakan daya gerak secara drastis, sementara
stabilisasi dalam penerbangan nampaknya cenderung diperbaiki untuk riset militer
teknologi permata-mataan.
2.2.
Perancangan Robot Mobil
Salah satu jenis robot mobil yang umum digunakan adalah robot mobil
dengan sistem penggerak differensial. Alasan utamanya karena relatif fleksibel
dalam melakukan manuver.
Gambar 2.1. Posisi dan orientasi robot mobile dalam sistem koordinat cartesian
Untuk panjang jari-jari roda r, serta kecepatan rotasi roda kanan, dan kiri
berturut-turut wr dan wl, maka kecepatan linear roda kanan dan kiri dapat dicari
dengan persamaan berikut :
10
VR (t) = rωR (t)
(1)
VL (t) = rωL (t)
(2)
Ketika robot melakukan gerak memutar sesaat dengan panjang jari-jari R
yang diukur dari pusat rotasi dan titik pusat kedua roda, kecepatan rotasi dapat
dihitung sebagai :
ω(t) =
(3)
ω(t) =
(4)
Kecepatan linier robot v(t) dan kecepatan rotasi robot w(t) dapat diketahui
berdasarkan kedua kecepatan linier roda. Secara matrik dapat disajikan sebagai
berikut :
=
(5)
Persamaan (5) diatas memperlihatkan relasi kinematika langsung antara
kecepatan linier roda-roda robot terhadap kecepatan linier dan angular robotnya,
sedangkan persamaan (6) dibawah memperlihatkan relasi sebaliknya.
11
=
(6)
Syarat mutlak pengendalian posisi robot mobil adalah diketahuinya posisi
dan orientasi robot tiap saat. Salah satu solusinya adalah dengan menghitung jarak
tempuh roda setiap waktu. Jarak tempuh roda kiri (Sl), roda kanan (Sr), dan jarak
rata-rata (S) dalam kawasan waktu berturut-turut sebagai berikut :
SL (t) = VL (t) . t
(7)
SR (t) = VR (t) . t
(8)
S(t) =
.t
(9)
Pendekatan rumus untuk orientasi, posisi koordinat x, dan koordinat y
berturut-turut sebagai berikut :
(t) =
2.3.
+
O
(10)
x (t) = x0 + S cos (t)
(11)
y (t) = y0 + S sin (t)
(12)
Robot Lego Mindstorm NXT
LEGO Mindstorm NXT adalah perangkat robot yang pertama dirilis
sebagai robot edukasi pada akhir Juli 2006. Seri NXT ini merupakan penerus dari
sebelumnya, yaitu RIS (Robotics Invention System). Robot Lego Mindstorm
12
NXT dapat diprogram sesuai dengan keinginan. Adapun beberapa bahasa
pemograman yang dapat dijalankan dalam lego NXT yaitu NXT-G, NXT Byte
Codes (NBC), Not eXactly C (NXT), RobotC, leJOS NXJ, Microsoft Robotics
Studio, dan masih banyak lagi.
Robot lego ini terdiri dari komponen-komponen yang bisa dilepas pasang,
sehingga kita bisa membuat berbagai bentuk robot, misalnya :
Gambar 2.2 Contoh bentuk robot lego mindstorm NXT
13
Komponen-komponen yang ada di robot lego mindstorms NXT adalah :
2.3.1. Brick
Gambar 2.3 Brick
Brick adalah komponen paling penting dari robot NXT, karena berfungsi
sebagai pengendali (otak dan sumber tenaga robot NXT). Program yang sudah
dibuat dapat di-upload ke NXT Brick untuk di compile. Spesifikasi teknis dari
NXT Brick, yaitu :
32-bit AT91SAM7S256 (ARM7TDNI) main microprocessor @48 MHz
(256 KB flash memory, 64 KB RAM)
8-bit Atmega48microcontroller @ 4 MHz (4 KB flash memory, 512 Bytes
RAM)
LCD display 100 x 64 piksel
Bluetooth
Satu port USB 2.0
Empat port input : port 1, port 2, port 3, dan port 4
14
Tiga port output : port A, port B, dan port C
Speaker terintegrasi untuk mengeluarkan output suara
Empat tombol : cancel, OK, left, dan right
Penggunaan dua processor membuat Lego Mondstorm NXT dapat
menjalankan lebih dari satu Thread pada program. Hal ini disebabkan oleh adanya
2 (dua) processor yang mengerjakan fungsi yang berbeda pada saat bersamaan.
Mikrocontroller ARM7 berfungsi sebagai master controller yang fungsi utamanya
mengatur
jalur
komunikasi.
Fungsi
dari
mikrokontroler
(PMW)
untuk
mengendalikan ketiga motor, serta Analog to Digital Converter(ADC) dari
terminal masukan.
Gambar 2.4. Diagram blok NXT brick
15
Brick dapat menerima masukan dari 4 sensor, dan menjalankan 3 motor
sekaligus, dengan bentuk seperti dibawah ini :
Gambar 2.5. Brick dengan 4 sensor dan 3 motor
Tampilan pada layar LCD brick adalah sebagai berikut :
Gambar 2.6. Tampilan pada layar LCD brick
16
Brick dapat kita ibaratkan seperti CPU padakomputer, yang berfungsi
untuk mengolah data. Brick berfungsi untuk mengendalikan jalannya robot sesuai
dengan program yang kita buat. Pada pembuatan program dengan NXT kita dapat
melakukannya dengan 2 cara :
Membuat program secara langsung pada NXT Brick.
Membuat program melalui komputer, selanjutnya kita upload ke
NXT Brick.
Untuk program-program yang sederhana kita dapat membuatnya secara
langsung pada NXT Brick, sedangkan untuk program-program yang kompleks
dan rumit kita dapat membuatnya di komputer terlebih dahulu.
Cara membuat program sederhana langsung pada NXT Brick, yaitu :
Gambar 2.7. Cara membuat program pada NXT Brick
17
Contoh pemograman yang bisa dibuat langsung pada brick adalah program
untuk robot mini golf. Dimana robot tersebut bergerak seperti orang yang sedang
bermain golf. Langkah-langkah untuk membuat robot mini golf tersebut sebagai
berikut :
Gambar 2.8. Contoh pemograman pada brick
2.3.2. Motor
Motor pada Lego Mindstrom NXT berfungsi untuk menggerakkan bagian
robot, seperti memutar roda atau menjadi sendi. Satu brick bisa dipasang hingga 3
(tiga) buah motor. Motor pada NXT Mindstorm tidak menggunakan motor DC
biasa. Motor DC memiliki keterbatasan dalam hal kemampuan torsi putar, karena
motor DC tidak mempunyai umpan balik umpan balik untuk mengadaptasi beban
pada motor DC. Pada robot Lego Mindstorm NXT, motor yang dipakai adalah
motor DC servo yang dilengkapi dengan sebuah encoder yang berfungsi sebagai
18
umpan balik, sehingga pusat pengendalian dapat memberikan arus yang sesuai
dengan beban pada motor.
Kecepatan sudut maksimum motor adalah satu putaran per detik. Servo
juga dapat digunakan untuk menghitung drajat perputaran atau rotasi. Akurasi dari
servo motor mencapai kurang lebih satu drajat. Dalam perkembangannya, motor
servo dipadukan dengan susunan gearing tertentu untuk mendapatkan torsi akhir
yang lebih besar. Torsi yang besar yang didapat dalam waktu singkat merupakan
kelebihan motor servo. Kekurangan motor servo adalah kurangnya akurasi
sehingga diperlukan suatu pengendali yang dapat meningkatkan keakurasian.
Gambar dibawah ini menunjukkan motor lego mindstorm NXT.
Gambar 2.9. Motor
Dalam perkembangannya motor servo dipadukan dengan susunan gearing
tertentu untuk mendapatkan torsi akhir yang lebih besar. Torsi yang besar yang
didapat dalam waktu singkat merupakan kelebihan motor servo. Kekurangan
motor servo adalah kurangnya akurasi sehingga diperlukan suatu pengendali yang
dapat meningkatkan keakurasian. Dari gambar di bawah, maka kita dapat melihat
konstruksi bagian dalam motor pada robot lego mindstrorm NXT.
19
Gambar 2.10. Konstruksi bagian dalam motor
2.3.3. Sensor Sentuh
Sensor sentuh bekerja seperti indera peraba manusia. Sensor sentuh
bekerja berdasarkan penekanan dari saklar, seperti yang telihat pada gambar 2.11.
Saklar yang digunakan pada sensor ini merupakan saklar normally off, yang
artinya jika saklar ditekan, maka akan mengindikasikan logika “1” dan jika
dilepas, maka akan berlogika “0”.
Gambar 2.11. Saklar sentuh
20
Guna sensor sentuh ini adalah untuk membuat suatu aksi dari robot yang
jika sensor tersebut ditekan, maka robot akan melakukan gerakan/aksi tertentu,
tetapi jika sensor tersebut dilepas, maka robot akan melakukan aksi lainnya.
Sensor ini dapat kita kombinasikan dengan sensor yang sama atau dengan sensor
yang berbeda.
Gambar 2.12. Sensor Sentuh
2.3.4. Sensor Ultrasonik
Sensor
Ultrasonik
adalah
sensor
yang
memanfaatkan
gelombang
ultrasonik sebagai alat navigasi. Gelombang ultrasonik adalah gelombang yang
memiliki frekuensi lebih
dari 20
KHz.
Beberapa hewan tertentu dapat
mendengarkan gelombang ultrasonik, seperti lumba-lumba dan kelelawar.
Sensor ultrasonik pada lego mindstrom NXT berbentuk seperti mata. Mata
sebelah kanan berungsi sebagai pemancar gelombang (transmitter) dan mata
sebelah kiri berfungsi sebagai penerima gelombang (receiver).
Gambar 2.13. Sensor Ultrasonik
21
2.3.5. Sensor Cahaya
Sensor cahaya adalah sensor yang digunakan untuk mendeteksi dan
mengukur intensitas cahaya atau gelap terang. Sensor cahaya pada lego
mindstrom NXT terdiri dari dua komponen, yaitu LED dan phototransistor.
Sensor ini dapat membedakan terang dan gelap, serta mengukur intensitas cahaya
di suatu ruangan maupun pada permukaan yang berwarna. Sensor ini dapat dilihat
pada gambar berikut.
Gambar 2.14. Sensor Cahaya
Sensor didasarkan pada prinsip yang berbeda. LEGO sensor menggunakan
LED RGB, dan berturut-turut bersinar lampu merah, hijau dan biru pada objek.
Cahaya yang dipantulkan dukumpulkan oleh sensor peka cahaya dengan panjang
gelombang semua. HiTechnic memiliki LED putih, dan sebuah chip warna khusus
yang sensitive. Chip ini memiliki tiga daerah sensitive tercakup merah, hijau dan
ilter biru. Keuntungan tambahan dari metode HiTechnic dapat mendeteksi warna
cahaya yang dikirim di atasnya (dalam mode pasif, dengan Led putih mematikan).
22
2.3.6. Sensor Suara
Sensor suara adalah sensor yang digunakan untuk mendeteksi adanya
suara. Sensor ini disesuaikan dengan kemampuan pendengarkan manusia, yaiut
antara 20 Hz samapai 20 KHz. Sensor suara pada lego mindstrom NXT digunakan
untuk mengukur intensitas suara lingkungan. Sensor ini dapat mendeteksi suara
sampai maksimum 90 desibel (dB). Gambar di bawah ini merupakan sensor suara
pada lego mindstorms NXT.
Gambar 2.15. Sensor Suara
Sensor suara berfungsi seperti telinga, yaitu untuk menangkap suara.
Sensor suara dalam Lego Mindstorms NXT ini mampu untuk mengukur
kenyaringan dari lingkungan robot. Dengan menggunakan sensor ini, robot lego
mindstorms NXT dapat berpindah atau bergerak ke area yang lebih tinggi atau
menurunkan kenyaringan tergantung pada kode NXT-G yang telah dibuat. Sensor
suara mengukur tingkat volum pada skala 0 sampai 100, 100 menjadi yang sangat
keras, 0 menjadi yang sepenuhnya diam. Sensor suara mampu untuk mengukur
kenyaringan berciri sama dengan decibel (dB) dan dBA (frekwensi sekitar 3-6
kHz, yang mana telinga manusia adalah yang paling sensitif).
23
2.3.7. Konektor
Sensor dihubungkan ke NXT brick menggunakan suatu 6-position modular
connector yang mengutamakan kedua antarmuka digital dan analog. Antarmuka
yang analog adalah backward-compatible (dengan menggunakan suatu adapter)
dengan Robotics Invention System yang lama. Antarmuka yang digital mampu
untuk kedua komunikasi I2 C dan RS-485.
Gambar 2.16. NXT sensor interface pin-out
2.3.8. Komponen Tambahan
Selain komponen utama, ada juga komponen tambahan untuk membuat
robot lego mindstorms NXT. Komponen-komponen yang terdapat di robot lego
mindstorms NXT secara lengkap, yaitu :
24
Gambar 2.17. Komponen robot NXT
2.4.
Program NXT-G
Untuk menjalankan robot NXT, pertama-tama kita harus memprogram
robot tersebut dengan program yang kita inignkan. Ada banyak bahasa
pemrograman yang dapat digunakan untuk memprogram NXT, salah satunya
adalah NXT-G. NXT-G atau LEGO MINDSTORMS Education NXT adalah
software untuk memprogram NXT Brick dari komputer yang dapat dilakukan
secara grafikal. Perangkat lunak ini adalah cukup untuk pemrograman dasar,
seperti
driving
motor,
membuat
sensor
sebagai
masukan/input,
membuat
kalkulasi/perhitungan, dan mempelajari struktur program sederhana dan aliran
kontrol. MINDSTORMS NXT digunakan untuk menciptakan perangkat lunak
yang mengendalikan tindakan dari perangkat keras robot. Software NXT
MINDSTORMS adalah suatu sistem instruksi assembling visual/icon. Aliran arah
yang pada umumnya bergerak dari kiri ke kanan. Perangkat lunak ini adalah suatu
contoh dari suatu program yang di-compile. Program yang dibuat di NXT harus
25
di-compile dan di-download ke NXT Brick sebelum robot melaksanakan program
itu.
Gambar 2.18. Tampilan awal program NXT-G
Gambar di atas merupakan overview dari software NXT-G. Pada bagian
yang bernomor 1 (satu) adalah bagian untuk memulai suatu program baru.
Sebelum memulai, nama file dapat diubah terlebih dahulu, setelah itu tekan
tombol “Go” untuk menuju ke lembar kerja baru. Untuk bagian yang bernomor 2
(dua), jika kita sebelumnya telah memiliki file program, maka dapat kita buka
dengan cara memilih nama file yang kita punya terlebih dahulu sebelum menekan
tombol “Go”
26
Gambar 2.19. Tampilan lembar kerja baru
Gambar di atas adalah gambar saat kita menekan tombol “Go” pada bagian
membuat lembar kerja baru. Block function yang dapat digunakan untuk
memprogram adalah yang berada di sebelah kiri. Cara untuk memprogramnya
cukup dengan klik blok fungsi yang kita inginkan kemudian di-drag menuju awal
rangkaian program “star”, kemudian letakkan di tempat yang disediakan.
Gambar 2.20. Memulai program di NXT-G
27
Setelah kita memasang blok, maka panel bagian bawah akan muncul
parameter dari blok tersebut (masing-masing blok memiliki parameter sendiri),
dari parameter tersebut, dapat kita atur berbagai kondisi yang dapat terjadi sesuai
dengan keinginan kita. Berikut ini adalah penjelasan beberapa Block yang akan
digunakan untuk program pada project ini.
2.4.1 Move Block
Gambar 2.21. Move block
Salah satu block yang dapat kita pakai untuk memprogram robot adalah
Move Block. Move Block memiliki fungsi untuk membuat motor pada robot
bekerja (maju atau mundur). Jika disesuaikan dengan model robot, kerja motor
dapat membuat variasi gerak pada robot. Selain maju dan mundur, robot juga
dapat diperintahkan berbelok hanya dengan menggunakan satu blok saja.
Biasanya untuk membuat hasil yang baik, untuk melakukan belok digunakan dua
buah move block.
28
Gambar 2.22. Parameter move block
Gambar di atas adalah parameter yang terdapat pada Move Block. Pada
parameter tersebut, dapat kita atur port motor mana saja yang ingin dijalankan,
arah gerak motor, steering pada motor, kecepatan gerak motor, durasi gerak
motor, dan perintah sebelum melanjutkan ke block berikutnya.
2.4.2. Switch Block
Switch Block merupakan sebuah blok yang memiliki kondisi lebih dari
satu. Dalam beberapa bahasa pemograman lain logika dari switch block ini sama
dengan logika if…then..else. Switch block ini juga memiliki dua control yang
berbeda, yaitu sensor dan value. Pada switch block ini, program yang akan
berjalan adalah program pada kondisi yang telah terpenuhi. Jika sudah terpenuhi
satu kondisi, maka program itu saja yang akan berjalan sampai switch block
menemukan kondisi berikutnya, namun jika hanya 1(satu) kondisi sajayang
terpenuhi sampai akhir, maka program yang terdapat pada kondisi lainnya tidak
akan berjalan. Berikut adalah gambar kedua switch block tersebut.
29
Gambar 2.23. Switch block dengan kontrol sensor dan value
Untuk switch block yang menggunakan kontrol sensor, parameternya
tergantung dari jenis sensor yang digunakan. Untuk blok yang menggunakan
kontrol value, parameternya tergantung pada tipe dari value yang digunakan.
Berikut adalah masing- masing parameter dari switch block tersebut.
Gambar 2.24. Parameter switch block dengan control sensor
Gambar 2.25. Parameter switch block dengan control value
30
2.4.3. Loop Block
Loop block berfungsi untuk melakukan perulangan pada suatu program.
Pada beberapa bahaas pemograman lain, logika loop block sama dengan dengan
logika repeat….until. Loop block juga memiliki beberapa kontrol, yaitu forever,
sensor, time, count, dan logic. Berikut adalah gambar-gambarnya.
Gambar 2.26. Loop block dengan control forever, sensor, time, count, dan logic.
Masing-masing loop block tersebut memiliki parameter yang hampir sama,
terutama yang memiliki control time dan count. Untuk control logic, syarat yang
dapat dimasukkan hanya true dan false saja. Untuk control sensor, parameternya
tergantung dari masing-masing jenis sensor-nya. Untuk control forever, program
akan
diulang
selamanya,
untuk
menghentikannya,
kita
harus
melakukan
terminating program langsung pada robot. Berikut adalah parameter loop block
dengan control time.
31
Gambar 2.27. Parameter loop block dengan control time
2.4.4. Download, Run, dan Stop
Setelah selesai membuat program, maka program tersebut dimasukkan ke
dalam brick dengan cara menggunakan ikon di bawah ini. Namun, harus
menggunakan kabel data memindahkan program dari komputer ke brick.
1
2
3
4
Gambar 2.28. Ikon untuk memasukkan program ke brick
Gambar no 1 di atas merupakan ikon untuk menampilkan NXT window,
seperti gambar di bawah ini.
32
Gambar 2.29. NXT window
Gambar no 2 adalah ikon untuk download dan run selected. Ikon ini
berfungsi
untuk
memasukkan
program
ke
dalam
brick
dan
langsung
menjalankannya, namun program yang dimaksud adalah program tertentu yang
sudah dipilih saja, bukan seluruh program.
Gambar no 3 adalah ikon untuk download seluruh program dalam file
yang sedang dibuka. Apabila menggunakan ikon ini, robot tidak akan langsung
bergerak sesuai program, karena hanya memindahkan file saja.
Gambar no 4 adalah ikon stop. Digunakan untuk menghentikan program
yang sedang dijalankan.
33
Gambar no 5 adalah ikon download and run. Ikon ini berfungsi untuk
menyimpan program yang sudah dibuat dalam satu file ke dalam memory brick
dan langsung menjalankan program tersebut.
34
Download