基于人工智能的视觉目标定位系统设计

2020-02-01 11:22温剑锋
现代计算机 2020年35期
关键词:机械手坐标系矩阵

温剑锋

(广西建设职业技术学院信息工程系,南宁530007)

0 引言

近年来,随着政府提出“中国制造2025”计划,工业产业的持续升级引起工业生产中的先进技术发生极大的改变。越多越多工业生产都开始引入机器人进行劳作,如物流行业、焊接行业、包装行业、物料搬运等[1],机器人开始慢慢取代工人进行生产,这不仅使企业提高了生产效率,也降低了生产成本。传统的机器人工作,都是由工程师设计一条固定的路线,机器人沿着设计路线重复运动,实现高效的工作。

计算机视觉是人工智能技术的一个重要分支,它通过摄相机将拍摄的相片传入电脑,使用模式识别技术、图像处理技术等对所拍图片进行特征分类与识别,最终实现对目标的识别与定位。该技术目前已经在无人驾驶、物流等行车广泛应用。对此,基于机器视觉的机器人的应用越来越多。哈工大设计的双目视觉足球机器可以依靠双目视觉系统实现自动导航[2]。华中科技大学开发出了基于视觉的分拣可精确抓取指定物体[3]。

然而,在复杂多变的情况下劳作时,机器人并不能精确识别物体,导致系统不能正常工作。针对上述情况,本文将人工智能技术与机器人相结合,开发一套视觉目标定位系统,使机器人能适应复杂情况的目标识别与定位,减少工业生产过程中机器人的错误率,提高生产效率。

1 相关理论及技术

1.1 机器人的位姿

位姿即位置与姿态,位姿可以精确描述机器人所处的状态。其中坐标分为x、y、z三个方向,姿态是机器人分别与x、y、z轴三个方向夹角rx、ry、rz。机器人所处的位置均可以使用坐标与姿态进行描述,即(x,y,z,rx,ry,rz)。假设基本坐标系为OXYZ,机器人所处的坐标系为O’X’Y’Z’,机器人的姿态可以由如下矩阵组成R。机器人的运动过程可以通过齐次坐标和齐次矩阵进行精准定位。

1.2 机械臂选择

本文选择的是六自由度机器人RoboArm-II,它由博创公司开发,具有6个自由度串联型的机械臂。使用6自由度机器臂,机器人可以灵活、精确地按指定轨迹进行运动,能够适应不同空间和位置的作业任务,完成例如工业焊接、快递分拣等任务。它的6个关节构成的参数如下:DOF2、DOF3、DOF5这个三关节用来做俯仰运动,DOF1、DOF4用来做旋转运动,DOF6用于安装机械手,用来吸取或抓取物体。6个关节的参数如表1所示,6个关节分布如图1所示。

表1 6个关节的参数

图1 6个关节分布图

1.3 相机选择

本文使用Kinect v2摄像机,该摄相机是微软于2015年生产,它由三部分构成:color camera、IR projec⁃tor、IR camera。相机有彩色摄相头和红外线摄相头,它们分别支持1280×960分辨率、640×480分辨率。彩色摄相头可以读取GRB格式图像和深度图像,红外红摄头用来读取深度图像。相机包含四个麦克风,对声音也拥有探知能力。使用该相机采集的图像是非常适合机器学习中使用。相机在拍摄物体图像时,向物体发射红外线,根据接收器返回来的光脉冲时间差可以计算机摄相头与物体的距离。这款相机的计算精度非常高,在很多场景得到广泛应用。

1.4 Java及其相关技术

Java是一种面向对象的跨平台语言,其具有编程简单、安全性高、支持多线程等特点,诞生以来就非常受欢迎,近几年长期占据最受欢迎语言榜首,尤其移动互联网快速发展的时期,Java的应用前景更加广阔。由于Java具备很多优势,工程师们为了降低开发成本及代码维护的复杂性,开发了Spring开源框架,它使用了Java的动态代理和反射机制。

1.5 机器学习框架

本文使用基于Torch的机器学习框架。Torch框架在大规模机器学习方面受到广泛应用,尤其是在图像或视频领域。Torch7希望像MATLAB这样,能够为机器学习搭建一个较好的开发平台。Torch支持大规模的模拟训练,并且可以在将代码转移到GPU上实行并行运算,加快程序计算效率。Torch能一直保持简单、灵活、高效等目标,在极其复杂的神经网络方面仍然能保持强大灵活性和高效并行性。Torch具有如下特点:支持多维数组操作、支持GPU计算、支持常见线性代数计算、可移植到IOS或Android平台等。

2 基于人工智能的视觉目标定位系统设计

