Robotik

Sådan planlægger du en simpel robot ved hjælp af Linux

Sådan planlægger du en simpel robot ved hjælp af Linux
Når du har installeret ROS, vil du måske bygge en robot. En god måde at få succes med dette projekt er at planlægge, hvad du vil gøre. I dette tilfælde kommer ROS til undsætning. Med ROS kan du konfigurere det, du har bygget, og visualisere det hele. Når du arbejder med robotter, vil der være mange scenarier, som du muligvis skal overveje. Robotten skal interagere med miljøet, såsom at undgå sofaen og finde vej tilbage fra køkkenet. Robotten skal også have arme og ben, hvis dine behov kræver det. Du kan simulere alt dette ved hjælp af ROS, og for kodningsdelen kan du også simulere det indre af dit system.

Hvordan bygger du en ROS-robot?

For at systemet kan fungere godt, og for at du kan følge, hvad enheden vil gøre i visse situationer, har du brug for standarddefinitioner for hver del. I ROS er disse komponenter noder, tjenester og emner. Kort sagt opretter du en node til hvert større behov. For eksempel er bevægelse en node, vision er en anden node, og planlægning er en tredje node. Knudepunkterne indeholder tjenester, der kan sende information til andre knudepunkter, og tjenester kan også håndtere anmodninger og svar. Et emne kan sende værdier til mange andre noder. At komme ind på disse vilkår, og hvordan du skal bruge dem, er den første nøgle til at mestre ROS2-udvikling.

Efterlign navigation med skildpadde

Når du starter i ROS, vil du sandsynligvis købe en robot, der går eller ruller rundt i dit hus. For at gøre dette skal robotten have et overblik over det område, hvor den navigerer. For at gøre dette kan du bruge et kortlignende program til at teste din robots opførsel. Designerne bag Turtlebot er kommet med en applikation, kaldet turtlesim, der kan gøre dette for dig. Som med alle andre dele af ROS2 kan du starte disse værktøjer med en underkommando fra kommandolinjen. Derefter har du aktiviteter til forskellige funktioner. Den første del er at starte vinduet, hvor du kan se simuleringen, og dette kaldes en node.

$ ros2 run turtlesim turtlesimnode

Et vindue vises med en skildpadde i midten. For at kontrollere skildpadden med dit tastatur skal du køre en anden kommando, der forbliver åben og fortsætte med at trykke på bestemte taster. Dette er en anden knude, der kommunikerer med den første.

$ ros2 run turtlesim turtleteleopkey

Nu kan du flytte skildpadden rundt og se, hvordan den bevæger sig. Du kan også få fejl, såsom at ramme væggen. Disse fejl vises i terminalen, hvor skildpadden kører. Dette er den enkleste brug af simuleringsmodulet. Du kan også køre givne figurer, der er en firkant og tilføje flere skildpadder. For at tilføje flere skildpadder kan du bruge kommandoen rqt.

Definer tjenester med rqt

Rqt-programmet leverer tjenester til simuleringen. Q står for Qt, som er til håndtering af grænsefladen. I dette eksempel gyder du en ny skildpadde.

$ rqt

Rqt-grænsefladen er en lang liste over tjenester til den simulering, du kører. For at oprette en ny skildpadde skal du vælge rullemenuen 'spawn', give skildpadden et nyt navn og klikke på 'call'.'Du vil straks se en ny skildpadde ved siden af ​​den første. Hvis du klikker på rullemenuen 'spawn', vil du også se en ny gruppe poster, der er relateret til den nyligt gyte skildpadde.

Du kan også kortlægge kommandoer for at køre den nye skildpadde. Kommandoen til at gøre det er som følger:

$ ros2 run turtlesim turtleteleopkey -ros-args-map turtle1 / cmdvel: = turtle2 / cmdvel

Indstil navnet 'skildpadde2' efter dit tidligere valg.

Avanceret visning med Rviz

Brug rviz til mere avanceret og 3D-visning. Denne pakke simulerer alle noder i dit design.

$ ros2 kør rviz2 rviz2

I den grafiske grænseflade har du tre paneler med udsigten i midten. Du kan oprette miljøer ved hjælp af panelet 'Skærme'. Du kan tilføje vægge, vindstyrker og andre fysiske egenskaber. Det er også her, du tilføjer dine robotter.

Vær opmærksom på, at inden du kommer til dette punkt, skal du forstå, hvordan du bruger URDF-formatet. URDF-formatet definerer en robot, så du kan indstille krop, arme, ben og frem for alt kollisionszoner. Kollisionszonerne er der, så simuleringen kan afgøre, om robotten er kollideret.

At lære om at oprette en robot i URDF-format er et stort projekt, så brug en eksisterende open source-kode til at eksperimentere med emulatorerne.

Simuler fysik med havepavillon

I Gazebo kan du simulere fysikken i miljøet omkring din robot. Gazebo er et komplementprogram, der fungerer godt sammen med rviz. Med Gazebo kan du se, hvad der faktisk sker; med rviz holder du styr på, hvad robotten registrerer. Når din software registrerer en mur, der ikke er der, viser Gazebo tom, og rviz viser, hvor i din kode væggen blev oprettet.

Konklusion

Simulering af din robot og dens miljøer er nødvendig for at finde fejl og give nødvendige forbedringer i driften af ​​din robot, før du lægger den ud i naturen. Dette er en kedelig proces, der fortsætter længe efter du begynder at teste bot, i både kontrollerede miljøer og i det virkelige liv. Med tilstrækkelig viden om infrastrukturen i din robots interne systemer kan du forstå, hvad du har gjort rigtigt og forkert. Lær hurtigt at forstå alle de fejl, du finder, da de kan gøre dit system mere robust i det lange løb.

Mus Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Musemarkøren og markøren i Windows 10 er meget vigtige aspekter af operativsystemet. Dette kan også siges om andre operativsystemer, så i sandhed er d...
Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...