MoveIt设置助手
ROS版本:melodic
总览
MoveIt Setup Assistant是一个图形用户界面,用于配置任何与MoveIt一起使用的机器人。它的主要功能是为您的机器人生成语义机器人描述格式(SRDF)文件。此外,它会生成其他必需的配置文件以与MoveIt管道一起使用。
开始
MoveIt和ROS
- 如果尚未安装MoveIt,请先按照说明进行操作。
- 如果尚未执行此操作,请确保已为Melodic 提供了Franka说明包:
sudo apt-get install ros-melodic-franka-description
步骤1:开始
-
启动MoveIt设置助手:
roslaunch moveit_setup_assistant setup_assistant.launch
-
这将启动带有两个选择的开始屏幕:创建新的MoveIt配置包(Create New MoveIt Configuration Package)或编辑现有的MoveIt配置包(Edit Existing MoveIt Configuration Package)。
-
单击“ 创建新的MoveIt配置包”按钮以弹出以下屏幕:
-
单击浏览按钮,然后导航到在上面安装了Franka软件包时安装的panda_arm_hand.urdf.xacro文件。
(此文件已安装在具有ROS Melodic的Ubuntu上
的/opt/ros/melodic/share/franka_description/robots/panda_arm_hand.urdf.xacro中。)选择该文件,然后单击加载文件。设置助手将加载文件(这可能需要几秒钟),并显示以下屏幕:
步骤2:产生自碰撞矩阵
默认自碰撞矩阵生成器在机器人上搜索可以安全禁用碰撞检查的链接对,从而减少了运动计划的处理时间。当这些链接对始终处于碰撞状态,从不碰撞,处于机器人默认位置的碰撞状态或在运动链上彼此相邻时,这些链接对将被禁用。采样密度指定要检查自我碰撞的随机机器人位置的数量。较高的密度需要更多的计算时间,而较低的密度则有可能禁用不应禁用的对。默认值为10,000个冲突检查。并行执行冲突检查以减少处理时间。
- 单击左侧的“ 自碰撞”窗格选择器,然后单击“ 生成碰撞矩阵”按钮。在将您的计算结果显示在主表中之前,设置助手将工作几秒钟。
步骤3:添加虚拟关节
虚拟关节主要用于将机器人连接到世界。对于熊猫,我们将只定义一个虚拟关节panda的panda_link0连接world世界的框架。该虚拟关节表示机器人基座在平面中的运动。
- 单击“ 虚拟关节”窗格选择器。单击添加虚拟关节
- 将关节名称设置为“ virtual_joint”
- 将子链接设置为“ panda_link0”,并将父框架名称设置为“ world”。
- 将关节类型设置为“固定”。
- 单击保存,您将看到以下屏幕:
步骤4:添加规划组
规划组用于在语义上描述机器人的不同部分,例如定义什么是手臂或末端执行器。
- 单击“ 计划组”窗格选择器。
- 单击添加组,您将看到以下屏幕:
添加arm - 我们将首先将panda arm添加为计划组
- 输入组名称为panda_arm
- 选择kdl_kinematics_plugin /KDLKinematicsPlugin作为运动学求解器。注意:如果您可以自定义一 个功能强大的IK解算器。
- 使Kin搜索分辨率 和Kin搜索超时保持其默认值。
- 现在,单击添加关节按钮(Add Joints button)。您将在左侧看到一个关节列表。您需要选择属于手臂的所有关节,并将它们添加到右侧。关节以存储在内部树结构中的顺序排列。这使得选择串联的关节链变得容易。
- 单击virtual_joint,按住 键盘上的Shift键,然后单击 panda_joint8。现在单击>按钮,将这些关节添加到右侧的选定关节列表中。
- 单击virtual_joint,按住 键盘上的Shift键,然后单击 panda_joint8。现在单击>按钮,将这些关节添加到右侧的选定关节列表中。
- 单击Save以保存选定的组。
添加抓手
- 我们还将为末端执行器添加一个组。注意,您将使用与添加手臂不同的过程执行此操作。
- 单击添加组按钮。
- 输入组名作为hand
- 使Kin搜索分辨率 和Kin搜索超时保持其默认值。
- 单击添加链接按钮。
- 选择panda_hand,panda_leftfinger和panda_rightfinger,然后将它们添加到右侧的Selected
Links列表中。 - 点击保存
步骤5: 添加机器人位姿
设置助手可让您向配置中添加某些固定姿势。例如,这有助于将机器人的某个位置定义为原始位置。
- 单击“ 机器人姿势”( Robot Poses)窗格。
- 单击添加姿势( Add Pose)。为姿势选择一个名称。机器人将处于其默认位置,此处关节值设置为允许的关节值范围的中间范围。移动各个关节,直到满意为止,然后保存姿势。注意姿势如何与特定组相关联。您可以为每个组保存单个姿势。
- 重要提示:尝试移动所有关节。如果您的URDF中的关节限制出了问题,您应该可以在此处立即看到它。
步骤6:标记末端执行器
我们已经添加了熊猫爪。现在,我们将这个组指定为一个特殊组: 末端执行器。将这个组指定为末端执行器,可以在内部对其执行一些特殊操作。
- 单击“ 末端效应器”(End Effectors)窗格。
- 单击添加末端效应器( Add End Effector)。
- 选择hand作为抓爪的末端执行器名称。
- 选择hand作为“ 末端执行器组”。
- 选择panda_link8作为此末端执行器的“ 父链接 ”。
- 将父组保留为空。
步骤7:添加被动关节
被动关节选项卡旨在允许指定机器人中可能存在的任何被动关节。这些是在机器人上未激活的关节(例如,被动脚轮)。这告诉计划者,由于无法直接控制它们,因此无法(从运动学角度)计划这些关节。panda没有任何被动关节,因此我们将跳过此步骤。
步骤8:三维感知
三维感知选项卡用于设置YAML配置文件的参数,以配置3D传感器sensor_3d.yaml。
例如,point_cloud参数:
如果不需要sensors_3d.yaml,请选择“ 无”。
步骤9:Gazobe仿真
仿真选项卡可用于通过生成新的兼容Gazebo的urdf来帮助您使用Gazebo模拟机器人。
您可以通过以下方式使用生成的机器人urdf在Gazobe生成机器人。
roslaunch gazebo_ros empty_world.launch paused:=true use_sim_time:=false gui:=true throttled:=false recording:=false debug:=true
使用rosrun生成机器人:
rosrun gazebo_ros spawn_model -file </path_to_new_urdf/file_name.urdf> -urdf -x 0 -y 0 -z 1 -model panda
步骤10:ROS控制
ROS Control是一组包含控制器接口,控制器管理器,传输和hardware_interfaces的软件包,有关更多详细信息,请参阅ros_control 文档。
ROS控制选项卡可用于自动生成模拟控制器,以启动机器人的关节。这将使我们能够提供正确的ROS接口MoveIt。
- 单击ROS控制窗格选择器。
- 单击添加控制器,您将看到以下屏幕:
- 我们将首先添加 Panda arm位置控制器
- 输入控制器名称作为arm_position_controller
- 选择position_controllers / JointPositionController作为控制器类型
- 接下来,您必须选择此控制器关节,可以单独添加关节,也可以将所有关节添加到计划组中。 现在,单击“添加计划组关节”。
- 选择panda_arm计划组以将该组中的所有关节添加到手臂控制器。
- 单击保存以保存选定的控制器。
步骤11:添加作者信息
Catkin需要作者信息才能发布
- 单击作者信息窗格。
- 输入您的姓名和电子邮件地址。
步骤12:生成配置文件
最后一步-生成开始使用MoveIt所需的所有配置文件
- 单击“配置文件”窗格。为将包含新配置文件集的ROS软件包选择一个位置和名称。单击浏览,选择一个合适的位置(例如,您的主目录),单击创建新文件夹,将其命名为“
panda_moveit_config”,然后单击选择。“
panda_moveit_config”是此Wiki上其余文档中使用的位置。此程序包不必位于ROS程序包路径中。所有生成的文件将直接进入您选择的目录。 - 点击Generate Package按钮。现在,安装助手将生成一组启动文件和配置文件,并将它们写入您选择的目录中。所有生成的文件都将出现在“生成的文件/文件夹”选项卡中,您可以单击每个文件以获取对其包含内容的描述。
现在您已完成生成MoveIt所需的配置文件