基于视觉引导的Baxter机器人运动控制研究

2018-09-08 01:39刘想德
关键词:手臂消息协作

刘想德

(重庆邮电大学 国家信息无障碍工程研发中心,智能系统及机器人研究所, 重庆 400065)

0 引 言

自从20世纪60年代初第一台工业机器人诞生以来,机器人研究及其技术发展迅猛,目前工业机器人已经广泛应用于汽车及汽车零部件制造、机械加工、橡胶及塑料、食品工业等领域中[1-4]。随着科学技术发展,工业机器人应用领域不断扩大,逐步进入医药生化、家庭清洁、医疗康复等服务业领域中。在这些新应用领域,传统工业机器人已经无法满足用户需求,开发能够与环境共融的智能协作机器人是当前国内外高校、研究机构的热门、前沿领域[5-6]。

基于机器人操作系统(robot operation system,ROS)的智能协作机器人在国外已经有一些产品进入市场,但在国内的研究才刚刚起步,国内高校和研究机构在该领域急需加大研发力度。ROS提供了类似操作系统的一些功能,包含硬件抽象描述、底层驱动程序管理、程序间的消息传递、程序发行包管理等[2,7-8]。ROS设计的首要目标是为机器人研究及开发提高代码复用率。

本论文介绍了双臂智能协作机器人Baxter的系统组成和控制原理,基于ROS平台研究了Baxter机器人的运动控制软件和算法。

1 智能协作机器人与ROS

1.1 Baxter机器人的系统组成

Baxter机器人是美国Rethink Robotics公司于2012年推出的一款双臂智能协作机器人。Baxter 机器人作为一款新型的智能协作机器人产品,已经被国外众多知名大学和科研机构用于教学、研究工作中,但我国目前还只有极少数高等院校和科研机构能够有条件开展智能协作机器人的相关研究工作。

1.1.1 Baxter机器人的外形结构

Baxter 机器人整体上由头部、底座和左右2个具有对称结构的机械手臂等几部分组成,其外形结构如图1所示。

图1 Baxter机器人外形结构Fig.1 Physical structure of Baxter robot

图1中,Baxter机器人左、右手臂分别由7个独立的旋转运动关节串联组成,通过控制各关节转角、转速和力矩来控制Baxter机器人手臂末端的位置、速度和力矩大小。Baxter机器人左、右手臂关节及表示符号的对应关系如图2所示。

图2 Baxter机器人手臂关节名称Fig.2 Arm joints of Baxter robot

图2中,S0和S1是Baxter机器人肩部关节;E0和E1是肘部关节; W0,W1,W2是腕部关节。各关节转角范围,如表1所示。

表1 Baxter机器人关节转角

1.1.2 Baxter机器人的电子/电气系统

智能协作机器人Baxter本体上集成了声纳、视觉和力矩等传感器,通过这些传感器Baxter机器人能够感知外部环境并建立外部环境模型。Baxter机器人本体上集成了LCD显示器、伺服电动机、电动手抓和LED灯等执行机构,通过这些执行机构Baxter机器人能够快速响应外部环境变化。Baxter机器人的电子/电气系统结构如图3所示。

图3中,Baxter本体计算机(运动控制器)是Baxter机器人的运动控制中枢,该计算机位于机器人身体躯干上,能够通过以太网接口、串行接口跟外部计算装置和信号通道接口相联接,扩展系统功能。

图3 Baxter机器人的电子系统组成Fig.3 Electric system of Baxter Robot

1.2 ROS的基本模型及原理

ROS是一种能够广泛应用于机器人及智能机电控制系统的分布式计算、通信框架。ROS分布式计算模型由3部分组成,分别是:ROS节点(node)模型、ROS消息(message)/主题(topic)模型以及ROS服务器(service)模型。

1.2.1 ROS节点模型

ROS节点可以看作执行具体运算任务的进程,一个机器人控制程序由很多相互关联的节点组成。ROS节点总体上分为主节点和用户节点2种类型,主节点由ROS系统提供,用户节点由用户根据具体任务编写。一个用户节点可以看作一个用户进程,当多个节点同时运行时可以根据节点之间的通讯关系绘制节点联接图。ROS节点间的联接如图4所示。

