Anda di halaman 1dari 9

AUTOMATIC MOBILE ROBOT MENGGUNAKAN DATA KAMERA SEBAGAI

PENGAMBIL GAMBAR JALAN ROBOT


1)

1)

Hanny Kristianto 2)Susijanto Tri Rasmana 3)Madha Christian Wibowo

Program Studi S1 Sistem Komputer, STIKOM Surabaya, email: hanny.kristianto@gmail.com


2) Program Studi S1 Sistem Komputer, STIKOM Surabaya, email: susianto@stikom.edu
3) Program Studi S1 Sistem Komputer, STIKOM Surabaya, email: madha@stikom.edu

Abstraksi, Pada saat ini, sangat sering ditemukan kemajuan teknologi di berbagai bidang. Salah satunya adalah
pengendalian tanpa awak atau yang biasa disebut dengan autopilot. Teknologi pengendalian tanpa awak tersebut
umumnya digunakan pada pesawat komersial dan pada bidang pertahanan negara guna mengendalikan rudal dan
alat perang lainnya. Namun kali ini peneliti memanfaatkan teknologi pengolahan citra untuk membuat suatu
pengendalian mobile robot tanpa awak.
Tugas akhir ini bertujuan untuk membuat mobile robot yang berjalan pada sebuah lintasan dengan
memanfaatkan adanya kamera sebagai pengambil gambar jalan sehingga gambar tersebut dapat diolah oleh
prosessor. Untuk itu mobile robot ini memerlukan microcontroller, prosessor, kamera, relay driver dan motor
DC. Dimana input dari kamera dibaca oleh prosessor lalu diolah dengan teknologi pengolahan citra
menggunakan Open CV. Dengan memanfaatkan library dari Open CV maka proses untuk mengolah gambar
dapat menjadi lebih cepat. Dengan CVScalar dari library OpenCV maka peneliti dapat menentukan nilai pixel
yang berada di jalan atau berada di bahu jalan, sehingga prosessor dapat menentukan keputusan laju dari mobile
robot. Hasil tersebut dikirimkan melalui komunikasi serial ke microcontroller sehingga microcontroller dapat
mengolah perintah dari prosessor untuk menggerakan motor DC sebagai pengendali mobile robot.
Untuk menentukan jalan dari mobile robot maka peneliti memanfaatkan library dari Open CV antara
lain CVcvtcolor untuk merubah gambar dari RGB ke biner, lalu menggunakan CVTreshold untuk mengubah dari
grayscale ke biner dan menggunakan CVScalar untuk membuat pixel acuan yang menentukan bahu jalan dan
badan jalan.
Mobile robot ini dapat berjalan dilintasannya yang memiliki tikungan ke kiri dan ke kanan dan tanpa
ada halangan atau persimpangan jalan. Namun mobile robot ini dapat berjalan baik atau tidak tergantung dengan
intensitas cahaya yang didapatkan oleh mobile robot. Karena, bahan yang dibuat untuk jalan lintasan dari mobile
robot adalah berbahan vinyl yang mudah memantulkan cahaya walau berwarna hitam.
Keyword : Open CV, Mobile Robot, autopilot,Microcontroller

Di era modern saat ini keberadaan


peralatan transportasi menjadi sangat
penting. Kebutuhan alat transportasi yang
aman dan nyaman merupakan hal yang
sangat didambakan. Sampai saat ini,
sebagian besar sistem navigasi atau kemudi
alat transportasi darat (mobil) masih banyak
dilakukan dengan tenaga manusia. Untuk
dapat mengendalikan mobil dengan baik
seseorang harus mempunyai ketrampilan
khusus, juga diperlukan konsentrasi disaat
mengendalikannya
di
jalan
raya.
Mengemudi kendaraan dengan konsentrasi
yang kurang sangat berbahaya, karena
berisiko besar terjadi kecelakaan. Untuk itu
diperlukan diperlukan suatu sistem yang

dapat
membantu
manusia
dalam
mengendarai kendaraan. Sistem yang
bersifat otomatis ini diharapkan dapat
membantu atau bahkan menggantikan
sebagian besar peran pengemudi dalam
mengendalikan mobil.
Sistem image processing digunakan
untuk membantu mengimplementasikan
sistem autopilot di darat. Sistem tersebut
akan diaplikasikan oleh penulis pada sebuah
mobile robot yang diberi kamera untuk
dapat mengambil gambar lintasan yang
sedang dilintas oleh mobile robot tersebut.
Lintasan yang ditempuh oleh robot tersebut
berupa lintasan tanpa ada halangan dan
tanpa ada persimpangan jalan. Selain itu,
1

lintasan tersebut menggunakan perbedaan


kontras warna antara bahu jalan dengan
jalan.
Dengan
memanfaatkan
library
OpenCV yaitu CVScalar, pendeteksian
antara bahu jalan dengan badan jalan dapat
diwujudkan. Oleh karena itu Image
processing dapat mendeteksi jalan dengan
bahu jalan yang dilintasi, sedangkan
penggunaan sensor ultrasonic dan sensor
cahaya tidak tepat guna dalam mendeteksi
jalan dan bahu jalan tersebut. Dikarenakan
penggunaan sensor tersebut mendeteksi
bahu jalan dan badan jalan dengan
mendekati bahu jalan tersebut untuk dapat
dideteksi, sedangkan pada kondisi nyata
mobil harus menjaga jarak dengan bahu
jalan. Sehingga, penggunaan Image
processing menjadi tepat guna untuk
mengimplementasikan autopilot di darat.
METODE
Pengerjaan Tugas Akhir ini dapat terlihat
jelas dari blok diagram yang tampak pada
gambar 3.1. Blok diagram tersebut
menggambarkan proses dari capture gambar
hingga perintah ke motor. Terdapat
beberapa komponen penting pada blok
diagram tersebut antara lain adalah webcam,
PC, mikrokontroler dan motor DC.
Kamera

 

Personal
Computer







Motor Roda
Kanan

Motor Roda
Kiri

Microcontroller

Gambar 1 Blok Diagram


Gambar 1 merupakan proses
mengalirnya data input hingga menjadi
output. Data yang diperoleh dari kamera
berupa data lintasan yang tampak oleh
kamera robot pada saat di lintasan lalu data
tersebut dikirim ke Personal Computer
melalui USB. Pada Personal Computer hasil

kamera tersebut diolah pada software


Microsoft Visual C++ 2008 menggunakan
library OpenCV dan hasilnya dikirm
melalui serial menuju mikrokontroler.
Mikrokontroler mengendalikan motor sesuai
dengan perintah dari PC, sehingga motor
DC dapat berjalan sesuai dengan jalan yang
ditempuh mobile robot.
Proses Pendeteksian Jalan
Proses Pendeteksian Jalan yang
dilakukan oleh Processor (Notebook)
tampak pada blok diagram gambar 2.
Gambar RGB

Biner

Grayscale

Perintah arah jalan


berdasarkan
koordinat pixel

Gambar 2 Blok Diagram Pengolahan


gambar
Pada gambar 2 gambar RGB
diperoleh dari hasil capture kamera yang
lalu dirubah ke gambar grayscale kemudian
biner. Pada gambar biner, gambar jalan
terlihat kontras antara jalan dan bahu jalan.
Sehingga diambil lah koordinat pada bahu
jalan untuk menjadi acuan mobile robot
bergerak ke kiri, ke kanan atau lurus.
Proses Perubahan Warna dari RGB ke
Grayscale
Proses perubahan warna dari RGB
ke
Grayscale
bertujuan
untuk
mempermudah proses selanjutnya yaitu
proses merubah grayscale menjadi biner.
Sehingga gambar yang diterima oleh
processor (notebook) dirubah langsung ke
grayscale. Perubahan gambar RGB ke
Grayscale menggunakan library openCV
pada visual C++ menggunakan perintah
sebagai berikut.
cvCvtColor(
CV_BGR2GRAY);

src,

image2Gray,

Pada perintah tersebut sudah


terdapat dua frame, yang satu berisi gambar
asli dari kamera (src) sedangkan yang
lainnya adalah frame yang disediakan untuk
hasil perubahan ke grayscale (image2Gray).
2

Sehingga maksud dari potongan perintah


tersebut adalah mengubah gambar src ke
grayscale (CV_BGR2GRAY) lalu disimpan
pada frame bernama image2Gray.
Proses Perubahan Gambar Grayscale ke
Biner
Proses perubahan gambar grayscale
ke biner bertujuan untuk membedakan
warna secara kontras antara bahu jalan dan
badan jalan. Sehingga perintah untuk arah
kanan dan kiri maupun lurus dapat semakin
jelas. Berikut adalah perintah yang
memanfaatkan library OpenCV untuk
mengubah gambar grayscale menjadi biner.

START

Inisialisasi : pixel
batas kanan dan
kiri

Jalan
mengenai
batas kiri
?

Motor kanan :
mundur
Motor kiri : maju

Jalan
mengenai
batas
kanan?

Motor kanan :maju


Motor kiri :mundur

cvThreshold(image2Gray,image2Gray,5
0,255,CV_THRESH_BINARY);

Pada perintah tersebut gambar


grayscale dari frame image2Gray dirubah
menjadi biner (CV_THRESH_BINARY)
dengan threshold 50 dan disimpan pada
frame yang sama yaitu image2Gray.
Threshold bertujuan mengubah pixel diatas
threshold untuk menjadi pixel bernilai 255
sedangkan dibawah threshold dirubah
menjadi 0, dengan demikian didapatkanlah
gambar biner.
Proses Pengambilan Koordinat sebagai
Acuan
Pada proses ini penulis menetapkan
koordinat pixel yang digunakan sebagai
acuan mobile robot untuk bergerak ke kiri
maupun ke kanan. Koordinat pixel yang
dipakai adalah koordinat pixel bahu jalan
(kanan dan kiri robot) pada posisi robot di
tengah jalan, sehingga koordinat tersebut
dapat digunakan sebagai acuan. Apabila
posisi acuan tersebut terdeteksi mengenai
jalan maka robot melakukan aksi, yaitu
belok kiri atau kanan tergantung pada acuan
kiri atau kanan yang terkena badan jalan.
Berikut adalah flowchart untuk memperjelas
dari proses pendeteksian jalan.

Motor kanan :
maju
Motor kiri : maju

Gambar 3 Flowchat Pendeteksian Jalan


Pada gambar 3 dijelaskan bahwa
terdapat pixel yang menjadi batas kanan dan
kiri. Pixel tersebut menjadi acuan motor
robot untuk bergerak ke kanan dan ke kiri.
Berikut bagian dari kode program dalam
menentukan pixel hingga keputusan robot
bergerak
ke
kanan
atau
kiri.

CvScalar s;
for(i=0;i<120;i++)
{
s=cvGet2D(image2Gray,460,i);
if (s.val[0]==255)
k++;
}
for(i=520;i<640;i++)
{
s=cvGet2D(image2Gray,460,i);
if (s.val[0]==255)
j++;
}

Pixel
dapat
diambil
dengan
memanfaatkan library CvScalar, pada
potongan perintah tersebut terlihat bahwa
pixel koordinat Y yang diambil pada pixel
460 sedangkan pixel koordinat X yang
diambil antara pixel ke 0 sampai 120 (acuan
kiri) dan pixel 520 hingga 640 (acuan
kanan). Apabila pixel acuan tersebut terkena
badan jalan yang bernilai 255 maka
diaktifkan flag kanan atau kiri yang
digunakan untuk melanjutkan perintah
output.
Jarak antara kamera dengan jalan
yang terproyeksi oleh pixel baris 460 adalah
80 cm. Dengan jarak 80 cm, perbandingan
jarak yang sebenarnya dengan pixel adalah
1 : 13. Dapat diartikan bahwa 1 cm sama
dengan 13 pixel, dengan ketentuan jarak
kamera dengan pixel yang dimaksud adalah
80 cm.
Komunikasi Menggerakan Mobile Robot
Untuk dapat menggerakan mobile
robot maka perintah dari Processor harus
dikirim ke mikrokontroler melalui UART,
lalu data yang diterima mikrokontroler
dibaca dan diproses selanjutnya hingga
memperoleh output sesuai yang diinginkan.
Pengiriman
data
dari
Processor
(Notebook)
Pengiriman data dari processor
berupa
pengiriman
data
karakter.
Pengiriman dilakukan melalui UART dari
processor yang sudah dilengkapi dengan

RS-232 menuju mikrontroler dan data yang


