电动汽车充电操作机器人的视觉系统设计

2021-07-14 07:05徐建明胡弘历
浙江工业大学学报 2021年4期
关键词:双目插座分类器

徐建明,胡弘历

(浙江工业大学 信息工程学院,浙江 杭州 310023)

随着新能源汽车产业的逐步成熟和市场需求的逐渐扩大,新能源汽车充电技术受到了越来越多的关注。传统的新能源汽车充电方式[1]依赖人力,要求操作人员手持充电设备连接到汽车充电插座,该方式人工成本高、作业效率低、漏电安全隐患大,因此,新能源汽车充电方式的无人化、智能化便有了很大的研究价值。充电机器人自动化充电方式[2-3]的实现需要完成以下工作:1)机器人通过导航移动到待充电电动汽车的充电接口旁;2)视觉系统识别定位充电接口;3)机器人控制充电枪插入充电插座,其中的难点之一是充电接口的识别定位。电动汽车现场充电作业一般处于户外环境,光线变化大、反射不均匀;充电设备存在强电磁干扰;充电插座内部为金属材质、孔径不一的多轴孔,易反光遮挡表面信息,增加了实现电动汽车自动充电的技术难度,尤其在充电孔的识别定位方面存在很大的困难。

电动汽车充电插座识别定位技术的研究和应用在国内外都处于探索阶段,国外的公司和少数高校进行了充电机器人的研究,特斯拉研发了一款蛇形充电机器人用于电动汽车的充电[4];大众联合库卡研发了一款自动充电系统对停靠车辆进行扫描和充电口检测[5]。但目前以上研究只有相关报道,难以实现学习借鉴。国内的研究主体是部分高校,张辉等[6]研究了一种基于机器视觉的新能源电动车充电孔检测与定位方法,通过形态学的方法提取充电孔特征及其像素坐标,但是该方法对环境的适应性差;孙成[7]研究了基于单目视觉的复杂环境下充电口的识别定位方法;王超[8]研究了电动汽车充电口位姿激光扫描定位技术,通过激光器扫描的方法确定充电口位置,但是两者都是通过对充电接口进行外部改装,添加高反光材料来识别定位充电口,在实际应用中不可能对所有车辆充电插座都进行改造,因此难以落地推广。此外,上述研究都只是针对一种充电插座进行研究分析,没有考虑对快充、慢充插座的识别。为此,结合研究现状,笔者采用基于支持向量机和线性可变形模板匹配相结合的方法,设计“眼在手上”的充电操作机器人双目视觉系统,可区分快充、慢充插座、定位目标插座中心充电孔,引导机器人完成充电操作。

1 充电操作机器人的视觉系统组成与工作流程

1.1 系统组成

充电操作机器人系统主要包括六自由度机器人、移动机器人(AGV)、激光雷达、工控机、CCD工业相机、工业镜头、条形光源、电动汽车充电设备(包括充电枪快换接头、充电枪)和机器人控制柜,系统结构组成如图1所示。

图1 机器人系统结构组成

系统主要分为3 部分:控制中心、视觉传感部分和执行装置。工控机作为整个系统的控制中心,基于TCP/IP协议建立和机器人控制器、视觉传感器之间的通信,对图像数据进行处理,并将运算得到的坐标结果转化为运动控制指令,发送至机器人控制器。视觉传感器[11]部分包括两个工业相机、镜头,辅以一个条形光源,搭载于机械臂末端。双目视觉系统实现对电动汽车充电插座的图像采集、插座识别和充电孔定位;条形光源提供稳定的光照,克服外部光照变化的工作环境。执行装置包括充电操作机器人底座和六自由度机器人,机器人底座是一个AGV,装载有激光雷达,通过构建空间地图将机器人导航至电动汽车充电口[9-10];AGV上装载六自由度机器人,机器人末端连接汽车充电枪,实现控制充电枪插入充电插座的操作。

1.2 工作流程

