【全网首发开源教程】【Labview机器人仿真与控制】Labview与Solidworks多路支配关系-四足爬行机器人仿真与控制

news2024/12/29 10:38:54

🎉欢迎来到Labview专栏~四足爬行机器人仿真与控制


  • ☆* o(≧▽≦)o *☆~我是小夏与酒🍹
  • 博客主页:小夏与酒的博客
  • 🎈该系列文章专栏:Labview-3D虚拟平台
  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
  • 📜 欢迎大家关注! ❤️
    sizujqr

CSDN

🎉【Labview机器人仿真与控制】四足爬行机器人-目录

  • 一、前言
    • 🥝效果展示
    • 🥝基础知识学习与回顾
    • 🥝软件说明
  • 二、重点内容回顾
  • 三、项目理论讲解
  • 四、案例制作全流程
    • 4.1 模型零件的准备
    • 4.2 零件的导出
    • 4.3 编写vi
      • 4.3.1 太阳系范例讲解
      • 4.3.2 在大场景中加入小场景
      • 4.3.3 控制的实现
  • 五、参考文章

遇见未来

一、前言

🥝效果展示

🔸四足机器人整体预览:
1
🔸机器人关节运动:
2
🔸机器人整体旋转与关节运动:
3

🔸部分vi代码展示:
代码

本教程全部内容均为本人探索研究整理得出,现在将该部分资料内容开源!

效果展示中的完整项目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。

软件版本
SOLIDWORKS2022
NI LabVIEW2021 (32位)

LabVIEW 2021(32位)和LabVIEW 详细课程获取:三易电子工作室;也可以搜索并关注微信公众号【易小时课堂】或者【三易电子工作室】了解更多内容。

二、重点内容回顾

🔸装配体、父级与子级:【Labview-3D虚拟平台】Labview与Solidworks联合仿真(保姆级)(下)在Labview中使用Solidworks的3D模型——装配体、父级与子级

首先回顾一下上文中的关系指示图
🔸单路支配关系
单路支配关系,即父级支配第一子级,然后依次向下支配第二子级、第三子级、…、第n子级。对于单路支配关系的详细讲解参考上述文章链接。

通过对单路支配关系的实践应用,我们可以完成对机械臂等的仿真与控制:
机械臂

🔸多路支配关系

支配
支配
支配
支配
支配
支配
父级
第一子级1
第一子级2
...
第二子级1
第二子级2
第n子级

由上图指示:

  1. 第一子级1和第一子级2称为 同级 ;同样,第二子级1和第二子级2也称为 同级
  2. 子级对象自身的变换操作不会影响到同级对象。

🔸关于父级和子级的作用与相互影响

父级处于主导地位,影响着其下的各个子级,对子级起支配作用;子级只对其下的子级起支配作用,完全不会对父级造成影响,也不会对同级造成影响。

上述内容即是文章《装配体、父级与子级》中的理论基础。在我发布上一篇文章之后,有许多小伙伴不太清楚多路支配关系是如何实现的,也对多路支配关系的实现抱有怀疑态度。在此篇文章中我将对其进行详细介绍。

多路支配关系中,父级占最高位置,对以下的所有子级起支配作用,而且同级之间不会产生相互影响,最经典的多路支配关系模型之一就是多足机器人
多组机器人

三、项目理论讲解

🔸项目实现目标
📜四足机器人的身体部分是父级,对机器人的四条足起支配作用;
📜机器人四条足彼此之间不存在任何相互影响;
📜任何一条足的组成都是单路支配关系。

🔸四足爬行机器人的结构关系:

支配
支配
支配
支配
支配
支配
支配
支配
支配
支配
主体
左前足
右前足
左后足
右后足
大腿关节
小腿关节
前爪
...
...
...

四、案例制作全流程

4.1 模型零件的准备

该项目的四足机器人建模文件都包含在已上传的压缩包资源中:
四足机器人
由于该四足机器人的零件较多,且大部分零件都是固定不动的,为了导入labview时方便快捷,对部分零件组装为装配体之后再导出wrl格式。例如机器人的身体部分就可以作为一个装配体导出:
1
2
对零件进行处理之后得到的各部分装配体:
新装配体

4.2 零件的导出

在零件导出时最重要的还是要找到旋转关节,在旋转关节部位建立新坐标系

在之前的文章中介绍过,labview中的3D显示坐标基准笛卡尔-右手坐标系。所以在零件中建立新坐标系的时候,还需要选择好一个轴为整体模型的前端

在本次项目中,我选择以Z轴正方向作为机器人的前端

对于新手来说,在这里给出一个在零件圆心处建立新坐标系的方法:
🔸以圆心为原点新建坐标系:
1
🔸第一步:
2
🔸第二步:
3
🔸第三步:
4
🔸第四步:
5
🔸第五步:
6
🔸新坐标系建立完成:
7

4.3 编写vi

当我们将模型零件准备好并导出wrl格式文件之后,就可以开始vi的编写了。

4.3.1 太阳系范例讲解

对于在labview中实现3D操作,太阳系范例真的特别经典!
太阳系
在该范例中,包含了相当多的知识点,其中就包括了多路支配关系的实现
多路支配关系

在此说明一点:在labview中,你导入的零件模型被称为对象,而我习惯于说成场景(可能会与一些vi函数产生歧义),希望读者能够在后续的文章中分辨清楚。

大家一定要认真学习并掌握太阳系的范例vi,可以学到很多有用的知识点!

4.3.2 在大场景中加入小场景

如何实现多路支配关系呢? 在labview的3D操作中,必须存在一个 大场景 ,然后在这个大场景中加入其他需要的元素,例如光照、坐标轴、小场景等等。换一个说法,你想要制作一个生态缸,那就必须先有一个大的透明塑料容器或者其他材料的容器,然后在这样的容器中加入泥土、假山、草皮、植株、小动物或者昆虫等等。其中,容器就是你实现生态缸的一个大场景,而泥土、动植物等就是你加入到这个大场景中的元素。

因此,我们要在labview中仿真控制四足机器人、实现多路支配关系,就必须先建立一个大场景,然后在向这个大场景中添加所需要的元素。 其中,将四足机器人的四条腿分别作为一个个独立的小场景加入到机器人身体这个场景中,四条腿都是身体场景中的元素

🔸建立大场景并添加一个坐标轴:
大场景
🔸创建四足机器人场景:
机器人场景
在该项目中,我们在大场景中添加小场景,并且使这些小场景都是彼此独立的,这样就不会产生相互影响了。

在上图代码中,我们新建了一个叫做四足机器人的小场景,并将机器人的身体部分加入到这个小场景中。

🔸知识点说明:
对于添加场景来说,以下两种方法都是等效的,都可以在三维场景中添加新的场景对象:
添加对象vi:
添加对象
调用节点添加对象:
调用节点
以上两种方法的区别即是:通过调用节点添加对象的输出端可以直接对已添加的场景对象进行变换操作!

以上两种方法的转换方法:
添加对象vi操作:
第一步
转换结果如下:
结果
至此,对于添加场景并引用来说,以上两种方法都是等效的。

🔸每一条腿都是单路支配关系:
一条腿
为每一条腿都建立一个独立的小场景。每一条腿都包括三个部分:大腿部分、小腿部分和前爪部分,这三部分构成单路支配关系:大腿部分支配小腿部分和前爪部分;小腿部分也支配前爪部分。 其中一条腿的小场景的建立过程见上图所示。

🔸将所有元素按正确关系添加到大场景中:
在该项目中,包含一个大场景、一个坐标轴场景、一个四足机器人场景和四条腿各自的小场景,四条腿各自的小场景是包含在四足机器人的场景中。场景中添加元素的方法:
添加元素
使用 添加对象vi 将元素添加到场景中,同时,不对已添加的元素进行引用操作,这样就实现了的独立控制!

总结与注意:

  1. 在场景中添加对象时一定要注意添加元素的顺序;
  2. 小场景也是大场景中的一个元素,这是包含的关系,小场景中也包含其他多个元素或更小的场景;
  3. 实现场景独立的方法:不对已添加的元素进行引用操作。

4.3.3 控制的实现

对于各部件控制的实现,对已添加到场景中的元素进行引用操作即可:
操作1
或者:
操作2
部分控制操作vi:
控制操作

