一种三驱动机械臂的视觉跟随系统的制作方法

文档序号:20339822发布日期:2020-04-10 22:09阅读:302来源:国知局
一种三驱动机械臂的视觉跟随系统的制作方法

本发明涉及一种视觉跟随系统,特别是涉及一种机械臂的视觉跟随系统。



背景技术:

机器视觉是人工智能不可分割的重要组成部分,随着人工智能的发展而发展。机器视觉是指使用光学非接触式感应设备接收真实场景的图像以获得信息,从而控制机器或流程。机器视觉经常与自动化控制设备进行系统集成,共同完成具有事物识别与判断的较为复杂的控制任务,而基于机器视觉的机械臂跟随系统在工业机器人的作业、机械臂的抓取等领域起了很大的决定性作用,尤其是高精度、高质量、多批量的生产过程中需要有足够高的精度去完成相应的任务;所以基于机器视觉的机械臂跟随系统对机器的工作效率有很大的影响,又或对于特种设备的生产来说,此系统可以大大减轻人工控制的工作量,大大提高工作精度。

目前对于现有的基于机器视觉的机械臂驱动系统,在使用过程中,其跟随效果欠佳,传统的跟随系统只是简单的图像识别跟随,精度差且其局限性大,无法适宜不同的地点环境使用。由于传统的三维定位技术是通过获取目标的精确三维坐标,进而建立目标的三维坐标系,但是在实际生活中,物体由于外力因素会发生抖动或者移动速度很快,目前的机器视觉跟随系统就会产生一定误差甚至无法识别。因此,我们提出了一种三驱动机械臂的视觉跟随系统来解决上述出现的问题。



技术实现要素:

本发明主要解决的问题是针对现有三驱动机械臂视觉跟踪系统存在的不足,为三电机驱动的机械臂提供一种高效、精准且具有普适性的机械臂视觉跟随系统。该系统的上位机视觉识别系统采用相关滤波的思想(越是相关的两个目标相关值越大,也就是视频帧中与初始化目标越相似,得到的响应也就越大),应用卷积定理(时域的卷积相当于频域相乘,频域卷积相当于时域相乘)对摄像头所采集的图像进行处理,通过寻找mosse滤波器的目标函数,求其封闭解,并更新峰值坐标来实现目标追踪,这样就形成了一种非常高效的视觉识别程序,分别提取更新后的位置坐标x1和y1,与中心坐标(300,100)进行比较,并得出结果,输出至下位机,得出机械臂的运动轨迹,驱动三个电机,使机械臂达到目标位置;对于下位机的电机驱动,在微处理器中配置寄存器编写读写驱动器函数,通过rs485串口完成驱动器与微处理器间的通讯,并通过编码器向微处理器实时反馈机械臂当前位置信息。读写驱动器函数通过改变寄存器中标志位的状态来达到控制的目的。具体实施为,接收上位机指令后通过写驱动器函数按位将modbus协议写入寄存器,并通过串口将其发送给驱动器,主机通过modbus的读写寄存器功能来设置驱动器参数和控制运行。

为此,本发明采用了如下的技术方案及实现步骤:

确定一个目标就是找到一个滤波器h,使其在目标上的响应最大。f表示训练图像,g表示输出图像,h表示滤波器,f、g、h对应其频域值。通过时域和频域公式推导出目标h的计算值,完成时域的卷积与频域卷积的转换。以滤波器的目标函数求得h的封闭解并更新mosse。调用python相应库函数以产生高斯形状的理想响应、求得目标框区域和滤波器卷积得到响应值并提取相应最大值为新目标位置,更新位置坐标新目标为中心选择目标,最后分别提取更新后的x和y的值,进行比较处理后发送给下位机。下位机的执行器件为伺服电机,伺服电机选用速度模式,上位机通过无线传输串口将电机的驱动报文发送给微处理器,微处理器基于485通讯协议读取数据并将驱动报文写进电机驱动器,实现对伺服电机转速的调整。三个电机分别控制不同的极坐标参数,实现空间运动。上位机将物体的比较结果(目标相对于视野中央的偏移程度)转化为下位机具体的位移方向和运动时间(速度给定),从而使机械臂能跟随目标的运动进行位置姿态的调整。

在摄像头获取到视频图像后,在视频中选取所要跟踪的目标,然后对选定后采集到的第一帧进行高斯滤波,将图像和滤波器映射到拓扑结构上,边界采用循环图像的方式填充,即将图像的左边缘连接到右侧边缘,将顶部连接到底部,最后采用点乘余弦窗处理,使图像边缘变为零。

为了使空域的相关滤波转换到频域滤波以提高运算速度,引入卷积算子,其中进行时域的卷积与频域的点乘积的转化时:

g=f*h(1)

g=f·h*(2)

(f表示输入图像的特征矩阵,g表示输出矩阵,h表示跟踪器的参数矩阵,f、g、h对应其频域值,h*对应h的共轭复数)

