Communication Protocol

The Alius Robot Joint Module communicates with the controller via the CAN / CAN-FD bus. This document describes in detail the data frame format, command set, and status feedback mechanism of the communication protocol, helping developers achieve reliable communication with the joint module.

Protocol Overview

The joint module uses a custom application-layer protocol based on the CAN bus. The protocol design follows these principles:

  • Simplicity and Efficiency: Command and data frame formats are compact, minimizing bus load.
  • Flexible Extensibility: Supports both standard CAN 2.0A and CAN-FD frame formats, selectable based on bandwidth requirements.
  • Reliable Transmission: Both critical commands and status data include CRC verification to ensure data transmission integrity.

Each joint module has a unique node ID (1–127) on the bus. The controller distinguishes different modules by their node IDs. The node ID can be configured via software and is stored in the module’s non-volatile memory.

CAN Identifier Allocation

The CAN identifier (CAN ID) uses the 11-bit standard frame format, structured as follows:

Bits [10:7]  – Function Code
Bits [6:0]   – Node ID

Function code definitions:

Function CodeNameDirectionDescription
0x0Heartbeat FrameModule → ControllerPeriodically sent status heartbeat
0x1Control CommandController → ModulePosition/velocity/torque control command
0x2Status FeedbackModule → ControllerReal-time position, velocity, and torque feedback
0x3Parameter Read/WriteBidirectionalRead/write module parameters
0x4Fault ReportModule → ControllerFault code and detailed information
0x5Firmware UpdateBidirectionalFirmware update data stream

Control Command Frames

Position Control Mode

Data frame format (8 bytes):

ByteFieldDescription
0Command Type0x01 = Position Control
1–3Target Position32-bit signed integer, unit: encoder counts
4–5Target Velocity16-bit signed integer, unit: 0.1 °/s
6–7Control ParametersHigh 8 bits: acceleration profile; Low 8 bits: reserved

Velocity Control Mode

Data frame format (8 bytes):

ByteFieldDescription
0Command Type0x02 = Velocity Control
1–2Target Velocity16-bit signed integer, unit: 0.1 °/s
3–4Acceleration16-bit unsigned integer, unit: °/s²
5–7Reserved

Torque Control Mode

Data frame format (8 bytes):

ByteFieldDescription
0Command Type0x03 = Torque Control
1–2Target Torque16-bit signed integer, unit: 0.1 N·m
3–7Reserved

Status Feedback Frame

The module sends a status feedback frame at a configurable period (default 10 ms). Frame format (8 bytes):

ByteFieldDescription
0Status FlagsBit 0: Enable status; Bit 1: Fault flag; Bit 2: In-position flag
1–3Current Position32-bit signed integer, unit: encoder counts
4–5Current Velocity16-bit signed integer, unit: 0.1 °/s
6–7Current Torque16-bit signed integer, unit: 0.1 N·m

Parameter Read/Write

Read Parameter

Request frame format:

ByteFieldDescription
0Operation Code0x01 = Read
1–2Parameter ID16-bit unsigned integer
3–7Reserved

Response frame format:

ByteFieldDescription
0Operation Code0x81 = Read Response
1–2Parameter IDSame as in request frame
3–6Parameter Value32-bit data, format depends on parameter type
7Status Code0x00 = Success; Non-zero = Error code

Common Parameter IDs

Parameter IDNameR/WDescription
0x0001Node IDR/WModule CAN node ID
0x0002Communication Baud RateR/W0 = 1Mbps; 1 = 2Mbps; 2 = 5Mbps (CAN-FD)
0x0003Control ModeR/W0 = Position; 1 = Velocity; 2 = Torque
0x0004Zero OffsetR/WEncoder zero offset
0x0005Temperature LimitR/WOvertemperature protection threshold, unit: °C
0x0006Current LimitR/WPeak current limit, unit: 0.1 A

Error Handling

When a fault is detected, the module immediately sends a fault report frame and enters a protective state (ceases torque output).

Fault code definitions:

CodeNameDescriptionRecovery Method
0x01Over-current FaultPhase current exceeds safety thresholdPower cycle restart
0x02Overtemperature FaultModule internal temperature exceeds protection thresholdAutomatic recovery after temperature decreases
0x03Encoder FaultEncoder signal abnormal or timeoutCheck connection, power cycle restart
0x04Communication TimeoutNo control command received for 500 ms continuouslyAutomatically cleared after communication resumes
0x05Undervoltage FaultSupply voltage below 22 VDCAutomatically cleared after voltage recovers
0x06Overvoltage FaultSupply voltage above 52 VDCAutomatically cleared after voltage recovers

CAN-FD Extension

When using CAN-FD communication, the data frame length can be extended to 64 bytes, supporting higher-bandwidth status feedback and firmware update data transmission. The CAN-FD frame format is compatible with the standard CAN frame format; the controller can automatically identify the frame type.

It is recommended to prioritize the use of CAN-FD communication in multi-joint coordinated control scenarios to achieve lower communication latency and higher data throughput.