webots使用以及第三方模型导入装配、运动学仿真教程

article/2025/6/8 8:40:19

因为项目需要使用机器人的运动学仿真,因此需要的使用相应的机器人运动学仿真软件。在查阅了一些资料以后,决定使用webots作为仿真的基本软件。

但是webots的使用教程,国内基本没有。仅在博客园的内的有一个系列博客,介绍了webots的使用的方法。但是没有提供相应的装配方法。webots自身的使用手册与用户说明已经够实用,但是大部分细节都没有介绍。因此经过一个周的学习与研究,了解掌握了webots进行的运动学仿真的基本方法。

1. webots模型的导出成VRML格式

工业机器人的模型一般在机器人生产厂商的官方网站提供了模型的下载。本人使用的是国内某工业机器人供应商生产的机器人,在官网内提供了1比1的机器人CAD装备体模型。格式是SolidWorks文件的。因此将其下载下来以后打开,如图所示。其装配结构如图所示。

图1 机器人的三维模型                                          图2 机器人的装备结构

工业机器人的运动主要是其六个轴的运动。因此,在进行运动学仿真时,需要将每个轴臂的装备体分别导出。webots支持导入的格式是VRML97格式。因此使用SolidWorks进行导出。VRML97格式的文件打开时是有自身内部的坐标系的。因此在导出的时候,为了方便后期在webots内部进行装备,需要对坐标系进行建立与确定。具体的步骤如下:

以工业机器人的第二臂与第三臂为例,其CAD模型在装备的时候是通过减速器连接的轴进行的。因此,为了方便控制第二臂的运动,建议将坐标系的原点建立在底座与第二轴连接处。原始装配体的原点就是建立在此处,因此可以直接导出。如图所示

图3 第二轴装配部的原点

在导出的时候,SolidWorks选择另存为VRML格式,点击选型,选择VRML97,标系选择默认,如图所示:

图4 导出VRML格式

第三轴装配部因为模型自身的坐标系没有的建立在二三轴的连接处,因此需要建立一个额外的坐标系,方便导出。建立方法不再赘述。导出的时候在图4里面需要选择相应的坐标系。

在导出的时候,需要记录每个轴坐标下,下一轴坐标系原点到本轴坐标系原点的空间坐标,方便在webots里面进行装配。

2.单轴模型的处理

由于直接生成的VRML文件,包含较多的点面信息,整体的文件较大,在仿真的时候会使整体的计算变慢,甚至webots直接崩溃。而且,生产厂商网站的提供的模型可能带有较多无用的点面信息,在webots里面,单轴无法直接生成相应的transform文件。因此需要的对单轴导出的模型进行处理。使用的软件是Meshlab。我们只是进行简单的处理,因此 meshlab软件也不需要实际掌握。具体的方法是:

点击File->import Mseh选择单轴VRML文件

点击Filter->Remshing、Simplication进行两个步骤 如图所示其中一个是将模型上面无用的孔洞抹去,另一个是降低模型的点面质量,减少文件大小。通过这样的方法生成的VRML文件大概都在几百k以下了

图5 meshlab处理

 

图6 未处理模型 与处理后的模型

可以明显看出来,处理后的模型在细节与孔洞方面大大减少。可以提高相应的仿真速度。

完成VRML文件处理以后,需要将文件导入webots进行初步处理。webots在2018年以后已经开源,我这里使用的是最新版本的webots。

在webots里面新建项目,文件->import VRML97 选择之间的简化VRML文件导入,便可以看到相应的模型以及我们之前设定的坐标系。右键transfer将其转变为solid类型;再右键Export为wpo文件即可完成单轴文件的处理。

3.webots模型的装配

首先说明,webots的项目树的组成以及思想不同于我们之前用到的SolidWorks等的项目树,其最大的特点是无论任何类型的结构,均存在一个Children节点,在这个节点内部可以定义任意的实体以及模型类型。因此整个webots的使用就十分灵活了。

工业机器人不同轴之前的转动,使用的均是HingeJoint节点,即只有一个转动自由度的连接节点。详情参考webots的使用手册。

整体的装配过程如图所示:

图7 装配流程

详细过程为;

首先将底座导入项目树,方法是项目树最下面一项右键新增,导出之前的wbo文件;

然后将底座的类型转换为robot,方式是右键transfer->robot,方便后期添加运动;

然后需要在此设定相应的参数;

在导入完成后,在Arm1的children节点下就有一个shape节点,将使用DEF命名为Arm1Body,在Arm1的参数里面BoundaryObject里面,点击使用Arm1Body。

设定相应的铰链节点,在Arm1的children节点下新增baseNodes 选择HingeJoint;

点击HingeJoint节点的endPoint选择baseNodes为solid,这时候在该节点的Children下导入之前设定完成的Arm2第二轴装配体,endPoint的类型为solid,所以在其参数BoundaryObject里面,点击使用Arm2Body。需要调整相应的六个自由度,保证第二轴的原点落在相应第一轴坐标系里面一二轴的连接处。

相应的Jointparameter选择HingeJointParameter,其中Position是转轴转过的角度,是我们之后使用Motor进行控制的参数,不需要变动;axis是铰链的转轴 根据机器人的具体转动进行选择;anchor是我们在步骤1里面建立的Arm2坐标系原点距离Arm1坐标系原点的距离坐标。

device节点选择相应的RotationMotor,并把它的名字改成Motor1。

到此为止边完成了第二轴与底座的装配。完成的项目树如图所示:

图8 底座与第二轴的项目树

该机械臂是一个六轴的机械臂,其装配过程是一个层层嵌套的过程,需要保证每个都细节完成,才能完成相应的运动装备。

4. 工业机器人的运动仿真

根据之前在HingeJoint里面定义的Motor的名字,新建一个控制器,使用控制器里面的获取motor的函数以及赋值函数,即可完成机器的控制

  1. Motor *Arm2Motor = robot ->getMotor("Arm2Motor");
  2. Arm2Motor->setPosition(i);

由于我的项目不涉及机器人的运动控制,不涉及相应的机器人运动解析,因此我的工作到此基本完成了。想要继续研究网上的资料 很多。

图9 完成的工业机器人运动

总结:

webots的使用只要理解了他的项目树的结构还是十分简单的,但是国内的资料太少了,手册上面说的还是十分全面的,但是并不是十分详细,在具体的使用过程中需要实际进行操作。

当初选用webots进行仿真的原因是看到他的介绍上对于web很友好,但是研究了一下好像并没有十分友好,只是提供了一个模型展示与动画导出的功能(捂脸),感觉被骗了;除此以外,还可以实现webots作为后端的服务进行运行,前端web实时展示相应的过程。现在只做到了在本地演示,要在网络端运行好像还挺麻烦。以后补上。

同时,现在在gayhub上面的已经有其相应的源码了,我觉着跑掉webGL建立模型的仿真还是可以的。

图10 本地仿真web实时展示

 

 

 

 


http://chatgpt.dhexx.cn/article/NP45L9Kk.shtml

相关文章

ROS联合Webots扩展(二)通过语音控制机器人方案

通过语音控制机器人方案 注意: 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识此教程以webots_demo为基础 ubuntu版本:20.04 webots版本:2021a ros版本:noetic 0.前言 目前语音机器人已经非常…

Webots和ROS2使用说明(部分翻译)

参考链接 Reference: 文档:http://wiki.ros.org/webots_ros2源码:https://github.com/cyberbotics/webots_ros2 2021更新webotsros2 笔记系列: https://blog.csdn.net/ZhangRelay/article/details/112670542 目前,已…

Webots介绍

Webots介绍 1 介绍1.1 概述1.2 应用1.3 入门要求1.4 技术支持1.5 仿真步骤世界(webots定义)控制器超级控制器 1.6 平台能力三维建模能力物理引擎外设支持 2 软件使用启动webots用户界面文件菜单编辑菜单查看菜单模拟菜单构建菜单叠加菜单工具菜单帮助菜单…

三维地图Cesium加载天地图

1、首先去天地图官网申请key码&#xff0c;http://lbs.tianditu.gov.cn/server/MapService.html 2、下载Cesium静态资源包文件&#xff0c;如图 3、引入并加载 <div class"background" ><div id"cesiumContainer"></div></div>…

如何使用ArcGIS Pro制作三维地图

概述 随着设备性能提升和程序的升级&#xff0c;三维地图开始逐步登入主流地图&#xff0c;网上有很多使用ArcGIS制作三维地图的教程&#xff0c;这里给大家介绍一下使用ArcGIS Pro制作三维地图的方法&#xff0c;希望能对大家有所帮助。 数据来源 本教程所使用的数据是从水…

03 三维地图添加切片图层

在介绍了创建二维、三维地图之后,我们接下来介绍三维地图如何添加切片图层。地图添加切片图层的最终结果如下图所示,在此过程中默认实现了将业务图层居中显示的效果: 具体操作如下所示: 1 创建HTML基本架构,创建div和引入相关的文件,然后设置div的基本样式,如下: …

三维pcd地图转二维栅格地图

1.概述 在使用导航时&#xff0c;通常会根据二维栅格地图做路径规划&#xff0c;需要将三维点云地图转化成栅格地图。 本文采用滤波及投影的方法&#xff0c; 主要步骤包括 对输入点云进行直通滤波&#xff0c;获取限定高度范围的数据在进行半径滤波&#xff0c;去除部分孤立…

【python数据处理】替代Excel三维地图依据经纬度坐标的绘制热力地图的方式

