Base móvil omnidireccional
Especificaciones del AGV Damiao
Especificaciones técnicas completas: sistema de transmisión, protocolo UART/DBUS, mapeo de canales, banderas CLI de agente y detalles de integración de plataforma.
Especificaciones básicas
Sistema de conducción, comunicación y parámetros de control
| Proveedor | Damiao (达妙) |
| Configuración de conducción | 4 ruedas omnidireccionales (4WS4WD) |
| Tipo de rueda | Ruedas Mecanum u omnidireccionales |
| Ejes de movimiento | X (adelante/atrás), Y (lateral), Z (guiñada/rotación) |
| Interfaz de control | UART5 en el controlador principal (pin PD2, RX) |
| Tasa de baudios | 100000 |
| Enmarcado en serie | 8 bits de datos, paridad par, 2 bits de parada (8E2) |
| Protocolo | Marco RC estilo DBUS/SBUS, 18 bytes por marco |
| Rango de canal | ch0–ch3: 11 bits, valores 0–2047, centro 1024 |
| Parámetro de amplitud | --amp predeterminado 660, rango 250–900 (desplazamiento desde el centro 1024) |
| Tasa de control | 30 Hz (configurable --control-hz) |
| Tasa de telemetría | 8 Hz (configurable --telemetry-hz) |
| Tiempo de espera de comando | 300 ms (configurable --cmd-timeout-ms); el AGV se detiene automáticamente |
| Seguridad de apagado | 3 marcos DBUS en posición central enviados al salir del agente antes del cierre en serie |
| Tipo de dispositivo de plataforma | mobile_base |
| Capacidades de la plataforma | ["mobile_base", "agv", "telemetry"] |
| Módulo de agente | dami_agent.py |
| URL de WebSocket de backend | ws://localhost:8000 (predeterminado) |
| Modo de simulación | Sí (--mock); puerto serie omitido, canal WebSocket completo activo |
Diseño de marco DBUS
Estructura de marco de 18 bytes utilizada para todos los comandos de movimiento
| Bytes | Contenido | Notas |
|---|---|---|
| 0–5 | ch0, ch1, ch2, ch3 empaquetados (11 bits cada uno) | Empaquetado de bits en orden little-endian; 44 bits en 48 bits |
| 5 (mordisquear alto) | s0 (bits [5:4]), s1 (bits [7:6]) | Estados de interruptores; fijado en 1/1 (centro) para AGV |
| 6–15 | Campos de ratón y teclado | Cero; no analizado por el firmware de AGV |
| 16–17 | canal 4 (11 bits) | Fijado en el centro (1024); no utilizado para el movimiento de AGV |
Mapeo de canal a velocidad
Cómo el firmware de AGV decodifica canales y cómo el agente codifica comandos de velocidad
| Canal | El firmware se decodifica como | Agente codifica desde | Fórmula |
|---|---|---|---|
| ch0 | Yaw (rotación) | vw (velocidad angular) | ch0 = 1024 + (−vw) × amp |
| ch1 | No utilizado | — | Fijo en 1024 |
| ch2 | Lateral (Y) | vy | ch2 = 1024 + vy × amp |
| ch3 | Adelante (X) | vx | ch3 = 1024 + vx × amp |
El formato serial es crítico.
El UART5 debe configurarse a 100000 baudios, 8E2 (8 bits de datos, paridad par, 2 bits de parada). Un error común es abrir el puerto como 8N1. El firmware del AGV ignorará o interpretará incorrectamente los tramas con el formato incorrecto — use
pyserial.PARITY_EVEN y STOPBITS_TWO.
Referencia de CLI del Agente
Todas las banderas para dami_agent.py
| Bandera | Predeterminado | Descripción |
|---|---|---|
| --backend | ws://localhost:8000 | URL base de WebSocket de plataforma |
| --session | (requerido) | ID de sesión de Teleop (formato: RC-XXXX-XXXX) |
| --node-id | nombre de host | identificador de nodo AGV en la sesión |
| --serial-port | /dev/ttyUSB0 | ruta del dispositivo adaptador USB-a-TTL |
| --telemetry-hz | 8.0 | Frecuencia para enviar telemetría a la plataforma |
| --control-hz | 30.0 | tasa de salida de tramas DBUS (Hz) |
| --cmd-timeout-ms | 300 | Auto-detener si no se recibe ningún comando dentro de esta ventana |
| --amp | 660 | Amplitud del joystick; rango recomendado de 500 a 760 |
| --invert-x | FALSO | Voltear dirección hacia adelante/atrás |
| --invertir-y | FALSO | Voltear dirección izquierda/derecha |
| --invertir-z | FALSO | Voltear dirección de rotación |
| --simular | FALSO | Omitir puerto serie; validar solo la tubería de comandos |
Integración de Plataforma
Registro de WebSocket y formato de telemetría
| Punto final de WebSocket | /api/teleop/ws en el backend de la Plataforma Fearless |
| Rol de Registro | robot |
| Tipo de Dispositivo | mobile_base |
| Capacidades | ["mobile_base", "agv", "telemetry"] |
| Campos de Telemetría | vx_cmd, vy_cmd, vw_cmd (signo de velocidad actual); feedback objeto con estado de conexión, amp, tiempo de espera |
| Mantenimiento de conexión | Ping enviado después de 45 s de silencio de la plataforma; AGV se detiene automáticamente después del tiempo de espera de cmd si se pierde la conexión |
| Grabación de episodio | Todos los marcos de telemetría archivados en JSONL junto con nodos de brazo, cámara y táctiles en la misma sesión |
Componentes del motor Damiao
Actuadores QDD utilizados en el tren motriz del AGV y cargas útiles de brazo montadas
Contexto: motores vs. el AGV.
Damiao (达妙科技) fabrica tanto la base móvil AGV (esta página de hardware) como los componentes del motor QDD utilizados en brazos robóticos montados en el AGV. La información del motor a continuación cubre la serie DM-J43xx-2EC utilizada en cargas útiles OpenArm y DK1 integradas con este AGV. Referencia completa del motor: Wiki Motores Damiao →
| Modelo | Par máximo | Velocidad sin carga | Relación de engranaje | Junta típica |
|---|---|---|---|---|
| DM-J4310-2EC V1.1 | ~10 Nm | ~30 rpm | 10:1 | Muñeca y pinza (J7, J8) |
| DM-J4340-2EC | ~18 Nm | ~15 rpm | 10:1 | Codo y medio brazo (J4, J5, J6) |
| DM-J4340p-2EC | ~25 Nm | ~12 rpm | 10:1 | Base y hombro (J1, J2, J3) |
| Diámetro del estator | 43 mm (todas las variantes) |
| Voltaje nominal | 24 VCC |
| Comunicación | CAN 2.0 / CAN FD |
| Codificador | Doble (lado del motor + lado de salida) |
| Modos de Control | MIT PVT, posición, velocidad, par |
| Baud nominal de CAN | 1 Mbit/s |
| Baud de datos de CAN FD | Hasta 5 Mbit/s |
| Temperatura de funcionamiento | −20°C a 80°C |
Las calificaciones de par son valores máximos.
El par continuo es típicamente del 40–60% de la calificación máxima. Seleccione el tamaño del motor para servicio continuo para evitar el apagado térmico durante operaciones sostenidas.