• Tidak ada hasil yang ditemukan

Jurusan Teknik Elektro ITS Surabaya, Jurusan Teknik Elektro ITS Surabaya, Jurusan Teknik elektro ITS Surabaya

N/A
N/A
Protected

Academic year: 2022

Membagikan "Jurusan Teknik Elektro ITS Surabaya, Jurusan Teknik Elektro ITS Surabaya, Jurusan Teknik elektro ITS Surabaya"

Copied!
6
0
0

Teks penuh

(1)

PERENCANAAN JALUR TERPENDEK PADA ROBOT NXT DENGAN OBSTACLE

DINAMIS MENGGUNAKAN ALGORITMA D*

Wahris Shobri Atmaja 1) , Diah Puspito Wulandari, ST.,Msc 2), Ahmad Zaini , ST., MT. 3)

Jurusan Teknik Elektro ITS Surabaya, Jurusan Teknik Elektro ITS Surabaya, Jurusan Teknik elektro ITS Surabaya

1)ws_atmaja@elect-eng.its.ac.id

ABSTRACT - In computation world, many algorithm used to find shortest path from two node on the matrix or map. One from many searching algorithm is A* algorithm. A* algoritm same like Djikstra algoritm, but A* algorithm has heuristic function. A* Algorithm must have optimal solution because equal the shortest path from start and the shortest path from goal with static obstacle that has been planning. D* usually called “Dynamic A*” because the algorithm update the cost if found dynmic obstacle as the A* algorithm runs.

With Mindstorms NXT and D* algorithm, Ever make mobile robot with pass the test and succes until goal we want without touch the static obstacle. And then the mobile robot same can finish although any dynamic obstacle because used D*

algorithm. The successful of robot to finish with 50 time trial is 84%.

Keyword : Robotic, NXT Mindstorms, A*, D*

I. PENDAHULUAN

Robot saat ini telah banyak dimanfaatkan oleh industri-industri di dunia dalam upaya meningkatkan efisiensi dan efektifitas berbagai aktifitas kerja manusia. Salah satu teknologi robot yang terkenal saat ini adalah LEGO NXT dengan nama NXT Mindstorms. NXT merupakan salah satu tool yang bis dimanfaatkan dalam dunia pendidikan untuk mempelajari pembuatan robot dan pengendaliannya. Untuk mempelajari pembuatan robot dapat dilakukan dengan mendesain menggunakan semua bagian yang sudah disediakn oleh NXT mindstorms untuk menjadi bentuk robot yng diinginkan. Selain itu juga dapat mempelajari program untuk mengendalikan robot dengan software yang sudah disediakan juga oleh NXT mindstorms.

Dalam dunia komputasi, sangat banyak algoritma yang dapat digunakan untuk mencari jarak tependek dari dua titik yang terdapat pada suatu matriks (peta). salah satu dari algoritma pencari pasangan titik terdekat itu ialah algoritma A*. Algoritma A* sangat mirip dengan algoritma Djikstra, namun ia memiliki fungsi heuristik tambahan. Algoritma A* juga terkenal sebagai algoritma yang pasti memberikan hasil yang optimal karena menjumlahkan jarak terpendek dari start dan jarak terpendek dari goal dengan konfigurasi map dan obstacle yng sudah di tentukan. Sedangkan algoritma D* adalah algoritma A* dengan update nilai saat A* berjalan karena itu D* biasa disebut “Dynamic A*”.

Algoritma ini berguna untuk mengatasi perubahan konfigurasi map karena adanya obstacle dinamis sehinggal merepresentasikan pada kondisi real.

Dalam tugas akhir inilah, akan dibuat suatu Mobile Robot dengan NXT mindstorms yang dapat merencanakan suatu jalur terpendek agar robot sampai pada tempat tujuan yang diinginkan meskipun ada obstacle statis dan dinamis karena menggunkan algoritma D*

II. DASAR TEORI

2.1 ALGORITMA A*

