bab iii. implementasi robot kendali jarak · pdf fileroda penggerak utama ialah dua roda besar...

20
Bab III. Implementasi Robot Kendali Jarak Jauh III.1. Disain Global Diagram blok dari sistem robot kendali jarak jauh yang dikembangkan dalam tugas akhir ini diperlihatkan dalam Gambar III.1 berikut. Gambar III.1 Diagram blok sistem robot kendali jarak jauh. Mikrokontroller pada robot memberi sinyal pada driver motor berdasarkan data dari penerima RF (RF receiver) dan kondisi sensor micro switch. Gambar yang ditangkap oleh kamera robot dikirim ke pengontrol pusat (komputer beserta radio TV receiver dan pengirim/transmitter RF). Komputer, baik secara otomatis maupun perintah dari operator sesuai interpretasi gambar yang diterima, mengirim perintah gerak ke pengirim RF melalui port parallel yang akan diterima oleh penerima RF. III.2. Rangka Robot Rangka robot menggunakan enam roda dengan tipe kemudi differential drive, diperlihatkan dalam Gambar III.2. (a) (b) Gambar III.2 Disain rangka robot, (a), dan foto rangka robot, (b). gap Roda utama Roda penopang Parallel port Personal Computer RF Transmitter RF Receiver Micro- controller Driver motor Radio TV Receiver Wireless Camera Sensor Micro SW 15

Upload: duongthien

Post on 11-Feb-2018

218 views

Category:

Documents


4 download

TRANSCRIPT

Bab III. Implementasi Robot Kendali Jarak Jauh

III.1. Disain Global

Diagram blok dari sistem robot kendali jarak jauh yang dikembangkan dalam tugas akhir

ini diperlihatkan dalam Gambar III.1 berikut.

Gambar III.1 Diagram blok sistem robot kendali jarak jauh. Mikrokontroller pada robot memberi sinyal pada driver motor berdasarkan data dari

penerima RF (RF receiver) dan kondisi sensor micro switch. Gambar yang ditangkap oleh

kamera robot dikirim ke pengontrol pusat (komputer beserta radio TV receiver dan

pengirim/transmitter RF). Komputer, baik secara otomatis maupun perintah dari operator

sesuai interpretasi gambar yang diterima, mengirim perintah gerak ke pengirim RF melalui

port parallel yang akan diterima oleh penerima RF.

III.2. Rangka Robot

Rangka robot menggunakan enam roda dengan tipe kemudi differential drive,

diperlihatkan dalam Gambar III.2.

(a)

(b)

Gambar III.2 Disain rangka robot, (a), dan foto rangka robot, (b).

gap

Roda utama Roda penopang

Parallel port

Personal Computer

RF Transmitter

RF Receiver

Micro-controller

Driver motor

Radio TV Receiver

Wireless Camera

Sensor Micro SW

15

Roda penggerak utama ialah dua roda besar yang berada di tengah, sedangkan empat roda

kecil lain di depan dan di belakang digunakan untuk penopang saja (free wheel, tidak

bermotor). Permukaan bawah roda utama diturunkan sedikit dari permukaan bawah roda

penopang untuk memastikan roda utama menghasilkan traksi4 optimal, yakni agar roda

utama menopang sebagian besar berat robot, dan untuk memperbesar sudut elevasi yang

bisa didaki oleh robot. Sudut elevasi ini sama dengan sudut garis singgung roda utama

dengan roda penopang yang terangkat, seperti pada Gambar III.3 berikut.

θ

Gambar III.3 Sudut garis singgung antara roda utama dengan roda penopang yang terangkat sama dengan

sudut elevasi yang dapat didaki robot.

III.3. Pengontrol Pusat

Pengontrol pusat dapat bervariasi tergantung dari fungsi yang akan dikerjakan, apakah

mode manual atau otomatis. Walaupun begitu, konfigurasi hardwarenya tetap,

