ROS Bagファイルから画像データの作成法

ROS Bagファイルから画像データの作成法のメモ

ターンテーブルにオブジェクトを載せ回転させる

  • 使っているターンテーブルはアマゾンで購入したMr.ターンテーブル。これが良いかよくわからないが、速度を2段階で調整でき、いまのところ壊れていない。ただし、下の写真のようにオブジェクトをのせる台が鏡面になっているので板等を敷く必要がある。

  • センサ用のラウンチファイルを起動する。以下はRealsense D435の例
    • $ roslaunch realsense_ros_camera rs_camera.launch
  • センサデータを保存する。例1は日時で自動的に生成されるbagファイルの前にbentoという名前をつけている。例2はbagファイル名を指定している。
    • 例1  $ rosbag  record -a  -o  bento
    • 例2  $ rosbag record -a  -O   bagfile_name
  • Bagファイルから画像データを生成する。image_viewのextract_imagesツールを使う。imageの後はBagファイルから取得したいトピック名、_filename_formatの後は生成するファイル名。以下の場合はimage0000.jpg, image0001.jpg, …と順番にファイルが生成される。
    • $ sudo apt install  ros-kinetic-image-*
    • $ rosrun image_view  extract_images  _sec_per_frame:=0.05 _filename_format:="image%04d.jpg"  image:=/camera/color/image_raw
    • $  rosbag play bagfile_name
  • 以下のコードをbag2jpeg.launchなどと名前をつける。
     
    <launch>
      <node pkg="rosbag" type="play" name="rosbag" required="true" args="$(find image_view)/test.bag"/>
      <node name="extract" pkg="image_view" type="extract_images" respawn="false" required="true" output="screen"  cwd="ROS_HOME">
        <remap from="image" to="/camera/color/image_raw"/>
    <param name="filename_format" value="/home/demulab/images/frame%04d.jpg" />
    </node> 
    </launch>
    
  • rosbag, image_viewのドキュメントは以下を参照。いろいろ便利なオプションがありますね。
  • 終わり。お疲れ様!

コメント

タイトルとURLをコピーしました