LoginSignup
1
5

More than 5 years have passed since last update.

ROS Kineticで、bagファイル内の動画再生、情報取得

Last updated at Posted at 2018-10-06

動機

Intel RealSense D435などで撮影した動画、デプス情報などは、bagファイルで出力することができる。そこで、bagファイルを、ROS上で再生したり情報を取得したりして、画像処理をしたいので、bagファイル周辺の備忘録を残しておく。
rosbagへの保存はできているものとして、ファイルがあるところからスタート。
保存方法などは、いずれ。

環境

  • Ubuntu 16.04LTS
  • ROS Kinetic Kame

参考情報

・ROSではじめるロボットプログラミング 小倉崇著 工学社

bagファイルの確認

まずは、rosbag内の情報を確認する。

$ rosbag info xxxx.bag

と実行することで、以下のような情報が得られる。

$ rosbag info xxxx.bag
path:         xxxx.bag
version:      2.0
duration:     6:27s (387s)
start:        Jan 01 1970 09:00:00.00 (0.00)
end:          Jan 01 1970 09:06:27.47 (387.47)
size:         5.0 GB
messages:     25547
compression:  lz4 [4246/4246 chunks; 69.24%]
uncompressed: 7.3 GB @ 19.3 MB/s
compressed:   5.0 GB @ 13.3 MB/s (69.24%)
types:        diagnostic_msgs/KeyValue  [cf57fdc6617a881a88c16e768132149c]
              geometry_msgs/Transform   [ac9eff44abf714214112b05d54a3cf9b]
              realsense_msgs/StreamInfo [311d7e24eac31bb87271d041bf70ff7d]
              sensor_msgs/CameraInfo    [c9a58c1b0b154e0e6da7578cb991d214]
              sensor_msgs/Image         [060021388200f6f0f447d0fcd9c64743]
              std_msgs/Float32          [73fcbf46b49191e672908e50842a83d4]
              std_msgs/String           [992ce8a1687cec8c8bd883ec73ca41d1]
              std_msgs/UInt32           [304a39449588c7f8ce2df6e8001c5fce]
topics:       /device_0/info                                                       9 msgs    : diagnostic_msgs/KeyValue 
              /device_0/sensor_0/Depth_0/image/data                             1417 msgs    : sensor_msgs/Image        
              /device_0/sensor_0/Depth_0/image/metadata                         7085 msgs    : diagnostic_msgs/KeyValue 
              /device_0/sensor_0/Depth_0/info                                      1 msg     : realsense_msgs/StreamInfo
              /device_0/sensor_0/Depth_0/info/camera_info                          1 msg     : sensor_msgs/CameraInfo   
              /device_0/sensor_0/Depth_0/tf/0                                      1 msg     : geometry_msgs/Transform  
              /device_0/sensor_0/Infrared_1/image/data                          1413 msgs    : sensor_msgs/Image        
              /device_0/sensor_0/Infrared_1/image/metadata                      7065 msgs    : diagnostic_msgs/KeyValue 
              /device_0/sensor_0/Infrared_1/info                                   1 msg     : realsense_msgs/StreamInfo
              /device_0/sensor_0/Infrared_1/info/camera_info                       1 msg     : sensor_msgs/CameraInfo   
              /device_0/sensor_0/Infrared_1/tf/0                                   1 msg     : geometry_msgs/Transform  
              /device_0/sensor_0/info                                              1 msg     : diagnostic_msgs/KeyValue 

...

これを最初に確認することで、どのようなトピック、メッセージが保存されているか(保存できるのかも)確認できる。rosbag再生しながら、これらのトピック名を利用して、publishをしたり、subscribeすることができる。

GUIでの確認、再生

次に、rosbagの再生を行うが、ここでは、rqt_bagを利用してみる。以下を実行すると、rosbag内の時系列の情報、位置が事前に確認できる(別端末でroscoreを起動しておく)。

$ rqt_bag xxxx.bag

左に、保存されている(保存可能な)トピック一覧があり、データのあるトピックはバーが表示されている。
次に、そのトピックをpublishして再生することを行おうとすると、たとえば、
/device_0/sensor_1/Color_0/image/data
のうえで、左クリック>publishを選択して、チェックをつけ、メニューバー近くの再生ボタンを押下。

$ rostopic list 

で確認すれば、

$ rostopic list
/device_0/sensor_1/Color_0/image/data
/rosout
/rosout_agg

といった形で、指定したトピックが飛んでいることがわかる。
これが、画像である場合は以下のように、image_viewを使って確認してみる。

$ rosrun image_view image_view image:=/device_0/sensor_1/Color_0/image/data

と実行すれば、image_viewで動画を再生することができる。

今後・次回

つぎは、スクリプトからbagを再生して、publishするところにトライ。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5