Monday, August 8, 2022

Robot Mobil Pengikut Objek Segi Tujuh Berwarna Kuning Berbasis Image Processing

 Robot Mobil Pengikut Objek Segi Tujuh Berwarna Kuning Berbasis Image Processing


Yoyon Fauzi, 16518241026


Abstrak

Image Processing/Pengolahan Citra adalah suatu bentuk pengolahan atau pemrosesan sinyal data input yang berupa gambar(image). Gambar input ini ditransformasikan menjadi gambar lain dengan teknik tertentu. Teknik-teknik yang digunakan dalam image processing antara lain Intensity Adjustment, Histogram Equalization, Thresholding, Motion Blur, Canny, Median Filtering, dll. Pengolahan citra dapat digunakan untuk melakukan tracking. Tracking ini adalah suatu pekerjaan mengikuti/mengidentifikasi pergerakan dari objek yang tertangkap pada kamera. Tracking dengan menggunakan image processing ini dapat dimanfaatkan di berbagai bidang. Di bidaang perdagangan digunakan untuk melacak bar code di setiap barang. Sedangkan di bidang militer dapat digunkan untuk melacak pergerakan musuh atau mengidentifikasi pergerakan peluru. Pada robot mobil ini, memanfaatkan image processing untuk mendeteksi objek yang berbentuk persegi tujuh. Selain mendeteksi bentuk yang dideteksi, pengolahan citra ini juga untuk mendeteksi warna. Jadi yang dideteksi pada robot ini hanya persegi tujuh yang berwarna kuning. Pergerakan robot ini adalah mengikuti gerak objek secara horisontal. Jada apabila objek digeser ke kanan maka robot akan bergerak ke kanan, sedangkan jika digeser ke kiri maka robot akan bergerak ke kiri. Robot ini menggunakan robot paralax, webcam, dan komputer. Sedangkan untuk software menggunakan Visual studio 2017 dan Arduino IDE. 

Kata kunci : Robot, Image Processing, Tracking, Arduino, Visual studio

  1. PENDAHULUAN

Teknologi robotika saat ini sudah tidak bisa dilepaskan dari kehidupan manusia. Robot adalah suatu alat mekanik yang dapat melakukan pekerjaan-pekerjaan fisik seperti manusia. Pekerjaan-pekerjaan tersebut bisa dilakukan karena dikontrol manusia atau otomatis karena sudah terprogram sebelumnya. Salah satu bagian utama yang membangun suatu sistem kontrol pada robot adalah input. Input pada robot adalah sebuah data yang ditangkap oleh robot yang kemudian diproses menjadi informasi. Data tersebut diperoleh robot dari sensor yang terdapat pada robot. Sensor merupakan indra bagi robot yang dapat mengenali berbagai parameter. Seperti sensor suhu yang mampu mengenali kondisi suhu, sensor cahaya yang mampu mengenali intensitas cahaya, sensor jarak yang mampu mengenlai jarak benda dari sensor, dan masih banyak lagi. Saat ini yang sedang berkembang adalah sensor kamera. Robot yang bisa melihat menggunakan kamera bisa disebut dengan robot vision. 

Robot Vision merupakan robot yang memiliki kemampuan untuk menerima dan
mengolah informasi dari gambar atau objek tertentu, sehingga dapat diartikan robot yang
memilki indera penglihatan. Indera penglihatan pada robot dapat dibentuk dengan menggunakan
sensor kamera yang telah didesain dan diprogram sebagai mata robot. Selayaknya mata pada
manusia, mata robot juga mampu membedakan warna suatu objek yang terlihat. Data yang
berasal dari objek atau gambar yang ditangkap sensor kamera robot memberikan informasi
kepada robot tentang spesifikasi benda tersebut yaitu berupa warna benda, sehingga robot
mampu mengetahui keadaan atau objek yang dilihatnya.s

Penggunaan kamera sebagai sensor mulai banyak digunakan manusia dalam sehari-hari. Banyaknya pengunaan kamera sebagai alat pendukung dalam hal-hal keseharian
manusia ini , tidak lepas dari maraknya penelitian pengembangan dari metode pengolahan citra
digital, mulai dari bidang robotika, medis, keamanan serta hiburan. Fungsi dari kamera secara
umum adalah untuk membuat, menangkap, serta merekam suatu gambar dari objek, yang
selanjutnya akan dibiaskan melalui lensa pada sensor dan disimpan dalam format digital.
Kebanyakan kegiatan dalam hal merekam khususnya di Indonesia masih dilakukan oleh
manusia tanpa bantuan robot, seperti dalam peribadatan atau seminar-seminar yang diadakan.
Proses perekaman yang masih dilakukan oleh manusia memungkinkan terjadinya human error,
hal ini dikarenakan tingkat kejenuhan serta tingkat kelelahan yang menyebabkan konsentrasi
manusia berkurang. Pada saat proses perekaman kamera bisa saja tergoyang, jatuh atau lupa
dinyalakan. Oleh karena itu, untuk membantu tugas manusia dalam proses perekaman,
penelitian ini mengembangkan prototipe teknologi robot yang bisa merekam dan mengikuti objek.

