Contents — find the section you need
Cara paling primitif bagi robot untuk mengetahui bahwa ia "bergerak 1 m ke kanan, 2 m ke depan" adalah dengan terus menjumlahkan perpindahannya sendiri. Robot tersebut mengintegrasikan jumlah putaran roda, kecepatan motor, dan laju sudut IMU dari waktu ke waktu untuk memperkirakan posisinya saat ini. Metode ini disebut penentuan posisi berdasarkan perkiraan (dead reckoning). Metode ini tetap berfungsi bahkan ketika GPS atau kamera sementara tidak tersedia, tetapi selip roda kecil atau bias sensor berubah menjadi kesalahan posisi yang bertambah seiring waktu.
Pengamatan GNSS absolut
Contoh IMU berbiaya rendahGambar: Surveyor Menggunakan Penerima GNSS dengan Solusi RTK (SweetCanadianMullet, CC BY 4.0) / GY-521 Modul MPU-6050 (Nevit Dilmen, CC BY-SA 3.0), Wikimedia Commons. Sensor representatif, bukan pasangan perangkat keras wajib.
Ringkasan 30 Detik
-
Perhitungan posisi berdasarkan perkiraan (dead reckoning) memprediksi keadaan saat ini dari "keadaan sebelumnya ditambah perpindahan yang terukur." Perhitungan ini dapat diperbarui dengan kecepatan tinggi bahkan tanpa pengamatan.
-
Pada robot penggerak diferensial, perbedaan antara perpindahan roda kiri dan kanan menentukan sudut belok, dan rata-ratanya menentukan jarak ke depan. Kesalahan pada radius roda dan lebar tapak muncul sebagai kurva sistematis.
-
Kesalahan odometri terakumulasi melalui integrasi. Mendapatkan posisi absolut memerlukan koreksi dari pengamatan seperti GNSS, LiDAR, kamera, atau penanda reflektif.
-
IMU kuat dalam perubahan sikap jangka pendek, tetapi posisi bergeser dengan cepat ketika percepatan diintegrasikan dua kali. Menggabungkan roda dan IMU melalui EKF atau grafik faktor adalah pendekatan umum.
-
Dalam implementasi, stempel waktu, kerangka koordinat, konvensi tanda kiri/kanan, jari-jari roda, deteksi selip, dan kovariansi semuanya harus didefinisikan dengan benar sejak awal — jika salah, bahkan sensor mahal pun tidak akan memperbaikinya.
1. Kinematika Penggerak Diferensial
Misalkan jari-jari roda kiri dan kanan adalah r , jarak antara roda (tapak) adalah b , dan kecepatan sudut kiri/kanan adalah \omega_L,\omega_R . Kecepatan linier roda adalah v_L=r\omega_L dan v_R=r\omega_R, sehingga kecepatan translasi pusat kendaraan v dan laju putaran \dot{\theta} adalah
Dengan membiarkan posisi pada waktu k menjadi (x_k,y_k,\theta_k) dan periode pengambilan sampel menjadi \Delta t, integrasi Euler sederhana memberikan
Saat mengemudi pada busur dengan kecepatan konstan, menggunakan integrasi eksak (peta eksponensial dalam koordinat badan) menjaga kesalahan tetap kecil bahkan pada kecepatan rendah dan laju putaran tinggi.
Gambar 1 — Pada penggerak diferensial, perbedaan antara kecepatan kiri dan kanan menciptakan laju yaw. Menghentikan satu roda memungkinkan robot berputar di sekitarnya.
2. Mengapa Odometri Mengalami Penyimpangan
Jika radius roda memiliki kesalahan 1% dan Anda menganggap kiri dan kanan sama saat mengemudi, Anda akan secara bertahap berbelok bahkan ketika Anda berpikir Anda berjalan lurus. Resolusi encoder kiri/kanan, celah roda gigi, ketidakrataan lantai, keausan ban, dan deformasi akibat beban semuanya menjadi kesalahan sistematis. Jika roda tergelincir di lantai basah atau kerikil, rotasi yang diukur dan perpindahan aktual tidak lagi cocok.
Kesalahan sikap \delta\theta menghasilkan kesalahan posisi lateral. Untuk jarak ke depan s, perkiraan jangka pendek memberikan
Berkendara sejauh 1 km dengan kesalahan sudut 0,5 derajat, dan offset lateral mencapai sekitar 8,7 m. Hanya menyatakan kesalahan posisi sebagai "sekian cm per detik" tidak dapat menangkap struktur kesalahan yang berbeda dari berkendara lurus, berbelok, dan tergelincir.
Kovarian odometri roda menyebarkan ketidakpastian perpindahan kiri/kanan ke dalam posisi dan memperbaruinya sesuai kebutuhan. Dalam implementasi, kovariansi ditingkatkan selama belokan atau ketika selip terdeteksi, sehingga fusi sensor hilir tidak terlalu mempercayai odometri.
3. Menambahkan IMU
Mengintegrasikan laju sudut \omega_z dari giroskop IMU menghasilkan
di mana b_g adalah bias giroskop dan n_g adalah noise. Bahkan pada saat roda tergelincir, perubahan jangka pendek pada laju sudut masih dapat diukur, memberikan estimasi sikap yang lebih halus daripada hanya roda saja. Saat mengintegrasikan percepatan dua kali untuk mendapatkan kecepatan dan posisi, kesalahan dari bias b_a meningkat seiring dengan
sehingga IMU saja tidak dapat berfungsi sebagai sensor posisi jangka panjang.
Menggabungkan roda dan IMU: roda menangani perpindahan frekuensi rendah, dan IMU menangani laju sudut dan percepatan frekuensi tinggi. Roll/pitch diinisialisasi dari arah gravitasi, dan ketika magnetometer atau GNSS tersedia, referensi yaw absolut juga ditambahkan.
4. Koreksi dengan EKF atau Grafik Faktor
Salah satu contoh vektor keadaan adalah
Pada langkah prediksi, model gerak nonlinier f dihitung dari roda dan IMU; ketika observasi tiba, residual digunakan untuk mengoreksinya.
Filter Kalman yang Diperluas (EKF) secara lokal melinierkan model nonlinier melalui Jacobian. Posisi GNSS, pencocokan pemindaian LiDAR, titik fitur kamera, dan pose penanda yang diketahui semuanya dapat dimasukkan sebagai observasi \mathbf{z}. Untuk perulangan besar atau kunjungan ulang, pose dan observasi sebelumnya disimpan dalam grafik faktor dan semuanya dioptimalkan kembali setelahnya.
Untuk ROS 2 (dengan asumsi definisi pesan standar Jazzy di sini), nav_msgs/msg/Odometry roda, sensor_msgs/msg/Imu IMU, dan transformasi TF odom → base_link harus menggunakan basis waktu yang sama. Tipe pesan ini sesuai dengan ejaan ROS 1 nav_msgs/Odometry dan sensor_msgs/Imu, tetapi detail implementasi ROS 2, QoS, dan pengaturan distribusi harus diperiksa secara terpisah. EKF robot_localization adalah titik awal yang wajar untuk implementasi, tetapi menolkan kovariansi atau memasukkan informasi yang sama dua kali membuat estimasi menjadi kaku secara tidak wajar.
5. Bagaimana Ini Digunakan pada Robot Saat Ini
Robot mobile otonom (AMR) dalam ruangan terus-menerus menggunakan encoder roda dan IMU, mengatur ulang drift melalui LiDAR atau pencocokan peta kamera. Dalam pengemudian otonom, kecepatan roda, sudut kemudi, IMU, GNSS, dan LiDAR digabungkan sehingga estimasi tetap akurat selama beberapa detik hingga puluhan detik bahkan ketika GNSS terputus di dalam terowongan atau di bawah struktur yang tinggi. Pada robot pertanian, lumpur, alur, dan lereng meningkatkan selip roda, sehingga RTK-GNSS, IMU, dan sensor gaya implement digabungkan.
Robot bawah air dan pesawat ruang angkasa dapat menempuh jarak yang jauh tanpa GNSS. Log kecepatan Doppler (DVL), pelacak bintang, atau pencocokan medan ditambahkan sebagai pengamatan absolut dengan laju rendah untuk menjaga kovariansi perhitungan posisi tetap terkendali. Yang penting adalah meneruskan estimasi ke perencanaan dan kontrol bersama dengan "seberapa yakin kita dengan ini."
6. Daftar Periksa Implementasi
-
Konversikan stempel waktu sensor ke jam umum dan ukur latensi.
-
Gambarkan kerangka koordinat
base_link,odom, danmapbeserta konvensi tanda tangan kanannya. -
Identifikasi radius roda, tapak ban, dan resolusi encoder melalui uji coba mengemudi nyata.
-
Evaluasi kesalahan secara terpisah untuk mengemudi lurus, belokan stabil, angka delapan, gundukan, dan permukaan dengan gesekan rendah.
-
Tingkatkan kovariansi ketika terjadi selip atau kehilangan data, dan koreksi ketika pengamatan absolut tiba.
-
Putar ulang log untuk memastikan input yang sama menghasilkan estimasi yang sama.
Dalam pengujian, catat tidak hanya kesalahan posisi titik akhir tetapi juga kesalahan sikap, kesalahan maksimum, persentil ke-95, dan laju pergeseran selama kehilangan data. Estimasi yang biasanya akurat tetapi kadang-kadang melenceng jauh tidak dapat digunakan untuk perencanaan jalur yang aman.
Ringkasan
Dead reckoning adalah teknik dasar untuk memperkirakan pergerakan robot dengan penundaan sesingkat mungkin. Teknik ini mengintegrasikan perpindahan roda dan laju sudut IMU, menekan drift dengan pengamatan absolut dari GNSS, LiDAR, atau kamera. Sebelum menambahkan lebih banyak sensor, mendapatkan model gerak, stempel waktu, kerangka koordinat, dan kovariansi yang tepat adalah hal yang menentukan akurasi dan pengulangan.
Apakah rotasi roda yang tepat menghilangkan kesalahan posisi?
Kesalahan selip dan geometri roda atau pemasangan tetap ada.
Presisi sensor dan validitas model gerak adalah masalah yang terpisah.Referensi
- ROS 2 — dokumentasi tf2
- ROS 2 — lokalisasi_robot
- lokalisasi_robot — node estimasi keadaan dan parameter sensor
- REP-105 — Kerangka Koordinat untuk Platform Seluler
- antarmuka_umum_ROS 2 Jazzy — paket pesan standar
- definisi sensor_msgs/Imu ROS 2 Jazzy
- definisi nav_msgs/Odometri ROS 2 Jazzy
- T. D. Barfoot, Estimasi Keadaan untuk Robotika
- IEEE Robotics and Automation Society
Komentar
Silakan masuk terlebih dahulu.
Belum ada data.