人工智能电脑鼠搜迷宫实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京科技大学实验报告
学院:自动化专业:智能科学与技术班级:智能1501
姓名:卢静怡学号:41523404 实验日期:2017年11 月8 日实验名称:人工智能电脑鼠搜迷宫实验
实验目的:掌握电脑鼠的基本操作及智能搜索算法操作。
实验仪器:KEIL MDK、电脑鼠、J-Link、VS
实验原理:所谓“电脑鼠”,英文名叫做Micromouse,是一种具有人工智能的轮式机器人,是由嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置的俗称。当电脑鼠放入起点,按下启动键之后,他就必须自行决定搜索法则并且在迷宫中前进,转弯,记忆迷宫墙壁资料,计算最短路径,搜索终点等功能。电脑鼠更结合了机械、电机、电子、控制、光学、程序设计和人工智能等多方面的科技知识。本实验中,通过红外传感器检测电脑鼠所处位置状态,通过智能算法保存地图并实现地图的搜索,通过pid等控制算法控制电机,达到电脑鼠搜索迷宫并计算最短路径等功能。
实验内容与步骤:
内容
1)KEIL MDK的安装
2)电脑鼠硬件的检查及调整
3)智能搜索算法的编写
4)算法的调试与优化
5)实验结果
步骤
(一)KEIL MDK的安装
按照实验指导书上的步骤安装,一步一步安装成功KEIL MDK uVision5 (二)检查和调整电脑鼠的硬件
1.电机检查:
我们原始的电脑鼠下载好程序之后,开机即可试探性运动。故判断,电机无故障。
2.传感器检查:
我们原始的电脑鼠在初跑时总是会对墙壁不感应,如果用手挡住传感器周围的光线后放开,那么电脑鼠会产生一个相应动作。分析是原代码中接受传感器信号的参数不合适的原因。
(三)智能搜索算法的编写
我们组结合了很多同学的经验,最终找到了影响电脑鼠运动的核心参数。并且修正了一个反应弧长的设定,使得后来电脑鼠试跑非常成功。
1.查资料——常见的算法形式
选择曼哈顿距离作为预测函数h(n),整体的框架代码如下:
2.算法设计
在本次实验中,使用的是机械鼠优先向左移动的,即深度优先算法。
机械鼠分为四个阶段,WAIT START SEARCH SQUART.分别为准备,开始,搜索,冲刺阶段。WAIT阶段中,小车持续延迟等待刺激信号,待收到刺激信号后,跳转阶段。
START阶段中,小车对迷宫进行初始化,建立8*8的二维数组。并预置此时的绝对坐标,跳
转阶段。
SEARCH阶段中,小车利用深度优先算法,在电机作用下不断移动,利用传感器判断四周有木墙壁,记录在二维数组中并指导电机作用。当二维数组的数据规模达到8*8后,判断抵达终点,延迟少许后挑选最短路径返回起点。跳转阶段。
SQUART阶段中,小车根据已有二维数组,遍历搜索权值最小的路径,并在电机的高压作用下冲刺到达终点。
3.算法优化
由于步长一般情况下收到不同赛道影响,我们修改了步长等的数值,以达到可以适应迷宫的目的;实验中我们发现老鼠的行动并不灵敏,经过静止挡板实验,我们测出了sensor 的较优数值并将之写入了预设中;在面对死角的时候,我们的老鼠有时会已经探测成功但是来不及掉头的情况,于是我们调高了面对死角的延迟。
以起点开始,定义右手法则,以向右为优先方向,其次是直线和左侧方向的前进规则,起始先赋予老鼠向前行进的指令,以固定的步长走过一个单位的距离,在前进的过程中同步更新地图的信息(在事先建立好的图中标记出当前的坐标,并通过算法转换成绝对坐标,并将走过的路径记录下来),之后通过一个函数传递下一个指令,如此循环使之前进;如果遇到死角,启动back函数反方向倒退,其他情况下,依据传感器的数值,控制电机的转速达到转弯的目的,在每个需要转弯的位置延时一定时间,并通过函数来记录挡板的位置信息,这样一直前进直到终点为止,到达中点之后,收集生成的路径信息,生成已知的、反应路径情况的图(转弯的坐标附近需要加上额外的权值),并对这个图进行搜索;搜索完毕之后,依据搜索到的最佳路径,进行行动,如果在返程中遇到长直赛道的话,进行加速
实验数据:
1)传感器阈值
2)电机速度
3)步长
实验数据处理:调整实验数据,使电脑鼠能够正常搜索迷宫。
实验结果与分析:
电脑鼠从起点出发后状况较为良好,进行了平稳的行进,少数时候产生碰撞导致生成图的紊乱而失败,多数以成功到达终点,并以最小路径返回为结束。
在本次实验中,由于我们组的电脑鼠硬件先后出现了大大小小的问题,我深切的体会到了硬件和软件的分工作用。没有一个稳定的硬件,软件部分即使是正
确的,整体效果也无法实现。没有一个无误软件部分,硬件部分即使完备,实验目的也无法达到。另外,做一个不简单的作业时,小组配合也是很重要的,谢谢这次实验的所有技术指导们和我的组员。