copter.space
  • База знаний COPTER.SPACE
  • Модульность
  • Сообщество
  • Соревнования
  • ЖУЖА NANO и "НЕБО В КАРМАНЕ" 7-11+
    • ЖУЖА NANO
    • Клеевые модели мини планеров.
    • CASE STUDY
      • Программирование SCRATCH и PYTHON
      • РЕМОНТ “ЖУЖА NANO”. 3D-принтер.
      • РЕМОНТ “ЖУЖА NANO”. 3D-ручка.
  • ЖУЖА MINI 12-14+
    • Назначение
    • Комплектация и характеристики
    • Методические материалы
    • CASE STUDY
      • Сборка ЖУЖА MINI
        • ШАГ 1. Подключение аккумулятора.
        • ШАГ_2. Подключение регуляторов.
        • ШАГ_3. Полетный контроллер.
        • ШАГ 4. Приемник радиоуправления.
        • ШАГ 5. Преобразователь тока.
        • ШАГ 6 Монтаж моторов
        • Схема монтажных групп.
  • ЖУЖА 3.0 Учебный модуль 13-16+
    • Жужа Базовая
    • Назначение Жужа 3.0 FPV
    • 12 ВЕЩЕЙ, КОТОРЫЕ ВЫ ДОЛЖНЫ ПРОВЕРИТЬ ПЕРЕД ПОЛЁТОМ КВАДРОКОПТЕРА
    • CASE STUDY
      • 1. Вводная часть: почему конфигуратор “Вetaflight”?
        • 1.1. Установка конфигуратора.
        • 1.2. Инструкция по прошивке полетного контроллера
        • 1.3. Настройка полетного контроллера
        • 1.4. Раздел Configuration (Конфигурация)
        • 1.5. Проверка моторов в “Motors”
        • 1.6. Настройка приемника (Receiver)
        • 1.7. Раздел “Receiver” (Аппаратура управления).
        • 1.8. Полётные режимы (Modes)
        • 1.9. Режим "Failsave" (“Отказоустойчивость”)
        • 1.10. PID Tuning (Настройка ПИДов)
        • 1.11. Blackbox (Черный ящик)
      • 2. Подключение симулятора
      • 3. "МОРЗЯНКА"
        • 3.1. Азбука Морзе
        • 3.2. Схема подключения
        • 3.3. Сектч
      • 4. GPS_установка. Начало работы с iNav
        • 4.1. Почему iNAV?
        • 4.2. Модуль GPS
        • 4.3. Подключение GPS
        • 4.4. Настройка GPS в iNAV
        • 4.5. Настройка полетных режимов в iNAV
  • ЖУЖА 3.0 VISIO 15-18+
  • Назначение
  • Жужа VISIO 3.0
  • Обзор программ
    • Обзор программного обеспечения для квадрокоптера
    • Введение в программу
    • Загрузка прошивки
    • Настройка
  • CASE STUDY
    • Учебное пособие "Машинное зрение"
    • Конвертация "Жужи Мини" в "Жужу Visio"
    • Подключение адресной светодиодной ленты
    • Статья 1: Запуск автономного квадрокоптера в виртуальной среде
    • Статья 2: Самонаводящийся дрон.
    • Урок 3: В поисках шарика.
    • Урок 4: Отыскать и бабахнуть.
  • Альтитрал
    • Назначение
    • Характеристики
    • Квалификационные требования оператора
      • Запуск дрона в виртуальной среде
      • Посадка на ARUCO-маркер
      • Посадка RED_DETECTOR
    • Обзор программного обеспечения
    • Быстрый старт
      • Привязка пульта_РУ
      • ARM/DISARM
      • Проверка вращения пропеллеров
      • Полёт STABILIZE
        • Особенности УМК серии "Альтитрал"
        • Меры предосторожности
        • Проверка перед полётом
        • Включение питания
        • Управление в полёте
    • Захват грузов
Powered by GitBook
On this page
  • Установка и запуск jMAVSim на Linux Ubuntu
  • Установка и запуск jMAVSim на Windows (работает некорректно)
  • Полёты с помощью программы наземной станции QGroundControl
  • Программирование автономного полёта с помощью mavros
  • Ссылки:
  1. Альтитрал
  2. Квалификационные требования оператора

Запуск дрона в виртуальной среде

Запуск дрона в виртуальной среде

PreviousКвалификационные требования оператораNextПосадка на ARUCO-маркер

Last updated 4 years ago

Перед началом эксплуатации реального дрона убедитесь, что он выполняет миссию в симуляторе и выполните данную инструкцию.

Ввиду обновления релизов программных сред могут возникать коррективы работы программы. Обращайтесь за консультацией на почту mail@copter.space c темой письма "ВИРТУАЛЬНЫЙ ДРОН".

Для прокачки базовых навыков программирования дрона не нужно ничего покупать – достаточно использовать симулятор дрона jMAVSim проекта PX4. PX4 – мощный набор ПО с открытым исходным кодом, предназначенный для использования на различных беспилотных транспортных средствах, как летающих, так и ездящих по земле. Исходные коды ПО проекта лежат .

