Feetech HD1910サーボを使った二足歩行ロボット「Microduck」の中国語版レプリカキット。組み立てガイド、3Dプリント部品、カスタムHAT/IMU基板、RL学習ツールを提供します。
hijimasa/cxd5602pwbimu_localizer_arduino
ZUPTを用いたデッドレコニングでIMUから位置と姿勢を推定する、Sony Spresense向けArduino IDEプロジェクト。
- スター
- 29
- フォーク
- 6
- 未解決の Issue
- 1
- 最終コミット
- 昨日
これは何?
Sony Spresenseメインボードと拡張用IMUのCXD5602PWBIMUを使って、慣性航法による位置推定を行うプロジェクトです。加速度と角速度を1920 Hzで読み取り、地球固定のNWU座標系で姿勢、速度、位置を推定します。処理はSpresenseの2つのコアに分担されており、MainCoreがIMUデータを取得してシリアル出力し、SubCore1がFusion AHRSライブラリ、ゼロ速度更新(ZUPT)、バイアス学習、台形積分を実行します。
位置推定は、約15秒間の静止状態で行う起動時キャリブレーションをもとに構成され、その後は18個の値を含むCSV行を30 Hzで出力します。静止状態を検出すると速度をリセットしてドリフトを抑え、停止が確認されると、直前の移動中に蓄積した速度誤差を位置から差し引きます。アルゴリズムはArduinoに依存しないC++で実装されているため、合成データを使ってホストPC上でテストでき、デバイスの記録データも同じコードで再生できます。
リポジトリには、シリアル経由で行う6方向の加速度センサーのバイアスキャリブレーション、デバイスの生データを記録するツール、シリアル出力を標準的なROSメッセージに変換するROS 2ノードも含まれています。
主な機能
- 01IMUデータを1920 Hzで読み取り、リングバッファを介して2つのSpresenseコア間で受け渡します。
- 02Fusion AHRSライブラリで姿勢を推定し、加速度から重力を除去します。
- 03分散と平均に基づくZUPTで静止状態を検出し、静止中は速度をリセットします。
- 04静止中に加速度バイアスを学習し、ジャイロの地球自転を補正します。
- 05停止が確認された時点で、蓄積した位置誤差を遡って補正します。
- 06SPIフラッシュに保存する、6方向の加速度センサーキャリブレーション機能を備えています。
ユースケース
- Spresenseボードで低コストな慣性デッドレコニングを試す。
- Arduinoに依存しないC++によるZUPTやセンサーフュージョンの実装を学ぶ。
- Spresense IMUのシリアル出力をROS 2に入力し、RVizで可視化する。
収録されている特集
トピック
よくある質問
- cxd5602pwbimu_localizer_arduino とは?
- ZUPTを用いたデッドレコニングでIMUから位置と姿勢を推定する、Sony Spresense向けArduino IDEプロジェクト。 Sony Spresenseメインボードと拡張用IMUのCXD5602PWBIMUを使って、慣性航法による位置推定を行うプロジェクトです。加速度と角速度を1920 Hzで読み取り、地球固定のNWU座標系で姿勢、速度、位置を推定します。処理はSpresenseの2つのコアに分担されており、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ボードで低コストな慣性デッドレコニングを試す。 Arduinoに依存しないC++によるZUPTやセンサーフュージョンの実装を学ぶ。 Spresense IMUのシリアル出力をROS 2に入力し、RVizで可視化する。
- cxd5602pwbimu_localizer_arduino はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/hijimasa/cxd5602pwbimu_localizer_arduino
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
四足歩行ロボットの犬や猫をプログラミングするための、歩容制御、サーボ、IMU連携に対応したArduino・Raspberry Pi向けオープンソースフレームワーク。
ESP32を搭載し、OLEDの顔とサーボ駆動の歩行機能を備えた、オープンソースの3Dプリント対応ミニ四足歩行ロボット。
ESP8266/ESP32ボード向けの代替ファームウェア。Web UIでの設定、OTAアップデート、ローカル自動化、MQTT・HTTP・Serial・KNXによる制御に対応。
LLVMを基盤とするGoコンパイラ。マイクロコントローラー、WebAssembly(WASM/WASI)、コマンドラインツール向けにビルドできます。
組み込み開発向けのクロスプラットフォームなコマンドラインツール兼ビルドシステム。ライブラリ管理、複数のボードやフレームワーク、デバッグ、ユニットテストに対応します。