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