Обновить
17
57

Пользователь

Отправить сообщение

Спасибо! Думаю что, дело в версиях библиотек. В репозитории есть 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 и вычитывает сырые данные акселерометра и гироскопа.

GPS модуль тут для сравнения траекторий
GPS модуль тут для сравнения траекторий
Сборка вне дрона
Сборка вне дрона

Информация

В рейтинге
140-й
Зарегистрирован
Активность