Управление мультикоптером при помощи 4G связи

Мобильная связь четвертого поколения удобный инструмент для передачи и получения информации на большой скорости. В настоящее время область покрытия мобильных операторов позволяет подключаться к интернету на большой скорости практически из любой точки.

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

Подключение Raspberry Pi к VPN

Подключите 4G модем с сим-картой в USB порт вашей Raspberry Pi.

Обратите внимание, что при подключении, модем должен распознаваться в системе как сетевая карта, без каких либо дополнительных настроек.

Пример 4g модема: USB 4G Huawei E3372H

Для управления коптером предлагается использовать UDP протокол передачи, обеспечивающий меньшую задержку, ценой отсутствия гарантии получения пакета, что очень важно во время пилотирования коптера.

Сформируйте необходимые ключи VPN сети, для подключения Raspberry Pi и наземной станции.

Для того, чтобы подключить Raspberry Pi к вашей сети, установите пакет openvpn:

sudo apt-get install openvpn

Перенесите ваши ключи в директорию /etc/openvpn/client. Для удобства используйте графический SFTP интерфейс передачи данных, к примеру: WinSCP, FileZilla и т.д.

Для включения режима клиента, необходимо активировать переданные вами ключи. Ключи могу быть сформированы в различных форматах, к примеру: .ovpn, .conf. Ключ или конфигурация использующийся на вашем коптере, должны быть строго в формате .conf.

Инициализируйте сервис применяющий ваши ключи для подключения в режиме клиента:

sudo systemctl enable openvpn-client@config-name

где config-name - название вашего конфигурационного файла.

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

Перед началом работы не забудьте настроить и включить VPN подключение на вашем ПК.

Управление коптером через QGroundControl

Убедитесь, что ваш коптер и наземная станция подключены к вашей сети.

Для этого можете воспользоваться командой ip addr. Результатом ее выхода будет пронумерованный список активных сетей включенных на вашем устройстве. Обратить внимание стоит на подключение с префиксом tun и указанным вами IP адресом, если оно присутствует в вашем списке, ваш коптер подключился к сети.

В QGroundControl, аналогично подключению по Wi-Fi, настройте подключение к вашему коптеру по протоколу использующемуся в вашей сети: UDP/TCP. Рекомендуется использовать UDP подключение, за счет большей скорости передачи данных.

Если у вас появилась связь с коптером, подключите какой-либо джойстик к вашему ПК. Роль джойстика может выполнять как радио пульты, такие как, FlySky-i6X, Taranis x7 и т.д., так и джойстики от приставок или любые их эмуляции, которые распознаются системой.

Когда джойстик распознается системой, в колонке Vehicle Setup появится пункт Joystick, в случае, если он подсвечивается красным цветом, это значит, что требуется настройка.

Для калибровки джойстика, во вкладке Joystick нажмите кнопку Calibrate и следуйте инструкциям положения стиков пульта, указанных с левой стороны окна.

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

При выборе джойстика, обратите внимание на количество рабочих каналов и на поддержку его, в QGroundControl(SDL2). Встречаются пульты поддерживающие всего 4 канала, что не удобно для такого типа управления.

Если изменения положения стиков отображается в окне QGgroundControl, вам остается только применить параметр, определяющий, что управление коптером происходит с помощью джойстика, а не радиоаппаратуры:

COM_RC_IN_MODE - Joystick/No RC Checks

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

Коптер готов к полету!

Если коптер не армится при переведении левого стика в нижний правый угол, установите состояние Arm/Disarm на один из тумблеров.

Передача видео с камеры в QGroundControl

Передача видео возможна практически с любой камеры подключенной к вашей Raspberry Pi. Для этого вам потребуется установить или собрать пакет gst-rtsp-launch:

sudo apt-get install gst-rtsp-launch

Чтобы запустить передачу изображений, необходимо ввести соответствующую командную строку:

gst-rtsp-launch "( v4l2src device=/dev/video0 ! video/x-raw,framerate=30/1,width=320,height=240 ! v4l2h264enc output-io-mode=4 extra-controls=\"encode,frame_level_rate_control_enable=1,h264_profile=4,h264_level=13,video_bitrate=300000,h264_i_frame_period=5;\" ! rtph264pay name=pay0 pt=96 )"

Данная командная строка содержит параметры передачи видео, такие как: устройство передачи, частота кадров, высота/ширина изображения, метод кодирования и т.д. Подробнее о настройках можно узнать тут.

В приложении QGroundControl проверьте, что начался стрим изображения.

Автоматизация запуска передачи видео

Создайте файл и добавьте в него командную строку:

nano script_name.sh

Чтобы корректно запускать файл, необходимо присвоить ему соответствующие флаги доступа.

chmod a+x script_name.sh

Для того, чтобы передача видео запускалась каждый раз при включении системы, необходимо создать стартап-скрипт с помощью менеджера systemd. В директории /etc/systemd/system создайте файл qgc_video.service.

sudo nano /etc/systemd/system/qgc_video.service

В файл запишите соответствующие строки:

[Unit]
Description=VideoStream

[Service]
ExecStart=/bin/bash /home/pi/script_name.sh

[Install]
WantedBy=multi-user.target

Осталось только инициализировать ваш скрипт в системе и он будет запускаться при каждом ее включении.

sudo systemctl enable qgc_video.service

results matching ""

    No results matching ""