学生休息室

分享技术和现实生活的例子,学生可以如何使用MATLAB和Simulink在他们的日常项目#学生成功万博1manbetx

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

接下来的两个博客何塞阿根廷马特·谢弗合作开发和增量教程有关如何使用动态3D仿真进行机器人设计和编程。我们将教导您如何从现有机器人设计中的CAD进入Simulink,以创建复制现实生活条件的虚拟环境,可用于测试和编程机器人。万博1manbetx在这些博客的末尾,您不仅可以从下面显示的机器人的划痕来构建环境,但您还将能够为您自己的机器人构建模拟来应用这些相同的步骤。阅读此博客后,请务必退房第2部分在这里.享受吧!

截图

第1部分:组装机器人并从CAD进口

动机

在工程中选择基于模型的设计方法的主要动机之一是通过模拟同时进行集成设计和测试。但是当你在制作机器人时,你如何利用这个方法呢?你可能会从你的设计的CAD开始,并根据这些图纸建造机器人。自然的最后一步是开发控制算法,但是在实际硬件上进行测试既昂贵又耗时。如果有一种方法可以使用模拟实践来可视化新算法是如何立即工作的呢?如果您甚至可以编辑您的CAD来查看机器人设计的变化是如何影响其性能的呢?

这都是可以利用的万博1manbetxSimscape多体!Simscape Multibody是一款来自MathWorks的工具,可以对机械系统进行建模和模拟。您可以将CAD文件导入Simscape,并可视化这些文件在通过正确的接头连接时是如何移动的。

此博客将通过我采取的步骤来创建虚拟环境以进行测试以进行测试,以便测试机器人;在这种情况下,我们使用了烦恼V5 Clawbot作为一个例子。有3模型您可以在阅读本工作流的同时进行探索。我希望这对你有帮助,请在评论中告诉我你的想法!

在Simscape中组装模型

在Simscape Multibody中为机器人创建虚拟环境的第一步是在Simscape中复制CAD组装。

导入你的计算机辅助设计

将CAD组件导入Simscape有两种主要途径:

  1. 使用MathWorks”模型导入功能.这种方法可以自动从SolidWorks、Autodesk Inventor、PTC Creo等专用CAD程序导入Onshape.如果你刚刚开始你的机器人CAD,然后考虑伴侣和联合指南对于各自的导入插件,这将节省你大量的时间在长期运行。
  2. 手动将CAD模型分开到子组件中,将它们导入其与'的SIMSCUSCE文件实'块,并使用接头和'刚性变换'块将它们连接在一起。这种方法是最通用的,通常可以导致性能改进。

在探索了这两种途径后,我们决定采用选项2。由于导入工具分解了CAD模型,使得每个部分在Simscape中都有自己的实体表示,因此会导致很难理解模型。此外,如果您以前从未使用过Simscape Multibody块交互,那么使用子组装方法可以很好地了解它。

对于我们的演示,我们试图导入一个VEX Clawbot,唯一必要的组件是那些独立移动的组件,所以选项2更简单。我们使用的独立组件如下:

  1. 机壳
  2. 轮子(其中4个)
  3. 上臂
  4. 下臂
  5. 爪(7个独立零件)

图像

爪机器人爪与子组件环绕

一旦选择了这些子组件,就可以通过删除对模拟精度没有高影响的组件来简化模型。在我们的例子中,我们取下紧固件。如果您试图使用自动导入插件,这一点就更加重要,因为它们会导入组件中的每个部件。

在清理CAD模型后,将组件保存为. stl文件。的“文件固体”块可用于将这些组件加载到Simulink环境中。万博1manbetx在块中指定STL文件后,您需要设置实体的惯性属性。您的CAD环境应该自动为您计算这些惯性属性。

截图

添加关节

导入STL文件后,您需要弄清楚如何将部件连接在一起不同的关节.我建议先简要介绍一下组件是如何连接的。

模型

为简单起见,始终选择尽可能短自由度的接头,同时仍然允许所需的运动。在这种模型的情况下,这意味着我们主要使用转动关节

这是一个简单的连接之间的底盘和前左轮看起来像:

模型

刚性变换用滑车将关节和车轮的质心移到正确的位置。您可以使用CAD软件中的内置测量工具来查找每个部件相对于其他部件的位置。

