Instal Gazebo untuk ROS 2 dalam waktu kurang dari satu menit

Ubuntu


Baru-baru ini, kami mengumumkan rilis beta Gazebo snap untuk membantu Anda menginstal Gazebo untuk ROS 2. Saat ini mendukung Gazebo Citadel dan oleh karena itu ROS 2 Foxy.

Untuk lebih jelasnya, ketika kita berbicara tentang Gazebo, kita mengacu pada Gazebo “baru” (sebelumnya Gazebo Pengapian).

Yuk simak cara memasang Gazebo untuk ROS 2 menggunakan Gazebo snap!

Cara memasang Gazebo untuk ROS 2 menggunakan Gazebo snap

Karena snap Gazebo dalam versi beta pada saat penulisan, kami menentukan saluran untuk menginstalnya:

dengan pilihan --channel, kami secara eksplisit menggunakan jalur (arg) dan risiko (beta). Kami secara otomatis menerima pembaruan dari saluran ini. Jika distribusi Linux pilihan Anda saat ini tidak mendukung snap, lihat dokumentasi instalasi snapd untuk detail lebih lanjut.

sudo snap install gazebo --channel=citadel/beta

Setelah instalasi, kita dapat menjalankan Gazebo yang baru diinstal dengan perintah gazebo.gz gazebo.

Apa yang bisa dilakukan Snap Gazebo?

Mari kita uji Gazebo Snap dengan contoh sederhana:

gazebo.gz gazebo shapes.sdf

Kami sekarang melihat demo “bentuk” dan dapat berinteraksi dengannya:

Ini adalah demo kecil untuk memastikan semuanya bekerja dengan baik. Tapi mari kita coba contoh yang lebih menarik.

Memuat dunia di Gazebo

Gazebo memungkinkan kita memuat dunia untuk simulasi. File dunia dapat menjadi milik kita atau salah satu dari banyak file yang tersedia untuk umum. Di bagian ini, kita akan mengeksplorasi cara memuat dunia ke dalam simulasi kita.

Muat dunia dari bahan bakar

Gazebo Fuel adalah database online yang memungkinkan orang mengakses banyak dunia dan model. Kami akan menggunakannya untuk menemukan demo yang menarik dan menjalankannya.

Dari bagian dunia, kita dapat memilih sampel yang kita inginkan. Mari kita puas menggunakan tugbot_depot global dari MovAI. Salin URL dunia dengan mengklik ikon chevron.

Kami menempatkan URL ini langsung ke Gazebo, sehingga akan diunduh dan diluncurkan secara otomatis. Jadi mari kita tutup demo sebelumnya dan buka kembali Gazebo dengan versi baru. Bersabarlah, unduhan mungkin memakan waktu cukup lama:

gazebo.gz gazebo "https://fuel.gazebosim.org/1.0/MovAi/worlds/tugbot_depot"

Setelah beberapa detik, Anda akan melihat dunia gudang serta robot seperti yang ditunjukkan di bawah ini.

Luangkan waktu beberapa menit untuk menjelajahi gudang dan pikirkan detail demo ini!

Muat dunia dari host

Kami juga dapat memuat file SDF dari host kami secara langsung dengan dunia lokal yang tersedia. Mari kita coba demo kontrol bersama Nao dengan memuat dunia di host:

gazebo.gz fuel download -u https://fuel.ignitionrobotics.org/1.0/OpenRobotics/worlds/NAO%20joint%20control

Jika Anda ingin mempelajari lebih lanjut tentang baris perintah Bahan Bakar, lihat dokumentasinya.

Sekarang kita bisa melakukannya dengan:

gazebo.gz gazebo -r ~/snap/gazebo/current/.ignition/fuel/fuel.ignitionrobotics.org/openrobotics/worlds/nao%20joint%20control/1/nao_world.sdf

Perhatikan bagaimana demo diunduh di ‘~/snap/gazebo/map Folder ini dan isinya dipertahankan di seluruh pembaruan dan rollback. Informasi lebih lanjut tentang ini di halaman dokumentasi.

Menambahkan opsi “-r” untuk memulai simulasi saat startup. Dengan memulai simulasi, kita bisa bermain dengan pengontrol posisi bersama!

Sekarang kita telah melihat cara memuat dunia ke Snap Gazebo kita. Mari kita lihat bagaimana membawa ROS 2 ke dalam persamaan!

