当前位置:   article > 正文

MoveIt:超详细通俗易懂ROS使用MoveIt助手工具生成配置文件_ros moveit

ros moveit

理解不深,先能用,再会用,以鱼学渔


文章混合理解和操作,有 操作:标识为需要操作的地方


先备知识

SRDF与URDF的区别

URDF全称是Unified Robot Description Format,意为描述机器人几何形状、连接关系等基本属性的一种统一格式,是一种静态描述

SRDF全称是Semantic Robot Description Format,也叫URDF with Semantics,顾名思义它是URDF的补充,在URDF的静态描述基础上增加了语义描述

它为机器人静态描述添加关于行为、功能、用途和约束等方面的信息,如碰撞检测、运动规划,使机器人的描述更加丰富,可以进行更高级的任务规划和操作

而MoveIt内的助手工具可以根据已有的URDF文件按需生成SRDF文件,这是本文存在的意义

安装MoveIt

        从官网下载ubuntu对应版本的MoveIt

https://moveit.ros.org/install/icon-default.png?t=N7T8https://moveit.ros.org/install/

开始配置

(1)启动配置助手

        操作:打开终端,输入

roslaunch moveit_setup_assistant  setup_assistant.launch

        操作:点击配置新软件包,并导入一个urdf模型(xacro也可),点击Load Files加载模型 

        若成功,则可在窗口看到预览图

 

(2)生成自碰撞矩阵 

        操作:点击左边栏第二个选项卡Self-Collisions,这个选项有两个功能:

                1)选择性禁用连杆对的碰撞检测,减少处理时间

                        因为要知道有些连杆因为结构设计是不可能碰撞的,预定义这些连杆的关系,可以减少分析,提高响应,分类有:

                                        始终处于碰撞状态(Always in Collision)

                                        永远不会碰撞(Never in Collision)

                                        默认处于碰撞状态(Default in Collision)

                                        禁用相邻连杆(Adjacent Links Disabled)

                                        有时处于碰撞状态(Sometimes in Collision)

                        下面根据gpt回答进行理解,选择性摄入,不保证正确,但能自洽,用于记忆

                2)设置碰撞采样密度,平衡自碰撞几率与处理时间

                        自碰撞采样密度指有多少个随机位置会检查是否有自碰撞现象,密度越高自碰撞几率越小,但计算量越大

        操作:点击Generate Collision Matrix,根据采样密度的设定自动生成自碰撞矩阵

 (3)增加虚拟关节

        操作:点击左边栏第三个选项卡Virtual Joints,这个选项对于底座固定的机器人可以忽略

        当机械臂底座不固定在一个地方时才需要虚拟关节,比如底座在移动物体之上时,就需要一个对应里程计odom的虚拟关节,因为底座base_link相对于里程计odom的坐标系frame是移动的

(4)添加规划组

        操作:点击左边栏第四个选项卡Planning Groups,这个选项用于对机器人多个关节的规划,比如一个规划组可以包含多个关节,至于怎么规划,交给工具,以下还是可以参考但不一定对

        操作:点击右下角Add Group,添加机械臂规划组,设置组名Group Name为arm,设置解算器Kinematic Solver为kdl_kinematics_plugin/KDLKinematicsPlugin,其他可默认

        操作:点击下方Add Kin.Chain添加运动链,基础链接Base Link为base_link,末端链接Tip Link为grasping_frame,保存,arm规划组至此结束


        操作:点击右下角Add Group,添加夹爪规划组,设置组名Group Name为gripper,夹爪不需要提供运动解算器了,所以解算器Kinematic Solver为None,其他可默认

        操作:点击下方Add Joints添加关节,添加finger_joint1与finger_joint2,保存

        操作:点击gripper中的Links,点击下方Edit Selected添加连杆,添加gripper_finger_link1与gripper_finger_link2,保存

        和下图一样即可,可以尝试反复操作去理解

(5)添加机器人姿态

         操作:点击左边栏第五个选项卡Robot Poses,这个选项用于设定机器人在模拟中的初始姿势,有需要可以添加

(6)设置机器人末端执行器

        操作:点击左边栏第六个选项卡End Effector,这个选项用于添加末端执行器

        操作:点击右下方Add End Effector添加末端执行器,name设为robot_eef,规划组Group Name设置gripper,父连杆Parent Link设置grasping_frame,父级组Parent Group设置arm,保存

 (7)添加被动关节

         操作:点击左边栏第七个选项卡Passive joints,用于添加被动关节从而不发布其状态

        比如脚轮,这里无需添加

(8)生成配置文件

        第七个选项卡以后的想了解可以单独花时间,至此已经可以用了

        操作:点击左边栏最后一个选项卡Configuration Files,准备生成配置文件!

        操作:点击Browse来配置配置文件保存目录,对此功能包建议在seven_dof_arm所在工作空间下创建自己的文件夹保存,最后点击Generate Package生成配置文件。

        因为有些设置没完成会弹窗,直接无视即可

        

        大功告成

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/864885
推荐阅读
相关标签
  

闽ICP备14008679号