ROS系统MoveIt玩转双臂机器人系列(二)--生成MoveIt配置包

注:本篇博文全部源码下载地址为:Git Repo。

1. 下载到本地后解压到当前文件夹然后运行:catkin_make 编译。

2. 源码是在 Ubuntu14.04 + Indigo 环境下编写。

一、MoveIt包的配置

  经过上一篇文章(传送门)的介绍,我们成功的对双臂机器人 rob 进行了 ROS 系统建模,并在 Rviz 可视化工具中进行了验证。本篇博客主要介绍如何借助 ROS  系统的 Setup Assistant 工具生成一个默认的MoveIt 配置包(config package)。

  1. 新建配置包文件夹

  我们在上一篇文章提供的源代码的 src 文件夹内的 rob_moveit_pack 文件夹中添加一个文件夹 rob_moveit_config,具体位置如下图文件树所示,红色文件夹即为新建文件夹。

src
  ├── CMakeLists.txt
  └── rob_moveit_pack
    ├── rob_description
    │     ├── CMakeLists.txt
    │     ├── include
    │     ├── launch
    │     ├── meshes 
    │     ├── package.xml
    │     ├── src
    │     └── urdf
    ├── rob_moveit_config
    └── rob_moveit_pack
      ├── CMakeLists.txt
      └── package.xml

  2.  Setup Assistant 工具使用

  (1)进入 work space 目录(src文件夹所在的目录)内,然后分别执行:

catkin_make
source devel/setup.bash

  (2)启动 MoveIt Setup Assistant Tool, 启动命令为:

roslaunch moveit_setup_assistant setup_assistant.launch

  注:如果提示失败,则有可能系统未安装 MoveIt 程序包,只需按照本系列博文(一)所属方法安装即可。

  启动后的界面如下图所示,然后点击 Create New Moveit Configuration Package 选项,然后通过跳出的载入选项中的 browse 按钮选择我们的 rob 机器人的 xacro 描述文件,点击 Load Files 即可完成模型的加载。

  (3)Self-collision  选项设置。

  左上角的第二个选项为 Self-collision  选项,作用是加载机械臂自碰撞矩阵,这样就可以防止在后面的运动规划过程中产生运动干涉(自碰撞),由于我们的描述文件建模比较完备,只需要点击Regenerate Default Collision Matrix 按钮即可生成各个关节的碰撞矩阵,效果如下图所示。

  (4)Virtual Joints 选项。

  左上角的第二个选项为 Virtual Joints  选项,所谓 Virtual Joints 就是我们的机械臂和世界绝对坐标系之间存在一个 虚拟的自由度(相对坐标系),这个多出来的虚拟自由度(相对坐标系)可以表征我们的机械臂相对于世界绝对坐标系的转换关系或者说运动关系,例如当我们的机械臂固定在移动平台上时就需要设置这样一个虚拟坐标系,这里我们的机器人是固定不动的,也就是基坐标系和世界坐标系是相对固定的,因此不需要设置虚拟关节,效果如下图所示。

  (5)Planning Groups 选项(重要)

  Planning Groups 选项的作用是设置机械臂的运动规划群组,也就是我们将几个连续的关节作为一个规划群组,后面将根据这里设置的群组进行运动规划,同时在设置群组的时候我们选择对应群组的运动学求解库,通常选择 kdl_kinematics_plugin/KDLKinematicsPlugin 即可,本博文后面会介绍一种我们自己写的运动学求解算法,这里不再展开, 由于我们是双臂机器人,因此群组为另个,分别为 Left_arm 和 Right_arm ,效果如 下图所示。

  (6)Robot Poses 选项。

  这一选项的作用是设置机器人的一些已知位姿,例如:初始位姿、抓取位姿和一些中间位姿,设置这些位置是有很多好处的,例如运动规划的初始位姿可以明确起点位置,一些中间位姿也可以用来做精读矫正,这里我们仅仅为两组手臂设置一组初始位姿,效果如下图所示。

  (7)End Effectors 选项。

  这是机械臂的末端执行器选项,一般末端执行器为夹子、吸盘等,只需要一个布尔变量即可控制,比较简单,我们这里只追求手臂末端(手掌位置)能够到达空间中的某点,因此不再设置末端执行器。

  (8)Passive Joint 选项。

  指定被动关节,也就是没有驱动的关节,它的关节变量由其它主动关节所决定,这里我们没有被动关节,也不再设置。

  (9)Author Information 项。  

  指定作者信息,没什么好说的,如下图。

  (10)Configuration Files 选项。

  这里是指定我们的配置文件的生成位置和内容的设置窗口,这里的Sace Path 我们选择第1小结里我们新建的 rob_moveit_config 文件夹,点击右下角的Generate Package 选项即可完成整个配置包的生成,具体见下面图,然后退出即可。

二、MoveIt包的验证

  经过第一部分的配置,我们已经默认生成了 rob 机器人的MoveIt 的配置包,这时我们需要验证配置包的正确性,我们只需要在 work space 目录输入:

