つくばチャレンジ選択課題Cで使用される経路封鎖看板を検出するアルゴリズムのROS2パッケージです。このアルゴリズムは、3D LiDARから得られるポイントクラウドデータと反射強度のデータのみを使用します。まず、入力されるPointCloud2メッセージを処理し、距離と角度に基づいてポイントをフィルタリングします。その後、DBSCANを使用してクラスタリングを行い、初期位置合わせとICPアルゴリズムを用いて、テンプレートポイントクラウドとクラスタをマッチングします。
pcd_segment_obsトピックからPointCloud2メッセージをサブスクライブします。- ポイントを距離(0.5m〜4m)、角度(10°〜170°)、および輝度(>= 130)でフィルタリングします。
- DBSCANを使用してポイントクラウドデータをクラスタリングします。
- クラスタを事前に定義されたテンプレートポイントクラウドとICPでマッチングします。
- フィルタリングされたポイントクラウドデータを
filtered_pointcloud2トピックにパブリッシュします。 - マッチングのフィットネススコアが0.8を超える場合に検出イベントをターミナルに記録します。
- 入力:pcd_segment_obs
- 出力:filtered_pointcloud2
- min_distance:0.5メートル
- max_distance:4メートル
- min_angle:10度
- max_angle:170度
- min_intensity:130
- eps:0.7(クラスタリング半径)
- min_samples:3(クラスタごとの最小ポイント数)
- フィットネス閾値:0.8(検出成功の基準)
cd ~/ros2_ws/src
git clone [email protected]:Yutarop/sign_detection.gitcd ~/ros2_ws/src/sign_detection
pip install -r requirements.txtcd ~/ros2_ws
colcon build --packages-select sign_detectionsource ~/ros2_ws/install/setup.bash
ros2 run sign_detection sign_detectioncd ~/ros2_ws
vcs import src < sign_detection.reposcd ~/ros2_ws/src/sign_detection/bag
ros2 bag play example.bagros2 launch sign_detection sign_detec.launch.xmlros2 run sign_detection sign_detection