> For the complete documentation index, see [llms.txt](https://roboflot.gitbook.io/aero/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://roboflot.gitbook.io/aero/avtonomnye-bpla/ustanovka-i-nastroika-navio-2-i-raspberry-pi-3.md).

# Установка и настройка Navio 2 и Raspberry Pi 3

![](/files/-LA51kGMt_MktgwVX_YW)

### Компоненты

* 4-, 6- или 8-моторный коптер с двигателями, регуляторами оборотов, системой питания на 5 Вольт 2А, аккумулятором
* Контроллер автопилота [Navio 2](http://ardupilot.org/copter/docs/common-navio2-overview.html) с GPS антенной ([документация](https://docs.emlid.com/navio2/))
* Микро компьютер [Raspberry Pi 3](https://www.raspberrypi.org/products/) B+
* [Камера Raspicam V.2](https://www.raspberrypi.org/products/camera-module-v2/) с контактным шлейфом нужной длины
* SD-карта памяти на 32 Гб (класс 10)
* Датчик движения [PixFlow](http://ardupilot.org/copter/docs/common-px4flow-overview.html) с интерфейсом I2C
* Датчик ИК метки [IR-Lock](http://ardupilot.org/copter/docs/precision-landing-with-irlock.html) с интерфейсом I2C
* Лазерный дальномер [LightWare SF20](http://ardupilot.org/copter/docs/common-lightware-lw20-lidar.html)  с интерфейсом I2C
* 4G-модем с симкартой и подключенным интернетом

### Установка образа ОС на SD карту

Скачайте образ дистрибутива [Raspbian Strech](http://files.emlid.com/images/emlid-raspbian-20170922.img.xz) и запишите его на SD карту с помощью [Etcher](https://etcher.io) или любой другой подходящей для этого программы.

![](/files/-LA55ZI76fNqVVd7R6kV)

Для дальнейшей установки ПО, Raspberry необходим доступ в интернет. Подключить его к роутеру можно напрямую с помощью Ethernet кабеля или по WiFi. Для выполнения команд на микрокомпьютере необходимо соединиться с ним по SSH в консольном режиме по сети или подключить монитор и клавиатуру. Имя пользователя ***pi***, пароль ***raspberry***. IP-адрес Raspberry можно найти в панели управления вашего роутера (имя хоста navio).

### Настройка подключения к WiFi

Для того, чтобы Raspberry соединился с вашей WiFi сетью после включения, откройте на компьютере SD карту с записанным образом и найдите файл *wpa\_supplicant.conf.* Откройте его в текстовом редакторе и введите название и пароль сети.

```
network={
  ssid="название_wifi_сети"
  psk="пароль_wifi_сети"
}
```

Сохраните файл, переставьте SD-карту в Raspberry и подключите питание.

### Обновление и начальная конфигурация дистрибутива

Подключитесь в консольном режиме к микрокомпьютеру Raspberry.

```
ssh pi@IP_ADDRESS
```

Обновляем дистрибутив:

```
sudo apt-get update && sudo apt-get dist-upgrade -y
```

Расширяем файловую систему на весь объем SD-карты:

```
sudo raspi-config --expand-rootfs
```

и перегружаем&#x20;

```
sudo reboot
```

### Конфигурация Ardupilot

![](/files/-LA5C0U7AYrgDvviFNdN)

[Документация Ardupilot](http://ardupilot.org/copter/docs/connect-escs-and-motors.html#motor-order-diagrams) по конфигурации дронов.

После перезагрузки  заново соединяемся с Raspberry в консольном режиме.

Начальная конфигурация Ardupilot с помощью утилиты emlidtool:

```
sudo emlidtool ardupilot
```

![](/files/-LA5EvTQbt7tGio5jgm2)

![](/files/-LA5EybJijtsA4RbM1Pn)

Откройте файл конфигурации Arducopter

```
sudo nano /etc/default/arducopter 
```

В нем нужно определить локальный UDP порт для ретрансляции телеметрии в скрипт mavproxy (настройки mavproxy ниже).

```
TELEM1="-A udp:127.0.0.1:14550"
ARDUPILOT_OPTS="$TELEM1"
```

Сохраняем файл Ctrl+X, y. Обновляем конфигурацию:

```
sudo systemctl daemon-reload
```

Включаем автозапуск Arducopter при включении компьютера

```
sudo systemctl enable arducopter
```

Запускаем автопилот

```
sudo systemctl restart arducopter
```

И проверяем его состояние

```
sudo systemctl status arducopter
```

Если все нормально, в статусе должно быть **active (running)**

![](/files/-LA8Ov_0ApEv4IQ8D97B)

### Настройка MAVProxy

В дистрибутиве Emlid Raspbian Stretch уже установлен скрипт [MAVProxy](http://ardupilot.github.io/MAVProxy/html/getting_started/download_and_installation.html). Он используется для ретрансляции телеметрии одновременно в несколько портов и подключения к автопилоту стандартными приложениями, например [QGroundControl](http://qgroundcontrol.com) или [Mission Planner](http://ardupilot.org/planner/docs/common-install-mission-planner.html) (или любым другим по протоколу MAVLink через TCP), в локальной сети или через интернет (описание настройки ниже).

Запустим скрипт и проверим его работоспособность:

```
mavproxy.py --master=udp:127.0.0.1:14550 --out=tcpin:0.0.0.0:5762
```

Если MAVProxy успешно соединился с автопилотом, то в консоли появится информация об автопилоте и некоторых его параметрах:

![](/files/-LA8VbQxvBXx3bU5G7pd)

Не останавливая скрипт, подключитесь  к автопилоту через приложение QGroundContol, используя локальный IP-адрес Raspberry и порт 5762 (протокол TCP):

![](/files/-LA8WqtZGvzV_p7q89co)

После подключения необходимо провести калибровку датчиков и радиоуправления.

![](/files/-LA95tzwwCS2RVgQD2QH)

#### Автозапуск MAVProxy при включении компьютера

Чтобы скрипт MAVProxy запускался автоматически при включении компьютера, создадим файл автозапуска:

```
sudo nano /etc/systemd/system/mavproxy.service
```

с таким содержимым:

```
[Unit]
Description=MAVProxy Service
After=arducopter.service

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi
ExecStart=/usr/local/bin/mavproxy.py --master=udp:127.0.0.1:14550 --out=udpout:127.0.0.1:14551 --out=tcpin:0.0.0.0:5761  --out=tcpin:0.0.0.0:5762  --daemon
Restart=on-abort

[Install]
WantedBy=default.target
```

Включим автозапуск и обновим конифгурацию ОС

```
sudo systemctl enable mavproxy
sudo systemctl daemon-reload
```

Запуск сервиса MAVProxy

```
sudo systemctl start mavproxy
```

Проверка состояния

```
sudo systemctl status mavproxy
```

![](/files/-LA9CLLhwV91HS_vfetu)

После запуска MAVProxy слушает порты 5761 и 5762 на входящие TCP соединения. 5761 используется для соединения с приложениями управления в локальной сети, 5762 для удаленного соединения через интернет с помощью сервиса [remot3.it](https://www.remot3.it).

### Установка и настройка remot3.it

Web-сервис [remot3.it ](https://www.remot3.it/web/index.html)дает возможность получить временный статический адрес для устройств с динамическим IP-адресом. Это дает возможность подключиться удаленно через интернет к микрокомпьютеру с 4G модемом. Перед установкой и настройкой, необходимо зарегистрироваться на сайте.

Установка стандартного пакета из репозитория:

```
sudo apt-get install weavedconnectd
```

После установки, запускаем настройку сервиса:

```
sudo weavedinstaller
```

Настраиваем TCP порт 5762 для телеметрии и, при необходимости, SSH на 22й порт.

![](/files/-LA9NvcakshFimw3wGfG)

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

### Установка пакетов для видеотрансляции с камеры Raspicam

Установка пакетов

```
sudo apt-get update
sudo apt-get install autoconf automake libtool pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libraspberrypi-dev gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad
```

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

```
sudo apt-get install --fix-broken --assume-yes
sudo apt-get autoremove
sudo apt-get install -f && sudo dpkg --configure -a
```

Сборка и компиляция пакета  rpicamsrc

```
git clone https://github.com/roboflot-ru/gst-rpicamsrc.git rpicamsrc
cd rpicamsrc
chmod +x autogen.sh
./autogen.sh --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf/
make
sudo make install
```

Проверка камеры (создается видеофайл test.h264):

```
gst-launch-1.0 rpicamsrc bitrate=1000000 ! filesink location=test.h264
```

### NodeJS и PM2

```
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs build-essential
sudo npm install pm2 -g
```

### Установка и настройка скрипта Roboflot Copter

Скрипт отправляет сообщения между Ardupilot на бортовом компьютере и сервером Roboflot Aero (в обоих направлениях), а также запускает видеотрансляцию с бортовой камеры. Для настройки скрипта необходимы API-ключи для серверов телеметрии и видеотрансляции. Их можно скопировать в панели управления Roboflot Pilot в разделе управления БПЛА.

![](/files/-LADMaKpwRqzKYIyn0ZQ)

Копирование скрипта из репозитория на бортовой компьютер

```
git clone https://github.com/roboflot-ru/roboflot-copter.git copter
```

```
cd copter
```

Установка зависимостей

```
npm install
```

Откроем файл copter.js и пропишем API-ключи

```
nano copter.js
```

Впишите ключи из панели управления (вместо abcd1234)

```
const MAVPROXY_KEY = 'abcd1234';
const VIDEO_KEY = 'abcd1234';
```

Пробный запуск

```
node copter
```

После запуска скрипта в панели управления должна появится телеметрия и видеотрансляция.

#### Настройка автозапуска скрипта при включении
