当前位置:   article > 正文

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

moveit catkin_make

 

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

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

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

 

一、ROS系统的MoveIt模块简介

  机器人操作系统ROS目前最受关注的两个模块是导航(Navigation)和机械臂控制(MoveIt!),其中,机械臂控制模块(后面简称MoveIt)可以让用户快速建立机械臂模型并实现机械臂的控制(包括建模、运动学求解、运动规划、避障等),后续我将分几篇博客分别介绍如何一步步使用MoveIt控制自己的机械臂,算是对以前的学习内容的记录和分享。

  关于MoveIt最全面的讲解可以参考MoveIt官方网站,推荐大家多参考官方文档和例程,这里的博文系列权当简介和入门。

  如果用几个特点来概括MoveIt,主要有:

  1. 它是属于ROS系统的一部分,用于控制多关节机械臂;
  2. 提供了一系列成熟的插件和工具,可以实现机械臂控制的快速配置;
  3. 封装了大量API,方便用户在MoveIt模块上进行二次开发,进而做出更多有意思的应用。

  这里借用官方经典图例做简单说明,如下如:

MoveIt结构图

  上图可以看出:

  1.MoveIt 的核心节点(node)为move_group,外围的几个部分分别为:ROS Param ServerRobot  ControllersRobot 3D SensorsUser InterfaceRobot Sensors,其中:

  • ROS Param Server:这部分载入的是用户定义的模型文件(xacro或urdf)和一些配置文件。(重要)
  • Robot  Controllers:  这部分可以看做是和真正的机器人部分(硬件控制接口)打交道的部分,即运动规划的数据由此发给机器人驱动部分,后续会详细讲解。(重要)
  • Robot 3D Sensors:  这部分作用是载入RGB-D相机或激光雷达等获得的点云数据用于机械手的抓取或避障等。
  • User Interface:         这部分是用户接口,MoveIt提供一系列的API供用户完成自定义的功能,这里主要。(重要)
  • Robot Sensors:        这部分是接收机械臂的传感器数据,然后预估出机器人的状态并发布。

二、MoveIt的安装(Ubuntu14.04,Indigo)

  首先确保你的Linux上正确安装了ROS系统,安装步骤参考:http://wiki.ros.org/indigo/Installation/Ubuntu。然后安装moveit,如果不想挑战源码编译,MoveIt可以用apt-get快速安装,只需要输入:

$ sudo apt-get install ros-indigo-moveit-full

三、本系列博文所用双臂机器人简介

  本系列博文将以一个双臂机器人为例,详细讲解基于MoveIt的使用方法,我为这个双臂机器人取名为:rob,并在Solidworks中简单绘制了该机器人的三维模型,结构示意图如下:

Rob结构示意图

  Rob包含两个手臂,左右对称布局,每个手臂包含5个自由度,关节情况如下图所示。

关节分布情况示意图

  这种关节分布是仿人形的双臂机器人常用的手臂设置形式,但这种结构并不能完全覆盖人手臂所有的自由度(人的手臂包含7个自由度),但用于说明 MoveIt 的使用已经足够了。此外,各个关节的自由度范围如下表所示。

关节 肩关节前后转动(左) 肩关节左右转动(左) 肩关节轴向转动(左) 肘关节前后转动(左) 腕关节轴向转动(左) 肩关节前后转动(右) 肩关节左右转动(右) 肩关节轴向转动(右) 肘关节前后转动(右) 腕关节轴向转动(右)
范围(度°) -25~175 0~60 -80~80 0~90 -80~80 -25~175 0~60 -80~80 0~90 -80~80

 

四、机器人的ROS模型建立

   这个系列主要介绍机器人ROS模型的建立方法,ROS系统带来的好处之一就是:我们无需自己建立复杂的数学模型来描述自己的机器人几何尺寸、运动学和动力学等,只需要用它提供的模型描述方法即可实现快速建模。

  ROS系统的模型描述方法主要有两种格式: URDF 和 XACRO。

  • URDF:用于描述一些简单的机器人模型,参考官网:URDF官方介绍(初学者一定要精读这些文档)。
  • XACRO: 应用更普遍的机器人模型描述文件,参考官网:xacro,它有如下几个特点:   

    1. 语法简练。采用编程话的脚本语言格式,可以定义变量、常量、引入数学表达式等,极易上手。

    2. 方便复用。它可以进行一系列的宏定义,并且可以包含其他.xacro文件。

  下面,开始用xacro文件建立Rob的机器人模型,完整的源代码可以在:git上获取(git建模源码),下文会截取一部分代码做简要说明。

1. 第一部分是文件的头和一些宏定义,robot name我们可以自己随便定义,然后分别给出了几组颜色和常数的定义,最后给出了关节传动部分的宏定义。

<?
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/482130
推荐阅读
  

闽ICP备14008679号