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