-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
:wait-interpolationの正しい挙動 #187
Comments
docstringに合わせるのがAPIとしてスッキリしていると思いますが、 それで、実機の場合のwait-interpolationの結果はwait-for-resultの結果ではなくて、 |
おそくなりました. うーん,いまいちですね. つまり,hrp2/urata系には影響なく,影響あるのはpr2だけかと. ところで,pr2ではどの場面でこれがもんだいになりましたか. ◉ Kei Okada 2015-11-21 15:12 GMT+09:00 Yohei Kakiuchi [email protected]:
|
例えば
ではsimulationの場合wait-interpolation中に必ず中断が入る挙動になってしまいます。 |
なるほど.:wait-interplationの結果に依存するコードはないということでいいですか.
でやりましょう. ◉ Kei Okada 2015-11-23 10:37 GMT+09:00 Furushchev [email protected]:
|
こちらですが、pr2がやわらくてangle vectorをおおくってなにかにぶつかってとまり、そのときの間接エラーがおおきいとき、wait-interpolationがnilになったりするでしょうか。 |
はい.そう期待しています. |
初歩的な質問になりますが,
|
などとして(アームの上方向300mmくらいに机がある環境で500mm上にend-coordsを動かしてみる。)試してみたところ、アームに関しては机と衝突して目標位置に行けなくても |
pr2/ros 系の実装は ◉ Kei Okada 2015-11-29 17:53 GMT+09:00 Furushchev [email protected]:
|
#191 のように関数をdocumentに従うように修正して見ました。 |
ちなみに、 |
|
|
(これテストしたいところですが、gazeboをテストに入れると途端にテストの速度低下&&エラー率が上がるので、何とかしたいところですね。。。) |
@pazeshunがsmoothを使っています |
smoothの戻り値をチェックしたことがないので、わからないです。 |
大変遅くなりましたが、 #356 を作っていて、 なお、angle-vectorを送った後で |
放置していましたが,まとめとして, docstringに書いてある
を原則として,
のような挙動にすることになったという理解で良いでしょうか. また, |
@k-okada @YoheiKakiuchi 事情としては、以下の通りです。 PR2実機では以下のようにチェックできます。
|
:wait-interpolationについて、
https://github.com/jsk-ros-pkg/jsk_pr2eus/blob/master/pr2eus/robot-interface.l#L478
では
values is a list of interpolatingp for all controllers, so (null (some #'identity (send *ri* :wait-interpolation))) -> t if all interpolation has stopped
とあります。
これはつまりtimeoutが0(無限大)で:wait-interpolationされたときに必ず
(nil nil nil nil)
になるという想定testコードは
https://github.com/jsk-ros-pkg/jsk_pr2eus/blob/master/pr2eus/test/default-ri-test.l#L29
https://github.com/jsk-ros-pkg/jsk_pr2eus/blob/master/pr2eus/robot-interface.l#L487
では
:wait-interpolation
の返り値は(send-all controller-actions :wait-for-result :timeout timeout)
となっています。
values is a list of interpolatingp for all controllers
では無いように思います。:wait-for-result
はresultが返ってくるとt
を返す関数なので、actionがabortされない限りt
を返すと思います。さらに1回でもactionを送ると、次からはtが返ります。(直前のgoalに対するwait-for-resultの結果)pr2実機の場合
\3. 実機なしのwait-interpolation
https://github.com/jsk-ros-pkg/jsk_pr2eus/blob/master/pr2eus/robot-interface.l#L482
となっていて、docstringに従っている
simulationの場合
ちなみに
https://github.com/jsk-ros-pkg/jsk_demos/blob/master/jsk_demo_common/euslisp/attention-observation.l#L29
などではwait-interpolationが終わると
(t t t t)
を返すような想定になっています。どちらを変えるのが正解でしょうか?
The text was updated successfully, but these errors were encountered: