在Simscape中创建虚拟机器人环境:组装机器人并从CAD中导入

在接下来的两个博客中,我们希望教授如何在机器人设计和编程中使用动态三维模拟,因此我们与马特·谢弗谁是应用程序支持工程师。他将教你如何建立CAD从现有的机器人设计到Simulink,以便创建虚拟环境,复制真实的生活条件,并可用于测试和编程的机器人。在这些博客的末尾,您不仅可以为下面所示的机器人从头开始构建环境,而且您还可以应用这些相同的步骤为您自己的机器人构建模拟。

第1部分:装配机器人和从CAD导入

动机

在工程中选择一种基于模型的设计方法的主要动机之一是通过仿真将设计和测试同时进行。但是当你在建造一个机器人的时候,你怎么能利用这个方法呢?你可能是从你的设计的CAD开始,从这些图纸开始建造机器人。自然的最后一步是开发一种控制算法,但是在实际硬件上进行测试既昂贵又耗时。如果有一种方法可以使用模拟实践来可视化新算法是如何立即工作的呢?如果你甚至可以编辑你的CAD,看看你的机器人设计中的变化如何影响它的性能呢?
这是所有可能的使用SIMULINK和Simscape多体!Simscape Multibody是MathWorks的一个工具,它允许您建模和模拟机械系统。您可以导入CAD文件到Simscape,并可视化这些文件如何移动时,连接正确的接头。
这个博客将引导您完成创建一个用于测试机器人的虚拟环境的步骤;在本例中,我们使用了VX V5 Clawbot举个例子。确实有3种型号您可以在阅读此工作流时对其进行研究。我希望你觉得这有帮助,请让我知道你在评论中的想法!

在Simscape中装配一个模型

在Simscape Multibody中为您的机器人创建虚拟环境的第一步是在Simscape中复制您的CAD程序集。

导入CAD

将CAD程序集导入Simscape有两个主要途径:
  1. 使用MathWorks模型导入函数。此方法自动从SolidWorks、Autodesk Inventor、PTC Creo等一些专用CAD程序导入OnShape。如果您刚刚开始使用您的机器人CAD,那么请考虑配偶和关节指南为各自的导入插件,这将节省大量的时间,从长远来看。
  2. 手动将CAD模型分离为子程序集,然后使用文件实心“封锁,并使用关节和”刚性变换把它们连接在一起的块。这种方法是最通用的,通常会导致性能的提高。
在探索了这两种路径之后,我们决定采用备选方案2。由于导入工具分解了CAD模型,使得每个部分在Simscape中都有自己的实体表示,因此很难理解模型。此外,如果您以前从未使用过Simscape多体块交互,那么使用组件方法将提供一个很好的介绍。
在我们的演示中,我们试图导入一个VEXClawbot,唯一必要的子程序集是那些独立移动的程序集,所以选项2更简单。我们使用的独立子程序集如下:
  1. 底盘
  2. 车轮(其中4个)
  3. 上臂
  4. 下臂
  5. 爪(7个独立部分)
Clawbot爪子绕圈

一旦选择了这些子程序集,就可以通过删除对仿真精度没有很大影响的组件来简化模型。在我们的情况下,我们拆下紧固件。如果您试图使用自动导入插件,因为它们导入程序集中的每个部件,这一点就更重要了。
清理CAD模型之后,将组件保存为.stl文件。这个“文件实心”块可以用来将这些组件加载到Simulink环境中。在块中指定STL文件之后,您将需要设置实体的惯性属性。您的CAD环境应该自动为您计算这些惯性属性。

加缝

导入STL文件后,您需要弄清楚如何将这些部件链接到不同接头。我建议从一个简单的草图开始,说明你的组件是如何连接的。
为了简单起见,一定要选择一个尽可能少自由度的关节,同时还要考虑到想要的动作。在这个模型中,这意味着我们主要使用旋转关节.
下面是底盘和左前轮之间的简单连接:
这个刚性变换块是用来将关节和车轮中心的质量转移到正确的位置。您可以在CAD软件中使用内置的测量工具来查找每个部件的相对位置。
我最纠结的问题之一是旋转参照系,这样旋转关节就能像预期的那样工作。SIMULINK中允许旋转的所有关节都是相对于Z轴的。我发现最简单的方法是手动更改文件实心块中的轴,如下所示:
*请注意,此更改意味着您还需要更改刚性转换块值。这种情况下的转换数组是[z,-y,x]。
只有文件实体和刚性转换块,您可以找到每个部分的位置相对于底盘,并安排所有的部分在一起,以创建完整的机器人。然而,对于某些零件,正确的连接位置并不在零件的质量中心,需要使用一个额外的刚性转换块来沿零件移动关节。下面我将向你们介绍如何做到这一点。

