1. 程式人生 > >機器人學,機器視覺與控制學習筆記——機械臂運動學

機器人學,機器視覺與控制學習筆記——機械臂運動學

運動學是力學的一個分支,他在不考慮外力和質量的前提下研究一個物體。機械臂是由一組成為連桿的剛體組成的,連桿之間由關節連線。 分析機械臂運動學的第一步是根據機械臂的構造建立連桿座標系,連桿座標系最常用的方法就是D-H法, D-H法 首先根據下圖確定每個關節座標系的方向,對於轉動關節,zi-1軸在轉軸上,xi-1軸在z-1i軸和zi軸的公垂線上,方向由zi-1指向zi,Y軸方向自然確定。
ai-1是zi-1到zi沿xi-1的距離 αi-1是zi-1到zi繞xi-1的角度 di是xi-1到xi沿zi的距離 θi是xi-1到xi繞zi的角度 所以從關節i-1到關節i的座標系變換可以看成,座標系{i-1}繞xi-1旋轉αi-1,再沿沿xi-1移動ai-1,再繞zi旋轉θi,最後沿zi移動di變換為座標系{i}。 把每個關節都如上處理就可以列出D-H表
把表中資料帶入連桿變換矩陣公式中就可以得到每個連桿的變換矩陣
最後把每個關節的變換矩陣相乘就能得到總變換矩陣
例如下面這個機械臂,他由5個關節,從下面開始分別為轉動,移動,移動,轉動,轉動。
連桿座標系如下
根據連桿座標系可列出D-H表
構建
i
αi-1 ai-1 di θi 變數範圍
1 0 0 θ1 0~360°
2 0 d2 180° 30~270mm
3 -90° a270mm d3 90° 190~340mm
4 -90° a368mm 0 θ4(-90°) 0~-180°
5 90° 0 d5105mm θ5(90°) 0~360°
本書中的工具箱提供了很好的視覺化工具 其中幾個常用的函式有 L(1) = Link([0 0 1 0]);%根據D-H法定義一個連桿 L(2) = Link([0 0 1 0]);
two_link = SerialLink(L, 'name', 'two link');%這個函式可以把定義好的連桿組成一個機械臂 %所以輸入這個值會出現他的D-H表 >> two_link two_link = two link (2 axis, RR, stdDH) +---+-----------+-----------+-----------+-----------+ | j | theta | d | a | alpha | +---+-----------+-----------+-----------+-----------+ | 1| q1| 0| 1| 0| | 2| q2| 0| 1| 0|
+---+-----------+-----------+-----------+-----------+ 工具箱中有已建好的PUMA560機械臂 mdl_puma560%呼叫機械臂引數 >> p560%出現D-H表 p560 = Puma 560 (6 axis, RRRRRR, stdDH) Unimation; viscous friction; params of 8/95; +---+-----------+-----------+-----------+-----------+ | j | theta | d | a | alpha | +---+-----------+-----------+-----------+-----------+ | 1| q1| 0| 0| 1.571| | 2| q2| 0| 0.4318| 0| | 3| q3| 0.15| 0.0203| -1.571| | 4| q4| 0.4318| 0| 1.571| | 5| q5| 0| 0| -1.571| | 6| q6| 0| 0| 0| +---+-----------+-----------+-----------+-----------+ 內部已定義了四個特殊位姿 qz (0, 0, 0, 0, 0, 0) qr (0, π /2, −π/2, 0, 0, 0) qs (0, 0, −π /2, 0, 0, 0) qn (0, π/4 , −π, 0,π/4 , 0) p560.plot(qz)%對應的輸入這個函式就能畫出機械臂的構型 對應構型如下



