sw模型导入webots

本文档创建于2023年3月8日
本文档介绍了将外部模型导入webots的方法
文档作者:RobotFreak

外部模型导入webots主要分两部分:将建模软件中的模型文件转换为urdf等格式,将URDF等格式的文件导入webots

SW导出URDF

参考博客:(6条消息) sw2urdf使用探索_liwei28256的博客-CSDN博客

下载sw2urdf

首先需要下载sw2urdf插件,根据自己的SW版本选择对应的release进行下载:Releases · ros/solidworks_urdf_exporter (github.com)

运行可执行文件后,可以将URDFExporter文件夹放在安装sw的文件夹中:

在这里插入图片描述

安装好之后,在sw中点击设置处的插件:

在这里插入图片描述

显示出SW2URDF插件并已启动即可:
在这里插入图片描述

生成参考坐标系与参考轴

建好模型后,需要给每个连杆生成参考坐标系与参考轴,参考坐标系与参考轴在转urdf时也会用到。

可以自己手动建参考坐标系与参考轴,也可以让插件自动生成坐标系和轴。自动生成的话需要配合关系设置好,配合关系设置的不好会自动生成不想要的关节类型。

手动建参考坐标系与参考轴

参考坐标系尽量在几何体的中心或者边界上,参考轴与实际想要的运动一致即可:

在这里插入图片描述

建好参考坐标系和参考轴之后就可以进行urdf的导出了:

在这里插入图片描述

然后在出来的界面中设定各个连杆和关节,选择关节的类型、参考坐标系、参考轴等。设置好后选择Preview and Export。

自动生成参考坐标系与参考轴

设置好配合关系,自动生成参考坐标系与参考轴还是非常方便的。

在这里插入图片描述

在sw2urdf的界面中选择自动生成参考坐标系与参考轴即可:
在这里插入图片描述

设置关节参数与连杆参数

然后接下来注意设置关节的limit,根据需要来,一般旋转关节可以设置为-3.14~3.14(可以转整圈),力矩和最大速度依据需要设置。检查一下旋转轴有没有错误

在这里插入图片描述

再之后的连杆设定可以直接按照默认生成的来。

在这里插入图片描述

然后电机Export URDF and Meshes生成package。生成的package是一个文件夹,默认的名字有.SLDASM后缀,注意将后缀.SLDASM去掉。

在这里插入图片描述

URDF导入webots

参考资料:

  1. webots导入URDF模型文件_哔哩哔哩_bilibili

  2. urdf2webots · PyPI

urdf导入webots用到了一个模块urdf2webots,需要先安装这个模块:

pip install --no-cache-dir -U urdf2webots

安装成功:

在这里插入图片描述

生成proto

切换到urdf文件所在目录,利用urdf2webots生成proto文件:

在这里插入图片描述

复制所需文件

生成好后,将需要的文件复制到webots的项目目录下。

在这里插入图片描述

这里可能会有[urdf文件名_meshes]文件夹,如果有的话也需要复制过去。这些复制到webots项目的protos目录下:

在这里插入图片描述

然后是将meshes文件夹和textures文件夹复制到webots项目目录下。(如果没有用到textures的话里边是空的,也可以不复制)

在这里插入图片描述

复制到webots目录下:

在这里插入图片描述

修改proto文件

proto文件中mesh的链接(url)默认是绝对路径,我们需要将其改为相对路径,否则直接导入到webots中url会为空:

在这里插入图片描述

在webots中导入proto

在webots的项目中添加节点,导入proto:

在这里插入图片描述

导入后模型显示出来:

在这里插入图片描述

将节点转换为Robot节点,选择Convert to Base Node(s):

在这里插入图片描述

在这里插入图片描述

这样导入就基本完成了,后续可以对节点的字段信息进行相应调整。

需要注意的地方

origin_global的位置

一般在webots中直接建立一个节点给它一个形状时,坐标系是默认位于中心的。对于SW导出的模型来说,base_link的坐标系是origin_global。当我们选择为base_link自动生成坐标系时,origin_global默认以SW中的原点为坐标系原点建立坐标系。当我们的base_link距离原点比较远时,就会在导入webots时出现base_link的坐标系离它的实体很远的现象。

解决方法本质上来说就是调整base_link的参考坐标系的位置,可以通过两种途径:

  1. 自己建立一个坐标系。在导出为urdf时选择以自建的坐标系为参考。
  2. 自动生成坐标系。将base_link与原点的相对位置调整好,或者在origin_global生成后调整origin_global的位置。

另外,在我们画机械图的时候就可以通过一些技巧来方便坐标系的建立。比如,建立模型的时候就努力使原点位于模型的中心(这意味着要习惯于使用两侧对称而不是单向拉伸)。

如下图,原点位于几何体中心:

在这里插入图片描述

这样在装配体中可以很方便的通过移动零部件到(0,0,0)位置来使得原点位于几何体中心(经常是对于base_link)

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
导入SW模型到3ds Max有几种方法。首先,你可以在SolidWorks软件中将模型保存为通用的三维格式,例如STL、WRL等,然后再导入到3ds Max中。这种方法的缺点是只能导出模型的点线面信息,而且操作较麻烦。 另一种方法是直接将SolidWorks生成的默认文件类型(.SLDASM、.sldprt)直接导入到3ds Max 2022中。如果你使用的3ds Max版本太低不支持这些文件类型,建议升级到最新版本。这种方法的优点是可以将模型的旋转轴信息、分组信息和命名信息一同导出。 总结来说,你可以选择将SW模型导出为通用的三维格式,然后导入到3ds Max中;或者直接将SolidWorks生成的默认文件类型直接导入到3ds Max 2022中。选择哪种方法取决于你的需求以及使用的软件版本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SW模型如何导入3DMAX?](https://blog.csdn.net/qq_46629729/article/details/120263417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SOLIDWORKS 模型导入到 3ds Max](https://blog.csdn.net/java_shen_sir/article/details/126233695)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RobotFreak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值