TUGAS UAS JST





[KEMBALI KE MENU SEBELUMNYA]


IMPLEMENTASI BACKPROPAGATION UNTUK PENGENALAN WARNA GARIS LINTASAN ROBOT MAZE SOLVING BERBASIS ARDUINO


Dosen : Darwison, M.T.


Oleh :
Muhammad Firman Putra Tanjung
1710952018



Jurusan Teknik Elektro
Fakultas Teknik
Universitas Andalas
Padang
2020 


DAFTAR ISI
1.Pendahuluan
2. Dasar Teori
3. Metode
4. Kesimpulan
5. Referensi



1. Pendahuluan

Perkembangan akan sebuah teknologi di bidang robotika pada beberapa dekade tahun ini mengalami perkembangan yang sangat pesat terutama dalam pembentukan sistem kecerdasan buatan (Artificial Intellegence) untuk robot. Pada perkembangannya robot diharapkan dapat membantu aktivitas pekerjaan yang dilakukan manusia atau dapat menggantikan pekerjaan yang sulit dilakukan manusia. Untuk itu dibutuhkan sebuah sistem kecerdasan buatan pada robot yang dapat membuat robot dapat berfikir layaknya manusia dalam beraktivitas dengan cara menirukan prilaku sistem kerja otak manusia dalam proses pembelajaran.

Jaringan Syaraf Tiruan (JST) adalah sistem pemroses informasi yang memiliki karakteristik mirip dengan Jaringan Syaraf Biologi pada sistem pemrosesan otak manusia. JST dibentuk sebagai generalisasi model matematika dari Jaringan Syaraf Biologi. Implementasi JST terhadap bidang robotika menjadi hal yang penting agar robot dapat berprilaku layaknya manusia terutama dalam proses pembelajaran.


2. Dasar Teori

Robot maze solving merupakan robot mobile dengan aktuator motor serta memiliki proses kerja sama seperti robot Line Follower yaitu bekerja dengan mengikuti garis-garis yang telah disediakan yang menjadikan navigasi untuk robot dalam melakukan manuver. Pada umumnya robot maze solving hanya dapat mendeteksi garis lintasan berwarna hitam dengan warna dasar lintasan putih atau sebaliknya. Sangat kurang optimal ketika robot hanya dapat mendeteksi garis berwarna hitam, untuk itu dibutuhkan sebuah sistem kecerdasan buatan untuk robot agar robot dapat melakukan pendeteksian garis warna bervariasi selain hitam dengan implementasi JST backpropagation.

Untuk mendukung proses kerja Backpropagation dibutuhkan sebuah sistem input yang dibentuk dari hasil kombinasi 2 (dua) unit komponen elektronik digital yaitu Light Emmiting Diode (LED) yang digunakan sebagai penghasil cahaya atau dengan kata lain digunakan sebagai pemancar cahaya. Dan photodioda yang digunakan sebagai penerima cahaya yang diberikan LED dengan konsep pemantulan cahaya.

Sistem kerja sensor ini ketika LED memancarkan cahaya terhadap lintasan, maka hasil pemantulan tersebut diserap oleh photodioda. Setelah didapat data input kemudian dilakukan proses backpropagtion didalam sistem mikrokontroler Arduino untuk kemudian menghasilkan arah putaran motor sesuai dengan kondisi lintasan maze solving yang ada.

1) Sensor Photodioda 

Photodioda digunakan untuk membentuk sebuah alat ukur yang akurat di mana dapat mendeteksi intensitas cahaya di bawah 1 (satu) pW/cm2 sampai intensitas di atas 10 pW/cm2. Photodioda mempunyai resistansi yang tinggi pada kondisi gelap. Pemanfaatan photodioda ini biasanya pada kondisi terang di mana hasil resistansi dari photodioda akan turun seiring berkurangnya intensitas cahaya yang masuk.

2) Motor DC

Motor DC merupakan motor arus searah, perangkat elektromagnetis yang mengubah energi listrik menjadi energi mekanik menjadi tenaga gerak, sehingga tenaga gerak tersebut berupa putaran dari pada motor. Semakin besar tegangan yang diberikan maka putaran poros pada motor DC semakin cepat.

