Compare commits

..

21 Commits
v0.7 ... v0.8

Author SHA1 Message Date
Smirnov Artem
fec4859cfe image_builder: enable the lirc-rpi module for uart 2018-07-06 22:10:58 +03:00
Oleg Kalachev
63ecc3b713 image: fix libpoco-dev version 2018-07-06 22:02:53 +03:00
Oleg Kalachev
d3a08c60d7 Merge pull request #54 from Yuliya1404/master
docs: changed metod materials
2018-07-06 17:25:51 +03:00
Oleg Kalachev
322eb1e255 image: add tcpdump and libpoco-dev 2018-07-06 04:37:00 +03:00
Oleg Kalachev
22d4f3c3e7 docs: small fixes 2018-07-05 03:07:52 +03:00
Oleg Kalachev
008750b1d9 docs: add systemd/roslaunch documentation 2018-07-05 03:03:16 +03:00
Oleg Kalachev
506767f32f docs: add some info to gps article 2018-07-05 02:50:45 +03:00
Oleg Kalachev
aaa673de92 simple_offboard: add global alt to get_telemetry service 2018-07-05 02:50:35 +03:00
Oleg Kalachev
43237d8ff4 GCS bridges config and documentation improvements 2018-07-05 02:10:53 +03:00
Oleg Kalachev
9681fc9a87 Merge branch 'master' of github.com:CopterExpress/clever 2018-07-04 20:29:45 +03:00
Oleg Kalachev
76c3e96f76 Enable mavros respawn by default 2018-07-04 20:26:47 +03:00
shish1404
1e66afa6a4 docs: changed test 2018-06-29 22:14:46 +03:00
shish1404
41c59e8e49 docs: added videos 2018-06-29 18:49:22 +03:00
shish1404
225e3d7936 docs: changed label 2018-06-29 18:48:53 +03:00
Smirnov Artem
8cdb131a19 Merge pull request #53 from urpylka/master
image_builder: fix pack
2018-06-25 14:53:51 +03:00
Artem Smirnov
c9042588f0 image_builder: enable shrinker by default 2018-06-25 13:28:44 +03:00
Oleg Kalachev
342eaec49a gitbook: fix ya-metrika 2018-06-25 03:13:17 +03:00
Oleg Kalachev
77b3d28e3b gitbook: add ya-metrika 2018-06-25 03:00:04 +03:00
Smirnov Artem
357b38b5e7 image_builder: add text for /etc/fstab 2018-06-23 21:12:06 +03:00
Artem Smirnov
a99a1c7540 image_builder: change PARTUUID to /dev/mmcblk0p2 2018-06-23 20:44:30 +03:00
Artem Smirnov
6742ba332a image_builder: add fixed version for deb-packages 2018-06-22 15:31:26 +03:00
19 changed files with 1021 additions and 1285 deletions

View File

@@ -4,13 +4,16 @@
"author": "Copter Express",
"language": "ru",
"root": "docs/",
"plugins": ["youtube", "richquotes", "versions"],
"plugins": ["youtube", "richquotes", "versions", "yametrika"],
"pluginsConfig": {
"disqus": {
"shortName": "coex-clever"
},
"versions": {
"type": "tags"
},
"yametrika": {
"id": 49359238
}
}
}

View File

@@ -3,9 +3,9 @@
<arg name="fcu_ip" default="127.0.0.1"/>
<arg name="gcs_bridge" default="tcp"/>
<arg name="viz" default="true"/>
<arg name="respawn" default="false"/>
<arg name="respawn" default="true"/>
<node pkg="mavros" type="mavros_node" name="mavros" required="false" clear_params="true" respawn="$(arg respawn)" respawn_delay="3" output="screen">
<node pkg="mavros" type="mavros_node" name="mavros" required="false" clear_params="true" respawn="$(arg respawn)" respawn_delay="5" output="screen">
<!-- UART connection -->
<param name="fcu_url" value="/dev/ttyAMA0:921600" if="$(eval fcu_conn is None or fcu_conn == 'uart')"/>
@@ -18,7 +18,8 @@
<!-- 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://0.0.0.0:14550@14550" if="$(eval gcs_bridge == 'udp')"/>
<param name="gcs_url" value="udp-pb://192.168.11.1:14550@" if="$(eval gcs_bridge == 'udp-b')"/>
<param name="gcs_url" value="udp-b://0.0.0.0:14550@14550" if="$(eval gcs_bridge == 'udp-b')"/>
<param name="gcs_url" value="udp-pb://0.0.0.0:14550@14550" if="$(eval gcs_bridge == 'udp-pb')"/>
<param name="gcs_url" value="" if="$(eval not gcs_bridge)"/>
<param name="gcs_quiet_mode" value="true"/>
<param name="conn/timeout" value="10"/>

