光流与鹦鹉迷你无人机
简介
鹦鹉微型无人机使用各种机载传感器,如加速度计和陀螺仪来稳定自身。但是,由于微小的缺陷,无人机不能停留在原地,并倾向于漂移。这种情况可以通过使用无人机向下摄像头的图像来避免。摄像机连续捕捉图像,并检查X和Y方向的运动。飞行控制器除了使用加速度计和陀螺仪外,还使用相机数据来稳定自身在空间中并保持无人机的x-y位置。
光流
为了理解光流,考虑这样一种情况,由于传感器中的一些噪声,无人机在x方向上漂移了dx距离,在y方向上漂移了dy距离。在这种情况下,控制器需要知道在x和y方向上移动的距离,以使它回到原始位置。
这可以使用朝下的摄像头通过比较无人机移动时的连续图像来获得。向下的摄像头固定在地面上的物体/图案上,如果该物体/图案的位置有任何变化,摄像头将其报告为速度方面的运动-这是光流。这种速度测量可以用来计算无人机移动的距离。
解决光流问题
在某些情况下,摄像机无法检测到水平运动。如果无人机下方的表面纹理是均匀的,没有图案,摄像头可能检测不到运动。此外,当光线较暗时,相机可能无法检测到移动。在这种情况下,光流值将为零,导致漂移和无人机可能坠毁。
为了避免这种情况,我们在新的Simulink项目模板中建模了一个逻辑(崩溃预测逻辑),金宝app盘旋鹦鹉迷你无人机
.的parrotMinidroneHover
项目(是模板的一部分)包含崩溃预测标志
子系统(在flightControlSystem
金宝app仿真软件模型)。该子系统用于在连续采样50次没有光流测量时关闭无人机。
如果无人机由于光流问题而关闭,可以对表面进行一些修复以增加对比度。增加表面对比度可确保相机产生非零光流值。
下图显示了一个表面的场景,你可能会看到光流误差:
红色标记的区域是均匀纹理的表面。当无人机飞过地面时,它接收到的光流信息为零。这是无人机看到的:
在这种情况下,无人机将漂移并最终坠毁。
为了增加对比度,在无人机飞行的表面上添加胶带。这一改变避免了由于光流问题而关闭无人机。
下图显示了在表面添加磁带以增加对比度的示例。
这是无人机现在看到的:
表面的纹理不需要如上图所示。它可以是任何随机的图案,只要在表面有一个对比。
在有光流问题的情况下,即使表面有对比度,照明也可能是一个问题。在这种情况下,增加房间的照明,使无人机可以获得非零光流值。
金宝app光流仿真模型
在parrotMinidroneHover
项目的一部分盘旋鹦鹉迷你无人机
金宝appSimulink模板)中,对关闭无人机的坠毁预测逻辑进行了建模崩溃预测标志
子系统flightControlSystem
模型。
在崩溃预测标志
子系统,VisionSensors
,包含以下字段:dx_OF
(x方向速度),dy_OF
(y方向速度)和OF_status
.的OF_status
当无人机无法检测到光流时为“0”,当无人机检测到光流时为“1”。
的值可以改变没有光流的最大循环数与常数比较
块,用紫色突出显示。一旦达到指定的值,无人机将关闭。
若要关闭光流,请执行以下选项之一:
的值增加
与常数比较
块(用紫色突出显示)转换为一个非常大的值。请注意
将计数(没有光流的最大循环数)增加到一个非常大的值可能会导致无人机漂移。
打开
无光流
子系统(蓝色突出显示),并将子系统内部的Constant块的值设置为0
.
从配置参数中删除启用光流选项
的启用光流选项中的“配置参数”对话框已被删除,该功能将在flightControlSystem
模型如上所示。从R2019a开始,该选项已弃用。
限制/向后兼容性
对于较旧的Simulink模金宝app型(R2019a之前),光流行为没有变化(Parrot无人机在没有光流的情况下在50个循环后关闭)。但是,建议转移到新的模板(盘旋鹦鹉迷你无人机
)在R2019a中引入。