mechArm 270 M5、Unityでの初駆動ドキュメント
Macの中でmechArm 270 M5が産声を上げました。 インポート直後の浮遊や、再生した瞬間に崩れ落ちるだら下がりなど、数々の物理的な課題を一つずつ解決し、自分の指先(キーボード)でロボットを制御できるまでのプロセスを記録します。
※本プロジェクトの目的:実機「mechArm 270 M5」の制御を通じて、AIの判断をいかに物理的な動きへ変換するか。そのロボット制御の仕組みを理解するプロセスを記録・検証するものです。
接地と座標の戦い
最初に直面したのは、ロボットが宙に浮いている、あるいは地面にめり込むという座標の問題でした。
浮遊の解消: 当初、ロボットのPosition Yが0の状態では足元が浮いていました。
最終的な接地座標: 試行錯誤の結果、Position Yを-0.07に設定することで、床(Plane)との完璧な接地を実現しました。
Playモードの罠: 再生中(青いボタンが光っている時)に変更した数値は保存されないため、必ず「停止状態」で数値を確定させる重要性を学びました。
システムの壁:Input Systemの競合
Unityで旧来のロボット制御スクリプトを動かそうとした際、赤いエラー(InvalidOperationException)が発生し、操作が受け付けられない状態に陥りました。
解決策:
Project Settings➔Player➔Other Settings➔Configurationセクションへ移動。設定変更: Active Input Handlingを
Input System Package (New)からBothに変更して再起動しました。結果: これにより、最新のUnity環境でも矢印キーによる関節制御が可能になりました。
物理の壁:ロボットの「固定」と「筋肉」
ロボットを配置できても、再生ボタンを押した瞬間に腕が重力で垂れ下がってしまう問題が発生しました。ロボットに「意思」と「パワー」を持たせるための設定が不可欠でした。
土台の固定:
baseオブジェクトにArticulation Bodyコンポーネントを確認し、Immovable(または Fixed)にチェックを入れて世界に釘付けしました。関節の強化(筋肉の実装): 各 link の
Articulation Body内にあるX Driveを調整しました。
Stiffness(硬さ): 50000
Damping(減衰): 500
Force Limit(力の限界): 10000
初稼働:自分の指でロボットが動く感動
全ての準備が整い、再生ボタンが青く光る中でGame画面をクリック。
画面に「move link1 (1)」という文字が表示されていることを確認。
上下矢印キー(↑ ↓) を長押し。
mechArmの根元が、重力に負けることなくウィーンと力強く回転しました。
【追加セクション】パフォーマンスの追求:もっさり感の解消
物理演算が安定した後は、操作のレスポンスを向上させるためのチューニングを行いました。
Speed(移動速度): 5 ➔ 50
効果: 関節の回転速度が劇的に向上し、実機に近いキビキビとした動きを実現。
調整のコツ: 速度を上げすぎるとアームが震えることがありますが、以前設定した Damping(500) がしっかりとブレーキの役割を果たしているため、高速域でも安定した停止が可能です。
Unityフェーズ完了
これで、Unity上での「モデル配置」「物理設定」「手動操作」「パフォーマンス調整」がすべて完了しました。
次の工程はROS 2 との通信を開始して、Mac のターミナルを立ち上げROS 2 のプログラムから Unity のロボットを動かすためのブリッジを構築します。
