• Tidak ada hasil yang ditemukan

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).

Perencanaan gerak robot pada penelitian ini menghasilkan trayektori yang memenuhi safety requirement (goal/tujuan) yang diinginkan. Safety requierement ini diformulakan dalam linear temporal logic (LTL) dan dibangun oleh proposisi-proposisi atomik berhingga atau observable yang memberi label area-area yang menjadi ketertarikan di dalam lingkungan seperti ruang-ruang dan penghalang-penghalang.

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).

Perencanaan gerak robot pada penelitian ini menghasilkan trayektori yang memenuhi safety requirement (goal/tujuan) yang diinginkan. Safety requierement ini diformulakan dalam linear temporal logic (LTL) dan dibangun oleh proposisi-proposisi atomik berhingga atau observable yang memberi label area-area yang menjadi ketertarikan di dalam lingkungan seperti ruang-ruang dan penghalang-penghalang.

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

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

s F 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.

11.Jika posisi robot di s5 dan R1 belum terkunjungi maka posisi robot berikutnya adalah s4. Jika posisi robot di s5 dan (R2 belum terkunjungi atau R3 belum terkunjungi atau R4 belum terkunjungi) Tabel 1 Jarak antar ruangan

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.

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

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.

Apabila model/program yang telah dibuat benar, tool model checking akan memberikan nilai true kepada formula spesifikasi yang diberikan. Sebaliknya, apabila model/program yang telah dibuat tidak memenuhi spesifikasi, tool model checking akan memberikan nilai false kepada formula spesifikasi yang diberikan dan juga memberikan counter example.

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.

Dokumen terkait