文章目录
前言
本文介绍了如何设置 ModalAI VOXL 2,以便与 ArduPilot 配合使用,从而在没有 GPS 的情况下实现包括 Loiter、PosHold、RTL 和 Auto 等模式的位置控制。
本文介绍了如何设置 ModalAI VOXL 2,以便与 ArduPilot 配合使用,从而在没有 GPS 的情况下实现包括 Loiter、PosHold、RTL 和 Auto 等模式的位置控制。
!Note
ArduPilot 4.6(及更高版本)支持 VOXL 2。
5.1 购买什么
以下任何产品均可运行 ArduPilot:
5.2 硬件设置
按此处(here)所述安装 ArduPilot。
可在此处找到 Copter、Plane 和 Rover 的预制二进制文件。
安装文件复制如下:
- 将 voxl-ardupilot.service 设为 /etc/systemd/system/;
- voxl-ardupilot 到 /usr/bin/;
- build/QURT/ardupilot 到 /usr/bin/;
- 将 build/QURT/bin/arducopter 复制到 /usr/lib/rfsa/adsp/ArduPilot.so;
- 将正确的参数文件从 Tools/Frame_params/ModalAI/ 复制到 /data/APM/defaults.parm。
然后可以使用:
- systemctl 使能 voxl-ardupilot.service;
- systemctl 开始 voxl-ardupilot。
5.3 VOXL 摄像机配置
详情即将公布。
5.4 自动驾驶仪配置
用地面站(如任务规划器)连接自动驾驶仪,检查是否设置了以下参数。
- SERIAL2_PROTOCOL = 2(MAVLink2)。请注意,这假定摄像机已连接到自动驾驶仪的“Telem2”端口;
- SERIAL2_BAUD = 921(921600 波特);
- 可选择设置 SERIAL2_OPTIONS = 1024(不转发 mavlink 至/从),禁止将摄像机的里程测量信息发送至 GCS;
- 可选择设置 SR2_EXTRA3 = 0,禁止向摄像机发送 SYSTEM_TIME 信息,因为已知 SYSTEM_TIME 会导致摄像机丢失位置估计值(例如,质量降为-1)。请注意,这需要将摄像机连接到自动驾驶仪的第二个 mavlink 端口(例如通常的 Telem2);
- VISO_TYPE= 3 (voxl);
- 将 VISO_POS_X,、VISO_POS_Y、VISO_POS_Z 设置为相机在无人机上相对于重心的位置。详见传感器位置偏移补偿(sensor position offset compensation);
- 可选择将 VISO_QUAL_MIN 增至 10(或更高),以便仅在质量为 10%(或更高)时才消耗相机的估计值。
如果仅使用 VOXL 2 摄像机进行位置估算和航向(如无 GPS):
- EK3_SRC1_POSXY = 6 (ExternalNav);
- EK3_SRC1_VELXY = 6 (ExternalNav);
- EK3_SRC1_POSZ = 6 (ExternalNav);
- EK3_SRC1_VELZ = 6 (ExternalNav);
- EK3_SRC1_YAW = 6 (ExternalNav)。
修改参数后,重启自动驾驶仪。与地面站连接,(如果使用任务规划器)在地图上单击鼠标右键,选择 “在此设置原点”、“在此设置 EKF 原点”,告诉 ArduPilot 飞行器的位置,它就会立即出现在地图上。
用于室内/室外转换(例如室内使用 VOXL 摄像头,室外使用 GPS+指南针):
- EK3_SRC1_POSXY = 3 (GPS);
- EK3_SRC1_VELXY = 3 (GPS);
- EK3_SRC1_POSZ = 1 (Baro);
- EK3_SRC1_VELZ = 0 (None);
- EK3_SRC1_YAW = 1 (Compass);
- EK3_SRC2_POSXY = 6 (ExternalNav);
- EK3_SRC2_VELXY = 6 (ExternalNav);
- EK3_SRC2_POSZ = 6 (ExternalNav);
- EK3_SRC2_VELZ = 6 (ExternalNav);
- EK3_SRC2_YAW = 6 (ExternalNav);
- RC6_OPTION = 90(EKF Pos 信号源)允许飞行员使用通道 6 在信号源 1(如 GPS+指南针)和信号源 2(如 VOXL 摄像机)之间切换。开关的低位置为源 1(GPS+指南针),中间位置为源 2(如 VOXL),高位置为源 3(如无),这将导致 EKF 失去位置估计并触发 EKF 故障安全。为避免飞行员错误触发 EKF 故障保护,你可能需要将 EK3_SRC1_xxx 或 EK2_SRC2_xxx 复制到 EK3_SRC3_xx;
- RC7_OPTION = 80(Viso Align)允许飞行员在飞行前使用通道 7 将摄像机的偏航与 AHRS/EKF 偏航重新对齐。起飞前重新调整偏航是个好主意,否则可能会发生位置失控(又称“厕所保龄球”)。
修改参数后,重新启动自动驾驶仪。
有关 GPS/Non-GPS 转换的更多详情,请点击此处(GPS/Non-GPS Transitions can be found here)。
为了在 VOXL 出现故障时使用光流和测距仪作为备份,这里提供了一个用于外部导航/光流转换的 Lua 小程序(ExternalNav/Optical flow transitions is here)。