ヘルプ センターヘルプ センター
rosbagreader
選択したメッセージ プロパティの時系列オブジェクトの作成
R2019b 以降
[ts,cols] = timeseries(bag)
[ts,cols] = timeseries(bag,property)
[ts,cols] = timeseries(bag,property,...,propertyN)
例
[ts,cols] = timeseries(bag) は、すべての数値およびスカラー メッセージ プロパティの時系列を作成します。この関数は、現在の BagSelection または rosbagreader オブジェクト bag 内の各メッセージを ts として評価します。cols 出力引数には、プロパティ名が文字ベクトルの cell 配列として格納されます。
ts
cols
bag
BagSelection
返される時系列オブジェクトは、メッセージ全体ではなく特定のメッセージ プロパティのみを格納しているため、メモリ効率に優れています。
[ts,cols] = timeseries(bag,property) は、特定のメッセージ プロパティ property の時系列を作成します。プロパティ名は入れ子にすることもできます。たとえば、ロボットの x 軸上の位置を表す Pose.Pose.Position.X を指定できます。
property
Pose.Pose.Position.X
[ts,cols] = timeseries(bag,property,...,propertyN) は、範囲を限定したメッセージ プロパティの時系列を作成します。各プロパティは、時系列オブジェクト内の異なる列です。
すべて折りたたむ
rosbag を読み込みます。ファイル パスを指定します。
bag = rosbag('ex_multiple_topics.bag');
特定のトピックを選択します。時系列では単一のトピックのみがサポートされます。
bagSelection = select(bag,'Topic','/odom');
'/odom' トピックの時系列を作成します。
'/odom'
ts = timeseries(bagSelection);
'/odom' トピックにおける 'Pose.Pose.Position.X' プロパティの時系列を作成します。
'Pose.Pose.Position.X'
ts = timeseries(bagSelection,'Pose.Pose.Position.X');
'/odom' トピックにおけるすべての 'Twist' 角度プロパティの時系列を作成します。
'Twist'
ts = timeseries(bagSelection,'Twist.Twist.Angular.X', ... 'Twist.Twist.Angular.Y', 'Twist.Twist.Angular.Z');
rosbag ログ ファイルを読み込み、選択した条件に基づいて特定のメッセージを解析します。
rosbag ログ ファイルにあるすべてのメッセージの rosbagreader オブジェクトを作成します。
bagMsgs = rosbagreader("ex_multiple_topics.bag")
bagMsgs = rosbagreader with properties: FilePath: '/tmp/Bdoc24a_2511836_3320146/tpd9b150c7/ros-ex26633229/ex_multiple_topics.bag' StartTime: 201.3400 EndTime: 321.3400 NumMessages: 36963 AvailableTopics: [4x3 table] AvailableFrames: {0x1 cell} MessageList: [36963x4 table]
メッセージのサブセットを、タイムスタンプとトピックに基づいて選択します。
bagMsgs2 = select(bagMsgs,... Time=[bagMsgs.StartTime bagMsgs.StartTime + 1],... Topic='/odom')
bagMsgs2 = rosbagreader with properties: FilePath: '/tmp/Bdoc24a_2511836_3320146/tpd9b150c7/ros-ex26633229/ex_multiple_topics.bag' StartTime: 201.3400 EndTime: 202.3200 NumMessages: 99 AvailableTopics: [1x3 table] AvailableFrames: {0x1 cell} MessageList: [99x4 table]
選択内容にあるメッセージを cell 配列として取得します。
msgs = readMessages(bagMsgs2)
msgs=99×1 cell array {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} {1x1 Odometry} ⋮
特定のメッセージ プロパティを時系列として返します。
ts = timeseries(bagMsgs2,... 'Pose.Pose.Position.X', ... 'Twist.Twist.Angular.Y')
timeseries Timeseries contains duplicate times. Common Properties: Name: '/odom Properties' Time: [99x1 double] TimeInfo: tsdata.timemetadata Data: [99x2 double] DataInfo: tsdata.datametadata
rosbag のメッセージのインデックス。BagSelection または rosbagreader オブジェクトとして指定します。BagSelection オブジェクトは、rosbag を呼び出すことによって取得できます。
rosbag
プロパティ名。string スカラーまたは文字ベクトルとして指定します。複数のプロパティを指定できます。各プロパティ名は個別の入力で、時系列オブジェクト内の異なる列を表します。
Time
時系列。Time オブジェクト ハンドルとして返されます。
プロパティ名のリスト。文字ベクトルの cell 配列として返されます。
R2019b で導入
rosbag | select | readMessages | rosbagreader
select
readMessages
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office