官方教程
urdf: unified robotic description format.
urdf是在ros中使用的一种用于描述机器人的xml文件。 为了在gazebo中使用urdf文件, 需要增加一些仿真用的tag。 实际上在底层, gazebo还是自动把urdf转成了sdf文件。
背景
虽然urdf是ros中使用的一种标准,但他却缺少一些相应的更新,毕竟机器人技术在发展。
urdf只能指定运动学和动力学属性。不能指定机器人在world中位置,他也不是一种通用格式,因为他缺少一些特性, 比如不能制定关节环(并联关节),不能指定摩擦,不能指定机器人以外的一些属性,比如光照,高度图等。
在实现方面,urdf的语法使用了很多xml的属性,导致灵活性不高, 并且也没有向后兼容的机制。
为了处理这些问题,一种新的格式: sdf(simulation description format)为gazebo而诞生了,并解决了urdf的缺点。sdf可以完整描述world级别,以及robot级别。方便增加和修订。用xml语法描述。
为了让urdf在gazebo中允许,需要一些steps:
必要元素:inertial 元素
可选元素:
给每个link增加gazebo: convert color,covert stl to dae,增加sensor plugin
给每个joint增加gazebo:设置合适的damping dynamics, 增加actuator control plugins
给每个robot增加gazebo元素
gazebo属性是对urdf的一种扩展, 是为了在gazebo中仿真而增加的一些属性。他允许增加一些只有sdf格式里才有的属性。在gazebo标签中,也可以为空,因为会自动指定默认值。有三种gazebo标签,robot tag里的,link,joint tag里的。
在对urdf进行gazebo适配前,线确保urdf文件没问题。
使用RRBot为例, Revolute-Revolute manipulator Robot, 实际上是一个二阶倒立摆;我们还演示一些有趣的控制方法。
查看urdf文件
rrbot.xacro 文件, 包含另两个文件: rrbot.gazebo, materials.xarco
描述刚体,具有惯性,视觉特征,碰撞属性;
inertial:惯性
visual:视觉属性,可以有多个视觉,合在一起构成link的视觉效果
collision:碰撞属性,可以有多个,合在一起构成link的碰撞属性;
有这几种类型:
Revolute: 转动铰链,有上下角度限制
continuous:连续转动,例如车轮
prismatic: 沿单轴滑动的平动关节,有上下限
fixed:固定死的。不需要axis, calibration, dynamics, limits, or safety_controller.
floating: 全自由
planar: 平面运动
origin:原点
parent:父link
child:子link
axis:旋转关节的旋转轴(child/joint frame), 滑动关节的滑动轴,平面关节的平面法向量。
calibration:joint的参考positions, 用于标定joint的绝对位置?
dynamics:物理属性,damping,阻尼系数, friction 摩擦系数;
limit: 限制,包括lower, upper, effort(最大力), velocity(最大速度),
mimic: 用于模仿其他关节的
safety_controller: 包含如下属性:soft_lower_limit: 低于这个值,safety_controller开始限制位置,这个值要低于 lower joint limit。 soft_upper_limit, 同上; k_position: An attribute specifying the relation between position and velocity limits。k_velocity:An attribute specifying the relation between effort and velocity limits
gazebo可以使用stl和collada文件, 一般推荐collada(.dae)文件,因为他支持颜色和texture,而stl文件仅支持solidly colored link。
符合Collada规范的三维数据文件(三维数据交换)。文件内容类似xml。可以文本打开查看。用Bitmanagement Software,3d max等软件可以查看。
SketchUp导出的三维模型就是(.dae)后缀。
通常,这些文件被视为 Digital Asset Exchange File 格式。 DAE 文件通常被归类为 3D Image Files。
审查模型是否正常
可以使用以下命令: gz sdf -p model.urdf 他会把urdf文件转成sdf文件。