电动汽车充电操作机器人在工作的过程中,首先由AGV导航移动至电动汽车充电插座附近,然后由双目视觉系统完成对充电插座的识别和充电孔的定位,最后由机器人根据识别到的坐标信息将末端的充电枪插入目标充电插座,工作流程如图2所示。

图2 机器人系统工作流程

系统运行的具体过程:1)机器人、工控机上电,执行机器人系统、视觉系统的初始化;2)AGV通过激光导航,移动至待充电电动汽车充电接口旁,下发识别指令给工控机;3)工控机监听到识别信号,触发视觉系统工作,双目相机采集充电插座图像,执行图像处理程序识别定位充电口,将识别定位结果解析为运动指令发送至机器人控制器;4)机器人根据运动指令,将末端的充电枪插入充电插座;5)机器人末端快换接头和充电枪分离,机器人移动到初始位置,本次充电操作完成,等待下次工作指令。

2 视觉系统识别定位方案设计

2.1 控制算法流程设计

要实现准确识别目标充电插座、定位充电孔的功能,就必须确立一套完善的目标识别定位方案,通过对视觉系统的功能需求分析,笔者设计了基于支持向量机和线性可变形模板匹配的充电插座识别定位系统,包括图像预处理、充电插座分类和充电孔匹配定位,主要操作有图像灰度化、图像滤波、图像分割、特征提取、SVM分类器设计及参数选择、线性可变形模板创建及匹配定位等。目标充电插座识别和充电孔定位算法流程如图3所示。

图3 识别定位算法流程

2.2 目标充电插座的SVM分类

电动汽车充电插座的重要特征是插座内部有多个孔径不一的圆形轴孔,并且轴孔是金属孔芯,在光源照射下,由于反光使得该区域处于同一种范围的黄白色或暗黄色的暖色调,边缘信息突出,而轴孔的外部为深色系塑料材质,属于暗冷色调,有较大色差。因此,选择提取充电孔的边缘轮廓特征作为分类依据。

支持向量机(Support vector machines,SVM)[12-15]作为一种二分类模型,对于小样本、非线性模式识别拥很大的优势。针对电动汽车快充、慢充插座的内部结构特征差异,采用基于支持向量机的方法进行识别。MVTec公司的Halcon视觉平台提供了SVM分类器的算法包,利用该SVM分类器,对电动汽车快充、慢充两个插座设置合适的分类器参数,进行分类器训练,得到分类器模型,将该分类器模型作用于快充、慢充插座的测试样本,达到预期的识别率便可以得到一个合适的SVM模型。具体的模型训练流程如图4所示。

图4 SVM模型训练流程

充电插座SVM模型的训练步骤为

1)充电插座数据样本制作。分别采集不同光照条件、角度和工作距离下快充、慢充插座的图像各50 张,再通过比例缩放、角度旋转的方式对原始图像进行样本扩充,得到各200 张图像样本,对快充、慢充插座图像样本进行标注处理。

2)充电插座特征提取。利用create_class_svm(::NumFeatures,KernelType,KernelParam,Nu,NumClasses,Mode,Preprocessing,NumComponents:SVMHandle)函数创建一个SVM分类器,根据两类插座的结构特性区别,选择提取样本图像的轮廓中心、轮廓长度、轮廓区域面积和灰度不变矩4种特征,特征数量设置为4;核函数选择RBF径向基函数[16],实现在高维特征空间中非线性变为线性可分离的分类任务;类别数量设置为2,其他参数选择默认。选择图像样本总量的70%作为训练数据,对输入样本进行特征提取,将两类插座的多特征添加到创建的SVM训练器中。

3)SVM模型训练。利用train_class_svm()函数,对输入的训练样本数据进行SVM训练,训练结束后得到一个SVM训练模型。

4)SVM模型测试。选择图像剩余样本的30%作为测试样本进行分类测试,利用classify_class_svm(::SVMHandle,Features,Num:Class)函数进行分类。根据SVM分类结果,当样本数据的测试正确率达到期望标准95%,则输出最终得到的SVM分类器,否则增加样本数据进行SVM模型的训练。

