Poznaj nasz zespół w San Diego, Stany Zjednoczone, od wtorku 23 do czwartku 25 kwietnia na XPONENTIAL, stoisko 4700

Aktualizacja (18 / 04 / 2024): Posiadamy duży zapas wszystkich naszych produktów, znajdziesz nas również w i    Kup teraz

Poznaj nasz zespół w San Diego, Stany Zjednoczone, od wtorku 23 do czwartku 25 kwietnia na XPONENTIAL, stoisko 4700

Jak używać ArduSimple RTK odbiorników i uzyskać dane GPS w ROS

W tym samouczku wyjaśniamy, jak używać ArduSimple RTK odbiorników w celu uzyskania precyzyjnych danych o położeniu w systemie ROS. Przeprowadzimy Cię przez kolejne etapy integracji ArduSimple RTK odbiorca do swojego projektu ROS, umożliwiając wykorzystanie mocy dokładnych danych GPS.

Niezależnie od tego, czy jesteś entuzjastą robotyki, badaczem czy programistą, w tym samouczku dowiesz się, jak uzyskać dostęp do danych pozycjonowania w aplikacjach ROS.

Jeśli jesteś nowy w ROS, przygotowaliśmy krótki tsamouczek, który pomoże rozpocząć pracę z ROS aby dowiedzieć się więcej o kluczowych pojęciach związanych z ROS, jaką platformę i środowisko programistyczne lepiej wybrać itp.

Wymagany sprzęt:

Wymagane oprogramowanie:

  • Ubuntu 18 lub 20 (w tym samouczku używamy Ubuntu 20) instalowane natywnie na komputerze PC 
  • ROS (używamy ROS Noetic).

Jak używać ArduSimple RTK odbiorników i uzyskać dane GPS w ROS?

Najpierw podłącz i skonfiguruj RTK Odbiornik w Ubuntu.

  1. Podłącz RTK antena dla Twojej odbiorca. Miejsce antena w miejscu z dobrym widokiem na niebo lub w pobliżu okna w celu sprawdzenia działania.
  2. Podłącz odbiorca do komputera poprzez port USB oznaczony „POWER+GPS".
  3. Odbiornik powinien zostać skonfigurowany automatycznie. Aby to sprawdzić, otwórz terminal i wpisz polecenie:
				
					ls /dev/tty*
				
			
  • Zobaczysz „/dev/ttyACM0” został utworzony automatycznie.
  1. Aby zweryfikować strumień z Twojego RTK odbiorca, użyj polecenia:
				
					sudo cat /dev/ttyACM0
				
			
  • Strumień wejściowy GPS wygląda podobnie do poniższego:
  • Naciśnij przycisk Ctrl + C aby anulować oglądanie strumienia.
  1. Aby zapobiec RTK odbiorca od rozpoczęcia w innymttyACM*” za każdym razem, gdy jest zasilany, utwórz regułę udev (dynamiczne łącze), która tworzy wpis o określonej nazwie, dodając następujący plik przed podłączeniem RTK odbiorca.
				
					sudo nano /etc/udev/rules.d/50-ardusimple.rules
				
			
  1. Wprowadź następujący tekst do reguły:
				
					KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
				
			
  1. Naciśnij przycisk Ctrl + X aby wyjść z pliku i naciśnij Y aby zapisać zmodyfikowany bufor.
  2. Teraz, gdy np RTK odbiorca jest podłączony, będzie dostępny z „/dev/tty_Ardusimple" połączyć. Aby to sprawdzić, odłącz RTK odbiorca (wyłącz i ponownie włącz zasilanie) i wprowadź komendy:
				
					sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
				
			
  1. Teraz możesz to zobaczyć „tty_ArduSimple" został stworzony.
  1. Aby skorzystać z U-center programu w Ubuntu, zainstaluj Wine. Jest to zbiór bibliotek linuksowych, które umożliwiają uruchamianie wielu aplikacji Windows w dystrybucjach Linuksa (między innymi na Ubuntu).
    Nie sprawia to U-center oprogramowanie jest w pełni kompatybilne, ale można go użyć w przypadku, gdy chcesz sprawdzić status lub konfigurację swojego RTK odbiorca.
    Aby zainstalować Wine (instalacja może trwać 2-3 minuty), użyj polecenia:
				
					sudo apt install wine64  //if Ubuntu is installed natively
sudo apt install wine32  //if you run Ubuntu on a virtual machine

				
			
  1. Po zainstalowaniu Wine możliwa jest instalacja U-Center w Ubuntu, tak jakby to był Windows. Otwórz przeglądarkę internetową Firefox i pobierz plik U-Center program z oficjalnej strony: https://www.u-blox.com/en/product/u-center.
  1. Pewnego razu u-center zostanie pobrany, przejdź do folderu Pobrane i wyodrębnij plik u-center na pulpicie.
  1. Aby rozpocząć instalację u-center oprogramowanie, wpisz polecenie:
				
					cd ~/Desktop/
