mechArm 270 M5の関節駆動テスト計画書(手動テスト編)|Unity ArticulationBody検証
このテストの目的はROSと繋ぐ前に、Unity内の物理演算(Articulation Body)が正しく機能しているかを確認することです。
※本プロジェクトの目的:実機「mechArm 270 M5」の制御を通じて、AIの判断をいかに物理的な動きへ変換するか。そのロボット制御の仕組みを理解するプロセスを記録・検証するものです。
事前チェックリスト(テスト開始前に確認)
ロボットのサイズ:
firefighter(またはmecharm_270_m5)のScaleがすべて1であること。ロボットの位置: Position が (0, 0, 0) 付近で、床(Plane)の上に正しく乗っていること。
重力設定:
Urdf Robot (Script)のUse GravityがDisable(または床がある状態で安定していること)。エラーの掃除: ConsoleタブのClearを押し、赤いエラーが止まっていること。
エラーが消えない時は?
テスト手順:3ステップ・アクション
ステップ1:物理世界の起動
Unity画面上部中央の「再生(▶︎)」ボタン をクリックしてPlayモードに入ります。
この時、ロボットが床を突き抜けたり、どこかへ飛んでいったりしないことを確認してください。
ステップ2:関節(Joint)の特定
Hierarchyウィンドウでロボットの階層を展開します。
firefighter➔base➔link1➔link2... の順に「▶︎」を開きます。
テストしたい関節(まずは
link1やlink2がおすすめ)をクリックして選択します。
ステップ3:Drive(駆動)の操作
Inspector ウィンドウを下にスクロールし、Articulation Bodyコンポーネントを見つけます。
その中の Drive という項目の中にある Target の数値(角度)をマウスで左右にスライドさせます。
確認事項: 画面内のロボットの腕が、スライダーの動きに合わせてスムーズに動くかチェックします。
ロボットが床に減り込んだら?
ロボットが下に落ちたり沈んだりするのは、土台が世界に固定されていないためです。
Hierarchy(左側)で、firefighter ➔ base を選択します。
Inspector(右側)で Articulation Body コンポーネントを探します。
Articulation Joint Type という項目を Fixed に変更してください。
これで、ロボットの土台が地面に釘付けされ、物理演算が始まっても沈まなくなります。
ロボット側の「Convex」を確認する
Unity の物理演算(Articulation Body)では、ロボット側の当たり判定は必ず 「Convex(凸状)」 である必要があります。
同じく base を選択した状態で、Inspector の Mesh Collider を見ます。
Convex という項目にチェックが入っているか確認してください。
チェックが入っていないと、床の Collider を無視して通り抜けてしまいます。
他の関節(link1〜6)も、もし沈むようであれば同様に Convex にチェックを入れます。
Articulation Body を見つける・追加する
Inspector を下へスクロールする
Urdf Link (Script) の下を確認してください。 通常、URDFインポートが成功していればそこにArticulation Bodyという名前のコンポーネントがあるはずです。
もし見当たらない場合
一番下の Add Component ボタンを押します。
検索窓に Articulation Body と入力して、出てきたものをクリックして追加してください。
ロボットを地面に釘付けにする(重要設定)
Articulation Body が見つかったら(または追加したら)、以下の設定を必ず行ってください。これがめり込みと落下を防ぐ決定打になります。
Immovable(動かない)のチェックボックスにチェックを入れます。
これで、ロボットの土台(base)が世界に対して完全に固定され、重力で沈んだり倒れたりすることがなくなります。
Use Gravity のチェックはオフにしておくとより安定します。
アームの「だら下がり」を直す 3つの手順
再生ボタン(▶︎)を一度押して、グレー(停止状態)にしてから操作してください。
ロボット全体の重力を切る(一番簡単な方法)
まずは物理計算に邪魔されず操作したい場合、重力をオフにします。
Hierarchy で firefighter を選択します。
Inspector の Urdf Robot (Script) にある Use Gravity を Disable に変更してください。
これで、アームは重力を無視してピタッと止まります。
関節に「筋肉(Stiffness)」をつける(推奨)
実際に動かすためには、関節を硬くする必要があります。
Hierarchy で、link1 から link6 を一つずつ選択して確認します。
Inspector の一番下にある Joint Control (Script) を見ます。
以下の数値を入力してください:
Stiffness(硬さ): 10000〜50000 くらい
Damping(減衰): 100〜500 くらい
Force Limit(力の限界): 10000 くらい
※ これを全ての link(特に関節が動く link)で行います。
「命」を吹き込む保存をする
設定が終わったら、キーボードで Command + S を押して保存します。
まだ垂れる場合
firefighter(親)の Use Gravity を Disable にして、一度重力を完全に消して動きを確認しましょう。
