Files
clover/docs/ru/4g.md
2019-12-30 18:16:48 +03:00

8.7 KiB
Raw Blame History

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

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

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

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

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

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

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

sudo apt-get install openvpn

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

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

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

sudo systemctl enable openvpn-client@config-name

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

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

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

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

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

TODO: можно написать как пользоваться ifconfig'ом и сказать, на что смотреть

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

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

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

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

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

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

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

COM_RC_IN_MODE - Joystick/No RC Checks

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

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

Hint Если коптер не армится при переведении левого стика в нижний правый угол, установите состояние 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