MoveIt! Setup Assistant 教程

MoveIt! Setup Assistant 教程

目录

目录1

综述2

准备工作2

MoveIt!和ROS2

使用 Setup Assistant2

STEP 1: 开始2

STEP 2: 产生自碰撞矩阵Self-Collision Matrix3

STEP 3: 添加虚拟关节 Virtual Joints4

STEP 4: 添加规划组Planning Groups5

STEP 5: 添加机器人位姿Robot Poses8

STEP 6: 标记末端执行器End Effectors9

STEP 7: 添加被动关节Passive Joints10

STEP 8: 产生配置文件10

下一步11

MoveIt! Rviz插件11

设置IKFast(运动学逆解)11

附加11

SRDF11

URDF12

 

 

综述

MoveIt! Setup Assistant 是一个使用MoveIt! 配置机器人的图形界面。主要功能是产生机器人的SDF文件。另外,还产生使用MoveIt! pipeline的其他配置文件。更多关于SRDF的知识,请看SRDF Overview 的页面

准备工作

MoveIt!和ROS

如果没有安装MoveIt!,请按照安装教程 installing MoveIt!安装

使用 Setup Assistant

STEP 1: 开始                                          

l 用下列命令启动 MoveIt! Setup Assistant:

    roslaunch moveit_setup_assistant setup_assistant.launch

 

l 启动的界面有两个选项:创建新的MoveIt!配置包或者编辑已存在的MoveIt!配置包。

 

l 点击Create New MoveIt! Configuration Package按钮

 

 

 

 

· 点击browse按钮,选择安装pr2.urdf.xacro(已安装ros-hydro-moveit-full-pr2). (此文件安装在/opt/ros/hydro/share/pr2_description/robots/pr2.urdf.xacro)。点击加载文件load the files。 

 

STEP 2: 产生自碰撞矩阵Self-Collision Matrix

默认的Self-Collision Matrix 发生器搜寻机器人能够检测到碰撞时能安全避免,减小运动规划时间的连杆对。这些连杆对总是碰撞,从不碰撞,默认位置碰撞或者连杆在运动学上相连接。

采样比重指出在多少个机器人的任意位置处去检测自碰撞。比重大时计算时间较长,比重小的本不应该disabled的连杆对被disabled的可能性变大。默认比重是10,000碰撞检测。 碰撞检测与减小处理时间并行完成。

· 点击选择左边的Self-Collisions pane selector,然后点击 Regenerate Default Collision Matrix按钮。Setup Assistant用几秒时间计算后将结果显示在主表中。 

 

 

STEP 3: 添加虚拟关节 Virtual Joints

虚拟关节主要用于与世界坐标系相连。对于PR2 ,我们仅定义一个虚拟关节,将base_footprint连接到odom_combined世界坐标。这个虚拟关节代表了机器人基座在平面上的运动。

· 点击面板选择Virtual Joints 。点击Add Virtual Joint

· 设置关节名为 “virtual_joint”

· 把子连杆设为 “base_footprint” ,父坐标设为“odom_combined”.

· 设置关节类型为 “planar”.

· 保存可以看到下面的界面::

 

 

STEP 4: 添加规划组Planning Groups

Planning groups是机器人不同部位的语义描述,例如定义胳膊是什么,末端执行器是什么。

· 点击选择面板的Planning Groups。

· 点击Add Group,出现以下界面。

 

 

添加右臂 right arm

· 我们先添加PR2右臂作为一个规划组planning group

o Group Name设为right_arm

o 选择kdl_kinematics_plugin/KDLKinematicsPlugin作为运动学求解。注意: 如果是自定义的机器人,可能会需要强大的自定义逆解器,请看:`Kinematics/IKFast<http://moveit.ros.org/wiki/Kinematics/IKFast>`_

o 保持Kin. Search Resolution 和Kin. Search Timeout为默认值。

    

· 点击Save和Add Joints 按钮。在左边会列出一系列的关节。选择所有属于右臂的关节并添加到右边面板。这些关节是以内部存储的树结构显示的顺序,也使得一个系列的关节的选择更加容易。

