Dalam tutorial ini kami menjelaskan cara menggunakan ArduSimple Penerima RTK untuk mendapatkan data pemosisian yang tepat di ROS. Kami akan memandu Anda melalui langkah-langkah untuk mengintegrasikan ArduSimple penerima RTK ke dalam proyek ROS Anda, memungkinkan Anda memanfaatkan kekuatan data GPS yang akurat.
Baik Anda penggemar robotika, peneliti, atau pengembang, tutorial ini akan memberi Anda langkah-langkah untuk mengakses data pemosisian di aplikasi ROS Anda.
Jika Anda baru mengenal ROS, kami telah menyiapkan ringkasan tutorial untuk membantu memulai dengan ROS untuk mempelajari lebih lanjut tentang istilah-istilah utama ROS, platform dan lingkungan pengembangan apa yang lebih baik untuk dipilih, dll.
Perangkat keras yang diperlukan:
- simpleRTK2B penerima seri (dalam tutorial ini kita menggunakan simpleRTK2B Budget)
- Antena Multiband RTK (dalam tutorial ini kita menggunakan u-blox GNSS Antena multiband ANN-MB-00 (IP67))
- Kabel USB kompatibel dengan port USB penerima Anda untuk menghubungkan ke PC atau platform tertanam
- Komputer atau platform tertanam dengan akses internet (kami menggunakan PC dalam tutorial ini)
Perangkat lunak yang diperlukan:
- Ubuntu 18 atau 20 (dalam tutorial ini kami menggunakan Ubuntu 20) diinstal secara native di PC
- ROS (kami menggunakan ROS Noetic).
- Anda dapat mengikuti tutorial ini untuk menginstal ROS:
- gunakan ROS Melodic untuk Ubuntu 18 (periksa panduan instalasi untuk ROS Melodic)
- gunakan ROS Noetic untuk Ubuntu 20 (periksa panduan instalasi untuk ROS Noetic)
Cara penggunaan ArduSimple Penerima RTK dan mendapatkan data GPS di ROS?
Pertama, sambungkan dan konfigurasikan Penerima RTK di Ubuntu.
- Pasang antena RTK untuk Anda penerima. Tempat antena di lokasi dengan pemandangan langit yang bagus, atau di dekat jendela untuk menguji fungsionalitasnya.
- Hubungkan penerima ke PC melalui port USB berlabel “POWER+GPS. "
- Penerima Anda harus dikonfigurasi secara otomatis. Untuk memverifikasi ini, buka terminal dan ketik perintah:
ls /dev/tty*
- Anda akan melihat “/dev/ttyACM0” telah dibuat secara otomatis.
- Untuk memverifikasi aliran dari Anda penerima RTK, gunakan perintah:
sudo cat /dev/ttyACM0
- Aliran masukan GPS menunjukkan serupa dengan di bawah ini:
- Media Ctrl + C untuk membatalkan melihat streaming.
- Untuk mencegah penerima RTK mulai dari "yang berbeda"ttyACM*” setiap kali diaktifkan, buat aturan udev (tautan dinamis) yang membuat entri dengan nama tertentu dengan menambahkan file berikut sebelum menyambungkan penerima RTK.
sudo nano /etc/udev/rules.d/50-ardusimple.rules
- Masukkan teks berikut ke aturan:
KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
- Media Ctrl + X untuk keluar dari file dan tekan Y untuk menyimpan buffer yang dimodifikasi.
- Sekarang kapan pun penerima RTK terhubung, itu akan dapat diakses dari “/dev/tty_Ardusimple" tautan. Untuk memeriksa ini, putuskan sambungan penerima RTK (lepaskan daya dan daya lagi) dan masukkan perintah:
sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
- Sekarang Anda bisa melihatnya “tty_ArduSimple" telah dibuat.
- Untuk menggunakan program U-center di Ubuntu, instal Wine. Wine adalah kumpulan pustaka Linux yang memungkinkan banyak aplikasi Windows berjalan di distribusi Linux (di Ubuntu dan lainnya).
Ini tidak membuat perangkat lunak U-center sepenuhnya kompatibel, tetapi dapat digunakan jika Anda ingin memeriksa status atau konfigurasi perangkat lunak Anda. penerima RTK.
Untuk menginstal Wine (instalasi dapat berlangsung 2-3 menit), gunakan perintah:
sudo apt install wine64 //if Ubuntu is installed natively
sudo apt install wine32 //if you run Ubuntu on a virtual machine
- Setelah Wine terinstal, U-Center dapat diinstal di Ubuntu, seperti halnya di Windows. Buka Peramban Web Firefox dan unduh program U-Center dari situs web resmi: https://www.u-blox.com/en/product/u-center.
- Sekali u-center sudah diunduh, buka folder Unduh dan ekstrak u-center di Desktop.
- Untuk memulai instalasi u-center perangkat lunak, ketikkan perintah:
cd ~/Desktop/
wine ./u-center_v22.07.exe
- Install u-center seperti Anda berada di Windows dengan mengikuti langkah-langkah instalasi.
- Untuk membuat COM1 pelabuhan, buka terminal dan masukkan perintah berikut untuk membuat tautan penerima RTK dalam folder “~/.wine/dosdevice”.
ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
- Penyelesaian u-center jika sudah dibuka. Membuka u-center.
- Sambungkan ke penerima RTK in u-center dengan menekan Ctrl + 1 .
- Anda akan melihat lampu hijau di sudut kiri dan data dari Penerima RTK Anda seperti di bawah ini.
Kedua, jalankan Penerima RTK di ROS.
- Buat folder dengan ruang kerja. Jika Anda tidak memilikinya, Anda dapat membuatnya dengan perintah:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
- Unduh dan instal paket ROS di dalam src. Dalam tutorial ini kita akan mengunduh paket dari https://github.com/KumarRobotics/ublox yang akan menerbitkan informasi ROS. Ini berfungsi dengan versi 1.1.4 ini. Anda dapat menggunakan rilis terbaru tetapi beberapa langkah mungkin perlu dimodifikasi. Masukkan perintah:
cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
- Anda akan melihat di Terminal:
#Semua rosdeps yang diperlukan berhasil diinstal
- Kompilasi program untuk dapat menjalankannya.
catkin_make
source ~/catkin_ws/devel/setup.bash
- Ketika setup.bash dijalankan, kami memilih ruang kerja dan memperbarui program yang tersedia di ROS.
- Untuk memiliki kendali atas pesan yang akan dipublikasikan ArduSimple Anda dapat memodifikasi yaml (file konfigurasi) yang akan digunakan node untuk menjalankan komunikasi dengan ros.
Node ini memiliki beberapa file konfigurasi pengujian, Anda dapat memodifikasi nilainya dengan memodifikasi file yang terletak di direktori berikut:
cd ~/catkin_ws/src/ublox/ublox_gps/config
- Karena u-blox model di dalam Ardusimple adalah zed_f9p, kami memodifikasi file dengan nama yang sama. Untuk membuka editor, kita dapat menggunakan perintah berikut:
nano zed_f9p.yaml
Ubah alamat perangkat menjadi “/dev/tty_Ardusimple" untuk memastikan bahwa itu selalu pergi ke Penerima RTK:
device: /dev/tty_Ardusimple
frame_id: gps
uart1:
baudrate: 9600 //Change the baudrate value to the value set in U-Center.
config_on_startup: false
Penyelesaian u-center karena ROS dan u-center jangan lari bersama-sama.
- Untuk menjalankan ROS Node, gunakan peluncur yang terletak di folder berikut:
cd ~/catkin_ws/src/ublox/ublox_gps/launch
- Untuk memeriksa apakah itu terdaftar, ketikkan perintah:
ls
- File peluncuran ROS menyederhanakan proses memulai beberapa node dan mengonfigurasi parameternya. File peluncuran adalah file XML yang menjelaskan node yang akan dieksekusi, parameternya, dan koneksi di antara mereka. Dengan menggunakan file peluncuran, Anda dapat memulai beberapa node dengan satu perintah, membuatnya lebih mudah untuk mengelola sistem robot yang kompleks. File-file ini memiliki ekstensi ".launch", ada file lain yang merupakan file konfigurasi yang memiliki ekstensi ".yaml".
Untuk meluncurkan file:
roslaunch
- File yang akan meluncurkan program kami disebut “ublox_device.peluncuran”.
File ini dapat diubah sesuai kebutuhan.
Untuk meluncurkan program, gunakan perintah berikut:
roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
- Buka Terminal baru dan masukkan perintah:
source ~/catkin_ws/devel/setup.bash
- Node ROS saat menjalankan memiliki nama yang unik. Untuk melihat daftar nama ROS Node, gunakan perintah di Terminal:
rosnode list
- Untuk mendapatkan informasi tentang node ROS, seperti topik langganan atau penerbitannya, Anda dapat menggunakan perintah berikut:
rosnode info
Misalnya, untuk mendapatkan informasi tentang “info/ublox”, gunakan perintah:
rosnode info /ublox
- Untuk menampilkan daftar aktif Topik ROS yang saat ini tersedia dan sedang diterbitkan atau berlangganan sistem ROS Anda, gunakan perintah.
rostopic list
Output dari daftar Topik ROS biasanya akan menampilkan nama topik beserta jenis pesannya. Perintah ini berguna untuk memeriksa topik yang tersedia dan memverifikasi apakah topik yang diinginkan dipublikasikan atau berlangganan di lingkungan ROS Anda.
- Untuk melihat informasi tentang siapa yang memposting dan berlangganan pesan ini, ketik pesannya, gunakan perintah dalam format:
rostopic info
- Misalnya, untuk menerima informasi tentang Jenis Pesan, Penerbit, dan Pelanggan dari topik tersebut “/ roout”, jalankan perintah:
rostopic info /rosout
- Untuk menerima informasi tentang Jenis Pesan, Penerbit dan Pelanggan dari topik tersebut /ublox/fix, misjalankan perintah:
rostopic info /ublox/fix
- Untuk melihat informasi yang sedang dipublikasikan, gunakan perintah dalam format:
rostopic echo
Untuk menguji apakah itu berfungsi, kita dapat berlangganan ke berbagai topik yang dibuat oleh node.
Yang paling penting adalah “/gps/perbaiki” (adalah data di WGS64) dan "/diagnostik" (memberi kami informasi tentang status GPS). Data lain dapat dipublikasikan sesuai dengan konfigurasi yang telah ditetapkan penerima RTK.
Misalnya, untuk mengamati dan memantau data fix GPS yang dipublikasikan “/ublox/perbaiki” Topik (adalah data di WGS64), seperti lintang, bujur, ketinggian, dan informasi relevan lainnya, gunakan perintah berikut untuk melihat data:
rostopic echo /ublox/fix
Untuk berhenti melihat topik, tekan Ctrl + C.
- Untuk melihat data yang sedang dipublikasikan "/diagnostik" yang memberikan informasi status GPS seperti akurasi antara lain, gunakan perintah:
rostopic echo /diagnostics
Untuk berhenti melihat data, tekan Ctrl + C.
- Jika Anda ingin mencatat informasi yang dipublikasikan tentang Topik dalam file, gunakan perintah:
- untuk merekam data perbaikan GPS yang dipublikasikan “/ublox/perbaiki” Topik, seperti lintang, bujur, ketinggian antara lain:
rostopic echo /ublox/fix > gps_fix_data.txt
- untuk merekam data tentang status GPS "/diagnostik":
rostopic echo /diagnostics > gps_diagnostics.txt
Perintah-perintah ini membuat file gps_fix_data.txt dan gps_diagnostics.txt, tempat topik akan disimpan. Untuk berhenti merekam, tekan Ctrl + C.
- Untuk melihat informasi yang direkam dalam file, jalankan:
nano gps_fix_data.txt
nano gps_diagnostics.txt
- Pesan ROS adalah struktur data yang digunakan untuk komunikasi antara ROS Nodes. Mereka menentukan informasi yang dipertukarkan pada suatu topik. Pesan didefinisikan menggunakan format file .msg.
Untuk melihat daftar jenis Pesan ROS, gunakan perintah:
rosmsg list
Untuk melihat struktur pesan, gunakan perintah dalam format:
rosmsg show
- Sebagai contoh, “sensor_msgs/NavSatFix” adalah jenis pesan dalam ROS yang digunakan untuk merepresentasikan data tetap GPS (Global Positioning System) seperti lintang, bujur, ketinggian, dan parameter lain yang terkait dengan posisi GPS.
Untuk melihat struktur “sensor_msgs/NavSatFix” pesan, gunakan perintah:
rosmsg show sensor_msgs/NavSatFix
- Untuk melihat daftar aktif Layanan ROS yang menyediakan cara bagi Nodes untuk mengirim permintaan dan menerima respons, gunakan perintah:
rosservice list
- Untuk memanggil layanan, gunakan perintah dalam format:
rosservice call
Layanan ini akan merespons dengan hasilnya.
Misalnya, untuk mendapatkan konfigurasi logger saat ini u-blox Node, yang dapat membantu untuk tujuan debugging dan pemantauan, menggunakan perintah:
rosservice info /ublox/get_loggers
Jika Anda ingin melakukan tutorial ini, kami memiliki stok semua produk dan siap dikirim:
- simpleRTK2B penerima seri (dalam tutorial ini kita menggunakan simpleRTK2B Budget)
- Antena Multiband RTK (dalam tutorial ini kita menggunakan u-blox GNSS Multiband antenna ANN-MB-00 (IP67))
- Kabel USB