• Tidak ada hasil yang ditemukan

Model Formal Sistem Perencanaan Gerak Mobile Robot

N/A
N/A
Protected

Academic year: 2017

Membagikan "Model Formal Sistem Perencanaan Gerak Mobile Robot"

Copied!
43
0
0

Teks penuh

(1)

MODEL FORMAL SISTEM PERENCANAAN GERAK MOBILE ROBOT

ABDUL RAHMAT RAMDHAN

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(2)

MODEL FORMAL SISTEM PERENCANAAN GERAK MOBILE ROBOT

Skripsi

Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer

pada Fakultas Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Oleh :

ABDUL RAHMAT RAMDHAN

G64104064

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(3)

ABSTRAK

ABDUL RAHMAT RAMDHAN. Model Formal Sistem Perencanaan Gerak Mobile Robot. Dibimbing oleh PRAPTO TRI SUPRIYO dan WISNU ANANTA KUSUMA.

Perencanaan gerak (motion planning) merupakan salah satu masalah sulit yang sering dihadapi dalam pengembangan mobile robot. Perencanaan gerak yang baik dapat menghasilkan gerak yang optimal dan memenuhi safety requirement (goal/tujuan) yang diinginkan. Misalnya, robot aman dari tabrakan dengan dinding penghalang, trayektori terpendek, dan pergerakan yang akurat. Pada penelitian ini, lingkungan robot merupakan lingkungan robot pada Kontes Robot Cerdas Indonesia (sering disingkat KRCI) 2007 fire fighter. Pertama safety requirement diformulasikan ke dalam bahasa formal linear temporal logic. Setelah safety requirement diformulasikan, strategi penyelesaian masalah disusun agar safety requirement dipenuhi. Kemudian lingkungan robot dibagi menjadi dua daerah, free configuration space dan forbidden configuration space. Free configuration space didekomposisi menjadi daerah-daerah berbentuk segitiga sehingga lingkungan robot menjadi lebih sederhana. Trayektori terpendek dicari dengan manual lalu dimodelkan dengan menggunakan software NuSMV. Model yang telah dibuat diverifikasi dengan tool model checking NuSMV. Hasil yang diperoleh dalam penelitian ini adalah suatu sistem perencanaan gerak mobile robot yang telah diverifikasi dengan NuSMV.

(4)

Judul : Model Formal Sistem Perencanaan Gerak Mobile Robot

Nama : Abdul Rahmat Ramdhan

NRP : G64104064

Menyetujui:

Pembimbing I,

Pembimbing II,

Drs. Prapto Tri Supriyo, M.Kom.

Wisnu Ananta Kusuma, S.T., M.T.

NIP 131 878 952

NIP 132 312 485

Mengetahui:

Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam

Institut Pertanian Bogor

Dr. drh. Hasim, DEA.

NIP 131 578 806

(5)

RIWAYAT HIDUP

Penulis dilahirkan di Bogor pada tanggal 16 Mei 1986 sebagai anak kedua dari tiga bersaudara dari pasangan Supian dan Siti Rohani. Penulis menyelesaikan pendidikan menengah atas pada tahun 2004 dari SMU Negeri 3 Bogor.

(6)

PRAKATA

Segala puji bagi Alloh dan salawat dan salam atas Rosul Alloh, Muhammad sholollohu ‘alaihi wa salam serta kepada keluarga dan sahabat-sahabatnya. Amma ba’du.

Melalui lembar ini, penulis ingin menyampaikan penghargaan dan terima kasih kepada Bapak Drs. Prapto Tri Supriyo, M.Kom. selaku pembimbing I, yang telah meluangkan waktunya untuk membimbing penulis, memberikan ilmu-ilmu yang berharga, serta dukungan selama penelitian ini berlangsung. Bapak Wisnu Ananta, ST., MT. selaku pembimbing II, yang telah membimbing penulis dan selalu memberikan semangat, serta Dr. Ir. Sri Nurdiati, M.Sc. yang telah bersedia menjadi penguji dalam pelaksanaan seminar dan sidang.

Penulis juga mengucapkan terima kasih kepada seluruh keluarga, khususnya Ibu dan Bapak yang telah memberikan dukungan, kasih sayang, doa, dan pengorbanannya selama ini. Kak Rudi yang selalu mengingatkan penulis untuk tak lupa bersabar dan berdoa dan memberi semangat untuk terus menyelesaikan tugas akhir.

Irvan yang selalu membantu, memberi dukungan, pendapat dan inspirasi yang sangat berharga selama ini. Maul yang telah membantu selama penulisan tugas akhir dan memberi dukungan ketika seminar dan sidang. Mas Muji, Mas Faiz, dan “Anak-anak Kajian” lainnya yang telah memberikan wawasan dan keceriaan kepada penulis. Semua teman-teman ilkomerz’41, terima kasih untuk kebersamaan selama kuliah di Ilkom IPB. Serta rekan-rekan Ilkomerz angkatan 40, 41, dan 43.

Seluruh staf pengajar yang telah memberikan wawasan serta ilmu yang berharga selama penulis menuntut ilmu di Departemen Ilmu Komputer. Seluruh staf administrasi dan perpustakaan Departemen Ilmu Komputer yang selalu memberi kemudahan dalam mengurus segala macam hal berkaitan dengan perkuliahan, serta pihak-pihak lain yang tidak dapat disebutkan satu-persatu.

Sebagaimana manusia yang tidak luput dari kesalahan, penulis menyadari bahwa karya ilmiah ini jauh dari sempurna. Namun penulis berharap semoga karya ilmiah ini dapat bermanfaat bagi siapapun yang membacanya.

Bogor, September 2008

(7)

DAFTAR ISI

Halaman

DAFTAR ISI...iv

DAFTAR GAMBAR ... v

DAFTAR LAMPIRAN ... v

PENDAHULUAN ... 1

Latar Belakang ... 1

Tujuan ... 1

Ruang Lingkup ... 1

Manfaat ... 1

TINJAUAN PUSTAKA... 1

Configuration Space... 1

Algoritme Triangulasi ... 1

Linear Temporal Logic... 2

NuSMV ... 2

METODE PENELITIAN... 3

Formulasi Masalah ... 3

Strategi Penyelesaian Masalah ... 3

Verifikasi Model Menggunakan NuSMV ... 3

HASIL DAN PEMBAHASAN... 3

Formulasi Masalah ... 3

Strategi Penyelesaian Masalah ... 4

Verifikasi Model Menggunakan NuSMV ... 7

KESIMPULAN DAN SARAN... 8

Kesimpulan... 8

Saran... 8

DAFTAR PUSTAKA ... 8

(8)

DAFTAR GAMBAR

Halaman

1 Lingkungan robot KRCI fire fighter 2007... 3 2 Proposisi-proposisi atomik (ruang-ruang observasi pada lingkungan robot). ... 4 3 Forbidden configuration space dan triangulasi free configuration space. Garis-garis

putus-putus merupakan transisi. ... 4

DAFTAR LAMPIRAN

Halaman

(9)

PENDAHULUAN

Latar Belakang

Salah satu masalah yang sering dihadapi dalam pengembangan mobile robot (selanjutnya disebut robot) adalah masalah perencanaan gerak (motion planning) robot. Masalah ini sejak lama telah difokuskan dalam mencari trayektori yang memenuhi spesifikasi tertentu dan terhindar dari penghalang (Fainekos et al. 2005) .

Spesifikasi-spesifikasi dalam robot, sering kali bersifat temporal (waktu). Misalnya, robot tidak boleh menabrak penghalang. Ini berarti robot memerlukan sifat always (Kloetzer & Belta 2006). Secara formal spesifikasi-spesifikasi dalam robot dapat didefinisikan dengan menggunakan temporal logic, seperti linear temporal logic (LTL) dan computation tree logic (CTL).

Penelitian ini mengambil topik sistem perencanaan gerak mobile robot dengan menggunakan lingkungan robot Kontes Robot Cerdas Indonesia (KRCI) fire fighter tahun 2007. Penelitian ini dimulai dengan melakukan pendefinisian masalah kemudian memformulasikan masalah ke dalam bentuk LTL. Strategi-strategi kontrol disusun sehingga didapatkan model yang akan diverifikasi dengan menggunakan tool model checking NuSMV.

Tujuan

Penelitian ini bertujuan untuk membuat model perencanaan gerak mobile robot pada lingkungan robot KRCI 2007 dan memverifikasi model tersebut dengan menggunakan tool modelchecking NuSMV. Ruang Lingkup

Ruang lingkup penelitian ini adalah: 1 Membuat perencanaan gerak mobile

robot pada lingkungan robot KRCI 2007. 2 Bentuk robot diasumsikan berbentuk

