ROS2 (Robot Operating System 2) adalah framework perangkat lunak open-source yang dirancang khusus untuk pengembangan robot.
ROS2 menyediakan berbagai tools dan library yang bisa digunakan untuk membangun robot. Dengan ROS2, programmer dapat fokus pada pengembangan logika robot tanpa perlu repot membangun infrastruktur dasar seperti komunikasi antar komponen robot.
Untuk instalasi ROS2, ada dua pilihan utama:
Rekomendasi: Install langsung di perangkat dengan Linux Ubuntu 22.04
Jika kamu sudah menggunakan Ubuntu 22.04 sebagai OS di perangkat, kamu bisa langsung melanjutkan ke step berikutnya.
Alternatif: Install ROS2 via Ubuntu 22.04 di VirtualBox (Windows Host)
Cocok untuk pengguna Windows agar bisa menjalankan ROS2 di lingkungan Linux. Untuk detail klik di sini
Next Step:
| Step | Topic | Description | Link |
|---|---|---|---|
| 1 | Build Tool Colcon | Instalasi dan pengenalan build tool colcon di ROS 2 | klik |
| 2 | Create Workspace | Pembuatan workspace sebagai dasar pengembangan ROS 2 | klik |
| 3 | Create Package | Membuat package menggunakan Python dan C++ | klik |
| 4 | ROS2 Node | Penjelasan konsep dan arsitektur node dalam ROS 2 | klik |
| 5 | Write a Node Using Python | Implementasi node ROS 2 menggunakan bahasa Python | klik |
| 6 | Write a Node Using C++ | Implementasi node ROS 2 menggunakan bahasa C++ | klik |
| 7 | Template for Nodes | Template OOP untuk membuat node dalam Python dan C++ | klik |
| 8 | Section 1 Conclusion | Kesimpulan dan rangkuman materi pada Section 1 | klik |
| Step | Topic | Description | Link |
|---|---|---|---|
| 9 | ROS2 Topic | Penjelasan konsep topic pada node | klik |
| 10 | Write a Python Publisher | Membuat publisher menggunakan Python | klik |
| 11 | Write a Python Subscriber | Membuat subscriber menggunakan Python | klik |
| 12 | Write a C++ Publisher | Membuat publisher menggunakan C++ | klik |
| 13 | Write a C++ Subscriber | Membuat subscriber menggunakan C++ | klik |
| 14 | Experiment on Topics with Turtlesim | Bereksperimen topic ROS2 menggunakan simulasi Turtlesim | klik |
| 15 | Activity ROS2 Topics | Aktivitas praktikal untuk memperkuat pemahaman topic di ROS2 | klik |
| 16 | Section 2 Conclusion | Kesimpulan dan rangkuman materi pada Section 2 | klik |
| Step | Topic | Description | Link |
|---|---|---|---|
| 17 | ROS2 Service | Penjelasan konsep service pada node ROS2 | klik |
| 18 | Write a Python Server | Membuat service server menggunakan Python | klik |
| 19 | Write a Python Client | Membuat service client menggunakan Python | klik |
| 20 | Write a C++ Server | Membuat service server menggunakan C++ | klik |
| 21 | Write a C++ Client | Membuat service client menggunakan C++ | klik |
| 22 | Experiment on Services with Turtlesim | Bereksperimen dengan service ROS2 untuk latihan langsung | klik |
| 23 | Activity ROS2 Services | Aktivitas praktikal untuk memperkuat pemahaman service di ROS2 | klik |
| 24 | Section 3 Conclusion | Kesimpulan dan rangkuman materi pada Section 3 | klik |
-
ctrl+cuntuk menghentikan program pada terminal -
Selalu menjalankan
source ~/.bashrcsebelum membuat package baru atau node baru. -
Ketika modify file code dan menjalankannya kita perlu build colcon
colcon build --packages-select <your_pkg_name>.Parameter Dasar Parameter Lanjutan Keterangan topiclistMenampilkan daftar topik yang aktif. info /<topic>Menampilkan informasi tentang topik seperti jumlah publisher dan subscriber. echo /<topic>Menampilkan pesan yang dipublikasikan pada topik secara real-time. hz /<topic>Menghitung dan menampilkan frekuensi (hertz) dari pesan yang diterima pada topik. bw /<topic>Mengukur bandwidth (throughput) dari pesan yang dikirim pada topik. pub -r <freq> /<topic> <tipe_msg> "{data}"Mempublikasikan pesan ke topik secara manual. Contoh: ros2 topic pub -r 10 /robot_news example_interfaces/msg/String "{data: 'hello from terminal'}"servicelistMenampilkan daftar service yang aktif. type /<service>Menampilkan tipe service dari nama service yang dipilih. call /<service> <tipe_srv> "{data}"Memanggil service secara manual. Contoh: ros2 service call /reset_counter example_interfaces/srv/SetBool "{data: true}"info /<service>Menampilkan detail informasi tentang service, termasuk tipe request dan response. nodelistMenampilkan daftar node yang aktif. info /<node>Menampilkan informasi tentang node, termasuk publisher, subscriber, service, dll. list_endpoints /<node>Menampilkan daftar endpoint (topik dan service) yang digunakan oleh node. interfaceshow <tipe_msg_or_srv>Menampilkan struktur data lengkap dari sebuah pesan atau service. Contoh: ros2 interface show geometry_msgs/msg/Twistatauros2 interface show example_interfaces/srv/SetBoolbagrecord /<topic>ORrecord -o <folder_name> /<topic>Merekam isi topik ke dalam sebuah folder sampai dihentikan secara manual. info <folder_name>Menampilkan informasi tentang rekaman yang ada dalam folder tertentu. play <folder_name>Memutar ulang data topik yang sudah direkam dalam folder. -
ROS2 Other Tools
Topic Description Link Debug and Monitor Your Nodes Teknik untuk memantau dan debug node ROS2 secara real-time klik Colcon Tips Tips dan trik dalam menggunakan colcon untuk membangun project ROS2 klik Rqt and rqt_graph Visualisasi dan pemantauan komunikasi antar node dengan rqtdanrqt_graphklik Discover Turtlesim Eksplorasi dasar penggunaan Turtlesim sebagai simulasi di ROS2 klik Remap a Topic at Runtime Cara melakukan remapping topic saat runtime tanpa mengubah kode klik