Melokalisir segerombolan robot

9

Saya memiliki ruang 300cm x 300cm dengan langit-langit setinggi 25cm (ya dua puluh lima sentimeter). Ini berisi 50 robot roda kecil (sekitar 20cm x 20cm). Komputer pusat akan mengatur pergerakan robot, menggunakan jaringan nirkabel untuk mengirim perintah posisi kepada mereka. Robot akan melakukan kontrol posisi loop tertutup mereka sendiri untuk menghemat bandwidth nirkabel. Robot memiliki mikrokontroler ARM 32-bit. Mereka memiliki sensor posisi roda, dan kemampuan untuk melakukan kontrol roda yang akurat.

Masalah: Robot sebenarnya belum bisa melakukan ini karena mereka tidak memiliki cara untuk mengukur posisi mereka di dalam ruangan.

Pertanyaan: Bagaimana robot diberi kemampuan mengukur posisi dan orientasinya hingga akurasi lebih dari ± 5mm? Saya mencari solusi yang akurat dan kuat, yang tidak terpengaruh oleh oklusi, dan tidak memerlukan PC berdaya tinggi pada setiap robot. Sensor apa pun yang diperlukan untuk pelokalan dapat dengan mudah ditambahkan ke robot. Mikrokontroler dapat dengan mudah diubah untuk yang lebih kuat jika solusi lokalisasi menuntutnya.

Roket
sumber
Sensor apa yang dimiliki robot dan kekuatan komputasi seperti apa?
DaemonMaker
1
@AlemonMaker - Menambahkan informasi itu, dan mencoba mengklarifikasi pertanyaan.
Rocketmagnet
1
Itu pembaruan yang bagus @Rocketmagnet tetapi pertanyaannya masih agak terbuka. Ada banyak trik dalam literatur pelokalan yang mungkin tersedia untuk Anda tergantung pada apa yang robot Anda dapat amati tentang diri mereka sendiri, lingkungan mereka, dan satu sama lain. Misalnya ada banyak pekerjaan yang terkait dengan menggabungkan keyakinan beberapa robot untuk meningkatkan akurasi keyakinan robot mana pun. Ini dapat dicapai dengan menambahkan kamera kecil dan spidol fidusia untuk setiap robot dan tidak akan banyak meningkatkan pemrosesan.
DaemonMaker
Apakah oklusi menghalangi garis pandang, atau z juga? Misalnya, jika Anda memiliki garis, laser, atau cermin di langit-langit, apakah robot biasanya dapat melihatnya?
James Waldby - jwpat7
@ jwpat7 - Karena langit-langit sangat rendah dan robot praktis menyentuhnya, pada dasarnya tidak pernah ada garis pandang di arah Z.
Rocketmagnet

Jawaban:

4

Beberapa ide dari atas kepala saya ... Secara umum Anda dapat memiliki masing-masing robot merasakan posisi itu sendiri atau memiliki semacam sistem menemukan robot dan mengirim mereka informasi tentang posisi mereka (atau kombinasi). Mungkin menggunakan posisi robot lain untuk menemukan diri Anda adalah pilihan lain jika mereka dapat berkomunikasi. Anda juga dapat menggabungkan informasi sensor dari robot dan sumber lainnya.

Optik

Anda dapat menyandikan posisi absolut atau posisi relatif di lantai atau langit-langit. Sensor pada robot dapat melihatnya. Sebuah sensor seperti yang ada pada mouse optik Anda dapat membuat gerakan relatif dari sebagian besar permukaan bahkan tanpa pola apa pun. Ada tikus gaya lama yang menggunakan kotak berpola.

Anda dapat memiliki dua (atau lebih) kamera pada setiap robot yang melihat arah yang berbeda, jika dinding ruangan memiliki pola yang tepat Anda dapat menentukan lokasi Anda berdasarkan gambar. Kamera yang berputar adalah pilihan lain. Obstruksi kamera oleh robot lain mungkin menjadi perhatian.

Array sensor atau kamera di lantai atau langit-langit dapat menemukan robot dan kemudian Anda dapat mengirim robot lokasi mereka.

Semacam sensor optik berputar yang dapat menemukan arah suar optik (misalnya LED).

Suara

Anda dapat memiliki beberapa suar di sekitar memancarkan ultrasound chirps. Jika mereka semua disinkronkan (misalnya penundaan tetap di antara mereka) maka diberikan lokasi Anda, Anda dapat menggunakan waktu perhitungan penerbangan untuk menentukan posisi robot. Bertahun-tahun yang lalu saya telah bekerja dengan digitizer ultrasound yang akurat hingga sekitar satu mm lebih dari jarak sekitar satu meter sehingga tampaknya di stadion baseball itu. Tergantung pada bentuk robot Anda dan konfigurasi dari kawanan refleksi dan penghalang mungkin atau mungkin tidak menjadi masalah. Anda perlu bereksperimen tetapi firasat saya adalah bahwa dengan suar yang cukup Anda dapat melakukan yang baik.

Pencari kisaran USG pada setiap robot. (berputar?) Bisakah memetakan jarak ke robot lain atau dinding.

Jika salah satu dari ini terdengar menarik, saya dapat mencoba mengembangkan ide-ide itu sedikit lebih jauh.

Guy Sirton
sumber
Saya suka metode ultrasound. Saya bertanya-tanya apakah saya bisa mengirimkannya melalui lantai sehingga bisa bepergian tanpa terganggu atau dipantulkan oleh kawanan.
Rocketmagnet
@ Rocketagnet: Anda bisa mengirimnya melalui lantai. Masalahnya adalah dengan benar menggandeng transduser yang biasanya dilakukan dengan gel. Mungkin akan agak berantakan untuk aplikasi Anda. Tanpa sambungan yang tepat, ultrasound hanya akan terpental dari permukaan. Mungkin roda robot Anda bisa melakukan trik.
Guy Sirton
@GuySirton Saya ingin menerapkan deteksi celetuk ultrasound dari perangkat yang dipancarkan dari perangkat lain. Saya berjuang untuk melakukan ini karena semua komponen yang saya lihat tersedia adalah range-finder yang memancarkan dan mendeteksi gema. Mereka menampilkan jangkauan dan sulit untuk memisahkannya menjadi memancarkan dan menerima bagian. Saya perlu mengirim sinyal melalui udara. Adakah petunjuk atau saran? Terima kasih!
ahli nujum
@necromancer Anda harus dapat membeli pemancar / penerima mis. lihat digikey.ca/product-detail/en/MA40S4R/490-7706-ND/4358146 ini dan lebih banyak lagi dalam kategori yang sama ...
Guy Sirton
@GuySirton terima kasih banyak. bantuan besar!
ahli nujum
4

Jika langit-langit adalah permukaan datar yang terlihat dari puncak robot, Anda dapat menempatkan garis penanda (atau pola fidusia lainnya yang dikenal) di langit-langit secara berkala. Garis-garis mungkin garis putih atau hitam atau pita reflektif sempit, terdeteksi menggunakan fotosensor di atas robot.

Jika sensor posisi roda dan kontrol roda yang akurat cukup baik untuk mempertahankan akurasi data lokasi yang diinginkan ketika robot tidak bergerak lebih jauh dari jarak d dari posisi yang diketahui secara akurat, garis-garis tersebut (yang mungkin berupa garis putih, garis hitam, atau pita reflektif sempit) mungkin perlu ditempatkan tidak lebih dari sekitar d / apart2 terpisah.

Perangkat lunak perencanaan gerak mungkin perlu beradaptasi. Jika posisi robot secara konsisten salah ketika melintasi garis, sesuaikan rasio jumlah enkoder roda terhadap jarak yang ditempuh; atau jika garis akan terlihat jika kaki perjalanan hanya sedikit lebih panjang, rentangkan kaki untuk melewati garis tersebut; atau pindah untuk mengkalibrasi beberapa garis sebelum operasi yang sensitif terhadap posisi; atau melakukan operasi yang peka terhadap posisi pada titik persimpangan.

Ada cukup beragam pola fidusia. Garis-garis ortogonal yang diletakkan sejajar dengan sumbu x dan y mungkin paling sederhana untuk dibuat dan digunakan. Tapi mata lembu jantan, janggut, irisan, kode batang, dan pola lainnya juga patut dipertimbangkan.