View File

@@ -348,6 +348,7 @@ def get_telemetry(req):
'z': float('nan'),
'lat': float('nan'),
'lon': float('nan'),
'alt': float('nan'),
'vx': float('nan'),
'vy': float('nan'),
'vz': float('nan'),
@@ -389,6 +390,7 @@ def get_telemetry(req):
if global_position and stamp - global_position.header.stamp < rospy.Duration(5):
res['lat'] = global_position.latitude
res['lon'] = global_position.longitude
res['alt'] = global_position.altitude
if state:
res['connected'] = state.connected

View File

@@ -7,8 +7,9 @@ string mode
float32 x
float32 y
float32 z
float32 lat
float32 lon
float64 lat
float64 lon
float32 alt
float32 vx
float32 vy
float32 vz

View File

@@ -26,11 +26,12 @@
* [Визуализация с помощью rviz](rviz.md)
* [Работа с SITL](sitl.md)
* [Подключение GPS](gps.md)
* [Автозапуск ПО](autolaunch.md)
* [Использование 3G-модема](3g.md)
* [Устройство сети RPi](network.md)
* [Работа с логами PX4](flight_logs.md)
* Учебник
* [Уроки](lessons.md)
* [Теория и видеоуроки](lessons.md)
* [Учебно-методическое пособие](metod.md)
* [Контрольные и проверочные материалы](tests.md)
* [Другое](drugoe.md)

59
docs/autolaunch.md Normal file
View File