sebagaimana ditunjukkan dalam Gambar III.4 berikut.

CPU (processing) Monitor

Port parallel Transmitter

Radio TV Receiver

TV Tuner Card

Gambar III.4 Konfigurasi hardware pengontrol pusat.

Pada sub bab ini hanya akan dijelaskan fungsi pengontrol pusat sebagai pengontrol

manual, pengontrolan otomatis akan dijelaskan pada Bab III.7 Sistem Kamera dan Contoh

4 Traksi ialah jumlah dorongan maksimum yang dapat diberikan pada roda sebelum mengalami slip. Traksi didefinisikan sebagai perkalian antara berat yang menekan roda (umumnya 25% dari berat kendaraan) dengan koefisien gesekan, yang bergantung pada bahan ban dan permukaan jalan [16].

16

Aplikasi Robot Vision Sederhana. Gambar III.5 berikut memperlihatkan antarmuka

software pengontrol manual.

(a)

(b)

Gambar III.5 Tampilan antarmuka kendali manual (a) dan tampilan dari kamera robot (b).

Pengaksesan port parallel menggunakan dynamic link library inpout32.dll yang

mengandung fungsi inp32 (alamatport) untuk mengambil data dari port parallel

dengan alamat alamatport dan fungsi out32 (alamatport, data) untuk

mengirim data data ke port parallel dengan alamat alamatport. Kaki-kaki pada

parallel port yang digunakan ialah sebagai berikut.

D0D1D2D3D4

2 3 4 5 6

Data 4-bit TE

Data yang dikirim untuk tiap instruksi ialah sebagai berikut, ditunjukkan dalam Tabel III.1.

Tabel III.1 Data yang dikirim untuk tiap instruksi.

Instruksi Data 4-bit 0x01 Maju 0x02 Kiri1step 0x03 Kanan1step 0x04 Mundur 0x05 Stop motor 0x06 Maju1step 0x07 Kiri 0x08 Kanan 0x09 Mundur1step 0x0A Kamera up 0x0B Kamera down 0x0C Kamera stop

17

Untuk mengirim satu instruksi, digunakan perintah berikut. Out Val("&H" + Str(alamatport)), data + 16 Out Val("&H" + Str(alamatport)), data Tunda (100) Out Val("&H" + Str(alamatport)), data + 16 Perintah tersebut akan memicu pengiriman data karena pin TE diberi logika 1-ke-0.

Pengambilan gambar dari kamera melalui TV tuner dijelaskan pada sub sub bab Bab III.7.a

Sistem Kamera.

III.4. Sistem Telemetri Radio dan Pengontrol

Skematik global sistem telemetri radio dan pengontrol diperlihatkan pada Gambar III.6

berikut.

Transmitter Receiver

uC AT89S52

Driver motor DC (kamera dan roda)

Sensor micro switch

Port parallel 4-bit

Valid transmission

Transmit enable

Gambar III.6 Skematik global sistem telemetri dan pengontrol. a. Sistem Telemetri Radio

Pemancar/transmitter dan penerima/receiver menggunakan modul TLP434 dan RLP434,

diperlihatkan dalam Gambar III.7, buatan Laipac Technology Inc, Canada. Modul tersebut

menggunakan modulasi ASK (amplitude shift keying) dengan frekuensi carrier 315.0 MHz

(314.8 – 315.2 MHz) [12]. Agar penerima tidak mengeksekusi data yang diterima dari

gelombang radio lain dengan frekuensi carrier yang sama, maka sinyal yang dikirim

pemancar diberi alamat tertentu, yakni sinyal terdiri dari 8 bit alamat dan 4 bit data. Proses

pemberian alamat ini dilakukan oleh IC encoder HT12E dan selektor alamat oleh IC

decoder HT12D dari Holtek Semicondictor Inc., Taiwan.

(a)

1 : VCC 2 : GND 3 : RF Output 4 : Code Input

(b)