3) Arduino UNO
Arduino uno adalah sebuah mikrokontroler dengan basic Atmega 328. Arduino uno menyediakan 14 pin digital input/output di mana terdapat 6 pin yang memiliki fasilitas PWM, 6 analog input, 16 MHz clock speed, sebuah USB connection, sebuah jack power, ICSP header dan reset button serta memiliki Flash Memory 32 KB, SRAM 2 KB dan EEPROM 1 KB.

4) Bacpropogation 

BackPropagation merupakan metode pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang berhubungan dengan neuron-neuron yang ada pada lapisan tersembunyi. Metode Back Propgation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu.

3. Metode

Implementasi metode backpropagation ini akan digunakan untuk robot maze solving dalam
mengenali garis lintasan serta output yang dihasilkan akan mengatur arah putaran motor yang digunakan sebagai aktuator penggerak pada robot maze solving. Berikut ini blok diagram sistem kendali cerdas robot maze solving.



Analisa pendeteksian sensor dan perubahan data sensor telah didapatkan, selanjutnya melakukan analisa terhadap warna garis lintasan dan memberikan nilai warna garis lintasan yang akan dideteksi berdasarkan input sensor yang akan mendeteksi warna garis lintasan. Dengan menggunakan aplikasi berbasis komputer nilai warna didapatkan dan dilakukan konversi dengan menggunakan formula:



PWM digunakan agar kecepatan robot dapat dibatasi agar proses pengendali robot berjalan optimal. Jika robot memiliki kecepatan yang terlalu tinggi maka dapat mengakibatkan robot kehilangan kendali dan proses pendeteksian tidak optimal. Tahapan konversi Duty Cycle berdasarkan PWM digunakan untuk mengetahui secara presisi pengaturan kecepatan motor DC dengan representasi persen(%). Setelah didapatkan konversi Duty Cylce berikutnya konversi PWM menuju proses pelatihan JST.

Proses JST dengan Back Propagation dilakukan dengan memberikan nilai output range 0 s/d 1, sedangkan nilai PWM berada antara 0 (minimum kecepatan) sampai dengan 255 (maksimum kecepatan). Untuk mempermudah konversi dapat dilakukan dengan fungsi :



Langkah pertama yaitu mempersiapkan data untuk proses pelatihan dan pengujian. Berikut ini merupakan contoh data untuk proses pelatihan:

Sedangkan contoh data untuk pengujian adalah sbb:

Langkah berikutnya yaitu menyusun data latih beserta target latih sesuai dengan format pemrograman JST di Matlab. Data latih disusun sehingga menjadi matriks berukuran 4 x 15 seperti berikut ini:

Sedangkan target latih disusun menjadi matriks berukuran 1 x 15 seperti berikut ini:

Langkah selanjutnya yaitu menuliskan coding pada script matlab seperti berikut ini

3.1 Coding untuk menuliskan data latih dan target latih pada matlab

% Mempersiapkan data latih dan target latih
data_latih = [0.35,0.59,0.19,0.36,0.58,0.40,0.61,0.20,0.38,0.57,0.33,0.55,0.18,0.38,0.56;...
0.47,0.11,0.89,0.90,0.45,0.45,0.11,0.87,0.88,0.46,0.45,0.14,0.87,0.89,0.47;...
0.88,0.90,0.54,0.39,0.80,0.80,0.90,0.56,0.35,0.82,0.85,0.90,0.55,0.37,0.83;...
0.34,0.56,0.38,0.82,0.91,0.35,0.55,0.41,0.85,0.92,0.37,0.57,0.40,0.85,0.91];
target_latih = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5];
[~,N] = size(data_latih);
3.2 Selanjutnya membuat coding Jaringan Syaraf Tiruan Backpropagation dengan arsitektur 4-2-1 dan inisialisasi bobot awal secara acak. Pada pemrograman ini digunakan fungsi aktivasi sigmoid biner (logsig) pada hidden layer dan fungsi aktivasi linear (purelin) pada layer keluaran. Sedangkan fungsi pelatihan menggunakan metode gradien descent

% Pembuatan JST
net = newff(minmax(data_latih),[2 1],{'logsig','purelin'},'traingdx');
net.IW{1,1} = [-7.62,0.97,-2.60,-9.55;-5.83,-3.41,3.08,-4.44];
net.LW{2,1} = [-2.40,-2.67];
net.b{1,1} = [9.38;-2.7];
net.b{2,1} = 5.93;