dikirim adalah x (perintah kiri), y
(perintah kanan) dan z (perintah maju).
Processor mendeteksi perintah kiri maka
processor mengaktifkan flag kiri yang lalu
menjadi tanda untuk pengiriman data x ke
mikrokontroler. Berikut adalah perintah
untuk mengirim data.
if (k<=3)
{
cout<<(stderr,"kiri\n");
if (hanny.Open(1,9600))
{
char* start= "x";
hanny.SendData(start,
1);
cout<<(stderr,"openedX\n");
}
k=0;
}
else if (j<=3)
{
cout<<(stderr,"kanan\n");
if (hanny.Open(1,9600))
{
char* start= "y";
hanny.SendData(start,
1);
cout<<(stderr,"openedY\n");
}
j=0;
}
else
{
cout<<(stderr,"lurus\n");
k=0;
j=0;
if (hanny.Open(1,9600))
{
char* start= "z";
hanny.SendData(start,
1);
cout<<(stderr,"OpenL\n");
}
}

Pada potongan perintah tersebut


ditunjukan bahwa COM serial yang
4

digunakan adalah port 1 dan baudrate yang


digunakan
sebesar
9600.
Perintah
pengiriman variabel start dengan dengan
perubahan nilai menjadi x ,y atau z sesuai
dengan perintah, dan banyaknya karakter
yang dikirim adalah 1 hanny.SendData(start,
1). Sebelum perintah tersebut terdapat
header dan function yang terlampir
digunakan untuk melengkapi perintah
mengirim data secara serial.
Penerimaan Data Mikrokontroler
Data dari processor diolah oleh
mikrokontroler agar dapat mengeluarkan
output yang nantinya dapat mengendalikan
motor DC. Berikut adalah potongan perintah
yang digunakan mikrokontroler untuk
menerima data serial.
angka=getchar();
if (angka=='y') // kanan
{
OCR1A=40;
PORTD.7=1; //mki
OCR1B=40;
PORTD.6=0;
putchar('a');
}
else if (angka=='x') // kiri
{
OCR1A=40;
PORTD.7=0;
OCR1B=40;
PORTD.6=1;
putchar('b');
}
else if (angka=='z') // lurus
{
OCR1A=40;
PORTD.7=1;
OCR1B=40;
PORTD.6=1;
putchar('c');
}
else if(angka == 'a')
{

yang dikirim lalu dipilah-pilah sesuai


dengan perintah lalu diproses menjadi
output
yang
digunakan
untuk
mengendalikan motor DC.
Perancangan Perangkat Keras
Minimum Sistem ATMEGA8535
Minimum sistem ATMEGA8535
yang digunakan adalah minimum sistem
dari innovative electronics. Dengan
spesifikasi sebagai berikut
1. Mikrokontroler ATMEGA8535 yang
mempunyai 8KB Flash Memory dan
8 channel ADC dengan resolusi 10
bit.
2. Mendukung varian AVR 40 pin,
antara
lain
:
ATMega8535,
ATMega8515,
AT90S8515,
AT90S8535, dll. Untuk tipe AVR
tanpa internal ADC membutuhkan
Conversion Socket.
3. Memiliki jalur I/O hingga 35 pin.
4. Terdapat eksternal Brown Out
Detector sebagai rangkaian reset.
5. Konfigurasi
jumper
untuk
melakukan pemilihan beberapa
model
pengambilan
tegangan
referensi untuk tipe AVR dengan
internal ADC.
6. LED Programming indicator.
7. Frekwensi Osilator sebesar 4 MHz.
8. Tersedia jalur komunikasi serial
UART RS-232 dengan konektor RJ11.
9. Tersedia port untuk pemrograman
secara ISP.
10. Tegangan input Power Supply 9-12
VDC dan output tegangan 5 VDC.
Konfigurasi
minimum
sistem
digambarkan pada gambar 4.

OCR1A=OCR1B=PORTD.7=PORTD.6=0;
}

Pada potongan perintah diatas


ditunjukan bahwa variabel angka digunakan
untuk penyimpanan karakter sementara
5

yang digunakan microcontroller sehingga