wine ./u-center_v22.07.exe

				
			
  1. Zainstalować u-center jak w systemie Windows, wykonując kroki instalacji.
  2.  Aby utworzyć COM1 Port, otwarty terminal i wprowadź następujące polecenie, aby utworzyć łącze RTK odbiorca w folderze „~/.wine/dosurządzenie”.
				
					ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
				
			
  1. Zamknij u-center jeśli masz je otwarte. otwarty u-center.
  2. Połącz się ze swoim RTK odbiorca in u-center naciskając Ctrl + 1 .
  1. W lewym rogu zobaczysz zielone światło i dane z Twojego RTK Odbiornik podobny do poniższego.

Po drugie, biegaj RTK Odbiornik w ROS.

  1. Utwórz folder z obszarami roboczymi. Jeśli go nie masz, możesz to zrobić za pomocą poleceń:
				
					mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  1. Pobierz i zainstaluj pakiety ROS wewnątrz src. W tym samouczku pobierzemy pakiety z https://github.com/KumarRobotics/ublox który opublikuje informacje ROS. Działa to z tą wersją 1.1.4. Możesz korzystać z najnowszych wersji, ale niektóre kroki mogą wymagać modyfikacji. Wpisz polecenia:
				
					cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
				
			
  • Zobaczysz w Terminalu:
    #Wszystkie wymagane rosdeps zostały pomyślnie zainstalowane
  1. Skompiluj program, aby móc go wykonać.  
				
					catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  • Podczas wykonywania setup.bash wybieramy obszar roboczy pracy i aktualizujemy dostępne programy w ROS.
  1. Aby mieć kontrolę nad wiadomościami, które mają być publikowane w ArduSimple możesz zmodyfikować yaml (plik konfiguracyjny), którego węzeł będzie używał do komunikacji z ros.
    Ten węzeł ma kilka testowych plików konfiguracyjnych, możesz zmodyfikować wartości tego pliku, modyfikując pliki znajdujące się w następującym katalogu:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/config
				
			
  1. Od modelu u-blox w środku Ardusimple jest zed_f9p, modyfikujemy plik o tej samej nazwie. Aby otworzyć edytor, możemy użyć następującego polecenia:
				
					nano zed_f9p.yaml
				
			
  1. Zmień adres urządzenia na „/dev/tty_Ardusimple" aby upewnić się, że zawsze trafia do RTK Odbiornik:

				
					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. Zamknij u-center ponieważ ROS i u-center nie biegajcie razem.

  1. Aby uruchomić węzeł ROS, użyj programu uruchamiającego znajdującego się w następującym folderze:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/launch
				
			
  • Aby sprawdzić, czy jest na liście, wpisz polecenie:
				
					ls
				
			
  1. Pliki uruchamiania ROS uprościć proces uruchamiania wielu węzłów i konfigurowania ich parametrów. Plik uruchamiania to plik XML opisujący węzły do ​​wykonania, ich parametry i połączenia między nimi. Korzystając z plików uruchamiania, możesz uruchamiać wiele węzłów za pomocą jednego polecenia, co ułatwia zarządzanie złożonymi systemami robotów. Te pliki mają rozszerzenie „.launch”, istnieją inne pliki, które są plikami konfiguracyjnymi, które mają rozszerzenie „.yaml”.
    Aby uruchomić plik:
				
					roslaunch <name_of_package> <launch_file>
				
			
  • Plik, który uruchomi nasz program to tzw „ublox_device.launch”.
    Plik ten można zmienić w razie potrzeby.
    Aby uruchomić program, użyj następującego polecenia:
				
					roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
				
			
  1. Otwórz nowy Terminal i wprowadź polecenie:
				
					source ~/catkin_ws/devel/setup.bash
				
			
  1. Węzły ROS podczas biegania mają unikalne nazwy. Aby zobaczyć listę nazw węzłów ROS, użyj polecenia w terminalu:
				
					rosnode list
				
			
  1. Aby uzyskać informacje o węzłach ROS, takie jak tematy, które są przez nie subskrybowane lub publikowane, można użyć następującego polecenia:
				
					rosnode info <name_of_node>
				
			
  • Na przykład, aby uzyskać informacje o „informacje / ublox”, użyj polecenia:

				
					rosnode info /ublox
				
			
  1. Aby wyświetlić listę aktywnych Tematy ROS które są aktualnie dostępne i są publikowane lub subskrybowane w systemie ROS, użyj polecenia.
				
					rostopic list
				
			
  • Dane wyjściowe listy tematów ROS zazwyczaj zawierają nazwy tematów wraz z typami wiadomości. To polecenie jest przydatne do sprawdzania dostępnych tematów i sprawdzania, czy żądane tematy są publikowane lub subskrybowane w środowisku ROS.

  1. Aby wyświetlić informacje o tym, kto publikuje i subskrybuje tę wiadomość, wpisz wiadomość, użyj polecenia w formacie:
				
					rostopic info <name_of_topic>
				
			
  • Na przykład, aby otrzymywać informacje o typie wiadomości, wydawcy i subskrybenci tematu „/rosout”, wykonaj polecenie:
				
					rostopic info /rosout
				
			
  1. Aby otrzymywać informacje o typie wiadomości, wydawcach i subskrybentach tematu /ublox/fix, npwykonaj polecenie:
				
					rostopic info /ublox/fix
				
			
  1. Aby zobaczyć publikowane informacje, użyj polecenia w formacie:
				
					rostopic echo <name_of_topic>
				
			
  • Aby sprawdzić, czy to działa, możemy subskrybować różne tematy tworzone przez węzeł.

    Najważniejsze z nich to „/gps/poprawka” (są danymi w WGS64) i "/diagnostyka" (przekazuje nam informacje o statusie GPS). Inne dane mogą być publikowane zgodnie z konfiguracją, która została ustawiona z RTK odbiorca.

    Na przykład, aby obserwować i monitorować publikowane dane pozycji GPS „/ublox/poprawka” Temat (są to dane w WGS64), takie jak szerokość, długość geograficzna, wysokość i inne istotne informacje, użyj następującego polecenia, aby wyświetlić dane:

				
					rostopic echo /ublox/fix
				
			
  • Aby zatrzymać przeglądanie tematu, naciśnij Ctrl + C.

  1. Aby wyświetlić dane, które są publikowane na "/diagnostyka" który podaje informacje o statusie GPS, takie jak dokładność między innymi, użyj polecenia:
				
					rostopic echo /diagnostics
				
			
  • Aby zatrzymać przeglądanie danych, naciśnij Ctrl + C.

  1. Jeśli chcesz zapisać w pliku informacje opublikowane na Temat, użyj polecenia:
  • do rejestrowania publikowanych danych pozycji GPS „/ublox/poprawka” Temat, taki jak szerokość, długość, wysokość i inne:
				
					rostopic echo /ublox/fix > gps_fix_data.txt
				
			
  • aby rejestrować dane o statusie GPS "/diagnostyka":
				
					rostopic echo /diagnostics > gps_diagnostics.txt
				
			
  • Te polecenia tworzą pliki gps_fix_data.txt i gps_diagnostics.txt, gdzie temat zostanie zapisany. Aby zatrzymać nagrywanie, naciśnij Ctrl + C.

  1. Aby zobaczyć informacje zapisane w plikach, wykonaj:
				
					nano gps_fix_data.txt
				
			
				
					nano gps_diagnostics.txt
				
			
  1. Wiadomości ROS to struktury danych używane do komunikacji między węzłami ROS. Określają wymieniane informacje na dany temat. Wiadomości są definiowane przy użyciu formatu pliku .msg.
    Aby zobaczyć listę typów komunikatów ROS, użyj polecenia:
				
					rosmsg list
				
			
  1. Aby wyświetlić strukturę wiadomości, użyj polecenia w formacie:

				
					rosmsg show <name_of_message>
				
			
  • Na przykład, „sensor_msgs/NavSatFix” to typ wiadomości w ROS, który jest używany do reprezentowania danych GPS (Global Positioning System), takich jak szerokość, długość geograficzna, wysokość i inne parametry związane z pozycją GPS.
    Aby zobaczyć strukturę „sensor_msgs/NavSatFix” wiadomość, użyj polecenia:
				
					rosmsg show sensor_msgs/NavSatFix
				
			
  1. Aby wyświetlić listę aktywnych Usługi ROS które umożliwiają Nodom wysyłanie żądań i otrzymywanie odpowiedzi, użyj polecenia:
				
					rosservice list
				
			
  1. Aby zadzwonić do serwisu, użyj polecenia w formacie:
				
					rosservice call <name_of_service> <type_srv> <request>
				
			
  • Ta usługa odpowie z wynikiem.

    Na przykład, aby uzyskać aktualną konfigurację rejestratora węzła u-blox, która może być pomocna w debugowaniu i monitorowaniu, użyj polecenia:

				
					rosservice info /ublox/get_loggers
				
			

Jeśli chcesz wykonać ten samouczek, mamy wszystkie produkty w magazynie i gotowe do wysyłki:

Jeśli podobały Ci się te treści, możesz nas śledzić Twitter, YouTube, Facebook or LinkedIn aby być na bieżąco z takimi treściami.

Chcesz dowiedzieć się więcej o GPS/RTK?

1. Nasz zespół inżynierów skontaktuje się z Tobą w celu rozwiązania wszelkich pytań
2. Będziemy na bieżąco informować Cię o promocjach i nowościach produktowych
3. Dowiesz się od nas tylko wtedy, gdy będziemy mieć ważne wiadomości, nie będziemy spamować Twojego e-maila