Lokalisasi penanda Aruco

Dalam posting terakhir, kami berbicara tentang bagaimana untuk pergi dari titik A ke titik B tanpa memukul apa pun. Tetapi untuk berkeliling sesuatu, Anda perlu memahami di mana kita berada, dan di mana ada hambatan dinamis (lawan kita dan bukan hanya).

Seseorang memiliki mata, telinga, dan perangkat lunak yang diletakkan berdasarkan alam dan pengalaman pribadi sehingga ia dapat dengan mudah bergerak dan bernavigasi di ruang angkasa. Sistem pelokalan hampir seperti mata dan telinga untuk robot. Diperlukan agar robot dapat menavigasi di ruang angkasa dan, menyesuaikan dengan lingkungan, bergerak di dalamnya.

Hari ini kita akan berbicara tentang bagaimana kita memecahkan masalah menentukan posisi robot di bidang Eurobot, bagaimana melakukan semua ini, meluncurkan dan mengkonfigurasi untuk diri sendiri.



Kondisi target sistem pelokalan


Salah satu prinsip Eurobot Open adalah otonomi. Otonomi dari segala yang ada di belakang lapangan bermain. Semua perhitungan, pengambilan keputusan, dan pelokalan harus dilakukan di robot \, atau di situs khusus di lapangan.

Ukuran bidang adalah 2x3 meter, dan kesalahan dalam ukuran dan posisi elemen di atasnya dari bidang ke bidang biasanya dalam 3-5 mm.

Pada gambar di bawah ini adalah diagram bidang Eurobot 2019 dengan zona bertanda tempat kita dapat meletakkan sesuatu selain robot.



  • 6 - Zona Eksperimen (salah satu tugas tambahan)
  • 10 - Zona Mercusuar
  • 11 - Sebuah menara khusus untuk memasang alat pelacak pusat (selanjutnya disebut CCC) Terletak di atas lapangan pada ketinggian 1 meter
  • Juga pada robot itu sendiri kita dapat memasang beacon.

Untuk semua area dan dimensi robot itu sendiri, ada batasan ketat pada berat dan ukuran, karena itu tidak mungkin untuk membuat satu supermodul produktif besar di mana semuanya cocok. Dan ada juga batas 3 menit persiapan untuk peluncuran. Selama waktu ini, satu atau dua orang dari tim harus mengeluarkan robot dan segala sesuatu yang berkaitan dengan mereka, mengatur, mengkonfigurasi dan mempersiapkan peluncuran. Jelas, semakin sedikit sampah yang perlu Anda atur dan atur, semakin kecil kemungkinan Anda melakukan kesalahan atau didenda sebelum dimulainya pertempuran.


dan satu lagi kotak penuh seperti itu

Kami menganalisis opsi


