-
Notifications
You must be signed in to change notification settings - Fork 88
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
[AutoBalancer] goPosが返ってこない #845
Comments
これはどのjaxon+14.04で再現しますか? |
stを入れないと再現しないように思えてきました。 stを切ると、target_coordsのrotationが単位行列になって問題が出なくなります。 |
これはprint文で確認されてますか? |
はい. |
でも再現しました。 |
…art coords to avoid problems reported in fkanehiro#845
上記の再現コードでは |
goPosは帰ってくるようになりました。 僕には判断がつきませんが、解決策はこれで問題ないですか? |
#849
上記変更で(傾斜が一定な)傾斜のある面をgoposすることもできます。 |
Check difference projected on start coords to avoid problems reported in #845
現状,問題はなくなったようなので閉じます. |
現状わかったことだけ報告します。
goPosを行うと、収束せずに無限ループにおちいり
(このとき、ステップを作り続けるのでメモリ使用量が増え続ける)
デバッグメッセージからこの部分で収束していないことが分かっている。
https://github.com/fkanehiro/hrpsys-base/blob/master/rtc/AutoBalancer/GaitGenerator.cpp#L609
原因としては、goPosで渡しているパラメータはx,y,thetaでz方向の変位は行わないが、
dpにz方向成分が入ってしまって、その値がしきい値を超えていると収束判定されない。
具体的には、ここで start_ref_coordsにx,yの回転成分を持ったcoordsが入る。
https://github.com/fkanehiro/hrpsys-base/blob/master/rtc/AutoBalancer/GaitGenerator.cpp#L612
その原因は、target_end_coordsにx,yの回転成分を持ったcoordsが入ることにある。
(これはそれほど問題ではない??)
https://github.com/fkanehiro/hrpsys-base/blob/master/rtc/AutoBalancer/AutoBalancer.cpp#L1093-L1097
現状では、左右脚のtarget_coordsが対称でない値がはいっている。
それは、mid_rotでがeps=がしきい値以下のときは、1つめの回転と同じ回転を返すが、
しきい値(現状 0.001が)が大きく誤差が蓄積しているようだ。
https://github.com/fkanehiro/hrpsys-base/blob/master/rtc/ImpedanceController/RatsMatrix.cpp#L49
しきい値を 1e-8 程度にすると、左右脚のtarget_coordsは対称になった。
(x,yの回転成分は変わらずに入っている)
以下のバグが起こる条件は回避できているが、
x,yの回転成分は変わらずに入っていると思われる。
以下のgoPosの値で確実にバグが再現します。
以下は同じ問題ですが、原因がAutoBalancerとはっきりしたのでこちらに移します。
start-jsk/rtmros_choreonoid#104
The text was updated successfully, but these errors were encountered: