Trajectory Server

1,739 views
Skip to first unread message

Hoshito Kudo

unread,
Dec 14, 2014, 8:51:03 AM12/14/14
to ros-jap...@googlegroups.com

連投となってしまい申し訳ありません。

前回こちらの質問をさせていただいた工藤です。


前回の質問にご回答くださった前川さんには、この場を借りて改めてお礼申し上げます。
ありがとうございました。


パラメータが読み込めるようになったのですが、同launchファイルを実行した際に以下のようなエラーが繰り返し発生し、
rvizに何も表示されないという現象が生じてしまい、解決策を見つけることが出来ませんでした。


[ERROR] [1418456808.191036243]: Trajectory Server: Transform from /map to /base_frame failed: Frame id /map does not exist! 
Frames (3): Frame /laser exists with parent /base_frame.

Frame /base_frame exists with parent NO_PARENT.

環境は以前と同様です(上記のリンクから参照していただけたら幸いです)。


逐一質問をしてしまい申し訳ありません。
皆様のお力をお貸しいただけたら幸いです。


どうかよろしくお願いいたします。

Yutaka Kondo

unread,
Dec 15, 2014, 12:07:06 AM12/15/14
to ros-jap...@googlegroups.com
近藤です。

座標変換を行うtfのルートフレーム(ここではbase_frame)が正しく設定されていないからだと思います。
rvizウィンドウのGlobal Options -> Fixed Frameをmapからbase_frameに変更してみてください。

あるいはターミナルから以下のコマンドでも直ると思います。

rosrun tf static_transform_publisher 0 0 0 0 0 0 map base_frame 100

ご確認ください。

近藤
@youtalk

2014年12月14日日曜日 22時51分03秒 UTC+9 Hoshito Kudo:

Hoshito Kudo

unread,
Dec 15, 2014, 1:17:07 AM12/15/14
to ros-jap...@googlegroups.com

近藤さん


ご回答ありがとうございます。
教えてくださったコマンドで上記の問題は解決したのですが、以下のような警告が出るようになりました。


[ WARN] [1418621070.900665325]: You have set map parameters, but also requested to use the static map. Your parameters will be 
overwritten by those given by the map server


[ WARN] [1418621075.968255755]: Waiting on transform from /base_link to /map to become available before running costmap, tf 
error: Could not find a connection between '/map' and '/base_link' because they are not part of the same tree.Tf has two or more 
unconnected trees.


差し支えなければ、こちらの解決法も教えていただけたら幸いです。


お手数をおかけし恐縮ではございますが、よろしくお願いいたします。


2014年12月15日月曜日 14時07分06秒 UTC+9 Yutaka Kondo:

Yutaka Kondo

unread,
Dec 16, 2014, 2:19:57 AM12/16/14
to ros-jap...@googlegroups.com
近藤です。

警告文そのままの理由だと思いますが、/base_linkから/mapへの座標変換ツリーがきちんと設定されていないのでしょう。base_linkとはロボットの基準座標系、mapとはワールドの基準座標系です。この間の座標変換が規定されていないことが、そもそもの問題です。

おそらく僕が前回回答した方法の前者を解決策として選んだんだと思いますが、それはrvizへの対応方法であって、navigationパッケージはその情報を知りません。navigationパッケージでも同じようにルートフレームを設定する(navigationパッケージには詳しくないため、こちらはどうすれば正しいのか僕は残念ながらわかりません)、あるいは僕の回答の後者の方を実行してみてください。

近藤 豊


2014年12月15日月曜日 15時17分07秒 UTC+9 Hoshito Kudo:

関屋大樹

unread,
Dec 19, 2014, 2:00:52 AM12/19/14
to ros-jap...@googlegroups.com
初めまして。関屋と申します。突然の質問申し訳ありません。
私もROSを使って自己位置推定を行おうとしているのですがつまずいています。

私もこの投稿をされている工藤さんと同じ状況でしたのでこちらで質問させていただきました。
どなたかお力を借していただけないでしょうか。

下記環境にて実験しています。
[環境]
OS:Ubuntu 12.04 64bit
ROS:fuerte
Laser Scanner:URG-04LX-UG01
Base:iRobot Roomba 531
CPU:CORE i5
Memory:4G

