Bagaimana algoritma SLAM menangani lingkungan yang berubah?

13

Saya sedang melakukan beberapa pekerjaan dasar untuk sebuah proyek, dan saya punya pertanyaan tentang keadaan teknik SLAM saat ini.

Ketika perangkat yang dilengkapi SLAM mendeteksi suatu objek, posisi objek itu disimpan. Jika Anda melihat awan titik yang dihasilkan perangkat, Anda akan melihat titik untuk objek ini, dan model yang dihasilkan darinya akan menyertakan geometri di sini.

Jika suatu objek ditempatkan di ruang yang sebelumnya kosong, ia terdeteksi, dan poin ditambahkan. Model selanjutnya akan menampilkan geometri yang menggambarkan objek baru ini.

Bagaimana reaksi perangkat jika benda itu dihapus? Sejauh yang saya lihat, sistem SLAM akan cenderung meninggalkan titik di tempat, menghasilkan geometri "hantu". Ada algoritme yang akan mengabaikan titik tunggal yang disebabkan oleh kontak sementara, tetapi objek yang tetap cukup lama untuk membangun model yang solid akan tetap berada dalam memori perangkat. Apakah ada sistem yang mampu mendeteksi bahwa ruang yang sebelumnya ditempati sekarang kosong?

anaximander
sumber
Pertanyaan ini tidak ada hubungannya dengan pembelajaran mesin.
Josh Vander Hook
Mungkin tidak; Saya tidak 100% yakin tag mana yang cocok. Aplikasi yang ada dalam pikiran saya sepertinya cocok, tetapi mungkin tanpa konteks itu kurang berlaku ...
anaximander

Jawaban:

5

Itu sangat tergantung. Karena SLAM adalah masalah (atau setidaknya teknik), bukan solusi, tidak ada algoritma SLAM yang pasti. Secara semantik, Anda harus memutuskan apa yang terjadi pada "peta" lingkungan, dan itu menentukan bagaimana algoritma Anda harus menangani sinyal sementara (alias bergerak). Tapi itu penyimpangan.

Peta permanen:

Peta permanen harus berisi informasi yang cukup untuk melokalkan diri Anda sehubungan dengan geometri yang diketahui. Biasanya digunakan pada bangunan. Biasanya bisa dibaca manusia. Lihat karya Willow-Garage. atau apa pun oleh Thrun dalam buku pelajarannya yang cukup terkenal. Jika Anda kehilangan peta ini, Anda harus membangunnya kembali dari waktu ke waktu.

  1. Menghapus benda. Ya, objek akan muncul di peta statis untuk sementara waktu. Jika tidak ada tindakan yang diambil untuk menghapus objek yang terdeteksi sebelumnya, maka itu akan bertahan. Representasi berbasis grid 2D khas akan menggunakan setiap sel grid untuk mewakili probabilitas suatu objek, jadi setelah beberapa saat objek akan "memudar".

  2. Menambahkan objek. Sama seperti di atas.

Peta lokal:

Pada kenyataannya, SLAM biasanya digunakan untuk melokalisasi robot saat bergerak, dan peta tidak disimpan secara permanen (atau, disimpan secara permanen, tetapi hanya fitur Y terdekat yang digunakan). Peta lokal adalah apa pun yang perlu diketahui robot untuk menentukan bagaimana ia bergerak dalam menit X terakhir, di mana X tergantung pada aplikasi. Jika kehilangan peta, Anda masih bisa terbang dengan baik menggunakan fitur apa pun yang terlihat saat ini.

  1. Metode batch seperti Bundle Adjustment menggunakan fitur visual adalah teknik yang sangat umum dalam arah ini. Fitur dapat disimpan seiring waktu, dan bahkan ditinjau kembali, tetapi fitur bergerak hanyalah fitur yang tidak dapat diandalkan, dan itu akan diabaikan ketika mencoba mencari tahu di mana robot berada.

  2. Visual SLAM persis seperti ini. Ini adalah estimator delta-P (perubahan pose), bukan algoritma lokalisasi berbasis peta.

  3. Singkatnya, selama sebagian besar hal saat ini tidak bergerak, tidak masalah jika Anda menghapus objek ketika robot tidak "melihatnya".

Contoh

