docs: Add 4g setup instruction

This commit is contained in:
Alamoris
2019-12-30 18:16:48 +03:00
parent 5bef4a1e21
commit 085850cfdd
7 changed files with 131 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
docs/assets/4g/failsafe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

130
docs/ru/4g.md Normal file
View File

@@ -0,0 +1,130 @@
# Управление мультикоптером при помощи 4G связи
Мобильная связь четвертого поколения удобный инструмент для передачи и получения информации на большой скорости. В настоящее время область покрытия мобильных операторов позволяет подключаться к интернету на большой скорости практически из любой точки.
> **Hint** Для передачи каких либо данных с вашего коптера на наземную станцию(QGroundControl) и обратно, вам необходимо настроить собственную VPN сеть.
## Подключение Raspberry Pi к VPN
Подключите 4G модем с сим картой в USB слот вашей Raspberry Pi.
Сформируйте необходимые ключи VPN сети, для подключения Raspberry Pi и наземной станции.
Для того, чтобы подключить Raspberry Pi к вашей сети установите пакет *openvpn*:
```bash
sudo apt-get install openvpn
```
Перенесите ваши ключи в директорию */etc/openvpn/client*. Для удобства используйте графический SFTP интерфейс передачи данных.
Для включения режима клиента, необходимо активировать переданные вами ключи. Ключи могу быть сформированы в различных форматах, к примеру: *.ovpn*, *.conf*.
Инициализируйте сервис применяющий ваши ключи для подключения в режиме клиента:
```bash
sudo systemctl enable openvpn-client@config-name
```
Где *config-name* название вашего конфигурационного файла.
Если все сделано правильно, при каждом перезапуске образа, он автоматически будет подключаться к вашей сети.
> **Hint** Перед началом работы не забудьте настроить и включить VPN подключение на вашем ПК.
## Управление коптером через QGroundControl
Убедитесь, что ваш коптер и наземная станция подключены к вашей сети.
TODO: можно написать как пользоваться ifconfig'ом и сказать, на что смотреть
В QGroundControl, аналогично [подключению по wi-fi](gcs_bridge.md), настройте подключение к вашему коптеру по протоколу использующемуся в вашей сети: UDP/TCP.
Если у вас появилась связь с коптером, подключите какой-либо джойстик к вашему ПК. Роль джойстика может выполнять как радио пульты, такие как: FlySky-i6X, Taranis x7 и т.д., так и джойстики от приставок или любые их симуляции, которые распознаются системой.
Когда джойстик распознается системой, в колонке *Vehicle Setup* появится пункт *Joystick*, в случае, если он подсвечивается красным цветом, это значит, что требуется настройка.
Для калибровки джойстика, во вкладке *Joystick* нажмите кнопку *Calibrate* и следуйте инструкциям положения стиков пульта, указанных с левой стороны окна.
<div class="image-group">
<img src="../assets/4g/calibrate.png" width=300 class="zoom border">
<img src="../assets/4g/calibration_instruction.png" width=300 class="zoom border">
</div>
После успешной калибровки необходимо настроить полетные режимы. Чтобы это сделать несколько раз переключите необходимые тумблеры. В ходе переключения, вы увидите каналы, на которых работают те или иные тумблеры. В активном состоянии будет подсвечиваться один из перечисленных каналов.
<img src="../assets/4g/fly_modes.png" width=300 class="zoom center border">
> **Info** При выборе джойстика, обратите внимание на количество рабочих каналов и на поддержку его, в QGroundControl. Встречаются пульты поддерживающие всего 4 канала, что не удобно для такого типа управления.
Если изменения положения стиков отображается в окне QGgroundControl, вам остается только применить параметр, определяющий, что управление коптером происходит с помощью джойстика, а не радиоаппаратуры:
`COM_RC_IN_MODE` - Joystick/No RC Checks
Поскольку мобильная связь не всегда бывает стабильна, рекомендуется увеличить таймаут на потерю сигнала управления, до 5 секунд.
<img src="../assets/4g/failsafe.png" width=300 class="zoom center border">
Коптер готов к полету!
> **Hint** Если коптер не армится при переведении левого стика в нижний правый угол, установите состояние Arm/Disarm на один из тумблеров.
## Передача видео с камеры в QGroundControl
Передача видео возможна практически с любой камеры подключенной к вашей Raspberry Pi. Для этого вам потребуется установить пакет *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 проверьте, что начался стрим изображения.
<img src="../assets/4g/video_stream.png" width=300 class="zoom center border">
## Автоматизация запуска передачи видео
Создайте файл и добавьте в него командную строку:
```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
```

View File

@@ -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)