(这里的卷积算子并没有什么实际的物理意义,可以看做一个把空域相关滤波转到频域的桥梁以提高计算机的运行速度)

在mosse中通过最小化卷积的实际输出和卷积的期望输出之间的平方误差之和来得到所需的滤波器,即求解:

minh*∑i|fi·h*-gi|2(4)

(其中i表示第i个训练样本)

为了优化计算,将(4)式转化为:

minh*∑i|fiwv·h*wv-giwv|2(5)

(其中下标表示第i个样本的w行和v列)

展开得:

minh*∑i[fiωvfiωv*(h*ωv)2-giωvf*iωvhωv-fiωvh*ωvg*iωv+giωvg*iωv](6)

求和号内是一个关于h*的开口向上的一元二次函数,其一阶导数等于0的解就是h*的最小值:

计算结果为:

∑i[fiωvfiωv*hωv-fiωvg*iωv]=0(8)

最终求得:

最终得到h的闭式解为:

考虑到防止滤波器过拟合,使滤波器能够较快的适应旋转、遮挡、尺度变化等问题,引入一个学习效率的参量η表示不同时序的帧的权重,学习效率参量使得时序离当前帧越近的帧所占权重越大,之前的帧的学习结果随时间呈指数递减。

为了让滤波器对形变、光照等外界影响具有更好的适应性,结合学习效率的参量,引入更新模板:

ai=ηgi·fi*+(1-η)ai-1(12)

bi=ηfi·fi*+(1-η)bi-1(13)

(初始化过程中学习速率η为1,随着时序的变化,η的变化范围为:0~1。其中下角标i和i-1分别表示的是当前帧和上一帧的分子,a和b表示滤波器的模型公式的分子和分母两个部分)

通过以上方法得到目标最大响应后,提取对应的最大响应为新目标坐标,分别提取更新后的位置坐标x1和y1,并与中心坐标(300,100)进行比较,设x的值在290~310之间时为横向抖动区间,即当所选目标最终的x值在这个区间内时,则视为机械臂的横向抖动,向下位机发送0x11;x1>310时,向下位机发送0x10;当x1<290时,向下位机发送0x09。设y值在90~110之间时为纵向抖动区间,即当所选目标最终的y值在这个区间内时,则视为纵向臂的纵向抖动,向下位机发送0x08;x1>110时,向下位机发送0x07;当x1<110时,向下位机发送0x06。

三个电机的空间位置已给出,且电机1为机械臂的伸缩电机,用于控制机械臂的伸长与收回;电机2为机械臂的俯仰电机,控制机械臂的抬升与下沉;电机3为机械臂的回转电机,用于调整机械臂的左右摆动,通过驱动三个电机,完成机械臂空间位置的调整,从而实现跟随功能。

下位机通过无线传输器件接收上位机的指令后运行电机函数驱动相应的电机。伺服电机文件通过单片机接收上位机指令后通过写驱动器函数按位将modbus协议写入寄存器,并通过串口将其发送给驱动器,主机通过modbus的读写寄存器功能来设置驱动器参数和控制运行。驱动器支持的功能码为0x3(读寄存器)、0x6(写寄存器)、0x78(写目标位置)、0x7a(修改设备地址)。

附图说明

图1是系统的整体工作流程图。

图2是上位机识别视觉识别及跟随流程图

图3是机械臂电机的空间位置。

图4是电机驱动流程图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所做的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

参图1至图4所示,图1是系统的整体工作流程图,图2为是上位机识别视觉识别及跟随流程图,图3是机械臂电机的空间位置,图4为电机驱动流程图。

如图1所示,本发明所提供的一种三驱动机械臂的视觉跟随系统包括三个部分——上位机视觉识别部分、上位机和下位机通讯部分以及下位机驱动控制部分。上位机视觉识别基于卷积的频域滤波方式,预测目标在下一帧可能出现的位置,主要应用最小输出均方误差和mosse算法,提取目标位置变化坐标,发送给下位机;上位机和下位机通讯部分应用串口通讯实现,按位进行传输数据;下位机通过串口通讯无线接收上位机的命令并通过rs485串口通信给驱动器发送指定的十六进制代码依此驱动对应的电机,组合完成机械臂的跟随动作。其中,电机1为机械臂的伸缩电机,用于控制机械臂的伸长与收回;电机2为机械臂的俯仰电机,控制机械臂的抬升与下沉;电机3为机械臂的回转电机,用于调整机械臂的左右摆动,本发明专利对机械臂伸缩、俯仰和水平回转的形式不做专门概述,本发明只提供一种驱动三个对应电机的跟随系统。

如图2所示,在摄像头获取到视频图像后,在视频中选取所要跟踪的目标,然后对选定后采集到的第一帧进行高斯滤波,将图像和滤波器映射到拓扑结构上,边界采用循环图像的方式填充,即将图像的左边缘连接到右侧边缘,将顶部连接到底部,最后采用点乘余弦窗处理,使图像边缘变为零。