快充、慢充插座的SVM分类实现的主要思路是:通过提取快充、慢充插座内部充电孔的边缘轮廓特征信息,利用训练的SVM分类器,对提取的特征进行分类,从而分辨出是快充还是慢充插座,实现步骤为

1)通过双目相机采集快充、慢充插座图像,利用边缘检测提取充电插座内部充电孔的边缘轮廓信息。

2)提取充电孔边缘轮廓的轮廓中心、轮廓长度、轮廓区域面积和灰度不变矩4种特性作为分类器的输入特征,并利用add_sample_class_svm()函数添加到SVM分类器中。

3)根据不同充电插座特征信息,通过训练好的SVM模型,利用classify_class_svm()函数进行快充、慢充插座的SVM分类。

4)用矩形框将分类出的目标插座框出,标注“fast”表示快充插座类别,“slow”表示慢充插座类别,从而实现对充电插座的区域的大致定位,以便后续对充电孔进行精确定位和坐标提取。

对快充、慢充插座进行不同光照、距离和角度的60组分类识别实验,通过双目视觉系统分别采集60 组充电插座图像对,利用训练的SVM模型进行分类识别,识别正确率如表1所示。由表1可知:在小数据样本的情况下,笔者采用的SVM分类方法实现了对快充、慢充插座的分类,且插座识别的正确率满足对充电操作机器人视觉系统的识别要求。

表1 充电插座分类正确率

2.3 充电孔的线性可变形模板匹配

通过线性可变形模板匹配,提取充电孔的边缘轮廓特征实现充电孔的定位。该方法是一种针对表面呈平面状物体的三维模板匹配[17-19],对尺度变化、角度变化、非线性的光照变化和表面局部变形的情况都有很好的匹配效果。充电插座表面呈平面状,内部为金属材质的多轴孔,灰度变化明显,该方法能够精确获取充电插座中心插孔的轮廓边缘和像素坐标。

对采集的图像进行预处理,消除电磁噪声干扰,根据分类识别的目标插座区域,利用线性可变形模板匹配,定位中心充电孔,结合双目视差原理计算中心充电孔在三维空间中的位姿。通过设计视觉算法实现流程,完成线性可变形模板的创建,模板创建流程如图5所示。

图5 线性可变形模板创建流程

线性可变形模板的具体创建步骤为

1)图像预处理。分别采集清晰的快充、慢充插座样本图像,对图像进行灰度化处理。由于作业环境有着充电设备的强电磁干扰,选择使用双边滤波算法[20],过滤掉高频噪声信号,同时保留边缘锐度和图像细节,利用bilateral_filter(Image,ImageJoint:ImageBilateral:SigmaSpatial,SigmaRange,GenParamName,GenParamValue:)函数对采集图像进行滤波,sampling_ratio设置更大的采样率会实现更快的滤波。

2)边缘提取。选择感兴趣区域(ROI),即插座充电孔区域,利用基于Canny算法[21]的edges_sub_pix(Image:Edges:Filter,Alpha,Low,High:)函数对该ROI进行边缘检测,提取出内部充电孔的亚像素精度边缘。选择Canny滤波器,设置滤波器的Alpha对边缘梯度方向进行非极大值抑制,最后设置Low、High阈值,利用双阈值算法检测和连接边缘轮廓。

3)圆形拟合。利用基于最小二乘法[22]的fit_circle_contour_xld()函数对提取出的边缘轮廓进行圆形拟合,得到清晰的圆形充电插孔轮廓。

4)创建模板。将预处理后的图像作为参考模板,调用create_planar_uncalib_deformable_model()函数进行线性可变形模板的创建,设置模板参数,包括相机内参数、金字塔层数、模板尺寸缩放比例、搜索角度范围、搜索步长、对比度、匹配分数和贪婪度等,最后将模板文件保存至本地。

