• Tidak ada hasil yang ditemukan

BAB V HASIL DAN PEMBAHASAN

5.5 Komunikasi Perangkat Marvelmind Menggunakan ROS

Paket ROS marvelmind_nav yang disediakan oleh Marvelmind memungkinkan pengguna untuk berinteraksi dengan beacon mobile atau modem dan menerima data terkait lokasi dan informasi lainnya. Versi terbaru dari paket ini telah dirilis untuk kompatibilitas dengan ROS Melodic di sistem operasi Ubuntu 18.04 serta ROS Noetic di sistem operasi Ubuntu 20.04 Ini menjadi langkah penting dalam mendukung pengembangan dan penelitian di bidang robotika dengan memungkinkan penggunaan perangkat Marvelmind yang lebih efisien dalam lingkungan ROS. Setelah melakukan konfigurasi Indoor GPS di windows selanjutnya adalah menjalankan

ROS Marvelmind pada raspberry untuk menerima data lokasi dari mobile beacon (hedgehog) dengan menghubungkan mobile beacon ke raspberry menggunakan kabel USB Indoor GPS.

Sebelum menjalankan Marvelmind ROS, terlebih dahulu menjalankan ROS server pada terminal berbeda dengan perintah roscore.

Gambar 5.24 Menjalankan ROS Server

Roscore berperan sebagai pusat koordinasi utama yang memfasilitasi komunikasi antara node-node ROS, memungkinkan mereka untuk menemukan satu sama lain, berbagi parameter, dan bertukar data. Selain itu, roscore juga mengelola logging dalam ROS, memungkinkan pencatatan pesan dan data penting yang dihasilkan oleh node-node ROS untuk pengawasan dan analisis. Dengan demikian, roscore membentuk fondasi esensial untuk interaksi dan koordinasi yang efisien dalam ekosistem ROS. Selanjutnya adalah menjalakan node hedge_rcv_bin dari paket ROS Marvelmind untuk menerima data dari mobile beacon seperti yang ditampilkan pada gambar 5.25. Perangkat terhubung ke port /dev/ttyACM1 dengan memeriksa dengan instruksi ls /dev/ttyACM*.

Gambar 5.25 Menjalankan ROS Marvelmind

Setelah paket Indoor GPS telah berhasil dijalankan maka akan muncul beberapa topik yang berisi informasi mengenai data dari mobile beacon. Data dari masing-masing topik ini yang digunakan untuk memberikan instruksi lebih lanjut yang dikirim lewat komunikasi serial ke Arduino. Untuk mengetahui topik-topik yang muncul setelah menjalankan paket Indoor GPS dengan menjalankan instruksi rostopic list pada terminal terpisah sehingga akan muncul informasi mengenai topik-topik dari Indoor GPS seperti yang ditampilkan pada gambar 5.26.

Gambar 5.26 Topik List dari Paket Indoor GPS

Informasi dari setiap topik dapat dilihat pada tabel 5.1.Dari setiap topik, pada penelitian ini topik yang digunakan adalah /hedge_pos_ang. Topik /hedge_pos_ang memiliki informasi yang yang cukup lengkap mengenai data lokasi dari mobile beacon.

Topic Message field Type Description

hedge_pos_ang address uint8 Address of mobile beacon

timestamp_ms uint32 Timestamp of location, milliseconds x_m float64 X coordinate, meters

y_m float64 Y coordinate, meters z_m float64 Z coordinate, meters flags uint8 flags of location

angle float64 Orientation angle of paired beacons, degrees

beacon_pos_a address uint8 Address of stationary beacon

x_m float64 X coordinate, meters

y_m float64 Y coordinate, meters

z_m float64 Z coordinate, meters

beacon_distance address_hedge uint8 Address of mobile beacon address_beacon uint8 Address of stationary beacon

distance_m float64 Raw distance from mobile to stationary

beacon, meters

hedge_imu_fusion timestamp_ms int64 Timestamp of IMU fusion data, milliseconds

x_m float64

(X,Y,Z) coordinates of mobile beacon by IMU fusion. meters.

y_m float64

z_m float64

qw float64 Orientation quaternion of mobile beacon (qw,qx,qy,qz).

Normalized (qw2+qx2+qy2+qz2=1)

qx float64

qy float64

qz float64

vx float64 (vx, vy, vz) – speed vector of mobile beacon calculated by IMU fusion, meters/s

vy float64

vz float64

ax float64 (ax, ay, az) – acceleration of mobile beacon meters/s2

ay float64

az float64

hedge_imu_raw timestamp_ms int64 Timestamp of raw IMU data, milliseconds acc_x int16 (acc_x, acc_y, acc_z) – raw accelerometer

data, 1 mg/LSB