3.3 Membuat coding untuk memberikan parameter-parameter yang mempengaruhi proses pelatihan jst seperti parameter jumlah epoch, target error, learning rate, momentum.

% Memberikan nilai untuk mempengaruhi proses pelatihan
net.performFcn = 'mse';
net.trainParam.goal = 0.01;
net.trainParam.show = 20;
net.trainParam.epochs = 1000;
net.trainParam.mc = 0.95;
net.trainParam.lr = 0.1;

Selanjutnya Membuat coding untuk melakukan pelatihan jaringan:



% Proses training

[net_keluaran,tr,Y,E] = train(net,data_latih,target_latih);



sehingga muncul tampilan seperti berikut:
Pada tampilan tersebut ditunjukkan bahwa target error (mse) tercapai pada epoch ke 506. Kita bisa melihat error (mse) yang dihasilkan pada setiap epoch dengan meng-klik tombol ‘performance’ sehingga muncul tampilan seperti berikut:


Sedangkan koefisien korelasi hasil pelatihan dapat dilihat dengan meng-klik tombol ‘regression’ sehingga diperoleh:
Nilai koefisien korelasi sebesar 0.99751 menunjukkan bahwa akurasi hasil proses pelatihan sangat baik.

Untuk melihat nilai-nilai hasil pelatihan, kita dapat menuliskan coding sbb:

% Hasil setelah pelatihan
bobot_hidden = net_keluaran.IW{1,1};
bobot_keluaran = net_keluaran.LW{2,1};
bias_hidden = net_keluaran.b{1,1};
bias_keluaran = net_keluaran.b{2,1};
jumlah_iterasi = tr.num_epochs;
nilai_keluaran = Y;
nilai_error = E;
error_MSE = (1/N)*sum(nilai_error.^2);


Langkah terakhir yaitu proses pengujian jaringan, Data uji disusun seperti ditunjukkan oleh matriks berikut:
Dalam matlab kita dapat menuliskan coding sbb:

% Performa jaringan
data_uji = [0.38,0.60,0.19,0.35,0.59;...
0.43,0.14,0.88,0.90,0.45;...
0.85,0.87,0.60,0.41,0.78;...
0.34,0.57,0.40,0.83,0.93];
hasil_uji = round(sim(net_keluaran,data_uji))


sehingga diperoleh hasil pada command window seperti berikut ini:


4. Kesimpulan

Proses penelusuran robot maze solving menggunakan Back Propagation dilakukan dengan mengubah mode-mode lintasan menjadi sebuah matriks baris dan kolom. Matriks ini yang akan digunakan untuk input pada Jaringan Syaraf Tiruan yang dibentuk untuk robot, agar proses pembelajaran robot dapat dilakukan secara linear sehingga robot dapat mengenali mode-mode lintasan beserta eksekusinya.

Robot dapat mengenali mode-mode lintasan dan dapat melakukan penelusuran berdasarkan output aktual yang telah diproses Back Propagation. Hasil proses dijadikan sumber input untuk membentuk node-node dalam algoritma Depth First Search selama robot melakukan penelusuran. Sehingga robot dapat menentukan lintasan terpendek dari jalut lintasan maze dengan beberapa kondisi goal dan variasi warna garis.

5. Video Simulasi



Download File disini

6. Referensi

[1] Amanpreet Singh dan Singh Sekhon (2011) “ A New Shortest Path Finding Algorithm For A Maze Solving Robot With Simulator “. IJCSC : Volume 2.

[2] Asep Saefullah, Dewi Immanira, dan Reze Amar Juliansah (2015) “Sistem Kontrol Robot Pemindah Barang Menggunakan Aplikasi Android Berbasis Arduino Uno”.ISSN : 19788282,

[3] Asep Solahuddin dan Setiawan Hadi (2013) “ Penerapan Jaringan Syaraf Tiruan Pada 
Pengenalan Pola Robot Line Follower “. PTNBR : Prosiding, Bandung 2013.

[4] Datasheet DT-Sense (2015) “ DT- Sense Line Tracking SFH 8 Sensor”. Inovation Center. Page : 3.

[5] Datasheet Arduino Uno (2015)”Product Overview Arduino Uno”. Arduino.cc.



Tidak ada komentar:

Posting Komentar

MICROPROCESSOR & MICROCONTROLLER O L E H Muhammad Firman Putra Tanjung 1710952018 Dosen Pembimbing Darwison,M....