五、参考文章

❤️感谢以下大佬的资料分享!

labview学习笔记–3D模型(1)

labview学习笔记–3D模型(2)

labview学习笔记–3D模型(3)

机械类——Labview 调用 Solidworks 模型,制作机械臂控制方式探索

LabVIEW学习分享(2)

labview调用solidworks3维模型

订阅该系列文章专栏,不错过精彩内容~开源不易,转载请注明原文链接(本文章只在CSDN发布)!
csdn

🧸结尾


  • ❤️ 感谢您的支持和鼓励! 😊🙏
  • 📜您可能感兴趣的内容:
  • 【FPGA-Spirit_V2】基于FPGA的循迹小车-小精灵V2开发板
  • 【Go黑帽子】使用Golang编写一个TCP扫描器(高级篇)
  • 【Labview机器视觉】- USB摄像头识别和解码二维码 - 学习记录
  • 【Verilog HDL】FPGA-Verilog文件的基本结构
    遇见未来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/483185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【python】keras包:深度学习

Part 0. 环境配置 与 学习数据下载 keras包 与 tensorflow包 WinR ,输入指令: pip install tensorflow pip install keras 推荐镜像:-i https://pypi.tuna.tsinghua.edu.cn/simple/ 关于包 keras包相当于是 tensflow 包的前端 tensflow包…

15 | Qt的自定义信号

1 前提 Qt 5.14.2 2 具体操作 2.1 自定义信号 2.1.1 UI界面设置 2.1.1.1 widget.ui 2.1.1.2 setdialog.ui 2.1.2 headers 2.1.2.1 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui {class Widget; } QT_END_NAMESP…

105-Linux_Libevent库的安装与使用

文章目录 一.Libevent 概述1.Libevent的特点2.Libevent使用模型3.Libevent 支持的事件类型 二.Libevent的安装三.Libevent简单使用实例 一.Libevent 概述 Libevent 是开源社区的一款高性能的 I/O 框架库&#xff0c;使用 Libevent 的著名案例有&#xff1a;高性能的分布式内存…

操作系统之死锁处理策略

概念 一、什么是死锁 哲学家进程问题中&#xff0c;都在等待另外的哲学家放弃另一只筷子&#xff0c;造成了都不能用餐的现象&#xff0c;互相等待对方的资源 二、死锁、饥饿、死循环区别 三、死锁产生的条件 1、互斥条件 只有对互斥使用的资源的争抢才能导致死锁&#xff0…

shell编程、makefile学习笔记

windows :\r\n linux:\n 1.shell介绍 1.1、shell是操作系统的终端命令行 (1)shell可以理解为软件系统提供给用户操作的命令行界面&#xff0c;可以说它是人机交互的一种方式。 (2)我们可以使用shell和操作系统、uboot等软件系统进行交互。具体来说就是我们通过shell给软件…

【SpringBoot 应用打包与部署】

SpringBoot 应用打包与部署 笔记记录 1. Jar包方式打包与部署1.1 添加maven打包插件1.2 双击package打包成功1.3 IDEA中运行jar文件 2. War包方式打包与部署2.1 声明打包方式为War包2.2 双击package2.3 将打包好的war包放在Tomcat的webapps目录下 1. Jar包方式打包与部署 1.1 …

嵌入式开发--无刷电机学习4--SVPWM

SVPWM空间矢量脉宽调节 这张图是基于α和β坐标系&#xff0c;也就是定子磁场坐标系&#xff0c;图中的Uout就是定子磁场的空间矢量&#xff0c;它的角度表示定子线圈产生磁场的方向&#xff0c;长度表示磁场的强度&#xff0c;以电机匀速旋转为例&#xff0c;FOC控制的目标就是…

【Java】抽象类接口Object类

目录 1.抽象类 2.接口 2.1实现多个接口 2.2接口之间的关系 2.3接口使用实例 2.3.1Comparable接口 2.3.2Comparator接口 2.3.2Clone接口 2.4抽象类与接口的区别 3.Object类 3.1getClass方法 3.2equals方法 3.3hashcode方法 1.抽象类 定义&#xff1a;抽象方法&…

[Cursor Tool] 面向编程的ChatGPT工具的入门使用指南

文章目录 0. 面向编程的ChatGPT工具的入门使用指南1. Cursor的下载和安装2. Cursor的基本功能的使用2.1 关于Cursor的Chat模式2.2 关于Cursor的Edit模式 3 关于Cursor的项目级应用4 使用Cursor帮助我们从项目的设计出发来为我们提供建议 0. 面向编程的ChatGPT工具的入门使用指南…

车载软件架构——闲聊几句AUTOSAR BSW(三)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 我特别喜欢一个老话,来都来了。我觉得这就是松弛感,既然来了,就开心起来吧!松弛感来自于专注,焦虑不是靠克服的,是靠忘记的,当你很专注做一件事的时候…

剪枝与重参:课程总结

目录 课程总结前言1. 基础快速入门2. 基于VGG的模型剪枝3. 英伟达2-4剪枝方案4. YOLOv8剪枝5. ACNet、DBB、RepVGG重参个人总结 课程总结 前言 手写AI推出的全新模型剪枝与重参课程。记录下个人学习笔记&#xff0c;仅供自己参考。 本次课程主要是课程总结&#xff0c;对之前学…

设计模式之代理模式(静态代理动态代理)

目录 1、什么是代理模式 2、代理模式的结构 3、代理模式的实现 3.1 静态代理和动态代理概念 3.2 静态代理 3.3 动态搭理 3.3.1 代码实现 3.3.2 Proxy类讲解 4、动态代理VS静态代理 5、代理模式优缺点 1、什么是代理模式 由于某些原因需要给某对象提供一个代理以控制对…

【开发工具】 Adobe 2022 最详细的安装方法 就是这么简单 绿色 安全方便

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&#x1…

vulnhub靶场之Black-Widow-final

1.信息收集 探测存活主机&#xff0c;发现192.168.239.177存活 对目标主机192.168.239.177进行端口扫描&#xff0c;发现存活22、80、111、2049、3128等端口 在浏览器中访问http://192.168.239.177&#xff0c;并查看源码&#xff0c;未发现有用的信息 对http://192.168.23…

【openGauss实战11】性能报告WDR深度解读

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

c++题库练习

19. 以下叙述中正确的是&#xff08;&#xff09; A 使用typedef说明新类型名时&#xff0c;其格式是&#xff1a; typedef 新类型名 原类型名; B 在程序中&#xff0c;允许用typedef来说明一种新的类型名 C 使用typedef 说明新类型名时&#xff0c;后面不能加分号 D 在使用typ…

three.js学习 06 - 结合GSAP(补间动画)设置各种动画效果(运动效果与双击暂停动画等效果)

1. GSAP简介 GSAP&#x1f44d;&#x1f3fc;是前端业内非常有名的一个动效库&#xff0c;有大量的优秀的网站都在使用它。它不仅能在原生JS的环境下使用&#xff0c;也能配合各种当前流行的框架进行使用。 通过使用它&#xff0c;非常多原本实现起来很有难度的交互动画效果&a…

计算机必读基础书籍

计算机必读数据 一&#xff1a;故事背景1.1 前言1.2 提示 二&#xff1a;计算机组成2.1 是什么2.2 有什么2.2.1 计算机系统概述2.2.2 数据信息的表示2.2.3 运算方法与运算器2.2.4 存储系统2.2.5 指令系统2.2.6 中央处理器2.2.7 指令流水线2.2.8 总线系统2.2.9 输入输出 2.3 思维…

[MAY DAY]五一综合训练 之——最值问题

文章目录 > **## * 要赋值 &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; *** %#&#xffe5;#%#*&&#xff01;&#xff01;&#xff01;&#xff01;要赋值一、双指针求最大连续和双指针算法分析&#xff1a; 注意&#xff…

Java学习笔记-03

目录 类与对象 类class 对象 修饰符private this关键字 构造函数 继承 权限修饰符 包package 状态修饰符final 类与对象 类 类是对现实生活中一类事物的抽象&#xff0c;里面包含了这类事物共有的属性(名词)和行为(动词)例如人类&#xff0c;人就是一个大类&#xff…