FabForward Cobot Studio FR5 RL ドキュメント
Sim-to-Real

現場ごとに違う照明・床色にどう適応するか

答えは、スタックが2つの別モデルでできているという事実から導けます。照明・床色は 知覚(カメラ/YOLO)だけに効き、制御方策(RL)には効かない——対策は全部「検出器側」に寄せます。

左:環境の影響を受けるカメラ知覚/右:座標数値を受け取る環境非依存のRL方策

核心知覚 vs 制御の分離

RL方策(出荷するONNX)

入力は34次元の状態ベクトル——物体姿勢(3)・関節・グリッパ・位相。画素は一切ないので、構造上すでに照明・床色に不変。床を見ることが物理的にできない。

YOLO検出器

照明と床を見る唯一の構成要素。カメラ→物体姿勢→方策の detected_puck へ。環境差はここに宿る。本当の問いは「現場の照明/床でもYOLOが正確な3数値を渡せるか」。

すでに持っているもの(DRの教科書レシピ)と、2つの穴

レイヤランダム化済み
YOLO合成データドーム+平行光の強度/色/向き、物体・治具の色、カメラ位置・傾き(dataset.py
YOLO学習HSVジッタ・反転・モザイク(Ultralyticsデフォルト)
RL方策PDゲイン・摩擦・質量±20%、姿勢ノイズσ=3mm/5mm

⚠ 心配にピタリ一致する2つの穴

① 床・テーブル材質が明示的に未ランダム化dataset.py:287 で除外と明記)=まさに「床の色」。最優先の修正
② 露出/コントラストのランダム化がない(実カメラは自動露出するが合成データは固定)。

同一場面を6通りの異なる照明色・床材質でレンダリングしたドメインランダム化
視覚ドメインランダム化:同じ場面を多数の照明色・床材質でレンダリングし、検出器に「色に依存しない形状」を学ばせる。穴①はここに床材質を足すこと。

具体策(優先順)

#コスト
1床・テーブル材質のランダム化を dataset.py に追加(~20行)→ 再生成・再学習最優先
2露出/コントラスト/ブラーのランダム化(YOLO側なら再レンダリング不要)安い
3少量(50–200枚)の実写で微調整+実環境mAPを測定(simから得られない唯一の工程)要実写
4方策の姿勢ノイズσを実測YOLO誤差に合わせて再学習実測連動
5(任意)深度/ステレオ or 接触確認で最終mmの見た目依存を消す任意

正直な但し書き

これらはまだハードに繋がっていないreactive_runtime.py の実機パスは NotImplementedError スタブ、カメラ→YOLO→ハンドアイ→detected_puck の知覚ブリッジはB6部品+TODOとしてのみ存在。本当の手順0はこの知覚ブリッジを作ること。実フレームで走るまで床色は「測定」でなく「予測」しかできない。