Seperti penggunaan robot di dunia industri, penggunaan robot berdasarkan dari sifat
robot itu sendiri yang tidak mengenal lelah, dan memiliki toleransi kesalahan yang kecil,
sehingga sangat baik untuk meningkatkan daya produktifitas industri perekaman. Cara kerja
dari robot ini yaitu robot akan bergerak mengikuti objek yang berbentuk persegi tujuh dan berwarna kuning. 

  1. METODE PENELITIAN

Perancangan Robot perekam objek berbasis face tracking menggunakan model
prototyping. Prototyping adalah sebuah metode rekayasa perangkat lunak yang digunakan untuk
membangun sebuah aplikasi ketika requirement yang diperlukan belum jelas. Dalam
membangun aplikasi, pengembang dan pengguna bertemu untuk mendefinisikan hal-hal yang
menjadi tujuan dari aplikasi yang dibuat.

  1. HASIL DAN PEMBAHASAN

    1. Kerangka Konseptual Aplikasi

Desain Projek

Rangkaian Pada Robot Paralax


  1. Komponen yang Digunakan

Untuk membuat projek ini dibutuhkan komponen-komponen seperti di bawah ini :


No

Komponen

Spesifikasi

1

Sumber Tegangan

Tegangan dari laptop

2

Pengolah data

Arduino Uno R3

3

Aktuator

Dua Motor Paralax

4

Camera

Kamera Laptop

5

GUI

Visual Studio 2012

6

Body

Robot Paralax

Tabel Komponen yang digunakan


  1. Robot Paralax

Robot Paralax adalah paket robot dalam bentuk robot mobil dengan dua motor servo dan dikontrol dengan Arduino Uno R3. Arduino UNO adalah sebuah board mikrokontroler yang didasarkan pada ATmega328. Arduino UNO mempunyai 14 pin digital input/output (6 di antaranya dapat digunakan sebagai output PWM), 6 input analog, sebuah osilator Kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ICSP header, dan sebuat tombol reset. Arduino UNO memuat semua yang dibutuhkan untuk menunjang mikrokontroler, mudah menghubungkannya ke sebuah computer dengan sebuah kabel USB atau mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan baterai untuk memulainya. Berikut ini adalah spesifikasi Arduino Uno :


Tabel Spesifikasi Arduino


Motor pada robot Paralax dapat berputar dua arah, yaitu searah jarum jam dan berlawanan arah dengan jarum jam. Pada pemrogramannya servo akan berputar searah jarum jam pada nilai 1500-1700. Untuk berputar berlawanan arah jarum jam harus diberi nilai antara 1300-1500. Servo akan berhenti pada nilai tepat 1500. 



  1. Komputer

Pada penelitian ini komputer digunakan sebagai pengolah citra dengan menggunakan kamera bawaan laptop yang diolah dengan visual studio 2012. Selain itu laptop juga digunakan sebagai sumber tegangan robot.

  1. Desain Visual Studio

  1. Algoritma

Operator Canny, Salah satu algoritma deteksi tepi modern adalah deteksi tepi dengan menggunakan metode Canny. Deteksi tepi Canny ditemukan oleh Marr dan Hildreth yang meneliti pemodelan persepsi visual manusia. Ada beberapa kriteria pendeteksi tepian paling optimum yang dapat dipenuhi oleh algoritma Canny: 

  1. Mendeteksi dengan baik (kriteria deteksi) Kemampuan untuk meletakkan dan menandai semua tepi yang ada sesuai dengan pemilihan parameter-parameter konvolusi yang dilakukan. Sekaligus juga memberikan fleksibilitas yang sangat tinggi dalam hal menentukan tingkat deteksi ketebalan tepi sesuai yang diinginkan. 

  2. Melokalisasi dengan baik (kriteria lokalisasi) Dengan Canny dimungkinkan dihasilkan jarak yang minimum antara tepi yang dideteksi dengan tepi yang asli. 

  3. Respon yang jelas (kriteria respon) Hanya ada satu respon untuk tiap tepi. Sehingga mudah dideteksi dan tidak menimbulkan kerancuan pada pengolahan citra selanjutnya. Pemilihan parameter deteksi tepi Canny sangat mempengaruhi hasil dari tepian yang dihasilkan. Beberapa parameter tersebut antara lain : 

1. Nilai Standart Deviasi Gaussian 

2. Nilai Ambang

  • Euclidean Distance 

Euclidean Distance merupakan teknik penghitungan jarak antara dua objek dengan menggunakan teorema Phytagoras. Jika titik P = (P1; P2; :::; Pn) dan titik Q = (Q1;Q2; :::;Qn) maka Euclidean Distance-nya adalah : 

  • Similaritas 