我最纠结的一个问题是旋转参考系这样转动关节就能像预期的那样工作。Simulink中所有允许旋万博1manbetx转的关节都是相对于Z轴的。我发现最简单的方法是手动改变文件实体块中的轴,如下所示:

截图

*注意,这个改变意味着你还需要改变刚性转换块的值。在这种情况下,平移数组将是[z,-y,x]。

只有文件固体和刚性转换块,你可以找到每个部分的位置相对于底盘,并安排所有的部分一起创建完整的机器人。然而,对于某些零件,正确的关节位置不在零件的质心,需要使用一个额外的刚性转换块沿零件移动关节。下面我将向您展示如何做到这一点的示例。

选择关节位置

方法1:计算机辅助设计分析

在大多数CAD软件中,您可以直接捕捉到部件的质量中心,并测量距离质心的距离到零件的任何其他点。

图像

在Simscape中为手臂创建一个关节如下所示:

模型

在这里,我们使用两个刚性变换块将关节转移到正确的位置。“从接合到臂转换”块的偏移直接从CAD测量从扶手和接头之间的CAD测量拉动。现在让我们看看“从关节转换为基础”块。

截图

使用前面概述的步骤,我们得到了扶手中心和底盘原产地之间的偏移量是[6.966 1.483 4.539]。然后,我们需要通过将距离物质中心与关节中的距离减去接头的实际位置[-.16.0]。

力学的探险家是创建Simscape多体程序集时最好的朋友。在编译模型后,您可以看到关节现在位于正确的位置,并连接到底盘和上臂。使用机械探测仪来验证零件位置,甚至做小的位置调整。

*注意:为了使模型编译,您将首先需要连接解算器配置世界坐标系,机制配置方块到机器人底盘。稍后,我们将移动这些方块,让它们连接到游戏场地。

截图

方法2:目视检查

在某些情况下,最好使用从更实用的方法中得到的近似度量。一个很好的例子就是爪子。爪是由6个移动部件,附在爪安装。

图像

在Simscape中,我将其划分为2个子系统,一个用于每一半的爪子。以下是爪子的右半爪看起来像:

模型

一开始,弄清楚如何将所有这些部件和连接点放在正确的位置有点困难,但如果我们分解它,就会发现它很简单。让我们从“正确的枢轴”连接开始。

在CAD中,我们发现右枢轴中心与爪子基地的距离之间的距离。但是,如果我们不仅仅与CAD合作,我们可以在实际硬件中轻松测量兴趣点。请记住使用旋转选项来确保Z轴也是旋转轴。接下来,添加旋转接头和另一个刚性变换块,其中[0 0 0]偏移。

这个关节现在连接到右侧的质心。你可以通过编译模型并在Mechanics Explorer中导航到关节来看到这一点:

截图

我们还看到关节的帧需要在负x和正y方向上移动,以便到我们希望它下注的位置(红色箭头)。然后,我们通过不同的x和y偏移值迭代,直到我们看到正确的位置。如果您知道部分的长度,您也可以轻松派生所需的偏移量。

截图

截图

谢谢你一直和我们在一起!如果您在自己的机器人设计中遵循了类似的步骤,那么现在应该在Simscape Mechanics Explorer中拥有一个完整的设计表示,该表示考虑了所有组件的重量和惯性。在这篇博文的下一部分,我们将讨论如何添加影响机器人运动的力和力矩,以及如何添加更多的部件来创建一个完整的虚拟测试环境;点击这里查看第2部分.记得下载此处显示的型号,如果您有兴趣探索更多的物理建模示例和预构建模型,请查看所有Simscape Multibody的例子

作为奖励,这里有一个快速总结,当你导入自己的机器人时,这篇文章的提示:

进口CAD.

  • 从CAD中移除多余的部件(如紧固件),以简化进口过程。
  • 将您的CAD模型分解为需要相互移动的独立部分。使用文件实块将每个部件导入Simscape环境。
  • 从CAD软件中查找每个零件的惯性属性并设置每个部分的属性。

增加关节

  • 将每个部件的参考系原点设置为质心是有帮助的,因为你通常可以在CAD中捕捉到部件的质心。
  • 所有的旋转都必须是关于z轴的。
  • 使用你的CAD软件找到不同部分的质心之间的距离。
  • 如果关节不在部件的质心(例如:手臂),你必须在关节块的两边放置刚性转换块。
|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。