關於六軸機器人的D-H建模方法的疑問?
01-05
題主初涉六軸機器人的學習,在建模這個部分有點疑問,本人目前本科學生大二,理論知識不深,希望各位前輩能幫幫忙。
------------------------------------------------------聽說知乎都用分割線--------------------------在目前的工業六軸機器人控制裡面,一般採用D-H參數法來給機器人建模,我在網上看到的一個建模步驟是這樣的(出自:機器人正運動學方程的D-H表示法)相信各位已經了解過六軸機器人的前輩都會讀過這篇文章,我的問題是如果按照文章中的方法,以轉軸為z軸,相鄰兩個z軸的公垂線為x軸,那麼,從n坐標繫到n+1坐標系的變化過程必須遵循以上步驟么?可否先轉x軸,再x軸平移,z軸平移,最後z軸旋轉,如果可以,那麼是必須六個軸都必須同一步驟或者說6個軸可以任意步驟呢?
推薦你看下Mark Spong的robot denamics and control, 裡面的解釋是我見過解釋的最清楚的。
簡而言之:
對機器人運動學建模,你怎麼建立坐標系,都可以,問題在於統一和簡潔。D-H參數建模,相當於人為的引進了兩個約束條件,使得原來需要六個參數才能描述的位置和姿態,僅僅用四個參數就可以描述了。而且這四個參數的物理含義又很清楚,所以就成了標準。另外說一句,現在很多機器人軟體中,支持各種非標準D-H參數建模的方法,只要你在每一個link上固定一個參考系就可以了。可以,但不方便。
因為正向運動學是從0關節向n關節推算。你要注意的是,文中的旋轉和平移全部都是用n坐標系的元素去旋轉n坐標系(最後一條的「將z_n軸繞x_n+1軸旋轉」中的「x_n+1軸」其實應該是「旋轉後的x_n軸」)。這是用n關節推算n+1關節的方法。
你的先繞x_n+1軸旋轉的演算法是從n+1關節推算n關節。為什麼這裡不能是n關節推算n+1關節呢?因為在當前的n坐標系裡面基本上不會有一個坐標軸與x_n+1平行。換言之,你要繞x_n+1軸去旋轉n坐標系而不是n+1坐標系的話,就是沿一條特別的軸(而不是當前的x_n, y_n, z_n中任何一者)去旋轉。這個數學描述就相對麻煩了(儘管也是可行的,可實際上要麼你去查某些書上的公式,要麼還是等同於先把x_n轉到x_n+1,等轉完z_n之後還要把x_n轉回去,然後下一步還要再轉回來)。而你要從n+1關節推算n關節,最後出來的旋轉矩陣和n關節推算n+1關節的旋轉矩陣是互逆的。你需要多做一步矩陣取逆才能得到正向運動學需要的那個矩陣。
無論用哪種方法,最後得到的旋轉矩陣都是一樣的,從數學上來講沒有區別。但是顯然,在正向運動學中,你用書上的這種方法更簡單、更直接。(°_°)… 這個語言表達 DH Matrix 中各個參數的意思的話,實在是有點費勁…
Reference : &
建議你去看《機器人技術基礎》,熊有倫院士在90年代編寫的書,對經典的D-H方法有細緻說明。現在的機器人教材都很不嚴謹,很多推導缺少上下文,而且現在寫機器人教材的大部分是不懂機構學的所謂專家。
可以看一下機器人學導論,它用的是改進的DH。建好個個坐標系,確定參數就可以了
推薦閱讀:
※自動控制、機器人等領域都有哪些牛逼閃閃的「禁術」?
※未來機器人投入戰場會打贏類似伊拉克戰爭那樣的反恐戰,治安戰么?
※你覺得科幻電影里最萌的機器人是?
※玉兔號採用的什麼處理器?
※掃地機器人怎麼樣?
TAG:機器人 |