2015-04-07 3 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 кажется действительно хорошим вариантом, но мне интересно, сколько времени мне нужно для изучения основ, и того, что мне нужно для завершения этого проекта. Вы знаете, проблема в том, что я должен завершить этот проект и сообщить об этом второй неделе мая, и у меня есть работа на неполный рабочий день. Кроме того, мне нужно разработать приложение для Android, чтобы нарисовать траекторию, к которой приведет гудок, так что теперь все это вопрос времени. – lmiguelvargasf

+0

@lmiguelvargasf: hm, мне кажется, что нужно некоторое время, чтобы ознакомиться со структурой ROS (вам нужно настроить рабочее пространство, создать и построить новый пакет для ваших вещей и т. Д.). Он использует CMake для своей системы сборки, поэтому, вероятно, это проще, если вы уже знакомы с CMake. – luator

+1

Возможно, вы можете попробовать начать с учебников и посмотреть, если вы достигнете прогресса достаточно быстро. Я бы сказал, что первые 13 разделов учебника должны быть достаточными (и вы, вероятно, можете пропустить некоторые, чтобы быстрее добраться). – luator

 Смежные вопросы

  • Нет связанных вопросов^_^