Синхронный танец нескольких квадрокоптеров Ardrone 2.0


В этой статье я писал о квадрокоптере Ardrone 2.0, у которого есть открытый API, позволяющий использовать его в экспериментах робототехники. Для управления Ardrone 2.0. я использовал пакет ardrone_autonomy операционной системы для роботов ROS. Это был эксперимент с голосовым управлением — Голосовое управление квадрокоптером Ardrone 2.0. из ROS. И вот новый проект с Ardrone 2.0. Синхронный танец нескольких квадрокоптеров Ardrone 2.0 — по мотивам шоу, показанным компанией Parrot на CES 2013, видео можно посмотреть здесь.

Комплектация
1. ARDrone 2.0 — 4 шт.
2. 4 нетбука
Ubuntu 11.4
ROS fuerte
пакет ardrone_autonomy
пакет vp_ardrone2 (https://github.com/victoruni/vp_ardrone2 )

3. 1 ноутбук — rosbridge-сервер для нетбуков
Ubuntu 11.10
ROS fuerte
пакет ardrone_autonomy, rosbridge, usb_cam
пакет vp_ardrone2 (https://github.com/victoruni/vp_ardrone2 )

4. Для организации сети для 4 нетбуков и ноутбука — сетевой коммутатор на 5 портов.

Об установке пакетов писать не буду, информацию можно найти в сети.

API Ardrone позволяет получать изображение с двух камер квадрокоптера, отправлять команды управления полетом, получать данные с датчиков, а также запускать светодиодные и полетные анимации. Список полетных анимаций — запрограмированных движений Ardrone можно посмотреть здесь

Каждый нетбук соединен по wifi c квадрокоптером, управление осуществляется из ROS, используется пакет ardrone_autonomy и написанный для этого проекта пакет vp_ardrone2 (https://github.com/victoruni/vp_ardrone2), обработка команды сценария, часть команд — это анимации из API Ardrone 2.0, часть движений пришлось прописывать вручную (использовались показания датчика высоты и поворот)
Один из ноутбуков использовался в качестве табло, где можно выбрать предварительно написанный сценарий для каждого квадрокоптера, выбрать квадрокоптеры для запуска, запустить шоу на выполнение, на табло также отображается некоторая информация с датчиков.
Здесь был дополнительно установлен пакет Rosbridge (о работе пакета rosbridge для Turtlebot я писал здесь)
При запуске сценариев на выполнение центральный комп, считывает пошагово команды сценария для каждого нетбука, и отправляет на каждый комп, по окончании выполнения команды от нетбука приходит сигнал, и центральный комп отправляет на выполнение следущую команду сценария.
Пример сценария

scenario1
start;5
#wait;5
takeoff;5.0
#;
#; эмуляция фигуры 13 подъем до 1.0-1.5-2.0-2.5 м
cmd_vel;3.0;0.0;0.0;0.3;0.0;1100;1;0;0;
cmd_vel;3.0;0.0;0.0;0.3;0.0;1700;1;0;0;
cmd_vel;3.0;0.0;0.0;0.3;0.0;2200;1;0;0;
#;
#; эмуляция фигуры 8 опускание до 0.5 м
userfly2;6.0;0.0;0.0;-0.2;1.0;750;2;0;1;
userfly1;4.0;0.0;0.0;0.0;0.2;3000;2;0;1;
#;
# анимации 16
#fly;6.0;15;0.0
#;
# круговое - эмуляция 14
userfly5;10.0;0.15;0.2;0.08;0.0;2000;1;0;1;
#;
# анимации 1, 2
fly;2.0;0;0.0
fly;2.0;1;0.0
#;
#; эмуляция фигуры 13 опускание до 1.5 м
cmd_vel;3.0;0.0;0.0;-0.2;0.0;1500;2;0;0;
#;
# анимации 15
#fly;6.0;14;0.0
#;
#;или эмуляция фигуры 13 подъем до 2.5 м
#cmd_vel;4.0;0.0;0.0;0.2;0.0;2200;1;0;0;
#;
#; фигуры 5,6
fly;4.0;4;0.0
fly;4.0;5;0.0
#;
#; дрожание 9
fly;3.0;8;0.0
cmd_vel;4.0;0.0;0.0;0.2;0.0;2200;1;0;0;#;
#; сальто
fly;5.0;16;0.0
#; опускание по высоте
cmd_vel;3.0;0.0;0.0;-0.2;0.0;1500;2;0;0;
cmd_vel;3.0;0.0;0.0;-0.2;0.0;1100;2;0;0;
cmd_vel;3.0;0.0;0.0;-0.2;0.0;650;2;0.0;0;
#;end
land;5.0
end

Или простой — запуск только светодиодных анимаций без взлета

ledanimation1
start;5
wait;5
led;5.0;1;1.0;4
led;5.0;0;1.0;4
led;5.0;2;1.0;4
led;5.0;3;1.0;4
led;5.0;4;1.0;4
led;5.0;5;1;4
led;5.0;6;1;4
led;5.0;7;1;4
led;5.0;8;1;4
led;5.0;9;1;4
led;5.0;10;1;4
led;5.0;11;1;4
led;5.0;12;1;4
led;5.0;13;1;4
end

На табло отображается текущая команда сценария для каждого квадрокоптера. И просто изображение с центральной камеры одного из квадрокоптеров.

Запуск(для каждого нетбука и ноутбука): в качестве терминала удобно использовать GuakeTerminal
1 монитор

   roscore

2 монитор

   roslaunch vp_ardrone2 www.launch

3 монитор — после соединения нетбука с квадрокоптером

   roslaunch ardrone_autonomy ardrone1.launch

В браузере ноутбука (только Google Chrome (не Chrome!!!) — в других нет запуска js файла музыкального сопровождения)

Браузер:
http://localhost:8000/vp_ardrone2/tablo.html

Файл проекта на github — https://github.com/victoruni/vp_ardrone2

И маленькое видео — запуск части сценария на одном квадрокоптере

И видео объяснения как запускать и как работает интерфейс на примере сценария световых анимаций.

Данный проект можно использовать в рекламных акциях, что и предполагалось, но к сожалению, на данный момент Ardrone к использованию не пригоден (следствие многочисленных крашей).


0 комментариев на «“Синхронный танец нескольких квадрокоптеров Ardrone 2.0”»

  1. Добрый день.
    Я маркетолог выставок роботов по России.
    Хотели бы с Вами посотрудничать.
    Интересует программирование коптеров.
    Напишите пожалуйста номер телефона для оперативной форме

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение