SwarmCommunicator

class swarm_server.server.SwarmCommunicator(control_object: Any, broadcast_port: int = 37020, broadcast_interval: float = 0.5, recive_interval: float = 0.05, safety_radius: float = 1.0, max_speed: float = 1.0, ip: str | None = None, instance_number: Any | None = None, time_sleep_update_velocity: float = 0.1, params: dict | None = None, mode: int = 1, unique_id: int = None)

Компонент для обмена данными в роевой архитектуре.

Каждый экземпляр получает уникальный идентификатор на основе IP и порядкового номера.

__init__(control_object: Any, broadcast_port: int = 37020, broadcast_interval: float = 0.5, recive_interval: float = 0.05, safety_radius: float = 1.0, max_speed: float = 1.0, ip: str | None = None, instance_number: Any | None = None, time_sleep_update_velocity: float = 0.1, params: dict | None = None, mode: int = 1, unique_id: int = None) None

Инициализация компонента для обмена данными в роевой архитектуре.

Параметры:
  • control_object (Any) – Объект управления дроном.

  • broadcast_port (int) – Порт для UDP широковещательных сообщений.

  • broadcast_interval (float) – Интервал отправки сообщений (в секундах).

  • recive_interval (float) – Интервал проверки входящих сообщений (в секундах).

  • safety_radius (float) – Радиус безопасности.

  • max_speed (float) – Максимальная скорость.

  • ip (Optional[str]) – IP-адрес устройства (если None, используется значение из control_object).

  • instance_number (Optional[Any]) – Порядковый номер экземпляра для генерации уникального идентификатора.

  • time_sleep_update_velocity (float) – Интервал обновления вектора скорости (в секундах).

  • params (Optional[dict]) – Дополнительные параметры алгоритма.

  • mode – Режим роя, имеет 3 состояния: 1 - включен ПИД до таргетной позиции + силы отталкивания от других донов + вектор вывода дрона с состояния равновесия в локальных минимумах

Результат:

None

Тип результата:

None

__weakref__

list of weak references to the object

property co

Короткий геттер контролируемого объекта

process_incoming_state(state: Any) None

Функция обработчик входящих сообщений

Результат:

None

Тип результата:

None

restore_params() None

Вовзрат параметров swarm_solver в начальное значение

save_data() None

Функция для сохранения данных задержек в работе кода

Результат:

None

Тип результата:

None

smart_goto(x: float | int, y: float | int, z: float | int, yaw: float | int = 0, accuracy: float | int = 0.05) None

Метод отправляет дрон в точку [x, y, z, yaw]. с алгоритмом избегания столкновений

Параметры:
  • x – Коодината x

  • y – Коодината y

  • z – Коодината z

  • yaw – Коодината yaw

  • accuracy – Точность

Результат:

None

Тип результата:

None

smart_point_tracking() None

Метод включает режим слежения за точкой.

Дрон начинает следить за точкой из target_point[0:2]

Результат:

None

Тип результата:

None

start() None

Запускает параллельные потоки для рассылки собственного состояния и приёма сообщений от других устройств.

Результат:

None

Тип результата:

None

start_threading_smart_goto(x: float | int, y: float | int, z: float | int, yaw: float | int = 0, accuracy: float | int = 0.05) None

Запуск потока слежения за точкой с алгоритмом избегания столкновений

Результат:

None

Тип результата:

None

stop() None

Останавливает коммуникатор.

Результат:

None

Тип результата:

None

stop_trp() None

Метод останавливает потоки, отправляющие вектора скорости на дрон

Результат:

None

Тип результата:

None

update_swarm_control(target_position: Annotated[ndarray[tuple[Any, ...], dtype[Any]], 6], dt: float) None

Вычисление нового вектора скорости и запись его в t_speed

Параметры:
  • target_position – Целевая позиция

  • dt – Шаг времени

Результат:

None

Тип результата:

None