通常,我们希望将自己设计的机器人模型导入仿真环境。由于是通过 CAD 软件设计的,导出的 urdf 使用 STL 或 DAE 文件来表示 3D 几何。但原始的 STL 或 DAE 文件通常过于复杂(由数十万个三角面片组成),这会减慢仿真速度,有时也会导致仿真软件报错(如Webots)。为了在正确描述连杆的物理属性的同时提高仿真速度,我们需要在将 urdf 用于仿真之前对其进行一些预处理。
根据 ROS Wiki,连杆元素具有 3 个主要属性:惯性、视觉和碰撞。惯性部分由软件生成,如果我们合理指定材料,通常足够准确。我们的重点是视觉和碰撞。因此预处理过程如下:
- 简化碰撞
- 简化 Visual 的网格
这里我们以使用 sw2urdf 扩展从 Solidworks 导出的 urdf 为例。
1. 简化碰撞
为了加速仿真环境中的碰撞计算,我们需要用更简单的几何图形替换原始网格几何图形,同时保持边界大致相同。例如,下图的机器人头部连杆在原始的 urdf 中使用自动生成的网格作为碰撞体积。
但该网格通常包含大量三角形来模拟 3D 模型的边界,这会大大降低仿真速度。因此,我们