本ステップ実行後の状態のSceneファイルはMobileRobotUITutorialProject/Assets/Scenes/Step7.unity
から入手できます。
- Windows 10 Home バージョン 21H2
- Unity 2021.3.4f1
- Unity-Technologies/ROS-TCP-Connector v0.7.0
- Docker Desktop 4.9.1
STEP6までと同様にAssets/Scripts/ImageSubscriber.cs
をSubscriber
オブジェクトにアタッチします。
ここまででSubscriber
に追加したコンポーネントはTf Subscriber
、Odom Subscriber
、Laser Scan Subscriber
、Image Subscriber
の4つになります。
HierarchyウィンドウのCanvas
オブジェクトの子オブジェクトとしてRawImage
形式のGameObjectをRawImage
という名前で作成します。
RawImage
オブジェクトについてInspectorウィンドウから表示位置を変更します。
Rect Transform
コンポーネントのAnchor Presetsは右下寄せになるright-bottomを選択します。
Pos X, Pos Y, Pos Z, Width, Heightはそれぞれ-110, 440, 0, 200, 200にします。
次に、Subscriber
オブジェクトを選択してInspectorウィンドウを開き、Image Subscriber
コンポーネントのRaw Image
に先程作成したRawImage
オブジェクトをを指定します。
STEP3~STEP6と同様に、再生モードでUnityプロジェクトを実行します。
次にGazeboシミュレータを起動します。Dockerを起動し、LXTerminalを実行するところまではこれまでと同じですが、 シミュレータの起動時にオプションを指定します。
1枚目のLXTerminalで以下のコマンドを実行します。
roslaunch raspimouse_gazebo raspimouse_with_cheeze_maze.launch camera:=true
無事実行できると以下のようにシミュレータが起動します。STEP6までとは少し異なり、カメラがロボット前方にあることが確認できます。
2枚目のLXTerminalで以下のコマンドを実行します。
roslaunch ros_tcp_endpoint endpoint.launch
シミュレータを起動してros_tcp_endpointを起動したあとは再生モードのUnityの操作ボタンから移動指令を送信します。
オドメトリとLiDARデータに加えて、カメラデータを可視化することができました。
カメラデータ受信用スクリプトとカメラデータ描画用オブジェクトを追加し、カメラデータを可視化する方法を紹介しました。
「UnityとROSで学ぶ移動ロボット入門 UI作成編」のチュートリアルは以上です。 本教材の内容を応用したオリジナル作品の作成や、 各種ツールのより高度なテクニックを学ぶ際はINTRO1、 INTRO2にてご紹介したリンク先をぜひ参考にしてみてください。
これから先、Raspberry Pi Mouse以外のロボットを試してみたり、Unity Asset Storeなどで公開されているアセットを組み合わせてカスタマイズしてオリジナルUIにチャレンジしたり、 みなさんがROS対応移動ロボットとUnityを組み合わせてUIを制作する際の一助となれば幸いです。
本教材の開発にあたり多大なるご協力を頂いた株式会社アールティの皆様に深く感謝し、厚くお礼申し上げます。