iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0

案例 F05:手眼與輸送帶座標校正

image
image

先講結論:本篇正式狀態是有限度通過。30 個 seed 的主要精度門檻通過,但時間步細化後的數值沒有單調收斂,因此不能宣稱「時間步越小,答案越接近真值」。

相機看到的位置,機械臂為什麼不能直接使用?

相機回報的物件位置通常在相機座標系裡,機械臂控制器卻在機器人基座或世界座標系裡工作。

要讓機械臂知道相機看到的點在哪裡,需要先求出相機與機械臂之間的外部轉換。這就是手眼校正。

如果物件還在輸送帶上移動,問題又多一層:從相機量測、資料傳輸、座標轉換到機械臂抵達,時間已經過去。即使空間座標轉換完全正確,沒有補償這段延遲,機械臂仍會抓在物件的後方。

本篇把整條誤差鏈拆成:

觀測雜訊 → 手眼外部參數誤差 → 輸送帶延遲位移 → TCP 取料位置誤差

多拍幾個姿態,不等於多得到幾份新資訊

常見建議是「校正不準就多拍幾張」。但如果每一張的姿態都很接近,新增資料其實只是在重複同一個方向。

可以把它想成估計一個箱子的形狀。如果我們永遠只從正面拍攝,即使拍 100 張,也不一定比從正面、側面與上方各拍幾張更有資訊。

本案例先做蒙地卡羅分析,比較增加數量與增加姿態分散度:

改變方式 校正平移誤差 p95 改善幅度
12 個姿態,分散度由 0.45 增至 1.10 rad 4.27 → 2.49 mm 約 42%
分散度固定 0.45 rad,姿態數由 12 增至 24 4.27 → 3.48 mm 約 19%

在這組模型中,增加姿態多樣性的改善,比單純把數量加倍更明顯。

這不是說數量不重要,而是順序應該改成:先確保姿態有足夠旋轉與方向差異,再增加樣本數。

有些姿態不是越大越好

手眼校正常寫成 AX = XB。本案例使用 Tsai–Lenz 方法求解,並在無雜訊資料上確認可以回到零誤差。

但相對旋轉接近 180° 時,求解使用的旋轉參數會變得病態;而旋轉太小,又缺乏足夠資訊。因此,本篇採用的資料篩選規則是:

  • 相對旋轉介於 5° 與 150°。
  • 至少保留 8 組可用姿態對。

加入這個規則後,先導分析中的最大平移誤差由 16.2 mm 降到 1.45 mm。

所以「姿態多樣」也不是叫機械臂任意轉到極限,而是要在求解器數值穩定的範圍內,提供足夠不同的觀測方向。

輸送帶延遲會直接變成空間誤差

本案例的輸送帶速度為 0.30 m/s,固定編碼器延遲為 8 ms。若完全不補償,物件在延遲期間會移動:

0.30 m/s × 0.008 s = 0.0024 m = 2.4 mm

2.4 mm 看起來不大,卻已接近本篇 3 mm 的取料誤差門檻。

這個計算提醒我們:校正誤差與時間誤差會在最後的取料位置相加。手眼外部參數很準,不代表移動目標就一定抓得準。

正式結果:主要指標通過,收斂檢查未通過

指標 正式結果 鎖定門檻 判定
TCP 取料位置誤差 0.8595 mm ≤ 3.0 mm 通過
校正旋轉誤差 0.1000° ≤ 0.5° 通過
校正平移誤差 0.9948 mm ≤ 3.0 mm 通過
姿態條件數 1.6333 ≤ 50 通過
校正殘差 RMS 2.4088 僅記錄
重複試驗 30/30 通過
數值收斂 未通過 有限度通過

主要精度結果都在門檻內,但主指標隨時間步細化依序量到約 0.829、0.779、0.878 與 0.908 mm,並沒有單調靠近某一個值。全範圍差約 0.13 mm,約為 3 mm 門檻的 4%。

這個差異沒有推翻主要門檻結果,但已足以讓正式狀態降為有限度通過。造成非單調變化的機制尚未被分離驗證,因此本稿不把任何猜測寫成已知原因。

殘差很小,為什麼不代表真正校正很準?

校正殘差表示這組資料在所選模型內彼此是否一致;它不等於相機到機械臂的轉換已接近真值。

本案例中,幾個在線可取得的指標與真實取料誤差的相關性都很弱:

  • 姿態數量:相關約 -0.242。
  • 校正殘差:相關約 +0.121。
  • 條件數:相關約 +0.108。

另一方面,在同一個 seed 內比較前 8 組姿態與全部姿態,取料誤差中位數由 0.764 mm 降到 0.444 mm,改善約 42%。

兩個結果並不衝突。跨 seed 比較時,姿態品質的差異會蓋過數量效果;在同一組資料內增加合格姿態,仍然有幫助。

對初學者來說,最重要的是:**殘差是診斷線索,不是真實精度的替代品。**如果有條件,仍要用外部基準點、獨立量測工具或留出的驗證姿態做交叉檢查。

一個座標慣例錯誤,可以安靜地偏掉 833.667 mm

先導過程曾把列向量與欄向量的轉換慣例弄反,造成 TCP 位置固定偏差 833.667 mm。

更危險的是,AX = XB 校正本身仍然內部一致,求解器不一定會報錯。只有把結果與外部已知真值比較時,這個巨大偏差才被發現。

這類錯誤是數位孿生專案最常見也最難察覺的問題之一:每個模組都能運作,但大家對矩陣方向、座標左右乘與單位的理解不同。

因此,座標轉換至少要附上三項測試:

  1. 已知點經轉換後應落在哪裡。
  2. 轉換與反轉換後是否回到原點。
  3. 無雜訊合成資料能否回復已知外部參數。

這篇可以支持到哪裡?

可以支持的結論:在指定合成觀測雜訊、姿態範圍、固定輸送帶速度與延遲補償下,30 個 seed 的主要校正與 TCP 位置指標通過;姿態多樣性比單純增加數量帶來更明顯的蒙地卡羅改善。

不能支持的結論:

  • 沒有相機影像、鏡頭畸變與特徵偵測,不能代表真實視覺校正流程。
  • 沒有 DH 參數誤差、齒隙、結構撓曲與熱漂移,結果偏向理想下限。
  • 沒有夾爪、接觸與抓取力,TCP 到達不等於取料成功。
  • 輸送帶沒有打滑,速度與延遲都固定。
  • 數值收斂未通過,不能宣稱更細時間步一定更準。
  • 本結果不能作為真實產線精度或安全性的保證。

今天帶走三件事

  1. 校正姿態的方向與分散度,往往比單純增加張數重要。
  2. 輸送帶延遲要換算成毫米,和空間校正誤差一起看。
  3. 校正殘差小只代表模型內一致,不等於外部真值正確。

Day 25 會把焦點從「位置準不準」移到「堆疊站不站得住」:教科書裡的質心判準,放進物理模擬後會有多可靠?


上一篇
Day 23|數位孿生:高速分流錯一次,究竟是分類錯,還是出力太晚?
下一篇
Day 25|數位孿生:質心落在支撐範圍內,箱子就一定不會倒嗎?
系列文
Physical AI 驗證工程:30 天把機器人模擬變成可檢查的證據25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言