FabForward Cobot Studio 実装 — Cell-Sort v3 最新成果
結果と検証

「動く」で終わらせず、数字と追試で裏取りする

認識モデルの精度、方策(ロボットの意思決定)の成功率、そして実際のFR5コントローラのソフトウェアを使った 追試まで、主張はすべて実行結果で裏取りしています。

部品を見分ける2つの手首カメラによる認識

ロボット手首の左右カメラが、接近しながら部品の種類と向きを認識します。学習データも本物のカメラ位置・ 本物の腕の動きに合わせて作り直しました。

種類の認識

実行中(in-loop)で100.0%。オフライン評価でも100.0%、角度誤差0.70°。合格ラインは種類99%・角度10°以内 — 大きく上回る。

向き(角度)の認識

実行中の角度誤差0.87°(平均)。部品をどの向きでトレイに置くかに直結する数値で、実運用でも十分な精度。

データの作り直し

手首カメラは腕と一緒に動くため、背景も撮影角度も一から変わる。データ生成・認識モデルとも作り直して上記の精度に到達。

仕分けを判断する方策(ロボットの意思決定)の学習

「熟練の手本を真似る」→「その手本の癖にノイズを混ぜて頑健化」→「試行錯誤(強化学習)でさらに伸ばす」の3段階。 仕上げの一手前まで手本を超えられない技術的な壁があり、それを破る修正を入れてから最終結果に到達しました。

99.0%
最終方策の成功率(n=1280、対応比較)
90.8%
熟練エキスパート(手書きスクリプト)の成功率
+8.2pp
エキスパートを上回った差(p=2.9e-23、統計的に極めて有意)
0件
誤仕分け(n=1280中)、全クラス97.5%以上

「エキスパートを超える」の意味

比較対象の90.8%は、人がルールを書いて作った手本(熟練エキスパート)の成績です。強化学習の方策はこれを 統計的に明確な差(p=2.9e-23)で上回りました — たまたまの誤差ではないという意味です。 比較方法は同じ条件を両者に完全一致させる社内標準の手法(CRN対応比較)を使用しています。

学習の途中で見つかった落とし穴

開発の途中、特定の部品(向き0度のボルト)だけを毎回間違える現象がありました。原因は、ロボットが 「まだ部品を認識する前」のダミー値(角度0)と、「認識し終えた後の本物の値」(角度0のボルト)が 数値として区別できていなかったこと — 方策から見ると「未確定」と「確定した0度」が同じ信号に 見えていたのです。ダミー値を絶対に現れない値に変えるだけの修正で解消し、最終結果(99.0%、誤仕分けゼロ)に つながりました。地味ですが、こうした一つ一つのバグ潰しが精度を作っています。

実機コントローラでの追試シミュレーションの計画通りに動くか

学習はすべてシミュレーション内で行っていますが、「実際のFR5を制御するソフトウェア(実機と同じ コントローラ、ハードウェアだけ無い環境)」に方策の軌道を1本流し、計画通りに追従できるかを確認しました。 実ロボットは動かしていません — これは実機投入前の最終チェック手順の一つです。

確認項目結果
ツール座標(グリップ位置)の再現誤差0.00° 完全一致
肘を上げた姿勢での軌道追従(最も厳しい姿勢)誤差0.0002°
速度・加速度が実機コントローラの実測特性と一致するか警告0件(許容幅±20%に対し実測+4%以内)

この追試が示すこと

方策が計画した動きを、実際のFR5コントローラのソフトウェアが忠実に再現できることを確認しました。 「教える→検証する→書き出す→実機コントローラで確かめる」という一連のパイプラインが、この新しい方策でも 崩れずに機能しています。次は、実運用の環境(照明など)に対する頑健性です — ②頑健性の監査へ。

SSOT:docs/cellsort-v3-plan.mddocs/cellsort-v3-simmachine-gap.md。 ONNXエクスポートの数値一致も確認済み(方策の書き出し形式が変わっても結果が変わらないことの確認)。