kecepatan mobile robot dapat dikendalikan
untuk mengurangi error yang terjadi pada
saat mobile robot berjalan di lintasannya.
Desain Mekanik Robot
Desain mekanik robot, terdiri dari
dua motor, base robot dan tiga buah roda.
Robot
dirancang
dengan
perangkat
elektronik lainnya seperti kamera, relay
driver dan minimum sistem, sehingga dapat
menjadi suatu bentuk mobile robot. Mobile
robot ini dirancang seperti robot line
follower, namun karena metode dan
perangkat keras yang digunakan berbeda
dengan line follower maka bentuk
disesuaikan dengan kebutuhan. Berikut
adalah bentuk keseluruhan dari mobile
robot.
Gambar 4 Konfigurasi Minimum Sistem
ATMega8535.
(Innoative Electronics, 2004)
Relay Driver
Relay driver digunakan untuk
mengendalikan motor DC. Penggunaan
relay driver sebagai pengendali motor
dikarenakan motor yang dikendalikan
adalah motor DC 20 watt dan 12 VDC,
sehingga memerlukan motor driver yang
sesuai dengan spesifikasi motor tersebut.
Gambar 5 adalah konfigurasi rangkaian
relay driver.

Gambar 6 Robot tampak atas

Gambar 5 Rangkaian Relay Driver


Relay driver tersebut digunakan
karena dapat digunakan untuk mengurangi
kecepatan motor sesuai dengan nilai PWM

Pulse Width Modulation (PWM)


Pengendalian
motor
DC
menggunakan PWM. PWM digunakan
untuk menurunkan kecepatan sehingga laju
dari mobile robot dapat dikendalikan dan
error(keluar dari jalur) dapat dikurangi. Laju
6

dari mobile robot dapat dikendalikan dengan


mengubah-ubah
nilai
PWM
yang
dikendalikan
melalui
microcontroller.
Sehingga kecepatan dari mobile robot dapat
diklasifikasikan menjadi 4 kecepatan, yaitu
berhenti, kecepatan pelan, sedang hingga
cepat. Pemberian nilai PWM dapat
diberikan sebagai berikut :
Tabel 1 Kecepatan Motor
No. Kecepatan
Nilai PWM
1.
Berhenti
0
2.
Pelan
1-85
3.
Sedang
86-170
4.
Cepat
171-255
Pada penelitian ini, mobile robot
menggunakan kecepatan pelan dengan
tujuan error yang dihasilkan sangat kecil
sehingga mobile robot dapat berjalan
dengan baik. Dengan demikian mobile robot
pada penelitian ini diberikan nilai PWM
antara 1 -85.
Perancangan Jalan
Jalan yang digunakan untuk menjadi
lintasan pada penelitian ini mempunyai
karakteristik tikungan ke kiri dan ke kanan
sama banyak dan sama besar, sehingga
penelitian ini berimbang antara tikungan
kanan dan tikungan kiri. Dengan panjang
jalan 16 m dan lebar jalan 39 cm yang
terbuat dari bahan vinyl yang dicetak
dengan digital printing. Warna jalan dan
bahu jalan hanya terdiri dari warna hitam
dan putih. Berikut adalah gambar jalan yang
digunakan pada penelitian ini.
4 Meter

PENGUJIAN SISTEM
Tujuan dari pengujian ini adalah mengetahui
hasil keputusan dari pengambilan gambar,
apakah sesuai dengan program yang disusun
sebelumnya dalam menghadapi jalan.
Hasil Pengujian
Pengujian secara keseluruhan berjalan
dengan baik karena terlihat dari koneksi
serial PC dengan mikrokontroler berjalan
baik dan respon dari PC terhadap kamera
cukup cepat sehingga proses jalan dari
mobile robot berjalan dengan lancar. Namun
hasil capture dari kamera juga tergantung
dengan pencahayaan, karena pencahayaan
yang
berlebihan
atau
kekurangan
mempengaruhi proses dari pengolahan
gambar. Sehingga pencahayaan yang cukup
mempengaruhi kelancaran jalannya mobile
robot. Gambar 8 , gambar 9 dan gambar 10
merupakan hasil dari respon mobile robot.

Gambar 8 Respose Lurus


Dari gambar 8 terlihat pada
Command Prompt bahwa ketika mendapati
gambar seperti itu respon dari hasil
pengolahan adalah lurus.

4 Meter

Gambar 7 Jalan Mobile Robot

Gambar 9 Respon Kiri


Dari gambar 9 terlihat pada
Command Prompt bahwa ketika mendapati
7

gambar seperti itu respon


pengolahan adalah belok kiri.