@@ -0,0 +1,59 @@
Автозапускаемое ПО
===
systemd
---
Основная документация: [https://wiki.archlinux.org/index.php/Systemd_(Русский)](https://wiki.archlinux.org/index.php/Systemd_(Русский)).
Все автоматически стартуемое ПО Клевера запускается в виде systemd-сервиса `clever.service`.
Сервис может быть перезапущен командой `systemctl`:
```bash
sudo systemctl restart clever
```
Текстовый вывод ПО можно просмотреть с помощью команды `journalctl`:
```bash
journalctl -u clever
```
Для того, запустить ПО Клевера непосредственно в текущей консольной сессии, вы можете использовать `roslaunch`:
```bash
sudo systemctl stop clever
roslaunch clever clever.launch
```
Вы можете выключить автозапуск ПО Клевера с помощью команды `disable`:
```bash
sudo systemctl disable clever
```
roslaunch
---
Основная документация: http://wiki.ros.org/roslaunch.
Список объявленных для запуска нод / программ указывается в файле `/home/pi/catkin_ws/src/clever/clever/launch/clever.launch`.
Вы можете добавить собственную ноду в список автозапускаемых. Для этого разместите ваш запускаемый файл (например, `my_program.py`) в каталог `/home/pi/catkin_ws/src/clever/clever/src`. Затем добавьте запуск вашей ноды в `clever.launch`, например:
```xml
<node name="my_program" pkg="clever" type="my_program.py" output="screen"/>
```
Запускаемый файл должен иметь *permission* на запуск:
```bash
chmod +x my_program.py
```
При использовании скриптовых языков вначале файла должен стоять [shebang](https://ru.wikipedia.org/wiki/Шебанг_(Unix)), например:
```bash
#!/usr/bin/env python
```

View File

@@ -1,10 +1,12 @@
Использование QGroundControl через Wi-Fi
===
Возможен контроль, управление и настройка полетного контроллера квадрокоптера с помощью программы QGroundControl по Wi-Fi.
![](assets/qground.png)
Возможны контроль, управление, калибровка и настройка полетного контроллера квадрокоптера с помощью программы QGroundControl по Wi-Fi.
Для этого необходимо подключиться к Wi-Fi сети `CLEVER-xxxx`.
После чего в launch-файле Клевера `/home/pi/catkin_ws/src/clever/clever/launch/clever.launch` выбрать один из преднастроенных режимов: TCP, UDP, UDP broadcast.
После чего в launch-файле Клевера `/home/pi/catkin_ws/src/clever/clever/launch/clever.launch` выбрать один из преднастроенных режимов бриджа.
После изменения launch-файла необходимо перезагрузить сервис clever:
@@ -12,50 +14,57 @@
sudo systemctl restart clever
```
Подробнее о возможных настройках `gcs_bridge` [на сайте пакета mavros](http://wiki.ros.org/mavros#Connection_URL).
TCP-бридж
---
Изменить параметр gcs_bridge в launch-файле:
Изменить параметр `gcs_bridge` в launch-файле:
```xml
<arg name="gcs_bridge" default="tcp"/>
```
Затем в программе QGroundControl нужно выбрать Application Settings -> Comm Links -> Add. Создать подключение со следующими настройками:
Затем в программе QGroundControl нужно выбрать Application Settings > Comm Links > Add. Создать подключение со следующими настройками:
![](assets/bridge_tcp.png)
Затем необходимо выбрать в списке подключений "Clever" и нажать "Connect".
UDP-бридж
UDP бридж (с автоматическим подключением)
---
Изменить параметр gcs_bridge в launch-файле:
```xml
<arg name="gcs_bridge" default="udp-b"/>
```
При открытии программы QGroundControl соединение должно установиться автоматически.
UDP-бридж (без автоматического подключения)
---
Изменить параметр `gcs_bridge` в launch-файле:
```xml
<arg name="gcs_bridge" default="udp"/>
```
Затем в программе QGroundControl нужно выбрать Application Settings -> Comm Links -> Add. Создать подключение со следующими настройками:
Затем в программе QGroundControl нужно выбрать Application Settings > Comm Links > Add. Создать подключение со следующими настройками:
![](assets/bridge_udp.png)
Затем необходимо выбрать в списке подключений "CLEVER" и нажать "Connect".
UDP broadcast-бридж
---
Для использования UDP broadcast-бриджа необходимо установить параметр `gcs_bridge` в значение `udp-b`:
> **Hint** Особенностью UDP broadcast-бриджа является возможность просмотра телеметрии дрона одновременно с нескольких устройств (например с телефона и компьютера). Также он хорошо подходит для организации сети из устройств при помощи роутера.
Изменить параметр `gcs_bridge` в launch-файле:
```xml
<arg name="gcs_bridge" default="udp-b"/>
<arg name="gcs_bridge" default="udp-pb"/>
```
При использовании UDB broadcast-бриджа достаточно подключиться к Wi-Fi сети Клевера. QGroundControl должен подключиться к коптеру автоматически. Также при использовании UDP broadcast возможна работа с коптером одновременно с нескольких устройств (например, одновременно QGroundControl на ноутбуке и смартфоне).
> **Note** UDP broadcast-бридж является наиболее быстрым соединением, но связь в нем менее стабильная: иногда могут возникать проблемы при загрузке миссии на коптер, а также при калибровке сенсоров.
___
После успешного подключения можно настраивать, калибровать и просматривать состояние квадкоптера без проводов.
![](assets/qground.png)
При открытии программы QGroundControl соединение должно установиться автоматически.

View File

@@ -2,8 +2,21 @@
===
При подключении GPS появляются следующие возможности:
* Удерживание коптером позиции при полете на улице
* Программирование автономных миссий в программе QGroundControl
* Полеты на глобальные точки в автономном режиме при помощи модуля [simple offboard](simple_offboard.md).
TODO
Полезные ссылки:
* https://docs.px4.io/en/assembly/quick_start_pixhawk.html
* http://ardupilot.org/copter/docs/common-pixhawk-wiring-and-quick-start.html
* http://ardupilot.org/copter/docs/common-installing-3dr-ublox-gps-compass-module.html
Подключение
---
GPS-модуль подключается к разъемам "GPS" и "I2C" (компас) полетного контроллера.
При подключении GPS, необходимо заново откалибровать магнитометры в программе QGroundControl, подключившись по [Wi-Fi](wifi.md) или USB.
Далее, необходимо включить GPS в параметре `EKF2_AID_MASK` (при использовании EKF2) или `LPE_FUSION` (при использовании LPE).

View File

@@ -1,26 +1,51 @@
Оглавление
=======
# Теория
[**Урок №1** «Знакомство. Принципы проектирования и строение мультикоптеров»](lesson1.md)
[**Урок №1** «Знакомство. Принципы проектирования и строение мультикоптеров»](https://github.com/CopterExpress/clever/blob/master/docs/lesson1.md)
[**Урок №2** «Основы электричества»](lesson2.md)
[**Урок №2** «Основы электричества»](https://github.com/CopterExpress/clever/blob/master/docs/lesson2.md)
[**Урок №3** «Теория пайки»](lesson3.md)
[**Урок №3** «Теория пайки»](https://github.com/CopterExpress/clever/blob/master/docs/lesson3.md)
[**Урок №4** «Аэродинамика полета. Пропеллер»](lesson4.md)
[**Урок №4** «Аэродинамика полета. Пропеллер»](https://github.com/CopterExpress/clever/blob/master/docs/lesson4.md)
[**Урок №5** «Бесколлекторные двигатели и регуляторы их хода»](lesson5.md)
[**Урок №5** «Бесколлекторные двигатели и регуляторы их хода»](https://github.com/CopterExpress/clever/blob/master/docs/lesson5.md)
[**Урок №6** «Основы электромагнетизма. Типы двигателей»](lesson6.md)
[**Урок №6** «Основы электромагнетизма. Типы двигателей»](https://github.com/CopterExpress/clever/blob/master/docs/lesson6.md)
[**Урок №7** «Принцип работы, типы и устройство аккумуляторов»](lesson7.md)
[**Урок №7** «Принцип работы, типы и устройство аккумуляторов»](https://github.com/CopterExpress/clever/blob/master/docs/lesson7.md)
[**Урок №8** «Управление полётом мультикоптера. Принцип функционирования полётного контроллера. ПИД регуляторы»](lesson8.md)
[**Урок №8** «Управление полётом мультикоптера. Принцип функционирования полётного контроллера. ПИД регуляторы»](https://github.com/CopterExpress/clever/blob/master/docs/lesson8.md)
[**Урок №9** «Основы радиосвязи. Принцип работы радиоаппаратуры управления»](lesson9.md)
[**Урок №9** «Основы радиосвязи. Принцип работы радиоаппаратуры управления»](https://github.com/CopterExpress/clever/blob/master/docs/lesson9.md)
[**Урок №10** «Аналоговая и цифровая видеотрансляция. Применяемые камеры, радиопередатчики иприёмники»](lesson10.md)
[**Урок №10** «Аналоговая и цифровая видеотрансляция. Применяемые камеры, радиопередатчики иприёмники»](https://github.com/CopterExpress/clever/blob/master/docs/lesson10.md)
Видеоуроки
----------
## Видеоуроки
Немного о видах коптеров
<iframe width="560" height="315" src="https://www.youtube.com/embed/LFOmZZwg-PE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Часть 1
<iframe width="560" height="315" src="https://www.youtube.com/embed/e9Z1pjW0vQU" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Часть 2
<iframe width="560" height="315" src="https://www.youtube.com/embed/jWMGSgiLD_E" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Часть 3
<iframe width="560" height="315" src="https://www.youtube.com/embed/WhxxXD4b1MY" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Часть 4
<iframe width="560" height="315" src="https://www.youtube.com/embed/jkA9F9lSWDM" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Часть 5
<iframe width="560" height="315" src="https://www.youtube.com/embed/Cz7EbJ1-xMw" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Часть 6
<iframe width="560" height="315" src="https://www.youtube.com/embed/v00oNVzwICg" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

View File

@@ -7,93 +7,47 @@
Учебно-методическое пособие
---------------------------
[Урок 1. «Знакомство. Принципы проектирования и строение мультикоптеров»](metodmaterials.md)
[Урок 1. «Знакомство. Принципы проектирования и строение мультикоптеров»](https://github.com/CopterExpress/clever/blob/master/docs/ https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 2. «Основы электричества»](metodmaterials.md)
[Урок 2. «Основы электричества»](https://github.com/CopterExpress/clever/blob/master/docs/ https://github.com/CopterExpress/clever/blob/master/docs/ https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 3. «Теория пайки»](metodmaterials.md)
[Урок 3. «Теория пайки»]( https://github.com/CopterExpress/clever/blob/master/docs/ https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 4. «Аэродинамика полета. Пропеллер»](metodmaterials.md)
[Урок 4. «Аэродинамика полета. Пропеллер»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 5. «Основы электромагнетизма. Типы двигателей»](metodmaterials.md)
[Урок 5. «Основы электромагнетизма. Типы двигателей»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 6. «Бесколлекторные двигатели и регуляторы их хода»](metodmaterials.md)
[Урок 6. «Бесколлекторные двигатели и регуляторы их хода»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 7. «Принцип работы, типы и устройство аккумуляторов»](metodmaterials.md)
[Урок 7. «Принцип работы, типы и устройство аккумуляторов»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 8. «Управление полётом мультикоптера. Принцип функционирования полетного контроллера. ПИД регуляторы»](metodmaterials.md)
[Урок 8. «Управление полётом мультикоптера. Принцип функционирования полетного контроллера. ПИД регуляторы»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 9. «Основы радиосвязи. Принцип работы радиоаппаратуры управления»](metodmaterials.md)
[Урок 9. «Основы радиосвязи. Принцип работы радиоаппаратуры управления»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 10. «Аналоговая и цифровая видеотрансляция. Применяемые камеры, радиопередатчики и приёмники»](metodmaterials.md)
[Урок 10. «Аналоговая и цифровая видеотрансляция. Применяемые камеры, радиопередатчики и приёмники»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 11. «Техника безопасности при сборке и настройке коптеров, при подготовке к вылету. Техника безопасности при работе с аккумуляторами»](metodmaterials.md)
[Урок 11. «Техника безопасности при сборке и настройке коптеров, при подготовке к вылету. Техника безопасности при работе с аккумуляторами»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 12. «Теория ручного визуального пилотирования»](metodmaterials.md)
[Урок 12. «Теория ручного визуального пилотирования»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 13. «Техника безопасности при летной эксплуатации коптера»](metodmaterials.md)
[Урок 13. «Техника безопасности при летной эксплуатации коптера»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 14. «Обучение лётному мастерству»](metodmaterials.md)
[Урок 14. «Обучение лётному мастерству»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 15. «Основы радиоэлектроники, схемотехники и макетирования электрических схем»](metodmaterials.md)
[Урок 15. «Основы радиоэлектроники, схемотехники и макетирования электрических схем»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 16. «Основы работы с аналоговым и цифровым сигналом»](metodmaterials.md)
[Урок 16. «Основы работы с аналоговым и цифровым сигналом»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 17. «Основы работы с лабораторным оборудованием»](metodmaterials.md)
[Урок 17. «Основы работы с лабораторным оборудованием»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 18. «Теория FPV полетов»](metodmaterials.md)
[Урок 18. «Теория FPV полетов»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 19. «История автономных полетов. Развитие автопилотов в авиации»](metodmaterials.md)
[Урок 19. «История автономных полетов. Развитие автопилотов в авиации»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 20. «Основы программирование на языке Python»](metodmaterials.md)
[Урок 20. «Основы программирование на языке Python»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 21. «Знакомство с компьютером Raspberry Pi»](metodmaterials.md)
[Урок 21. «Знакомство с компьютером Raspberry Pi»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
[Урок 22. «Управление автономным дроном: теория»](metodmaterials.md)
[Урок 22. «Управление автономным дроном: теория»]( https://github.com/CopterExpress/clever/blob/master/docs/metodmaterials.md)
Контрольные вопросы и тесты к разделам
------------------
[Урок 1. «Знакомство. Принципы проектирования и строение мультикоптеров»](tests.md)
[Урок 2. «Основы электричества»](tests.md)
[Урок 3. «Теория пайки»](tests.md)
[Урок 4. «Аэродинамика полета. Пропеллер»](tests.md)
[Урок 5. «Основы электромагнетизма. Типы двигателей»](tests.md)
[Урок 6. «Бесколлекторные двигатели и регуляторы их хода»](tests.md)
[Урок 7. «Принцип работы, типы и устройство аккумуляторов»](tests.md)
[Урок 8. «Управление полётом мультикоптера. Принцип функционирования полетного контроллера. ПИД регуляторы»](tests.md)
[Урок 9. «Основы радиосвязи. Принцип работы радиоаппаратуры управления»](tests.md)
[Урок 10. «Аналоговая и цифровая видеотрансляция. Применяемые камеры, радиопередатчики и приёмники»](tests.md)
[Урок 11. «Техника безопасности при сборке и настройке коптеров, при подготовке к вылету. Техника безопасности при работе с аккумуляторами»](tests.md)
[Урок 12. «Теория ручного визуального пилотирования»](tests.md)
[Урок 13. «Техника безопасности при летной эксплуатации коптера»](tests.md)
[Урок 14. «Обучение лётному мастерству»](tests.md)
[Урок 15. «Основы радиоэлектроники, схемотехники и макетирования электрических схем»](tests.md)
[Урок 16. «Основы работы с аналоговым и цифровым сигналом»](tests.md)
[Урок 17. «Основы работы с лабораторным оборудованием»](tests.md)
[Урок 18. «Теория FPV полетов»](tests.md)
[Урок 19. «История автономных полетов. Развитие автопилотов в авиации»](tests.md)
[Урок 20. «Основы программирование на языке Python»](tests.md)
[Урок 21. «Знакомство с компьютером Raspberry Pi»](tests.md)
[Урок 22. «Управление автономным дроном: теория»](tests.md)

View File

@@ -12,8 +12,7 @@
* об истории и тенденциях развития беспилотных летательных аппаратов; о том как можно улучшить их характеристики;
* правила техники безопасности при эксплуатации БПЛА;
* основные компоненты коптеров;
* конструктивные особенности различных моделей, сооружений и
механизмов;
* конструктивные особенности различных моделей, сооружений и механизмов;
* компьютерные среды для настройки полетных контроллеров;
* основы аэродинамики полета;
* основы электричества, радиоэлектроники;
@@ -51,7 +50,9 @@
**Подведение итогов**
Подведение итогов по курсу проводится в 3 этапа:
Ниже предложен один из вариантов подведения итогов курса.
Финальное мероприятие включает 3 раздела:
1. Итоговый тест (см. [проверочные задания](tests.md)).
2. Финальная гонка.

View File

@@ -68,9 +68,10 @@ release = rospy.ServiceProxy('release', Trigger)
* `frame_id` – фрейм;
* `connected` есть ли подключение к <abbr title="Flight Control Unit, полетный контроллер">FCU</abbr>;
* `armed` состояние `armed` винтов (винты включены, если true);
* `mode` - текущий [полетный режим](modes.md);
* `mode` текущий [полетный режим](modes.md);
* `x, y, z` – локальная позиция коптера *(м)*;
* `lat, lon` широта, долгота *(градусы)*, необходимо наличие [gps](gps.md));
* `lat, lon` широта, долгота *(градусы)*, необходимо наличие [GPS](gps.md);
* `alt` высота в глобальной системе координат (стандарт [WGS-84](https://ru.wikipedia.org/wiki/WGS_84), не <abbr title="Above Mean Sea Level, выше среднего уровня моря">AMSL</abbr>!), необходимо наличие [GPS](gps.md);
* `vx, vy, vz` скорость коптера *(м/с)*;
* `pitch`  угол по тангажу *(радианы)*;
* `roll` угол по крену *(радианы)*;

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,19 @@ sudo apt-get install unzip zip git python-pip jq curl
sudo pip install YaDiskClient
```
2. Mount HDD
> TODO
```bash
nano /etc/fstab
```
```
proc /proc proc defaults 0 0
PARTUUID=37665771-01 /boot vfat defaults 0 2
PARTUUID=37665771-02 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
/dev/sdb1 none swap sw 0 0
/dev/sdb2 /mnt/hdd_system ext4 defaults,acl 0 0
/dev/sdb3 /mnt/hdd_builder ext4 defaults,acl 0 0
```
3. Enable swap on HDD
> TODO:

View File

@@ -14,7 +14,7 @@ pipeline {
string(name: 'GWBT_URL', defaultValue: 'https://github.com/CopterExpress/clever.git')
// Experimental function
booleanParam(name: 'SHRINK', defaultValue: false, description: 'SHRINK IMAGE')
booleanParam(name: 'SHRINK', defaultValue: true, description: 'SHRINK IMAGE')
booleanParam(name: 'DISCOVER_ROS_PACKAGES', defaultValue: false, description: 'DISCOVER ROS PACKAGES')
}
environment {
@@ -81,9 +81,13 @@ pipeline {
}
// TODO: Add finalising step, transfer mirror removal from ros.sh
stage('Shrink image') {
environment {
EXECUTE_FILE = 'image_builder/scripts/change_boot_part.sh'
}
when { expression { return params.SHRINK } }
steps {
sh "$WORKSPACE/image_builder/autosizer.sh ${params.BUILD_DIR}/${params.IMAGE_NAME}"
sh "$WORKSPACE/image_builder/image_config.sh execute ${params.BUILD_DIR}/${params.IMAGE_NAME} ${params.MOUNT_POINT} $WORKSPACE/$EXECUTE_FILE"
}
}
}

View File

@@ -0,0 +1,11 @@
#!/bin/bash
set -e
echo -e "\033[0;31m\033[1m$(date) | #1 Change boot partition\033[0m\033[0m"
sed -i 's/root=[^ ]*/root=\/dev\/mmcblk0p2/' /boot/cmdline.txt
sed -i 's/.* \/boot vfat defaults 0 2$/\/dev\/mmcblk0p1 \/boot vfat defaults 0 2/' /etc/fstab
sed -i 's/.* \/ ext4 defaults,noatime 0 1$/\/dev\/mmcblk0p2 \/ ext4 defaults,noatime 0 1/' /etc/fstab
echo -e "\033[0;31m\033[1m$(date) | End of change boot partition\033[0m\033[0m"

View File

@@ -38,6 +38,7 @@ echo -e "\033[0;31m\033[1m$(date) | #6 Turn on UART\033[0m\033[0m"
# https://github.com/RPi-Distro/raspi-config/pull/75
/usr/bin/raspi-config nonint do_serial 1
/usr/bin/raspi-config nonint set_config_var enable_uart 1 /boot/config.txt
/usr/bin/raspi-config nonint set_config_var dtoverlay pi3-miniuart-bt /boot/config.txt
# After adding to Raspbian OS
# https://github.com/RPi-Distro/raspi-config/commit/d6d9ecc0d9cbe4aaa9744ae733b9cb239e79c116

View File

@@ -15,7 +15,7 @@ echo -e "\033[0;31m\033[1m$(date) | #1 Installing dirmngr & add key to apt-key\0
# Install a tool that apt-key uses to add ROS repository key
# http://wpblogger.su/tags/apt/
apt-get install --no-install-recommends -y dirmngr
apt-get install --no-install-recommends -y dirmngr=2.1.18-8~deb9u2
# setup keys
apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
@@ -31,11 +31,11 @@ apt-get update
echo -e "\033[0;31m\033[1m$(date) | #3 Installing wget, unzip, python-rosdep, python-rosinstall-generator, python-wstool, python-rosinstall, build-essential, cmake\033[0m\033[0m"
apt-get install --no-install-recommends -y \
python-rosdep \
python-rosinstall-generator \
python-wstool \
python-rosinstall \
build-essential
python-rosdep=0.12.2-1 \
python-rosinstall-generator=0.1.14-1 \
python-wstool=0.1.17-1 \
python-rosinstall=0.7.8-1 \
build-essential=12.3
echo -e "\033[0;31m\033[1m$(date) | #4 rosdep init && rosdep update\033[0m\033[0m"

View File

@@ -10,22 +10,24 @@ echo -e "\033[0;31m\033[1m$(date) | #1 Software installing\033[0m\033[0m"
# TODO: Use dnsmasq instead of isc-dhcp-server
apt-get install --no-install-recommends -y \
unzip \
zip \
ipython \
screen \
byobu \
nmap \
lsof \
git \
dnsmasq \
tmux \
vim \
ipython3 \
cmake \
python-pip \
python3-pip \
libjpeg8-dev
unzip=6.0-21 \
zip=3.0-11 \
ipython=5.1.0-3 \
ipython3=5.1.0-3 \
screen=4.5.0-6 \
byobu=5.112-1 \
nmap=7.40-1 \
lsof=4.89+dfsg-0.1 \
git=1:2.11.0-3+deb9u3 \
dnsmasq=2.76-5+rpt1+deb9u1 \
tmux=2.3-4 \
vim=2:8.0.0197-4+deb9u1 \
cmake=3.7.2-1 \
python-pip=9.0.1-2+rpt2 \
python3-pip=9.0.1-2+rpt2 \
libjpeg8-dev=8d1-2 \
tcpdump \
libpoco-dev=1.7.6+dfsg1-5+deb9u1
echo -e "\033[0;31m\033[1m$(date) | #2 Adding mjpg-streamer at /home/pi\033[0m\033[0m"
# https://github.com/jacksonliam/mjpg-streamer