Dengan kesadaran akan kemampuan kami dan keinginan untuk mendapatkan akurasi posisi setidaknya beberapa milimeter, mari kita lihat apa yang secara umum dapat kita gunakan untuk menyelesaikan masalah ini:

  • Odometri roda menggunakan enkoder yang terletak langsung di drive atau roda pengukur tambahan memungkinkan Anda membaca jarak yang ditempuh robot dan menentukan posisinya relatif terhadap titik awal. Banyak tim Eurobot menggunakannya sebagai metode pelokalan utama mereka. Ini adalah salah satu sumber informasi gerakan tercepat untuk robot. Namun, dalam praktiknya, terutama ketika mengemudi di atas roda omni (area kontak yang lebih kecil dari roda klasik, permainan rol dan kesalahan pabrikasi yang lebih besar), odometri rentan terhadap masalah kesalahan kumulatif, yang entah bagaimana perlu diperbaiki. Anda dapat menyelaraskan dengan permukaan dengan koordinat yang diketahui, atau Anda dapat kompleks dengan sistem tambahan. Juga, jika Anda menggunakan encoders pada roda penggerak, maka ada masalah selip roda selama manuver tajam dan dalam tabrakan robot. Roda pengukur bisa menghilangkan masalah ini, tetapi sulit untuk ditempatkan di robot kecil.


    roda omni pengukur buatan sendiri dengan suspensi independen dan dengan magnetic encoder, yang kami gunakan pada tahun 2018
  • Lidar memiliki keunggulan signifikan: kami mendapatkan tampilan yang hampir bundar dan jarak ke rintangan. Dari minus, perlu dicatat harga tinggi, kesulitan dalam mencoba membedakan objek kecil dari sampah, dan algoritma pelokalan yang relatif rumit. Lidar murah (seperti rplidar) memiliki kecepatan refresh dan resolusi sudut yang cukup rendah, dan juga dapat terkena cahaya dari lidar lain, pengukur jarak, dll. Dalam robot, sulit untuk menemukan lidar di tingkat samping untuk menggunakan algoritma SLAM klasik, tetapi pada yang disediakan aturan ketinggian untuk sistem lokalisasi memiliki beberapa objek statis untuk diikat. Namun, tim Skoltech telah berhasil skating selama beberapa tahun menggunakan hokuyo ust-10lx dan tahun lalu mengambil tempat kedua di final Eropa kompetisi Eurobot di Prancis.
  • Kami juga mempertimbangkan sistem inersia , tetapi dalam kasus kami mereka tidak cocok. Accelerometer berisik, giroskop mengambang, Anda bisa melupakan menggunakan kompas di dalam ruangan. Bahkan penggunaan filter Kalman tidak mencapai akurasi yang diinginkan. Ternyata IMU hanya dapat digunakan secara efektif untuk koreksi dalam waktu yang sangat singkat. Maksimal informasi berguna yang dapat kami peroleh dengan pixhawk2 adalah sudut selama belokan tajam (dari tabrakan, misalnya).
  • GPS tidak berfungsi di dalam ruangan, dan akurasi tanpa RTK adalah meter.
  • Lokalisasi ultrasonik . Salah satu implementasinya dapat ditemukan di sini: m.habr.com/en/post/451408 . Sayangnya, akurasi untuk tugas kami tidak terlalu tinggi (+ -2cm), crosstalk sangat mempengaruhi, atau, jika Anda menggunakan sensor dengan perlindungan terhadap ini, frekuensi polling rendah diperoleh. Salah satu tim di Rusia menggunakan solusi ini dengan berbagai keberhasilan, dan tim Turag Jerman cukup berhasil mengendarai teknologi serupa yang dikembangkan di dalam lab.
  • Odometri visual tidak memberikan informasi tentang posisi lawan karena fakta bahwa tidak banyak poin di lapangan yang memungkinkan untuk diandalkan.
  • \ Tof kamera stereo memiliki sudut sempit, yang tidak memungkinkan untuk menutupi bidang ketika terletak di perangkat pelacakan pusat, atau untuk mendapatkan tampilan lingkaran atau setidaknya dapat diterima saat dipasang pada robot.
  • Penanda fidusia yang telah kami pilih dan yang akan kami periksa lebih detail.

Spidol fidusia


Navigasi penanda sudah ada sejak lama. Secara teoritis, penanda yang disebut dapat berupa objek apa saja. Tetapi ada banyak masalah saat menggunakan:

  • pembatasan karena resolusi kamera;
  • deteksi yang tidak dapat diandalkan ketika menggunakan warna sebagai sumber utama informasi;
  • kebutuhan untuk menentukan orientasi penanda;
  • tanda kontras rendah hanya bekerja dengan baik dalam cahaya yang baik;
  • daya pemrosesan yang tinggi dari peralatan diperlukan (pemrosesan waktu nyata dari frame yang masuk).

Untuk menghindari masalah di atas, Anda biasanya harus menggunakan sesuatu yang sederhana dan tidak ambigu untuk pengakuan, misalnya, lingkaran berwarna atau kotak (dan saya ingin bebek kuning).

gambar
berbagai jenis penanda