对目标插座区域进行线性可变形模板匹配,实现中心充电孔的精确定位和像素坐标提取。利用find_planar_uncalib_deformable_model()函数调用创建的线性可变形模板,作用于目标充电插座区域进行模板匹配,搜索内部中心充电孔的精确位置。主要通过调整起始搜索角度、模板尺寸缩放比例和贪婪度来增加搜索速度,调整匹配分数来提高匹配的成功率,从而优化模型的匹配效果。通过调试,设置合适的匹配参数后,利用模板匹配将模板中的插孔边缘轮廓映射到插座图像上,输出姿态偏移(rx,ry,rz)和匹配分数Score;选择中心插孔轮廓,利用area_centre()函数获得其像素坐标(x,y),慢充插座的匹配结果如图6所示,提取出了插座的7个轴孔轮廓,定位出中心充电孔,并以x,y,z轴作出三维空间方向标识。

图6 充电插座模板匹配结果

2.4 充电孔的双目立体匹配

得到目标插座中心充电孔的像素坐标后,根据双目视觉的视差原理[23],计算出充电孔在空间中的三维坐标P(x,y,z),如图7所示。

图7 双目视差原理

图7中:f为已知镜头焦距;b为基线距离;m为投影距离;O1,O2为左右相机光平面中心点;P1(xl,yl),P2(xr,yr)分别为左右相机的像素坐标。记d为两点横坐标的视差值,根据三角形相似关系,可得

(1)

由式(1)结合P1,P2点像素坐标,可以得到目标空间点的三维坐标P(x,y,z)为

(2)

双目视觉分为平行和非平行双目视觉,实验中为了扩大双目视觉的视野范围,左右相机存在一定的角度倾斜,属于非平行双目视觉,而上述视差原理是基于平行双目视觉,因此需要对采集的图像进行立体校正,使左右图像处于同一平面,实现步骤为

1)调用gen_binocular_rectification_map()函数创建一个图像校正映射,输入为左右相机图像和相机内参数,生成用于描述相机图像对到公共校正图像平面的转换的映射Map1,Map2和相机的校正参数。

2)调用map_image(Image,Map:ImageMapped::)函数,将Map映射作用于左右图像对,就可以将采集到的图像对校正为标准极线几何结构,校正过后图像对的匹配点在同一水平线并且极线相互平行。

立体校正前后双目相机的相对位姿参数如表2所示。此时便可以根据视差原理,结合得到的左右图像中心充电孔的像素坐标,计算出插座中心充电孔的三维坐标。

表2 校正前后左右相机相对位姿参数

2.5 视觉系统异常处理机制

充电操作机器人视觉系统在进行对充电插座的识别定位时,可能遇到一些异常情况,导致视觉系统不能完成预期的识别定位功能,如图8所示。

图8 异常识别情况

图8(a)中:在AGV导航至电动汽车充电口旁时,可能由于激光构图的误差导致停靠位置偏差较大,机器人和充电口的距离超出机器人的工作空间,此时双目视觉识别系统定位充电孔,发送坐标信息给机器人控制器,会导致机器人无法移动到目标点而出现异常。针对该情况,笔者设计了深度阈值处理机制:1)根据充电机器人的工作空间范围,确定其在z方向的有效工作距离为[z1,z2];2)视觉系统工作时,通过双目视觉识别定位出z方向深度距离,判断是否处于机器人的工作距离范围,当超出工作距离,则下发异常状态码至AGV控制器,AGV移动到新的初始位置,视觉系统进行二次识别。

图8(b)中:由于笔者采用的充电孔定位算法利用了充电插座的充电口轮廓特征,而充电口的轴孔存在一定的深度,因此实际上定位的是充电口轴孔的底部。当双目相机的初始位置和充电口的角度偏差过大时,会导致定位的深度信息小于实际深度距离,此时如果将定位的坐标信息发送给机器人控制器,会导致充电枪插入深度存在偏差。针对该情况,设计了角度阈值处理机制:1)汽车充电接口相对角度是固定的,因此充电枪插入汽车充电插座时,在期望情况下,机械臂偏航角θ处于固定角度,在偏航角最大误差α允许范围内,充电枪可以顺利插入插座,识别角度偏差过大会导致识别的深度信息小于实际深度距离,则可能插入失败。根据这一特性设计了偏航角θ的角度阈值,设置允许的角度偏差范围为[θ-α,θ+α];2)在识别算法中,对识别到的偏航角rz添加异常处理判断,当rz超出[θ-α,θ+α]范围时,则下发异常状态码至AGV控制器,AGV移动到新的初始位置,视觉系统进行二次识别。

