Laporan Pertemuan ROS kedua tentang navigasi robot


Pada 30 November 2019, ROS Russian MeetUp ke-2 diadakan, yang diselenggarakan oleh Sberbank Robotics Laboratory, yang mengumpulkan lebih dari 200 pengembang ROS. Pada artikel ini, kami telah membuat pilihan presentasi paling menarik dari MeetUp ini pada navigasi robot.

Segera, pada tanggal 18 April, Rapat ROS berikutnya akan berlangsung, bahkan lebih ambisius dan menarik! Coronavirus tidak memungkinkan kita untuk bertemu langsung, tetapi tidak ada yang menghalangi kita untuk berkumpul untuk konferensi online! Kami mengundang semua kolega untuk hadir secara online sebagai pendengar dan pembicara. Rincian siaran akan dikirim ke peserta terdaftar, pendaftaran terbuka, tautan di sini , partisipasi gratis. Dan kami mengingatkan Anda bahwa Anda dapat menemukan pengembang ROS yang berpikiran sama di Rusia, cari tahu berita ROS terbaru di saluran telegram kami komunitas ROS Russia . Kami telah menerbitkan pengumuman lengkap program dan bagian dari laporan MeetUp yang lalu , dan hari ini kami akan membagikan tiga laporan menarik lainnya.

Jadi ayo pergi!

“Pelokalan robot menggunakan penanda ARUCO”


Penulis laporan: Alexey Budyakov



Slide presentasi

Laporan ini meneliti secara rinci salah satu komponen penting dari subsistem navigasi - lokasi oleh spidol.

Pendahuluan menyoroti prinsip-prinsip dasar dan konsep metode visi komputer yang memungkinkan robot seluler menavigasi melalui penanda fidusia: gambar khusus yang dirancang untuk dikenali sebagai titik referensi. Mereka biasanya memiliki kontras tinggi sendiri dan dengan latar belakang yang mungkin, dioptimalkan untuk pengenalan saat memindai pada sudut dan dalam cahaya rendah. Sebagai penanda, Anda dapat menggunakan logo primitif (misalnya, "catur" di atas pesawat), sistem penyandian data yang sudah jadi (DataMatrix, QR), namun dalam robotika, sistem penanda yang dikembangkan secara khusus digunakan, paling sering dalam bentuk gambar hitam dan putih. Salah satunya adalah ArUco, yang memungkinkan Anda membuat penanda piksel dengan beberapa nilai granularitas (dari 4 * 4 hingga 7 * 7) dan, tidak seperti kode QR,Pengakuan yang membutuhkan beberapa puluh milidetik, memungkinkan untuk menemukan dan mendeteksi penanda dengan biaya komputasi minimal. Laporan tersebut meneliti cara mendeteksi marker pada gambar hingga menghitung posisi robot relatif terhadap marker, dan mempertimbangkan keuntungan menggunakan modul pengenalan marker ArUcoaruco_marker , bagian dari perpustakaan OpenCV yang populer tentang metode visi komputer. Kami mencoba membangun laporan sedemikian rupa sehingga akan memberikan pemahaman umum tentang proses menavigasi penanda tanpa masuk lebih dalam ke matematika, ditambah tautan ke metode perpustakaan populer yang menerapkan satu atau metode lain yang digunakan dalam navigasi dapat diambil dari dalamnya.

“Ikhtisar Perencana Jalan Pita Elastis Berwaktu”


Penulis laporan: Ivan Kornev



Slide presentasi

Tujuan laporan ini tidak hanya untuk memberi tahu tentang prinsip penjadwal TimedElasticBand lokal, tetapi juga untuk membandingkannya dengan penjadwal ROS populer lainnya - DynamicWindowApproach, karena merupakan bagian dari tumpukan navigasi MoveBase dan ditetapkan sebagai penjadwal default di tumpukan navigasi untuk turtlebot3. Dengan perencana inilah para pendatang baru, sebagai suatu peraturan, mengenal lebih dulu.

Konten Laporan:

  1. Tinjauan singkat tentang tumpukan navigasi MoveBase yang menjelaskan cara kerjanya. Ini akan berguna bagi mereka yang sebelumnya tidak pernah berurusan dengan paket ini, tetapi ingin memahaminya atau memahami apa peran yang dimainkan oleh penjadwal lokal di dalamnya.
  2. Dynamic Window Approach ( — DWA). DWA, . . , , . , . , DWA ROS , . - .
  3. TimedElasticBand ( — TEB). . :

    — , ( )
    — , ( , 0 255, , ROS Costmap) 255 ( 255 ) . , , . , , . . TEB , .
  4. . DWA TEB , ROS Wiki.


“Eurobot: ”


: ,



slide Presentasi

Wakil juara Rusia, tim setUp , yang didukung oleh Laboratorium Robotika Sberbank, berbicara tentang sistem navigasi mereka sendiri. Proses pengembangan dijelaskan dalam artikel besar .

“Robot melakukan perjalanan di lapangan datar dan sebagian besar hambatan diketahui sebelumnya, namun, lawan yang jahat dapat mencoba mencuri sumber daya (dan kami terkadang ingin memakan beberapa lusin poin tambahan), sementara kami ingin berkendara ke titik yang diinginkan secepat mungkin tanpa mengenai rintangan. Dari kamera eksternal di lapangan, kami mendapatkan data tentang posisi musuh dan tahu di mana dia sekarang. Namun, tidak cukup mengetahui posisinya - Anda harus dapat menggunakan informasi ini.

Hari ini kita akan mencoba mengemudi dari titik A ke titik B tanpa harus mengemudi di sepanjang ekor kucing yang tertidur di lantai. Secara khusus, kami akan menjelaskan bagaimana kami membangun rute dan mengontrol kecepatan robot, serta bagaimana menjalankan segala sesuatu di komputer kami. "

gambar

Mencoba bertahan dengan sedikit darah


Saat memecahkan masalah ini, Anda bisa mengambil materi siap pakai yang ditulis oleh para profesional, maka tidak akan ada siksaan dan penemuan "sepeda" berikutnya. Kami menggunakan platform roda omni, jadi meskipun ada upaya untuk menggunakan planer lokal yang sudah jadi dari ROS, karena sejumlah alasan mereka menemukan ini tidak menjanjikan.

Dari kelebihan tumpukan standar, Anda dapat menyoroti ketersediaan dokumentasi dan kemampuan untuk menemukan informasi di forum. Anda dapat membaca lebih lanjut di situs web resmi dengan dokumentasi .

Penting untuk menyebutkan bahwa paket ROS paling sering diuji pada platform roda dua. Kami mengoptimalkan perakitan sistem untuk omnicholes (robot ini disebut holonomik: kapan saja ia dapat bergerak ke segala arah) dengan meningkatkan sudut rotasi yang tersedia saat bergerak hingga 360 derajat. Bagi kami, ini adalah peretasan yang kotor, tetapi opsi lain tidak universal. Perencana standar ternyata terlalu berat dan memiliki banyak parameter yang tidak akan pernah kita butuhkan

Perencana global


Hal pertama yang kami putuskan untuk disaring dari paket navigasi adalah membuat __global planner__ kami berdasarkan algoritma theta *. Singkatnya, ini adalah A * yang dimodifikasi . Seperti biasa, peta yang diketahui dibagi menjadi kotak elemen (node) dengan cara raster; scheduler terus mencari simpul induk, yang dapat dihubungi secara langsung, mis. di jalan yang tidak ada hambatan. Ini memungkinkan Anda membangun jalur yang nyaman dan melicinkannya. Selanjutnya mereka dipindahkan ke perencana lokal.

gambar
Perbandingan A * dan theta *

Perencana lokal


Penjadwal lokal bekerja dengan metode gradient descent di bidang potensial. Jalur dari perencana global digunakan sebagai input . Selain itu, dalam perencana lokal, ada layanan internal untuk memilih mode pembangunan jalur. Dua mode operasi tersedia: mode titik bergeser di sepanjang gradien menggunakan beberapa lintasan di peta, serta mode pergeseran, di mana kenaikan dihitung langsung dalam dua koordinat, dan titik tersebut bergerak ke tepi zona aman.

Sebagai hasilnya, kami memutuskan untuk menggunakan gradient descent di bidang potensial berdasarkan jalur dari perencana global'dan. Itu ternyata merupakan algoritma yang ringan dan relatif sederhana yang benar-benar memuaskan kami dengan kualitas jalur yang diterima, waktu kerja dan jumlah RAM yang dikonsumsi (di wilayah 100-150 mb), yang beberapa kali lebih sedikit dari yang diperoleh pada iterasi pengembangan pertama dengan paket standar.

gambar
Contoh jalur offset perencana lokal

Regulator lintasan


Elemen terakhir namun tidak kalah penting dari tumpukan navigasi adalah regulator lintasan . Dia bertanggung jawab untuk mengubah jalur dari perencana lokal ke jalur dan memberikan nilai kecepatan sesaat untuk langkah saat ini. Iterasi pertama dalam perjalanan ke "lintasan" baru adalah algoritma untuk mengganti vektor yang digunakan robot. Itu ditugaskan sebagai jumlah vektor ke tiga node berikutnya dengan koefisien yang berbeda. Iterasi kedua adalah untuk menulis filter Jerk Minimum melalui pembangunan polinomial derajat 5, di mana koordinat x dan y tergantung pada waktu kedatangan ke setiap titik.

gambar
Gambar menunjukkan grafik dari salah satu koordinat versus waktu, serta kecepatan di sepanjang koordinat ini

Jika Anda tertarik mengembangkan robot, modul robot, atau komponen perangkat lunak, jika Anda ingin memamerkan perkembangan Anda atau hanya mengobrol dengan orang-orang yang berpikiran sama, selamat datang di Pertemuan ROS online kami berikutnya pada tanggal 18 April !

Penulis artikel: Albert Efimov, Alexey Burkov, Alexander Bogoslovsky, Oleg Urzhumtsev

All Articles