APP下载

基于RGB-D图像的机械臂关节角度检测的研究

2016-12-15刘海丰

湖北工程学院学报 2016年6期
关键词:关节点彩色图像细化

刘海丰,陈 鹏

(1.武汉工程大学 智能机器人湖北省重点实验室, 湖北 武汉430205; 2.武汉工程大学 计算机科学与工程学院, 湖北武汉430205)



基于RGB-D图像的机械臂关节角度检测的研究

刘海丰1,2,陈 鹏2

(1.武汉工程大学 智能机器人湖北省重点实验室, 湖北 武汉430205; 2.武汉工程大学 计算机科学与工程学院, 湖北武汉430205)

针对机械臂各个关节的角度值,提出了一种利用RGB-D图像的计算方法。首先通过Kinect获取彩色图像和深度图像并做对齐处理;接着利用阈值分割的方法提取机械臂目标,用细化算法提取出机械臂轮廓骨架;然后结合机械臂各刚体部件的位置关系对其关节点定位;最后利用向量的性质计算机械臂关节角度。该方法能够有效地计算出机械臂各关节角度,具有较高的准确性和较强的鲁棒性。

机械臂;深度图像;细化算法;关节点定位;关节角度

随着机器人技术的高速发展和社会工业化进程的加速,机器人逐渐参与到人类的活动中来,并日益成为人类的好帮手。机械臂也是一种重要的机器人技术,由于它能完成多种多样的任务(如装配、搬运、焊接等),能代替人类在一些危险的、恶劣的工作环境中完成既定的任务,因此,被广泛用于工业制造、空间探索、国防科技等领域[1]。

由于工业机器人系统是多输入、多输出、强非线性、强耦合的高度复杂系统[2],在长时间高速运动的情况下,机器人的非线性动力学特性十分显著,并且在实际工作中存在各种不确定性因素,严重影响着机器人的控制性能,甚至有可能出现故障,破坏物体和伤及工人,变为机器杀手[3]。如何保证工业机器人在运行过程中的稳定性、可靠性、和安全性,已成为研究的热点问题[4]。

本文通过Kinect对机械臂实时识别定位跟踪定位关节点,再根据定位的关节点计算机械臂关节角度,以第三视角对机械臂进行关节角度检测。对机械臂的故障检测、精准度提高和安全保障具有一定的研究价值。

1 基于RGB-D图像的机械臂关节角度检测算法

1.1 RGB-D图像的采集与对齐

本文使用微软公司产品Kinect设备对RGB-D图像进行采集,Kinect设备包括一个彩色摄像头,一个红外发射摄像头和一个红外接收摄像头,通过开发包Kinect SDK可以获取彩色图像数据和深度图像数据[5]。彩色图像[6]属于多通道图像,不同通道有着不同的物理意义,对某一通道信息进行图像分析处理可以达到不同的目的。深度图像与彩色图像不同,深度图像[7]的像素值与物体距离有关,不会受光线、阴影、环境变化等外界因素的干扰[8],能够很好的弥补彩色图像的缺点,在图像处理中彩色图像与深度图像可以互相补充,达到所需要的目的。本文使用Kinect SDK采集彩色图像,分辨率为640×480,如图(a),采集的深度图像分辨率为320×240,如图(b)。由于彩色图像与深度图像的空间坐标系不同,用Kinect SDK获取的彩色图像与深度图像是不对齐的[9],本文通过映射图保存深度图像与彩色图像的坐标对应关系,如图(c),通过映射图中的彩色图与深度图的映射坐标关系,可以得到对齐后的彩色图像,如图(d)。

(a)彩色图像,(b)深度图像,(c)映射图,(d)对齐图

1.2 机械臂目标提取

Kinect中深度值最大为4096 mm,本文采集的深度图像的像素值可通过距离值归一化计算:

f(x,y)=d(x,y)×255÷4096