A* (dibaca "A bintang"/"A star") adalah algoritma pencarian graf/pohon yang mencari jalur dari satu titik awal ke sebuah titik akhir yang telah ditentukan. Algoritma A* menggunakan pendekatan heuristik h(x) yang memberikan peringkat ke tiap-tiap titik x dengan cara memperkirakan rute terbaik yang dapat dilalui dari titik tersebut. Setelah itu tiap-tiap titk x tersebut dicek satu-persatu berdasarkan urutan yang dibuat dengan pendekatan heuristik tersebut. Maka dari itulah algoritma A* adalah contoh dari best-first search.

(2)

Algoritma ini pertama kali ditemukan pada tahun 1968 oleh Peter Hart, Nils Nilsson dan Bertram Raphael. Dalam tulisan mereka, algoritma ini dinamakan algoritma A. Penggunaan algoritma ini dengan fungsi heuristik yang tepat dapat memberikan hasil yang optimal, maka algoritma inipun disebut A*.

Dalam ilmu komputer, A* adalah algoritma komputer yang banyak digunakan dalam pathfinding dan traversal grafik, proses merencanakan jalur efisien tercepat antara titik, yang disebut node. Tercatat untuk kinerja dan ketepatan, menikmati digunakan secara luas. Peter Hart, Nils Nilsson, dan Bertram Raphael pertama kali menjelaskan algoritma ini pada tahun 1968. Ini adalah perluasan dari algoritma 1959 Edsger Dijkstra. Sebuah algoritma untuk mencapai kinerja yang lebih baik (berkenaan dengan waktu) dengan menggunakan heuristik.

Beberapa terminologi dasar yang terdapat pada algoritma ini adalah starting point, simpul (nodes), A, open list, closed list, nilai (cost), goal, halangan (unwalkable).

Starting point adalah sebuah terminologi untuk posisi awal sebuah benda.

A adalah simpul yang sedang dijalankan dalam algortima pencarian jalan terpendek.

Simpul adalah petak-petak kecil sebagai representasi dari area pathfinding. Bentuknya dapat berupa persegi, lingkaran, maupun segitiga.

Open list adalah tempat menyimpan data simpul yang mungkin diakses dari starting point maupun simpul yang sedang dijalankan.

Closed list adalah tempat menyimpan data simpul sebelum A yang juga merupakan bagian dari jalur terpendek yang telah berhasil didapatkan.

Nilai (F) adalah nilai yang diperoleh dari penjumlahan nilai G, jumlah nilai tiap simpul dalam jalur terpendek dari starting point ke A, dan H, jumlah nilai perkiraan dari sebuah simpul ke goal.

Goal yaitu simpul yang dituju.

Halangan adalah sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A.

Prinsip algoritma ini adalah mencari jalur terpendek dari sebuah simpul awal (starting point) menuju simpul tujuan dengan memperhatikan harga (F) terkecil.

Perhatikan Gambar dibawah ini :

Gambar 2.1.1 Pemberian nilai A*

Dalam setiap simpul atau kotak terdapat 3 parameter nilai yaitu nilai F, G, dan H Dimana rumus dasar nilai A* adalah

F(n) = G(n) + H(n) (1)

F = Nilai total

G = Nilai jarak terpendek dari start H = Nilai jarak terpendek dari goal

Selain terdapat 3 parameter nilai juga terdapat koordinat titik yang akan untuk menentukan arah dan posisi robot berada. Dimana pada gambar diatas menunjukkan nilai koordinat (0,0). Begitu juga untuk semua kotak yang lain.

Gambar 2.1.2 Proses awal pencarian A*

Diawali dengan menempatkan A pada starting point, kemudian memasukkan seluruh simpul yang bertetangga dan tidak memilik atribut rintangan dengan A ke dalam open list. Kemudian mencari nilai H terkecil dari simpul-simpul dalam open list tersebut.

Kemudian memindahkan A ke simpul yang memiliki nilai H terkecil. Simpul sebelum A disimpan sebagai parent dari A dan dimasukkan ke dalam closed list. Jika terdapat simpul lain yang bertetangga dengan A (yang sudah berpindah) namun belum termasuk kedalam anggota open list, maka masukkan simpul-simpul tersebut ke dalam open list.

