- 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.
SPESIFIKASI
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. Distance sensor x 4
b. Pulse counter using red LED (accumulates pulse command to
Sensor stepping motor driver)
a. Programmable LED x 4
Led b. Power Status LED x 1
Battery Lithium Polymer (LiPo) Battery 3 Cell 1000mAh
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
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.