Bagaimana Boston Dynamics menjadikan BigDog mandiri


Pekan lalu, kami menemukan cara kerja algoritma koordinasi kiprah BigDog yang legendaris. Robot itu belum otonom dan bisa melintasi medan hanya di bawah kendali operator.

Sebagian besar pembaca terakhir kali mendukung gagasan terjemahan baru - tentang bagaimana BigDog belajar cara mandiri menuju ke titik yang tepat dan bernavigasi di ruang angkasa. Sebenarnya, ini dia.

Sistem navigasi BigDog menggunakan kombinasi pemindaian laser planar, penglihatan stereo, dan persepsi proprioseptif. Dengan bantuannya, lokasi robot di dunia sekitarnya ditentukan. Dia menemukan rintangan dan menempatkannya dalam model dunia dua dimensi. Kemudian dia merencanakan jalur dan mengontrol robot untuk mengikuti jalur yang dipilih. Perencana jalur adalah variasi dari algoritma pencarian A * klasik. Algoritma smoothing memproses hasilnya dan meneruskannya ke algoritma path-following. Dia menghitung perintah kemudi untuk BigDog.

Sistem yang dijelaskan diuji di zona hutan dengan banyak pohon, batu-batu besar, semak-semak. Selain wilayah datar, ia juga memiliki kemiringan (sudut hingga 11 derajat). Sebanyak 26 tes dilakukan, dimana 88% berhasil. Robot "melihat" medan dalam radius 130 meter ketika bergerak dengan kecepatan tertentu dan mengatasi lebih dari 1,1 km.

Peralatan


1) Sensor proprioseptif

Digunakan untuk mengontrol kiprah BigDog dan navigasi otonom. Masing-masing dari 16 derajat kebebasan robot aktif dan 4 pasif dilengkapi dengan sensor. Mereka menyediakan data tentang posisi dan beban saat ini. Informasi ini dikombinasikan dengan data IMU untuk mengevaluasi keadaan kontak dengan tanah, ketinggian tubuh, kecepatan tubuh. Selain itu, sejumlah sensor menunjukkan keadaan propulsi, komputasi, hidrolik, termal, dan sistem BigDog lainnya.


Sensor BigDog: a) Antena GPS; b) LIDAR; c) kamera stereo Bumblebee; d) Honeywell IMU; e) sensor bersama.

2) Sensor ekstraseptif

Robot ini dilengkapi dengan empat sensor eksternal: SICK LMS 291 lidar, kamera stereo Bumblebee PointGrey, penerima GPS NovAtel dan Honeywell IMU. Data dari mereka memasuki sistem yang ditunjukkan pada diagram di bawah ini.


3) Komputer

Untuk mengimplementasikan sistem dengan diagram di atas, dua komputer digunakan. Komputer utama BigDog adalah PC104 dengan prosesor Intel Pentium M inti tunggal (1,8 GHz). Ini berinteraksi dengan sensor proprioseptif, mengontrol keseimbangan dan pergerakan robot, menghitung model lingkungan saat ini dan jalur yang melaluinya, dan juga mengontrol gaya berjalan.

Visi disediakan oleh komputer terpisah dengan prosesor Intel CoreDuo (1,7 GHz). Ini berkomunikasi dengan sepasang kamera, mendeteksi ketidakkonsistenan, mengevaluasi odometri visual dan mendukung peta medan 3D. Komputer ini mentransmisikan peta dan data odometri visual ke komputer host pada frekuensi 15 Hz melalui jaringan area lokal on-board.

Keuntungan dari sistem semacam itu adalah kemampuan untuk menyederhanakan tugas perencanaan dengan memecahnya menjadi dua bagian. Data dari LIDAR dan sensor adalah tiga dimensi, tetapi kita dapat mengandalkan stabilisasi diri dari sistem kontrol gaya berjalan untuk meninggalkan persepsi dan perencanaan 3D yang lebih kompleks.

Pendekatan teknis


