作者:辽宁工业大学 郑闯 韩雷 丛培丝
指导教师:王俊生 蓝和慧
作品简介
机械手臂是目前在机械人技术领域中得到最广泛实际应用的自动化机械装置,在工业制造、医学治疗、娱乐服务、军事以及太空探索等领域都能见到它的身影。尽管它们的形态各有不同,但它们都有一个共同的特点,就是能够接受指令,精确地定位到三维(或二维)空间上的某一点进行作业。其中接受指令的方式有很多,常见的是遥控技术和随动控制技术。遥控技术需要通过训练后才能熟练掌握,相比于过于繁琐的遥控器控制,随动机械臂的优点在于可以使操作更加灵活、简单、人性化,并且使系统更加智能化。
本作品依托科技创新的时代背景和MK10DN512ZVLL10的开发平台进行设计、创作和开发,采用四个舵机、舵机支架、自主加工的若干铝型材,构成了一个具有四个自由度并可以随着人手臂做出的动作而动作的三维机械手臂。如图1所示为该系统的系统框图。
其中肩关节由两个舵机组成,可以上下、前后移动;肘关节由两个舵机组成,可以旋转、上下移动。通过前方和上方的两个摄像头对人右侧手臂动作的识别,经摄像头对两个平面的分别采集、建立一个二维矩阵并通过单片机分析出特征矩阵,经对图像的二值化处理和抗干扰滤波处理后寻找出特征点的质心,根据特征矩阵中质心位置的获取,分别计算出腕关节点、肘关节点和肩关节点的距离和角度,再通过模糊算法计算出角度偏差和偏差的变化率,采用建立的数学模型对舵机输出一个PWM信号,控制舵机的转动,进而控制机械手臂在三维空间的运动。
如图2所示为机械手臂的结构图,①为控制手臂上下运动的舵机,②为控制手臂前后移动的舵机,③为控制肘部旋转的舵机,④为控制肘部上移的舵机。其功能为模仿人右手臂的伸平、上举、下垂、弯曲、旋转、前后绕环等动作,使用者需要在右侧手臂的肘关节、手处各做一个标记,然后在指定区域内对着采集摄像头做出任意动作,机械手就会随着人手臂的动作做出相应的动作。
平台选型说明
本系统选择Freescale MK10DN512ZVLL10芯片为控制核心的嵌入式开发板作为开发平台。
设计说明
设计原理及设计方案:
本系统采用Freescale公司的MK10DN512ZVLL10芯片作为控制核心,通过摄像头采集技术和图像处理技术、模糊控制算法构成了一个智能随动机械臂。
首先通过两个摄像头分别从正面和上面采集图像,构成一个三维坐标系。在该坐标系下,根据人右侧手臂肩关节、肘关节、腕关节位置的判断,通过三处关节点位置、距离以及角度的计算和模糊算法,由单片机发出指令输出四路PWM信号,分别控制四个舵机做出相应的动作,最终使机械臂模仿人右臂的动作。
摄像头采用分辨率为640×480的OV7620黑色数字摄像头,通过对K10单片机的GPIO设置,对图像进行采集。由于该款摄像头每秒钟会采集50幅图像,其中奇场、偶场各25幅,由于两幅图像组合后是一副完整的图像,因此只对奇场进行采集。每当场信号到来时会在0V7620的FOOD引脚产生640行的场信号(奇场包括320行),在躲过场消隐以后,采集前35行的数据。在场信号到来的同时,HREF会产生一个由480点构成的行信号。在躲过行消隐信号以后,每隔6个点采集一次,一共采集35个点。在每一个行信息到来时,都会伴随着一个像素时钟信号产生,在像素时钟信号的高电平到来时采集该点的信息,此时就会滤除很多干扰点,这样就为后期图像的处理减轻了一些负担。采集完成后,对应摄像头的平面就采集到了35×35共1225个点,通过摄像头的数据线Y0-Y7输入到单片机内。在程序中预先建立好一个35×35的二维矩阵,将I/O口的数据存入该数组中。
由于数据线有8条,因此此时数组内每一行的每一点都会有一个范围在0-255之间的灰度值,其中0代表该点为纯黑,255代表该点为纯白。因此采集时背景选用白色,在手臂上以黑点做标记。由于采集的图像是以灰度的形式体现,白色背景的颜色值范围约为180-200之间,黑色标记点的颜色值在50以下。采用二值化处理技术,设定一个等于50的阈值,规定低于该阈值的点均为0,高于该阈值的点均处理成255。二值化处理的优点在于设定一个模糊的阈值,将灰度图像处理成只由纯黑或者纯白构成的图像,在此基础上便于寻找特征矩阵。所谓特征矩阵,是机械臂在图像中特征点质心位置构成的矩阵。该特征点的范围有可能很大,这就要计算出该点的质心,再根据一个平面内质心的距离、角度,进一步进行决策。通过两个摄像头的采集和处理,两个平面内将会出现机械臂在两个平面的投影以及投影的坐标,根据坐标可以确定空间中机械臂特征点的空间向量的长度和角度,因此可以判断出此时人手臂的空间位置。
可是在实际采集中,不免会出现噪点的干扰,将会影响系统的稳定性,因此在图像处理中加入了抗噪点的滤波算法,排除了噪点的干扰,使采集到的图像十分稳定。具体做法是判断二值化后的特征矩阵的范围大小,将孤立的点滤除,排除干扰点的存在。
摄像头的控制信号(FOOD、HREF、PCLK)和数据信号均要输入到单片机。因此用到了单片机的I/O模块。首先设置SIM_SCGC5寄存器将对应的I/O口时钟使能,然后设置端口功能选择寄存器PORTx_PCRn,再对GPIOx_PDDR设置对应端口的方向。由于摄像头采集信号都作为输入,因此GPIO的方向设置为输入。最后通过读取对应的GPIO_PDIR寄存器,通过转换将32位寄存器里的8位数据值存入预先定义好的数组中,这样摄像头的图像信号就采集完毕了。
机械臂变形角度的确定分为两部分。第一部分是肩部的动作,通过肘部与肩部两点在一个平面上的横纵坐标值,分别求出△x和△y的值,然后根据三角函数公式arctan(△x/△y)求出对应的夹角,再根据控制该方向舵机的实际范围,建立对应的数学模型,将角度和输出给舵机的PWM值建立函数关系,在单片机计算确定出角度后再根据数学模型的公式确定PWM值,这样就控制了一个自由度的运动。肩部的另一个平面和肘部的两个自由度均同理。但是在控制的时候势必要有误差,为了减少这种误差,因此加入了模糊算法,使运动更加精准。
舵机采用15公斤扭力的金属齿轮舵机,肩部和肘部均通过两个舵机实现两个自由度。此舵机是270度旋转舵机,根据每个自由度的旋转角度不同,舵机的实际旋转范围也不尽相同。其中肩部的上下、左右两个方向的运动,因此运动范围为180度;其次肘部上拉的角度为90度左右,肘部旋转角度为180度。
舵机的控制采用20ms的周期,高电平时间约1.5ms时舵机摆正。在组装机械手前,先测试出舵机大概摆正位置的占空比,然后再根据需要测出其实际运动区间的占空比,这样对建立数学模型起到了关键作用。并且若一个舵机的旋转范围为180度时,左极限的占空比应该与右极限的占空比对称,如果不对称,那么建立数学模型的时候,要以90度为中值划分两个区间,这样数学模型才能准确。
电路中,由于舵机动作时会瞬间拉低电路中的电流,因此四个舵机要与单片机分开供电,否则舵机动作时会使单片机复位。舵机采用5V直流稳压电源供电,其地线必须和单片机系统的地线相连实现“共地”,否则舵机不会相应动作。单片机和摄像头的供电以经LM2940稳压后的电源电路实现。
如下图为原理图。
作品特色
该作品的先进性在于该系统应用了摄像头采集、处理和单片机技术,构成一个自主的随动系统,可以根据人类的动作而做出相同的动作。
实用性在于该系统可以继续开发并通过视频监控技术,应用于远程无人救援、远程遥控抓取物体,甚至发展成可以随动的机器人,将广泛应用于不适合人类直接操作的工作环境中,如采矿业、高空作业、深海作业、探索未知星体等。也可以应用于玩具中,比如智能随动机器人。
创新性在于采用两个摄像头采集一个三维平面中人手臂的关键点,通过单片机控制一个具有四个自由度的机械手。
系统演示视频:http://v.eepw.com.cn/video/play/id/2349