概述
Alius RC 不仅是一台遥控器,更是一个开放的机器人操控平台。本文档面向系统集成商和机器人方案架构师,介绍如何将 Alius RC 集成到现有的机器人系统中,包括通信架构设计、协议适配方案以及典型应用场景的集成案例。
通信架构
整体拓扑
Alius RC 集成方案支持三种基本通信拓扑:
拓扑 A:直接控制
Alius RC ──── OcuSync 4.0 ──── 机器人(DJI 平台)
最简方案,Alus RC 通过 OcuSync 4.0 直接连接搭载 DJI 飞控/平台的机器人,无需额外中间件。适用场景:野外巡检、单机器人操控。
拓扑 B:桥接控制
Alius RC ──── WiFi 6 / 4G ──── 地面站/边缘网关 ──── 私有协议 ──── 机器人
Alius RC 通过 IP 网络连接地面站或边缘网关,由网关完成协议转换后控制非 DJI 平台的机器人。适用场景:工业 AGV 调度、无人船编队。
拓扑 C:混合控制
┌── OcuSync 4.0 ── 无人机(DJI)
Alius RC ──────┤
└── WiFi 6 ──── 网关 ──── CAN/EtherCAT ──── 机械臂/AGV
一台 Alius RC 同时通过不同链路操控多台异质机器人。适用场景:复杂作业现场的多机器人协同。
通信链路选择指南
| 场景 | 推荐链路 | 原因 |
|---|---|---|
| 视距内操控 DJI 机器人 | OcuSync 4.0 | 最低延迟,图传质量最佳 |
| 室内操控非 DJI 机器人 | WiFi 6 | 室内覆盖好,高带宽 |
| 远程跨地域操控 | 4G | 不受距离限制 |
| 高可靠性场景 | OcuSync + 4G 双链路 | 自动切换、链路冗余 |
协议适配
将非 DJI 机器人接入 Alius RC
Alius RC SDK 提供了 ProtocolAdapter 抽象层,允许将任意机器人平台的通信协议映射到 Alius RC 的标准控制指令和遥测数据结构。
public class CustomRobotAdapter extends ProtocolAdapter {
private Socket tcpSocket;
private OutputStream outputStream;
private InputStream inputStream;
@Override
public void connect(String address, int port) {
// 建立与机器人/网关的 TCP 连接
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) {
// 将标准移动指令转换为机器人协议
byte[] packet = new byte[16];
ByteBuffer buf = ByteBuffer.wrap(packet);
buf.order(ByteOrder.LITTLE_ENDIAN);
buf.put((byte) 0xAA); // 帧头
buf.put((byte) 0x01); // 命令类型:移动控制
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() {
// 持续接收机器人回传的状态数据
byte[] buffer = new byte[256];
while (tcpSocket != null && tcpSocket.isConnected()) {
try {
int len = inputStream.read(buffer);
if (len > 0) {
RobotStatus status = parseStatusPacket(buffer, len);
// 将机器人状态转换为标准遥测数据
notifyTelemetry(status);
}
} catch (IOException e) {
notifyDisconnected();
break;
}
}
}
}
注册自定义适配器
ConnectionManager connMgr = AliusRCManager.getInstance()
.getConnectionManager();
// 注册适配器
CustomRobotAdapter adapter = new CustomRobotAdapter();
connMgr.registerProtocolAdapter("custom_robot_v1", adapter);
// 使用适配器连接
connMgr.connectViaAdapter("custom_robot_v1", "192.168.1.100", 8888);
标准控制指令结构
为便于协议适配,Alius RC SDK 定义了统一的标准控制指令结构:
public class MovementCommand {
private float throttle; // 油门/前进后退 (-1.0 到 1.0)
private float yaw; // 偏航/转向 (-1.0 到 1.0)
private float pitch; // 俯仰 (-1.0 到 1.0)
private float roll; // 横滚/平移 (-1.0 到 1.0)
private float altitude; // 高度控制 (-1.0 到 1.0)
private long timestamp; // 指令时间戳 (ms)
private int sequenceId; // 序列号,用于丢包检测
}
public class StandardTelemetry {
private double latitude, longitude; // GPS 坐标
private double altitude; // 高度 (m)
private double speedX, speedY, speedZ; // 速度 (m/s)
private double roll, pitch, yaw; // 姿态角 (度)
private int batteryPercent; // 电量百分比
private double voltage; // 电压 (V)
private int gpsSatellites; // GPS 卫星数
private int signalStrength; // 信号强度 (0-100)
private long timestamp; // 数据时间戳
}
典型集成案例
案例一:野外电力巡检无人机
系统组成:Alius RC + DJI Matrice 350 RTK + 红外热成像云台
集成方案:拓扑 A(直接控制)
通信链路:OcuSync 4.0,作业半径 5-10km
关键集成点:
- 航线规划:在 Alius RC 上运行自定义航线规划应用,通过 MSDK WaypointMission 下发航点
- 云台控制:波轮映射为云台俯仰,C1 键切换可见光/红外
- AI 缺陷识别:在遥控器端运行轻量化 AI 模型,实时分析红外图像,标记可疑发热点
- 巡检报告:飞行结束后自动生成包含 GPS 坐标、热成像截图和缺陷分类的报告
// 航线任务示例
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");
}
});
案例二:工业 AGV 调度终端
系统组成:Alius RC + 边缘网关 + AGV 车队(非 DJI 平台)
集成方案:拓扑 B(桥接控制)
通信链路:WiFi 6 → 边缘网关 → CAN/EtherCAT → AGV
关键集成点:
- 协议适配:通过 ProtocolAdapter 将 AGV 的 CAN 协议映射为标准控制指令
- 多车切换:在遥控器界面上选择当前控制的 AGV 编号,切换控制对象
- 状态监视:接收并显示每台 AGV 的电量、位置、任务状态
- 安全互锁:紧急刹车通过 OcuSync 和 WiFi 双链路同时下发,确保安全
案例三:应急救援消防机器人
系统组成:Alius RC + 消防机器人 + 气体传感器 + 热成像
集成方案:拓扑 C(混合控制)
通信链路:OcuSync 4.0(视频回传) + 4G(传感器数据和控制指令备份)
关键集成点:
- 双链路冗余:OcuSync 作为主链路传输视频和控制指令,4G 作为备份链路
- 传感器融合显示:将气体浓度、温度等传感器数据叠加显示在图传画面 OSD 层
- 热成像画中画:同时显示可见光和热成像画面,辅助火源定位
- 一键返航/脱困:在信号丢失时自动执行预设的脱困/返航策略
// 传感器数据 OSD 叠加示例
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());
安全机制
通信安全
| 层级 | 措施 |
|---|---|
| OcuSync | AES-256 加密,跳频扩频 |
| WiFi | WPA3-Enterprise,证书认证 |
| 4G | IPSec VPN 隧道,端到端加密 |
| 应用层 | 指令签名校验,防重放攻击 |
安全互锁
Alius RC SDK 内置多重安全互锁机制:
- 心跳检测:控制器与应用之间 10Hz 心跳,超过 500ms 未收到心跳自动触发悬停
- 摇杆失联保护:摇杆信号中断 > 200ms 自动归零所有控制通道
- 地理围栏:可设置飞行/行驶区域边界,越界自动执行预设动作
- 指令限幅:单次指令的幅度变化受限于预设安全范围,防止失控
// 安全配置示例
SafetyConfig config = new SafetyConfig.Builder()
.setHeartbeatTimeout(500) // ms
.setStickLostAction(SafetyAction.HOVER)
.setGeofenceEnabled(true)
.setMaxCommandDelta(0.3f) // 单帧最大变化幅度
.setFailsafeAction(SafetyAction.RETURN_HOME)
.build();
AliusRCManager.getInstance().setSafetyConfig(config);
地面站多屏方案
当需要将遥控器画面投射到大屏或头戴显示器时:
Alius RC (触控操作)
│
├── HDMI 2.0 ──── 外接大屏(图传画面 + 仪表盘)
│
└── OcuSync 4.0 ──── 机器人
HDMI 输出支持独立显示模式,可在 Alius RC Manager 中配置:
- 镜像模式:外屏与遥控器屏幕显示相同内容
- 扩展模式:遥控器屏幕显示操控界面,外屏全屏显示图传画面
- 仪表盘模式:外屏显示仪表盘(地图 + 状态面板),遥控器显示图传和控制
集成检查清单
在完成系统集成后,请逐项验证:
- 通信链路建立正常,延迟和带宽符合预期
- 控制指令响应正确,无异常延迟或抖动
- 遥测数据准确,更新频率符合规格
- 安全互锁机制正常工作(心跳、失联保护、地理围栏)
- 紧急刹车可在所有工况下触发
- 多种通信链路切换无中断
- HDMI 外接显示正常
- 长时间运行无内存泄漏或性能衰减
- 极端环境下(高温/低温/振动)工作正常
下一步
- MSDK 开发指南 — 返回 MSDK API 和控件开发
- 技术规格 — 查看详细硬件参数
- Alius 技术支持 — 如遇集成问题,请联系 support@alius.tech