1. 程式人生 > >MATALB與VREP聯合模擬--UR5機械臂動力學模擬

MATALB與VREP聯合模擬--UR5機械臂動力學模擬

VREP是一款很不錯的機器人模擬軟體,可以和多個跨平臺通訊,於是準備用來和MATLAB進行聯合模擬。但是查了很多資料並未找到使用MTALAB/Simulink模組進行聯合模擬的,進過一番折騰終於實現基本的聯合模擬,記錄於此以備後續學習。

話不多說,進入正題:

一、軟體環境配置

1、軟體版本

VREP: V-REP PRO EDU Version 3.3.2(備註:測試過3.4版本似乎有些問題)MATLAB:Matlab2016b

(1)開啟VREP的安裝路徑中的shareMemoryCommunicationPlugin資料夾,如下:C:\ProgramFiles(x86)\V-REP3\V-REP_PRO_EDU\programming\sharedMemoryCommunicationPlugin

(2)拷貝其中的v_repExtShareMemory.dll檔案到VREP的主資料夾下(備註:C:\ProgramFiles(x86)\V-REP3\V-REP_PRO_EDU)

(3)回到shareMemoryCommunicationPlugin資料夾拷貝其中的example Simulink壓縮包和BloqueMemoriaCompartida.slx到MATLAB的工作路徑下。2、模擬平臺通訊測試解壓exampleSimulink壓縮包,在MATLAB中開啟CameraExample.slx檔案,在VREP中開啟camara模擬環境。先執行MATLAB,再執行VREP。如圖所示:VREP中的視訊資訊傳到MATLAB中,又通過MATLAB傳回來到VREP中。這樣VREP和MATLAB的通訊就測試成功了。如果一切順利,你會看到VREP中兩個懸浮視窗都有影象資訊。

你以為這就完呢,還沒,這只是基本通訊測試,接下來需要完成具體的UR5機械臂動力學模擬模組的搭建。

二、VREP中UR5機械臂配置1、配置UR5機械臂通訊控制引數。點選上圖指令碼圖示(紅色箭頭指向處)把裡面的程式碼全部刪除(不用擔心,你只要重新調出一個機械臂模型,程式碼依然存在)。並貼上以下程式碼(點選開啟連結)2、配置UR5機械臂關節引數把每個關節的postion is cyclic勾選上表示關節可以360度旋轉,把關節動態屬性中的control loop enabled取消勾選,表示控制器可以外部介面給出。至此VREP中的UR5機械臂的配置基本完成了。

三、MATLAB中的模擬環境配置在MATLAB工作路徑下新建一個資料夾ur5_test把剛才建立的UR5模擬場景檔案放在裡面,再把examp Similink這個檔案中的matlabGenericSHM.mexw32和matlabGenericSHM.mexw64以及BloqueMemoriaCompartida.slx拷貝到ur5_test資料夾下,在matlab中開啟這個slx檔案,並新建一個simulink模組UR5_control.slx檔案,將剛才開啟的檔案裡的模組拷貝至UR5_control.slx裡面,開啟後配置如下:

至此,配置檔案就結束了,接下來就是搭建UR5機械臂的外圍模組了。

四、MATLAB與VREP聯合模擬-控制器以及外圍模組搭建如下圖所示,這裡採用簡單的重力補償+PD控制實現UR5機械臂的關節控制具體的演算法原理這裡就不多講了,實驗模擬的效果是通過力矩控制的方式,控制機械臂到達目標關節角度。控制精度和重力模型以及控制器相關,這裡用了簡單的PD控制的精度效果還不錯。完整的模擬示例程式碼(備註:第二步中的第1步驟不需要執行,這個程式碼裡已經配置好了):點選開啟連結