Revert "docs: add COEX GPS article"

This reverts commit 1dea541df2.
This commit is contained in:
Oleg Kalachev
2021-03-12 10:01:04 +03:00
parent 30ada8f311
commit 5eb9b4acbe
152 changed files with 4064 additions and 24 deletions

View File

@@ -55,7 +55,6 @@
* [Дополнительные материалы](supplementary.md)
* [COEX Pix](coex_pix.md)
* [COEX PDB](coex_pdb.md)
* [COEX GPS](coex_gps.md)
* [Гид по автономному полету](auto_setup.md)
* [Имя хоста](hostname.md)
* [Симулятор](sitl.md)

147
docs/ru/agriculture.md Normal file
View File

@@ -0,0 +1,147 @@
# Распознавание видов агрокультур в массовом сельском производстве
## Введение
Современное сельское хозяйство во многих странах превращается в один из ярких примеров быстрого и успешного внедрения новых технологий. Беспилотные летательные аппараты способны выполнять широкий круг задач, среди которых мониторинг сельскохозяйственных угодий сегодня стал уже почти привычным инструментом повышения эффективности сельских хозяйств. Целью моего проекта является написание кода для распознавания видов агрокультур в массовом сельском производстве. В дальнейшем из результатов распознавания можно спроектировать карту посевных площадей.
## Мониторинг
В сельском хозяйстве мониторинг необходим для получения информации о состоянии угодий и посевов. Фермеры или специалисты могут по результатам мониторинга понять, нормально ли всходят культуры, есть ли угроза со стороны сорняков и/или насекомых вредителей, какова степень увлажненности отдельных участков или целых площадей и т.д.
## Объяснение кода
Подключаем библиотеки:
```python
import rospy
import cv2
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
import numpy as np
```
Создаём некоторые переменные:
```python
rospy.init_node('computer_vision_sample')
bridge = CvBridge()
color = 'undefined'
shape = 'undefined'
culture = ""
```
Для реализации алгоритмов компьютерного зрения рекомендуется использовать предустановленную на образ Клевера библиотеку OpenCV.
 Создаём подписчика на топик с изображением с основной камеры для обработки с использованием OpenCV:
```python
def image_colback_color(data):
global color, shape
cv_image = bridge.imgmsg_to_cv2(data, 'bgr8') # OpenCV image
img_hsv = cv2.cvtColor(cv_image, cv2.COLOR_BGR2HSV) #[118:119,158:159]
#detected color
#print(img_hsv[0][0])
```
Каждая культура имеет свой неповторимый оттенок(пшеница- золотистая, гречиха - светло-коричневая).
<img src="../assets/field.jpg" width="75%">
<img src="../assets/field2.jpg" width="75%">
Прописываем диапазоны цветов для определённых культур:
```python
#пшеница
yellow_orange_low = (38, 110, 150)
yellow_orange_high= (52, 110, 150)
#гречиха
brown_low = (23, 50, 50)
brown_high= (37, 50, 50)
yellow_orange_mask = cv2.inRange(img_hsv, yellow_orange_low, yellow_orange_high)
brown_mask = cv2.inRange(img_hsv, brown_low, brown_high)
if yellow_orange_mask[119][159] == 255:
shape = shape_recog(yellow_orange_mask)
elif brown_mask[119][159] == 255:
shape = shape_recog(brown_mask)
else:
shape = 'undefined'
color = 'undefined'
if shape = 'brown':
culture = "greshiha"
if shape = 'yellow_orange':
culture = "pshenitsa"
image_sub = rospy.Subscriber('main_camera/image_raw', Image, image_colback_color)
```
Скрипт будет занимать 100% процессора. Для искусственного замедления работы скрипта можно запустить throttling кадров с камеры, например, в 5 Гц (`main_camera.launch`):
```xml
<node pkg="topic_tools" name="cam_throttle" type="throttle" args="messages main_camera/image_raw 5.0 main_camera/image_raw_throttled"/>
```
Топик для подписчика в этом случае необходимо поменять на: `main_camera/image_raw_throttled`.
```python
print (culture)
while not rospy.is_shutdown():
print("color: {}".format(color))
print("shape: {}".format(shape))
rospy.sleep(0.2)
```
Данная программа будет определять культуру по её оттенку. Для повышения точности определения можно использовать больше цветовых диапазонов и дрон сможет распознавать большее колличество культур.
Вот примеры цветовых диапазонов:
```python
red_low1 = (0, 110, 150)
red_high1 = (7, 255, 255)
red_low2 = (172, 110, 150)
red_high2 = (180, 255, 255)
red_orange_low = (8, 110, 150)
red_orange_high = (22, 110, 150)
orange_low = (23, 110, 150)
orange_high = (37, 110, 150)
yellow_orange_low = (38, 110, 150)
yellow_orange_high = (52, 110, 150)
yellow_low = (53, 150, 150)
yellow_high = (67, 255, 255)
yellow_green_low = (68, 150, 150)
yellow_green_high = (82, 255, 255)
green_low = (83, 150, 150)
green_high = (97, 255, 255)
blue_green_low = (98, 150, 150)
blue_green_high = (113, 255, 255)
blue_low = (114, 150, 150)
blue_high = (127, 255, 255)
blue_violet_low = (128, 150, 150)
blue_violet_high = (142, 255, 255)
violet_low = (143, 150, 150)
violet_high = (157, 255, 255)
red_violet_low = (158, 150, 150)
red_violet_hugh = (171, 255, 255)
```
Обратите внимание, что для красного цвета используется два диапазона т. к. красный цвет находится на границах цветового пространства HSV.

