一种小型机器人触觉对物体进行探测与识别的方法

文档序号:10500501阅读:705来源:国知局
一种小型机器人触觉对物体进行探测与识别的方法
【专利摘要】本发明涉及一种小型机器人触觉对物体进行探测与识别的方法,属于机器人应用领域,该方法包括:获得实际视野距离,将目标物体放置在摄像头视野中;将目标物体在摄像头视野坐标转换为物体实际视野坐标,计算机械臂旋转角度α;控制机械臂旋转至α,夹持器合拢直往前探索,不断靠近目标物体,当检测到弯曲传感器已经弯曲,准备进行抓取;控制板不断采集并检测传感器阵列和单点压力传感器的数据,当检测到单点压力传感器的数值达到设定的压力阈值后,通过传感器阵列的值判断出抓取点处在物的中心;通过触觉对目标物体进行数据采集、训练分类器、实时抓取完成目标物体的识别。该方法通过触觉对物体的内在属性进行分析,并实现不同物体之间的精确分类。
【专利说明】
一种小型机器人触觉对物体进行探测与识别的方法
技术领域
[0001] 本发明属于机器人应用技术领域,具体涉及一种小型机器人触觉对物体进行探测 与识别的方法。
【背景技术】
[0002] 当前机器人实现物体的探测与识别绝大部分是基于视觉。视觉已能够对目标物体 进行较精确的探测,也能识别出绝大部分物体,但是只依赖视觉在实际应用场景中仍存在 较多的限制,如环境(光线等)的变化引起的视觉误差,还有对于两个视觉上相似度极高的 物体的视觉区分度过小等。基于触觉的物体探测与识别可以有效地规避这些外界因素带来 的干扰。首先触觉不会受到环境的影响,其次,对于某些视觉上特别相似的物体如新鲜的苹 果和内部腐烂的苹果,通过触觉可以有效地进行识别分类。当前也有公开技术是关于机器 人触觉识别的,中国专利CN2820474公开了一种阵列式机器人触觉传感器,但是,该传感器 进行机器人的触觉感知与物体识别是建立在物体表面,通过多个传感器获取到物体表面的 凹凸形状信息形成图像并处理,本质上与视觉图像处理相当,只是使用了传感器进行数据 采集,且不能推广应用于小型机器人。

【发明内容】