1 : GND 2 : Digital Output 3 : Linear Output 4 : VCC 5 : VCC 6 : GND 7 : GND 8 : Antenna

Gambar III.7 Modul pemancar TLP434, (a); dan modul penerima RLP434, (b).

16.1 mm

13.5 mm

1 4

43.5 mm

10.5 mm

18

Kaki-kaki IC encoder HT12E dan decoder HT12D untuk kemasan PDIP diperlihatkan

dalam Gambar III.8 dan deskripsi tiap kaki pada kedua IC tersebut diberikan dalam Tabel

III.2.

(a)

(b)

Gambar III.8 Kaki-kaki IC encoder HT12E, (a); dan kaki-kaki IC decoder HT12D. Tabel III.2 Deskripsi kaki-kaki IC encoder HT12E dan decoder HT12D.

Pin HT12E HT12D Deskripsi A0 – A7 √ √ Kaki input untuk pengesetan alamat 8-bit. AD8 – AD11 D8 – D11

√ √

Kaki input untuk data 4-bit. Kaki output untuk data 4-bit.

DOUT √ Output data serial encoder. TE √ Transmission enable, active low. Kaki DOUT

mengeluarkan data serial ketika kaki TE diberi logika 0 atau transisi 1-ke-0.

DIN √ Kaki input data serial. VT √ Valid transmission, active high. Berlogika 1 ketika

data dinyatakan valid, dan akan berlogika 0 jika kode alamat tidak sesuai atau tidak ada sinyal yang diterima.

OSC1 OSC2

√ √

√ √

Kaki input osilator. Kaki output osilator.

VSS √ √ Catu daya negatif atau ground. VDD √ √ Catu daya positif.

Dengan demikian, rangkaian untuk pemancar dan pemancar ialah sebagai berikut,

ditunjukkan dalam Gambar III.9.

19

(a)

(b)

Gambar III.9 Skematik untuk pemancar, (a); dan penerima, (b).

Antenna yang digunakan ialah antenna whip, dibuat dari kabel tunggal dengan panjang

ialah ½ panjang gelombang carrier. 8

12 6 -1

1 1 3.00 10 m/spanjang antenna 0.476m2 2 315 10 s

cf

λ ×= ⋅ = = =

×

Data 4-bit pada pemancar diberikan oleh port parallel dan kaki TE dipicu transisi 1-ke-0

oleh kaki Data 4 port parallel. Sedangkan data 4-bit yang diterima penerima diteruskan ke

mikrokontroller untuk diolah. Tiap kali data diterima, dan dinyatakan valid oleh decoder,

kaki VT menghasilkan transisi 0-ke-1. Dengan bantuan gerbang NOT yang dibuat dari

transistor NPN, transisi ini diubah menjadi 1-ke-0 dan memicu terjadinya interupsi

eksternal melalui kaki INT0 pada mikrokontroller AT89S52.

Agar tidak terjadi salah baca, frekuensi osilator encoder perlu disesuaikan dengan

frekuensi osilator decoder, yakni (decoder) 50 (encoder)OSC OSCf f≈ × [17,18]. Frekuensi

osilator ini dipengaruhi oleh hambatan resistor pada OSC1 dan OSC2 dan tegangan catu

daya pada antara VCC dan GND, diperlihatkan dalam Gambar III.10. Pada sistem yang

dibangun, tegangan catu daya ialah 5V, dengan pertimbangan ketersediaan nilai hambatan

resistor di pasaran, maka dipilih hambatan resistor pada encoder sebesar 820 kΩ ± 5% dan

20

decoder sebesar 43 kΩ ± 5% yang menghasilkan frekuensi osilator encoder sebesar 3.50

kHz dan decoder sebesar 175 kHz. Selain itu, pemilihan nilai frekuensi osilator pada nilai

tengah daerah kerja encoder/decoder ialah karena jika frekuensi osilator terlalu kecil maka

