BAB II TINJAUAN PUSTAKA
D. Perancangan flowchart Pemilihan Jalur pada Mode
Mode hapalan merupakan mode dimana robot dapat langsung berjalan dari HOME menuju GOAL tanpa harus melakukan eksplorasi lapangan terlebih dahulu, dengan syarat variabel sudah_ingat sudah bernilai satu dan variabel sampun GOAL sudah bernilai 2. Variabel sudah_ingat ini dapat di cek pada menu hapalan yang ditampilkan LCD sebelum robot diperintahkan untuk berjalan.
Pada mode hapalan ini, robot akan kembali menerapkan metode algoritma flood-fill dengan mengikuti nilai sel terkecil pada pencariannya menuju GOAL, tentunya dengan menggunakan peta yang telah dibuat setelah eksplorasi dilakukan. Perancangan dari diagram alir robot pada mode hapalan ini dapat dilihat pada gambar 3.21 - gambar 3.22.
Pada gambar 3.21, diagram alir dimulai dengan START yang menandakan awal mulainya program. Sudah_ingat bernilai 1 dan sampun GOAL bernilai 2 yang menandakan robot sudah melakukan eksplorasi hingga menemukan GOAL dan robot telah berhasil kembali ke HOME dengan sukses.
Selanjutnya robot akan bergerak maju sampai langkah pada pembacaan encoder roda kanan dan kiri mencapai 24 langkah atau jika data pembacaan ADC sensor depan >= batas 475 (Robot sangat dekat dengan tembok) walau pun langkah kanan dan kiri belum mencapai 24, setelah itu robot berhenti untuk melakukan cek posisi sekarang untuk mengetahui di sel nomor berapa robot berada.
Setelah robot mengetahui di posisi mana dia berada sekarang, di koordinat (x,y) mana dan berapa nilai index sel tersebut, maka robot melakukan cek apakah
nilai dari index tempat robot berdiri sekarang bernilai 0 atau tidak. Jika nilai dari index sekarang bernilai 0 maka posisi GOAL telah dicapai dan nilai variabel sampun GOAL akan diberi nilai 1 yang menandakan bahwa GOAL telah berhasil dicapai.
Jika GOAL belum ditemukan, maka sistem akan berlanjut ke diagram alir pada gambar 3.22 dan robot akan melakukan cek dinding. Jika didepan ada dinding maka nilai sel didepan diisi dengan nilai yang tinggi yaitu 26. Jika didepan tidak ada dinding maka dilanjutkan ke dinding kanan dan begitu seterusnya. Jika semua proses telah selesai dilakukan dan telah didapat dibagian mana saja dinding terdapat maka proses dilanjutkan, jika diketahui didepan ada dinding, di kanan ada dinding, dan di kiri juga terdapat dinding maka robot menemui jalan buntu dan robot akan berputar 180°, jika tidak ditemui jalan buntu maka proses akan diteruskan ke cek tetangga.
Robot akan melakukan cek sel mana sajakah yang menjadi tetangganya sekarang. Setelah mengetahuinya, robot akan melihat peta jalur terpendek yang telah dibuat. Jika nilai index dari tetangga depan lebih kecil 1 dari nilai sel robot sekarang, maka robot akan menjadikan tetangga depan sebagai tujuan berikutnya.
Tetapi jika nilai index dari tetangga depan tidak lebih kecil 1 dari nilai sel sekarang, maka proses dilanjutkan ke kondisi beikutnya.
Jika nilai index dari tetangga kanan lebih kecil 1 dari nilai sel robot sekarang, maka robot akan berputar 90° ke kanan dan menetapkan nilai sel depan setelah dilakukan putaran sebagai tujuan berikutnya.
Gambar 3.21 Diagram alir proses penentuan jalan pada mode Hapalan
Gambar 3.22 Diagram alir proses penentuan jalan pada mode Hapalan
Begitu juga ketika diketahui nilai index tetangga kiri lebih kecil 1 dari nilai sel robot sekarang, maka robot akan berputar 90° ke kiri dan menetapkan nilai sel depan setelah dilakukan putaran sebagai tujuan berikutnya. Selanjutnya sistem kembali ke diagram alir yang ada pada gambar 3.21 untuk bergerak maju sampai robot berhasil menemukan GOAL.
BAB IV
ANALISA DAN PEMBAHASAN
4.1 Metode Pembacaan Dinding Labirin
Robot micromouse pada penelitian ini memiliki 3 sensor SHARP GP2D120 yang terletak di sisi depan, sisi kanan dan sisi kiri robot yang berfungsi mendeteksi dinding dan rintangan lainnya pada labirin. Sensor ini akan mengembalikan nilai yang sebanding dengan jarak robot dengan dinding kiri, dinding kanan, atau dinding di depan robot yang akan dibaca oleh PINA dengan memanfaatkan fitur ADC pada mikrokontroler ATMEGA32. Selanjutnya, data dari sensor SHARP GP2D120 ini akan disimpan oleh robot untuk pemetaan dinding labirin dan juga diproses oleh robot ketika robot berjalan mengikuti dinding sampai langkah roda kanan dan langkah roda kiri bernilai 24.
Gambar 4.1 Metode pembacaan dinding labirin
4.2 Penggunaan Metode Wall Follower untuk Membuat Robot Berjalan Lurus pada Labirin
Gambar 4.2 Diagram alir wall follower pada waktu robot jalan berpindah 1 sel
Robot micromouse dalam penelitian ini memanfaatkan metode wall follower ketika berjalan dari 1 sel ke sel lainnya. Hal ini dilakukan, karena jika hanya mengandalkan perhitungan encoder roda kanan dan encoder roda kiri saja, maka robot akan bergerak miring atau bahkan menabrak dinding sehingga pada hitungan langkah ke 24 robot belum mencapai 1 sel, ini disebabkan kedua motor DC yang memiliki kecepatan berbeda walaupun jenisnya sama. Diagram alir dari metode wall follower yang digunakan pada robot ini dapat dilihat pada gambar 4.2 sebelumnya.
Diagram alir dimulai dengan START yang menandakan awal mulainya program dan diteruskan dengan robot bergerak maju sampai langkah pada pembacaan encoder roda kanan dan kiri mencapai 24 langkah atau jika data pembacaan ADC sensor depan >= batas 475 (Robot sangat dekat dengan tembok) walaupun langkah kanan dan kiri belum mencapai 24. Jika langkah roda kanan dan kiri sudah bernilai 24, maka program berakhir ditandai dengan END yang artinya robot sudah berpindah sejauh 1 sel.
Jika langkah 24 belum terpenuhi maka robot akan melakukan cek dinding secara kontinu. Selama posisi robot masih berada ditengah labirin maka robot akan terus maju lurus, tetapi jika dalam perjalanannya berjalan lurus robot bergeser akibat motor kanan dan kiri yang tidak sama kecepatannya maka jika robot mendeteksi ada dinding di kiri dan kanan, robot akan mengikuti dinding kiri sampai robot kembali berada ditengah, begitu juga jika hanya dinding kiri yang terdeteksi. Jika robot hanya mendeteksi dinding kanan, maka robot akan mengikuti dinding kanan sampai robot kembali berada ditengah. Begitu
seterusnya sampai langkah roda kiri dan roda kanan bernilai 24 atau sudah berpindah sejauh 1 sel.
4.3 Pengujian Robot dalam Melakukan Eksplorasi Lapangan
Sebelum mengeksplorasi suatu lapangan, robot micromouse terlebih dahulu telah dilengkapi dengan peta buta, yaitu peta informasi sementara mengenai seberapa jauh robot berada dari GOAL pada saat melakukan eksplorasi ini, tetapi peta buta ini tidak dilengkapi informasi mengenai dimana saja dinding-dinding sel berada.
Peta buta ini dibuat dengan cara memberi nilai 0 pada sel labirin yang akan menjadi tujuan pada eksplorasi ini, lalu setelah itu masing-masing sel labirin yang ada disekitar sel tujuan diberi nilai dengan cara n + 1 hingga semua sel diberi nomor. Peta buta ini lah yang nantinya akan menjadi panduan robot dalam melakukan eksplorasi, dan yang akan dirubah oleh robot micromouse seiring ditemukannya dinding-dinding sel selama melakukan perjalanan. Untuk memudahkan pemograman, masing - masing sel juga telah diberi index yang mana nilai masing masing index pada tiap sel ini merupakan nilai peta buta pada tiap – tiap sel.
Gambar 4.3 Peta buta (kiri) dan nilai index dari masing-masing sel (kanan)
Lapangan pertama yang akan di eksplorasi pada pengujian ini dapat dilihat pada gambar 4.4 berikut:
Gambar 4.4 Lapangan yang akan di eksplorasi robot micromouse
Diketahui robot akan mengawali eksplorasi dari koordinat (0,0), dan GOAL terletak pada koordinat (2,2). Menurut peraturan dari lomba robot micromouse, sebuah HOME harus memiliki 3 dinding di setiap sisinya, masing - masing di sisi kanan, sisi kiri, dan sisi belakang. Ini dilakukan agar robot berjalan lurus kedepan hingga berpindah 1 sel ketika mengawali eksplorasinya.
Karena hanya sel didepan robot yang terbuka, dan nilai sel didepan robot lebih kecil dari nilai sel sekarang, maka robot akan bergerak maju sejauh 1 sel menuju index 6 dan menjadikan nilai dari index 6 sebagai tetangga terkecil dari sel sekarang yaitu index 1.
Gambar 4.5 Robot berada di HOME dan siap untuk mengeksplorasi lapangan
Variabel sampun pada index 1 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali. Setelah robot berpindah sejauh 1 sel, maka robot akan melakukan cek apakah nilai dari index sel sekarang 0 atau tidak, jika tidak berarti GOAL belum dicapai dan robot melanjutkan eksplorasinya. Pengecekan ini dilakukan secara kontinu setiap robot baru berpindah 1 sel hingga robot menemukan GOAL.
Karena bukan GOAL, maka robot melakukan cek dinding untuk mengetahui siapa saja tetangga yang terbuka dan berapa nilainya agar robot bisa menentukan ke sel mana ia harus bergerak selanjutnya.
Diketahui di sisi kiri robot terdapat dinding, maka tetangga kiri diabaikan.
Disisi kanan robot terbuka tetangga dengan index 7 yang bernilai 2, dan didepan robot terbuka index 11 yang juga bernilai 2. Karena Sel robot sekarang mempunyai index 6 dengan nilai 3, dan masing - masing nilai index dari tetangganya bernilai lebih kecil dan sama, maka robot lebih memilih untuk maju ke index 11 yang ada didepannya dengan alasan robot akan menghabiskan banyak waktu jika memilih index 7 yang ada dikanannya karena harus berbelok dulu baru maju 1 sel. Robot maju 1 sel ke index 11 dan menjadikan index 7 sebagai tetangga terkecil dari index 6 tempat robot berada sekarang. Variabel sampun pada index 6 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali.
Gambar 4.6 Robot berada pada sel dengan index 6 yang bernilai 3
Gambar 4.7 Robot berada pada sel dengan index 11 yang bernilai 2
Setelah sampai pada sel dengan Index 11, maka robot melakukan cek dinding dan mendapat informasi bahwa di sisi kanan dan sisi kirinya adalah dinding, maka sisi kanan dan kiri pun diabaikan. Sisi depan mempunyai index 16 dengan nilai 3, dan sisi belakang yang baru saja di tinggalkan mempunyai index 6 dan juga bernilai 3, sementara nilai index 11 pada sel sekarang adalah 2. Karena sel didepannya lebih besar, maka syarat dari metode algoritma flood-fill yang diterapkan yaitu robot hanya bisa bergerak maju ke sel yang nomornya lebih kecil dari sel sekarang tidak terpenuhi. Jika berada pada kondisi ini, maka robot harus melakukan re-flood guna mengubah peta buta yang ada sekarang dengan cara nilai sekarang = nilai sel tetangga depan + 1. Maka sel index 11 tempat sel sekarang yang awalnya bernilai 2 berubah menjadi 4 (3 + 1= 4). Karena sel didepan robot sudah menjadi lebih kecil dari sel sekarang, maka robot pun bergerak maju kedepan menuju sel dengan index 16 dan menjadikan Index 6 yang berada dibelakang sel sekarang sebagai tetangga terkecil dari index sel sekarang yaiut index 11. Variabel sampun pada index 11 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali.
Gambar 4.8 Nilai Index 11 berubah menjadi 4 setelah dilakukan re-flood
Gambar 4.9 Robot berada pada sel dengan index 16 yang bernilai 2
Setelah sampai pada sel dengan Index 16, maka robot melakukan cek dinding dan mendapat informasi bahwa di sisi kanan dan sisi kirinya adalah dinding, maka sisi kanan dan kiri pun diabaikan. Sisi depan mempunyai index 21 dengan nilai 4, dan sisi belakang yang baru saja di tinggalkan mempunyai index 11 dan juga bernilai 4, sementara nilai index 16 pada sel sekarang adalah 3 atau lebih kecil dari kedua tetangganya, maka robot kembali melakukan re-flood lalu maju 1 sel ke tetangga depannya dan menjadikan tetangga belakang yaitu index 11 sebagai tetangga terkecil dari index sel sekarang yaitu index 16. Variabel sampun pada index 16 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali.
Gambar 4.10 Nilai Index 16 berubah menjadi 5 setelah dilakukan re-flood
Setelah sampai pada sel dengan Index 16, maka robot melakukan cek dinding dan mendapat informasi bahwa di 3 sisinya terdapat dinding atau robot menumukan jalan buntu, maka robot langsung berputar 180° dan menandai sel ini dengan variabel jalan_buntu = 1 .
Gambar 4.11 Robot menemukan jalan buntu dan berputar 180°
Setelah selesai berputar, maka robot kembali melakukan cek dinding dan mendapat informasi bahwa di sisi kanan, sisi kiri dan sisi belakangnya adalah dinding, maka sisi kanan,sisi kiri dan sisi belakang pun diabaikan. Sisi depan mempunyai index 16 dengan nilai 5, sementara nilai index 21 pada sel sekarang adalah 4 atau lebih kecil dari tetangganya yang terbuka, maka robot kembali melakukan re-flood dan maju 1 sel ke tetangga depannya dan juga menjadikan tetangga depan yaitu index 16 sebagai tetangga terkecil dari index sel sekarang yaitu index 21. Variabel sampun pada index 21 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali.
Gambar 4.12 Nilai Index 21 berubah menjadi 6 setelah dilakukan re-flood
Karena pada index 21 tadi telah ditandai dengan variabel Jalan_buntu = 1, maka ketika sampai di index 16, sisi belakangnya yaitu index 21 akan dianggap sebagai dinding dan hal ini akan mengakibatkan index 16 di tandai dengan Jalan_buntu = 1 juga karena pada robot telah di masukkan informasi jika disisi kanan, sisi kiri, dan sisi belakang terdapat dinding maka sel tersebut akan ditandai dengan variabel Jalan_buntu = 1. Hal ini agar sel ini tidak dilalui robot lagi karena
beujung pada jalan buntu. Secara peta sel dengan variabel buntu ini belum di blok, tetapi jika robot berada pada sisi ini dia akan menganggapnya sebagai dinding.
Gambar 4.13 Robot belok kiri 90° karena nilai index tetangga kiri lebih kecil
Sekarang robot telah sampai pada sel dengan nilai index 6. Robot melakukan cek dinding dan mendapat informasi bahwa di sisi kanan adalah dinding, maka sisi kanan diabaikan. Sisi depan mempunyai index 1 dengan nilai 4, dan sisi belakang yang baru saja di tinggalkan dianggap sebagai dinding karena variabel Jalan_buntunya bernilai 1, sisi kiri mempunyai index 7 dengan nilai 2. Karena nilai index dari tetangga kiri lebih kecil maka robot berbelok 90° lalu maju ke index 7 dan menjadikan index 7 sebagai tetangga terkecil dari index 6 yang
terbaru. Variabel sampun pada index 6 diberi nilai +1 menjadi 2 yang menandakan sel ini telah dilewati 2 kali selama eksplorasi ini.
Sekarang robot telah sampai pada yang mempunyai index 7 dengan nilai 2.
Robot melakukan cek dinding dan mendapat informasi bahwa di sisi depan adalah dinding, maka sisi depan diabaikan. Sisi kanan mempunyai index 2 dengan nilai 3, sisi belakang mempunyai index 6 dengan nilai 3, sisi kiri mempunyai index 12 dengan nilai 1. Karena nilai index dari tetangga kiri lebih kecil maka robot berbelok 90° lalu maju ke index 12 dan menjadikan index 12 sebagai tetangga terkecil dari index 7. Variabel sampun pada index 7 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali selama eksplorasi ini.
Gambar 4.14 Robot belok kiri 90° karena nilai index tetangga kiri lebih kecil
Setelah sampai pada sel dengan Index 12, maka robot melakukan cek dinding dan mendapat informasi bahwa di 3 sisinya terdapat dinding atau robot menumukan jalan buntu, maka robot langsung berputar 180° dan menandai sel ini dengan variabel jalan_buntu = 1
Gambar 4.15 Robot menemukan jalan buntu dan berputar 180°
Setelah selesai berputar, maka robot kembali melakukan cek dinding dan mendapat informasi bahwa di sisi kanan, sisi kiri dan sisi belakangnya adalah dinding, maka sisi kanan,sisi kiri dan sisi belakang pun diabaikan. Sisi depan mempunyai index 7 dengan nilai 2, sementara nilai index 12 pada sel sekarang adalah 1 atau lebih kecil dari tetangganya yang terbuka, maka robot kembali melakukan re-flood sehingga nilai index 12 menjadi 3.
Gambar 4.16 Nilai Index 12 berubah menjadi 3 setelah dilakukan re-flood
Tetapi perubahan mengakibatkan peta yang ada sementara menjadi rusak, hal ini karena index 12 merupakan tetangga terkecil dari index 7, dan syarat yang telah diberikan adalah suatu sel harus lebih besar 1 dari tetangga terkecilnya.
Karena index 12 lebih besar dari index 7, maka nilai index 7 berubah menjadi nilai tetangga terkecil + 1, sehingga diperoleh nilai index 7 sebesar 4 (3 + 1 = 4).
Gambar 4.17 Robot memperbaiki peta karena terjadi perubahan akibat re-flood
Namun, karena index 7 merupakan tetangga terkecil dari index 6, dan index 7 lebih besar dari index 6, maka nilai index 6 berubah menjadi nilai tetangga terkecil + 1, sehingga diperoleh nilai index 6 sebesar 4 (4 + 1 = 5).
Gambar 4.18 Robot memperbaiki peta karena terjadi perubahan akibat re-flood
Karena index 6 merupakan tetangga terkecil dari index 1 dan index 11, dan index 5 lebih besar dari keduanya, maka nilai index 1 dan index 11 berubah menjadi nilai tetangga terkecil + 1, sehingga diperoleh nilai index 1 sebesar 6 (5 + 1 = 6) dan index 11 sebesar 6 (5 + 1 = 6).
Gambar 4.19 Robot memperbaiki peta karena terjadi perubahan akibat re-flood
Karena index 11 merupakan tetangga terkecil dari index 16, dan index 11 lebih besar dari index 16, maka nilai index 16 berubah menjadi nilai tetangga terkecil + 1, sehingga diperoleh nilai index 16 sebesar 4 (6 + 1 = 7).
Gambar 4.20 Robot memperbaiki peta karena terjadi perubahan akibat re-flood
Karena index 16 merupakan tetangga terkecil dari index 21, dan index 16 lebih besar dari index 21, maka nilai index 21 berubah menjadi nilai tetangga terkecil + 1, sehingga diperoleh nilai index 16 sebesar 4 (7 + 1 = 8).
Gambar 4.21 Robot memperbaiki peta karena terjadi perubahan akibat re-flood
Karena nilai tetangga depan dari index 12 lebih besar, maka robot kembali melakukan re-flood lalu setelah nilai tetangga depan lebih kecil maka robot maju kedepan dan menjadikan index 7 sebagai tetangga terkecil dari index 7. Variabel sampun pada index 12 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali selama eksplorasi ini.
Gambar 4.22 Robot melakukan re-flood dan maju 1 sel ke depan
Sekarang robot telah sampai pada sel berikutnya yang mempunyai index 7 bernilai 4 . Robot melakukan cek dinding dan mendapat informasi bahwa di sisi kiri adalah dinding, maka sisi kiri diabaikan. Sisi kanan mempunyai index 6 dengan nilai 5, sisi belakang mempunyai index 12 dengan nilai 5, sisi depan mempunyai index 2 dengan nilai 3. Karena nilai index dari tetangga depan lebih kecil maka robot maju ke index 3 dan menjadikan index 3 sebagai tetangga terkecil dari index 7 yang terbaru. Variabel sampun pada index 7 diberi nilai +1 menjadi 2 yang menandakan sel ini telah dilewati 2 kali selama eksplorasi ini.
Setelah sampai pada sel dengan index 2, maka robot melakukan cek dinding dan mendapat informasi bahwa di sisi depan dan sisi kanan adalah dinding, maka sisi depan dan sisi kanan diabaikan. Sisi belakang mempunyai index 7 dengan nilai 4, sisi kiri mempunyai index 3 dengan nilai 2. Karena nilai index dari tetangga kiri lebih kecil maka robot berbelok 90° lalu maju ke index 3 dan menjadikan index 3 sebagai tetangga terkecil dari index 2. Variabel sampun pada index 2 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali selama eksplorasi ini.
Gambar 4.23 Robot belok kiri 90° karena nilai index tetangga kiri lebih kecil
Setelah sampai pada sel dengan index 3, maka robot melakukan cek dinding dan mendapat informasi bahwa sisi kanan adalah dinding, maka sisi kanan diabaikan. Sisi belakang mempunyai index 2 dengan nilai 3, sisi depan mempunyai index 4 dengan nilai 3, sisi kiri mempunyai index 8 dengan nilai 1.
Karena nilai index dari tetangga kiri lebih kecil maka robot berbelok 90° lalu maju ke index 8 dan menjadikan index 8 sebagai tetangga terkecil dari index 3.
Variabel sampun pada index 3 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali selama eksplorasi ini.
Gambar 4.24 Robot belok kiri 90° karena nilai index tetangga kiri lebih kecil
Setelah sampai pada sel dengan index 8, maka robot melakukan cek dinding dan mendapat informasi bahwa sisi kanan dan sisi kiri adalah dinding, maka sisi kanan dan sisi kiri diabaikan. Sisi belakang mempunyai index 3 dengan nilai 2, sisi depan mempunyai index 13 dengan nilai 0. Karena nilai index dari tetangga kiri lebih kecil maka robot maju ke index 13 dan menjadikan index 13 sebagai tetangga terkecil dari index 8. Variabel sampun pada index 8 diberi nilai +1 yang menandakan sel ini telah dilewati 1 kali selama eksplorasi ini.
Gambar 4.25 Robot bergerak maju menuju sel dengan index 13
Setelah sampai pada sel dengan Index 13, maka robot menemukan bahwa nilai index 13 adalah 0, maka GOAL telah ditemukan, tetapi setelah melakukan cek dinding robot mendapat informasi bahwa di 3 sisinya terdapat dinding atau robot menumukan jalan buntu, maka robot langsung berputar 180°. Setelah berputar, karena GOAL telah ditemukan maka robot pun segera melakkan pemblokiran jalur pada peta.
Semua jalur yang belum dilalui yang ditandai dengan nilai sampun masih berisi 0, maka sel dengan nilai sampun = 0 akan diisi dengan nilai 255.
Selanjutnya sel yang mempunyai nilai 1 pada variabel Jalan_buntu nya juga diberi
nilai 255 sehingga didapat peta jalur terpendek dari lapangan yang baru saja di eksplorasi oleh robot. Variabel Sampun_GOAL juda diisi dengan nilai 1 yang menandakan robot akan masuk pada mode perjalanan dari HOME menuju GOAL.
Gambar 4.26 Robot menemukan GOAL dan membuat peta jalur terpendek
Gambar 4.27 Peta jalur terpendek hasil dari metode algoritma flood-fill
4.4 Pengujian Robot dalam Melakukan Perjalanan dari GOAL ke HOME Pada saat robot melakukan perjalanan pulang dari GOAL ke HOME, robot
4.4 Pengujian Robot dalam Melakukan Perjalanan dari GOAL ke HOME Pada saat robot melakukan perjalanan pulang dari GOAL ke HOME, robot