「うまくいった」で止めず、あえて崩してみた
99.0%という結果は、学習させた条件の中での話です。実運用では照明もベルト速度も学習時と完全には 一致しません。そこで、学習範囲の外側の条件をわざと当てて、どこまで崩れずに動くかを 実機を使わずに検証しました。これは社内で「うまくいった」と報告する前に、自分たちで欠点を洗い出す ための監査です。
結論頑健な部分と、崩れる部分がはっきり分かれた
頑健 機構・設置のばらつき
カメラの取付位置ずれ(10mmまで)、ベルトが速い方にずれる場合、部品の置き位置のばらつき — いずれも 成績への影響はほぼなし(97〜100%を維持)。製造・設置時の現実的な誤差には強い。
要対策 想定外の照明・ベルト減速
学習時に一切変化させていなかった照明と、ベルトが遅くなる方向の2条件で、 統計的に明確な成績低下を確認。原因はほぼ特定済みで、再学習で塞げる見込み。
見つかった2つの弱点何が起きて、なぜ起きたか
① 想定外の明るさ・色の照明 — 今回見つかった中で最も大きい影響
| 条件 | 成功率 | 学習時比 |
|---|---|---|
| 学習時の照明(基準) | 98.9% | — |
| 想定より明るい照明 | 63.9%(n=1280で確認) | -35.0pp |
| 想定より暗い照明 | 78.5%(簡易確認) | -21.1pp |
| 色味の違う照明 | 66.0%(簡易確認) | -33.6pp |
原因:ロボットの動き自体は崩れておらず、失敗のほぼ全てが「違うトレイに置いてしまう」 誤仕分けでした — ①結果と検証で触れた部品を見分けるカメラ認識が、 想定外の明るさ・色味で見誤ったことが原因です。認識モデルを学習させたときの照明データの幅が狭かった (現実の照明変化を十分カバーしていなかった)ことが根本原因と特定しています。
② ベルトが想定より遅い(-20%)
| 条件 | 成功率 | 学習時比 |
|---|---|---|
| 学習時のベルト速度(基準) | 98.9% | — |
| ベルトが20%遅い | 79.3%(n=1280で確認) | -19.6pp |
原因:仕分け対象の部品はほぼ影響を受けていません。低下の大部分は「異物(仕分け対象外の部品)を 素通りさせる」タスクが、1回の判定に使える時間を固定で決めていたため、ベルトが遅くなると その時間内に異物が通過し切れず「タイムアウト」扱いになったことが原因です。ロボットの動き自体の問題ではなく、 時間設定がベルト速度に連動していなかった、という設計上の穴です。
大事な補足
今回の監査で「壊れなかった」条件(カメラ取付誤差・ベルト高速側・部品位置のばらつき)は、あくまで その範囲で確認できたという意味です。今回試していない組み合わせ(例えば「明るすぎる照明」と 「遅いベルト」が同時に起きる場合など)まで安全とは言い切れません — これも次の監査で見ていく対象です。
対策計画作り直しではなく、狙いを絞った再学習
結論:土台の作り直しは不要。ピンポイントの再学習で塞げる
ロボットが「部品をつかんで正しい場所に置く」という運動そのものの実力は、どちらの弱点でも崩れていません。 崩れているのは(1)認識モデルが照明の変化に十分慣れていない点、(2)異物の判定時間がベルト速度に連動していない点 — どちらも原因が一つずつ特定できている、範囲の絞られた修正です。
| 対策 | 内容 |
|---|---|
| 認識モデルの再学習 | 学習データを作る際の照明の明るさ・色味の振れ幅を広げてデータを作り直し、認識モデルを再学習。今回の監査スクリプトで効果を再確認する。 |
| 異物判定タイマーの修正 | 固定時間ではなく、実際のベルト速度に応じて判定時間が伸縮するように変更。運動側の方策には手を入れない。 |
実機投入までの残タスク正直な現状
| 項目 | 状態 |
|---|---|
| カメラのレンズ画角 | 仮値で進行中 実採用予定レンズの正式値待ち |
| 部品の種類とトレイの対応関係 | 顧客確認待ち |
| 照明への頑健性 | 再学習を計画中 本ページの対策計画を実施 |
| 実機投入(実際のロボットを動かす)の最終承認 | 未着手 会社としての正式な承認判断が必要な段階 |
SSOT:docs/cellsort-v3-dr-robustness.md(監査の全データ・統計検定含む)、
docs/cellsort-v3-plan.md。本監査はシミュレーション内のみで実施 — 実ロボットは一切動かしていません。