[hrpsys_choreonoid/iob/iob.cpp] fix bug on pdgains_sim_file_name#326
[hrpsys_choreonoid/iob/iob.cpp] fix bug on pdgains_sim_file_name#326YoheiKakiuchi merged 2 commits intostart-jsk:masterfrom
Conversation
9aab03a to
f419d1c
Compare
|
https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid_tutorials/models/JAXON_JVRC.PDgains.sav |
このPRをマージするとトルク制御モードで起動後関節が暴れるので,運用が異なっているということだと思いますが,現状どうなっているか教えてくれると助かります. |
|
現状を整理すると,
となっていて, |
|
問題をややこしくしているのは,以下の3点です.
|
|
URATA系のロボットは、もともと関節のゲイン(Nm/rad)が分かっていないので、 pdgains_sim_file_nameはsimulationに使う関節の実ゲイン(Nm/rad)が入っている。 1.0 x sim_gain をゲインとして使っていて、RobotHardwareを使うことで、 と思っていたのだけど、そうなっていなかったのを平岡くんが今回正しく直してくれたんだと思っています。 |
|
あと、JAXON_JVRCは古い実装で、RobotHardwareを使わないので比較に入れないほうがいいです。 |
|
USE_ROBOTHARDWARE:=trueしてるときでも呼ばれるのは ということで,このPR方針が正しくて |
|
@YutaKojio |
|
皆様ありがとうございます。 |
|
https://github.com/start-jsk/rtmros_choreonoid/blob/master/hrpsys_choreonoid_tutorials/models/JAXON_JVRC.PDgains.sav をすべて1にし、JAXONも常にUSE_ROBOTHARDWARE:=trueにしました |
|
すみません.出遅れました 僕も全ては理解できていませんでしたが, @YoheiKakiuchi の通りだと思うので,このPRの方針で問題ないと思います 以下補足です HRP-2はトルク制御ができないので関係ないかもしれませんが, rtmros_choreonoid/hrpsys_choreonoid/iob/iob.cpp Lines 777 to 781 in e1b6694 は不都合だと思っていて ee548e1 の https://github.com/kindsenior/rtmros_choreonoid/blob/84cdfaddaa3e82c2bf128f34e07098e026a1e463/hrpsys_choreonoid/iob/iob.cpp#L780-L783 のように単純にトルクとPD制御を足すべきだと思っています このようにするとトルクのゲインに関しては,initial_tqPgainもtqPgainも0-1の値になるようになります なのでPRを出せていなくて申し訳ないのですが, |
|
mergeをお願いできますでしょうか. |
PDゲインに関するバグを直すPull Requestです.
RobotHardwareServiceのsetServoGainPercentageを呼ぶと,もともと数万だったゲインの値が突然1になるというバグがありました.現在choreonoidの世界で実際に関節のトルクに適用されるPDゲインは,
始めは
.confのpdgains_sim_file_nameに書かれた値 ですが,一度でも
RobotHardwareServiceのsetServoGainPercentageやpowerが呼ばれると,以後は
.conf(または.RobotHardware.conf)のpdgains.file_nameに書かれた値 になってしまい,pdgains_sim_file_nameの値が参照されなくなります.https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_general/iob/iob.cpp と同様に,
始めは
.confのpdgains_sim_file_nameに書かれた値 ですが,一度でも
RobotHardwareServiceのsetServoGainPercentageやpowerが呼ばれると,以後は
.confのpdgains_sim_file_nameに書かれた値に.conf(または.RobotHardware.conf)のpdgains.file_nameに書かれた値をかけたものになるようにしました..confのpdgains_sim_file_name= hrpsysが関知しないハードウェア側が持つゲイン.conf(またはRobotHardware.conf)のpdgains.file_name= hrpsysが関知するゲイン