メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ardupilotreader

ArduPilot ログ ファイルの読み取り

R2024a 以降

説明

ardupilotreader オブジェクトは ArduPilot® のデータフラッシュ ログ ファイル (.bin) を読み取ります。このオブジェクトは、ファイルのログの開始時間と終了時間、使用可能なメッセージ、およびログ ファイルにあるメッセージの合計数を保存します。

作成

説明

arduObj = ardupilotreader(filePath) は、指定されたファイル名またはファイル パスから ArduPilot のデータフラッシュ ログ ファイルを読み取り、そのファイルに関する情報を含むオブジェクトを返します。

プロパティ

すべて展開する

この プロパティ は読み取り専用です。

ArduPilot のデータフラッシュ ログ ファイルの名前。string スカラーまたは文字ベクトルとして指定されます。FileName は、filePath 引数に指定されたパスです。

データ型: char | string

この プロパティ は読み取り専用です。

ArduPilot のデータフラッシュ ログ ファイル内にある、システム開始時間からログ記録の開始時間までのオフセット。'hh:mm:ss.SSSSSS' 形式の duration オブジェクトとして指定されます。

データ型: duration

この プロパティ は読み取り専用です。

ArduPilot のデータフラッシュ ログ ファイルにログ記録された、最終タイムスタンプをもつメッセージのタイムスタンプ。'hh:mm:ss.SSSSSS' 形式の duration オブジェクトとして指定されます。

データ型: duration

この プロパティ は読み取り専用です。

ログ記録されたすべてのメッセージの table。次のフィールドをもつ table として指定されます。

  • MsgName

  • InstanceID

  • StartTimestamp

  • LastTimestamp

  • NumMessages

データ型: table

この プロパティ は読み取り専用です。

ログ ファイル内にあるメッセージの合計数

データ型: double

オブジェクト関数

readMessagesRead messages from ArduPilot® log file
readParametersRead parameter values from ArduPilot® log file
readLoggedOutputRead logged output messages from ArduPilot® log file

すべて折りたたむ

BIN ファイルを読み込みます。

bin = ardupilotreader('flight.bin');

すべてのメッセージを読み取ります。

msg = readMessages(bin);

メッセージを選択する期間を指定します。

d1 = duration([0 1 00],'Format','hh:mm:ss.SSSSSS');
d2 = d1 + duration([0 0 55],'Format','hh:mm:ss.SSSSSS');

期間 [d1 d2] の姿勢メッセージを読み取ります。

attMsg = readMessages(bin,'MessageName',{'ATT'},'Time',[d1 d2]);

メッセージから姿勢データを抽出します。

AttData = attMsg.MsgData{1,1}
AttData=534×10 timetable
       timestamp           TimeUS         DesRoll    Roll    DesPitch    Pitch    DesYaw     Yaw      ErrRP    ErrYaw    AEKF
    _______________    _______________    _______    ____    ________    _____    ______    ______    _____    ______    ____

    00:01:01.669489    00:01:01.669489       0       0.06       0        0.05     358.94    358.95      0        0        3  
    00:01:01.769448    00:01:01.769448       0       0.06       0        0.05     358.95    358.96      0        0        3  
    00:01:01.869408    00:01:01.869408       0       0.06       0        0.05     358.95    358.96      0        0        3  
    00:01:01.969368    00:01:01.969368       0       0.06       0        0.05     358.95    358.96      0        0        3  
    00:01:02.069328    00:01:02.069328       0       0.06       0        0.05     358.96    358.97      0        0        3  
    00:01:02.169288    00:01:02.169288       0       0.06       0        0.05     358.96    358.97      0        0        3  
    00:01:02.269248    00:01:02.269248       0       0.06       0        0.05     358.96    358.97      0        0        3  
    00:01:02.369208    00:01:02.369208       0       0.06       0        0.05     358.97    358.98      0        0        3  
    00:01:02.469168    00:01:02.469168       0       0.06       0        0.05     358.97    358.98      0        0        3  
    00:01:02.569128    00:01:02.569128       0       0.07       0        0.05     358.97    358.98      0        0        3  
    00:01:02.669088    00:01:02.669088       0       0.07       0        0.05     358.98    358.99      0        0        3  
    00:01:02.769048    00:01:02.769048       0       0.07       0        0.05     358.98    358.99      0        0        3  
    00:01:02.869008    00:01:02.869008       0       0.07       0        0.05     358.98    358.99      0        0        3  
    00:01:02.968968    00:01:02.968968       0       0.07       0        0.06     358.98    358.99      0        0        3  
    00:01:03.068928    00:01:03.068928       0       0.07       0        0.06     358.99       359      0        0        3  
    00:01:03.168889    00:01:03.168889       0       0.07       0        0.06     358.99       359      0        0        3  
      ⋮

すべてのパラメーター値を読み取ります。

params = readParameters(bin)
params=1312×4 timetable
       timestamp           TimeUS                Name           Value    Default
    _______________    _______________    __________________    _____    _______

    00:01:01.651163    00:01:01.651163    "FORMAT_VERSION"       120       120  
    00:01:01.651163    00:01:01.651163    "SYSID_THISMAV"          1         1  
    00:01:01.651163    00:01:01.651163    "SYSID_MYGCS"          255       255  
    00:01:01.651163    00:01:01.651163    "PILOT_THR_FILT"         0         0  
    00:01:01.651163    00:01:01.651163    "PILOT_TKOFF_ALT"        0         0  
    00:01:01.651163    00:01:01.651163    "PILOT_THR_BHV"          0         0  
    00:01:01.651163    00:01:01.651163    "SERIAL0_BAUD"         115       115  
    00:01:01.651163    00:01:01.651163    "SERIAL0_PROTOCOL"       2         2  
    00:01:01.651163    00:01:01.651163    "SERIAL1_PROTOCOL"       2         2  
    00:01:01.651163    00:01:01.651163    "SERIAL1_BAUD"          57        57  
    00:01:01.651163    00:01:01.651163    "SERIAL2_PROTOCOL"       2         2  
    00:01:01.651163    00:01:01.651163    "SERIAL2_BAUD"          57        57  
    00:01:01.651163    00:01:01.651163    "SERIAL3_PROTOCOL"       5         5  
    00:01:01.651163    00:01:01.651163    "SERIAL3_BAUD"          38        38  
    00:01:01.651163    00:01:01.651163    "SERIAL4_PROTOCOL"       5         5  
    00:01:01.651163    00:01:01.651163    "SERIAL4_BAUD"          38        38  
      ⋮

ログ記録されたすべての出力メッセージを読み取ります。

loggedoutput = readLoggedOutput(bin);

期間 [d1 d2] にログ記録された出力メッセージを読み取ります。

log = readLoggedOutput(bin,'Time',[d1 d2])
log=16×2 timetable
       timestamp           TimeUS                              Message                     
    _______________    _______________    _________________________________________________

    00:01:01.651163    00:01:01.651163    "ArduCopter V4.3.3 (34e8e02c)"                   
    00:01:01.651163    00:01:01.651163    "d6384d347e3c476ea8702e6a78ef3590"               
    00:01:01.651163    00:01:01.651163    "Param space used: 323/4096"                     
    00:01:01.651163    00:01:01.651163    "RC Protocol: SITL"                              
    00:01:01.651163    00:01:01.651163    "New mission"                                    
    00:01:01.651163    00:01:01.651163    "New rally"                                      
    00:01:01.651163    00:01:01.651163    "New fence"                                      
    00:01:01.651163    00:01:01.651163    "Frame: QUAD/PLUS"                               
    00:01:01.651163    00:01:01.651163    "GPS 1: detected as u-blox at 230400 baud"       
    00:01:07.788707    00:01:07.788707    "Mission: 1 WP"                                  
    00:01:08.014449    00:01:08.014449    "EKF3 IMU0 MAG0 in-flight yaw alignment complete"
    00:01:08.019448    00:01:08.019448    "EKF3 IMU1 MAG0 in-flight yaw alignment complete"
    00:01:29.004384    00:01:29.004384    "Reached command #1"                             
    00:01:29.004384    00:01:29.004384    "Mission: 2 WP"                                  
    00:01:48.199202    00:01:48.199202    "Reached command #2"                             
    00:01:48.199202    00:01:48.199202    "Mission: 3 WP"                                  

バージョン履歴

R2024a で導入