欢迎来到Labview专栏~Labview-3D虚拟平台(下)
- ☆* o(≧▽≦)o *☆嗨~我是小夏与酒
- ✨博客主页:小夏与酒的博客
- 该系列文章专栏:Labview-3D虚拟平台
- 文章作者技术和水平有限,如果文中出现错误,希望大家能指正
- 欢迎大家关注! ❤️
实现效果:
经典案例展示效果:
上述演示的VI可以通过该链接进行下载:Labview与Solidworks-机械臂的仿真与控制(包括“经典案例”和“自制案例”),
或者三连本文章联系我免费领取❤️。
SOLIDWORKS 2022;LabVIEW 2021。
软件 | 版本 |
---|---|
SOLIDWORKS | 2022 |
NI LabVIEW | 2021 (32位) |
LabVIEW 2021(32位)和LabVIEW 详细课程获取:三易电子工作室;也可以搜索并关注微信公众号【易小时课堂】或者【三易电子工作室】了解更多内容。
第一篇文章(上):
【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(上)在Labview中使用Solidworks的3D模型——零件模型导入
第二篇文章(中):
【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(中)在Labview中使用Solidworks的3D模型——3D模型的变换操作
关于父级和子级的讲解,我们通过Labview自带的vi范例来理解——太阳系三维模型:
太阳系场景图由四个对象构成:
1.太阳-顶层对象(该对象用于渲染场景,通过将其引用连入场景图控件或连入场景窗口的“场景”属性实现)。该对象仅与几何体相关联。
2. “变换对象”-该对象用于为子对象提供一组一致的变换,另外子对象还可以拥有各自独特的变换,不会影响到同辈对象,比如地球和月球都需要这样的变换。该对象是太阳对象唯一的直接子对象。
3.地球-直接继承“变换对象”,且包含地球的几何信息,以及地球本身特定的变换信息(即绕轴自转)。
4.月球-直接继承“变换对象”,且包含月球的几何信息,以及月球本身特定的变换信息,即绕地球旋转并相对于地球发生偏移(变换)。
✨在较早版本的Labview中,关于三维模型之间关系的描述为父级和子级的关系,在最近的版本中,更改为了顶层对象和子对象的关系。
关于太阳系的范例:太阳是父级,地球和月球是同级,它们两个都是太阳的子级。
如果让我来改写该vi的话,我会这么安排对应关系:
太阳是地球的父级,地球是月球的父级;地球是太阳的子级,月球是地球的子级。为了方便描述,我们把月球称为太阳的第二子级(只是为了方便我进行描述,所以起了这个称呼)。
以此类推:地球是太阳的第一子级;月球是地球的第一子级。
首先看一下对应的关系指示图:
单路支配关系:
多路支配关系:
由上图指示:
- 第一子级1和第一子级2称为 同级 ;同样,第二子级1和第二子级2也称为 同级 。
- 子级对象自身的变换操作不会影响到同级对象。
关于父级和子级的作用与相互影响:
父级处于主导地位,影响着其下的各个子级,对子级起支配作用;子级只对其下的子级起支配作用,完全不会对父级造成影响,也不会对同级造成影响。
哈哈哈!上述结论是我自己归纳总结的,如果有误或者存在不足可以在评论区中指出!
根据父级和子级的关系以及相互影响,说明我们可以通过改变父级的属性来达到改变子级属性的目的!
关于多路支配关系是如何在labview中实现的,还是参考labview自带范例vi 太阳系 :通过创建多个三维对象,并将它们按照对应关系嵌套在一起来实现多路支配:
文中关于机械臂的仿真与控制,使用的是单路支配关系。
如果只是单独分析模型中的一部分,从 父级和子级的内部对应关系(一个子级和它的下一个子级的关系) 来说,这个子级可以被称为该部分的父级,而它的下一个子级可以称为它的第一子级,即对应参照关系。
注意:在该部分的理论讲解和分析中,为了方便理解原理,我使用了一些比较奇怪的专业名词,但这些不重要,重要的是理解使用原理!
✨根据我的经验和建议,新坐标系的原点一般选择在旋转轴的中心位置,如下图的标注:
当然,也可以根据实际需求选择其它位置的坐标系原点。
对于下图零件,在使用时它可以绕着A点按照轴的方向顺时针或逆时针旋转,也可以绕着B点按轴旋转,因此可以在该零件上添加三个坐标系,以方便在不同情况下的使用:
使用Solidworks打开零件或者装配体,看如下操作步骤:
零件:
注意 :在此需要特别特别注意,对于零件或者装配体新坐标系的建立,是十分繁琐但也是至关重要的一步。在Labview的显示界面中,默认Y轴指向上方(即笛卡尔坐标系,右手坐标系),所以在建立新坐标系的时候一定分析清楚几何关系和运动关系!!!
关于新坐标系的建立可以去网上搜索更加详细的介绍。
当新坐标系建立好之后,在导出时一定一定要选择好你需要使用的坐标系!不然将会导出默认坐标系:
当然,以上介绍的新坐标系的建立方法和零件的导出只是我常用的方法,也可以去网上搜索或学习其它更高效的方法。
为什么要提一下导入原则这个事情呢?是因为如果随意导入模型,会很难把握其中父级和子级的关系,导致控制对象出错!
导入原则:父级优先,然后依次导入其他子级。
底座是整个机械臂的父级,如果底座旋转或者平移,将会带动整个机械臂旋转或者平移;依次向上,旋转面为第一子级,支配着旋转面以上的零件进行运动,而不会影响到底座;舵机为第二子级;连接轴为第三子级…
控制机械臂的经典案例完整vi:
首先是显示界面背景颜色的设置:
按照零件之间的父级和子级关系进行导入:
下一步vi的作用是为了设置各个零件的初始位置:
重点注意:这里的初始位置,指的是该零件坐标系原点和它的父级零件坐标原点的相对位置。
当对应关系和初始位置处理完毕之后,就可以在while循环中写控制程序了。
❤️感谢以下大佬的资料分享!
labview学习笔记–3D模型(1)
labview学习笔记–3D模型(2)
labview学习笔记–3D模型(3)
机械类——Labview 调用 Solidworks 模型,制作机械臂控制方式探索
LabVIEW学习分享(2)
labview调用solidworks3维模型
订阅该系列文章专栏,不错过精彩内容~
结尾
- ❤️ 感谢您的支持和鼓励!
- 您可能感兴趣的内容:
- 【FPGA零基础学习之旅#4】定时器设计与蜂鸣器驱动
- 【Go黑帽子】使用Golang编写一个TCP扫描器(高级篇)
- 【Labview机器视觉】- USB摄像头识别和解码二维码 - 学习记录
- 【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(一)在Labview中使用Solidworks的3D模型——零件模型的导入