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 manusia 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
sistem kontrol navigasi otonom yang tersedia sekarang ini termasuk sistem
navigasi berdasarkan laser dan VSLAM (Visual Simulraneous Localization 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
6|Page
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
perusahaan 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 manusia
adalah dalam eksplorasi laut dan eksplorasi antariksa. Untuk tugas-tugas ini,
bentuk tubuh artropoda umumnya disukai. Mark W. Tilden dahulunya spesialis
Laboratorium Nasional Los Alamos, membuat robot murah dengan kaki bengkok
tetapi tidak menyambung, sementara orang lain mencoba membuat kaki kepiting
yang dapat bergerak dan tersambung penuh.
Robot bersayap eksperimental 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.
7|Page
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 ωR dan ωL, maka kecepatan linier roda kanan dan kiri dapat dicari
dengan persamaan berikut :
(1)
(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 :
(3)
(4)
8|Page
Kecepatan linier robot v(t) dan kecepatan rotasi robot ω(t) dapat diketahui
berdasarkan kedua kecepatan linier roda. Secara matrik dapat disajikan sebagai
berikut :
(5)
Persamaan (5) di atas memperlihatkan relasi kinematika langsung antara
kecepatan linier roda-roda robot terhadap kecepatan linier dan angular robotnya,
sedangkan persamaan (6) di bawah memperlihatkan relasi sebaliknya.
(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 :
(7)
(8)
(9)
Pendekatan rumus untuk orientasi, posisi koordinat x, dan koordinat y
berturut-turut sebagai berikut.
(10)
(11)
(12)
9|Page
2.3.
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
seri sebelumnya, yaitu RIS (Robotics Invention System). Robot lego mindstorm
NXT dapat diprogram sesuai dengan keinginan. Adapun beberapa bahasa
pemrograman yang dapat dijalankan dalam lego NXT yaitu NXT-G, Next Byte
Codes (NBC), Not eXactly C (NXC), RobotC, leJOS NXJ, Microsoft Robotics
Studio, dan masih banyak lagi.
Robot Lego ini terdiri dari komponen-komponen yang bisa di lepas
pasang, sehingga kita bisa membuat berbagai bentuk robot, misalnya :
Gambar 2.2. Contoh bentuk robot lego mindstorm NXT
10 | P a g e
Komponen-komponen yang ada di robot lego mindstorm 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 (ARM7TDMI) 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

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
11 | P a g e
2 (dua) processor yang mengerjakan fungsi yang berbeda pada saat bersamaan.
Mikrokontroler ARM7 berfungsi sebagai master controller yang fungsi utamanya
mengatur
jalur
komunikasi.
Fungsi
dari
mikrokontroler
AVR
adalah
pengatur daya, pengatur Pulse Width Modulation (PWM) untuk mngendalikan
ketiga motor, serta Analog to Digital Converter (ADC) dari terminal masukan.
Gambar 2.4. Diagram blok NXT brick
Brick dapat menerima masukan dari 4 sensor, dan menjalankan 3 motor
sekaligus, dengan bentuk seperti di bawah ini.
Gambar 2.5. Brick dengan 4 sensor dan 3 motor
12 | P a g e
Tampilan pada layar LCD brick adalah sebgai berikut :
Gambar 2.6. Tampilan pada layar LCD brick
Brick dapat kita ibaratkan seperti CPU pada komputer, 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.
13 | P a g e
Cara membuat program sederhana langsung pada NXT brick, yaitu :
Gambar 2.7. Cara membuat program pada NXT brick
Contoh pemrograman 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 pemrograman pada brick
14 | P a g e
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 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 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 derajat. 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 di bawah 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
15 | P a g e
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 mindstorm NXT.
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 terlihat 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
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
16 | P a g e
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 mindstorm NXT berbentuk seperti mata. Mata
sebelah kanan berfungsi sebagai pemancar gelombang (transmitter) dan mata
sebelah kiri berfungsi sebagai penerima gelombang (receiver).
Gambar 2.13. Sensor Ultrasonik
2.3.5. Sensor Cahaya
Sensor cahaya adalah sensor yang digunakan untuk mendeteksi dan
mengukur intensitas cahaya atau gelap terang. Sensor cahaya pada lego
mindstorm NXT terdiri dari dua komponen, yaitu LED dan phototransistor.
17 | P a g e
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 dikumpulkan oleh sensor peka cahaya dengan panjang
gelombang semua. HiTechnic memiliki LED putih, dan sebuah chip warna khusus
yang sensitif. Chip ini memiliki tiga daerah sensitif tercakup merah, hijau dan
filter biru. Keuntungan tambahan dari metode HiTechnic dapat mendeteksi warna
cahaya yang dikirim di atasnya (dalam mode pasif, dengan LED putih
mematikan).
2.3.6. Sensor Suara
Sensor suara adalah sensor yang digunakan untuk mendeteksi adanya suara.
Sensor ini disesuaikan dengan kemampuan pendengaran manusia, yaitu antara 20
Hz sampai 20 KHz. Sensor suara pada lego midstorm NXT digunakan untuk
mengukur intensitas suara lingkungan. Sensor ini dapat mendeteksi suara sampai
maksumum 90 desibel (db). Gambar di bawah ini merupakan sensor suara pada
lego mindstorm NXT.
18 | P a g e
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 kenyaringannya 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 dalam desibel (dB) dan dBA
(frekwensi sekitar 3-6 kHz, yang mana telinga manusia adalah yang paling
sensitif).
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 I2C dan RS-485.
19 | P a g e
Gambar 2.16. NXT sensor interface pin-out
2.3.8. Komponen Tambahan
Selain komponen utama, ada juga komponen tambahan untuk membuat
robot lego mindstorm NXT. Komponen-komponen yang terdapat di robot lego
mindstorm NXT seara lengkap, yaitu :
Gambar 2.17. Komponen robot NXT
20 | P a g e
2.4.
Program NXT-G
Untuk menjalankan robot NXT, pertama-tama kita harus memprogram
robot
tersebut
dengan
program
yang
kita
inginkan.
Ada
banyak
bahasa pemrograman yang dapat digunakan untuk memprogram NXT, salah
satunya adalah NXT-G. NXT-G atau LEGO MINDSTROMS Education NXT
adalah software untuk memogram 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 NXTharus dicompile dan di-download ke NXT Brick sebelum Robot melaksanakan program
itu.
Gambar 2.18. Tampilan awal program NXT-G
21 | P a g e
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”.
Gambar 2.19. Tampilan lembar kerja baru
Gambar di atas adalah gambar saat kita menekan tombol “Go” pada bagian
membuat
lembar
untuk memprogram
kerja
adalah
baru.
yang
Block
function
berada
di
yang
sebelah
dapat
kiri.
digunakan
Cara
untuk
memprogramnya cukup dengan klik blok fungsi yang kita inginkan kemudian didrag menuju awal rangkaian program “start”, kemudian letakkan di tempat yang
disediakan.
22 | P a g e
Gambar 2.20. Memulai program di NXT-G
Setelah kita memasang blok, maka pada 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 melakukan program pada project ini.
2.4.1. Move Block
Gambar 2.21. Move block
23 | P a g e
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.
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 blok berikutnya.
2.4.2. Switch Block
Switch Block merupakan sebuah blok yang memiliki kondisi lebih dari
satu. Dalam beberapa bahasa pemrograman lain logika dari switch block ini sama
dengan
logika
if…then…else.
Switch
block ini
juga
memiliki
dua
kontrol 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 saja
24 | P a g e
yang terpenuhi sampai akhir, maka program yang terdapat pada kondisi lainnya
tidak akan berjalan. Berikut adalah gambar kedua switch block tersebut.
Gambar 2.23. Switch block dengan control sensor dan value
Untuk switch block yang menggunakan control sensor, parameternya
tergantung dari jenis sensor yang digunakan. Untuk blok yang menggunakan
control 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
25 | P a g e
2.4.3. Loop Block
Loop block berfungsi untuk melakukan perulangan pada suatu program.
Pada beberapa bahasa pemrograman lain, logika loop block sama dengan logika
repeat…until. Loop block juga memiliki beberapa control, 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.
Gambar 2.27. Parameter loop block dengan control time
26 | P a g e
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 untuk memindahkan program dari komputer ke brick.
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.
Gambar 2.29. NXT window
27 | P a g e
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.
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.
28 | P a g e
Download