通过建立识别的异常处理机制,对可能出现的异常状况采取相应处理措施,避免异常情况对机器人和车辆造成损害,从而保证机器人系统的安全性、可靠性和系统运行的稳定性。

3 实验验证

根据电动汽车充电操作机器人的功能需求进行系统设计,搭建实验平台如图9所示,主要包括执行装置、视觉传感装置和控制装置。在此平台进行充电插座的识别和充电孔定位的实验。

图9 实验平台

为了验证视觉系统所采用的识别定位方法的可行性和优越性,将笔者方法与模板匹配方法进行了对比实验验证。为模拟出真实作业场景的不同工作情况,在实验中分别设置了不同光照条件、工作角度和工作距离的环境条件来验证方法的可行性,图10所示为不同实验条件下通过双目视觉采集的左右相机图像对。图10(a,b)分别为明亮、昏暗光照条件下采集的图像对,以验证视觉系统在不同光照下的识别效果;图10(c,d)分别为机器人和插座距离30,40 cm条件下采集的图像对,以验证视觉系统在不同工作距离下的识别效果;图10(e,f)分别为机器人初始位置位于充电插座左侧45°、右侧45°条件下采集的图像对,以验证视觉系统在不同工作角度下的识别效果。采用模板匹配的方法和笔者方法所得到的充电孔识别定位结果如表3,4所示,序号1~6的数据分别对应图10(a~f)实验条件下视觉系统识别定位的耗时和中心充电孔位姿信息。目标插座中心充电孔的实际期望位置坐标为(805 mm,55 mm,616 mm),姿态坐标为(-92°,1.5°,-92°),由表4可知:笔者方法下的充电孔识别结果中,位置误差在2 mm内,姿态误差在1.5°内,表明笔者方法可以有效克服光照条件等外部环境条件的影响,对不同工作距离和工作角度都有很好的识别效果,满足充电操作机器人的在线充电要求。

图10 不同实验条件下的充电孔定位实验

表3 模板匹配方法下充电孔识别结果

表4 SVM+模板匹配方法下充电孔识别结果

表3,4中序号4行数据为二次识别结果,该次识别在实验中表现为异常识别状况,报错提示“Depth Error.Out of Range.”,表示机器人距充电口的距离超出机器人的工作空间范围,此时触发异常识别机制处理程序,先下发异常状态码到AGV控制器,再进行二次识别,分析得到新的识别定位结果,满足识别要求。由表4实验数据可以得到在识别成功情况下两种方法的平均耗时及平均位姿误差,结果如表5所示。笔者方法相对于模板匹配的方法,在平均识别耗时上减少了43.5%,在x,y,z方向的平移误差分别减小了31.3%,34.6%和17%,在rx,ry,rz方向的旋转误差分别减小了49.8%,46.5%和6.7%。

表5 识别耗时及位姿误差

4 结 论

针对电动汽车充电过程中的充电插座识别和充电孔定位问题,设计了基于双目视觉、支持向量机和线性可变形模板匹配的充电操作机器人双目视觉系统。实验结果表明:该系统能够有效区分快充和慢充插座、定位目标插座中心充电孔,识别速度和定位精度满足在线作业要求。下一步将继续研究充电操作机器人和AGV相结合的多机协同在不同场景下的作业,完整地实现真实场景中电动汽车无人化充电操作。

猜你喜欢
双目插座分类器
开关、插座
霜 降 苏美玲
学贯中西(6):阐述ML分类器的工作流程
基于双目视觉的机器人定位与导航算法
正确使用插座
基于朴素Bayes组合的简易集成分类器①
基于双目测距的卡尔曼滤波船舶轨迹跟踪
基于特征选择的SVM选择性集成学习方法
插座
基于差异性测度的遥感自适应分类器选择