首先需要使用两个工具:
一个是SolidWorks的插件solidworks_urdf_exporter
下载地址:Releases · ros/solidworks_urdf_exporter · GitHubhttps://github.com/ros/solidworks_urdf_exporter/releases
另一个是webots官方提供的URDF2WEBOTS
1.首先建模,做出装配体。
2. 对于相对复杂的模型,需要创建每个关节的转轴(参考几何体-基准轴),导出urdf时,设置关节位置和关节转轴方向可以先自动生成,但有时导出可能失败,建议自己建立参考坐标系和参考轴。根据失败的案例装配体里面各零件的名字,坐标系,转轴的名字要设置为英文,否则可能导出时webots中的机器人零件处于散乱状态。
3.然后在工具→File→Export as URDF中打开导出对话框。
选择base_link,并确定子节点的数量。选择自己为base_link建立的坐标系。然后点击自己新建的Empty_Link节点。
4.点击Empty_Link设置子节点,将其命名为Link1,JointName设置为 joint1,这个名字就是之后在webots中的电机名字。再选择自己建的坐标系,转轴。确定关节类型(Joint Type),我选择了revolute类型。(图中有说明)
5.余下关节以此类推,都确定好后点击Preview and Export按钮。
在Joint界面要确定Axis栏都赋值了,看自己的关节名字,坐标系,转轴,关节类型选择是否正确。然后点击Next。
6.在Link界面中 Material name一栏必填,随便写个名字,空着的话在webots无法显示模型。
然后点击Export URDF and Meshes ,则导出了urdf文件。导出时文件名不能以数字开头。
7.URDF文件导入 webots环境
其中urdf文件夹目录下是生成的URDF文件。
导入webots环境需要使用的是webots官方提供的URDF2WEBOTS工具。 工具需要python环境。
安装方法
pip install urdf2webots
使用方法
python -m urdf2webots.importer --input=urdf所在目录
正常情况会输出
Robot name: urdfeasyv5
Root link: base_link
There are 25 links, 24 joints and 0 sensors
运行该命令会在运行目录下生成对应的proto文件。需要搜索一下。
8.处理proto文件
成功生成了proto可能还有问题,导入进webots之后可能会啥也没有。此时用任意编辑器打开proto文件,可能会发现stl模型的url的斜杠有问题,如图
可以直接全局替换,将\全部换成/
打开webots,新建一个项目,将proto文件放入该项目的protos文件夹
然后在webots中点击新增,在 PROTO nodes中将模型加入webots环境。
找到生成的节点,右键点击Convert Root to Base Node(s)转化为可操作的节点。
这时URDF模型已经成功导入Webots中。