An open API service indexing awesome lists of open source software.

https://github.com/Keleas/Tello_Laser_Shot

πŸšπŸ”¦πŸŽ― БистСма управлСния Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ Π‘ΠŸΠ›Π Β«ΠŸΡ€ΠΎΠ΅ΠšΠ’ΠžΡ€ΠΈΠ― 2019Β»
https://github.com/Keleas/Tello_Laser_Shot

computer-vision python tello

Last synced: 6 months ago
JSON representation

πŸšπŸ”¦πŸŽ― БистСма управлСния Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ Π‘ΠŸΠ›Π Β«ΠŸΡ€ΠΎΠ΅ΠšΠ’ΠžΡ€ΠΈΠ― 2019Β»

Awesome Lists containing this project

README

          

# Tello Laser Shot

ВысокоурвнСвый интСрфСйс управлСния для Π΄Ρ€ΠΎΠ½Π° DJI Tello EDU, написаный для примСнСния Π² качСствС исходной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ кСйса __Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы управлСния для Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄Π°Ρ€Π½ΠΎΠ³ΠΎ бСспилотного Π»Π΅Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π°Β»__ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ __Β«ΠŸΡ€ΠΎΠ΅ΠšΠ’ΠžΡ€ΠΈΠ― 2019Β»__ Π² Π³.Π―Ρ€ΠΎΡΠ»Π°Π²Π»ΡŒ 23.11.19 β€” 25.11.19.

## Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅
- [Условия кСйса](#условия-кСйса)
- [ДСмонстрация Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ](#дСмонстрация-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ)
- [Установка](#установка)
- [ОписаниС Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ](#описаниС-Ρ„Π°ΠΉΠ»ΠΎΠ²-Π²-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ)
- [АрхитСктура систСмы управлСния](#Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°-систСмы-управлСния)
- [Бтруктурная схСма](#структурная-схСма)
- [РСализованная Ρ‡Π°ΡΡ‚ΡŒ](#рСализованная-Ρ‡Π°ΡΡ‚ΡŒ)
- [ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ управлСния](#особСнности-управлСния)
- [Contributing](#contributing)
- [Авторы](#Π°Π²Ρ‚ΠΎΡ€Ρ‹)

## Условия кСйса

[ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎ-тСхничСской Π·Π°Π΄Π°Ρ‡ΠΈ кСйса](https://github.com/Keleas/Tello_Laser_Shot/blob/master/case_conditions.md), которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ†Π΅Π»ΠΈ, Π·Π°Π΄Π°Ρ‡ΠΈ, принятыС ограничСния ΠΈ характСристики ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² кСйса.

[ВСхничСскоС описаниС](https://docs.google.com/document/d/17kr19o82x-43bqUDP20d9jeDlM1DWrNjdxtdaQakFNs/edit?usp=sharing) модуля Π»Π°Π·Π΅Ρ€Π½ΠΎΠΉ ΡƒΠΊΠ°Π·ΠΊΠΈ ΠΈ мишСни.

[ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ](https://docs.google.com/presentation/d/1biOTNeaPVXXxxrHvvTEWBiLqoUdYQppOPbZNus6Bpf4/edit?usp=sharing) с Π·Π°Ρ‰ΠΈΡ‚Ρ‹ кСйса.

## ДСмонстрация Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

![Alt Text](demo_1.gif)

## Установка

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ __conda__: ```conda env create -f tello_drone_env.yml```

## ОписаниС Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

- __drone/djitellopy__ β€” [DJI Tello](https://github.com/damiafuentes/DJITelloPy) Python интСрфСйс с использованиСм ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Tello SDK.

- __drone/main.py__ β€” Π“Π»Π°Π²Π½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ», Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ вСсь Ρ†ΠΈΠΊΠ» Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Ρ€ΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ систСмы.

- __drone/base_controls.py__ β€” БистСма Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ управлСния всСми модулями ЛА.

- __drone/controller.py__ β€” Обвязка систСмы управлСния Π΄Ρ€ΠΎΠ½Π° для Π°Π²Ρ‚ΠΎΠΏΠΈΠ»ΠΎΡ‚Π°.

- __drone/cv_system.py__ β€” БистСма тСхничСского зрСния.

- __drone/tools.py__ β€” Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ модулями, инициализация Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… классов.

- __drone/virtual_drone.py__ β€” ΠœΠΎΠ΄ΡƒΠ»ΡŒ для модСлирования ΠΏΠΎΠ»Π΅Ρ‚Π° Π΄Ρ€ΠΎΠ½Π°.

*Код обновляСтся ...*

## АрхитСктура систСмы управлСния

НиТС прСдставлСно описаниС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ систСмы управлСния Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ Π‘ΠŸΠ›Π с ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ систСмы Π»Π°Π·Π΅Ρ€Π½ΠΎΠΉ подсвСтки Ρ†Π΅Π»Π΅ΠΉ (мишСнСй).

### Бтруктурная схСма

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡƒΡŽ систСму управлСния Π‘ΠŸΠ›Π прСдлагаСтся Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° ряд подсистСм (ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ):
- тСхничСского зрСния;
- прицСливания;
- управлСния ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ;
- Π‘ΠŸΠ›Πβ€“Π²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ;
- диспСтчСра.

Бтруктурная схСма взаимодСйствия всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ описана Π½Π° рисункС Π½ΠΈΠΆΠ΅:

### РСализованная Ρ‡Π°ΡΡ‚ΡŒ

*Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ участникам кСйса прСдоставляСтся интСрфСйс систСмы управлСния с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ модулями ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ.*

__Π“ΠΎΡ‚ΠΎΠ²ΠΎ:__
- [x] __ΠœΠΎΠ΄ΡƒΠ»ΡŒ диспСтчСра для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСнями управлСния ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояний с Π΄Ρ€ΠΎΠ½ΠΎΠΌ__
- [x] __ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ управлСния с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° систСмы управлСния: 1-Π³ΠΎ ΠΈΠ»ΠΈ 4-Π΅Ρ… канального__
- [ ] __ΠœΠΎΠ΄ΡƒΠ»ΡŒ пСрСсчСта сигналов управлСния Π² физичСскиС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹__
- [ ] __ΠœΠΎΠ΄ΡƒΠ»ΡŒ тСхничСского зрСния__
- [x] БистСма прицСливания
- [ ] БистСма Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π»ΠΈ
- [x] БистСма опрСдСлСния ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ пораТСния
- [ ] __ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π°Π²Ρ‚ΠΎΠΏΠΈΠ»ΠΎΡ‚Π°__
- [ ] БистСма Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ стратСгии повСдСния
- [x] БистСма построСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° двиТСния
- [ ] БистСма навСдСния
- [ ] __ΠœΠΎΠ΄ΡƒΠ»ΡŒ управлСния ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ__
- [x] БистСма вСдСния огня
- [ ] БистСма Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ стратСгии вСдСния огня

*Код обновляСтся ...*

### ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ управлСния

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΠΎΠ½ΠΎΠΌ происходит Π·Π° счСт ΠΎΠ±ΠΌΠ΅Π½Π° Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сообщСний ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ UDP, Π½Π΅ ΠΈΠΌΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи. Однако рСализация ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ получСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ сигнала ΠΎΡ‚ Π΄Ρ€ΠΎΠ½Π° послС выполнСния Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΅ΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΄Ρ€ΠΎΠ½Π° осущСствлятся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 1-Π³ΠΎ ΠΈΠ»ΠΈ 4-Π΅Ρ… канального управлСния. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° управлСния состоят Π² нСвозмоТности ΠΎΠ±ΠΌΠ΅Π½Π° сообщСнями Π²ΠΎ врСмя выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ двиТСния, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ двиТСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΈ строго дискрСтизированы ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ. Из-Π·Π° этих нСдостатков ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° управлСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΏΠΈΠ»ΠΎΡ‚Π° считаСтся Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ 4-Π΅Ρ… канальной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ управлСния состоит Π² возмоТности измСнСния направлСния двТиСния ΠΏΠΎ нСскольким Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ:
- Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΠ΅Ρ€Π΅Π΄/Π½Π°Π·Π°Π΄;
- ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π°Π»Π΅Π²ΠΎ/Π½Π°ΠΏΡ€Π°Π²ΠΎ;
- Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π²Π΅Ρ€Ρ…/Π²Π½ΠΈΠ·;
- Π΄Π²ΠΆΠΈΠ΅Π½ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ/Π²ΠΏΡ€Π°Π²ΠΎ.

ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ допустимыС значСния сигналов ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² [Tello EDU SDK](https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello%20SDK%202.0%20User%20Guide.pdf).

__ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ управлСния:__

- "w"/"s" β€” Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΠ΅Ρ€Π΅Π΄/Π½Π°Π·Π°Π΄
- "a"/"d" β€” ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π°Π»Π΅Π²ΠΎ/Π½Π°ΠΏΡ€Π°Π²ΠΎ
- "q"/"e" β€” Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π²Π΅Ρ€Ρ…/Π²Π½ΠΈΠ·
- "z"/"c" β€” Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ/Π²ΠΏΡ€Π°Π²ΠΎ
- "t" β€” Π²Π·Π»Π΅Ρ‚
- "l" β€” посадка
- "m" β€” ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Ρ€ΡƒΡ‡Π΅Π½ΠΎΠ³ΠΎ управлСния
- "p" β€” Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΏΠΈΠ»ΠΎΡ‚Π°
- "h" β€” тСстовый ΠΈΠΌΠΏΡƒΠ»ΡŒΡ Π»Π°Π·Π΅Ρ€Π½ΠΎΠΉ ΡƒΠΊΠ°Π·ΠΊΠΈ
- "1" - 5" β€” ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ скорости

## Contributing

ΠŸΡ€Π°Π²ΠΈΠ»Π° внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ кСйсом:

1. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ```fork``` рСпозитория

2. Π‘ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° локальноС устройство

3. ВнСсти измСнСния

4. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ```pull request```

## Авторы

__ΠšΡƒΡ€Π°Ρ‚ΠΎΡ€Ρ‹ кСйса:__

[Nikita Grishin](https://github.com/Keleas)

[Daniil Makhotkin](https://github.com/Ken-chan)

__Участники кСйса:__

[laptevaarina](https://github.com/laptevaarina)

*Бписок пополняСтся ...*