roslaunch rosbook_arm_moveit_config demo.launch

  此时跳出的RViz环境如下图所示,默认规划群组为左臂。

  我们在左下角的Motion Planning 窗口中点击 Planning ,然后点击 Query 选项的 Update 按钮,既可以获得一个随机目标位置,然后点击Commands 选项下的 Plan 和 Excute 按钮即可完成一次运动规划,效果如下图所示。

  此外,我们还可以设置测试另外一个手臂的规划,只需要在左上角 Displays 模型设置框内点开 Planning Request 选项,下面有Planning Group,我们将它的值设为 right_arm 即可,效果如下图所示。

  至此,我们已经完成了默认的MoveIt 包的生成工作,下面一篇我们将介绍如何修改本包使其能够用于控制我们自己的机器人。

  <-- 本篇完 -->

欢迎留言、私信、邮箱、微信等任何形式的技术交流。

作者信息:

名称:Shawn

邮箱:zhanggx0102@163.com

微信二维码:↓

posted on 2018-04-24 21:50 Shawn0102 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/shawn0102/p/8922128.html

ROS系统MoveIt玩转双臂机器人系列(二)--生成MoveIt配置包相关推荐

  1. ROS系统MoveIt玩转双臂机器人系列(三)--利用controller控制实际机器人

    ROS系统MoveIt玩转双臂机器人系列(三)--利用controller控制实际机器人 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_ ...

  2. ROS系统MoveIt玩转双臂机器人系列(一)--ROS机器人建模

    ROS系统MoveIt玩转双臂机器人系列(一)--ROS机器人建模 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_make 编译. 2. ...

  3. ROS系统MoveIt玩转双臂机器人系列(五)--浅议机器人运动学与D-H建模

    ROS系统MoveIt玩转双臂机器人系列(五)--浅议机器人运动学与D-H建模 一.概述 机器人运动学研究的是机械臂各个连杆之间的位移关系.速度关系和加速度关系.比较经典的一本书推荐大家读读熊有伦的& ...

  4. c++运动学正反解 ros_ROS系统MoveIt玩转双臂机器人系列(六)–D-H逆运动学求解程序(C++)...

    注:本篇博文全部源码下载地址为:Git Repo. 一.转换矩阵 经过上一篇博客介绍,我们已经获得了Rob一个手臂的D-H参数表,如上表所示,我们要把这些参数转换成相邻坐标系的转换矩阵,D和H两位老前 ...

  5. 【ROS系统】解决找不到用户工作空间下的程序包的问题——E:No such package

    [ROS系统]解决找不到用户工作空间下的程序包的问题--E:No such package 参考文章: (1)[ROS系统]解决找不到用户工作空间下的程序包的问题--E:No such package ...

  6. [Jexus系列] 二、Jexus配置https

    注意,本教程使用的jexus版本为5.8.3专业版,操作系统为 Ubunutu 16.04 64位 之前的教程: [Jexus系列] 一.安装并运行 Jexus 获取https证书并上传到服务器 1. ...

  7. 開玩樹莓派(二):配置IP,實現無顯示器局域網內Putty連接和RDP遠程

    目錄: 開玩樹莓派(一):安裝Raspbian系統 開玩樹莓派(二):配置IP,實現無顯示器局域網內Putty連接和RDP遠程 開玩樹莓派(三):Python編程 開玩樹莓派(四):GPIO控制和遠程 ...

  8. 鸿蒙系统能玩魔兽世界吗,《魔兽世界》7.0配置公布:仍不放弃XP

    目前,<魔兽世界>7.0资料片"军团再临"的Alpha测试已经开启,官方随即公布了新游戏的PC配置要求. 整体来看,由于7.0资料片运用了大量新图形技术和高清贴图.特效 ...

  9. Maven系列二setting.xml 配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...

最新文章

  1. php 字符串排序 带数组,php – 按字符串排序的多维数组
  2. 如何打赢一场唯快不破的比赛,看看他们的绝招
  3. linux c++ 报错 invalid use of incomplete type 解决方法
  4. Windows 关闭进程例子
  5. SpringBoot2.1.5 (5)---快速构建SpringBoot 项目的两种方式
  6. 极简代码(四)—— 分段函数(sinc)的实现
  7. linux总线驱动程序,Linux驱动程序中的platform总线详解
  8. cs6导入库闪退 flash_flash导入文件闪退 如何定位已关机的手机
  9. 安全模型和业务安全体系
  10. internet时间同步服务器地址(中国国家授时中心)
  11. Html设置表格撑开,CSS教程:表格不被撑开的解决办法
  12. 市面上微型计算机的主频,目前市面上最大屏幕的手机,你知道是哪款吗?
  13. 【Matlab】MATLAB矩阵处理
  14. .9图片设置不拉伸的区域被拉伸的问题
  15. Windows更换苹方字体,刷新视界让视界瞬间清晰
  16. 【线性代数及其应用】05 - 正交性和最小二乘
  17. 卓越员工对“怠惰”说不
  18. HiveSql一天一个小技巧:如何不使用union all 进行列转行
  19. 各大IT企业招聘所须要求技能
  20. C++标准模板库STL学习

热门文章

  1. linux查看程序写文件内容,Linux 文件内容查看命令
  2. JavaScript 复杂判断的更优雅写法借鉴
  3. 软件工程趣盒软件设计
  4. javascript挑战编程技能-第九题:数据结构
  5. Intel汇编语言程序设计学习笔记1
  6. struts2.1笔记02:servlet简介
  7. javascript设计模式-适配器模式
  8. 自适应网页设计(转)
  9. 做网络需要掌握的56句话
  10. 华为鸿蒙ipc时延,虚搜