v-rep(virtual Robot Experimentation Platform)
简介:
具有集成开发环境的机器人模拟器 V-REP 以分布式控制结构为基础: 每个对象或模型
都是可以通过嵌入式脚本,插件,ROS 平台,远程 API 客户端或自定义的解决方案等单独
控制。 V-REP 用途很广,适用于多机器人应用。可以用 C / C ++,Python,Java, Lua,
Matlab,Octave 或 Urbi 编写机器人控制程序
一、导入三维模型——PUMA560 机械臂
分为几个步骤:
1、 建立、得到模型
2、 导入模型并进行简单的处理
3、 提取关键特征,添加运动关节
4、 提取实体特征
Step1 准备工作(建立、得到模型)
1、首先在建模软件中建立机械臂模型,V-REP 目前支持以下的 CAD 数据 格式:OBJ,
STL,DXF,3DS(仅限 Windows)和 Collada(COLLADA™ 是面向交互式 3D 应用程序
的基于 XML 的数字资产交换方案,使 3D 创作应用程序可以自由地交换数字资产而不损
失信息)。也支持 URDF(统一机器人描述格式)
2、调整好模型的位置导入
图一 PUMA560 模型
Step2 导入模型并简单处理
Step 3 提取关键特征,添加运动关节
图二 将零件重命名
从导入模型中提取出圆柱体,并确定回转关节位置。
导入的是三角形组合,我们需要从这些三角形中提取出圆柱体,然后利用圆柱体去定位
关节位置。
1、 将要调整的模型拷贝到一个备用的 scene。
2、 将 puma560_link1_vision 拷贝到这个新文件中,我们要从上面提取出两个圆柱体,
从而找到机械臂的前两个回转轴.
3、 选择 puma560_link1_vision,点击工具栏左边的按钮(见图 3),打开实体编辑界
面。
4、 提取 joint1-6
图三 实体操作按钮
1) 使用三角形模式。选择有两种方式,第一种是直接在窗口中选择三角形,选
择之后会改变颜色,也可以在左边的浏览窗口选择。我们先选择编号从 251 至
298 的三角形。(摁住 Ctrl 键,鼠标挨个单击,貌似没有其他的快捷方式,所以
说是体力活……)点击提取圆柱体(Extract cylinder),点击确定,生成第一个圆
柱体。
图四 选择第一个底面
2) 现在添加一个关节,将其位置与提取出来的圆柱体进行重合。确定好第一个关节
的位置。将其重命名为 puma560_joint1。
3) 获取第二个关节,依然是使用 puma560_link1_vision,进入形状编辑模式,选择
Triangle 896 ——Triangle 946,提取第二个圆柱体,利用上述同样操作,得到第
二个转动关节 puma560_joint2。也将其复制回到原来的文件中.
4)复制 puma560_link2_vision 到一个新文件中,选择 Triangle 10059——Triangle
10098,提取第三个圆柱体,重复同样的操作,得到 puma560_joint3。
5)复制 puma560_link4_vision 到一个新文件中,选择 Triangle 122——Triangle 160,
提取第四个圆柱体,重复同样的操作,得到 puma560_joint4。
图六 提取第三个关节
图七 提取第四个关节
6)复制 puma560_link5_vision 到一个新文件中,选择 Triangle 841——Triangle 874,
提取第五个圆柱体,重复同样的操作,得到 puma560_joint5。
7)使用 puma560_link5_vision 这个
图八 提取第五个关节
零件,选择 Triangle 799——Triangle 840,提取第六个圆柱体,重复同样的操作,得到
puma560_joint6。
Step4 提取实体特征
由于导入的 stl 文件是 mesh 属性,实际上仅仅是一层薄壳,不具备动力学特征,如果
直接用导入模型的话由于细节太丰富,所以极大的影响仿真速度,一般都会将其简化成 v-rep
自带的 primitive shape 或者是凸面结构。
1) 将机械臂的 puma560_link0_vision 到 puma560_link5_vision 六个结构拷贝到一个
新的 scene 中,先选择 puma560_link0_vision,执行下图的操作(Edit->Morph
selection into convex shapes),这样就得到了第一个实体,重复此操作。操作完成
后,将各个部件重命名为 puma560_link0 到 puma560_link5
2) 设置动力学属性
图九 全部提取为凸面体结构
此时点击开始仿真发现仍然没有自由落体,还没有设置动力学属性。(对应文件为
vrep4_puam560_step4_1_backup2.ttt)
3) 重新调整模型树,按照如下的方式进行排列,确定依赖关系
图十 Link1 动力学性能
模型树
4) 将凸面体隐藏起来
5) 点击仿真,发现机械臂会立即垮掉,原因是因为添加的关键无法提供足够的扭矩保
持平衡,我们这里打开关节的位置控制模式,如下图:(注意要设置一下关节扭矩,
默认 2.5Nm 太小了,这里先设置为 100Nm)
二、逆运动学实验(Inverse kinematics)
Step1 将模型导入
V-rep
Step2 分割,调整颜色