Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Mengenal ROS2 Galactic

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Network simulator_handbook
Network simulator_handbook
Cargando en…3
×

Eche un vistazo a continuación

1 de 22 Anuncio

Mengenal ROS2 Galactic

Descargar para leer sin conexión

Ini adalah tutorial singkat untuk berkenalan dengan ROS dan ROS2 Galactic. Robotic Operating System bukanlah OS seperti Windows, atau MacOS, melainkan sebuah rangkaian sistem yang dapat membantu pengembangan robot yang kompleks. Dalam tutorial ini kita belajar cara menjalankan ROS2 Galactic dengan cukup mudah tanpa perlu instalasi ROS, yaitu menggunakan docker.

Ini adalah tutorial singkat untuk berkenalan dengan ROS dan ROS2 Galactic. Robotic Operating System bukanlah OS seperti Windows, atau MacOS, melainkan sebuah rangkaian sistem yang dapat membantu pengembangan robot yang kompleks. Dalam tutorial ini kita belajar cara menjalankan ROS2 Galactic dengan cukup mudah tanpa perlu instalasi ROS, yaitu menggunakan docker.

Anuncio
Anuncio

Más Contenido Relacionado

Similares a Mengenal ROS2 Galactic (20)

Anuncio

Más de Dony Riyanto (20)

Más reciente (20)

Anuncio

