diff --git a/docs/assets/4g/calibrate.png b/docs/assets/4g/calibrate.png new file mode 100644 index 00000000..39a2507a Binary files /dev/null and b/docs/assets/4g/calibrate.png differ diff --git a/docs/assets/4g/calibration_instruction.png b/docs/assets/4g/calibration_instruction.png new file mode 100644 index 00000000..94f34a77 Binary files /dev/null and b/docs/assets/4g/calibration_instruction.png differ diff --git a/docs/assets/4g/failsafe.png b/docs/assets/4g/failsafe.png new file mode 100644 index 00000000..fff5dd42 Binary files /dev/null and b/docs/assets/4g/failsafe.png differ diff --git a/docs/assets/4g/fly_modes.png b/docs/assets/4g/fly_modes.png new file mode 100644 index 00000000..34db195e Binary files /dev/null and b/docs/assets/4g/fly_modes.png differ diff --git a/docs/assets/4g/video_stream.png b/docs/assets/4g/video_stream.png new file mode 100644 index 00000000..b362f085 Binary files /dev/null and b/docs/assets/4g/video_stream.png differ diff --git a/docs/ru/4g.md b/docs/ru/4g.md new file mode 100644 index 00000000..ae525964 --- /dev/null +++ b/docs/ru/4g.md @@ -0,0 +1,133 @@ +# Управление мультикоптером при помощи 4G связи + +Мобильная связь четвертого поколения удобный инструмент для передачи и получения информации на большой скорости. В настоящее время область покрытия мобильных операторов позволяет подключаться к интернету на большой скорости практически из любой точки. + +> **Hint** Для передачи каких либо данных с вашего коптера на наземную станцию(QGroundControl) и обратно, вам необходимо настроить собственную VPN сеть. + +## Подключение Raspberry Pi к VPN + +Подключите 4G модем с сим-картой в USB порт вашей Raspberry Pi. + +> **Hint** Для управления коптером предлагается использовать UDP протокол передачи, обеспечивающий меньшую задержку, ценой отсутствия гарантии получения пакета, что очень важно во время пилотирования коптера. + +Сформируйте необходимые ключи VPN сети, для подключения Raspberry Pi и наземной станции. + +Для того, чтобы подключить Raspberry Pi к вашей сети, установите пакет *openvpn*: + +```bash +sudo apt-get install openvpn +``` + +Перенесите ваши ключи в директорию */etc/openvpn/client*. Для удобства используйте графический SFTP интерфейс передачи данных, к примеру: WinSCP, FileZilla и т.д. + +Для включения режима клиента, необходимо активировать переданные вами ключи. Ключи могу быть сформированы в различных форматах, к примеру: *.ovpn*, *.conf*. Ключ или конфигурация использующийся на вашем коптере, должны быть строго в формате *.conf*. + +Инициализируйте сервис применяющий ваши ключи для подключения в режиме клиента: + +```bash +sudo systemctl enable openvpn-client@config-name +``` + +где *config-name* - название вашего конфигурационного файла. + +Если все сделано правильно, при каждом перезапуске системы, сервис-клиент будет автоматически подключаться к вашей сети. + +> **Hint** Перед началом работы не забудьте настроить и включить VPN подключение на вашем ПК. + +## Управление коптером через QGroundControl + +Убедитесь, что ваш коптер и наземная станция подключены к вашей сети. + +Для этого можете воспользоваться командой `ip addr`. Результатом ее выхода будет пронумерованный список активных сетей включенных на вашем устройстве. Обратить внимание стоит на подключение с префиксом *tun* и указанным вами IP адресом, если оно присутствует в вашем списке, ваш коптер подключился к сети. + +В QGroundControl, аналогично [подключению по Wi-Fi](gcs_bridge.md), настройте подключение к вашему коптеру по протоколу использующемуся в вашей сети: *UDP/TCP*. Рекомендуется использовать *UDP* подключение, за счет большей скорости передачи данных. + +Если у вас появилась связь с коптером, подключите какой-либо джойстик к вашему ПК. Роль джойстика может выполнять как радио пульты, такие как, FlySky-i6X, Taranis x7 и т.д., так и джойстики от приставок или любые их эмуляции, которые распознаются системой. + +Когда джойстик распознается системой, в колонке *Vehicle Setup* появится пункт *Joystick*, в случае, если он подсвечивается красным цветом, это значит, что требуется настройка. + +Для калибровки джойстика, во вкладке *Joystick* нажмите кнопку *Calibrate* и следуйте инструкциям положения стиков пульта, указанных с левой стороны окна. + +
+ + +
+ +После успешной калибровки необходимо настроить полетные режимы. Чтобы это сделать несколько раз переключите необходимые тумблеры. В ходе переключения, вы увидите виртуальные каналы, на которых работают тумблеры. В активном положении будет подсвечиваться один из каналов. + + + +> **Info** При выборе джойстика, обратите внимание на количество рабочих каналов и на поддержку его, в QGroundControl(SDL2). Встречаются пульты поддерживающие всего 4 канала, что не удобно для такого типа управления. + +Если изменения положения стиков отображается в окне QGgroundControl, вам остается только применить параметр, определяющий, что управление коптером происходит с помощью джойстика, а не радиоаппаратуры: + +`COM_RC_IN_MODE` - Joystick/No RC Checks + +Поскольку мобильная связь не всегда бывает стабильна, рекомендуется увеличить таймаут на потерю сигнала управления до 5 секунд. + + + +Коптер готов к полету! + +> **Hint** Если коптер не армится при переведении левого стика в нижний правый угол, установите состояние Arm/Disarm на один из тумблеров. + +## Передача видео с камеры в QGroundControl + +Передача видео возможна практически с любой камеры подключенной к вашей Raspberry Pi. Для этого вам потребуется установить или [собрать](https://github.com/sfalexrog/gst-rtsp-launch) пакет *gst-rtsp-launch*: + +```bash +sudo apt-get install gst-rtsp-launch +``` + +Чтобы запустить передачу изображений, необходимо ввести соответствующую командную строку: + + + +```bash +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 )" +``` + +Данная командная строка содержит параметры передачи видео, такие как: устройство передачи, частота кадров, высота/ширина изображения, метод кодирования и т.д. Подробнее о настройках [можно узнать тут](https://github.com/sfalexrog/gst-rtsp-launch/blob/master/README.md). + +В приложении QGroundControl проверьте, что начался стрим изображения. + + + +## Автоматизация запуска передачи видео + +Создайте файл и добавьте в него [командную строку](#command_line): + +```bash +nano script_name.sh +``` + +Чтобы корректно запускать файл, необходимо присвоить ему соответствующие флаги доступа. + +```bash +chmod a+x script_name.sh +``` + +Для того, чтобы передача видео запускалась каждый раз при включении системы, необходимо создать стартап-скрипт с помощью менеджера systemd. В директории */etc/systemd/system* создайте файл *qgc_video.service*. + +```bash +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 +``` + +Осталось только инициализировать ваш скрипт в системе и он будет запускаться при каждом ее включении. + +```bash +sudo systemctl enable qgc_video.service +``` diff --git a/docs/ru/SUMMARY.md b/docs/ru/SUMMARY.md index 440f9195..523c2339 100644 --- a/docs/ru/SUMMARY.md +++ b/docs/ru/SUMMARY.md @@ -52,6 +52,7 @@ * [CAD-модели Клевера](models.md) * [Docker-контейнер с симулятором](sitl_docker.md) * [Установка ROS Melodic](ros-install.md) + * [Управление мультикоптером при помощи 4G связи](4g.md) * [Пакеты Клевера на Jetson Nano](jetson_nano.md) * [Пилотирование со смартфона](rc.md) * [Настройка сети RPi](network.md)