• Tidak ada hasil yang ditemukan

Penerapan PSO Dalam Lokalisasi Sumber Asap

PENCARIAN SUMBER ASAP DALAM MULTIDISIPLIN Pencarian sumber asap dengan memanfaatkan agen-agen artifisial bukanlah suatu

3.3 Kecerdasan Agen Pencari

3.3.2 Penerapan PSO Dalam Lokalisasi Sumber Asap

Setelah memahami konsep dasar dari algoritma Particle Swarm Optimization, maka kita perlu memahami sejumlah hal yang harus diperhatikan jika konsep algoritma ini ingin dimanfaatkan ke dalam pencarian sumber asap. Penyesuaian juga perlu dilakukan dan disesuaikan dengan lingkungan uji coba dimana algoritma PSO akan diterapkan. Baik simulasi maupun implementasi dunia nyata, penerapan algoritma PSO memiliki banyak kesamaan, sehingga memudahkan peneliti ketika melakukan migrasi dari simulasi ke implementasi dunia nyatanya.

Penyesuaian dalam simulasi 2 dimensi dilakukan baik terhadap robot yang bertin-dak sebagai agen maupun algoritma PSO yang akan bertinbertin-dak sebagai otak dari robot tersebut. Penyesuaian juga melibatkan kecepatan robot, bentuk robot dan posisi robot.

Dalam implementasinya, partikel dalam aplikasi 2 dimensi adalah robot dengan sensor-sensor yang diperlukan diasumsikan telah terpasang sehingga robot ini bisa mendeteksi kepekatan asap serta arah dan kecepatan angin pada posisinya [20]. Se-bagai partikel, robot ini menyimpan informasi mengenai posisi local best dan tingkat konsentrasi asap pada lokasi tersebut serta kepekatan asap pada posisi robot terakhir. Robot ini diasumsikan memiliki Global Positioning System (GPS) sehingga memiliki informasi atas lokasinya sendiri.

Gambar 3.34: Blok Diagram Perhitungan PSO

Pergerakan robot dihitung dengan menggunakan algoritma PSO. Perhitungan PSO tidak dilakukan pada setiap iterasi, namun dilakukan pada setiap iterasi tertentu sesuai

parameter (PSO Steps) yang diberikan. Pada iterasi yang tidak menghitung PSO, ke-cepatannya masih memakai kecepatan sebelumnya yang dihitung dengan PSO hingga sampai ke iterasi yang menghitung PSO. Blok diagram dari perhitungan PSO ditun-jukkan oleh Gambar 3.34.

Posisi robot ditentukan oleh koordinat x dan y yang direpresentasikan oleh vektor titik [20]. Sementara kecepatan robot juga ditentukan oleh koordinat x dan y yang direpresentasikan dalam bentuk vektor arah yang dilambangkan dengan v. Posisi robot pada iterasi selanjutnya ditentukan oleh penjumlahan vektor antara posisi robot dengan kecepatan robot seperti pada rumus 3.23.

Gambar 3.35: Vektor posisi dan kecepatan robot

Pada Gambar 3.35 di atas, posisi robot berada pada titik x(t) = (2,2). Kemudian pada iterasi selanjutnya ditambahkan dengan vektor kecepatan sebesar v(t +1) = (1,2). Maka posisi robot pada iterasi selanjutnya dihitung dengan rumus 3.23 sehingga x(t +1) = x(t) + v(t +1) = (3,2). Vektor kecepatan v dihitung dengan rumus PSO standar 3.23. Pada inisialisasi awal, kecepatan dan local best masing-masing robot serta global best ditentukan secara acak.

Gambar 3.36: Benturan Antar Robot

Dalam keadaan sebenarnya, ada kemungkinan robot membentur sesuatu secara fisik, baik itu membentur robot lainnya ataupun membentur tembok atau batas area

pencarian. Penanganan benturan fisik ini perlu dilakukan dan disesuaikan dengan ben-tuk robot yang direpresentasikan (kotak, lingkaran, segitiga dll). Umumnya model dari robot sebagai partikel dalam dunia simulasi 2 dimensi menggunakan lingkaran. Ini dikarenakan pemodelan benturan fisik antara robot lebih mudah untuk dilakukan.

Sebagai contoh ketika robot berbenturan dengan robot lain, robot mengalami peru-bahan arah. Untuk kemudahan perhitungan, peruperu-bahan arah yang terjadi adalah robot yang membentur akan berputar 90oke kanan [34]. Perubahan arah ini dilakukan dengan mengalikan vektor kecepatan dengan matriks rotasi 90o.

Gambar 3.36 menggambarkan benturan yang terjadi antar robot. Ketika terjadi ben-turan pada dua robot, keduanya akan berbelok ke kanan dari arah awal kecepatannya dengan kecepatan yang sema dengan sebelum terjadinya benturan.

vi(i + 1) = " 0 1 −1 0 # vi(i + 1) (3.29)

Benturan yang juga mungkin terjadi adalah benturan dengan batas area pencarian. Jika terjadi benturan dengan area pencarian, maka robot akan berbelok dengan sudut yang sama dengan sudut datangnya robot pada sudut normal tembok. Dengan kata lain, kecepatan robot selanjutnya akan bergerak berlawanan arah dengan kecepatan robot yang sekarang sehingga robot akan bergerak menjauhi batas [20]. Gambar 3.10 mem-perlihatkan benturan robot pada tembok yang membuat robot memantul dengan sudut yang sama dengan sudut datangnya robot dengan garis normal tembok.

Gambar 3.37: Benturan Robot Dengan Dinding

Untuk mengetahui apakah robot membentur tembok, maka perlu dilakukan penge-cekan apakah pergerakan robot akan membuat robot membentur tembok. Jika ya, maka arah kecepatannya dibalik. Pengecekan ini dilakukan pada sumbu x dan y. Untuk mem-balikan arah robot, maka vektor arah dikalikan dengan -1 pada sumbu yang membentur tembok.

di-lakukan. Penyesuaian tersebut meliputi pembatasan kecepatan gerak robot serta pem-batasan sudut arah kecepatan. Hal ini diterapkan baik dalam simulasi 2D, simulasi 3D dan implementasi dunia nyata karena penerapannya yang sama. Contoh dari hasil implementasi algoritma PSO dalam simulasi 2D dapat dilihat pada Gambar 3.38.

Dalam simulasi 3D, penyesuaian yang berkaitan dengan masalah bentuk dari robot yang digambarkan dalam bentuk bola atau kotak tidak perlu dilakukan. Simulasi 3D umumnya sudah memanfaatkan model robot sesungguhnya yang mungkin dipakai dalam implementasi dunia nyata. Seluruh sensor, roda, keterhubungan antara bagian-bagian robot dapat digambarkan dengan baik ketika kita memanfaatkan simulasi 3D.

Dalam simulasi 3D pemanfaatan Open Dynamic Engine sangat membantu pengem-bangan simulasi, karena ODE dapat melakukan perhitungan tumbukan, gesekan dan gaya fisika lainnya. Ini meringankan beban pengembang simulasi sehingga pengem-bang dapat lebih fokus dalam penerapan algoritma PSOnya saja. Penyesuaian algoritma PSO hanya perlu memperhatikan kecepatan maksimum serta sudut putar dari robot tersebut, seperti yang telah diterangkan sebelumnya. Tanpa adanya pembatasan ke-cepatan maka memungkinkan robot untuk terbalik karena perhitungan yang dilakukan oleh ODE menyatakan demikian. Hasil implementasi PSO dalam simulasi 3D dapat dilihat pada Gambar 3.40.

Gambar 3.38: Simulasi 2D Dengan Algoritma PSO

Penyesuaian dalam implementasi dunia nyata sedikit berbeda dengan penyesuaian dalam simulasi. Kesalahan dalam sistem seperti ini jauh lebih besar dan penanganan

kesalahan perlu dilakukan untuk menghindari akumulasi dari kesalahan yang telah ter-jadi sebelumnya. Jika hal ini dibiarkan saja maka pengaruh dari akumulasi kesalahan dapat menyebabkan sumber tidak diketemukan. Sebagai contoh dari permasalahan ini adalah pengaruh putaran roda robot terhadap orientasi arah dan penempatan posisi robot selanjutnya.

Jika hasil perhitungan PSO meminta robot untuk bergerak dari posisi (xi, yi) ke (xi+1, yi+1) maka umumnya perintah ini akan dikonversi oleh robot menjadi berputar sebesar zo dan maju sejauh m meter. Hal ini dilakukan dengan menggunakan Per-samaan 3.30 untuk menentukan kecepatan mutlaknya dan sudut arah geraknya diten-tukan dengan Persamaan 3.31.

k vk =qv2 x+ v2

y (3.30)

vi(t) = vitemp(t + 1) jika kvitemp(t + 1)k <= vmax = vmax jika kvitemp(t + 1)k > vmax

θtemp(v) = tan−1vy vx (3.31) θupper= d θtemp(v) 30o e x30o θlower= b θtemp(v) 30o c x30o

θ = θupper jika |θtemp− θupper| < |θtemp− θlower|

= θlower jika |θtemp− θupper| >= |θtemp− θlower|

Tentu saja hasil perhitungan ini tidak akan salah. Kesalahan akan terjadi ketika robot berputar, karena umumnya putaran yang dilakukan akan lebih kecil dari putaran yang diminta. Untuk menangani hal ini, kita dapat memanfaatkan sensor kompas. De-ngan adanya sensor kompas, maka kita dapat memperkirakan seberapa besar kesalahan putaran yang terjadi. Perbaikan orientasi arah dan tujuan bisa dilakukan sepanjang robot bergerak. Pembulatan arah putaran juga dapat dilakukan untuk mengkompensasi hal ini. Meski ketidaktepatan posisi yang dituju mungkin terjadi, tetapi hal ini akan mengurangi besarnya ketidaktepatan tersebut. Gambaran dari hal ini dapat dilihat pada Gambar 3.39.

Oleh karena perubahan sudut arah gerak juga berpengaruh terhadap perubahan po-sisi, oleh sebab hal ini diperlukan penyesuaian kembali nilai dari kecepatan. Penyesua-ian terhadap kecepatan dilakukan melalui Persamaan 3.32.

v= (cos(θ)kvk, sin(θ)kvk) (3.32)

Gambar 3.40: Implementasi 3D Dengan Algoritma PSO

Hasil implementasi dunia nyata representasi dari simulasi tersebut dapat dilihat pada Gambar 3.41.

Gambar 3.41: Implementasi Dunia Nyata Dengan Algoritma PSO

3.4 Refleksi

Jawablah pertanyaan-pertanyaan berikut untuk menilai seberapa jauh Anda sudah mengerti pembahasan dalam bab ini.

1. Pada dunia robotika, bagaimanakah hubungan antara fungsi, desain, dan algo-ritma robot? Jelaskan jawaban Anda!

2. Bidang ilmu apa sajakah yang turut terlibat dalam pengembangan sebuah robot? Seberapa dalamkah masing-masing bidang ilmu tersebut harus dikuasai?

3. Apakah ada perbedaan pengaruh penggunaan model asap yang berbeda dalam simulasi?

MODIFIKASI PSO TINGKAT LANJUT UNTUK PENCARIAN