U ovom vodiču objašnjavamo kako koristiti ArduSimple RTK prijemnici za dobivanje preciznih podataka o položaju u ROS-u. Vodit ćemo vas kroz korake za integraciju ArduSimple RTK prijemnik u vaš ROS projekt, omogućujući vam da iskoristite snagu točnih GPS podataka.
Bilo da ste entuzijast u robotici, istraživač ili programer, ovaj će vam vodič pružiti korake za pristup podacima o pozicioniranju u vašim ROS aplikacijama.
Ako ste novi u ROS-u, pripremili smo kratki tpriručnik za početak rada s ROS-om saznati više o ključnim pojmovima ROS-a, koju je platformu i razvojno okruženje bolje odabrati itd.
Potreban hardver:
- simpleRTK2B serijski prijemnik (u ovom vodiču koristimo simpleRTK2B Budget)
- RTK višepojasna antena (u ovom vodiču koristimo u-blox GNSS Višepojasna antena ANN-MB-00 (IP67))
- USB kabel kompatibilan s USB priključkom vašeg prijemnika za povezivanje s računalom ili ugrađenom platformom
- Računalo ili ugrađena platforma s pristupom internetu (u ovom vodiču koristimo računalo)
Potreban softver:
- Ubuntu 18 ili 20 (u ovom vodiču koristimo Ubuntu 20) izvorno instaliran na računalu
- ROS (koristimo ROS Noetic).
- Možete slijediti ove upute za instalaciju ROS-a:
- koristite ROS Melodic za Ubuntu 18 (provjerite vodič za instalaciju za ROS Melodic)
- koristite ROS Noetic za Ubuntu 20 (provjerite vodič za instalaciju za ROS Noetic)
Kako koristiti ArduSimple RTK prijemnike i dobiti GPS podatke u ROS-u?
Prvo povežite i konfigurirajte RTK prijemnik u Ubuntuu.
- Uključite utikač RTK antena na vaše prijamnik. Mjesto antena na mjestu s dobrim pogledom na nebo ili blizu prozora za testiranje funkcionalnosti.
- Povežite svoj prijamnik na računalo putem USB priključka označenog s "POWER+GPS".
- Vaš bi prijamnik trebao biti automatski konfiguriran. Da biste to potvrdili, otvorite terminal i upišite naredbu:
ls /dev/tty*
- Vidjet ćete “/dev/ttyACM0” kreiran je automatski.
- Za potvrdu streama s vašeg RTK prijemnik, koristite naredbu:
sudo cat /dev/ttyACM0
- GPS ulazni tok pokazuje slično dolje navedenom:
- Press Ctrl + C da biste otkazali gledanje streama.
- Da bi se spriječilo RTK prijemnik od početka u drugom "ttyACM*” svaki put kad se uključi, stvori udev pravilo (dinamičku vezu) koje stvara unos s određenim nazivom dodavanjem sljedeće datoteke prije povezivanja RTK prijemnik.
sudo nano /etc/udev/rules.d/50-ardusimple.rules
- Unesite sljedeći tekst u pravilo:
KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
- Press Ctrl + X za izlaz iz datoteke i pritisnite Y za spremanje modificiranog međuspremnika.
- Sada kad god an RTK prijemnik je povezan, bit će mu dostupan s “/dev/tty_Ardusimple" veza. Da biste to provjerili, odspojite se RTK prijemnik (isključi i ponovo uključi) i unesite naredbe:
sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
- Sad to možete vidjeti “tty_ArduSimple" je stvoren.
- Kako biste koristili program U-center u Ubuntuu, instalirajte Wine. To je zbirka Linux biblioteka koje omogućuju pokretanje mnogih Windows aplikacija na Linux distribucijama (između ostalog na Ubuntuu).
Ne čini softver U-centra potpuno kompatibilnim, ali se može koristiti u slučaju da želite provjeriti status ili konfiguraciju vašeg RTK prijemnik.
Da biste instalirali Wine (instalacija može trajati 2-3 minute), koristite naredbu:
sudo apt install wine64 //if Ubuntu is installed natively
sudo apt install wine32 //if you run Ubuntu on a virtual machine
- Nakon što je Wine instaliran, moguće je instalirati U-Center u Ubuntu, kao da je Windows. Otvorite Firefox web preglednik i preuzmite program U-Center sa službene stranice: https://www.u-blox.com/en/product/u-center.
- Jednom u-center preuzeto, idite u mapu Download i izdvojite u-center na radnoj površini.
- Za početak instalacije u-center softvera, upišite naredbu:
cd ~/Desktop/
wine ./u-center_v22.07.exe
- Instalirati u-center kao da ste u sustavu Windows slijedeći korake instalacije.
- Da biste stvorili COM1 luka, otvorena terminal i unesite sljedeću naredbu za povezivanje RTK prijemnik u mapi “~/.wine/dosdevice”.
ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
- Zatvori u-center ako imate otvorenu. Otvoren u-center.
- Povežite se sa svojim RTK prijemnik in u-center pritiskom na Ctrl + 1 .
- Vidjet ćete zeleno svjetlo u lijevom kutu i podatke s vašeg RTK prijemnika slične dolje navedenim.
Drugo, pokrenite RTK prijemnik u ROS-u.
- Napravite mapu s radnim prostorima. Ako ga nemate, možete ga napraviti pomoću naredbi:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
- Preuzmite i instalirajte ROS pakete unutar src. U ovom vodiču ćemo preuzeti pakete sa https://github.com/KumarRobotics/ublox koji će objaviti informacije o ROS-u. Ovo radi s ovom verzijom 1.1.4. Možete koristiti najnovija izdanja, ali će možda trebati izmijeniti neke korake. Unesite naredbe:
cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
- U terminalu ćete vidjeti:
#Svi potrebni rosdeps uspješno su instalirani
- Prevedite program da biste ga mogli izvršiti.
catkin_make
source ~/catkin_ws/devel/setup.bash
- Kada se setup.bash izvrši, odabiremo radni prostor za rad i ažuriramo dostupne programe u ROS-u.
- Kako bi imali kontrolu nad porukama koje će biti objavljene u ArduSimple možete modificirati yaml (konfiguracijsku datoteku) koju će čvor koristiti za izvršavanje komunikacije s ros.
Ovaj čvor ima nekoliko probnih konfiguracijskih datoteka, vrijednosti ove možete izmijeniti izmjenom datoteka koje se nalaze u sljedećem direktoriju:
cd ~/catkin_ws/src/ublox/ublox_gps/config
- Budući da u-blox model iznutra Ardusimple je zed_f9p, mijenjamo datoteku s istim nazivom. Za otvaranje editora možemo koristiti sljedeću naredbu:
nano zed_f9p.yaml
Promijenite adresu uređaja na “/dev/tty_Ardusimple" kako bi bili sigurni da uvijek ide na RTK prijemnik:
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
Zatvori u-center jer ROS i u-center nemojte trčati zajedno.
- Da biste izvršili ROS čvor, koristite pokretač koji se nalazi u sljedećoj mapi:
cd ~/catkin_ws/src/ublox/ublox_gps/launch
- Da biste provjerili je li naveden, upišite naredbu:
ls
- ROS datoteke za pokretanje pojednostaviti postupak pokretanja višestrukih čvorova i konfiguriranja njihovih parametara. Datoteka za pokretanje je XML datoteka koja opisuje čvorove koje treba izvršiti, njihove parametre i veze između njih. Korištenjem datoteka za pokretanje možete pokrenuti više čvorova jednom naredbom, što olakšava upravljanje složenim robotskim sustavima. Ove datoteke imaju ekstenziju ".launch", postoje druge datoteke koje su konfiguracijske datoteke i imaju ekstenziju ".yaml".
Za pokretanje datoteke:
roslaunch
- Datoteka koja će pokrenuti naš program zove se “ublox_device.launch”.
Ova datoteka se može mijenjati po potrebi.
Za pokretanje programa koristite sljedeću naredbu:
roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
- Otvorite novi terminal i unesite naredbu:
source ~/catkin_ws/devel/setup.bash
- ROS čvorovi prilikom pokretanja imaju jedinstvena imena. Da biste vidjeli popis imena ROS čvorova, koristite naredbu u terminalu:
rosnode list
- Za dobivanje informacija o ROS čvorovima, kao što su teme na koje su pretplaćeni ili koje objavljuju, možete koristiti sljedeću naredbu:
rosnode info
Na primjer, za dobivanje informacija o "info /ublox”, koristite naredbu:
rosnode info /ublox
- Za prikaz popisa aktivnih ROS teme koji su trenutno dostupni i objavljuju se ili su pretplaćeni na vaš ROS sustav, koristite naredbu.
rostopic list
Izlaz ROS popisa tema obično će prikazati nazive tema zajedno s njihovim vrstama poruka. Ova naredba je korisna za provjeru dostupnih tema i provjeru jesu li željene teme objavljene ili pretplaćene u vašem ROS okruženju.
- Za pregled informacija o tome tko objavljuje i pretplatio se na ovu poruku, upišite poruku, koristite naredbu u formatu:
rostopic info
- Na primjer, za primanje informacija o vrsti poruke, izdavačima i pretplatnicima teme “/rosout”, izvršite naredbu:
rostopic info /rosout
- Za primanje informacija o vrsti poruke, izdavačima i pretplatnicima teme /ublox/fix, nprxizvršite naredbu:
rostopic info /ublox/fix
- Da biste vidjeli informacije koje se objavljuju, koristite naredbu u formatu:
rostopic echo
Kako bismo provjerili funkcionira li, možemo se pretplatiti na različite teme koje kreira čvor.
Najvažnije su “/gps/fix” (podaci su u WGS64) i “/dijagnostika” (daje nam informacije o GPS statusu). Ostali podaci mogu se objaviti prema konfiguraciji koja je postavljena iz RTK prijemnik.
Na primjer, za promatranje i praćenje podataka o GPS popravcima koji se objavljuju “/ublox/fix” Tema (su podaci u WGS64), kao što su zemljopisna širina, dužina, nadmorska visina i druge relevantne informacije, koristite sljedeću naredbu za pregled podataka:
rostopic echo /ublox/fix
Za prekid pregledavanja teme pritisnite Ctrl + C.
- Za pregled podataka koji se objavljuju na “/dijagnostika” koji daje informacije o GPS statusu poput točnosti među ostalima, koristite naredbu:
rostopic echo /diagnostics
Za zaustavljanje pregledavanja podataka pritisnite Ctrl + C.
- Želite li u datoteku zabilježiti informacije objavljene na temi, koristite naredbu:
- za snimanje podataka o GPS popravku koji se objavljuju na “/ublox/fix” Teme, kao što su zemljopisna širina, dužina, nadmorska visina među ostalim:
rostopic echo /ublox/fix > gps_fix_data.txt
- za snimanje podataka o GPS statusu “/dijagnostika”:
rostopic echo /diagnostics > gps_diagnostics.txt
Ove naredbe stvaraju datoteke gps_fix_data.txt i gps_diagnostics.txt, gdje će tema biti spremljena. Za prekid snimanja pritisnite Ctrl + C.
- Da biste vidjeli podatke snimljene u datotekama, izvršite:
nano gps_fix_data.txt
nano gps_diagnostics.txt
- ROS poruke su podatkovne strukture koje se koriste za komunikaciju između ROS čvorova. Oni definiraju informacije koje se razmjenjuju o temi. Poruke su definirane korištenjem .msg formata datoteke.
Za pregled popisa vrsta ROS poruka upotrijebite naredbu:
rosmsg list
Za pregled strukture poruke koristite naredbu u formatu:
rosmsg show
- Na primjer, “sensor_msgs/NavSatFix” je vrsta poruke u ROS-u koja se koristi za predstavljanje GPS (Global Positioning System) fiksnih podataka kao što su geografska širina, dužina, nadmorska visina i drugi parametri povezani s GPS položajem.
Da biste vidjeli strukturu "sensor_msgs/NavSatFix” poruka, koristite naredbu:
rosmsg show sensor_msgs/NavSatFix
- Za pregled popisa aktivnih ROS usluge koji omogućavaju čvorovima da šalju zahtjeve i primaju odgovore, koristite naredbu:
rosservice list
- Za poziv usluge koristite naredbu u formatu:
rosservice call
Ova služba će odgovoriti rezultatom.
Na primjer, za dobivanje trenutne konfiguracije zapisivača u-blox Čvor, koji može biti od pomoći u svrhe otklanjanja pogrešaka i praćenja, koristite naredbu:
rosservice info /ublox/get_loggers
Ako želite raditi ovaj vodič, imamo sve proizvode na zalihama i spremne za slanje:
- simpleRTK2B serijski prijemnik (u ovom vodiču koristimo simpleRTK2B Budget)
- RTK višepojasna antena (u ovom vodiču koristimo u-blox GNSS Multiband antenna ANN-MB-00 (IP67))
- USB kabel