jangkauan pemancar akan membesar tetapi laju pengiriman data melambat, sedangkan jika

frekuensi osilator terlalu besar maka laju pengiriman data makin cepat tetapi jangkauan

pemancar akan mengecil [19].

(a)

(b) Gambar III.10 Kurva frekuensi osilasi terhadap tegangan catu daya untuk encoder HT12E, (a); dan

decoder HT12D, (b). [17,18]

21

Data yang dikirim oleh encoder memiliki komposisi sebagai berikut, ditunjukkan dalam

Gambar III.11(a), yakni terdiri dari 1/3 bit sinkronisasi + 8-bit periode alamat + 4-bit

periode data yang menghabiskan 1 siklus + 8 bit × 3 siklus/bit + 4 bit × 3 siklus/bit = 37

siklus. Lama satu siklus dalam sistem yang dibangun ialah 1/3.50 kHz = 0.286 milidetik.

Sehingga 1 word menghabiskan waktu 37 siklus × 0.286 mdet/siklus = 10.58 milidetik.

Jika pin TE dilowkan selama kurang dari waktu untuk 1 word, maka encoder akan

mengirim 4 word sebanyak satu kali, sedangkan jika pin TE dilowkan terus maka encoder

akan mengirim word terus menerus sampai pin TE dihighkan kembali.

(a)

(b)

(c)

Gambar III.11 Komposisi informasi untuk 1 word, (a); bentuk gelombang alamat/data, (b); dan pewaktuan transmisi, (c); untuk encoder HT12E. [17]

b. Pengontrol

Pengontrol menggunakan mikrokontroller AT89S52, digunakan untuk menerjemahkan

data yang diterima penerima menjadi gerakan roda utama dan kamera, serta

menghindarkan robot dari tabrakan. Gambar III.12 memperlihatkan skematik dari

pengontrol.

22

Gambar III.12 Skematik pengontrol.

Output kaki VT (valid transmission) dari penerima dimasukan ke gerbang NOT sebelum

masuk ke kakai INT0 karena ketika transmisi dinyatakan valid, maka VT berubah dari

logika 0 ke 1 [18], agar terjadi interupsi eksternal maka digunakan gerbang NOT untuk

mengubah transisi menjadi 1-ke-0.

Untuk mendeteksi tabrakan, yakni tabrakan pada bagian depan dan belakang ataupun

karena kamera terangkat terlalu tinggi atau terlalu rendah, digunakan micro switch sebagai

sensor sentuhan. Gambar III.13 memperlihatkan bentuk fisik micro switch dan fungsi tiap

kakinya.

(b)

C NO NC

(a) Gambar III.13 Bentuk fisik micro switch (a) dan fungsi kaki-kakinya (b). Ketika micro switch tidak

ditekan maka kaki C terhubung ke NO, ketika ditekan maka kaki C terhubung ke NC; yakni saklar SPDT.

Gambar III.14 memperlihatkan pemasangan sensor micro switch pada mobile robot.

23

(b)

(a)

depan

belakang atas

bawah

: sensor micro switch

kamera

(c)

(d)

Gambar III.14 Koneksi sensor micro switch pada robot (a), pemasangan sensor micro switch pada kamera (b), pada bagian depan (c), dan pada bagian belakang (d) robot.

Kaki C (common) pada micro switch dihubungkan sebagai output sensor tersebut, kaki NO

(normaly open) dihubungkan ke GND, dan kaki NC (normaly closed) dihubungkan ke

pull-up resistor, lihat Gambar III.12. Sehingga ketika tidak ada satupun dari sensor micro

switch yang tertekan, maka input pada gerbang AND-4-input ialah 1 semua. Jika satu saja

sensor micro switch tertekan sehingga logika keluaran dari sensor tersebut menjadi 0

(karena ketika tertekan terhubung ke GND), maka keluaran gerbang AND menjadi 0

(transisi 1-ke-0) dan menimbulkan interupsi eksternal. Keluaran sensor micro switch depan

