MAKALAH SEMINAR TUGAS AKHIR PERIODE MARET 2011
IMPLEMENTASI SISTEM PERGERAKAN ROBOT DENGAN PENGGUNAAN SENSOR KOMPAS DALAM FRAMEWORK MICROSOFT ROBOTICS STUDIO A.A. B. Pramananugraha – Wahyu Suadi, S.Kom, MM, M.Kom – I Wayan Suardinata, S.Kom
Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember, Email:
[email protected],
[email protected],
[email protected]
Abstrak Pembuatan simulasi pergerakan robot seringkali berkontradiksi dengan keadaan robot pada dunia nyata. Hal ini dikarenakan sistem tidak mampu mengetahui arah dari hadapan robot tersebut. Kontradiksi yang terjadi ini, menyebabkan simulasi tidak bisa memberikan gambaran mengenai pergerakan robot pada dunia nyata. Padahal sebuah simulasi diharapkan mampu menggambarkan keadaan yang terjadi sebenarnya dan tidak jauh berbeda dari keadaan yang digambarkan pada simulasi. Tugas akhir ini bertujuan untuk membuat sebuah sistem pergerakan robot yang mampu memberikan gambaran visual dari pergerakan robot dan tidak jauh berbeda dari pergerakan robot pada keadaan yang sebenarnya. Hal ini dimungkinkan dengan menambahkan sebuah sensor kompas pada robot yang akan memberitahukan sistem, hadapan robot pada keadaan yang sebenarnya. MRDS (Microsoft Robotics Developer Studio) dipilih sebagai framework yang digunakan untuk membuat sistem pergerakan robot pada tugas akhir ini. Sistem pergerakan robot ini juga dapat dikontrol secara remote melalui sebuah Xbox Controller. Pada hasil uji coba sistem pergerakan robot ini, dapat disimpulkan bahwa peletakan sensor kompas harus diletakkan minimum 20 cm diatas brick untuk menghindari gelombang magnet yang ditimbulkan oleh brick maupun servo motor pada robot Lego Mindstroms sehingga sistem mampu membaca derajat sensor kompas yang menjadi acuan dalam sinkronisasi robot dengan baik. Pembacaan sensor kompas yang baik, tentu saja dapat meminimalisir penyimpangan yang terjadi pada simulasi dalam menggambarkan pergerakan sebuah robot sehingga simulasi yang dikembangkan dapat menjadi representasi dari pergerakan sebuah robot pada keadaan yang sebenarnya. Meskipun demikian, masih banyak pengembangan yang dapat dilakukan pada tugas akhir ini sehingga nilai gunanya dapat meningkat seiring dengan perkembangan teknologi dan framework yang mempermudah pengembangan sistem pergerakan robot ini.
1.
Pendahuluan Simulasi robot memiliki fungsi sebagai alat yang berguna untuk menggambarkan kondisi robot dalam melakukan tugas yang diprogram kepadanya, disamping sebagai alat pengujian ide pembangunan robot sebelum diaplikasikan pada robot yang sebenarnya. Namun simulasi ini menjadi tidak berguna apabila hasil yang diperoleh pada simulasi jauh berbeda dengan kondisi pada robot yang sebenarnya sehingga simulasi yang diharapkan mampu menggambarkan keadaan robot yang sebenarnya tidak berfungsi sesuai dengan tujuan dibuatnya simulasi tersebut. Pada tugas akhir ini, dibangun sebuah sistem pergerakan robot yang mampu memberikan gambaran visual terhadap pergerakan robot melalui sebuah simulasi 3D. Pembuatan sistem pergerakan robot ini dilakukan untuk memberikan visualisasi kepada pengguna (user) mengenai pergerakan robot dalam mencapai tujuannya. Hal ini dimungkinkan dengan penggunaan sensor kompas yang akan memberitahukan arah dari hadapan robot kepada sistem sehingga simulasi mampu memberikan visualisasi pergerakan robot yang mendekati pergerakan robot pada keadaan yang sebenarnya. 2.
Microsoft Robotics Developer Studio Microsoft Robotics Developer Studio (MRDS) adalah framework pada lingkungan berbasis windows yang digunakan untuk mengontrol robot dan mensimulasikan robot. MRDS ini dibuat untuk akademis, kelompok hobi dan pengembang komersil yang digunakan untuk menangani berbagai macam jenis perangkat keras robot. MRDS berdasar pada CCR (Cuncurrency dan Coordination Runtime) yang merupakan .NET library yang diimplementasikan untuk mengatur asynchronous parallel task. Teknik ini melibatkan penggunaan message passing dan berorientasi pada sebuah lightweight service, DSS (Decentralized Software Services), yang mengijinkan orchestration dari berbagai service untuk melakukan perilaku- perilaku yang kompleks.
Kata kunci: simulasi, pergerakan, NXT,
MRDS 1
A.A. BAGUS PRAMANANUGRAHA - 5107100115
MAKALAH SEMINAR TUGAS AKHIR PERIODE MARET 2011
Fitur-fitur yang terdapat di dalam MRDS ini antara lain: Perangkat Pemrograman Visual, Microsoft Visual Programming Language yang digunakan untuk membuat dan melakukan debuging aplikasi robot, Simulasi 3D, akses yang mudah ke sensor robot dan actuator serta mendukung beberapa bahasa pemrograman termasuk C# dan Visual Basic.NET, Jscript dan IronPython.
CCR dirancang untuk mengatur komunikasi yang terjadi secara asynchronous antar service. CCR menggunakan model message-passing untuk memodelkan suatu proses asynchronous yang terjadi pada service. Model message-passing pada dasarnya adalah sebuah model untuk menangani antrian. Dalam CCR, data atau pesan yang akan dieksekusi datang melalui PortSet. Pesan-pesan tersebut akan berdatangan dan akan mengantri pada PortSet hingga pesan tersebut keluar dari antrian karena dipanggil oleh receiver. Proses pemanggilan ini bersifat first-in-first-out, sama dengan sifat antrian secara umum. Selain itu, pemanggilan pesan pada receiver bisa ditambahkan ekspresi logika, seperti AND (pesan dari dua PortSet harus datang terlebih dahulu) atau OR (pesan yang mencapai satu PortSet terlebih dahulu dari sekumpulan PortSet yang dipanggil). Saat receiver memanggil pesan dari PortSet, arbiter akan membuat suatu objek Task yang akan menggunakan pesan yang dipanggil oleh receiver untuk melakukan suatu aksi. Task ini akan mengantri pada dispatcher queue hingga dipanggil oleh dispatcher. Task yang dipanggil akan masuk pada Thread Pool dan akan dieksekusi pada komponen prosesor. Sedangkan Decentralized Software Services (atau DSS) adalah sebuah model arsitektur perangkat lunak yang menitikberatkan pada konsep service dan perangkaian service. Dalam DSS, sebuah perangkat lunak adalah sekumpulan service yang dirangkai secara loosely coupled. Proses komunikasi antar-service berlangsung dengan memakai protokol DSSP (Decentralized Software Services Protocol). Arsitektur DSS berdiri di atas CCR, di mana CCR mengatur lalulintas dan pemrosesan pesan yang terjadi antarservice. Setiap service memiliki sebuah Port tempat menerima pesan dari service lain. Port pada sebuah service bisa terdiri dari dua macam, yaitu Operations Port dan Notifications Port. Operations Port digunakan untuk tempat mengantri pesan-pesan yang masuk pada klasifikasi Operation. Begitu juga dengan Notifications Port, digunakan sebagai tempat mengantri pesan-pesan yang bertipe notification. Pesan yang masuk pada klasifikasi operation adalah pesan yang digunakan pada operasi seharihari service tersebut. Pesan notification berguna sebagai pesan untuk berlangganan pada service tersebut. Service yang berlangganan pada service lain akan menerima perubahan status service yang dilanggan secara berkala. Pesan-pesan yang diterima pada Port Operations maupun Port Notifications akan diolah pada handler-handler yang tersedia di dalam service tersebut. Hasil olahan pesan tersebut akan dikirimkan kepada layanan yang bersangkutan melalui port service yang bersangkutan[4].
3.
Simple Language Programming for MRDS SPL(Simple Programming Language) adalah tool yang dibuat dengan tujuan untuk membantu para pemula untuk memulai pemrograman dan juga menyederhanakan pola pengkodean yang rumit ke dalam script sederhana. Proyek ini telah dimulai dari bulan Juni 2009 dan menyelesaikan tahap pertama pada bulan Juni 2010. Scripting pada SPL ini sangatlah sederhana karena SPL ini di buat bagi para pemula yang ingin membuat aplikasi robotika dengan mudah. Berikut contoh scripting pada SPL dalam menampilkan sebuah simulasi robot : StartSimulationEngine AddSkyEntity sky1 AddLightSourceEntity sun1 UpdateCameraView /EyePosition:2 1 2 /LookAtPoint:0 0 0 SaveSceneAs "SimState/contohenvironment.xml" Potongan Kode 3.1 Scripting pada SPL 4.
Hitechnic Magnetic Compass Sensor NXT Compass Sensor berisi kompas magnetic yang mengukur medan magnet bumi dan menghitung sudutnya. Sensor Kompass ini terhubung ke port sensor NXT menggunakan NXT wire. Sudut dari compass dihitung dari 0 – 359 dan direfresh setiap 100 kali perdetik. NXT Compass Sensor adalah standard Mindstrom Sensor yang sesuai dengan element Mindstrom lain. Sebagai catatan NXT Compass Sensor hanya akan beroperasi dengan benar dalam posisi horizontal. Jadi ketika membangun sebuah robot dengan memiliki kemampuan membaca harus memperhatikan hal ini agar kompas diletakkan secara horizontal.
Gambar 4.1 Sensor Kompas 2
A.A. BAGUS PRAMANANUGRAHA - 5107100115
MAKALAH SEMINAR TUGAS AKHIR PERIODE MARET 2011
Gambar 6.1 ini menunjukkan bagaimana sistem ini bekerja. Ketika user memasukkan masukan pada Xbox Controller maka sistem akan melakukan pengendalian robot baik robot pada simulasi maupun robot pada dunia nyata. Sistem juga melakukan proses sinkronisasi dengan mengacu pada derajat sensor kompas yang terima oleh sistem. Proses sinkronisasi ini dimulai ketika sistem pertam a kali di jalankan.
Pada gambar 4.1 menunjukkan bentuk dari sensor kompas buatan Hitecnic yang merupakan perusahaan manufacture sensor pada robot Lego Mindstroms. Perusahaan ini telah disertifikasi oleh Lego Company yang menjamin standar kualitas yang tinggi dan aman untuk setiap sensor yang diproduksi oleh Hitechnic. 5.
Lego Mindstorm NXT Lego Mindstroms NXT adalah perangkat robot edukasional keluaran Lego. Seri NXT ini resmi dirilis pada tahun 2006, sebagai penerus dari seri sebelumnya yaitu RIS(Robotics Invention System) yang sudah sukses di pasaran. Dengan menggunakan Mindstroms membuat robot relatif lebih mudah di bandingkan dengan menyolder sendiri sirkuit dan merangkai Microcontroller sendiri ataupun memasang motor sendiri. Lego Mindstorms tersedia dalam 2 versi yaitu Retail dan Educational. Untuk membuat program di Lego Mindstorms sendiri memiliki banyak cara. Lego sendiri sudah menyediakan tool NXT-G. Microsoft menyediakan Microsoft Robotics Studio untuk melakukan programming melalui computer. Dan masih banyak lagie tool-tool dari pihak ketiga seperti NBC, NXC, BixCC, Lejos, PyNXT dan lain-lain. Adapun komponen-komponen yang terdapat pada Lego Mindstrom ini antara lain: Brick Touch Sensor Light Sensor Ultrasonik Sensor Sound Sensor
7.
Rancangan Sistem Tujuan dari pembuatan sistem pergerakan robot ini adalah untuk memberikan gambaran visual pergerakan robot sehingga user dapat melakukan pemantauan pergerakan robot melalui sebuah simulasi yang disediakan oleh sistem. Permasalahan-permasalahan yang didapatkan atas tujuan pembuatan tugas akhir ini dijabarkan pada point-point berikut: Bagaimanakah membuat simulasi yang mampu menggambarkan pergerakan sebuah robot? Bagaimanakah membangun sebuah robot dan menempatkan sensor kompas pada robot sehingga sistem dapat membaca derajat sensor kompas dengan baik? Bagaimanakah sistem mampu membaca derajat pada sensor kompas untuk mengetahui hadapan sebuah robot? Bagaimanakah melakukan sinkronisasi pergerakan dari hadapan sebuah robot pada simulasi dengan hadapan robot pada dunia nyata? Pembuatan sistem ini akan mengacu pada asumsi dan ruang lingkup permasalahan yang dijabarkan pada point-point di bawah ini: Robot yang digunakan di sini adalah robot NXT LEGO, yakni robot yang diproduksi oleh Amerika. Pada pembuatan sistem hanya melakukan pemantauan terhadap pergerakan hadapan sebuah robot. Proses sinkronisasi yang dilakukan pada sistem pergerakan robot ini hanya melakukan sinkronisasi hadapan pada sebuah robot saja. Sistem yang dibuat pada tugas akhir ini hanya dapat dijalankan pada lingkungan windows-based. Pembuatan sistem pergerakan robot ini menggunakan sebuah framework bernama microsoft robotics developer studio. Perancangan sistem pergerakan robot ini terdiri dari dua buah proses perancangan yaitu proses perancangan perangkat lunak dan proses perancangan perangkat keras. Pada perancangan perangkat lunak dapat dijelaskan bagaimana sistem nantinya bekerja untuk mencapai tujuannya. Gambar 7.1
6.
Arsitektur Sistem Pada sistem pergerakan robot ini, user dapat mengendalikan robot melalui sebuah Xbox Controller. Xbox Controller inilah yang nantinya akan mengendalikan robot baik pada simulasi maupun pada keadaan yang sebenarnya. Sistem akan melakukan proses sinkronisasi hadapan dimulai dari saat pertama kali sistem dijalankan. Arsitektur sistem pergerakan robot ini dapat dilihat pada Gambar 6.1. Xbox Controller
User mengontrol gerakan pada robot sekaligs pada simulasi
Sistem Simulasi
Robot NXT
User
Mengirimkan hadapan robot yang didapat melalui sensor kompas
Gambar 6.1 Arsitektur Sistem 3
A.A. BAGUS PRAMANANUGRAHA - 5107100115
MAKALAH SEMINAR TUGAS AKHIR PERIODE MARET 2011
menunjukkan bagaimana cara kerja dari sistem pergerakan robot pada tugas akhir ini. Pertama saat sistem pertama kali di jalankan, sistem akan menginisialisasi sistem dengan melakukan proses loading manifest, yang nantinya proses ini akan melakukan starting service untuk menjalankan setiap service yang dispesifikasikan pada sistem ini. Apabila proses inisialisasi service ini berhasil maka pada console dsshost akan muncul status manifest load complete dan tidak terdapat pesan error, maka barulah sistem akan melakukan tiga buah proses yaitu menampilkan simulasi, melakukan pembacaan data pada sensor kompas, dan terakhir menunggu masukan dari pengguna. Sistem akan memulai proses sinkronisasi setelah ketiga buah proses diatas dilakukan. Proses sinkronisasi baik pada simulasi maupun robot pada keadaan yang sebenarnya dilakukan berdasarkan hasil dari pembacaan data pada sensor kompas. Ketika user melakukan pengendalian robot melalui Xbox Controller maka sistem secara otomatis melakukan sinkronisasi terhadap robot pada simulasi sesuai dengan hasil pembacaan data pada sensor kompas. Hal ini dikarena proses sinkronisasi robot ini merupakan sebuah thread terpisah yang bertugas melakukan sinkronisasi hadapan robot pada simulasi sehingga hadapan robot pada simulasi mendekati hadapan robot pada keadaan yang sebenarnya.
8.1. Uji coba fungsionalitas Uji coba fungsionalitas dilakukan dengan beberapa tahap pengujian. Hasil pengujian fungsionalitas yang dilakukan dapat dilihat pada Tabel 8.1. Tabel 8.1 Hasil Uji Coba Fungsionalitas Uji Coba Menjalankan Sistem Pergerakan Robot
Sinkronisasi Robot in Simulation
Berhasil
Sinkronisasi - Robot pada simulasi Berhasil Pergerakan bergerak sesuai antara robot dengan pergerakan pada Simulasi robot pada keadaan dan robot pada yang sebenarnya keadaan yang sebenarnya - Hadapan robot pada simulasi tidak jauh berbeda dengan hadapan robot pada keadaan yang sebenarnya.
NO
Yes
Create Simulation
Berhasil
- Setiap service yang dispesifikasikan berhasil dijalankan semua
Penerimaan - Dsshost Derajat Sensor menampilkan Kompas derajat yang berhasil diterima oleh sistem .
Success
Reading Compass Sensor
Status
- Sistem berhasil menampilkan simulasi robot pada layar
START
Inisialisasi System
Indikator Keberhasilan - Proses loading manifest berhasil
Waiting Input From User
Driving Robot in Real World and Simulation
- Uji perbandingan antara sistem pergerakan robot dengan kompas dan tanpa kompas berhasil menunjukkan penggunaan sensor kompas diperlukan untuk mengetahui arah dari hadapan sebuah robot.
Finish
Gambar 7.1 Flowchart Sistem 8.
Uji Coba Uji coba yang dilakukan pada sistem pergerakan robot ini dibagi menjadi dua buah jenis uji coba yaitu uji coba fungsionalitas dan uji coba performa. Uji coba fungsionalitas dilakukan untuk melihat keberhasilan dari sistem yang dibangun, sedangkan uji coba performa dilakukan untuk melihat performa sistem.
Tabel 8.1 ini menunjukkan uji coba fungsionalitas yang diujikan pada sistem yang berisikan indikator sebagai penilaian terhadap status keberhasilan pada uji coba ini. Adapun 4
A.A. BAGUS PRAMANANUGRAHA - 5107100115
MAKALAH SEMINAR TUGAS AKHIR PERIODE MARET 2011
ujicoba yangdilakukan diantaranya : uji coba menjalankan sistem, uji coba penerimaan derjat sensor kompas dan uji coba sinkronisasi pergerakan robot. 8.2. Uji coba performa Pada uji coba performa ini dilakukan dengan melakukan pengujian terhadap jangkauan bluetooth dalam melakukan pengendalian pada Robot NXT. Uji coba jangkauan Bluetooth pada Robot NXT ini dilakukan untuk dapat mengetahui berapakah jarak yang masih dapat ditoleransi oleh sistem sehingga sistem dapat menerima update data dari sensor kompas dengan baik dan juga mengetahui seberapa jauh jarak robot yang masih dapat dikendalikan melalui sistem yang telah dibuat. Pengukuran jarak jangkauan ini dilakukan dengan menggunakan roll meter. Dari hasil uji coba yang dilakukan didapatkan jarak jangkauan Bluetooth pada robot NXT ke Bluetooth pada laptop yang mana baik sistem maupun robot masih dapat dikendalikan dengan baik adalah sejauh 12 meter. Pada jarak 19 meter robot masih dapat dikendalikan namun robot memiliki respon yang cukup lambat terhadap pengeksekusian perintah yang dilakukan pada sistem.
pada simulasi dan robot pada dunia nyata. Sinkronisasi ini telah melalui uji coba dengan menggunakan alas derajat baik pada robot dunia nyata maupun robot pada simulasi. 10. Saran Dalam pembuatan Tugas Akhir ini, terdapat beberapa kemungkinan pengembangan sistem dan hardware robot yang dilakukan, yaitu: Sistem ini dapat dikembangkan menjadi sebuah sistem yang mampu melakukan Simultaneous Localization and Mapping (SLAM) yaitu pemappingan sebuah lingkungan melalui sebuah simulasi 3D. Pada sistem dapat ditambahkan sinkronisasi jarak dengan menggunakan penskalaan sehingga dapat memberikan gambaran yang tepat jika dikembangkan menjadi sebuah sistem pemapingan. Membangun konstruksi robot yang lebih stabil sehingga mampu membawa sensor kompas secara horizontal dan jauh dari pengaruh medan magnet yang ditimbulkan oleh motor maupun brick. Menggunakan media komunikasi yang lain selain bluetooth seperti wifi untuk menambah jarak jangkauan pengendalian robot. 11. Daftar Pustaka
9.
Kesimpulan Dari hasil pengamatan selama perancangan, implementasi, dan proses uji coba perangkat lunak yang dilakukan, dapat diambil kesimpulan sebagai berikut : Sistem telah berhasil membuat simulasi yang mampu menggambarkan pergerakan sebuah robot. Pembangunan sistem ini dibuat dengan beberapa langkah mulai dari perancangan, implementasi hingga tahap uji coba. Robot berhasil dibangun sesuai dengan rancangan robot yang telah di spesifikasikan pada perancangan robot yaitu berbentuk tribot. Sensor Kompas harus ditempatkan setinggi 25 cm dari brick robot, hal ini dilakukan untuk menghilangkan pengaruh gelombang magnet yang dapat mempengaruhi pembacaan sensor kompas sehingga sistem mampu membaca derajat sensor kompas dengan baik. Sistem telah berhasil melakukan pembacaan terhadap sensor kompas dengan baik, hal ini terbukti dari uji coba penerimaan derajat sensor kompas yang ditampilkan oleh sistem pada dsshost console. Sistem terbukti mampu melakukan sinkronisasi pergerakan dan hadapan robot 5
1.
Sara Morgan, 2008, Programming Microsoft Robotics Studio, Microsoft Press A Division of Microsoft Corporation.
2.
Hitechnic Magnetic Compass Sensor. (Online), http://www.hitechnic.com/cgibin/commerce.cgi?preadd=action&key=NMC 1034 diakses pada tanggal 10 Januari 2011
3.
Dokumentasi Microsoft Robotics Developer Studio R3, 2008.
4.
W. Jatmiko1,A. A. Krisnadhi2, dan N. W. Pambudi3,2009, Pembagian Tugas Dalam Koloni Robot Otonom Bergerak Pada Studi Kasus Pembentukan Pola Formasi Secara Gradual, Jurnal Ilmu Komputer dan Informasi.
A.A. BAGUS PRAMANANUGRAHA - 5107100115