dari

hasil

Gambar 10 Respon Kanan


Dari gambar 10 terlihat pada
Command Prompt bahwa ketika mendapati
gambar seperti itu respon dari hasil
pengolahan adalah belok kanan.
Waktu yang digunakan oleh mobile
robot untuk dapat menempuh satu putaran
adalah 2 menit 20 detik dengan PWM 8-bit
sebesar 40. Namun kondisi mobile robot
tersebut mempunyai kelemahan lain selain
ketergantungannya dengan cahaya, yaitu
mobile robot ini hanya menjaga bumper
agar tidak keluar dari jalur, namun
terkadang bagian belakang dari mobile robot
masih dapat keluar dari jalur.
Secara keseluruhan proses dari input
kamera hingga output motor dapat
disimpulkan dalam sebuah tabel dengan
mengambil beberapa sampel dari beberapa
tikungan pada lintasan tersebut. Tabel 4.2
merupakan hasil dari proses hubungan
kamera dengan keadaan motor.
Tabel 2 Hubungan Data Kamera dengan
keadaan motor
No

Kondisi

1
2
3
4
5

Kanan
Kiri
Lurus
Kiri
kanan

Pixel
kanan
<120
<120
120
<120
<120

Pixel
kiri
>120
>120
120
>120
>120

Motor
kanan(PWM)
Mundur (40)
Maju (40)
Maju (40)
Maju (40)
Mundur (40)

Motor kiri (PWM)


Maju (40)
Mundur (40)
Maju (40)
Mundur (40)
Maju (40)

Dari hasil tabel tersebut terlihat bahwa 120


pixel untuk kanan dan kiri menjadi acuan
dari gerak motor untuk membuat mobile
robot tetap berada di lintasan.
Simpulan

Dari penelitian ini dan dengan melihat


masalah yang telah dirumuskan serta hasil
pengujian dan analisa, maka dapat diambil
simpulan :
1. Data lintasan dapat ditangkap oleh
kamera dan dengan memanfaatkan
pengolahan citra, hasil gambar dari
kamera digunakan menjadi inputan yang
lalu diolah sehingga menghasilkan suatu
keputusan.
2. Robot dapat merespon input dari kamera
dan apabila hasil dari pengolahan input
menunjukan mobile robot tidak berada di
tengah lintasan maka motor akan
merespon hingga mobile robot berada di
tengah
lintasan.
Untuk
dapat
menyelesaikan satu putaran lintasan
sepanjang 16m mobile robot memerlukan
waktu rata-rata 2 menit 20 detik.
DAFTAR RUJUKAN
ATMEL.
2006.
ATmega8535/
ATmega8535L.
(online).
(www.atmel.com/Images/doc2502.
pdf)
Adhiguna. 2008. OPENCV. (online).
(http://machine-visionadhiguna.
blogspot.com /
2008/05/intelopencv-alternatifopensource.html).
S, Ari. 2010. Pengenalan PWM. (online).
(http://www.aristy.cz.cc/2010/02/pulse-widthmodulation-pwmpengenalan.html).
Faruq Bamukrah, Jihan. 2010. Image
Processing - Pengolahan Citra.
(online).(http://jihanfaruqbamukrah
.blogspot.com/2010/05/pengertianpengolahan-citra-image.html)
Tejo. 2006. Transmisi. (online).
(http://www.pdfio.com/k1153255.html)
8

Salam, Abdul. 2008. Perkembangan


Personal Computer (PC). (online).
(http://staff.blog.ui.ac.id/abdul.sala
m/2008/07/02/perkembanganpersonal-computer-pc/)
Anshari, Febi. 2009. Sistem Pengendalian
Gerak Pada Mobile Base Robot.
(online).
(http://www.infogue.com/viewstor
y/2009/10/18/sistem_pengendalian
_gerak_pada_mobile_base_robot_n
doware/?url=http://ndoware.com/si
stem-pengendalian-gerak-padamobile-base-robot.html)
Irwan. 2011. Pengertian Robot. (online).
(http://irwanpanarobost.blogspot.co
m/2011/06/pengertian-robot.html)
Fathurohim, Muhammad. 2010. Motor
DC.(online).(http://rohimston.blogs
pot.com/2010/07/motor-dc.html)

Anda mungkin juga menyukai