kinetic版本的MoveIt!教程学习一(设置助手篇)

从今天开始学习MoveIt!,所用的ubuntu版本是16.04,创客智造等网址上的教程都是14.04的,但是MoveIt!官网已经更新了教程,其实除了MoveIt!和pr2相关文件的安装方式没有什么改动。


准备工作

Kinetic上moveit!的安装

sudo apt-get install ros-kinetic-moveit
source /opt/ros/kinetic/setup.bash

安装pr2相关文件

sudo apt-get install ros-kinetic-pr2-common

第一步 打开MoveIt!设置助手

  1. 运行roslaunch moveit_setup_assistant setup_assistant.launch
  2. 选择创建新的moveit配置包
    这里写图片描述
  3. 检索至下载好的pr2.urdf.xacro 文件(/opt/ros/kinetic/share/pr2_description/robots/pr2.urdf.xacro on Ubuntu with ROS Kinetic)
  4. 点击load files
    这里写图片描述

第二步 配置碰撞免检查矩阵

预先生成碰撞矩阵,降低以后的计算量。

点击 self-collidions-generate collidion matricx
这里写图片描述
这里写图片描述

第三步 添加虚拟关节

把机器人基座base_footprint连接到世界坐标系odom_combined
设置节点名为“virtual_joint”
设置子link为“base_footprint”和父参考系为“odom_combined”.
设置Joint类型为“planar”.
点击保存
这里写图片描述

第四步 增加规划群组

在语义层面描述机器人组成,如手臂,末端执行器等。
点击planning groups——add group
这里写图片描述

1 添加右臂

输入Group名为right_arm
选择kdl_kinematics_plugin/KDLKinematicsPlugin作为运动学求解(自定义的IK功能更强大)
保持Kin. Search Resolution和Kin. Search Timeout 为默认值.
这里写图片描述
点击 Add Joints按钮
获得一个关节列表,需要从左边选择合适的关节,增加到右边的关节列表。左边按住选择从r_shoulder_pan_joint到r_wrist_roll_joint(属于右臂的所有关节)。点击>按钮,增加到右边。如图
这里写图片描述
点击Save按钮,保存已经选择的组。PR2每个手臂有七个关节,但是这里加了11个,这是因为因为r_upper_arm_joint, r_forearm_joint, r_forearm_cam_frame_joint, r_forearm_cam_optical_frame_joint是固定关节,保存后效果图:
这里写图片描述

2 添加左臂

增加左臂类似右臂,选择从l_shoulder_pan_joint到the l_wrist_roll_joint.

3 添加抓手

我们将增加左端和右端的末端执行器,跟增加手臂的流程不太一样。

点击 Add Group 按钮

输入组名为right_gripper

保持Kin. Search Resolution and Kin. Search Timeout 为默认值

点击 Add Links按钮

选择所有命名以r_gripper开头的Links,增加到Selected Links。

点击Save

在左臂重复相同操作。这次选择left_gripper。增加后效果如下:
这里写图片描述

第五步 添加机器人位姿

添加固定的姿态到配置文件,即初始位姿。
点击Robot Poses按钮
点击Add Pose按钮,选择Pose名,默认值为中间值。你可以选择合适的位置,点击Save。
注意:姿势是如何关联特定的组。你可以为每个组保存独立的姿势。
重要提示:尝试移动所有的关节转动一圈。如果在你的URDF设置的限制有错误,你应该能够在这里看到。
这里写图片描述

第六步 标记末端执行器

你已经增加PR2的左右的抓手. 现在我们指定这两个组为特定的组end-effectors,这允许内部执行一些特别的操作
增加步骤:
点击End Effectors, 在点击Add End-Effectors.。
选择right_eef作为right抓手的End-Effectors的名称
选择right_gripper 作为End Effector Group
选择r_wrist_roll_link 作为end-effector的Parent Link
保留Parent Group空白.效果如下
这里写图片描述
点击Save
类似的添加left_eef

第七步 添加被动关节

例如被动脚轮,是不能直接控制的关节,我觉得可以用机械上的冗余自由度理解。

第八步 添加作者信息

第九步 生成配置文件

点击Configuration Files,点击browse选择一个合适的位置,输入配置名。(例如在Home目录创建一个新目录pr2_moveit_generated,配置名想清楚再写,只包含下划线和小写字母)
点击 Generate Package ,会生成一系列的launch和配置文件。所有的文件显示在Generated Files/Folders列表。
这里写图片描述


下一个学习部分:通过MoveIt! Rviz 插件 使用生成的配置文件;设置IKFast逆运动学求解器

额外阅读:URDF和SRDF组件

猜你喜欢

转载自blog.csdn.net/q71018188/article/details/78962451