機器人手眼校正 AX=XB:Eye-in-Hand 與 Eye-to-Hand 實戰指南

相機固定在機器人腕部時屬於 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 個樣本後逐漸穩定。這只是採集參考,不是精度保證。

應覆蓋工作區中心與邊緣、近距離與遠距離、正向與反向旋轉,同時保留關節限位和碰撞餘量。機器人穩定後再同步儲存影像與關節狀態;檢測信心分數低或存在運動模糊的樣本應在求解前剔除並記錄原因。

安裝在 Curiosity 機械臂末端的 MAHLI 相機
這是機械臂末端相機的真實案例,但未展示 AX=XB 手眼校正、校正板、變換矩陣或誤差結果。 來源:NASA。授權:Public domain

求解器結果分歧時先檢查資料

OpenCV 提供 Tsai、Park、Horaud 等分步方法,也提供 Andreff、Daniilidis 等聯合估計方法。多種方法給出接近結果,說明資料條件較好;若差異明顯,應優先檢查座標方向、旋轉覆蓋和異常樣本,而不是挑選誤差最小的一個。

對同一份清洗後的資料集執行多個求解器,記錄平移差、旋轉差和殘差。再逐個移除樣本或進行重取樣,觀察結果是否敏感。最終版本必須依據留出位姿和真實任務誤差選擇。

指標使用資料能說明什麼可能漏掉什麼
重投影誤差影像角點檢測與相機內參一致性機器人座標誤差
AX=XB 殘差訓練位姿對方程內部一致性過擬合或工作區偏差
留出位姿誤差未參與求解的位姿對新姿態的泛化工具中心點偏差
抓取或探針誤差獨立作業點是否滿足任務動態延遲與背隙

用未見位姿和實際作業空間做驗證

調參前就劃出留出樣本。利用估計變換把目標轉換到 base 座標系,觀察機器人換姿態後目標位置是否漂移。除平均值外,還要報告最大誤差和各方向偏差,避免平均值掩蓋系統性旋轉錯誤。

隨後用真實夾爪或測量探針接近已知點,覆蓋近端、遠端、高處、低處和工作區四角,不能只測影像中心的一點。工具中心點應單獨校驗,以免把 TCP 偏差歸因於手眼校正。

以五個步驟整理機器人手眼校正 AX=XB:Eye-in-Hand 與 Eye-to-Hand 實戰指南的判讀重點
依正文與一手資料整理的繁體中文實務卡。來源:Physical AI Lab。

根據誤差隨姿態變化的方式定位故障

所有位姿都出現近似固定的平移偏差時,應檢查校正板尺寸、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 價格比較:效能、功耗與升級判斷