Anda di halaman 1dari 13

TUGAS KELOMPOK ROBOTIKA

- Raspi Mouse -

Kelompok 5 :
1. Aisha Salsabilla (20/459165/PA/19826)
2. Denaya Prama Sidya (20/462078/PA/20050)
3. Farhan Ardiyanto (20/462082/PA/20054)
4. Galang Ridha Allatief (19/442375/PA/19124)
5. Julio Alifiansyah (19/445568/PA/19392)
6. Leonard Fidelcristo Supit (19/442379/PA/19128)
7. Novelio Putra Indarto (19/442386/PA/19135)
8. Wahyu Afriza (20/459189/PA/19850)
9. Yohan Argha Priyatama (20/462098/PA/20070)
10. Yonathan Aryanda Wijaya (19/442391/PA/19140)

1. ROS 1 Noetic
Pada 7 November 2007, ROS 1 dirancang di willow garage oleh sekelompok insinyur
muda dan juga beberapa peneliti. Sejak saat itu, ROS kian berkembang dan hingga pada
akhirnya merilis 12 versi, dimana versi ke 13 resmi menjadi versi terakhir ROS 1 yaitu
noetic ninjemys. Noetic merupakan rilis dari LTS dan memiliki dukungan selama lima
tahun. Penambahan dukungan Python 3 menjadikannya titik awal yang bagus untuk
transisi ke ROS 2. Meskipun rilis untuk ROS 1 telah resmi berakhir yang didukung oleh
Open Robotics, ROS1 ini tetap dapat diakses melalui open source untuk melanjutkan
dukungan tanpa batas.

Robot Operating System (ROS) adalah seperangkat library software dan alat yang telah
dibuat untuk membantu pengembang membangun aplikasi robot. Dari driver hingga
algoritma yang canggih, dan dengan alat pengembang yang handal, ROS merupakan
seperangkat alat yang diperlukan untuk setiap proyek robotika.

Lingkungan ROS dikembangkan oleh Willow Garage untuk robot PR2. PR2 adalah robot
humanoid yang dapat bernavigasi secara mandiri di lingkungan yang dikenal. Saat ini,
mereka tahu bahwa PR2 tidak akan menjadi satu-satunya robot di pasar dan alih-alih
mengembangkan program yang dipersonalisasi yang hanya berfungsi untuk PR2, mereka
ingin menerapkan perangkat lunak yang terukur dan standar untuk meningkatkan atau
memodifikasi robot di masa depan. Jadi, mereka bekerja pada middleware, ROS, dengan
mendefinisikan tingkat abstraksi agar berguna pada robot lain. Contoh-contoh robot yang
beroperasi menggunakan ROS 1 Noetic yaitu :

1. TurtleBot3
TurtleBot3 adalah robot TurtleBot generasi paling baru yang modular, ringkas, dan
mudah disesuaikan. Robot ini banyak digunakan untuk aplikasi pendidikan,
penelitian, dan pengembangan suatu produk. TurtleBot3 dapat disesuaikan dengan
berbagai cara. TurtleBot3 menerapkan kemajuan teknis terbaru dari SBC (Single
Board Computer), sensor kedalaman dan teknologi 3D printing.