图4 ROS节点间的联接Fig.4 Connection between ROS nodes

图4中, ROS主节点 Master通过远程过程调用(remote procedure call protocol,RPC)提供了登记列表和对其他节点的查找功能。Talker,Listener为用户节点内部的消息订阅器和发布器,用户节点通过发布或者订阅特定消息与其他用户节点进行通信。

1.2.2 ROS消息/主题模型

每一个ROS消息都是一个严格定义封装的数据类型,ROS用户节点通过各种具体消息进行通讯。ROS节点需要通过主题来发布或者订阅消息,不同主题对消息类型有不同的格式要求。节点针对某个主题发布或者订阅特定类型的消息,可能同时有多个节点发布或者订阅同一个主题消息。ROS消息主题模型如图5所示。

图5 ROS消息主题模型Fig.5 Model of ROS message and topic

图5中,ROS除了支持标准数据类型(整型、浮点型、布尔型等)消息,也支持数组等复合数据类型及用户自定义消息类型。

1.2.3 ROS服务器模型

ROS除了采用话题的发布/订阅这种广播式通讯模型,还定义了服务器通讯模型作为补充。ROS服务器模型类似于Internet网络上的web服务器模型,ROS服务器通过一些定义好的服务类型及名称作为用户节点服务请求的响应。ROS服务模型如图6所示。

图6 ROS服务模型Fig.6 Model of ROS service

图6中, ROS服务器模型的最主要特点是服务请求者可以有多个,但是同一服务的提供者只能有一个。而在ROS消息主题模型中,同一话题发布者和订阅者可以同时有多个。

2 Baxter机器人的运动控制

2.1 目标物体轮廓识别及定位

2.1.1 目标物体的轮廓识别

本文通过颜色区域分割方法来获取待抓取目标物体的轮廓形状。目标物体检测识别是目标定位抓取的前提条件。当前,基于目标颜色识别的视觉系统广泛应用于物体自动分拣、产品质量检测等机器人应用系统中。

在机器视觉研究中,RGB(red,green,blue)模型和HSV(hue,saturation,value)模型是最常用的2种颜色空间模型。RGB模型也称为加色法混色模型,采用三维坐标模型形式更容易理解;HSV模型是针对用户观感的一种颜色模型,模型中颜色参数分别是:色彩(H),纯度(S),明度(V)。本文先把CCD 摄像机获取的RGB 颜色数据转换为HSV 颜色数据,然后再通过OPENCV中的颜色分割函数来得到目标物体轮廓,求解过程如图7所示。

图7 目标物体轮廓识别流程图Fig.7 Identification of target object contour

图7中,CV_BRIDGE类的作用是把目标图像数据封装成ROS图像消息数据类型,然后再以ROS消息方式把图像数据发送到相应ROS主题。

2.1.2 目标物体中心点的定位

目标物体中心点是机器人手臂运动规划的目标位置,手臂到达该位置后将自动打开手抓执行抓取动作。目标物体中心点像素坐标,需要通过一系列坐标计算变换,才能引导机器人手臂运动到预定位置。

目标物体的定位中,首先通过相机的标定来获取相机内参数矩阵、畸变系数和外参数矩阵;然后根据针孔相机模型基本原理,把摄像机内参数矩阵和畸变系数代入(2)式,求取目标物体中心点的世界坐标;最后把相机外参数矩阵数值代入(3)式计算出物体中心点在机器人坐标系中的坐标。上述坐标变换需要用到的公式如下。

1)图像像素点Pu坐标到图像物理点P坐标的变换公式为

(1)

(1)式中:dx,dy分别为单位像素的物理尺寸,单位为mm;u,v分别是像素点Pu的横坐标和纵坐标;x,y分别是图像物理点P的横坐标和纵坐标。

2)图像物理点P坐标到摄像机光心Pc坐标的变换公式为

(2)

