Skip to content

Latest commit

 

History

History
166 lines (98 loc) · 6.21 KB

File metadata and controls

166 lines (98 loc) · 6.21 KB

付録

概要

STEP1~7では扱わなかった内容についても紹介します。

動作確認済環境

独自のROSメッセージへの対応

Unity-Technologies/ROS-TCP-Connectorでは扱うすべてのROSのメッセージファイルをC#にて定義する必要があります。 com.unity.robotics.ros-tcp-connector/Runtime/Messagesから予めUnity用に用意されているROSのメッセージ形式を確認できます。
使うROSのメッセージがROS-TCP-Connectorに予め含まれていない場合にのみ、C#のスクリプトを用意する必要があります。

1. ROSのメッセージファイルを用意

変換したいROSのメッセージファイルを用意します。
例えばRaspberry Pi Mouse実機に搭載されているLEDの点灯・消灯状態はLedValues.msgというメッセージファイルにて定義されている形式で管理されます。

https://github.com/rt-net/raspimouse/blob/1.0.0/raspimouse_msgs/msg/LedValues.msg

2. ROSのメッセージファイルからC#スクリプト作成

変換にはROS-TCP-Connectorのメッセージ作成機能を用います。

メニューバーからRobotics -> Generate ROS Messages...を選択します。

ROS message pathを指定します。 ROSのメッセージファイルをダウンロードしてきたフォルダを指定します。

対象の.msgファイルを選択してBuild msgをクリックします。

以上でROSのメッセージファイル作成は完了です。Unityプロジェクト内のAssets/RosMessagesフォルダにC#のスクリプトが作成されています。

JoystickによるRaspberry Pi Mouseの操作

Input SystemのOn-Screen Stickを用いてスクリーン上にJoyStickを作成し、Raspberry Pi Mouseを操作します。

1. Input Systemの確認

Package Managerを開いてInput Systemがインストールされているか確認します。

メニューバーから Window -> Package Manager を選択します。

Package Managerを開いたら、Unity Registryを選択して、Input Systemにチェックマークが付いているか確認します。

もしもインストールされていない場合は、インストールを実行してください。

2. On-Screen Stickの配置と設定

Input SystemのOn-Screen Stickを配置します。

前のステップで作成したロボット操作用ボタンの代わりにOn-Screen Stickを使用するため、 HierarchyのCanvas -> Panelを選択し、 Inspectorでチェックを外してPanelを非表示にします。

HierarchyのCanvasの子オブジェクトとしてImageを作成します。

ImageのInspectorでSource ImageにKnobを選択します。

ImageのInspectorでAnchor Presetsを右下に設定し、 さらにPositionとWidthとHeightを以下のように設定します。

  • Pos X : -200
  • Pox Y : 200
  • Pos Z : 0
  • Width : 50
  • Height : 50

ImageのInspectorでAdd Componentを押し、 On-Screen Stickを選択します。 さらにOn-Screen StickControl PathGamepad -> Left Stickを選択します。

EventSystemのInspectorでStandalone Input ModuleReplace with InputSystemUIInputModuleを押します。

3. On-Screen Stick用のスクリプトを設定

まず準備として、UnityScripts/JoyStickフォルダをUnityプロジェクトのAssetsフォルダにコピー(Assets/JoyStickとして配置)します。

次に、HierarchyのPublisherCmdVelPublisherのチェックを外します。

さらにPublisherのAdd Componentを押してOnScreenStickCmdVelPublisherを追加します。

4. Input Actionの設定

HierarchyのPublisherにアタッチしてあるOnScreenStickCmdVelPublisherMove Actionの+マークを押します。 そしてadd Up\Down\Left\Right Compositeを選択します。

2D Vectorをダブルクリックして、 Composite Type2D VectorModeAnalogに設定します。

さらに、UpにはGamepad -> Left Stick -> Upを選択します。 DownLeftRightも同じように設定します。

5. インターフェースの調整

On-Screen Stickのインターフェースを調整します。

HierarchyのCanvasの子オブジェクトとして、UI -> Imageを作成します。 名前はWhiteCircleとします。 また、画像で示すようにImageの上にWhiteCircleを配置するようにしてください。

WhiteCircleのInspectorで、Anchor Presetsを右下に設定します。 さらにPositionとWidthとHeightを以下のように設定します。

  • Pos X : -200
  • Pos Y : 200
  • Pos Z : 0
  • Width : 100
  • Height : 100

また、画像で示すようにSource ImageAssets/JoyStick/Textures/white_circle.pngを設定してください。

Source Imagewhite_circleが設定できない場合、 white_circleのInspectorでTexture TypeSprite (2D and UI)になっているか確認してください。

6. On-Screen StickでRaspberry Pi Mouseを操作

以上の作業を終えると、On-Screen StickでRaspberry Pi Mouseを操作できます。