SSL-Vision 設定手順¶
実機環境および大会運用における公式画像処理システム SSL-Vision の設定と運用のガイドです。
構成と役割¶
- 実機環境: 外部カメラからの映像を SSL-Vision が処理し、フィールド幾何情報(Geometry)およびボール・ロボット検出情報(Detection)をマルチキャスト配信します。
- Crane 側の受信: ポート
10020(既定値)で受信し、crane_world_model_publisherが世界モデルを構築します。 - Docker 開発環境: 通常は
ssl-vision-clientコンテナ(ポート8082)やシミュレータが Vision データを模擬・中継します。
ビルドとソースは RoboCup-SSL/ssl-vision を参照してください。
設定の流れ¶
- 起動とカメラ認識
- カメラ画像取得
- フィールド幾何設定
- カラーキャリブレーション(LUT作成)
- カメラ幾何キャリブレーション
- ブロブ(Blob)検出・マーカー認識調整
- ネットワーク配信確認
1. カメラ設定¶
- 起動: リポジトリルートで
./bin/visionを実行します。 - キャプチャ設定:
Thread0/ImageCapture/Video 4 Linux/CaptureSettingsで以下を設定します。cam_idx: カメラデバイス番号(映らない場合は変更して試行)width/height: 解像度
- 取り込み開始:
Thread0/ImageCapture/CaptureControlでstart captureを選択します。
2. フィールド幾何設定¶
Global/FieldConfiguration で大会規定のフィールド寸法を設定します。
Field Length(長辺) /Field Width(短辺)Total Number of Cameras/Local Number of CamerasNumber of Line Segments/Number of Arcs
[!TIP] ロボットの検出位置にオフセット(ずれ)が生じる場合は、
Global/Robot Detection/Teamsでロボット高さを調整します(高さを 0 に設定すると改善する場合があります)。
3. カラーキャリブレーション¶
右側の Auto Color Calibration タブを使用します。
- 抽出対象の色を選択します。
- カメラ画像上で該当色の領域をクリックし、サンプルピクセルを収集します。
Update LUTを押してルックアップテーブルを更新します。Thread0/Visualization/thresholdを有効化し、二値化結果を確認します。
4. カメラキャリブレーション¶
Thread0/Visualization/camera calibrationを有効化します。Camera Calibrator/Calibration Parametersでコントロールポイントを設定します。フィールド実座標(mm)を入力し、画像上の対応点と関連付けます(右側タブでドラッグ移動も可能)。Camera Height(in mm)にカメラの高さを入力します。Do initial calibration、続いてDo full calibrationを実行します。
5. パターン認識とマーカー検出¶
カラー抽出で得られたブロブ(領域の塊)からロボットおよびボールを同定します。
- ブロブフィルタ:
Thread0/Blob Findingでmin_blob_area(最小面積)を設定し、ノイズを除去しつつ最小のボールが消えない閾値に調整します。 - マーカー認識:
Global/Robot Detection/Patternで中心マーカーおよび個別マーカーの寸法・面積フィルターを設定します。 - パターンフィッティング:
Global/Robot Detection/Pattern/Pattern Fittingでマッチングスコアの重みを調整します。ブロブが検出されているのにロボットが認識されない場合はMax Errorを適宜緩和します。
実装・運用リファレンス¶
- 受信側実装: world_model_publisher.cpp
- 起動引数とポート: crane.launch.xml
- 試合チェックリスト / ボールトラッキングシステム / ネットワーク設定