Setelah itu, bandingkan nilai G yang ada dengan nilai G sebelumnya (pada langkah awal, tidak perlu dilakukan perbandingan nilai G). Jika nilai G sebelumnya lebih kecil maka A kembali ke posisi awal. Simpul yang pernah dicoba dimasukkan ke dalam closed list. Hal terebut dilakukan berulang-ulang hingga terdapat solusi

(3)

atau tidaka ada lagi simpul lain yang berada pada open list.

Gambar 2.1.3 Proses akhir pencarian A*

Keterangan gambar :

Kotak hijau = Starting point Kotak hitam = Halangan Kotak merah = Goal Hijau tepi = Open list Biru tepi = Closed list Nilai tiap kotak = Nilai F, G, H Lingkaran merah = Jalur terpendek

2.1.1 Fungsi Heuristik untuk A*

Seperti yang telah disebutkan diatas, fungsi heuristik sangat berpengaruh terhadap kelakuan algoritma A*:

• Apabila h(n) selalu bernilai 0, maka hanya g(n) yang akan berperan, dan A* berubah menjadi Algoritma Dijkstra, yang menjamin selalu akan menemukan jalur terpendek.

• Apabila h(n) selalu lebih rendah atau sama dengan nilai perpindahan dari titik n ke tujuan, maka A* dijamin akan selalu menemukan jalur terpendek. Semakin rendah nilai h(n), semakin banyak titik-titik yang diperiksa A*, membuatnya semakin lambat.

• Apabila h(n) tepat sama dengan nilai perpindahan dari n ke tujuan, maka A* hanya akan mengikuti jalur terbaik dan tidak pernah memeriksa satupun titik lainnya, membuatnya sangat cepat.

Walaupun hal ini belum tentu bisa diaplikasikan ke semua kasus, ada beberapa kasus khusus yang dapat menggunakannya.

• Apabila h(n) kadangkala lebih besar dari nilai perpindahan dari n ke tujuan, maka A* tidak menjamin ditemukannya jalur terpendek, tapi prosesnya cepat.

• Apabila h(n) secara relatif jauh lebih besar dari g(n), maka hanya h(n) yang memainkan peran, dan A* berubah menjadi BFS.

Heuristik yang paling umum digunakan adalah jarak Manhattan. Fungsi heuristik ini hanya akan menjumlahkan selisih nilai x dan nilai y dari dua buah titik. Heuristik ini dinamakan Manhattan

mungkin karena di kota Manhattan di Amerika, jarak dari dua lokasi umumnya dihitung dari blok- blok yang harus dilalui saja dan tentunya tidak bisa dilintasi secara diagonal. Perhitungannya dapat ditulis sebagai berikut:

h(n) = abs(n.x-tujuan.x) + abs(n.y-tujuan.y) (2)

Hal lain yang harus diperhatikan adalah seberapa cepat fungsi heuristik dapat dikomputasi.

Selalu akan ada trade-off antara akurasi dari fungsi heuristik dan waktu yang dibutuhkannya untuk mengomputasinya. Nampaknya bagus jika fungsi heuristik yang digunakan sangat akurat, dilihat dari berbagai macam percobaan bahwa jika heuristik yang digunakan sempurna maka A* akan selalu melewati jalur yang tepat dan akan selalu memberikan optimum global. Namun, heuristik yang sempurna semacam itu tidak ada (dan tidak akan pernah ada), dan bahkan untuk mendekatinya saja akan memerlukan tambahan komputasi yang tidak ringan.

Seringkali dalam aplikasinya heuristik yang memberikan hasil yang sangat akurat namun lambat, kurang disenangi dibanding heuristik yang tidak begitu optimal namun memberikan hasil dengan cepat. Maka dari itu, pemilihan heuristik sangat bergantung pada tujuan penggunaan A*.

Jika hasil yang dibutuhkan adalah optimum global, maka fungsi heuristik yang digunakannya haruslah

"sempurna", sedang jika yang dibutuhkan adalah hasil yang cepat dan tidak harus jalur terpendek, maka lebih bijak menggunakan heuristik yang lebih ringan.

2.2 ALGORITMA D*

