つくばチャレンジ選択課題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 git@github.com:Yutarop/sign_detection.git
cd ~/ros2_ws/src/sign_detection
pip install -r requirements.txt
cd ~/ros2_ws
colcon build --packages-select sign_detection
source ~/ros2_ws/install/setup.bash
ros2 run sign_detection sign_detection
cd ~/ros2_ws
vcs import src < sign_detection.repos
cd ~/ros2_ws/src/sign_detection/bag
ros2 bag play example.bag
ros2 launch sign_detection sign_detec.launch.xml
ros2 run sign_detection sign_detection