Webots串级机械臂建模仿真过程-详细!

此篇博客转自本作者在古月居的博客:https://www.guyuehome.com/24692

前言: 非常高兴能作为古月居的签约作者,以后将推出更有价值的文章,以供参考。   由于最近要参与一个等效为机械臂的项目,肯定需要做仿真,在加上好友青云同样想要学习机器人仿真软件,特此推出这个简单的教程,基于的环境是Webots-2020a。另外,在很早之前,自己也推出了一个舵轮底盘的教程,但是相对于机械臂来说,结构稍显简单。这次为构建一个三自由度机械臂作为参考案例。最终效果图如下  

图片1

  首先,在webots中建立一个工程,点击上方Wizards,新建工程为mii_hand。  

图片2

  然后,在建立环境,为hand.wbt, 一路确认。  

图片3

  然后,在左边列表栏,鼠标右击,Add new,展开Base nodes, 添加一个Robot节点。  

图片5

  添加后,左侧展开Robot节点,找到children,children很重要,后面不同组件的关系都是依据在children 下并行连接还是串行连接。这里我们需要给这个机器人添加一个主体形状,右击children, 点击Add New,找到Base node添加一个Shape, 需要配置他的几何形状(需要右击geometry, 然后Add New,在Base node下面)和外观(需要右击material, 然后Add New,在Base node下面),具体的配置如下,这是一个黄色的圆柱体。  

图片6

  有了具体形状,那么我们肯定还需要配置他的物理效果。首先需要为它添加碰撞边界,首先需要重新命名所建立的Shape, 点击Shape后在下方找到DEF,修改为BODY。然后在Robot节点下面找到boundingObject,右击添加,找到USE,具体如图所示,可以找到BODY(Shape)。然后,找到physics Physics,直接添加物理属性。这里如果不做修改,默认质量按 体积*密度。关键点如下图。  

图片7

图片8

  完成上述后,最后一览效果如下。此时,运行仿真,圆柱体就会立在地面上。  

图片9

  接下来添加机器人关节,需要为机器人添加铰链(HineJoint),在BODY shape 下面,右击添加Base node 下面中的 HingeJoint。  

图片10

  首先为铰链添加一个实体(Solid),先展开HingeJoint,同样上面的操作,添加Solid。  

图片11

  同样之前的操作,添加形状为 Cyliner,然后配置他的大小,颜色等。  

图片12

图片13

  配置大小,位姿,形状如下橙黄色圆柱体所示  

图片14

  接下来配置电机实体的碰撞编辑和物理效果,与之前的BODY操作一致。  

图片15

图片16

  接下来配置,铰链的位置信息,如下。其中,主要是axis 和 anchor ,分别的表述意思为轴朝向和轴坐标位置,仔细观察前面的实体左边,你会发现和圆柱实体中心重合,这符合旋转电机特点。

图片17

  接下来为铰链添加设备,这里添加电机,当然还可以添加位置传感器,一般的电机API中可以返回位置信息,所以可以选择不用在添加。  

图片18

  接下来配置电机具体参数,其中有很多属性,这里只配置最大速度和最大扭矩,其他保持默认,该假设电机为理想的模型。  

图片19

  此时点击上方运行,可以发现铰链关节随主体一起运动(我这里对机器人添加干扰力,使其翻倒)。  

图片20

  接下来,需要给铰链添加延伸的肢体,相似的,在铰链关节下Solid的children下添加Solid,此时肢体的父坐标系就是电机的Solid。  

图片21

  由于,第一个肢体是一个L形的形状,需要两个长方体Shape拼接而成,此处,需要用到Group和Transform,前者可以理解为将多个Shape组合为一个对象,后者则是对对象的一个位移和旋转变换。   同样的流程,在肢体Solid下面添加Group  

图片22

  然后添加 Transform  

图片23

  在 Transform 下添加 Shape,配置形状,大小,及纹理参数。  

图片24

  同样的操作,配置第二个肢体第二部分  

图片25

  此时,需要配置肢体的碰撞边界时,只需要重新定义Group就可以,然后添加物理效果,具体配置如下图  

图片26

  然后,则需要配置下一个关节单元。在上面配置的肢体下面的children下面添加HingJoint,与上面同样的流程,电机属性一致,不相同的参数部分有以下所示,  

图片27

图片28

  那么,同理,如果要进行下一段肢体的配置,则在 Motor2 下的Solid 下的children下,添加肢体的Solid即可。具体配置与上述同理,具体参数如下  

