无人机避障——我应该采取哪种方法?

Posted

技术标签:

【中文标题】无人机避障——我应该采取哪种方法?【英文标题】:Obsctacle avoidance for a drone - which approach should I take? 【发布时间】:2018-03-22 19:17:52 【问题描述】:

这是我在这里的第一篇文章,大家好。

我正在开展一个项目,该项目涉及用 c++ 或 python 编写一个程序,该程序将检测障碍物并将用于 AR.Drone 2.0。但是,我不知道我应该采取哪种方法。

最初,有人建议我使用 opencv 和光流。我找到了一些关于它的视频和论文,一种方法是:将 AR.Drone 相机的每一帧划分为 2(左/右侧)或 4(另外是上下),并计算每个部分的光流。然后,向光流较少的方向飞行。

但我对此有些怀疑:

1)我应该使用哪种光流计算方法?我知道在 opencv 中提供了计算密集或稀疏光流的方法。在这个应用程序中我应该选择哪一个?密集光流会不会太慢,无法满足实时性要求?

2)我猜当无人机左右或上下移动时,我会得到一些由无人机移动引起的“假”矢量,而不是因为迫在眉睫的障碍物。如何防止这种情况?

另一个解决方案告诉我here 显示的方法(描述中的论文链接)和实现它的人github link 但是作者承认他“从来没有在无人机上正常进行障碍物检测”。

有人告诉我的另一个选择是将实感摄像头连接到无人机上,并以某种方式使用它提取有关障碍物的信息。

所以,我的问题是 - 我应该走哪条路?或者是否有其他方法可以适用于我描述的应用程序并且相对容易实现?

提前感谢您的每一个回复。

【问题讨论】:

你的无人机可以携带什么载荷(传感器+计算机等)? 除了@Rethunk 的问题,你还想避开什么类型的障碍?只有大的吗?人造的? @Jello 我认为像youtube.com/watch?v=9QQCGLKuUxc 这样的结果会很好。但是,我愿意实施一个适用于另一种障碍的系统。你所说的“大的”和人造的是什么意思?我知道仅使用一台普通相机是不可能实现复杂且完美的避障系统的。我没有写的一件事——所有计算都将在笔记本电脑上完成——而不是无人机内部的单元(项目基于机器人操作系统) @Rethunk 我的无人机是 Parrot AR.Drone 2.0,所以我想它的承载能力不会超过提到的 realsense 或类似重量的东西。 @anicet95 我不知道你会在什么样的环境中飞行。如果你在室内进行完全控制的实验,那么我会说你可以反映他们在那个视频中所做的事情.这似乎是贴在柱子上的控制图像的对象检测/模式识别。在处理植被等有机环境时,光流可能不可靠,这就是为什么我询问人造障碍物的原因。所以你会将视频流式传输到地面站,对吗? 【参考方案1】:

我不确定您的项目的范围,无论是学术性的还是专业性的,但我的建议是使用控制图像的对象检测,摄像头正对无人机。如果检测到物体,您可以根据它的大小估计它与无人机的距离。因为它是一个控制图像,所以它应该有一个恒定的大小,并且你应该记录有多少像素在你的相机的不同距离处。这样你就可以建立一个模型。一旦你知道物体有多远,你就可以确定它是否是障碍物。

一旦检测变得足够大,确定它是否在飞行路径中。然后你移动无人机,使检测框的坐标不再在你的飞行路径中。

对于检测,您可以使用Google's detection api,它带有许多固体检测器/分类器,或者如果您希望为项目添加一层深度,您可以自己训练。 PyImageSearch 是一个很好的起点。如果你觉得更科学,你可以直接进入Tensorflow。

祝你好运!

【讨论】:

抱歉迟到了。最后,我决定先尝试另一条路,现在我正在测试它,但是我非常感谢您对我的问题的兴趣。您的解决方案听起来很有趣,但对我来说是全新的东西,我可能没有足够的时间来实施它。但再一次 - 谢谢你。【参考方案2】:

试试开源项目https://github.com/generalized-intelligence/GAAS 它使用立体相机和 SLAM 来检测障碍物。

【讨论】:

以上是关于无人机避障——我应该采取哪种方法?的主要内容,如果未能解决你的问题,请参考以下文章

无人机与人工智能结合

新品发布 | P600准行业无人机研发平台,室外视觉识别跟踪激光雷达避障多机组网!

matlab多架次无人机(uva)协同植保路径优化(避障)matlab优化算法十五

如何通过16线激光雷达实现无人车的避障

技术分享 | Prometheus避障—A_star算法代码阅读

无人驾驶技术揭秘从机器学习角度揭秘学习型避障小车的设计思路