Repolode
hijimasa

hijimasa/cxd5602pwbimu_localizer_arduino

Проект для Arduino IDE, который оценивает положение и ориентацию по данным IMU платы Sony Spresense с помощью инерциальной навигации и ZUPT.

Звёзды
29
Форки
6
Открытые issues
1
Последний коммит
22 часа назад

Что это?

Проект выполняет инерциальную локализацию на основной плате Sony Spresense с дополнительным модулем IMU CXD5602PWBIMU. Он считывает ускорение и угловую скорость с частотой 1920 Гц и оценивает ориентацию, скорость и положение в земной системе координат NWU. Работа распределена между двумя ядрами Spresense: MainCore получает данные IMU и выводит результаты через serial, а SubCore1 запускает библиотеку Fusion AHRS, коррекцию нулевой скорости (ZUPT), обучение смещения и трапецеидальное интегрирование.

Оценка положения строится на калибровке в неподвижном состоянии длительностью около 15 секунд, после чего устройство выводит строки CSV из 18 значений с частотой 30 Гц. В неподвижном состоянии скорость сбрасывается, чтобы сдерживать дрейф; когда остановка подтверждена, из положения вычитается накопленная ошибка скорости за предшествующий участок движения. Алгоритм написан на C++ без зависимости от Arduino, поэтому его можно тестировать на обычном ПК с синтетическими данными, а записи с устройства — воспроизводить тем же кодом.

В репозитории также есть калибровка смещения акселерометра в шести положениях через serial, инструмент для записи исходных данных устройства и узел ROS 2, преобразующий вывод через serial в стандартные сообщения ROS.

Ключевые возможности

  • 01Считывает данные IMU с частотой 1920 Гц и передаёт их между двумя ядрами Spresense через кольцевой буфер.
  • 02Оценивает ориентацию с помощью библиотеки Fusion AHRS и удаляет составляющую ускорения, вызванную гравитацией.
  • 03Определяет неподвижные периоды по дисперсии и среднему значению в рамках ZUPT и сбрасывает скорость в состоянии покоя.
  • 04Обучается смещению акселерометра в состоянии покоя и компенсирует вращение Земли в данных гироскопа.
  • 05Ретроспективно корректирует накопленную ошибку положения после подтверждения остановки.
  • 06Предоставляет калибровку акселерометра в шести положениях с сохранением в SPI flash.

Сценарии использования

  • Эксперименты с недорогой инерциальной навигацией на плате Spresense.
  • Изучение реализаций ZUPT и слияния данных датчиков на C++ без зависимости от Arduino.
  • Передача вывода IMU Spresense через serial в ROS 2 для визуализации в RViz.

В подборках

Темы

#imu#sensor-fusion#localization#arduino#embedded#zupt#spresense#robotics

Частые вопросы

Что такое cxd5602pwbimu_localizer_arduino?
Проект для Arduino IDE, который оценивает положение и ориентацию по данным IMU платы Sony Spresense с помощью инерциальной навигации и ZUPT. Проект выполняет инерциальную локализацию на основной плате Sony Spresense с дополнительным модулем IMU CXD5602PWBIMU. Он считывает ускорение и угловую скорость с частотой 1920 Гц и оценивает ориентацию, скорость и положение в земной системе координат NWU. Работа распределена между двумя ядрами Spresense: MainCore получает данные IMU и выводит результаты через serial, а SubCore1 запускает библиотеку Fusion AHRS, коррекцию нулевой скорости (ZUPT), обучение смещения и трапецеидальное интегрирование.
cxd5602pwbimu_localizer_arduino можно использовать бесплатно? Какая у него лицензия?
cxd5602pwbimu_localizer_arduino распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
cxd5602pwbimu_localizer_arduino всё ещё поддерживается?
Активно поддерживается. Последний коммит в cxd5602pwbimu_localizer_arduino — 6 нояб. 2026 г..
Для чего можно использовать cxd5602pwbimu_localizer_arduino?
Эксперименты с недорогой инерциальной навигацией на плате Spresense. Изучение реализаций ZUPT и слияния данных датчиков на C++ без зависимости от Arduino. Передача вывода IMU Spresense через serial в ROS 2 для визуализации в RViz.
Где скачать cxd5602pwbimu_localizer_arduino?
Исходный код и инструкции по установке — на GitHub: https://github.com/hijimasa/cxd5602pwbimu_localizer_arduino

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Фреймворк с открытым исходным кодом для программирования четвероногих роботов-собак и роботов-кошек на Arduino и Raspberry Pi: управление походкой, сервоприводами и интеграция IMU.

5,5 тыс.+20 за неделю655C++MITОбновлён 2 месяца назад

Sesame — миниатюрный робот-квадрупед с открытым исходным кодом, который можно напечатать на 3D-принтере; он работает на ESP32, оснащён OLED-лицом и ходит с помощью сервоприводов.

5 тыс.+97 за неделю684CApache-2.0Обновлён 23 дня назад

Кроссплатформенный инструмент командной строки и система сборки для разработки встраиваемого ПО: управление библиотеками, поддержка разных плат и фреймворков, отладка и модульное тестирование.

9,6 тыс.+8 за неделю917PythonApache-2.0Активно поддерживаетсяОбновлён 22 дня назад