param や launch ファイルは前川さんの下記ファイルを使わせていただいています。
https://github.com/DaikiMaekawa/ros-navigation2d-example

[現象]
上リンクにある前川さんのlaunchファイルを実行したときに工藤さんと同じ警告文が発生したので近藤さんが書いてくださっている解決法の両方を実行してみたのですが、下記の警告文が消えませんでした。

[ WARN] [1418969830.141717906]: Waiting on transform from /base_link to /map to become available before running costmap, tf 
error: Could not find a connection between '/map' and '/base_link' because they are not part of the same tree.Tf has two or more 
unconnected trees.


こちらの警告を解決する方法が分かる方がおられましたら教えていただきたいです。


2014年12月16日火曜日 16時19分57秒 UTC+9 Yutaka Kondo:

Yuki Suga

unread,
Dec 19, 2014, 2:19:09 AM12/19/14
to ros-jap...@googlegroups.com
皆様こんにちは.
SSRの菅と申します.初めての投稿かも.

tfで間違うのはよくある失敗です.これについては,

rosrun tf view_frames

というコマンドで5秒間,tfを監視して,frames.pdfというファイルを出力してくれるので,
それを確認してみるといいと思います.
フレーム間の連携が乱れていると,表示されるツリーが複数になっています.
うまいシステムだと,一つのツリーにすべてのフレームがぶら下がっている状態になります.

よくわからなかったら,そのファイルをメールに添付してもらえれば,
お助けすることができると思いますよ.

ではでは

2014年12月19日 16:00 関屋大樹 <noppos...@gmail.com>:
> --
> このメールは Google グループのグループ「ROS JAPAN User's Group」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> ros-japan-use...@googlegroups.com にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--
///////////////////////////////////////////////////////////////////
// Yuki Suga, Ph.D.
// URL: http://www.ysuga.net/?lang=en
// E-mail: ys...@ysuga.net
///////////////////////////////////////////////////////////////////

関屋大樹

unread,
Dec 24, 2014, 1:12:02 AM12/24/14
to ros-jap...@googlegroups.com, ys...@ysuga.net
返信が遅れてしまい大変申し訳ありません。

初めまして。関屋と申します。
回答していただきありがとうございました。

菅さんの言われている通り、ツリーが複数できてしまっていました。

こちらの投稿にpdfファイルを添付させていただきました。

質問してばかりで申し訳ないのですが、ご教示いただけると助かります。

メールの方がご都合がよろしければ別途送らせていただきます。

2014年12月19日金曜日 16時19分09秒 UTC+9 Yuki Suga:
frames.pdf

Yuki Suga

unread,
Dec 24, 2014, 10:11:55 AM12/24/14
to ros-jap...@googlegroups.com
関谷さん,
メール見ました.

使ってるのはMayekawaさんのmove_base.launchでしょうか?
おそらく...Roombaの発行するフレームが,odom -> base_linkなのが間違いの元かと思います.
このroomba_500_seriesというノード,マニュアルがイマイチですね・・・

仕方なくコードを見ましたが,base_frame_idと,odom_frame_idというパラメータがあるようです.
これで,base_link(デフォルト)をbase_frameに変えましょう.

あと,hector_mappingですが,SLAMして自己位置を直す時は,
/mapから/odomにずれた分だけ変換を発行するのが基本だと思いますので (amclはそうします),その部分の連携が間違っていると思います.

ざっと見た感じですが,以下の箇所を直してみてください.

>> move_base.launch
URLは https://github.com/DaikiMaekawa/ros-navigation2d-example/blob/master/launch/move_base.launch

14行目
<node pkg="roomba_500_series" type="roomba500_light_node"
respawn="false" name="roomba500_light_node" output="screen"/>

<node pkg="roomba_500_series" type="roomba500_light_node"
respawn="false" name="roomba500_light_node" output="screen">
<param name="base_frame_id" value="base_frame" />
<param name="odom_frame_id" value="odom" />
<param name="port" value="/dev/ttyUSB0" />
</node>
に.これでbase_linkはbase_frameになる
portは自分の設定に直してください.

