Repolode
hijimasa

hijimasa/cxd5602pwbimu_localizer_arduino

基于 Spresense 主板与 IMU 扩展板的 Arduino 项目,通过 IMU 做惯性定位与姿态估计。

Star
29
Fork
6
未关闭 Issue
1
最近提交
23小时前

这是什么?

该项目在 Sony Spresense 主板上配合 CXD5602PWBIMU 扩展 IMU,以 1920 Hz 采集加速度和角速度,并在地球坐标系(NWU)下估计姿态、速度和位置。两个核心分工明确:MainCore 负责采集 IMU 数据并通过串口输出,SubCore1 运行 Fusion AHRS 算法、零速修正(ZUPT)、偏置学习和梯形积分。

设备上电后需保持静止约 15 秒完成初始标定,之后以 30 Hz 输出每行 18 个数值的 CSV 数据。静止时速度被清零以抑制漂移,停止被确认后会扣除之前运动段累积的速度误差。算法以不依赖 Arduino 的 C++ 模块实现,可在电脑上用合成数据测试,也可将设备录制的原始数据在主机上回放。

仓库还提供通过串口进行的六方向加速度计零偏标定、原始数据录制工具,以及将串口输出转换为标准 ROS 2 消息的节点。

核心功能

  • 01以 1920 Hz 采集 IMU 数据,并通过环形缓冲区在两个核心之间传递。
  • 02使用 Fusion AHRS 库估计姿态并扣除重力分量。
  • 03基于方差和均值的零速修正(ZUPT)检测静止状态,静止时速度归零。
  • 04静止时学习加速度计零偏,并补偿陀螺仪中的地球自转。
  • 05停止确认后,回溯修正之前运动段累积的位置误差。
  • 06提供六方向加速度计标定,结果保存在 SPI Flash 中。

适用场景

  • 在 Spresense 开发板上试验低成本的惯性推算定位。
  • 学习 ZUPT 与传感器融合在不依赖 Arduino 的 C++ 中的实现方式。
  • 将 Spresense IMU 的串口数据接入 ROS 2,在 RViz 中可视化。

收录于专题

标签

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

常见问题

cxd5602pwbimu_localizer_arduino 是什么?
基于 Spresense 主板与 IMU 扩展板的 Arduino 项目,通过 IMU 做惯性定位与姿态估计。 该项目在 Sony Spresense 主板上配合 CXD5602PWBIMU 扩展 IMU,以 1920 Hz 采集加速度和角速度,并在地球坐标系(NWU)下估计姿态、速度和位置。两个核心分工明确:MainCore 负责采集 IMU 数据并通过串口输出,SubCore1 运行 Fusion AHRS 算法、零速修正(ZUPT)、偏置学习和梯形积分。
cxd5602pwbimu_localizer_arduino 可以免费使用吗?用的什么许可证?
cxd5602pwbimu_localizer_arduino 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
cxd5602pwbimu_localizer_arduino 还在维护吗?
活跃维护中。cxd5602pwbimu_localizer_arduino 最近一次提交是在 2026年11月6日。
cxd5602pwbimu_localizer_arduino 适合用来做什么?
在 Spresense 开发板上试验低成本的惯性推算定位。 学习 ZUPT 与传感器融合在不依赖 Arduino 的 C++ 中的实现方式。 将 Spresense IMU 的串口数据接入 ROS 2,在 RViz 中可视化。
在哪里获取 cxd5602pwbimu_localizer_arduino?
源代码和安装说明在 GitHub 上:https://github.com/hijimasa/cxd5602pwbimu_localizer_arduino

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目