Merge branch 'master' into simple-offboard-refactored

This commit is contained in:
Oleg Kalachev
2018-03-19 20:45:20 +03:00
235 changed files with 769 additions and 563 deletions

View File

@@ -1,73 +1,68 @@
Клевер
======
# CLEVER
<img src="assets/clever.jpg" align="right" width="300px" alt="Клевер">
<img src="docs/assets/clever3.png" align="right" width="300px" alt="CLEVER drone">
«Клевер» — это учебный конструктор программируемого квадрокоптера, состоящего из популярных открытых компонентов, а также набор необходимой документации и библиотек для работы с ним.
CLEVER is an educational programmable drone kit consisting of an unassembled quadcopter, open source software and documentation. The kit includes Pixhawk/Pixracer autopilot running PX4 firmware, Raspberry Pi 3 as companion computer, a camera for computer vision navigation as well as additional sensors and peripheral devices.
Набор включает в себя полетный контроллер PixHawk/PixRacer с полетным стеком PX4, Raspberry Pi 3 в качестве управлящего бортового компьютера, модуль камеры для реализации полетов с использованием компьютерного зрения, а также набор различных датчиков и другой периферии.
Copter Express has implemented a large number of different autonomous drone projects using exactly the same platform: [automated pizza delivery](https://www.youtube.com/watch?v=hmkAoZOtF58) in Samara and Kazan, coffee delivery in Skolkovo Innovation Center, [autonomous quadcopter with charging station](https://www.youtube.com/watch?v=RjX6nUqw1mI) for site monitoring and security, winning drones on [Robokross-2016](https://www.youtube.com/watch?v=dGbDaz_VmYU) and [Robokross-2017](https://youtu.be/AQnd2CRczbQ) competitions and many others.
На базе точно такой же платформы были созданы многие «большие» проекты компании Copter Express, например, дроны для [пиар-акций по автономной доставке пиццы](https://www.youtube.com/watch?v=hmkAoZOtF58) (Самара, Казань); дрон-доставщик кофе в Сколково, мониторинговый дрон с зарядной станцией, дроны-победители на полевых испытаниях «[Робокросс-2016](https://www.youtube.com/watch?v=dGbDaz_VmYU)», «[Робокросс-2017](https://youtu.be/AQnd2CRczbQ)» и многие другие.
**The main documentation in Russian is available on our Gitbook:**
**https://copterexpress.gitbooks.io/clever/content/**
Для того, чтобы научиться собирать, настраивать, пилотировать и программировать автономный дрон «Клевер», воспользуйтесь этим учебником.
Use it to learn how to assemble, configure, pilot and program autonomous CLEVER drone.
Основная документация
---------------------
## Preconfigured RPi 3 image
https://copterexpress.gitbooks.io/clever/content/
Preconfigured image for Raspberry Pi 3 with installed and configured software, ready to fly, is available [here](https://copterexpress.gitbooks.io/clever/content/docs/microsd_images.html).
**Образ ОС** для RPi 3 с предустановленным и преднастроенным ПО можно скачать [здесь](https://copterexpress.gitbooks.io/clever/content/docs/microsd_images.html).
Образ включает в себя:
Image includes:
* Raspbian Stretch
* ROS Kinetic
* Настроенную работу с сетью
* Configured networking
* OpenCV
* mavros
* Набор ПО для работы с Клевером
* CLEVER software bundle for autonomous drone control
[Описание API](https://copterexpress.gitbooks.io/clever/content/docs/simple_offboard.html) для автономных полетов.
API description in Russian for autonomous flights is available [here](https://copterexpress.gitbooks.io/clever/content/docs/simple_offboard.html).
Ручная установка
---------
## Manual installation
Установить ROS Kinetic согласно [инструкциям](http://wiki.ros.org/kinetic/Installation).
Install ROS Kinetic according to the [documentation](http://wiki.ros.org/kinetic/Installation).
Склонировать репозиторий в папку `/home/pi/catkin_ws/src/clever`:
Clone repo to directory `/home/pi/catkin_ws/src/clever`:
```bash
cd ~/catkin_ws/src
git clone https://github.com/CopterExpress/clever.git clever
```
Пересобрать ROS-пакеты:
Build ROS packages:
```bash
cd ~/catkin_ws
catkin_make -j1
```
Включить сервис roscore (если он не включен):
Enable systemd service `roscore` (if not enabled):
```bash
sudo systemctl enable /home/pi/catkin_ws/src/clever/deploy/roscore.service
sudo systemctl start roscore
```
Включить сервис clever:
Enable systemd service `clever`:
```bash
sudo systemctl enable /home/pi/catkin_ws/src/clever/deploy/clever.service
sudo systemctl start clever
```
Зависимости
-----------
### Dependencies
[ROS Kinetic](http://wiki.ros.org/kinetic).
Необходимые для работы ROS-пакеты:
Necessary ROS packages:
* `opencv3`
* `mavros`
@@ -76,8 +71,6 @@ sudo systemctl start clever
* `cv_camera`
* `nodelet`
* `dynamic_reconfigure`
* `bondcpp`, ветка `master`
* `bondcpp`, branch `master`
* `roslint`
* `rosserial`
TODO: внести в package.xml

View File

@@ -1,45 +0,0 @@
# Summary
* [Введение](README.md)
* [Сборка](docs/assemble.md)
* [Первоначальная настройка](docs/setup.md)
* [Полетные режимы](docs/modes.md)
* [Raspberry Pi](docs/raspberry.md)
* [Образ операционной системы на RPi](docs/microsd_images.md)
* [Подключение Raspberry Pi к PixHawk](docs/connection.md)
* [Подключение по Wi-Fi](docs/wifi.md)
* [Работа с QGroundControl через Wi-Fi](docs/gcs_bridge.md)
* [SSH-доступ](docs/ssh.md)
* [Неисправности радиоаппаратуры](docs/radioerrors.md)
* [Безопасность](docs/safety.md)
* [Техника безопасности по пайке](docs/tb.md)
* [Просмотр видеострима с камер](docs/web_video_server.md)
* [Работа с ROS](docs/ros.md)
* [MAVROS](docs/mavros.md)
* [Автономный полет в OFFBOARD](docs/simple_offboard.md)
* [Навигация по ArUco-маркерам](docs/aruco.md)
* [Взаимодействие с Arduino](docs/arduino.md)
* [Системы координат](docs/frames.md)
* [Работа с камерой \(компьютерное зрение\)](docs/camera.md)
* [Ориентация камеры](docs/camera_frame.md)
* [Визуализация с помощью rviz](docs/rviz.md)
* [Работа с SITL](docs/sitl.md)
* [Подключение GPS](docs/gps.md)
* [Использование 3G-модема](docs/3g.md)
* [Примеры программ](docs/snippets.md)
* Учебник
* [Урок 1](docs/les1.md)
* [Урок 2](docs/les2.md)
* [Урок 7](docs/les7.md)
* [Урок 8](docs/les8.md)
* [Урок 9](docs/les9.md)
* [Урок 11](docs/les11.md)
* [Урок 13](docs/les13.md)
* [Урок 15](docs/les15.md)
* [Урок 16](docs/les16.md)
* [Другое](drugoe.md)
* [CopterHack-2017](docs/copterhack2017.md)
* [Прошивка ESC контроллеров с помощью Arduino](docs/esc_firmware.md)
* [Работа со светодиодной лентой](docs/rabota-so-svetodiodnoi-lentoi.md)
* [Полезные ссылки](docs/links.md)

View File

@@ -3,6 +3,7 @@
"description": "Конструктор квадрокоптера «Клевер»",
"author": "Copter Express",
"language": "ru",
"root": "docs/",
"plugins": ["youtube", "richquotes", "disqus", "versions"],
"pluginsConfig": {
"disqus": {

View File

@@ -17,6 +17,7 @@
<!-- gcs bridge -->
<param name="gcs_url" value="tcp-l://0.0.0.0:5760" if="$(eval gcs_bridge == 'tcp')"/>
<param name="gcs_url" value="udp://@192.168.11.14:14550" if="$(eval gcs_bridge == 'udp')"/> <!-- TODO: fix -->
<param name="gcs_url" value="udp-b://192.168.11.1:14550@" if="$(eval gcs_bridge == 'udp-b')"/>
<param name="gcs_url" value="" if="$(eval not gcs_bridge)"/>
<!-- default px4 params -->

30
docs/README.md Normal file
View File

@@ -0,0 +1,30 @@
Клевер
======
<img src="assets/clever3.png" align="right" width="300px" alt="Клевер">
«Клевер» — это учебный конструктор программируемого квадрокоптера, состоящего из популярных открытых компонентов, а также набор необходимой документации и библиотек для работы с ним.
Набор включает в себя полетный контроллер PixHawk/PixRacer с полетным стеком PX4, Raspberry Pi 3 в качестве управлящего бортового компьютера, модуль камеры для реализации полетов с использованием компьютерного зрения, а также набор различных датчиков и другой периферии.
На базе точно такой же платформы были созданы многие «большие» проекты компании Copter Express, например, дроны для [пиар-акций по автономной доставке пиццы](https://www.youtube.com/watch?v=hmkAoZOtF58) (Самара, Казань); дрон-доставщик кофе в Сколково, мониторинговый дрон с зарядной станцией, дроны-победители на полевых испытаниях «[Робокросс-2016](https://www.youtube.com/watch?v=dGbDaz_VmYU)», «[Робокросс-2017](https://youtu.be/AQnd2CRczbQ)» и многие другие.
Для того, чтобы научиться собирать, настраивать, пилотировать и программировать автономный дрон «Клевер», воспользуйтесь этим учебником.
Образ для Raspberry Pi
----------------------
**Образ ОС** для RPi 3 с предустановленным и преднастроенным ПО можно скачать [здесь](microsd_images.html).
Образ включает в себя:
* Raspbian Stretch
* ROS Kinetic
* Настроенную работу с сетью
* OpenCV
* mavros
* Набор ПО для работы с Клевером
[Описание API](simple_offboard.html) для автономных полетов.
Исходный код сборщика образа и всего ПО можно найти на [GitHub](https://github.com/CopterExpress/clever).

45
docs/SUMMARY.md Normal file
View File

@@ -0,0 +1,45 @@
# Summary
* [Введение](README.md)
* [Сборка](assemble.md)
* [Первоначальная настройка](setup.md)
* [Полетные режимы](modes.md)
* [Raspberry Pi](raspberry.md)
* [Образ операционной системы на RPi](microsd_images.md)
* [Подключение Raspberry Pi к PixHawk](connection.md)
* [Подключение по Wi-Fi](wifi.md)
* [Работа с QGroundControl через Wi-Fi](gcs_bridge.md)
* [SSH-доступ](ssh.md)
* [Неисправности радиоаппаратуры](radioerrors.md)
* [Безопасность](safety.md)
* [Техника безопасности по пайке](tb.md)
* [Просмотр видеострима с камер](web_video_server.md)
* [Работа с ROS](ros.md)
* [MAVROS](mavros.md)
* [Автономный полет в OFFBOARD](simple_offboard.md)
* [Примеры программ](snippets.md)
* [Навигация по ArUco-маркерам](aruco.md)
* [Взаимодействие с Arduino](arduino.md)
* [Системы координат](frames.md)
* [Работа с камерой \(компьютерное зрение\)](camera.md)
* [Ориентация камеры](camera_frame.md)
* [Визуализация с помощью rviz](rviz.md)
* [Работа с SITL](sitl.md)
* [Подключение GPS](gps.md)
* [Использование 3G-модема](3g.md)
* Учебник
* [Урок 1](les1.md)
* [Урок 2](les2.md)
* [Урок 7](les7.md)
* [Урок 8](les8.md)
* [Урок 9](les9.md)
* [Урок 11](les11.md)
* [Урок 13](les13.md)
* [Урок 15](les15.md)
* [Урок 16](les16.md)
* [Другое](drugoe.md)
* [CopterHack-2017](copterhack2017.md)
* [Прошивка ESC контроллеров с помощью Arduino](esc_firmware.md)
* [Работа со светодиодной лентой](rabota-so-svetodiodnoi-lentoi.md)
* [Полезные ссылки](links.md)

View File

@@ -60,7 +60,7 @@ for(int i=0; i<8; i++) {
Работа с Клевером
---
Набор сервисов и топиков аналогичен обычному набору в [simple_offboard](/docs/simple_offboard.md) и [mavros](/docs/mavros.md).
Набор сервисов и топиков аналогичен обычному набору в [simple_offboard](simple_offboard.md) и [mavros](mavros.md).
Пример программы, контролирующей коптер по позиции, с использованием сервисов `navigate` и `set_mode`:
@@ -168,7 +168,7 @@ void loop()
Получение телеметрии
---
С Arduino можно использовать [сервис](/docs/simple_offboard.md) `get_telemetry`. Для этого надо объявить его по аналогии с сервисами `navigate` и `set_mode`:
С Arduino можно использовать [сервис](simple_offboard.md) `get_telemetry`. Для этого надо объявить его по аналогии с сервисами `navigate` и `set_mode`:
```cpp
#include <ros.h>

View File

@@ -5,7 +5,7 @@
Пример ArUco-маркеров:
![](/assets/markers.jpg)
![](assets/markers.jpg)
> **Hint** При печати визуальных маркеров необходимо использовать максимально матовую бумагу. Глянцевая бумага будет бликовать на свету, сильно ухудшая качество распознавания.
@@ -13,11 +13,11 @@
Модуль `aruco_pose` позволяет восстанавливать позицию коптера относительно карты ArUco-маркеров и сообщать ее полетному контролеру, используя механизм [Vision Position Estimation](https://dev.px4.io/en/ros/external_position_estimation.html).
При наличии источника положения коптера по маркерам появляется возможность производить точную автономную indoor-навигацию по позициям при помощи модуля [simple\_offboard](/docs/simple_offboard.md).
При наличии источника положения коптера по маркерам появляется возможность производить точную автономную indoor-навигацию по позициям при помощи модуля [simple\_offboard](simple_offboard.md).
### Включение
Необходимо убедиться, что в launch-файле Клевера \(`~/catkin_ws/src/clever/clever/launch/clever.launch`\) включен запуск aruco\_pose и [камеры для компьютерного зрения](/docs/camera.md):
Необходимо убедиться, что в launch-файле Клевера \(`~/catkin_ws/src/clever/clever/launch/clever.launch`\) включен запуск aruco\_pose и [камеры для компьютерного зрения](camera.md):
```xml
<arg name="main_camera" default="true"/>
@@ -80,9 +80,9 @@ sudo systemctl restart clever
Нумерация маркеров ведется с левого верхнего угла поля.
Для контроля карты, по которой в данный момент коптер осуществляет навигацию, можно просмотреть содержимое топика `aruco_pose/map_image`. Через браузер его можно просмотреть при помощи [web\_video\_server](/docs/web_video_server.md) по ссылке [http://192.168.11.1:8080/snapshot?topic=/aruco\_pose/map\_image](http://192.168.11.1:8080/snapshot?topic=/aruco_pose/map_image):
Для контроля карты, по которой в данный момент коптер осуществляет навигацию, можно просмотреть содержимое топика `aruco_pose/map_image`. Через браузер его можно просмотреть при помощи [web\_video\_server](web_video_server.md) по ссылке [http://192.168.11.1:8080/snapshot?topic=/aruco\_pose/map\_image](http://192.168.11.1:8080/snapshot?topic=/aruco_pose/map_image):
![](/assets/Снимок экрана 2017-11-27 в 23.20.49.png)
![](assets/Снимок экрана 2017-11-27 в 23.20.49.png)
При полетах необходимо убедиться, что наклеенные на пол метки соответствуют карте.
@@ -102,11 +102,11 @@ _Примечание_: указанное выше определение пр
Таким образом, нулевой является левая нижня точка маркерного поля. Угол по рысканью считается равным 0, когда коптер смотрит направо \(по оси x\).
![](/assets/aruco-frame.png)
![](assets/aruco-frame.png)
### Настройка полетного контролера
Для правильной работы Vision Position Estimation необходимо \(через [QGroundControl](/docs/gcs_bridge.md)\) убедиться, что:
Для правильной работы Vision Position Estimation необходимо \(через [QGroundControl](gcs_bridge.md)\) убедиться, что:
* Для PixHawk: Установлена прошивка с LPE \(local position estimator\). Для PixRacer: параметр `SYS_MC_EST_GROUP` установлен в `local_position_estimator, attitude_estimator_q`.
* В параметре `LPE_FUSION` включены **только** флажки `vision position`, `vision yaw`, `land detector`. Итоговое значение _28_.
@@ -120,15 +120,15 @@ _Примечание_: указанное выше определение пр
* `LNDMC_THR_RANGE` = 0.5
* `LNDMC_Z_VEL_MAX` = 1 m/s
Для простоты настройки можно воспользоваться готовым файлом настроек для [Clever 2](https://github.com/CopterExpress/clever/blob/master/assets/Clever2LPE_160118.params) или для [Clever 3](https://github.com/CopterExpress/clever/blob/master/assets/Clever3_LPE_020218.params) и вгрузить его в контроллер с помощью меню Tools - Load from file из раздела Parameters в QGroundControl.
Для простоты настройки можно воспользоваться готовым файлом настроек для [Clever 2](https://github.com/CopterExpress/clever/blob/masterassets/Clever2LPE_160118.params) или для [Clever 3](https://github.com/CopterExpress/clever/blob/masterassets/Clever3_LPE_020218.params) и вгрузить его в контроллер с помощью меню Tools - Load from file из раздела Parameters в QGroundControl.
![](/assets/Screenshot from 2018-02-27 22-30-50.png)
![](assets/Screenshot from 2018-02-27 22-30-50.png)
### Полет
При правильной настройке коптер начнет удерживать позицию по VPE \(в [режимах](/docs/modes.md) `POSCTL` или `OFFBOARD`\) автоматически.
При правильной настройке коптер начнет удерживать позицию по VPE \(в [режимах](modes.md) `POSCTL` или `OFFBOARD`\) автоматически.
Для [автономных полетов](/docs/simple_offboard.md) можно будет использовать функции `navigate`, `set_position`, `set_velocity`. Для полета в определенные координаты маркерного поля необходимо использовать фрейм `aruco_map`:
Для [автономных полетов](simple_offboard.md) можно будет использовать функции `navigate`, `set_position`, `set_velocity`. Для полета в определенные координаты маркерного поля необходимо использовать фрейм `aruco_map`:
```python
# Вначале необходимо взлететь, чтобы коптер увидел карту меток
@@ -141,15 +141,15 @@ time.sleep(5)
navigate(2, 2, 2, speed=1, frame_id='aruco_map', update_frame=True) # полет в координату 2:2, высота 3 метра
```
См. [другие функции](/docs/simple_offboard.md) simple offboard.
См. [другие функции](simple_offboard.md) simple offboard.
### Расположение маркеров на потолке
> **Info** Образ версии &gt;0.2.
![](/assets/IMG_4175.JPG)
![](assets/IMG_4175.JPG)
Для навигации по маркерам, расположенным на потолке, необходимо поставить основную камеру так, чтобы она смотрела вверх и [установить соответствующий фрейм камеры](/docs/camera_frame.md).
Для навигации по маркерам, расположенным на потолке, необходимо поставить основную камеру так, чтобы она смотрела вверх и [установить соответствующий фрейм камеры](camera_frame.md).
Чтобы задавать карту маркеров в "перевернутой" системе координат, необходимо изменить параметр `aruco_orientation` в файле `~/catkin_ws/src/clever/clever/aruco.launch`:

View File

@@ -1,12 +1,12 @@
Инструкция по сборке конструктора Клевер 2
==========================================
![Clever](../assets/Clevermain.png)
![Clever](assets/Clevermain.png)
Состав конструктора
-------------------
![Explosion](../assets/explosion.png)
![Explosion](assets/explosion.png)
* Рама центральная x2.
* Рама дополнительная х4.
@@ -14,14 +14,14 @@
* Ножки x8.
* Защита для лучей x8.
* Защита пропеллеров x16.
* Защита боковая x16.
* Защита боковая x16.
* Пропеллер пластиковый Dalprop 5045 x4.
* Бесколлекторный электродвигатель Racerstar BR2205 2300kV x4.
* Регуляторы хода ESC, DYS XSD20А x4.
* Разъем силовой XT60 pin x1.
* Разъем силовой XT60 socket x1.
* Трехпроводной шлейф “мама-мама” x2.
* Провод медный многожильный с силиконовой изоляцией 14AWG (красный, черный), длина 50 см.
* Провод медный многожильный с силиконовой изоляцией 14AWG (красный, черный), длина 50 см.
* Плата распределения питания PDB BeeRotor Power Distribution Board V2.0 x1.
* Аккумуляторная батарея (АКБ) Li-ion 18650 x8.
* Зарядное устройство EFEST Luc V4 Li-lon x1.
@@ -33,7 +33,7 @@
* Зарядное устройство EFEST LUC V4 x1.
* Провод Micro USB - USB x1
* Батарейный отсек 18650 li-Ion x1
* Провод медный многожильный с силиконовой изоляцией 18AWG (красный, черный), длина 100 см.
* Провод медный многожильный с силиконовой изоляцией 18AWG (красный, черный), длина 100 см.
* Батарейка АА х4
* Джампер, Bind-разъем
@@ -76,12 +76,12 @@
16. Ручка A (VrA).
17. Ручка B (VrB).
![radio Transmitter](../assets/radioTransmitter.png)
![radio Transmitter](assets/radioTransmitter.png)
Дополнительное оборудование
---------------------------
#### Данное оборудование не входит в состав конструктора Клевер 2, но оно необходимо для реализации сборочного процесса
#### Данное оборудование не входит в состав конструктора Клевер 2, но оно необходимо для реализации сборочного процесса
1. Паяльник
2. Канифоль/ Флюс (нейтральный)
@@ -92,10 +92,10 @@
7. Канцелярский нож
8. Мультиметр
![Дополнительное оборудование](../assets/addEqipment.jpg)
![Дополнительное оборудование](assets/addEqipment.jpg)
![Техника безопасности при пайке](../docs/tb.md)
![Техника безопасности при пайке](tb.md)
Порядок сборки
--------------
@@ -104,7 +104,7 @@
* Распаковать моторы. Используя плоскогубцы, укоротить провода на моторах, обрезать половину длины (оставив 25 мм).
![Мотор brrc2205](../assets/brrc2205.png)
![Мотор brrc2205](assets/brrc2205.png)
Зачистить
* снять 2мм термоизоляции с конца провода не повредив медные жилы.
@@ -112,41 +112,41 @@
Скрутить провода.
Залудить
* Нанести флюс на оголенную часть провода.
* Нанести флюс на оголенную часть провода.
* Покрыть припоем, используя пинцет.
![Лужение](../assets/zap.jpg)
![Лужение](assets/zap.jpg)
#### Закрепить мотор на луче
* Установить мотор на сторону луча с гравировкой.
* Прикрепить моторы к лучам винтами М3х8, используя отвертку.
![Закрепить мотор на луче](../assets/brrc2205on.png)
![Закрепить мотор на луче](assets/brrc2205on.png)
* Лучи с моторами необходимо расположить согласно схеме. Стрелками указано направление вращения моторов.
![Вращение моторов](../assets/brrc2205ondeck.png)
![Вращение моторов](assets/brrc2205ondeck.png)
//указать стрелками направление вращения на моторах
#### Залудить три контактные площадки регулятора
* Нанести флюс
* Нанести флюс
* Нанести припой
Чтобы припой аккуратно заполнил всю площадку, необходимо прогреть площадку регулятора. Для этого нужно удерживать жало паяльника на контактной плащадке в течение 2 сек (или больше, если потребуется)
![Лужение контактных площадок регуляторов](../assets/escDYSzap.png)
![Лужение контактных площадок регуляторов](assets/escDYSzap.png)
* Повторить данную операцию для оставшихся трех регуляторов
#### Припаять провода моторов к регуляторам
Припаять ранее приготовленные провода моторов к контактным площадкам регуляторов.
![Припаять провода моторов к регуляторам](../assets/solderingBrrc2205ondeckTOescDYSzap.png)
![Припаять провода моторов к регуляторам](assets/solderingBrrc2205ondeckTOescDYSzap.png)
* Повторить данную операцию для оставшихся трех регуляторов
### Монтаж разъемов питания
![Статья про силовые и управляющие цепи](/power.md)
![Статья про силовые и управляющие цепи](power.md)
#### Подготовка проводов для силовых разъемов XT60
@@ -155,13 +155,13 @@
* Длина 7 см (Для силового разъема XT60 pin) - 1 красный, 1 черный
* Длина 9 см (Для силового разъема XT60 socket) - 1 красный, 1 черный
![Подготовка проводов для силового разъема](../assets/cutwire14AWG.jpg)
![Подготовка проводов для силового разъема](assets/cutwire14AWG.jpg)
#### Подготовка силовых разъемов питания XT60 pin и XT60 socket
![Статья про силовые разъемы и их обозначения](../notes/powerConnection.md)
![Силовой разъем XT60](../assets/xt60pinsocket.jpg)
![Силовой разъем XT60](assets/xt60pinsocket.jpg)
1. Под разъем XT60 pin залудить два силовых провода красный и чёрный 14AWG длиной 7 см.
2. Залудить контактные площадки разъема XT60 pin.
@@ -171,7 +171,7 @@
6. Надеть термоусадку ф5 на провода так, чтобы она закрывала контактные площадки проводов с XT60 .
7. Усадить термоусадку феном.
![Монтаж разъемов XT60](../assets/mountxt60pinsocket.png)
![Монтаж разъемов XT60](assets/mountxt60pinsocket.png)
8. Повторить процедуру для разъема XT60 socket.
@@ -183,7 +183,7 @@
3. Убрать 3-й (оранжевый) провод из разъема, за ненадобностью.
4. Длина оставшихся черного и красного проводов 10-12 см.
![Монтаж разъема 5В](../assets/mount5vconnector.png) *было бы круто, если делать такие картинки и в формате гифки
![Монтаж разъема 5В](assets/mount5vconnector.png) *было бы круто, если делать такие картинки и в формате гифки
### Монтаж платы распределения питания
@@ -191,31 +191,31 @@
#### Предпаячная проверка
![Статья про прозвонку](/notes/testConnection.md)
![Статья про прозвонку](testConnection.md)
![Предпаячная проверка](../assets/startPDBtest.jpg)
![Предпаячная проверка](assets/startPDBtest.jpg)
Прозвонить следующие цепи на НЕЗАМКНУТОСТЬ (отсутствие звукового сигнала мультиметра):
* “BAT+” и “BAT-”
* “BAT+” и “BAT-”
* “12V” и “GND”
* “5V” и “GND”
Прозвонить следующие цепи на ЗАМКНУТОСТЬ (появление звукового сигнала мультиметра):
* “BAT-” c каждым контактом, обозначенным “-” и “GND”
* “BAT-” c каждым контактом, обозначенным “-” и “GND”
* “BAT+”, с каждым контактом, обозначенным “+”
#### Залудить контактные площадки платы питания
1. ![Залудить*](../notes/zap.md) контактные площадки платы питания.
1. ![Залудить*](zap.md) контактные площадки платы питания.
2. С помощью мультиметра проверить отсутствие контактного замыкания на плате (прозвонить)
![Постпаячная проверка](../assets/zapPDBtest.jpg)
![Постпаячная проверка](assets/zapPDBtest.jpg)
Чтобы припой аккуратно заполнил всю площадку, необходимо её прогреть. Для этого нужно удерживать жало паяльника на контактной плащадке в течение 2 сек (или больше, если потребуется)
#### Пайка силового разъема питания XT60
Припаять разъем для АКБ, соблюдая полярность на контактных площадках.
![Пайка XT60 на PDB](../assets/solderingxt60socketTOpdb.png)
![Пайка XT60 на PDB](assets/solderingxt60socketTOpdb.png)
ВАЖНО о полярности
* красный провод - это “+”
@@ -225,12 +225,12 @@
Припаять разъем 5В, соблюдая полярность на контактных площадках.
(на изображении: красный провод - это питание “+”)
![Пайка 5В на PDB](../assets/soldering5VTOpdb.png)
![Пайка 5В на PDB](assets/soldering5VTOpdb.png)
### Монтаж отсека АКБ
#### Подготовка перемычек (3 шт.)
![Перемычка](../assets/jumper.png)
![Перемычка](assets/jumper.png)
* Отрезать силовой провод длиной 2 см.
* Зачистить с обеих сторон.
@@ -240,7 +240,7 @@
* Прозвонить мультиметром. В случае необходимости зачистить наждачной бумагой.
#### Подготовка отсека АКБ
![Подготовка отсека АКБ](../assets/casebattery.png)
![Подготовка отсека АКБ](assets/casebattery.png)
* Приклеить наклейки с разметкой внутрь отсека АКБ, в соответствии с полярностью.
* Приклеить ленту из скотча на дно отсека.
@@ -248,34 +248,34 @@
### Монтаж платы распределения питания
* Установить плату питания на раму винтами М3х8 и пластиковыми гайками.
![Установка платы PDB](../assets/mountPDB.png)
![Установка платы PDB](assets/mountPDB.png)
* ВАЖНО
Стрелочка на плате направлена в сторону носового выреза
![Установка платы PDB](../assets/topviewmountPDB.png)
![Установка платы PDB](assets/topviewmountPDB.png)
#### Монтаж элементов
1. Установить гайки в пластиковые держатели
![Монтаж пластиковых держателей](../assets/holderLegs.png)
![Монтаж пластиковых держателей](assets/holderLegs.png)
2. Установить лучи на раму винтами М3х16
*Лучи устанавливаются поверх рамы
*Лучи устанавливаются поверх рамы
*Пластиковые держатели устанавливаются снизу рамы
![Монтаж лучей](../assets/mountBeams.png)
![Монтаж лучей](assets/mountBeams.png)
3. Расположение моторов
Проверить расположение моторов (моторы с черной гайкой в левом верхнем углу и в правом нижнем).
![Расположение моторов](../assets/motorsTopview.png)
![Расположение моторов](assets/motorsTopview.png)
4. Продеть силовые провода регуляторов в отверстия.
![силовые провода моторов](../assets/escWires.png)
![силовые провода моторов](assets/escWires.png)
#### Пайка силовой цепи платы питания
Припаять силовые провода регуляторов к плате питания, соблюдая полярность.
![Пайка силовых проводов на PDB](../assets/solderingPowerwires.png)
![Пайка силовых проводов на PDB](assets/solderingPowerwires.png)
ВАЖНО о полярности
*красный провод - это “+”
@@ -284,14 +284,14 @@
### Сопряжение приемника и пульта
1. Подключить радиоприемник к разъему 5В. В любой разъем, GND внизу. На схеме питание обозначено как 5V
![Подключение питания приемника](../assets/receiver5V.png)
![Подключение питания приемника](assets/receiver5V.png)
3. Подключить АКБ.
Светодиод на радиоприемнике должен мигать.
![Подключение АКБ](../assets/connectBattery.png)
![Подключение АКБ](assets/connectBattery.png)
#### БЕЗОПАСНОСТЬ при работе с АКБ
![БЕЗОПАСНОСТЬ при работе с АКБ](../assets/safetyPower.png)
![БЕЗОПАСНОСТЬ при работе с АКБ](assets/safetyPower.png)
#### Включение радиопульта
1. На пульте зажать кнопку BIND KEY.
@@ -300,45 +300,45 @@
4. Отсоединить джампер.
5. Светодиод горит непрерывно.
![Подключение питания приемника](../assets/connectingRadio.png)
![Подключение питания приемника](assets/connectingRadio.png)
![Мануал по неисправностям](../docs/radioerrors1.md)
![Мануал по неисправностям](radioerrors1.md)
### Проверка направления вращения моторов
1. Наклеить наклейки на АКБ 18650.
2. Установить 18650 в отсек АКБ, соблюдая полярность.
![Готовность отсека АКБ](../assets/readyBatteryholder.png)
![Готовность отсека АКБ](assets/readyBatteryholder.png)
3. Проверить, что разъем питания 5В подключен к приемнику по схеме.
4. Подключить регулятор мотора к 3 каналу приемника CH3 по схеме.
![Подключение регулятора к приемнику](../assets/connectionESCtoReceiver.png)
![Подключение регулятора к приемнику](assets/connectionESCtoReceiver.png)
5. Подключить внешнее питание (АКБ).
6. Включить пульт.
7. Подать левым стиком газ (throttle) на 10%.
8. Проверить направления вращения мотора по схеме.
![Проверка вращения моторов](../assets/testMotors.png)
![Проверка вращения моторов](assets/testMotors.png)
9. Если необходимо изменить направление вращения, то меняем любые два фазных провода мотора (нужно перепаять).
![Перепайка фазных проводов](../assets/resolderingESC.png)
![Перепайка фазных проводов](assets/resolderingESC.png)
### Монтаж радиоприемника
1. Установить пластиковые стойки 30 мм на раму винтами М3х8.
2. Разъем питания 5В продеть в прорезь.
![Установка стоек и прорезь](../assets/mountReceiverStud.png)
![Установка стоек и прорезь](assets/mountReceiverStud.png)
3. Приемник прикрепить к ![нижней дополнительной раме*](../notes/deck.md), используя двухсторонний скотч и ориентируясь на гравировку. Антенны направлены вперед.
3. Приемник прикрепить к ![нижней дополнительной раме*](../notes/deck.md), используя двухсторонний скотч и ориентируясь на гравировку. Антенны направлены вперед.
![Установка радиоприемника на деку](../assets/mountReceiverDeck.png)
![Установка радиоприемника на деку](assets/mountReceiverDeck.png)
4. Установить 3х проводной шлейф в канал PPM / CH1.
![Подключение радиоприемника](../assets/receiverPPM.png)
![Подключение радиоприемника](assets/receiverPPM.png)
5. Продеть в прорезь к разъему 5 В.
6. Прикрутить нижнюю дополнительную раму к стойкам на центральной раме винтами М3х8.
![Установка нижней деки](../assets/mountBottomDeck.png)
6. Прикрутить нижнюю дополнительную раму к стойкам на центральной раме винтами М3х8.
![Установка нижней деки](assets/mountBottomDeck.png)
##### ВАЖНО
Направление стрелок на плате питания и на раме дополнительной совпадают
@@ -346,11 +346,11 @@
### Монтаж полетного контроллера
#### Переворачиваем сборку
![Переворачиваем сборку](../assets/topPreview.png)
![Переворачиваем сборку](assets/topPreview.png)
#### Установка полетного контроллера Pixhawk
1. Клеим 2х сторонний скотч по углам полетного контроллера
![Полетный контроллер](../assets/pixhawk.png)
1. Клеим 2х сторонний скотч по углам полетного контроллера
![Полетный контроллер](assets/pixhawk.png)
##### ВАЖНО
При работе моторов возникают вибрации, отрицательно влияющие на показания датчиков полетного контроллера Pixhawk. Чтобы избежать этого эффекта, количество слоев двустороннего скотча
@@ -358,7 +358,7 @@
2. Установить полетный контроллер в центр рамы
![Полетный контроллер](../assets/topviewpixhawk.png)
![Полетный контроллер](assets/topviewpixhawk.png)
##### ВАЖНО
Стрелки на раме и pixhawk должны быть сонаправлены
@@ -368,29 +368,29 @@
2. Моторы к 1,2,3,4 портам MAIN OUT, согласно схеме
3. Питание от PDB (5В/VCC) в любой порт, кроме SB (SBUS)
![Подключение полетного контроллера](../assets/connectionPixhawk.png)
![Подключение полетного контроллера](assets/connectionPixhawk.png)
### Сборка регуляторов
1. Клеим 2х сторонний скотч на основание защитного бокса регуляторов
![Скотч на бокс регулей](../assets/escCase.png)
![Скотч на бокс регулей](assets/escCase.png)
2. Укладываем регуляторы в защитные боксы. Крепим полученную сборку к лучам рамы.
![Вид сверху с боксами для регулей](../assets/topESCcaseview.png)
![Вид сверху с боксами для регулей](assets/topESCcaseview.png)
### Установка защиты
1. Закрепить нижнюю защиту винтами М3х16 на лучах рамы
![Установка лучевой защиты](../assets/lowsafeDeck.png)
![Установка лучевой защиты](assets/lowsafeDeck.png)
2. Закрепить ножки к пластиковым держателям винтами М3х16
![Установка ножек](../assets/safeLegs.png)
![Установка ножек](assets/safeLegs.png)
3. Закрепить стойки 30 мм в отверстия нижней защиты винтами М3х12
![Установка нижней радиальной защиты](../assets/safelowRadial.png)
![Установка нижней радиальной защиты](assets/safelowRadial.png)
4. Закрепить верхнюю защиту винтами М3х12
![Установка верхней радиальной защиты](../assets/safehighRadial.png)
![Установка верхней радиальной защиты](assets/safehighRadial.png)
### Монтаж отсека АКБ
@@ -402,11 +402,11 @@
* Батарейный отсек (1 шт)
1. Прикрепить батарейный отсек на верхнюю дополнительную раму винтами М3х12 и гайками.
![Монтаж отсека АКБ](../assets/mountHolder.png)
![Монтаж отсека АКБ](assets/mountHolder.png)
2. Прикрепить верхнюю дополнительную раму на стойки винтами М3х8.
![Монтаж отсека АКБ](../assets/isoViewmountHolder.png)
![Монтаж отсека АКБ](assets/isoViewmountHolder.png)
3. Установить АКБ в отсек.
@@ -415,12 +415,12 @@
1. Крепим антенны на 2х сторонний скотч или изоленту, а усики продеваем в передние отверстия верхней дополнительной рамы.
![Монтаж отсека АКБ](../assets/mountAntenna.png)
![Монтаж отсека АКБ](assets/mountAntenna.png)
Коптер готов к настройке!
## БЕЗОПАСНОСТЬ ПРИ СБОРКЕ И НАСТРОЙКЕ
## Безопасность при сборке и настройке
1. Снять пропеллеры.“Все наземные операции производить со снятыми пропеллерами. Устанавливать пропеллеры на моторы только перед полётом.”
@@ -430,17 +430,15 @@
3. Позвать на помощь
“Если при выполнении работ возникли какие-либо проблемы, необходимо обратиться к преподавателю или учителю, а не пытаться решить проблему самостоятельно.”
![Безопасность при сборке](../assets/safetybyassem.png)
![Безопасность при сборке](assets/safetybyassem.png)
## Безопасность при работе с Li-ion аккумуляторами 18650
1. Обращаться с аккумуляторами бережно. Не допускать падений, ударов деформаций.
1. Обращаться с аккумуляторами бережно. Не допускать падений, ударов деформаций.
2. При подключении (отключении) аккумуляторов держаться только за разъёмы, тянуть или дергать за провода запрещается.
3. В случае обрыва разъемов, обнаружения нарушений целостности изоляции или корпуса аккумулятора, не трогая его, немедленно сообщить преподавателю.
## ![БЕЗОПАСНОСТЬ ПРИ ЛЁТНОЙ ЭКСПЛУАТАЦИИ КОПТЕРОВ](../docs/safetyDoc.md#ПОЛЁТЫ)
## ![БЕЗОПАСНОСТЬ ПРИ ЛЁТНОЙ ЭКСПЛУАТАЦИИ КОПТЕРОВ](safetyDoc.md#ПОЛЁТЫ)

View File

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

View File

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 141 KiB

View File

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View File

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 226 KiB

After

Width:  |  Height:  |  Size: 226 KiB

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 157 KiB

View File

Before

Width:  |  Height:  |  Size: 321 KiB

After

Width:  |  Height:  |  Size: 321 KiB

View File

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

View File

Before

Width:  |  Height:  |  Size: 685 KiB

After

Width:  |  Height:  |  Size: 685 KiB

View File

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

View File

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

View File

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

View File

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 275 KiB

After

Width:  |  Height:  |  Size: 275 KiB

View File

Before

Width:  |  Height:  |  Size: 350 KiB

After

Width:  |  Height:  |  Size: 350 KiB

View File

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 170 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 382 KiB

After

Width:  |  Height:  |  Size: 382 KiB

View File

Before

Width:  |  Height:  |  Size: 594 KiB

After

Width:  |  Height:  |  Size: 594 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 238 KiB

View File

Before

Width:  |  Height:  |  Size: 242 KiB

After

Width:  |  Height:  |  Size: 242 KiB

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

Before

Width:  |  Height:  |  Size: 6.4 MiB

After

Width:  |  Height:  |  Size: 6.4 MiB

View File

Before

Width:  |  Height:  |  Size: 4.8 MiB

After

Width:  |  Height:  |  Size: 4.8 MiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 174 KiB

View File

Before

Width:  |  Height:  |  Size: 692 KiB

After

Width:  |  Height:  |  Size: 692 KiB

View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB

Some files were not shown because too many files have changed in this diff Show More