siemens x
機(jī)器人

MATLAB中的機(jī)械臂算法

2025China.cn   2019年12月20日

  目錄

  1. 機(jī)械臂算法簡介

  2. 運(yùn)動(dòng)學(xué)部分

  2.1.1. Rigid Body Tree (剛體樹)

  2.1.2. 反向運(yùn)動(dòng)學(xué)算法

  2.1.3. Simulink示例

  1 機(jī)械臂算法簡介

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

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

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

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

  例如:

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

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

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

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

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

  例如:

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

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

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

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

  2 運(yùn)動(dòng)學(xué)部分

  2.1.1Rigid Body Tree (剛體樹)

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

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

(轉(zhuǎn)載)

標(biāo)簽:MATLAB 我要反饋 
2024世界人工智能大會(huì)專題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專題報(bào)道
2024 工博會(huì) | 直播探館 · 全景解讀
2024 工博會(huì) | 直播探館 · 全景解讀

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

2024世界人工智能大會(huì)
2024世界人工智能大會(huì)

WAIC 2024將于7月在上海舉行,論壇時(shí)間7月4日-6日,展覽時(shí)間7月4日-7日。WAIC 2024將圍繞“以共商促... [更多]

2024漢諾威工業(yè)博覽會(huì)專題
2024漢諾威工業(yè)博覽會(huì)專題

2024 漢諾威工業(yè)博覽會(huì)將于4月22 - 26日在德國漢諾威展覽中心舉行。作為全球首屈一指的工業(yè)貿(mào)易展覽會(huì),本屆展覽會(huì)... [更多]