Hvordan bygger du en ROS -robot?
For at systemet skal fungere bra, og for at du skal kunne følge hva enheten vil gjøre i visse situasjoner, trenger du standarddefinisjoner for hver del. I ROS er disse komponentene noder, tjenester og emner. Kort sagt, du lager en node for hvert hovedbehov. For eksempel er bevegelse en node, syn er en annen node, og planlegging er en tredje node. Nodene inneholder tjenester som kan sende informasjon til andre noder, og tjenester kan også håndtere forespørsler og svar. Et emne kan kringkaste verdier til mange andre noder. Å få tak i disse vilkårene og hvordan du bør bruke dem er den første nøkkelen til å mestre ROS2 -utvikling.
Emulere navigasjon med Turtlesim
Når du starter i ROS, vil du sannsynligvis kjøpe en robot som går eller ruller rundt i huset ditt. For å gjøre dette, må roboten ha utsikt over området der det navigerer. For å gjøre dette, kan du bruke en kartlignende applikasjon for å teste robotens oppførsel. Designerne bak Turtlebot har kommet med en applikasjon, kalt Turtlesim, som kan gjøre dette for deg. Som med alle andre deler av ROS2, kan du starte disse verktøyene med en underkommando fra kommandolinjen. Du har da aktiviteter for forskjellige funksjoner. Den første delen er å starte vinduet der du kan se simuleringen, og dette kalles en node.
$ ROS2 Kjør Turtlesim Turtlesimnode
Et vindu vises med en skilpadde i sentrum. For å kontrollere skilpadden med tastaturet ditt, må du kjøre en ny kommando som holder seg åpen og fortsetter å trykke på visse nøkler. Dette er en andre node som kommuniserer med den første.
$ ROS2 Kjør Turtlesim Turtleteleopkey
Nå kan du flytte skilpadden rundt og se hvordan den beveger seg. Du kan også få feil, for eksempel å slå veggen. Disse feilene dukker opp i terminalen der Turtlesimnode kjører. Dette er den enkleste bruken av simuleringsmodulen. Du kan også kjøre gitte former, en firkant leveres, og tilsett flere skilpadder. For å legge til flere skilpadder, kan du bruke RQT -kommandoen.
Definere tjenester med RQT
RQT -programmet tilbyr tjenester for simuleringen. Q står for QT, som er for å håndtere grensesnittet. I dette eksemplet gyter du en ny skilpadde.
$ rqt
RQT -grensesnittet er en lang liste over tjenester for simuleringen du kjører. For å lage en ny skilpadde, velg rullegardinmenyen 'Spawn', gi skilpadden et nytt navn og klikk 'Ring.'Du vil umiddelbart se en ny skilpadde ved siden av den første. Hvis du klikker på rullegardinmenyen "Spawn", vil du også se en ny gjeng med oppføringer relatert til den nyoppgitte skilpadden.
Du kan også gjøre omkommandoer for å kjøre den nye skilpadden. Kommandoen om å gjøre det er som følger:
$ ROS2 Kjør Turtlesim Turtleteleopkey -Ros -Args -Remap Turtle1/Cmdvel: = Turtle2/Cmdvel
Angi navnet 'Turtle2,' i henhold til ditt tidligere valg.
Avansert visning med RVIZ
For mer avansert og 3D -visning, bruk RVIZ. Denne pakken simulerer alle nodene i designet ditt.
$ ROS2 RUN RVIZ2 RVIZ2
I det grafiske grensesnittet har du tre paneler, med utsikten i sentrum. Du kan bygge miljøer ved hjelp av "Display" -panelet. Du kan legge til vegger, vindkrefter og andre fysiske egenskaper. Det er også her du legger til robotene dine.
Vær oppmerksom på at før du kommer til dette punktet, må du forstå hvordan du bruker URDF -formatet. URDF -formatet definerer en robot, slik at du kan stille inn kroppen, armer, ben og fremfor alt kollisjonssoner. Kollisjonssonene er der slik at simuleringen kan bestemme om roboten har kollidert.
Å lære om å lage en robot i URDF-formatet er et stort prosjekt, så bruk en eksisterende open source-kode for å eksperimentere med emulatorene.
Simulere fysikk med lysthus
I Gazebo kan du simulere miljøets fysikk rundt roboten din. Gazebo er et komplementprogram som fungerer bra sammen med RVIZ. Med Gazebo kan du se hva som faktisk skjer; Med RVIZ holder du rede på hva roboten oppdager. Når programvaren din oppdager en vegg som ikke er der, vil Gazebo vise tom og RVIZ vil vise hvor i koden din ble opprettet.
Konklusjon
Å simulere roboten din og dens miljøer er nødvendig for å finne feil og gi nødvendige forbedringer i driften av roboten din før du legger den ut i naturen. Dette er en kjedelig prosess som fortsetter lenge etter at du begynner å teste bot, både i kontrollerte miljøer og det virkelige liv. Med tilstrekkelig kunnskap om infrastrukturen til robotens interne systemer, kan du gi mening om hva du har gjort riktig og galt. Lær raskt å sette pris på alle feilene du finner, da de kan gjøre systemet ditt mer robust på lang sikt.