Overview

Alius RC is not just a remote controller — it is an open robot control platform. This document is intended for system integrators and robot solution architects, introducing how to integrate Alius RC into existing robot systems, including communication architecture design, protocol adaptation solutions, and integration cases for typical application scenarios.

Communication Architecture

Overall Topology

Alius RC integration supports three basic communication topologies:

Topology A: Direct Control

Alius RC ──── OcuSync 4.0 ──── Robot (DJI platform)

The simplest solution. Alius RC connects directly to robots equipped with DJI flight controllers/platforms via OcuSync 4.0, with no additional middleware required. Suitable scenarios: field inspection, single-robot control.

Topology B: Bridged Control

Alius RC ──── WiFi 6 / 4G ──── Ground Station / Edge Gateway ──── Proprietary Protocol ──── Robot

Alius RC connects to a ground station or edge gateway via IP network, which performs protocol conversion before controlling non-DJI platform robots. Suitable scenarios: industrial AGV dispatching, unmanned vessel fleet.

Topology C: Hybrid Control

              ┌── OcuSync 4.0 ── Drone (DJI)
Alius RC ──────┤
              └── WiFi 6 ──── Gateway ──── CAN/EtherCAT ──── Robotic Arm/AGV

A single Alius RC simultaneously controls multiple heterogeneous robots through different links. Suitable scenarios: multi-robot collaboration at complex work sites.

ScenarioRecommended LinkReason
Line-of-sight DJI robot controlOcuSync 4.0Lowest latency, best video quality
Indoor non-DJI robot controlWiFi 6Good indoor coverage, high bandwidth
Remote cross-region control4GNot distance-limited
High-reliability scenariosOcuSync + 4G dual-linkAuto-switching, link redundancy

Protocol Adaptation

Connecting Non-DJI Robots to Alius RC

Alius RC SDK provides a ProtocolAdapter abstraction layer that allows mapping any robot platform’s communication protocol to Alius RC standard control commands and telemetry data structures.

public class CustomRobotAdapter extends ProtocolAdapter {

    private Socket tcpSocket;
    private OutputStream outputStream;
    private InputStream inputStream;

    @Override
    public void connect(String address, int port) {
        // Establish TCP connection with robot/gateway
        new Thread(() -> {
            try {
                tcpSocket = new Socket(address, port);
                outputStream = tcpSocket.getOutputStream();
                inputStream = tcpSocket.getInputStream();
                startReceiveLoop();
                notifyConnected();
            } catch (IOException e) {
                notifyConnectionFailed(e.getMessage());
            }
        }).start();
    }

    @Override
    public void sendMovementCommand(MovementCommand cmd) {
        // Convert standard movement command to robot protocol
        byte[] packet = new byte[16];
        ByteBuffer buf = ByteBuffer.wrap(packet);
        buf.order(ByteOrder.LITTLE_ENDIAN);
        buf.put((byte) 0xAA);               // Frame header
        buf.put((byte) 0x01);               // Command type: movement control
        buf.putFloat(cmd.getThrottle());
        buf.putFloat(cmd.getYaw());
        buf.putFloat(cmd.getPitch());
        buf.putFloat(cmd.getRoll());
        buf.put((byte) calcChecksum(packet));

        try {
            outputStream.write(packet);
            outputStream.flush();
        } catch (IOException e) {
            Log.e("Adapter", "Send failed", e);
        }
    }

    private void startReceiveLoop() {
        // Continuously receive status data reported by robot
        byte[] buffer = new byte[256];
        while (tcpSocket != null && tcpSocket.isConnected()) {
            try {
                int len = inputStream.read(buffer);
                if (len > 0) {
                    RobotStatus status = parseStatusPacket(buffer, len);
                    // Convert robot status to standard telemetry data
                    notifyTelemetry(status);
                }
            } catch (IOException e) {
                notifyDisconnected();
                break;
            }
        }
    }
}

Registering Custom Adapters

ConnectionManager connMgr = AliusRCManager.getInstance()
    .getConnectionManager();

// Register adapter
CustomRobotAdapter adapter = new CustomRobotAdapter();
connMgr.registerProtocolAdapter("custom_robot_v1", adapter);

// Connect using the adapter
connMgr.connectViaAdapter("custom_robot_v1", "192.168.1.100", 8888);

Standard Control Command Structure

To facilitate protocol adaptation, Alius RC SDK defines unified standard control command structures:

public class MovementCommand {
    private float throttle;  // Throttle/forward-backward (-1.0 to 1.0)
    private float yaw;       // Yaw/turning (-1.0 to 1.0)
    private float pitch;     // Pitch (-1.0 to 1.0)
    private float roll;      // Roll/translation (-1.0 to 1.0)
    private float altitude;  // Altitude control (-1.0 to 1.0)
    private long timestamp;  // Command timestamp (ms)
    private int sequenceId;  // Sequence number for packet loss detection
}

public class StandardTelemetry {
    private double latitude, longitude;  // GPS coordinates
    private double altitude;             // Altitude (m)
    private double speedX, speedY, speedZ; // Velocity (m/s)
    private double roll, pitch, yaw;     // Attitude angles (degrees)
    private int batteryPercent;          // Battery percentage
    private double voltage;              // Voltage (V)
    private int gpsSatellites;           // GPS satellite count
    private int signalStrength;          // Signal strength (0-100)
    private long timestamp;              // Data timestamp
}

Typical Integration Cases

Case 1: Field Power Line Inspection Drone

System Composition: Alius RC + DJI Matrice 350 RTK + Infrared Thermal Imaging Gimbal

Integration Scheme: Topology A (Direct Control)

Communication Link: OcuSync 4.0, operation radius 5-10 km