Bahkan, selain menentukan posisi penanda, sering kali ada kebutuhan untuk menentukan keunikannya, misalnya, untuk mendeteksi beberapa objek sekaligus. Untuk melakukan ini, Anda dapat mengubah warna atau bentuk, tetapi kami akan segera menghadapi penurunan dalam keandalan deteksi.
Masalah ini cukup umum dan ada banyak standar penanda. Yang paling terkenal adalah kode qr, tetapi jarang digunakan untuk masalah lokalisasi karena redundansi dan kebutuhan untuk resolusi tinggi. Sebagai aturan, semua penanda adalah dua warna (paling sering b / w), dari bentuk sederhana (paling sering persegi) dan entah bagaimana menyandikan pengidentifikasi dalam diri mereka sendiri. Penanda paling terkenal untuk pelokalan adalah Aruco, April Tag, ARToolKit.

Siapa pun yang tertarik untuk mempelajari lebih lanjut tentang mereka adalah artikel menarik yang juga membandingkan keandalan deteksi mereka.

Penanda fraktal
Ada saat-saat ketika kita perlu mendeteksi suatu objek baik dari jauh maupun langsung ke sana. Menggunakan beberapa spidol dengan ukuran berbeda adalah satu cara, tetapi Anda dapat melakukannya dengan lebih cerdik dan menggunakan spidol "fraktal", bagian yang berbeda bekerja pada skala gambar yang berbeda.

docs.google.com/document/u/1/d/1SdsOTjGdu5o8gy2Ot2FDqYDS9ALgyhOBJcJHOZBR7B4/mobilebasic

Dalam kasus kami, kami memiliki banyak aspek positif menggunakan spidol:

  • dengan kemungkinan memasang kamera statis dengan sudut pandang dan tanda yang baik, ini tidak memerlukan peralatan yang sulit ditemukan dan berpotensi tidak terlalu sulit untuk diterapkan;
  • kamera jarak jauh dapat mengevaluasi posisi semua objek yang dapat kita beri tanda;
  • perhitungan dilakukan bukan pada perangkat robot, tetapi dilakukan pada komputer yang terpisah (tetapi ada masalah dengan keandalan dan keterlambatan dalam transfer data);
  • kemampuan untuk memecahkan masalah lain yang terkait dengan visi.

Setelah menganalisis sistem di atas, kami menentukan deteksi marker. Ini memungkinkan kami tidak hanya membebaskan odroid kami dengan robot, tetapi juga memungkinkan mereka untuk melihat seluruh situasi di lapangan dari pandangan mata burung.

Bagaimana cara kerjanya di luar kotak


"Keandalan" deteksi penanda adalah istilah yang relatif. Tugas yang berbeda memerlukan tingkat akurasi dan stabilitas yang berbeda. Termasuk parameter ini tergantung pada sensor video, lensa, kondisi pencahayaan, dll.


Dalam kasus kami, dengan ukuran bidang 2x3 meter dan kamera hanya satu meter di atasnya, perlu menggunakan optik sudut ultra lebar dengan bidang pandang minimal 120-140 derajat untuk memastikan visibilitas seluruh ruang bermain, yang secara negatif mempengaruhi deteksi (dan keakuratannya) dari penanda kecil di kejauhan. sudut lapangan bermain, dan di bawah kondisi pencahayaan yang sewenang-wenang membuat tugas ini semakin sulit.
Seperti yang telah ditunjukkan oleh praktik, bahkan di bawah kondisi normal, sepenuhnya alami, dengan penerangan, definisi posisi marker yang salah dapat terjadi.



Jadi gambar-gambar berikut menunjukkan dua frame berturut-turut dengan hasil deteksi marker: arah sumbu Z (biru) berubah 180 derajat.




www.youtube.com/watch?v=xzG2jQfxLlY

Membawa ke kondisi kompetitif


Ubah algoritme


Untuk menentukan lokasi robot di lapangan secara akurat, Anda perlu mengetahui posisi sudut kamera, transformasi umum sistem koordinat dan posisi kamera relatif terhadap posisi lapangan. Untuk melakukan konversi ini, kami mengembangkan algoritme kami sendiri. Karena seseorang menggantung pusat kendali pusat secara manual, ditambah bidang yang sedikit berbeda satu sama lain, maka tidak mungkin untuk selalu mendapatkan posisi kamera yang sama. Perpindahan sudut kamera relatif ke lapangan memiliki efek yang sangat negatif pada deteksi posisi robot. Solusi mendasar adalah menentukan beberapa penanda statis yang dapat kita atur sebelum pencocokan untuk kalibrasi.