选择联合地点

方法1:CAD分析
在大多数CAD软件中,你可以直接抓取零件的质心,测量从质心到零件上任何其他点的距离。
在Simscape中为ARM创建一个关节如下所示:
在这里,我们使用两个刚性转换块将关节移到正确的位置。“关节-臂转换”块中的偏移量是直接从手臂质量中心与关节之间的CAD测量中提取出来的。现在让我们来看看“从连接到基础的转换”块。
使用前面列出的步骤,我们得到了臂重心和底盘原点之间的偏移量为[6.966,1.483,4.539]。然后,我们需要移动到关节的实际位置,减去从质量中心到关节的距离[-1.6.0]。
这个力学探索者是创建Simscape多体程序集时最好的朋友。在您编译模型后,您可以看到关节现在位于正确的位置,并连接到底盘和上臂。使用力学资源管理器来验证零件的位置,甚至进行微小的位置调整。
*注:为了使模型能够编译,您首先需要连接求解器配置, 世界框架,和机构配置进入机器人底盘。稍后,我们将移动这些块,使它们连接到竞技场。
方法2:目视检查
在某些情况下,您最好使用从更实际的方法导出的近似度量。这方面的一个很好的例子是爪子。该爪由6个移动部件组成,它们连接在爪座上。
在Simscape中,我将其划分为两个子系统,每半个爪都有一个子系统。下面是爪子右半部分的样子:
一开始,想出如何把所有这些部件和关节放在正确的位置是有点令人难以抗拒的,但如果我们把它分解,结果却是很简单的。让我们从检查“右枢轴”连接开始。
在计算机辅助设计中,我们找到了质量的右枢轴中心与爪基质心之间的距离。然而,如果我们不只是与CAD一起工作,我们就可以在实际的硬件中拥有同样容易测量的感兴趣点。记住要使用旋转选项来确保Z轴也是旋转轴。接下来,添加一个旋转关节和另一个带有[0 0]偏移量的刚性转换块。
接头现在连接到质量的右枢轴中心。通过编译模型并导航到机械资源管理器中的接口,您可以看到这一点:
我们还看到,关节的框架需要在负x和正y方向上移动,才能到达我们希望它下注的位置(红色箭头)。然后,我们迭代不同的x和y偏移值,直到我们看到正确的位置。如果您知道一个部件的长度,您也可以同样容易地导出所需的偏移量。
谢谢你到目前为止和我们住在一起!如果您已经为您自己的机器人设计遵循了类似的步骤,那么现在您应该在Simscape机械资源管理器中对您的设计有一个完整的组合表示,它说明了所有组件的重量和惯性。在这篇博文的下一部分,我们将讨论如何添加影响机器人运动的力和力矩,以及如何添加更多的部件来创建一个完整的虚拟测试环境;请参阅这里的第2部分。。记住下载这里显示的模型,如果您有兴趣探索更多的物理建模示例和预构建模型,请查看Simscape多体实例.
作为一项奖励,这里简要回顾了这篇文章中的提示,供您在导入自己的机器人时使用:
进口CAD
从CAD(例如紧固件)中拆下多余的零件,以简化进口过程。
将您的CAD模型分解成需要相对于彼此移动的单独部分。使用文件实心块将每个部分导入到Simscape环境中。
从您的CAD软件中查找每个部件的惯性属性,并为每个部分设置这些属性。
加缝
将每个部件的参考框架原点设置为质量中心是很有帮助的,因为在CAD中,您通常可以对零件的质量中心进行剪接。
所有旋转必须与Z轴相关.
使用你的CAD软件,找出不同部位质心之间的距离。
如果关节不在质量中心(例如:臂),则必须在连接块的两侧放置刚性转换块。
博客地址:https://blogs.mathworks.com/racing-lounge/2020/08/18/creating-virtual-robot-environments-in-simscape-part-1/

