Die Beherrschung des grundlegenden Software-Frameworks ist der entscheidende erste Schritt – unabhängig davon, ob ein robustes Scout 2.0 für die landwirtschaftliche Automatisierung eingesetzt oder ein kompaktes Bunker Mini für Inspektionen auf engem Raum verwendet wird. Dieser technische Leitfaden bietet eine praxisorientierte Komplettanleitung für das Agilex SDK, die speziell für professionelle Entwickler und Robotikforscher konzipiert wurde. Durch die Nutzung des Agilex Robotics Open-Source-SDKs können Sie eine zuverlässige Hardwaresteuerung etablieren und die Bereitstellungszeiten deutlich verkürzen.
Was ist das Agilex SDK und warum benötigen Entwickler es?
Das Agilex SDK dient als Hardwareabstraktionsschicht zwischen hochrangiger autonomer Software und den mechanischen Aktoren auf niedriger Ebene. Ohne ein zuverlässiges Software Development Kit müssten Ingenieure benutzerdefinierte CAN-Frames manuell auswerten und präzise Zeitsteuerungsschleifen verwalten, nur um Bewegungen zu steuern. Dieses Open-Source-Repository abstrahiert die Komplexität der unteren Ebenen in intuitive C++-Klassen und Python-Wrapper, sodass sich Entwicklungsteams vollständig auf Wahrnehmung, Lokalisierung und die Entwicklung übergeordneter Anwendungen konzentrieren können.
Kernfunktionen des Open-Source-SDKs von Agilex Robotics
Die Plattformarchitektur ermöglicht deterministische Regelkreise mit geringer Latenz, die für mobile Robotik in Echtzeit entscheidend sind. Sie bietet asynchrones Datenlesen, eine automatische Heartbeat-Überwachung und integrierte Sicherheitsübersteuerungen, die bei einem Kommunikationsabbruch unkontrollierte Bewegungen verhindern. Darüber hinaus verarbeitet das SDK inverse Kinematik nativ und wandelt Befehle für lineare und Winkelgeschwindigkeit ($$v, \omeg$$) nahtlos in präzise individuelle Drehzahlwerte für Räder oder Ketten um.
Unterstützte Hardware: von Scout 2.0 bis Bunker Mini
Ein wesentlicher Vorteil dieses einheitlichen Ökosystems ist die plattformübergreifende Hardwarekompatibilität. Die identische SDK-API steuert die gesamte Agilex-UGV-Flotte und stellt sicher, dass Navigations-Stacks, die für ein omnidirektionales Indoor-Fahrwerk geschrieben wurden, direkt auf hochbelastbare Outdoor-Kettenfahrwerke übertragen werden können.
Abbildung 1: Die mobile Outdoor-UGV-Plattform Agilex Scout 2.0 führt mithilfe einer Skid-Steer-Fahrwerkskonfiguration eine autonome Geländenavigation durch.
Abbildung 2: Das Kettenroboterchassis Agilex Bunker Mini mit hochmobiler Traktionsregelung für Inspektionen in engen Räumen und anspruchsvollen Umgebungen.
Abbildung 3: Die UGV-Basis Agilex Hunter 2.0 mit Ackermann-Lenkung, die die mechanische Lenkgeometrie für eine optimale Wegverfolgung und Geschwindigkeitsanpassung zeigt.
Abbildung 6: Der Agilex LIMO PRO als Lernplattform im Desktop-Format ROS 2-Plattform, die ihren integrierten Steuerungs-Touchscreen, die LiDAR- und Bildverarbeitungssensorik sowie die multimodale, wandelbare Chassiskonfiguration präsentiert.
Schrittweise Anleitung zur Hardware- und Kommunikationsarchitektur
Vor dem Kompilieren des Quellcodes ist die Herstellung einer deterministischen physischen Verbindung von entscheidender Bedeutung. Mobile Plattformen von Agilex nutzen den Standard Controller Area Network (CAN-Bus) für eine industrielle Störfestigkeit und zuverlässige Echtzeitkommunikation. Um eine externe Recheneinheit mit der Roboterbasis zu verbinden, müssen Sie diese differentielle Signalübertragung über eine geeignete Transceiverschnittstelle führen.
Grundlagen der CAN-Bus-Protokolleinrichtung
Der UGV arbeitet standardmäßig mit einer CAN-Baudrate von 500 kbit/s, was eine präzise zeitliche Abstimmung durch den Host-Computer erfordert. Die meisten Entwickler verwenden einen hochwertigen, von Linux unterstützten USB-zu-CAN-Adapter, beispielsweise ein Gerät auf Basis von GS_USB oder einen Leaf Light v2, um die physische Distanz zu überbrücken. Achten Sie beim Anschluss an den externen Aviation-Stecker oder den T-Slot-Abgriff am Chassis darauf, dass die Leitungen CAN_H und CAN_L korrekt zugeordnet sind und ein 120-Ohm-Abschlusswiderstand aktiviert ist, sofern dies für Ihre Adapterkonfiguration erforderlich ist.
Anbindung externer IPCs (NVIDIA Jetson / Raspberry Pi)
Industrie-PCs (IPCs) wie die NVIDIA Jetson Orin-Serie oder ein Raspberry Pi 5 übernehmen die aufwendige Verarbeitung von Wahrnehmung und Planung. Verbinden Sie Ihren USB-zu-CAN-Adapter mit einem Hochgeschwindigkeits-USB-3.0-Anschluss am IPC. In Ihrem Linux-Terminal müssen Sie die SocketCAN-Schnittstelle initialisieren, indem Sie die Netzwerkschnittstelle can0 aktivieren. Führen Sie die folgenden Optimierungsbefehle nacheinander aus, um die richtige Bitrate einzustellen und die Länge der Übertragungswarteschlange zu maximieren:
Abbildung 5: Eine standardmäßige USB-zu-CAN-Transceiver-Schnittstelle, die die Hardwareabstraktionsverbindung zwischen dem Host IPC und dem Controller Area Network (CAN)-Bus des Fahrzeugs.
sudo ip link set can0 type can bitrate 500000 sudo ip link set up can0 sudo ifconfig can0 txqueuelen 1000
Softwareumgebung einrichten und Agilex SDK installieren
Nachdem die Hardwareschnittstelle Pakete sendet, können Sie mit der Einrichtung der Softwareumgebung fortfahren. Die native Bibliothek ist hochgradig für Linux-Umgebungen optimiert und bietet eine klare Abhängigkeitskette, die Konflikte auf Systemebene mit Paketen verhindert.
Voraussetzungen und Abhängigkeiten (Linux-/Ubuntu-Umgebung)
Diese Installationsanleitung setzt voraus, dass auf Ihrem Entwicklungsrechner Ubuntu 20.04 oder Ubuntu 22.04 LTS ausgeführt wird. Die Kernbibliothek erfordert einen standardmäßigen C++11-Compiler oder höher sowie CMake-Build-Tools. Um Raw-CAN-Sockets zuverlässig zu verarbeiten, stellen Sie sicher, dass Ihr Kernel über libasan und die üblichen Entwicklungs-Header verfügt. Führen Sie den Vorbereitungsterm aus:
sudo apt-get update && sudo apt-get install build-essential cmake pkg-config
Agilex SDK aus dem Quellcode erstellen
Durch die Kompilierung aus dem offiziellen GitHub-Quellcode erhalten Sie die neuesten Leistungsoptimierungen und Fehlerbehebungen. Klonen Sie das Repository rekursiv, um die erforderlichen Submodule einzubinden, und erstellen Sie anschließend ein eigenes Build-Verzeichnis, damit Ihr Quellbaum übersichtlich bleibt. Führen Sie den folgenden sequenziellen Kompilierungsblock in Ihrem Arbeitsbereichsterminal aus:
$ cd ugv_sdk
$ mkdir build && cd build
$ cmake ..
$ make -j$(nproc)
$ sudo make install
Verbindung über die C++-API überprüfen
Um zu überprüfen, ob Ihre Einrichtung ordnungsgemäß funktioniert, führen Sie mithilfe der kompilierten SDK-Binärdateien einen Diagnosetest durch. Dieser Test stellt eine direkte Verbindung zur Fahrzeugbasis her und fragt grundlegende Telemetriedaten wie die Batteriespannung ab. Sie können den Kommunikationskreislauf mit einem minimalen C++-Testskript überprüfen:
[ C++ MINIMAL SOURCE CODE START ]
01 | #include "ugv_sdk/mobile_robot/scout_robot.hpp"
02 | #include <iostream>
03 | #include <memory>
04 |
05 | int main() {
06 | std::unique_ptr<westonrobot::ScoutRobot> robot = std::make_unique<westonrobot::ScoutRobot>();
07 | robot->Connect("can0");
08 | auto state = robot->GetRobotState();
09 | std::cout << "Batteriespannung: " << state.battery_state.voltage << "V" << std::endl;
10 | return 0;
11 | }
[ C++ MINIMAL SOURCE CODE END ]
Fortgeschrittene Anwendungen mobiler Robotik mit Agilex-ROS2-Integration
Sobald die grundlegende Hardwarekommunikation überprüft wurde, können Sie mit der Weiterführenden Entwicklung autonomer mobiler Roboter Secondary Development fortfahren. Dieser Prozess wird hauptsächlich durch die Integration der Hardwareschicht in das Robot Operating System (ROS 2) bestimmt. Durch das Einbetten des C++-Basis-SDKs in einen standardmäßigen ROS-2-Knoten werden Hardwarezustände als Lifecycle-Topics bereitgestellt und Rohdaten in strukturierte Sensornachrichten umgewandelt.
Starten Ihrer ersten UGV-Knoten
Agilex pflegt umfassende Open-Source-Metapakete für ROS 2, die speziell auf die Distributionen Humble Hawksbill und Iron Irwini zugeschnitten sind. Diese Wrapper ordnen die internen Statusstrukturen des SDK direkt den standardmäßigen nav_msgs/msg/Odometry zu und akzeptieren eingehende Geschwindigkeitsvektoren über geometry_msgs/msg/Twist-Topics. Um den Basisknoten für ein Scout-Fahrgestell zu starten, laden Sie Ihren ROS-2-Arbeitsbereich und führen Sie das einheitliche Startprogramm aus:
ros2 launch scout_base scout_base_node.launch.py can_bus:=can0
Implementierung von SLAM und autonomer Navigation (NAVIS-Ökosystem)
Wenn Ihre grundlegende Agilex ROS2-Integration erfolgreich läuft, kann Ihr mobiler Roboter komplexe Umgebungen wahrnehmen und durchqueren. Die Odometriedaten des Roboters werden nahtlos in Ihren Transformationsbaum (tf2) veröffentlicht und verknüpfen den Frame odom direkt mit dem Frame base_link. Sie können nun hardwaresynchronisierte Laserscans eines 3D-LiDARs und IMU-Daten in SLAM-Algorithmen wie Cartographer einspeisen, um präzise Belegungsraster zu erzeugen.
Anschließend nutzt Nav2 diese Karten, um kinematische Pfade in Echtzeit zu berechnen, und übergibt flüssige Geschwindigkeitsbefehle an die SDK-Schicht zurück, um Hindernissen dynamisch auszuweichen.
Abbildung 6: Überblick auf hoher Ebene ROS 2 Visualisierung und Kartierung des Nav2-Stacks die Echtzeit Filterung von Odometriedrift, 3D LiDAR-Punktwolke Registrierung und Kostengenerierung.
Behebung häufiger Entwicklungsprobleme
-
Fehler: SocketCAN-Gerät nicht gefunden oder Protokoll nicht verfügbar
-
Überprüfen Sie Ihre physischen Verbindungen und stellen Sie sicher, dass der USB-CAN-Adapter ordnungsgemäß registriert ist, indem Sie lsusb ausführen. Wenn das Gerät sichtbar, aber nicht zugewiesen ist, führen Sie das Skript zur Netzwerkaktivierung von „ip link“ mit absoluten Root-Berechtigungen erneut aus.
-
Problem: Extreme Odometriedrift oder fehlerhafte Statuswerte
-
Dieses Verhalten deutet in der Regel auf einen Konflikt bei der CAN-Frame-Planung hin. Stellen Sie sicher, dass keine Hintergrundprozesse, etwa ein aktives candump-Skript oder eine alte ROS-Knoteninstanz, gleichzeitig um den Socket der Schnittstelle can0 konkurrieren.
-
Symptom: Das UGV schaltet sich ein, führt Bewegungsbefehle jedoch nicht aus
-
Überprüfen Sie den Hardwaresicherheitsschalter am physischen Roboterchassis. Die meisten Agilex-Plattformen verfügen aus Sicherheitsgründen über einen physischen Not-Aus-Taster oder einen Schalter zur Übersteuerung per Fernbedienung, der Vorrang vor externen SDK-Softwarebefehlen hat.
Häufig gestellte Fragen
-
F: Unterstützt das Agilex SDK ROS 2 nativ?
-
A: Ja, Agilex stellt umfassende Open-Source-Pakete sowohl für ROS (Noetic) als auch für ROS 2 (Foxy, Humble, Iron) bereit, um die Entwicklung von autonomen mobilen Robotern im Sekundärbereich zu erleichtern.
-
F: Wie verbinde ich mein IPC mit einem Agilex-UGV über das Agilex SDK verbinden?
-
A: Die Verbindung wird über einen CAN-zu-USB-Adapter hergestellt. Das SDK interagiert direkt mit der auf Ihrem Linux-Linux-System konfigurierten SocketCAN-Schnittstelle (can0).
-
F: Kann ich mit dem Agilex SDK anstelle von C++ Python verwenden?
-
A: Absolut. Agilex bietet Unterstützung für zwei Programmiersprachen und stellt plattformübergreifende C++-Bibliotheken sowie Python-Wrapper für schnelles Prototyping bereit.
-
F: Welche Agilex-Plattformen sind mit diesem Open-Source-SDK kompatibel?
-
A: Das SDK unterstützt universell die UGV-Produktreihe von Agilex, einschließlich der SCOUT-Serie, der BUNKER-Serie, der HUNTER-Serie und des Bildungsroboters LIMO.
-
F: Was soll ich tun, wenn das SDK den CAN-Port nicht finden kann?
-
A: Stellen Sie sicher, dass Ihr Hardwareschalter auf den CAN-Modus eingestellt ist, überprüfen Sie Ihre Verkabelung und führen Sie das Aktivierungsskript erneut aus: sudo ip link set can0 up type can bitrate 500000 in Ihrem Linux-Terminal.
Wählen Sie die SCOUT-MINI-Antriebskonfiguration vor der ROS-2-Einrichtung
Wenn Ihr UGV-Projekt SCOUT MINI verwendet, vergleichen Sie die Differential- und omnidirektionale Bewegung, bevor Sie den Steuerungs-Stack konfigurieren. Der Leitfaden SCOUT MINI Standard vs. Mecanum behandelt Nutzlast, Steigfähigkeit, seitliches Andocken, die Auswahl der Launch-Datei und Einsatzflächen.
Beschleunigen Sie Ihren Entwicklungsworkflow für Robotik
Die Beherrschung des Software-Frameworks ermöglicht es Entwicklungsteams, reibungslos von Kommunikationskonfigurationen auf niedriger Ebene zur Bereitstellung fortschrittlicher autonomer Navigationsabläufe überzugehen. Die Open-Source-Architektur dieser Plattform stellt sicher, dass Ihre individuellen Software-Stacks übersichtlich, modular und für den Einsatz in jedem Gelände bereit bleiben.
Möchten Sie Ihr kommerzielles Forschungsprojekt erweitern oder die Autonomiesuite Ihrer Flotte aufrüsten? Kontaktieren Sie noch heute unser technisches Entwicklungsteam, um maßgeschneiderte Hardware-Integrationen und dedizierte Entwicklungsunterstützung für Ihren bevorstehenden Einsatz zu erkunden.