日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器人原理与实践(三)】六轴机械臂正逆解控制

發(fā)布時間:2024/3/24 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器人原理与实践(三)】六轴机械臂正逆解控制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 3.1 空間轉(zhuǎn)換矩陣的理解
      • 3.1.1平移變換
      • 3.1.2旋轉(zhuǎn)變換
    • 3.2 D-H參數(shù)法
    • 3.3 建立機械臂模型
      • 3.3.1 機械臂模型介紹
      • 3.3.2 使用Matlab進行示教仿真
    • 3.4 機器人運動學(xué)
      • 3.4.1 機器人正運動學(xué)
      • 3.4.2機器人逆運動學(xué)
    • 3.5 機械臂運動過程分析
    • 3.6 本章小結(jié)

本章針對機械臂的運動學(xué)進行建模分析。機械臂運動學(xué)模型反映的是個關(guān)節(jié)的角度與執(zhí)行器末端位姿之間的映射關(guān)系。在工業(yè)過程中需要考慮的根據(jù)期望位姿推導(dǎo)關(guān)節(jié)角度(機械臂逆解),以及根據(jù)現(xiàn)有的關(guān)節(jié)角度推導(dǎo)末端執(zhí)行器位姿(機械臂正解)。

3.1 空間轉(zhuǎn)換矩陣的理解

3.1.1平移變換

3.1.2旋轉(zhuǎn)變換

除了位置之外,還需要對剛體的指向,即姿態(tài)進行描述。而這也是旋轉(zhuǎn)矩陣最本質(zhì)的來源,即來源于 坐標系的旋轉(zhuǎn),這一部分理解不好或是理解不透徹,會導(dǎo)致此后面對各種形式的旋轉(zhuǎn)時出現(xiàn)混亂,所以公式將進行詳細的表述。

描述姿態(tài)的方式就是為剛體建立一個固連于剛體的標準正交坐標系,并由 其相對于參考坐標系的 單位向量 在參考坐標系中的描述 來表示。如上圖所示,剛體的局部固連參考系為o-xyz,其局部固連參考系坐標系的單位向量為(x,y,z),而這局部坐標系的單位向量在參考坐標系 O?xyz 中的表示為:

可以進行進一步的整理,即上式等價于:

最后一個矩陣就是兩個坐標系基之間的關(guān)系,即兩個坐標系之間的轉(zhuǎn)換關(guān)系,將這個矩陣定義為旋轉(zhuǎn)矩陣

結(jié)合上面兩種變換可以得到三維空間變換的一般形式:

用這個4X4的矩陣就可以描述四個機械臂末端相對于機械臂位置的變換,而當你將機械臂的起始坐標設(shè)置為(0,0,0)你就可以直接通過上述矩陣確定機械臂的末端位姿。(px,py,pz)將直接反應(yīng)機械臂末端所直接對應(yīng)的坐標。而n,o,a將直接反應(yīng)機械臂末端坐標系相對于機械臂基座坐標系所發(fā)生的的旋轉(zhuǎn)。

3.2 D-H參數(shù)法

D-H參數(shù)法是Denavit和Hartenberg在他們1955年提出的一種機器人的建模方法。該方法看似簡單,但是通用性很強,雖然年代久遠,但仍然是推導(dǎo)機器人運動學(xué)方程的標準方法。
機械臂通常有多個關(guān)節(jié)組成。D-H參數(shù)法在這些關(guān)節(jié)處以一定的規(guī)則建立參考,然后找到兩兩相鄰的關(guān)節(jié)坐標系之間的轉(zhuǎn)換關(guān)系,就是說在建立了坐標系的約束下,有限次的平移的旋轉(zhuǎn)運動可以使用一個齊次矩陣表示這種轉(zhuǎn)換關(guān)系。只要將相應(yīng)的轉(zhuǎn)換矩陣相乘,就可以得到任意兩個關(guān)節(jié)坐標系的位置關(guān)系。在實際應(yīng)用中,僅僅需要第一關(guān)節(jié)與最后一個關(guān)節(jié)的轉(zhuǎn)換關(guān)系,就可在首關(guān)節(jié)確定的情況下確定末端執(zhí)行器位姿。

