ROS ist ein Open-Source-Framework, das die Entwicklung komplexer Roboteranwendungen vereinfacht. Es nutzt eine verteilte Architektur, die erleichtert Kommunikation zwischen verschiedenen Softwarekomponenten innerhalb eines Robotersystems ermöglicht.
ROS2 ist ein beliebtes Framework für die Entwicklung von Robotersystemen, das eine flexible Middleware namens Data Distribution Service (DDS) verwendet und eine verbesserte Unterstützung für Echtzeit- und verteilte Systeme bietet. Der Einsatz auf kleinen Geräten mit geringem Stromverbrauch kann jedoch aufgrund des Ressourcenbedarfs eine Herausforderung darstellen.
Micro-ROS bietet eine leichtgewichtige und effiziente Implementierung von ROS2, die auf Mikrocontrollern ausgeführt werden kann, wodurch es sich für ressourcenbeschränkte Umgebungen wie eingebettete Systeme und mobile Roboter eignet. Es ist eine Erweiterung von ROS2, die es Entwicklern ermöglicht, das Framework auf Mikrocontrollern einzusetzen.
In diesem Artikel werden wir einige Beispiele für die Steuerung von Roboterrädern mit micro-ROS auf MCU und dem Robot Operating System untersuchen.
Für die Installation von ROS2.
Für weitere Informationen über micro-ROS klicken Sie hier.
MCUs und ROS2 kommunizieren im Wesentlichen über den Micro-ROS Agent, einen ROS 2-Knoten, der den Micro XRCE-DDS Agent umschließt. Der Knoten fungiert als Server zwischen dem DDS-Netzwerk und den Micro-ROS-Knoten innerhalb der MCU. Er empfängt und sendet Nachrichten von Micro-ROS-Knoten und behält die Micro-ROS-Knoten im Auge, indem er sie dem ROS 2-Netzwerk zugänglich macht. Der Knoten interagiert mit dem DDS Global Data Space im Namen der Micro-ROS-Knoten.
Klicken Sie hier, um die Liste der von Micro-ROS unterstützten Hardware zu überprüfen.
Hier verwenden wir ein ESP32-Entwicklungsboard, um die Roboterbewegung über Motortreiber zu steuern, und ein NVIDIA Jetson-Kit, um Geschwindigkeitsbefehle zu senden. Mit dem ESP32 steuern wir effektiv die Drehzahl, die Richtung und die Ticks des Rads. Die Richtung wird durch den Ausgang des Hallsensors bestimmt, der mit unserem Nabenmotor verbunden ist.
In der Zwischenzeit wird die Drehzahl des Rades auf der Grundlage der Befehlsgeschwindigkeit berechnet, die von unserem Differenzialknoten, der auf dem Jetson-Board läuft, übertragen wird. Schließlich wird die Anzahl der Ticks verfolgt, indem die Anzahl der Interrupts gezählt wird, die vom Hall-Sensor empfangen werden, der auch zur Bestimmung der Richtung des Rads verwendet wird.
Die allgemeinen Schritte zur Integration der Micro ROS-Portierung auf ESP32 mit Nvidia Jetson Orin sind unten aufgeführt. Die spezifischen Details können je nach Ihrer Plattform und der von Ihnen entwickelten Anwendung variieren.
Hier haben wir Arduino IDE verwendet, um eine ESP32-Anwendung zu erstellen. Es gibt mehrere Schritte zu bauen, kann man Esp32-Board installieren auf Arduino IDE, und Bibliothek bauen für Mikro-ROS in Arduino beziehen.
1.NVDIA AGX Orin Robotics Computer
2. ESP32-Mikrocontroller
- Die Kommunikation zwischen dem NVIDIA AGX Orin und ESP32 findet über die UART-Peripherie statt, indem Standard-ROS-Nachrichten (Robotics Operating System) ausgetauscht werden.
- Der Nabenmotor ist mit Motortreibern verbunden, und der Hall-Sensor, die Richtung und die Freigabe-Pins des Treibers sind mit ESP32-GPIOs verbunden.
- Der NVIDIA AGX Orin verfügt über einen auf dem General-Purpose Operating System (GPOS) basierenden Computer, auf dem Ubuntu mit verfügbarer ROS-Middleware läuft.
- Der Micro-ROS Agent, der auf dem AGX Orin läuft, ist ein ROS 2-Knoten, der den Micro XRCE-DDS Agent umschließt. Er empfängt und sendet Nachrichten von Micro-ROS-Knoten und wickelt die ROS-Kommunikation zwischen AGX Orin und ESP32 ab.
- Wir haben auch eine benutzerdefinierte Nachricht für ROS2- und ESP-Anwendungen erstellt, die vom Differenzialknoten veröffentlicht wird. Der ESP32 abonniert diese Nachricht und steuert die Raddrehzahl entsprechend den empfangenen Daten.
- Wie bereits erwähnt, steuert der ESP32 die Roboterräder über die zugehörigen Motortreiber. Der Befehl zum Antrieb des Roboters wird vom differentiellen ROS-Knoten erzeugt, der im Orin-Gerät läuft und nach dem Prinzip eines Differential Wheeled Robot arbeitet.
- Der differentielle Knoten empfängt eine Geschwindigkeitsnachricht von einer der Treiberanwendungen (z.B. Tele-op twist keyboard, Navigation stack, etc.). Die Befehlsgeschwindigkeitsnachricht drückt die Geschwindigkeit im freien Raum aus, aufgeteilt in ihre linearen und winkligen Teile. Der Differenzialknoten leitet die linke und rechte Radgeschwindigkeit ab und sendet sie als ROS-Themen an den ESP32.
- Nach Erhalt der Geschwindigkeitsnachrichten wendet der ESP32 den erforderlichen PWM-Wert (Pulsweitenmodulation) auf die zugehörigen Motorantriebe an, die die Räder antreiben.
Zusammenfassend lässt sich sagen, dass die erfolgreiche Portierung von Micro-ROS auf MCUs und seine Integration mit dem ROS-basierten Linux-Betriebssystem einen bedeutenden Fortschritt im Bereich der Robotikentwicklung darstellt. Diese Entwicklung ermöglicht die Schaffung hochgradig modularer und skalierbarer Systeme, die komplexe Aufgaben durch Verteilung der Arbeitslast auf mehrere Knoten ausführen können. Durch die Nutzung der leistungsstarken Tools und Bibliotheken des ROS-Ökosystems können Entwickler robuste Robotersysteme entwickeln, die auf Geräten mit geringem Stromverbrauch und eingeschränkten Ressourcen laufen.
Die Kombination von Mikrocontrollern mit geringem Stromverbrauch und Hochleistungs-Computing-Plattformen bietet eine flexible und leistungsstarke Plattform für die Entwicklung komplexer Robotersysteme. Mit der Integration von Micro-ROS ist das Potenzial für weitere Innovationen auf dem Gebiet der Robotik grenzenlos.
Ruchi ist eine erfahrene Ingenieurin für eingebettete Systeme bei EInfochips Pvt Ltd, wo sie in den letzten 1,5 Jahren gearbeitet hat. Sie schloss ihr Studium der Elektrotechnik an der Birla Vishwakarma Mahavidyalaya mit dem B. Tech ab. Ruchi hat Erfahrung in der Entwicklung von Firmware und hat an einer Vielzahl von Mikrocontrollern gearbeitet. Sie hat sich auf die Verwendung von Mikrocontrollern mit micro-ROS konzentriert, um effiziente und robuste Robotersysteme zu entwickeln.
Meet Gandhi ist ein erfahrener Embedded-Software-Ingenieur, der mit Einfochips Pvt Ltd. verbunden ist. Er hat mehr als 6 Jahre Erfahrung in der Entwicklung innovativer Lösungen für komplexe Probleme. Mit seiner Expertise in der Entwicklung eingebetteter Software ist Meet Gandhi bestrebt, qualitativ hochwertige Software zu liefern, die sowohl technische als auch geschäftliche Anforderungen erfüllt. Als lebenslanger Lernender ist Meet Gandhi leidenschaftlich bemüht, mit den neuesten Trends und Technologien in diesem Bereich auf dem Laufenden zu bleiben.
eInfochips, ein Unternehmen von Arrow Electronics, ist ein führender Anbieter von Dienstleistungen in den Bereichen digitale Transformation und Produktentwicklung. eInfochips beschleunigt die Markteinführung für seine Kunden mit seinem Fachwissen in den Bereichen IoT, KI/ML, Sicherheit, Sensoren, Silizium, Wireless, Cloud und Energie. eInfochips wurde von vielen Top-Analysten und Branchengremien, darunter Gartner, Zinnov, ISG, IDC, NASSCOM und anderen, als führendes Unternehmen im Bereich technische F&E-Dienstleistungen anerkannt.
Hauptsitz
- USA, San Jose
- INDIEN, Ahmedabad
Schreiben Sie uns: marketing@eInfochips.com
©2025 eInfochips (ein Arrow-Unternehmen), alle Rechte vorbehalten. | Erfahren Sie mehr über die Datenschutzrichtlinie und die Cookie-Richtlinie von Arrow
Vereinbaren Sie einen 30-minütigen Beratungstermin mit unseren Automotive Solution Experts
Vereinbaren Sie einen 30-minütigen Beratungstermin mit unserem Experten für Batteriemanagementlösungen
Vereinbaren Sie einen 30-minütigen Beratungstermin mit unseren Experten für Industrie- und Energielösungen
Vereinbaren Sie einen 30-minütigen Beratungstermin mit unseren Experten