persegi panjang dengan panjang 20 cm dan lebar 15 cm.

3 Lingkungan robot berbentuk bidang datar, dan tangga diasumsikan tidak ada. 4 Safety requirement diformulakan dalam

bahasa formal linear temporal logic. 5 Mobile robot diasumsikan dapat

mengenali posisi keberadaannya.

6 Model dibuat dengan menggunakan software NuSMV.

7 Model yang telah dibuat diverifikasi dengan menggunakan software NuSMV. Manfaat

Penelitian ini diharapkan dapat menyederhanakan masalah yang dihadapi dalam perencanaan gerak mobile robot.

TINJAUAN PUSTAKA

Configuration Space

Pertama didefinisikan istilah reference point dari robot. Misalkan robot berada dalam ruang dua dimensi (disebut work space). Penempatan robot (configuration) dispesifikasikan oleh sebuah vektor translasi R(x, y). Sebagai contoh, misalkan verteks-verteks dari robot adalah (-7.5,-10), (7.5,-10), (7.5,10), dan (-7.5,10). Titik-titik R(3,2) adalah 4.5,-8), (10.5,-8), (10.5, 12), dan (-4.5, 12). R(x, y) menspesifikasikan bahwa robot ditempatkan dengan reference point robot di titik (x, y).

Secara umum, penempatan robot dispesifikasikan oleh sebuah nilai dari parameter-parameter yang bersesuaian terhadap nilai dari degree of freedom (DOF) robot. Parameter ruang dari robot biasa disebut dengan configuration space.

Tidak semua titik-titik pada configuration space memungkinkan untuk ditempati oleh robot. Titik-titik yang dapat ditempati oleh robot disebut dengan free configuration space atau free space. Titik-titik lain disebut dengan forbidden configuration space atau forbidden space (Overmars et al. 2008). Pengetahuan mengenai free space dan forbidden space dapat digunakan robot agar tidak menabrak dinding penghalang.

Algoritme Triangulasi

(10)

Algoritme Seidel (Narkhede & Manocha 1995) ini (sering disebut Seidel’s Algorithm) melalui tiga langkah sebagai berikut.

• Dekomposisi poligon ke dalam trapezoid-trapezoid (trapezoidation).

• Dekomposisi trapezoid-trapezoid pada langkah sebelumnya ke dalam poligon-poligon monoton (monotone polygon). • Triangulasi poligon-poligon monoton

pada langkah 2. Poligon-poligon monoton dibagi menjadi segitiga-segitiga. Linear Temporal Logic

Linear temporal logic (LTL) merupakan sebuah logika untuk membicarakan mengenai sequence yang tak terbatas. Masing-masing elemen dalam sequence tersebut bersesuaian terhadap sebuah proposisi (Mukund 1997). Linear temporal logic dirancang untuk mempelajari bagaimana waktu digunakan dalam argumen-argumen berbahasa natural. Linear temporal logic dibawa ke dalam ilmu komputer oleh Pnueli.

A. Sintaks Linear Temporal Logic

Himpunan formula-formula dalam linear temporal logic Φ dibangun oleh :

• Himpunan berhingga proposisi atomik

{

p0,p1,...,pn

}

=

∑ .

• Konstanta trueT dan konstanta false ⊥. • Penghubung logika atau operator boolean

¬ (negasi) dan ∨ (atau). Penghubung logika lain dapat dinyatakan dalam dua operator ini.

• Modality next O, until U, eventually ◊, dan henceforth .

• Formula-formula α, β di Φ.

B. Semantik Linear Temporal Logic

Formula linear temporal logic diinterpretasikan dalam sebuah model waktu diskret atau linear (Artale 1997). Model merupakan sebuah fungsi M : 0 → 2

∑ . Fungsi M menjelaskan bagaimana nilai kebenaran proposisi-proposisi atomik berubah terhadap waktu (Mukund 1997). M, i |= p0 dibaca “p0true pada saat waktu i di model M”.

Semantik beberapa formula dapat didefinisikan sebagai berikut:

M, i |= p, dengan p Σ, jika dan hanya jika p M(i).

M, i |= ¬α jika dan hanya jika M, i |≠ α. • M, i |= α∨β jika dan hanya jika M, i |=

α or M, i |= β.

M, i |= Oα jika dan hanya jika M, i+1 |= α.

M, i |= αUβ jika dan hanya jika ada i

k≥ sedemikian sehingga M, k |= β dan untuk semua j sedemikian sehingga i j < k, M, j |= α.

Suatu formula α dikatakan satisfiable jika ada sebuah modelM dan waktu i bagi α (M, i |= α). Suatu formula α dikatakan valid jika M, i |= α jika dan hanya jika ✁

M, ✁ i . M, i |= α. Penjelasan lebih lengkap dapat dilihat di dalam Mukund (1997).

NuSMV

NuSMV merupakan sebuah model checker yang berawal dari membangun kembali, mengimplementasi kembali, dan memperluas CMU SMV. Fitur-fitur utama NuSMV adalah sebagai berikut :

Functionalities

NuSMV memperkenankan representasi dari synchronous finite state system dan asynchronous finite state system dan juga memperkenankan untuk menganalisis spesifikasi sistem yang diekspresikan dalam computation tree logic (CTL) dan linear temporal logic (LTL).

Quality of implementation

NuSMV ditulis/dibuat dengan menggunakan ANSI C, POSIX, dan telah di-debug dengan Purify untuk mendeteksi kebocoran memory. NuSMV menggunakan BDD (Binary Decision Diagrams) package yang dikembangkan oleh Universitas Colorado.

Sintaks dari program NuSMV adalah sebagai berikut:

program :: module_list

module_list ::

module

| module_list module

(11)

METODE PENELITIAN

Formulasi Masalah

Masalah-masalah yang dihadapi oleh mobile robot dikumpulkan. Masalah-masalah tersebut diformulasikan ke dalam bahasa formal linear temporal logic.

Strategi Penyelesaian Masalah

Strategi disusun dalam memenuhi safety requirement yang diinginkan. Strategi yang digunakan merupakan pendekatan-pendekatan yang ditawarkan beberapa literatur mengenai robot motion planning, computational geometry, dan literatur terkait lainnya.

Strategi yang dipakai adalah sebagai berikut:

A. Menghindari dinding penghalang. Strategi yang digunakan agar robot tidak menabrak dinding-dinding penghalang. B. Abstraksi diskret.

Mendekomposisi lingkungan robot menjadi bentuk-bentuk yang lebih sederhana. Kemudian diabstraksikan ke dalam finite transition system.

C. Pencarian trayektori terpendek.

Pembobotan dilakukan pada finite transition system. Bobot ini didapat dengan menghitung jarak antara titik kesetimbangan satu state dengan state lainnya. Kemudian dicari dengan trayektori terpendek.

D. Spesifikasi sistem perencanaan gerak mobile robot.

Spesifikasi secara informal dibuat agar memenuhi safety requirement. Spesifikasi ini dibuat berdasarkan finite transition system hasil abstraksi dan rute terpendek yang didapat.

E. Implementasi dengan NuSMV.

Spesifikasi yang didapat diimplementasi ke dalam finite state machine dalam program NuSMV.

Verifikasi Model Menggunakan NuSMV

Model yang telah dibuat diverifikasi dengan menggunakan tool model checking NuSMV 2.4.3.

HASIL DAN PEMBAHASAN

Formulasi Masalah

Masalah umum perencanaan gerak robot merupakan masalah yang sulit (Overmars et al. 2008). Misalnya, lingkungan robot yang selalu berubah. Untuk menyederhanakan permasalahan, penelitian ini mengasumsikan bahwa lingkungan robot berupa planar berbentuk poligon, yang terdiri dari dinding-dinding penghalang poligon. Robot sendiri berbentuk planar poligon.

Pada penelitian ini, lingkungan robot merupakan lingkungan yang statis. Letak dinding-dinding penghalang tidak berubah, tidak ada penghalang yang berjalan, dan bentuk penghalang pun tidak berubah.

Penelitian ini mengambil lingkungan robot KRCI fire fighter 2007 sebagai lingkungan robot. Gambar lingkungan robot dapat dilihat pada Gambar 1.

Gambar 1 Lingkungan robot KRCI fire fighter 2007.

Sistem pergerakan robot diekspresikan oleh x(t)=u(t) x(t)PR2 u(t)PR2.

) (t

x merupakan posisi robot pada waktu t dan )

