Dalam EKF-SLAM, mengapa kita bahkan perlu odometri ketika ada sensor yang lebih andal? Juga, apakah semua algoritma SLAM berbasis fitur?

8

Dalam buku SLAM untuk boneka, mengapa kita bahkan perlu odometry ketika robot akan menggunakan data yang diambil dari pemindai laser yang lebih akurat daripada odometry? Mengapa tidak hanya mengulangi pemindai laser dan menghapus odometry? Apakah ada kontribusi dari odometry yang tidak dimiliki oleh pemindai laser? Juga, apakah semua algoritma SLAM berbasis fitur?

Xegara
sumber
Tolong, satu pertanyaan sekaligus. Tetapi saya mencoba menjawab keduanya. Sekarang tolong jangan edit pertanyaan untuk bertanya lebih lanjut. Sebaliknya, ajukan pertanyaan terpisah. Terima kasih!
Josh Vander Hook

Jawaban:

10

Anda membacanya terlalu sempit.

  • Anda tidak "perlu" bau. SLAM hanyalah cara untuk memadukan setiap perkiraan sensor ke dalam perkiraan kondisi robot yang konsisten.

  • "Berbasis fitur" tidak berarti Anda harus memiliki fitur yang dapat diidentifikasi di mana pun di lingkungan.

  • Prinsip pertama fusi sensor: Dua perkiraan lebih baik dari satu!

Contoh

Saya belum membaca buku "for dummies" tetapi jika mereka tidak melakukan contoh angka berikut, saya akan membakar buku itu dan mendapatkan yang lebih baik. Dan jika mereka lakukan memiliki contoh ini, maka saya bertanya-tanya mengapa Anda tidak menyebutkan hal itu!

(Anda dapat mengikuti matematika di sini )

Robot berada pada posisi , dan bergerak ke kanan (meningkatkan ). Di dunia yang sempurna ini, dinamika dan mode sensor linear. (jika tidak gunakan EKF, PF, atau varian lain).x=0x

  • Ada dinding tepat tempat robot dapat mengukur jarak.x=10
  • Robot memiliki pemindai laser untuk mendapatkan jarak dengan varians sensorσl2=.1
  • Robot dapat mengukur jarak yang ditempuh dengan odometer menggunakan varians sensor . Jelas laser lebih akurat daripada odos.σo2=.5

Inilah cara robot menangani SLAM dalam lingkungan sederhana ini. (perhatikan ini sebenarnya pelokalan karena kami tidak memperbarui posisi dinding).

  • Robot mencoba untuk memindahkan satu unit ke kanan.
  • Ukuran Odometrix=.9
  • Pemindai laser mengatakan Anda unit dari dinding. (menyiratkan Anda berada di 1.2)8.8

Pertanyaan : Di mana Anda?

  • Apakah Anda memilih sensor terbaik? Dalam hal ini, laser adalah yang terbaik bukan? Jadi jelas saya di .x=1.2

  • Apakah Anda memilih yang "paling dekat" dengan yang Anda harapkan? Nah dalam hal ini saya pikir kita harus menggunakan odometri, karena lebih dekat dengan yang saya maksudkan, (memindahkan satu unit)..9

  • Mungkin Anda bisa rata-rata keduanya? Yah, itu lebih baik, tetapi rentan terhadap pencilan.

  • Prinsip-prinsip fusion sensor yang mengkilap memberi tahu Anda cara menjawab pertanyaan sebagai berikut:

Perkiraan minimum-kuadrat rata-rata dari posisi robot diberikan oleh:

xmmse=σl2σo2+σl2(.9)+σo2σo2+σl2(1.2)
xmmse=.1.6(.9)+.5.6(1.2)
xmmse=1.15

... kecuali saya mengacaukan aljabar di suatu tempat. Orang melokalkan pesawat menggunakan matematika tidak jauh lebih rumit dari itu.

Josh Vander Hook
sumber
6

Jika Anda membaca tentang prinsip fusi sensor, Anda akan selalu mendapatkan perkiraan yang lebih baik ketika Anda menggabungkan data dengan cara yang benar. Misalnya, jika Anda mengukur suhu di ruangan dengan 3 sensor suhu berbeda, tidak ideal untuk hanya menggunakan sensor terbaik. Kasing ideal adalah untuk membuat kombinasi tertimbang dari setiap sensor, di mana bobot sensor sebanding dengan satu di atas varians sensor itu. Belum lagi, data odometri SANGAT bagus. Ekstraksi landmark yang berisik dan kemungkinan besar akan memiliki varian yang lebih tinggi.

Jika Anda memikirkannya dari perspektif tingkat tinggi, Anda juga harus memiliki pembaruan gerakan berdasarkan odometri. Jika Anda hanya menggunakan landmark, maka Anda akan memiliki kasus ambigu. Ambil contoh, kasus di mana Anda hanya mengidentifikasi satu tengara. Anda akan memiliki jarak z dari robot Anda ke tengara, tetapi ini akan memetakan ke sejumlah titik dalam lingkaran di sekitar tengara. Jika Anda mengidentifikasi nol tengara, maka Anda tidak dapat melakukan apa pun! Dengan memasukkan odometri, kita tidak lagi memiliki ambiguitas. Dengan asumsi kami melokalisasi dalam bidang 2D (x, y), maka Anda harus menjamin bahwa Anda telah membaca setidaknya 3 tengara untuk melakukan pelacakan posisi Anda tanpa odometri, dan Anda tidak dapat membuat jaminan itu di lingkungan normal.

Akhirnya, seorang encoder dapat menjadi sampel pada urutan 50Hz, sedangkan LIDAR hanya dapat disampel di sekitar 6-7Hz (jangan mengutip saya pada frekuensi tersebut). Ini berarti bahwa Anda dapat memperbarui posisi Anda saat ini jauh lebih sering melalui odometri daripada yang Anda dapat dari pembacaan sensor. Ini bahkan tidak memperhitungkan berapa lama waktu yang Anda butuhkan untuk memproses pembacaan sensor Anda untuk mengidentifikasi landmark!

Andrew Capodieci
sumber
3

Hanya untuk menambahkan ini, menggunakan odometri untuk memperkirakan posisi robot jauh lebih cepat daripada menggunakan data dari pemindai laser. Dalam sebagian besar situasi, data dari pemindai jangkauan ditangani sebagai 2D PointCloud. Ini berarti bahwa untuk memperkirakan pose relatif antara posisi A, B Anda perlu menyelaraskan PointClouds yang sesuai dan menemukan pose yang paling mungkin dari operasi penyelarasan itu. Untuk melakukan itu Anda akan menggunakan ICP atau algoritma serupa, yang karena sifat iterasinya yang intensif secara komputasi.

Di sisi lain, dengan menggunakan informasi odometri (mis. Dari enkoder roda) Anda hanya perlu menambahkan hingga estimasi saat ini dari pose Anda yang hanya merupakan jumlah dari dua fungsi kepadatan probabilitas (estimasi saat ini + pembacaan odometri tambahan)

bergercookie
sumber
-1

Prinsip-prinsip EKF telah dijelaskan dengan baik dalam balasan lainnya.

Saya ingin menambahkan bahwa Anda dapat melakukan SLAM tanpa menggunakan Odometry, yaitu hanya menggunakan LIDAR misalnya.

"Juga, apakah semua algoritma SLAM berbasis fitur?"

Tidak tentu saja tidak semua

AL-ROBOT
sumber