Het beheersen van het belangrijkste softwareframework is de cruciale eerste stap, of je nu een robuuste Scout 2.0 inzet voor landbouwautomatisering of een compacte Bunker Mini gebruikt voor inspecties in besloten ruimten. Deze technische handleiding biedt een praktische end-to-enduitleg van de Agilex SDK, speciaal ontwikkeld voor professionele ontwikkelaars en roboticaonderzoekers. Door gebruik te maken van de Agilex Robotics Open Source SDK kun je robuuste hardwarebesturing realiseren en implementatietrajecten aanzienlijk versnellen.
Wat is de Agilex SDK en waarom hebben ontwikkelaars die nodig?
De Agilex SDK fungeert als hardwareabstractielaag tussen autonome software op hoog niveau en ruwe mechanische actuatoren. Zonder een betrouwbare softwareontwikkelingskit zouden engineers aangepaste CAN-frames handmatig moeten parseren en nauwkeurige timinglussen moeten beheren om bewegingen aan te sturen. Deze opensourcerepository abstraheert complexiteit op laag niveau in intuïtieve C++-klassen en Python-wrappers, zodat ontwikkelteams zich volledig kunnen richten op perceptie, lokalisatie en applicatieontwikkeling op hoog niveau.
Belangrijkste functies van de Agilex Robotics Open Source SDK
De platformarchitectuur biedt deterministische regelkringen met een lage latentie, die cruciaal zijn voor mobiele robotica in realtime. Het systeem beschikt over asynchrone gegevensuitlezing, automatische heartbeatbewaking en ingebouwde veiligheidsoverschrijvingen die ongecontroleerde situaties voorkomen als de communicatie wegvalt. Bovendien verwerkt de SDK inverse kinematica native en zet hij opdrachten voor lineaire en hoeksnelheid ($$v, \omeg$$) naadloos om in nauwkeurige afzonderlijke toerentallen per minuut voor wielen of rupsbanden.
Ondersteunde hardware: van Scout 2.0 tot Bunker Mini
Een groot voordeel van dit uniforme ecosysteem is de platformonafhankelijke hardwarecompatibiliteit. De identieke SDK-API bestuurt de volledige vloot Agilex UGV's, waardoor navigatiestacks die zijn geschreven voor een indoor omnidirectioneel chassis rechtstreeks kunnen worden opgeschaald naar heavy-duty buitentracks.
Figuur 1: Het mobiele outdoor-UGV-platform Agilex Scout 2.0 voert autonome terreinnavigatie uit met een skid-steerchassisconfiguratie.
Afbeelding 2: Het rupsrobotchassis van de Agilex Bunker Mini, met tractieregeling voor hoge mobiliteit, ontworpen voor inspecties in krappe ruimtes en zware omgevingen.
Afbeelding 3: De Agilex Hunter 2.0 UGV-basis met Ackermann-besturing, die de mechanische stuurgeometrie toont die is ontworpen voor optimale padvolging en schaalaanpassing van de snelheid.
Afbeelding 6: De Agilex LIMO PRO op desktopschaal voor educatieve ROS 2-platform dat zijn geïntegreerde touchscreen voor bediening, LiDAR-visionsensorpayload en veelzijdige, omvormbare chassisconfiguratie toont.
Stapsgewijze hardware- en communicatiearchitectuur
Het tot stand brengen van een deterministische fysieke verbinding is van cruciaal belang voordat u de broncode compileert. De mobiele platforms van Agilex maken gebruik van de standaard Controller Area Network (CAN-bus) voor industriële ruisimmuniteit en realtimebetrouwbaarheid. Om een externe rekeneenheid met de robotbasis te verbinden, moet u deze differentiële signalering via een geschikte transceiverinterface leiden.
De configuratie van het CAN-busprotocol begrijpen
De UGV werkt standaard met een CAN-baudrate van 500k bps, waardoor een nauwkeurige timingafstemming met de hostcomputer vereist is. De meeste ontwikkelaars gebruiken een hoogwaardige, door Linux ondersteunde USB-naar-CAN-adapter, zoals een apparaat op basis van GS_USB of een Leaf Light v2, om de fysieke afstand te overbruggen. Zorg er bij het aansluiten op de externe luchtvaartstekker of de T-slot-uitbreekconnector op het chassis voor dat de CAN_H- en CAN_L-draden correct zijn aangesloten en dat er een 120 Ohm-afsluitweerstand actief is als uw adapterconfiguratie dit vereist.
Externe IPC's aansluiten (NVIDIA Jetson / Raspberry Pi)
Industriële pc's (IPC's) zoals de NVIDIA Jetson Orin-serie of een Raspberry Pi 5 nemen de zware verwerking van perceptie en planning voor hun rekening. Sluit uw USB-naar-CAN-adapter aan op een snelle USB 3.0-poort van de IPC. In uw Linux-terminal moet u de SocketCAN-interface initialiseren door de netwerkinterface can0 te activeren. Voer de volgende optimalisatieopdrachten achter elkaar uit om de juiste bitrate in te stellen en de lengte van de verzendwachtrij te maximaliseren:
Afbeelding 5: Een standaard USB-naar-CAN-transceiverinterface die de hardwareabstractielaagverbinding tot stand brengt tussen de host IPC en de Controller Area Network (CAN)-bus van het voertuig.
sudo ip link set can0 type can bitrate 500000 sudo ip link set up can0 sudo ifconfig can0 txqueuelen 1000
Softwareomgeving instellen en de Agilex SDK installeren
Wanneer de hardware-interface pakketten uitzendt, kun je doorgaan met het instellen van de softwarewerkruimte. De native bibliotheek is sterk geoptimaliseerd voor Linux-omgevingen en biedt een overzichtelijke afhankelijkheidsketen die conflicten met systeempakketten voorkomt.
Vereisten en afhankelijkheden (Linux-/Ubuntu-omgeving)
Deze installatiehandleiding gaat ervan uit dat je Ubuntu 20.04 of Ubuntu 22.04 LTS gebruikt op je ontwikkelcomputer. De kernbibliotheek vereist een standaard C++11-compiler of hoger, samen met CMake-buildtools. Zorg ervoor dat je kernel libasan en de standaardontwikkelheaders bevat, zodat raw CAN-sockets correct kunnen worden afgehandeld. Voer het voorbereidingscommando uit:
sudo apt-get update && sudo apt-get install build-essential cmake pkg-config
De Agilex SDK vanuit broncode bouwen
Door te compileren vanuit de officiële GitHub-broncode krijg je de nieuwste prestatieoptimalisaties en bugfixes. Kloon de repository recursief om de benodigde submodules op te halen en maak vervolgens een aparte buildmap om je bronstructuur overzichtelijk te houden. Voer het volgende opeenvolgende compilatieblok uit in de terminal van je werkruimte:
$ cd ugv_sdk
$ mkdir build && cd build
$ cmake ..
$ make -j$(nproc)
$ sudo make install
De verbinding verifiëren via de C++-API
Voer een diagnostische test uit met de gecompileerde SDK-binaire bestanden om te controleren of je installatie correct werkt. Deze test brengt rechtstreeks verbinding met de voertuigbasis tot stand en leest fundamentele telemetriegegevens uit, zoals de accuspanning. Met een minimaal C++-testscripts kun je de communicatielus controleren:
[ 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 << "Accuspanning: " << state.battery_state.voltage << "V" << std::endl;
10 | return 0;
11 | }
[ C++ MINIMAL SOURCE CODE END ]
Geavanceerde toepassingen voor mobiele robotica met Agilex ROS2-integratie
Zodra de basiscommunicatie met de hardware is geverifieerd, kunt u doorgaan met geavanceerde ontwikkeling van autonome mobiele robots secundaire ontwikkeling. Dit proces wordt voornamelijk aangestuurd door de integratie van de hardwarelaag met het Robot Operating System (ROS 2). Door de C++-basissdk in een standaard ROS 2-node te verpakken, worden hardwarestatussen beschikbaar gesteld als lifecycle-topics, waarbij onbewerkte gegevens worden omgezet in gestructureerde sensormeldingen.
Uw eerste UGV-nodes starten
Agilex onderhoudt uitgebreide, opensource ROS 2-metapakketten die specifiek zijn afgestemd op de distributies Humble Hawksbill en Iron Irwini. Deze wrappers koppelen de interne statusstructuren van de SDK rechtstreeks aan standaard nav_msgs/msg/Odometry en accepteren binnenkomende snelheidsvectoren via geometry_msgs/msg/Twist-topics. Om de basenode voor een Scout-chassis te starten, source u uw ROS 2-werkruimte en voert u het uniforme launch-hulpprogramma uit:
ros2 launch scout_base scout_base_node.launch.py can_bus:=can0
SLAM en autonome navigatie implementeren (NAVIS-ecosysteem)
Nu uw basisinstallatie van de Agilex ROS2 Integration succesvol draait, kan uw mobiele robot complexe omgevingen waarnemen en erdoor navigeren. De odometriegegevens van de robot worden naadloos naar uw transformatieboom (tf2) gepubliceerd, waarbij het frame odom rechtstreeks wordt gekoppeld aan het frame base_link. U kunt nu hardware-gesynchroniseerde laserscans van een 3D-LiDAR en IMU-gegevens invoeren in SLAM-algoritmen zoals Cartographer om nauwkeurige bezettingsrasters te genereren.
Van daaruit gebruikt Nav2 deze kaarten om realtime kinematische trajecten te berekenen en soepele snelheidsopdrachten terug te sturen naar de SDK-laag, zodat obstakels dynamisch worden vermeden.
Afbeelding 6: Overzicht op hoog niveau ROS 2 visualisatie en mapping van de Nav2-stack de realtime filtering van odometrie-afwijkingen, 3D LiDAR-puntenwolk registratie en het genereren van costmaps.
Veelvoorkomende problemen bij de ontwikkeling oplossen
-
Fout: SocketCAN-apparaat niet gevonden of protocol niet beschikbaar
-
Controleer uw fysieke verbindingen en zorg ervoor dat de USB-naar-CAN-adapter correct is geregistreerd door lsusb uit te voeren. Als het apparaat zichtbaar maar niet toegewezen is, voert u het activeringsscript voor het ip-link-netwerk opnieuw uit met volledige rootrechten.
-
Probleem: Extreme odometrie-afwijking of onjuiste statusmetingen
-
Dit gedrag wijst meestal op een conflict bij het plannen van CAN-frames. Zorg ervoor dat er niet tegelijkertijd achtergrondprocessen, zoals een actief candump-script of een oude ROS-node-instantie, gebruikmaken van de socket van de interface can0.
-
Symptoom: De UGV wordt ingeschakeld, maar weigert bewegingsopdrachten uit te voeren
-
Controleer de fysieke veiligheidsschakelaar op het chassis van de robot. De meeste Agilex-platforms hebben een fysieke noodstopknop of een schakelaar voor overschakeling naar de afstandsbediening, die om veiligheidsredenen voorrang heeft op externe SDK-softwareopdrachten.
Veelgestelde vragen
-
V: Ondersteunt de Agilex-SDK ROS 2 native?
-
A: Ja, Agilex biedt uitgebreide opensourcepakketten voor zowel ROS (Noetic) als ROS 2 (Foxy, Humble, Iron) om de ontwikkeling van Autonomous Mobile Robot Secondary Development te faciliteren.
-
V: Hoe verbind ik mijn IPC naar een Agilex-UGV met de Agilex-SDK?
-
A: De verbinding wordt tot stand gebracht via een CAN-naar-USB-adapter. De SDK communiceert rechtstreeks met de SocketCAN-interface (can0) die op uw Linux Linux-systeem is geconfigureerd.
-
V: Kan ik Python gebruiken in plaats van C++ met de Agilex-SDK?
-
A: Absoluut. Agilex biedt ondersteuning voor twee programmeertalen, met cross-platform C++-bibliotheken en Python-wrappers voor snelle prototyping.
-
V: Welke Agilex-platforms zijn compatibel met deze opensource-SDK?
-
A: De SDK ondersteunt de volledige UGV-productlijn van Agilex, waaronder de SCOUT-serie, de BUNKER-serie, de HUNTER-serie en de educatieve robot LIMO.
-
V: Wat moet ik doen als de SDK de CAN-poort niet kan vinden?
-
A: Zorg ervoor dat uw hardwareschakelaar op de CAN-modus staat, controleer uw bedrading en voer het activatiescript opnieuw uit: sudo ip link set can0 up type can bitrate 500000 in uw Linux-terminal.
Kies de aandrijfconfiguratie van SCOUT MINI vóór de ROS 2-installatie
Als uw UGV-project SCOUT MINI gebruikt, vergelijk dan differentiële en omnidirectionele beweging voordat u de besturingsstack configureert. De gids SCOUT MINI Standard versus Mecanum behandelt laadvermogen, hellingvermogen, zijdelings docken, de keuze van launch-bestanden en ondergronden.
Versnel uw workflow voor roboticaontwikkeling
Met beheersing van het softwareframework kunnen engineeringteams soepel overstappen van communicatieconfiguraties op laag niveau naar het implementeren van geavanceerde autonome navigatieworkflows. De opensourcearchitectuur van dit platform zorgt ervoor dat uw aangepaste softwarestacks schoon, modulair en klaar voor implementatie op elk terrein blijven.
Wilt u uw commerciële onderzoeksproject opschalen of het autonomiepakket van uw wagenpark upgraden? Neem vandaag nog contact op met ons technische engineeringteam om maatwerkhardware-integraties en toegewijde ontwikkelingsondersteuning voor uw komende implementatie te verkennen.