o 点击r_shoulder_pan_joint, 按住Shift按钮,然后点击r_wrist_roll_joint选中,现在点击 > 按钮把选中的关节添加在右侧。

   

· 点击Save 保存选择的组。注意PR2的每个胳膊只有7个关节,但是我们添加了9个关节。一些关节(r_upper_arm_joint and r_forearm_joint) 是Fixed 关节,它们不会用于规划或者运动学。

    

添加左臂left arm

添加左臂与右臂类似,选择从l_shoulder_pan_joint 到the l_wrist_roll_joint的关节。

添加抓持器grippers

· 我们还添加左右两个末端执行器组,注意:与添加手臂不用:

o 点击 Add Group 按钮。

o 组名设为right_gripper

o 保持 Kin. Search Resolution和 Kin. Search Timeout 为默认值。

o 点击Save和Add Links 按钮。

o 选择所有以right_gripper开始的连杆,并添加到右侧。

o 点击Save

o left arm重复相同的步骤,选择所有以left_gripper开始的关节。

   

STEP 5: 添加机器人位姿Robot Poses

Setup Assistant允许配置文件中设定固定位姿。 例如,想设定某个确定位置为机器人的Home位置。

· 点击Robot Poses面板.

· 点击 Add Pose. 设定位姿名称.机器人会在默认位置,也就是所有值都在关节允许范围的中间,移动每个关节角度,到达想要位置后保存。注意位姿是怎样与某个姿态联系的。可以为每个组保存各自的位姿。 

· 重要提示:试着把所有的关节运动。如果在URDF中的关节角度限制有错,你可以在这边立即看出。

 

 

STEP 6: 标记末端执行器End Effectors

我们已经为 PR2添加了左右的抓持器。现在我们把这两个组设定为特别的组:end-effectors。这样可以允许它们内部发生一些特殊的操作。

· 点击 End Effectors 面板.

· 点击 Add End-Effectors.

· 设置right gripper的End Effector名为right_eef。

· 选择right_gripper 作为 End Effector Group.

· 选择父连杆为 r_wrist_roll_link。

· 保持Parent Group空白.

· 点击 Save.

· 用同样的方法添加 left_eef。

 

 

 

STEP 7: 添加被动关节Passive Joints

被动关节表允许机器人存在被动关节。告知规划器这些关节不能进行运动学规划。例如,被动脚轮,PR2没有被动关节,所以跳过此步骤。

 

STEP 8: 产生配置文件

最后一步- 产生开始使用 MoveIt!需要的所有配置文件。

· 点击 Configuration Files面板。选在将要产生的文件存放的位置和名称。(e.g. 点击browse, 选择好的位置 (e.g.主目录),点击Create New Folder,输入 “pr2_moveit_generated”, 点击Choose. “pr2_moveit_generated” 是wiki中文件所用的路径)。不一定要在ROS包路径里。所有产生的文件会直接保存到所选择的目录里。 

· 点击 Generate Package按钮。Setup Assistant会产生并写入你选定的目录中一系列的配置config和启动launch文件。所有产生的文件都会在列表中,可以选择每一个,以查看它们包含的描述。

 

· 恭喜 - 现在已经产生MoveIt!所需的配置文件了。

下一步

MoveIt! Rviz插件

· 开始学习如何在MoveIt!中使用产生的配置文件,使用 MoveIt! Rviz Plugin.

设置IKFast(运动学逆解)

· 一个比默认KDL更快的逆运动学求解器,但是需要一些设置步骤: Kinematics/IKFast

附加

SRDF                                                                                                 

· 想查看本教程所提到的SRDF更多信息,请看 SRDF页面。 

URDF                                                                                                  

· URDF是ROS中本地机器人描述文件,可以描述运动学,惯性,视觉和机器人传感器信息,请阅读 URDF specific documentation查看URDF在MoveIt!

中是如何使用的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值