Processing math: 100%

2021年2月1日 星期一

[自動化工程]座標系統_閒聊齊次轉換矩陣_part2_二維轉換矩陣

 這陣子頻繁遇到二維座標系轉換的應用,好像遇到了職涯中的座標轉換年,比方像是:


  1. 在影像檢測系統中,需要將檢測出的座標點,將預設的以影像座標系為參考,轉化成以產品座標系為參考
  2. 機械手臂影像對位應用,需要將對位系統吐出的座標補償值 ,預設以機械手大地座標為參考,轉化成以機械手工具座標為參考
  3. 需要新增一個參考點,以產品座標系為參考偏移,偏偏系統上只有大地座標系可用,只好自己簡單刻座標轉換…

一陣時日下來,總感覺矩陣是一種很難儲存在人體大腦的資料結構,時常遇到卻不容易背起來,寫成以下筆記供日後經常翻查.


• 討論中的座標系參照關係

將以下筆記內容所使用的坐標系上下標,用簡圖定義清楚參照關係:


• 二維轉換矩陣

○ 未展開的形式

前面鬼扯了這麼多不涉及維度的通用形式中,將R矩陣賦予2x2(個別座標軸只有兩個維度,共兩個座標軸X與Y)T賦予2x1 (原點有X與Y二維度方向偏移);整理後以下是二維轉換矩陣的基礎符號形式:

[R2x2T2x101x21]3x3

個人習慣在分析轉換關係時先不展開個別矩陣,反倒是先以上述簡易符號方式簡單相乘、逆轉確認系統建模邏輯無誤後再展開後實作運算

○ R矩陣

R矩陣可以被理解成具像的繞軸旋轉,在運用熟悉後可以漸漸理解後發現R矩陣可以被更廣泛的理解成"將局部坐標系座標軸在參考座標系表示",比方說第一行(Colomn)為i座標系的X軸向量 Xi以R座標系表示,第二行為i坐標系Y軸向量Yi以R座標係表示:



可以看到上圖Xi軸在旋轉後,衍生出在R座標系中的Y軸分量,以及R座標系中的X分量縮短,透過三角函數可以得出此二分量的內容,即為Xi軸在參考係中的表示;Yi軸也是同樣的道理

註記:如果以座標軸向量組看待R矩陣,會發現旋轉只是一種過程,但不見得是唯一的程序,雙軸縮放、單軸縮放、非正交都是有可能的形式.

○ 展開後形式

  1. 正轉換TiR(原先以{i}為參照,轉換成以{R}為參照)

R矩陣即為XiYi座標軸向量,O矩陣為原點相對參考係原點的偏移量,套入後便成以下形式:

TiR=[R2x2T2x101x21]3x3=[XiRYiROiR001]=[cosθsinθtxsinθcosθty001]

此時的旋轉Θ是以R座標系為基準 - 相對XR逆時針為正,反之為負

    2.轉換TRi ( 原先以{R}為參照,轉換成以{i}為參照)

前篇我們知道逆轉換的形式,座標原點除了變號還要乘上R逆矩陣:

TRi=[RT01]1=[R1R1T01]=[cosθsinθ1(txcosθ+tysinθ)sinθcosθ1(txsinθ+tycosθ)001]

此時的旋轉Θ、平移txty仍然是以R座標系為基準喔!與正轉換所提到的是同一堆物件,別搞混了

○ 實作驗證技巧

因為工業自動化領域中有各種可程式裝置,比方說智慧相機、機械手控制器、PLC…等等,廠家不同使用的語言邏輯也不同,本魯我常常陷入在不同組件中重複實作矩陣運算的窘境(好懷念只要維護.NET的日子);因此得出了要怎麼確認寫出來的正逆轉換是否正確的小心法.

非常簡單:將i原點正逆轉換後應該還是要為0 ,如果正逆轉換後不為0就是有地方搞錯了!可能是角度定義錯誤或是Sin、Cos代錯、正負號錯置等等…總之有方法知道自己錯了一切好談


沒有留言:

張貼留言