天天看點

delta機器人與matlab仿真(一)

delta機器人與matlab仿真(一)

    • delta機器人描述
    • 運動分析
    • matlab實作

delta機器人描述

Delta 機器人是典型的空間三自由度(X,Y,Z平移運動)的并聯機構,特點是自重負荷與機械臂相比比較小,動态性能好,承載力強,運作速度快。

delta機器人與matlab仿真(一)

一般右三個電機,三對主機械臂和三對副機械臂組成和機械爪。

因為3個機械臂都是平行四邊形機構是以下方機械爪的運動隻能實作平移運動,保證運動中機械爪的平行。

delta機器人與matlab仿真(一)

這裡說明下為什麼能一直保證機械爪的平行,首先使用sw進行模組化友善了解。

假設其中一個機械臂的四邊形為ABCD另外幾個機械臂為A’B’C’D’,A’‘B’‘C’‘D’’。

設上平面為S1,下平面為S2

∵ A B / / C D , A ′ B ′ / / C ′ D ′ , A ′ ′ B ′ ′ / / C ′ ′ D ′ ′ ∵AB//CD,A'B'//C'D',A''B''//C''D'' ∵AB//CD,A′B′//C′D′,A′′B′′//C′′D′′

∵ C D , C ′ D ′ , C ′ ′ D ′ ′ ∈ S 2 , A B . A ′ B ′ , A ′ ′ B ′ ′ ∈ S 1 ∵CD,C'D',C''D''∈S_2,AB.A'B',A''B''∈S_1 ∵CD,C′D′,C′′D′′∈S2​,AB.A′B′,A′′B′′∈S1​

∴ S 2 / / S 1 ∴S_2 // S_1 ∴S2​//S1​

是以可以知道機器人在運動過程中上下平面是始終平行的且不會發生旋轉。

運動分析

這裡先考慮一個機械臂的運動過程

delta機器人與matlab仿真(一)

以上平面的中心為原點O即為(0,0,0),機械臂的三個關節處分别為A,B,C。關節A處AB與Z軸的夾角為α 。OA=a,AB=b,BC=c,CO’=d,OO’=o。下底闆中心為(x’,y’,z’),A=(x1,y1,z1),B=(x2,y2,z2),C=(x3,y3,z3),這裡設a,b向量都在面XoZ内,是以y1=0,y2=0。

∴ o ⃗ = a ⃗ + b ⃗ + c ⃗ + d ⃗ ∴ \vec o=\vec a+\vec b+\vec c+\vec d ∴o

=a

+b

+c

+d

a = [ x 1 y 1 z 1 ] b = [ x 2 − x 1 0 z 2 − z 1 ] c = [ x 3 − x 2 y 3 z 3 − z 2 ] d = [ x ′ − x 3 y ′ − y 3 z ′ − z 3 ] a= \begin{bmatrix} x_1 \\ y_1 \\ z_1 \\ \end{bmatrix} b=\begin{bmatrix} x_2-x_1 \\ 0\\ z_2-z_ 1\\ \end{bmatrix} c=\begin{bmatrix} x_3-x_2 \\ y_3 \\ z_3-z_ 2\\ \end{bmatrix} d=\begin{bmatrix} x'-x_3 \\ y'-y_3 \\ z'-z_ 3\\ \end{bmatrix} a=⎣⎡​x1​y1​z1​​⎦⎤​b=⎣⎡​x2​−x1​0z2​−z1​​⎦⎤​c=⎣⎡​x3​−x2​y3​z3​−z2​​⎦⎤​d=⎣⎡​x′−x3​y′−y3​z′−z3​​⎦⎤​

x 1 = ∣ a ∣ , x 2 = ∣ a ∣ + s i n α ⋅ ∣ b ∣ , x 3 = x ′ + ∣ d ∣ x_1=|a|,x_2=|a|+sinα·|b|,x_3=x'+|d| x1​=∣a∣,x2​=∣a∣+sinα⋅∣b∣,x3​=x′+∣d∣

z 1 = 0 , z 2 = c o s α ⋅ ∣ b ∣ , z 3 = z ′ z_1=0,z_2=cosα·|b|,z_3=z' z1​=0,z2​=cosα⋅∣b∣,z3​=z′

y 1 = y 2 = 0 , y 3 = y ′ y_1=y_2=0,y_3=y' y1​=y2​=0,y3​=y′

∴ c = [ x ′ + ∣ d ∣ − ∣ a ∣ + s i n α ⋅ ∣ b ∣ y ′ z ′ − c o s α ⋅ ∣ b ∣ ] , 且 長 度 等 于 ∣ c ∣ ∴c=\begin{bmatrix} x'+|d|-|a|+sinα·|b| \\ y' \\ z'-cosα·|b|\\ \end{bmatrix},且長度等于|c| ∴c=⎣⎡​x′+∣d∣−∣a∣+sinα⋅∣b∣y′z′−cosα⋅∣b∣​⎦⎤​,且長度等于∣c∣

∴ α = a s i n ( ( x ′ + ∣ d ∣ − ∣ a ∣ ) 2 ) + y ′ 2 + z ′ 2 + ∣ b ∣ 2 − ∣ c ∣ 2 2 z ′ 2 + ( x ′ + ∣ d ∣ − ∣ a ∣ ) 2 ) ) − φ , φ = a s i n ( z ′ 2 z ′ 2 + ( x ′ + ∣ d ∣ − ∣ a ∣ ) 2 ) ) , 且 α ∈ ( 0 , π ) ∴α=asin(\frac{(x'+|d|-|a|)^2)+y'^2+z'^2+|b|^2-|c|^2}{2\sqrt{z'^2+(x'+|d|-|a|)^2)}})-φ,φ=asin(\frac{z'^2}{\sqrt{z'^2+(x'+|d|-|a|)^2)}}),且α∈(0,π) ∴α=asin(2z′2+(x′+∣d∣−∣a∣)2)

​(x′+∣d∣−∣a∣)2)+y′2+z′2+∣b∣2−∣c∣2​)−φ,φ=asin(z′2+(x′+∣d∣−∣a∣)2)

​z′2​),且α∈(0,π)

matlab實作

通過上面分析已經得到其中一個機械臂和最終左邊之間的關系,對另外兩個臂就不分别計算了,直接使用對z軸的旋轉矩陣,兩個機械臂分别旋轉120°和-120°來計算即可。這裡沒有使用matlab自帶的解矩陣的方式進行求解是因為代碼之後要移植到32上是以就直接求出了解。

delta機器人與matlab仿真(一)

這裡最後用matlab實作的末端做一個圓周運動。

模型:https://download.csdn.net/download/liujianxin828/10942332

代碼:https://download.csdn.net/download/liujianxin828/10942326

繼續閱讀