Dalam pendekatan teknis umum kami, kami menggunakan data dari dua sensor lingkungan untuk mendeteksi rintangan, menghitung jalur melalui atau di sekitar rintangan, dan memerintahkan sistem kontrol gaya berjalan robot untuk mengikuti jalur yang diberikan.

Seluruh proses dapat dibagi menjadi tiga tahap. Pertama, gambar dari LIDAR dan kamera diproses untuk mendapatkan daftar titik yang menunjukkan hambatan di lingkungan. Kemudian titik-titik ini dibagi menjadi objek terpisah dan dilacak untuk beberapa waktu. Selanjutnya, objek-objek ini digabungkan dalam memori sementara untuk pemetaan. Bagan ini digunakan untuk merencanakan arah perjalanan ke tujuan perantara. Penjadwal dirancang untuk mengontrol bahwa lintasan BigDog berada pada jarak yang tepat dari rintangan dan bahwa lintasan stabil di ruang selama iterasi penjadwal. Algoritma gerak sepanjang lintasan yang diberikan memaksa robot untuk mengikuti jalur yang diinginkan, mengirimkan perintah kecepatan ke sistem kontrol gaya berjalan. Dia secara bergantian menggerakkan anggota badan robot.

A. Pengumpulan informasi


1) Penilaian situasi

Ada dua sumber informasi odometrik: sensor kinematik di kaki dan sistem penglihatan buatan. Data yang diperoleh dari mereka digabungkan untuk menilai lokasi robot.



Sistem odometrik menggunakan informasi kinematik dari kaki untuk menghitung pergerakan robot. Dan sistem odometry visual memantau karakteristik visual untuk menghitung gerak. Kedua alat ini menggunakan modul pengukuran inersia (IMU) sebagai sumber informasi untuk orientasi spasial. Meter umum menggabungkan output dari kedua odometer ini, dengan fokus pada odometri visual pada kecepatan rendah dan kinematika pada kecepatan lebih tinggi. Kombinasi dari dua indikator ini menghilangkan kekurangan masing-masing penghitung: kemungkinan kegagalan sistem stereo, penyimpangan pembacaan odometer yang terletak di tungkai saat berjalan di tempat, serta kesalahan sensor ini di sepanjang sumbu vertikal.

Lidar yang digunakan dalam robot BigDog menghasilkan gambar baru setiap 13 milidetik. Setiap gambar ditransformasikan menjadi sistem koordinat eksternal dengan pusat di lokasi robot. Dalam hal ini, informasi yang disinkronkan waktu dari penghitung lokasi digunakan. Cloud titik 3D yang dihasilkan kemudian dikirim untuk diproses oleh algoritma segmentasi yang dijelaskan di bawah ini. Demikian pula, sistem penglihatan stereoskopis mengumpulkan peta ketidaksesuaian untuk beberapa waktu untuk membuat peta medan 3D dalam kotak 4 x 4 meter yang berpusat pada robot. Filter spasial menentukan area perubahan ketinggian yang signifikan (mis. Hambatan potensial) dan mentransmisikan daftar titik yang termasuk area ini ke algoritma segmentasi awan titik.

2) Arahkan segmentasi cloud dan pelacakan objek

Karena ketidakteraturan bumi dan pergerakan robot, bagian dari data pemindai Lidar akan mencakup gambar bumi. Refleksi dari rintangan panjang (seperti dinding) memiliki penampilan yang mirip dengan pantulan dari permukaan bumi. Untuk operasi yang sukses, sistem harus menafsirkan refleksi ini sedemikian rupa sehingga dapat mengendalikan robot di dekat dinding, dan tidak menjadi "takut" terhadap bumi. Langkah pertama dalam proses ini adalah segmentasi titik hambatan yang disediakan oleh Lidar dan peta medan menjadi objek yang terpisah. Awan titik 3D langka disegmentasi menjadi objek dengan menggabungkan titik-titik individual yang dipisahkan oleh jarak kurang dari 0,5 meter.

Objek yang diperoleh berkat algoritma segmentasi dilacak untuk beberapa waktu. Untuk menyelesaikan tugas ini, kami menggunakan algoritma iteratif serakah dengan kendala heuristik. Objek dalam gambar saat ini bertepatan dengan objek terdekat dari gambar terakhir, asalkan objek dipisahkan oleh jarak tidak lebih dari 0,7 meter.

Karena fakta bahwa titik awan tersegmentasi menjadi objek dan dilacak untuk beberapa waktu, robot dapat bergerak secara memadai di lingkungan dengan ketidakrataan moderat bumi dan berbagai jenis hambatan: pohon, batu bulat, batang kayu yang jatuh, dinding. Pohon dan dinding ditentukan terutama oleh pemindai lidar, dan batu bulat dan balok ditentukan oleh sistem penglihatan stereoskopis.


Urutan ilustrasi yang menunjukkan robot (kotak kuning) dengan: a) data dari lidar (titik biru) yang direkam dalam beberapa detik; b) fasilitas masing-masing. Benda cokelat tinggi adalah pohon. Pantulan tanah ditampilkan transparan dan rata. Silinder hijau adalah tujuannya; garis biru dari jalur terhitung mengarah ke sana. c) Tampilan teratas dari kartogram: area dengan nilai mematikan terendah ditunjukkan dengan warna hijau, dan area dengan nilai tertinggi ditunjukkan dengan warna ungu. Setiap unit grid sesuai dengan 5 meter.

B. Perencanaan navigasi


Pendekatan kami untuk menyelesaikan masalah navigasi umumnya diterima di komunitas robot. Poin hambatan (diperoleh karena proses persepsi) diplot pada sebuah kartogram dengan pusat di lokasi robot. Target akhir robot diproyeksikan ke batas kartogram, dan varian dari algoritma A applied diterapkan untuk itu. Proses ini diulang kira-kira satu kali per detik.

1) Memori hambatan yang dilacak

Karena bidang pandang yang terbatas dari dua sensor robot, sangat penting bahwa robot mempertahankan memori akurat dari hambatan yang tidak dapat lagi dilihat. Karena daftar objek disediakan oleh sistem pelacakan objek, masing-masing objek ditambahkan, diperbarui atau dihapus dalam memori objek dari sistem perencanaan. Ukuran daftar objek terbatas, jadi ketika objek baru ditambahkan, yang lain harus dihapus.

Mendenotasikan daftar objek saat ini dari variabel O, kita dapat menghitung dua subclass parameterized dari O:



Di sini umur (q) adalah perbedaan antara waktu saat ini dan waktu pengukuran terakhir dari objek q,
norm (q, r) inf - jarak minimum antara lokasi robot saat ini dan batas objek q.

Objek dihapus dari O dengan kriteria berikut:

  • Set {P (30) ∊ Q (15)} dikurangi dari O. Ini adalah objek yang lebih tua dari 30 detik dan terletak tidak lebih dekat dari 15 meter ke robot.
  • Set {P (1800) ∊ Q (10)} dikurangi dari O. Ini adalah objek yang lebih tua dari setengah jam dan terletak tidak lebih dekat dari 10 meter ke robot.
  • Objek dihapus dari O saat batas daftar tercapai. Prioritas objek ditentukan oleh waktu selama itu berhasil dilacak oleh pelacak. Dengan kata lain, benda-benda yang robot "tampak" lebih lama disimpan lebih lama dalam memori.
  • Namun, tidak ada objek yang dilacak dalam 10 detik sebelumnya yang dibuang.

Alokasi sumber daya memori ini mengarah ke perilaku berikut: ketika objek meninggalkan bidang pandang sensor robot, ia lupa objek yang dihapus dan objek yang belum terlihat beberapa kali. Objek yang terlihat atau tidak dapat diakses, tetapi terletak dekat dengan robot, tidak dilupakan.

2) Membuat cartogram

