一.URDF
MoveIt首先介绍URDF[通用机器人描述格式],这是在ROS中描述机器人的本机格式。在本教程中,将找到URDF的参考资料、重要的技巧和MoveIt列表特定的需求。
1.URDF Resources
- URDF ROS Wiki Page:URDF ROS Wiki页面是关于URDF的大部分信息的来源。
- URDF Tutorials:使用URDF的教程。
- SOLIDWORKS URDF Plugin:一个插件,它允许直接从SOLIDWORKS模型生成URDF。
本节包含一组技巧,用于确保生成的URDF可以与MoveIt一起使用。在开始使用MoveIt之前,确保完成了所有这些技巧。
[1]Special Characters in Joint Names
joint名称不应包含以下任何特殊字符:-,[,],(,),。希望能尽快取消对joint的限制。
[2]Safety Limits
除了robot的关节限制外,一些URDFs还设置了安全限制。这是一个为Panda头盘关节指定的安全控制器的例子:
soft_lower_limit字段和soft_upper_limit字段指定该joint的位置限制。MoveIt将这些限制与URDF中指定的joint的硬限制进行比较,并选择更保守的限制。
说明:如果safety_controller中的soft_lower_limit和soft_upper_limit设置为0.0,那么关节将无法移动。MoveIt取决于指定正确的robot模型。
[3]Collision Checking
MoveIt使用URDF中指定的网格进行冲突检查。URDF允许为可视化和冲突检查分别指定两组网格。一般来说,可视化网格可以很详细和漂亮,但是碰撞网格应该不那么详细。网格中三角形的数量会影响robot链接碰撞检查所需的时间。整个robot中三角形的数量应该在几千个左右。
[4]Test your URDF
测试URDF并确保一切正常是非常重要的。ROS URDF包提供了一个check_urdf工具。要使用check_urdf工具验证URDF,请遵循这里的说明。
3.URDF Examples
有许多URDFs可供使用ROS的robot使用。URDF Examples:ROS社区的URDFs列表。
二.SRDF
SRDF或语义机器人描述格式补充了URDF,并指定了联合组、默认的机器人配置、额外的碰撞检查信息和额外的转换,这些可能需要完全指定robot的姿态。生成SRDF的推荐方法是使用MoveIt设置助理。
1.Virtual Joints
URDF只包含关于robot物理关节的信息。通常,需要定义额外的关节来指定root链接在robot上相对于世界坐标系统的姿态。在这种情况下,使用虚拟连接来指定此连接。例如,像PR2这样在平面内移动的移动robot是使用一个将世界坐标系附加到robot的坐标系上的平面虚拟关节来指定的。一个固定的robot[像一个工业机械手]应该用一个固定的关节连接到这个世界上。
2.Passive Joints
passive joint是robot上的非驱动关节,例如差动驱动robot上的被动脚轮。它们在SRDF中单独指定,以确保运动规划或控制管道中的不同组件知道joint不能直接控制。如果robot有未启动的脚轮,它们应该被指定为被动脚轮。
3.Groups
Group[有时也被称为联合小组或计划小组]是MoveIt的核心概念。MoveIt总是作用于特定的群体。MoveIt将只考虑移动的关节组,它是计划的-其它关节是静止的。[通过创建一个包含所有关节的组,可以实现robot中所有关节的移动计划]。一个Group只是一个joint和link的集合。每个组可以用以下几种方式之一指定:
[1]Collection of Joints
可以将组指定为关节的集合。每个关节的所有子链接都自动包含在组中。
[2]Collection of Links
组也可以指定为链接的集合。链接的所有父节点也包含在这个组中。
[3]Serial Chain
使用基链和尖端链指定串行链。链条的顶端链环是链条上最后一个关节的子链环。链中的基链是链中的第一个关节的父链。
[4]Collection of Sub-Groups
组也可以是组的集合。例如,可以将left_arm和right_arm定义为两个组,然后定义一个名为both_arms的新组,其中包括这两个组。
4.End-Effectors
robot中的某些群体可以被指定为末端执行器。末端执行器通常通过固定的关节连接到另一组[如手臂]。请注意,在指定末端执行器组时,一定要确保末端执行器和它所连接的父执行器组之间没有公共链接。
5.Self-Collisions
默认的Self-Collision Matrix Generator[安装助手的一部分]搜索机器人上的链接对,这些链接可以通过碰撞检查安全地禁用,从而减少了运动规划处理时间。当这些连杆总是在碰撞中,从不在碰撞中,在机器人默认位置的碰撞中,或者当连杆在运动链上相互相邻时,这些连杆就会被禁用。采样密度指定了多少个随机的机器人位置来检查自碰撞。较高的密度需要更多的计算时间,而较低的密度有更大的可能性禁用不应该禁用的对。默认值是10,000个冲突检查。冲突检查是并行进行的,以减少处理时间。
6.Robot Poses
SRDF还可以存储机器人的固定配置。在本例中,SRDF的一个典型示例是定义机械手的HOME位置。配置存储在一个字符串id中,该字符串id可用于稍后恢复配置。
7.SRDF Documentation
有关SRDF语法的详细信息,请参阅ROS SRDF Wiki页面。
【MoveIt教程[16](URDF and SRDF)】参考文献:
[1]URDF and SRDF:http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/urdf_srdf/urdf_srdf_tutorial.html
推荐阅读
- 人脸识别|【人脸识别系列】| 实现自动化妆
- 前沿论文|论文精读(Neural Architecture Search without Training)
- 深度学习|深度学习笔记总结
- 网络|简单聊聊压缩网络
- 计算机视觉|深度摄像头:一:深度了解深度摄像头
- opencv|网络爬虫入门练习
- OpenCV|【OpenCV 完整例程】89. 带阻滤波器的传递函数
- OpenCV|【OpenCV 完整例程】90. 频率域陷波滤波器
- OpenCV|【OpenCV 完整例程】91. 高斯噪声、瑞利噪声、爱尔兰噪声
- 卷积|吃透空洞卷积(Dilated Convolutions)