Набор для самостоятельной сборки двуногой роботизированной утки Microduck на сервоприводах Feetech HD1910: инструкции, 3D-модели, платы HAT/IMU и инструменты для обучения с RL.
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.
В подборках
Темы
Частые вопросы
- Что такое 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.
Sesame — миниатюрный робот-квадрупед с открытым исходным кодом, который можно напечатать на 3D-принтере; он работает на ESP32, оснащён OLED-лицом и ходит с помощью сервоприводов.
Альтернативная прошивка для плат ESP8266 и ESP32 с веб-настройкой, OTA-обновлениями, локальной автоматизацией и управлением через MQTT, HTTP, Serial или KNX.
Компилятор Go на базе LLVM для микроконтроллеров, WebAssembly (WASM/WASI) и инструментов командной строки.
Кроссплатформенный инструмент командной строки и система сборки для разработки встраиваемого ПО: управление библиотеками, поддержка разных плат и фреймворков, отладка и модульное тестирование.