我正在使用 node.js 和 node-ar-drone 对我的 AR.Drone 2.0 进行编程,以在室内执行一些基本的飞行操作。据我所知,无人机似乎永远不会直线飞行。无论我从哪里设置起飞点,它都会左右摇摆,悬停几秒钟,或者撞到墙上。换句话说,如果我运行同一个程序在走廊上飞 10 次,每次都会做不同的事情。
如果它真的穿过走廊,它每次都会落在不同的地方。我会内置计数器移动来调整随机摇摆,例如如果它向右摇摆,我会告诉它向左移动,但这似乎永远不够。再多的反击 Action 似乎也无法让它直线飞行。我在无人机上使用最新的固件。
有人告诉我,无人机上没有任何东西可以纠正飞行过程中的错误,例如反馈回路。除此之外,我还被告知这些无人机主要是为在户外或非常开阔的空间中使用而设计的,这样它就不会坠毁。
我想看看这是否适用于其他任何人,或者是否有人有任何建议让它直线飞行。任何输入或评论都会有所帮助
最佳答案
AR.Drone 确实使用来自其传感器组合的反馈来改进其飞行,如下图所示(来自“The Navigation and Control technology inside the AR.Drone micro UAV”):
对于您的情况,最重要的可能是使用加速度计、陀螺仪和相机的姿态和速度估计的工作情况。您可以采取一些措施来帮助这些系统正常工作:
- 确保从完全水平的表面起飞。
- 在起飞前调用
ftrim
设置平整水平。 - 视觉算法旨在尝试做好工作,即使向下摄像头下的表面没有太多纹理,但如果地板/地面太单调,它们仍然会感到困惑。尝试飞越更有质感和对比度的物体。
对于#3,飞越颜色均匀的地毯或水泥地板等物体会使无人机更难看清它在做什么——这与在光滑、无特征的表面上使用光电鼠标的问题非常相似。当您看到 Parrot 炫耀 AR.Drone 的能力时,您会注意到它们经常飞过一个显然是为了让导航更容易而选择的表面。例如,
来自 https://www.youtube.com/watch?v=IcxBf-kegKo :
来自 https://www.youtube.com/watch?v=pEMD6P_j5uQ#t=8m25s :
也就是说,对于我的无人机,我有时会遇到这样的情况,即在起飞时无人机立即转向一边直到坠毁,即使我调用了 ftrim
并认为我是从平坦的地方起飞的表面。您可能需要反复试验才能找到一个好的起飞点。
无人机被设计为能够在室内飞行(例如,带有螺旋桨保护器的聚苯乙烯泡沫塑料外壳推荐用于室内飞行,但不推荐用于室外飞行,并且 FreeFlight 应用程序具有室内和室外飞行模式),但根据我的经验无人机仍然会有一点漂移,因此您将在较大的房间内获得最佳效果。
这是一个演示,其中我的无人机在室内非常稳定的方式飞行,在一个大房间里,铺着质地良好的地毯,从一个非常平坦的位置:https://www.youtube.com/watch?v=uhBa11gdbeU
即便如此,您也可以看到无人机在 0:23 处进行了一次小而快速的修正。 .
关于javascript - 如何将 Parrot AR.Drone 编程为直线飞行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29883185/