Tässä opetusohjelmassa selitämme, kuinka sitä käytetään ArduSimple RTK-vastaanottimet saadakseen tarkan paikannustiedot ROS:ssa. Ohjaamme sinut integroinnin vaiheiden läpi ArduSimple RTK vastaanotin ROS-projektiisi, jolloin voit hyödyntää tarkkoja GPS-tietoja.
Olitpa robotiikan harrastaja, tutkija tai kehittäjä, tämä opetusohjelma antaa sinulle vaiheet, joilla pääset käsiksi paikannustietoihin ROS-sovelluksissasi.
Jos olet uusi ROS:ssa, olemme laatineet lyhyen tohje, joka auttaa pääsemään alkuun ROS:n kanssa saadaksesi lisätietoja ROS:n keskeisistä termeistä, mikä alusta ja kehitysympäristö on parempi valita jne.
Vaadittu laitteisto:
- simpleRTK2B sarjan vastaanotin (tässä opetusohjelmassa käytämme simpleRTK2B Budget)
- RTK Multiband antenni (tässä opetusohjelmassa käytämme u-blox GNSS Monikaistainen antenni ANN-MB-00 (IP67))
- USB-kaapeli Yhteensopiva vastaanottimen USB-portin kanssa PC-tietokoneeseen tai sulautettuun alustaan liittämistä varten
- Tietokone tai sulautettu alusta, jossa on Internet-yhteys (käytämme tietokonetta tässä opetusohjelmassa)
Vaadittu ohjelmisto:
- Ubuntu 18 tai 20 (tässä opetusohjelmassa käytämme Ubuntu 20) asennettuna alkuperäisesti PC:lle
- ROS (käytämme ROS Noetic).
- Voit asentaa ROS:n seuraamalla näitä ohjeita:
- käytä ROS Melodicia Ubuntu 18:lle (tarkista ROS Melodicin asennusopas)
- käytä ROS Noetic -sovellusta Ubuntu 20:lle (tarkista ROS Noeticin asennusopas)
Kuinka käyttää ArduSimple RTK-vastaanottimet ja saat GPS-tiedot ROS:ssa?
Yhdistä ja määritä ensin RTK-vastaanotin Ubuntussa.
- Kytke RTK antenni oman vastaanotin. Paikka Antennin paikassa, josta on hyvä näkymä taivaalle, tai lähellä ikkunaa toimivuuden testaamiseksi.
- Liitä vastaanotin tietokoneeseen USB-portin kautta, jossa on "POWER+GPS"
- Vastaanottimesi pitäisi olla määritetty automaattisesti. Tarkista tämä avaamalla terminaali ja kirjoita komento:
ls /dev/tty*
- Näet "/dev/ttyACM0" on luotu automaattisesti.
- Vahvistaaksesi streamin sinulta RTK vastaanotin, käytä komentoa:
sudo cat /dev/ttyACM0
- GPS-tulovirta näyttää samankaltaisesti kuin alla:
- lehdistö Ctrl + C peruuttaaksesi streamin näkemisen.
- Estää RTK vastaanotin alkaen eri tavalla"ttyACM*" aina kun se on päällä, luo udev-sääntö (dynaaminen linkki), joka luo tietynnimisen merkinnän lisäämällä seuraavan tiedoston ennen liittämistä RTK vastaanotin.
sudo nano /etc/udev/rules.d/50-ardusimple.rules
- Kirjoita seuraava teksti sääntöön:
KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
- lehdistö Ctrl + X poistuaksesi tiedostosta ja paina Y tallentaaksesi muokatun puskurin.
- Nyt aina kun an RTK vastaanotin on yhdistetty, se on käytettävissä osoitteesta "/dev/tty_Ardusimple" linkki. Tarkista tämä katkaisemalla yhteys RTK vastaanotin (katkaise virta ja käynnistä uudelleen) ja anna komennot:
sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
- Nyt voit nähdä sen "tty_ArduSimple" on luotu.
- Asenna Wine, jotta voit käyttää U-keskusohjelmaa Ubuntussa. Se on kokoelma Linux-kirjastoja, joiden avulla monet Windows-sovellukset voivat toimia Linux-jakeluissa (muun muassa Ubuntussa).
Se ei tee U-keskuksen ohjelmistosta täysin yhteensopivaa, mutta sitä voidaan käyttää, jos haluat tarkistaa laitteen tilan tai kokoonpanon. RTK vastaanotin.
Asenna Wine (asennus voi kestää 2-3 minuuttia) käyttämällä komentoa:
sudo apt install wine64 //if Ubuntu is installed natively
sudo apt install wine32 //if you run Ubuntu on a virtual machine
- Kun Wine on asennettu, on mahdollista asentaa U-Center Ubuntuun, aivan kuin se olisi Windows. Avaa Firefox-selain ja lataa U-Center-ohjelma viralliselta verkkosivustolta: https://www.u-blox.com/en/product/u-center.
- Kerran u-center on ladattu, siirry Lataa-kansioon ja pura se u-center työpöydällä.
- Aloita asennus u-center ohjelmisto, kirjoita komento:
cd ~/Desktop/
wine ./u-center_v22.07.exe
- install u-center kuin olet Windowsissa, seuraamalla asennusvaiheita.
- Luo a COM1 portti, auki terminaali ja anna seuraava komento luodaksesi linkin RTK vastaanotin kansiossa "~/.wine/dosdevice".
ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
- lähellä u-center jos olet avannut sen. Avata u-center.
- Yhdistä RTK vastaanotin in u-center painamalla Ctrl + 1 .
- Näet vihreän valon vasemmassa kulmassa ja tiedot RTK-vastaanottimesta, jotka ovat samanlaisia kuin alla.
Toiseksi, suorita RTK-vastaanotin ROS-tilassa.
- Tee työtiloista kansio. Jos sinulla ei ole sellaista, voit tehdä sen komennoilla:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
- Lataa ja asenna ROS-paketit src:n sisällä. Tässä opetusohjelmassa lataamme paketit osoitteesta https://github.com/KumarRobotics/ublox joka julkaisee ROS-tiedot. Tämä toimii tämän 1.1.4-version kanssa. Voit käyttää uusimpia julkaisuja, mutta joitain vaiheita on ehkä muutettava. Anna komennot:
cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
- Näet terminaalissa:
#Kaikki vaaditut rosdepsit on asennettu onnistuneesti
- Kääntää ohjelma, jotta voit suorittaa sen.
catkin_make
source ~/catkin_ws/devel/setup.bash
- Kun setup.bash suoritetaan, valitsemme työtilan ja päivitämme käytettävissä olevat ohjelmat ROS:ssa.
- Jotta voit hallita viestejä, jotka julkaistaan ArduSimple voit muokata yaml-tiedostoa (määritystiedostoa), jota solmu käyttää viestinnän suorittamiseen ros:n kanssa.
Tässä solmussa on useita testimääritystiedostoja, voit muokata tämän arvoja muokkaamalla seuraavassa hakemistossa olevia tiedostoja:
cd ~/catkin_ws/src/ublox/ublox_gps/config
- Koska u-blox malli sisällä Ardusimple on zed_f9p, muokkaamme tiedostoa samalla nimellä. Avataksemme editorin voimme käyttää seuraavaa komentoa:
nano zed_f9p.yaml
Muuta laitteen osoitteeksi "/dev/tty_Ardusimple" varmistaaksesi, että se menee aina RTK vastaanotin:
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
lähellä u-center koska ROS ja u-center älä juokse yhdessä.
- Suorita ROS-solmu käyttämällä käynnistysohjelmaa, joka sijaitsee seuraavassa kansiossa:
cd ~/catkin_ws/src/ublox/ublox_gps/launch
- Tarkistaaksesi, että se on luettelossa, kirjoita komento:
ls
- ROS-käynnistystiedostot yksinkertaistaa useiden solmujen käynnistämistä ja niiden parametrien määrittämistä. Käynnistystiedosto on XML-tiedosto, joka kuvaa suoritettavat solmut, niiden parametrit ja niiden väliset yhteydet. Käynnistystiedostoja käyttämällä voit käynnistää useita solmuja yhdellä komennolla, mikä helpottaa monimutkaisten robottijärjestelmien hallintaa. Näillä tiedostoilla on .launch-tunniste, ja on muita tiedostoja, jotka ovat määritystiedostoja, joiden tunniste on .yaml.
Tiedoston käynnistäminen:
roslaunch
- Ohjelmamme käynnistävä tiedosto on nimeltään "ublox_device.launch".
Tätä tiedostoa voidaan muuttaa tarpeen mukaan.
Käynnistä ohjelma käyttämällä seuraavaa komentoa:
roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
- Avaa uusi pääte ja anna komento:
source ~/catkin_ws/devel/setup.bash
- ROS-solmut ajettaessa niillä on yksilölliset nimet. Näet luettelon ROS-solmujen nimistä käyttämällä terminaalin komentoa:
rosnode list
- Saat tietoja ROS-solmuista, kuten tilatut tai julkaisemat aiheet, käyttämällä seuraavaa komentoa:
rosnode info
Esimerkiksi saadaksesi tietoa "info /ublox”, käytä komentoa:
rosnode info /ublox
- Aktiivisten luettelon näyttäminen ROS-aiheet jotka ovat tällä hetkellä saatavilla ja joita julkaistaan tai tilataan ROS-järjestelmääsi, käytä komentoa.
rostopic list
ROS-aiheluettelon tulos näyttää yleensä aiheiden nimet sekä niiden viestityypit. Tämä komento on hyödyllinen käytettävissä olevien aiheiden tarkistamiseen ja sen tarkistamiseen, julkaistaanko tai tilataanko haluttuja aiheita ROS-ympäristössäsi.
- Jos haluat tarkastella tietoja tämän viestin lähettäjistä ja tilaajista, kirjoita viesti, käytä komentoa muodossa:
rostopic info
- Esimerkiksi saadaksesi tietoja viestityypistä, aiheen julkaisijoista ja tilaajista "/rosout", suorita komento:
rostopic info /rosout
- Saadaksesi tietoa viestityypistä, aiheen julkaisijoista ja tilaajista /ublox/fix, esimsuorita komento:
rostopic info /ublox/fix
- Jos haluat nähdä julkaistavat tiedot, käytä komentoa seuraavassa muodossa:
rostopic echo
Testaaksemme sen toimivuutta voimme tilata solmun luomat eri aiheet.
Tärkeimmät ovat "/gps/fix" (ovat WGS64:n tiedot) ja "/diagnostiikka" (antaa meille tietoa GPS-tilasta). Muut tiedot voidaan julkaista sen konfiguraation mukaan, josta on asetettu RTK vastaanotin.
Esimerkiksi havainnoimaan ja valvomaan julkaistavia GPS-paikannustietoja "/ublox/fix" Aihe (ovat WGS64:n tiedot), kuten leveysaste, pituusaste, korkeus ja muut asiaankuuluvat tiedot, käytä seuraavaa komentoa tarkastellaksesi tietoja:
rostopic echo /ublox/fix
Jos haluat lopettaa aiheen katselun, paina Ctrl + C.
- Voit tarkastella julkaistavia tietoja "/diagnostiikka" joka antaa tietoja GPS-tilasta, kuten tarkkuudesta muiden kesken, käytä komentoa:
rostopic echo /diagnostics
Jos haluat lopettaa tietojen katselun, paina Ctrl + C.
- Jos haluat tallentaa Aiheesta julkaistut tiedot tiedostoon, käytä komentoa:
- tallentaaksesi julkaistavan GPS-paikannustiedot "/ublox/fix" Aihe, kuten leveysaste, pituusaste, korkeus muiden joukossa:
rostopic echo /ublox/fix > gps_fix_data.txt
- tallentaaksesi tietoja GPS-tilasta "/diagnostiikka":
rostopic echo /diagnostics > gps_diagnostics.txt
Nämä komennot luovat tiedostot gps_fix_data.txt ja gps_diagnostics.txt, johon aihe tallennetaan. Lopeta tallennus painamalla Ctrl + C.
- Nähdäksesi tiedostoihin tallennetut tiedot, suorita:
nano gps_fix_data.txt
nano gps_diagnostics.txt
- ROS-viestit ovat tietorakenteita, joita käytetään viestintään ROS-solmujen välillä. Ne määrittelevät aiheesta vaihdettavat tiedot. Viestit määritellään käyttämällä .msg-tiedostomuotoa.
Näet luettelon ROS-viestityypeistä käyttämällä komentoa:
rosmsg list
Voit tarkastella viestin rakennetta käyttämällä komentoa muodossa:
rosmsg show
- Esimerkiksi "sensor_msgs/NavSatFix" on ROS:n viestityyppi, jota käytetään edustamaan GPS-paikannusjärjestelmän (Global Positioning System) -paikannustietoja, kuten leveysaste, pituusaste, korkeus ja muut GPS-sijaintiin liittyvät parametrit.
Nähdäksesi rakenteensensor_msgs/NavSatFix” viesti, käytä komentoa:
rosmsg show sensor_msgs/NavSatFix
- Voit tarkastella aktiivisten luetteloa ROS-palvelut jotka tarjoavat solmuille tavan lähettää pyyntöjä ja vastaanottaa vastauksia, käytä komentoa:
rosservice list
- Soita palveluun käyttämällä komentoa muodossa:
rosservice call
Tämä palvelu vastaa tuloksella.
Esimerkiksi saadaksesi nykyisen loggerin kokoonpanon u-blox Node, joka voi olla hyödyllinen virheenkorjaus- ja valvontatarkoituksiin, käytä komentoa:
rosservice info /ublox/get_loggers
Jos haluat tehdä tämän opetusohjelman, meillä on kaikki tuotteet varastossa ja valmiina lähetettäväksi:
- simpleRTK2B sarjan vastaanotin (tässä opetusohjelmassa käytämme simpleRTK2B Budget)
- RTK Multiband antenni (tässä opetusohjelmassa käytämme u-blox GNSS Multiband antenna ANN-MB-00 (IP67))
- USB-kaapeli