Volver a Wiki

SDK de la plataforma CAN Universal

Referencia completa para la biblioteca de AgileX ugv_sdk C++ y las enlaces de Python de pyagxrobots. Cubre la instalación, la configuración de CAN, las plataformas compatibles (SCOUT, RANGER, BUNKER, TRACER, HUNTER, LIMO), el uso de ROS2 y los detalles del protocolo.

En esta página

  • [Visión general]
  • [Plataformas apoyadas]
  • [Instalación] T33)
  • [Biblioteca C++]
  • [Python enlace]
  • [Configuración de la CAN]
  • [Configuración única]
  • [Configuración constante]
  • [Details of Protocol]
  • [Uso de los ROS2]
  • [Simulación de la gazebo]
  • [Lizas] T42)

Páginas AgileX

  • [Hub Todas las plataformas]
  • [SDK de la UGV]
  • [SCOUT Series]
  • [RANGER Series]
  • [Sería BUNKER]
  • [TRACER + HUNTER]
  • ¿Qué es eso?
  • [Arma de la pimienta]

Guías de hardware

  • [VLAI L1 Robot]
  • [LinkerBot O6]
  • [DK1 Kit Bimanual]
  • [OpenArm 1]
  • Booster K1
  • [BrainCo Revo II]
  • [Sensor Paxini]
  • [Mano de Wuji]

También ver

  • [← Todos los artículos]
  • [Academia de Robótica →]
  • Plataforma →
  • [Pregúntale una pregunta →]

Referencia completa para la biblioteca T0 C++ y T1 Python enlaces una interfaz unificada para todas las plataformas móviles AgileX sobre CAN 2.0B a 500 kbps.

Biblioteca: T2 Python: T3 Interfaz: CAN 2.0B @ 500 kbps GitHub: agilexrobotics/ugv_sdk

C++ Python puede bus ROS2 Todas las plataformas

1. Resumen

El ugv_sdk es la biblioteca de código abierto de C++ de AgileX Robotics que proporciona una interfaz de software unificada a todas las plataformas móviles de AgileX a través del bus CAN. En lugar de controladores específicos de la plataforma, ugv_sdk abstrae el protocolo CAN subyacente en una API consistente.

La biblioteca admite dos versiones de protocolo: Protocol V1 (heredado) y Protocol V2 (actual). Todas las plataformas producidas a partir de 2021 usan Protocolo V2.

Para los usuarios de Python, el paquete pyagxrobots proporciona enlaces de Python para ugv_sdk a través de pip, lo que permite prototipos rápidos e integración con las pilas de navegación escritas en Python sin compilar la biblioteca C ++ directamente.

Un SDK, todas las plataformas. ugv_sdk es la dependencia única compartida por todos los paquetes AgileX ROS2 (T4, T5, T6, T7, etc.).

2. Plataformas apoyadas

La tabla a continuación muestra el soporte de la versión de protocolo, las interfaces disponibles y el estado actual de soporte para cada plataforma AgileX.

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

Se recomienda el protocolo V2 para todos los nuevos desarrollos. El soporte del protocolo V1 existe para el hardware anterior. Si su plataforma se envía con el protocolo V2 (todas las unidades a partir de 2021), no hable V1 puede causar un comportamiento inesperado con firmware más nuevo.

3. Instalación

Biblioteca de C++

Construir e instalar ugv_sdk desde la fuente. La biblioteca requiere CMake 3.10+, un compilador compatible con C++14, y los encabezados de desarrollo SocketCAN (T8 en Ubuntu).

# Instalar dependencias (Ubuntu 20.04 / 22.04) sudo apt instalar la construcción esencial de la cmake libsocketcan-dev

Clonar el repositorio git clone T74 cd ugv_sdk && mkdir construir && cd construir

# Construir e instalar Como hacer .. & & hacer -j4 sudo hacer instalar

Después de la instalación, los encabezados están disponibles en T9 y la biblioteca en T10. Enlace con T11 en su CMakeLists.txt.

Python Binding (pyagxrobots)

Para los flujos de trabajo de Python primero, instale la vinculación oficial de Python a través de pip. No se requiere compilación en C ++.

instalar pyagxrobots

Python se une a una interfaz CAN que funciona. T12 se comunica con el hardware a través de la misma interfaz SocketCAN que la biblioteca C ++. Asegúrese de que T13 esté listo antes de llamar a cualquier API de pyagxrobots (ver Configuración de CAN a continuación).

