キャリブレーション(モーター / IMU)
このプロジェクトでは、実機の個体差を吸収するためにいくつかの補正値(JSON)を用意しています。
- モーター補正:
configs/motor_config.json(trim) - IMU 補正:
configs/imu_config.json(gx_off/gy_off/gz_offなど)
モーター(trim)のキャリブレーション
概要
左右のモーター出力差により「まっすぐ走らない」場合に、trim で左右の速度に係数を掛けて補正します。
実行時は src/dmc_ai_mobility/app/robot_node.py が configs/motor_config.json の trim を読み込み、速度指令に反映します。
手順(簡易)
- 安全のため、車体を浮かせる/十分なスペースを確保する(転倒・暴走に注意)。
pigpioデーモンを起動しておく(環境によりsudo systemctl start pigpiodなど)。- キャリブレーションスクリプトを実行:
PYTHONPATH=src python3 -m dmc_ai_mobility.calibration.motor
- 走行が左右どちらに寄るかを見ながら、スイッチ入力で
TRIMを微調整し、保存して終了します。 configs/motor_config.jsonに保存されます(既存ファイルは上書き)。
補足
- GPIO ピンやスイッチ割り当てはキャリブレーションスクリプト側の設定に依存します(
src/dmc_ai_mobility/calibration/motor.py)。 trimは「0.0 が補正なし」です。大きくし過ぎると逆に曲がるので少しずつ調整してください。
IMU(ジャイロ)オフセットのキャリブレーション
概要
静止状態でもジャイロにバイアス(オフセット)が乗ることがあります。静止状態の平均値を *_off として保存し、読み出し側で差し引く用途を想定しています。
手順(簡易)
- ロボットを水平で動かない場所に置き、完全に静止させます。
- キャリブレーションスクリプトを実行:
PYTHONPATH=src python3 -m dmc_ai_mobility.calibration.imu
configs/imu_config.jsonに保存されます(既存ファイルは上書き)。
補足
src/dmc_ai_mobility/drivers/imu.py は configs/imu_config.json の gx_off/gy_off/gz_off を読み込み、ジャイロ値から差し引きます。