一種串聯機器人逆動力學快速計算方法與流程
2023-10-29 11:38:07 2
本發明涉及串聯機器人逆動力學計算方法,特別涉及一種串聯機器人逆動力學快速計算方法。
背景技術:
串聯機器人在製造業、農業、娛樂業等行業得到越來越廣泛的應用,許多應用場景需要串聯機器人擁有高速、高精度的運動性能。基於串聯機器人動力學模型的運動控制能賦予機器人高速、高精度的運動性能,這種方法需要不斷實時進行串聯機器人逆動力學計算。
目前串聯機器人逆動力學模型多以拉格朗日方程法進行建模,這種方法得到的串聯機器人逆動力學模型十分複雜,以6自由度的串聯機器人為例,使用拉格朗日方程法得到的逆動力學模型,總共需要計算66271次乘法和51548次加法。而串聯機器人控制器的伺服控制周期一般為1ms,顯然如此複雜的模型無法在1ms之內完成計算。因此,需要更簡潔的模型和更快速的計算方法才能實現串聯機器人逆動力學實時計算。
技術實現要素:
本發明的目的是提供一種串聯機器人逆動力學快速計算方法,旨在解決串聯機器人逆動力學實時計算問題。
本發明的目的通過下述技術方案來實現:
一種串聯機器人逆動力學快速計算方法,包括如下步驟:
s1、使用牛頓-歐拉方程建立相對簡潔的串聯機器人逆動力學模型;
s2、解耦得到標準動力學參數和對應的回歸矩陣;
s3、使用基於數值的簡化方法對解耦後模型進行簡化,得到基本動力學參數和對應的基本回歸矩陣;
s4、藉助符號運算工具對基本回歸矩陣進行合併和簡化,並提取反覆出現的項作為中間項,優先計算以減少計算量。
進一步地,所述步驟s2包含如下步驟:
s2.1、使用迭代牛頓-歐拉動力學算法得到串聯機器人的逆動力學表達式
式中,γ為各關節力矩;分別為各關節的轉角、角速度和角加速度;δ為各連杆的標準動力學參數,且δ=[δ1δ2…δn]t,δk為連杆k的標準動力學參數且δk=[lxxklxyklxzklyyklyzklzzklxklyklzkmkfvkfckiak]t;invdyn(·)為機器人逆動力學模型函數;
為了便於進行串聯機器人動力學參數辨識,需要將式(1)改寫成如式(2)所示的線性形式
式中,被稱作回歸矩陣,是關於關節的轉角、角速度和角加速度的函數;
s2.2、依次令矢量δ的第i個動力學參數等於1,其餘動力學參數等於0,然後代入式(1)所示的invdyn(·)函數中,則除去零項後,剩餘項均為第i個動力學參數的相關項,將其賦值給回歸矩陣h的相關列,最終得到完整的回歸矩陣h。
進一步地,所述步驟s3包含如下步驟:
s3.1、可以將矩陣和機器人標準動力學參數δ分成兩部分,則動力學方程可以寫成如下的形式
式中,hb為矩陣所有nb個線性無關列組成的子矩陣;hd為剩下的nd個全零列向量和線性相關列組成的子矩陣;δb為基本動力學參數;δd為對動力學不起作用的動力學參數;
hd可以用hb線性表示,寫作
hd=hbkd;(4)
s3.2、設置換矩陣p=[pbpd]滿足如下式
hp=[hbhd],(5)
則有
聯立式(3)到(6)可以得到
hb(δb+kdδd)=γ,(7)
寫成含基本動力學參數項的動力學方程,則為
式中,β為基本動力學參數,β=kδ,k=pbt+kdpdt;
s3.3、隨機生成s組且滿足s遠遠大於機器人標準動力學參數δ的個數;將s組代入回歸矩陣函數可以得到回歸矩陣hs;對hs使用qr分解可以得到正則上三角矩陣r
遍歷矩陣r的對角元素,記錄其中非零對角元素在矩陣中的列號,依次寫入數組db;定義行列數等於機器人標準動力學參數δ個數的單位矩陣p';依照數組db記錄的列號,按順序從單位矩陣p'中取出對應的列組成新矩陣,該矩陣為pb,剩餘的列組成新矩陣,該矩陣為pd,則p=[pbpd]。
對矩陣hb,hd分別使用qr分解,可得
則有
聯立式(5)和式(10),可以得到
kd=rb-1rd,(12)
綜上所述,可以得到pb,kd,pd,進而得到基本動力學參數β。
本發明相對於現有技術具有如下的優點及效果:
本發明採用牛頓-歐拉方程、簡化動力學參數和提取重複項三個步驟,大大減少串聯機器人逆動力學運算量。以6自由度串聯機器人逆動力學模型為例,使用本發明的計算方法最終只需要計算551次乘法和312次加法,而市面常見的運動控制系統基本都能在1ms內完成1000次以內的乘法和加法。因此,本發明能解決串聯機器人逆動力學運算過於複雜,難以滿足實時計算要求的問題。
附圖說明
圖1是本發明實施例的串聯機器人逆動力學快速計算方法流程示意圖。
具體實施方式
下面結合實施例及附圖對本發明作進一步的詳細描述,但本發明的實施方式不限於此。
如圖1所示,現以某六自由度垂直關節串聯機器人為對象,按照以下步驟進行串聯機器人逆動力學快速計算:
一種串聯機器人逆動力學快速計算方法,包括如下步驟:
s1、使用牛頓-歐拉方程建立相對簡潔的串聯機器人逆動力學模型;
s2、解耦得到標準動力學參數和對應的回歸矩陣;
s3、使用基於數值的簡化方法對解耦後模型進行簡化,得到基本動力學參數和對應的基本回歸矩陣;
s4、藉助符號運算工具對基本回歸矩陣進行合併和簡化,並提取反覆出現的項作為中間項,優先計算以減少計算量。
具體而言,所述步驟s2包含如下步驟:
s2.1、使用迭代牛頓-歐拉動力學算法得到串聯機器人的逆動力學表達式
式中,γ為各關節力矩;分別為各關節的轉角、角速度和角加速度;δ為各連杆的標準動力學參數,且δ=[δ1δ2…δn]t,δk為連杆k的標準動力學參數且δk=[lxxklxyklxzklyyklyzklzzklxklyklzkmkfvkfckiak]t;invdyn(·)為機器人逆動力學模型函數;
為了便於進行串聯機器人動力學參數辨識,需要將式(1)改寫成如式(2)所示的線性形式
式中,被稱作回歸矩陣,是關於關節的轉角、角速度和角加速度的函數;
s2.2、依次令矢量δ的第i個動力學參數等於1,其餘動力學參數等於0,然後代入式(1)所示的invdyn(·)函數中,則除去零項後,剩餘項均為第i個動力學參數的相關項,將其賦值給回歸矩陣h的相關列,最終得到完整的回歸矩陣h。
具體而言,所述步驟s3包含如下步驟:
s3.1、可以將矩陣和機器人標準動力學參數δ分成兩部分,則動力學方程可以寫成如下的形式
式中,hb為矩陣所有nb個線性無關列組成的子矩陣;hd為剩下的nd個全零列向量和線性相關列組成的子矩陣;δb為基本動力學參數;δd為對動力學不起作用的動力學參數;
hd可以用hb線性表示,寫作
hd=hbkd;(4)
s3.2、設置換矩陣p=[pbpd]滿足如下式
hp=[hbhd],(5)
則有
聯立式(3)到(6)可以得到
hb(δb+kdδd)=γ,(7)
寫成含基本動力學參數項的動力學方程,則為
式中,β為基本動力學參數,β=kδ,k=pbt+kdpdt;
s3.3、隨機生成s組且滿足s遠遠大於機器人標準動力學參數δ的個數;將s組代入回歸矩陣函數可以得到回歸矩陣hs;對hs使用qr分解可以得到正則上三角矩陣r
遍歷矩陣r的對角元素,記錄其中非零對角元素在矩陣中的列號,依次寫入數組db;定義行列數等於機器人標準動力學參數δ個數的單位矩陣p';依照數組db記錄的列號,按順序從單位矩陣p'中取出對應的列組成新矩陣,該矩陣為pb,剩餘的列組成新矩陣,該矩陣為pd,則p=[pbpd]。
對矩陣hb,hd分別使用qr分解,可得
則有
聯立式(5)和式(10),可以得到
kd=rb-1rd,(12)
綜上所述,可以得到pb,kd,pd,進而得到基本動力學參數β。
上述實施例為本方面較佳的實施方式,但本方明的實施方式並不受上述實施例的限制,其他的任何背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發明的保護範圍之內。