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

在ADAMS中创建一个曲柄摇杆机构很方便,但是V-rep中建模就比较麻烦。下面将自己在V-rep中建立曲柄摇杆机构模型的过程记录下来(由于对V-rep不是很熟,可能会有一些错误,只能等以后发现了再改进)。首先曲柄摇杆机构要满足杆长条件,即最短杆和最长杆长度之和要小于或等于其它两杆(参考机械原理)。假设杆长L1=0.1m,L2=0.15m,L3=0.13m,L4=0.12m,选取L1作为曲柄,L4为机架。然后开始建立机构。主要步骤如下:

1.创建一个平面作为机架(Ground),这里将其属性设为不可见,所以图中没有显示出来

2.在点(0,0,0)创建旋转关节J1,在点(0.1,0,0)创建J2,在(0.25,0,0)创建J3,在(0.12,0,0)创建J4。然后创建连杆L1,L2,L3(L4为机架,实际上存在于J1和J4之间)

3.以大地Ground作为根节点, 按照Ground->J1->L1->J2->L2->J3的顺序构建一条支链,再按照Ground->J4->L3的顺序构建出另一条支链,如下图所示。

那么问题来了,上面的两条支链并没有连接在一起,进行仿真时会断开,即出现下图所示的情况。因此就需要将J3和L3连接起来,然而他们分别位于两条支链中,怎么样才能将其连接起来呢?下面就要用到Dummy object(A dummy object is the simplest object available: it is a point with orientation, and it can be seen as a reference frame),根据V-rep帮助中的这一描述,Dummy object相当于ADAMS中的Marker(即一个参考坐标系)。

如下图所示Shape_1和Shape_2之间由dummy object连接,连接类型设为Dynamics, overlap constraint时,在动力学仿真过程中这两个dummy object会尝试以相同的位置和姿态连接到一起。

下面做一个测试:先创建连杆L1,L2(L2设为静态物体固定不动,且L1,L2隔开一段距离);然后创建Dummy1,Dummy2分别作为其子对象(Dummy2的坐标系绕X轴旋转45°);接着打开Dummy object的属性对话框在Dummy-dummy linking的选项栏中将Dummy1,Dummy2连接起来,Link type选为Dynamics,overlap constraint。开始仿真前如下图所示。

点击仿真开始按钮,两个物体自动连接到一起(L1->L2)。而且从下图中可以看出L1也跟着Dummy1旋转了45°

按照上面的方法,在J3和L3下面添加Dummy object,并设置好其属性就可以开始仿真了。为了研究机构的一系列性质,可以添加Graph记录下想获取的信息。这里用Graph记录下J3关节在空间中的位置:浮动窗口中显示J3的X,Y,Z坐标随时间的变化曲线,黄色曲线trajectory为其空间轨迹曲线。

如果想将曲线数据导出并用Excel或MATLAB等软件进一步处理,可以先选中Graph然后按 [Menu bar --> File --> Export --> Selected graphs as CSV...]输出CSV格式的文件. The unit of exported data streams will be in meters, kilograms, seconds and degrees (or a combination of those). 输出的CSV文件用Excel打开如下图所示。

时间: 2024-10-23 07:13:10

V-rep学习笔记:曲柄摇杆机构的相关文章

HashMap之put(K key, V value)学习笔记 jdk8版 (一)

    /**      * Associates the specified value with the specified key in this map.      * If the map previously contained a mapping for the key, the old      * value is replaced.      *      * @param key key with which the specified value is to be ass

Linux程序设计学习笔记----System V进程间通信(信号量)

关于System V Unix System V,是Unix操作系统众多版本中的一支.它最初由AT&T开发,在1983年第一次发布,因此也被称为AT&T System V.一共发行了4个System V的主要版本:版本1.2.3和4.System V Release 4,或者称为SVR4,是最成功的版本,成为一些UNIX共同特性的源头,例如"SysV 初始化脚本"(/etc/init.d),用来控制系统启动和关闭,System V Interface Definitio

Linux程序设计学习笔记----System V进程通信(共享内存)

转载请注明出处:http://blog.csdn.net/suool/article/details/38515863 共享内存可以被描述成内存一个区域(段)的映射,这个区域可以被更多的进程所共享.这是IPC机制中最快的一种形式,因为它不需要中间环节,而是把信息直接从一个内存段映射到调用进程的地址空间. 一个段可以直接由一个进程创建,随后,可以有任意多的进程对其读和写.但是,一旦内存被共享之后,对共享内存的访问同步需要由其他 IPC 机制,例如信号量来实现.象所有的System V IPC 对象

Linux程序设计学习笔记----System V进程通信之消息队列

一个或多个进程可向消息队列写入消息,而一个或多个进程可从消息队列中读取消息,这种进程间通讯机制通常使用在客户/服务器模型中,客户向服务器发送请求消息,服务器读取消息并执行相应请求.在许多微内核结构的操作系统中,内核和各组件之间的基本通讯方式就是消息队列.例如,在 MINIX 操作系统中,内核.I/O 任务.服务器进程和用户进程之间就是通过消息队列实现通讯的. Linux中的消息可以被描述成在内核地址空间的一个内部链表,每一个消息队列由一个IPC的标识号唯一的标识.Linux 为系统中所有的消息队

《机电传动控制》学习笔记04-1

<机电传动控制>学习笔记04-1 胡恒谦 机卓1301 一.设计要求 结合本周学习的交流电机原理及启动.调速.制动特性,用Modelica设计和仿真一个用三相交流异步电机带动起重机起升机构运行.具体要求如下: 1)实现如下机械运动周期: 控制电机带重物上升,从静止加速到800r/min 保持800r/min匀速运动0.5s, 减速到静止,保持静止状态0.5s, 带重物下降,从静止达到600r/min 保持600r/min匀速运动0.6s, 减速到静止. (为了便于仿真,匀速和静止持续时间较短)

&lt;老友记&gt;学习笔记

这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的情路坎坷,事业成败和生活中的喜怒哀乐,无时无刻不牵动着彼此的心,而正是正平凡的点点滴滴,却成为最令人感动与留恋的东西. 人物:1.瑞秋•格林(RACHEL GREENE)由珍妮佛•安妮斯顿(Jennifer Aniston)扮演 瑞秋是莫妮卡的高中同学,在与牙医未婚夫的婚礼上脱逃至莫妮卡处. 2.罗

AT&amp;T汇编学习笔记

AT&T汇编和intel汇编的区别 (1)在Intel格式中大多使用大写字母,而在AT&T格式中都是用小写字母. (2)在AT&T格式中,寄存器名要加上"%"作为前缀,而在intel格式中则不带前缀. (3)在AT&T的386汇编语言中,指令的源操作数与目标操作数的顺序与在intel的386汇编语言中正好相反.在intel格式中是目标在前,源在后:而在AT&T格式中则是源在前,目标在后.例如,将寄存器eax的内容送入ebx,在intel格式中为&

R语言学习笔记

參考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics,2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html 前言:关于R 在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这