matlab机械臂工作空间代码_[连载 5]Vrep--Matlab Robitic Toolbox--PUMA560机械臂控制
- [連載 0]Vrep入門介紹
- [連載 1]Vrep小車建模——前進和轉向
- [連載 2]Vrep小車建模——內嵌腳本
- [連載 3]Vrep小車建模——matlab控制
- [連載 4]Vrep導入三維模型——PUMA560機械臂
- [連載 5]Vrep--Matlab Robitic Toolbox--PUMA560機械臂控制
- [番外 1]Vrep小車機械臂抓取
- [Lib庫 1]CoppeliaSim差分避障小車的Simulink實現(B站視頻講解)
- [Lib庫 2]CoppeliaSim機械臂抓取的Simulink實現(B站視頻講解)
- 知乎專欄:Vrep機器人動力學建模仿真
大家如果完成了連載4的內容,接下來面臨的就是如何驅動機械臂了,那么這一節的主要目標就是全面介紹在Vrep、Matlab和Simulink中,如何使用Vrep自帶的Lua腳本和Matlab結合Peter Corke的Robitic Toolbox以及Simulink的VrepLib庫,來控制機械臂,完成一些有趣的運動。
前言
這篇文章距離上一篇文章時隔太久了,一方面是最近幾個月事情太多,沒有抽出太多時間;另一方面是準備一篇手把手的文字教程實在是很耗時間。所以這次我想稍微改變一下,文檔的內容我只列出提綱和大概的內容,完成的過程和講解通過錄制視頻來完成,這樣更加生動一些,這次先嘗試一下,看看大家的反饋吧^_^
本節教程需要大家熟悉 連載 2、連載 3這一節的內容,并要有基本的機械臂基礎知識,我這里主要是參考的這兩本書——《機器人學導論(原書第4版)》和《機器人學、機器視覺與控制――MATLAB算法基礎》。推薦大家入手這兩本書,是非常好用的工具書。
此教程是基于vrep 3.5.0版本制作的,初學可以先安裝此版本進行學習,后面再使用更新的版本。(舊版下載鏈接:鏈接:https://pan.baidu.com/s/1PIl5t-Pwx2dawOIHfzDelA提取碼:qirx)
本節介紹
本節主要分為三個部分:
本節的知識容量比較大,但是可以歸為三個部分且互相獨立,大家可以根據自己的需求進行選擇學習。第一部分:內容1和2是基于vrep自身的編程工具實現的;第二部分:內容2和3是基于Vrep與Matlab的接口以及Matlab Robitic Toolbox實現的;第三部分:內容4是基于我自己的寫的Vrep的Simulink工具箱——VrepLib實現的,給大家介紹一下基于Simulink非常簡便的Vrep控制流程的開發。完整的例程模型請點擊購買
基礎知識
對于機械臂的操作來說,大家必須具備一些基本知識,下面列出的這些內容并不是讓大家立即翻書弄明白了再來看教程,而是先有一個初步概念,我會在視頻講解中介紹一下,大家看完整個教程之后再補充相關的知識就可以了。
基礎知識:理解 坐標變換->正運動學、機械臂求解->逆運動學 是非常重要的。坐標變換的基礎需要大家要熟知齊次變換矩陣、歐拉角、四元數,明確它們表達的含義和優缺點;機械臂描述需要大家知道DH矩陣或者其變種的計算方式;正運動學的意義和逆運動學的解析解和數值解的大概計算方式。
1.Vrep驅動PUMA560機械臂
這一部分采用Lua 與 Reflexxes Motion Library的方式,去驅動各個關節的位置進行變化,也可以采用程序直接控制關節位置,這一部分內容比較常規,大家可以瀏覽[連載 2]Vrep小車建模——內嵌腳本熟悉Lua的基本編程,聽結合本節視頻和源碼實現下圖的功能,詳細介紹請看視頻教程。
知乎上所有的動圖全部掛掉了!!!!大家請去簡書上看更方便
Lua腳本關節驅動示例
2.Vrep逆運動學求解工具IK驅動機械臂
上一節采用直接驅動機械臂關節,控制的是機械臂的關節空間上的變化,但是實際控制過程中,我們更關心機械臂末端的笛卡爾空間的狀態,因此需要求解機械臂逆解去計算不同狀態下對應的關節角度。本節視頻中會詳細介紹Vrep中IK的搭建方式和注意事項。本節的最終效果如下:
機械臂末端達到空間指定位置
機械臂末端形成復雜軌跡
3.Matlab驅動機械臂
這一部分采用Matlab驅動機械臂,與內容1類似,大家要熟悉[連載 3]Vrep小車建模——matlab控制的內容,掌握Matlab與Vrep通信的基本知識(為了結果更加真實,因此要開啟Vrep與Matlab的同步機制)。同時在本節會介紹Matlab Robitic Toolbox的函數(jtraj)使用方法,從而用于關節空間的驅動。本節的最終效果如下
Matlab驅動機械臂
4.Matlab Robitic Toolbox控制機械臂
本節內容較多,涉及到的知識點也比較多,大家要具有耐心。首先講一下標準DH矩陣的建立方式,這里請注意由于三維模型的差異和關節坐標系的設置導致本節給出的puma560機械臂與《機器人學、機器視覺與控制――MATLAB算法基礎》書中給出的DH矩陣略有不同。(注:大家都很疑惑一個puma560機械臂的DH矩陣為什么不是唯一的,甚至不同的教科書上給出來的不一樣,這是和DH矩陣本身的的特點密切相關的,對于DH矩陣大家不要生搬硬套,直接根據計算方式求一個自己可以用的就可以了。)
建立DH矩陣后,給大家介紹一下如何采用Matlab Robitic Toolbox計算運動學逆解,以及不同的求解方式的注意事項。
最后用matlab實現機械臂末端位置和姿態的跟隨控制。
5 使用VrepLib,通過simulink快速搭建vrep控制模型(推薦閱讀!!!)
很多同學和我反饋控制算法都是使用simulink搭建的,而vrep并沒有很好的simulink接口,很難將自己的控制算法與vrep結合起來,我也是深受苦惱,因此花了很長時間開發了vrep與simulink接口庫——VrepLib,VrepLib主要功能是建立simulink與vrep的連接,并利用封裝好的模塊搭建仿真程序,減輕工作量,加快算法驗證速度。目前這個庫我已經發布出來了,感興趣的同學可以點擊購買。下面展示一下如何用這個庫實現內容3和內容4的功能。
只需要少數幾個模塊即可完成內容3的功能.png
完成內容4的程序框圖
結語
本節介紹基于Vrep開發環境的機械臂三種控制方法,分別介紹了采用Lua控制、matlab控制和simulink控制,并給出詳細的示例;同時也介紹了機械臂關節空間運動和笛卡爾空間運動的差別,結合Vrep自帶的IK計算模塊和Matlab Robitic Toolbox的工具箱函數講述逆運動學求解、軌跡生成等。總的來說是Vrep——機械臂這一內容的引路石,機械臂控制仍然有很多內容需要大家去研究,希望本教程可以給大家一定的幫助。本節更多內容請點擊視頻教程、源代碼,謝謝大家的支持。
總結
以上是生活随笔為你收集整理的matlab机械臂工作空间代码_[连载 5]Vrep--Matlab Robitic Toolbox--PUMA560机械臂控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker部署SQL Server 2
- 下一篇: matlab做水流量问题,基于MATLA