Zurück zu Wiki

AgileX UGV SDK <unk> Universal CAN Platform SDK

Vollständiger Bezug für die AgileX ugv_sdk C++-Bibliothek und die Python-Bindings von pyagxrobots.

Auf dieser Seite

  • [Übersicht]
  • [Unterstützte Plattformen]
  • [Installation]
  • [C++-Bibliothek]
  • [Python-Bindung]
  • [CAN Setup]
  • [Einmaliges Setup]
  • [Ständige Einrichtung]
  • [Details des Protokolls]
  • [ROS2 Verwendung]
    • Ich bin nicht sicher.
  • [Links] T42)

AgileX-Seiten

  • [Hub Alle Plattformen]
  • [UGV SDK]
    • Ich bin nicht sicher.
    • Ich habe es nicht verstanden.
    • Ich bin nicht sicher.
    • Ich bin nicht sicher.
  • Ich habe das Gefühl, dass ich das nicht tun kann.
    • Ich habe es nicht getan.

Hardware-Anleitungen

    • Ich habe einen Roboter.
  • [LinkerBot O6]
  • [DK1 Bimanuale Kit]
  • OpenArm 1
    • Ich bin nicht sicher.
  • [BrainCo Revo II]
    • Ich habe einen Sensor.
  • (Wuji Hand)

Siehe auch

Vollständige Referenz für die T0 C++-Bibliothek und T1 Python-Bindungen eine einheitliche Schnittstelle für alle AgileX-Mobilplattformen über CAN 2.0B bei 500 kbps.

Bibliothek: T2 Python: T3 Interface: CAN 2.0B @ 500 kbps GitHub: Agilexrobotics/ugv_sdk

C++ Python CAN-Bus ROS2 Alle Plattformen

1. Überblick

Die ugv_sdk ist die Open-Source-C++-Bibliothek von AgileX Robotics, die alle AgileX-Mobile-Plattformen über den CAN-Bus eine einheitliche Software-Schnittstelle bietet. Statt plattformspezifischer Treiber abstrahiert ugv_sdk das zugrunde liegende CAN-Protokoll in eine konsistente API der gleiche Code, der eine SCOUT 2.0 befiehlt, funktioniert auch unmodifiziert auf einem BUNKER, TRACER oder RANGER.

Die Bibliothek unterstützt zwei Protokollversionen: Protocol V1 (Vermächtnis) und Protocol V2 (aktuell). Alle ab 2021 produzierten Plattformen verwenden Protokoll V2.

Für Python-Benutzer bietet das pyagxrobots-Paket Python-Bindungen für ugv_sdk über Pip, so dass schnelle Prototypen und Integration mit Navigationsstacks in Python geschrieben werden können, ohne die C++-Bibliothek direkt zu kompillieren.

Ein SDK, alle Plattformen. ugv_sdk ist die einzige Abhängigkeit, die von allen AgileX ROS2-Paketen (T4, T5, T6, T7 usw.) geteilt wird. Installieren Sie es einmal, und alle plattformspezifischen ROS2-Treiber finden es automatisch.

2. Unterstützte Plattformen

Die folgende Tabelle zeigt die Unterstützung der Protokollversion, die verfügbaren Schnittstellen und den aktuellen Supportstatus für jede AgileX-Plattform.

Robot Protocol V1 Protocol V2 UART CAN Status
Scout 2.0 Y Y N Y Active
Scout Mini (Skid) Y Y Y Active
Scout Mini (Omni) Y Y Y Active
Hunter 1.0 Y Y Y Active
Hunter 2.0 Y Y Active
Bunker Y Y Y Active
Tracer Y N Y Active
Ranger Mini 2.0 Y Y Active
Ranger Mini 3.0 Y Y Active
Ranger Y Y Active

V1 wird für alle neuen Entwicklungen empfohlen. Für ältere Hardware gibt es eine Unterstützung für V1 Protokoll. Wenn Ihre Plattform mit Protokoll V2 (alle Einheiten ab 2021) versendet wird, aktivieren Sie V1 nicht, kann dies mit neuerer Firmware unerwartetes Verhalten verursachen.

3. Installation

C++-Bibliothek

Erstellen und installieren Sie ugv_sdk von der Quelle. Die Bibliothek benötigt CMake 3.10+, einen C++14-kompatiblen Kompilator und die SocketCAN-Entwicklungsheder (T8 auf Ubuntu).

# Installieren von Abhängigkeiten (Ubuntu 20.04 / 22.04) sudo apt installieren build-essential cmake libsocketcan-dev

# Klonen des Repositoriums git clone T74 cd ugv_sdk && mkdir bauen && cd bauen

# Bauen und installieren

  • und - machen -j4 sudo machen installieren

Nach der Installation sind die Header unter T9 und die Bibliothek unter T10 verfügbar. Verknüpfen Sie mit T11 in Ihrem CMakeLists.txt.

Python Binding (Pyagxrobots)

Für Python-First-Workflows installieren Sie das offizielle Python-Bindung über pip. Keine C++-Kompilierung erforderlich.

Pip-Installation von Pyagxrobots

Python-Bindung erfordert eine funktionierende CAN-Schnittstelle. T12 kommuniziert mit der Hardware über die gleiche SocketCAN-Schnittstelle wie die C++-Bibliothek. Stellen Sie sicher, dass T13 erstellt ist, bevor Sie eine pyagxrobots-API anrufen (siehe CAN-Einstellung unten).

4. CAN-Bus Setup

Alle AgileX-Plattformen verwenden CAN 2.0B bei 500 kbps. Sie benötigen einen GS_USB-kompatiblen USB-to-CAN-Adapter (z.B. CANable, Waveshare USB-CAN-A). Verbinden Sie ihn mit dem CAN-Port des Roboters, bevor Sie einen der folgenden Befehle ausführen.

Erwecken Sie die CAN-Schnittstelle

# Laden Sie das GS_USB Kernel Modul sudo modprobe gs_usb

Bring die Kanne mit 500 kbps hoch . sudo ip link set kann0 up type kann bitrate 500000

# Überprüfen Sie , ob die Schnittstelle funktioniert IP-Link-Show kann0

# Optional: Roh-CAN-Räme für die Diagnose entsorgen Schneller

Ständige Einstellung über Reboots hinweg

Das ROS2-Paket jeder Plattform liefert zwei Shell-Scripts, die die Persistenz automatisch verarbeiten:

# Laufen Sie einmal nach der ersten Hardwareverbindung den Adapter zu konfigurieren Das ist die richtige Lösung.

# Laufen Sie auf jedem nachfolgenden Boot vor dem Start eines ROS2-Knoten Ich habe das Gefühl, dass ich es nicht mehr habe.

Beide Scripts befinden sich im Verzeichnis T14 des plattformspezifischen ROS2-Pakets (z.B. T15).

Ratschlag: Fügen Sie ein Bringup zu Ihrem ~/.bashrc oder einem systemd-Service hinzu, wenn Sie möchten, dass die CAN-Schnittstelle automatisch auf dem Boot angezeigt wird, ohne das Skript manuell auszuführen.

Protokoll Einzelheiten

Parameter Value
CAN standard CAN 2.0B (extended frame support)
Bitrate 500 kbps
Byte order Motorola (big-endian)
Timeout protection 500 ms — platform stops if no command received
Minimum command rate 10 Hz (recommended: 20–50 Hz)
Protocol versions V1 (legacy), V2 (current, all 2021+ units)

500 ms Sicherheitszeit. Wenn Ihr Steuerknoten abstürzt oder länger als 500 ms abstürzt, wird der Roboter automatisch stoppen. Dies ist absichtlich.

6. ROS2 Verwendung

Alle AgileX-Plattformen folgen einem identischen ROS2-Startmuster. Ersetzen Sie T16 durch den Plattformnamen: T17, T18, T19, T20, T21 oder T22.

Installieren Sie das ROS2-Paket der Plattform

# Beispiel für SCOUT Ersetzen Sie "Scout" mit Ihrer Plattform cd ~/ros2_ws/src git clone T75 cd ~/ros2_ws rosdep installieren --from-paths src --ignore-src - r - y Colcon-Build --Symlink-Installation Quelle Installation/Setup.bash

Start den Basis-Treiber

# Erst die CAN-Schnittstelle aufnehmen (wenn nicht bereits aufgenommen) bash ~/ros2_ws/src/scout_ros2/scripts/bringup_can2usb.bash

Startet den Roboter-Basis-Treiber Ros2 Start-Scout Base Scout Base.Launch.py Port

In einem zweiten Terminal Tastatur Teleoperation Ros2 laufen Teleop_twist_keyboard Teleop_twist_keyboard

Geschwindigkeitsbefehlthema

Alle Plattformen abonnieren T23 (Typ: T24) und veröffentlichen die Odometrie auf T25 und den Roboterstatus auf T26.

# Überprüfen Sie nach dem Start des Treibers verfügbare Themen ros2 Themenliste

# Senden Sie einen manuellen Geschwindigkeitsbefehl (0,3 m/s vorwärts, 0 Winkel) Ros2 Thema Pub /cmd_vel Geometrie_msgs/msg/Twist \ "{linear: {x: 0.3, y: 0.0, z: 0.0}, winkelhaft: {x: 0.0, y: 0.0, z: 0.0}}"

nav2 kompatibel. Alle ROS2-Plattformpakete von AgileX sind mit dem Navigationsstack von ROS2 nav2 aus dem Box kompatibel. Der Basis-Treiber veröffentlicht T27 und sendet den von nav2 erforderlichen T28T29 TF-Transform.

7. Simulation mit der Schaukel

AgileX bietet ein einheitliches Gazebo-Simulationspaket für alle UGV-Plattformen bei ugv_gazebo_sim. Die Simulation verwendet die gleiche ROS2-Thema-Schnittstelle wie die echte Hardware, so dass der Code, der in der Simulation entwickelt wurde, ohne Änderungen an den physischen Roboter übertragen wird.

# Klonen Sie das Sim-Paket von Gazebo cd ~/ros2_ws/src git clone T76 cd ~/ros2_ws && Colcon-Build --Symlink-Installation Quelle Installation/Setup.bash

# Start von SCOUT 2.0 in Gazebo (Ersetzen Sie "Scout" mit Ihrer Plattform) Ros2 Start-Scout_Description Scout_gazebo.launch.py

8. Schlüsselverbindungen

Resource URL
ugv_sdk GitHub github.com/agilexrobotics/ugv_sdk
Gazebo Simulation github.com/agilexrobotics/ugv_gazebo_sim
Python binding pypi.org/project/pyagxrobots
AgileX GitHub org github.com/agilexrobotics (87 repos)
AgileX website www.agilex.ai
Technical support support@agilex.ai

Alle AgileX-Plattformen Suchen Sie die AgileX-Plattform-Hub für Produktseiten, die SCOUT, RANGER, BUNKER, TRACER, LIMO und Piper abdecken.

** Haben Sie eine Frage?** Fragen Sie die Community oder Kontaktunterstützung mit Ihrem Plattformmodell und der Ausgabe von T30.