(t

u merupakan input kontrol (Fainekos et al. 2005).

(12)

Misalkan P merupakan himpunan posisi-posisi robot dan L merupakan himpunan proposisi-proposisi yang menyatakan apakah robot telah sampai pada ruangan tertentu. Fungsi observasi yang memetakan daerah-daerah pada Gambar 1 yang kontinu menjadi proposisi-proposisi atomik liL yang berhingga diekspresikan oleh hC:PL. Hasil observasi Gambar 1 dapat dilihat pada Gambar 2.

Pada Gambar 2, l1, l2, l3, dan l4 merupakan proposisi-proposisi atomik yang menyatakan robot telah mengunjungi ruang-ruang R1, R2, R3, dan R4, ruang-ruang-ruang-ruang yang menjadi perhatian dalam penelitian ini. Lambang H merupakan posisi awal dan akhir robot.

Gambar 2 Proposisi-proposisi atomik (ruang-ruang observasi pada lingkungan robot).

Safety requirement yang ingin dicapai pada penelitian ini secara informal dapat dideskripsikan sebagai berikut :

• Perjalanan robot dimulai dan diakhiri di daerah berlambang H.

• Robot mengunjungi setiap ruangan. Robot akan mengunjungi ruang R1, R2, R3, dan R4. Dapat juga dikatakan bahwa proposisi-proposisi atomik l1, l2, l3, dan l4 bernilai benar.

• Robot menghindar dinding-dinding penghalang. Robot tidak boleh menabrak dinding penghalang.

Secara formal, safety requirement tersebut diformulakan dengan linear temporal logic. Safety requirement tersebut dapat dituliskan sebagai berikut α=  ◊ (H ∧

◊((◊ l1 ∧ ◊ l2 ∧ ◊ l3 ∧ ◊ l4) ∧ ◊H)). Maksud formula α adalah robot memulai perjalanan pada posisi H kemudian mengunjungi ruang l1, l2, l3, dan l4 dengan urutan bebas. Robot mengakhiri perjalanan dengan kembali ke posisi H.

Strategi Penyelesaian Masalah

Pada penelitian ini, strategi yang digunakan untuk memenuhi safety requirement pada subbab sebelumnya merupakan pendekatan yang ditawarkan di dalam (Overmars etal. 2008) dan (Fainekos et al. 2005).

A. Menghindari Dinding Penghalang

Pertama, ruang robot dibagi menjadi dua daerah. Daerah pertama adalah daerah yang berisi titik-titik (reference point) yang boleh dilalui robot disebut freeconfiguration space atau free space. Daerah kedua adalah daerah yang berisi titik-titik (reference point) yang tidak boleh dilalui robot disebut forbidden configuration space atau forbidden space.

Daerah forbidden configuration space didapatkan dengan menggeser titik-titik pada sisi robot sepanjang sisi dinding penghalang. Kurva yang terbentuk oleh reference point dari robot merupakan forbidden configuration space pada dinding penghalang tersebut. Free configuration space dan forbidden configuration space dapat dilihat pada Gambar 3. Free configuration space digambarkan dengan daerah berwarna putih dan forbidden configuration space digambarkan dengan daerah berwarna abu-abu.

Gambar 3 Forbidden configuration space dan triangulasi free configuration space. Garis-garis putus-putus merupakan transisi.

G

l1

l2

(13)

B. Abstraksi Diskret

Ruang robot (free configuration space) yang kompleks didekomposisi menjadi daerah-daerah yang lebih sederhana. Dengan menggunakan algoritme triangulasi Seidel, ruang robot didekomposisi menjadi segitiga-segitiga. Segitiga-segitiga ini disebut juga equivalence classes. Segitiga-segitiga hasil dekomposisi menunjukkan state-state yang akan menjadi trayektori robot. Hasil dekomposisi free configuration space menjadi segitiga-segitiga dapat dilihat pada Gambar 3. State-state posisi robot dipetakan ke himpunan berhingga equivalence classes oleh

S P K: → .

Kemudian pergerakan robot diabstraksikan ke dalam finite transition system F=(S,s(0),→F,hF). S merupakan himpunan berhingga state, s(0)∈S merupakan initial state. Relasi transisi

S S F⊆ ×

→ didefinisikan sebagai

) 3 ( ) 2 ( s

sF jika dan hanya jika segitiga-segitiga berlabel s(2),s(3) memiliki segmen garis bersama (Fainekos et al. 2005). Transisi-transisi dari satu state ke state yang lain dapat dilihat pada Lampiran 1.

C. Pencarian Trayektori Terpendek

Transisi-transisi dari state yang satu ke state lainnya diberi bobot. Bobot-bobot tersebut didapatkan dengan menghitung jarak antara titik kesetimbangan dari state yang satu dengan state lainnya. Kemudian dihitung jarak terdekat dari satu ruangan ke ruangan lainnya. Sebagai contoh, jarak dari ruang R1 ke ruang R2 adalah 14.1 cm, yaitu penjumlahan bobot-bobot dari state-state s1-s2-s3-s4-s5-s21-s20-s15-s16-s17-s18-s19. Jarak antar ruang dapat dilihat pada Tabel 1.

H R1 R 2 R 3 R 4

H - 13.1 14.9 23.6 22.9

R 1 13.1 - 14.1 25.7 25

R 2 14.9 14.1 - 20.4 19.7 R 3 23.6 25.7 20.4 - 14.5 R 4 22.9 25 19.7 14.5 -

Berdasarkan Tabel 1 dicari trayektori terpendek. Dalam penelitian ini trayektori terpendek dihitung secara manual. Trayektori

terpendek yang didapat adalah H - R 1 -R 2 -R4 -R 3 - H.

D. Spesifikasi sistem perencanaan gerak mobile robot

Berdasarkan finite transition system hasil abstraksi diskret, spesifikasi-spesifikasi sistem dibuat. Spesifikasi-spesifikasi tersebut (secara informal) antara lain:

1. Posisi awal robot di s9 (daerah H). 2. Jika posisi robot di s1 maka R1 telah

terkunjungi.

3. Jika posisi robot di s19 maka R2 telah terkunjungi.

4. Jika posisi robot di s34 maka R3 telah terkunjungi.

5. Jika posisi robot di s29 maka R4 telah terkunjungi.

6. Jika posisi robot di s9 maka H telah terkunjungi.

7. Jika posisi robot di s9 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi)maka posisi robot berikutnya adalah s8. Jika posisi robot di s9 dan (R1 telah terkunjungi dan R2 telah terkunjungi dan R3 telah terkunjungi dan R4 telah terkunjungi) maka selesai, selainnya posisi robot berikutnya adalah s10. 8. Jika posisi robot di s8 dan (R1 belum

terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s7, selainnya posisi robot berikutnya adalah s9.

9. Jika posisi robot di s7 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s6, selainnya posisi robot berikutnya adalah s8.

10.Jika posisi robot di s6 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s5, selainnya posisi robot berikutnya adalah s7.

(14)

maka posisi robot berikutnya adalah s21, selainnya posisi robot berikutnnya adalah s6.

12. Jika posisi robot di s4 dan R1 belum terkunjungi maka posisi robot berikutnya adalah s3, selainnya posisi robot berikutnya adalah s5.

13. Jika posisi robot di s3 dan R1 belum terkunjungi maka posisi robot berikutnya adalah s2, selainnya posisi robot berikutnya adalah s4.

14. Jika posisi robot di s2 dan R1 belum terkunjungi maka posisi robot berikutnya adalah s1, selainnya posisi robot berikutnya adalah s3.

15. Jika posisi robot di s1 maka posisi robot berikutnya adalah s2.

16. Jika posisi robot di s21 dan (R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s20, selainnya posisi robot berikutnya adalah s5. 17. Jika posisi robot di s20 dan (R2 belum

terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s15, selainnya posisi robot berikutnya adalah s21. 18. Jika posisi robot di s15 dan R2 belum

terkunjungi maka posisi robot berikutnya adalah s16. Jika posisi robot di s15 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s14, selainnya posisi robot berikutnya adalah s20.

19. Jika posisi robot di s16 dan R2 belum terkunjungi maka posisi robot berikutnya adalah s17, selainnya posisi robot berikutnya adalah s15.

20. Jika posisi robot di s17 dan R2 belum terkunjungi maka posisi robot berikutnya adalah s18, selainnya posisi robot berikutnya adalah s16.

21. Jika posisi robot di s18 dan R2 belum terkunjungi maka posisi robot berikutnya adalah s19, selainnya posisi robot berikutnya adalah s17.

22. Jika posisi robot di s19 maka posisi robot berikutnya adalah s18.

23. Jika posisi robot di s14 dan (R1 belum terkunjungi atau R2 belum terkunjungi) maka posisi robot berikutnya adalah s15. Jika posisi robot di s14 dan (R3 belum

terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s13, selainnya posisi robot berikutnya adalah s15.

24.Jika posisi robot di s13 dan (R1 belum terkunjungi atau R2 belum terkunjungi) maka posisi robot berikutnya adalah s14. Jika posisi robot di s13 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s22, selainnya posisi robot berikutnya adalah s12.

25.Jika posisi robot di s22 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s23, selainnya posisi robot berikutnya adalah s13.

26.Jika posisi robot di s23 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s24, selainnya posisi robot berikutnya adalah s22.

27.Jika posisi robot di s24 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s25, selainnya posisi robot berikutnya adalah s23.

28.Jika posisi robot di s25 dan R4 belum terkunjungi maka posisi robot berikutnya adalah s26. Jika posisi robot di s25 dan R3 belum terkunjungi maka posisi robot berikutnya adalah s30. Jika posisi robot di s25 dan (R4 telah terkunjungidan R3 telah terkunjungi) maka posisi robot berikutnya adalah s24.

29.Jika posisi robot di s26 dan R4 belum terkunjungi maka posisi robot berikutnya adalah s27, selainnya posisi robot berikutnya adalah s25.

30.Jika posisi robot di s27 dan R4 belum terkunjungi maka posisi robot berikutnya adalah s28, selainnya posisi robot berikutnya adalah s26.

31.Jika posisi robot di s28 dan R4 belum terkunjungi maka posisi robot berikutnya adalah s29, selainnya posisi robot berikutnya adalah s27.

32.Jika posisi robot di s29 maka posisi robot berikutnya adalah s28.

(15)

34. Jika posisi robot di s31 dan R3 belum terkunjungi maka posisi robot berikutnya adalah s32, selainnya posisi robot berikutnya adalah s30.

35. Jika posisi robot di s32 dan R3 belum terkunjungi maka posisi robot berikutnya adalah s33, selainnya posisi robot berikutnya adalah s31.

36. Jika posisi robot di s33 dan R3 belum terkunjungi maka posisi robot berikutnya adalah s34, selainnya posisi robot berikutnya adalah s32.

37. Jika posisi robot di s34 maka posisi robot berikutnya adalah s33.

38. Jika posisi robot di s12 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s13, selainnya posisi robot berikutnya adalah s11.

39. Jika posisi robot di s11 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s12, selainnya posisi robot berikutnya adalah s10.

40. Jika posisi robot di s10 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s11, selainnya posisi robot berikutnya adalah s9.

E. Implementasi dalam NuSMV

Spesifikasi-spesifikasi yang telah dibuat diimplementasikan ke dalam program NuSMV. Program NuSMV dalam penelitian ini terdiri atas tiga modul dan satu modul utama main. Modul-modul ini berisi spesifikasi-spesifikasi yang disusun sedemikian sehingga safety requirement terpenuhi (bernilai benar). Modul pertama bernama state. Modul ini berisi deklarasi variabel status dan inisialisasi nilai dari variabel tersebut. Modul ini mendeskripsikan state-state yang dihadapi robot.

Modul kedua bernama transisi. Modul transisi memiliki satu parameter, yaitu modul state. Modul ini mendeskripsikan transisi-transisi dari satu state ke state yang lain. Beberapa contoh potongan program yang terdapat dalam modul

transisi:

next(s.posisi) := case

s.posisi=1 : 2; s.posisi=2 : case

s.R1=belum : 1;

1 : 3;

esac; ...

Modul terakhir adalah modul

ubahState yang memiliki satu parameter, yaitu modul state. Modul ini berisi spesifikasi-spesifikasi apakah ruangan l1, l2, l3, l4, dan H sudah dikunjungi. Beberapa contoh potongan program yang terdapat dalam modul

ubahState:

next(s.R1) := case

s.posisi=1 : sudah;

1 : s.R1;

esac; next(s.R2) :=

case

s.posisi=19: sudah;

1 : s.R2;

esac; ...

Program NuSMV secara lengkap dapat dilihat pada Lampiran 2.

Verifikasi Model Menggunakan NuSMV

Model yang telah dibuat dalam program NuSMV pada subbab implementasi diverifikasi. Model ini harus memenuhi safety requirement yang telah diformulakan dalam linear temporal logic. Formula α=  ◊ (H ∧ ◊((◊ l1 ∧ ◊ l2 ∧ ◊ l3 ∧ ◊ l4) ∧ ◊H)) jika dituliskan dalam program NuSMV menjadi

LTLSPEC G F(s.RH=sudah & F((F s.R1=sudah & F s.R2=sudah & F s.R3=sudah & F s.R4=sudah) & F s.RH=sudah));.

Simbol H, R1, R2, R3, dan R4 adalah state awal H, ruang l1, l2, l3, dan l4.

(16)

Agar mendapatkan trayektori yang diinginkan (sesuai dengan safety requirement), formula yang bernilai true dinegasikan. Hal ini membuat NuSMV memberikan counter example trayektori yang benar. Trayektori tersebut adalah {s9, s8, s7, s6, s5, s4, s3, s2, s1, s2, s3, s4, s5, s21, s20, s15, s16, s17, s18, s19, s18, s17, s16, s15, s14, s13, s22, s23, s24, s25, s26, s27, s28, s29, s28, s27, s26, s25, s30, s31, s32, s33, s34, s33, s32, s31, s30, s25, s24, s23, s22, s13, s12, s11, s10, s9, selesai}. Hasil verifikasi dapat dilihat pada Lampiran 3.

KESIMPULAN DAN SARAN

Kesimpulan

Model perencanaan gerak robot telah berhasil dibuat. Model perencanaan gerak robot yang telah dibuat dapat digunakan untuk mencari trayektori robot yang optimal. Pada penelitian ini trayektori optimal yang didapat adalah H-R1-R2-R4-R3-H. Dengan mendekomposisi lingkungan robot menjadi daerah-daerah yang lebih sederhana, perencanaan gerak robot menjadi lebih mudah dan spesifik sehingga pengembangan sistem perencanaan gerak robot selanjutnya dapat menjadi lebih akurat. Verifikasi model dilakukan dengan menggunakan tool model checking NuSMV dan memberikan hasil bahwa model yang telah dibuat memenuhi formula safety requirement.

Saran

Perbaikan/penghalusan (refinement) dan pengembangan sistem gerak robot lebih lanjut dapat dilakukan dengan memodelkan pergerakan robot lebih lanjut seperti rotasi dari robot dan perpindahan posisi dari satu state ke state lainnya.

DAFTAR PUSTAKA

Artale A. 1997. Formal Methods – Lecture III: Linear Temporal Logic. Faculty of Computer Science – Free University of Bolzano. http://www.inf.unibz.it/~artale/ . Cavada R, Cimatti A, Jochim CA, Keighren G, Olivetti E, Pistore M, Roveri M, Tchaltsev A. 2005. NuSMV 2.4 User Manual. Italy: ITC-irst. http://nusmv.irst.itc.it .

Fainekos GE, Kress-Gazit H, Pappas GJ. 2005. Temporal Logic Motion Planning for Mobile robots. Di dalam : International Conference on Robotics and Automation. Proceedings of the 2005

IEEE; Barcelona, April 2005. Philadelphia: IEEE. hlm 2032-2037. Kloetzer M, Belta C. 2006. Temporal Logic

Planning and Control of Robotic Swarms by Hierarchical Abstractions. IEEE Transactions on Robotics. http://iasi.bu.edu/~cbelta/journal_and_bo ok/journal_hier_swarms_rev_ff.pdf Mukund M. 1997. Linear-Time Temporal

Logic and Büchi Automata. Madras, India: SPIC Mathematical Institute. Narkhede A, Manocha D. 1995. Fast Polygon

Triangulation based on Seidel's Algorithm.

http://www.cs.unc.edu/~dm/CODE/GEM/ chapter.html#Seidel91[26 Maret 2008] Overmars M, Berg M de, Cheong O, Marc

van Kreveld. 2008. Computational Geometry – Algorithms and Applications. Ed. ke-3. German: Springer.

(17)
(18)

Lampiran 1 Transisi-transisi antarstate

S1

S2

S3

S4

S5

S6

S7

S8

S9

S10

S11

S12

S13

S14

S15

S20

S21

S16

S17

S18

S22

S23

S24

S25

S30

S31

S32

S33

S34

S26

S27

S28

S29

(19)

Lampiran 2 Program NuSMV model perencanaan gerak robot. -- Robot Motion

-- Abdul Rahmat Ramdhan -- Ilkomerz41

-- 20080827M created -- 20080827M last modified

MODULE state VAR

R1 : {belum,sudah};

R2 : {belum,sudah};

R3 : {belum,sudah};

R4 : {belum,sudah};

RH : {belum,sudah,selesai};

posisi : {selesai, 1 , 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34};

INIT

R1 = belum &

R2 = belum &

R3 = belum &

R4 = belum &

RH = belum &

posisi = 9

MODULE transisi(s) ASSIGN

next(s.posisi) := case

s.posisi=1 : 2;

s.posisi=2 :

case

s.R1=belum : 1;

1 : 3;

esac;

s.posisi=3 :

case

s.R1=belum : 2;

1 : 4;

esac;

s.posisi=4 :

case

s.R1=belum : 3;

1 : 5;

esac;

s.posisi=5 :

case

s.R1=belum : 4;

s.R2=belum | s.R3=belum | s.R4=belum : 21;

1 : 6;

esac;

s.posisi=6 :

case

s.R1=belum | s.R2=belum | s.R3=belum | s.R4=belum : 5;

1 : 7;

esac;

s.posisi=7 :

case

s.R1=belum | s.R2=belum | s.R3=belum | s.R4=belum : 6;

1 : 8;

esac;

s.posisi=8 :

case

s.R1=belum | s.R2=belum | s.R3=belum | s.R4=belum : 7;

1 : 9;

esac;

s.posisi=9 :

case

s.R1=belum | s.R2=belum | s.R3=belum | s.R4=belum : 8; s.R1=sudah & s.R2=sudah & s.R3=sudah & s.R4=sudah : selesai;

1 : 10;

esac;

(20)

case

s.R1=belum | s.R2=belum | s.R3=belum | s.R4=belum : 11;

1 : 9;

esac;

s.posisi=11 :

case

s.R1=belum | s.R2=belum | s.R3=belum | s.R4=belum : 12;

1 : 10;

esac;

s.posisi=12 :

case

s.R1=belum | s.R2=belum | s.R3=belum | s.R4=belum : 13;

1 : 11;

esac;

s.posisi=13 :

case

s.R1=belum | s.R2=belum : 14;

s.R3=belum | s.R4=belum : 22;

1 : 12;

esac;

s.posisi=14 :

case

s.R2=belum | s.R1=belum : 15;

s.R3=belum | s.R4=belum : 13;

1 : 15;

esac;

s.posisi=15 :

case

s.R2=belum : 16;

s.R3=belum | s.R4=belum : 14;

1 : 20;

esac;

s.posisi=16 :

case

s.R2=belum : 17;

1 : 15;

esac;

s.posisi=17 :

case

s.R2=belum : 18;

1 : 16;

esac;

s.posisi=18 :

case

s.R2=belum : 19;

1 : 17;

esac;

s.posisi=19 : 18;

s.posisi=20 :

case

s.R2=belum | s.R3=belum | s.R4=belum : 15;

1 : 21;

esac;

s.posisi=21 :

case

s.R2=belum | s.R3=belum | s.R4=belum : 20;

1 : 5;

esac;

s.posisi=22 :

case

s.R3=belum | s.R4=belum : 23;

1 : 13;

esac;

s.posisi=23 :

case

s.R3=belum | s.R4=belum : 24;

1 : 22;

esac;

s.posisi=24 :

case

s.R3=belum | s.R4=belum : 25;

1 : 23;

esac;

(21)

case

s.R4=belum : 26;

s.R3=belum : 30;

1 : 24;

esac;

s.posisi=26 :

case

s.R4=belum : 27;

1 : 25;

esac;

s.posisi=27 :

case

s.R4=belum : 28;

1 : 26;

esac;

s.posisi=28 :

case

s.R4=belum : 29;

1 : 27;

esac;

s.posisi=29 : 28;

s.posisi=30 :

case

s.R3=belum : 31;

1 : 25;

esac;

s.posisi=31 :

case

s.R3=belum : 32;

1 : 30;

esac;

s.posisi=32 :

case

s.R3=belum : 33;

1 : 31;

esac;

s.posisi=33 :

case

s.R3=belum : 34;

1 : 32;

esac;

s.posisi=34 : 33;

1 : selesai;

esac;

MODULE ubahState(s) ASSIGN

next(s.R1) :=

case

s.posisi=1 : sudah;

1 : s.R1;

esac;

next(s.R2) :=

case

s.posisi=19 : sudah;

1 : s.R2;

esac;

next(s.R3) :=

case

s.posisi=34 : sudah;

1 : s.R3;

esac;

next(s.R4) :=

case

s.posisi=29 : sudah;

1 : s.R4;

esac;

next(s.RH) :=

case

s.posisi=9 : sudah;

s.R1=sudah | s.R2=sudah | s.R3=sudah | s.R4=sudah : sudah;

1 : s.RH;

(22)

MODULE main VAR

s : state;

pin : transisi(s); uba : ubahState(s);

-- memverifikasi

LTLSPEC G F( s.RH=sudah & F((F s.R1=sudah & F s.R2=sudah & F s.R3=sudah & F s.R4=sudah) & F s.RH=sudah));

-- mendapatkan trayektori

(23)
(24)

MODEL FORMAL SISTEM PERENCANAAN GERAK MOBILE ROBOT

ABDUL RAHMAT RAMDHAN

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

(25)

ABSTRAK

ABDUL RAHMAT RAMDHAN. Model Formal Sistem Perencanaan Gerak Mobile Robot. Dibimbing oleh PRAPTO TRI SUPRIYO dan WISNU ANANTA KUSUMA.

Perencanaan gerak (motion planning) merupakan salah satu masalah sulit yang sering dihadapi dalam pengembangan mobile robot. Perencanaan gerak yang baik dapat menghasilkan gerak yang optimal dan memenuhi safety requirement (goal/tujuan) yang diinginkan. Misalnya, robot aman dari tabrakan dengan dinding penghalang, trayektori terpendek, dan pergerakan yang akurat. Pada penelitian ini, lingkungan robot merupakan lingkungan robot pada Kontes Robot Cerdas Indonesia (sering disingkat KRCI) 2007 fire fighter. Pertama safety requirement diformulasikan ke dalam bahasa formal linear temporal logic. Setelah safety requirement diformulasikan, strategi penyelesaian masalah disusun agar safety requirement dipenuhi. Kemudian lingkungan robot dibagi menjadi dua daerah, free configuration space dan forbidden configuration space. Free configuration space didekomposisi menjadi daerah-daerah berbentuk segitiga sehingga lingkungan robot menjadi lebih sederhana. Trayektori terpendek dicari dengan manual lalu dimodelkan dengan menggunakan software NuSMV. Model yang telah dibuat diverifikasi dengan tool model checking NuSMV. Hasil yang diperoleh dalam penelitian ini adalah suatu sistem perencanaan gerak mobile robot yang telah diverifikasi dengan NuSMV.

(26)

PENDAHULUAN

Latar Belakang

Salah satu masalah yang sering dihadapi dalam pengembangan mobile robot (selanjutnya disebut robot) adalah masalah perencanaan gerak (motion planning) robot. Masalah ini sejak lama telah difokuskan dalam mencari trayektori yang memenuhi spesifikasi tertentu dan terhindar dari penghalang (Fainekos et al. 2005) .

Spesifikasi-spesifikasi dalam robot, sering kali bersifat temporal (waktu). Misalnya, robot tidak boleh menabrak penghalang. Ini berarti robot memerlukan sifat always (Kloetzer & Belta 2006). Secara formal spesifikasi-spesifikasi dalam robot dapat didefinisikan dengan menggunakan temporal logic, seperti linear temporal logic (LTL) dan computation tree logic (CTL).

Penelitian ini mengambil topik sistem perencanaan gerak mobile robot dengan menggunakan lingkungan robot Kontes Robot Cerdas Indonesia (KRCI) fire fighter tahun 2007. Penelitian ini dimulai dengan melakukan pendefinisian masalah kemudian memformulasikan masalah ke dalam bentuk LTL. Strategi-strategi kontrol disusun sehingga didapatkan model yang akan diverifikasi dengan menggunakan tool model checking NuSMV.

Tujuan

Penelitian ini bertujuan untuk membuat model perencanaan gerak mobile robot pada lingkungan robot KRCI 2007 dan memverifikasi model tersebut dengan menggunakan tool modelchecking NuSMV. Ruang Lingkup

Ruang lingkup penelitian ini adalah: 1 Membuat perencanaan gerak mobile

robot pada lingkungan robot KRCI 2007. 2 Bentuk robot diasumsikan berbentuk

persegi panjang dengan panjang 20 cm dan lebar 15 cm.

3 Lingkungan robot berbentuk bidang datar, dan tangga diasumsikan tidak ada. 4 Safety requirement diformulakan dalam

bahasa formal linear temporal logic. 5 Mobile robot diasumsikan dapat

mengenali posisi keberadaannya.

6 Model dibuat dengan menggunakan software NuSMV.

7 Model yang telah dibuat diverifikasi dengan menggunakan software NuSMV. Manfaat

Penelitian ini diharapkan dapat menyederhanakan masalah yang dihadapi dalam perencanaan gerak mobile robot.

TINJAUAN PUSTAKA

Configuration Space

Pertama didefinisikan istilah reference point dari robot. Misalkan robot berada dalam ruang dua dimensi (disebut work space). Penempatan robot (configuration) dispesifikasikan oleh sebuah vektor translasi R(x, y). Sebagai contoh, misalkan verteks-verteks dari robot adalah (-7.5,-10), (7.5,-10), (7.5,10), dan (-7.5,10). Titik-titik R(3,2) adalah 4.5,-8), (10.5,-8), (10.5, 12), dan (-4.5, 12). R(x, y) menspesifikasikan bahwa robot ditempatkan dengan reference point robot di titik (x, y).

Secara umum, penempatan robot dispesifikasikan oleh sebuah nilai dari parameter-parameter yang bersesuaian terhadap nilai dari degree of freedom (DOF) robot. Parameter ruang dari robot biasa disebut dengan configuration space.

Tidak semua titik-titik pada configuration space memungkinkan untuk ditempati oleh robot. Titik-titik yang dapat ditempati oleh robot disebut dengan free configuration space atau free space. Titik-titik lain disebut dengan forbidden configuration space atau forbidden space (Overmars et al. 2008). Pengetahuan mengenai free space dan forbidden space dapat digunakan robot agar tidak menabrak dinding penghalang.

Algoritme Triangulasi

(27)

PENDAHULUAN

Latar Belakang

Salah satu masalah yang sering dihadapi dalam pengembangan mobile robot (selanjutnya disebut robot) adalah masalah perencanaan gerak (motion planning) robot. Masalah ini sejak lama telah difokuskan dalam mencari trayektori yang memenuhi spesifikasi tertentu dan terhindar dari penghalang (Fainekos et al. 2005) .

Spesifikasi-spesifikasi dalam robot, sering kali bersifat temporal (waktu). Misalnya, robot tidak boleh menabrak penghalang. Ini berarti robot memerlukan sifat always (Kloetzer & Belta 2006). Secara formal spesifikasi-spesifikasi dalam robot dapat didefinisikan dengan menggunakan temporal logic, seperti linear temporal logic (LTL) dan computation tree logic (CTL).

Penelitian ini mengambil topik sistem perencanaan gerak mobile robot dengan menggunakan lingkungan robot Kontes Robot Cerdas Indonesia (KRCI) fire fighter tahun 2007. Penelitian ini dimulai dengan melakukan pendefinisian masalah kemudian memformulasikan masalah ke dalam bentuk LTL. Strategi-strategi kontrol disusun sehingga didapatkan model yang akan diverifikasi dengan menggunakan tool model checking NuSMV.

Tujuan

Penelitian ini bertujuan untuk membuat model perencanaan gerak mobile robot pada lingkungan robot KRCI 2007 dan memverifikasi model tersebut dengan menggunakan tool modelchecking NuSMV. Ruang Lingkup

Ruang lingkup penelitian ini adalah: 1 Membuat perencanaan gerak mobile

robot pada lingkungan robot KRCI 2007. 2 Bentuk robot diasumsikan berbentuk

persegi panjang dengan panjang 20 cm dan lebar 15 cm.

3 Lingkungan robot berbentuk bidang datar, dan tangga diasumsikan tidak ada. 4 Safety requirement diformulakan dalam

bahasa formal linear temporal logic. 5 Mobile robot diasumsikan dapat

mengenali posisi keberadaannya.

6 Model dibuat dengan menggunakan software NuSMV.

7 Model yang telah dibuat diverifikasi dengan menggunakan software NuSMV. Manfaat

Penelitian ini diharapkan dapat menyederhanakan masalah yang dihadapi dalam perencanaan gerak mobile robot.

TINJAUAN PUSTAKA

Configuration Space

Pertama didefinisikan istilah reference point dari robot. Misalkan robot berada dalam ruang dua dimensi (disebut work space). Penempatan robot (configuration) dispesifikasikan oleh sebuah vektor translasi R(x, y). Sebagai contoh, misalkan verteks-verteks dari robot adalah (-7.5,-10), (7.5,-10), (7.5,10), dan (-7.5,10). Titik-titik R(3,2) adalah 4.5,-8), (10.5,-8), (10.5, 12), dan (-4.5, 12). R(x, y) menspesifikasikan bahwa robot ditempatkan dengan reference point robot di titik (x, y).

Secara umum, penempatan robot dispesifikasikan oleh sebuah nilai dari parameter-parameter yang bersesuaian terhadap nilai dari degree of freedom (DOF) robot. Parameter ruang dari robot biasa disebut dengan configuration space.

Tidak semua titik-titik pada configuration space memungkinkan untuk ditempati oleh robot. Titik-titik yang dapat ditempati oleh robot disebut dengan free configuration space atau free space. Titik-titik lain disebut dengan forbidden configuration space atau forbidden space (Overmars et al. 2008). Pengetahuan mengenai free space dan forbidden space dapat digunakan robot agar tidak menabrak dinding penghalang.

Algoritme Triangulasi

(28)

Algoritme Seidel (Narkhede & Manocha 1995) ini (sering disebut Seidel’s Algorithm) melalui tiga langkah sebagai berikut.

• Dekomposisi poligon ke dalam trapezoid-trapezoid (trapezoidation).

• Dekomposisi trapezoid-trapezoid pada langkah sebelumnya ke dalam poligon-poligon monoton (monotone polygon). • Triangulasi poligon-poligon monoton

pada langkah 2. Poligon-poligon monoton dibagi menjadi segitiga-segitiga. Linear Temporal Logic

Linear temporal logic (LTL) merupakan sebuah logika untuk membicarakan mengenai sequence yang tak terbatas. Masing-masing elemen dalam sequence tersebut bersesuaian terhadap sebuah proposisi (Mukund 1997). Linear temporal logic dirancang untuk mempelajari bagaimana waktu digunakan dalam argumen-argumen berbahasa natural. Linear temporal logic dibawa ke dalam ilmu komputer oleh Pnueli.

A. Sintaks Linear Temporal Logic

Himpunan formula-formula dalam linear temporal logic Φ dibangun oleh :

• Himpunan berhingga proposisi atomik

{

p0,p1,...,pn

}

=

∑ .

• Konstanta trueT dan konstanta false ⊥. • Penghubung logika atau operator boolean

¬ (negasi) dan ∨ (atau). Penghubung logika lain dapat dinyatakan dalam dua operator ini.

• Modality next O, until U, eventually ◊, dan henceforth .

• Formula-formula α, β di Φ.

B. Semantik Linear Temporal Logic

Formula linear temporal logic diinterpretasikan dalam sebuah model waktu diskret atau linear (Artale 1997). Model merupakan sebuah fungsi M : 0 → 2

∑ . Fungsi M menjelaskan bagaimana nilai kebenaran proposisi-proposisi atomik berubah terhadap waktu (Mukund 1997). M, i |= p0 dibaca “p0true pada saat waktu i di model M”.

Semantik beberapa formula dapat didefinisikan sebagai berikut:

M, i |= p, dengan p Σ, jika dan hanya jika p M(i).

M, i |= ¬α jika dan hanya jika M, i |≠ α. • M, i |= α∨β jika dan hanya jika M, i |=

α or M, i |= β.

M, i |= Oα jika dan hanya jika M, i+1 |= α.

M, i |= αUβ jika dan hanya jika ada i

k≥ sedemikian sehingga M, k |= β dan untuk semua j sedemikian sehingga i j < k, M, j |= α.

Suatu formula α dikatakan satisfiable jika ada sebuah modelM dan waktu i bagi α (M, i |= α). Suatu formula α dikatakan valid jika M, i |= α jika dan hanya jika ✁

M, ✁ i . M, i |= α. Penjelasan lebih lengkap dapat dilihat di dalam Mukund (1997).

NuSMV

NuSMV merupakan sebuah model checker yang berawal dari membangun kembali, mengimplementasi kembali, dan memperluas CMU SMV. Fitur-fitur utama NuSMV adalah sebagai berikut :

Functionalities

NuSMV memperkenankan representasi dari synchronous finite state system dan asynchronous finite state system dan juga memperkenankan untuk menganalisis spesifikasi sistem yang diekspresikan dalam computation tree logic (CTL) dan linear temporal logic (LTL).

Quality of implementation

NuSMV ditulis/dibuat dengan menggunakan ANSI C, POSIX, dan telah di-debug dengan Purify untuk mendeteksi kebocoran memory. NuSMV menggunakan BDD (Binary Decision Diagrams) package yang dikembangkan oleh Universitas Colorado.

Sintaks dari program NuSMV adalah sebagai berikut:

program :: module_list

module_list ::

module

| module_list module

(29)

METODE PENELITIAN

Formulasi Masalah

Masalah-masalah yang dihadapi oleh mobile robot dikumpulkan. Masalah-masalah tersebut diformulasikan ke dalam bahasa formal linear temporal logic.

Strategi Penyelesaian Masalah

Strategi disusun dalam memenuhi safety requirement yang diinginkan. Strategi yang digunakan merupakan pendekatan-pendekatan yang ditawarkan beberapa literatur mengenai robot motion planning, computational geometry, dan literatur terkait lainnya.

Strategi yang dipakai adalah sebagai berikut:

A. Menghindari dinding penghalang. Strategi yang digunakan agar robot tidak menabrak dinding-dinding penghalang. B. Abstraksi diskret.

Mendekomposisi lingkungan robot menjadi bentuk-bentuk yang lebih sederhana. Kemudian diabstraksikan ke dalam finite transition system.

C. Pencarian trayektori terpendek.

Pembobotan dilakukan pada finite transition system. Bobot ini didapat dengan menghitung jarak antara titik kesetimbangan satu state dengan state lainnya. Kemudian dicari dengan trayektori terpendek.

D. Spesifikasi sistem perencanaan gerak mobile robot.

Spesifikasi secara informal dibuat agar memenuhi safety requirement. Spesifikasi ini dibuat berdasarkan finite transition system hasil abstraksi dan rute terpendek yang didapat.

E. Implementasi dengan NuSMV.

Spesifikasi yang didapat diimplementasi ke dalam finite state machine dalam program NuSMV.

Verifikasi Model Menggunakan NuSMV

Model yang telah dibuat diverifikasi dengan menggunakan tool model checking NuSMV 2.4.3.

HASIL DAN PEMBAHASAN

Formulasi Masalah

Masalah umum perencanaan gerak robot merupakan masalah yang sulit (Overmars et al. 2008). Misalnya, lingkungan robot yang selalu berubah. Untuk menyederhanakan permasalahan, penelitian ini mengasumsikan bahwa lingkungan robot berupa planar berbentuk poligon, yang terdiri dari dinding-dinding penghalang poligon. Robot sendiri berbentuk planar poligon.

Pada penelitian ini, lingkungan robot merupakan lingkungan yang statis. Letak dinding-dinding penghalang tidak berubah, tidak ada penghalang yang berjalan, dan bentuk penghalang pun tidak berubah.

Penelitian ini mengambil lingkungan robot KRCI fire fighter 2007 sebagai lingkungan robot. Gambar lingkungan robot dapat dilihat pada Gambar 1.

Gambar 1 Lingkungan robot KRCI fire fighter 2007.

Sistem pergerakan robot diekspresikan oleh x(t)=u(t) x(t)PR2 u(t)PR2.

) (t

x merupakan posisi robot pada waktu t dan )

(t

u merupakan input kontrol (Fainekos et al. 2005).

(30)

METODE PENELITIAN

Formulasi Masalah

Masalah-masalah yang dihadapi oleh mobile robot dikumpulkan. Masalah-masalah tersebut diformulasikan ke dalam bahasa formal linear temporal logic.

Strategi Penyelesaian Masalah

Strategi disusun dalam memenuhi safety requirement yang diinginkan. Strategi yang digunakan merupakan pendekatan-pendekatan yang ditawarkan beberapa literatur mengenai robot motion planning, computational geometry, dan literatur terkait lainnya.

Strategi yang dipakai adalah sebagai berikut:

A. Menghindari dinding penghalang. Strategi yang digunakan agar robot tidak menabrak dinding-dinding penghalang. B. Abstraksi diskret.

Mendekomposisi lingkungan robot menjadi bentuk-bentuk yang lebih sederhana. Kemudian diabstraksikan ke dalam finite transition system.

C. Pencarian trayektori terpendek.

Pembobotan dilakukan pada finite transition system. Bobot ini didapat dengan menghitung jarak antara titik kesetimbangan satu state dengan state lainnya. Kemudian dicari dengan trayektori terpendek.

D. Spesifikasi sistem perencanaan gerak mobile robot.

Spesifikasi secara informal dibuat agar memenuhi safety requirement. Spesifikasi ini dibuat berdasarkan finite transition system hasil abstraksi dan rute terpendek yang didapat.

E. Implementasi dengan NuSMV.

Spesifikasi yang didapat diimplementasi ke dalam finite state machine dalam program NuSMV.

Verifikasi Model Menggunakan NuSMV

Model yang telah dibuat diverifikasi dengan menggunakan tool model checking NuSMV 2.4.3.

HASIL DAN PEMBAHASAN

Formulasi Masalah

Masalah umum perencanaan gerak robot merupakan masalah yang sulit (Overmars et al. 2008). Misalnya, lingkungan robot yang selalu berubah. Untuk menyederhanakan permasalahan, penelitian ini mengasumsikan bahwa lingkungan robot berupa planar berbentuk poligon, yang terdiri dari dinding-dinding penghalang poligon. Robot sendiri berbentuk planar poligon.

Pada penelitian ini, lingkungan robot merupakan lingkungan yang statis. Letak dinding-dinding penghalang tidak berubah, tidak ada penghalang yang berjalan, dan bentuk penghalang pun tidak berubah.

Penelitian ini mengambil lingkungan robot KRCI fire fighter 2007 sebagai lingkungan robot. Gambar lingkungan robot dapat dilihat pada Gambar 1.

Gambar 1 Lingkungan robot KRCI fire fighter 2007.

Sistem pergerakan robot diekspresikan oleh x(t)=u(t) x(t)PR2 u(t)PR2.

) (t

x merupakan posisi robot pada waktu t dan )

(t

u merupakan input kontrol (Fainekos et al. 2005).

[image:30.612.343.503.326.515.2]
(31)

Misalkan P merupakan himpunan posisi-posisi robot dan L merupakan himpunan proposisi-proposisi yang menyatakan apakah robot telah sampai pada ruangan tertentu. Fungsi observasi yang memetakan daerah-daerah pada Gambar 1 yang kontinu menjadi proposisi-proposisi atomik liL yang berhingga diekspresikan oleh hC:PL. Hasil observasi Gambar 1 dapat dilihat pada Gambar 2.

Pada Gambar 2, l1, l2, l3, dan l4 merupakan proposisi-proposisi atomik yang menyatakan robot telah mengunjungi ruang-ruang R1, R2, R3, dan R4, ruang-ruang-ruang-ruang yang menjadi perhatian dalam penelitian ini. Lambang H merupakan posisi awal dan akhir robot.

Gambar 2 Proposisi-proposisi atomik (ruang-ruang observasi pada lingkungan robot).

Safety requirement yang ingin dicapai pada penelitian ini secara informal dapat dideskripsikan sebagai berikut :

• Perjalanan robot dimulai dan diakhiri di daerah berlambang H.

• Robot mengunjungi setiap ruangan. Robot akan mengunjungi ruang R1, R2, R3, dan R4. Dapat juga dikatakan bahwa proposisi-proposisi atomik l1, l2, l3, dan l4 bernilai benar.

• Robot menghindar dinding-dinding penghalang. Robot tidak boleh menabrak dinding penghalang.

Secara formal, safety requirement tersebut diformulakan dengan linear temporal logic. Safety requirement tersebut dapat dituliskan sebagai berikut α=  ◊ (H ∧

◊((◊ l1 ∧ ◊ l2 ∧ ◊ l3 ∧ ◊ l4) ∧ ◊H)). Maksud formula α adalah robot memulai perjalanan pada posisi H kemudian mengunjungi ruang l1, l2, l3, dan l4 dengan urutan bebas. Robot mengakhiri perjalanan dengan kembali ke posisi H.

Strategi Penyelesaian Masalah

Pada penelitian ini, strategi yang digunakan untuk memenuhi safety requirement pada subbab sebelumnya merupakan pendekatan yang ditawarkan di dalam (Overmars etal. 2008) dan (Fainekos et al. 2005).

A. Menghindari Dinding Penghalang

Pertama, ruang robot dibagi menjadi dua daerah. Daerah pertama adalah daerah yang berisi titik-titik (reference point) yang boleh dilalui robot disebut freeconfiguration space atau free space. Daerah kedua adalah daerah yang berisi titik-titik (reference point) yang tidak boleh dilalui robot disebut forbidden configuration space atau forbidden space.

Daerah forbidden configuration space didapatkan dengan menggeser titik-titik pada sisi robot sepanjang sisi dinding penghalang. Kurva yang terbentuk oleh reference point dari robot merupakan forbidden configuration space pada dinding penghalang tersebut. Free configuration space dan forbidden configuration space dapat dilihat pada Gambar 3. Free configuration space digambarkan dengan daerah berwarna putih dan forbidden configuration space digambarkan dengan daerah berwarna abu-abu.

Gambar 3 Forbidden configuration space dan triangulasi free configuration space. Garis-garis putus-putus merupakan transisi.

G

l1

l2

[image:31.612.135.304.282.495.2] [image:31.612.334.502.494.655.2]
(32)

B. Abstraksi Diskret

Ruang robot (free configuration space) yang kompleks didekomposisi menjadi daerah-daerah yang lebih sederhana. Dengan menggunakan algoritme triangulasi Seidel, ruang robot didekomposisi menjadi segitiga-segitiga. Segitiga-segitiga ini disebut juga equivalence classes. Segitiga-segitiga hasil dekomposisi menunjukkan state-state yang akan menjadi trayektori robot. Hasil dekomposisi free configuration space menjadi segitiga-segitiga dapat dilihat pada Gambar 3. State-state posisi robot dipetakan ke himpunan berhingga equivalence classes oleh

S P K: → .

Kemudian pergerakan robot diabstraksikan ke dalam finite transition system F=(S,s(0),→F,hF). S merupakan himpunan berhingga state, s(0)∈S merupakan initial state. Relasi transisi

S S F⊆ ×

→ didefinisikan sebagai

) 3 ( ) 2 ( s

sF jika dan hanya jika segitiga-segitiga berlabel s(2),s(3) memiliki segmen garis bersama (Fainekos et al. 2005). Transisi-transisi dari satu state ke state yang lain dapat dilihat pada Lampiran 1.

C. Pencarian Trayektori Terpendek

Transisi-transisi dari state yang satu ke state lainnya diberi bobot. Bobot-bobot tersebut didapatkan dengan menghitung jarak antara titik kesetimbangan dari state yang satu dengan state lainnya. Kemudian dihitung jarak terdekat dari satu ruangan ke ruangan lainnya. Sebagai contoh, jarak dari ruang R1 ke ruang R2 adalah 14.1 cm, yaitu penjumlahan bobot-bobot dari state-state s1-s2-s3-s4-s5-s21-s20-s15-s16-s17-s18-s19. Jarak antar ruang dapat dilihat pada Tabel 1.

H R1 R 2 R 3 R 4

H - 13.1 14.9 23.6 22.9

R 1 13.1 - 14.1 25.7 25

R 2 14.9 14.1 - 20.4 19.7 R 3 23.6 25.7 20.4 - 14.5 R 4 22.9 25 19.7 14.5 -

Berdasarkan Tabel 1 dicari trayektori terpendek. Dalam penelitian ini trayektori terpendek dihitung secara manual. Trayektori

terpendek yang didapat adalah H - R 1 -R 2 -R4 -R 3 - H.

D. Spesifikasi sistem perencanaan gerak mobile robot

Berdasarkan finite transition system hasil abstraksi diskret, spesifikasi-spesifikasi sistem dibuat. Spesifikasi-spesifikasi tersebut (secara informal) antara lain:

1. Posisi awal robot di s9 (daerah H). 2. Jika posisi robot di s1 maka R1 telah

terkunjungi.

3. Jika posisi robot di s19 maka R2 telah terkunjungi.

4. Jika posisi robot di s34 maka R3 telah terkunjungi.

5. Jika posisi robot di s29 maka R4 telah terkunjungi.

6. Jika posisi robot di s9 maka H telah terkunjungi.

7. Jika posisi robot di s9 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi)maka posisi robot berikutnya adalah s8. Jika posisi robot di s9 dan (R1 telah terkunjungi dan R2 telah terkunjungi dan R3 telah terkunjungi dan R4 telah terkunjungi) maka selesai, selainnya posisi robot berikutnya adalah s10. 8. Jika posisi robot di s8 dan (R1 belum

terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s7, selainnya posisi robot berikutnya adalah s9.

9. Jika posisi robot di s7 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s6, selainnya posisi robot berikutnya adalah s8.

10.Jika posisi robot di s6 dan (R1 belum terkunjungi atau R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s5, selainnya posisi robot berikutnya adalah s7.

(33)

maka posisi robot berikutnya adalah s21, selainnya posisi robot berikutnnya adalah s6.

12. Jika posisi robot di s4 dan R1 belum terkunjungi maka posisi robot berikutnya adalah s3, selainnya posisi robot berikutnya adalah s5.

13. Jika posisi robot di s3 dan R1 belum terkunjungi maka posisi robot berikutnya adalah s2, selainnya posisi robot berikutnya adalah s4.

14. Jika posisi robot di s2 dan R1 belum terkunjungi maka posisi robot berikutnya adalah s1, selainnya posisi robot berikutnya adalah s3.

15. Jika posisi robot di s1 maka posisi robot berikutnya adalah s2.

16. Jika posisi robot di s21 dan (R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s20, selainnya posisi robot berikutnya adalah s5. 17. Jika posisi robot di s20 dan (R2 belum

terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s15, selainnya posisi robot berikutnya adalah s21. 18. Jika posisi robot di s15 dan R2 belum

terkunjungi maka posisi robot berikutnya adalah s16. Jika posisi robot di s15 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s14, selainnya posisi robot berikutnya adalah s20.

19. Jika posisi robot di s16 dan R2 belum terkunjungi maka posisi robot berikutnya adalah s17, selainnya posisi robot berikutnya adalah s15.

20. Jika posisi robot di s17 dan R2 belum terkunjungi maka posisi robot berikutnya adalah s18, selainnya posisi robot berikutnya adalah s16.

21. Jika posisi robot di s18 dan R2 belum terkunjungi maka posisi robot berikutnya adalah s19, selainnya posisi robot berikutnya adalah s17.

22. Jika posisi robot di s19 maka posisi robot berikutnya adalah s18.

23. Jika posisi robot di s14 dan (R1 belum terkunjungi atau R2 belum terkunjungi) maka posisi robot berikutnya adalah s15. Jika posisi robot di s14 dan (R3 belum

terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s13, selainnya posisi robot berikutnya adalah s15.

24.Jika posisi robot di s13 dan (R1 belum terkunjungi atau R2 belum terkunjungi) maka posisi robot berikutnya adalah s14. Jika posisi robot di s13 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s22, selainnya posisi robot berikutnya adalah s12.

25.Jika posisi robot di s22 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s23, selainnya posisi robot berikutnya adalah s13.

26.Jika posisi robot di s23 dan (R3 belum terkunjungi atau R4 belum terkunjungi) maka posisi robot berikutnya adalah s24, selainnya posisi robot berikutnya adalah s22.

Gambar

Gambar 1 Lingkungan
Gambar 2 Proposisi-proposisi
Gambar 1 Lingkungan
Gambar 1 Lingkungan
+2

Referensi

Dokumen terkait

Tujuan dari penelitian ini adalah mengetahui selengkapnya tentang Pelaksanaan system layanan kunjungan di Rutan Wonogiri. Sebagaimana dipahami, bahwa narapidana yang

Berdasarkan fakta yang telah penulis dapatkan sebelumnya, maka mahasiswa Fakultas Dakwah dan Ilmu Komunikasi UIN Raden Intan Lampung memiliki persepsi atau tanggapan

pengaruh yang signifikan dari metode latihan multiball dan metode latihan forehand ke dinding terhadap ketepatan forehand drive serta ada perbedaan yang

Kompetensi Sub Kompetensi Pokok Bahasan Sub Pokok Bahasan Tahap Kegiatan Dosen Media &amp; Alat

Customer based brand equity dengan variabel brand awareness, brand associations, perceived quality dan brand loyalty secara simultan memiliki pengaruh signifikan

Kelima fungsi dasar ini mewadahi konsep bahwa bahasa alat untuk melahirkan ungkapan-ungkapan batin yang ingin disampaikan seorang penutur kepada orang lain. Pernyataan

Ker je podatkovno skladiš e pripravljeno in narejena zvezdna shema dimenzijskih relacijskih tabel, se bom sedaj ukvarjal samo še z definiranjem OLAP aplikacije, definiranjem in

Persamaan dari unsur kemanusiaan tampak dalam ketetapan yang menyatakan seluruh penduduk Madinah adalah umat yang satu atau umat-umat yang mempunyai status sama