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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

基于MATLAB的机器人学、机器视觉与控制

發布時間:2023/12/16 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于MATLAB的机器人学、机器视觉与控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于MATLAB的機器人學、機器視覺與控制

  • 一、機械臂運動學
    • 1.描述一臺機械臂
    • 2.正運動學
    • 3.逆運動學
    • 4.軌跡

  • 參考書目:《機器人學、機器視覺與控制——MATLAB算法基礎》,Peter Corke
  • 準備工具:MATLAB,Robotics Toolbox[download],安裝方法參考[blog]

根據畢業設計的要求,本文主要討論機械臂動力學,視覺與控制

一、機械臂運動學

運動學是力學的一個分支,它在不考慮質量和作用力的前提下研究一個剛體,或者由多個剛體組成系統的運動。

1.描述一臺機械臂

一個串聯機械臂的整個鏈路是由一組被稱為連桿的剛體組成的,這些連桿由關節(運動副)連接起來。每個關節有一個平移(滑動或移動副)或者轉動(轉動副)的自由度。關節的運動改變了其鄰接連桿的相對角度和位置。

  • 使用工具箱中的 Link 對象來描述一個機器人連桿:
>> L = Link([0, 0.1, 0.2, pi/2, 0])L = Revolute(std): theta=q, d=0.1, a=0.2, alpha=1.5708, offset=0

輸入向量的元素按順序為:關節角,連桿偏移,連桿長度,連桿扭轉角;第五個元素未指定則默認為轉動關節。

  • 兩連桿機器人
    D-H 參數如下所示,用這些參數創建一個 Link 對象的向量 L:
>> L(1) = Link([0 0 1 0]); >> L(2) = Link([0 0 1 0]); >> LL = Revolute(std): theta=q1 d=0 a=1 alpha=0 offset=0 Revolute(std): theta=q2 d=0 a=1 alpha=0 offset=0

這個向量將被傳遞給構造函數 SerialLink:

>> two_link = SerialLink(L, 'name', 'two link')two_link = two link:: 2 axis, RR, stdDH, slowRNE +---+-----------+-----------+-----------+-----------+-----------+ | j | theta | d | a | alpha | offset | +---+-----------+-----------+-----------+-----------+-----------+ | 1| q1| 0| 1| 0| 0| | 2| q2| 0| 1| 0| 0| +---+-----------+-----------+-----------+-----------+-----------+

用以下指令,可以畫出機器人的圖形:

>> two_link.plot([0 0]) >> two_link.plot([pi/4 -pi/4])

  • 六軸機器人
    以 Puma 560 機器人為例,使用如下指令定義一個 Puma 560 機器人的實例(工具箱自帶模板指令來定義很多常見的工業機器人),它將在工作區中創建一個名為 p560 的 SerialLink 對象:
>> mdl_puma560 >> p560p560 = Puma 560 [Unimation]:: 6 axis, RRRRRR, stdDH, slowRNE - viscous friction; params of 8/95; +---+-----------+-----------+-----------+-----------+-----------+ | j | theta | d | a | alpha | offset | +---+-----------+-----------+-----------+-----------+-----------+ | 1| q1| 0| 0| 1.5708| 0| | 2| q2| 0| 0.4318| 0| 0| | 3| q3| 0.15005| 0.0203| -1.5708| 0| | 4| q4| 0.4318| 0| 1.5708| 0| | 5| q5| 0| 0| -1.5708| 0| | 6| q6| 0| 0| 0| 0| +---+-----------+-----------+-----------+-----------+-----------+

>> p560.plot(qz) >> p560.plot(qr) >> p560.plot(qs) >> p560.plot(qn)

2.正運動學


  • 兩連桿機器人 - planar2:
>> mdl_planar2 % 直接構造2連桿平面機器人,并創建名為 two_link 的 SerialLink 對象 >> two_link.fkine([0 0]) % q1 = 0, q2 = 0 時的變換矩陣ans = 1 0 0 20 1 0 00 0 1 00 0 0 1 >> two_link.fkine([pi/4 -pi/4]) % q1 = pi/4, q2 = -pi/4ans = 1 0 0 1.7070 1 0 0.70710 0 1 00 0 0 1
  • 六軸機器人 - Puma 560:
>> mdl_puma560 % 直接構造 Puma 560 機器人,并創建名為 P560 的 SerialLink 對象 >> p560.fkine(qz) % 零角度時的變換矩陣ans = 1 0 0 0.45210 1 0 -0.150 0 1 0.43180 0 0 1 >> p560.fkine(qn) % 標準狀態時的變換矩陣ans = 0 0 1 0.59630 1 0 -0.1501-1 0 0 -0.014350 0 0 1

3.逆運動學

給定期望的末端執行器位姿,求取所需的關節坐標。一般而言,逆運動學的解不是唯一的,而且對于某些類型的機械臂甚至沒有封閉形式的解存在,只能求出一個數值解

  • 封閉形式解 - ikine6s
    對于六軸機器人,其逆運動學具有封閉形式解的一個必要條件是:三個腕關節的軸相交于一個點。這意味著腕關節的運動只改變末端執行器的姿態,而不改變其位置
>> mdl_puma560 >> qn % 機器人標準狀態的關節坐標qn =0 0.7854 3.1416 0 0.7854 0>> T = p560.fkine(qn) % 標準狀態對應的末端執行器位姿T = 0 0 1 0.59630 1 0 -0.1501-1 0 0 -0.014350 0 0 1 >> qi = p560.ikine6s(T) % ikine6s 方法計算其逆運動學的封閉解,要實現位姿 T,所需的關節坐標為 qiqi =2.6486 -3.9270 0.0940 2.5326 0.9743 0.3734

由 qn 和 qi 的坐標比較可知,兩組不同的關節坐標值得到了相同的末端執行器位姿,這兩組坐標值對應的機器人位形如圖所示:


分別為左手運動學位形和右手運動學位形,一般來說,有8組不同的關節坐標值可以得到相同的末端執行器位姿

  • 數值解 - ikine
    對于不具有6個關節和球形腕關節的機器人,需要使用一種迭代數值解,使用 ikine 方法來計算一般逆運動學解:
>> mdl_puma560 >> qn % 機器人標準狀態的關節坐標qn =0 0.7854 3.1416 0 0.7854 0>> T = p560.fkine(qn) % 標準狀態對應的末端執行器位姿T = 0 0 1 0.59630 1 0 -0.1501-1 0 0 -0.014350 0 0 1 >> qi = p560.ikine(T) % ikine 方法計算其逆運動學的封閉解,要實現位姿 T,所需的關節坐標為 qiqi =-0.0000 -0.8335 0.0940 0.0000 -0.8312 -0.0000

4.軌跡

總結

以上是生活随笔為你收集整理的基于MATLAB的机器人学、机器视觉与控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。