Pustaka Aruco dalam OpenCV menyediakan kemampuan untuk menentukan posisi marker 6dof relatif terhadap kamera. Awalnya kami mencoba menggunakannya, tetapi ternyata sangat tidak stabil dan tidak akurat. Dalam kasus kami, ketika posisi kamera diketahui, itu diperbaiki, dan robot (dan spidol terkait) bergerak di pesawat yang tidak melewati titik lampiran kamera, adalah rasional untuk membatasi diri pada tugas mendeteksi posisi 3d (z-const, x-y, + rotasi sekitar) satu sumbu z) melalui triangulasi titik pada bidang pada sudut yang terlihat.

Diharapkan bahwa penurunan dimensi dan peningkatan dasar triangulasi (ukuran marker versus jarak dari bidang marker ke kamera) dari masalah yang diselesaikan mengurangi tingkat ketidakpastian dan kebisingan dari hasil deteksi.
Untuk melakukan ini, alih-alih fungsi standar

cv::aruco::estimatePoseSingleMarkers(markerCorners, 0.05, cameraMatrix, distCoeffs, rvecs, tvecs); 


yang, berdasarkan sudut yang ditemukan dari marker, menentukan posisi 6d dari marker, kami menulis penduga posisi kami, bekerja sesuai dengan prinsip-prinsip berikut:

  • Posisi kamera 3D diketahui sebelumnya;
  • ketinggian marker diketahui sebelumnya;
  • sebagai hasil deteksi, piksel (v, u) dari 4 sudut marker diketahui;
  • sebagai hasil dari kalibrasi kamera, sebuah matriks kamera 4x4 didefinisikan;
  • mengetahui 'matriks kamera', posisi dan orientasi kamera, posisi sudut piksel penanda, Anda bisa mendapatkan proyeksi posisi sudut dalam ruang 3D pada bidang z di mana simpul penanda berada (ketinggian penanda ditentukan oleh jumlahnya);
  • membuat langkah sebelumnya untuk keempat sudut penanda dan rata-rata data yang diperoleh, dimungkinkan untuk mendapatkan koordinat 3D dari simpul penanda dalam sistem koordinat kamera;
  • menerapkan transformasi dari kamera SK ke SK bidang bermain, koordinat penanda di bidang SK diperoleh.

Memecahkan masalah pencahayaan dan kinerja


Stabilitas dan kecepatan deteksi marker sangat tergantung pada kondisi pencahayaan lingkungan dan struktur latar belakang, semakin banyak objek dalam bingkai, semakin lama waktu pemrosesan. Karena aturan pencahayaan dan latar belakang Eurobot tidak diatur dengan cara apa pun, mereka dapat berubah sangat dari waktu ke waktu, mungkin ada bidang lain, orang-orang di latar belakang. Secara khusus, eksposur tambahan dari robot musuh, lampu kilat kamera atau lampu sorot yang jatuh ke bidang pandang kamera dapat diharapkan.

Untuk mengurangi pengaruh penerangan lingkungan pada stabilitas deteksi marker, โ€œdesainโ€ khusus dikembangkan di mana marker aruco terbalik digunakan. Bagian gelap digantikan oleh film retrospektif, dan lampu latar LED aktif dipasang langsung pada kamera. Pemrosesan gambar dilakukan dalam negatif, sedangkan kontras latar belakang jauh lebih rendah daripada kontras penanda mereka sendiri.

Meningkatkan kontras penanda memungkinkan Anda untuk secara efektif memilih wilayah yang diminati pada bingkai dan mencari penanda hanya di dalamnya, dan tidak di seluruh bingkai, yang sangat meningkatkan produktivitas.


Perbandingan perbedaan kontras antara marker standar dan marker dengan permukaan reflektif

Kami memilih besi


