SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Mengenal ROS2 Galactic
Dony Riyanto
Juni 2021
Telegram: @donyriyanto
slideshare.net/donyriyanto
Daftar isi
• Apa itu Robotic Operating System
• Apa itu ROS2 Galactic
• Persiapan instalasi
• Menjalankan ROS2 dengan Docker
• Mengenal perintah-perintah dasar ROS2
• Menjalankan Turtlesim
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.
Apa itu Robotic Operating System
*Ilustrasi node, topic dan message https://docs.ros.org/en/foxy/_images/Topic-MultiplePublisherandMultipleSubscriber.gif
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.
Apa itu Robotic Operating System
Perbedaan arsitektur ROS1 dan ROS2 secara umum
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
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)
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
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
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
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
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
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
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:
Menjalankan Turtlesim
> ros2 run turtlesim turtlesim_node
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
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
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
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'
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
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

Mais conteúdo relacionado

Mais procurados

1. over view and history of c
1. over view and history of c1. over view and history of c
1. over view and history of c
Harish Kumawat
 
Main project report on GSM BASED WIRELESS NOTICE BOARD
Main project report on GSM BASED WIRELESS NOTICE BOARD Main project report on GSM BASED WIRELESS NOTICE BOARD
Main project report on GSM BASED WIRELESS NOTICE BOARD
Ganesh Gani
 

Mais procurados (20)

Unit 3 sp assembler
Unit 3 sp assemblerUnit 3 sp assembler
Unit 3 sp assembler
 
Fire fighting Robot
Fire fighting RobotFire fighting Robot
Fire fighting Robot
 
1. over view and history of c
1. over view and history of c1. over view and history of c
1. over view and history of c
 
A report on ultrasonic distance measurement
A report on ultrasonic distance measurementA report on ultrasonic distance measurement
A report on ultrasonic distance measurement
 
InfiniBand Presentation
InfiniBand PresentationInfiniBand Presentation
InfiniBand Presentation
 
Automatic Fire Fighting Robot by St John College
Automatic Fire Fighting Robot by St John CollegeAutomatic Fire Fighting Robot by St John College
Automatic Fire Fighting Robot by St John College
 
Electronics Projects List for Engineering Students
Electronics Projects List for Engineering StudentsElectronics Projects List for Engineering Students
Electronics Projects List for Engineering Students
 
Linux Programming
Linux ProgrammingLinux Programming
Linux Programming
 
Risc processors
Risc processorsRisc processors
Risc processors
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 
Microprocessor square wave
Microprocessor square waveMicroprocessor square wave
Microprocessor square wave
 
Intel(r) Quick Assist Technology Overview
Intel(r) Quick Assist Technology OverviewIntel(r) Quick Assist Technology Overview
Intel(r) Quick Assist Technology Overview
 
Main project report on GSM BASED WIRELESS NOTICE BOARD
Main project report on GSM BASED WIRELESS NOTICE BOARD Main project report on GSM BASED WIRELESS NOTICE BOARD
Main project report on GSM BASED WIRELESS NOTICE BOARD
 
Alcohol detection system with gsm and gps (fiem , ece)
Alcohol detection system with gsm and gps (fiem , ece)Alcohol detection system with gsm and gps (fiem , ece)
Alcohol detection system with gsm and gps (fiem , ece)
 
Vlsi ieee projects
Vlsi ieee projectsVlsi ieee projects
Vlsi ieee projects
 
Steps for c program execution
Steps for c program executionSteps for c program execution
Steps for c program execution
 
BOMB DETECTION ROBOT BY USING GSM & GPS
BOMB DETECTION ROBOT BY USING GSM & GPSBOMB DETECTION ROBOT BY USING GSM & GPS
BOMB DETECTION ROBOT BY USING GSM & GPS
 
Automatic Night Light
Automatic Night LightAutomatic Night Light
Automatic Night Light
 
Programming Fundamentals lecture 1
Programming Fundamentals lecture 1Programming Fundamentals lecture 1
Programming Fundamentals lecture 1
 
Cross platform app development with flutter
Cross platform app development with flutterCross platform app development with flutter
Cross platform app development with flutter
 

Semelhante a Mengenal ROS2 Galactic

Makalah pemrograman generasi keempat postgresql
Makalah pemrograman generasi keempat postgresqlMakalah pemrograman generasi keempat postgresql
Makalah pemrograman generasi keempat postgresql
faisalrafix
 
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Sutni_Wulan_Sari_Puasa
 

Semelhante a Mengenal ROS2 Galactic (20)

Integrasi slims atau eprints dengan dspace
Integrasi slims atau eprints dengan dspaceIntegrasi slims atau eprints dengan dspace
Integrasi slims atau eprints dengan dspace
 
Automatic Backup via FTP - Part 2
Automatic Backup via FTP - Part 2Automatic Backup via FTP - Part 2
Automatic Backup via FTP - Part 2
 
Uas tik
Uas tikUas tik
Uas tik
 
SNORT
SNORTSNORT
SNORT
 
2013-8. Remastering Ubuntu 12.04
2013-8. Remastering Ubuntu 12.04 2013-8. Remastering Ubuntu 12.04
2013-8. Remastering Ubuntu 12.04
 
Makalah pemrograman generasi keempat postgresql
Makalah pemrograman generasi keempat postgresqlMakalah pemrograman generasi keempat postgresql
Makalah pemrograman generasi keempat postgresql
 
Debian
DebianDebian
Debian
 
