ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

obstacle_detectorとUST10-LXのデータの受け渡しについて

indigo

#1

以前はgoogle groupで何度も利用させていただき大変助けていただきました。
今後、Discourseでもよろしくお願いいたします。

さて、今回の質問ですがobstacle_detectorパッケージ
https://github.com/tysik/obstacle_detector のdemo.launch により
UST10-LXのbagファイルを用いて物体認識をしようと思っているのですが

urg_node https://github.com/ros-drivers/urg_node
で得たトピック名をrear_scanとしてbagファイルに保存し

catkin_ws/src/obstacle_detector-master/resources/scans_demo.bag
を計測したbagファイルに置き換えることで同じようにできるのではないかと考え,
bagファイルを置き換えた後に

User_name-CF-SX2JDHYS:~/catkin_ws/src/obstacle_detector-master/launch$ roslaunch demo.launch

と実行したところ添付した画像のようにrvizでRear ScannerがStatus errorとなることを確認しております。

また、Fixed Frameを map→laserに変更したところ
Rear Scannerは表示できましたが他の表示がうまく行きません
Global Status>>Fixed Frame (Fixed Frame[laser] does not exist)
Grid>>Status (Error)
Obstacles Status(Error)
TF Status(Warn)など

bag ファイルの情報を確認したところ

元々のbagファイル
User_name-CF-SX2JDHYS:~/catkin_ws/src/obstacle_detector-master/resources$ rosbag info scans_demo2.bag
path: scans_demo2.bag
version: 2.0
duration: 33.0s
start: Jan 10 2017 05:00:48.55 (1483992048.55)
end: Jan 10 2017 05:01:21.55 (1483992081.55)
size: 1.9 MB
messages: 661
compression: none [3/3 chunks]
types: sensor_msgs/LaserScan [90c7ef2dc6895d81024acba2ac42f369]
topics: /front_scan 331 msgs : sensor_msgs/LaserScan
/rear_scan 330 msgs : sensor_msgs/LaserScan

置き換えたbagファイル
User_name-CF-SX2JDHYS:~/catkin_ws/src/obstacle_detector-master/resources$ rosbag info scans_demo.bag
path: scans_demo.bag
version: 2.0
duration: 11.4s
start: Jan 16 2018 15:10:45.24 (1516083045.24)
end: Jan 16 2018 15:10:56.64 (1516083056.64)
size: 3.8 MB
messages: 456
compression: none [6/6 chunks]
types: sensor_msgs/LaserScan [90c7ef2dc6895d81024acba2ac42f369]
topics: /rear_scan 456 msgs : sensor_msgs/LaserScan

何か解決方法がありましたらご教示いただければ幸いです。
宜しくお願いいたします。


#2

解決として、まずはもう少し情報が必要です。

RVizで各ビジュアライザーが「Status: Error」になると、矢印をクリックするとより詳しいエラー情報が見えます。それを見せてください。

もともとのbagファイルと置き換えたbagファイルを両方再生して、再生中にTFで全フレーム名を教えてください。


#3

gbiggs様ご返事有り難うございます。
フレーム名は置き換える前後いづれも
front_scanner
map
rear_scanner
robot
でした。

エラーの詳細についてですが
Rear Scanner
Status:Error
Transform[sender=unknown_publisher]
For frame [laser]:frame does not existとなっており、

UST10-LXのデータを記録した際はFixed frameはlaserになっておりました。


#4

bagファイルにフレーム情報は入っていません。demo.launchを見たら、static_transform_publisherノードでロボットの構造を固定したように設置しています。下記のような構造です。

map --> robot --> front_scanner
              |
              --> rear_scanner

obstacle_detectordemo.launchとドキュメンテーションを見たら、レーザセンサー2台ようのシステムだと分かりました。置き換えのbagファイルでそのまま利用できません。demo.launchは最初にscans_mergerノードで2台のレーザセンサーのデータをマージして、その結果をobstacle_extractorノードへ渡します。

置き換えのbagファイルで利用するために下記の変更が必要です。

  • タスクフレーム構造の変更(demo.launchの7〜9行の変更で、9行を削除して8行のターゲットフレームをlaserに変更する)
  • scans_mergerノードをなくす
  • bagファイルからのレーザデータトピック名を/scanへのremappingする

ただ、scans_mergerノードはデータをマージすることだけではなくて、距離と位置によってフィルタリングも行うので、demoのbagファイルと違って置き換えbagファイルの場合は全データが利用されます。


#5

gbiggs様返事が遅れて申し訳ありません。

教わった通りbagファイルのトピック名を/scanへremappingへ変更
launchファイルも以下のように変更しました。

←mapをlaserに変更

←削除

←Scans_mergerノードをコメントアウト

・・・・
・・・・
・・・・
としたところ


以下のようなエラーメッセージが表示されうまく行きませんでした。

度々尋ねるばかりで申し訳ありません。


#6

前回の投稿でlaunchファイルの記述がうまく表示されていなかったようです。
申し訳ございません。
以下が変更したところです。

2 <launch> 
3 
4   <param name="use_sim_time" value="true"/>   
5   <node name="scans_demo" pkg="rosbag" type="play" output="screen" args="--clock --loop $(find obstacle_detector)/resources/scans_demo.bag"/> 
6 
 
7   <node name="map_to_scanner_base" pkg="tf2_ros" type="static_transform_publisher" args="0 0 0 0 0 0 map robot"/>   ←削除
8   <node name="scanner_base_to_front_scanner" pkg="tf2_ros" type="static_transform_publisher" args="0.23565 -0.0005 0.06795 0 0 0 robot front_scanner"/>     ←robotをlaserに
9   <node name="scanner_base_to_rear_scanner" pkg="tf2_ros" type="static_transform_publisher" args="-0.23832 0.00542 0.09888 3.141592 0 0 robot rear_scanner"/> 
10 
 
11   <node name="nodelet_manager" pkg="nodelet" type="nodelet" args="manager" output="screen"> 
12     <param name="num_worker_threads" value="20"/> 
13   </node> 
14 
 <!--          scans_mergerノードをコメントアウト
15   <node name="scans_merger" pkg="nodelet" type="nodelet" args="load obstacle_detector/ScansMerger nodelet_manager"> 
16     <param name="active"            value="true"/> 
17     <param name="publish_scan"      value="false"/> 
18     <param name="publish_pcl"       value="true"/> 
19 
 
20     <param name="ranges_num"        value="1000"/> 
21 
 
22     <param name="min_scanner_range" value="0.05"/> 
23     <param name="max_scanner_range" value="10.0"/> 
24 
 
25     <param name="min_x_range"       value="-10.0"/> 
26     <param name="max_x_range"       value="10.0"/> 
27     <param name="min_y_range"       value="-10.0"/> 
28     <param name="max_y_range"       value="10.0"/> 
29 
 
30     <param name="fixed_frame_id"    value="map"/> 
31     <param name="target_frame_id"   value="robot"/> 
32   </node> 
33 -->

宜しくお願いいたします。


#7

launchファイルの全体を投稿してください。一部だけだとわかりにくくて、自分で試すこともできません。

できれば使っているbagファイルもアップしてください。