在Simscape中创建虚拟机器人环境(一):组装机器人并从CAD中导入相关推荐

  1. 在Simscape中创建虚拟机器人环境(二):添加物理、对象交互和自主

    在Simscape中创建虚拟机器人环境:添加物理.对象交互和自主 由阿列克莎·桑切斯, (2020年8月31日),转载博客地址:https://blogs.mathworks.com/racing-l ...

  2. 在Win32程序中创建OpenGL渲染环境

    在Win32程序中创建OpenGL渲染环境 创建opengl渲染环境步骤: 选定像素格式 //WinMain()HDC dc = GetDC(hwnd);PIXELFORMATDESCRIPTOR p ...

  3. 如何在 DAX 中创建 “虚拟关系”

    各位小伙伴周三好,今天工坊为大家带来的是如何在DAX中创建"虚拟关系". 七夕很快就要到了,希望大家了解这三个创建"虚拟关系"的函数之后,马上可以和TA建立起关 ...

  4. VirtualBox问题——无法在父文件夹中创建虚拟文件夹

    创建新系统提示无法在父文件夹中创建虚拟文件夹 解决:以管理员的身份运行VirtualBox

  5. VirtualBox中的虚拟网络环境设置

    网络连接其实是面向网卡的,当一台电脑拥有多块网卡,并且每块网卡连接了不同的网络就能理解了. 默认情况下,VirtualBox为虚拟网卡提供了四种网络环境:Network AddressTranslat ...

  6. 在unity中创建python机器学习环境

    # 创建一个新的学习环境 本教程将介绍创建unity环境的过程 unity环境是使用unity引擎来训练增强学习代理器的应用 设置unity项目 1. 打开一个项目导入unity机器学习包, 或者新建 ...

  7. 如何在Windows 7中创建虚拟硬盘

    Have you ever wished you had an extra Hard Disk to store files, share, or set aside as an encrypted ...

  8. java插件获取首选项_Eclipse RCP 中创建自定义首选项,并能读取首选项中的值

    Eclipse RCP的插件中若想自己定义首选项需要扩展扩展点: org.eclipse.core.runtime.preferences //该扩展点用于初始化首选项中的值 org.eclipse. ...

  9. 如何在geth中创建genesis.json_Adobe XD 入门教程-如何在 Adobe XD 中创建交互式原型?...

    完成屏幕设计后,您可以将各屏幕互相连接,以便直观地了解用户如何体验您的应用程序或网站.Adobe XD 允许您创建交互式原型,直观地展示如何在屏幕或线框之间导航.您可以预览交互,验证用户体验并对设计进 ...

最新文章

  1. 人脸识别撞脸名画_与名画“撞脸”火爆数博会 观众直呼“太好玩”【高清组图】...
  2. 执行 java -jar xxx.jar 是不是创建进程问题
  3. 51CTO下载专题有奖征集建议:您的期待,我们的方向!
  4. Coursera NLP 笔记02
  5. html print 边距,css print
  6. Linux开启路由转发功能
  7. 和整数相乘_小学数学基础概念归纳总结:整数篇
  8. ActiveMQ测试工具
  9. 自动生成xml报文_使用python如何给xml报文进行签名 signXML库
  10. 按键精灵定位坐标循环_关于按键精灵win10抓抓截图问题
  11. 局域网服务器时间自动校准,实现局域网内服务器时间同步的方法
  12. 【树莓派 + 深度学习 + Python】从零开始做一个你画AI猜的小游戏
  13. 史上最全的点线面距离公式与推导过程(图文介绍)
  14. 常用的项目管理工具有哪些?
  15. 用VC资源动态链接库解决国际化问题
  16. MBTI职业倾向测验
  17. 飞秋怎么搜索指定ip好友_飞秋怎么加好友
  18. F - Shifting String(置换的阶+思维)
  19. 电动牙刷也有国产黑马,竟然比千元大牌还厉害 | 钛空实测
  20. 服务器最多带多少硬盘,一般服务器的硬盘空间有多大?怎么能给那么多 – 手机爱问...

热门文章

  1. 用Python制作有声小说
  2. 【链表】C++链表反转、链表逆序打印(三)
  3. 2021年电气试验免费试题及电气试验模拟考试题
  4. Symantec SEP控制台密码忘了的恢复方法
  5. Python用log文件绘制损失、准确率曲线
  6. 口袋妖怪java诺基亚n97,诺基亚N97解析:细节设计与接口
  7. PHP中的6种加密方式
  8. pytorch学习-从入门到mnist(一)
  9. [实用技巧] 永久改键软件SharpKeys, 超级好用
  10. office文件在线预览