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步骤不需要执行,这个代码里已经配置好了):点击打开链接

更正:我重新运行了一遍程序,抱歉! 更正代码中的一个问题,就可以解决UR5脚本报错,不运行的问题。把UR5模型列表UR5_connection的名字修改为 UR5_force_sensor,即可正常运行。先运行matlab,后运行vrep。

修改成如下:

 

 

 

 

 





### MATLABADAMS联合仿真实现方法 #### 准备阶段 为了成功完成MATLABADAMS之间的联合仿真,需准备三个主要软件工具:SolidWorks2018、Adams2018以及Matlab2018b[^1]。 #### 添加路径配置 在开始联合仿真之前,必须确保MATLAB能够识别并加载来自ADAMS的关键动态链接库(DLL),即`adams_plant.dll`。这通常通过执行特定的M脚本来实现,该脚本负责将包含上述DLL文件的位置加入至MATLAB的工作目录中。具体来说,就是位于类似`X:\MSC.Software\MSC.ADAMS\2005\win32`这样的路径下[^2]。 ```matlab % 假设 m 文件名为 setup_adams_path.m addpath('X:\MSC.Software\MSC.ADAMS\2005\win32'); ``` #### 初始化环境变量 除了添加必要的搜索路径外,还需要初始化一系列全局变量供后续模拟过程中调用。这部分操作同样由前述提到的那个M脚本完成,一旦执行完毕即可利用`who`指令来验证所需变量已被正确载入当前工作区。 ```matlab whos % 查看已定义的所有变量名列表 ``` #### 构建模型接口 对于想要连接起来的不同物理域之间建立联系而言,核心在于创建合适的接口机制——这里指的是所谓的S-function模块。这种特殊类型的Simulink组件允许外部程序逻辑被嵌入进来作为自定义行为的一部分参计算流程之中;而对于我们的案例来讲,则是指让ADAMS内部解器产生的数据可以顺畅无阻地传递给MATLAB/Simulink平台来进行进一步处理分析。 #### 执行联合仿真过程 当一切准备工作就绪之后,就可以启动实际意义上的协同作业环节了。此时只需按照常规方式构建好各自的子系统结构图,并指定好相应的参数设定项,最后点击运行按钮等待最终结果输出即可。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值