Robotik

Hur man planerar en enkel robot med Linux

Hur man planerar en enkel robot med Linux
När du har installerat ROS kanske du vill bygga en robot. Ett bra sätt att lyckas med detta projekt är att planera vad du vill göra. I det här fallet kommer ROS till undsättning. Med ROS kan du ställa in vad du har byggt och visualisera det hela. När du arbetar med robotar kommer det att finnas många scenarier som du kan behöva överväga. Roboten måste interagera med miljön, till exempel att undvika soffan och hitta tillbaka från köket. Roboten ska också ha armar och ben om dina behov kräver det. Du kan simulera allt detta med hjälp av ROS, och för kodningsdelen kan du också simulera internt i ditt system.

Hur bygger du en ROS-robot?

För att systemet ska fungera bra och för att du ska kunna följa vad enheten kommer att göra i vissa situationer behöver du standarddefinitioner för varje del. I ROS är dessa komponenter noder, tjänster och ämnen. Kort sagt, du skapar en nod för varje större behov. Till exempel är rörelse en nod, vision är en annan nod och planering är en tredje nod. Noderna innehåller tjänster som kan skicka information till andra noder och tjänster kan också hantera förfrågningar och svar. Ett ämne kan sända värden till många andra noder. Att ta reda på dessa villkor och hur du ska använda dem är den första nyckeln till att bemästra ROS2-utvecklingen.

Efterlikna navigering med turtlesim

När du börjar i ROS kommer du förmodligen att köpa en robot som går eller rullar runt i ditt hus. För att göra detta måste roboten ha en vy över området där den navigerar. För att göra detta kan du använda en kartliknande applikation för att testa din robots beteende. Designarna bakom Turtlebot har kommit med en applikation, kallad turtlesim, som kan göra detta åt dig. Som med alla andra delar av ROS2 kan du starta dessa verktyg med ett underkommando från kommandoraden. Du har sedan aktiviteter för olika funktioner. Den första delen är att starta fönstret där du kan se simuleringen, och detta kallas en nod.

$ ros2 kör turtlesim turtlesimnode

Ett fönster visas med en sköldpadda i mitten. För att styra sköldpaddan med tangentbordet måste du köra ett andra kommando som förblir öppet och hålla kvar vissa tangenter. Detta är en andra nod som kommunicerar med den första.

$ ros2 run turtlesim turtleteleopkey

Nu kan du flytta sköldpaddan och se hur den rör sig. Du kan också få fel, som att träffa väggen. Dessa fel dyker upp i terminalen där turtlesimnode körs. Detta är den enklaste användningen av simuleringsmodulen. Du kan också köra givna former, en kvadrat tillhandahålls och lägga till fler sköldpaddor. För att lägga till fler sköldpaddor kan du använda kommandot rqt.

Definiera tjänster med rqt

Programmet rqt tillhandahåller tjänster för simuleringen. Q står för Qt, vilket är för hantering av gränssnittet. I det här exemplet leker du en ny sköldpadda.

$ rqt

Rqt-gränssnittet är en lång lista med tjänster för den simulering du kör. För att skapa en ny sköldpadda väljer du rullgardinsmenyn "spawn", ger sköldpaddan ett nytt namn och klickar på "ring.'Du kommer omedelbart att se en ny sköldpadda bredvid den första. Om du klickar på rullgardinsmenyn "spawn" kommer du också att se ett nytt gäng poster relaterade till den nyligen skapade sköldpaddan.

Du kan också mappa om kommandon för att köra den nya sköldpaddan. Kommandot att göra detta är som följer:

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

Ställ in namnet 'turtle2' enligt ditt tidigare val.

Avancerad visning med Rviz

För mer avancerad och 3D-visning, använd rviz. Detta paket simulerar alla noder i din design.

$ ros2 kör rviz2 rviz2

I det grafiska gränssnittet har du tre paneler, med vyn i mitten. Du kan bygga miljöer med hjälp av panelen 'Skärmar'. Du kan lägga till väggar, vindkrafter och andra fysiska egenskaper. Det är också här du lägger till dina robotar.

Tänk på att innan du kommer till denna punkt måste du förstå hur du använder URDF-formatet. URDF-formatet definierar en robot, så att du kan ställa in kropp, armar, ben och framför allt kollisionszoner. Kollisionszonerna finns där så att simuleringen kan avgöra om roboten har kolliderat.

Att lära sig att skapa en robot i URDF-format är ett stort projekt, så använd en befintlig öppen källkod för att experimentera med emulatorerna.

Simulera fysik med lusthus

I lusthus kan du simulera fysiken i miljön som omger din robot. Gazebo är ett komplementprogram som fungerar bra tillsammans med rviz. Med Gazebo kan du se vad som faktiskt händer; med rviz håller du reda på vad roboten upptäcker. När din programvara upptäcker en vägg som inte finns, kommer Gazebo att visas tom och rviz visar var i din kod väggen skapades.

Slutsats

Det är nödvändigt att simulera din robot och dess miljöer för att hitta buggar och tillhandahålla nödvändiga förbättringar i din robots funktion innan du släpper ut den i naturen. Det här är en tråkig process som fortsätter långt efter att du har testat botten, både i kontrollerade miljöer och i verkligheten. Med adekvat kunskap om infrastrukturen i din robots interna system kan du förstå vad du har gjort rätt och fel. Lär dig snabbt att uppskatta alla fel du hittar eftersom de kan göra ditt system mer robust på lång sikt.

Installera senaste Dolphin Emulator för Gamecube & Wii på Linux
Dolphin Emulator låter dig spela dina valda Gamecube & Wii-spel på Linux Personal Computers (PC). Eftersom Dolphin Emulator är en fritt tillgänglig o...
Hur man använder GameConqueror Cheat Engine i Linux
Artikeln täcker en guide om hur du använder GameConqueror-fuskmotorn i Linux. Många användare som spelar spel på Windows använder ofta applikationen "...
Bästa spelkonsolemulatorer för Linux
Den här artikeln listar populära spelkonsolemuleringsprogram som finns tillgängliga för Linux. Emulation är ett mjukvarukompatibilitetsskikt som emule...