主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

ROSログファイル(rosbag)

はじめに

rosbagまたは包は,ROSメッセージデータを保存するためのROSのファイル形式です。これらの袋は多くの場合,1つ以上のROSトピックにサブスクライブし,受け取ったメッセージデータを効率的なファイル構造で保存することにより作成されます。MATLAB®では,これらのrosbagファイルの読み取り,メッセージデータのフィルター処理や抽出ができます。以下の節では,MATLAB®でのrosbagの構造と,データを抽出するためのワークフローの詳細を説明します。

MATLABのrosbag構造体

rosbagログファイルにアクセスする場合,rosbagを呼び出し,オブジェクトのファイルパスを指定します。MATLABはその後、rosbag からのすべてのメッセージのインデックスが含まれるBagSelectionオブジェクトを作成します。

BagSelectionオブジェクトには,rosbagに関連する以下のプロパティがあります。

  • FilePath: rosbagファイルの絶対パスの文字ベクトル。

  • 开始时间:最初のメッセージが記録された時間を表すスカラー。

  • EndTime:最後のメッセージが記録された時間を表すスカラー。

  • NumMessages:ファイルに含まれるメッセージの数を表すスカラー。

  • AvailableTopics:包に記録されたトピックとメッセージタイプのリスト。これは各トピックのメッセージの数,メッセージタイプ,メッセージの定義を一覧表示する表データとして保存されます。表データ型の詳細については,表内のデータへのアクセスを参照してください。この表の出力例を以下に示します。

    ans = NumMessagesMessageTypeMessageDefinition___________ ______________________ _________________ /clock 12001 rosgraph_msgs/ clock [1x185 char] /gazebo/link_states 11999 gazebo_msgs/LinkStates [1x1247 char] /odom 11998 nav_msgs/Odometry [1x2918 char] /scan 965 sensor_msgs/LaserScan [1x2123 char]
  • MessageList:包にあるすべてのメッセージのリスト。メッセージが記録された時点のタイムスタンプで行が並べ替えられます。このリストにはインデックス付けができ,リストの一部をこの方法で選択できます。选择を呼び出すと,タイムスタンプ,トピック,またはメッセージタイプに基づきサブセットを選択できます。

また,BagSelectionオブジェクトにはすべてのメッセージのインデックスが格納されていることに注意してください。ただし,データの抽出には関数を使用しなければなりません。これらの情報の抽出の詳細について,インデックスに基づいてメッセージを细胞配列として取得する場合はreadMessagesを,指定したプロパティのデータを時系列として読み取る場合はtimeseriesを参照してください。

rosbagの選択のワークフロー

rosbagを扱う際,データの抽出方法について一般的な手順があります。

  • rosbagを読み込むrosbagとファイルパスを呼び出し,ファイルを読み込んでBagSelectionを作成します。

  • 使用可能なメッセージを調べるBagSelectionのプロパティ(AvailableTopicsNumMessages开始时间EndTimeMessageList)を調べ,解析のためにメッセージのサブセットを選択する方法を決めます。

  • メッセージを選択する选择を呼び出して,目的のプロパティに基づきメッセージを選択します。

  • メッセージデータを抽出するreadMessagesまたはtimeseriesを呼び出し,メッセージデータを细胞配列または時系列データ構造体として取得します。

  • データを可視化,解析,または処理する:抽出したデータを特定の用途のために使用します。データをプロットしたり,データを処理するためのアルゴリズムを開発できます。

以下の図も,このワークフローを示したものです。

制限

MATLABでは,rosbagのサポートについていくつかの制限があります。

  • MATLABでは,圧縮されていないrosbagのみ解析可能です。圧縮されたrosbagを解凍するためのツールについては,ROS维基を参照してください。

  • v2.0形式のrosbagのみがサポートされます。袋の各種形式の詳細については,ROS维基を参照してください。

  • rosbagのファイルパスは常にアクセス可能でなければなりません。メッセージ選択処理ではデータは取得されないため,メッセージデータにアクセスしたときにファイルが読み取り可能である必要があります。

参考

||

関連するトピック