张震 徐献圣
(佛山职业技术学院 广东佛山 528137)
如今信息化发展迅速,人工智能与机器人构成的新型载体已经融入人们的日常生活中。教育部预测,未来人工智能(含智能制造)相关十大领域在2025年将面临3000万的人才缺口。而人工智能与机器人是高职人才培养新专业布局的重点。根据《职业教育专业目录(2021年)》,新增智能机器人技术专业,会不断地有职业高校开设智能机器人等相关专业,对于课程资源的需求就会迅速增长。因此,对于实训室工件智能整理机器人的需求也日益增长。
1.本文采用了自定义的坐标转换算法,可以提高实训室工件分拣的精确度。
2.本文采用了校准软件进行参照物对照校准,提高了实训室工件分拣的精确度。
3.本文采用了自定义的坐标转换算法,提高了机械臂运动速度,提高了实训室工件分拣的速度。
1.整体实现算法
智能整理实训室工件的机器人实现算法主要的流程如图1所示。
图1
2.目标预处理
(1)AR码标识符
由于不同实训室的工件外观型号不一,通过视觉特征识别目标时计算量过大,会降低分拣速率。因此,本算法中,机器人的识别目标是自制的AR code(Augmented Reality code,AR码)。识别目标一共有两种,实训室工件和收纳箱。实训室工件主要有由一个小型方盒(本文采用的收纳盒体积为15*15*4厘米)装纳。方盒的中间位置贴上二维码标签。收纳箱也是贴上AR码坐标标识,贴在收纳箱存放工件方盒的凹槽位置。
(2)校准
由于二维码的制作工艺不同,会导致二维码的大小不一,影响AR码定位的精确度。因此,需要一个参照物用于AR码的定位校准。本文案选用的是6×8的黑白相间的棋盘作为校准对象,每个正方形都是2.4厘米的长度。校准的参数有横轴、纵轴、大小、弯曲四个校准标准。将棋盘的格子数量和格子长宽预设好,然后启动校准程序,那么,程序将会以预设好大小的棋盘作为参照物用来定位AR码。
3.分拣算法
目标预处理完成后,接下来是分拣算法。分拣算法是基于任务空间坐标系和关节空间坐标系的自定义算法。能够自动控制机械臂运动到目标处进行抓取运动。
(1)AR码定位
分拣的第一步是定位目标AR码位置。本文采用任务空间坐标系进行定位,构建两个坐标系。
第一坐标系是以摄像头为原点的任务空间三维坐标系。用于对AR码进行定位,能够通过ROS系统的AR码服务直接获取坐标数据。被定位的AR码坐标点假设为P1(x1,y1,z1)。
第二坐标系是以机械臂底座中心作为原点的任务空间三维坐标系。用于描述机械臂与分拣目标AR码的位姿关系,并不能直接获取坐标数据。但是,可以直接获取摄像头相对于第二坐标系的位置,因为摄像头与机械臂的末端执行器位置相对固定。被定位的AR码坐标点假设为P2(x2,y2,z2),摄像头的坐标点假设为P0(x0,y0,z0)。
那么获取P2点数据需要进行坐标转换。第一个坐标系的x轴与第二个坐标系的y轴平行,第一坐标系的y轴与第二坐标系的z轴平行,第一坐标系的z轴与第二坐标系的x轴平行。假设AR码第一坐标系的坐标点为P1,那么要得到AR码在第二坐标系的坐标点P2,可以引入坐标系转换公式:
其中,Cx,Cy,Cz为误差补偿常数,用于调整补偿坐标定位的误差,可以根据实际情况人为设置误差补偿常熟,提高AR码坐标P2的精准度,从而提高机械臂抓取目标的成功率。
获取到第二坐标系得AR码位置点P2后,主控模块将任务空间坐标通过任务空间坐标控制服务将P2的坐标点数据发送给机械臂,机械臂的末端执行器就会到达的坐标点。
(2)机械臂移动
当获得AR码的位置点P2后,机械臂则会自动控制自身关节,将末端执行器移动到P2位置的抓取点进行抓取目标。本文采用的是4自由度的机械臂,即任务空间坐标系的三轴以及围绕z轴旋转的4自由度。本文采用的机械臂一共是用4个关节来描述机械臂的姿态,因此会建立4个关节矢量维度的关节空间坐标系。
控制机械臂运动则是关节空间坐标,假设机械臂到达P2点的关节空间坐标为R(θ1,θ2,θ3,θ4)。即要进行坐标转换,计算R点的4个关节的转角。θ1是表示关节1的旋转角,其坐标系对应的是(x1,y1),并且旋转轴心是z1轴;θ2是表示关节2的旋转角,其坐标系对应的而是(x2,y2),以关节2舵机旋转轴截面构建二维平面坐标;θ3是表示关节3的旋转角,以关节3舵机旋转轴截面构建二维平面坐标,θ4是表示关节4的旋转角,以关节4舵机旋转轴截面构建二维平面坐标。L1表示连杆1的长度,L2表示连杆2的长度,L3表示连杆3的长度,L4表示连杆4的长度。
描述关节空间主要是通过D-H参数,4个关节的D-H表见表1所例:
表1 关节空间D-H参数表
通过机械臂逆运动学来进行坐标转换,首先要构建本方法的连杆变换矩阵,假设由第i-1连杆转换为第i连杆,那么就需要连杆矩阵,连杆矩阵的计算公式如下所示。
其中,s表示sin,sθ表示sin(θ),c表示cos,cθ表示cos(θ)。
计算后,最后得到θ1的计算值为:
计算后,最后得到的θ2、θ3、θ4的公式如下:
那么,可以通过公式来计算出关节空间坐标R点,机械臂可以通过R点来设置自身4个关节的转角,从而将末端执行器移动到目标AR码位置。
(3)末端执行器抓取或放置。
末端执行器,是一个控制夹板的行程距离来进行夹取放置目标的夹爪。夹爪实际张开的距离为变量d,夹爪的最大行程值为dmax,通过行程系数q控制乘以夹爪的最大行程值来得到实际张开距离d。实际是通过夹爪控制服务发送行程系数m来控制夹爪的值。夹爪的控制公式为。
1.硬件载体
本文所采用的硬件载体及参数见表2所例。
本文的自动化控制算法是装载在TX2主控模块中,使用液晶屏来编写开发机器人自动控制代码指令。
本文的智能机器人主要有一个4个关节的机械臂,并且有一个控制底座,一个末端执行器作为夹爪组成。
摄像头按照在末端执行器上方,用于获取目标坐标,目标坐标是以摄像头为原点的笛卡尔坐标。
具体的结构抽象图如图2所示。
图2
2.软件载体
本文实验所用的运行环境是Ubuntu 18.04。采用的架构是ROS melodic版本。
算法软件开发环境是Python的2.7.14版本,Anaconda的5.3.1版本,Pycharm的11.0版本。采用Python语言开发实现本机器人的功能。
桌面应用采用Qt的5.15.3版本进行开发。采用Qt与Python开发了2个桌面应用。第一个是校准桌面应用,第二个是机械臂控制桌面应用(图3)。
图3
3.实验结果
本实验是采用了100个实训室工件、10个收纳箱进行实验。通过控制变量法来提高实验的效果。
最终的实验结果能在10分钟内能完成100个实训室工件放置到收纳箱中。
本文能够在短时间内将实训室工件放置归位到收纳箱中,能够解决实训室工件整理难的痛点。但是二维码作为标识码的局限性很大,因此需要其他的替代识别目标的方式。