В этой статье расскажу, как устанавливать 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»
Следом вбиваем:
«pip3 install -e .»
Закрываем Командную строку.
3) Устанавливаем клиент
Теперь снова открываем Командную строку, но не в папке, а просто. Вбиваем команду:
«git clone -b esp-drone https://github.com/qljz1993/crazyflie-clients-python.git»
Эта команда клонирует клиент с гитхаба.
Теперь начинается то, что вызывает у многих проблемы, так как на сайте приведены команды для Linux, а не Windows
Вставляем команду:
«pip install pyqt5»
Она устанавливает библиотеку для визуальной части программы
- Открываем Командную строку в папке «crazyflie-clients-python» и набираем команду:
«pip3 install -e .»
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.
На этом сайте нашлось решение:
« https://stackoverflow.com/questions/75272737/error-invalid-version-0-23ubuntu1-package-distro-info ». А именно:
Пишем в Командную строку команду:
«pip install --upgrade --user setuptools==58.3.0»
Далее:
- В папке клиента переходим в папку bin, запускаем через питон cfclient:
Переходим снова в папку crazyflie-clients-python и пишем команду:
«pip install pyqt5»:
Установили. Теперь попробуем запустить заново:
Возникла ошибка об отсутствии pyusb, прописываем команду:
«pip install pyusb»:
Пробуем запустить клиент снова:
- Ошибка об отсутствии 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, получаем ошибку:
Прописываем команду:
«pip install cflib»:
Далее появлется вот такая ошибка:
Переходим по пути
«С:\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:
Удаляем «, exclusive=True», сохраняем,
То же делаем в строчке №378.
Всё, теперь при следующем запуске cfclient должен нормально открыться:
Ещё удобно создать .bat файл для быстрого запуска клиента:
Пишем в блокноте вот это:
@echo off
cd C:\Users\ivanp\crazyflie-clients-python\bin
python cfclient
@pause
Только ИМЯ ПОЛЬЗОВАТЕЛЯ выбираете своё, и сохраняете файл в расширении «.bat»:
На этом статья по установке cfclient для ESP-Drone заканчивается. Может возникнуть проблема с подключением дрона к клиенту(это из-за несоответствующей прошивке на дроне) - в моём профиле будет статья как прошить ESP-Drone через ESP-IDF
Cсылки
- Здесь решение ошибки про pysdl2 при установке cfclient
- Здесь решение ошибки про «locopositioning_tab.py» при установке cfclient
- Здесь пользователь с ником «bakecool» на китайском языке объяснил, как решить проблему с аргументом «exclusive» при установке cfclient
- Здесь официальная инструкция от Espressif по установке cfclient как на Windows, так и на Linux.
- Здесь начало работы с ESP-Drone, документация от Espressif