Kami menggunakan kartogram yang dibuat berdasarkan kisi 2D untuk mewakili lingkungan di sekitar robot. Alih-alih secara dinamis membuat kartogram (karena robot menerima informasi lingkungan baru), kartogram baru dikompilasi dengan setiap iterasi perencanaan dan diisi dengan objek dari memori penjadwal. Oleh karena itu perencana rute dinamis tidak dapat digunakan sebagai pengganti algoritma A *. Karena kami mengasumsikan bahwa ukuran objek terbatas (bahwa tidak adanya jalan buntu di lingkungan lebih dari setengah peta), ruang lingkup tugas perencanaan dan waktu untuk menghitung jalur kecil.

Kartogram diisi dengan nilai-nilai dari daftar objek sesuai dengan algoritma berikut:



Sel-sel di mana objek berada diberi nilai mematikan yang sangat tinggi. Indikator untuk sel di dekat objek diatur sesuai dengan fungsi f, yang memperhitungkan jarak saat ini ke titik ini. Untuk hasil tes yang disajikan di sini, f hanyalah kubus terbalik dari jarak.

Efek dari pendekatan ini adalah berkurang secara bertahap dari sel-sel dengan nilai yang sangat tinggi ketika bergerak menjauh darinya (dan objek yang mereka tetapkan).

3) Stabilitas jalan

Untuk memastikan bahwa kami tidak "mengendalikan" BigDog secara acak dan tidak sistematis, perhatian khusus diberikan pada stabilitas jalur yang direncanakan. Itu harus se-stabil mungkin melalui iterasi dari perencana jalan. Ini disediakan dalam tiga cara.

Pertama, titik awal yang dilewatkan ke algoritma A * bukan posisi robot saat ini, tetapi proyeksi posisinya pada titik akhir lintasan yang diberikan sebelumnya oleh algoritma A * (sebut saja titik ini p). Selama BigDog mengikuti jalur yang direncanakan, itu mungkin menyimpang sedikit dari itu ke samping. Dengan memproyeksikan titik awal ke titik perhitungan algoritma A * sebelumnya, kami menyaring fluktuasi posisi robot, dan jalur yang ditampilkan oleh penjadwal menjadi lebih stabil. Jika robot menyimpang dari jalur lebih dari nilai yang ditetapkan (secara default adalah 3 meter), titik p hanya ditransfer ke posisi robot saat ini.

Kedua, untuk memverifikasi kontinuitas path planner, kami menghitung q - proyeksi posisi robot dari 2,5 detik di masa lalu ke titik terakhir yang dihitung oleh algoritma A *. Kemudian segmen jalur yang direncanakan terakhir dari q ke p ditambahkan ke perhitungan jalur baru. Alhasil, robot melacak jarak kecil yang sudah ditempuh lintasan. Berkat ini, algoritma untuk mengikuti jalan menunjukkan dirinya lebih baik dengan pelanggaran signifikan pada posisi, yang sering ditemui oleh robot di kaki mereka.

Ketiga, beberapa sejarah jalur yang direncanakan disimpan dalam memori robot. Jalur ini digunakan untuk mengurangi nilai sel-sel kartogram di mana robot telah pergi, sambil meningkatkan nilai sel di daerah sekitarnya. Oleh karena itu, sebagai suatu peraturan, jalur terencana yang baru dalam arah yang sama akan mengulangi jalur yang telah dilalui oleh robot (tetapi tanpa jaminan ketat akan hal ini).

4) Jalur smoothing

Jalur terhitung, karena didasarkan pada kisi biasa, sedikit bergerigi. Perubahan arah yang signifikan dapat menyebabkan perintah kontrol yang tidak diinginkan. Untuk menghindari hal ini, algoritma perataan De Boer diterapkan.

Selain itu, perencanaan jalur berbasis grid sering mengarah ke jalur yang optimal secara teknis tetapi kurang diinginkan ke target. Kami memecahkan masalah ini dengan menghitung jalur yang dihaluskan untuk setiap iterasi dari penjadwal. Untuk iterasi selanjutnya, sel-sel kartogram tempat jalur yang dihaluskan berjalan diberi nilai yang lebih rendah. Ini memberikan jalan yang lebih langsung dan mulus ke tujuan.