acc_y int16

acc_z int16

gyro_x int16 (gyro_x, gyro_y, gyro_z) – raw gyroscope data, 0.0175 dps/LSB

gyro_y int16

gyro_z int16

compass_x int16 (compass_x, compass_y, compass_z) – raw compass data (only for HW4.9 beacons).

X,Y: 1100 LSB/Gauss Z: 980 LSB/Gauss compass_y int16

compass_z int16

hedge_quality address uint8 Address of the mobile beacon beacon quality_percents uint8 Quality of location, percents

hedge_telemetry battery_voltage float64 Battery voltage of the mobile beacon, volts rssi_dbm int8 RSSI (radio signal strength), dBm marvelmind_w

aypoint

total_items uint8 Total number of waypoint program items (N)

item_index uint8 Index of this waypoint item (0…N-1) movement

_type uint8 Type of action (6 = move to specified point)

param1 int16 Parameter 1 (depends from movement_type)

X coordinate of waypoint, cm if type= 6

param2 int16 Parameter 2 (depends from movement_type)

Y coordinate of waypoint, cm if type= 6

param3 int16 Parameter 3 (depends from movement_type)

Z coordinate of waypoint, cm if type=

6 Tabel 5.1 Informasi dari Setiap Topic

Dari Tabel 5.1 dapat dilihat informasi dari setiap topil, pada topik hedge_pos_ang berisi informasi dari mobile beacon yang terhubung ke raspberry yaitu address dan koordinat x, y dan z dari mobile beacon. Dengan menjalankan topik ini maka kita akan memperoleh informasi yang lengkap dari mobile beacon untuk melakukan navigasi kendaraan. Selanjutnya adalah menjalankan topik hedge_pos_ang sehingga ditampilkan informasi dari beacon pada raspberry. Dengan menjalankan topik hedge_pos_ang akan menampilkan data seperti gambar 5.27

Gambar 5.27 Data yang diperoleh dari Topik Hedge_Pos_Ang

Nilai pertama yang terdapat dalam tanda kurung siku merupakan stempel waktu ROS, yang digunakan untuk mengidentifikasi waktu pengambilan data. Berikutnya adalah stempel waktu hedgehog dalam milidetik, yang mencatat waktu saat data tersebut dihasilkan oleh perangkat hedgehog. Selanjutnya, ada informasi mengenai interval waktu antara sampel posisi, yang diukur dalam milidetik, yang memberikan wawasan tentang seberapa sering data posisi diperbarui. Selain itu, terdapat koordinat X, Y, Z dalam meter, yang memberikan lokasi spesifik dalam sistem tiga dimensi. Terakhir, ada byte yang mengandung bendera atau informasi tambahan yang terkait dengan data tersebut. Selain itu, node ini juga berfungsi sebagai publisher dan mengirimkan data ke topik visualization_marker. Ini memungkinkan untuk melihat posisi dalam perangkat lunak ROS standar 'rviz'. Untuk melakukannya, jalankan 'rviz' di terminal yang berbeda seperti yang ditunjukkan dalam tangkapan layar.

Kemudian, tampilan GUI seperti yang ditampilkan pada gambar 5.28 akan muncul. Untuk melihat hedgehog, pastikan bahwa parameter 'Fixed frame' memiliki nilai 'my_frame', dan marker 'visualization marker' terhubung.

Gambar 5.28 Tampilan posisi pada visualization marker

Pada tahap ini, sistem Robot Operating System (ROS) diinisialisasi, inisialisasi melibatkan konfigurasi awal yang diperlukan untuk menjalankan aplikasi ROS, termasuk mengatur parameter lingkungan dan memastikan bahwa Master ROS berjalan dengan benar.

Setelah ROS diinisialisasi, satu atau lebih nodes dibuat yang berperan sebagai publisher dan subscriber. Node adalah unit dasar dalam arsitektur ROS yang menjalankan tugas-tugas spesifik dalam sistem. Node yang berperan sebagai publisher bertanggung jawab untuk mengirimkan data tersebut ke suatu topik. Topik adalah saluran komunikasi di mana node- node lain dapat berlangganan untuk menerima data. Node-node lain yang memerlukan data tersebut mendaftarkan diri sebagai subscriber ke topik yang sesuai. Program Indoor GPS Marvelmind berperann publisher yang akan mengirimkan data lokasi dari beacon dinamis ke sebuah topik. Node yang yang berperan sebagai subscriber dibuat dalam program python yang akan menerima semua data yang telah dipublish ke sebuah topik. Node subscriber ini akan mengolah data yang diterima kemudian mengirimkan sebuah instruksi ke ardunio melalui komunikasi serial.

Gambar 5.29 Diagram Sistem ROS

Dokumen terkait