んで,hector_mappingの方ですが
>> hector_hokuyo.launch
URLは https://github.com/DaikiMaekawa/ros-navigation2d-example/blob/master/launch/hector_hokuyo.launch

16行目
<arg name="odom_frame" value="base_frame"/>

<arg name="odom_frame" value="odom"/>
にする.

としてみてはどうでしょうか.
できればargとか使って綺麗に直したいところですが,上記で試してみてください.
hector_mappingも使ったのは大分昔でうろ覚えですし,roombaは使ったことがないので未確認のコードですが・・・






2014年12月24日 15:12 関屋大樹 <noppos...@gmail.com>:

Daiki Maekawa

unread,
Dec 24, 2014, 12:33:27 PM12/24/14
to ros-jap...@googlegroups.com
関屋さん, 皆様へ

前川です。

どうやら私のアップしたサンプルが動作せずご迷惑をお掛けしているようですみません。
確かroomba_500_seriesから発行されているオドメトリ情報がかなりいい加減な値だったので、オミットするためにフレームを弄っていたことが影響してそうですね。
メモ程度のつもりで用意したコードですが、意外と使用されている方が多くて驚いています。
次の機会にプログラムをアップすることがあればもう少し真面目に書こうと思います。
実機で動作確認をしながら追加でメンテナンスをする時間は当面作れそうにないので、問題を修正後プルリクエストを投げていただけると私や他のユーザの方にとっても非常に助かります。

それでは、よろしくお願いします。

> ros-japan-users+unsub...@googlegroups.com にメールを送信してください。

> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--
///////////////////////////////////////////////////////////////////
// Yuki Suga, Ph.D.
// URL: http://www.ysuga.net/?lang=en
// E-mail: ys...@ysuga.net
///////////////////////////////////////////////////////////////////

--
このメールは Google グループのグループ「ROS JAPAN User's Group」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには ros-japan-users+unsub...@googlegroups.com にメールを送信してください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。


関屋大樹

unread,
Dec 25, 2014, 12:51:17 AM12/25/14
to ros-jap...@googlegroups.com, ys...@ysuga.net
菅さん。
ご回答ありがとうございます。

関屋です。

菅さんに投稿していただいたコードに修正してみたのですが、以下のようなエラーが発生しました。


[ERROR] [1419484882.399747044]: Transform failed during publishing of map_odom transform: Lookup would require extrapolation into the future.  Requested time 1419484881.353462000 but the latest data is at time 1419484880.854269000, when looking up transform from frame [/base_frame] to frame [/odom]
[ERROR] [1419484882.462719220]: Trajectory Server: Transform from /map to /base_frame failed: Could not find a connection between '/map' and '/base_frame' because they are not part of the same tree.Tf has two or more unconnected trees.

[ WARN] [1419484882.786411280]: Costmap2DROS transform timeout. Current time: 1419484882.7863, global_pose stamp: 1419484881.3535, tolerance: 0.3000

[ERROR] [1419484882.903899490]: Transform failed during publishing of map_odom transform: Lookup would require extrapolation into the future.  Requested time 1419484881.852874000 but the latest data is at time 1419484881.353462000, when looking up transform from frame [/base_frame] to frame [/odom]
[ WARN] [1419484882.935203886]: Could not get robot pose, cancelling reconfiguration

また、rvizの方でfixed frameをbase_frameにしてもTrajectory Serverのエラーが解消できなくなってしまいました。

自分でも色々いじってみたのですがエラーを消すことができませんでした。

こちらのエラーの解決法にお心当たりがございましたらまたご教示いただけると助かります。

年末のお忙しい中大変申し訳ありませんがよろしくお願いします。



2014年12月25日木曜日 0時11分55秒 UTC+9 Yuki Suga:

関屋大樹

unread,
Dec 25, 2014, 1:08:51 AM12/25/14
to ros-jap...@googlegroups.com, method_as...@yahoo.co.jp
前川さん

初めまして関屋と申します。

私が勝手にコードを使わせていただいているのに、前川さんにお気を使わせてしまって申し訳ありません。

問題が修正できましたら投げさせてもらいます。


前川さんに1点質問があるのですが、

