ロボットに搭載されているLiDARデータの可視化方法を紹介します。 今回もオドメトリ可視化の際と同様にLiDARデータ受信用スクリプトとLiDARデータ描画用スクリプトを組み合わせて可視化します。
本ステップ実行後の状態のSceneファイルはMobileRobotUITutorialProject/Assets/Scenes/Step5.unityから入手できます。
- Windows
- Windows 10 Home バージョン 21H2
- Windows 11 Pro バージョン 22H2
- Unity
- Unity 2021.3.4f1
- Unity 2022.3.8f1
- Unity-Technologies/ROS-TCP-Connector v0.7.0
- ROS 2
- ROS 2 Foxy Fitzroy
- ROS 2 Humble Hawksbill
STEP4までと同様にAssets/Scripts/LaserScanSubscriber.csをSubscriberオブジェクトにアタッチします。
ここまででSubscriberに追加したコンポーネントはTf Subscriber、Odom Subscriber、Laser Scan Subscriberの3つになります。
まず、スクリプトを用意します。UnityScripts/PointCloudフォルダをUnityプロジェクトのAssetsフォルダにコピー(Assets/PointCloudとして配置)します。
次に用意したスクリプトをアタッチしていきます。
Assets/PointCloud/Scripts/PointCloudLocator.csをlidar_linkオブジェクト(raspimouse/base_footprint/base_link/urg_mount_link/lidar_link)にアタッチします。
lidar_linkオブジェクトを選択してInspectorウィンドウを開き、Point Cloud LocatorコンポーネントのSubscriber Game ObjectにSubsciberオブジェクトを、Point PrefabにAssets/PointCloud/Prefabs/Sphere.prefabを指定します。
以上で可視化の準備ができました。
STEP2と同様に、
- 再生モードでUnityプロジェクトを実行
- Raspberry Pi Mouseでコマンドを実行
- 操作ボタンから移動指令送信
の手順でロボットを動かしてみます。
STEP4で可視化したオドメトリに加えてLiDARデータを可視化することができました。
Assets/PointCloud/Scripts/PointCloudLocator.csのprivate static readonly int MaxPointCount = 100;を書き換えることで
描画する点群の数を変えることができます。
最後に、動作確認が終わったら全ての端末でCtrl+Cを押してコマンドを終了させます。
LiDARデータ受信用スクリプトとLiDARデータ描画用スクリプトを組み合わせて可視化する方法を紹介しました。 さらに描画する点群の数を変更する方法も紹介しました。
次はSTEP6でカメラ画像の可視化方法を紹介します。