4. Configuración de bus CAN

Todas las plataformas AgileX utilizan CAN 2.0B a 500 kbps. Necesitará un adaptador USB-CAN compatible con GS_USB (por ejemplo, CANable, Waveshare USB-CAN-A). Conectarlo al puerto CAN del robot antes de ejecutar cualquiera de los comandos a continuación.

Trae la interfaz de CAN

# Cargar el módulo del núcleo GS_USB sudo modprobe gs_usb

Apuesta la lata a 500 kbps

sudo ip enlace conjunto puede0 hasta tipo puede bitrate 500000

Verifique si la interfaz está en funcionamiento IP enlace muestra puede0

# Opcional: descargar los marcos CAN crudos para el diagnóstico cantera de canderas

Configuración constante en todas las reiniciaciones

El paquete ROS2 de cada plataforma envía dos scripts shell que manejan la persistencia automáticamente:

# Ejecutar una vez después de la primera conexión de hardware para configurar el adaptador Configuración de bash.

# Ejecutar en cada arranque posterior antes de lanzar cualquier nodo ROS2 ¡Bash! ¡Bash! ¡Bash! ¡Bash! ¡Bash! ¡Bash! ¡Bash!

Ambos scripts se encuentran en el directorio T14 del paquete ROS2 específico para la plataforma (por ejemplo, T15).

Sugerencia: añadir un bringup a su ~/.bashrc o un servicio systemd si desea que la interfaz CAN aparezca automáticamente en arranque sin ejecutar el guión manualmente.

5. Detalles del protocolo

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 de tiempo de seguridad. Si el nodo de control se estrella o se detiene durante más de 500 ms, el robot se detendrá automáticamente. Esto es intencional. Diseñe su bucle de control para enviar comandos a un mínimo de 10 Hz. Para la teleoperación, se recomienda 50 Hz para un movimiento suave.

6. Uso de ROS2

Todas las plataformas AgileX siguen un patrón de lanzamiento ROS2 idéntico.

Instalar el paquete ROS2 de la plataforma

# Ejemplo para SCOUT reemplazar 'escaut' con su plataforma cd ~/ros2_ws/src git clone T75 cd ~/ros2_ws rosdep instalar --from-paths src --ignore-src - r - y colcon construir --symlink-instalar fuente de instalación/configuración.bash

Lanza el controlador de base

# Lleva la interfaz CAN primero (si no ya arriba) bash ~/ros2_ws/src/scout_ros2/scripts/bringup_can2usb.bash

Lanzar el controlador de base del robot Ros2 lanzamiento explorador _base explorador _base.launch.py puerto _name:=can0

# En un segundo terminal teclado teleoperación ros2 ejecutar teleop_twist_keyboard teleop_twist_keyboard

Tema de la orden de velocidad

Todas las plataformas se suscriben a T23 (tipo: T24) y publican odometría en T25 y estado de robot en T26.

# Compruebe los temas disponibles después de lanzar el controlador lista de temas ros2

# Envía un comando manual de velocidad (0,3 m/s hacia adelante, 0 angular) Ros2 tema pub /cmd_vel geometría_msgs/msg/Twist \ "{lineal: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"

nav2 compatible. Todos los paquetes ROS2 de plataforma AgileX son compatibles con la pila de navegación ROS2 nav2 fuera de la caja. El controlador base publica T27 y transmite la transformación TF T28T29 requerida por nav2.

7. Simulación de gazebo

AgileX proporciona un paquete de simulación de Gazebo unificado para todas las plataformas UGV en ugv_gazebo_sim. La simulación utiliza la misma interfaz de temas ROS2 que el hardware real, por lo que el código desarrollado en la simulación se transfiere al robot físico sin modificaciones.

# Clone el paquete de Sim Gazebo cd ~/ros2_ws/src git clone T76 cd ~/ros2_ws && colón construir --symlink-instalar fuente de instalación/configuración.bash

# Lanzar Scout 2.0 en Gazebo (reemplazar 'escaut' con su plataforma) Ros2 lanzamiento explorador _descripción explorador _gazebo.launch.py

8. Enlaces clave

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

Todas las plataformas AgileX Explore el hub de la plataforma AgileX para las páginas por producto que cubren SCOUT, RANGER, BUNKER, TRACER, LIMO y Piper.

** ¿Tiene alguna pregunta? ** [Pregúntele a la comunidad] T72) o [apoyo de contacto] T73) con su modelo de plataforma y la salida de T30.