-
Notifications
You must be signed in to change notification settings - Fork 18
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
【10章】Gripperの開きが足りない #38
Comments
まだよく分かりませんが、備忘録。 後述のPR2のグリッパにまつわる仕様に関して、リミッターに関わるクリティカルな変更があったようには見えず。。 また Gazebo のVer. が上がったことにより云々とかの話だと、面倒です汗。 actioncontrollerdescriptionhttps://github.com/PR2/pr2_common/tree/melodic-devel/pr2_description/urdf/gripper_v0 その他actionでは、goalを受け取ると下記メッセージを発信する。
↓ controller がメッセージを受信し、effort指令値を計算しメッセージを発信する( ↓ Gazebo の場合、https://github.com/PR2/pr2_simulator/blob/kinetic-devel/pr2_gazebo_plugins/src/gazebo_ros_controller_manager.cpp が当該メッセージをハンドリングしている。(RobotHWSim は使っていないっぽい) 問題は、これらのコードについて、特に変更がなされていないのにグリッパが開かないということ。 あるいは、何らかの変更を陽に加えないといけないということなのだろうか…? ここいらの材料を元に、何か見つけたいです。グリッパ開かないのは私達に限らず、影響が大きいかと汗。 必要であれば、本家Issueに投げることも検討しますが、ある程度こちらで原因を特定できないと、動いてもらうのは難しい思います。 ご協力お願いします。 |
良道くん、本件調査の続きを任せたいのですが、協力頂けませんか? 弱音で申し訳ないのですが、そろそろ私一人では回らなくなってきましたので、助けて欲しいです笑。 その他頂いたコメント、エラッタ関係は、後ほど私がやりますので。取り急ぎ |
@MoriKen254
ということで取り組みます. |
ありがとう。目標はそれでおねがいします。 忙しいところ悪いね、任せた!月曜日の報告、とても楽しみにしています。 エラッタやるぞぉ。 |
@MoriKen254 |
原因PR2のグリッパへの力司令ですが,今書かれている設定だと,2000 Nになっています.(下記コード参照) with init_sub:
gripper_open = Pr2GripperCommandGoal()
gripper_open.command.position = 0.09
gripper_open.command.max_effort = 2000
smach.StateMachine.add('Open_gripper',
SimpleActionState('/l_gripper_controller/gripper_action',
Pr2GripperCommandAction,
goal=gripper_open),
transitions={'succeeded': 'Init_pose',
'preempted': 'Init_pose',
'aborted': 'Open_gripper'}) しかし,PR2のスペックでは,グリッパの最大把持力は ,80 Nです.(下記サイト参照) というわけで,リミットオーバーどころではない司令値を入れているため,発散したんだと思われます. 確認と対策実験1上記について実験した動画を下記リンクに貼ります.
を与え,左手に
を与えています. 実験2では,今度は一体どこにeffortの閾値があるのか?
という理由から,司令値を適正なものに変えれば良いと考えます. また,2つの動画の中で右手を犠牲にしているのですが, 以上,よろしくお願いします. |
ありがとう!現象はよく分かりました。 2000Nという値自体は気にはなっていましたが笑、ネット上のサンプルはどれもこんなもんだったので、いいんだろうと高をくくっていました。助かりました。 以下ただの思考実験です。 追求すると藪蛇になりそうですが、おそらくリミッタがちゃんと働くようになった、という感じですかね。そもそも2000Nなんて値を入れていたのにのほほんと動いている過去の挙動のほうが異常だったんですかね。 で、80Nに対応していないのは、そうなるようにコントローラのパラメータが最適化されていない。現状のパラメータだと高々14Nくらいでリミットがかかってしまう。みたいな感じ?だから参照するコントローラ用のlaunchファイルを自作する、という改善が提案されている? そして、一回リミットオーバがかかったら、未来永劫復旧しない(再起動するまでは)。これは所望の仕様なのかちょっと判断しかねますね。その割に、13.5N以下というとても微妙な値を突っ込まないといけないというのは、辛い笑。PR2のIssueにあげてもいいかもしれないですね。 なんにせよ、色々ありがとう。ひとまずちゃんと動くようで、一旦スッキリしました! |
PR2の件をIssueに上げるなら、 @RyodoTanaka くんの方が良いと思いますが、どうですか? もし手が回らない等なら私が上げてもいいのですが、動画等含めせっかくの @RyodoTanaka くんの成果ですしね :) |
@MoriKen254
これについては,ちゃんと見てないのでわからないです...
これについては,確かPR2のグリッパの制御はPID制御なんですけど,力の制御入力がオーバーシュートしてるのではないかと思っています.で,14Nあたりの制御入力を加えると,そのオーバーシュートが挙動がおかしくなる領域に達するのかなぁ...?
実はこのあたり,まだ検証中でして,というのも
というよくわからない挙動が発生しています.
という上記2点の問題があります. 以上,長くなりましたが,よろしくお願いします. |
ありがとうございます。状況を理解しました。藪蛇してしまった感じですかね笑。
前者と後者が全くの別問題なのか、いやはや実は同一の原因による問題で現象が異なるだけなのか、判断しかねますね。いずれにしても、現段階では独立したIssueとしてあげるのが妥当でしょう。 とりあえず前者についてはそれなりに調べたとは思うので、一旦Issueを投げて反応を見ながら、こっちからも必要に応じて情報出していく感じでいいんじゃないかなぁと思います。 そして、後者は確率的に起きるんですかね。 まったくの手探りで恐縮ですが、例えば、開閉時の力が強いとき、弱いとき、どっちのほうが発生する確率が高いとか、ありますかね(ODEの問題ならここに何らかの傾向が観察できないか?)。 あるいは、コップの代わりのコーラにしたら起きにくいとか(把持対象の形状がひっつきやすさに影響しないかとか?)。 もう少し温めた上で、以下の方針が取れるかと。
私なら、一個ずつ尋ねると想います。あとは様子見ながら柔軟に。 よろしくおねがいします。 |
@MoriKen254
上記についてわかっていることは いずれにせよ,一旦前者の問題をIssueに上げながらぼちぼち検証したいと思います. |
あと,下記動画を見ていると,机にコップが触れたのではなく,近づいただけで再びアームから離れてるようにも見える(1:57あたり)ので,もしかすると吸い付けプラグイン等の他の要因があったりするのかな?(未検証です) |
ありがとうございます。Issue投稿、素晴らしいですね!よろしくおねがいします。 あと、1:57 辺りで、確かに不自然な挙動が見られますね。自然落下ではなく、テーブルからの引力、あるいはハンドからの斥力、が働いているような。経緯から考えると、見た目にそぐわない余計な斥力(Collision領域がおかしくなって、カップと重複してしまっている?)が働いているのではないか?というこれまた憶測ですが。 それにしても、産総研(というか中岡さん)の誇る |
ping @RyodoTanaka issue 投稿した?笑。あまり優先度高くないから、無理しなくても大丈夫ですが。 |
@MoriKen254 |
#35 と #36 で言及。
なぜかPR2グリッパが開ききってくれない。
の指令値によらず、ちゃんと開くようになってほしい。
現在値の確認は、下記コマンドで。
The text was updated successfully, but these errors were encountered: