輕松學機器人系列(一) 坐標系關系 大家好,,我是Johnny。今天很高興應邀在這個平臺和大家一起交流玩機的經驗,,今天主要和大家聊聊機器人坐標系的前世今生,。 剛開始玩機器人的朋友通常會被一堆沒聽到過名字的坐標系砸悶,有時候即使會用了也未必完全清楚坐標系各自的來歷及相互關系,,而一般的培訓或者文檔也沒有對此加以詳細說明,。 本文本著讓普通人都能看懂的原則,會用盡量簡單的語言來把坐標系之間的關系給大家展開一下,。 首先讓我們捋一下,,目前所知道的或者聽說過的坐標系:
是不是看著很多?沒關系,,一個個捋:
接下來,我們來聊聊這些坐標系之間的相互關系:
按照最簡單的情況來分析,,先來看圖,,
先來看世界坐標系,,它的特點很容易總結:
再來看看工件坐標系,它有哪些特點呢?我們來看一下,。首先,,很多時候一個機器人需要在多個工位上干活,這意味著我得為機器人設定很多個工件坐標系以對應不同工位,。
考慮一下,,如果把機器人的工件坐標系設定在北京天安門樓頂行不行呢,?? 行不行呢,?行不行呢,?行不行呢? 當然可以?。,。∫獑枮樯??用戶自定義唄,,自定義還不夠你臭屁的么?
好,,現(xiàn)在我們深入思考一下這個問題。由于工件坐標系是由用戶自定義的,,因此當你設定了一個工件坐標系后,,你必須得告訴機器人這個工件坐標系的具體位置情況,不然機器人是不知道這個坐標系的信息的,。那么問題來了,,怎么樣能讓機器人知道一個工件坐標系具體情況呢? 當我們要描述一個具體的坐標系時,,首先需要做的是........找參考坐標系,。。,。,。 參考坐標系的選擇有兩個前提條件:
然后我們發(fā)現(xiàn)了一個現(xiàn)成的坐標系,,沒錯,,就是世界坐標系。它正好符合這兩個要求。 當把世界坐標系設定為參考坐標系后,,剩下的事情只有兩件了:
簡單來說,,就是找原點,定方向,。 原點怎么表示呢,??
接下來方向該怎么定呢,?
好了,,我們現(xiàn)在既有原點信息(X,Y,Z),又有方向信息(A,B,C),,這樣一來機器人就知道工件坐標系的確切空間位置了,。舉例:KUKA的工件坐標系描述:base_data[1]={x 0,y 0,z 0,a 0,b 0,c 0}。ABB的工件坐標系描述和KUKA稍有不同,,采用四元數(shù)的方式描述方向,,此次討論暫不涉及。 所以第一層關系就明確了:工件坐標系是通過世界坐標系下的{x ,y ,z,a ,b ,c }來確定的,,或者說工件坐標系是基于世界坐標系推算出來的。
和工件坐標系一樣,,工具坐標系也是人為定義的,,那么怎么告訴機器人工具坐標系的位置信息呢?,?我們先要做的事情其實一樣,,先得找一個靠譜的參考坐標系。之前說了,,參考坐標系必須滿足兩點:
按照這個標準,,世界坐標系就不適合作為工具坐標系的參考坐標系了,,因為兩者相對位置會發(fā)生變化。 突然發(fā)現(xiàn)我們還有一個法蘭坐標系,,這個和工具坐標系位置肯定不會改變,。(如果會改變。,。,。。,。我的天,,你到底有米有好好固定工具。) 那它滿不滿足第二個條件呢,?先說結論:可以認為它是已知的坐標系,,只要滿足兩點:
這是什么意思,,法蘭坐標系是通過機器人的內部算法建立的,,該算法會把根坐標通過數(shù)學的方式偏轉至機器人法蘭上。由于是計算過程,所以仍然會受到一些因素制約,。我們可以把它想象成是解一個復雜的方程,,機械零位決定了方程的初值,機械參數(shù)決定了方程的表達式,。很顯然,,當這兩者有任何一個出現(xiàn)問題,方程的解就會出問題,。(注:機械零位就是大家經常要做的零點標定,,機械參數(shù)則是對應于不同機器人的相關參數(shù),以KUKA為例子:KR30和KR360機械參數(shù)完全不同,,包括減速比,,軸距等各類本體參數(shù)。) 現(xiàn)在我們仍然把問題簡化一下,,假定大家的零點都正確標定了,,同時選擇的機器參數(shù)也匹配當前機器人,那么結論就出來了:法蘭坐標系可以作為工具坐標系的參考坐標系,。事實上所有機器人廠家也都是這么做的,。與之前描述一樣,只要給出對應的X,Y,Z,A,B,C這6個值,,就可以讓機器人知道目標工具在法蘭的什么位置,。 舉例:KUKA的工具坐標系:tool_data[1]={x 0, y 0,z 0,a 0,b 0,c 0} 至此,第二層關系明朗了:工具坐標系是由法蘭坐標系下的{x ,y,z ,a ,b ,c }來確定的,。
咳咳,,這個稍微有點復雜,大家可以先去喝口水,。,。。,。,。。,。 閑話不提,,上圖 假定我們建立了一個工件坐標系A,還有一個工具坐標系B,。然后編了一個程序,,在程序中示教了一個點P,。好,問題來了,,點是不是隨意示教的,??,? 是不是,??是不是,?,??是不是,?,??,?,? 當然是啦,想示教在哪就示教在哪,,只要夠得到。那么這個點的位置信息是怎么告訴給機器人的呢,?,?? 在數(shù)學上描述一個點是挺簡單的一件事,,只要有個參考坐標系,,一組X,Y,Z就能搞定了(我想耐心看到這里的同鞋應該都能理解了)。先看一下,,這個時候哪個坐標系作為參考坐標系更合適,?1. 世界 2. 法蘭 3. 工件選哪個?,? 回想一下參考坐標系的要求我們就明白了,,第一個剔除的是法蘭坐標,因為它相對點位會動,。 那世界坐標行不行,??,?也不夠好,,為什么呢?因為世界坐標系固定不變,,意味著一旦你示教了這個點,,這個點的位置也就固定不變了,。如果你示教了100個點,然后發(fā)現(xiàn)需要整體往X方向平移100mm,,那么你慘了,,你得一個一個點改。
參考坐標系搞定了,,繼續(xù)往下想,僅僅x ,y ,z 就能描述一個示教點么,?數(shù)學上的點和我們示教的點是一樣的意義么,??記住一個原則,,所有的示教點必須能讓機器人以唯一的一種姿態(tài)到達,。也就是如果機器人有兩種以上的方式可以到達這個位置,就是不可以的(如果你家的機器人今天這么走軌跡,,明天那么走軌跡,,就問你會不會瘋?),。這么一來,,我發(fā)現(xiàn)X,Y Z完全不夠,我至少還需要一些可以確定姿態(tài)方向的參數(shù),。有同鞋說,,之前說的A,B,C不就是規(guī)定方向的么?在這里可以用么,?,?等等,我們不是聊的是點么,?點有方向么,??數(shù)學上點是沒方向的,。因此,,這里需要說明一下:示教的點其實并不僅僅是一個數(shù)學上的點。那示教的點到底是什么,?,?? 我們換個角度想這個問題,,當執(zhí)行這個程序時,,機器人哪個部位會到達這個示教點,??答案是:TCP,。上文有提到,,TCP是工具中心點,在運動過程中機器人所有的軌跡計算會圍繞這個點進行,。
,。。,。,。。,。 ,。。,。。,。,。 你以為就結束了么?確定了一組X,Y,Z,A,B,C就一定只有唯一解么,?,??來看看一個特殊情況,,如圖所示: 我們可以看到,,當規(guī)定好了X,Y,Z,A,B,C的值后,實際上機器人法蘭前端的姿態(tài)位置就被確定了,,但是如圖所示,,這兩個機器人法蘭空間位置姿態(tài)完全一致,但是機器人整體姿態(tài)仍有區(qū)別,。
,。,。。,。,。。 ,。,。。,。,。。 你又以為結束了么,?以前僅僅討論了機器人本體的情況,,如果機器人帶有外部軸呢?,?以KUKA為例,,一般可以帶6個外部軸,所以完整的點坐標還包含外部軸信息,。 舉例: KUKA xp1={x , y , z , a ,b ,c ,s , t , e1 , e2,e3 ,e4 ,e5 ,e6 }
又及:第一次發(fā)稿,寫得有點亂,,對于細節(jié)描述各位大牛不用太較真,,希望對初學者有所幫助。 再及:我不是段子手,。
—————————————— |
|