SolidWorks 文件转 Webots 操作指南

目录

准备工作

列出在开始转换之前需要准备的工具、软件和资源。

1. 安装 SolidWorks 文件转为 URDF 的插件

安装 sw2urdf 插件,以支持将 SolidWorks 导出的 URDF 文件导入 Webots。
可自定义安装路径,不影响使用。
该插件的使用说明:sw_urdf_exporter 文档
使用指南:sw_urdf_exporter 教程

安装完成后,确保在 SolidWorks 中启动插件,启动选项如下:

打开插件选项,勾选 SW2URDF 插件并确定。
此时可在 工具->Tools 中看到 Export as URDF 选项。
在这里插入图片描述

2. 安装 urdf2webots 工具

安装 urdf2webots 工具,以支持将 URDF 文件转换为 Webots 的 PROTO 格式。
该工具为 Python 编写,需要 Python 环境。
使用 pip 命令安装:在命令行输入 pip install urdf2webots
安装完成后,在命令行中输入 pip show urdf2webots,可以查看安装详情。

转换步骤

步骤1: 导出 SW 文件为 URDF

  • 打开SolidWorks并加载您的装配体模型,确保装配体的关节设置正确。
  • 打开工具->Tools->Export as URDF。
    在这里插入图片描述

在弹出的窗口中,首先选择作为base节点的实体,并可设置其名字以及子节点数量。

  • 添加子节点数量为1,然后选择子节点,再次设置该子节点对应的实体、名字以及子节点数量,此处的Joint Name即为关节电机的名称。
    在这里插入图片描述

  • 所有节点设置完成后,点击Preview and Export进入导出向导,此时将在SolidWorks中生成一些坐标系、转轴等定义,并出现一个名为SolidWorks Assembly to URDF Exporter的窗口。

  • 第一个页面用于手动调整关节属性,如位置和旋转,确认所有设置无误,点击Next
    在这里插入图片描述

  • 第二个页面用于选择节点,包括位置、旋转、质量、惯量、颜色、材质等,确认所有设置无误,点击Export URDF and Meshes并选择导出的文件路径。
    在这里插入图片描述

  • 此时得到一个文件夹,内容如下:
    在这里插入图片描述

步骤2: 将 URDF 文件转换为 Webots 的 PROTO 格式

  • 新建一个Webots项目,并将刚刚得到的文件夹放到Webots项目文件夹的protos文件夹下。

  • protos文件夹下打开命令窗口,并使用python -m urdf2webots.importer --input=".\satellite1.SLDASM\urdf\satellite1.SLDASM.urdf"命令,此处的input参数为导出的URDF文件路径,请根据实际情况修改。此处出现两个文件,其中.proto格式的文件为Webots的PROTO格式。
    在这里插入图片描述

  • 打开Webots项目,点击添加,选择proto,选择刚刚得到的proto模型,即可添加到Webots中。
    在这里插入图片描述

步骤3: 在 Webots 中修改和使用 PROTO 文件

  • 使用文本编辑器打开Webots项目的worlds/ProjectName.wbt发现其与proto文件结构类似,不同之处在于:

    • proto文件具有PROTO标识符,且定义了一些参数,如translationrotation等;
    • wbt文件定义有WorldInfoViewpointBackground等内容。
  • 为此我们可以将proto文件中我们需要的Robot部分复制到wbt文件中,并将PROTO标识符定义的参数进行替换,得到的Robot部分为:
    在这里插入图片描述

  • 如果使用Webots打开wbt时失败,说明修改错误,建议先备份原wbt文件,再进行修改。

  • 此时可以在Webots中编辑机器人模型,添加关节电机,添加传感器等。
    在这里插入图片描述

常见问题

  • 如果未能出现所需的PROTO模型,且Webots下方出现错误
    • 错误1::35:19:错误:Invalid escaped character. {1'?} {2:19:?}
      • 解决方案:检查所指示位置(35行,19列)处的字符,一般为路径符合错误,如\改为/
    • 错误2::7:7:错误:Invalid token "Satellite1.SLDASM". {1'?} {2:7:?}
      • 解决方案:检查所指示位置(7行,7列)处的字符,一般为名称错误,如Satellite1.SLDASM改为satellite1.SLDASM,并将相关名称均同步修改。且PROTO标识符后的名称需与文件名一致。

在这里插入图片描述

参考资料

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