- OMPL能做什么? 简单说,就是提供一个运动轨迹。给定一个机器人结构(假设有N个关节),给定一个目标(比如终端移到xyz),给定一个环境,那么OMPL会提供给你一个 轨迹,也就是一个完整的关节位置。沿着这个轨迹依次移动关节,就可以最终把终端移到xyz,当然,这个轨迹应当不与环 境中的任何障碍发生碰撞。
- 为什么用OMPL? 运动规划的软件库和算法有很多,而OMPL由于其模块化的设计和稳定的更新,成为最流行的规划软件库之一。很多新算法都在OMPL开发。很多其他软件(包括ROS/MoveIt)都使用OMPL做运动规划。
根据之前创建好的URDF文件,使用Moveit!配置助手完成redwall_arm_moveit_config包的配置
1 .打开MoveIt! Setup Assistant
$ roslaunch moveit_setup_assistant setup_assistant.launch
MoveIt! Setup Assistant 是一个图形界面,直接用鼠标点击就可以配置机器人的运动规划所需要的信息。点击Create New MoveIt Configuration Package来创建新的配置包,选择urdf所在的包,然后点击Load Files 载入文件。
2. 创建碰撞免检矩阵(ACM)
点击Setup Assisant的左边第二项'Self-Collisions'创建碰撞免检矩阵,点击一下'Regenerate Default Collision Matrix'就可以了
这里生成的 ACM就是这个URDF所描述的机器人,哪些肢体之间是不会发生碰撞的。
3 创建虚拟关节 (Virtual Joints)
在Setup Assistant 第三项Virtual Joints里面,我们要创建所谓的虚拟关节。这个虚拟关节,可以理解为一个连接机器人和世界的关节。一般来说,Virtual Joint Name命名为‘world’,而'Child Link'指的是我们要把‘世界’和机器人的那个部位连接,那选择基座'base_link'。‘Parent Frame Name’,是世界坐标的名字, 设置为 'world' , 很显然这里我们选择固定Fixed. 代表机器人相对于世界是固定的。