Saya sedang melakukan SLAM dengan robot penggerak diferensial roda empat (penggerak 2 roda) yang mengendarai melalui beberapa ruang aula. Lorong tidak rata di mana-mana. Dan robot berputar dengan berputar di tempat, lalu bergerak ke arah yang dihasilkan. Algoritma SLAM tidak perlu dijalankan secara online.
Robot mengambil pengukuran dari IMU / gyro strap down (ax,ay,az,wx,wy,wz)
, di mana ax
mengacu pada percepatan arah x dan wx
mengukur percepatan sudut tentang sumbu-x. LIDAR memindai lorong dengan busur 270 derajat dan mengukur jarak dan sudut. Namun, sejauh yang saya tahu jalan hall tidak memiliki fitur yang terlihat kecuali ketika sudutnya
Saya perlu menemukan cara terbaik untuk menggabungkan tindakan yang diusulkan diukur oleh encoder dengan data IMU dan LIDAR. Masuk akal bagi saya bahwa saya bisa menggabungkan yaw dari IMU dengan data enkoder untuk mendapatkan kepekaan yang lebih baik tentang judul, tetapi bagaimana saya harus memasukkan data LIDAR?
Intinya, apa model pengukuran yang tepat dan bagaimana saya harus memasukkan noise ke dalam model gerak ? Selain hanya menambahkan beberapa noise gaussian di beberapa (0,σ)
?
Tambahan
Ini agak ortogonal untuk pertanyaan tetapi sama membingungkannya bagi saya. Saat ini saya menggunakan filter partikel untuk melakukan SLAM, dan saya sedikit bingung tentang apakah akan mewakili ketidakpastian dalam percepatan sudut dalam partikel itu sendiri. Saya melihat dua opsi:
Filter navigasi terpisah menggunakan EKF (atau apa pun sebenarnya) untuk menemukan vektor matriks akselerasi sudut "perkiraan terbaik" terlebih dahulu, kemudian gunakan matriks ini sebagai kebenaran absolut untuk filter partikel. Sehingga setiap penyimpangan dalam partikel tidak dari ketidakpastian dalam percepatan sudut.
Masukkan ketidakpastian ke dalam partikel yang melayang sendiri. Opsi ini tampak lebih masuk akal tetapi saya tidak yakin apa cara berprinsip untuk melakukan ini.
sumber
Jawaban:
Karena Anda memiliki sensor 2D yang tidak dapat Anda putar dengan cara yang terkontrol, Anda hanya dapat berharap untuk melakukan SLAM dalam bidang 2D.
Taruhan terbaik Anda adalah menggunakan IMU untuk estimasi sikap (hanya roll and pitch, karena Anda tidak memiliki kompas) dan perbaiki masing-masing pemindaian laser 2D yang sedikit diputar. Jika IMU Anda tidak memberi Anda perkiraan sikap, saya akan menghitung perkiraan sikap menggunakan filter komplementer nonlinier karena mereka hanya perlu menyetel satu konstanta tunggal.
Meskipun secara teori dimungkinkan untuk menggunakan Filter Partikel untuk SLAM dengan pemindaian laser (lihat penggambaran), keadaan saat ini adalah SLAM berbasis grafik, yaitu optimalisasi kuadrat terkecil dari grafik SLAM, atau dalam kasus Anda mengajukan optimasi grafik. Lihatlah karto di ROS sebagai implementasi open source yang patut dicontoh.
sumber