2015-04-07 44 views
3

我正在研究一个关于自主飞行的项目,并且我正在使用ARDrone 2.0。我想知道哪个API更好地发送命令给无人机。我已经看到我能够使用NodeJS或ROS平台,但我希望有经验的人能帮助我作出明智的决定。我应该使用什么API来控制ARDrone 2.0?

最重要的事情对我来说是有关从一台笔记本电脑从传感器读取数据和接收数据的稳定性。如果我必须学习编程语言或库,我不会遇到麻烦。

回答

2

考虑为您的项目短的时间内,我会建议node-ar-drone,使用JavaScript来控制无人机:

  1. 这很容易 - 你不需要学习一个机器人框架,只是一个相对 简单的API。
  2. 它有网友:至少有3或4 人民积极张贴和应对问题上github上 库。
  3. 有很多项目显示如何使用库,从简单到复杂。例如,ar-drone-rest,webflight,ar-drone-autonomy
3

ROS

我不知道的NodeJS,但我使用ROS有些年头了,所以我可以给你一些关于它的信息。

ROS是模块化的,并且具有很好的发布者/订阅者系统以使用回调函数在各个模块之间交换消息(在ROS术语中称为节点)。

通常,每个任务和每个传感器都有一个单独的节点。 需要一些数据的“任务节点”订阅特定的主题并注册回调函数。 “传感器节点”从传感器获取数据,将数据封装在消息中,并将此消息发布到主题。 每次发布新消息时,自动调用订阅了该主题的所有节点的回调函数。 通过这种方式,可以轻松地在各个节点之间交换数据,并且您可以轻松地交换程序的各个部分,例如如果你想使用其他传感器或者任务改变了。

订购运行在网络中不同机器上的节点更加容易,因此您可以无需额外的努力就可以将数据从笔记本电脑发送到无人机(假设它们连接到同一网络)。

ROS支持C++和Python。还有对Java,JavaScript和LISP的绑定,但我不知道它们有多完整和稳定(从未使用它们)。

除了核心框架,ROS还附带了许多有用的模块和一个不错的可视化工具,并有一个全面的beginner tutorial

+0

ROS似乎是一个非常好的选择,但我不知道需要多少时间来学习基础知识,以及完成这个项目所需的东西。你知道问题是我必须在5月的第二周完成这个项目和一份关于它的报告,并且我有兼职工作。另外,我必须开发一个Android应用程序来绘制无人机将遵循的轨迹,所以现在一切都是时间问题。 – lmiguelvargasf

+0

@lmiguelvargasf:嗯,我认为需要一些时间来熟悉ROS的结构(你必须设置一个工作区,为你的东西创建和构建一个新的包等)。它使用CMake构建系统,所以如果你已经熟悉CMake,可能会更容易。 – luator

+1

你也许可以尝试从教程开始,看看,如果你进展得足够快。我会说,本教程的前13个部分应该足够了(你可以跳过一些,以更快地到达那里)。 – luator

相关问题