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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

然后添加 Transform

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 六自由度机械臂建模仿真(matlab程序),有控制面板,标价即为真实价格,代码可流畅运行

    六自由度机械臂建模仿真(matlab程序),有控制面板,标价即为真实价格,代码可流畅运行 1.机器人运动学正逆解.动力学建模仿真与轨迹规划,雅克比矩阵求解 2.蒙特卡洛采样画出末端执行器工作空间 3. ...

  2. adams matlab 联仿 5DOF机械臂 建模以及联合仿真

    adams matlab 联仿 5DOF机械臂 建模以及联合仿真 模型搭建 人类手臂活动限制 Adams 力矩设置 控制模型 联仿之坑 1. 初始化错误 2. S-function 错误 3. 仿真到 ...

  3. matlab机械臂建模运动学仿真+轨迹规划

    Matlab机械臂仿真 1.内容参考B站视频:https://www.bilibili.com/video/BV1q44y1x7WC?spm_id_from=333.337.search-card.a ...

  4. matlab adams 机械臂,基于ADAMS与MATLAB/SIMULINK的二杆机械臂动力学仿真与验证

    川七 一 , , , 乓 基于 与 的二杆机械臂动力学仿真与验证 贾雪峰' , 宋洪军' , 荣学文 , 李贻斌 山东农业大学机械与电子工程学院 , 山东泰安 , 一 ] 」 山东大学控制科学与工程学 ...

  5. 基于matlab 宗晓萍,基于ADAMS和MATLAB的机械臂控制仿真

    基于ADAMS和MATLAB的机械臂控制仿真 宗晓萍;李月月 [期刊名称]<微计算机信息> [年(卷),期]2009(000)035 [摘要]运用多体系统动力学分析软件ADAMS建立虚拟模 ...

  6. 串级PID调试simulink仿真

    串级PID调试simulink仿真 设计串级PID 串级PID图解: 在设计串级PID的时候,我们从图可以知道,主控制器的输出是副控制器的输入. 主控制器输出可以是输出实际的物理量,也可以输出百分比. ...

  7. Matlab机械臂综合仿真平台,包含运动学、动力学和控制。 MATLAB机器人仿真正逆运动学simulink轨迹规划 机械臂动力学控制等

    Matlab机械臂综合仿真平台,包含运动学.动力学和控制. MATLAB机器人仿真正逆运动学simulink轨迹规划 机械臂动力学控制等 gui控制仿真平台PUMA机器人 robotics toolb ...

  8. 在Simulink中利用simmechanics对三自由度的串联机械臂进行仿真

    在写本科的毕业论文的时候,需要对三自由度的机械臂进行一个仿真实验.在网上查阅相关资料,得知可以利用simmechanics 来进行仿真实验.关于simmechanics 这个的介绍就百度一下就可以,这 ...

  9. matlab机械臂dh仿真,基于MATLAB Robotics Tools的机械臂仿真

    基于MATLAB Robotics Tools的机械臂仿真 [摘要]在MATLAB环境下,对puma560机器人进行运动学仿真研究,利用Robotics Toolbox工具箱编制了简单的程序语句,建立 ...

最新文章

  1. cisco 2811 安装HWIC-2FE卡 升级IOS 记录
  2. python备份cisco交换机_1.自动备份思科交换机配置
  3. 如何自学python基础-零基础如何学习python
  4. 摊牌了,我靠他实现了NLP模型使用入门
  5. PL/SQL如何设置 窗口列表默认显示
  6. 互联网手机躁动:“周大炮”追逐“雷布斯”
  7. php 5.6 引用传递,升级到5.6.x后如何在php中修复引用传递
  8. 2013年第一季度中国移动互联网应用安全检测与分析报告
  9. jQuery文档就绪事件
  10. ldd usr bin mysql_ldd与otool
  11. AD模块电压采集电路
  12. 分享:蛋花儿主题WordPress瀑布流 V1.05(收费版)
  13. java解析micaps_9210的Micaps第13类卫星云图数据
  14. mac打开桌面与屏幕保护程序卡死(解决方案)
  15. 28岁转行程序员?别想了、没戏。事实真就如此残酷?
  16. 正在学习C++的屑人麻了
  17. 计算机jsp外文文献,JSP英文参考文献
  18. 阵列信号DOA估计系列(一).概述
  19. 数据要素市场的发展及运行
  20. ldap服务器的虚拟属性,搭建LDAP验证服务器

热门文章

  1. 关于python类说法正确的是_关于Python的说法正确的是
  2. java程序员在交接别人的工作时如何保证顺利交接?
  3. unity创建与解析json
  4. PHP软件库源码+支持CDKey卡密充值
  5. kuangbin带你飞 专题一
  6. 第七十一篇:从ADAS到自动驾驶(四):车辆检测
  7. 郑明秋什么版本的MySQL_《MySQL数据库实用教程》郑明秋,蒙连超,赵海侠著【摘要 书评 在线阅读】-苏宁易购图书...
  8. Ramdisk -内存盘的使用
  9. HDOJ2955 Robberies(01背包,概率)
  10. zip分卷压缩与合并解压