dan belakang dihubungkan ke kaki P2.6 dan P2.7 untuk mengetahui bagian robot mana

yang menabrak, ditambahkan gerbang NOT untuk memastikan sinyal tidak jatuh tegangan

(sebagai buffer-not).

Diagram alir dari program pada mikrokontroller untuk menerjemahkan data dari komputer

dan menghindari tabrakan diperlihatkan dalam Gambar III.15 berikut.

24

Eksekusi (id_cmd): Id_cmd Aksi 0x01 Maju 0x02 Kiri1step 0x03 Kanan1step 0x04 Mundur 0x05 Stop motor 0x06 Maju1step 0x07 Kiri 0x08 Kanan 0x09 Mundur1step 0x0A Kamera up 0x0B Kamera down 0x0C Kamera stop

Aksi: Motor kiri Motor kanan mL1 mL2 mR1 mR2 Maju 1 0 1 0 Mundur 0 1 0 1 Kiri 0 1 1 0 Kanan 1 0 0 1 Stop 1 1 1 1

Kamera mC1 mC2 Up 1 0 Down 0 1 Stop 1 1

Aksi XXX1step: XXX Delay(127) stop

Main

Gambar III.15 Diagram alir pada mikrokontroller.

Inisialisasi Beres = 1

Beres = 0?

Eksekusi (id_cmd)

ya tidak

End

Interupsi 0 : EXT0 Dari receiver

Beres = 0x00 P1 = 0xFF // pull-up Id_cmd = P1 and 0x0F

Interupsi 1 : EXT1 Dari micro switch

stop kamera senFr = 1 // pull-up senRe = 1 // pull-up

Mundur1step

Maju1step

Beres = 0x01

senFr = 1?

senRe = 1?

RETI

RETI

EX0=1, IT0=1 EX1=1, IT1 = 1 EA = 1

Inisialisasi

RETI

25

Pada saat robot pertama kali dinyalakan, mikrokontroller mengeksekusi program utama

(main). Terdapat dua variabel global, yakni beres dan id_cmd.

• Variabel beres, digunakan untuk memberi tanda apakah terdapat data dari

penerima RF yang belum dieksekusi. Jika ada maka diberi nilai 0x00 dan jika

tidak (artinya data telah dieksekusi) maka diberi nilai 0x01.

• Variabel id_cmd, digunakan untuk menampung data yang diterima oleh penerima

RF. Subrutin eksekusi akan mengirim data ke driver motor yang bersesuaian

dengan data yang diterima.

Program utama menginisialisasi interupsi yang akan diaktifkan pada mikrokontroller,

yakni interupsi eksternal 0 dan eksternal 1 dengan sinyal pemicu bertipe transisi 1-ke-0,

dan memberi nilai awal 0x01 pada variabel beres. Kemudian program utama mengecek

apakah variabel beres bernilai 0x00. Jika tidak, maka program utama kembali

mengecek nilai variabel beres. Jika ya, maka program utama memanggil subrutin

eksekusi untuk menggerakan motor berdasarkan nilai variabel id_cmd.

Subrutin interupsi 0 : EXT0 akan dipanggil ketika terdapat data baru yang diterima

oleh penerima RF, yakni ketika pin ~VT bertransisi dari 1-ke-0. Variabel beres akan

diberi nilai 0x00 untuk menandakan ada data baru dan nibble rendah pada port 1 akan

disalin ke variabel id_cmd.

Subrutin interupsi 1 : EXT1 akan dipanggil ketika minimal ada satu dari sensor

micro switch yang tertekan. Subrutin ini akan menghentikan gerak kamera dan

menggerakan robot satu step ke depan jika sensor micro switch belakang tertekan atau satu

step ke belakang jika sensor micro switch depan tertekan. Subrutin rutin ini berguna untuk

menghindarkan robot dari objek penghalang dan menghentikan gerak kamera jika telah