Karena kondisi pencahayaan tidak ditentukan, dan kecepatan robot bisa sangat besar, sejak awal kami mencari kamera dengan rana global, dan bukan dengan rana Bergulir. Perbedaannya adalah bahwa global mengumpulkan informasi tentang kecerahan piksel pada saat yang sama, dan menggulirkan garis demi garis, karena itu mungkin ada distorsi dalam bentuk geometris objek bergerak.
Kamera yang paling terjangkau adalah oCam-1mgn, yang kami gunakan selama 2 tahun. Namun, hitam dan putih dan hanya memiliki resolusi 1Mpx, yang terletak di batas bawah dari resolusi yang dapat diterima (jumlah piksel pada gambar, per 1 "piksel" dari marker).
Awalnya, detektor dianggap pada papan yang sama dengan robot itu sendiri - odroid xu4, dan kecepatan kerja sekitar 20 fps, namun, keinginan untuk menggantung fungsionalitas tambahan pada pusat kontrol pusat dan memahami bahwa kamera yang lebih baik diperlukan menyebabkan penggantian PC dengan Intel yang lebih kuat. Nuc, dan kameranya ... kamera yang masih kami ambil untuk musim baru.

Kami memulai proyek


Lebih lanjut diasumsikan bahwa Anda sudah memiliki ROS Kinetic atau Melodic yang dikonfigurasi.

Hal pertama yang harus dilakukan adalah mengunduh dan menginstal OpenCV 3, Eigen3 dan proyek https://bitbucket.org/eurobot1718/ocam_usb_cam (untuk kamera Ocam), atau gunakan proyek lain yang serupa strukturnya dengan publikasi data dalam topik.

Kami mengkloning repositori dengan proyek detektor arude: https://gitlab.com/eurobot2019/aruco_detector dan gui untuk itu https://github.com/alexpostnikov/aruco-gui
Setelah menginstal proyek, Anda perlu mengkalibrasi kamera dan mendapatkan matriks dispersi dan matriks distorsi kamera, dan kemudian membungkus semuanya dalam file yaml "camera_params.yml". Contoh sederhana adalah penggunaan papan catur. Tautan ke implementasi di C ++, di mana Anda hanya perlu mengumpulkan dan menentukan parameter papan dan kamera, serta nama file output.

Pengaturan utama ada di file aruco_detector_params.yml:

  • len_of_cube_markers dan width_marker panjang dan lebar marker dalam meter;
  • markers_height - perbandingan marker dan tingginya;
  • marker - array yang menggambarkan apakah marker tertentu milik robot tertentu. Ini menunjukkan penanda dalam arah searah jarum jam. Dan dalam hal lawan, karena arah mereka tidak penting bagi kami, urutan penanda dalam konfigurasi juga tidak penting. Anda hanya perlu menentukan kode penanda. Kami juga memiliki spidol di sampul atas, jumlahnya disorot secara terpisah;
  • static_markers_ids - marker yang dicari selama proses kalibrasi;
  • markers_position - kamus dengan offset dan rotasi masing-masing marker relatif terhadap pusat robot;
  • brightness_threshold tidak dapat disentuh - ini digunakan dalam kalibrasi otomatis awal cahaya;
  • camera_position_yellow dan parameter serupa berfungsi sebagai pengaturan default jika kalibrasi gagal.

Matriks transformasi dari sistem koordinat kamera ke sistem koordinat lapangan ada di file transform_from_cam_to_map.xml

Setelah semua pengaturan, Anda akhirnya harus menjalankannya. Jalur ke file dengan parameter, sisi default dan jalur ke perangkat video diatur di aruco_detector_debug.launch, yang akan kami luncurkan. Tetapi untuk peluncuran penuh, lebih baik menggunakan skrip bash aruco.bash, yang, selain detektor, meluncurkan gui (127.0.0.1โ–บ000). Di sini kita dapat memilih sisi, memulai kalibrasi dan mengendalikan sistem. Di jendela kedua, zona minat dan penanda yang ditemukan terlihat.



Sekarang dalam topik: "/ musuh_robot1 / aruco", "/ musuh_robot2 / aruco", "/ big_robot / aruco", "/ small_robot / aruco" posisi robot yang ditemukan akan dipublikasikan.