[0003] 本发明的目是为克服已有机器人基于视觉实现物体的探测与识别的不足之处,提 出一种小型机器人触觉对物体进行探测与识别的方法,该方法可以通过触觉对物体的内在 属性进行分析,并实现不同物体之间的精确分类。
[0004] 本发明的特点及有益效果在于:可以通过触觉完成对只使用视觉无法分类的物体 进行分类,同时本发明在小型机器人上具有高度可拓展性。
【附图说明】
[0005] 图1是本发明方法的实施例装置布置俯视图。
【具体实施方式】
[0006] 本发明提出的一种小型机器人触觉对物体进行探测与识别的方法结合附图及实 施例说明如下:
[0007] 本实施例中所采用的设备:探测与识别装置、分类器、铝质连接件、毫米直尺、预装 有视觉和机械运动控制上位机程序的笔记本电脑(上位机程序负责与Arduino UNO通信以 控制Arduino UNO控制板采集和发送信息)一台以及四个方形标定物。所述的探测与识别装 置如图1所示,包括Bighand机械手夹持器1、用于抓取的桌面型机械臂2、单目摄像头3、及与 Bighand机械手夹持器1相连的机械臂末端接口 4;传感器、预先存储有机械运动控制下位机 程序(下位机程序负责采集传感器信息并控制舵机运动)的Arduino UNO控制板、安装在 Bighand机械手夹持器1上的RB -150舵机(图1中未标示出),其中传感器包括sparkFun Flex2 · 2弯曲传感器、基于sparkFun 402压力传感器的2*2压力传感器阵列、sparkFun FSR406单点压力传感器。本实施例的探测与识别装置的组装,具体包括:
[0008] a)制作sparkFun 402压力传感器的2*2压力传感器阵列:取4片sparkFun 402压力 传感器、2片42mm*38mm的矩形亚克力板和4片直径为5mm(约为sparkFun402压力传感器直径 的一半)的圆形亚克力板;将一片矩形亚克力板平放在桌面上,然后将4片压力传感器均匀 粘连在该亚克力板上,其中两片引脚朝上,两片引脚朝下,且引脚保持平行,4片压力传感器 对称分布;然后将4片圆形亚克力板分别粘连在4片传感器中心,最后将剩余的一片矩形亚 克力板平盖在4片圆形亚克力板上,并与4片圆形亚克力板粘连固定,制得sparkFun 402压 力传感器的2*2压力传感器阵列。
[0009] b)将1片sparkFun FSR406单点压力传感器,1片步骤a)制得的sparkFun 402压力 传感器的2*2压力传感器阵列分别平贴于Bighand机械手夹持器1的左右爪内测,并粘连固 定。
[0010] c)将sparkFun Flex2.2弯曲传感器平贴至夹持器左爪外侧。
[0011] d)通过铝质连接件将Bighand机械手夹持器装配在桌面型机械臂2的末端接口 4, 用螺丝固定。
[0012] e)将单目摄像头3置于距离桌面型机械臂2底部中心约20cm的地方,使得机械臂回 归零点调整摄像头位置直到摄像头视线平行于机械臂臂末端且摄像头底部与机械臂底部 持水平,然后固定摄像头,完成机械臂初始化。
[0013] f)将单目摄像头3、Arduino UNO控制板通过usb连线连接至笔记本电脑,并开启笔 记本电脑中的视觉和机械运动控制上位机程序。
[0014] 本实施例提出的一种采用上述设备的小型机器人触觉对物体进行探测与识别的 方法,本实施例待识别的目标物为水果类物体,具体实施步骤如下:
[0015] 1)对探测与识别装置进行标定,获得实际视野距离,将目标物体放置在摄像头视 野中;具体包括:
[0016] 1 -1)开启单目摄像头3,调整摄像头角度至摄像头俯视角约为45°,此时摄像头视 野为一个矩形,摄像头视野的宽度和高度,分别为W和h f。放置四个方形标定物至此矩形视 野内的四角,其中一个标定物至于视野左上角,一个标定物置于视野左下角,一个标定物置 于视野右上角,剩余标定物置于视野右下角。
[0017] 1-2)(在实际应用过程中,目标物所在的实际位置在实际视野中,而被摄像头拍摄 到的为摄像头视野,实际视野是一个倒梯形,而摄像头视野是一个矩形。因此需要具体测量 实际视野的上底宽度、下底宽度和高度以便用来与实际视野做变换。)用毫米直尺测量出左 上角标定物和右上角标定物之间的距离,记为实际视野上底宽度w u,测量出左下角标定物 和右下角标定物之间的距离,记为实际视野下底宽度wb,并垂直测量左上角标定物与左下 角标定物之间的垂直距离,右上角标定物与右下角标定物之间的垂直距离,两个值取平均 记为实际视野高度h;同时用毫米直尺分别测量出左下角表定物和右下角标定物与单目摄 像头3底部的垂直距离,两个值取平均记为实际视野距离d,将目标物体放置在摄像头视野 中。
[0018] 2)视觉粗定位:确定目标物体在摄像头视野中的中心坐标,并转换为物体实际视 野坐标,计算得到的机械臂旋转角度;【具体实施方式】包括:
[0019]开启Arduino UNO控制板,单目摄像头3拍摄一张照片,照片中包含有目标物体; Arduino UNO控制板接收到摄像头拍摄的照片后,使用Bing算法(程明明)对照片进行处理, 得到近2000(Bing算法中可以约定所需要得到的矩形框的数量,视实际需要设定)个含有目 标物体的矩形框,然后从这2000个矩形框中取出矩形面积小于1300px 2的矩形框(此条件下 矩形框可用性高,为多次实验得到的经验值),并用白色填充所有筛选出来的矩形框的照 片,紧接着对筛选出的照片进行分割,分割出白色的矩形框部分,获取分割出来的每一块矩 形框的所有边界点(即对矩形框的四条边框取多个点)坐标,然后将所有边界点的横坐标和 纵坐标分别取平均值,得到中心坐标,该坐标即为目标物体的中心坐标;设目标物体在摄像 头视野中的中心坐标为( XQ,y〇),目标物体在实际视野中的坐标为(xo',y〇'),将摄像头视野 坐标转换为物体实际视野坐标的公式如下:
[0020]
[0021]
[0022] 坐标转换完成后,通过实际视野坐标计算得到为了抓到目标物体,机械臂的舵机 应该旋转的角度α计算公式如下:
[0023]
[0024]上述公式(1) - (3)中的参数含义如下:
[0025] (XQ,yQ)是目标物体在摄像头视野中的坐标,(1〇',7〇')是目标物体在实际视野中 的坐标,Wf和hf分别代表摄像头视野的宽度和高度,wu,h,wb分别代表实际视野上底宽度,实 际视野高度,实际视野下底宽度,d表示实际视野距离。
[0026] 3)精确定位:根据得到的机械臂旋转角度α,控制机械臂旋转至α,夹持器合拢直往 前探索,不断靠近目标物体,当检测到弯曲传感器已经弯曲,则判断已经探索到目标物体, 然后通过Arduino UNO控制板张开夹持器,准备进行抓取;具体实施如下:
[0027] 根据步骤2)的视觉粗定位得到的机械臂旋转角度α,控制机械臂旋转至α,夹持器1 合拢(此时机械臂2是指向目标物体的中心的,但是,由于不知道目标物体的深度信息,同时 由于是粗定位,机械臂对物体中心的指向不一定精准,故)机械臂2在旋转α度后一直往前探 索,不断靠近目标物体,且探索过程中(为了克服粗定位误差会有一个左右摆动的过程,具 体表现为)控制机械臂2往左摆动5°再往右摆动5°。在这个过程中,控制板会一直采集并检 测装载在夹持器左爪的弯曲传感器的数据,一旦检测到弯曲传感器数值变化超过弯曲阈值 (本实施例取值为10°,此值表示检测到弯曲传感器已经弯曲,该取值可以根据不同的弯曲 传感器和控制电路而人为调整),则判断已经探索到目标物体,然后通过Arduino UNO控制 板张开夹持器,(为了防止夹持器1张开过程中对目标物体的位置产生影响(如把目标物体 推开))此时控制机械臂的舵机后往后收缩约5cm(视目标物体大小而定,只要保证机械臂末 端不会触碰到物体即可),然后再前进l〇cm(为收缩距离的两倍),准备进行抓取;
[0028] 4)调整物体抓取点:控制板不断采集并检测2*2传感器阵列中4个传感器和单点压 力传感器的数据,当检测到单点压力传感器的数值达到设定的压力阈值后,记录此时2*2传 感器阵列的4个传感器值,通过这4个传感器的值判断出抓取点处在目标物的中心;具体实 施包括:
[0029](为了提高对目标物体的抓取稳定性和采集目标物体触觉数据的稳定性,每一次 抓取都力求抓取点为目标物体的几何中心,)在完成步骤4)对目标物体的精确定位后,通过 Arduino UNO控制板控制夹持器1缓慢合拢,合拢过程中,控制板不断采集并检测2*2传感器 阵列中4个传感器和单点压力传感器的数据,当检测到单点压力传感器的数值达到设定的 压力阈值300(此数值取值与采用的传感器和控制电路相关,可以根据采用产品的不同自由 设定,只要达到该压力阈值后则可确定单点压力传感器碰触到物体即可)后,记录此时2*2 传感器阵列的4个传感器值分别为:£ 1、£243、心,对应传感器位置分别为:左下角,左上角, 右上角,右下角。通过这4个传感器的值判断出抓取点是否在中心。若(5+6-(心+心)>50), 则说明当前抓取点偏上,偏上则抓开夹持器,机械臂2往下移动3°,反之则偏下,则机械臂2 往上移动3°。机械臂2不断进行上下调整直到(5+6-(^+^^ = 50)或者调整次数超过了 设定的最大次数(本实施例设为5次),再判断(若(心+5-(&+€4)>50),则说明当前抓取点 偏前方,偏前方则机械臂往后移动3°,反之则偏后方,则机械臂2往前方移动3°。机械臂2不 断进行前后调整直到(£柯 2-(£3+〖4)< = 50)或者调整次数超过了 5次,则认为此时机械臂2 的位置为物体抓取点;
[0030](在本实施例中,主要抓取对象为水果,一般来说,水果的大小也就是机械臂单方 向调整24°的范围,单次调整的范围越大,调整速度越快,而单次调整的范围越小,调整的精 度越高。本实施例调整策略中的单次调整角度与最大调整次数的乘积保证能覆盖目标物体 的一半长度,在本实施例中为12°。因此若设定单次调整为2°则最大调整次数不可小于6次。 同时,由于调整的不稳定性,有时调整一次之后会越过抓取中心点,故调整次数应该增加1 到2次。为了以较好的精度较快地调整完,本实施例采用调整角度为3°,调整次数为5次); [0031 ] 5)物体识别:通过触觉对目标物体进行数据采集、训练分类器、实时抓取完成目标 物体的识别。
[0032]对目标物体的抓取点调整完成后,接下来通过触觉对目标物体进行分类:分类的 过程包括物体数据采集、训练分类器、实时抓取识别。物体数据采集过程中,需要不断地对 目标物体进行抓取,抓取的时候,夹持器慢慢合拢,此时控制板在不断采集并检测单点压力 传感器的数据,当单点压力传感器的数值超过300后,控制夹持器合拢的舵机将控制夹持器 1继续合拢转动5°,然后控制夹持器张开(数据采集过程中,合拢转动的角度视目标物体的 可承受范围而定,本实施例目标物体为水果,在合拢转动角度超过5°后,水果会被损坏,故 合拢角度不可超过5°);具体包括:
[0033] 5-1)物体数据采集
[0034] 5-1-1)训练数据采集:对选定的用于训练的物体(本实施例选定8种不同水果)进 行数据采集,每种水果采集两次,其中每次采集使用夹持器抓取目标物体50次,记录所有传 感器数值与相应的舵机旋转角度作为训练数据;
[0035] 5-1-2)测试数据采集:对选定的用于测试的物体(本实施例选定8种不同水果)再 次进行数据采集,每种水果采集两次,其中每次使用夹持器抓取目标物体20次,记录传感器 数值与相应的舵机旋转角度作为测试数据;
[0036] 5-2)训练分类器通过采集的训练数据使用KNN或SVM等任意一种分类方法训练一 个分类器,然后使用测试数据对分类器性能进行测试,若分类器的分类错误率低于设定的 阈值(本实施例设为20% ),则可认为该分类器可用;
[0037] 5-3)实时抓取识别
[0038]抓取待识别的目标物体3次,获得3组传感器数值与相应的舵机旋转角度作为待识 别数据,将待识别数据通过步骤5-2)训练出的分类器进行分类,分类器给出分类结果,此分 类结果即为准确识别出物体所属类别。例如,抓取待识别苹果3次,得到3组数据,将3组数据 通过分类器进行分类,分类器给出的分类结果为3,而3则是苹果的代表标记,说明分类器已 经分辨出目标物体为苹果。
【主权项】
1. 一种小型机器人触觉对物体进行探测与识别的方法,其特征在于,该方法采用的设 备包括:探测与识别装置、分类器、预装有视觉和机械运动控制上位机程序的PC机一台,以 及标定物;所述的探测与识别装置包括Bighand机械手夹持器、用于抓取的桌面型机械臂、 单目摄像头、及与Bighand机械手夹持器相连的机械臂末端接口;传感器、预先存储有机械 运动控制下位机程序的Arduino UNO控制板、安装在Bighand机械手夹持器上的RB-150舵 机,其中传感器包括sparkFun Flex2.2弯曲传感器、基于sparkFun 402压力传感器的2*2压 力传感器阵列、sparkFun FSR406单点压力传感器; 该方法包括以下步骤: 1) 对探测与识别装置进行标定,获得实际视野距离,将目标物体放置在摄像头视野中; 2) 视觉粗定位:确定目标物体在摄像头视野中的中心坐标,并转换为物体实际视野坐 标,计算得到的机械臂旋转角度; 3) 精确定位:根据得到的机械臂旋转角度α,控制机械臂旋转至α,夹持器合拢直往前探 索,不断靠近目标物体,当检测到弯曲传感器已经弯曲,则判断已经探索到目标物体,然后 通过Arduino UNO控制板张开夹持器,准备进行抓取; 4) 调整物体抓取点:控制板不断采集并检测2*2传感器阵列中4个传感器和单点压力传 感器的数据,当检测到单点压力传感器的数值达到设定的压力阈值后,记录此时2*2传感器 阵列的4个传感器值,通过这4个传感器的值判断出抓取点处在目标物体的中心; 5) 物体识别:通过触觉对目标物体进行数据采集、训练分类器、实时抓取完成目标物体 的识别。2. 如权利要求1所述的方法,其特征在于,还包括探测与识别装置的组装,具体包括: a) 制作sparkFun 402压力传感器的2*2压力传感器阵列:取4片sparkFun 402压力传感 器、2片42mm*38mm的矩形亚克力板和4片直径为5mm(约为sparkFun402压力传感器直径的一 半)的圆形亚克力板;将一片矩形亚克力板平放在桌面上,然后将4片压力传感器均匀粘连 在该亚克力板上,其中两片引脚朝上,两片引脚朝下,且引脚保持平行,4片压力传感器对称 分布;然后将4片圆形亚克力板分别粘连在4片传感器中心,最后将剩余的一片矩形亚克力 板平盖在4片圆形亚克力板上,并与4片圆形亚克力板粘连固定,制得sparkFun 402压力传 感器的2*2压力传感器阵列; b) 将1片sparkFun FSR406单点压力传感器,1片步骤a)制得的sparkFun 402压力传感 器的2*2压力传感器阵列分别平贴于Bighand机械手夹持器1的左右爪内测,并粘连固定; c) 将sparkFun Flex2.2弯曲传感器平贴至夹持器左爪外侧; d) 通过连接件将Bighand机械手夹持器装配在桌面型机械臂2的末端接口 4,用螺丝固 定; e) 将单目摄像头置于距离桌面型机械臂底部中心20cm的地方,使得机械臂回归零点调 整摄像头位置直到摄像头视线平行于机械臂臂末端且摄像头底部与机械臂底部持水平,然 后固定摄像头,完成机械臂初始化; f) 将单目摄像头、Arduino UNO控制板通过usb连线连接至笔记本电脑,并开启笔记本 电脑中的视觉和机械运动控制上位机程序。3. 如权利要求1所述的方法,其特征在于,所述步骤1)具体包括: 1 -1)开启单目摄像头,调整摄像头角度至摄像头俯视角为45°,此时摄像头视野为一个 矩形,摄像头视野的宽度和高度,分别为Wf和hf ;放置四个方形标定物至此矩形视野内的四 角,其中一个标定物至于视野左上角,一个标定物置于视野左下角,一个标定物置于视野右 上角,剩余标定物置于视野右下角; 1-2)用直尺测量出左上角标定物和右上角标定物之间的距离,记为实际视野上底宽度 wu,测量出左下角标定物和右下角标定物之间的距离,记为实际视野下底宽度wb,并垂直测 量左上角标定物与左下角标定物之间的垂直距离,右上角标定物与右下角标定物之间的垂 直距离,两个值取平均记为实际视野高度h;同时用毫米直尺分别测量出左下角表定物和右 下角标定物与单目摄像头3底部的垂直距离,两个值取平均记为实际视野距离d,将目标物 体放置在摄像头视野中。4. 如权利要求1所述的方法,其特征在于,所述步骤2)具体包括:开启Arduino UNO控制 板,单目摄像头拍摄一张照片,照片中包含有目标物体;Arduino UNO控制板接收到摄像头 拍摄的照片后,使用Bing算法对照片进行处理,得到2000个含有目标物体的矩形框,然后从 这2000个矩形框中筛选出矩形面积小于1300px 2的矩形框的照片,并对筛选出的照片进行 分割,获取分割出来的每一块矩形框的所有边界点坐标,然后将所有边界点的横坐标和纵 坐标分别取平均值,目标物体在摄像头视野中的中心坐标,将摄像头视野坐标转换为物体 实际视野坐标,通过实际视野坐标计算得到为了抓到目标物体,机械臂的舵机应该旋转的 角度α。5. 如权利要求1所述的方法,其特征在于,所述步骤3)具体包括:根据步骤2)的视觉粗 定位得到的机械臂旋转角度α,控制机械臂旋转至α,夹持器合拢后一直往前探索,不断靠 近目标物体,控制板一直采集并检测装载在夹持器左爪的弯曲传感器的数据,当检测到弯 曲传感器数值变化超过弯曲阈值,,则判断已经探索到目标物体,然后通过Arduino UNO控 制板张开夹持器,准备进行抓取。6. 如权利要求1所述的方法,其特征在于,所述步骤4)具体包括:通过Arduino UNO控制 板控制夹持器缓慢合拢,合拢过程中,控制板不断采集并检测2*2传感器阵列中4个传感器 和单点压力传感器的数据,当检测到单点压力传感器的数值达到设定的压力阈值后,记录 此时2*2传感器阵列的4个传感器值通过这4个传感器的值判断出抓取点在目标物体的中心 认为此时机械臂的位置即为物体抓取点。7. 如权利要求1所述的方法,其特征在于,所述步骤5)具体包括: 5-1)物体数据采集 5 -1 -1)训练数据采集:对选定的用于训练的物体进行数据采集,记录所有传感器数值 与相应的舵机旋转角度作为训练数据; 5-1-2)测试数据采集:对选定的用于测试的物体再次进行数据采集,记录传感器数值 与相应的舵机旋转角度作为测试数据; 5-2)训练分类器通过采集的训练数据使用KNN或SVM等任意一种分类方法训练一个分 类器,然后使用测试数据对分类器性能进行测试,若分类器的分类错误率低于设定的阈值, 则可认为该分类器可用; 5_ 3)实时抓取识别 抓取待识别的目标物体3次,获得3组传感器数值与相应的舵机旋转角度作为待识别数 据,将待识别数据通过步骤5-2)训练出的分类器进行分类,分类器给出分类结果,此分类结 果即为准确识别出物体所属类别。
【文档编号】B25J13/08GK105856262SQ201610323410
【公开日】2016年8月17日
【申请日】2016年5月16日
【发明人】刘华平, 吴雨培, 马逸飞, 陆江, 方斌, 孙富春
【申请人】清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1