3)摄像机坐标Pc到世界坐标(Baxter机器人基础坐标系)Pw的变换公式为

(3)

(3)式中:xw,yw,zw是Pw的空间坐标;R,T为摄像机的外参数旋转矩阵和平移矢量。

2.2 机器人手臂的抓取控制

机器人运动控制器执行机器人关节轨迹规划、轨迹插补、运动避障等算法程序,是机器人的重要组成部分。 Baxter双臂智能协作机器人运动控制器由一台搭载Intel Core i7-3770 3.4 GHz处理器的计算机来构成。Baxter机器人主机(运动控制器)通过局域网接口跟外部工作站相联接,工作站计算机运行机器人应用程序。Baxter机器人软件系统结构如图8所示。

图8中,外部工作站跟Baxter机器人通信的局域网络采用有线网络或无线网络。外部工作站直接通过ROS主题消息和服务跟Baxter机器人交互,也可以通过封装好的Baxter接口函数API(application programming interface)来跟Baxter机器人交互。以ROS消息主题方式直接交互,需要严格按照Baxter机器人消息类型发送/订阅主题消息;以Baxter-SDK方式交互时,由于API接口函数中封装了ROS消息主题发布/订阅过程,可简化编程工作。

图8 Baxter机器人软件系统结构Fig.8 Software system of Baxter Robot

基于ROS的Baxter机器人控制软件功能包由2个ROS节点组成:①目标识别定位节点;②机器人手臂运动控制节点。2个节点通过ROS消息主题方式进行通信。Baxter机器人的运动控制流程如图9所示。

在机器人手臂运动过程中,系统程序将不断检测关节速度值是否溢出、手臂是否发生碰撞等情况,并及时做出相应处理,直到机器人手臂运动到目标位置。

3 实 验

实验以与机器人底座同平面桌上的橙色小球作为被抓取对象,机器人小臂的初始位姿垂直桌面,跟桌面的垂直距离为60 cm(这个距离值可以灵活设置,一旦设置好了就作为初始位置参数保持不变);实验中,始终保证橙色小球在Baxter机器人工作空间内。控制系统首先通过边缘轮廓提取算法得到小球外形轮廓,计算出轮廓中心点坐标;再根据摄像机参数和小孔成像模型计算出轮廓中心点在Baxter机器人基础坐标系中的位置;最后通过Baxter机器人系统软件提供的内部ROS服务功能对轮廓中心点求运动学逆解,并驱动机器人手臂运动到目标位置执行抓取动作。实验结果如图10所示。

图9 Baxter机器人运动控制Fig.9 Motion control of Baxter Robot

实验中,改变橙色小球的位置,Baxter机器人均可以准确抓取小球,具有较高定位精度,实验数据结果如表2所示。

分析表2中数据发现,Baxter机器人视觉引导控制系统在平面(小球所在桌面)上的定位误差范围为±1.5 mm(Baxter机器人本身的重复定位精度为0.5 mm)。造成该误差的主要原因是视觉相机固定安装在Baxter机器人手臂上,从而造成视觉相机相对被抓取小球所在桌面的初始位姿参数总有一定偏差;同时,小球所在桌面跟机器人底座平面是否在同一水平面也会影响到定位精度。尽管如此,本控制系统达到的定位精度可以满足Baxter智能协作机器人的大部分应用需求。

表2 抓取橙色小球实验数据

4 结束语

本文以双臂智能协作机器人Baxter为研究对象,基于ROS平台,开展智能协作机器人运动控制应用研究。研究中,外部控制工作站采用ROS消息主题方式获取Baxter机器人手臂末端相机图像,并从图像中识别出目标物体。系统根据相机参数模型及机器人关节模型计算出目标物体中心点位置坐标,然后引导机器人手臂运动抓取目标。本文研究工作对国内智能协作机器人研究及其行业应用研究具有一定参考价值。

猜你喜欢
手臂消息协作
手臂上的抓痕
一张图看5G消息
团结协作成功易
监督桥 沟通桥 协作桥
狼|团结协作的草原之王
协作
完美的手臂
消息
消息
消息