Изначально в качестве среды разработки авторами PX4 рекомендуется Linux Ubuntu LTS. Также есть поддержка Mac. В этом году появилась среда симуляции и разработки под Windows в Cygwin, что может упростить жизнь Российским учебным заведениям, которые используют Windows в классах информатики. Далее мы рассмотрим процесс установки, сборки и запуска симулятора под Linux и под Windows.

Установка и запуск jMAVSim на Linux Ubuntu

Разработчики PX4 в качестве стандартной системы рекомендуют Linux Ubuntu 16.04 LTS. Linux позволяет производить сборку пакета PX4 под все поддерживаемые системы (аппаратные платформы на базе NuttX, Qualcomm Snapdragon Flight, Linux, среды симуляции, ROS). Первым делом добавляем пользователя в группу «dialout»:

sudo usermod -a -G dialout $USER
source ubuntu_sim_nuttx.sh

На все задаваемые скриптом вопросы ответить положительно. По окончании выполнения скрипта перезагрузить компьютер. Нам осталось скачать исходный код контроллера, управляющий полётом, и осуществить его сборку. Клонируем репозиторий ПО полётного контроллера PX4 с github:

git clone https://github.com/PX4/Firmware.git

В папке Firmware теперь у нас лежит полный исходный код, который исполняется в полётном контроллере (и в симуляторе). В дальнейшем он может пригодится как для целей изучения, так и для внесения в него правок. Переходим в скопированную папку Firmware репозитория:

cd src/Firmware

Осуществляем компиляцию и запуск симулятора:

make px4_sitl jmavsim

Процесс первой компиляции занимает некоторое время. После успешного завершения на экране появится консоль PX4:

Дрон можно отправить в полёт, введя в консоли команду:

pxh> commander takeoff

Посадка дрона – команда commander land, остановка симуляции – CTRL+C или команда shutdown.

Установка и запуск jMAVSim на Windows (работает некорректно)

git clone --recursive -j8 https://github.com/PX4/Firmware.git
cd Firmware
make px4_sitl jmavsim

После компиляции на экране появится консоль PX4 и окно симулятора:

Команды консоли для управления дроном те же: взлёт — commander takeoff, посадка – commander land, остановка симуляции – CTRL+C или команда shutdown.

Полёты с помощью программы наземной станции QGroundControl

Программирование автономного полёта с помощью mavros

roslaunch mavros px4.launch fcu_url:="udp://@192.168.0.22:14557"

Если симулятор запущен не на том хосте, на котором работает jMAVSim – перед подключением mavros нужно разрешить рассылку mavlink сообщений по сети с помощью команды param set MAV_BROADCAST 1 в консоли jMAVSim. При выполнении команды выводится ip-адрес хоста, используемый для протокола mavlink. Порт можно узнать с помощью команды mavlink status в консоли симулятора:

Успешность подключения к полётному контроллеру следует проверить с помощью команды:

rostopic echo /mavros/state

Если подключение успешно – в консоли начнут появляться сообщения т.н. mavlink heartbeat, примерно раз в секунду:

Если сообщения не появляются/не обновляются/поле Connected = False – связь с полётным контроллером не установлена, и следует разобраться, почему. На момент написания статьи, под Windows после команды param set MAV_BROADCAST 1 в консоли jMAVSim начинали в цикле выводиться сообщения:

WARN [mavlink] getting required buffer size failed. 

Чтобы симулятор заработал корректно под Windows, следует дополнить строку 1029 файла src/modules/mavlink/mavlink_main.cpp:

#if defined(__APPLE__) && defined(__MACH__) || defined(__CYGWIN__)
  • Публикуем 5 раз в секунду целевую точку для полёта дрона в режиме OFFBOARD. Для того, чтоб дрон не «вываливался» из режима автономного полёта OFFBOARD, необходимо осуществлять публикацию целевой точки всё время, несколько раз в секунду:

    
    rostopic pub -r 5 /mavros/setpoint_position/local geometry_msgs/PoseStamped "header: seq: 0 stamp: secs: 0 nsecs: 0 frame_id: '' pose: position: x: 0.0 y: 0.0 z: 5.0 orientation: x: 0.0 y: 0.0 z: 0.0 w: 0.0"
  • Переводим дрон в режим OFFBOARD (в новой отдельной сессии терминала):

    rosservice call /mavros/set_mode "base_mode: 0 custom_mode: 'OFFBOARD'"
  • Отправляем команду перевести дрон в режим полёта (т.е. «заармить»):

    rosservice call /mavros/cmd/arming "value: true"

После выполнения последней команды виртуальный дрон должен взлететь и зависнуть на высоте 5 метров:

Также запуск дрона можно осуществить с помощью несложного кода на Питоне:

import rospy
from geometry_msgs.msg import PoseStamped
from mavros_msgs.srv import CommandBool, SetMode