menyimpang melewati batas tertentu (untuk mencegah motor kamera terganjal).

III.5. Sistem Penggerak Roda dan Kamera

Sistem penggerak roda dan kamera menggunakan driver L293D. Dengan pemasangan

motor DC seperti pada Gambar III.16 (b), maka satu IC L293D dapat digunakan untuk dua

buah motor DC.

26

(a)

(b) Gambar III.16 Rangkaian internal IC driver L293D [27] (a) dan rangkaian yang digunakan untuk

menggerakan satu motor DC 24 V (b), VS ialah 24 V.

Arah putaran motor dikendalikan oleh sinyal TTL pada IN1, IN2, dan EN1 (pada pasangan

lain: IN3, IN4, dan EN2). Jika kaki EN1 diberi logika 0, maka keluaran 3-state buffer akan

berada pada keadaan Impedansi Tinggi dan OUT1 memiliki tegangan yang sama dengan

OUT2 sehingga motor berhenti. Jika kaki EN1 diberi logika 1 dan kaki IN1 diberi logika 0,

maka tegangan OUT1 ialah tegangan Ground. Sedangkan jika kaki EN1 diberi logika 1

dan kaki IN1 diberi logika 0, maka OUT1 ialah tegangan VS [27]. Tabel III.3 berikut

meringkas kondisi kaki-kaki input serta reaksi pada motor DC.

Tabel III.3 Reaksi motor terhadap logika input

EN1 IN1 IN2 Reaksi motor 0 X X Diam 1 0 1 Berputar ke arah-1 1 1 0 Berputar ke arah berlawanan arah-1 1 0 0 Diam 1 1 1 Diam

X : don’t care, 0 atau 1

Gambar III.17 berikut memperlihatkan skematik driver motor DC yang digunakan. Hanya

sepasang output saja yang digunakan untuk DR2, yakni driver untuk motor kamera.

27

Gambar III.17 Skematik driver motor DC yang digunakan. Mot supply ialah catu daya 24V untuk motor

utama, dan motcam supply ialah catu daya 12V untuk motor kamera.

III.6. Catu Daya

Sumber catu daya ialah dua buah batere kering 12 V / 2 Ah yang disusun seri sehingga

setara dengan batere 24 V / 2 Ah [5] dan satu batere 12 V /1.2 Ah (khusus untuk penggerak

motor kamera). Sistem catu daya robot yang dibangun terdiri dari dua bagian yakni switch

charging dan regulator.

Switch Charging

Switch/saklar ini berguna untuk mengubah mode penggunaan batere dengan mode

charging/isi ulang, sehingga tidak perlu melepas batere untuk diisi ulang, cukup menekan

tombol. Gambar III.18 memperlihatkan skematik rangkaian switch charging.

Jika mode penggunaan batere (secara seri) yang aktif, maka LED D1 akan menyala.

Sedangkan jika mode charging yang aktif, maka LED D2 dan LED D3 akan menyala (jika

tidak terjadi masalah pada kabel ke batere 1 dan batere 2).

28

Gambar III.18 Skematik switch charging.

Regulator

Regulator yang digunakan terdiri dari regulator 5 V arus rendah (untuk rangkaian

mikrokontroller), regulator 5 V arus tinggi (untuk rangkaian penerima, catu daya TTL

driver motor, dan rangkaian sensor micro switch), dan regulator 8 V arus tinggi (untuk catu

daya kamera wireless). Regulator 15 V arus tinggi digunakan untuk menurunkan tegangan

dari 24 V menjadi 15 V sebelum masuk ke regulator 5 V dan 8V agar tidak terjadi

pemanasan berlebih akibat beda tegangan yang terlalu tinggi antara tegangan input dengan

tegangan teregulasi.

Batere 12V 2 Ah

Batere 12V 2 Ah

Batere 12V 1.2 Ah

Switch charging

Regulator 15 V arus tinggi

Regulator 5 V arus rendah

Regulator 5 V arus tinggi

Regulator 8 V arus tinggi

Mikrokontroler

Receiver, driver, sensor

Wireless camera

Motor kamera

Driver

Gambar III.19 Diagram blok catu daya sistem robot.

Regulator 5 V arus rendah menggunakan IC regulator 7805 (arus maksimal 1 A [26])

sebagai berikut. Kapasitor C1 dan C2 berguna untuk meratakan tegangan input dan output

(sebagai low pass filter).

29

Gambar III.20 Regulator 5 V arus maksimal 1 A.

Regulator 5 V, 8 V, dan 15 V arus tinggi menggunakan IC regulator 7805, 7808, dan 7815

ditambah dengan transistor PNP BD536 sebagai penguat arus.

Gambar III.21 Regulator arus tinggi. [26] Sehingga arus output menjadi sebagai berikut.

( ), 1

1 , 1 / 1OUT REG C Q

REG Q REG BE Q

I I I

I I V Rβ

= +

= + ⋅ −

Makin besar arus yang ditarik oleh regulator (akibat beban membesar) maka makin besar

arus yang ditarik dari basis transistor PNP, sehingga makin besar arus yang melintasi

emmiter-collector yang akan menambah arus output.

III.7. Sistem Kamera dan Contoh Aplikasi Robot Vision Sederhana

a. Sistem Kamera

Kamera yang digunakan ialah wireless camera dengan spesifikasi sebagai dalam Tabel

III.4 berikut.

30

Gambar III.22 Kamera wireless dan penerima RC100A+208CWA. [25] Tabel III.4 Spesifikasi kamera Image sensor 1/3” OmniVision CMOS Validity pixel PAL 628×582 / NTSC 510×492 Horizontal definition 320 line Visual angle 54° Minimum illumination 3 Lux/F1.2 Frequency 1000 – 1250 MHz Transmission power 50 mW Open transmission distance 100 m Power DC 8 V / 200 mA Work temperature -10 to 50°C Size 25×35×15 mm Weight 65 g Sumber : [25].

Modul penerimanya dihubungkan ke TV tuner ePro dan diakses dari Visual Basic 6

menggunakan active X control VideoCap.ocx buatan Viscom Software (dapat

didownload di http://www.viscomsoft.com/demo/videocapprodemosetup.exe atau melalui

http://www.pcdownloadworld.com/development-tools/video/videocap-pro-video-capture-

activex-ocx.htm).

b. Contoh Aplikasi Robot Vision Sederhana

Pada tugas akhir ini diambil contoh robot vision sederhana untuk mengikuti garis hitam

dan untuk mengikuti bola merah. Contoh ini dimaksudkan untuk menunjukkan bahwa

sistem robot kendali jarak jauh yang dibangun dapat digunakan sebagai sistem robot

navigasi berbasis kamera.

Pengikut Garis Hitam

Untuk mengetahui keberadaan garis hitam, dilakukan transformasi grayscale diikuti

dengan proses binarisasi. Aturan yang digunakan untuk memandu robot agar tetap

31

mengikuti garis hitam ialah dengan menghitung jumlah pixel warna hitam pada separuh

kiri gambar dan pada separuh kanan gambar sebagai berikut.

kanan jika 100arah belok

kiri jika 100R L

L R

S SS S

− >⎧= ⎨ − >⎩

Dengan SR ialah jumlah pixel warna hitam pada separuh gambar kanan, dan SL ialah

jumlah pixel warna hitam pada separuh gambar kiri. Setelah melakukan aksi arah belok,

robot maju satu step/langkah. Jika kondisi di atas tidak terpenuhi, maka robot hanya

mengambil aksi maju satu langkah. Gambar III.23 berikut menunjukkan kondisi yang

mungkin terjadi.

SL=2221, SR=2152

(a)

SL=2225, SR=2729

(b)

SL=3111, SR=2038

(c) Gambar III.23 Kondisi ketika robot mengambil aksi maju saja (a), aksi belok kanan (b), dan aksi belok

kiri (c). Pengikut Bola Merah

Aksi mengikuti bola merah diperoleh dengan menggerakkan robot agar posisi pusat bola

merah berada di tengah pusat screen kamera. Dengan demikian proses yang dilakukan

ialah sebagai ditunjukkan dalam Gambar III.24 berikut.

Set point: Area 5

Pengontrol: Aksi gerak

Output: Posisi robot terhadap bola

Kamera: Ambil gambar

Processing: Filter warna merah Pusat warna merah

Area 5 ialah pusat screen

kamera.

Gambar III.24 Diagram alir proses mengikuti bola merah.

32

Robot mengambil gambar yang tertangkap oleh kamera. Gambar tersebut kemudian difilter

tem robot belum memiliki sensor posisi dan sudut, maka penentuan aksi gerak

untuk meloloskan warna merah saja dan dicari titik pusat warna merah. Titik pusat ini

dibandingkan apakah sudah berada dalam area set point atau belum. Jika belum maka

diambil aksi gerak robot untuk mendekati pusat warna merah yang sebanding dengan jarak

pusat warna terhadap kamera robot.

Karena sis

(sebagai respon kontrol semi-proporsional) dilakukan dengan percobaan berapa langkah

yang diperlukan untuk mencapai posisi tertentu, dipilih sembilan area, seperti pada

Gambar III.25 dan Tabel III.5.

Gambar III.25 Area percobaan pada lantai untuk menentukan juml step aksi gerak.

abel III.5 Hasil percobaan jumlah step yang diperlukan untuk aksi gerak.

ah TNomor area Step yang diperlukan

1 Kiri 3 step Maju 7 step

2 Maju 7 step 3 Kanan 3 step

Maju 7 step 4

Kiri 3 step Maju 2 step

5 (kondisi t) targe6 Kanan 3 step

Maju 2 step 7

tep Kiri 3 step Mundur 2 s

8 Mundur 3 step 9 Kanan 3 step

Mundur 2 step

a merah dimaksudkan untuk meloloskan warna merah saja, yakni nilai warna Filter warn

dalam rentang RGB(130-255, 0-90, 0-90), nilai ini diperoleh dari percobaan mencocokan

warna gambar bola merah dengan warna hasil komposisi RGB. Gambar III.26 berikut

33

menunjukkan hasil pemfilteran warna merah terhadap gambar beberapa bola dengan warna

berbeda.

(a)

(b)

Gambar III.26 Gambar asli (a), dan gambar setelah proses filter warna merah (b). Cara sederhana ini berhasil mensegmentasi bola merah.

Penentuan pusat warna merah meniru proses penentuan pusat massa benda diskrit, yakni

pixel warna merah dimodelkan sebagai benda dengan massa 1 satuan sedangkan pixel

warna hitam dimodelkan sebagai ruang kosong (massa 0 satuan).

tinggilebar

,1 1

tinggi lebar

,1 1

tinggilebar

,1 1

i ji j

cm

i jj i

cm

i ji j

m ix

M

m jy

M

M m

= =

= =

= =

⎛ ⎞⎛ ⎞⋅⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠⎝ ⎠=

⎛ ⎞⎛ ⎞ ⋅⎜ ⎟⎜ ⎟⎝ ⎠⎝ ⎠=

=

∑ ∑

∑ ∑

∑ ∑

Pada Gambar III.26(b), pusat screen kamera ditandai dengan perpotongan dua garis hijau

dan pusat warna merah ditandai dengan perpotongan dua garis merah. Pada implementasi

ini, jika jumlah pixel warna merah kurang dari 500 maka benda tersebut tidak diartikan

sebagai bola merah. Hal ini untuk menghindari keterdeteksian tepian bola warna pink

sebagai warna merah (tetapi dengan jumlah pixel merah kurang dari 500).

34