-
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
:angle-vectorと:potentio-vectorに差があると:angle-vector-sequenceの動き出しがスローになる #451
Comments
jsk_pr2eus/pr2eus/robot-interface.l Line 438 in a228cc7
jsk_pr2eus/pr2eus/robot-interface.l Lines 537 to 547 in a228cc7
最初の区間については現在のpotentio-vectorからの変位から計算される速度を用いて最大速度を超えないかチェックするため、 jsk_pr2eus/pr2eus/robot-interface.l Line 454 in a228cc7
360度ずれていると、最初の区間の時間が (360度 / 関節最大速度) にまで自動的に延長されるためだと思います。 そのため、時間指定を正確にしたい場合は、
または、
または、
のいずれかが必要になるのではないかと思います。 |
ありがとうございます. 一つ疑問なのは,
というように,angle-vector-sequenceを行った直後に確認してもズレています. 解決策としてはやはり,
|
関連するissue
PR2実機のコントローラは、実機のコントローラは無限回転の場合,指令した角度にするのではなく、最小パスを通るように回転方向を決めるようになっている. jsk_pr2eus/pr2eus/robot-interface.l Line 937 in a228cc7
指令した角度にならないのは不便なので、 :angle-vector や:angle-vector-sequence で180度を超える変位を実機に指令するときは経由点を追加するようにして、指令した角度になるようにしている。jsk_pr2eus/pr2eus/pr2-interface.l Line 419 in a228cc7
jsk_pr2eus/pr2eus/pr2-interface.l Line 442 in a228cc7
ところが、kinematics simulatorでは経由点を追加しないままなので、指令した角度にならない。 jsk_pr2eus/pr2eus/pr2-interface.l Line 426 in a228cc7
kinematics simulatorでも経由点を追加するように、 |
@708yamaguchi ご意見をお聞かせください。 |
ありがとうございます. |
事情を深く理解できていなくて申し訳ないのですが、もともとKinematics Simulatorでは以下の2つの異なる問題があったという理解で良いでしょうか。
#452 はこれら両方の問題を解消しているけど、このissueで話されている動き出しスロー現象は1つ目の問題を解決したことで解消された、ということでしょうか。 |
こちらのコメントにまとめました。 もともとKinematics Simulatorにあった問題は、実機はコメントのイなのに、kinematics simulatorはコメントのアであったという問題です。(180度を超える変位を指令を送っても、経由点を追加しない。) B+アの組み合わせは相性が悪いので、 #452 は、kinematics simulatorを実機に合わせてイにすることで、これらを解消しました。 #452 後は |
https://gist.github.com/Kanazawanaoaki/1a961d03da67a69eba64cef21cd3f374#file-ri-angle-vector-test-l
のようにして,
(send *ri* :angle-vector (send *pr2* :angle-vector))
をしても,
(send *pr2* :angle-vector)
と(send *ri* :state :potentio-vector)
が一致しないことがあります.360度のズレなど.その時に
*pr2*
で姿勢を作って:angle-vector-sequence
を送るとKinematics Simulatorでの動き出しがスローになることがあります.のようにangle-vectorとpotentio-vectorに差がある時は手先を回転させるangle-vector-sequenceの動作の動き出しがゆっくりになって途中で加速します.
のようにangle-vectorとpotentio-vectorが一致している場合は動き出しがゆっくりになることなくスムーズに動作します.
angle-vector-sequenceを作る動作の前に
(send *pr2* :angle-vector (send *ri* :state :potentio-vector))
を入れることで回避することはできます.時間指定を正確にしたい場合は動作を作る前にangle-vectorとpotentio-vectorを一致させる必要があるのでしょうか?The text was updated successfully, but these errors were encountered: