ROS提供了一些很好的软件包,可以用来构建3D机器人模型。在本节中,我们将讨论一些常用于构建和建模机器人的重要ROS软件包。
urdf是机器人建模最重要的ROS软件包。这个软件包包含一个用于 统一机器人描述格式 ( Unified Robot Description Format , URDF )的C++解析器,它是一个表示机器人模型的XML文件。它还有一些其他的组件。
●urdf_parser_plugin:这个软件包实现了写入URDF数据结构的方法。
●urdfdom_headers:这个组件提供了使用urdf解析器的核心数据结构头文件。
●collada_parser:这个软件包通过解析一个Collada文件来填充数据结构。
●urdfdom:这个组件通过解析URDF文件来填充数据结构。
我们可以使用URDF来定义机器人模型、传感器和工作环境,使用URDF解析器对其进行解析。我们只能使用URDF描述一个类似树状连杆结构的机器人,也就是说,机器人会有刚性连杆,并通过关节连接。我们无法用URDF表达柔性连杆。URDF由特殊的XML标签构成,我们可以使用解析器程序解析这些XML标签以进行进一步处理。在后面的部分我们会使用URDF进行建模。
●joint_state_publisher:这个工具在使用URDF设计机器人模型时非常有用。它包含一个名为joint_state_publisher的节点,可以读取机器人模型描述,查找所有关节,并将关节值发布到所有非固定关节。每个关节的值也有不同的来源。我们将在接下来的章节中更详细地讨论这个软件包及其使用情况。
●joint_state_publisher_gui:这个工具与joint_state_publisher软件包非常相似。它提供了与joint_state_publisher包相同的功能,除此之外,还实现了一组滑块,用户可以使用它与每个机器人关节交互,使用RViz可视化输出。在这种情况下,关节值的来源是滑块GUI。在设计URDF时,用户可以使用该工具验证每个关节的旋转和平移。
●kdl_parser:这个软件包包含一个解析器工具,用于从机器人的URDF模型中构建一个 运动学和动力学库(KDL) 树。KDL是一个用于解决运动学和动力学问题的库。
●robot_state_publisher:该软件包可以读取当前机器人的关节状态,并发布由URDF构建的运动学树中每个机器人连杆的3D姿态。机器人的3D姿态以ROS tf(transform)的形式发布。tf发布了机器人各坐标系(也叫参考系)之间的关系。
●xacro:xacro是XML Macros的缩写,可理解为URDF加上若干插件。xacro包含的插件可以让URDF变得更简短、可读性更好,并且可以用于构建复杂的机器人描述。利用ROS相应的工具,可以在需要的时候将xacro转换为URDF。我们将在以后的章节学习xacro及其用法。
现在,我们已经定义了机器人3D建模相关包的列表,下面准备使用URDF文件格式解析我们的第一个模型。