2.1 总体功能介绍

本节主要详细介绍视觉目标定位系统的开发过程。系统总体功能主要有:视觉处理、拍照处理、机械臂与目标之间的通信处理、界面设计等。主要使用的技术包括用Torch模型进行视觉处理,用Python实现机械臂与视觉部分进行通信,用Java相关技术开发服务端界面,用C++实现拍照部分的信息处理。视觉目标定位的机械手臂的工作原理如图2所示:首先使用Kinect相机拍大量的图片作为实验图片集,然后使用机器学习技术对这些图片进行训练,得到训练模型,接着计算Kinect拍摄的图片以获得较精准目标位置,之后将这些目标位置信息转成可计算的坐标系,最后将坐标系信息传统机械手,最终实现精确的抓取,如此反复循环即可实现重复的抓取操作。

2.2 各功能模块介绍

视觉处理模块的功能分为神经网络模型、ResNet结构、图片的标注。神经网络模型主要使用ResNet神经网络结构。该结构简单、实用,在人工智能与模式识别领域中的图片识别、分割等方面受到广泛应用,即使在多层次的神经网络结构中依然能得到较准确的训练模型。ResNet的结构如图3所示。

图2 机械手的工作原理图

图3 ResNet神经网络核心结构

在使用ResNet结构训练模型的时候,为了减少计算参数,往往需要ResNet进行变换,将卷积进行降维处理,加快训练速度。本文的训练模型的初始数据主要通过拍摄获取,本文的训练模型共有5000张图片,每一张图片使用标注工具做了标注处理。标注前后的图片如图4所示。

图4 标注前后的图片

2.3 拍照处理模块

该模型主要使用Kinect v2摄像机,微软为这款相机配备了专门的驱动程序方便用户使用和进行开发。在使用Kinect相机进行图片处理之前,需要在操作系统上安装机器人控制系统。这个系统可以控制Kinect相机拍照。每拍照一次都会自动生成三张图片和一个点云数据。机器人每做一次抓取操作,机器人控制系统都将指令发送到相应API接口,以保证系统循环重复地工作。

2.4 机械臂与视觉系统之间的通信处理

因为两模块之间分别由不同的电脑控制,为了实现两模块之间能正常通信,需要将电脑连接到同一个局域网上,并选择Socket通信协议。此外,为了保证通信,还需要将机械臂坐标系与视觉系统的坐标系与深度相机的坐标系进行转化匹配。坐标系之间转换矩阵公式(2)、公式(3)所示:

其中,A为视觉目标矩阵,B为机械臂矩阵,X为转换矩阵。

3 系统测试

前几节做了基于人工智能的视觉目标定位系统的详细介绍,本节主要对本系统的开发环境以及实验结合做分析。本系统的硬件环境为;Windows 10、CPU In⁃tel i7-10700F、显卡NVIDIA GTX1660Ti、硬盘2T、内存16G、相机Kinect v2,软件环境:MATLAB开发软件、Py⁃thon语言、Torch框架等。测试过程主要是在实验室中进行,其步聚如下:

(1)运行Kinect软件获取图片信息。

图5

(2)启动视觉处理服务。

图6

(3)启动可视化服务,获取区域预测图片。

图7

(4)运行客户端服务。

图8

(6)得到运行结果

本系统在抓取物体时,首先对计算物体的最优区域,以便能精准抓取物体,然后进行标色处理,这里面主要对图片标注三种颜色,一般选取红色为最优抓取区域。首先对标红部分进行计算,以获取这部分区域的所处的坐标位置,然后使用Kinect点云数据获取该区域对应下的三维坐标,再通过矩阵转换方法确定机械手的姿态,再通过网络传送到机械手服务端执行抓取操作。

(5)执行抓取操作。

图9

4 结语

本文利用人工智能相关技术,训练一套视觉处理模型,并将其应用于机器人抓取时获取精准的位置,降低机械手抓取物体的失误率。本系统由于使用了人工智能相关技术,可以适应复杂情形下的物体识别与抓取,并有较高的准确率。由于实验条件限制,本系统的实验过程都是在模拟情形下进行,实验结果有待在真实环境进行验证,本系统的执行效率比较低下,需要对算法做进一步优化提高识别与抓取的准确率和效率。

猜你喜欢
机械手坐标系矩阵
PLC气动机械手控制系统的设计与开发
独立坐标系椭球变换与坐标换算
基于机器视觉的开关操纵机械手研究
极坐标系中的奇妙曲线
拆弹帮手
基于单片机控制机械的压铸机械手优化设计
三角函数的坐标系模型
多项式理论在矩阵求逆中的应用
求坐标系内三角形的面积
矩阵