C. Kontrol gaya berjalan: mobilitas dan keseimbangan


Sistem perencanaan navigasi menentukan jalur baru kira-kira sekali per detik. Algoritme untuk mengikuti jalur yang beroperasi pada frekuensi 200 Hz memandu robot sesuai dengan jalur yang direncanakan terakhir. Algoritma ini menciptakan seperangkat perintah dalam bentuk kecepatan tubuh yang diinginkan, termasuk kecepatan maju, kecepatan lateral dan laju yaw tubuh. Kecepatan ini ditransmisikan ke pengontrol gaya berjalan, yang mengontrol pergerakan kaki.

Berdasarkan jarak antara robot dan jalur, satu dari tiga strategi digunakan. Jika robot terletak di dekat bagian jalan, ia mulai bergerak secara diagonal hingga masuk dari samping, bergerak dengan kecepatan penuh. Jika robot jauh dari jalur, ia mengarahkan tepat ke depan ke titik yang diinginkan. Dalam posisi perantara, kombinasi dari strategi ini digunakan.

Penjelasan rinci tentang algoritma kontrol gaya berjalan di luar ruang lingkup artikel ini. Namun, sebagai aturan, kecepatan tubuh bertindak sebagai input kontrol untuk pengontrol kiprah BigDog tingkat rendah. Pengontrol kiprah menghasilkan perintah kekuatan dan posisi untuk setiap sambungan untuk memastikan stabilitas, merespons kelainan, dan menyediakan kecepatan tubuh yang diperlukan. Meskipun perhitungan algoritma investigator jalur dapat digunakan untuk kiprah BigDog apa pun, berlari tetap optimal karena kecepatan dan kemampuan melintasi medan kasar.

Hasil uji lapangan


Sensor dan sistem navigasi yang dijelaskan di atas dipasang pada BigDog dan diuji di luar laboratorium. Tes dilakukan di daerah di mana terdapat banyak pohon, batu-batu besar, semak-semak, bukit-bukit dengan kemiringan hingga 11 derajat. Gambar 1 menunjukkan contoh lanskap. Gambar 2 menunjukkan data dari LIDAR yang diproses oleh robot.


Fig. 1. Medan tempat tes dilakukan


Fig. 2. Pengujian, tampilan teratas. Gambar diterima dari kamera lidar dan stereo. Daerah gelap adalah pohon dan hambatan lainnya. Ukuran jala adalah 5 meter.

Sistem navigasi dan perencana dikembangkan selama 7 bulan, dengan tes reguler setiap lima minggu. Hasil tes terbaru dijelaskan di sini.

Dari 26 tes yang dilakukan, 23 berakhir dengan sukses: robot mencapai tujuan, tidak menemui hambatan, dan tidak dekat dengan ini. Hasil dari tes ini ditandai di PivotTable sebagai Sasaran. Robot jatuh pada akhir hanya satu tes setelah menginjak batu kecil. Biasanya sistem kontrol gaya berjalan mengatasi situasi seperti itu, tetapi tidak kali ini (hasilnya ditandai dalam tabel sebagai Fall - "Fall"). Dalam tiga tes, robot menemui rintangan besar (lebar lebih dari 20 meter). Robot menghitung sisi mana yang terbaik untuk mengatasi rintangan dan tidak maju dalam periode waktu tertentu (20 detik). Hambatan sebesar ini melampaui ruang lingkup di mana sistem otonom dikembangkan. Hasil tes ini ditunjukkan dalam tabel sebagai Live-lock.



Dalam 26 tes ini, robot ditempatkan dalam skenario yang cukup mirip dan di tengah-tengah hutan. Ketika lingkungan menjadi lebih kompleks, jumlah hasil Live-lock meningkat, dan robot memilih jalur yang kurang efisien.

Lebih menarik - di robo-hunter.com :


Saluran YouTube kami

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


All Articles