Hore! Kami bisa mendapatkan koordinat robot. Itu hanya, seperti yang Anda lihat, mereka salah. Ini karena sebelum digunakan perlu untuk mengkalibrasi posisi kamera relatif terhadap bidang. Untuk ini perlu

  • mengatur kubus di sudut-sudut lapangan, sementara penting bahwa mereka diputar oleh sisi yang ditentukan dalam konfigurasi
  • sesuaikan kemiringan kamera sehingga semua ruang yang dibutuhkan jatuh ke dalam bingkai
  • sesuaikan kecerahan cahaya latar hingga deteksi penanda yang andal
  • di gui, pilih sisi yang diinginkan dan klik "kalibrasi"
  • maka status dari "search static cubes" harus berubah menjadi "search cubes"

Kami membuat spidol dan TsUS


Menurut aturan, kita dapat mewarnai robot kita seperti yang kita inginkan, dan, di samping itu, menggunakan tempat khusus pada robot kita dan orang lain, di mana Anda dapat meletakkan sesuatu hingga ukuran 10x10x8cm. Tempat khusus terletak di sampul robot, memiliki ketinggian tetap dan visibilitas yang lebih baik untuk pusat kontrol pusat, kecuali ketika robot berada di bawah kamera.


tinggi dan dimensi mercusuar pada robot

Karena itu, sebagai penanda utama untuk robot kami, kami menggunakan 10x10x108cm paralelepipeds yang dilem di 4 sisi aruco, serta penanda tambahan di sisi atas robot kami untuk pelokalan di area kompleks di bawah kamera.

Karena kami tidak bisa menempelkan apapun pada tutup musuh, kami memutuskan untuk membuat spidol dalam bentuk piramida terpotong untuk memperluas jangkauan visibilitas. Dan seperti yang Anda lihat - penanda telah menjadi jauh lebih baik.



Kami mencetak dasar untuk kubus \ piramida pada printer 3d sehingga cukup kuat dan memiliki mount yang nyaman dan dapat diandalkan.



Model untuk mencetak kubus, piramida, dan pasangan kawin terletak di sini.

Kubus ini dilem dengan reflektor (kami menggunakan AVERY putih
DENNISON V6700B lebar 50mm, meskipun lebih mahal, ini berfungsi berkali-kali lebih baik daripada Cina murah), dan spidol itu sendiri terpaku di atasnya. Cara termudah untuk melakukan ini adalah dengan memotong spidol pada plotter, meskipun Anda dapat memotongnya dari kertas atau film selama beberapa jam menenangkan (satu set terdiri dari 16 spidol).

Ini adalah kit tahun terakhir kami.


berbagai "generasi" dari penanda kita

Mereka juga dapat digunakan sebagai penanda statis untuk kalibrasi. Untuk melakukannya, letakkan di sudut jauh bidang dan klik - kalibrasi.

Merakit perangkat pelacakan pusat


Apa yang dibutuhkan:


Komputer Papan Tunggal. Gambar-gambar ini dibuat untuk lokasi Intel NUC, tetapi Anda mungkin berpikir untuk menempatkannya dalam casing, misalnya, odroid xu4 atau raspberry pi4.

oCam . Sebenarnya kamera, yang semuanya berjalan. Kami mengubah lensa standar menjadi 2,5mm untuk sudut pandang lebar
Tampilan (waveshare 7 inch HDMI LCD (B)) .Dengan bantuannya, kalibrasi dan sejumlah operasi lainnya dilakukan.

LED strip. Digunakan untuk menerangi permukaan reflektif marker. Lebih baik menggunakan yang paling terang yang tersedia.

Baterai LiPo 16.8v. Kami menggunakan 4s5200mAh. Ini adalah baterai yang sama seperti pada robot, karena nyaman dan tahan lama.

Konverter dc-dc step-down. Untuk menyalakan strip LED. Nuc dan router diberi daya langsung oleh baterai, karena semua kabel listrik sudah ada pada mereka.

Bagian yang dicetak. Ini, khususnya, pemasangan kamera, layar dan sudut untuk merakit kasing: https://yadi.sk/d/swUJUwxTnTVYFw

