Пример: полёт по квадрату

Здесь представлен пример создания простой программы для полёта коптера по квадрату 1 на 1 метр в локальной системе позиционирования.

Для создания новой программы откройте вкладку «Проект» и затем нажмите кнопку «Новый».

Первым и обязательным блоком программы следует установить блок «Предвзлётная подготовка» из вкладки «События»

../../../_images/preflight.png

Далее включим световую индикацию, сведетельствующую об окончании предвзлётной подготовки. Для этого перетащим блок «Поменять цвет всех светодиодов на плате» из вкладки «Модули» под предыдущий блок.

../../../_images/change_leds1.png

Выберем красный свет для сигнализации об окончании подготовки, для этого из блока математика перетащим 3 блока-цифры «0» в «Красный», «Зелёный» и «Синий» поля блока «Поменять цвет всех светодиодов на плате».

Для красного цвета укажем значение 255, для остальных цветов оставим 0, так плата зажжёт красный цвет на максимальную яркость.

../../../_images/change_leds2.png

Теперь установим событие взлёта, чтобы «Пионер» взлетел в воздух.

Для этого перетащим блок «Взлёт» из вкладки «События».

Далее дублируем блок «Поменять цвет всех светодиодов на плате» нажатием правой кнопки мыши, затем «Дублировать», вставим его под блок «Взлёт» и поменяем цвет зелёный цвет на 255, а красный на 0.

Таким образом, плата зажжёт зелёные светодиоды на максимальную яркость после завершения взлёта.

../../../_images/takeoff.png

После взлёта «Пионер» должен пролететь метр вперёд, для этого воспользуемся блоком «Лететь в локальные координаты» из вкладки «Полёт»

Чтобы пролететь метр вперёд, укажем 1 блоком математики в поле Y блока полёта, в поле X укажем 0.

../../../_images/kord.png

Высота при полёте по квадрату не должна измениться, поэтому в качестве координаты Z необходимо указать текущую координату.

Для этого получим массив текущих координат с помощью блока «Координаты в системе навигации» из вкладки «Датчики». Данный массив содержит в себе 3 числа (x,y,z), поэтому возьмём последний элемент массива с помощью блока «в списке взять #» из вкладки «Массивы». В качестве списка вставляем блок координат, в качестве номера выбираем «Последний»

Запишем получившийся блок в поле Z координаты в блок полёта.

В поле Время напишем 3, так «Пионер» пролетит метр вперёд за 3 секунды.

Подсказка

Если в поле время указать 0, то «Пионер» будет лететь в заданную точку с максимальной скоростью

Получаем следующую программу:

../../../_images/square1.png

Теперь продублируем блок полёта 3 раза. Для полёта по квадрату коптер должен пролететь в 4 точки по очереди: 1 метр вперёд, 1 метр право, 1 метр назад, 1 метр влево или (0, 1, z), (1, 1, z), (1, 0, z), (0, 0, z)

Поменяем координаты для трёх новых блоков соотвественно.

../../../_images/square2.png

После выполнения данной программы коптер пролетит квадрат и вернётся в место после взлёта, теперь необходимо совершить посадку.

Для этого используем блок «Посадка» из вкладки «События».

../../../_images/landing.png

Готово, программа создана! Теперь сохраним её, нажав кнопку «Сохранить» во вкладке «Проект» в левой верхней части экрана.

Введите имя программы, например fly_square и нажмите «Ок».

../../../_images/save.png

Важно

Перед запуском программы, убедитесь, что ROS система запущена.

О том, как запустить ROS систему, можно прочитать в Начало работы в Bricks

Для запуска программы нажмите кнопку «Вжух» и наблюдайте за результатом.

Полный вид программы:

../../../_images/full.png