Bagaimana Sutau Robot Dapat Mengetahui Posisinya Sendiri?

Lintang Erlangga - March 12th, 2021

Sistem penentu posisi robot
Bagaimana robot dapat mengetahui posisinya?

Mungkin di antara kalian ada yang menjawab bahwa GPS atau Global Positioning System merupakan solusi dari permasalahan dalam menentukan posisi suatu objek. Memang benar, namun dalam beberapa kondisi, sistem GPS tidak selalu dapat diandalkan. Kondisi tersebut biasanya terjadi ketika objek berada di dalam suatu ruangan, keakuratan dari GPS akan jauh dari kata layak pada kondisi itu umumnya. Maksudnya bukan berarti GPS tidak berfungsi, namun tingkat presisi tinggi yang diperlukan untuk keperluan robot membuatnya kurang cocok untuk digunakan.

Pada kasus outdoor mungkin tingkat keakuratannya bisa dibantu dengan alat yang disebut sebagai RTK atau real-time kinematics. Mungkin disini kita gak bakal bahas lebih dalem tentang RTK ini, namun yang jelas prinsip utamanya adalah menggunakan konsep triangulasi terhadap posisi objek yang bergerak (sebut saja robot) dengan posisi base station yang tidak berpindah-pindah. Sehingga mengurangi mobilitas robot itu sendiri.

Daftar Isi

Hubungannya dengan bagaimana manusia memposisikan diri

Oke, mari kita balik lagi ke objektif utama, bagaimana robot dapat mengetahuinya posisinya? Di sini saya akan jawab selain dengan GPS ya, sekarang kita mulai dari ide yang paling sederhana dulu, posisi itu mendeskripsikan apa sih sebenarnya?

Baik, kita semua pasti udah sepakat bahwa posisi itu menentukan letak suatu objek, yang mana mirip artiannya dengan jarak suatu objek terhadap suatu titik acuan. Nah kita berangkat dari ide sederhana tersebut, maka saya gak perlu ngejelasin repot-repot bahwa robot perlu menentukan jarak dia terhadap suatu titik acuan untuk mendapatkan posisinya.

Memanfaatkan informasi input atau perintah

Ada beberapa macam cara untuk mengetahui jarak yang dimaksud, yang paling sederhana banget, namun tingkat keakuratannya sangat rendah yaitu dengan mengetahui berapa lama suatu robot itu bergerak. Karena input atau perintah yang diberikan kepada robot dapat diketahui, sebagai contoh kecepatannya, maka kita bisa manfaatkan informasi tersebut untuk mengetahui seberapa jauh robot berpindah dari titik asalnya (sebagai titik acuan).

Mungkin diantara kalian ada yang bertanya mengapa akurasinya rendah? Jadi hal ini berkaitan dengan ketidakidealan dunia ini, artian sederhananya yaitu, ketika kita kasih perintah misal robot harus melaju dengan kelajuan 1m/s, nah robot ini belum tentu akan mempunyai kelajuan tersebut, bisa saja aslinya cuman 0.9m/s atau mungkin lebih 1.5m/s.

Karena dalam pemodelan tersebut, umumnya kita mengabaikan beberapa faktor seperti slip pada roda terhadap lantai, terus juga kita gak mempertimbangkan gimana kalau robotnya nyangkut. Terus, soal kecepatannya yang mungkin bisa beda, hal itu dikarenakan adanya fluktuasi pada input, yang umumnya adalah tegangan menuju penggerak. Atau memang bisa karena penggeraknya itu sendiri.

Odometri

Cara lainnya adalah menggunakan konsep odometri, intinya odometri ini teknik untuk mengetahui jarak yang ditempuh suatu benda.

Enkoder

Pada robot yang bergeraknya menggunakan roda, jarak tersebut bisa diukur dengan menggunakan enkoder. Dengan menggunakan enkoder kita bisa dapatkan data berupa seberapa banyak perputaran aktuator (penggerak) yang telah dilakukan.

Dengan memanfaatkan informasi ini, kita bisa tahu seberapa jauh perputarannya kemudian, dengan syarat diketahuinya panjang jari-jari roda. Oleh karena itu dapat ditentukan juga jarak yang telah dilampauinya.

Sederhananya, jika jari-jari roda adalah r, maka dalam satu revolusi roda tersebut akan menempuh \pi r\,\text{SP}, di mana \text{SP} adalah satuan panjang. Digabungkan dengan banyak rotasi dalam interval waktu tertentu, bisa didapat kasaran mengenai jaraknya. Tapi ini bener-bener kondisi ideal banget.

Menggunakan Kamera

Mungkin muncul dibenak kalian, bagaimana nasibnya untuk robot terbang? Sekarang coba kita kaji kembali bagaimana kita dapat menaksir jarak objek di sekitar kita? Kita memanfaatkan informasi visual dari mata kita, nah pada robot terbang juga demikian.

Dengan adanya teknologi kamera juga dapat digunakan sebagai odometer (alat pengukur jarak). Konsepnya tentu akan berbeda, kalau pada enkoder kita mengukur banyak putaran, pada kamera kita langsung berupaya untuk mencari jaraknya.

Teknologi-teknologi saat memungkinkan kita untuk mengetahui jarak bagian dari suatu benda terhadap kamera, seperti kamera RGB-D dan kamera stereo. Apakah dengan satu kamera saja dapat kita terapkan konsep odometri? Jawabannya bisa, dan prinsip dasarnya yaitu menggunakan triangulasi antara dua keadaan kamera pada interval waktu tertentu.

Kalian tertarik untuk baca-baca lebih lanjut? Silahkan untuk baca artikel tentang visual odometry.

Peta acuan

Setelah kita tahu ide awalnya, tentu suatu posisi itu ditentukan berdasarkan suatu acuan, dan acuannya tidak selalu posisi awal robot, bisa saja merupakan suatu ruangan, lantai gedung, atau bisa juga lapangan sepak bola.

Kita perlu suatu peta atau map sekarang, nah si map ini ada yang ditentukan di awal dan ada juga ada yang ditentukan ketika robotnya sambil ngeeksplor medan yang sedang dia tempuh, untuk yang kedua ini metodenya disebut sebagai SLAM atau Simultaneous Localization and Mapping, kurang lebih maksudnya memposisikan serta melakukan pemetaan secara bersamaan.

Buat kalian yang penasaran bagaimana implementasi nyatanya, kalian bisa lihat video berikut.

Jadi itu merupakan proyek saya dulu pas kuliah semester 3, itu proyek sempat berhenti hampir setahun pas lagi ribet-ribetnya kuliah di semester 4 dan 5, dan diselesain di semester 6. Saya menggunakan robot humanoid yang mana tidak menggunakan roda juga tidak terbang, alias bergerak seperti halnya manusia, yakni menggunakan kaki. Selain itu sebagai info aja, jadi metode yang saya gunakan disitu adalah AMCL atau Augmented Monte Carlo Localization, yang jantung dari algoritmanya merupakan konsep probabilitas.

Label
Lintang Erlangga
Lintang Erlangga

Lintang Erlangga merupakan alumni Teknik Elektro UGM 2016, dan juga mantan anggota Gadjah Mada Robotics Team sebagai perwakilan kampus pada kompetisi robot tingkat regional hingga nasional.

Komentar