Robotica

Een eenvoudige robot plannen met Linux Using

Een eenvoudige robot plannen met Linux Using
Als je ROS eenmaal hebt geïnstalleerd, wil je misschien een robot bouwen. Een goede manier om in dit project te slagen, is door te plannen wat je wilt doen. In dit geval komt ROS te hulp. Met ROS kun je instellen wat je hebt gebouwd en het hele ding visualiseren. Als je met robots werkt, zijn er veel scenario's waarmee je rekening moet houden. De robot moet interactie hebben met de omgeving, zoals de bank vermijden en de weg terug vinden uit de keuken. De robot moet ook armen en benen hebben als uw behoeften dit vereisen. Je kunt dit allemaal simuleren met ROS, en voor het coderingsgedeelte kun je ook de binnenkant van je systeem simuleren.

Hoe bouw je een ROS-robot??

Om het systeem goed te laten werken en om te kunnen volgen wat het apparaat in bepaalde situaties zal doen, heb je standaarddefinities nodig voor elk onderdeel. In ROS zijn deze componenten knooppunten, services en onderwerpen. Kortom, u maakt één knooppunt voor elke grote behoefte. Beweging is bijvoorbeeld één knooppunt, visie is een ander knooppunt en planning is een derde knooppunt. De knooppunten bevatten services die informatie naar andere knooppunten kunnen verzenden, en services kunnen ook verzoeken en antwoorden afhandelen. Een onderwerp kan waarden naar veel andere knooppunten uitzenden. Grip krijgen op deze termen en hoe u ze moet gebruiken, is de eerste sleutel tot het beheersen van ROS2-ontwikkeling.

Navigatie emuleren met turtlesim

Als je begint in ROS, koop je waarschijnlijk een robot die door je huis loopt of rolt. Om dit te doen, moet de robot zicht hebben op het gebied waarin hij navigeert. Om dit te doen, kun je een kaartachtige applicatie gebruiken om het gedrag van je robot te testen. De ontwerpers achter de Turtlebot hebben een applicatie bedacht, Turtlesim genaamd, die dit voor je kan doen. Net als bij alle andere delen van ROS2, kun je deze tools starten met een subopdracht vanaf de opdrachtregel. Je hebt dan activiteiten voor verschillende functies. Het eerste deel is om het venster te starten waar u de simulatie kunt zien, en dit wordt een knooppunt genoemd.

$ ros2 run turtlesim turtlesimnode

Er verschijnt een venster met een schildpad in het midden. Om de schildpad met je toetsenbord te besturen, moet je een tweede commando uitvoeren dat open blijft en op bepaalde toetsen blijft drukken. Dit is een tweede knoop die communiceert met de eerste first.

$ ros2 run turtlesim turtleteleopkey

Nu kun je de schildpad verplaatsen en zien hoe hij beweegt. U kunt ook fouten krijgen, zoals het raken van de muur. Deze fouten verschijnen in de terminal waar de turtlesimnode draait. Dit is het eenvoudigste gebruik van de simulatiemodule. Je kunt ook bepaalde vormen uitvoeren, er is een vierkant voorzien en meer schildpadden toevoegen. Om meer schildpadden toe te voegen, kun je het rqt-commando gebruiken.

Definieer services met rqt

Het rqt-programma levert diensten voor de simulatie. De q staat voor Qt, dat is voor het afhandelen van de interface. In dit voorbeeld spawn je een nieuwe schildpad.

$ rqt

De rqt-interface is een lange lijst met services voor de simulatie die u uitvoert. Om een ​​nieuwe schildpad aan te maken, kiest u het vervolgkeuzemenu 'spawn', geeft u de schildpad een nieuwe naam en klikt u op 'bellen'.'Je ziet meteen een nieuwe schildpad naast de eerste. Als u op het vervolgkeuzemenu 'spawnen' klikt, ziet u ook een nieuwe reeks items met betrekking tot de nieuw geboren schildpad.

Je kunt ook opdrachten opnieuw toewijzen om de nieuwe schildpad uit te voeren. De opdracht om dit te doen is als volgt:

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

Stel de naam 'turtle2' in volgens uw eerdere keuze.

Geavanceerde weergave met Rviz

Gebruik rviz . voor meer geavanceerde en 3D-weergave. Dit pakket simuleert alle knooppunten in uw ontwerp.

$ ros2 run rviz2 rviz2

In de grafische interface heb je drie panelen, met de weergave in het midden. U kunt omgevingen bouwen met behulp van het paneel 'Beeldschermen'. U kunt muren, windkrachten en andere fysieke eigenschappen toevoegen. Hier voegt u ook uw robots toe.

Houd er rekening mee dat voordat u op dit punt komt, u moet begrijpen hoe u het URDF-formaat moet gebruiken. Het URDF-formaat definieert een robot, waarmee u het lichaam, armen, benen en vooral botsingszones kunt instellen. De botsingszones zijn er zodat de simulatie kan beslissen of de robot is gebotst.

Leren over het maken van een robot in het URDF-formaat is een groot project, dus gebruik een bestaande open-sourcecode om met de emulators te experimenteren.

Natuurkunde simuleren met Gazebo

In Gazebo kun je de fysica van de omgeving rondom je robot simuleren. Gazebo is een complementair programma dat goed samenwerkt met rviz. Met Gazebo zie je wat er werkelijk gebeurt; met rviz houd je bij wat de robot detecteert. Wanneer uw software een muur detecteert die er niet is, zal Gazebo leeg tonen en rviz zal laten zien waar in uw code de muur is gemaakt.

Conclusie

Het simuleren van je robot en zijn omgevingen is nodig om bugs te vinden en de nodige verbeteringen aan te brengen in de werking van je robot voordat je hem in het wild uitzet. Dit is een vervelend proces dat doorgaat lang nadat je de bot bent gaan testen, zowel in gecontroleerde omgevingen als in het echte leven. Met voldoende kennis van de infrastructuur van de interne systemen van uw robot, kunt u begrijpen wat u goed en fout hebt gedaan. Leer snel om alle fouten die u vindt te waarderen, omdat ze uw systeem op de lange termijn robuuster kunnen maken.

Shadow of the Tomb Raider voor Linux-zelfstudie
Shadow of the Tomb Raider is de twaalfde toevoeging aan de Tomb Raider-serie - een actie-avonturengame-franchise gemaakt door Eidos Montreal. De game ...
Hoe FPS te verhogen in Linux?
FPS staat voor Beelden per seconde. De taak van FPS is om de framesnelheid te meten bij het afspelen van video's of speluitvoeringen. In eenvoudige wo...
Top Oculus App Lab-games
Als je eigenaar bent van een Oculus-headset, moet je op de hoogte zijn van sideloading. Sideloading is het proces van het installeren van niet-winkeli...