我应该使用什么API来控制ARDrone 2.0?

时间:2015-04-07 14:17:35

标签: ros ar.drone drone

我正在开展一个关于自主飞行的项目,我正在使用ARDrone 2.0。我想知道哪个API更好地向无人机发送命令。我已经看到我可以使用NodeJS或ROS平台,但我希望有经验的人可以帮我做出明智的决定。

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

2 个答案:

答案 0 :(得分:3)

ROS

我不知道NodeJS,但我现在使用ROS已有好几年了,所以我可以给你一些相关信息。

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

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

订阅网络中不同计算机上运行的节点非常容易,因此您可以将数据从笔记本电脑发送到无人机而无需额外工作(假设它们连接到同一网络)。

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

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

答案 1 :(得分:2)

鉴于项目的时间很短,我建议node-ar-drone,使用Javascript来控制无人机:

  1. 这很容易 - 你不需要学习机器人框架,只需要一个 相对简单的API。
  2. 它有用户:至少有3个或4个 人们积极发布和回应github上的问题 库中。
  3. 有很多项目展示了如何使用图书馆,从简单到复杂。例如,ar-drone-restwebflightar-drone-autonomy