一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MATLAB中的運動學(xué)機械臂算法

MATLAB ? 來源:djl ? 作者:MathWorks ? 2019-09-11 15:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

MATLAB中的運動學(xué)機械臂算法

這些名詞聽起來都比較深奧,但是在機械臂的世界里,這些都非常有用。

讓我們看一個簡單的例子。下圖是一個簡單的機械臂示意:機械臂的 end-effector(末端機構(gòu))受到 4 個旋轉(zhuǎn)關(guān)節(jié)和 3 個連桿的共同作用,可以到達不同的作業(yè)地點,也可以處于不同的旋轉(zhuǎn)角度。

MATLAB中的運動學(xué)機械臂算法

為了分析 end-effector 的具體位置和角度,我們看到:

它相對底座開始,做了 4 次旋轉(zhuǎn)(rotation)和 3 次轉(zhuǎn)置(translation)。那這 4 此旋轉(zhuǎn)和 3 此轉(zhuǎn)置的總和,我們可以用一個矩陣來表示:

MATLAB中的運動學(xué)機械臂算法

這個矩陣也叫 Homogeneous Transformation(齊次變換)。

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

MATLAB中的運動學(xué)機械臂算法

例如:將歐拉角轉(zhuǎn)為Homogeneous Transformation:

>> eul = [0 pi/2 0];

tformZYX = eul2tform(eul)

tformZYX =

0.0000 0 1.0000 0

0 1.0000 0 0

-1.0000 0 0.0000 0

0 0 0 1.0000

由于機械臂的連桿長度是已知的,只要確定了各個關(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,比較顯而易見的指標是 “平滑” 。那什么是“平滑” ,它可能意味著 “速度連續(xù)” 、“加速度連續(xù)” 、 “沒有頓挫” 等等。這些指標,都會轉(zhuǎn)化成數(shù)學(xué)算法。 RST 也會有相應(yīng)的算法支持,作者將另外寫文章描述。

MATLAB中的運動學(xué)機械臂算法

機械臂的關(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é)的部分。

運動學(xué)

1. Rigid Body Tree (剛體樹)

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

MATLAB中的運動學(xué)機械臂算法

MATLAB中的運動學(xué)機械臂算法

一般來說,Rigid Body Tree 都是直接從機械臂的 CAD 文件或者 URDF(Unified Robot Description Format)文件導(dǎo)入。不過,也支持每個 body 的逐步添加。

我們隨便敲幾行 MATLAB 命令:

robot = importrobot('iiwa14.urdf');

show(robot);

MATLAB中的運動學(xué)機械臂算法

讓我們來改變一下機器人的各個關(guān)節(jié)角度(configuration),比如讓MATLAB自動給一個隨機角度配置,再看一下結(jié)果。顯然各個角度發(fā)生了變化。

q=randomConfiguration(robot);

show(robot,q);

MATLAB中的運動學(xué)機械臂算法

我們看看這個機械臂最末端的 end-effector 是什么?

showdetails(robot)

MATLAB中的運動學(xué)機械臂算法

我們再看看 end-effector 相對機器人底座(base)的 Homogeneous Transformation(相對位置和角度)。

MATLAB中的運動學(xué)機械臂算法

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

反向運動學(xué)算法求解分兩種:一種是分析解法(Analytic solutions);一種是數(shù)值解法(Numerical solutions)。

MATLAB 用的是數(shù)值解法,可以理解為迭代尋優(yōu),或者近似解。

MATLAB 里面的反向運動學(xué)求解器(solver)有兩個:

Inverse Kinematics

Generalized Inverse Kinematics

兩者的區(qū)別是,后者比前者多了很多限制(constraints) 。例如end-effector的方向限制、機械臂各個關(guān)節(jié)的角度限制、位置限制等等。

我們先看一下比較簡單的 Inverse Kinematics:

MATLAB中的運動學(xué)機械臂算法

這是一個 6 軸機器人,end-effector 是 L6。

MATLAB中的運動學(xué)機械臂算法

我們想要的最終結(jié)果就是下圖:

tform 是 L6 相對 base 的位置和方向(合稱 pose)。

MATLAB中的運動學(xué)機械臂算法

下面的 MATLAB 代碼是計算出最終的各個關(guān)節(jié)的角度(configSoln),由于是用了迭代的數(shù)值解法,weights 為權(quán)重,initialguess 為給出一個初始估計。

MATLAB中的運動學(xué)機械臂算法

我們再看一下比較復(fù)雜的 Generalized Inverse Kinematics:

下面的代碼,做了這么幾件事情:

導(dǎo)入了一個 7 自由度的 rethink 機械臂— sawyer

設(shè)定反向運動學(xué)的求解限制— 例如機械臂的 end-effector 永遠指向地面的一個物體

對反向運動學(xué)進行求解

MATLAB中的運動學(xué)機械臂算法

如果我們加一段 end-effector 位置變化后,調(diào)用這段代碼的動畫效果,你會發(fā)現(xiàn) end-effector 的指向沒有變化 – 帶限制的反向動力學(xué)求解成功了:

3. Simulink 示例

在安裝 RST 之后,Simulink 的 library 里就會出現(xiàn)幾個和機械臂(manipulator)相關(guān)的 block:

其中 Inverse Kinematics 就是反向運動學(xué) block,其他的一些模塊顧名思義和動力學(xué)有關(guān),在下一篇文章我會重點介紹。

MATLAB中的運動學(xué)機械臂算法

在 MATLAB Central File Exchange 上搜索 “Designing Robot Manipulator Algorithms”,這是一個基于 Simulink 和 Stateflow 的例子。我們先看一下運行結(jié)果:

這個例子展現(xiàn)了機械臂的 end-effector 抓了紅色物體,沿著規(guī)劃好的紫色 trajectory,進行運動。

下圖的 stateflow 狀態(tài)機是一個 trajectory tracking 的算法,它的作用是確保 end-effctor 沿著預(yù)設(shè)的 trajectory 運行。

MATLAB中的運動學(xué)機械臂算法

狀態(tài)機下面的是運動控制部分和環(huán)境和物理模型。運動控制很簡單 – 直接計算反向運動學(xué),將算好的關(guān)節(jié)角度交給物理模型去展現(xiàn)。物理模型構(gòu)建也很簡單—— 用 SimScape 中的 SimMultibody 直接導(dǎo)入機械臂的 URDF 文件即可。

MATLAB中的運動學(xué)機械臂算法

這里可以看到物理模型并沒有包含伺服電機,而是“透明傳輸”— 反向運動學(xué)的結(jié)果直接發(fā)給了機械模型去展現(xiàn)。實際上真實的運動控制器會將位置、速度、力矩指令通過伺服總線(例如 EtherCAT)發(fā)給每個關(guān)節(jié)的電機去執(zhí)行,電機通過減速器去帶動機械結(jié)構(gòu)。例如,一個 6 軸機械臂會有 6 個伺服電機,運動控制器會將運動過程解析為 6 個電機可以理解的位置、速度、力矩指令。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17089

    瀏覽量

    184108
  • 機器人
    +關(guān)注

    關(guān)注

    213

    文章

    29709

    瀏覽量

    212726
  • 運動學(xué)
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    7184
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    PROFINET轉(zhuǎn)MODBUS TCP網(wǎng)關(guān)在機械通信操作的應(yīng)用研究

    在特定的汽車零部件生產(chǎn)工廠焊接生產(chǎn)線上,機械被應(yīng)用于焊接作業(yè),其控制體系基于Profinet協(xié)議。同時,工廠的自動化控制體系以西門子S7-1200PLC為核心,通過ModbusTCP協(xié)議實現(xiàn)
    的頭像 發(fā)表于 07-03 16:56 ?191次閱讀
    PROFINET轉(zhuǎn)MODBUS TCP網(wǎng)關(guān)在<b class='flag-5'>機械</b><b class='flag-5'>臂</b>通信操作<b class='flag-5'>中</b>的應(yīng)用研究

    GZCOM-NET:為機械測試帶來高效無線解決方案!

    在智慧工廠,機械的性能和安全性需通過靜態(tài)與動態(tài)測試來保障。批量化測試時,后臺需實時顯示數(shù)據(jù)曲線和異常數(shù)據(jù)。GZCOM-NET憑借高效穩(wěn)定的無線傳輸,為機械
    的頭像 發(fā)表于 06-20 11:36 ?356次閱讀
    GZCOM-NET:為<b class='flag-5'>機械</b><b class='flag-5'>臂</b>測試帶來高效無線解決方案!

    大象機器人攜手進迭時空推出 RISC-V 全棧開源六軸機械產(chǎn)品

    大象機器人成立于2016年,專注協(xié)作機器人研發(fā)與應(yīng)用,產(chǎn)品線涵蓋輕量級協(xié)作機器人、人形機器人、仿生機器人等多種形態(tài)。拳頭產(chǎn)品myCobot系列以“全球最輕的六軸機械”聞名,累計銷量超數(shù)萬臺,覆蓋
    發(fā)表于 04-25 17:59

    ??低曂瞥龃竽P?b class='flag-5'>機械防碰撞相機

    工業(yè)機械負載作業(yè)時,往往重達幾百斤甚至更重,提升效率的同時,如果它們“意外傷人”,后果不堪設(shè)想。
    的頭像 發(fā)表于 03-17 09:47 ?577次閱讀

    如何使用PLC控制myCobot 320機械

    根據(jù)持續(xù)的用戶反饋,目前市場對 PLC 與 myCobot 系統(tǒng)集成的需求很大,因此本文提供的案例介紹了如何使用 PLC(可編程邏輯控制器)來控制 myCobot 320 機械。本案例重點介紹
    的頭像 發(fā)表于 01-23 14:03 ?1123次閱讀
    如何使用PLC控制myCobot 320<b class='flag-5'>機械</b><b class='flag-5'>臂</b>

    使用myCobot 280機械結(jié)合ROS2系統(tǒng)搭建機械分揀站

    這篇文章是來自Automatic Addison的開源項目,已獲作者授權(quán)轉(zhuǎn)載自github。本項目的主要內(nèi)容是使用myCobot 280機械結(jié)合ROS2系統(tǒng)搭建機械分揀站。
    的頭像 發(fā)表于 01-15 09:22 ?768次閱讀
    使用myCobot 280<b class='flag-5'>機械</b><b class='flag-5'>臂</b>結(jié)合ROS2系統(tǒng)搭建<b class='flag-5'>機械</b>分揀站

    深度解析!RK3568 加持機械是如何實現(xiàn)顏色識別與抓取的?

    ;2、掌握機械識別顏色抓取積木的實現(xiàn)方法。三、實驗原理顏色識別抓取積木功能:實現(xiàn)識別出不同顏色的積木,機械夾取后并放在相應(yīng)的位置
    的頭像 發(fā)表于 01-15 08:07 ?687次閱讀
    深度解析!RK3568 加持<b class='flag-5'>機械</b><b class='flag-5'>臂</b>是如何實現(xiàn)顏色識別與抓取的?

    RK3568國產(chǎn)實驗箱+人工智能機械:跳舞、疊羅漢、夾方塊、積木搬運案例全解!

    基于語音控制實現(xiàn)機械特定動作的方法。三、實驗原理程序功能通過語音控制機械實現(xiàn)特定復(fù)雜動作:機械
    的頭像 發(fā)表于 12-12 19:01 ?1079次閱讀
    RK3568國產(chǎn)實驗箱+人工智能<b class='flag-5'>機械</b><b class='flag-5'>臂</b>:跳舞、疊羅漢、夾方塊、積木搬運案例全解!

    “雙保險”鎖緊機制:YM28系列連接器為機械提供高牢靠的大電流連接

    機械因其精準性、智能性、高效性等特點,在工業(yè)制造、物流倉儲、醫(yī)療手術(shù)等領(lǐng)域如魚得水、應(yīng)用甚廣。在機械大展身手的背后,其實有一股不可忽視的力量在支撐,那就是承擔(dān)電氣化連接的工業(yè)級連接
    的頭像 發(fā)表于 11-20 01:03 ?648次閱讀
    “雙保險”鎖緊機制:YM28系列連接器為<b class='flag-5'>機械</b><b class='flag-5'>臂</b>提供高牢靠的大電流連接

    機械的高效運作,連接器起關(guān)鍵作用

    了眾多危險、重復(fù)的工作。 機械的工作原理 ? ? ?機械運動控制是通過控制電機和傳動裝置來實現(xiàn)的。控制電機的作用是將電能轉(zhuǎn)換為
    的頭像 發(fā)表于 11-11 18:07 ?815次閱讀

    【原創(chuàng)】 drawbot 平面機械scara寫字畫畫機器人DIY教程貼

    /1CdGoDr8WFIMfic-iPf5Znw 提取碼:m1ov 項目簡介:桌面級scara機械,運動機構(gòu)為兩個42步進電機和一個9g舵機,控制板為mega 2560 和ramps 1.4,其他部件主要為3D打印件
    發(fā)表于 08-30 11:54

    OrangePi AIpro應(yīng)用:機械應(yīng)用開發(fā)指南

    2024世界人工智能大會上,香橙派攜OrangePiAIpro20T在世博展覽館H1-A301展區(qū)亮相,給大家?guī)鞟I+互動的沉浸式體驗。其中,搭載OrangePiAIpro開發(fā)板的智能機械吸引了
    的頭像 發(fā)表于 08-19 16:42 ?1064次閱讀
    OrangePi AIpro應(yīng)用:<b class='flag-5'>機械</b><b class='flag-5'>臂</b>應(yīng)用開發(fā)指南

    工業(yè)機器人和機械的設(shè)計、功能和應(yīng)用有哪些區(qū)別?

    自動化設(shè)備,專門用于在工業(yè)生產(chǎn)線或其他工業(yè)環(huán)境執(zhí)行各種操作任務(wù)。它們通常具備多軸關(guān)節(jié)結(jié)構(gòu),能夠在三維空間內(nèi)自由移動,并搭載各種工具、夾具或傳感器來完成特定的任務(wù)。 工業(yè)機器人和機械都屬于自動化設(shè)備,用于執(zhí)行
    的頭像 發(fā)表于 08-16 09:43 ?1039次閱讀

    奧比光推出2.0版大模型機械

    近期,奧比光研發(fā)團隊融合前沿多模態(tài)大模型技術(shù),推出最新2.0版大模型機械演示方案。新方案搭載公司最新深度相機Gemini 335L和Femto Bolt,能夠基于語音指令,自動執(zhí)行沏茶、插花、滴
    的頭像 發(fā)表于 07-19 16:50 ?1165次閱讀

    利用Matlab函數(shù)實現(xiàn)深度學(xué)習(xí)算法

    Matlab實現(xiàn)深度學(xué)習(xí)算法是一個復(fù)雜但強大的過程,可以應(yīng)用于各種領(lǐng)域,如圖像識別、自然語言處理、時間序列預(yù)測等。這里,我將概述一個基本的流程,包括環(huán)境設(shè)置、數(shù)據(jù)準備、模型設(shè)計、訓(xùn)練過程、以及測試和評估,并提供一個基于
    的頭像 發(fā)表于 07-14 14:21 ?3617次閱讀