Similaritas digunakan untuk mencari persamaan dari 2 buah objek atau 2 buah vektor.


  1. Pemetaan Input

Input disini adalah input untuk arduino. Matlab akan memberikan data berdasarkan letak titik tengah objek. Pemetaan tersebut adalah sebagai berikut :

Sepuluh

Sembilan

Delapan

Tujuh

Enam

Satu

Dua

Tiga

Empat

Lima



No

Area

Posisi Pada Sumbu X

1

Satu

320 sampai dengan 383

2

Dua

384 sampai dengan 447

3

Tiga

448 sampai dengan 511

4

Empat

512 sampai dengan 575

5

Lima

576 sampai dengan 640

6

Enam

256 sampai dengan 319

7

Tujuh

192 sampai dengan 255

8

Delapan

128 sampai dengan 191

9

Sembilan

64 sampai dengan 127

10

Sepuluh

0 sampai dengan 63

Tabel Pemetaan input


  1. Pemetaan Outputs

Data output dibedakan menjadi 10 berdasarkan pembagian posisi titik tengah terhadap sumbu x. Data case tersebut adalah sebagai berikut :

No

Area

Speed (1500+...)

1

Satu

0

2

Dua

80

3

Tiga

120

4

Empat

160

5

Lima

200

6

Enam

0

7

Tujuh

-80

8

Delapan

-120

9

Sembilan

-160

10

Sepuluh

-200

Tabel pemetaan output

  1. Pemrograman Arduino

Berikut ini adalah program arduino yang digunakan :


#include <Servo.h>                           


Servo servoLeft;                             

Servo servoRight;

bool complete = false;// Declare right servo signal

char data;

int rx;

int nilai =0;

void setup()                                 

{

  servoLeft.attach(13);                      

  servoRight.attach(12);                      

  /*

    servoLeft.writeMicroseconds(1500);         

    servoRight.writeMicroseconds(1500);        


  */

  Serial.begin(9600);

}


void loop()                                  

{ // Empty, nothing needs repeating

  if (complete = true) {

    switch (data) {

      case '1':

        nilai = 0;

        complete = false;

        break;

      case '2':

        nilai = 80;

        complete = false;

        break;

      case '3':

        nilai = 120;

        complete = false;

        break;

      case '4':

        nilai = 160;

        complete = false;

        break;

      case '5':

        nilai = 200;

        complete = false;

        break;

      case'6':

        nilai = 0;

        complete = false;

        break;

      case '7':

        nilai = -80;

        complete = false;

        break;

      case '8':

        nilai = -120;

        complete = false;

        break;

      case '9':

        nilai = -160;

        complete = false;

        break;

      case '0':

        nilai = -200;

        complete = false;

        break;

    }

  }

  Serial.print("Nilai = ");

  Serial.println(nilai);

  servoLeft.writeMicroseconds(1500 + nilai);    

  servoRight.writeMicroseconds(1500 - nilai);

 delay (1000);

}

void serialEvent() {

  while (Serial.available()) {

    data = Serial.read();

    if (data == '\n') {

      complete = true;

    }

  }


}


Pada pemrograman tersebut yang diubah adalah nilai dari “nilai”. Data nilai tersebut digunakan untuk menambah dan mengurangi 1500. Hal ini dikarenakan servo paralax akan bergerak CW jika diberi input 1700 dan CCW jika diberi input 1300.

  1. Pengujian Program Arduino

Pada pemrograman arduino terbagi menjadi sepuluh case. Untuk membuktikan apakah pemrograman tersebut sudah sesuai dapat menggunakan serial monitor. Berikut ini adalah tabel dari beberapa case yang diinputkan :

Nilai Input

Output

2

4

5

6

8

  1. Implementasi Alat

Posisi Objek

Gerakan Robot

Kekiri dengan cepat



Diam

Keka-nan dengan cepat


  1. KESIMPULAN

Berdasarkan percobaan yang telah dilakukan, robot dapat bekerja seperti apa yang telah diinginkan. Robot ini mampu mengikuti pergerakan benda. Saat objek digeser kekiri maka robot akan bergeser kekiri dengan kecepatan yang disesuaikan oleh titik tengah objek pada kordinat x. Kemudian saat titik tengah objek sudah berada di tengah, maka robot akan berhenti. Sedangkan jika objek digeser kekanan maka robot akan bergerak kekanan.

  1. SARAN

Penggunaan kamera yang kurang bagus akan mempengaruhi kualitas gambar input. Sehingga ntuk memperoleh hasil yang akurat diperlukan kamera dengan resolusi tinggi. Selain itu, jauhkan juga objek yang berwarna sama atau berbentuk sama. 

  1. DAFTAR PUSTAKA

No comments:

Post a Comment