Key Integration Points:

  1. Route Planning: Run custom route planning application on Alius RC, issue waypoints via MSDK WaypointMission
  2. Gimbal Control: Dial wheel mapped to gimbal pitch, C1 button toggles visible/IR
  3. AI Defect Recognition: Run lightweight AI model on the controller side, analyze IR images in real time, mark suspicious hot spots
  4. Inspection Report: Automatically generate report with GPS coordinates, thermal screenshots, and defect classifications after flight completion
// Waypoint mission example
WaypointMission.Builder builder = new WaypointMission.Builder();
builder.addWaypoint(new Waypoint(39.9087, 116.3975, 50.0f));
builder.addWaypoint(new Waypoint(39.9090, 116.3980, 50.0f));
builder.setMaxFlightSpeed(10.0f);
builder.setFinishedAction(FinishedAction.GO_HOME);

WaypointMissionOperator operator = 
    SDKManager.getInstance().getWaypointMissionOperator();
operator.loadMission(builder.build());
operator.startMission(e -> {
    if (e == null) {
        Log.i("Mission", "Waypoint mission started");
    }
});

Case 2: Industrial AGV Dispatch Terminal

System Composition: Alius RC + Edge Gateway + AGV Fleet (non-DJI platform)

Integration Scheme: Topology B (Bridged Control)

Communication Link: WiFi 6 → Edge Gateway → CAN/EtherCAT → AGV

Key Integration Points:

  1. Protocol Adaptation: Map AGV CAN protocol to standard control commands via ProtocolAdapter
  2. Multi-Vehicle Switching: Select currently controlled AGV by number on the controller UI
  3. Status Monitoring: Receive and display each AGV’s battery, position, and task status
  4. Safety Interlock: Emergency brake issued simultaneously through OcuSync and WiFi dual links to ensure safety

Case 3: Emergency Rescue Firefighting Robot

System Composition: Alius RC + Firefighting Robot + Gas Sensors + Thermal Imaging

Integration Scheme: Topology C (Hybrid Control)

Communication Link: OcuSync 4.0 (video return) + 4G (sensor data and control command backup)

Key Integration Points:

  1. Dual-Link Redundancy: OcuSync as primary link for video and control commands, 4G as backup
  2. Sensor Fusion Display: Overlay gas concentration, temperature, and other sensor data on FPV OSD layer
  3. Thermal Picture-in-Picture: Simultaneously display visible and thermal imaging for fire source localization
  4. One-Key Return/Escape: Automatically execute preset escape/return strategy upon signal loss
// Sensor data OSD overlay example
OSDOverlayManager osm = fpvView.getOSDOverlayManager();

osm.addOverlayItem(new OSDTextItem.Builder()
    .setText("CO: 12ppm")
    .setPosition(OSDPosition.TOP_LEFT)
    .setColor(Color.YELLOW)
    .build());

osm.addOverlayItem(new OSDTextItem.Builder()
    .setText("TEMP: 156°C")
    .setPosition(OSDPosition.TOP_LEFT, 0, 30)
    .setColor(Color.RED)
    .build());

osm.addOverlayItem(new OSDGaugeItem.Builder()
    .setLabel("Signal")
    .setValue(signalStrength)
    .setPosition(OSDPosition.TOP_RIGHT)
    .build());

Security Mechanisms

Communication Security

LayerMeasure
OcuSyncAES-256 encryption, frequency hopping spread spectrum
WiFiWPA3-Enterprise, certificate authentication
4GIPSec VPN tunnel, end-to-end encryption
ApplicationCommand signature verification, anti-replay protection

Safety Interlocks

Alius RC SDK includes multiple built-in safety interlock mechanisms:

  • Heartbeat Detection: 10 Hz heartbeat between controller and application, triggers auto-hover if no heartbeat received for over 500 ms
  • Joystick Loss Protection: If joystick signal is interrupted for > 200 ms, all control channels automatically zero out
  • Geofencing: Configurable flight/driving area boundaries, auto-execution of preset actions when boundaries are exceeded
  • Command Limiting: Single command magnitude changes limited to preset safety ranges to prevent loss of control
// Safety configuration example
SafetyConfig config = new SafetyConfig.Builder()
    .setHeartbeatTimeout(500)              // ms
    .setStickLostAction(SafetyAction.HOVER)
    .setGeofenceEnabled(true)
    .setMaxCommandDelta(0.3f)              // Max per-frame change
    .setFailsafeAction(SafetyAction.RETURN_HOME)
    .build();

AliusRCManager.getInstance().setSafetyConfig(config);

Ground Station Multi-Screen Solution

When projecting the controller screen to a large display or head-mounted display:

Alius RC (Touch Control)

    ├── HDMI 2.0 ──── External display (FPV + Dashboard)

    └── OcuSync 4.0 ──── Robot

HDMI output supports independent display modes, configurable in Alius RC Manager:

  • Mirror Mode: External display shows the same content as the controller screen
  • Extended Mode: Controller screen shows control UI, external display shows full-screen FPV
  • Dashboard Mode: External display shows dashboard (map + status panel), controller shows FPV and controls

Integration Checklist

After completing system integration, verify the following items:

  • Communication link established normally with latency and bandwidth meeting expectations
  • Control commands respond correctly without abnormal delays or jitter
  • Telemetry data is accurate with update frequency meeting specifications
  • Safety interlock mechanisms function correctly (heartbeat, loss protection, geofencing)
  • Emergency brake can be triggered under all operating conditions
  • Multiple communication link switching occurs without interruption
  • HDMI external display functions normally
  • Long-term operation shows no memory leaks or performance degradation
  • Normal operation in extreme environments (high/low temperature, vibration)

Next Steps