D* adalah algoritma A* dengan halangan yang dinamis. Algoritma ini seperti algoritma A*

tetapi dapat mendeteksi halangan saat A* nya jalan.

Algoritma pencarian D diperkenalkan oleh Anthony Stentz pada tahun 1994. Nama D*

berasal dari istilah “ Dynamic A*

Untuk lebih jelasnya lihat gambar dibwah ini :

Gambar 2.2.1 Proses awal pencarian D*

(4)

Gambar 2.2.2 Halangan pada jalur A*

Gambar 2.2.3 Halangan dinamis pada jalur A*

Gambar 2.2.4 Posisi Start pada A* kedua

Gambar 2.2.5 Proses akhir Pencarian A* kedua

Diawali dengan proses akhir pencarian A*

yang dijadikan sebagai proses awal pencarian D*

seperti gambar 2.2.1. Pada saat menjalankan A*

yang pertama, tiba-tiba ada halangan pada jalur A*

maka sensor akan mendeteksi halangan tersebut seperti gambar 2.2.2. Setelah mendeteksi halangan pada jalur A* akan di tunggu apakah halangan tersebut diam atau bergerak. Kalau halangan

bergerak maka akan di lanjutkan sesuai dengan A*

yang pertama seperti gambar 2.2.3. Akan tetapi bila halangan diam, maka posisi terakhir saat mendeteksi halangan akan dijadikan sebagai start baru dan akan dilakukan proses pencarian A*

kedua dengan goal yang sama seperti gambar 2.2.4 dan gambar 2.2.5.

III. DESAIN DAN IMPLEMENTASI 3.1 DESAIN ROBOT

3.1.1 Desain robot NXT

Gambar 3.1.1 Desain robot NXT

Desain robot NXT dibuat seperti gambar diatas. Yaitu robot berbentuk sepertu mobil atau anjing dengan 2 roda pada bagian depan dan satu roda bebas pada bagian belakang. Roda bebas ini digunakan untuk mengurangi adanya gesekan pada roda saat berjalan agar robot bisa berjalan lurus.

Sedangkan 2 roda bagian depan dihubungkan dengan 2 buah motor untuk mengatur pergerakan robot baik maju atau belok. Sensor yang digunakan adalah sensor ultrasonic dengan penempatan depan.

Sensor ini digunakan untuk mendeteksi adanya obstacle saat robot berjalan. Semua proses pengaturan dilakukan oleh NXT dengan tampilan layar LCD.

3.1.2 Desain Maze

Gambar 3.1.1 Desain Maze

(5)

Desain maze yang dibuat adalah suatu lantai dengan luas 240cm x 240cm. dimana terdri dari 8 ubin vertikal dan 8 ubin horizontal. Dengan masing2 ubin berukuran 30cm x 30cm.

Posisi tampilan awal maze baik posisi start, obstacle, dan goal seperti pada gambar diatas.

Posisi tersebut dapat dirubah sesuai dengan yang diinginkan.

3.2 IMPLEMENTASI

Gambar 3.2.1 Kemampuan robot NXT

Robot NXT mindstorms yang dibuat memiliki kemampuan untuk belok dari 0 sampai 360 derajat. Dengan posisi awal (default) robot menghadap ke kanan. Posisi ini digunakan untuk menyimpan koordinat awal robot serta arah robot kedua parameter tersebut digunakan agar robot dapat berjalan dan mengetahui arah selanjutnya dengan benar.

IV. PENGUJIAN

4.1 Pengujian Sistem

Pada bagian ini akan membahas pengujian dan analisa sistem yang telah dirancang. Smua pengujian dilakukan dalam kondisi baterai NXT yang terisi penuh. dan pada maze seperti gambar dibawah ini :

Gambar 4.1.1 Maze pengujian sistem

4.2 Pengujian Sistem meliputi :

A. Pengujian respon NXT terhadap algoritma D*

B. Pengujian waktu robot untuk berjalan C. Pengujian Prosentase keberhasilan

robot

A. Pengujian respon NXT terhadap algoritma D*

