官方主页
Specifying pose
它是机器人建模的一个基本工具,能够简洁直观地表达模型组件的相对位置和方向。
<pose>元素总共接受 6 个数字,以表示从P 到 C 的坐标变换X_PC:
<pose>x y z roll pitch yaw</pose>
Model kinematics
本文档描述了SDFormat如何使用<model>,<link>,<joint>和<pose>标签对铰接式多体系统的运动学进行建模,可以将其简要概括为:
<model>:链接和关节的容器,它定义了完整的机器人或物理对象
<link>:刚体(如链中的“链接”)
<joint>:链接之间的运动学关系
<pose>:两个坐标系之间的相对位置和方向
SDFormat链接,关节和模型都有各自的坐标系,可以使用<pose>标记进行偏移。 有关<pose>标签的更多详细信息,请参见有关指定姿势的文档。
Collisions and Visuals
本文档介绍了如何向模型添加描述模型中每个链接的物理和视觉特征的几何形状。 这些特征是使用SDFormat中的<visual>和<collision>标记指定的。 每个<visual>和<collision>必须包含一个<geometry>标记,该标记指定对象的形状。 <visual>元素可以包含一个<material>标签,可以指定形状的视觉外观,例如颜色和纹理,而<collision>元素可以包含一个<surface>标签,可以指定相关表面的物理属性:摩擦和接触。
链接可以使用<pose>元素在父链接框架中放置零个或多个<visual>或<collision>元素。 这允许链接通过具有独特视觉和物理属性的单个形状的组合来定义复杂的几何形状。
Material properties of a Visual
<visual>标签可以包含<material>标签,该标签用于设置视觉对象的颜色和纹理属性。 <material>的完整规范可以在这里找到。在本文档中,我们将仅着眼于指定视觉效果的颜色。在此处可以找到有关图像纹理和材质脚本的更详细的教程。
SDFormat使用Blinn-Phong着色模型来指定如何渲染材质。此着色模型包含四个组成最终颜色的组件:环境,漫反射,镜面反射和发射。 《 OpenGL编程指南》中有关照明的章节详细介绍了此规范的含义。 SDFormat将相应的标签<ambient>,<diffuse>,<specular>和<emissive>定义为<material>的子元素。这些值的每个是一个由4个数字组成的向量,分别代表红色,绿色,蓝色和alpha(RGBA)。
颜色成分的定义
Ambient周围
环境分量是由于环境光(即没有光直接指向对象)而导致的对象的颜色。它与物体完全一致。环境光旨在近似反映已反射多次的光,因此很难分辨它来自何处。
Diffuse扩散
这是纯白光下物体的颜色。它是根据灯光的方向和光线所照射到的表面法线来计算的。正常反平行于光源的物体部分将从该组件变亮。
Specular高光
镜面反射分量是镜面反射产生的高光的颜色和强度。较高的值会使对象看起来更有光泽。抛光的金属表面的镜面反射值非常大,而一张纸几乎没有。
Emissive发光的
发光组件会产生从对象发出光的外观。但是,这种发出的光不会向世界上的其他物体添加光。像环境组件一样,自发光为对象添加均匀的颜色。
从概念上讲,SDFormat中的世界是一个环境,可以在其中通过物理引擎实例化和模拟模型。 使用<world>标签创建一个世界。 它可以包含各种元素,但是本文档仅介绍<model>元素,因为我们描述了如何创建由各种模型组成的仿真世界。 <world>的完整规范可以在这里找到。
注意:有关<world>的必需name属性,请参阅附录。
世界的最基本属性之一是它包含世界坐标系,该坐标系被定义为世界上所有动态物体的规范惯性参考系。 当将模型作为<world>的直接子级插入到世界中时,其姿势相对于此框架表示。 请参阅“指定姿势和模型运动学”文档,以了解有关设置模型姿势的更多信息。
SDFormat中有两种方法可用于将模型插入世界。