前面,我們講了機械臂的運動學(kinematics)(點擊藍字查看):正向運動學和反向運動學。
正向運動學指的是在已知機械臂各個關(guān)節(jié)角度的情況下,推算end-effector(機械臂終端)的位置和方向(合稱pose)。反向運動學指的是在已知end-effector的位置和方向,推算各個機械臂的關(guān)節(jié)角度。我們主要研究反向運動學。
讓我們看一下基于反向運動學的控制邏輯圖:
在給出機械臂的end-effector的pose后,反運動學模塊計算出各個關(guān)節(jié)所需要的角度,然后通過電機產(chǎn)生力矩(torque)去執(zhí)行。在此期間,通過反饋(feedback)去消除一些控制誤差。
但是,事實上會有很多的干擾因素存在。例如:
地球引力(gravity)
慣量(inertia)
摩擦力(friction)
科里奧利力和離心力(Coriolis and centrifugal)
由于連桿之間是通過關(guān)節(jié)(joint)耦合在一起,連桿之間會有反作用力和反向慣量
以及一些人為的要求,例如:
我們想要機械臂運動的速度,按照我們預(yù)先的設(shè)定運行(velocity and acceleration)
我們想要求機械臂在觸碰外物時候做出安全保護(external force)
這些我們暫且稱之為disturbance(干擾),當然有些“干擾”是我們故意要求的,比如說需要按照預(yù)設(shè)軌跡的速度運行。加入“干擾”后的示意圖如下:
如果我們能提前計算出來這些“disturbance”,然后在控制環(huán)路中將它“抵消”(有時候也叫前饋控制)。這樣,就能使得機械臂“完美”運行了。讓我們再改一下控制邏輯圖:
為了計算這些“disturbance”。我們需要考慮幾個因素:
機械臂各個關(guān)節(jié)角度,即q
機械臂各個關(guān)節(jié)的速度,即qd(對q求導)
機械臂的各個關(guān)節(jié)的加速度,即qdd(對qd再次求導)
機械臂的質(zhì)量和各個連桿的重心點
有了這些因素,我們可以通過數(shù)學方法:
u=M(q)qdd + C(q,qd)qd +G(q)
求出所需要的力矩,其中M項代表克服了機械臂的加速度慣量以及不同連桿之間的慣量影響所需力矩、C項代表了克服科里奧利力和離心力所需力矩、G項代表了克服地球引力力矩。
其中Inverse Dynamics叫做反向動力學,它的作用是輸入想要的關(guān)節(jié)速度(qd)、關(guān)節(jié)加速度(qdd)、關(guān)節(jié)角度(q),輸出為每個關(guān)節(jié)所需要的力矩(u)。當然也有正向動力學(forward dynamics),它的作用和反向動力學相反,輸入關(guān)節(jié)角度(q)、關(guān)節(jié)速度(qd)、每個關(guān)節(jié)的力矩(u),輸出為每個關(guān)節(jié)的加速度(qdd)。
上述的控制邏輯圖,是一個“前饋控制”的例子,它的作用是預(yù)先計算出所需的力矩,輸入給控制器,“反饋”的存在是為了消除一些誤差,例如摩擦力和其他噪音。
總之,我們需要這么一個“動力學”模型,使得我們可以抵消各種不同的“disturbance”的影響 --- 慣量、地球引力、科里奧利力和離心力等等。另外,實際電機的功率是有限的,通過反向動力學我們也可以準確知道電機需要提供多少力矩,從而為電機選型提供參考依據(jù)。
下圖初略表示了end-effector – inverse kinematics – inverse dynamics之間的關(guān)系:
Robotics System Toolbox(RST)中的動力學算法
RST 提供了動力學方面的函數(shù)和Simulink block。
MATLAB函數(shù):
Simulink blocks:
讓我們看一個簡單的例子:
這是一個工作在2D空間的機器人。標明了各個結(jié)構(gòu)件的質(zhì)量、長度和重心。在靜止狀態(tài)下,兩個關(guān)節(jié)分別需要多大的力矩去抵消地球引力并支撐起這個機器人?
我們先一步步地構(gòu)造這個機器人:
然后加入重心、質(zhì)量:
然后在速度和加速度都是0的情況下,調(diào)用inverse Dynamics函數(shù)算出力矩:
tau =
20 10
很明顯,第一個關(guān)節(jié)要比第二個需要更大的力矩。
我們也可以用gravityTorque這個函數(shù)試一下,結(jié)果是相同的。
gravTorq =
20 10
如果我們將速度或者加速度改變一下,看看力矩的變化,例如:
相應(yīng)地,所需力矩也增大了。
tau =
30.5981 12.1340
Simulink 示例
在MATLAB Central File Exchange上搜索“Designing Robot Manipulator Algorithms”。
這是一個機械臂按運動軌跡抓取物體的例子:
在前面運動學算法中,我們也介紹了這個例子。當時我們用反向運動學(inverse kinematics)去計算end-effector的位置。這次我們用力矩控制的方式來重新看一下這個問題。這里有兩種方式供參考:
首先,inverse kinematics根據(jù)end-effector的位置,計算出各個關(guān)節(jié)(電機)所需要的角度位置,然后交給各個關(guān)節(jié)的電機去執(zhí)行。由于關(guān)節(jié)控制的是角度。所以叫Joint Space Control (即關(guān)節(jié)角度控制)。
前饋部分(feedforward)負責計算出所需力矩(用來抵消重力,按預(yù)定軌跡運動等等)。
反饋部分(feedback)用PID去消除誤差。
這個做法是直接控制end-effector的位置,并用PID去消除end-effector的位置誤差。也叫做task space control,即直接控制在XYZ空間(也叫笛卡爾坐標的位置)。
前饋部分只做一件事:計算抵消地球引力的力矩。
反饋部分用PID去控制end-effector的位置。然后用Jacobian矩陣將end-effector(在笛卡爾坐標)的力矩,轉(zhuǎn)化成各個關(guān)節(jié)的力矩。
Computed Torque Control
有了機械臂的動力學模型(dynamic model),我們可以應(yīng)用的控制方法有很多種。通常來說,反饋是必要的 – 可以消除控制誤差和一些噪音。從力矩計算的角度來看,可以做:
力矩前饋控制。剛才兩個例子都是將計算好的力矩做前饋。由于機械臂的移動速率遠遠小于電機控制速率,所以計算力矩的頻率并不高。比如說,電機的控制頻率為5K Hz,前饋力矩計算的頻率大約是50Hz。對控制器的硬件要求不高。
計算力矩控制(computed torque control)。computed torque control工作在較高的控制頻率上(例如1K Hz),要比力矩前饋控制頻率高的多。對控制器硬件要求較高。
Simulink提供dynamics方面的blocks,可以方便地搭出computed torque controller:
computed torque controller的輸入:
q,機械臂關(guān)節(jié)角度
qd,預(yù)設(shè)的機械臂關(guān)節(jié)要達到的角度 (desired q)
dq,機械臂關(guān)節(jié)速度,即對q求導
dqd,預(yù)設(shè)的機械臂關(guān)節(jié)要達到的速度 (desired)
ddqd,預(yù)設(shè)的機械臂關(guān)節(jié)要達到的加速度 (desired )
computed torque controller的輸出:
u,機械臂各個關(guān)節(jié)的力矩
有了computed torque controller我可以做出比較復(fù)雜的控制系統(tǒng),例如一方面要求機械臂按預(yù)定的trajectory(含角度、速度、加速度等信息)運行;一方面又要求機械臂遭受外力干擾后改變運行軌跡(trajectory)。
如果感興趣,可以看MATLAB自帶的“Perform Safe Trajectory Tracking Control Using Robotics Manipulator Blocks”這個例子。機械臂在碰到遮擋的硬物,改變預(yù)設(shè)的運行軌跡,保證運行安全。
-
控制器
+關(guān)注
關(guān)注
114文章
17038瀏覽量
183441 -
電機
+關(guān)注
關(guān)注
143文章
9272瀏覽量
148783 -
動力學
+關(guān)注
關(guān)注
0文章
108瀏覽量
17221
發(fā)布評論請先 登錄
GZCOM-NET:為機械臂測試帶來高效無線解決方案!

大象機器人攜手進迭時空推出 RISC-V 全棧開源六軸機械臂產(chǎn)品
海康威視推出大模型機械臂防碰撞相機
如何使用PLC控制myCobot 320機械臂

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

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

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

機械臂的高效運作,連接器起關(guān)鍵作用
【原創(chuàng)】 drawbot 平面機械臂scara寫字畫畫機器人DIY教程貼
OrangePi AIpro應(yīng)用:機械臂應(yīng)用開發(fā)指南

工業(yè)機器人和機械臂的設(shè)計、功能和應(yīng)用有哪些區(qū)別?
奧比中光推出2.0版大模型機械臂
利用Matlab函數(shù)實現(xiàn)深度學習算法
大象機器人開源協(xié)作機械臂機械臂接入GPT4o大模型!

評論