以上圖為例從關(guān)節(jié)n+1到關(guān)節(jié)n+2:
繞z軸轉(zhuǎn)θ_(n+1),使x_n軸和x_(n+1)軸相互平行。
延z軸平移d_(n+1),使x_n軸和x_(n+1)軸共線。
延x軸平移a_(n+1),使x_n軸和x_(n+1)軸原點重合。
z_n軸繞x_(n+1)軸旋轉(zhuǎn)旋轉(zhuǎn)α_(n+1)角度,使z_n z_(n+1)重合。
相鄰坐標系之間的變換都可以遵循以上步驟:
繞z軸轉(zhuǎn)θ_(n+1):

延z軸平移d_(n+1):

延x軸平移a_(n+1):

z_n軸繞x_(n+1)軸旋轉(zhuǎn)旋轉(zhuǎn)α_(n+1)角度:

總變換矩陣為以上矩陣按順序相乘

這就是任意相鄰坐標系之間轉(zhuǎn)換矩陣的通式。根據(jù)上述描述可以很容易的發(fā)現(xiàn),使用D-H參數(shù)法建立機械臂運動學(xué)方程,關(guān)鍵在于要根據(jù)具體的機械臂建立合適點的關(guān)節(jié)坐標系。建立這樣的一個關(guān)節(jié)坐標系需要四個關(guān)鍵參數(shù),即θ,d,a,α, 這些參數(shù)就是機械臂的D-H參數(shù),我們也可以根據(jù)這些參數(shù)使用Matlab進行相關(guān)的仿真。

3.3 建立機械臂模型

3.3.1 機械臂模型介紹


這是一個簡單的六軸機械臂

圖3.5 簡化圖片

經(jīng)過測量以后得到機械臂的D-H參數(shù)表:

表格 3.1 D-H參數(shù)表

序號θdaα
0-1θ1580pi/2
1-2θ2+pi/20550
2-3θ30550
3-4θ40550

使用Matlab 機器人工具箱構(gòu)建仿真
L(1) = Link([ 0, d(1), aa(1), alpha(1),0,offset(1) ]);
L(2) = Link([ 0, d(2), aa(2), alpha(2) ,0,offset(2) ]);
L(3) = Link([ 0, d(3), aa(3), alpha(3),0,offset(3) ]);
L(4) = Link([ 0, d(4), aa(4), alpha(4),0,offset(4) ]);

結(jié)合表3.1與公式2.4結(jié)合Matlab得到A1-A6所有的轉(zhuǎn)換矩陣,與總的轉(zhuǎn)換矩陣:


那么該機械臂的正運動學(xué)方程即為以上4個矩陣按順序乘積,由于結(jié)構(gòu)太過于復(fù)雜這里不直接列出了A04=A01A12A23*A34;

在得到旋轉(zhuǎn)矩陣之后,根據(jù)以下公式就可求出末端執(zhí)行器的位姿

這里有四個旋轉(zhuǎn)角,在D-H參數(shù)已知的情況下,該運動學(xué)方程的計算結(jié)果就是機械臂末端相對機械臂底端坐標系的位姿矩陣。

3.3.2 使用Matlab進行示教仿真

3.4 機器人運動學(xué)

3.4.1 機器人正運動學(xué)

關(guān)于機械臂的正運動學(xué)問題,可以調(diào)用Robotics工具箱中的fkine函數(shù)進行求解。函數(shù)調(diào)用的一般形式為T=R.fkine{Q},其中R表示機械臂模型,T為前向運動的正解,Q為機械臂四個關(guān)節(jié)的角度值。
取Q1=[pi/5,-pi/3.pi/2.-pi/4],帶入fkine函數(shù),或者直接帶入公式1計算的矩陣的到一個齊次變換矩陣如下:
T =

-1 0 0 -1300 0 -1 00 -1 0 1130 0 0 1

可以得到仿真圖像:


根據(jù)得到的圖像結(jié)合實際可以確定,我們做出的正向運動學(xué)仿真大致是正確的。

3.4.2機器人逆運動學(xué)

[4]我們已經(jīng)看到了前向運動學(xué)問題。逆運動學(xué)問題更有趣,其解決方案更有用。在位置層面,問題表述為:“考慮到機器人手部的理想位置,所有機器人關(guān)節(jié)的角度必須是什么?”。人類一直在解決這個問題,甚至沒有想到它。當你早上吃麥片時,你只需伸手拿起勺子。你不會想,“我的肩膀需要這樣做,我的肘部需要這樣做,等等。” 下面我們將看看大多數(shù)機器人如何解決這個問題。我們將從一個非常簡單的例子開始:
將機械臂的末端指向(-130,0,113)
對于機器人逆運動學(xué)的問題同樣可以使用工具箱中的ikine函數(shù)解決這個問題。
可以在指定轉(zhuǎn)化函數(shù)p的情況下輸入,得到所有關(guān)節(jié)的角度向量:
q=bot.ikine(p,‘mask’,[1 1 1 1 0 0])
figure(2);
bot.plot(q)

p =

-1 0 0 -1300 0 -1 00 -1 0 1130 0 0 1

q =
0.0000 0.1111 1.0963 0.6225

當然只用MATLAB是沒有用的我們必須使用可以在開發(fā)板上運行的語言重新實現(xiàn)這樣的效果。
這樣的逆解問題本質(zhì)上其實是解方程的問題,我們可以將上面的問題轉(zhuǎn)換為:
我們需要達到的效果是已知x,y,z(機械臂末端坐標),我們需要計算出th1,th2,th3,th4
通過三個算式四個未知數(shù)顯然是不太可能的,所以可以指定出th4也就是末端角度以后解算下面的方程。

eq1=75*sin(th4)*(cos(th1)*sin(th2)*sin(th3)-cos(th1)*cos(th2)*cos(th3)) -75*cos(th4)*(cos(th1)*cos(th2)*sin(th3) + cos(th1)*cos(th3)*sin(th2)) - 55*cos(th1)*sin(th2) - 55*cos(th1)*cos(th2)*sin(th3) - 55*cos(th1)*cos(th3)*sin(th2)==x;eq2= 75*sin(th4)*(sin(th1)*sin(th2)*sin(th3) - cos(th2)*cos(th3)*sin(th1)) - 75*cos(th4)*(cos(th2)*sin(th1)*sin(th3) + cos(th3)*sin(th1)*sin(th2)) - 55*sin(th1)*sin(th2) - 55*cos(th2)*sin(th1)*sin(th3) - 55*cos(th3)*sin(th1)*sin(th2)==y;eq3= 55*cos(th2) + 55*cos(th2)*cos(th3) - 55*sin(th2)*sin(th3) + 75*cos(th4)*(cos(th2)*cos(th3) - sin(th2)*sin(th3)) - 75*sin(th4)*(cos(th2)*sin(th3) + cos(th3)*sin(th2)) + 58==z;[th1,th2,th3] = solve(eq1,eq2,eq3,th1,th2,th3);

基于這樣的方程解算通過python實現(xiàn):

def changeto(x,y,z,th4,pwm):th4=th4*3.14/180def solve_function(unsolved_value):th1,th2,th3=unsolved_value[0],unsolved_value[1],unsolved_value[2]return [75*sin(th4)*(cos(th1)*sin(th2)*sin(th3) - cos(th1)*cos(th2)*cos(th3)) - 75*cos(th4)*(cos(th1)*cos(th2)*sin(th3) + cos(th1)*cos(th3)*sin(th2)) - 55*cos(th1)*sin(th2) - 55*cos(th1)*cos(th2)*sin(th3) - 55*cos(th1)*cos(th3)*sin(th2)-x,75*sin(th4)*(sin(th1)*sin(th2)*sin(th3) - cos(th2)*cos(th3)*sin(th1)) - 75*cos(th4)*(cos(th2)*sin(th1)*sin(th3) + cos(th3)*sin(th1)*sin(th2)) - 55*sin(th1)*sin(th2) - 55*cos(th2)*sin(th1)*sin(th3) - 55*cos(th3)*sin(th1)*sin(th2)-y,55*cos(th2) + 55*cos(th2)*cos(th3) - 55*sin(th2)*sin(th3) + 75*cos(th4)*(cos(th2)*cos(th3) - sin(th2)*sin(th3)) - 75*sin(th4)*(cos(th2)*sin(th3) + cos(th3)*sin(th2)) + 58-z,]solved=fsolve(solve_function,[0, 0, 0])solved=solved*180/3.14 print(solved)

3.5 機械臂運動過程分析

機械臂的運動過程,也就是舵機驅(qū)動關(guān)節(jié)轉(zhuǎn)動的過程。過程如下:

(1)通過程序設(shè)置初始化各個脫機狀態(tài)。
(2)各個舵機轉(zhuǎn)動一定角度,使得長臂、斷臂和機械臂末端都處于水平位置,整個過程中 號舵機旋轉(zhuǎn)一定角度控制機械爪處于打開狀態(tài)。
(3)2號舵機旋轉(zhuǎn)一定角度,使長臂處于垂直狀態(tài),同時機械爪關(guān)閉。
(4)3號關(guān)節(jié)旋轉(zhuǎn)一定角度,使斷臂穿衣水平狀態(tài),通過機械爪打開。
(5)關(guān)閉機械爪。
(6)使機械臂回到初始狀態(tài)

3.6 本章小結(jié)

本章首先進行連桿坐標,使用并分析了 D-H 模型,并使用 MatLab 軟件進行了正反解的驗證,分析了機械臂運動學(xué)正逆解,并給出了仿真圖。通過Matlab計算出的算式直接應(yīng)用到python中,給出了在python中的正逆解算法。

總結(jié)

以上是生活随笔為你收集整理的【机器人原理与实践(三)】六轴机械臂正逆解控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 视频在线91 | 日本黄色免费在线观看 | 欧洲性生活片 | 九九热视频在线观看 | 国产无套内射普通话对白 | 久久久精品在线 | 欧美日韩不卡一区二区 | 成年人免费在线 | 久久久久亚洲av无码专区 | 手机在线看永久av片免费 | 六月色播| 亚洲欧洲综合在线 | 99热思思 | 特级淫片裸体免费看冫 | 国产xxxxx在线观看 | 青草久久网 | 97成人精品视频在线观看 | 性色av一区二区 | 91精品婷婷国产综合久久竹菊 | 精品一区二区三区入口 | 久久亚洲精品国产 | 亚洲婷婷丁香 | 亚洲AV永久无码国产精品国产 | 亚洲欧洲精品成人久久奇米网 | 中文人妻一区二区三区 | 国产伦精品一区二区三区高清版 | 亚洲精品电影在线观看 | 亚洲精品美女网站 | 欧美黄色a级片 | 国产成人超碰人人澡人人澡 | 自拍99页| 欧美色图校园春色 | 一级日批片 | 亚洲女人天堂 | 久久精品视频免费 | 精品国产一区二区三区性色 | 成人免费高清在线播放 | 男生坤坤放进女生坤坤里 | 99国产精品免费 | 三级黄色片网站 | 三级小视频在线观看 | 色呦呦网站在线观看 | 农村老妇性真猛 | 日韩在线视频免费观看 | 亚洲www在线观看 | 亚洲精品xxxxx | 久久精品视频免费播放 | 森泽佳奈在线播放 | 久操视频免费看 | 午夜dv内射一区二区 | 欧美一区二区三区久久妖精 | 又黄又爽的视频 | 一级黄色网| 高清国产一区二区 | 深夜福利网站 | 一区二区久久久 | 国产综合视频 | 色福利网 | 国产激情无套内精对白视频 | 国产成人短视频在线观看 | 久久国产视频精品 | 天天爽夜夜爽夜夜爽精品视频 | 99精品在线 | 在线播放国产精品 | 神马三级我不卡 | 少妇高潮一区二区三区99欧美 | 日韩大片免费在线观看 | 色黄大色黄女片免费中国 | 欧美图片第一页 | 毛茸茸日本熟妇高潮 | 成人av电影网站 | 国产欧美一区二区三区国产幕精品 | 青青草综合网 | 成年人视频网 | 日本一区不卡视频 | www日本www | wwwxxx亚洲| 97人人模人人爽人人少妇 | 黄色网址在线免费观看 | 哈利波特3在线观看免费版英文版 | 天堂va欧美ⅴa亚洲va一国产 | 亚洲综合久久av | 日韩乱码人妻无码系列中文字幕 | 污污视频在线观看网站 | 91视频免费看 | 国产三级在线 | 日韩一区二区三区高清 | 欧美另类精品 | 99久久综合国产精品二区 | 名校风暴在线观看免费高清完整 | 91成人在线观看国产 | 天天射综合 | 超碰97在线资源 | 久久精品99久久 | 97人妻人人澡人人爽人人精品 | 色综合av | 国产一线二线在线观看 | 久久av综合网 | 国产高清自拍av |