【CoppeliaSim打怪升级之路】4. 尝试使用CoppeliaSim导出URDF文件

85 阅读3分钟

@Project : CoppeliaSim-TryToExportURDF
@Author :Lucio.YipengLi@outlook.com
@Date :2025/02/26
@CoppeliaSim Version: 4.9.0


使用CoppeliaSim内置的URDF导出器

1.问题背景

在CoppeliaSim中,我们有时候在原有导入的URDF上又重新做了调整,此时我们可能想用其他的方法去用这个最新的URDF,这时候就需要CoppeliaSim反向输出新的URDF文件。

CoppeliaSim有很方便的自动导出URDF器,只不过需要根据一定的规则去调整模型文件,否则可能会导出失败甚至是缺胳膊少腿。

2.问题分析

在这个问题下我们主要是学习几个要点:

1.CoppeliaSim的模型结构

2.需要注意的属性设置和检测方法

一、CoppeliaSim的模型定义结构

注:需要完整项目学习的同学可以邮件联系我或者去我github里自取(觉得好帮忙点点STAR,谢谢!)

一般的机械模型单结构如下面所示

    -Robot_respondable
        -Robot_visable
        -Robot_Joint

解释:Robot_respondable是声明模型碰撞范围,通过我们导入一个非凹面的模型并要求其有碰撞反应时,仿真会非常非常卡。我们这里采用官方推荐的方法

{选中一个shape} -> [Modules] -> [Geometry / Mesh] -> [Convex hull...]

这样它会自己生成一个比较流畅的碰撞形状,声明这个形状为当前shape的Respondable即可,根据自己的需求去设定respondable或者dynamic/p>

Robot_visable是声明模型的视觉模型,由于这部分我们不打算让它承担任何碰撞或者运动学计算,所以可以不用怎么处理,直接把你自己的模型放在这即可

Robot_Joint是当前shape和下一个shape的连接,只需要正确安放好位置即可

需要注意的是,最上层的respondable(也即基座)需要在Object Properties中设定为Object is model,这样它会自动将机械范围囊括进去

其他的shape点开“Select base of model instead”即可

这样我们可以得到下面这个较为完整的结构,以一个二旋转轴的机械为例子:

    -Robot_name(base_respondable)
        -base_visable
        -base_link1_joint
            -link1_respondable
                -link1_visable
                -link1_link2_joint
                    -link2_respondable
                        -link2_visable

二、需要注意的属性设置

需要注意的属性设置分别是:Object的动态属性、Object的可见层、Object的特殊属性

首先是机器人的最上层基座respondable,在这里我们需要选择 "Object is model"和“Select base of model instead”,并且设置在一个不可见的层

而后是下面层其余的respondable,设置在不可见层

所有的respondable还需要设定自己想要的碰撞或动态效果,还需要取消Object special properties中所有的属性

机器人的视觉模型visable,不能设定碰撞或者动态效果,要选择“Select base of model instead”,根据层数确认Collection self-collision inc

机器人的转动关节Joint,选择“Ignored by model bounding”,而后设定在不可见层即可。

URDFExport1.png

三、导出URDF并验证

{选择最上层的模型} -> [Modules] -> [Exporters] -> [URDF exporter...]

导出之后可以选择在一个新场景里重新导入这个URDF,看看是否符合预期

需要注意的是:重新导入后的respondable可能会有点卡(convex在重新导入后居然不认了,可以选择官网手册上其他的优化方法,这里我就懒得尝试了),如果想流畅点可以把不需要碰撞的模型碰撞属性关了就好

二、相关链接

我的Github

CoppeliaSim用户手册 --- CoppeliaSim User Manual