UnityとROS 2を繋ぐ架け橋。バーチャルmechArmを召喚
前回は、3DモニターRViz2を使って、ロボットが活躍する3D空間の基準を作りました。 いよいよ本命のUnityを立ち上げます。「脳」であるROS 2と、「体」であるUnityを繋いで、バーチャルなロボットアームを動かすための下準備をしていきます。
※本プロジェクトの目的:実機「mechArm 270 M5」の制御を通じて、AIの判断をいかに物理的な動きへ変換するか。そのロボット制御の仕組みを理解するプロセスを記録・検証するものです。
なぜ「Unity」が必要なの?
ROS 2(脳)だけでも計算はできますが、やはり実際にどう動くかをリアルな映像で見たいですよね。そこで活躍するのがUnityです。
本物そっくりのシミュレーション: 重力や物の重さを再現できるので、実機を買う前に壁にぶつからないか、ちゃんと目的の場所に届くかをテストできます。
デジタルツインの第一歩: 画面の中のロボットと実機を連動させるデジタルツインの土台になります。
準備するもの:Unityと「設計図」
Macのパワーを活かすために、まずは以下の2つを用意します。
① Unity Hub & Unity Editor (Silicon版)
Macユーザーなら、必ず「Apple Silicon対応版」のUnityをインストールしましょう。MシリーズのProチップの性能がフルに発揮され、重い3D描画もサクサク動きます。
② mechArmの「設計図」(URDFファイル)
ロボット業界には、URDF(アールディーエフ)という共通の設計図データがあります。
これには、アームの長さ、関節の動く範囲、見た目の3Dモデルなどの情報がすべて詰まっています。
Elephant Robotics社が公開しているこのデータをUnityに読み込むことで、画面の中に本寸法のmechArmが現れます。
URDFファイルの入手先
ROS 2 Humble環境で使用する場合、以下のリポジトリを確認してください。
GitHubリポジトリ:
elephantrobotics/mycobot_ros2選択するブランチ:
humble
Ubuntu 22.04 / ROS 2 Humble環境に最適化されたデータが含まれています。
設計図の具体的な保存場所(パス)

GitHubの humble ブランチを開いたら、以下の順にフォルダを辿っていきましょう。
mecharmフォルダを選択。操作: 今見えている画面のリストの一番上にある
mecharmフォルダ(もう一つの同名フォルダ)をさらにもう一度クリックしてください。辿り着くパス:
mecharm / mecharm / urdf /
この中に、目的の
.urdfファイルが格納されています。その中の
urdfフォルダへ。さらに
mecharm_270_m5フォルダを開くと、目的の.urdfファイルが見つかります。
ROS 2の「ひっかけ」フォルダ名に騙されない!

実はずっと探していたのですが見つからず、どうやらGitHubのフォルダですが、前のセクションで探していたフォルダは、ロボットを動かすためのプログラム(ドライバ)が中心でした。
ロボットの見た目や形に関する設計図(URDF)は、ROS 2の世界ではdescription(ディスクリプション)という名前がついた別の箱(パッケージ)にまとめられるルールがあるとのこと。
正解のルートはこちら
移動先:
mycobot_ros2(root) ➔mycobot_description理由: Elephant Roboticsのリポジトリでは、複数のロボットの3Dデータをこのフォルダに集約して管理しているからです。
設計図への正確なパス
mycobot_description フォルダを開いたら、以下の順に辿ってください。
urdfフォルダを開くmecharm_270_m5フォルダを開くmecharm_270_m5.urdf➔ これが探し求めていた「設計図」です!
最終的な正しいパスはこちらです。
場所:
mycobot_description / urdf / mecharm_270_m5 / mecharm_270_m5.urdfブランチ:
humble(ここを間違えると古い設定になるので注意!)

Unity召喚に必要な「3点セット」
このフォルダからは、以下のデータをセットでダウンロードすることになります。
.urdfファイル: 関節の動く範囲などのルールが書かれたテキスト。meshesフォルダ: ロボットの外装データ(3Dモデル)。これがないとロボットが透明になってしまいます。configフォルダ: 関節の初期位置などの設定が含まれることがあります。
GitHubにある大量のファイルの保存の仕方
ターミナルでリポジトリを丸ごとコピーする。クローン(Clone)という操作を行います。GitHubにある最新のデータをMacの中に分身として作成する作業です。
手順
ターミナルを開く
保存したい場所に移動する(例:デスクトップなど)
cd ~/Desktop
クローンコマンドを打つ 現在開いているGitHubのURLと、正しいブランチ(humble)を指定して実行します。
git clone -b humble https://github.com/elephantrobotics/mycobot_ros2.git
ROS 2とUnityの「通信ポート」を開く
ここで、前回学んだおしゃべり(通信)が再登場します。 ROS 2とUnityは、そのままでは言葉が通じません。そこで、「ROS-TCP-Connector」という専用のプラグインをUnityに入れます。
これが、ROS 2(脳)からの命令を、Unity(体)に届けるための高速道路になります。
重要:作業中の注意ポイント!
前回のRViz2の時にも触れた、大切なお作法を復習しておきます。
ターミナルは「開いたまま」がルール!
Unityで作業をしている間も、裏側でROS 2を動かしているターミナルを閉じてはいけません。 ターミナルを閉じると脳が眠ってしまい、Unityの中のロボットも動かなくなってしまいます。 画面が邪魔なときは「×」ではなくー(最小化)で避けておきましょう。
ダウンロードデータの移動先
Macで開発を行うエンジニアの多くは、以下のような場所にプロジェクトをまとめています。
書類(Documents)フォルダの中:
~/Documents/Robotics/などホーム直下の開発フォルダ:
~/dev/や~/ros2_ws/など
移動は、Finderでドラッグ&ドロップするだけで大丈夫です。
移動する際の「たった一つの注意点」
Unityに読み込ませる前に場所を確定させることが重要です。
今のタイミングならOK: データをダウンロードしたばかりで、どこにも設定を紐づけていない場合、今すぐ移動させるのがベストタイミングです。
後からはNG: 一度Unityプロジェクトにこのフォルダ内の設計図(URDF)を読み込ませた後にフォルダを移動させると、Unityが「設計図(や3Dモデル)がどこに行ったかわからない!」とエラー(リンク切れ)を出してしまいます。
エンジニアの知恵: ロボット開発ではパス(ファイルの住所)が命です。一度場所を決めたら、プロジェクトが完成するまではその場所を動かさないのが、トラブルを防ぐ最大のコツです。
いよいよ「体」が手に入る
Unityという強力な体を手に入れるための準備を進めました。 2Dのカメから始まり、3Dの座標軸、そしてUnityでのロボット召喚へ。一歩ずつ、着実にエンジニアの階段を登っています。
