相機固定在機器人腕部時屬於 Eye-in-Hand;相機固定在工作站一側時屬於 Eye-to-Hand。採集資料前,必須寫清每個變換從哪個座標係指向哪個座標系。OpenCV calibrateHandEye 官方檔案使用 gripper-to-base 與 target-to-camera 位姿序列求取 camera-to-gripper 變換。輸入方向顛倒時,演算法仍可能返回看似正常的矩陣。
可靠流程還需要繞至少兩個獨立軸旋轉的位姿、未參與求解的驗證樣本,以及真實工作空間中的測量。更寬泛的校正分類可參閱機器人校正指南,變換方向見機器人座標系與 TF2,目標位姿估計見 6D 物體位姿估計。
先固定相機安裝方式和座標變換方向
在 Eye-in-Hand 中,相機隨末端效應器移動,校正板固定在機器人工作區。在 Eye-to-Hand 中,相機固定,校正板通常隨工具移動。兩者都可以寫成 AX=XB,但需要求逆的位置和最終結果的物理含義不同。
把 base、gripper、camera optical frame 和 target 畫在同一張圖上,標出每條箭頭。確認光學座標軸、機器人驅動輸出的位姿方向、檢測器返回的變換方向,並統一 m 與 mm、旋轉矩陣與四元數的約定。
| 設定 | 固定部分 | 移動部分 | 待求關係 | 常見錯誤 |
|---|---|---|---|---|
| Eye-in-Hand | 校正板、機器人基座 | 夾爪、相機 | camera↔gripper | 把 gripper→base 當成反方向 |
| Eye-to-Hand | 相機、機器人基座 | 夾爪、校正板 | camera↔base | 漏掉目標位姿求逆 |
| 兩者共通 | 尺寸與座校正義 | 機器人位姿 | 一致的 SE(3) 變換 | 混用毫米、米或旋轉約定 |
在求解 AX=XB 前檢查內參與校正板
手眼校正不會修復錯誤的相機內參。應使用實際執行時的鏡頭、焦點、解析度、曝光流程和保護窗,並確認 CameraInfo 與影片流匹配。鏡頭、焦點或外殼發生變化後,不應直接沿用舊結果。
可依據OpenCV 校正圖案官方指南選擇圖案。校正板要平整,尺寸要實測,並核對列印縮放。目標過小、模糊、被裁切或傾斜過大時,位姿誤差會直接進入手眼變換。
位姿的旋轉多樣性比單純增加數量更重要
保持方向不變而反覆平移,無法充分約束 AX=XB。MoveIt 手眼校正教程指出,五個樣本後可以開始計算,至少需要繞兩個軸旋轉,結果通常會在約 12 至 15 個樣本後逐漸穩定。這只是採集參考,不是精度保證。
應覆蓋工作區中心與邊緣、近距離與遠距離、正向與反向旋轉,同時保留關節限位和碰撞餘量。機器人穩定後再同步儲存影像與關節狀態;檢測信心分數低或存在運動模糊的樣本應在求解前剔除並記錄原因。

求解器結果分歧時先檢查資料
OpenCV 提供 Tsai、Park、Horaud 等分步方法,也提供 Andreff、Daniilidis 等聯合估計方法。多種方法給出接近結果,說明資料條件較好;若差異明顯,應優先檢查座標方向、旋轉覆蓋和異常樣本,而不是挑選誤差最小的一個。
對同一份清洗後的資料集執行多個求解器,記錄平移差、旋轉差和殘差。再逐個移除樣本或進行重取樣,觀察結果是否敏感。最終版本必須依據留出位姿和真實任務誤差選擇。
| 指標 | 使用資料 | 能說明什麼 | 可能漏掉什麼 |
|---|---|---|---|
| 重投影誤差 | 影像角點 | 檢測與相機內參一致性 | 機器人座標誤差 |
| AX=XB 殘差 | 訓練位姿對 | 方程內部一致性 | 過擬合或工作區偏差 |
| 留出位姿誤差 | 未參與求解的位姿 | 對新姿態的泛化 | 工具中心點偏差 |
| 抓取或探針誤差 | 獨立作業點 | 是否滿足任務 | 動態延遲與背隙 |
用未見位姿和實際作業空間做驗證
調參前就劃出留出樣本。利用估計變換把目標轉換到 base 座標系,觀察機器人換姿態後目標位置是否漂移。除平均值外,還要報告最大誤差和各方向偏差,避免平均值掩蓋系統性旋轉錯誤。
隨後用真實夾爪或測量探針接近已知點,覆蓋近端、遠端、高處、低處和工作區四角,不能只測影像中心的一點。工具中心點應單獨校驗,以免把 TCP 偏差歸因於手眼校正。

根據誤差隨姿態變化的方式定位故障
所有位姿都出現近似固定的平移偏差時,應檢查校正板尺寸、TCP 和固定變換。誤差方向隨機器人姿態旋轉時,應檢查旋轉估計、變換求逆、時間同步或結構變形。只有畫面邊緣惡化時,應重新檢查內參與鏡頭模型。
若只有運動中精度變差,要檢查影像與關節時間戳、曝光時刻和滾動快門。相機支架的微小位移、線纜拉力也會破壞剛性假設。不要用只對某一姿態有效的經驗偏移掩蓋機械或同步問題。
釋出結果時同時儲存可復現條件
除最終矩陣外,還要儲存相機序列號、鏡頭、解析度、校正板類型與實測尺寸、機器人和韌體版本、TCP、位姿列表、求解器、剔除樣本及驗證結果。源座標系、目標座標系和單位應寫入機器可讀後設資料。
相機或工具重新安裝、發生碰撞、更換支架、調整焦點或修改影像鏈路後,應重新驗證。生產系統可定期觀測參考目標;超過專案自定閾值時暫停相關任務並重新校正。不存在適用於所有機器人和工藝的統一毫米閾值。
常見問題
手眼校正需要多少個位姿?
實務上可從約 12 至 15 個包含至少兩個旋轉軸的多樣位姿開始,並另外保留驗證樣本。旋轉覆蓋和檢測質量比固定數量更重要。
重投影誤差很小就表示手眼校正正確嗎?
不能。重投影誤差主要檢查影像檢測和相機模型,還必須驗證 AX=XB 殘差、未見位姿以及真實抓取或探針誤差。
Eye-in-Hand 的結果能直接用於 Eye-to-Hand 嗎?
不能直接使用。固定與移動座標系、求逆位置和輸出關係都不同。可以使用同類求解器,但必須按照實際安裝重新定義變換鏈。
已核驗的官方資料
最後查核:2026 年 8 月 7 日
相關主題:物理 AI 企業生態系:機器人、模型、模擬與晶片如何分工、NVIDIA GR00T N2 與 N1.7 差在哪裡?版本與使用狀態、Jetson AGX Thor 與 Orin 價格比較:效能、功耗與升級判斷