Jalankan pengontrol Gazebo ROS 2

Untuk bagian ini, kita memerlukan sistem dengan ROS 2 Foxy di Ubuntu 20.04 (atau wadah dengan ROS2 foxy). gz_snap_ros2_control_demos berisi paket ROS 2 launchfiles dan pengaturan yang mirip dengan gz_ros2_control_demos. Perbedaan utama adalah karena launchfiles Jalankan program snap gazebo. Segala sesuatu yang berhubungan dengan Gazebo terjadi dari saat ini. Kita perlu membuat ruang kerja ROS 2 dan mensimulasikan gz_snap_ros2_control_demos:

. /opt/ros/foxy/setup.bash
mkdir -p ~/r2_ws/src
cd ~/r2_ws/src
git clone https://github.com/Guillaumebeuzeboc/gz_snap_ros2_control_demos -b foxy
cd ~/r2_ws
rosdep install --from-paths src/gz_snap_ros2_control_demos/ --rosdistro=foxy -i -y
colcon build
. install/local_setup.bash

Sekarang, kami siap menjalankan demo:

ros2 launch gz_snap_ros2_control_demos diff_drive_example.launch.py

Dan di terminal lain kita dapat menjalankan kode contoh yang berinteraksi dengannya:

. ~/r2_ws/install/setup.bash
ros2 run gz_snap_ros2_control_demos example_diff_drive

Sekarang kita melihat pergerakan robot:

Ada tiga demo lagi dari paket ini yang bisa kita coba. Luangkan waktu beberapa menit dan cobalah.

Gunakan jembatan ROS Ign

Untuk bertukar pesan antara ROS 2 dan Gazebo, kita dapat menggunakannya ros-ign-bridge. Di sini sekali lagi kita asumsikan Gazebo snap terinstal dan kita berada di mesin dengan Ubuntu 20.04 dengan ROS 2 foxy terinstal.

Kali ini kita akan membutuhkan tiga terminal. Satu untuk kunci Gazebo, satu untuk ros-ign-bridge Dari Gazebo Snap dan satu untuk memvisualisasikan hasilnya.

Pada peluncuran pertama Terminal Gazebo:

gazebo.gz gazebo "https://fuel.gazebosim.org/1.0/MovAi/worlds/tugbot_depot"

Di terminal kedua, kami menjalankan ros-ign-bridge. Kami menjembatani tema Gazebo, /model/tugbot/pose (Untuk membuat daftar topik Gazebo dengan gazebo.gz topic -l) dengan perintah:

gazebo.ros-gz-bridge parameter_bridge /model/tugbot/pose@geometry_msgs/msg/Pose@ignition.msgs.Pose

Dan akhirnya, di terminal terakhir, kita bisaechoIni dijembatani (jangan lupa untuk menekan tombol “play” di GUI simulasi):

. /opt/ros/foxy/setup.bash
ros2 topic echo /model/tugbot/pose

Selamat, Anda telah berhasil melakukan porting pose robot dari Gazebo ke ROS 2.

Batasan yang diketahui

Gazebo Snap hadir dengan batasan yang diketahui yang masih kami selidiki, khususnya:

  • Kurangnya akses ke jalur sistem host (mis /opt/ros). Pastikan file Anda, seperti model bot, ada di $HOME direktori.
  • Plugin khusus belum didukung.

Ringkasan Instal Gazebo untuk ROS 2

Kami telah membahas cara menginstal Gazebo untuk ROS 2, menggunakan dan berinteraksi dengan snap Gazebo. Ini memungkinkan Anda memasang Gazebo dengan mudah untuk mensimulasikan robot Anda dan lingkungannya. Dengan pengontrol Gazebo ROS 2 yang terpasang di Snap, Anda dapat dengan mudah menyesuaikan simulasi dengan simulator robotika favorit Anda.

Kami berencana untuk segera merilis foto ROS2 Humble Gazebo Fortress, jadi pantau terus!

Jika Anda memiliki umpan balik atau ide lain tentang Gazebo Snap, silakan bergabung dengan komunitas kami dan beri tahu kami pendapat Anda. Selain itu, jika Anda ingin mempelajari lebih lanjut tentang Snap untuk aplikasi robotika, lihat dokumentasi Snap.



Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *