我正在研究基本的飞机飞行稳定系统,以作为全自动驾驶系统的先驱。我正在使用打捞的Wii Motion Plus和Nunchuk创建6DOF IMU。第一个目标是保持机翼水平,然后混入用户命令。我是否正确地说,这将不需要陀螺仪,只需一个3(2?)轴加速度计即可检测俯仰和横滚,然后调整副翼和升降舵以进行补偿?将我的设计目标从“保持机翼水平”扩展到“直线飞行”(很明显,在风和湍流的作用下,这是两个不同的东西),只要没有GPS指导就可以实现陀螺仪?

我尝试对陀螺仪值进行积分,以从中获得滚动,俯仰和偏航,但是(如该问题所证明的),我对本主题的知识水平较高我的代码中的数学更简单。感谢您的帮助!

评论

您打算使用加速度计来测量相对于重力的方向还是通过积分来获得速度?

@JoeBaker相对于重力的方向。从本质上讲,飞机应自行飞向地面,并能抵抗风引起的侧倾变化。

#1 楼


我是否正确地说,这将不需要陀螺仪(仅3(2?)轴加速度计)来检测俯仰和横滚,然后调整副翼和升降舵以进行补偿?


不。反之亦然。加速度计几乎无法用于检测遇到未知加速度的平台上的旋转。您的飞机将受到两个力矢量的作用:重力和升力+拖动。提升+拖动会随飞机的俯仰而变化很大。

但是,这是一种更通用的方法,您可以知道这是不可能的,并且您可以在许多其他情况下使用此方法,而不仅仅是IMU。一个传感器或一组传感器为您提供N个值。您不能将其解释为N个维度以上的空间。

一个简单的例子:您想要一个传感器来测量某人在房间内的位置。一个超声波测距仪就足够了吗?不能。房间中的位置需要两个值,即(X,Y)坐标。但是超声波传感器只能提供一个值,即长度。无法设置此传感器来解决您的问题。但是,如果您有两个传感器,则有可能。

现在让我们看一下飞机。非加速平面仅承受一个力,即重力。相对于平面的重力方向是3D矢量,但是幸运的是(如果您在地球上)知道其大小。那是1的值,留下2个未知数,因此理论上您可以用2轴加速度计来弥补这2个未知数并计算引力矢量。飞行。重力和提升+拖动都是3D向量,为您提供6个数字。好,您知道重力的大小,所以有5个数字。您将需要某种至少提供5个值的传感器。因此,三轴加速度计是不够的。

虽然三轴陀螺仪和三轴加速度计都无法满足要求,但陀螺仪会更加有用。这是因为它直接测量旋转,而这正是您要控制的。

同样,加速度计对于检测和校正直线行驶中的偏差将更加有用。

#2 楼

就像加速度计的名称所暗示的那样,您可以测量系统上的加速度(不包括重力)。当传感器静止时,可以测量抵消重力所产生的加速度。这是固定方向与重力向量的方法。当传感器加速时,就像施加其他外力(例如风)时一样,它会与抵消重力的力混合在一起,因此您无法再唯一地确定重力矢量。如果对时间进行平均,则可以平滑动态加速度分量,例如,这就是AHRS中用于补偿陀螺仪漂移的函数。对于短期估计(这是您的要求),加速度计不可能为您提供保持飞行器稳定所需的信息,并且您需要其他一些方法来估计方向(例如陀螺仪,水平传感器等) ...)。

有效地,您无法区分由阵风加速的水平飞船和倾斜但没有加速的水平飞船。

评论


$ \ begingroup $
谢谢,我来看看!我在插入的Arduino论坛上找到了一个免费的过滤器,因为我自己没有数学代码可以对其进行编码,我们将看看情况如何。我想明天可以试飞...
$ \ endgroup $
–克里斯
13年5月5日在20:04