Raspberry Pi Mouseのハードウェアモデルデータ(URDFモデル)をUnityにインポートします。
インポートにはUnity-Technologies/URDF-Importerを用います。
Unityプロジェクトの新規作成までの手順はSTEP0をご参照ください。
本ステップ実行後の状態のSceneファイルはMobileRobotUITutorialProject/Assets/Scenes/Step1.unity
から入手できます。
- Windows 10 Home バージョン 21H2
- Unity 2021.3.4f1
- Unity-Technologies/URDF-Importer v0.5.2
パッケージマネージャからURDF-Importerをインストールします。パッケージマネージャはメニューバーのWindow -> Package Manager
から開けます。
左上の+ボタンからAdd package from git URL
をクリックします。
URDF-ImporterのGitリポジトリへのURLを最新のタグを指定して入力し、Add
をクリックします。2022年6月現在最新のタグはv0.5.2
です。
この場合のGitリポジトリへのURLは https://github.com/Unity-Technologies/URDF-Importer.git?path=/com.unity.robotics.urdf-importer#v0.5.2
となります。
※今後のバージョンアップによって使い方が変わる可能性があります。本チュートリアルでは「動作確認環境」に記載のバージョンでのみ動作確認をしています。
URDFモデルをダウンロードし、Unityプロジェクト内のAssets/URDF
フォルダへ配置します。
今回はURDFモデルを予め本プロジェクトと一緒にダウンロードしているのでコピーして配置します。
まず、UnityのProjectパネルで、Assets/URDF
フォルダを作成します。
次に作成したAssets/URDF
をエクスプローラで開きます。
ROS/src/raspimouse_description
フォルダをURDF
フォルダへコピーします。
Windowsの場合はCtrlキーを押しながらドラッグすると移動ではなくコピーができます。
次にコピーしてきたraspimouse_description
フォルダ内のurdf/raspimouse_with_urg.urdf
を作成したAssets/URDF
にコピーしておきます。
この配置とすることでURDFモデルをURDF-Importerを使ってインポートする時にモデルデータのパスが解決できるようになります。
(.meta
ファイルはUnityで自動的に生成されるものなので無視して構いません)
ここまででURDFモデルの準備は完了です。
URDFモデルをUnity上で読み込み、次のSTEP以降で必要な設定をしておきます。
まず、Assets/URDF
内のraspimouse_with_urg.urdf
を右クリックしてImport Robot from Selected URDF file
をクリックします。
その後URDF Import Settings
パネルでAxis TypeをY axis
に、Mesh DecomposerをVHACD
でImport URDF
をクリックします。
エラーなくインポートできればSceneビューにRaspberry Pi Mouseが出現しているはずです。
URDF-Importerで読み込んだロボットモデルはUnity上で物理シミュレーションができるように Articulation Bodyが適用されます。 今回物理シミュレーションはGazeboで行い、UnityはUI開発に使用するため以下のGameObjectのArticulation Bodyを無効にします。
base_link
right_wheel_link
left_wheel_link
urg_mount_link
lidar_link
さらにraspimouse
GameObjectにアタッチされているController
スクリプトを無効にしておきます。
以上でURDFのインポートは完了です。
URDFモデルを準備し、URDF-Importerを使ってUnityのプロジェクトにインポートする方法を紹介しました。 さらにUnityの物理演算を使わない場合のGameObjectの設定についても紹介しました。
今回は同梱しているURDFモデルを使いましたが、他のURDFモデルを使用することもできます。 例えば、Raspberry Pi Mouseと同じくアールティから販売されているJetson Nano Mouseを使おうと思った場合はrt-net/jnmouse_descriptionからデータをダウンロードしてプロジェクトに取り込めばURDF-Importerを使って同じようにロボットを表示させることができるようになります。
次はSTEP2でロボットを動かす環境(Worldデータ)を読み込みます。