为了使空域的相关滤波转换到频域滤波以提高运算速度,引入卷积算子,其中进行时域的卷积与频域的点乘积的转化时:

g=f*h(1)

g=f·h*(2)

(f表示输入图像的特征矩阵,g表示输出矩阵,h表示跟踪器的参数矩阵,f、g、h对应其频域值,h*对应h的共轭复数)

(这里的卷积算子并没有什么实际的物理意义,可以看做一个把空域相关滤波转到频域的桥梁以提高计算机的运行速度)

在mosse中通过最小化卷积的实际输出和卷积的期望输出之间的平方误差之和来得到所需的滤波器,即求解:

minh*∑i|fi·h*-gi|2(4)

(其中i表示第i个训练样本)

为了优化计算,将(4)式转化为:

minh*∑i|fiwv·h*wv-giwv|2(5)

(其中下标表示第i个样本的w行和v列)

展开得:

minh*∑i[fiωvfiωv*(h*ωv)2-giωγf*iωγhωγ-fiωvh*ωvg*iωv+giωvg*iωv](6)

求和号内是一个关于h*的开口向上的一元二次函数,其一阶导数等于0的解就是h*的最小值:

计算结果为:

∑i[fiωvfiωv*hωv-fiωvg*iωv]=0(8)

最终求得:

最终得到h的闭式解为:

考虑到防止滤波器过拟合,使滤波器能够较快的适应旋转、遮挡、尺度变化等问题,引入一个学习效率的参量η表示不同时序的帧的权重,学习效率参量使得时序离当前帧越近的帧所占权重越大,之前的帧的学习结果随时间呈指数递减。为了让滤波器对形变、光照等外界影响具有更好的适应性,结合学习效率的参量,引入更新模板:

ai=ηgi·fi*+(1-η)ai-1(12)

bi=ηfi·fi*+(1-η)bi-1(13)

(初始化过程中学习速率η为1,随着时序的变化,η的变化范围为:0~1。其中下角标i和i-1分别表示的是当前帧和上一帧的分子,a和b表示滤波器的模型公式的分子和分母两个部分)

通过以上方法得到目标最大响应后,提取对应的最大响应为新目标坐标,分别提取更新后的位置坐标x1和y1,并与中心坐标(300,100)进行比较,设x的值在290~310之间时为横向抖动区间,即当所选目标最终的x值在这个区间内时,则视为机械臂的横向抖动,向下位机发送0x11;x1>310时,向下位机发送0x10;当x1<290时,向下位机发送0x09。设y值在90~110之间时为纵向抖动区间,即当所选目标最终的y值在这个区间内时,则视为纵向臂的纵向抖动,向下位机发送0x08;x1>110时,向下位机发送0x07;当x1<110时,向下位机发送0x06

如图3所示,三个电机的空间位置已给出,且电机1为机械臂的伸缩电机,用于控制机械臂的伸长与收回;电机2为机械臂的俯仰电机,控制机械臂的抬升与下沉;电机3为机械臂的回转电机,用于调整机械臂的左右摆动,通过驱动三个电机,完成机械臂空间位置的调整,从而实现跟随功能。

如图4所示,下位机通过无线传输器件接收上位机的指令后运行电机函数驱动相应的电机。伺服电机文件通过单片机接收上位机指令后通过写驱动器函数按位将modbus协议写入寄存器,并通过串口将其发送给驱动器,主机通过modbus的读写寄存器功能来设置驱动器参数和控制运行。驱动器支持的功能码为0x3(读寄存器)、0x6(写寄存器)、0x78(写目标位置)、0x7a(修改设备地址)。驱动器控制电机速度模式具体步骤为:

(1)写设备1(功能码0x06地址0modbus使能)1

(2)读设备1(功能码0x06地址14报警代码)(读到0时为运行正常)

(3)写设备1(功能码0x06地址3电机加速度)1

(4)写设备1(功能码0x06地址2电机目标速度)1

(5)重复(4)过程,控制电机转速。

接收到的上位机指令对应机械臂动作以及电机转动情况为:

0x06:恒速向下2号电机恒速正转;

0x07:恒速向上2号电机恒速反转;

0x08:停止2号电机锁死停止;

0x09:恒速向右3号电机恒速正转;

0x10:恒速向左3号电机恒速反转;

0x11:停止3号电机锁死停止。

本发明所提供的一种三驱动机械臂的视觉跟随系统,具有如下有益效果:

(1)将机器视觉应用到机械臂领域,通过选择视频中的目标实现机械臂对所选目标的跟踪,使机械臂的跟踪更高效、更精准。

(2)在视觉跟随中创新性的划分出六个区域,即本发明中详细解释的在x轴上的三个划分区域和在y轴上的三个划分区域。

(3)本发明的一种三驱动机械臂的视觉跟随系统具有非常好的普适性,可以在多种上位机(linux系统、树莓派等)上运行,所驱动的三个电机为六线伺服电机,此产品为市场上成熟产品。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1