Implementasi tugas robot pada platform KUKA youBot, bagian 1

Para pembaca Geektimes yang terhormat, Anda disambut oleh Biro Desain Mahasiswa (departemen teknik Robotika atau RED) dari Departemen SIM di Universitas ITMO. Mereka sudah menulis tentang kita di blog universitas kita.

Dalam kerangka program pengembangan universitas, RED mengejar beberapa tujuan, dan salah satunya adalah partisipasi dalam robot kompetitif siswa di tingkat internasional. Sebagai platform peluncuran, kompetisi RoboCup internasional yang populer dipilih . Ada beberapa jenis kompetisi di RoboCup, dari robofootball hingga kompetisi robot yang berorientasi sosial, yang telah diadakan di berbagai negara sejak 1997. Tim Rusia juga berpartisipasi dalam kompetisi dan memenangkan hadiah.

Berdasarkan peralatan teknis RED dan analisis lingkungan kompetitif, salah satu kategori kompetisi yang mungkin adalah RoboCup @ Work , di mana banyak manipulator industri bersaing dalam melakukan tugas-tugas khas mereka. Pilihan ini sebagian besar disebabkan oleh fakta bahwa departemen memiliki beberapa robot industri YouBot yang dibuat oleh KUKA. youBot adalah platform seluler omnidirectional tempat manipulator dengan kebebasan lima derajat, dengan pegangan dua jari, dipasang. Paket Termasuk: Laser Rangefinder URG-04LX-UG01 dari Hokuyo Automatic Co. dengan rentang pengukuran 5.600 mm pada 240 Β°, dengan mana Anda dapat menerapkan lokalisasi dan pemetaan; Perangkat pengenalan gerakan ASUS Xtion, mirip dengan Microsoft Kinect. Pembuatnya menghadirkan robot yang sangat cocok untuk bidang pendidikan.





Anda dapat menginstal OS di papan pengontrol youBot (dalam kasus kami, Ubuntu 12.04), yang memungkinkan Anda untuk memulai kontrol segera pada komputer yang dibangun di dalam robot. Komunikasi dengan robot adalah melalui modul Wi-Fi.

Bekerja dengan youBot adalah kesempatan yang sangat bagus untuk mengenal manipulator industri. Tetapi pertama-tama, kita perlu menguji diri kita sendiri dan Anda.

Diputuskan untuk menerapkan pada Anda. Tugas yang jelas untuk manipulator bergerak semacam ini - untuk menemukan dan menangkap objek target. Algoritma program adalah sebagai berikut:
  1. Lokalisasi dan pemetaan: menentukan lokasi situs target di mana objek berdiri, di antara hambatan (hambatan adalah papan rendah - "dinding") dengan pendekatan selanjutnya ke situs.
  2. : , , .
  3. .

Masalah lokalisasi diselesaikan menggunakan pengintai laser di atas, dan tugas pengenalan diselesaikan menggunakan ASUS Xtion. Yang perlu kita lakukan adalah menulis program yang memproses data dari sensor-sensor ini (manfaatnya adalah ada perpustakaan terbuka yang siap pakai untuk keperluan ini), dan juga mengimplementasikan penangkapan objek. Selain itu, Anda perlu menggabungkan ketiga bagian tugas menjadi satu sistem.

Kami memutuskan untuk mengontrol Anda, Otak, proses data dan berkomunikasi antara sensor dan robot menggunakan Sistem Operasi Robot. Sudah ada artikel tentang Habr tentang ROS dan tentang robot yang bekerja dengan bantuannya. Sebagai contoh, ini menceritakan tentang implementasi robot hexapod yang luar biasa, mulai dari parsing iron dan merancang model hingga menggabungkan semua node di bawah kendali ROS.

Untuk jaga-jaga, kami ingat bahwa ROS adalah kerangka kerja untuk bekerja dengan robot yang memfasilitasi pengembangan dan integrasi berbagai komponen perangkat lunak. ROS digunakan baik dalam proyek-proyek amatir dan pendidikan, dan untuk pengembangan program robot industri. Perlu dicatat bahwa versi kedua ROS saat ini sedang dikembangkan , yang berjanji untuk memasukkan lebih banyak fitur untuk mengembangkan robot.

ROS menyediakan banyak layanan dari OS standar: abstraksi perangkat keras, kontrol perangkat tingkat rendah, pengiriman pesan antar proses, dan manajemen paket. ROS terdiri dari dua bagian: inti perangkat lunak ros itu sendiri , dan ros-pkg , satu set paket ( paket), di dalamnya yang berisi data, perpustakaan, yang dapat dieksekusi dan konfigurasi, secara logis digabungkan menjadi modul yang bermanfaat.

Konsep dasar dari komponen komunikasi di ROS adalah node ( simpul ), pesan ( message ) dan topik ( topik) Node adalah proses yang berjalan yang dapat berkomunikasi dengan proses lain. Topik - pipa bernama yang menghubungkan berbagai node. ROS didasarkan pada arsitektur grafik, di mana pemrosesan data berlangsung dalam node yang dapat menerima dan mengirimkan pesan di antara mereka sendiri. Pesan-pesan ini diterbitkan dalam topik-topik yang membagi pesan menjadi kelompok-kelompok kepentingan. Ketika simpul tertentu perlu menerima pesan dengan data tertentu, simpul ini berlangganan ke topik tertentu. Karena ini ada hubungan antara node "pelanggan-penerbitΒ» ( penerbit-pelanggan ).

Dalam kasus kami, kernel ROS berjalan pada pengontrol youBot itu sendiri, dan di sana grafik pemrosesan data diatur antara tiga simpul program (lokalisasi, pengenalan objek, dan tangkapan). Node ini mempublikasikan data tentang pekerjaan mereka dalam topik yang sesuai, apakah itu informasi tentang robot yang mencapai platform target atau koordinat objek. Untuk tiga topik, node kontrol utama ditandatangani, yang memonitor pekerjaan dari tiga lainnya, dan menerbitkan perintah dalam topik khusus, yang dikelola node berlangganan. Oleh karena itu, grafik kontrol terlihat seperti ini:



Untuk mempercepat pekerjaan, kami dibagi menjadi tiga tim, yang masing-masing harus mengimplementasikan satu dari tiga node.

Pada artikel selanjutnya kami akan memberi tahu bagaimana kami berhasil menerapkan pelokalan, dan apa yang kami gunakan untuk ini.
Tetap bersama kami.

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


All Articles