ArduPilotパラメータチェックツール

ArduPilot Parameter Checker 使い方

1. 概要

ArduPilot Parameter Checker は、ArduPilot の .param / .parm / .params ファイルを読み込み、選択した機体フレーム・ファームウェアバージョンに合わせてパラメータを確認するツールです。

主な確認内容は以下です。

  • 機体種類、フレーム種類、ファームウェアバージョンの確認

  • ArduPilot ParameterRepository のメタデータに基づく範囲、選択値、bitmask の確認

  • 基準パラメータとの差分確認

  • デフォルト値から変更されたパラメータの表示

  • デフォルト値から2倍以上、または1/2以下に変化したパラメータの強調表示

  • フェイルセーフ、バッテリー、アーミング、安全機能などの危険設定確認

  • フレームに関係しないパラメータを DANGER と誤判定しないためのフレーム別除外

本ツールはパラメータを読み取って確認するためのツールです。機体への書き込みは行いません。

2. 起動方法

EXE版

ArduPilotParameterChecker.exe をダブルクリックして起動します。

Python版

Python 3.8 で以下を実行します。

py -3.8 ardupilot_param_checker.py

CLI で実行する場合の例です。

py -3.8 ardupilot_param_checker.py --no-gui --vehicle Rover --version 4.6.3 --param C:\temp\vehicle.param --csv report.csv

3. 基本操作

  1. Vehicle を選択します。
    対象機体に合わせて Plane / QuadPlane / Copter / SingleCopter / Rover / Boat / Sub を選択します。

  2. Firmware version を選択または入力します。
    例:4.6.3
    ArduPilot Docs のパラメータページは詳細バージョンを使うため、できるだけ 4.6.3 のような patch version を指定します。

  3. 必要に応じて Get stable version を押します。
    firmware.ardupilot.org の stable 配布情報から詳細バージョンを取得します。

  4. Download metadata を押します。
    ArduPilot ParameterRepository から選択したファームウェア系統の apm.pdef.json を取得します。

  5. Parameter file に確認対象の .param ファイルを指定します。

  6. 必要に応じて Baseline default file に基準 .param ファイルを指定します。
    基準ファイルを指定すると、変更された値、差分倍率、2倍以上または1/2以下の差分を確認できます。

  7. Run check を押します。

  8. 結果を確認します。
    DANGER、WARN、MODIFIED、INFO、OK のチェックボックスで表示対象を絞り込めます。

  9. Parameter search にキーワードを入れると、パラメータ名に一致する行だけ表示できます。
    例:BATT, ARMING, Q_, ATC_, FENCE

  10. 行をダブルクリックすると、説明、値の意味、範囲、Docsリンク、Repositoryリンクを確認できます。

  11. Export CSV で確認結果をCSV出力できます。

4. 対象フレーム

GUIで選択できる対象は以下です。

GUI選択使用するArduPilotファーム/メタデータ主な対象PlanePlane固定翼PlaneQuadPlanePlaneVTOL/QuadPlaneCopterCopterQuad、Hexa、Octa、Y6、Triなど通常CopterSingleCopterCopterSingleCopter、CoaxCopterRoverRover地上RoverBoatRoverBoat、SailboatSubSubArduSub

内部的には以下も判定対象に含まれます。

内部判定対象判定条件Traditional HelicopterCopter系 FRAME_CLASS=6/11/13CoaxCopterCopter系 FRAME_CLASS=9SailboatRover/Boat系で SAIL_ENABLE=1BalanceBotRover系 FRAME_CLASS=3

5. フレーム毎のチェック内容

Plane

Planeは固定翼として確認します。

  • Plane系メタデータの範囲、選択値、bitmask確認

  • ARSPD_ENABLE=1 かつ ARSPD_USE=0 の場合はINFO表示

  • Q_ENABLE が無効または未設定の場合、Q_* などQuadPlane/VTOL用パラメータは硬い範囲チェックから除外

  • Vehicle=Plane なのに Q_ENABLE が有効な場合は、QuadPlane選択を促すWARN表示

QuadPlane

QuadPlaneはPlaneファームを使用しますが、VTOL機能を有効なものとして確認します。

  • Q_ENABLE が有効か確認

  • Q_FRAME_CLASS が存在するか確認

  • Q_M_PWM_MIN と Q_M_PWM_MAX の大小関係確認

  • Q_*, TILT_*, VTOL_* などVTOL関連パラメータを有効機能として確認

  • Q_ENABLE が無効なのにQuadPlaneを選択している場合はDANGER表示

Copter

Copterは通常のマルチコプターとして確認します。

  • FRAME_CLASS, FRAME_TYPE の確認

  • ANGLE_MAX が大きすぎる場合のWARN表示

  • RTL_ALT=0 の場合、現在高度でRTLするため障害物クリアランス確認のWARN表示

  • Traditional Helicopter用の H_* パラメータは、ヘリフレームでない場合は硬い範囲チェックから除外

  • SingleCopter/CoaxCopter用パラメータは、FRAME_CLASS=8/9 でない場合は硬い範囲チェックから除外

SingleCopter

SingleCopterはCopterファームを使用します。

  • FRAME_CLASS=8 または FRAME_CLASS=9 か確認

  • FRAME_CLASS がSingleCopter/CoaxCopter以外の場合はWARN表示

  • SingleCopter/CoaxCopter固有パラメータを有効機能として確認

  • 通常Copter選択時に FRAME_CLASS=8/9 が検出された場合は、SingleCopter選択を促すINFO表示

Rover

Roverは地上車両として確認します。

  • FRAME_CLASS=1 をRoverとして扱う

  • FRAME_CLASS=2 の場合はBoat選択を促すINFO表示

  • FRAME_CLASS=3 の場合はBalanceBotとして内部判定

  • ATC_SAIL_*, SAIL_* はSailboat無効時に硬い範囲チェックから除外

  • ATC_BAL_*, BAL_* はBalanceBot以外では硬い範囲チェックから除外

  • FS_ACTION=0 の場合、フェイルセーフ動作無効としてWARN表示

  • CRUISE_SPEED<=0 の場合、走行速度設定としてWARN表示

  • Fence無効時の FENCE_TOTAL=0、Dock無効時の DOCK_*、未使用の EK3_DRAG_* などは誤DANGERにならないよう除外

Boat / Sailboat

BoatはRoverファームを使用します。

  • FRAME_CLASS=2 か確認

  • Vehicle=Boat なのに FRAME_CLASS=2 でない場合はWARN表示

  • SAIL_ENABLE=1 の場合、Sailboat関連パラメータを有効機能として確認

  • SAIL_ENABLE が無効または未設定の場合、ATC_SAIL_*, SAIL_*, WINDVANE_* などは硬い範囲チェックから除外

  • Rover/Boat共通のフェイルセーフ、バッテリー、Fence、ログ設定を確認

Sub

SubはArduSubとして確認します。

  • Sub系メタデータの範囲、選択値、bitmask確認

  • FS_LEAK_ENABLE=0 の場合、リークフェイルセーフ無効としてWARN表示

  • フェイルセーフ、バッテリー、ログ、EKF/AHRS関連の共通安全チェック

6. フレーム共通のチェック内容

すべてのVehicleで以下を確認します。

メタデータチェック

ArduPilot ParameterRepository の apm.pdef.json に基づいて確認します。

  • パラメータがメタデータに存在するか

  • 値が Range の下限・上限内か

  • Values の選択値に含まれるか

  • Bitmask に未定義bitが含まれないか

  • Description内に危険な注意文がある場合の追加判定

基準値との差分チェック

Baseline default file を指定した場合に確認します。

  • 基準値から変更されている場合は MODIFIED

  • 基準値の2倍以上の場合は DANGER

  • 基準値の1/2以下の場合は DANGER

  • 基準値が0で現在値が非0の場合は WARN

正確な比較を行うには、同じVehicle、同じファームウェアバージョン、同じボード、同じフレーム設定の基準ファイルを使用してください。

アーミング、Pre-Arm関連

  • ARMING_SKIPCHK が有効な場合はDANGER

  • ARMING_CHECK=0 の場合はDANGER

  • ARMING_CRSDP_IGN=1 の場合はDANGER

RC / GCS / フェイルセーフ関連

  • FS_THR_ENABLE=0 はWARN

  • FS_THR_VALUE が通常範囲外の場合はDANGER

  • FS_GCS_ENABLE=0 はWARN

  • FS_GCS_TIMEOUT が極端に短い場合はWARN

  • FS_OPTIONS の継続飛行系bitはWARN

  • RC_OPTIONS で受信機フェイルセーフを無視する設定はDANGERまたはWARN

バッテリー関連

  • BATT_MONITOR=0 はWARN

  • 低電圧、低容量フェイルセーフが両方無効の場合はWARN

  • BATT_FS_LOW_ACT=0 はWARN

  • BATT_FS_LOW_ACT=5 または BATT_FS_CRT_ACT=5 はDANGER

EKF / AHRS / GPS関連

  • FS_EKF_ACTION=0 はWARN

  • FS_EKF_THRESH=0 はDANGER

  • AHRS_EKF_TYPE=0 はDANGER

  • AHRS_GPS_USE=0 はDANGER

Fence関連

  • Fenceが無効だがFenceパラメータが存在する場合はINFO

  • FENCE_ENABLE=1 かつ FENCE_ACTION=0 はWARN

  • FENCE_MARGIN が小さい場合はWARN

ログ関連

  • LOG_BITMASK=0 はWARN

  • LOG_BACKEND_TYPE=0 はWARN

PID / コントローラ関連

  • _P, _I, _D, _FF, _IMAX が負値の場合はDANGER

  • ATC_, PSC_, RATE_ 系で極端に大きい値はWARN

7. 留意事項

  1. 本ツールの結果だけで飛行・走行可否を判断しないでください。
    DANGER/WARNが無くても、機体設計、配線、センサ、フェイルセーフ試験、実機確認が必要です。

  2. DANGERは原則として運用前に解消してください。
    意図的な設定である場合も、理由、運用条件、安全対策を記録してください。

  3. ArduPilotのメタデータ範囲は、全フレームで常に有効とは限りません。
    Planeファーム内のQuadPlaneパラメータ、Roverファーム内のBoat/Sailboat/BalanceBotパラメータなど、同じファーム内に複数フレーム用パラメータが含まれるため、本ツールでは無効フレームのパラメータをINFOとして除外します。

  4. 基準ファイルは必ず条件を合わせてください。
    ファームウェアバージョン、機体種別、ボード、フレーム、初期化状態が違う基準ファイルと比較すると、差分判定が正しくありません。

  5. パラメータファイルのコメントにVehicleやFirmwareが無い場合があります。
    その場合、本ツールは選択中のVehicle/Firmware、またはパラメータ名の傾向から推定します。推定結果は必ず確認してください。

  6. Docsリンクには詳細バージョンが必要です。
    4.6 ではなく 4.6.3 のような詳細バージョンを指定してください。必要に応じて Get stable version を使用してください。

  7. メタデータダウンロードに失敗する場合があります。
    社内ネットワーク、Proxy、Firewall、GitHub接続制限などで失敗する場合は、別途 apm.pdef.json を保存し、Load metadata JSON から読み込んでください。

  8. プロペラサイズは標準パラメータに含まれないことがあります。
    コメントやカスタムパラメータに記載が無い場合、INFO欄では不明になります。

  9. CSV出力はレビュー記録として利用できます。
    DANGER/WARN/MODIFIEDを中心に、設定理由や対応結果を別途記録してください。

  10. 最終確認はArduPilot公式ドキュメント、機体仕様、実機試験で行ってください。
    本ツールはレビュー支援ツールであり、安全性を保証するものではありません。


いいなと思ったら応援しよう!