前川さんの環境でmove_base.launchを動かしたときに、フレームのツリーは複数発生していますか?または1つのツリーにすべて収まっているのでしょうか。

基礎的な質問で申し訳ありませんが、もし覚えておられたら教えていただきたいです。

年末のお忙しい中大変申し訳ありませんがよろしくお願いします。




2014年12月25日木曜日 2時33分27秒 UTC+9 Daiki Maekawa:

Yuki Suga

unread,
Dec 25, 2014, 1:32:34 AM12/25/14
to ros-jap...@googlegroups.com
関屋さん,

現状でview_framesの出力はどうなっていますか?
最初の4行はtfの設定によるもののように見えます.一つのツリーになりましたか?




2014年12月25日 14:51 関屋大樹 <noppos...@gmail.com>:

関屋大樹

unread,
Dec 25, 2014, 2:32:02 AM12/25/14
to ros-jap...@googlegroups.com, ys...@ysuga.net
菅さん。

2つのツリーがでてきています。
以前のpdfの/odomと/base_frameを入れ替えた形になっています。


2014年12月25日木曜日 15時32分34秒 UTC+9 Yuki Suga:

Yuki Suga

unread,
Dec 25, 2014, 2:40:36 AM12/25/14
to ros-jap...@googlegroups.com
菅です。

携帯から失礼します。

それだけだと情報がないので、pdf送ってください。

ではでは。

2014年12月25日木曜日、関屋大樹<noppos...@gmail.com>さんは書きました:

関屋大樹

unread,
Dec 25, 2014, 3:39:36 AM12/25/14
to ros-jap...@googlegroups.com, ys...@ysuga.net
関屋です。

大変失礼しました。
pdfファイルが添付できていませんでした。



2014年12月25日木曜日 16時40分36秒 UTC+9 Yuki Suga:
菅です。

携帯から失礼します。

それだけだと情報がないので、pdf送ってください。

ではでは。

2014年12月25日木曜日、関屋大樹<nopposan073...@gmail.com>さんは書きました:
このグループから退会し、グループからのメールの配信を停止するには ros-japan-users+unsubscribe@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
frames.pdf

Yuki Suga

unread,
Dec 25, 2014, 5:01:07 AM12/25/14
to ros-jap...@googlegroups.com
関谷さん,

先ほどの問題のroomba側が解決されていないというのがわかりますね.base_linkというフレームが消えていませんから.
もう一度,
<node pkg="roomba_500_series" type="roomba500_light_node"
respawn="false" name="roomba500_light_node" output="screen">
<param name="base_frame_id" value="base_frame" />
<param name="odom_frame_id" value="odom" />
<param name="port" value="/dev/ttyUSB0" />
</node>

の部分を確認してください.スペルミスとかありませんか?
こちらで同じ環境がないので確認もできないんですけど・・・すみません.僕もスペルミスしてるかも.

あと,roombaのコードをもう少し見ましたが,
センサ値の値をbase_linkを基準としてpublishしており,完成度が悪いっすね・・・他の選択肢はないんでしょうか・・・

このノードを使うなら,base_linkとbase_frameを一致させるのも悪くないですね.
作者はrobot_pose_ekfを使ってIMUとセンサフージョンして使ってるんでしょうね・・・きっと(独り言です)
move_base.launchの中に,static_publisherを追加して,これを実現させてみましょう,すなわち,

<node pkg="tf" type="static_transform_publisher"
name="base_frame_2_base_link" args="0 0 0 0 0 0 /base_frame /base_link
100" />

を追加します.これでちょっと挑戦してみてください.


2014年12月25日 17:39 関屋大樹 <noppos...@gmail.com>:
> 関屋です。
>
> 大変失礼しました。
> pdfファイルが添付できていませんでした。
>
>
>
> 2014年12月25日木曜日 16時40分36秒 UTC+9 Yuki Suga:
>>
>> 菅です。
>>
>> 携帯から失礼します。
>>
>> それだけだと情報がないので、pdf送ってください。
>>
>> ではでは。
>>
>> 2014年12月25日木曜日、関屋大樹<noppos...@gmail.com>さんは書きました:
Reply all
Reply to author
Forward
0 new messages