Jadi lakukan ini. Saat Anda membaca makalah SLAM, putuskan yang berikut:

  1. Apakah mereka benar-benar membangun peta?

  2. Apakah mereka hanya menyimpan daftar fitur dan lokasi?

  3. Jika ya, "fitur" apa yang ada di peta? Garis, titik, fitur visual?

  4. Apakah fitur ini cenderung bergerak?

  5. Jika demikian, bagaimana mereka bisa mengatasinya?

  6. Akhirnya, noise sensor sering "terlihat" seperti fitur bergerak. Bagaimana mereka menangani kebisingan sensor? Karena ini akan sering menentukan apa yang terjadi pada fitur bergerak.

Anda akan mendapatkan jawaban berbeda untuk setiap makalah / penulis / buku / aplikasi. Singkatnya, mereka biasanya dihilangkan karena mereka tidak banyak membantu pelokalan robot, dan dapat dihindari dengan hanya memiliki beberapa perencana jalur tingkat rendah yang hanya menggunakan informasi lokal.

Semoga beruntung, slam adalah topik besar.

Josh Vander Hook
sumber
Terima kasih! Apakah Anda tahu ada teknik yang melacak di mana objek "diperoleh" dan "hilang"? Saya melihat aplikasi subset dari algoritma tipe-SLAM dan satu bidang yang menarik adalah identifikasi area "transisi" seperti pintu dan sudut tersumbat tempat objek mungkin muncul. Aplikasi ini mengubah metrik probabilitas memudar seperti biasa di kepalanya - alih-alih memiliki objek "pudar" ketika tidak terlihat, area yang tidak teramati perlahan meningkatkan nilainya untuk menunjukkan bahwa kita tidak tahu apa yang ada di sini karena kita belum melihat apa-apa di sini karena kita belum melihat baru-baru ini, jadi kami harus berhati-hati saat pindah ke ruang ini.
anaximander
Jauh lebih sulit. Satu-satunya cara untuk melakukan ini dengan benar adalah dengan mengidentifikasi objek secara unik. Seperti, letakkan barcode pada mereka. Kalau tidak, objek A mungkin telah pindah ke lokasi B, atau mungkin A dan B bertukar, dll. Baca di pemetaan semantik. Anda memerlukan algoritme yang dapat "mengenali" bahwa benda yang bergerak sebenarnya adalah "pintu" yang harus dilampirkan ke "dinding" tetapi hanya ketika saya "di dalam" tetapi apa artinya "dalam" bagi robot? Saya pikir Anda harus membaca lebih lanjut dan melaporkan kembali.
Josh Vander Hook
Ya, idenya di sini adalah untuk menghindari masalah semantik dengan hanya menyoroti "ini adalah area di mana saya terus melihat hal-hal yang tidak ada di sana sebelumnya, atau berhenti melihat hal-hal yang ada di sana". Kemungkinannya, area ini adalah semacam transisi - pintu, kotak, jendela, sudut tersumbat. Yang mana dari kita yang berurusan dengan kurang penting; ini murni untuk menghindari tabrakan, jadi kami ingin menghindari semua area ini. Demikian juga, kita tidak perlu secara khusus mengetahui objek mana yang mana; hanya saja ada perubahan signifikan dalam jumlah keseluruhan ruang yang ditempati Stuff.
anaximander
Ulasan. Literatur. Masalah seperti itu muncul dari A) Barang bergerak. B) robot bergerak. C) Robot tersesat. D) peta yang salah. Masing-masing dari 4 hal tersebut memiliki 4 solusi benar berbeda. Jika Anda tidak menangani semua 4, Anda akan membuat peta yang sepenuhnya salah. Inilah sebabnya mengapa SLAM tidak diselesaikan, dan masih sulit. Baca dan kembali dengan pertanyaan spesifik terkait dengan apa yang telah Anda pelajari.
Josh Vander Hook
1
Itu yang saya lakukan; semakin banyak saya membaca, semakin lama daftar hal yang saya baca bertambah! Ini adalah pertanyaan pertama dari banyak bacaan yang saya ajukan. Permintaan maaf untuk memperluas pertanyaan agak di komentar; Saya belum mendapatkan banyak tanggapan, dan SLAM adalah topik yang sangat besar ... Anda sepertinya tahu apa yang Anda bicarakan sehingga saya berharap saya bisa mendapatkan beberapa petunjuk. Saya memiliki makalah pemetaan semantik dalam daftar saya, tetapi ada beberapa yang lain yang perlu saya baca sebagai dasar untuk itu ... Bagaimanapun, saya kira itu kembali ke bacaan untuk saat ini.
anaximander