Mengenal ROS2 Galactic

  1. 1. Mengenal ROS2 Galactic Dony Riyanto Juni 2021 Telegram: @donyriyanto slideshare.net/donyriyanto
  2. 2. Daftar isi • Apa itu Robotic Operating System • Apa itu ROS2 Galactic • Persiapan instalasi • Menjalankan ROS2 dengan Docker • Mengenal perintah-perintah dasar ROS2 • Menjalankan Turtlesim
  3. 3. Apa itu Robotic Operating System • ROS adalah sebuah aplikasi (atau bisa juga disebut sebagai platform/framework) untuk mempermudah pengerjaan proyek robot yang kompleks, menjadi terstruktur, terorganisasi dengan rapih, dan mudah untuk dikembangkan kedepannya karena menggunakan standar. • Inti dari ROS adalah sebuah sistem pubsub (publisher-subscriber), dimana ada pihak yang berfungsi menerbitkan data dan ada pihak yang menerima data. Dalam sebuah sistem robotika yang menggunakan ROS, kita memisahkan beberapa subsistem (sensor/actuator) kedalam 2 atau lebih node. Masing-masing node ini berkomunikasi menggunakan mekanisme pubsub. Setiap node minimal terdiri dari 1 subscriber atau 1 publisher (atau bisa keduanya). • Data yang dikirimkan dalam pubsub ini disebut msg (message) dan dikirimkan dalam per topik (topic). Setiap topic memiliki structur msg tersendiri. Ada banyak jenis struktur msg di ROS. Pada prinsipnya setiap msg memiliki struktur data tertentu, apakah berbentuk rangkaian angka (integer, float), huruf (cha, string) ataupun kombinasinya. Kitapun bisa membuat definisi message tersendiri sesuai kebutuhan, lalu menerbitkannya menggunakan nama topic tertentu yang kita tentukan sendiri.
  4. 4. Apa itu Robotic Operating System *Ilustrasi node, topic dan message https://docs.ros.org/en/foxy/_images/Topic-MultiplePublisherandMultipleSubscriber.gif
  5. 5. Apa itu ROS2 Galactic • ROS2 Galactic adalah distro terbaru dari ROS2 (rilis Mei 2021). ROS2 Galactic adalah distro Long Term Support (LTS) dimana OSRF akan memberikan dukungan resmi lebih utama dan rentang waktu yang lebih panjang dibanding distro lain yang tidak LTS • ROS2 Galactic telah cukup lama dikerjakan dan dinantikan baik oleh komunitas maupun industri. • Data Distribution System (DDS) pada ROS2 Galactic mendapat dukungan penuh dari vendor DDS industri seperti eProsima, RTI, Adlink dan Eclipse dengan proyek Cyclone-nya. DDS ini didukung berbagai organisasi besar seperti Nasa, Comma.ai, Autoware, bahkan PX4 dari Drone Code Foundation.
  6. 6. Apa itu Robotic Operating System Perbedaan arsitektur ROS1 dan ROS2 secara umum
  7. 7. Apa itu ROS2 Galactic Sekilas tentang ROS2: • Menggunakan DDS (default-nya Eclipse Cyclone DDS, tetapi bisa di implementasikan menggunakan berbagai produk DDS lain seperti eProsima FastDDS, ADLINK OpenSplice, RTI Connext). • Menghilangkan konsep Master-Slave (Tidak memiliki ROS Master seperti ROS1. Sehingga tidak memiliki risiko Single-Point-of-Failure apabila master down) • Semua perintah utama menggunakan perintah ros2 <arg1> <arg2> • Semua fungsi/modul utama pada ROS1 akan di-porting ke ROS2, dan ada banyak lagi fitur-fitur baru yang akan ditambahkan • Dokumentasinya jauh lebih baik dan terstruktur dibandingkan dengan dokumentasi ROS1
  8. 8. Persiapan instalasi • Dalam slide ini, akan dibahas cara yang menurut penulis paling mudah dan kecil risiko gagal. Ada banyak cara untuk instalasi ROS2 Galactic, silahkan baca selengkapnya pada https://docs.ros.org/en/galactic/ • Namun diharapkan pembaca sudah familiar dengan Docker. Jika belum, ada banyak sekali tutorial berbahasa Indonesia yang menjelaskan tentang Docker. Misalnya: https://www.youtube.com/watch?v=KrcHmVzmFN8&list=PL-CtdCApEFH- A7jBmdertzbeACuQWvQao • Konfigurasi yang dipakai dalam tutorial ini adalah: • Host : Windows 7 • VM: Menggunakan Virtual Box, instance menggunakan Ubuntu 18 • Docker: Versi 19.03.12 • Docker-compose: Versi 1.26.2 • Python: 3.8 • Tool SSH: MobaXTerm (Windows. Free. https://mobaxterm.mobatek.net/download.html)
  9. 9. Menjalankan Docker ROS2 Galactic • Hidupkan VM Ubuntu dengan Virtual Box • Buka MobaXterm, hubungkan dengan VM Ubuntu dengan cara: ssh <username>@<ip VM Ubuntu> • Cara cepat untuk menjalankan ROS2 Galatic menggunakan Docker adalah, ketik: docker run -it althack/ros2:galactic-full • Sebelum menjalankan perintah pada ROS2, pastikan environment sudah sesuai dan daemon sudah berjalan: source /opt/ros/galactic/setup.bash ros2 daemon start
  10. 10. ROS daemon • Untuk apa ROS daemon? Bukankan ROS2 mengusung konsep peer-too-peer, tanpa master seperti roscore di ROS1? • ROS daemon adalah sebuah daemon yang akan mencari dan terhubung dengan daemon di komputer lain jika ada. Satu komputer cukup satu daemon, setelah itu node akan otomatis terhubung satu dengan lain walaupun beda komputer. • Ketika ROS daemon dijalankan ada beberapa port baru yang dibuka. bisa di cek dengan perintah: netstat -atun | grep LISTEN atau dengan ss -upnl4 • Rangkaian port yang dibuka bergantung pada pilihan domain ID (ROS_DOMAIN_ID). Jika kita tidak mendifinisikan domain id, maka otomatis dipilih domain 0 dengan port yang buka adalah 5900/TCP, 11511/TCP, 33577/UDP, 43470/UDP, 7400/UDP, 7401/UDP • Lebih detail soal domain dan port yang dibuka bisa dibaca disini https://docs.ros.org/en/galactic/Concepts/About-Domain-ID.html
  11. 11. ROS daemon • Untuk mengetahi fungsi masing-masing port yang dibuka, pada bagian bawah dokumen, terdapat port calculator. • Klik link berikut https://docs.ros.org/en/galactic/Concepts/About-Domain- ID.html#domain-id-to-udp-port-calculator ROS2 menggunakan konsep UDP Multicast (dari satu sender ke beberapa receiver dalam group), dan Unicast (dari satu sender ke satu receiver). Bedakan dengan UDP boardcast. Lebih detail tentang Unicast dan Multicast bisa dibaca disini https://www.geeksforgeeks.org/difference-between-unicast-broadcast-and- multicast-in-computer-network/ Jika mau ujicoba UDP broadcast bs juga baca https://www.slideshare.net/DonyRiyanto/creating-udp-broadcast-app-using- python-socket-on-windows-linux
  12. 12. Mengenal ROS2 Galactic • Perhatikan, setelah menjalankan perintah diatas, maka ada beberapa setting evironment ditambahkan. Bisa dilihat dengan cara: printenv | grep ROS • Setting env lain bisa dilihat dengan cara ketik: printenv | grep _PATH
  13. 13. Mengenal ROS2 Galactic • Artinya, instalasi ROS berada di folder /opt/ros/galactic • Semua default package bisa dilihat di folder /opt/ros/galactic/share • Untuk menjalankan perintah ros2 run dan ros2 launch dibutuhkan package dan launch file yang sesuai dengan nama foldernya
  14. 14. Menjalankan Aplikagi GUI • Agar dapat menjalankan aplikasi GUI pada ROS, seperti Rviz, Rqt, Gazebo, ada beberapa cara. Namun agar kita tidak bolak balik pindah dari Windows ke Ubuntu, kita dapat memanfaatkan fitur X11 pada Docker dan Ubuntu, dan ditampilkan ke Windows dengan bantuan X11 session dari MobaXTerm. • Untuk itu ada beberapa langkah yang perlu dilakukan: • Menambahkan setting saat menjalankan perintah Docker. Yaitu -v /tmp/.X11-unix:/tmp/.X11-unix • Memastikan IP dari host (Windows yang menjalankan MobaXterm) • Menjalankan perintah export DISPLAY=<ip host>:0
  15. 15. Contoh Persiapan Menjalankan Aplikagi GUI > docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix althack/ros2:galactic-full > export DISPLAY=<IP host>:0 • Contoh:
  16. 16. Menjalankan Turtlesim > ros2 run turtlesim turtlesim_node
  17. 17. Jika Gagal Tampil & Muncul Pesan Error Jika muncul pesan error, mungkin ada setting pada MobaXTerm yang belum sesuai. Coba lakukan langkah-langkah berikut: 1. Klik Setting, lalu pilih Configuration 2. Klik tab X11 3. Hilangkan centang (unchecked) RANDR 4. Lalu klik Ok 5. Jalankan kemabli perintah turtlesim sebelumnya
  18. 18. Menjalankan Teleop • Jika sudah muncul visualisasi turtlesim, saatnya kita menggerakkannya menggunakan teleop key • Teleop key adalah node yang umum ada di proyek ROS yang berfungsi untuk mengendalikan robot menggunakan keyboard • Buka tab baru di MobaXTerm, lakukan ssh lagi ke Ubuntu • Lihat daftar contrainer: docker ps • Perhatikan nama container-nya
  19. 19. Menjalankan Teleop • Eksekusi bash shell pada container tersebut dengan cara: docker exec -it <nama container> bash • Lalu jalankan teleop key: ros2 run turtlesim turtle_teleop_key
  20. 20. Menjalankan Teleop • Untuk memudahkan kita mengendalikan robot turtlesim, kita bisa memisahkan teminal teleop supaya bisa bergerak bebas. Caranya klik dan tahan tab terminal teleop, lalu tarik ke bawah • Terminal akan terpisah, sehingga bisa di-resize dan geser mendekati layar visualisasi turtlesim Jika hendak dikembalikan ke tab utama, bisa klik 'Reattach this tab'
  21. 21. Apa yang terjadi? • Pada saat turtlesim dijalankan, ROS akan menjalankan dan mendaftarkan beberapa node dan topic baru. • Daftar node ini dapat dilihat dengan mengetik: ros2 node list • Untuk meilhat daftar topic, bisa dengan: ros2 topic list
  22. 22. Ringkasan Jadi untuk menjalankan turtlesim di ROS2 Galactic, ringkasannya perintahnya adalah sbb: • Menjalankan turtlesim, dengan cara ketik: ros2 run turtlesim turtlesim_node & • Akan terbentuk node baru. Tanda & dibelakang perintah tersebut adalah agar perintah tersebut dijalankan pada background, sehingga kita bisa melanjutkan mengetik perintah berikutnya di terminal yang sama. • Untuk mengendalikan turtle, jalankan perintah: ros2 run turtlesim turtle_teleop_key • Ikuti instruksi pada layar untuk menggerakkan & memutar arah turtle

×