欢迎来到Labview专栏~四足爬行机器人仿真与控制
四足机器人整体预览:
机器人关节运动:
机器人整体旋转与关节运动:
本教程全部内容均为本人探索研究整理得出,现在将该部分资料内容开源!
效果展示中的完整项目vi和资料获取链接:【全网首发开源资料-多路支配关系】Labview仿真控制四足爬行机器人。也可以三连本文章之后联系我免费获取。
本篇文章涉及的知识内容较为复杂,请先掌握如下文章中的基础知识点:
零件模型的导入:【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(上)在Labview中使用Solidworks的3D模型——零件模型的导入
3D模型的变换操作:【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(中)在Labview中使用Solidworks的3D模型——3D模型的变换操作
装配体、父级与子级:【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(下)在Labview中使用Solidworks的3D模型——装配体、父级与子级
SOLIDWORKS 2022;LabVIEW 2021。
软件 | 版本 |
---|---|
SOLIDWORKS | 2022 |
NI LabVIEW | 2021 (32位) |
LabVIEW 2021(32位)和LabVIEW 详细课程获取:三易电子工作室;也可以搜索并关注微信公众号【易小时课堂】或者【三易电子工作室】了解更多内容。
装配体、父级与子级:【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(下)在Labview中使用Solidworks的3D模型——装配体、父级与子级
首先回顾一下上文中的关系指示图:
单路支配关系:
单路支配关系,即父级支配第一子级,然后依次向下支配第二子级、第三子级、…、第n子级。对于单路支配关系的详细讲解参考上述文章链接。
通过对单路支配关系的实践应用,我们可以完成对机械臂等的仿真与控制:
多路支配关系:
由上图指示:
- 第一子级1和第一子级2称为 同级 ;同样,第二子级1和第二子级2也称为 同级 。
- 子级对象自身的变换操作不会影响到同级对象。
关于父级和子级的作用与相互影响:
父级处于主导地位,影响着其下的各个子级,对子级起支配作用;子级只对其下的子级起支配作用,完全不会对父级造成影响,也不会对同级造成影响。
上述内容即是文章《装配体、父级与子级》中的理论基础。在我发布上一篇文章之后,有许多小伙伴不太清楚多路支配关系是如何实现的,也对多路支配关系的实现抱有怀疑态度。在此篇文章中我将对其进行详细介绍。
多路支配关系中,父级占最高位置,对以下的所有子级起支配作用,而且同级之间不会产生相互影响,最经典的多路支配关系模型之一就是多足机器人:
项目实现目标:
四足机器人的身体部分是父级,对机器人的四条足起支配作用;
机器人四条足彼此之间不存在任何相互影响;
任何一条足的组成都是单路支配关系。
四足爬行机器人的结构关系:
该项目的四足机器人建模文件都包含在已上传的压缩包资源中:
由于该四足机器人的零件较多,且大部分零件都是固定不动的,为了导入labview时方便快捷,对部分零件组装为装配体之后再导出wrl格式。例如机器人的身体部分就可以作为一个装配体导出:
对零件进行处理之后得到的各部分装配体:
在零件导出时最重要的还是要找到旋转关节,在旋转关节部位建立新坐标系。
在之前的文章中介绍过,labview中的3D显示坐标基准为笛卡尔-右手坐标系。所以在零件中建立新坐标系的时候,还需要选择好一个轴为整体模型的前端。
在本次项目中,我选择以Z轴正方向作为机器人的前端。
对于新手来说,在这里给出一个在零件圆心处建立新坐标系的方法:
以圆心为原点新建坐标系:
第一步:
第二步:
第三步:
第四步:
第五步:
新坐标系建立完成:
当我们将模型零件准备好并导出wrl格式文件之后,就可以开始vi的编写了。
对于在labview中实现3D操作,太阳系范例真的特别经典!
在该范例中,包含了相当多的知识点,其中就包括了多路支配关系的实现:
在此说明一点:在labview中,你导入的零件模型被称为对象,而我习惯于说成场景(可能会与一些vi函数产生歧义),希望读者能够在后续的文章中分辨清楚。
大家一定要认真学习并掌握太阳系的范例vi,可以学到很多有用的知识点!
如何实现多路支配关系呢? 在labview的3D操作中,必须存在一个 大场景 ,然后在这个大场景中加入其他需要的元素,例如光照、坐标轴、小场景等等。换一个说法,你想要制作一个生态缸,那就必须先有一个大的透明塑料容器或者其他材料的容器,然后在这样的容器中加入泥土、假山、草皮、植株、小动物或者昆虫等等。其中,容器就是你实现生态缸的一个大场景,而泥土、动植物等就是你加入到这个大场景中的元素。
因此,我们要在labview中仿真控制四足机器人、实现多路支配关系,就必须先建立一个大场景,然后在向这个大场景中添加所需要的元素。 其中,将四足机器人的四条腿分别作为一个个独立的小场景加入到机器人身体这个场景中,四条腿都是身体场景中的元素。
建立大场景并添加一个坐标轴:
创建四足机器人场景:
在该项目中,我们在大场景中添加小场景,并且使这些小场景都是彼此独立的,这样就不会产生相互影响了。
在上图代码中,我们新建了一个叫做四足机器人的小场景,并将机器人的身体部分加入到这个小场景中。
知识点说明:
对于添加场景来说,以下两种方法都是等效的,都可以在三维场景中添加新的场景对象:
添加对象vi:
调用节点添加对象:
以上两种方法的区别即是:通过调用节点添加对象的输出端可以直接对已添加的场景对象进行变换操作!
以上两种方法的转换方法:
对添加对象vi操作:
转换结果如下:
至此,对于添加场景并引用来说,以上两种方法都是等效的。
每一条腿都是单路支配关系:
为每一条腿都建立一个独立的小场景。每一条腿都包括三个部分:大腿部分、小腿部分和前爪部分,这三部分构成单路支配关系:大腿部分支配小腿部分和前爪部分;小腿部分也支配前爪部分。 其中一条腿的小场景的建立过程见上图所示。
将所有元素按正确关系添加到大场景中:
在该项目中,包含一个大场景、一个坐标轴场景、一个四足机器人场景和四条腿各自的小场景,四条腿各自的小场景是包含在四足机器人的场景中。场景中添加元素的方法:
使用 添加对象vi 将元素添加到场景中,同时,不对已添加的元素进行引用操作,这样就实现了独立控制!
总结与注意:
- 在场景中添加对象时一定要注意添加元素的顺序;
- 小场景也是大场景中的一个元素,这是包含的关系,小场景中也包含其他多个元素或更小的场景;
- 实现场景独立的方法:不对已添加的元素进行引用操作。
对于各部件控制的实现,对已添加到场景中的元素进行引用操作即可:
或者:
部分控制操作vi:
❤️感谢以下大佬的资料分享!
labview学习笔记–3D模型(1)
labview学习笔记–3D模型(2)
labview学习笔记–3D模型(3)
机械类——Labview 调用 Solidworks 模型,制作机械臂控制方式探索
LabVIEW学习分享(2)
labview调用solidworks3维模型
订阅该系列文章专栏,不错过精彩内容~开源不易,转载请注明原文链接(本文章只在CSDN发布)!
结尾
- ❤️ 感谢您的支持和鼓励!
- 您可能感兴趣的内容:
- 【FPGA-Spirit_V2】基于FPGA的循迹小车-小精灵V2开发板
- 【Go黑帽子】使用Golang编写一个TCP扫描器(高级篇)
- 【Labview机器视觉】- USB摄像头识别和解码二维码 - 学习记录
- 【Verilog HDL】FPGA-Verilog文件的基本结构