Найти тему

Как установить cfclient для ESP-Drone

В этой статье расскажу, как устанавливать cfclient для ESP_Drone на Windows.

На Linux почти то же самое, просто немного другая одна команда. Её можно будет посмотреть на сайте Espressif ( ссылка будет ).

1) Первым делом нужно установить Python 3.9, вот ссылка:

https://www.python.org/ftp/python/3.9.0/python-3.9.0-amd64.exe

А также нужен pip версии 20.2.3, для этого вбиваем в Командную строку вот эту команду (все команды из этой статьи нужно вбивать без кавычек):

«python -m pip install --force-reinstall pip==20.2.3»

После установки Питона и Пипа несколько описанных далее проблем исчезают, но всё равно решения их оставлю здесь.

2) Скачаем нужные библиотеки

Открываем командную строку и вводим туда команду:

«git clone -b esp-drone https://github.com/qljz1993/crazyflie-lib-python.git»

Далее переходим в проводнике по пути:

1. Диск C

2. Пользователи

3. Выбираете своего пользователя

4. Открываете папку «crazyflie-lib-python»

В моём случае путь такой: C:\Users\ivanp\crazyflie-lib-python

  • Нажимаем на строку пути и открываем в этой папке Командную строку, вбив вместо пути команду «cmd»:

Открывается Командная строка, набираем команду:

«pip3 install -r requirements.txt»

-3

Следом вбиваем:

«pip3 install -e .»

-4

Закрываем Командную строку.

3) Устанавливаем клиент

Теперь снова открываем Командную строку, но не в папке, а просто. Вбиваем команду:

«git clone -b esp-drone https://github.com/qljz1993/crazyflie-clients-python.git»

Эта команда клонирует клиент с гитхаба.

-5

Теперь начинается то, что вызывает у многих проблемы, так как на сайте приведены команды для Linux, а не Windows

Вставляем команду:

«pip install pyqt5»

Она устанавливает библиотеку для визуальной части программы

-6
  • Открываем Командную строку в папке «crazyflie-clients-python» и набираем команду:

«pip3 install -e .»

Может вылезти такая ошибка. Возможно такой ошибки у вас не появится после установки Python и pip нужных версий - тогда просто пропускайте решения этих ошибок.
Может вылезти такая ошибка. Возможно такой ошибки у вас не появится после установки Python и pip нужных версий - тогда просто пропускайте решения этих ошибок.
File "C:\Users\ivanp\AppData\Roaming\Python\Python39\site-packages\setuptools\_vendor\packaging\version.py", line 197, in __init__
raise InvalidVersion(f"Invalid version: '{version}'")
setuptools.extern.packaging.version.InvalidVersion: Invalid version: '2019.09-4-gd879323'

Я установил версию питона 3.9.0, pip 20.2.3, повторил команду, и мне выдало:

raise InvalidVersion(f"Invalid version: '{version}'") setuptools.extern.packaging.version.InvalidVersion: Invalid version: '2019.09-4-gd879323' ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. WARNING: You are using pip version 20.2.3; however, version 23.3.1 is available. You should consider upgrading via the 'c:\users\ivanp\appdata\local\programs\python\python39\python.exe -m pip install --upgrade pip' command.
-8

На этом сайте нашлось решение:
«
https://stackoverflow.com/questions/75272737/error-invalid-version-0-23ubuntu1-package-distro-info ». А именно:
Пишем в Командную строку команду:

«pip install --upgrade --user setuptools==58.3.0»

-9

Далее:

  • В папке клиента переходим в папку bin, запускаем через питон cfclient:
Возникает такая ошибка.
Возникает такая ошибка.

Переходим снова в папку crazyflie-clients-python и пишем команду:

«pip install pyqt5»:

-11

Установили. Теперь попробуем запустить заново:

-12

Возникла ошибка об отсутствии pyusb, прописываем команду:

«pip install pyusb»:

-13

Пробуем запустить клиент снова:

-14
  • Ошибка об отсутствии pysdl2:
Скачиваем zip по ссылке:
«
https://www.libsdl.org/release/SDL2-2.0.5-win32-x64.zip »
Распаковываем в папку «third_party», которую создаём по пути:
«C:\Users\ivanp\crazyflie-clients-python\src\cfclient\third_party» (Пользователя выбираете своего)

Повторяем запуск cfclient, получаем ошибку:

-15

Прописываем команду:

«pip install cflib»:

-16

Далее появлется вот такая ошибка:

-17
Переходим по пути
«С:\users\ivanp\crazyflie-clients-python\src\cfclient\ui\tabs\» и открываем файл «locopositioning_tab.py»
В нём строчки
«from PyQt5.QtGui import QMessageBox
from PyQt5.QtGui import QLabel»
Меняем на
«from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtWidgets import QLabel»

https://forum.bitcraze.io/viewtopic.php?t=4958

Повторяем запуск

И снова выходит ошибка:

Переходим по пути:
«С:\users\ivanp\crazyflie-clients-python\src\cfclient\ui\» ,
и открываем файл «main.py»

В строчке №201:

-19

Удаляем «, exclusive=True», сохраняем,
То же делаем в строчке №378.

Всё, теперь при следующем запуске cfclient должен нормально открыться:

-20
Ещё удобно создать .bat файл для быстрого запуска клиента:
Пишем в блокноте вот это:
@echo off
cd C:\Users\ivanp\crazyflie-clients-python\bin
python cfclient
@pause

Только ИМЯ ПОЛЬЗОВАТЕЛЯ выбираете своё, и сохраняете файл в расширении «.bat»:

-21

На этом статья по установке cfclient для ESP-Drone заканчивается. Может возникнуть проблема с подключением дрона к клиенту(это из-за несоответствующей прошивке на дроне) - в моём профиле будет статья как прошить ESP-Drone через ESP-IDF

Cсылки

  1. Здесь решение ошибки про pysdl2 при установке cfclient
  2. Здесь решение ошибки про «locopositioning_tab.py» при установке cfclient
  3. Здесь пользователь с ником «bakecool» на китайском языке объяснил, как решить проблему с аргументом «exclusive» при установке cfclient
  4. Здесь официальная инструкция от Espressif по установке cfclient как на Windows, так и на Linux.
  5. Здесь начало работы с ESP-Drone, документация от Espressif