View File

@@ -1,11 +0,0 @@
# COEX GPS
## Схемы расположения контактов
### Вид сверху
<img src="../assets/coex_gps/coex-gps-top.png" width=400 class=zoom>
### Вид снизу
<img src="../assets/coex_gps/coex-gps-bottom.png" width=400 class=zoom>

185
docs/ru/zerotire_vpn.md Normal file
View File

@@ -0,0 +1,185 @@
# Создание виртуальной сети ZeroTire и подключение к ней
## Создание и настройка сети ZeroTire
1. Зайдите на сайт [ZeroTire](https://www.zerotier.com/).
<img src="../assets/zerotire/login_1.png" width=300 class="zoom border center">
2. Зарегистрируйтесь в ZeroTire.
<img src="../assets/zerotire/login_2.png" width=300 class="zoom border center">
3. Зайдите в свой аккаунт.
4. Нажмите кнопку *Create A Network*.
<img src="../assets/zerotire/network_1.png" width=300 class="zoom border center">
5. После этого вы увидите созданную вами сеть, ее ID и название. Для настройки сети нажмите на нее.
<img src="../assets/zerotire/network_2.png" width=300 class="zoom border center">
6. В открывшемся окне можно изменить имя сети и приватность подключения.
<img src="../assets/zerotire/network_3.png" width=300 class="zoom border center">
7. Пролистайте ниже, до графы *Members*. В ней будет написано о том, что в сети нету пользователей.
<img src="../assets/zerotire/network_4.png" width=300 class="zoom border center">
8. Устройства подключенные к сети будут отображаться в данной графе, для того, чтобы позволить им подключиться к сети, активируйте чекбокс *Auth?*. При этом, подключенному устройству автоматически выдастся внутренний IP адрес, в дальнейшем он будет использоваться для связи с данным устройством.
<div class="image-group">
<img src="../assets/zerotire/network_5.png" width=300 class="zoom border">
<img src="../assets/zerotire/network_6.png" width=300 class="zoom border">
</div>
> **Hint** Указывайте имена для новых устройств, этом поможет вам в дальнейшем отличать их друг от друга.
9. Повторите последний шаг для всех подключаемых устройств.
> **Info** Сеть ZeroTire в случае бесплатного использования поддерживает до 50 пользователей одновременно.
## Настройка на Windows
### Установка приложения
1. Перейдите на сайт ZeroTire.
<img src="../assets/zerotire/download_1.png" width=300 class="zoom border center">
2. Нажмите на иконку Windows.
<img src="../assets/zerotire/download_2.png" width=300 class="zoom border center">
3. Скачайте и запустите файл `ZeroTire One.msi`.
<div class="image-group">
<img src="../assets/zerotire/windows_1.png" width=300 class="zoom border">
<img src="../assets/zerotire/windows_2.png" width=300 class="zoom border">
</div>
### Подключение к сети
1. Запустите ZeroTire One.
2. Нажмите на иконку ZeroTire One в панели задач.
3. Нажмите на кнопку *Join Network...* для подключения к сети.
<img src="../assets/zerotire/windows_3.png" width=300 class="zoom border center">
4. В появившемся окне введите ID вашей сети и нажмите кнопку *Join*.
<img src="../assets/zerotire/windows_4.png" width=300 class="zoom border center">
5. Разрешите использование новой сети.
<img src="../assets/zerotire/windows_5.png" width=300 class="zoom border center">
## Настройка на iOS
### Установка приложения
1. Перейдите на сайт ZeroTire.
<img src="../assets/zerotire/download_1.png" width=300 class="zoom border center">
2. Нажмите на иконку iOS.
<img src="../assets/zerotire/download_2.png" width=300 class="zoom border center">
3. Установите приложение *ZeroTire One*.
### Подключение к сети
1. Запустите приложение *ZeroTire One*.
2. Нажмите на *+* для добавления нового подключения.
<img src="../assets/zerotire/ios_1.png" width=300 class="zoom border center">
3. Подтвердите политику конфиденциальности.
<img src="../assets/zerotire/ios_2.png" width=300 class="zoom border center">
4. Введите ID вашей сети и нажмите кнопку *Add Network*.
<img src="../assets/zerotire/ios_3.png" width=300 class="zoom border center">
5. Подтвердите добавление новой конфигурации VPN.
6. Подключитесь к VPN сети, сдвинув ползунок активации сети.
<div class="image-group">
<img src="../assets/zerotire/ios_4.png" width=300 class="zoom border">
<img src="../assets/zerotire/ios_5.png" width=300 class="zoom border">
</div>
## Настройка на Linux (PC, Raspberry Pi)
### Установка приложения
1. Откройте консоль, для этого нажмите сочетание клавиш *Ctrl* + *Alt* + *T* или в строке поиска программ введите *Terminal*
2. Введите команду установки ZeroTire.
```bash
curl -s https://install.zerotier.com | sudo bash
```
### Подключение к сети
1. Откройте консоль.
2. Введите команду `sudo zerotire-cli join network-id`, где `netwirk-id` это ID вашей сети.
<img src="../assets/zerotire/linux_1.png" width=300 class="zoom border center">
3. При успешном подключении, в консоль будет выведено соответствующее сообщение.
## Установка и настройка на macOS
### Установка приложения
1. Перейдите на сайт ZeroTire.
<img src="../assets/zerotire/download_1.png" width=300 class="zoom border center">
2. Нажмите на иконку macOS.
<img src="../assets/zerotire/download_2.png" width=300 class="zoom border center">
3. Скачайте и запустите файл `ZeroTire One.pkg`.
4. Установите приложение ZeroTire One.
### Подключение к сети
1. Запустите приложение ZeroTire One.
2. В панеле задач нажмите на иконку ZeroTire One.
3. В открывшемся окне нажмите *Join Network...*.
<img src="../assets/zerotire/macos_1.png" width=300 class="zoom border center">
4. В поле *Enter Network ID* введите ID вашей сети.
<img src="../assets/zerotire/macos_2.png" width=300 class="zoom border center">
## Подключение к коптеру
1. Убедитесь, что ZeroTire работает и имеет соединение с сетью на дроне и управляющем устройстве. Для этого убедитесь, что интересующие вас устройства имеют статус *Online*.
<img src="../assets/zerotire/qgc_1.png" width=300 class="zoom border center">
2. Убедитесь, что у всех устройств есть локальные IP адреса - *Managed IPs*.
3. Откройте GQC и во вкладке *Comm Links* добавьте TCP подключение, указав IP дрона. Подробнее про удаленное подключение читайте [тут](gcs_bridge.md).
<div class="image-group">
<img src="../assets/zerotire/qgc_2.png" width=300 class="zoom border">
<img src="../assets/zerotire/qgc_3.png" width=300 class="zoom border">
</div>