蛇型ロボット コライダーに荷重検知させる方法について

 以前ご質問させていただきましたがわかりにくい部分もあったため、改めて書き直します

実現したいこと

 RigdBodyレス/コライダーだけ割り当てられた連結物体(蛇のような形状)に外部からRigidbody付きの物体の衝突があった場合、曲がるようにしたいと考えてます。
イメージ説明
また衝突物体の加速度、質量も加味した状態で曲がり具合量も調整できるようにしたいです。
(重たい物体、速度が速くぶつかった場合は大きく曲がる)

前提

 tranform.rotateを使って、各ボールに回転を与えながら、曲がりを表現しています。
イメージ説明
アセンブリ構成は以下のようになっています。
イメージ説明
根本側のボールが親構成となっていて、孫、ひ孫と階層を構成しています。

コライダーだけで曲げを再現したい理由

 地面や床に対して、曲げたときに持ち上がるような動きを再現したいという背景がありました。
イメージ説明
最初はRigidbody付きコライダーを連結させて,SpringJoint、ConfigurableJointなどを使っていろいろと試しましたが
物理計算が追い付かないせいか、各ボールがすぐにバラバラになってしまい、持ち上がるような状態は作れませんでした。
ArticulationBodyも試してみましたが、同様の結果でした。

参考にしたもの(コライダーだけで構成した理由)

 Unityでショベルカーを作成されている方で以下のようなアームを使った持ち上がりを参考にさせてもらいました。
イメージ説明
RigidBody+Jointだとどうしても、この動きができなかったため、中身を調べたところ、各アーム関節にはコライダーのみしか割り当てられておらず、RigidBodyはショベルカー全体の一番親の構成に一つ入っていました。コライダーとRigidBodyをひとつのオブジェクトにセットで入れてありませんでした。

補足情報

 この蛇型形状の物理計算ができれば、応用として、ロボットアームに荷重計算ができるかと思います。
たとえばロボットアームのモーターのトルクが足りなくて、一定以上の質量のモノが持ち上げられないなど
が再現できると思います。

どなたかご存じの方いらっしゃいましたら、ご教示いただけると幸いです。

コメントを投稿

0 コメント