Damiao AGV Specifications

Complete technical specifications: drive system, UART/DBUS protocol, channel mapping, agent CLI flags, and platform integration details.

Core Specifications

Drive system, communication, and control parameters

VendorDamiao (达妙)
Drive Configuration4-wheel omnidirectional (4WS4WD)
Wheel TypeMecanum or omni wheels
Motion AxesX (forward/back), Y (lateral), Z (yaw/rotation)
Control InterfaceUART5 on main controller (pin PD2, RX)
Baud Rate100000
Serial Framing8 data bits, even parity, 2 stop bits (8E2)
ProtocolDBUS/SBUS-style RC frame, 18 bytes per frame
Channel Rangech0–ch3: 11-bit, values 0–2047, centre 1024
Amplitude Parameter--amp default 660, range 250–900 (offset from centre 1024)
Control Rate30 Hz (configurable with --control-hz)
Telemetry Rate8 Hz (configurable with --telemetry-hz)
Command Timeout300 ms (configurable with --cmd-timeout-ms); AGV auto-stops
Shutdown Safety3 centre-position DBUS frames sent on agent exit before serial close
Platform Device Typemobile_base
Platform Capabilities["mobile_base", "agv", "telemetry"]
Agent Moduledami_agent.py
Backend WebSocket URLws://localhost:8000 (default)
Mock ModeYes (--mock); serial port skipped, full WebSocket pipeline active

DBUS Frame Layout

18-byte frame structure used for all motion commands

Bytes Content Notes
0–5ch0, ch1, ch2, ch3 packed (11-bit each)Little-endian bit-packing; 44 bits in 48 bits
5 (high nibble)s0 (bits [5:4]), s1 (bits [7:6])Switch states; fixed at 1/1 (centre) for AGV
6–15Mouse and keyboard fieldsZeroed; not parsed by AGV firmware
16–17ch4 (11-bit)Fixed at centre (1024); not used for AGV motion

Channel-to-Velocity Mapping

How the AGV firmware decodes channels and how the agent encodes velocity commands

Channel Firmware Decodes As Agent Encodes From Formula
ch0Yaw (rotation)vw (angular velocity)ch0 = 1024 + (−vw) × amp
ch1UnusedFixed at 1024
ch2Lateral (Y)vych2 = 1024 + vy × amp
ch3Forward (X)vxch3 = 1024 + vx × amp
Serial framing is critical. The UART5 must be configured as 100000 baud, 8E2 (8 data bits, even parity, 2 stop bits). A common mistake is opening the port as 8N1. The AGV firmware will silently ignore or misparse frames at the wrong framing — use pyserial.PARITY_EVEN and STOPBITS_TWO.

Agent CLI Reference

All flags for dami_agent.py

Flag Default Description
--backendws://localhost:8000Platform WebSocket base URL
--session(required)Teleop session ID (format: RC-XXXX-XXXX)
--node-idhostnameAGV node identifier in the session
--serial-port/dev/ttyUSB0USB-to-TTL adapter device path
--telemetry-hz8.0Frequency to send telemetry to platform
--control-hz30.0DBUS frame output rate (Hz)
--cmd-timeout-ms300Auto-stop if no command received within this window
--amp660Joystick amplitude; 500–760 recommended range
--invert-xfalseFlip forward/backward direction
--invert-yfalseFlip left/right direction
--invert-zfalseFlip rotation direction
--mockfalseSkip serial port; validate command pipeline only

Platform Integration

WebSocket registration and telemetry format

WebSocket Endpoint/api/teleop/ws on the Fearless Platform backend
Registration Rolerobot
Device Typemobile_base
Capabilities["mobile_base", "agv", "telemetry"]
Telemetry Fieldsvx_cmd, vy_cmd, vw_cmd (current velocity sign); feedback object with connection state, amp, timeout
KeepalivePing sent after 45 s of platform silence; AGV auto-stops after cmd timeout if connection drops
Episode RecordingAll telemetry frames archived in JSONL alongside arm, camera, and tactile nodes in the same session

Damiao Motor Components

QDD actuators used in the AGV drivetrain and mounted arm payloads

Context: motors vs. the AGV. Damiao (达妙科技) makes both the AGV mobile base (this hardware page) and the QDD motor components used in robot arms mounted on the AGV. The motor information below covers the DM-J43xx-2EC series used in OpenArm and DK1 payloads integrated with this AGV. Full motor reference: Damiao Motors Wiki →
Model Peak Torque No-Load Speed Gear Ratio Typical Joint
DM-J4310-2EC V1.1 ~10 Nm ~30 rpm 10:1 Wrist & gripper (J7, J8)
DM-J4340-2EC ~18 Nm ~15 rpm 10:1 Elbow & mid-arm (J4, J5, J6)
DM-J4340p-2EC ~25 Nm ~12 rpm 10:1 Base & shoulder (J1, J2, J3)
Stator Diameter43 mm (all variants)
Nominal Voltage24 V DC
CommunicationCAN 2.0 / CAN FD
EncoderDual (motor-side + output-side)
Control ModesMIT PVT, position, velocity, torque
CAN Nominal Baud1 Mbit/s
CAN FD Data BaudUp to 5 Mbit/s
Operating Temperature−20 °C to 80 °C
Torque ratings are peak values. Continuous torque is typically 40–60% of the peak rating. Size motor selection for continuous duty to avoid thermal shutdown during sustained operations.
Setup Guide → FAQ & Community → Developer Wiki →