VirtualStick Mode
VirtualStick Mode是Sdk提供的一种底层控制模式,通过模拟物理摇杆的运动向无人机按照一定频率发送摇杆差分信息,使得无人机按照类似于被物理摇杆控制的方式运行,但是此时物理摇杆由程序控制。开发者需要关注最底层的控制细节,因此存在失控的危险性。
VirtualStick Mode存在以下技术难点:
- 在VirtualStick Mode下,无人机为ATTI模式,其悬停精度不高,存在一定误差,容易影响进一步操作。
- 开发者需要关注底层控制,而无人机底层控制采用的坐标系与展现给应用层的坐标系不同,需要考虑坐标转换问题。
- 由程序控制飞行,在实验过程中需要关闭许多安全模块,如主动避障等,在程序失效的情况下会引发危险。
最终,底层选用VirtualStick Mode模式,通过虚拟摇杆对无人机发送控制信号。该模式基于Body坐标系,将Yaw,Roll,Pitch以三元组形式发送给无人机,需要以5Hz-20Hz的频率持续发送,无人机将把以这个频率发送的控制信号视为连续操作。信号发送将使用Java中Timer的Schedule进行定时调度,保证信息始终在以一定频率发送。
控制精度分析
对于Mavic 2 Zoom而言,其悬停主要由两个模式实现,即GPS模式和OPTI模式,后者在GPS信号弱时被使用,能够实现较弱精度的悬停。OPTI模式通过摄像头对地面的图像进行拍摄,并根据图像偏移度修正电机的速率,从而实现悬停,但是该模式对地面环境要求较高,对纯色地面识别效果极差。ATTI(姿态模式)难以稳定悬停。
根据官网数据,该无人机在GPS模式下的定位精度为+-0.1m,在OPTI模式下仅为+-0.5m,在室外环境下这种偏移量可以忽略,但是在室内环境的狭小空间内,微小的定位差异都可能导致严重的问题,这为项目验证成果提供了难度,即难以推算其不稳定的定位是来自于飞控系统还是自然误差。而在ATTI(姿态模式)下,无人机难以稳定悬停。遗憾的是,在切换到虚拟摇杆模式后无人机会强制进入JOYSTICK模式,其类似于ATTI模式,使得项目组始终无法确保其悬停的精度。
在GPS信号良好时,允许开启AdvancedVirtualStickMode,该模式允许使用GPS对虚拟摇杆操作时产生的偏差进行修正,实现较为精确的悬停。然而在虚拟摇杆下采用OPTI模式悬停虽然是一个很好的想法,官方却并未提供这方面的技术支持,无人机也无法切换到该模式。
为了更好验证结果,项目提出了一个折中的解决方案,即使无人机在低亮度下运行,并在底部开启近地照明光。该光线可以用于模拟无人机执行任务时的信号覆盖面积,而任务点模拟信号节点,在飞行过程中,可以通过该光圈内是否存在目标任务点来判断飞行是否精确,从而解决了在无人机和地面存在一定高度差的情况下,肉眼难以观察无人机定点情况的弊端。在验收阶段,项目也会通过上述方式考察控制效果。
实际测试问题
进入验收阶段后,对无人机进行室内测试是最为关键的一部分,然而此前没有暴露出的许多问题却逐渐展现出来,主要体现在两个方面:
指南针精度问题
没错,无人机是基于NED坐标系控制方向的,而NED坐标系是依靠指南针来标定的(至少室内是这样),这就意味着当指南针产生偏差时,无人机会出现严重的定位精度问题,尽管这种误差并不大,可能只有1-5°,但是这种程度的误差足以让实验的所有目标点都产生误差,从而使得路径产生了旋转。这是令人绝望也是懊恼的,因为几乎每次回到试验场地,无人机的指南针都会存在偏差而且大多和上次不同。这种偏差已经离谱到无人机所指示的北方和手机指南针都存在很明显的误差了。
体现在实验中,最令人沮丧的就是很可能上次飞行成功了,过一段时间再尝试就会出现明显的偏差,而再过一段时间又有可能成功。当然,模拟器中的飞行始终是正常的,因为模拟器不会存在硬件造成的问题。这种底层指南针造成的问题并非是通过软件能够解决的了——毕竟预设的方向都错了。大概唯一的办法只能是升级设备,或者干脆自立门户,采用其它定位方式了。
值得庆幸的是,室外的飞行状况良好,这很可能是因为室外有GPS接入,让无人机获得了更精确的方向感。
悬停漂移问题
如上文控制精度一节所说,无人机要实现悬停一般是GPS和OPTI作用。但是大概是因为sdk开发者对虚拟摇杆功能的支持不足,切换到虚拟摇杆后FlightMode会变为JOYSTICK。该模式在RC上似乎被显示为ATTI,而无人机的行为也指示了现在其实是处于ATTI模式(姿态模式),该模式无人机仅通过IMU和各种传感器进行姿态维护,而由于气流导致的漂移是无法被修正的,可以说ATTI是一种强化版的手动模式(真正的手动模式不建议普通人使用,因为无人机完全不进行姿态维稳)。
ATTI带来最大的问题就是漂移,不断地漂移,其几乎无法稳定悬停,特别是在屋内空间狭小的情况下,电机旋转带来的巨大风速会与墙壁碰撞造成向场地中间吹的横风,这种风向会严重干扰无人机的悬停与飞行,常常出现明明目标对准了,飞过去却已经偏出数十公分的情况。更糟糕的是ATTI模式在此时无法切换到OPTI模式,必须要关闭虚拟摇杆模式之后才能自动切换回OPTI(我不太理解这种设计的合理性)。
同样的,在室外风速更大的时候反而能表现良好,因为在有GPS时允许设置AdvancedVirtualStick模式进行定位稳定,但是不知为何OPTI模式始终不能够开启。考虑到本实验一开始要在室内测试,这种精度问题造成的影响还是空前的。
修正
本着存在问题要解决问题的心态,希望能够做出修正,但是经过分析之后,许多事情已经超出了代码能够解决的范畴,也许正是因为这些硬件问题,这款无人机才并不建议在室内使用——可是有些问题又确实是可以通过工具包来解决的,比如为什么要强制关闭下视定位才能使用虚拟摇杆呢?虚拟摇杆其实是由软件控制物理摇杆发送信号的,那么其信号与物理摇杆也没有很大不同,物理摇杆允许OPTI,而虚拟摇杆却不允许,这是无论如何也无法理解的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)