/Tello_Laser_Shot

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

Primary LanguagePythonMIT LicenseMIT

Tello Laser Shot

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

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

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

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎ-тСхничСской Π·Π°Π΄Π°Ρ‡ΠΈ кСйса, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ†Π΅Π»ΠΈ, Π·Π°Π΄Π°Ρ‡ΠΈ, принятыС ограничСния ΠΈ характСристики ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² кСйса.

ВСхничСскоС описаниС модуля Π»Π°Π·Π΅Ρ€Π½ΠΎΠΉ ΡƒΠΊΠ°Π·ΠΊΠΈ ΠΈ мишСни.

ΠŸΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ с Π·Π°Ρ‰ΠΈΡ‚Ρ‹ кСйса.

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

Alt Text

Установка

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

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

  • drone/djitellopy β€” DJI Tello Python интСрфСйс с использованиСм ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Tello SDK.

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

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

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

  • drone/cv_system.py β€” БистСма тСхничСского зрСния.

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

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

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

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

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

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

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡƒΡŽ систСму управлСния Π‘ΠŸΠ›Π прСдлагаСтся Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° ряд подсистСм (ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ):

  • тСхничСского зрСния;
  • прицСливания;
  • управлСния ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ;
  • Π‘ΠŸΠ›Πβ€“Π²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ;
  • диспСтчСра.

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

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

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

Π“ΠΎΡ‚ΠΎΠ²ΠΎ:

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

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

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

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

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

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

  • Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΠ΅Ρ€Π΅Π΄/Π½Π°Π·Π°Π΄;
  • ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π°Π»Π΅Π²ΠΎ/Π½Π°ΠΏΡ€Π°Π²ΠΎ;
  • Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π²Π΅Ρ€Ρ…/Π²Π½ΠΈΠ·;
  • Π΄Π²ΠΆΠΈΠ΅Π½ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ/Π²ΠΏΡ€Π°Π²ΠΎ.

ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ допустимыС значСния сигналов ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² Tello EDU SDK.

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

  • "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

Daniil Makhotkin

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

laptevaarina

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