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
Biblioteca:
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 (
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
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 (
# Instalar dependencias (Ubuntu 20.04 / 22.04) sudo apt instalar la construcción esencial de la cmake libsocketcan-dev
Clonar el repositorio
git clone
# Construir e instalar Como hacer .. & & hacer -j4 sudo hacer instalar
Después de la instalación, los encabezados están disponibles en
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.
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
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
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
Tema de la orden de velocidad
Todas las plataformas se suscriben a
# 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
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
# 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]







