0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UnityでROS】センサーを使ってみる【カメラ、点群、IMU、GNSS】

0
Last updated at Posted at 2026-05-21

こちらは「UnityでROS」シリーズの記事になります。


各記事をまとめた目次は

を参照ください。

お疲れ様です。

UnityでROSシリーズ、今回は

  • 各種センサーの使い方

について解説します。


なお、本記事は以下記事の手順を実施済みであることを前提として話を進めます。

目次

本記事では、各センサーごとに独立して解説するため、試したいセンサーの章のみをご覧いただいでも問題ありません。

カメラ

前記事で作成したロボットに、RGBカメラを取り付ける手順を解説します。

センサの取り付け

最初に、sensor_linkに「RGB Camera Sensor」スクリプトを追加します。

image.png


次に、sensor_linkに「Camera Info Msg Publisher」スクリプトを追加し、以下のように設定します。

  • Topic Name:/camera/color/camera_info
  • Serializer/Source:sensor_linkオブジェクト
    • 解説:「ICameraInterface」を継承したスクリプト(ここでは、「RGB Camera Sensor」)がアタッチされたオブジェクトを指定
  • Serializer/Header/Source:sensor_linkオブジェクト
  • Serializer/Header/Frame_id:sensor_link

image.png


次に、sensor_linkに「Image Msg Publisher」スクリプトを追加し、以下のように設定します。

  • Topic Name:/camera/color/image
  • Serializer/Source:sensor_linkオブジェクト
  • Serializer/Header/Source:sensor_linkオブジェクト
  • Serializer/Header/Source Texture:Texture 1
  • Serializer/Header/Frame_id:sensor_link

image.png


最後に、sensor_linkに「Compressed Image Msg Publisher」スクリプトを追加し、以下のように設定します。

  • Topic Name:/camera/color/image/compressed
  • Serializer/Source:sensor_linkオブジェクト
  • Serializer/Header/Source:sensor_linkオブジェクト
  • Serializer/Header/Source Texture:Texture 1
  • Serializer/Header/Frame_id:sensor_link

image.png

動作確認

シーンを再生し、Topicsタブ → /camera/color/image/compressedを選択すると、カメラから取得した画像が表示されることが分かります。

image.png

2D LiDAR

前記事で作成したロボットに、2D LiDARを取り付ける手順を解説します。

センサの取り付け

2D LiDARには「Robotics-Nav2-SLAM-Example」リポジトリのサンプルコードを使用します。


以下、リポジトリをダウンロードしてください。


ダウンロードしたリポジトリを解凍し、「Nav2SLAMExampleProject/Assets/Scripts」内の

  • Clock.cs
  • TimeStamp.cs
  • LaserScanSensor.cs

をAsstes/Scriptに格納します。

image.png


次に、sensor_linkオブジェクトに「Laser Scan Sensor」スクリプトを追加し、各パラメータを以下のように設定します。

  • Topic:/scan
  • Scan Angle Start Degrees:-359
  • Scan Angle End Degrees:0
  • Num Measurements Per Scan:360
  • Frame Id:sensor_link

image.png


上記の設定の場合、「スキャンの角度の範囲が-359〜0度」、「点群数が360」なので

  • 点どおしの間隔は「角度範囲/点群数 = 360/360 = 1度」

となります。

動作確認

シーンを再生し、Topicsタブ → /scanを選択すると、スキャンがヒットした位置に点群が描画されます。

image.png

3D LiDAR

前記事で作成したロボットに、3D LiDARを取り付ける手順を解説します。

センサの取り付け

最初に、sensor_linkに「RayCast LiDAR Sensor」スクリプトを追加し、以下のように設定します。

  • ScanPattern:Mid-360
    • 解説:ここに設定した内容に応じて、点群のパターンが変更される
  • Points Num Per Scan:20000
    • 解説:一回あたりのスキャン数。この値が多くなると点群の数が多くなる
  • Gaussian Noise Sigma:0.02
    • 解説:センサにノイズを加える

image.png


次に、「LiDAR Point Cloud 2 Msg Publisher」スクリプトを追加し、以下のように設定します。

  • Topic Name:/pointcloud
  • Serializer/Header/Source:sensor_linkオブジェクト
  • Serializer/Header/Frame_id:sensor_link
  • Source:sensor_linkオブジェクト
    • 解説:「IPointCloudInterface」を継承したスクリプト(ここでは、「Raycast LiDAR Sensor」)がアタッチされたオブジェクトを指定

image.png

動作確認

シーンを再生し、Topicsタブ → /pointcloudを選択すると、スキャンがヒットした位置に点群が描画されます。

image.png

IMU

前記事で作成したロボットに、IMUを取り付ける手順を解説します。

センサの取り付け

最初に、sensor_linkに「Imu Sensor」スクリプトを追加します。

image.png


次に、sensor_linkに「Imu Msg Publisher」スクリプトを追加し、以下のように設定します。

  • Topic Name:/imu
  • Serializer/Source:sensor_linkオブジェクト
    • 解説:「IImuDataInterface」を継承したスクリプト(ここでは、「Imu Sensor」)がアタッチされたオブジェクトを指定
  • Serializer/Header/Source:sensor_linkオブジェクト
  • Serializer/Header/Frame_id:sensor_link

image.png

動作確認

シーンを再生し、Topicsタブ → /imuを選択すると、IMUセンサの状態が表示されます。

base_footprintのPositionやRotationを適当に変更すると、IMUの値が変化することを確認できます。

image.png

GNSS

前記事で作成したロボットに、GNSSを取り付ける手順を解説します。

センサの取り付け

最初に、Planeに「Geo Coordinate System」スクリプトを追加します。

image.png


次に、sensor_linkに「GNSS Sensor」スクリプトを追加し、以下のように設定します。

  • Coordinate System:Planeオブジェクト
    • 解説:ここに指定したオブジェクトの位置を基準として、そこからsensor_linkがどれだけ離れたかで座標が計測される

image.png


次に、sensor_linkに「Nav Sat Fix Msg Publisher」スクリプトを追加し、以下のように設定します。

  • Topic Name:/navsat
  • Serializer/Source:sensor_linkオブジェクト
    • 解説:「IGeoCoordinateInterface」を継承したスクリプト(ここでは、「GNSS Sensor」)がアタッチされたオブジェクトを指定
  • Serializer/Header/Source:sensor_linkオブジェクト
  • Serializer/Header/Frame_id:sensor_link

image.png

動作確認

シーンを再生し、Topicsタブ → /navsratを選択すると、GNSSのセンサ値が表示されます。

base_footprintのPositionを適当に変更すると、センサ値が変化することを確認できます(緯度、経度は少し変化させただけだとほとんど変化しないので、大きめに移動させてみてください)。

image.png
「ここに画像」

最後に

今回は、様々なセンサーの使い方ついて解説しました。


次回は、

  • 移動ロボットをcmd_velで動かす

について解説します。

次回:移動ロボットをcmd_velで動かす

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?