Спасибо! Думаю что, дело в версиях библиотек. В репозитории есть Dockerfile. Он базируется на Ubuntu 24.04, где версии библиотек подтягиваются корректно, так что рекомендую запускать через Docker. Насчет траектории, то камера работает в своей системе координат, где Z это оптическая ось, смотрящая вперед, а мы привыкли к графикам в ENU. Чтобы получить вид как на гифке, я делаю маппинг: x_plot = x; y_plot = -z. Для высоты лучше использовать обычный барометр, у него нет накопительной ошибки.
Малинка выступает исключительно для вычисления VIO, обработкой изображений и расчетом состояния. Управлением моторами, PID-регуляторами, сигналы на сервоприводы и стабилизацией занимается Pixhawk. По поводу сенсора согласен. Изначально планировал читать данные IMU напрямую с полетного контроллера по протоколу MAVLink, но стандартная частота телеметрии в MAVLink обычно ограничена 4-10 Гц или 50.
Дрон я собирал самостоятельно, это кастомная сборка. Используется Raspberry Pi в качестве микропроцессора. В качестве контроллера используется MPU6050. IMU подключен по шине I2C, используется порт /dev/i2c-1 на Raspberry Pi. Стандартное подключение: SDA - GPIO 2, SCL - GPIO 3, питание 3.3V.
Я не использовал готовые тяжелые библиотеки. Драйвер для IMU написан мной на C++ и встроен прямо в проект (RpiSource.cpp). Он работает напрямую с Linux-интерфейсом I2C <linux/i2c-dev.h>, ioctl, инициализирует сенсор по адресу 0x68 и вычитывает сырые данные акселерометра и гироскопа.
Спасибо! Думаю что, дело в версиях библиотек. В репозитории есть Dockerfile. Он базируется на Ubuntu 24.04, где версии библиотек подтягиваются корректно, так что рекомендую запускать через Docker. Насчет траектории, то камера работает в своей системе координат, где Z это оптическая ось, смотрящая вперед, а мы привыкли к графикам в ENU. Чтобы получить вид как на гифке, я делаю маппинг: x_plot = x; y_plot = -z. Для высоты лучше использовать обычный барометр, у него нет накопительной ошибки.
Малинка выступает исключительно для вычисления VIO, обработкой изображений и расчетом состояния. Управлением моторами, PID-регуляторами, сигналы на сервоприводы и стабилизацией занимается Pixhawk. По поводу сенсора согласен. Изначально планировал читать данные IMU напрямую с полетного контроллера по протоколу MAVLink, но стандартная частота телеметрии в MAVLink обычно ограничена 4-10 Гц или 50.
если интересно :
https://mavlink.io/en/messages/common.html#ODOMETRY
Дрон я собирал самостоятельно, это кастомная сборка. Используется Raspberry Pi в качестве микропроцессора. В качестве контроллера используется MPU6050. IMU подключен по шине I2C, используется порт /dev/i2c-1 на Raspberry Pi. Стандартное подключение: SDA - GPIO 2, SCL - GPIO 3, питание 3.3V.
Я не использовал готовые тяжелые библиотеки. Драйвер для IMU написан мной на C++ и встроен прямо в проект (RpiSource.cpp). Он работает напрямую с Linux-интерфейсом I2C <linux/i2c-dev.h>, ioctl, инициализирует сенсор по адресу 0x68 и вычитывает сырые данные акселерометра и гироскопа.