> For the complete documentation index, see [llms.txt](https://tangerine-2.gitbook.io/red_horizon/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tangerine-2.gitbook.io/red_horizon/nastroika/raspberry-pi/nastroika-launch-failov.md).

# Настройка launch-файлов

## Настройка расположения камеры <a href="#frame" id="frame"></a>

Для работы с основной камерой необходимо убедиться что она включена в файле `~/catkin_ws/src/clover/clover/launch/clover.launch`:

```xml
<arg name="main_camera" default="true"/>
```

Расположение и ориентация камеры [задается в файле](https://tangerine-2.gitbook.io/red_horizon/nastroika/raspberry-pi/komandnaya-stroka) `~/catkin_ws/src/clover/clover/launch/main_camera.launch`:

```xml
<arg name="direction_z" default="down"/> <!-- direction the camera points: down, up -->
<arg name="direction_y" default="backward"/> <!-- direction the camera cable points: backward, forward -->
```

Для того, чтобы задать ориентацию, необходимо установить:

* направление обзора камеры `direction_z`: вниз (`down`) или вверх (`up`);
* направление, в которое указывает шлейф камеры `direction_y`: назад (`backward`) или вперед (`forward`).

## Настройка Aruco и Optical Flow <a href="#nastroika" id="nastroika"></a>

Аргумент `aruco` в файле `~/catkin_ws/src/clover/clover/launch/clover.launch` должен быть в значении `true`:

```xml
<arg name="aruco" default="true"/>
```

Для включения распознавания отдельных маркеров и карт маркеров аргументы `aruco_detect` и `aruco_map` в файле `~/catkin_ws/src/clover/clover/launch/aruco.launch` должны быть в значении `true`:

```xml
<arg name="aruco_detect" default="true"/>
<arg name="aruco_map" default="true"/>
```

Для включения передачи координат в полётный контроллер по механизму VPE, аргумента `aruco_vpe` должен быть в значении `true`:

```xml
<arg name="aruco_vpe" default="true"/>
```

Для правильной работы в этом же файле также должны быть выставлены аргументы:

```xml
<arg name="placement" default="floor"/> <!-- расположение маркеров, см. далее -->
<arg name="length" default="0.33"/>     <!-- размер маркеров в метрах (не включая белую рамку) -->
```

Значение аргумента `placement` следует выставлять следующим образом:

* если *все* маркеры наклеены на полу (земле), выставить значение `floor`;
* если *все* маркеры наклеены на потолке, выставить значение `ceiling`;
* в противном случае удалить строку с параметром.

Если некоторые маркеры имеют размер, отличный значения `length`, их размер может быть переопределен с помощью параметра `length_override` ноды `aruco_detect`:

```xml
<param name="length_override/3" value="0.1"/>    <!-- маркер c id 3 имеет размер 10 см -->
<param name="length_override/17" value="0.25"/>  <!-- маркер c id 17 имеет размер 25 см -->
```

Включите Optical Flow в файле `~/catkin_ws/src/clover/clover/launch/clover.launch`:

```xml
<arg name="optical_flow" default="true"/>
```

{% hint style="info" %}
Для работы Optical Flow необходим подключенный и настроенный лазерный дальномер.
{% endhint %}

Отредактируйте файл `~/catkin_ws/src/clover/clover/launch/clover.launch` так, чтобы драйвер VL53L1X был включен:

```xml
<arg name="rangefinder_vl53l1x" default="true"/>
```

{% hint style="info" %}
По умолчания драйвер дальномера передает данные в Pixhawk (через топик `/rangefinder/range`). Для просмотра данных из топика используйте команду:

<pre class="language-bash"><code class="lang-bash"><strong>rostopic echo /rangefinder/range
</strong></code></pre>

{% endhint %}

## Настройка карты маркеров

Карта загружается из текстового файла, каждая строка которого имеет следующий формат:

```
id_маркера размер_маркера x y z угол_z угол_y угол_x
```

Где `угол_N` – это угол поворота маркера вокруг оси N в радианах.

Файлы карт располагаются в каталоге `~/catkin_ws/src/clover/aruco_pose/map`. Название файла с картой задается в аргументе `map`:

```xml
<arg name="map" default="map.txt"/>
```

Смотрите примеры карт маркеров в [`вышеуказанном каталоге`](https://github.com/CopterExpress/clover/tree/master/aruco_pose/map).

Файл карты может быть сгенерирован с помощью инструмента `genmap.py`:

```bash
rosrun aruco_pose genmap.py length x y dist_x dist_y first -o test_map.txt
```

Где `length` – размер маркера, `x` – количество маркеров по оси *x*, `y` - количество маркеров по оси *y*, `dist_x` – расстояние между центрами маркеров по оси *x*, `y` – расстояние между центрами маркеров по оси *y*, `first` – ID первого (левого нижнего) маркера, `test_map.txt` – название файла с картой. Дополнительный ключ `--bottom-left` позволяет нумеровать маркеры с левого нижнего угла.

Пример:

```bash
rosrun aruco_pose genmap.py 0.33 2 4 1 1 0 -o test_map.txt
```

Дополнительную информацию по утилите можно получить по ключу `-h`: `rosrun aruco_pose genmap.py -h`.

{% hint style="info" %}
После обновления карты маркеров следует перезагрузить RPi.

Для контроля карты, по которой в данный момент коптер осуществляет навигацию, можно просмотреть содержимое топика `/aruco_map/image`. Через браузер его можно просмотреть при помощи [web\_video\_server](https://clover.coex.tech/ru/web_video_server.html) по ссылке <http://192.168.11.1:8080/snapshot?topic=/aruco_map/image> .
{% endhint %}

## Настройка led-ленты

1. Для работы с лентой подключите ее к питанию +5v – 5v, земле GND – GND и сигнальному порту DIN – GPIO21. Обратитесь [к инструкции по сборке](https://clover.coex.tech/ru/assemble_4_2.html#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-led-%D0%BB%D0%B5%D0%BD%D1%82%D1%8B) для подробностей.
2. Включите поддержку LED-ленты в файле `~/catkin_ws/src/clover/clover/launch/clover.launch`:

```xml
 <arg name="led" default="true"/>
```

1. Настройте параметры подключения ленты *ws281x* в файле `~/catkin_ws/src/clover/clover/launch/led.launch`. Необходимо ввести верное количество светодиодов в ленте и GPIO-пин, использованный для подключения (если он отличается от *GPIO21*):

```xml
 <arg name="led_count" default="58"/> <!-- количество светодиодов в ленте -->
 <arg name="gpio_pin" default="21"/> <!-- GPIO-пин для подключения -->
```
