基于图像识别的智能下棋机器人

2019-03-28 13:16张猛蒋涛高琴
物联网技术 2019年3期
关键词:PID控制图像识别单片机

张猛 蒋涛 高琴

摘 要:采用MK60单片机作为智能下棋机器人的主控单元,控制气泵配合吸盘吸取、放置棋子。利用OpenCV 视觉库进行图像处理,完成目标识别。算法上采用HOG特征算法、机器学习SVM算法,经过 PID 闭环运动控制,实现智能下棋机器人在棋盘上移动摆放及“八皇后”规则位置的摆放。

关键词:单片机;图像识别;PID控制;HOG特征算法;机器学习SVM算法;机器人

中图分类号:TP274文献标识码:A文章编号:2095-1302(2019)03-00-04

0 引 言

随着21世纪控制技术的发展,智能运动平台控制技术将是未来的研究重点。随着机器视觉、全向移动平台的发展,智能运动平台的控制与研究也将随之产生突破性的创新与发展。随着自动识别的识别率、机械移动精确度的提升,智能运动平台的智能控制也将取得相应发展,在此基础上还可搭载其它模块实现多元化的功能需求,被广泛应用在智能化物流仓储、智能家居系统、卫星探测器等[1-3]。

智能机器人可根据棋盘上八颗不同位置的棋子进行重新摆放,摆出符合“八皇后”规则的位置。棋盘和棋子如图1和图2所示。在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。

1 机械结构设计

机械结构整体框图如图3所示,整体采用双层车身,下层用玻纤板作为小车的底盘,下层分别安装电机、麦克纳姆轮、气泵、驱动板、主控板、陀螺仪模块、电池。玻纤板四周雕刻固定四个减速电机。安装麦克纳姆轮,可实现全向移动。上下层之间安装气泵,减小了气泵在工作时对车的震动影响导致摄像头采集图像不准确。上层采用碳板,在上层分别安装摄像头、机械臂。车模侧视图和车模俯视图如图4和图5所示[4-5]。

2 硬件设计

2.1 主控电路设计

电路部分包括:主控芯片、电源电路、液晶显示接口、升压降压模块和按键电路。强电流和弱电流分别分布在电路板上的两个角落。数字地与模拟地隔离,可抵抗干扰,显著地提高电路的稳定性,主控电路如图6所示。

2.2 电机驱动电路设计

电机驱动电路是一个由分立元件制作的直流电动机可逆双极型桥式驱动器,其功率元件由四支N沟道功率MOSFET 管组成,额定工作电流可达到20 A以上,大大提高了电动机的工作转矩和转速。该驱动器主要由以下部分组成: PWM信号输入接口、逻辑换向电路、死区控制电路、电源电路、上桥臂功率 MOSFET 管栅极驱动电压泵升电路、功率 MOSFET 管栅极驱动电路、桥式功率驱动电路和缓冲保护电路等[6]。电机驱动电路如图7所示。

2.3 舵机驱动电路设计

转向舵机采用32 kg数字舵机,工作电压不超过6 V。电源经TPS563201 降压稳压器输出6 V作为舵机电源,通过周期为20 ms的PWM波控制舵机角度[7]。舵机驱动电路如图8所示。

3 软件设计

软件设计包括四大部分:视觉处理、路径规划、机械臂控制和驱动电机PID闭环控制。树莓派经过摄像头采集图像进行数字识别、坐标转换、偏差处理,将目的坐标传给单片机,由单片机计算路径,控制麦克纳姆轮平稳到指定地点,控制机械臂吸取棋子[8]。软件流程框图如图9所示。

3.1 视觉处理

图像处理平台采用树莓派配合USB摄像头,搭配Linux操作系统及OPENCV开源库,实现坐标系还原、车身定位、棋盘识别等图像处理功能,能够在4×4的场地中找出棋盘目标位置且判断出机器人姿态,并且能够识别棋盘数字确定目标。

3.1.1 数字识别

我们运用HOG特征算法加机器学习SVM算法解决数字识别问题。方向梯度直方图(Histogram of Oriented Gradient,HOG)是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征。SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。通过事先采集好的数据集,铜鼓HOG算法提取出数字对应的特征信息,再通过SVM分类器进行分类处理。

数字识别过程:首先采集数据,对场地上的数字进行拍照,每个数字拍摄20张不同角度照片,并进行缩放,缩小后像素为128×128,并进行灰度化、二值化。进行对数字的HOG特征提取,训练SVM分类器(20张照片为一组进行标号)并生成.xml文件,进行分类器测试。训练框图和识别框图如图10和图11所示。

3.1.2 棋子识别

利用Hough 圆检测,可方便检测出图像中的圆。HoughCircles函数的两个参数 minRadius,maxRadius,最大半徑和最小半径,通过设置合适的值,便可检测出图像中是否包含圆形棋子。

3.1.3 偏差识别

摄像头捕捉图像,对图像进行灰度化、二值化、滤波、去燥。利用OPENCV的findContour函数进行轮廓查找,根据轮廓面积大小排序筛选,去除多余轮廓,利用函数minAreaRect()得到轮廓的中心(x,y),宽高(w,h),通过矩形轮廓中心(x,y)与摄像头中心(x0,y0)的相对位置计算偏差,偏差结果用于小车PID闭环控制。

3.2 路径规划

利用回溯算法求得“八皇后”问题一共有92种不同的解,会生成92×8坐标解。识别到第一个棋子后,小车移动到棋子的位置。识别出数字后得到小车自身坐标与棋子的坐标,从92×8坐标中找到符合棋子位置的第一个坐标,之后可依次确定7个棋子的坐标。将第一个棋子确定位置后。进行逐行视觉寻找棋子并进行这一行棋子的搬移。

3.3 机械臂控制

为使机械臂能够实现较为平滑的抓取,对机械臂上三个舵机分段延时PWM控制,实现用吸盘平稳吸取棋子。

3.4 闭环控制

位置和方向的闭环控制是实现底盘运动控制的基础(棋子搬运),由陀螺仪采集转动偏差,图像处理采集位置偏差与期望值一起输入到PID控制器,得到目标位移和方向。并最终作用于麦克纳姆轮上,实现精确的位置控制[9-10]。PID控制图如图12所示。

4 结 语

智能平台的自主识别的智能控制并非一个简单的控制问题,它涵盖了控制、模式识别、力学、光学、电磁学、传感技术、电子、电气、计算机、机械及车辆工程等多个学科。采用微控制器 MK60单片机,结合算法实现了对移动平台的精确定位与具体功能地执行。搭建好小车的软硬件平台后,我们进行了一系列的实验、调试,证明导航控制策略是稳定、有效的。当前方案存在的问题是在调试过程中,发现了移动平台结构的设计和摄像头支架的设计存在着缺陷和不足,限制了移动平台的速度。图像信息的处理算法和导航控制算法有改进和提升的空间,可以尝试换用计算力更强的计算平台,部署深度学习算法,提高图像识别的准确性。对于目前智能下棋小车的平台,延伸出物流仓储方面的新用途。

参 考 文 献

[1]卓晴等.学做智能车:挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007.

[2]谭浩强.C程序设计[M].北京:清华大学出版社,2001.

[3]张男,毛琼.PID 模糊控制器的设计及在智能车转向控制上的应用[J].科技风,2012(5):34-38.

[4]秦刚,杜超,吴丹怡.智能车转弯控制算法的仿真及分析[J].自動化技术与应用,2012,31(12):49-54.

[5]韩全立.单片机控制技术及应用[M]. 北京:电子工业出版社,2004.

[6]王春玲,董滨.采用数字滤波改进PID控制[J].仪表技术,2002(3):32-33.

[7]朱昌平,李永强,单鸣雷.“飞思卡尔”智能车常见技术问题与解决方案[J].实验室研究与探索,2012,31(4):45-49.

[8]王宜怀,刘晓升.嵌入式系统[M].北京:北京航空天大学出版社,2008.

[9]王晓明. 电动机的单片机控制[M].北京:北京航空航天大学出版社,2002.

[10]沈长生.常用电子元器件使用一读通[M].北京:人民邮电出版社,2004.

猜你喜欢
PID控制图像识别单片机
基于单片机的SPWM控制逆变器的设计与实现
基于Resnet-50的猫狗图像识别
基于单片机的层次渐变暖灯的研究
高速公路图像识别技术应用探讨
基于单片机的便捷式LCF测量仪
图像识别在物联网上的应用
图像识别在水质检测中的应用
内模控制在火电厂主汽温系统中的应用
常规PID控制和常规模糊控制的比较
Microchip推出两个全新PIC单片机系列