Pengujian respon NXT terhadap algoritma D* ini digunakan untuk mencari tau seberapa cepat mikrokontroller pada NXT memproses algoritma D* yang sudah dibuat. Percobaan dilakukan sebanyak 10 kali dengan posisi start dan goal yang sama tetapi halangan berbeda-beda. Baik halangan yang mudah maupun halangan yang sulit.

Selengkapnya lihat table dibawah ini :

Tabel 4.2.1 Pengujian respon NXT terhadap algoritma D*

Percobaan Koordinat Start

Koordinat Goal

Halangan Waktu (detik)

1 2,3 6,3 0 2,3

2 2,3 6,3 1 2,4

3 2,3 6,3 2 2,8

4 2,3 6,3 3 3,5

5 2,3 6,3 4 4,4

6 2,3 6,3 5 5,5

7 2,3 6,3 6 5,9

8 2,3 6,3 7 7,2

9 2,3 6,3 8 9,7

10 2,3 6,3 9 11,5

RATA-RATA = 5,52

B. Pengujian Waktu robot untuk berjalan

Pengujian Waktu robot untuk berjalan dari satu ubin ke ubin yang lain baik maju lurus, maju diagonal maupun belok di gunakan untuk menghitung berapa lama waktu yang dibutuhkan robot untuk menghindari obstacle dinamis yang bergerak sehingga robot tidak menabraknya.

Selengkapnya lihat table dibawh ini :

Tabel 4.2.2 Pengujian waktu robot berjalan maju Percobaan Gerakan maju Waktu(detik)

1 lurus 1,98

2 diagonal 2,54

RATA-RATA = 2,26

Tabel 4.2.3 Pengujian waktu robot berjalan belok Percobaan Gerakan belok Waktu(detik)

1 450 1,35

2 900 1,66

3 1350 2,29

4 1800 2,79

5 2250 2,34

6 2700 1,89

7 3150 1,48

RATA-RATA = 1,97

(6)

C. Pengujian prosentase keberhasilan robot

Pengujian prosentase keberhasilan robot dilakukan sebanyak 50 kali dengan posisi start dan posisi goal berbeda-beda. Begitu juga dengan obstacle nya. Baik jumlah maupun kesulitannya berbeda-beda. Hal ini dilakukan untuk mengetahui seberapa bagus robot NXT dalam memproses lgoritma D* dan menjalankannya.

Selengkapnya lihat table dibawah ini :

Tabel 4.2.4 Pengujian prosentase keberhasilan robot

Percobaan Koordinat Start

Koordinat Goal

Halangan Keterangan

1 1,7, 2,3 0 Berhasil

2 2,5 4,3 1 Berhasil

3 3,3 7,3 2 Berhasil

4 5,3 3,3 0 Berhasil

5 1,3 6,3 1 Berhasil

6 2,3 5,3 2 Berhasil

7 5,3 3,2 0 Berhasil

8 7,3 4,5 1 Berhasil

9 1,3 4,3 2 Berhasil

10 6,3 1,3 0 Berhasil

11 5,7 1,5 1 Berhasil

12 1,3 7,5 2 Tidak Berhasil

13 5,5 1,2 0 Berhasil

14 6,6 0,4 1 Berhasil

15 6,3 3,4 2 Berhasil

16 7,3 1,1 0 Berhasil

17 2,4 5,6 1 Berhasil

18 1,4 7,7 2 Tidak Berhasil

19 3,3 5,1 0 Berhasil

20 1,3 6,3 1 Berhasil

21 2,3 7,3 2 Berhasil

22 4,3 2,3 0 Berhasil

23 3,3 4,3 1 Berhasil

24 4,3 7,3 2 Tidak Berhasil

25 3,3 3,3 0 Berhasil

26 2,3 6,3 1 Berhasil

27 3,3 6,3 2 Tidak Berhasil

28 2,6 3,2 0 Berhasil

29 2,4 4,5 1 Berhasil

30 1,3 4,3 2 Berhasil

31 2,3 1,3 0 Berhasil

32 2,6 1,5 1 Berhasil

33 1,3 7,5 2 Berhasil

34 6,3 1,2 0 Berhasil

35 5,2 0,4 1 Berhasil

36 6,3 3,4 2 Berhasil

