学生休息室

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

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

接下来的两个博客何塞阿根廷而且马特·谢弗合作开发了关于如何使用动态3D模拟进行机器人设计和编程的增量教程。我们将教你如何将现有的机器人设计安装到Simulink中,以创建复制现实生活条件的虚拟环境,并可用于机器人的测试和编程。万博1manbetx在这些博客的最后,您不仅能够从头开始为下面所示的机器人构建环境,而且还能够应用这些相同的步骤为您自己的机器人构建模拟。读完这篇博客,一定要去看看第二部分.享受吧!

截图

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

动机

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

这些都是可以使用的万博1manbetx而且Simscape多体!Simscape Multibody是MathWorks的一个工具,可以让您建模和模拟机械系统。您可以将CAD文件导入Simscape,并可视化这些文件在通过正确的关节连接时如何移动。

这篇博客将带你走过我为测试机器人创建虚拟环境的步骤;在这种情况下,我们使用VEX V5爪机器人举个例子。有这里有3个模型您可以在阅读此工作流程时进行探索。我希望这篇文章对你有帮助,请在评论中告诉我你的想法!

在Simscape中组装模型

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

导入CAD

将CAD程序集导入Simscape有两种主要途径:

  1. 使用MathWorks”导入函数.这种方法可以自动从SolidWorks、Autodesk Inventor、PTC Creo等专用CAD程序导入Onshape.如果你刚刚开始你的机器人CAD,然后考虑伴侣和关节指南为各自的导入插件,这将节省大量的时间在长期运行。
  2. 手动将CAD模型分离为子程序集,使用'文件实块,并使用关节和刚性变换'块来连接它们。这种方法是最通用的,通常可以提高性能。

在探索了两种方法后,我们决定选择第二种方法。由于导入工具分解了CAD模型,使得每个部分在Simscape中都有自己的实体表示,这可能导致模型难以理解。如果您以前从未使用过Simscape多体块交互,那么使用subassembly方法还可以很好地介绍它。

对于我们的演示,我们试图导入一个VEX crawbot,惟一必要的子程序集是那些独立移动的子程序集,因此选项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测量中提取。现在让我们看看“Transform from Joint to Base”块。

截图

使用前面概述的步骤,我们得到手臂质心与底盘原点之间的偏移为[6.966 1.483 4.539]。然后我们需要通过减去质心到关节的距离[-]来移动到关节的实际位置。1 6.0 0]。

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

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

截图

方法2:目视检查

在某些情况下,您最好使用从更实用的方法获得的近似测量值。一个很好的例子就是爪子。爪由6个可移动的部件组成,它们都连接到爪座上。

图像

在Simscape中,我将其划分为2个子系统,分别对应爪的一半。下面是爪的右半部分的样子:

模型

一开始,弄清楚如何把所有这些部件和关节放在正确的位置有点让人不知所措,但如果我们把它分解开来,就会发现它很简单。让我们从研究“右枢轴”连接开始。

在CAD中,我们求出了右枢轴质心与爪底质心之间的距离。然而,如果我们不仅仅使用CAD,我们可以很容易地测量实际硬件中的兴趣点。记住使用旋转选项来确保z轴也是旋转轴。接下来,添加一个转动关节和另一个具有[0 0 0]偏移量的刚性变换块。

关节现在连接到右重心上。你可以编译模型并在Mechanics Explorer中导航到关节:

截图

我们还看到关节的框架需要在负x和正y方向上移动,以达到我们想要它下注的位置(红色箭头)。然后我们迭代不同的x和y偏移值,直到我们看到正确的位置。如果你知道零件的长度,你也可以很容易地推导出所需的偏移量。

截图

截图

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

作为奖励,当你导入你自己的机器人时,下面是这篇文章的提示:

进口CAD

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

增加关节

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

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。