第1部分:装配机器人和从CAD导入
动机
在工程中选择一种基于模型的设计方法的主要动机之一是通过仿真将设计和测试同时进行。但是当你在建造一个机器人的时候,你怎么能利用这个方法呢?你可能是从你的设计的CAD开始,从这些图纸开始建造机器人。自然的最后一步是开发一种控制算法,但是在实际硬件上进行测试既昂贵又耗时。如果有一种方法可以使用模拟实践来可视化新算法是如何立即工作的呢?如果你甚至可以编辑你的CAD,看看你的机器人设计中的变化如何影响它的性能呢?
这是所有可能的使用 SIMULINK
和 Simscape多体
!Simscape Multibody是MathWorks的一个工具,它允许您建模和模拟机械系统。您可以导入CAD文件到Simscape,并可视化这些文件如何移动时,连接正确的接头。
这个博客将引导您完成创建一个用于测试机器人的虚拟环境的步骤;在本例中,我们使用了 VX V5 Clawbot
举个例子。确实有 3种型号
您可以在阅读此工作流时对其进行研究。我希望你觉得这有帮助,请让我知道你在评论中的想法!
在Simscape中装配一个模型
在Simscape Multibody中为您的机器人创建虚拟环境的第一步是在Simscape中复制您的CAD程序集。
导入CAD
将CAD程序集导入Simscape有两个主要途径:
-
使用MathWorks 模型导入函数
。此方法自动从SolidWorks、Autodesk Inventor、PTC Creo等一些专用CAD程序导入 OnShape
。如果您刚刚开始使用您的机器人CAD,那么请考虑 配偶和关节指南
为各自的导入插件,这将节省大量的时间,从长远来看。
-
手动将CAD模型分离为子程序集,然后使用 文件实心
“封锁,并使用关节和” 刚性变换
把它们连接在一起的块。这种方法是最通用的,通常会导致性能的提高。
在探索了这两种路径之后,我们决定采用备选方案2。由于导入工具分解了CAD模型,使得每个部分在Simscape中都有自己的实体表示,因此很难理解模型。此外,如果您以前从未使用过Simscape多体块交互,那么使用组件方法将提供一个很好的介绍。
在我们的演示中,我们试图导入一个VEXClawbot,唯一必要的子程序集是那些独立移动的程序集,所以选项2更简单。我们使用的独立子程序集如下:
-
底盘
-
车轮(其中4个)
-
上臂
-
下臂
-
爪(7个独立部分)
一旦选择了这些子程序集,就可以通过删除对仿真精度没有很大影响的组件来简化模型。在我们的情况下,我们拆下紧固件。如果您试图使用自动导入插件,因为它们导入程序集中的每个部件,这一点就更重要了。
清理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/