citbrains / GankenKun_webots

Control of humanoid robots on webots, walking, deep-learning, Bayesian-optimization
14 stars 4 forks source link

protoモデルに関する作業 #9

Closed yasuohayashibara closed 3 years ago

yasuohayashibara commented 3 years ago

protoモデルに対する作業を共有するためのisseueです. 自由に追加していただいて構いません.

途中ですが,以下にロボットモデルの仕様に関してのドキュメントを和訳したものを置きました. https://github.com/citbrains/GankenKun_webots/wiki/Robot-Model-Specifications-v1.0-%E3%81%AE%E5%92%8C%E8%A8%B3

yasuohayashibara commented 3 years ago

TODOのリストです. 自由に追加していただいて構いません. あと,手数の多い作業に関して,issueを立てた方が良いと思います.

レギュレーション • 5 <= BMI <= 30 • (FootWidthFootHeight) <= (2.2Hcom)ˆ2/32 • 1.2 <= max(FootWidth,FootHeight)/min(FootWidth, FootHeight) <= 3.5 • Width <= 0.55 Htop • 0.35 Htop <= Hleg <= 0.7 Htop • 0.1 Htop <= Hhead <= 0.3 Htop • Only allowed sensors/actuators are used

yasuohayashibara commented 3 years ago

モータのパラメータを導出するための計算式です.

210420_モータのパラメータ.xlsx

yasuohayashibara commented 3 years ago

こちらは今回間に合わなければこのままで良いと思いますが,パーツの命名規則がありますので,変更することが必要です.

v-hsc_model_specification_v1.0より https://cdn.robocup.org/hl/wp/2021/04/v-hsc_model_specification_v1.0.pdf

Each robot needs to comport body parts with the following annotations as suffixes on the Solid names:
• [foot]: for all the body parts that can be in contact with the ground when walking (e.g. Solid.name "left
foot [foot]").
• [arm]: for all body parts between shoulder and hand. Those parts are not allowed to touch the ball
(e.g. Solid.name "left elbow [arm]").
Some joints (i.e., motors) should also be annotated with the following suffixes:
• [shoulder]: axis of the first joint of the arm (e.g. name "right shoulder pitch [shoulder]").
• [hip]: for the first leg joint with an axis lying parallel to the ground plane (e.g. name "left hip roll
[hip]").
yasuohayashibara commented 3 years ago
yasuohayashibara commented 3 years ago

massとinertiaMatrixであるが,DARwIn-OPのGyroなどはphysics自身が無いので,それに倣って実装すれば良さそうである.

https://github.com/cyberbotics/webots/blob/1367ab2560688c435afa50b8713522b9897afe7c/projects/robots/robotis/darwin-op/protos/Darwin-op.proto#L159-L166

yasuohayashibara commented 3 years ago

慣性行列に正しい値を入れたところ振動的になり歩行できなくなった. また,関節自身が外れる現象が見られるようになった. あと,速度が1/10になっている. https://youtu.be/TaZbklhiV1M

従来通りカメラに大きな慣性行列を設定したときの動き. 転倒しづらくなることで歩行がやや安定している. https://youtu.be/DRKalmC81zo

backlashの機能は実装中のようであるので,色々とバグがあるかもしれない. あと林原の環境だけかもしれないが,よく強制終了するようになった.

yasuohayashibara commented 3 years ago

以下命名規則に基づいてsolidの名称を変更した. https://github.com/citbrains/GankenKun_webots/issues/9#issuecomment-825290685

yasuohayashibara commented 3 years ago

歩行できなくなったのは残念ですが,protoファイルで行うことはほぼ行ったので,これを提出で良いと思います. 今回は歩行を行うことは前提条件に入っていないと思いますので,指示された内容をできるだけ満たしたprotoファイルを出したほうが良いと思います. その点では,かなり完成度は高いと思います.

yasuohayashibara commented 3 years ago

慣性行列の影響を示す動画です. https://youtu.be/pBFOf7Vjj10

大きくすることで,回転しづらくなり歩行が安定します.

yasuohayashibara commented 3 years ago

backlashを外したところふらつきはするが歩行できるようになった. モデル自身には致命的な問題は無いと思われる.

backlashの開発により,歩行できない問題は自然と解決するのではないかと考える. (どちらにしても計算時間が長いので,現状では試合に使用するのは難しいと思います.)

現在のprotoファイルですが,慣性行列を正しい値にすることで,安定しすぎて不自然であったのが実際の動きに近づいたと思います.

変更内容 HingeJointWithBacklash -> HingeJoint

動画 https://youtu.be/w7YXdusKpGs

AD58-3104 commented 3 years ago

backlashに関してはprotoの中でif文を用いる事でON/OFFをGUIで変更できるようにしている実装がdarwin-opではされているので、それを参考にGankenKunでも同じものを実装しておこうと思います。

yasuohayashibara commented 3 years ago

現在のモデルですが,RoboCupのフィールドでは歩行することを確認しました. ただし,遅いですが... https://youtu.be/ik0Vxq4sZUg

環境によってこんなにも動きに差が出るのですね... 何が要因かを調べたい気もしますが,とりあえず動くので良しとしたいと思います.

yasuohayashibara commented 3 years ago

どうもworldファイルの以下のパラメータが関連しているようです. 以下の値のときだけ正常に動作します.

basicTimeStep 8

AD58-3104 commented 3 years ago

となるとワールドのTimeStepは8で固定するのが良さそうですね。

yasuohayashibara commented 3 years ago

22 で示したように,設定ファイルに基づいて色とゼッケンの変更ができるようになったため,protoモデルに対する最低限の作業は終了したと思います.

issueを閉じます.