实验编号: 上游充通大 实验指导书 实验项目: 机械臂规划Move it 所属课程: R0S机器人操作系统基础与实战 课程代码: 面向专业: 机电专业 课程负责人: 朱笑笑 年月 日 -2-
- 2 -
实验目的 让学生熟悉机械臂运动规划的概念,并能够利用Moveit的工具为的机器人模 型生成Moveit的配置文件,并进行规划实验。 二、 实验内容 1. Moveit的安装 2. Moveit模型的配置 3. 在rviz中利用Moveit配置包进行运动规划 三、 实验过程或其他示意图 1. Moveit的安装 安装Moveit非常方便,只要一行代码。 sudo apt-get install ros-kinetic-moveit-full 2. Moveit模型的配置 这里我们用一个已有的机器人模型,来进行Moveit实验,该模型如下所示, 是一个7自由度的机械臂。 hPet。 2.1开启Setup Assistant tool -3
- 3 - 一、 实验目的 让学生熟悉机械臂运动规划的概念,并能够利用Moveit的工具为的机器人模 型生成Moveit的配置文件,并进行规划实验。 二、 实验内容 1. Moveit的安装 2. Moveit模型的配置 3. 在rviz中利用Moveit 配置包进行运动规划 三、 实验过程或其他示意图 1. Moveit的安装 安装Moveit非常方便,只要一行代码。 $ sudo apt-get install ros-kinetic-moveit-full 2. Moveit模型的配置 这里我们用一个已有的机器人模型,来进行 Moveit 实验,该模型如下所示, 是一个 7 自由度的机械臂。 2.1 开启Setup Assistant tool
运行一下代码启动Setup Assistant tool roslaunch moveit setup_assistant setup_assistant.launch Moveit Setup Assistant Movelt Setup Assistant Self.Colbsions the Movelt s Asistanti ThesDmmth file and OMPL plar configurat tion involves creating launch fies for move groupsOM Virtual Joints er,planning contexts and the planning warehouse Pianning Groups >Movelt! Robot Poses End Elfectors Choose mode: All settings for Movelt are stored in a Moveit configuration package.Here you have the option to create a new Contiguration Fles configuration package,or load an existing one.Note:any changes to a Movelt configuration package outside this setup assistant will likely be overwritten by this tool. ::ROS ●● Assistant Load a URDF or COLLADA Robot Model Soecify the location of ao existina unlversal Robot Description Format or COLLADA File for vour robot.The robot model will be loaded to the parameter server for you Browse Load Files 点击Create New Movelt:Configuration Package。 这时将会出现一个新的窗口询问机器人URDF模型的地址,我们可以设置到 mastering_ros_robot_description_pkg/urdf/seven_dof_arm.xacro.。这里我们用的是 xacro,实际上软件会自动将其转换为URDF文件。 如果模型载入成功将出现一下画面。 -4
- 4 - 运行一下代码启动Setup Assistant tool $ roslaunch moveit_setup_assistant setup_assistant.launch 点击Create New MoveIt! Configuration Package。 这时将会出现一个新的窗口询问机器人URDF模型的地址,我们可以设置到 mastering_ros_robot_description_pkg/urdf/ seven_dof_arm.xacro。这里我们用的是 xacro,实际上软件会自动将其转换为URDF文件。 如果模型载入成功将出现一下画面
Movelt Setup Assistant Movelt Setup Assistant Welcome to the Movelt Setup Assistant!These tools will assist you in creating a Self-Collisions Movelt configuration package that is required to run Movelt.This includes generating a Semantic Robot Description Format(SRDF)file,kinematics configuration file and OMPL planning configuration file.it also involves creating Virtual Joints launch files for move groups,OMPL planner,planning contexts and the planning Planning Groups Robot Poses Movelt! End Effectors Passive Joints Choose mode: All settings for Movelt are stored in a Moveit configuration package.Here you Configuration Fdes have the option to create a new configuration package,or load an existing one. Note:any changes to a Movelt configuration package outside this setup assistant will likely be overwritten by this tool Create New moveit Configuration Package Configuration Package Load a URDF or COLLADA Robot Model Specify the location of an existing Universal Robot Description Format or COLLADA File for your robot The robot model will be loaded to the parameter server for you. nastering ros robot description pkg/urdf/seven_dof arm.xacro Browse Success!Use the left navigation pane to continue. 00% Load Files 2.2 生成自碰撞矩阵 在这一步,Moveiti可以自动去搜索模型中Link,并让你选择哪两个之间是要 做碰撞检测。一般情况下需要把邻接的Lik取消检测,否则会出现问题。 Movelt Setup Assistant Start Optimize Self-Collision Checking Sef-Collisons The Defau on Matrix Generator will search for pairs of links on the robot that cking,decreas planning. en the adi nt to Virtual Joints ron the kinematic chain.Sa mpling density specifies how many random robot positions to check for self collision.Higher densities require more computation time. Planning Groups Robot Poses Sampling Density:Low High 10000 End Efeclors Regenerate Default Collision Matrix Link A Disabled Reason To Disable Passive Joints base_link bottom_link Adjacent Links Configuration Fles 2 base_link elbow_roll_link Never in Collision 3 base_link grasping_frame Never in Collision 4 base link gripper_finger_link1 Never in Collision s base_link gripper_Finger_link2 Never in Collision 6 base_link gripper_roll_link Never in Collision 7 base_link shoulder_pan_link Adjacent Links 8 base_link wrist pitch_link Never in Collision 9 base_link wrist_roll_link Never in Collision 10 bottom_link elbow_roll_link Never in Collision Show Non-Disabled Link Pairs Min.colllslons for “always-colliding pairs:95%日 -5-
- 5 - 2.2 生成自碰撞矩阵 在这一步,Moveit可以自动去搜索模型中Link,并让你选择哪两个之间是要 做碰撞检测。一般情况下需要把邻接的Link取消检测,否则会出现问题
采样密度是检查自我碰撞的随机位置的数量。如果密度大,计算将会很高, 但会自我碰撞会少一些。默认值是10,000。我们可以看到禁用的链接对 按下Regenerate Default Collision Matrix按钮;这将需要一个几秒钟来 列出禁用的链接对。 2.3添加虚拟关节 虚拟关节将机器人连接到世界。静态不是强制性的机器人不动。我们需要 虚拟关节时的基准位置的手臂是不固定的。例如,如果机器人手臂固定在 移动机器人上,我们应该定义一个关于odom框架的虚拟联合。 在本次实验中我们不设置虚拟关节 2.4添加规划组 一个规划组大致上是一个机器人手臂中的一组关节/链接它们一起规划以达 到一个链接或目标的目标位置效应。我们必须建立两个规划小组,一个是 机械臂组,一个是抓手组。 Planning Groups gastngpoepfocpiobotnrdompateoioedoa,iakeoriomtooatmn Edit Planning Group'arm' Knematic Solven kdl kinematics pluginy/DLinematicsPlugin nSearch feanlution: 0.00s E on.Search Timeout (cect 0.0s t dndis Delete Croup Smve Cencel 点击添加组按钮并添加相应的组。在这里,我们给组名称作为am,而运动求解器作为 kdl kinematics plugin/KDLKinematicsPlugin,这是默认的数值IK解决与MoveIt.我们 可以保留其他参数作为默认值。 在arm组里,首先我们要添加一个运动链。我们必须补充base link作为 grasping_.frame的第一个链接。 添加一个名为gripperf的组,我们不需要运动求解器为夹子组。在这个组里 面,我们可以添加关节和链接夹子。下面显示这些设置: -6-
- 6 - 采样密度是检查自我碰撞的随机位置的数量。如果密度大,计算将会很高, 但会自我碰撞会少一些。 默认值是10,000。 我们可以看到禁用的链接对 按下Regenerate Default Collision Matrix按钮; 这将需要一个几秒钟来 列出禁用的链接对。 2.3 添加虚拟关节 虚拟关节将机器人连接到世界。 静态不是强制性的机器人不动。 我们需要 虚拟关节时的基准位置的手臂是不固定的。 例如,如果机器人手臂固定在 移动机器人上,我们应该定义一个关于odom框架的虚拟联合。 在本次实验中我们不设置虚拟关节 2.4 添加规划组 一个规划组大致上是一个机器人手臂中的一组关节/链接它们一起规划以达 到一个链接或目标的目标位置效应。 我们必须建立两个规划小组,一个是 机械臂组,一个是抓手组。 点击添加组按钮并添加相应的组。在这里,我们给组名称作为arm,而运动求解器作为 kdl_kinematics_plugin / KDLKinematicsPlugin,这是默认的数值IK解决与MoveIt !. 我们 可以保留其他参数作为默认值。 在arm组里,首先我们要添加一个运动链。 我们必须补充base_link作为 grasping_frame的第一个链接。 添加一个名为gripper的组,我们不需要运动求解器为夹子组。 在这个组里 面,我们可以添加关节和链接夹子。 下面显示这些设置: