MuJoCoにおいて、既存のジオムは凸な形状なのですが、SDFというプラグインを使用すると、凸でない形状の物体を作成できるということで、円筒を作成してみました。
赤い球が円筒の内部を通過しているのがわかります。
実は、メッシュ (asset/mesh) でバイナリSTLファイルを読み込むなどして、円筒を作成することができます。しかし、メッシュの衝突判定はメッシュの凸包で動作します。
このように、赤い球が円筒の内部を通過できずに、上部で跳ね返っていることがわかります。
次に、SDFで作成した円筒と composite object を衝突をさせてみました。
衝突判定も問題ないようです。
SDF を利用すれば、いろいろなものが作れそうですね。
参考文献
- DeepMind Technologies Limited. “Extensions”. MuJoCo Documentation. 2024. https://mujoco.readthedocs.io/en/stable/programming/extension.html#sdf , (参照 2025-02-19)
- DeepMind Technologies Limited. “Signed distance function (SDF) plugins”. GitHub. 2024. https://github.com/google-deepmind/mujoco/blob/main/plugin/sdf/README.md , (参照 2025-02-19)