Skip to content

This package handles pre-processing of object information before it is transmitted from the RSU to the vehicle in Autoware V2X.

Notifications You must be signed in to change notification settings

sakunaka39/rsu_preprocessor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RSU Preprocessor for Autoware V2X

rsu_preprocessorは路側機(RSU: Road-Side Unit)に搭載されたLiDARセンサーで検出した3D物体情報をV2X通信で共有するための前処理パッケージです。mmdet3d_ros2 の物体検出結果を受け取り、車両側のAutowareが利用できる座標系とメッセージ型の情報に変換し、通信モジュール AutowareV2X を使用して車両側のAutowareに配信すること目的とします。

画面


✅ 概要

V2X(Vehicle-to-Everything)通信において、RSUはインフラ側のセンサーとして非常に重要な役割を担います。例えば、車両からは見通しの悪い交差点の死角にいる歩行者や他の車両を検出し、その情報を事前に車両へ伝えることで、事故を未然に防ぐことができます。

このパッケージは、そのためのデータ前処理(Preprocessor)を担います。具体的には、以下の処理を行います。

  1. 自己位置推定: RSUに搭載されたLiDARの点群と地図(点群マップ)を照合し、RSU自体のグローバル座標系における位置・姿勢を特定します。
  2. 座標変換: RSUのLiDAR座標系で検出された物体の位置を、(1)で特定した自己位置を用いてグローバル座標系に変換します。
  3. データ配信: 変換後の物体情報を、Autoware標準のメッセージ形式 (autoware_auto_perception_msgs/PredictedObjects) でROS2ネットワークに配信します。

✨ 機能

  • ICPによる自己位置推定: rsu_localizationノードにより、点群マップに対するセンサー点群のマッチングを行い、RSUの自己位置を動的に推定します。
  • 静的自己位置設定: RSUの位置が既知・固定の場合、Launchファイルから位置と姿勢をパラメータで指定できます。
  • Autoware対応のメッセージ形式: 検出された物体をautoware_auto_perception_msgs/msg/PredictedObjects形式でパブリッシュし、Autowareの認識スタックとシームレスに連携します。
  • Markerで可視化: RSUの位置や座標系をRViz2で簡単に確認するためのTF情報やマーカーを配信します。

🔧 動作環境

  • Ubuntu 22.04
  • ROS 2 Humble
  • Autoware Universe

📁 構成

v2x_sender

物体検出情報をMapの座標系に変換しAutoware形式で配信する。

rsu_localization

点群マップとセンサー点群をICPで照合し、RSUの自己位置を推定する。

rsu_pose_publisher

Launchパラメータで指定された固定の自己位置を配信する。

sensor_tf_broadcaster

map座標系からvelodyneセンサー座標系へのTFを配信する。

rsu_pose_marker

RViz2上でRSUの位置を示すためのマーカーを配信する。


📦 セットアップ

1. mmdet3d_ros2

cd ~/ros2_ws/src

git clone https://github.com/TonyTnT/mmdet3d_ros2.git

colcon build --packages-select rsu_preprocessor

source install/setup.bash

READMEに従いモデル推論の環境を準備して下さい。

2. rsu_preprocessoe

cd ~/ros2_ws/src

# このリポジトリをクローン
git clone https://github.com/sakunaka39/rsu_preprocessor.git

cd ~/ros2_ws

# 依存関係をインストール
rosdep install -i --from-path src --rosdistro humble -y

# パッケージをビルド
colcon build --packages-select rsu_preprocessor

source install/setup.bash

3. AutowareV2X

公式ドキュメントのインストールガイドおよびチュートリアルに従ってV2X送受信の環境を準備して下さい。


🚀 起動方法

1. クイック実行(静的位置指定)

RSUの位置を固定値で指定して物体情報変換ノードを起動します。

ros2 launch rsu_preprocessor rsu_preprocessor.launch.xml

2. RSU自己位置推定を使用する実行(動的位置推定)

rsu_localizationノードを別のターミナルで起動します。事前に点群マップの用意が必要です。

# ターミナル 1
# map_pcd_file パラメータを指定
ros2 run rsu_preprocessor rsu_localization --ros-args -p map_pcd_file:="/path/to/your/pointcloud_map.pcd"
# ターミナル 2
ros2 launch rsu_preprocessor rsu_preprocessor.launch.xml

⚙️ パラメータ設定

rsu_pose_publisher

Launchファイル (rsu_preprocessor.launch.xml) 内で以下のパラメータを変更することで、RSUの固定位置を調整できます。

  • x (double): マップ座標系でのX座標 (メートル)
  • y (double): マップ座標系でのY座標 (メートル)
  • z (double): マップ座標系でのZ座標 (メートル)
  • roll (double): ロール角 (度)
  • pitch (double): ピッチ角 (度)
  • yaw (double): ヨー角 (度)

rsu_localization

  • map_pcd_file (string): 自己位置推定に使用するPCD形式の点群マップファイルのパス。

About

This package handles pre-processing of object information before it is transmitted from the RSU to the vehicle in Autoware V2X.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published