Lite3 and X30 feet declare a singular inertia tensor on the links that take every ground contact
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 72/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 領域
- robotics
調査の方向性
Lite3/urdf/Lite3.urdf と X30/urdf/X30.urdf の指定された箇所にある足のリンクから始め、衝突ジオメトリと慣性の宣言を Lite3.xml および X30.xml と比較します。dont_collapse="true" の足首ジョイントと LIDAR_* リンクを確認します。URDF と MJCF の記述が一貫して有効な慣性を使用し、参照されている URDF preflight に合格すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
All four feet on both quadrupeds declare a mass and a collision sphere, and an
inertia tensor that no rigid body can have.
Lite3 (Lite3/urdf/Lite3.urdf:121, and FR/HL/HR at 224/326/428):
<link name="FL_FOOT">
<collision><geometry><sphere radius="0.022"/></geometry></collision>
<inertial><mass value="0.02"/>
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/></inertial>
</link>
A solid sphere of that radius at that mass is
I = (2/5) m r^2 = 0.4 * 0.02 * 0.022^2 = 3.872e-06 kg m^2
The declared tensor is all zeros -- eigenvalues (0, 0, 0), not positive
definite.
X30 (X30/urdf/X30.urdf:129, +237/346/454): mass 0.06, sphere radius 0.036,
diaginertia = 1e-12. The solid-sphere value is
0.4 * 0.06 * 0.036^2 = 3.1104e-05 kg m^2
so the declared value is 3.11e7 times too small. The four LIDAR_* links
carry mass 1e-05 with an all-zero tensor as well.
The correct values are computable from the links' own collision geometry --
the two numbers above -- so no CAD lookup is needed if the feet really are
approximately solid spheres.
One caveat worth stating, because it decides whether this matters. A
zero-inertia body on a fixed joint is harmless if the consumer merges it into
its parent. But the joint immediately below carries dont_collapse="true":
<joint name="FL_Ankle" type="fixed" dont_collapse="true">
which is an explicit instruction to importers not to merge it. So the model
asks for the foot to be kept as an independent body and gives it a singular
inertia. Whichever half is intended, the two disagree, and consumers differ on
what they do about it -- MuJoCo's compiler and Drake reject a non-PD tensor,
while some importers silently substitute a bounding-volume inertia and others
integrate it as-is.
Also worth noting the MJCF siblings repeat the same values (Lite3.xml
diaginertia="0.0 0.0 0.0", X30.xml 1e-12), so this is not a URDF-only
transcription slip and fixing one file would leave the other wrong. I checked
that specifically because I had expected the MJCF to be the recovery source.
Found while running a URDF preflight over published quadruped descriptions;
the checks are open source, so the arithmetic above is reproducible on your side
without adopting anything of ours.
- 主要言語
- 言語のデータがありません
- スター
- 77
- フォーク
- 14
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
status:needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
PX4/PX4-Autopilot#28776 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
gazebosim/gz-sensors#662 · コメント 1 件 ·
-
diff_drive_controller keeps warning about a timed-out velocity command while the robot is parked オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
ros-controls/ros2_controllers#2619 ·