James Waldby - jwpat7
sumber
+1 Meskipun saya membaca jawaban Anda sebelum mengeposkan milik saya, saya masih memposting jawaban yang hampir sama tentang fidusia ... Saya menyalahkan kurang tidur.
ThomasH
@ Thomas, terima kasih! Saya terkejut OP belum sebagai sampai salah satu jawaban, yang semuanya memberikan beberapa info berguna.
James Waldby - jwpat7
4

Jarak rendah antara bagian atas robot dan langit-langit benar-benar membatasi pilihan Anda. Tampaknya tidak mungkin untuk mendapatkan gambaran terpusat dari seluruh ruangan dan bekerja dari sana.

Saya tidak yakin 'ruang' seperti apa yang Anda bicarakan dan seberapa banyak Anda bisa memasukkannya, tapi itu mungkin menjadi pilihan untuk menempatkan spidol di langit-langit daripada robot. Mengingat jarak yang pendek, Anda harus mengisi langit-langit dengan spidol kecil yang dapat sepenuhnya diamati dengan kamera mengarah ke atas pada setiap robot, meskipun Anda mungkin dapat menempatkan kamera ini lebih rendah pada robot, katakanlah antara roda depan dan belakang di kedua sisi, untuk memberi Anda sudut pandang yang lebih luas. Tetapi tantangan terbesar adalah mencetak spidol yang cukup berbeda untuk instrumen seluruh langit-langit.

Atau, mungkin saja untuk menginstruksikan lantai dengan banyak tag RFID, asalkan Anda dapat menemukan pembaca yang memiliki rentang yang cukup kecil (AFAIK, pembaca RFID hanya akan memberi tahu Anda bahwa tag tertentu berada dalam jangkauan, bukan di mana letaknya). The Phidgets RFID reader sudah memiliki jangkauan sekitar. 3 inci, jadi kecuali Anda melokalisasi dengan melihat grup tag mana yang dapat Anda amati (jika memungkinkan untuk mengamati beberapa tag sekaligus - dapatkah Anda memberi tahu bahwa saya tidak memiliki pengalaman kerja sebenarnya dengan RFID?), Anda harus bereksperimen dengan mendapatkan tag yang lebih kecil dan 'melindungi' mereka ke tingkat tertentu dari pembaca, sehingga tidak dapat dibaca selain dari jarak sangat dekat.

Semua dalam semua itu tampaknya merupakan tantangan yang sulit tetapi sangat menarik. Jika ini untuk pekerjaan, saya berasumsi Anda tidak dapat memberi tahu kami tujuan dari proyek ini, tapi itu kedengarannya menarik :)

ThomasH
sumber
Terima kasih atas jawabannya. Dengan frustrasi, sangat sedikit yang bisa saya ungkapkan tentang proyek itu sehingga sangat sulit untuk mengajukan pertanyaan.
Rocketmagnet
Saya memikirkan hal yang sama. Kolam renang memiliki bendera berwarna di atas dan garis di bawah untuk menunjukkan kepada perenang lokasinya di dalam jalurnya di kolam renang. Konsep yang sama tetapi 2 sumbu bukan satu.
zkent
3

Jika sistem vicon keluar dari pertanyaan, maka Anda dapat menggunakan sistem kamera yang dikalibrasi untuk membaca penanda yang ditempatkan di atas robot.

  1. Tempatkan kamera terbaik yang bisa Anda dapatkan di sekitar lingkungan. Saya menggunakan web cams $ 20 dari amazon.com
  2. Gunakan alat kalibrasi OpenCV untuk mengkalibrasi kamera.
  3. Tempatkan spidol di atas robot
  4. Kamera mengetahui posisi relatif mereka di lingkungan, jadi dengan melakukan triangulasi posisi marker, mereka dapat secara akurat menampilkan posisi dan orientasi marker.

Seperti apa yang dilakukan para peneliti ini dalam makalah ini (lihat halaman 16)

Namun, seperti yang telah dicatat orang lain, jika langit-langitnya sangat rendah, Anda tidak akan memiliki garis pandang yang baik ke bagian atas robot, dan Anda akan mengalami kesulitan menggunakan metode ini.

Josh Vander Hook
sumber
Terima kasih atas jawabannya. Masalah dengan sesuatu seperti Vicon adalah banyaknya oklusi yang terjadi ketika Anda memiliki 50 robot berkerumun di ruangan dengan langit-langit rendah. Saya pikir itu membuat solusi semacam ini tidak mungkin.
Rocketmagnet