rospy.init_node("offbrd",anonymous=True)
rate=rospy.Rate(5)
setpoint_pub=rospy.Publisher("/mavros/setpoint_position/local",PoseStamped,queue_size=10)
arming_s=rospy.ServiceProxy("/mavros/cmd/arming",CommandBool)
set_mode=rospy.ServiceProxy("/mavros/set_mode",SetMode)
setpt=PoseStamped()
setpt.pose.position.z=5
for i in range (0,10):
    setpoint_pub.publish(setpt)
    rate.sleep()
set_mode(0,"OFFBOARD")
arming_s(True)

while (rospy.is_shutdown()==False):
    setpoint_pub.publish(setpt)
    rate.sleep()

Приведённый код использует вызов тех же сервисов ROS, что и пример вызова из командной строки. Код нужно скопировать в текстовый файл, например, fly_jmavsim.py, и запустить его на выполнение из командной строки командой python fly_jmavsim.py.

В процессе отладки данного примера столкнулся с особенностью симулятора jMAVSim – для нормальной работы ему требуется производительный процессор. На виртуалке Linux он успевал просчитывать только 10 FPS, и падал сразу после взлёта. На ноутбуке, пока я писал статью – он также периодически терял управление/падал. Помогло питание ноутбука от сети – т.к. при питании от батарейки включается режим энергосбережения, что занижает производительность процессора, которая сказывается непосредственно на работе симулятора. На основании приведённых примеров желающие могут сами разработать программы автономных полётов (по квадрату, по кругу, по произвольной траектории, и т.д.). Выполнение таких упражнений может быть полезным для подготовки к программированию автономных миссий на реальном квадрокоптере. Желаем всем успешных полётов!

Ссылки:

Перелогинимся в систему, для того чтобы изменения вступили в силу. Установка среды разработки (development toolchain) для Pixhawk/NuttX, включая jmavsim, осуществляется автоматически с помощью скрипта . Нужно скачать скрипт в каталог пользователя и запустить его с помощью команды

Консоль PX4
Витруальный дрон в полёте

Набор инструментов PX4 Cygwin появился в 2018 году. Это наиболее производительный способ для компиляции/разработки PX4 под Windows. Для установки – качаем и запускаем установочный файл с или . По умолчанию toolchain устанавливается в папку C:\PX4. На последнем шаге инсталлятора можно отметить галочку «clone the PX4 repository, build and run simulation with jMAVSim» (клонировать репозиторий PX4, скомпилировать и запустить симулятор jMAVSim). Запуск среды разработки в Cygwin осуществляется с помощью файла run-console.bat в каталоге установки (по умолчанию, C:\PX4). Если забыли отметить галочку запуска jMAVSim в процессе установки – в Cygwin можно клонировать репозиторий и запустить симулятор с помощью команд:

Окно симулятора jMAVSim под Windows

У меня на Windows пока не отображаются небо и деревья, вместо них – чёрный фон, о чём .

Программа QGroundControl позволяет полностью настраивать дроны на платформах PX4 или ArduPilot, а также планировать и выполнять автономные полёты вне помещений по GPS. Код программы полностью открыт, и она работает на платформах Windows, OS X, Linux, iOS и Android. Установочный файл под нужную платформу можно скачать . Для Windows скачиваем и запускаем . После установки и запуска, если у нас на компьютере уже запущен jMAVSim – программа подключится к нему автоматически. Запустить дрон в полёт можно с помощью кнопки Fly-Takeoff, посадить – Land. Также можно выполнить виртуальный полёт по точкам GPS:

Управление виртуальным дроном jMAVSim возможно по протоколу mavlink, который описан в нескольких статьях (например , ). Для осуществления mavlink-коммуникации мы будем использовать пакет mavros системы . Разработчики PX4 рекомендуют использовать ROS Kinetic. Пакет mavros обеспечивает связь по протоколу MAVLink между компьютером, на котором работает ROS (например, виртуалка с Linux, или Raspberry PI) и полётным контроллером (реальным или в среде симулятора). Пакет mavros устанавливается вместе с другими пакетами в ходе . Запуск пакета mavros с подключением к симулятору осуществляется командой roslaunch, с указанием ip адреса и порта компьютера, на котором запущен симулятор:

Mavlink status
mavlink heartbeat

И перекомпилировать/перезапустить симулятор командой make px4_sitl jmavsim. О данной проблеме , возможно, её исправят в последующих релизах. После успешного подключения, запустить дрон в автономный полёт можно с помощью следующих команд консоли ROS-системы:

Flying jMAVSim

ubuntu_sim_nuttx.sh
Гитхаба
Амазона
сообщено разработчикам симулятора
в разделе Download сайта программы
вот этот файл
1
2
ROS (robot operating system)
полной установки ROS Kinetic
сообщено разработчикам
Robot Operating System (ROS)
Автопилот PX4
на Гитхабе
QGroundControl