open-rdc / aiformula_old

MIT License
0 stars 0 forks source link

change friction #3

Closed yasuohayashibara closed 3 months ago

yasuohayashibara commented 3 months ago

キャスタの摩擦係数を変えて挙動を確認する.

yasuohayashibara commented 3 months ago

キャスタの摩擦係数を変更したが挙動が変化しない. 設定する場所が間違っているかもしれない.

https://github.com/open-rdc/aiformula/blob/ac788fed73b6d52486ad52f8a11ed551b4d0b1bb/simulator/models/ai_car1/model.sdf#L212-L213

yasuohayashibara commented 3 months ago

試しにすべてのmuを0にしたらロボットは滑って動けなくなったので,こちらの値は反映できていないわけではなさそう.

<mu>0.0</mu>
<mu2>0.0</mu2>
yasuohayashibara commented 3 months ago

ちなみに,ChatGPTで質問した結果(間違っているかもしれません)

Gazeboで使用されるmuとmu2は、物理エンジン(通常はODEやBulletなど)で使用される摩擦係数の設定です。これらは、物体間の接触時に生じる摩擦力の強さを制御するために使用されます。

  1. mu (摩擦係数1) 意味: muは、接触面に沿った摩擦力を表す一次元の摩擦係数です。通常、滑り摩擦に対応し、接触面に沿って運動しようとする物体に対する抵抗力を示します。 範囲: 0以上の値を取り、通常は0から1の範囲で設定されますが、シミュレーションで高い摩擦を必要とする場合には1を超える値も使用できます。 役割: muが大きいほど、物体が接触面に沿って動きにくくなり、摩擦力が強くなります。逆に、muが0の場合、接触面に沿って摩擦力が発生しません。
  2. mu2 (摩擦係数2) 意味: mu2は、muと直交する方向の摩擦係数です。物体が接触面に沿って動く際、二次元的な摩擦力を考慮するために使用されます。特に異方性の摩擦を表現する場合に重要です。 範囲: muと同様に0以上の値を取り、0から1の範囲が一般的ですが、1を超える値も可能です。 役割: mu2が設定されている場合、Gazeboの物理エンジンは二つの異なる方向の摩擦力を別々に計算します。これにより、異方性の摩擦(例えば、ある方向には滑りやすいが、別の方向には滑りにくい物体)をシミュレートできます。
yasuohayashibara commented 3 months ago

追加で(ChatGPTより.間違っているかもしれません)

Gazeboや物理エンジン(例えばODEやBullet)では、2つの異なる接触面(例えば、地面とタイヤ)に異なる摩擦係数(muやmu2)が設定されている場合、接触時の最終的な摩擦係数は、通常、以下のような方法で決定されます。

  1. 最小摩擦係数の採用 物理エンジンの多くは、接触面に異なる摩擦係数が設定されている場合、それらの最小値を採用します。つまり、接触する2つの物体の摩擦係数のうち、どちらかのmuが小さい方が、最終的な接触の摩擦係数として使われます。

例: 地面のmu: 0.8 タイヤのmu: 0.6 最終的な摩擦係数: 0.6 この場合、接触に適用される摩擦係数は、地面とタイヤの間での最小値である0.6になります。

yasuohayashibara commented 3 months ago

すべての摩擦係数を1.0にして,ホイールの最大トルクを10.0Nmにしたらほぼ曲がらなくなった.

https://github.com/open-rdc/aiformula/blob/e6024c01011ae2639b992e4d652f3b7789afc7f6/simulator/models/ai_car1/model.sdf#L212-L213

https://github.com/open-rdc/aiformula/blob/e6024c01011ae2639b992e4d652f3b7789afc7f6/simulator/models/ai_car1/model.sdf#L400

yasuohayashibara commented 3 months ago

5 で反映されたので,こちらのPRを閉じます.