我正在做一个关于自主飞行的项目,我正在使用 ARDrone 2.0。我想知道哪个 API 更适合向无人机发送命令。我已经看到我能够使用 NodeJS 或 ROS 平台,但我希望有经验的人可以帮助我做出明智的决定。
对我来说最重要的是从传感器读取数据和从笔记本电脑接收数据的稳定性。如果我必须学习编程语言或库,我没有问题。
我不知道 NodeJS,但我使用ROS已经有几年了,所以我可以给你一些关于它的信息。
ROS 是模块化的,并且有一个很好的发布者/订阅者系统,可以使用回调函数在各个模块(在 ROS 术语中称为节点)之间交换消息。
通常,每个任务和每个传感器都有一个单独的节点。需要一些数据的“任务节点”,订阅特定主题并注册回调函数。“传感器节点”从传感器获取数据,将数据包装在消息中并将该消息发布到主题。每次发布新消息时,都会自动调用已订阅该主题的所有节点的回调函数。通过这种方式,可以轻松地在各个节点之间交换数据,并且您可以轻松地交换程序的某些部分,例如,如果您想使用其他传感器或任务发生变化。
订阅在网络中不同机器上运行的节点更加容易,因此您可以将数据从笔记本电脑发送到无人机而无需额外努力(假设它们连接到同一网络)。
ROS 支持 C++ 和 Python。也有 Java、JavaScript 和 LISP 的绑定,但我不知道它们有多完整和稳定(从未使用过它们)。
除了核心框架之外,ROS 还附带了许多有用的模块和一个不错的可视化工具,并有一个全面的初学者教程。
鉴于您的项目的时间很短,我建议使用node-ar-drone,使用 Javascript 来控制无人机: