Robotikk

Hvordan planlegge en enkel robot ved hjelp av Linux

Hvordan planlegge en enkel robot ved hjelp av Linux
Når du har installert ROS, vil du kanskje bygge en robot. En god måte å lykkes i dette prosjektet er å planlegge hva du vil gjøre. I dette tilfellet kommer ROS til unnsetning. Med ROS kan du sette opp det du har bygget og visualisere det hele. Når du arbeider med roboter, vil det være mange scenarier som du kanskje må vurdere. Roboten må samhandle med miljøet, for eksempel å unngå sofaen og finne veien tilbake fra kjøkkenet. Roboten skal også ha armer og ben hvis dine behov krever det. Du kan simulere alt dette ved hjelp av ROS, og for kodingsdelen kan du også simulere det indre av systemet ditt.

Hvordan bygger du en ROS-robot?

For at systemet skal fungere godt, og for at du skal kunne følge med på 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 oppretter en node for hvert større behov. For eksempel er bevegelse en node, visjon 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 skal bruke dem er den første nøkkelen til å mestre ROS2-utvikling.

Etterlign navigering 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 den navigerer. For å gjøre dette kan du bruke et kartlignende program 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 run turtlesim turtlesimnode

Et vindu vises med en skilpadde i midten. For å kontrollere skilpadden med tastaturet, må du kjøre en ny kommando som holder seg åpen og fortsetter å trykke på bestemte taster. Dette er en annen node som kommuniserer med den første.

$ ros2 run turtlesim turtleteleopkey

Nå kan du flytte skilpadden rundt og se hvordan den beveger seg. Du kan også få feil, for eksempel å treffe veggen. Disse feilene vises i terminalen der turtlesimnode kjører. Dette er den enkleste bruken av simuleringsmodulen. Du kan også kjøre gitte former, en firkant er gitt og legge til flere skilpadder. For å legge til flere skilpadder, kan du bruke kommandoen rqt.

Definer tjenester med rqt

Rqt-programmet gir tjenester for simuleringen. Q står for Qt, som er for håndtering av 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 'gyte', 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 'gyte', vil du også se en ny haug med oppføringer relatert til den nylig gyte skilpadden.

Du kan også kartlegge kommandoer for å kjøre den nye skilpadden. Kommandoen for å gjøre det er som følger:

$ ros2 run turtlesim turtleteleopkey -ros-args -kart skilpadde1 / cmdvel: = turtle2 / cmdvel

Sett 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 kjør rviz2 rviz2

I det grafiske grensesnittet har du tre paneler, med utsikten i midten. Du kan bygge miljøer ved å bruke panelet 'Skjermer'. Du kan legge til vegger, vindkrefter og andre fysiske egenskaper. Det er også her du legger til roboter.

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 kropp, armer, ben og fremfor alt kollisjonssoner. Kollisjonssonene er der, slik at simuleringen kan avgjøre om roboten har kollidert.

Å lære om å lage en robot i URDF-format er et stort prosjekt, så bruk en eksisterende åpen kildekode for å eksperimentere med emulatorene.

Simuler fysikk med lysthus

I Gazebo kan du simulere fysikken i miljøet rundt roboten din. Gazebo er et komplementprogram som fungerer godt sammen med rviz. Med Gazebo kan du se hva som faktisk skjer; med rviz holder du oversikt over 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 veggen ble opprettet.

Konklusjon

Å simulere roboten din og dens omgivelser 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 boten, både i kontrollerte miljøer og i det virkelige liv. Med tilstrekkelig kunnskap om infrastrukturen til robotens interne systemer, kan du forstå hva du har gjort riktig og galt. Lær raskt å forstå alle feilene du finner, da de kan gjøre systemet ditt mer robust på sikt.

Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...
Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...
Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...