Ažuriranje (14.): Imamo dosta zaliha svih naših proizvoda, pronađite nas i ovdje i    Kupi

Kako koristiti ArduSimple RTK prijemnike i dobiti GPS podatke u ROS-u

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:

Potreban softver:

  • Ubuntu 18 ili 20 (u ovom vodiču koristimo Ubuntu 20) izvorno instaliran na računalu 
  • ROS (koristimo ROS Noetic).

Kako koristiti ArduSimple RTK prijemnike i dobiti GPS podatke u ROS-u?

Prvo povežite i konfigurirajte RTK prijemnik u Ubuntuu.

  1. Uključite utikač RTK antena na vaše prijamnik. Mjesto antena na mjestu s dobrim pogledom na nebo ili blizu prozora za testiranje funkcionalnosti.
  2. Povežite svoj prijamnik na računalo putem USB priključka označenog s "POWER+GPS".
  3. 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.
  1. Za potvrdu streama s vašeg RTK prijemnik, koristite naredbu:
				
					sudo cat /dev/ttyACM0
				
			
  • GPS ulazni tok pokazuje slično dolje navedenom:
  • tisak Ctrl + C da biste otkazali gledanje streama.
  1. 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
				
			
  1. Unesite sljedeći tekst u pravilo:
				
					KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
				
			
  1. tisak Ctrl + X za izlaz iz datoteke i pritisnite Y za spremanje modificiranog međuspremnika.
  2. 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/
				
			
  1. Sad to možete vidjeti “tty_ArduSimple" je stvoren.
  1. Kako bi se koristio U-center programa u Ubuntuu, instalirajte Wine. To je zbirka Linux biblioteka koje omogućuju pokretanje mnogih Windows aplikacija na Linux distribucijama (između ostalog na Ubuntuu).
    To ne čini U-center softver potpuno kompatibilan, ali se može koristiti u slučaju da želite provjeriti status ili konfiguraciju svog 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

				
			
  1. Nakon što je Wine instaliran, moguće ga je instalirati U-Center u Ubuntuu, kao da je Windows. Otvorite Firefox web preglednik i preuzmite U-Center program sa službene stranice: https://www.u-blox.com/en/product/u-center.
  1. Jednom u-center preuzeto, idite u mapu Download i izdvojite u-center na radnoj površini.
  1. Za početak instalacije u-center softvera, upišite naredbu:
				
					cd ~/Desktop/
wine ./u-center_v22.07.exe

				
			
  1. Instalirati u-center kao da ste u sustavu Windows slijedeći korake instalacije.
  2.  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
				
			
  1. Zatvori u-center ako imate otvorenu. Otvoren u-center.
  2. Povežite se sa svojim RTK prijemnik in u-center pritiskom na Ctrl + 1 .
  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.

  1. 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
				
			
  1. 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
  1. 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.
  1. 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
				
			
  1. Od modela u-blox unutra Ardusimple je zed_f9p, mijenjamo datoteku s istim nazivom. Za otvaranje editora možemo koristiti sljedeću naredbu:
				
					nano zed_f9p.yaml
				
			
  1. 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

				
			
  1. Zatvori u-center jer ROS i u-center nemojte trčati zajedno.

  1. 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
				
			
  1. 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 <name_of_package> <launch_file>
				
			
  • 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
				
			
  1. Otvorite novi terminal i unesite naredbu:
				
					source ~/catkin_ws/devel/setup.bash
				
			
  1. ROS čvorovi prilikom pokretanja imaju jedinstvena imena. Da biste vidjeli popis imena ROS čvorova, koristite naredbu u terminalu:
				
					rosnode list
				
			
  1. 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 <name_of_node>
				
			
  • Na primjer, za dobivanje informacija o "info /ublox”, koristite naredbu:

				
					rosnode info /ublox
				
			
  1. 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.

  1. Za pregled informacija o tome tko objavljuje i pretplatio se na ovu poruku, upišite poruku, koristite naredbu u formatu:
				
					rostopic info <name_of_topic>
				
			
  • Na primjer, za primanje informacija o vrsti poruke, izdavačima i pretplatnicima teme “/rosout”, izvršite naredbu:
				
					rostopic info /rosout
				
			
  1. Za primanje informacija o vrsti poruke, izdavačima i pretplatnicima teme /ublox/fix, nprxizvršite naredbu:
				
					rostopic info /ublox/fix
				
			
  1. Da biste vidjeli informacije koje se objavljuju, koristite naredbu u formatu:
				
					rostopic echo <name_of_topic>
				
			
  • 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.

  1. 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.

  1. Ž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.

  1. Da biste vidjeli podatke snimljene u datotekama, izvršite:
				
					nano gps_fix_data.txt
				
			
				
					nano gps_diagnostics.txt
				
			
  1. 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
				
			
  1. Za pregled strukture poruke koristite naredbu u formatu:

				
					rosmsg show <name_of_message>
				
			
  • 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
				
			
  1. Za pregled popisa aktivnih ROS usluge koji omogućavaju čvorovima da šalju zahtjeve i primaju odgovore, koristite naredbu:
				
					rosservice list
				
			
  1. Za poziv usluge koristite naredbu u formatu:
				
					rosservice call <name_of_service> <type_srv> <request>
				
			
  • Ova služba će odgovoriti rezultatom.

    Na primjer, za dobivanje trenutne konfiguracije zapisivača u-blox čvora, što može biti od pomoći u svrhe otklanjanja pogrešaka i praćenja, upotrijebite naredbu:

				
					rosservice info /ublox/get_loggers
				
			

Ako želite raditi ovaj vodič, imamo sve proizvode na zalihama i spremne za slanje:

Ako vam se svidio ovaj sadržaj, možete nas pratiti na X / Twitter, YouTube, Facebook or LinkedIn da biste bili u tijeku s ovakvim sadržajem.

Imate pitanja ili zahtjeva?
Kontaktirajte nas! Odgovaramo <24 sata!

Ikona
Kontakt ArduSimple
Zatvori

Želite saznati više o GPS/RTK?

1. Naš inženjerski tim će vas kontaktirati kako bismo riješili sva pitanja
2. Obavještavat ćemo vas o promocijama i novim izdanjima proizvoda
3. Javit ćemo vam se samo kada budemo imali važne vijesti, nećemo spamati vašu e-poštu