论文部分内容阅读
随着全球人口老龄化的加剧,娱乐机器人越来越受到各国政府和研究人员的重视。象棋机器人作为娱乐机器人的一种,融入了较多的计算机技术和人工智能技术,它不但能给人们带来愉悦,还能提高人们的智力水平。本文的研究目的就是要开发一套基于ARM嵌入式Linux的象棋机器人控制系统,它由ARM主控模块、棋盘识别模块和运动控制模块三大模块组成。ARM主控模块作为系统核心,为整个系统的运行提供了ARM+嵌入式Linux架构的软硬件平台。在宿主机上建立嵌入式开发环境,然后将U-Boot启动引导程序、Linux系统内核和根文件系统移植到ARM硬件系统平台上。ARM主控模块同时是机器人行棋的决策中心,根据象棋博弈程序决策出机器人的下一步最佳走棋步骤。象棋博弈程序的设计主要包括局面表达、走法生成、局面评估和博弈树搜索算法四部分,其中博弈树搜索算法是关键,决定着机器人的智力高低。在介绍了博弈树搜索算法和分析了极大极小值算法、负极大值算法、-β剪枝搜索算法的基础上,本文采用搜索效率较高的-β剪枝搜索算法,并完成了整个象棋博弈程序的设计。棋盘识别模块负责获取棋盘上各棋子的坐标信息。本文提出一种基于光敏电阻的棋盘识别方法,在每个棋位上安装一枚光敏电阻,通过采集与分析棋手下棋前后的光敏电阻阻值状态,便可得到棋手的走棋信息。较之常用的图像识别方法,该方法具有硬件要求低、处理数据少、算法简单、识别效率高等优点。运动控制模块的功能是控制机械手完成抓取、移动和松放棋子的动作。本文采用AVR单片机ATmega16L作为运动控制芯片,ATmega16L通过UART通信接收来自ARM主控中心的数据,然后控制步进电机完成机械手的定位,控制DC电机实现机械手的上下移动,控制推拉式电磁铁实现抓取与松放棋子。三大模块都经过了测试,测试结果表明各模块的机械设计、硬件电路设计、控制设计和软件设计完全达到设计要求,同时证明了整套控制方案的可行性。