(https://robots.ros.org/turtlebot3/)
2. COEX Clover
COEX Clover merupakan robot quadcopter yang mencakup autopilot yang
kompatibel dengan Pixracer dengan firmware berbasis PX4, Raspberry Pi 4
sebagai komputer, kamera untuk navigasi, dan sensor tambahan lainnya.
(https://robots.ros.org/clover/)

3. Crazyflie
Crazyflie merupakan nano-quadcopter dengan open-source dan open-hardware
yang dibuat oleh Bitcraze. Crazyflie sendiri memiliki beberapa model, yaitu
Crazyflie 2.X yang merupakan quadrotor kecil dan Crazyflie Bolt yang berupa flight
controller untuk quadrotor yang dapat digunakan untuk drone custom.
(https://robots.ros.org/crazyflie/)
2. ROS 2 Foxy

ROS 2 merupakan versi kelanjutan dari ROS 1. Alasan lain untuk mengimplementasikan
ROS2 adalah memanfaatkan peluang untuk meningkatkan API yang dihadapi pengguna.
Beberapa API baru akan dirancang, menggabungkan pengalaman komunitas terbaik
dengan API generasi pertama. ROS2 akan dibangun sebagai kumpulan paket paralel yang
dapat diinstal bersama dan beroperasi dengan ROS.

ROS2 menggunakan DDS (Data Distribution Service) untuk publishing dan subscribing.
Keuntungan utama adalah kinerja transmisi akan ditingkatkan setelah pembaruan DDS.
Selain itu, Anda bebas memilih DDS yang sesuai dengan spesifikasi Anda. Memang,
DDS yang Anda pilih dapat sangat mempengaruhi perilaku ROS2. Saat ini, beberapa
DDS memiliki masalah kerja pada beberapa aplikasi. Di masa depan, setiap DDS akan
memiliki kelebihan dan batasannya tergantung pada situasinya.

Link instalasi: https://docs.ros.org/en/foxy/Installation.html


3. Raspberry Pi Mouse
Raspi mouse adalah platform mobile kecil dengan roda independen kanan dan kiri yang
menggunakan Raspberry Pi sebagai board utamanya.
Dengan ukurannya yang kecil, robot ini mudah dibawa dan lebih aman dalam
pengembangannya. Raspi Mouse dapat digunakan dengan menggunakan model
Raspberry Pi yang terbaru seperti Pi 4B dengan harus menggunakan Raspberry Pi 4
connector. Selain itu, Raspberry Pi Mouse cocok digunakan untuk kompetisi seperti
turnamen.

SPESIFIKASI

Model number RT-RASPIMOUSE-V3 / RT-RASPIMOUSE-V3-Full

PC connection
method LAN, serial communication

a. Raspberry Pi 3B, 3B +
b. Raspberry Pi 2B
c. Raspberry Pi B +
Control computer d. Raspberry Pi 4B * Connector for Raspberry Pi 4 is required.

a. 4-phase stepping motor x 2


b. Basic stepping angle: 0.9 degrees
Motor c. 1 rotation Step number: 400

a. Distance sensor x 4
b. Pulse counter using red LED (accumulates pulse command to
Sensor stepping motor driver)

I / O port Compliant with Raspberry Pi

audio Programmable buzzer x 1

button Push button x 3

a. Programmable LED x 4
Led b. Power Status LED x 1
Battery Lithium Polymer (LiPo) Battery 3 Cell 1000mAh

weight 740g (including battery)

size 130 x 100 x 83 (mm)

speed About 0.3 m/s to 0.9 m/s

payload About 2kg

ROS1_Bridge
Paket ros1_brigde merupakan alat yang digunakan ketika ingin memindahkan projek dari
ROS1 ke ROS2. Paket ini memungkinkan komunikasi antara ROS1 dan ROS2. Kita
dapat menjadikan ROS1 sebagai publisher dan mendapatkan message dari ROS2 yang
bertindak sebagai subscriber (atau sebaliknya). Kita juga bisa mengirim request dari
ROS1 yang bertindak sebagai client ke ROS2 service server (atau sebaliknya). Dengan
begitu, ros1_bridge membuat penggunanya dapat bekerja dengan aplikasi ROS1 dari
ROS2 environment.
4. Instalasi Raspi Mouse
Untuk instalasi robot Raspi Mouse dan package untuk simulasinya bisa mengikuti
panduan yang terdapat di github https://github.com/ryuichiueda/raspimouse_ros_2, untuk
package yang digunakan pada simulasi adalah https://github.com/rt-net/raspimouse_sim
dan https://github.com/rt-net/raspimouse_description/tree/melodic-devel. Walaupun
package tersebut dibuat untuk versi ROS sebelum noetic (melodic dan juga kinetic)
setelah dicoba pada ROS noetic tetap dapat berjalan dengan lancar tanpa ada kendala
yang dialami.
Untuk instalasinya secara garis besar adalah melakukan instalasi robot tersebut pada
ROS1 Noetic dengan cara seperti di bawah:
Buka terminal dan tuliskan command
1. cd ~/catkin_ws/src
2. git clone
https://github.com/ryuichiueda/raspimouse_ros_2.git
3. git clone https://github.com/rt-net/raspimouse_sim.git
4. git clone -b melodic-devel
https://github.com/rt-net/raspimouse_description.git
5. rosdep install -r -y -i --from-paths raspimouse*
6. cd ~/catkin_ws && catkin_make
7. source ~/catkin_ws/devel/setup.bash
8. rosrun raspimouse_gazebo download_gazebo_models.sh
5. Raspi Mouse dengan ROS1 Noetic
Pada dasarnya, robot ini dibuat untuk ROS versi kinetic dan diinstal pada raspberry pi
untuk mengendalikan gerak robot dan juga menerima input dari sensor. Akan tetapi, pada
tugas ini hanya digunakan simulasi dengan menggunakan gazebo saja yang dari package
description nya memiliki keterbatasan karena tidak mensimulasikan semua sensor yang
dimiliki robot ini. Sehingga yang bisa digunakan hanya aplikasi teleop saja. Untuk
menjalankan simulasi robot ini pada ROS noetic yaitu melalui command dengan
sebelumnya melakukan source terhadap ROS noetic terlebih dahulu
1. source /opt/ros/noetic/setup.bash && source
~/catkin_ws/devel/setup.bash
2. roslaunch raspimouse_gazebo
raspimouse_with_(nama_peta).launch
## nama_peta dapat diganti dengan emptyworld, gasstand,
samplemaze, atau willowgarage ##
Lalu buka terminal baru dan isi command
1. source /opt/ros/noetic/setup.bash && source
~/catkin_ws/devel/setup.bash
2. roslaunch raspimouse_gazebo keyboard_teleop.launch

Dapat terlihat bahwa aplikasi simulasi pada gazebo beserta dengan RViz dan
teleop_twist_keyboard sudah berjalan. RViz di sini melakukan subscribe terhadap topic
odom dan teleop melakukan publish topic cmd_vel.
6. Instalasi ROS1_Bridge
sudo apt install ros-foxy-ros1-bridge
Atau bisa build dari source https://github.com/ros2/ros1_bridge.

7. Arsitektur Node

8. Raspi Mouse dengan ROS1_Bridge


Untuk mengendalikan raspimouse dengan menggunakan ROS2, harus dilakukan bridge.
Bridge ini digunakan komunikasi antara ROS1 dan ROS2. Dengan menggunakan bridge,
jika pada kedua ROS memiliki service atau topic yang sama, maka dapat
dikomunikasikan. Misal pada tugas kali ini, topic yang akan digunakan odom dan
cmd_vel. Pada ROS1 sudah memiliki kedua topic ini dan di ROS2 juga ada keduanya.
Akan tetapi, jika yang digunakan adalah topic yang hanya ada di ROS1 nya saja, misal
pada robot ini sebenarnya melakukan publish topic lightsensors, sedangkan pada ROS2
yang tidak terdapat package raspimouse tidak memiliki topic tersebut, maka topic tidak
bisa digunakan oleh ROS2. Oleh sebab itu, aplikasi yang memungkinkan untuk dilakukan
bridge adalah keyboard teleop dan juga RViz karena hanya menggunakan topic odom dan
cmd_vel.
Untuk running aplikasinya, harus menggunakan 3 jendela terminal yang berbeda.
Terminal pertama digunakan untuk running raspimouse_gazebo, kedua untuk
ros1_bridge, dan ketiga untuk aplikasi yang diubah ke ROS2 pada kasus ini adalah RViz
dan teleop. Aplikasi yang dikonversi dari ROS1 menjadi ROS2 ini kami buat menjadi 1
package bernama raspimouse_tugas. Di dalamnya berisi launch file untuk melakukan
running node teleop yang juga berada di dalam package tersebut dan juga run aplikasi
RViz2 untuk mengetahui posisi sebenarnya dari robot menggunakan topic Odom. Untuk
mengonversi file konfigurasi RViz menjadi RViz2 perlu sedikit penyesuaian pada
pemanggilan class-nya, karena directory-nya agak berbeda.

Package yang kami buat terlampir pada tautan:


https://drive.google.com/file/d/1qoznyWaHJaJvAYswjhenPaI_Dw3xjcd-/view?usp=shari
ng

Untuk menginstal package tersebut, extract folder raspimouse_tugas pada folder


colcon_ws/src lalu build dengan menggunakan command:
1. cd ~/colcon_ws
2. colcon build --packages-select raspimouse_tugas
3. source /opt/ros/foxy/setup.bash
4. source ~/colcon_ws/install/local_setup.bash
Setelah itu baru bisa menjalankan command berikut pada 3 jendela terminal yang
berbeda:
Terminal 1 (raspimouse_gazebo ROS Noetic):
1. source /opt/ros/noetic/setup.bash && source
~/catkin_ws/devel/setup.bash
2. roslaunch raspimouse_gazebo
raspimouse_with_(nama_peta).launch
## nama_peta dapat diganti dengan emptyworld, gasstand,
samplemaze, atau willowgarage ##
Terminal 2 (ros1_bridge ROS Foxy dan Noetic harus di source):
1. source /opt/ros/noetic/setup.bash
2. ros2 run ros1_bridge dynamic_bridge --bridge-all-topics
Terminal 3 (raspimouse_tugas):
1. ros2 launch raspimouse_tugas tugas.launch.py
Karena pada bashrc sudah dilakukan source terhadap ROS foxy, maka tidak perlu lagi
source ketika akan menjalankan package ROS2 yang sudah terinstal. Sebagai catatan,
program teleop tidak dapat bekerja jika menggunakan launch file. Isu tersebut juga sudah
banyak dibahas di GitHub ROS2, untuk mengatasinya harus menggunakan Xterm dengan
menginstall melalui sudo apt install xterm dan mengkonfigurasi launch file-nya
dengan prefix = ‘xterm -e’ supaya dapat membuka jendela teleop dengan
menggunakan xterm. Solusi ini didapatkan juga dari pembahasan di GitHub ROS2.

Video simulasi:
https://drive.google.com/file/d/1GmxA2leAeZtocgqqv6SrnHuPqWVIk_56/view?usp=sh
aring
9. Kesimpulan
ROS 1 bridge dapat digunakan untuk menjembatani antara ROS 1 dan ROS 2. Sehingga
ROS 2 Foxy akan menjalankan operasi Teleop dan/atau operasi kendali robot pada Raspi
Mouse sedangkan ROS 1 Noetic hana digunakan untuk menjalankan model serta dunia
pada gazebo. Dengan melakukan uji coba simulasi, Raspi Mouse dapat dijalankan dengan
lancar.

10. Lampiran Video


https://drive.google.com/file/d/1Qi8Kn3jiOGhWyAFECdLeGzdz5UBkLxmk/view?usp=
sharing
11. Daftar Pustaka
Anonymous. 2020. Noetic Ninjemys: The Last Official ROS 1 Release [Online]. Available
at: https://www.openrobotics.org/blog/2020/5/23/noetic-ninjemys-the-last-official
-ros-1- release (Accessed 9 December 2021)

Anonymous. 2020. ROS Noetic Ninjemys [Online]. Available at: http://wiki.ros.org/noetic


(Accessed 9 December 2021)

Anonymous. 2021. ROS 2 Documentation [Online]. Available at: https://docs.ros.org/en/


rolling/index.html (Accessed 9 December 2021)

Anonymous. 2019. ROS vs ROS2 [Online]. Available at: https://www.generationrobots.


com/blog/en/ros-vs-ros2/ (Accessed 9 December 2021)

Hacktoberfest. 2021. ROS2 Bridge [Online]. Available at: https://github.com/ros2/ros1


_bridge (Accessed 9 December 2021)

Anonymous. 2020. Raspberry Pi Mouse V3 [Online]. Available at: https://rt-net.jp/


products/raspberrypimousev3/ (Accessed 9 December 2021)

Anda mungkin juga menyukai