工業(yè)機器人

MATLAB中的機械臂算法

ainet.cn   2019年12月20日

  目錄

  1. 機械臂算法簡介

  2. 運動學(xué)部分

  2.1.1. Rigid Body Tree (剛體樹)

  2.1.2. 反向運動學(xué)算法

  2.1.3. Simulink示例

  1 機械臂算法簡介

  MATLAB在2016年就推出了Robotics System Toolbox(RST),其中有很多關(guān)于機械臂方面的算法。而且隨著客戶需求的增加,也在加入一些新的功能。為了試圖讓讀者了解更多RST在機械臂方面的支持,讓我們來看一下機械臂方面的算法概貌。

  這些名詞聽起來都比較深奧,但是在機械臂的世界里,這些都非常有用。讓我們看一個簡單的例子。下圖是一個簡單的機械臂示意:機械臂的end-effector(末端機構(gòu))受到4個旋轉(zhuǎn)關(guān)節(jié)和3個連桿的共同作用,可以到達不同的作業(yè)地點,也可以處于不同的旋轉(zhuǎn)角度。

  為了分析end-effector的具體位置和角度,我們看到:它相對底座開始,做了4次旋轉(zhuǎn)(rotation)和3次轉(zhuǎn)置(translation)。那這4次旋轉(zhuǎn)和3次轉(zhuǎn)置的總和,我們可以用一個矩陣來表示:

  這個矩陣也叫Homogeneous Transformation(齊次變換)。有時候,對于旋轉(zhuǎn)會有不同的表達方式,例如歐拉角(Euler Angles)、四元數(shù)(Quaternion)、旋轉(zhuǎn)矩陣(Rotation Matrix)等等;表達轉(zhuǎn)置,也可使用轉(zhuǎn)置向量(Translation Vector)。有了RST這些都可以輕松通過不同的函數(shù)進行互換。下圖為具體的函數(shù)列表:

  例如:

  將歐拉角轉(zhuǎn)為Homogeneous Transformation。

  由于機械臂的連桿長度是已知的,只要確定了各個關(guān)節(jié)轉(zhuǎn)動的角度,我們就可以確定end-effector的最終位置和方向。這個我們稱之為forward kinematics(正向運動學(xué))。反過來,如果我們知道了end-effector的最終位置和方向,我們也可以推導(dǎo)各個關(guān)節(jié)的角度,這個我們稱之為inverse kinematics(反向運動學(xué))。機械臂關(guān)注的主要是反向運動學(xué)。

  如果end-effector,需要走一段比較長的路程(path),從甲點運行到乙點。我們?yōu)榱耸沟脵C械臂的end-effector 的路徑平滑,需要規(guī)劃一系列的路徑點(waypoints),這個我們叫做路徑規(guī)劃(trajectory planning)或者叫運動插補(interpolation)。

  例如下圖:藍色的曲線叫path,而各個時間經(jīng)過的路徑點叫trajectory。如何設(shè)計經(jīng)過這些路徑點的trajectory,比較顯而易見的指標(biāo)是 “平滑” 。那什么是 “平滑” ,它可能意味著 “速度連續(xù)” 、 “加速度連續(xù)” 、 “沒有頓挫” 等等。這些指標(biāo),都會轉(zhuǎn)化成數(shù)學(xué)算法。RST也會有相應(yīng)的算法支持,作者在MATLAB 2019a發(fā)布后,會另外寫文章描述。

  機械臂的關(guān)節(jié)位置我們一般用電機來驅(qū)動。電機通過產(chǎn)生力矩來轉(zhuǎn)動機械裝置,驅(qū)動機械臂。不同場合或者時機,需要的力矩不盡相同。

  例如:

  機械臂水平放置的時候需要關(guān)節(jié)電機產(chǎn)生力矩來抵消地球引力;

  當(dāng)機械臂需要迅速移動的時候,需要的力矩比緩慢移動的要大,當(dāng)機械臂彎曲或者平展時候,重心發(fā)生變化,由于慣量(I = mr2)的不同,需要的關(guān)節(jié)力矩也不相同;

  另外,在很多場合,機械臂需要和人交互(collaborative robots),在碰到人體的時候,需要做出安全的保護動作,并對力矩進行調(diào)整。

  這些需要考慮力矩的因素,我們稱之為動力學(xué)(dynamics)。和運動學(xué)類似,動力學(xué)分為正向動力學(xué)(forward dynamics)和反向運動學(xué)(inverse dynamics)。RST里支持兩種都有相應(yīng)的MATLAB函數(shù)和Simulink block。作者也會另外寫文章詳細介紹RST關(guān)于動力學(xué)的部分。

  2 運動學(xué)部分

  2.1.1Rigid Body Tree (剛體樹)

  我們說研究運動學(xué)(主要是反向運動學(xué)),就是研究end-effector的位置改變會帶動各個關(guān)節(jié)的角度如何改變。RST用Rigid Body Tree這樣一個對象,在這個對象上可以使運動學(xué)設(shè)計易用且可視化。下圖展示了機械臂的剛體樹樣例,可以在MATLAB界面中展示各個body的詳細參數(shù)。

  一般來說,Rigid Body Tree都是直接從機械臂的

(轉(zhuǎn)載)

標(biāo)簽:MATLAB 我要反饋 
什么是新一代機器人界面(HMI)?
ABB協(xié)作機器人,自動化從未如此簡單
優(yōu)傲機器人下載中心
2024全景工博會
專題報道
2023-2024 智能·零碳成果展映
2023-2024 智能·零碳成果展映

“2023-2024智能·零碳成果展映”展示國內(nèi)外企業(yè)推進“雙碳”實踐的最新成果,鼓勵更多企業(yè)、科研機構(gòu)、投資機構(gòu)等廣泛... [更多]

中國國際進口博覽會
中國國際進口博覽會

11月5日至10日,第七屆中國國際進口博覽會在國家會展中心(上海)舉行。152個國家、地區(qū)和國際組織,近3500家參展企... [更多]

2024 工博會 | 直播探館 · 全景解讀
2024 工博會 | 直播探館 · 全景解讀

第二十四屆中國工博會于9月24日至28日在國家會展中心(上海)舉行,展會以“工業(yè)聚能 新質(zhì)領(lǐng)航”為全新主題。 [更多]