Tugas SO2 muh. irwandi 10 332
Tugas SO2 muh. irwandi 10 332Tugas SO2 muh. irwandi 10 332
Tugas SO2 muh. irwandi 10 332
 
Tugas so2 muh. irwandi 10 332
Tugas so2 muh. irwandi 10 332Tugas so2 muh. irwandi 10 332
Tugas so2 muh. irwandi 10 332
 
Superkomputer dengan Native Linux(encrypted)
Superkomputer dengan Native Linux(encrypted)Superkomputer dengan Native Linux(encrypted)
Superkomputer dengan Native Linux(encrypted)
 
laporan INSTALASI OS LINUX
laporan INSTALASI OS LINUXlaporan INSTALASI OS LINUX
laporan INSTALASI OS LINUX
 
Cara install-server-centos
Cara install-server-centosCara install-server-centos
Cara install-server-centos
 
Publikasi 07.11.1856
Publikasi 07.11.1856Publikasi 07.11.1856
Publikasi 07.11.1856
 
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
 
Command Line di Linux
Command Line di LinuxCommand Line di Linux
Command Line di Linux
 
Linux
LinuxLinux
Linux
 
Sistem Operasi Close & Open Source
Sistem Operasi Close & Open SourceSistem Operasi Close & Open Source
Sistem Operasi Close & Open Source
 
Administrasi Server Jaringan.pptx
Administrasi Server Jaringan.pptxAdministrasi Server Jaringan.pptx
Administrasi Server Jaringan.pptx
 
02 presentasi sistem_operasi_open_source
02 presentasi sistem_operasi_open_source02 presentasi sistem_operasi_open_source
02 presentasi sistem_operasi_open_source
 
Chapter 2 sistem operasi
Chapter 2 sistem operasiChapter 2 sistem operasi
Chapter 2 sistem operasi
 

Mais de Dony Riyanto

Mais de Dony Riyanto (20)

KNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdfKNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdf
 
Implementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI ADImplementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI AD
 
Blockchain untuk Big Data
Blockchain untuk Big DataBlockchain untuk Big Data
Blockchain untuk Big Data
 
Membuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan SimulasiMembuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan Simulasi
 
Creating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & LinuxCreating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & Linux
 
Desain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAVDesain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAV
 
Application Performance, Test and Monitoring
Application Performance, Test and MonitoringApplication Performance, Test and Monitoring
Application Performance, Test and Monitoring
 
Cloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+AnalyticsCloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+Analytics
 
RealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform WhitepaperRealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform Whitepaper
 
Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4
 
Review of Existing Response System & Technology.
Review of Existing Response System & Technology.Review of Existing Response System & Technology.
Review of Existing Response System & Technology.
 
Beberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro PaymentBeberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro Payment
 
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANGRencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANG
 
Implementasi Full Textsearch pada Database
Implementasi Full Textsearch pada DatabaseImplementasi Full Textsearch pada Database
Implementasi Full Textsearch pada Database
 
Beberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing appBeberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing app
 
Pengenalan Big Data untuk Pemula
Pengenalan Big Data untuk PemulaPengenalan Big Data untuk Pemula
Pengenalan Big Data untuk Pemula
 
Introduction to BACnet: Building Automation & Control Network
Introduction to BACnet: Building Automation & Control NetworkIntroduction to BACnet: Building Automation & Control Network
Introduction to BACnet: Building Automation & Control Network
 
Enterprise Microservices
Enterprise MicroservicesEnterprise Microservices
Enterprise Microservices
 
Edge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology ImplementationEdge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology Implementation
 
GUGUS-a mini program prototype
GUGUS-a mini program prototypeGUGUS-a mini program prototype
GUGUS-a mini program prototype
 

Último

397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
VinaAmelia23
 
LAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfLAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdf
IftitahKartika
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
Arisatrianingsih
 
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
EnginerMine
 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
arifyudianto3
 
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
rororasiputra
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
yoodika046
 

Último (19)

397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
 
LAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfLAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdf
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
 
sample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Partsample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Part
 
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptPresentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
 
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE TriwulanpptxLaporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
 
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxUTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
 
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
 
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
 
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdfPengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
 
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptBAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
 
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
 
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdfB_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
 
Konsep rangkaian filter aktif berbasis operational amplifier
Konsep rangkaian filter aktif berbasis operational amplifierKonsep rangkaian filter aktif berbasis operational amplifier
Konsep rangkaian filter aktif berbasis operational amplifier
 
PEMELIHARAAN JEMBATAN pada Ujian Kompete
PEMELIHARAAN JEMBATAN pada Ujian KompetePEMELIHARAAN JEMBATAN pada Ujian Kompete
PEMELIHARAAN JEMBATAN pada Ujian Kompete
 
perbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxperbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptx
 
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
 

Mengenal ROS2 Galactic

  • 1. Mengenal ROS2 Galactic Dony Riyanto Juni 2021 Telegram: @donyriyanto slideshare.net/donyriyanto
  • 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. 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. Apa itu Robotic Operating System *Ilustrasi node, topic dan message https://docs.ros.org/en/foxy/_images/Topic-MultiplePublisherandMultipleSubscriber.gif
  • 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. Apa itu Robotic Operating System Perbedaan arsitektur ROS1 dan ROS2 secara umum
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Menjalankan Turtlesim > ros2 run turtlesim turtlesim_node
  • 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. 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. 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. 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. 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. 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