Skip to content

Latest commit

 

History

History
124 lines (80 loc) · 5.43 KB

appendix.md

File metadata and controls

124 lines (80 loc) · 5.43 KB

付録

概要

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

動作確認済環境

独自の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のメッセージファイルをダウンロードしてきたフォルダを指定します。 Built message pathには、変換後のC#スクリプトの置き場所を指定します。

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

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

ロボットのハードウェアモデルの差し替え

STEP1~7ではRaspberry Pi Mouseのハードウェアモデルを使用してきましたが、 他のロボットのハードウェアモデルに差し替えることも可能です。 ここではRaspberry Pi Catのハードウェアモデルを例にして、 使用するハードウェアモデルを実際に差し替えてみます。 基本的にはSTEP1の方法を参考にすれば差し替えが可能なので、 何か分からないことがあれば、STEP1を参考にしてみてください。

1. URDFモデルの入手

まず、差し替えたいハードウェアモデルを入手します。 今回はRaspberry Pi CatのURDFモデルを使用するので、 rt-net/raspicat_descriptionをダウンロードします。

次に、ダウンロードしたraspicat_descriptionフォルダをUnityプロジェクト内のAssets/URDFへインポートします。 インポートができたら、raspicat_description/urdf/raspicat.urdfAssets/URDFへコピーします。

ここまででURDFの準備は完了です。

2. URDFモデルをUnityで読み込む

URDFモデルをUnityで読み込みます。

まず、Assets/URDF内のraspicat.urdfを右クリックしてImport Robot from Selected URDF fileをクリックします。

その後URDF Import SettingsパネルでAxis TypeをY axisに、Mesh DecomposerをVHACDImport URDFをクリックします。

エラーなくインポートできればSceneビューにRaspberry Pi Catが出現しているはずです。

URDF-Importerで読み込んだロボットモデルはUnity上で物理シミュレーションができるように Articulation Bodyが適用されます。 しかし、今回はUnityを物理シミュレーションではなくUI開発に使用するので、以下のGameObjectのArticulation Bodyを無効にします。

  • base_link
  • imu_link
  • camera_link
  • camera_depth_frame
  • camera_depth_optical_frame
  • camera_color_frame
  • camera_color_optical_frame
  • left_side_usensor_link
  • left_front_usensor_link
  • right_front_usensor_link
  • right_side_usensor_link
  • urg_mount_link
  • lidar_link
  • caster_link
  • caster_wheel_link
  • left_wheel_link
  • right_wheel_link

さらにraspicatGameObjectにアタッチされているControllerスクリプトを無効にしておきます。

以上でURDFのインポートは完了です。

3. ハードウェアモデルの動作確認

各ロボットに合わせて、ROS 2のPublisherやSubscriberを適切に実装して動作確認を行います。 Raspberry Pi Catの場合は次のアニメーションのように動かすことができます。