T = p560.fkine(qn)%可以求出這個構型的變換矩陣 qi = p560.ikine6s(T)%運動學反解
從影子可以明顯發現,末端的位姿一致,但機械臂的構型不同,說明同一位姿對應兩個構型,運動學反解不是唯一的。 如果能給出末端的軌跡,可以通過工具箱觀察PUMA560的運動過程 >> T1 = transl(0.4, 0.2, 0) * trotx(pi);%初始變換矩陣 >> T2 = transl(0.4, -0.2, 0) * trotx(pi/2);%最終變換矩陣 >> q1 = p560.ikine6s(T1);%求廣義變數 >> q2 = p560.ikine6s(T2); >> t = [0:0.05:2]';%兩秒內40步完成 >> q = jtraj(q1, q2, t);%通過插值函式得到軌跡 p560.plot(q)%生成動畫 qplot(t, q);%給出每個關節的運動曲線

相關推薦

機器人學機器視覺控制學習筆記——機械運動學

運動學是力學的一個分支,他在不考慮外力和質量的前提下研究一個物體。機械臂是由一組成為連桿的剛體組成的,連桿之間由關節連線。 分析機械臂運動學的第一步是根據機械臂的構造建立連桿座標系,連桿座標系最常用的方法就是D-H法, D-H法 首先根據下圖確定每個關節座標系的方向,對

機器人學機器視覺控制學習筆記——緒論

學習本書及使用本書需要以下本科水平的前期知識:線性代數(矩陣、向量、特徵值),基礎集合論,基礎圖論,概率論,動力學(力、力矩、慣量),拉普拉斯變換和傳遞函式、線性控制(比例控制,比例微分控制、比例積分控制)及控制框圖繪製。另外要求能比較熟練的掌握matlab程式設計,以及面向物件的程式設計技術(如C++,Ja

機器人學機器視覺控制:MATLAB算法基礎pdf

算法基礎 顏色 file 驅動器 分類 int otto 力學 平滑 下載地址:網盤下載 內容簡介本書是關於機器人學和機器視覺的實用參考書, 第一部分“基礎知識”(第2章和第3章)介紹機器人及其操作對象的位置和姿態描述,以及機器人路徑和運動的表示方法;第二部分“移動機器人”

Linux之併發競態控制學習筆記

如何解決競態問題? 保證對共享資源的互斥訪問,指一個執行單元在訪問共享資源的時候,其他的執行單元被禁止訪問。 Linux裝置驅動中可採用的互斥途徑:中斷遮蔽、原子操作、自旋鎖、訊號量以及completion。 中斷遮蔽可以解決中斷與程序之間的併發,也可以解決核心搶佔程序之間的併發。

[計算機視覺:演算法應用]學習筆記一:影象形成

1. 2D點可以利用一對值(x,y)來表示,也可以利用齊次座標來表示,那麼什麼是齊次座標?用齊次座標表示有什麼優勢? #二維點(x,y)的齊次座標表示為(hx,hy,h)。由此可以看出,一個向量的齊

Hibernate4Spring4整合使用Junit4測試相關學習筆記

一、在myeclipse中建立web project 1.匯入Hibernate4.1與Spring4.1的Libraries。其中myeclipse自帶的spring libraries中缺少spring-test.jar包,需要自己從網上下載。mysql與c3p

FPGA機器學習之資料探勘影象處理機器視覺模式識別人工智慧機器學習的關係

資料探勘:          資料探勘從字面上就已經很好理解了,就是從一堆資料中,挖掘出一些有用的資訊來的過程。比如說,我們的搜尋資料,如果某個地區大部分人都在搜尋MH370,表示他們在關注這個事情。我們就可以推薦一些安全知識,飛機知識過去。同樣的也可能會有蠟燭銷售高潮

Mohican_2/4 連結裝載學習筆記— 溫故而知新 計算機硬體基本結構

第一章 計算機軟硬體基本結構 引言: 本章是對於計算機軟硬體的基本瞭解和回顧,包括大致如下內容: ü  CPU與外部件的連線 ü  計算機軟硬體層次結構 ü  SMP與多核 ü  作業系統,虛擬空間,物理空間 ü  多訊號 PV原語的理解 ü  對於執行緒和程序的理解,和

肝了很久冰河整理出這份4萬字的SpringCloudSpringCloudAlibaba學習筆記!!

# 寫在前面 不少小夥伴讓我整理下有關SpringCloud和SpringCloudAlibaba的知識點,經過3天的收集和整理,冰河整理出這份4萬字的SpringCloud與SpringCloudAlibaba學習筆記!! 文章已收錄到: [https://github.com/sunshinelyz

系統分析設計學習筆記(一)

學習 掌握 應該 溝通 基本 最終 表示 對象 毫無 為什麽要學習這門課程?   “擁有一把錘子未必能成為建築師”。 這門課程學習的是面向對象分析和設計的核心技能的重要工具。對於使用面向對象技術和語言來,創建設計良好、健壯且可維護的軟件來說,這門課程所

C#委托事件學習筆記

調用函數 msdn http msd proc for reac .net 委托方 今天跟隨視頻學習了一下C#中最重要的一些概念之委托與事件。老楊的視頻講的還是挺深入淺出,不過剛接觸C#.NET的人還是朦朦朧朧,就像張子陽先生說的“每次見到委托和事件就覺得心裏別

人生苦短我用Python---Python學習筆記之一

http style ... idt logs .py 程序員 tex 環境 Python基礎語法 這一篇文章是寶寶自己寫的哦,哼,不經同意,不準轉載,略略略........ The first 寶寶用的版本是Python2.7,環境配置啥的,網上的教程

GitHub入門實踐 學習筆記(一)

lac 連接 創建分支 rap 自動 成功 -- repo 哈希 Pull Request 是指開發者在本地對源代碼進行更改後,向 GitHub中托管的 Git 倉庫請求合並的功能。 GitHub 的 Pull Request 不但能輕松查看源代碼的前後差別,還可以對

重定向 302 localhost 學習筆記

重定向 302 與localhost 學1、新建工程: import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpS

FPGA-UART協議實現學習筆記

比特 系統 多少 rs232 計算 計數 時鐘 部分 寄存器 上一段時間學習了一下FPGA,現在寫一些學習心得,以及自已在學習的過程之中遇到的一些問題。 首先介紹一下UART(Universal Asynchronous Receiver/Trans

opencv 視覺項目學習筆記(二): 基於 svm 和 knn 車牌識別

its ++ eas -a rect() repr poi obj std 車牌識別的屬於常見的 模式識別 ,其基本流程為下面三個步驟: 1) 分割: 檢測並檢測圖像中感興趣區域; 2)特征提取: 對字符圖像集中的每個部分進行提取; 3)分類: 判斷圖像快是不是車牌或者 每

集合MapHashMap、TreeMap+JAVA學習筆記-DAY18

18.01_集合框架(Map集合概述和特點) A:Map介面概述 檢視API可以知道: 將鍵對映到值的物件 一個對映不能包含重複的鍵 每個鍵最多隻能對映到一個值 B:Map介

CG-曲線曲面-學習筆記

一、連續性 1. 引數連續性 0階引數連續性(C0):是指曲線的幾何位置連線,即第一個曲線段的終點與第二個曲線段的起點x,y,z值相等; 1階引數連續性(C1):在C0的基礎上,該始末點的導數相等; 2階引數連續性(C2):在C1的基礎上,該始末點的二階導相等; 2. 幾何連續性(條件不太苛刻)

C#委託事件學習筆記

委託事件學習筆記 本文是學習委託和事件的筆記,水平有限,如有錯漏之處,還望大神不吝賜教。 什麼是委託?從字面意思來解釋,就是把一個動作交給別人去執行。在實際開發中最常用的就是使一個方法可以當做一個引數傳遞,以便在方法中可以根據實際情況實現不同的功能。 什麼是事件?事件就是發生的事情,例如點選了一

採用大資料的商業動機驅動 ------ 學習筆記

概念: 架構:架構是針對某種特定目標系統的具有體系性的、普遍性的問題而提供的通用的解決方案 業務架構是基於業務導向和驅動的架構來理解、分析、設計、構建、整合、擴充套件、執行和管理資訊系統,比如業務架構體系認為一個資訊系統必須由組織機構、業務流程、業務資訊、業務功能、和業務語義等層次構成。為實