aPion

class pion.apion.Apion(ip: str = '10.1.100.114', mavlink_port: int = 5656, connection_method: str = 'udpout', position: Annotated[ndarray[tuple[Any, ...], dtype[Any]], 6] | Annotated[ndarray[tuple[Any, ...], dtype[Any]], 4] | None = None, attitude: Annotated[ndarray[tuple[Any, ...], dtype[Any]], 6] | Annotated[ndarray[tuple[Any, ...], dtype[Any]], 4] | None = None, combine_system: int = 0, count_of_checking_points: int = 20, name: str = 'Pion', mass: float = 0.3, dt: float = 0.0, logger: bool = False, start_message_handler_from_init: bool = True, checking_components: bool = True, accuracy: float = 0.05, max_speed: float = 2.0)

Асинхронная версия Pion

async goto_from_outside(x: float, y: float, z: float, yaw: float, accuracy: float = 0.08) None

Асинхронный метод для перемещения дрона к указанной точке с учетом управления yaw.

Параметры:
  • x (float) – координата по x

  • y (float) – координата по y

  • z (float) – координата по z

  • yaw (float) – координата по yaw

  • accuracy (float) – Погрешность целевой точки

Результат:

None

async goto_yaw(yaw: float = 0, accuracy: float = 0.087) None

Асинхронный метод для поворота дрона на указанный угол yaw.

Параметры:
  • yaw (float) – координата по yaw (радианы)

  • accuracy (float) – Погрешность целевой точки

Результат:

None

async main() None

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

Результат:

None

async message_handler(combine_system: int = 0) None

Асинхронно обрабатывает сообщения от дрона и отправляет heartbeat, обновляя координаты дрона.

Параметры:

combine_system (int) – Определяет, с каких источников будут считываться данные: 0 — только локус, 1 — локус и оптика, 2 — только оптика.

Результат:

None

async send_speed(vx: float, vy: float, vz: float, yaw_rate: float) None

Асинхронно задает вектор скорости дрону. Отсылать необходимо в цикле.

Параметры:
  • vx – Скорость по оси X (м/с)

  • vy – Скорость по оси Y (м/с)

  • vz – Скорость по оси Z (м/с)

  • yaw_rate – Скорость поворота по yaw (рад/с)

Результат:

None

async set_v_async() None

Асинхронно запускает цикл, который вызывает функцию v_while() для параллельной отправки вектора скорости.

Результат:

None

stop() None

Останавливает все асинхронные задачи внутри приложения.

Результат:

None

async v_while() None

Асинхронный метод, которая отправляет вектор скорости в цикле.

Параметры:

ampl (Union[float, int]) – множитель вектора скорости

Результат:

None