替代Excel三维地图依据经纬度坐标的绘制热力地图的方式 背景pyecharts绘制 背景 由于某人访问了某地&#xff0c;即便是调整电脑中的区域为别的国家或者地区时候&#xff0c;excel三维地图选择时候依然会弹出很抱歉&#xff0c;三维地图当前不在你的国家/地区使用。这个“当前…

三维地图3D可视化应用案例

1、如何搭建离线地图开发环境 2、下载离线地图数据(金字塔瓦片数据&#xff09; 3、下载离线地图地形数据库&#xff08;实现地表高低起伏&#xff09; 4、添加离线地图数据到本地服务器 &#xff08;含3D&#xff09; 5、离线地图二次开发接口&#xff08;离线地图API&#…

BlenderGIS生成三维地图白模

目录 简介安装配置处理选点建模后记 简介 BlenderBlenderGISOpenTopography 可以实现地图选点并获取对应三维白模 安装 安装 blender&#xff08;版本不要太新&#xff0c;我用的是 3.0&#xff09;&#xff1a;https://www.blender.org/download/ 获取 blender-gis&#xf…

很抱歉,三维地图当前不能在你的国家/地区使用 Excel绘制三维地图问题解决

手动反爬虫&#xff1a;原博地址 https://blog.csdn.net/lys_828/article/details/123585838 知识梳理不易&#xff0c;请尊重劳动成果&#xff0c;文章仅发布在CSDN网站上&#xff0c;在其他网站看到该博文均属于未经作者授权的恶意爬取信息问题 之前在利用Excel进行三维地图…

MATLAB绘制三维地图

1、meshgrid&#xff1a;生成格点矩阵&#xff0c;类似于给定坐标空间 [x,y]meshgrid(1:10); 2、interp插值法 插值法又称“内插法”&#xff0c;是利用函数f (x)在某区间中已知的若干点的函数值&#xff0c;作出适当的特定函数&#xff0c;在区间的其他点上用这特定函数的值作…

说说基于BS架构的三维地图引擎如arcgis以及三维引擎cesium等在数字孪生三维可视化项目中踩过的那些坑

不知从何年何月BS架构的系统在PC端领域占据了大半壁江山&#xff0c;众多的软件公司为了迎合客户&#xff0c;在项目中纷纷采用BS架构&#xff0c;也因此导致培养了一大批相应的程序员技术人才。 然而&#xff0c;在移动端、手机领域&#xff0c;却又出现另一番景象&#…

ESMap三维地图开发流程

易景地图&#xff08;ESMap&#xff09;是一款三维地图在线开发平台&#xff0c;常被用来做智慧城市数据可视化的在线快速开发&#xff0c;广泛应用于室内外定位导航和数字孪生技术场景。下面就简单介绍一下ESMap三维地图的开发流程&#xff1a; 一、场景搭建 进入官网&#…

html加载三维地图,Cesium加载三维地形及WMS地图,并实现动态控制显示

写在前面: 本次工程主要实现的是cesium基础三维地形加载、视角控制、经纬度显示;重点是实现cesium加载wms图层,并对wms图层进行参数更新,实现动态控制,进一步实现时间地图的展示目的。为时间地图可视化提供了三维显示的思路。中间进行参数控制的时候,需要销毁provider,目…

实景三维数据也可以免费下载

之前分享过不少影像&#xff0c;矢量、DEM…数据下载方法。 随着实景三维的火热&#xff0c;一些实景三维数据可以免费下载吗&#xff1f; 有&#xff01;但可下载的真的不多… 今天我们就来看看怎么才能下载到免费的实景三维数据。 全国地理信息资源目录服务系统 https://…

ArcScene:构建三维地图

主要介绍一下使用ArcScene来制作三维地图&#xff0c;下面是主要的步骤 1.打开ArcGIS下面的ArcScene&#xff0c;将研究区域的DEM和矢量边界数据添加进来&#xff1a; 2.右键DEM&#xff0c;点击属性->基本高度&#xff0c;选择“在自定义表面上浮动”&#xff0c;该路径选…

【Echarts】三维地图叠加柱状图

代码如下所示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta http-equiv"Content-Type" content"text/html; charsetGBK" /><title>echarts 地图</title><script src"https://cdn.sta…

三维地图可视化应用教程

1、如何搭建离线地图开发环境 2、下载离线地图数据(金字塔瓦片数据&#xff09; 3、下载离线地图地形数据库&#xff08;实现地表高低起伏&#xff09; 4、添加离线地图数据到本地服务器 &#xff08;含3D&#xff09; 5、离线地图二次开发接口&#xff08;离线地图API&#…

三维地图看世界

随着当今社会的不断发展&#xff0c;人们的需求以及对效率质量的要求也在不断提高。城市建设也越来越密集&#xff0c;城市规划要求越来越高&#xff0c;城市管理中对人流、车流的控制也越来越精细&#xff0c;地图作为记录地理信息的一种图形语言形式&#xff0c;不仅为人们的…