下面接着之前经过简化并调整好视觉效果的模型继续工作流,为了使模型能受控制运动起来必须在合适的位置上添加相应的运动副/关节。一般情况下我们可以查阅手册或根据设计图纸获得这些关节的准确位置和姿态,知道这些信息以后就可以通过[Menu bar --> Add --> Joints --> ...]来添加关节了, 之后可以通过位置和姿态对话框来调整关节位置姿态。在之前写过的V-rep学习笔记:曲柄摇杆机构中就是按照这种方式添加的关节。

  如果我们有机器人的DH参数表也可以使用VREP中的工具来生成关节[Model browser-->tools-->Denavit-Hartenberg joint creator]. 以机器人学导论书中简单的三连杆机械手臂为例:

  可以很容易写出其DH参数表:

  我们将关节创建工具拖入场景中,选择地面作为根节点,然后填入表格中所示的DH参数,点击创建旋转关节。L1、L2杆长均为0.5m,$\theta$为关节变量,这里初始化为0,则三次的参数分别输入为:


  有时我们无法知道关节的准确位置,只能通过现有的网格模型去创建关节。以基座的转动关节为例(先将其它部分隐藏,后面会讲到),可以用基座上表面的规则圆面作为参考来定位关节。

  进入Shape edit模式,通过Page selector选择俯视图(如下面左图所示),在Triangle edit模式下通过框选可以很容易选中所有三角面片;或者可以选择正视图,进入顶点编辑模式(Vertex edit mode),选中如下面右图所示的所有顶点,然后切换回面编辑模式,可以发现所有的三角面已经选中。接着点击Extract cylinder在这个位置上生成规则圆柱体。

  接下来添加转动关节:按Ctrl键先后选中该关节和之前创建的圆柱体,然后打开位置调整对话框,点击Apply to selection,这一操作会使关节的X、Y、Z坐标与圆柱体一致。如果想单独控制X、Y、Z坐标对齐,可以点左侧的Apply X/Y/Z to selection,这样就将关节放到了合适的位置。

  剩下的关节也可以按照这种方式创建:


  有时为了对特定的部件进行操作需要隐藏其它部分以便观察,可以通过设置物体所在图层来实现这一功能。双击要隐藏物体的图标打开Common属性页,在可见性一栏中可以看到16个图层:物体默认创建在图层1,将其移动到图层9中(默认图层1~8内的物体是可见的,图层9~16内的物体是隐藏的),隐藏后物体名将变灰。

  如果要显示图层9~16内的物体可以打开Layer selection对话框:

[Layer selection dialog toolbar button]

  如下图所示,默认只勾选了图层1~8,要显示图层9只需要勾选该图层即可:

参考:

Building a clean model tutorial

V-rep学习笔记:机器人模型创建1—模型简化

V-rep学习笔记:曲柄摇杆机构

V-rep学习笔记:机器人模型创建2—添加关节的更多相关文章

  1. V-rep学习笔记:机器人模型创建3—搭建动力学模型

    接着之前写的V-rep学习笔记:机器人模型创建2—添加关节继续机器人创建流程.如果已经添加好关节,那么就可以进入流程的最后一步:搭建层次结构模型和模型定义(build the model hierar ...

  2. JUC学习笔记——共享模型之管程

    JUC学习笔记--共享模型之管程 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的管程部分 我们会分为以下几部分进行介绍: 共享问题 共享问题解决方案 线程安全分析 Monitor ...

  3. JUC学习笔记——共享模型之内存

    JUC学习笔记--共享模型之内存 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型 可见性 模式之两阶段终止 模式之Balk ...

  4. Django:学习笔记(7)——模型进阶

    Django:学习笔记(7)——模型进阶 模型的继承 我们在面向对象的编程中,一个很重要的的版块,就是类的继承.父类保存了所有子类共有的内容,子类通过继承它来减少冗余代码并进行灵活扩展. 在Djang ...

  5. Django:学习笔记(6)——模型

    Django:学习笔记(6)——模型 快速上手 模型到底是什么呢?我们可以想,如果一张数据表的各个字段可以自动映射到一个类的各个属性,则每条记录对应这个类的一个对象.那我们通过类方法来操作对象(即表记 ...

  6. JVM学习笔记——内存模型篇

    JVM学习笔记--内存模型篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的内存模型部分 我们会分为以下几部分进行介绍: 内存模型 乐观锁与悲观锁 synchronized优化 内 ...

  7. ArcGIS案例学习笔记2_2_模型构建器和山顶点提取批处理

    ArcGIS案例学习笔记2_2_模型构建器和山顶点提取批处理 计划时间:第二天下午 背景:数据量大,工程大 目的:自动化,批处理,定制业务流程,不写程序 教程:Pdf/343 数据:chap8/ex5 ...

  8. InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移

    系列目录 InterSystems Ensemble学习笔记(一) Ensemble介绍及安装InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移 一 ...

  9. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

随机推荐

  1. [Web 前端] 如何构建React+Mobx+Superagent的完整框架

    ReactJS并不像angular一样是一个完整的前端框架,严格的说它只是一个UI框架,负责UI页面的展示,如果用通用的框架MVC来说,ReactJs只负责View了,而Angular则是一个完整的前 ...

  2. [DEFCON全球黑客大会] CTF(Capture The Flag)

    copy : https://baike.baidu.com/item/ctf/9548546?fr=aladdin CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的 ...

  3. [转]php 操作数组 (合并,拆分,追加,查找,删除等)

    From : http://justcoding.iteye.com/blog/1181962 1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组.所得到的数组以第一个 ...

  4. 一致性哈希算法(consistent hashing)(转)

    原文链接:每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)  一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网 ...

  5. 从零开始学C++之模板(三):缺省模板参数(借助标准模板容器实现Stack模板)、成员模板、关键字typename

    一.缺省模板参数 回顾前面的文章,都是自己管理stack的内存,无论是链栈还是数组栈,能否借助标准模板容器管理呢?答案是肯定的,只需要多传一个模板参数即可,而且模板参数还可以是缺省的,如下: temp ...

  6. 移动前端调试工具-Weinre真机调试

    之前做移动前端调试页面的时候就是简单的使用Chrome模拟器调试,能满足基本基本的需求,后来发现了基于Web Inspector(Webkit)的远程调试工具Weinre,可以在PC端直接调试运行在移 ...

  7. Sudoku Solver leetcode java

    题目: Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated b ...

  8. jquery的$.extend和$.fn.extend作用及区别,兼它们的一些小细节

    $.extend(obj);是为了扩展jquery本身,为类添加新的方法   $.fn.extend(obj);给JQUERY对象添加方法.如(1): $.extend({ add:function( ...

  9. android bundle 对象 序列化

    Android使用Intent.putSerializable()进行数据传递,或者使用Bundle进行数据传递,实质上都是进行的Serializable数据的操作,说白了都是传递的原数据的一份拷贝, ...

  10. 什么是BFC(Block Formatting Context)

    原文:https://segmentfault.com/a/1190000012221820 https://www.w3.org/TR/CSS2/visuren.html#block-formatt ...