天井カメラが設計図どおりの位置・向きに付いていないと、見つけたブロックの位置は机の上でずれてしまい、つかみ損ねます。ここでは本当のカメラを設計図から少しずらして付けておき、ロボット自身の動きを使ってカメラの位置と向きを測り直します(ハンドアイ・キャリブレーション)。手の横のマゼンタの球を動かして、「ロボットが知っている球の位置」と「カメラが見た球の位置」の組から、カメラの本当の位置・向きを逆算します。
| 段階 | やったこと | 結果 |
|---|
元の Python 版(calibrate.py)との違い: OpenCV は使わず、画像から印とブロックを見つける部分は JavaScript の小さな実装です。3x3 の特異値分解(SVD)も自前(一側ヤコビ法)で、Kabsch 法はその上に載せています。カメラの画像は MuJoCo の光線(mj_ray)を画素ごとに飛ばして作ります。手先の角度の計算は mink ではなく減衰つき最小二乗法です。ずれ量の調整と置き方の番号は、この画面で足した操作です。