37 7,3 1,1 0 Berhasil

38 2,3 5,6 1 Berhasil

39 2,5 7,7 2 Tidak Berhasil

40 1,3 5,1 0 Berhasil

41 2,7 6,3 1 Berhasil

42 5,1 7,3 2 Tidak Berhasil

43 2,5 3,4 2 Berhasil

44 2,2 1,1 0 Berhasil

45 5,3 5,6 1 Berhasil

46 3,3 7,7 2 Berhasil

47 1,2 5,1 0 Berhasil

48 2,1 6,3 1 Berhasil

49 4,3 7,3 2 Tidak Berhasil

50 1,1 7,7 2 Tidak Berhasil

RATA-RATAKEBERHASILAN = 42/50 x 100%

= 84%

V. KESIMPULAN

1) Rata-rata respon NXT terhadap algoritma D* dengan start dan goal yang sama tetapi dengan halangan yang berbeda-beda baik yang mudah maupun sulit adalah 5,52 detik

2) Rata-rata waktu robot untuk berjalan adalah :

a. Maju = 2,26 detik b. Belok = 1,97 detik

Dari rata-rata tersebut dapat disimpulkan bahwa obstacle dinamis yang bergerak minimal 4,5 detik untuk pindah dari satu ubin ke ubin yang lain. Karena gerakan robot untuk maju 2 ubin adalah 4,52 detik 3) Prosentase keberhasilan robot untuk

sampai ke goal dengan 50 kali percobaan dengan posisi start, posisi goal, dan halangan dinamis yang berbeda-beda adalah 84%

VI. DAFTAR PUSTAKA

[1] http://www.nxtprograms.com/

[2] http://bricxcc.sourceforge.net/nbc/

[3] A* searchalgorithm,http://en.wikipedia.org/

wiki/A_search_algorithm, Wikipedia, tanggal akses 2 januari 2010 pukul 13.00WIB.

[4] Patrick Lester, A* Pathfinding for Beginners, http://www.gamedev.net/reference/articles/art icle2003.asp, 2003.

[5] Stentz, A. 1995. The focussed D* algorithm for real-time re-planning. In Proceedings of the International Joint Conferenceon Arti?cial Intelligence, 1652–1659.

Gambar

Gambar 2.1.1 Pemberian nilai A*
Gambar 2.1.3 Proses akhir pencarian A*
Gambar 2.2.2 Halangan pada jalur A*
Gambar 3.2.1 Kemampuan robot NXT
+2

Referensi

Dokumen terkait

Kinerja perawat sangat dipengaruhi oleh seberapa banyak mereka memberi masukan pada institusi. Penampakan hasil kerja tidak terbatas pada pekerja yang duduk dalam posisi

Oksigen terlarut merupakan faktor pembatas yang paling penting bagi kehidupan biota perairan, Jika bahan organik melimpah maka aktifitas bakteri yang menguraikannya menjadi

Algoritma ini merupakan algoritma yang berfungsi untuk mengekstrak ciri suatu sinyal suara dengan merubah sinyal suara menjadi vektor-vektor akustik yang digunakan

Sedangkan pada kelompok skipping hasil analisis menunjukkan adanya pengaruh yang signifikan antara latihan skipping terhadap kecepatan lari 60 meter siswa Kelas V

Penelitian ini bertujuan untuk: 1) mengetahui bagaimana efektivitas penerapan bahan ajar al-Qur’an Hadis di kelas VIII MTsN Gowa; 2) mengetahui peningkatan hasil

Jenis-jenis kayu yang baik digunakan untuk pembuatan kayu lapis dan paling sering digunakan PT Darma Satya Nusantara adalah jenis kayu yang berkualita tinggi bahkan untuk

ditetapan. Beberapa pengujian yang dilakukan yaitu, pengujian melihat informasi PIK remaja oleh pengguna, pengujian mencari PIK dalam radius terdekat dengan pengguna,

Menunaikan ibadah haji merupakan salah satu rukun Islam dalam bentuk ritual tahunan yangdilaksanakan kaum muslim sedunia yang mampu mengerjakannya (dari segi materi, fisik,