如果机械臂周围有其他物体,单纯的通过深度图像进行阈值分割[10],就无法提取机械臂目标;又由于机械臂附近的物体与机械臂深度值相同时,无法通过深度图像阈值区别判断,所以本文将彩色图像中的颜色信息作为深度图像的辅助信息,把机械臂从深度图像中分离出来。首先利用深度图像设定一个合理的阈值区间,当前像素值在此阈值区间时,则为机械臂目标区间。此时,通过深度图像阈值分离的图像有可能含有机械臂以外的物体,本文结合彩色图像的颜色信息将机械臂以外的其他物体分离出来,为了忽略光照强度的影响,将彩色图像转换为YCbCr图像,选取机械臂区域Cb,Cr通道的平均值,将其设为辅助阈值,然后将分割后的深度图像遍历,通过彩色图与深度图像的坐标映射关系检索深度图像每个像素坐标对应彩色图像的像素值,如果对应彩色图像的Cb,Cr通道值在阈值范围内,则是机械臂目标,如果不在阈值范围内则是机械臂以外物体,将其分割掉,最后得到机械臂轮廓,如图3所示。

图2 算法流程图

图3 阈值分割后的机械臂轮廓

1.3 机械臂轮廓图像预处理

本文阈值分割算法能够得到机械臂轮廓,但由于机械臂自身线缆、商标的遮挡机械臂轮廓会有些空洞,轮廓图像不完整,需先经过膨胀腐蚀[11]操作将空洞填充,然后经过中值滤波[12]得到完整的平滑的轮廓图像,如图4所示。

图4 预处理后的机械臂轮廓

1.4 机械臂轮廓图像的细化

细化就是在保持原来形状的基础上,经过一层层的剥离,去掉原图的一些点,最终得到图像的中心线。好的细化算法要求:

1)收敛性;

2)连通性;

3)保持原图的基本形状;

4)减少笔画相交处的畸变;

5)细化结果是原图像的中心线;

6)细化的快速性和迭代次数少。

本文采用Zhang快速并行细化算法[13],能较好地满足以上条件,得到的图像见图5,目标图像像素值为1,背景像素值为0。它能较好地保持机械臂的基本形状,连通性较好。

图5 机械臂轮廓的细化

1.5 机械臂关节点的定位

每种机械臂都会有它的产品说明书和产品技术规格书,本文实验采用的是安川首钢公司的长臂型机械臂MOTOMAN-MA2010,它的产品技术规格如图6所示,机械臂各个关节的结构尺寸都有标注,各部分的关节比例关系为后面关节点定位提供有效的信息。

图6 机械臂结构尺寸图

遍历整幅机械臂骨架图,细化后的机械臂骨架线机械臂骨架部分像素值为1,背景部分为0,机械臂骨架为单位像素宽,找出像素值为1的八邻域只有一个像素值为1的所有像素点,根据机械臂关节位置关系,像素坐标点纵坐标y最大的像素点为机械臂底座关节点位置,像素点横坐标x最小的为机械臂末端执行器的关节点位置。再从机械臂末端执行器关节点的像素位置开始沿骨架线遍历,直到遍历到机械臂底座关节点位置截止,路径的像素点总个数为机械臂骨架线长度,再通过机械臂产品规格图,可以得到各个关节的比例,其他关节点按照计算的骨架线长度和各个关节的比例关系就可以定位出来,定位出的关节点如图7所示。

图7 机械臂关节点定位

2 机械臂关节角度的计算

机械臂由一系列关节连接起来的连杆组构成,如图8所示。给每一个连杆在关节处建立一个连杆坐标系,该连杆坐标系随关节运动而运动。用A矩阵描述连杆坐标系间相对平移和旋转的齐次变换。A1表示第一连杆对基坐标的位姿,A2表示第二连杆对第一连杆的位姿......第二连杆对基坐标位姿为T2=A1A2,则机械臂末端相对于基座的位姿T6=A1A2A3A4A5A6,称为机器人运动学方程。机器人逆运动学就是已知直角坐标空间的位姿T6,求解各关节相邻两连杆的夹角和距离。首先根据机械臂末端关节坐标设置An,

T6=A1A2A3A4A5A6

(1)

再分别用An(n=1,2,...,5)的逆左乘式(1),有:

(2)

(3)

(4)

(5)

根据上述5个矩阵方程对应元素相等,可得到若干个可解的代数方程,便可求出各关节相邻两杆的夹角和距离。

由于机械臂各关节变量相互耦合,逆运动方程的解也不是唯一的解,需根据机械臂的组合形态和各关节的运动范围经过多次反复计算,选择一组合理的解。通过逆运动学求解机械臂各关节角度十分复杂,本文以Kinect相机建立空间坐标系,如图9所示,定位出的关节点由二维坐标图像转换为三维坐标的,再将机械臂关节角度的计算简化为对空间向量夹角的计算,该方法简单有效。

深度图像到空间三维坐标的转换[14]可由如下表达式求得:

(7)

式中,(i,j)为图像坐标,(x,y)为空间坐标,(δx,δy)为Kinect的镜头畸变,(cx,cy)为图像中心点,(fx,fy)为比例参数,d是距离值。根据定位出的关节点像素的二维图像坐标和深度值,按公式(7)即可算出每个关节点的空间坐标。

对于Kinect坐标系中任意两个不重合的坐标点A(x1,y1,z1),B(x2,y2,z2),可转化到传统空间坐标系中组成向量AB。转化公式为:

(8)

根据以上性质,机械臂关节角度的计算可以简化为空间向量夹角的计算,如定位出的关节点A、B、C之间关节角度,可以直接通过计算空间向量BA和BC的夹角得出,公式如下:

(9)

(10)

(11)

图8 机械臂连杆坐标系

图9 机械臂关节点空间向量表示

3 实验结果

实验平台是Win7 x86 + VS2012 + Kinect for Windows SDK v1.6 + OpenCV3.0,图像采集设备是Kinect,机械臂是安川首钢公司的长臂型机械臂MOTOMAN-MA2010。实验主要分为数据的采集,机械臂轮廓的提取,机械臂轮廓填充、平滑处理,机械臂轮廓的细化,机械臂关节点的定位以及关节角度的计算,关节角度的计算是按定位出的5个关节点依次按顺序取3个关节点计算而来。

表1 机械臂关节角度

从实验结果可以看出,本文以深度图像为主、彩色图像为辅提取机械臂轮廓图像,通过膨胀、腐蚀、中值滤波预处理轮廓图像,再对轮廓图像细化算得到机械臂骨架,细化后的机械臂骨架为单位像素宽,该方法可以鲁棒地实现机械臂关节点的定位和关节角度的计算。另外,本文所使用的方法只需一次手工设定阈值,能够自动地定位机械臂关节点,并计算出关节角度。

4 结束语

本文提出了一种提取机械臂目标轮廓的方法,首先结合深度图像和彩色图像,利用膨胀腐蚀方法填充机械臂轮廓中的空洞,用中值滤波对机械臂轮廓进行平滑处理后;用细化法对机械臂轮廓进行细化处理,得到的机械臂骨架为单位像素宽;其次,结合机械臂各关节的位置关系和各关节部件的比例关系,定位出机械臂关节点;最后,用空间向量法计算关节角度。该方法保证了机械臂关节点定位的准确性,并为深度相机仿真机械臂检测和机械臂奠定了基础。由于该机械臂工作空间小,不会出现遮挡情况,本文未对遮挡情况进行处理。另外,由于Kinect对物体距离的测量本身存在一定误差,图像处理也有部分误差,所以机械臂关节角度的计算存在一定的误差,今后将进一步研究提高计算的准确性。

[1] 王田苗,陶永.我国工业机器人技术现状与产业化发展战略[J].机械工程学报,2014,50(9):1-13.

[2] 刘海涛.工业机器人的高速高精度控制方法研究[D].广州:华南理工大学,2012.

[3] 蔡自兴,郭璠.中国工业机器人发展的若干问题[J].机器人技术与应用,2013,03:9-12.

[4] 刘磊.工业机器人远程监控诊断服务系统的设计开发[D].大连:大连理工大学,2014.

[5] 周致富. 基于Kinect传感器的三维点云模型重建研究[D].武汉:武汉科技大学,2015.

[6] Deng J, Hu J, Wu J. A study of color space transformation method using nonuniform segmentation of color space source[J].Journal of Computers,2011,6(2):288-296.

[7] Yang L, Ren Y, Zhang W. 3D depth image analysis for indoor fall detection of elderly people[J].Digital Communications and Networks,2016,2(1):24-34.

[8] 周颖.深度图像的获取及其处理[D].西安:西安电子科技大学,2008.

[9] 赵旭. Kinect深度图像修复技术研究[D].大连:大连理工大学,2013.

[10] 周杨. 深度图像分割算法的研究与仿真实现[D].哈尔滨:哈尔滨理工大学,2008.

[11] 陆宗骐,朱煜. 数学形态学腐蚀膨胀运算的快速算法[C]//中国图象图形学学会.第十三届全国图象图形学学术会议论文集.中国图象图形学学会,2006.

[12] Wu J. Wavelet domain denoising method based on multistage median filtering[J].The Journal of China Universities of Posts and Telecommunications,2013,20(2)2:113-119.

[13] 吴选忠.Zhang快速并行细化算法的扩展[J].福建工程学院学报,2006,4(1)1:89-92.

[14] Wang S, Li C,Kong D, et al. Extracting hand articulations from monocular depth images using curvature scale space descriptors[J].Frontiers of Information Technology & Electronic Engineering,2016,17(1)1:41-54.

(责任编辑:熊文涛)

Research on the Detection of Manipulator Arm Joint Angle Based on RGB-D Image

Liu Haifeng1,2, Chen Peng2

(1.HubeiKeyLaboratoryofintelligentrobot,WuhanInstituteofTechnology,Wuhan,Hubei430205,China2.SchoolofComputerScienceandEngineering,WuhanInstituteofTechnology,Wuhan,Hubei430205,China)

For the angle value of each joint of manipulator arm, a calculation method is proposed, using RGB-D image. Firstly, the RGB color and depth image are obtained, using Kinect and alignedto segment the manipulator arm from the depth image by the threshold segmentation. Secondly, the manipulator arm outline frames are extracted according to the thinning algorithm. By combining the position relation of the rigid body parts of the manipulator arm, the joint points are located and the joint angle of the manipulator is calculated based on the properties of the vector. The method can locate joint point and calculate the joint angle of the manipulator with high accuracy and robustness.

manipulator arm;depth image; thinning algorithm; joint point calibrated; joint angle

2016-05-18

湖北省教育厅青年人才项目(Q20111504);武汉工程大学科学研究基金项目(12116021);武汉工程大学研究生教育创新基金项目(CX201274)

刘海丰(1989- ),男,湖北宜昌人,武汉工程大学智能机器人湖北省重点实验室硕士研究生。

陈 鹏(1990- ),男,湖北宜昌人,武汉工程大学计算机科学与工程学院硕士研究生。

TP311

A

2095-4824(2016)06-0097-05

猜你喜欢

关节点彩色图像细化
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
基于FPGA的实时彩色图像边缘检测
基于专家模糊技术的彩色图像对比度增强方法
中小企业重在责任细化
“细化”市场,赚取百万财富
基于视觉注意的全参考彩色图像质量评价方法
搞好新形势下军营美术活动需把握的关节点
“住宅全装修”政策亟需细化完善
RGBD人体行为识别中的自适应特征选择方法