新しい動作を実際のロボットで初めて試すのは、危険であり、時間もかかります。経路が治具に衝突したり、関節が可動限界に達したり、想定よりサイクルが長くなったりすることがあります。デジタルツインは、こうした問題を仮想空間で先に洗い出します。
ツインは何で作るのか
- URDF — ロボットのリンク(アームの各節)の形状と、関節の位置・可動限界を記述した標準フォーマットです。fineAi Digital Twin は、RB5-850E・RB10-1300e ロボット、DG-3F-M グリッパー、栽培棚、バスケットを URDF で構成します。
- 運動学 — 関節角度から手先位置を求める順運動学(FK)と、望む手先位置から関節角度を求める逆運動学(IK)です。ツインは解析的 IK により経路を高速に計算します。
- 同一の座標系 — ツインの座標が実際のセルと一致していてはじめて、仮想の結果を信頼できます。そのために、ハンドアイキャリブレーションの結果をそのまま使います。
Pick & Place の全工程
① 3D認識 — 3Dカメラ(EpicEye Pixel Pro)で撮影した点群を整え、物体を分離したうえで、登録したテンプレートと位置合わせして位置と姿勢を求めます。必要に応じて YOLO による検出も併用します。詳しい処理は、講義3Dビジョンと点群にあります。
② 把持候補 — 物体ごとに、グリッパーが把持できる姿勢を複数生成し、周囲の物体との干渉、指が触れる面の安定性、ロボットが到達できるかどうかを評価して順位を付けます。最も良い候補から順に検証し、通過したものを選びます。
③ 経路 — 選んだ姿勢までの関節経路を IK で計算し、ツイン上で干渉なく動くかを再生して確認します。
④ 接近と把持 — 最後の数cmは、3D計測の誤差がそのまま現れる区間です。そのため、決められた位置へ一気に向かうのではなく、6 mm ずつ前進しながら、力覚センサーでグリッパーのパッドが接触したかを確認します。キノコのように柔らかい対象は、把持した後、手首を ±15° で3回ひねって引き離します(twist pluck)。
⑤ 置き — バスケットや格子上の空きスペースを計画して置きます。傷が付きやすい対象は、低い高さから置きます(低落差)。
実機ミラーリング — ツインが実機に追従する
実際のロボットが動くとき、コントローラーのデータポートから入ってくる関節角度を受け取り、ツイン内のロボットを同じように動かします。画面上のロボットと実際のロボットが同じ姿勢であることを目で確認でき、計画した経路と実際の動きが一定以上ずれた場合はただちに停止します。
運用中の自己補正
カメラブラケットがわずかにたわんだり、温度によって機構が伸びたりすると、最初に補正した値が少しずつずれていきます。運用中に「予測した位置」と「実際に接触した位置」の差を蓄積しておき、その残差を最もよく説明する小さな補正値(ops offset)を最小二乗法で求め直します。人が再度キャリブレーションしなくても、精度が維持されます。
ツインで得られるもの
- 安全 — 干渉や関節の可動限界を、実機の前に見つけられます。
- 時間 — ラインを止めずに新しい動作を準備できます(オフラインティーチング)。
- 説明性 — セッションを記録しておき、問題が起きた瞬間を再生して原因を調べられます。RoboVision は、仮想カメラで視野と撮影範囲(coverage)をあらかじめ確認する機能も提供します。