Skip to content
This repository has been archived by the owner on Jul 23, 2020. It is now read-only.

TimeBar stops when there is no dynamic object (only static object) #212

Open
yosuke opened this issue Sep 27, 2018 · 3 comments
Open

TimeBar stops when there is no dynamic object (only static object) #212

yosuke opened this issue Sep 27, 2018 · 3 comments

Comments

@yosuke
Copy link
Contributor

yosuke commented Sep 27, 2018

シミュレーション開始ボタンを押すと通常であればタイムバーがシミュレーション時刻に従って更新されますが、ワールドにstaticなオブジェクト(floorなど)しかない場合、少しだけ進んだあとで止まってしまいます。

シミュレーション停止ボタンを押すと時間経過は正しくログに表示されるので、シミュレータではなく、タイムバー(とおそらくロガー)の問題と思われます。

@s-nakaoka
Copy link
Owner

staticなオブジェクトしかない場合、物体の動作ログ(BodyMotionItemに格納されるもの)が出力されません。タイムバーやアニメーションの機能は基本的に動作ログを対象に機能しますので、動作ログがないとアニメーションも出来ないということになります。

ただ、実際にはシミュレーションは内部で動作しているのだとすると、そことの食い違いがあるため、分かりにくいですね。staticなオブジェクトしか無い場合は、シミュレーションも開始できないようにするのがよいかもしれませんね。staticなオブジェクトだけでセンサも何もない場合はそもそもシミュレーションする必要はありませんので。

ただしモデル自体はstaticでも、それが何らかのデバイス(センサ等)をもっている場合は、そちらのシミュレーションを行う必要がありますし、デバイスの状態もログに保存されるので、タイムバーも機能するべきですね。今回はそのようなことをしようとしているが、実際にはうまく動作しないということでしょうか?そうでしたらそこについては修正したいと思います。

@yosuke
Copy link
Contributor Author

yosuke commented Sep 27, 2018

ROSの流儀だと、シミュレーターはstaticなオブジェクトのみをロードした状態で立ち上がって&立ち上がった状態から時間は進んでいて、後からAPIを使ってロボットなどdynamicなオブジェクトをロードさせるので、その場合だとあれれ、となります。

立ち上げ時からロボットをロードしてしまえば良い話なので、私についてはそんなに対応を急いでいません。

@yosuke
Copy link
Contributor Author

yosuke commented Sep 27, 2018

あと、pythonスクリプトを使ってstaticなオブジェクトをアニメーションぽく動かしてしまうパターンもあるかもしれないですね。その場合だとstaticなオブジェクトであっても動作ログに姿勢を保存してほしい(この点についてもただの思いつきで対応は全く急いでいません)。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants