Pion
====
.. note::
Мы используем `uv `_
Вместо "python script.py" в инструкции будет использоваться "uv run script.py"
SDK для управления дронами `geoscan pioneer base `_ по протоколу MAVLink.
Поддерживает дроны с модификацией ультразвуковой системы навигации `локус `_
и с Raspberry Pi Zero 2W (модификация "Арена") или на radxa zero 3w.
Тесты проводились также на pioneer mini, но могут быть ошибки в некоторых методах.
Перед работой с модулем рекомендуется загрузить рекомендуемые параметры через `Pioneer Station `_.
`Параметры автопилота <../scripts/parameters.txt>`_
Установка
---------
.. code-block:: shell
pip install pionsdk
.. code-block:: shell
pip install git+https://github.com/OnisOris/pion
Установка для разработки
------------------------
Данный способ требуется только для модификации модуля. Для использования устанавливайте через pip.
.. code-block:: shell
pip install -e .
Подключение
-----------
Для подключения к дрону создайте экземпляр класса Pion.
Частый IP для реального дрона: 10.1.100.[номер]
Порт: 5656
В примере указан IP и порт для Геоскан симулятора:
.. code-block:: python
from pion import Pion
ip = "127.0.0.1"
port = 8000
drone = Pion(ip=ip, mavlink_port=port)
Рой дронов
----------
В pionsdk реализовано роевое управление через класс SwarmCommunicator.
.. image:: https://github.com/OnisOris/pion/blob/dev/docs/img/swarm_scheme.png
:alt: SchemeImg
Схематичное отображение дронов и векторов управления
.. image:: https://github.com/OnisOris/pion/blob/dev/docs/img/lokky_small_vis.png
:alt: lokky-analyze plot
Автоустановка swarmserver на Radxa
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: bash
curl -o pion_install.sh https://raw.githubusercontent.com/OnisOris/pion/refs/heads/dev/scripts/pion_swarm_radxa_install.sh
chmod +x pion_install.sh
sudo ./pion_install.sh
После установки достаточно запустить ``/scripts/vserver.py`` и ``pionsrv`` для управления роем.
Консоль управления роем
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`pionsrv `_
После установки необходимо прописать команду
.. code-block:: shell
start_control_server
Визуализация
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Для запуска вам нужен uv:
.. code-block:: shell
pip install uv
Или matplotlib:
.. code-block:: shell
pip install matplotlib
После установки запустите
2D + 3D
.. code-block:: shell
uv run ./scripts/4xvserver.py
2D
.. code-block:: shell
uv run ./scripts/vserver.py
Подробное описание с примерами
------------------------------
- `Pion `_ - класс управления реальными дронами
- `Spion `_ - класс дрона-симулятора
- `Apion `_ - класс с реализацией асинхронного управления
- `Simulator `_ - классы симуляторов
- `Pio `_ - абстрактные классы
Дополнительное ПО
-----------------
- `Консоль управления роем (pionsrv) `_
- `Модуль алгоритмов роя (lokky) `_
.. toctree::
:maxdepth: 1
:caption: Оглавление:
Установка модуля Pion
Описание работы скриптов
pion
spion
apion
simulator
pio
controller