(4)ModalAI VOXL

文章目录

前言

4.1 购买什么

4.2 硬件设置

4.3 VOXL 摄像机配置

4.4 自动驾驶仪配置

4.4.1 使用 OpticalFlow 进行 EKF3 光源转换

4.5 视频


前言

本文介绍了如何将 ModalAI VOXL-CAMArduPilot 配合使用,以替代 GPS,从而实现 Loiter、PosHold、RTL、Auto 等定位控制模式。


VOXL-CAM 中的 VOXL 电路板可以单独(individually )购买,作为配套计算机使用。此外,还可提供更新、功能更强大的 VOXL 2 配套计算机(VOXL 2 companion computer )。

Note

ArduPilot 4.3(及更高版本)支持 VOXL 摄像头。

4.2 硬件设置

如上图所示,将 VOXL 摄像机连接到自动驾驶仪。在这些说明中使用的是自动驾驶仪的 Telem2 端口。

VOXL 摄像头安装在飞行器前部,使 Wifi 天线从摄像头底部伸出。

4.3 VOXL 摄像机配置

ModalAI’s VOX-CAM setup instructions here

让相机正常工作的最基本步骤包括:

  • 在 Ubuntu 工作站上设置 adb(Setup adb);
  • 将摄像机连接到 Ubuntu 工作站,启动 adb shell 并运行 voxl-configure-vision-px4(run voxl-configure-vision-px4)(注:当要求输入 IP 地址时,可直接按 <enter> 键);
  • 运行“systemctl enable voxl-mavlink-server”配置 mavlink 服务器自动启动;
  • 可选择运行“systemctl status voxl-vision-px4”(run “systemctl status voxl-vision-px4”)来检查 VOXL 是否正在生成良好的位置估计值。

4.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_XVISO_POS_YVISO_POS_Z 设置为相机在无人机上相对于重心的位置。详见传感器位置偏移补偿(sensor position offset compensation);
  • 可选择将 VISO_QUAL_MIN 增至 10(或更高),以便仅在质量为 10%(或更高)时才消耗相机的估计值。

如果只使用 VOXL 摄像机进行位置估算和航向(例如不使用 GPS):

修改参数后,重启自动驾驶仪。与地面站连接,(如果使用任务规划器)在地图上单击鼠标右键,选择“在此设置原点”、“在此设置 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)。

4.4.1 使用 OpticalFlow 进行 EKF3 光源转换

如果需要在外部导航流和光学流之间切换,请参阅外部导航流/光学流转换(ExternalNAV/Optical Flow Transitions)

4.5 视频

内容概要:本文详细探讨了制造业工厂中两条交叉轨道(红色和紫色)上的自动导引车(AGV)调度问题。系统包含2辆红色轨道AGV和1辆紫色轨道AGV,它们需完成100个运输任务。文章首先介绍了AGV系统的背景和目标,即最小化所有任务的完成时间,同时考虑轨道方向性、冲突避免、安全间隔等约束条件。随后,文章展示了Python代码实现,涵盖了轨道网络建模、AGV初始化、任务调度核心逻辑、电池管理和模拟运行等多个方面。为了优化调度效果,文中还提出了冲突避免机制增强、精确轨道建模、充电策略优化以及综合调度算法等改进措施。最后,文章通过可视化与结果分析,进一步验证了调度系统的有效性和可行性。 适合人群:具备一定编程基础和对自动化物流系统感兴趣的工程师、研究人员及学生。 使用场景及目标:①适用于制造业工厂中多AGV调度系统的开发与优化;②帮助理解和实现复杂的AGV调度算法,提高任务完成效率和系统可靠性;③通过代码实例学习如何构建和优化AGV调度模型,掌握冲突避免、路径规划和电池管理等关键技术。 其他说明:此资源不仅提供了详细的代码实现和理论分析,还包括了可视化工具和性能评估方法,使读者能够在实践中更好地理解和应用AGV调度技术。此外,文章还强调了任务特征分析的重要性,并提出了基于任务特征的动态调度策略,以应对高峰时段和卸载站拥堵等情况。
内容概要:本文介绍了一个使用MATLAB编写的基于FDTD(时域有限差分)方法的电磁波在自由空间中传播的仿真系统。该系统采用了ABC(吸收边界条件)和正弦脉冲激励源,并附有详细的代码注释。文中首先介绍了关键参数的选择依据及其重要性,如空间步长(dx)和时间步长(dt),并解释了它们对算法稳定性和精度的影响。接着阐述了电场和磁场的初始化以及Yee网格的布局方式,强调了电场和磁场分量在网格中的交错排列。然后详细讲解了吸收边界的实现方法,指出其简单而有效的特性,并提醒了调整衰减系数时需要注意的问题。最后,描述了正弦脉冲激励源的设计思路,包括脉冲中心时间和宽度的选择,以及如何将高斯包络与正弦振荡相结合以确保频带集中。此外,还展示了时间步进循环的具体步骤,说明了磁场和电场分量的更新顺序及其背后的物理意义。 适合人群:对电磁波传播模拟感兴趣的科研人员、高校学生及工程技术人员,尤其是那些希望深入了解FDTD方法及其具体实现的人群。 使用场景及目标:适用于教学演示、学术研究和技术开发等领域,旨在帮助使用者掌握FDTD方法的基本原理和实际应用,为后续深入研究打下坚实基础。 阅读建议:由于本文涉及较多的专业术语和技术细节,建议读者提前熟悉相关背景知识,如电磁理论、MATLAB编程等。同时,可以通过动手实践代码来加深理解和记忆。
评论 76
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EmotionFlying

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值