图片29

  然后,就可以配置第三个电机单元和下一段肢体。配置流程,同上述的过程,配置的效果如下  

图片30

  然后,运行仿真(我这里对机器人添加干扰力,使其翻倒),可以看到  

图片31

  初步总结:   配置的核心思想就是,一个实体或者组件,在父节点的children下就意味着,该实体或者组件坐标系从属父节点的坐标系。对于串级的机械臂,配置可以是K级坐标系在上K-1级坐标系下,这是一种比较容易理解的方法。当然,不只有这一种配置方法。   接下来,建立一个简单的控制器(python),驱动电机单元。点击上面的Wizards,点击New Robot Controller,一路next,  

图片32

图片33

图片34

  我是使用 VSCode打开可以看到,  

图片35

  这一步很关键,需要将Robot下面的控制器修改为我们新建的控制器,展开Robot,找到controller,具体如下,  

图片36

  紧接着,编写控制器内容。这里我们简单调用那三个电机,跑到一个固定位置下。  

图片37

  最终运行的效果如下所示,可以见到机器人把手举了起来。  

图片38

  总结: Webots构建机器人简易模型是非常容易的,建模方法不只有这一种。这个过程在给与一个简单的例子,方便大家理解。如果熟悉了整个流程,那么就可以很容易去构架其他的串级关节的机器人,比如构建一个四足机器人。  

4(%[A6AZ4UI3)46_9M)6%MK

  最后,如果有什么疑问,欢迎大家留言。

  • 13
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 串级控制系统过程控制是一种常见的控制方法,适用于工业生产过程中需要多个控制环节的情况。在串级控制系统中,存在多个级联的控制回路,每个回路都负责控制一个特定的参数或变量,通过这种方式实现对整个系统的控制。 在使用Simulink进行串级控制系统过程控制的仿真时,首先需要建立相应的模型。模型应该包括整个控制系统的结构和参数,以及输入和输出的连线关系。每个控制环节应该单独建立,根据具体的控制算法和控制目标,设定好每个环节的控制器参数。 在模型建立完成后,可以进行仿真实验。在仿真过程中,可以通过给定特定的输入信号,观察输出的响应,以及每个控制环节的工作状态。通过仿真可以得到系统在不同输入条件下的响应特性,分析系统的稳定性、动态性能以及控制效果。 通过Simulink的仿真结果可以对串级控制系统过程控制进行评估和优化。可以通过调整不同环节的控制算法、参数或者结构来达到更好的控制效果。同时,可以进行系统鲁棒性分析,以评估系统在不确定因素下的性能表现。 总之,通过Simulink的仿真,可以对串级控制系统过程控制进行模拟实验,分析系统的动态特性和控制效果,优化控制算法和参数,并进行系统鲁棒性分析。这样可以在实际控制过程中更好地应用串级控制系统过程控制方法,提高工业过程的控制精度和稳定性。 ### 回答2: 串级控制系统是一种常用的过程控制方式,它由多个级别的控制回路组成,每个回路负责控制系统中一部分的操作。在这种控制方式下,每个回路都能对系统的输出进行调节,从而实现整体控制目标。 使用Simulink对串级控制系统进行仿真可以帮助我们评估和优化系统的性能,以及验证控制算法的有效性。在进行仿真之前,我们需要首先建立系统模型。模型包括过程模型和控制器模型两个部分。 过程模型用于描述系统的动态响应特性,可以根据实际情况选择不同的数学模型来建立。常见的过程模型包括一阶惯性模型、二阶振荡模型等。在Simulink中,我们可以使用各种数学运算和传递函数来搭建过程模型。 控制器模型用于实现所需的控制策略,可以采用PID控制器、模糊控制器、自适应控制器等。Simulink提供了丰富的控制器模块,我们可以根据需求选择合适的模块并进行参数调节。 在搭建好模型后,我们可以进行仿真实验。通过对不同的输入信号进行仿真,我们可以观察系统的输出响应,并分析系统的稳定性、鲁棒性等性能指标。如果发现系统的性能不满足要求,我们可以调整模型参数或优化控制算法,并再次进行仿真验证。 通过Simulink的仿真分析,我们可以更好地理解串级控制系统的工作原理,并对系统性能进行评估和优化。同时,Simulink还提供了方便的数据可视化工具,可以通过曲线图、功率谱图等方式展示仿真结果,帮助我们更直观地分析和理解系统的性能特征。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值