Detail perumahan. Dalam kasus kami, itu adalah lembaran karbon 2mm. Tapi ini bukan pilihan terbaik, karena konduktif karbon, sulit untuk diproses dan tidak seringan, misalnya, plexiglass - mungkin pilihan paling sederhana. Meski jauh lebih sulit. Temukan tautan di atas.

Router (Zyxel ekstra tajam). Kami harus mengeluarkannya dari kasing agar pas dengan ukuran dan berat. Tetapi dalam kasus umum, kami sangat tidak merekomendasikan ini.
Banyak hal kecil. Sekrup M3 * 8 ~ 40 pcs, rak untuk papan sirkuit cetak 3x10 ~ 12 pcs, kabel, obeng, wago, dll.

Majelis


Pertama, Anda perlu menyiapkan sudut cetak, menekan kacang ke dalamnya. Mungkin akan ada sedikit pers yang cocok dan mereka harus sedikit dilem atau menggunakan kacang leburan
Selanjutnya, Anda perlu menginstal bagian ini di pangkalan. Ini memberikan posisi yang jelas dari pusat kontrol pusat di tempatnya.



Sekarang kita pasang dudukan kamera, masukkan oCam di sana, rekatkan lampu latar dari strip LED sedekat mungkin ke lensa dan kencangkan modul ke dasar.





Setelah itu, Anda dapat memasang semua dinding samping, memperbaikinya ke sudut yang dijelaskan sebelumnya. Lubang untuk mereka lebih baik dilawan terlebih dahulu.



Kami menempatkan komputer papan tunggal dan router. Dalam kasus kami, ini adalah NUC dan Zyxel ekstra tajam.






Dan kami mendapatkan sistem pelacakan rakitan. Tetap hanya untuk menyesuaikan kemiringan kamera.


debugging lokalisasi pada tahun 2018

Apa hasilnya


Jadi kami memberi tahu semua rahasia yang memungkinkan kami mengulangi sistem kami dengan tangan kami sendiri. Dengan menggunakannya, Anda dapat dengan cepat dan tanpa perubahan membuat sistem Anda untuk melokalkan robot di bidang Eurobot. Dan dengan sedikit perubahan, buatlah sistem pelacakan yang cukup universal dan andal untuk sesuatu. Namun, perlu dipertimbangkan bahwa ketika menggunakan aruco 8x8, ukuran marker 10x8cm dan kamera dalam 1Mpx, tidak mungkin untuk meningkatkan radius deteksi, namun, jika kita memiliki batasan ketat pada ukuran dan kinerja, maka secara umum kita hanya menggunakan peralatan yang lebih menarik.

Tahun ini, aturan menyebutkan penggunaan aruco 4x4, serta rentang non-berpotongan untuk setiap sisi lapangan. Dalam waktu dekat, kami berencana untuk mengintegrasikan ini ke dalam solusi kami sehingga di masa depan kami tidak takut untuk persimpangan angka penanda. Lain yang harus dimiliki, tetapi yang belum dilakukan adalah kalibrasi manual di lapangan.
Pada artikel selanjutnya, kita akan berbicara tentang tingkat robot yang lebih rendah, bagaimana kinematika robot dipertimbangkan, bagaimana kita mengendalikan server, mesin, dan kerucut ketika bekerja dengan freertos.

Saya ingin mengucapkan terima kasih:

Alexey Postnikov (atas nama siapa itu mungkin layak menerbitkan semuanya) - untuk, secara umum, semua kode dalam artikel ini dan bantuan langsung dalam menulis artikel.
Egor Alexandrov - untuk semua gambar dan model, bantuan dalam menulis artikel dan 34 koma.
Tamara Sinelnikova - untuk bantuan dalam menulis artikel.

Dan anggota tim lainnya!

Kurang dari 4 bulan tersisa sebelum dimulainya kompetisi, tetapi Tim Eurobot Sberbank masih terbuka untuk peserta baru. Telegram kami: https://t.me/SetUpSber

Artikel sebelumnya:

Apa yang umum antara revolver, mesin cuci dan robot otonom
Tumpukan navigasi sendiri. Lebih baik daripada ROS?

Source: https://habr.com/ru/post/id482220/


All Articles