仮想世界を構築。Unityにロボットを呼ぶための「翻訳機」を導入!
mechArmの遺伝子とも言える設計図(URDF)をMacに迎え入れました。
設計図を読み込んでロボットを形作るための仮想世界(Unity)を立ち上げ、特別なツールをインストールする工程をお届けします。
※本プロジェクトの目的:実機「mechArm 270 M5」の制御を通じて、AIの判断をいかに物理的な動きへ変換するか。そのロボット制御の仕組みを理解するプロセスを記録・検証するものです。
Unity (Silicon)の選択

ロボットが活動するための舞台作りです。ここで重要なのは、Intel版ではなくApple Silicon対応版のUnityを使うことです。
Unity Hubの起動: Dockに常駐させておいたUnity Hubを開きます。
テンプレートの選択: 物理演算に最適な3D (Core)を選択。
テンプレートを「コア」に切り替える: 現在は「コア」「サンプル」「使い方を学ぶ」タブが並んでいます。ロボットシミュレーションには コア(Core)タブの中にある3D (Built-In Render Pipeline)を選ぶのが正解です。
Silicon版の指定: バージョン名にSiliconと記載されたエディタを選ぶことで、M1チップのパワーを最大限に活かした、静かで爆速なシミュレーション環境が手に入ります。
ダウンロード: タイルの右上に下向き矢印のアイコンが表示されている場合は、まずそのアイコンをクリックしてテンプレートをダウンロードします。
プロジェクトを作成: 選択できたら、右下の青いボタン 「+ プロジェクトを作成」 をクリックしてください。
ロボットの設計図を読み解く「URDF Importer」の導入
Unityを立ち上げただけでは、まだROS 2の設計図(URDF)を理解できません。そこで、Unityとロボット工学の架け橋となるURDF Importerというプラグインを導入します。
インストールの手順
Unity上部のメニューから
Window➔Package Managerを開きます。左上の「+」ボタンから「Add package from git URL...」を選択。
以下の公式URLを入力して追加します。
https://github.com/Unity-Technologies/Unity-Robotics-Hub.git?path=/com.unity.robotics.urdf-importer
これが、ROS 2の複雑なデータをUnityが理解できる3Dモデルと関節のルールに変換してくれる翻訳機になります。
インストール完了を確認する「2つのチェック」
以下の方法で、翻訳機(URDF Importer)があなたのUnityに無事入ったか確認してみましょう。
① 「GameObject」メニューを確認する(一番確実!)
Unityのメイン画面(Package Managerの裏側にある画面)の一番上にあるメニューバーを見てください。
GameObject➔ROS➔Import Robot from URDFという項目が増えていますか?これがあれば、インストールは大成功です!
② Package Managerのリストをスクロールする
Package Managerの左側のリスト(In Project)を下にスクロールしてみてください。
URDF Importerという名前の項目が見つかればOKです。
もしリストにURDF Importerが見当たらず、手順①のメニューも増えていない場合は、インストールが途中で失敗した可能性があります。
もしダウンロードエラーが出ていた時は?

Unityで外部ツールを入れる際、URLからの追加がうまくいかないことがあるとのこと。 これはエンジニアあるあるな壁みたいです。ここを乗り越えるための、最も確実なディスクから直接追加する(Add package from disk)という方法で行います。
翻訳機(URDF Importer)をブラウザで直接ダウンロード
URL通信がダメなら、先に「実物」をMacにダウンロードしてしまいましょう。
ブラウザで Unity-Technologies / URDF-Importer (GitHub) にアクセスします。
緑色の 「Code」 ボタン ➔ 「Download ZIP」 をクリックして保存します。
ダウンロードされた
URDF-Importer-main.zipを解凍します。今度はフォルダを開いてすぐの場所に、package.jsonが入っています。
Unityへ「ディスクから」追加する
URLではなく、今Macにあるフォルダを直接Unityに教えてあげます。
Unity の
Package Managerをもう一度開きます。左上の 「+」 ボタンをクリック。
今度は 「Add package from disk...」 を選択します。
先ほど解凍したフォルダの中にある
package.jsonというファイルを選択して開きます。
これで、通信環境に左右されず、確実にインストールが完了します。
「召喚」の準備が整った!
仮想世界の土台ができ、翻訳機(URDF Importer)もセット完了。
これで、先日デスクトップにダウンロードした mycobot_ros2 フォルダ内の設計図 を、Unityがロボットとして認識できるようになりました。
いよいよこの真っ白な3D空間に、本物と同じサイズの mechArm 270 M5 が姿を現します。
次にやるべき「召喚」のワンステップ
「設計図」を見つける:
mycobot_ros2フォルダの中にあるmycobot_descriptionというフォルダを探します。Unityへ放り込む: そのフォルダを、Unityエディタ画面の左下にあるProjectウィンドウ(Assetsと書かれた場所)へドラッグ&ドロップ してください。
これが完了すると、Unityの中にロボットのデータがコピーされ、いよいよ実物を画面に出現させる準備が整います。
注意!:黄色のメッセージの正体

画面下に表示されている「Identifier uniqueness violation...」という警告は、インポートした3Dモデルデータ(Mesh)の中に、同じ名前(Brep)を持つ部品が複数含まれていることをUnityが教えてくれています。
エラー(赤)ではない: プログラムが止まる致命的な問題ではありません。
ロボット開発では「あるある」: CADで作られた複雑なロボットの3Dデータ(STLやDAEファイル)をUnityに入れると、よく発生する警告です。
影響: 3Dモデルの見た目が少しおかしな箇所が出る可能性はありますが、ロボットを動かすシミュレーション自体には影響しません。
いよいよ「召喚(インポート)」の最後の一押しです!

設計図データがUnityの中に入ったので、これを使って3D空間にロボットを出現させます。
URDFファイルを探す: Unity画面左下の
Projectウィンドウで、フォルダを以下のように辿ってください。Assets➔mycobot_description➔urdf➔mecharm_270_m5設計図を選択: その中にある
mecharm_270_m5.urdfというファイルを 右クリック します。インポートを実行: メニューの一番下あたりにある
URDF Importer➔Import Robot from Selected URDFをクリックしてください。成功の鍵は「右クリック」にあり: 右クリックメニューから
URDF Importerを呼び出すこと。これが、MacのOSに邪魔されずにUnityのプラグインを直接動かすための正解ルートです。これを乗り越えれば、いよいよ銀色のボディが画面に現れます。
Macの親切心によるトラップ

このメッセージが出た時は、Unity初心者の方が最初によく遭遇するMacの親切心によるトラップ」す。
ファイルをダブルクリックしてしまったために、Macがこの見慣れない拡張子(.urdf)をどのアプリで開けばいいの?と聞いてきている状態です。
ファイルを開くのではなく、Unityのプラグインに読み込ませるのが目的なので、以下の手順で進めてください。
回避手順
キャンセルを押す: 表示されているMacのメッセージウィンドウで「キャンセル」を押して閉じてください。
右クリックでメニューを出す: Unityの画面内にある
mecharm_270_m5ファイルを、今度は右クリック(またはControlキーを押しながらクリック)してください。インポートを実行する: 出てきたメニューの中から
URDF Importer➔Import Robot from Selected URDFをクリックします。
これで、Macのシステムを通さず、Unity内の翻訳機が直接ロボットを組み立て始めます。
