人工智能电脑鼠搜迷宫实验
电脑鼠实验报告
《视觉机器人》实验报告学院:姓名:专业:二零一六年一月目录第1章背景和意义 .................................................第2章系统方案设计.................................................第3章硬件设计......................................................3.1电脑鼠基本硬件组成.............................................3.2电脑鼠基本动作.................................................第4章软件设计.....................................................4.1电脑鼠软件设计概要说明.........................................4.2等高图制作模块...............................................4.3冲刺模块.....................................................4.4转弯模块.....................................................4.5搜索模块.....................................................4.6迷宫地图相对方向与绝对方向的建立.............................4.7墙壁资料存储.................................................4.8电脑鼠搜索策略...............................................参考文献............................................................附件: ............................................................第1章背景和意义电脑鼠可看作是一种具有人工智能的小型机器人,依照比赛规则,当电脑鼠放入“迷宫”起点,按下启动键之后,它就必须自行决定搜寻法则并且在迷中前进、转弯、记忆迷宫墙壁资料、计算最短路径、搜寻终点等功能。
智能老鼠走迷宫算法的设计
有 肢 体 、 官 、 力 , 合 一 体 的 机 械 , 智 能 老 鼠 即 是 一 个 感 脑 综 而
走 出迷 宫
。
3 分 析 方 法 .
能够用 来诠 释肢体 、 感官及脑 力综合工作 的智能机械 。希望 能够藉 由智 能老 鼠的创 作进而研 究 与发 明更 加复 杂的智 能
脱 与 高 效 行 进 都 可 以 依 靠 等 高 图 。将 迷 宫 认 为 划 分 为 若 干
图 3加减 速 示意 图
的迷 宫格 , 并将 每个迷 宫格 的等高值 赋予最大 值 0 f, 图 x 如
盟 拥 ,
加 减 速 实 时 算 法 的 核 心 是 使 用 定 时器 中 断 , 当定 时器 发
能老 鼠的驱动 ,采用 红外线 发射 管和一 体化接 收头组 成传
感 器 单 元 ,使 用 基 于 C r xM3 内核 的 3 ot . e 2位 A M 微 控 制 R 器 L S 1 为 运 算 控 制 中 心 。方 案 通 过 建 立 自动 适 应 迷 M3 65作
宫 的搜 索算法 , 依靠 强大运 算 能力 的处理 器 , 最后 实现 了智 能老 鼠快速 高效的迷宫搜 索 。
・-— —
4 -— 3 - —
黝 基 金 项 目
速, 之后匀速 运行 。当快要到 达指定 的停 J位 置时 , 以恒 卜 再 定 的减速度减速 , 在停止位 置处停住。如图 3所示 。其 中加 速度和减 速度要根 据不 同的电机设 定, 如果它们 的值较 大, 则可 以较快地 到达 目的位置 , 有可能产生振荡 。如果它们 但
2 原 理 .
2 1 器件选择 . 传感器单元 :R 8 0 S红外线一体 化接 收头;普通 红 I M.6 1 外线发射管 。 驱 动单 元 :反 应式 步进 电机 ; A 8 5 S步进 电机专 用 B 64F 驱 动芯片 。
老鼠运动轨迹实验报告
一、实验目的通过本次实验,了解老鼠在迷宫中的运动轨迹,探究其寻找出口的策略,并尝试运用数据结构中的搜索算法来模拟老鼠的行走过程,分析其路径选择的特点。
二、实验原理迷宫问题是一个经典的算法问题,旨在通过模拟老鼠在迷宫中寻找出口的过程,来验证和优化搜索算法。
本实验采用深度优先搜索(DFS)算法来模拟老鼠的运动轨迹,通过堆栈来存储老鼠走过的路径,并记录其最终找到出口的最短路径。
三、实验材料1. 迷宫地图:一个二维数组,表示迷宫的布局,其中0代表无墙、没走过;1代表墙;2代表无墙、已走过。
2. C语言编程环境:用于编写和运行实验代码。
3. 输入设备:用于输入起始点和迷宫地图。
四、实验步骤1. 设计迷宫地图,初始化二维数组map[10][12]。
2. 输入起始点坐标(行列坐标),判断输入是否合法(越界或起始点在墙中)。
3. 初始化一个空堆栈,用于存储老鼠走过的路径。
4. 使用深度优先搜索算法遍历迷宫,寻找出口:a. 将起始点入栈。
b. 标记当前点为已走过。
c. 判断当前点是否为出口,如果是,则输出路径,结束搜索。
d. 找到当前点的后继点(上下左右),如果后继点合法且未走过,则将其入栈并标记为已走过,继续搜索。
e. 如果当前点没有后继点,则回溯,弹出栈顶元素,尝试下一个方向。
5. 输出最短路径,记录老鼠的运动轨迹。
五、实验结果与分析1. 迷宫地图及起始点:```0 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 11 0 1 1 1 1 1 1 1 1 1 11 0 1 0 0 0 0 0 0 0 0 11 0 1 1 1 1 1 1 1 1 1 11 0 1 0 0 0 0 0 0 0 0 11 0 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 11 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1```2. 老鼠起始点坐标:(1, 1)3. 运动轨迹及最短路径:```老鼠运动轨迹:[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10), (1, 11), (2, 11), (3, 11), (4, 11), (5, 11), (6, 11), (7, 11), (8, 11), (9, 11), (10, 11), (11, 11)]最短路径:[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10), (1, 11), (2, 11), (3, 11), (4, 11), (5, 11), (6, 11), (7, 11), (8, 11), (9, 11), (10, 11), (11, 11)]```4. 分析:通过实验结果可以看出,老鼠在迷宫中寻找出口的过程主要遵循深度优先搜索策略,即优先探索当前路径的深度,直到找到出口。
计算机迷宫搜索算法仿真研究
计算机迷宫搜索算法仿真研究摘要:在电脑鼠的设计过程中,往往需要耗费大量的时间在迷宫搜索算法的调试上。
通过研究迷宫地图,采用模块化的设计方法,模拟实现了对迷宫搜索算法的仿真,还设计了迷宫地图的编辑和迷宫搜索算法的导入等功能。
仿真试验结果表明,仿真迷宫搜索算法可提高迷宫搜索算法设计和调试的效率。
关键词:电脑鼠;迷宫搜索算法;仿真;多线程电脑鼠[1](Micromouse)是一个由微控制器、探测器、驱动电机组成的一种集感知、判断、行走功能于一体,能够在迷宫中自动寻找到达终点最佳路径的微型机器人。
电脑鼠走迷宫比赛集竞赛和趣味性于一体,吸引了大量青年科技人员参加,文献[1]给出了有关迷宫电脑鼠的比赛规则和要求。
在迷宫电脑鼠的设计中,迷宫搜索算法的设计和调试最困难[3-7]。
主要因为迷宫搜索算法的设计和调试过程容易受到周围环境以及电脑鼠底层软硬件的影响而出现运行错误,从而使得调试经常被打断,完成一次完整的调试非常麻烦[8],需耗费大量时间。
本文针对电脑鼠设计者在迷宫搜索算法设计和调试上所面临的问题,设计了迷宫搜索算法仿真程序,提高迷宫搜索算法设计和调试的效率,减轻设计者的负担。
该算法仿真程序及其实现思路不仅可以推广到电脑鼠走迷宫竞赛中,而且还可以作为电脑鼠迷宫搜索算法研究者的一个理想研究平台。
1仿真模块设计迷宫搜索算法仿真程序的主要功能模块包含动态仿真器、迷宫搜索算法接口、人机交互界面和迷宫地图编辑器。
动态仿真器是整个程序的核心,迷宫搜索算法接口用于连接动态仿真器和迷宫搜索算法,人机交互界面和迷宫地图编辑器,分别负责响应用户的鼠标动作和迷宫地图的设置。
地图编辑器需要接受用户的动作来完成地图的编辑工作,所以将迷宫地图编辑器作为人机交互界面的一个子功能来实现。
图1是迷宫搜索算法仿真程序的系统模块框图。
动态仿真器实现了三个功能,为迷宫搜索算法获取迷宫信息,根据迷宫搜索算法的指令控制模拟电脑鼠运动,显示运行中产生的过程数据。
老鼠走迷宫的算法分析
一种电脑鼠走迷宫的算法电脑鼠走迷宫的算法1探测策略电脑鼠走迷宫可以采用全迷宫探索策略,即将迷宫的所有单元均搜索一次,从中找出最佳的行走路径。
这种策略需要有足够的时间或探测次数,但在IEEE竞赛规则中每场竞赛只有15分钟的时间,因此是不可能的。
另一种方法是部分迷宫探索策略,即在有限的时间或探测次数下,只探测迷宫的一部分,从中找出次最佳的路径,显然只能采用这种策略。
电脑鼠在一巷道内行走,如果最后无路可走,则该巷为死巷。
电脑鼠在任一单元内,可能的行走方向最多只有三个(前、左、右),如果有二个或二个以上的可能行走方向,称为交叉,遇有交叉时,由于有多个可以行走的方向,在行走方向的选择上,可有下面的几种选择法则:•右手法则:遇有交叉时,以右边为优先的前进方向,然后是直线方向、左边方向。
•左手法则:遇有交叉时,以左边为优先的前进方向,然后是直线方向、右边方向。
•中左法则:遇有交叉时,以直线为优先的前进方向,然后是左边方向、右边方向。
与此类似的还有中右法则。
•乱数法则:遇有交叉时,取随机值作为前进方向。
•向心法则:由于终点在迷宫的中心,遇有交叉时,以向迷宫中心的方向为优先的前进方向。
2标记为了记忆迷宫的详细信息,需要对迷宫单元的位置进行线路标记。
全迷宫共有16×16个单元组成,可采用二维坐标方式标记,即用每个单元的XY坐标表示,如起点可标记为(0,0),终点为(7,7)。
此外,还需要对迷宫单元的可行进方向进行标记,可采用绝对方位或相对方位二种方式。
绝对方位:这是一种与电脑鼠行进方向无关的标记方式,以一个四位的二进制数,分别表示“东”﹑“西”﹑“南”和“北”四个方向。
以1表示允许行进(无墙壁),0表示不允许行进(有墙壁)。
相对方位:这是一种与电脑鼠行进方向有关的标记方式,以一个三位的二进制数即可实现标记,分别表示“前”“左”“右”,以1表示允许(无墙壁),0表示不允许(有墙壁)。
3阻断在电脑鼠试跑过程中或在最后冲刺时,需要对部分路径进行“阻断”,即在发现某条路径是死路(只有入口而无出口)时,在该路径的入口处(一般是交叉点)设置标记,即将入口的线路标记由1改为0。
迷宫电脑小鼠实验报告
一、实验背景迷宫实验是心理学和神经科学领域常用的实验方法,用于研究动物的学习和记忆能力。
近年来,随着计算机技术的不断发展,迷宫实验也逐步实现了电脑化。
本实验旨在利用迷宫电脑小鼠实验系统,研究小鼠在迷宫中的行为特征,以及其学习记忆能力。
二、实验目的1. 了解迷宫电脑小鼠实验系统的操作方法和原理。
2. 观察并记录小鼠在迷宫中的行为表现。
3. 分析小鼠的学习记忆能力,探讨影响因素。
三、实验材料1. 迷宫电脑小鼠实验系统:包括迷宫、电脑控制台、摄像头等。
2. 实验小鼠:体重20-25克,性别不限。
四、实验方法1. 迷宫电脑小鼠实验系统操作:将迷宫电脑小鼠实验系统连接到电脑,启动软件,设置实验参数,如迷宫形状、实验次数、时间限制等。
2. 实验步骤:(1)将实验小鼠放入迷宫入口,记录其进入迷宫的时间。
(2)观察并记录小鼠在迷宫中的行为表现,如逃避、探索、犹豫等。
(3)记录小鼠到达迷宫出口的时间,并计算其速度。
(4)重复实验多次,观察小鼠的学习记忆能力。
五、实验结果与分析1. 实验结果(1)实验小鼠在迷宫中的行为表现:在实验初期,小鼠表现出逃避、犹豫等行为,随着实验次数的增加,小鼠逐渐适应迷宫环境,表现出更快的速度和更准确的方向判断。
(2)实验小鼠的学习记忆能力:经过多次实验,小鼠的学习记忆能力得到显著提高。
在后期实验中,小鼠能够快速找到迷宫出口,且速度逐渐提高。
2. 分析(1)迷宫电脑小鼠实验系统能够有效地模拟真实迷宫环境,为研究小鼠的学习记忆能力提供可靠平台。
(2)实验结果表明,小鼠在迷宫中的行为表现与其学习记忆能力密切相关。
逃避、犹豫等行为可能表明小鼠在适应迷宫环境过程中存在困难,而随着实验次数的增加,小鼠逐渐适应迷宫,表现出更好的学习记忆能力。
(3)实验结果还表明,迷宫电脑小鼠实验系统具有良好的重复性和可靠性,可用于研究小鼠的学习记忆能力。
六、结论本实验通过迷宫电脑小鼠实验系统,研究了小鼠在迷宫中的行为表现和学习记忆能力。
电子老鼠闯迷宫
一、实习问题:电子老鼠闯迷宫二、问题描述:有一只电子老鼠被困在如下图所示的迷宫中。
这是一个7*7单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。
电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。
现给定一个起点start和一个终点finish,求出电子老鼠最少要几步从起点走到终点。
三、问题分析:该问题可用分支限界法来解决。
迷宫问题的解空间是一个图。
解此问题的队列式分支限界法从start开始将它作为第一个扩展结点。
与该扩展结点相邻并且可达的方格成为可行结点被加入到活结点队列中,并且将这些方格标记为1,即从起始方格start到这些方格的距离为1。
接着,算法从活结点队列中取出队首结点作为下一个扩展结点,并将与当前扩展结点相邻且未标记过的方格标记为2,并存入活结点队列。
这个过程一直继续到算发搜索到目标方格finish或活结点队列为空时为止。
在实现算法时,首先定义一个表示迷宫上方格位置的类Position,它的两个私用成员row 和col分别表示方格所在的行和列。
在迷宫的任何一个方格处,电子老鼠可沿右、下、左、上4个方向进行。
沿这4个方向的移动分别记为移动哦0,1,2,3。
在表中,offset[i].row和在实现上述算法时,用二维数组grid表示所给的方格阵列。
初始时,grid[i][j]=0,表示该方格允许走;而grid[i][j]=1表示该方格被封锁,不允许走。
为了便于处理方格边界的情况,算法在所给方格阵列四周设置一道“围墙”,即增设标记为“1”的附加方格。
算法开始时测试初始方格与目标方格是否相同。
如果这两个方格相同,则不必计算,直接放回起始位置标记为2。
由于数字0和1用于表示方格的开放或封锁状态,所以在表示距离时不用这两个数字,因而将距离的值都加2。
实际距离应为标记距离减2。
算法从起始位置start开始,标记所有标记距离为3的方格并存入活结点队列,然后依次标记所有标记距离为4,5…..的方格,直至到达目标方格finish或活结点队列为空时为止。
电脑鼠走迷宫竞赛ppt教材
电脑鼠 |基于LM3S615微控制器
电脑鼠走迷宫竞赛
• 电脑鼠迷宫竞赛的计分规则说明
启动
迷宫时间
运行时间 返回到起点
迷宫时间:电脑鼠激活到每次运行开始的那段时间 运行时间:电脑鼠从起点走到终点的时间
! 碰成触绩:=电迷脑宫鼠时在间运÷行30过+程运中行若时要间手-动奖辅励助时,间则
为碰触(,非此碰次触运)行将失去 10s的奖励时间。电脑鼠 能从终点自动返回到起点,若要手动放回起点, 也视为“碰触”,按碰触的规则进行处理。
电脑鼠 |基于LM3S615微控制器
电脑鼠的简介
LM3S615 ARM cortex-M3内核
• 功耗低 • 具有门数目少 (价格低) • 调试成本低 • 中断延迟短 • 中断响应快速且支持多级中断嵌套 • 处理器采用先进的ARMv7-M架构
电脑鼠 |基于LM3S615微控制器
• 传感器
– 位置传感器 – 惯性传感器 – 距离传感器
MicroMouse615迷宫电脑鼠
——基于Cortex-M3
1234567
电脑鼠 电脑鼠 电脑鼠 电脑鼠 简介 走迷宫竞赛 走迷宫演示 走迷宫算法
走迷宫 电脑鼠 电脑鼠 标准套件 调试例程 传感器校正
电脑鼠 |基于LM3S615微控制器
电脑鼠的简介
• 电脑鼠是一种具有人工智能的轮式机器人
» 它是多学科的交叉结合的结晶
• 光电接收管
– IRM8601S
• PSD器件
– GP2D12
• CCD • 超声波
电脑鼠的简介
电脑鼠 |基于LM3S615微控制器
• 电机
– 步进电机 – 直流电机
• 减速 • 速度反馈
电脑鼠的简介
人工智能电脑鼠搜迷宫实验
北京科技大学实验报告学院:自动化专业:智能科学与技术班级:智能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.算法设计在本次实验中,使用的是机械鼠优先向左移动的,即深度优先算法。
电脑鼠算法
左上区域
左上区域 左上区域 左上区域 右上区域 右上区域 右上区域 右上区域
上方 0
下方 2 左方 3 右方 1 上方 0 下方 2 左方 3 右方 1
右手法则
中左法则 左手法则 中右法则 左手法则 中右法则 中左法则 右手法则
4)回溯
• 当电脑鼠的四个方向都为不 可行(有墙或已走过)时,
• 栈顶元素出栈 • 电脑鼠返回栈顶位置
• 演示栈
1) 栈思考题
• a)若栈的输入序列是a、b、c、d,则可能的输出序列 有哪几种类?
• b)判断一个输入字符串是否为中心对称。例如xyx、 xyyx都是中心对称。 • c)假设一个算术表达式中包含括号、方括号和花括号3 种类型的括号,编写一个算法来判别表达式中的括号是 否配对,以字符“\0”作为算术表达式的结束符。
• 迷宫二维数组,每个结点定义为FFFF表示上右下左都有 墙。
• 迷宫鼠方向:电脑鼠放入方向,一般默认为向上(1000)
• 栈,加入起点坐标
• 下面以起点为(0,0),终点为(7,7)为例讲解
3)电脑鼠寻路
• While(当前结点不是终点){
• 记录电脑鼠所在点迷宫信 息,电脑鼠方向 • 按向心法则寻路 • If(没有可行路径) 回溯
传感 器
软件 设计
关键 技术
机械 结构 处理 器
驱动 装置
二、电脑鼠迷宫竞赛
目的
电脑鼠走迷宫竞赛的目的是制作一个微型机器人, 它能在最短的时间内穿越迷宫到达终点。参赛的机器人 称为“电脑鼠”,将电脑鼠放入迷宫并启动操作的人称 为“操作员”。
迷宫的规范
1) 迷宫由16×16个﹑18cm×18cm大小的正方形单 元所组成。 2)迷宫的起始单元可选设在迷宫四个角落之中的 任何一个。起始单元必须三面有隔墙,只留一个出口。
电脑鼠走迷宫
电脑⿏⾛迷宫电脑⿏⾛迷宫算法改进及仿真测试(部分)2.3.5 迷宫算法改进迷宫最优路径是指从迷宫的⼊⼝到达迷宫出⼝的最短通路。
传统求解迷宫路径问题的算法⼤多采⽤⼴度优先搜索(BFS)或深度优先搜索(DFS)。
由于需要全迷宫搜索,随着迷宫规模的增⼤和复杂性的增加,上述两种算法的空间和时间复杂性将呈指数增加。
针对以上问题,本论⽂对传统算法进⾏优化改进讨论,核⼼思想是利⽤已经探索得知的迷宫信息排除不包含最短路径信息的迷宫格,不予探索。
1、单⾏、单列死点的死胡同排除算法该算法核⼼内容是进⾏数据补全,减少电脑⿏进⼊“死胡同”的次数。
其实迷宫单元的信息并不是只有访问过才能够得到,通过推断的⽅法也是可以得到的。
利⽤某个单元四周的⽅格的信息,就可以推断出此单元的信息,⽽并不需要每⼀个单元都进⾏访问。
如果⼀个迷宫单元三个⽅向有挡板,并且当该迷宫格不是终点时,那么电脑⿏进⼊该迷宫格后必然返回,这对于寻找最短路径信息⽆⽤,此时将该迷宫格第四个⽅向⼀同标记,亦即将迷宫格封闭,不让电脑⿏进⼊该迷宫格,以达到缩短探索时间的⽬的。
如图2.10中圆圈区域,当其四周搜索过时,电脑⿏不应对此区域进⾏访问。
图2.10 死胡同实例根据电脑⿏迷宫特性,迷宫四周的挡板是肯定存在的,可先进⾏预先处理。
⽽且终点四个单元的周围的⼋块挡板有且仅有⼀个是不存在的。
当电脑⿏到达终点,在明确哪个挡板不存在的同时,⽆论其它挡板是否进⾏探测过,都可将它视为挡板存在。
2、多⾏、多列死点的死区域排除算法传统搜索算法中电脑⿏从当前单元移动到下⼀单元的依据是有⽆挡板的存在及是否访问过,⽽未考虑从下⼀单元是否可以在不经过当前单元的情况下到达终点。
形象的说,此种搜索只着眼于当前电脑⿏的移动,⽽不考虑实际效果。
当电脑⿏不能从下⼀单元在不经过当前单元到达终点时,电脑⿏的运⾏就做了“⽆⽤功”,这对于迷宫搜索的执⾏效率产⽣很⼤的副作⽤。
如图2.11所⽰,⽅形区域内即是这种情况,也就是死区域。
电脑鼠走迷宫实验报告附程序
东南大学第二届IEEE标准电脑鼠走迷宫竞赛电脑鼠原理及其应用机电动力试验平台第二届IEEE标准电脑鼠走迷宫竞赛论文东南大学第二届IEEE标准电脑鼠走迷宫竞赛电脑鼠原理及其应用机电动力试验平台目录一.软件程序框图 (3)二.参赛软件研发过程 (4)三.软硬件调试过程 (4)四.各组员分工 (4)五.体会心得 (5)附录 (6)参考书目 (9)软件程序框图东南大学第二届IEEE标准电脑鼠走迷宫竞赛电脑鼠原理及其应用机电动力试验平台参赛软件研发过程在void main()函数中,采用压栈的方式进行电脑鼠搜索,数组uint8 GmcCrossway[MAZETYPE*MAZETYPE]用于暂存未走过支路坐标。
数组uint8 GucMapBlock[MAZETYPE][MAZETYPE]记录每个点的地图信息,初始化为0x00。
函数void mouseGoahead(int8 cNBlock)、void mazeSearch(void)、void mouseTurnleft(void)、东南大学第二届IEEE标准电脑鼠走迷宫竞赛电脑鼠原理及其应用机电动力试验平台void mouseTurnright(void)、void mouseTurnback(void)和void objectGoTo(int8 cXdst, int8 cYdst)控制电脑鼠的运动状态。
void mapStepEdit(int8 cX, int8 cY)为制作等高图函数,它把记录等高值的数组uint8 GucMapStep[MAZETYPE][MAZETYPE](初始化为0xff)赋值。
当电脑鼠搜索时无方向可走时就按照这个等高图的信息退回上个点,冲刺时也是一样的道理。
另外,为了缩短转弯时间,并且保证电脑鼠的稳定性,采取转弯时整步,直走时半步。
我们在Mouse_Drive.c文件中,加入全局变量int8 maincheck,初始化为0(其中0为不转弯,1为转弯)。
一种电脑鼠走迷宫的算法
2. 4 试 跑
试跑是获得 迷 宫 地 图( 各 单 元 路 线 标 记)的 唯 一 方 法,因此在规则允许 的 情 况 下,应 尽 可 能 多 地 获 取 迷 宫 信 息,为最后冲刺作准 备。 在 试 跑 过 程 中,除 了 要 对 经 过 的
到(7,6)1 步。(7,6)到(7,7)28 - 27 = 1 步,总计 = 24 + 1 + 2 + 1 + 1 + 1 = 30 步。
旁 右手法则:以右边为优先的前进方向,然后是直线 方向、左边方向。
旁 左手法则:以左边为优先的前进方向,然后是直线 方向、右边方向。
旁 中左法则:以直线为优先的前进方向,然后是左边 方向、右边方向。与此类似的还有中右法则。
旁 乱数法则:取随机值作为前进方向。 旁 向心法则:由 于 终 点 设 在 迷 宫 的 中 心,遇 有 交 叉
单片机与嵌入式系统应用 MICROCONTROLLERS & EMBEDDED SYSTEMS 2007(5) 9次
本文读者也读过(10条) 1. 温如春.许樱.王祖麟.WEN Ru-chun.XU Ying.WANG Zu-lin 改进蚁群算法在迷宫路径规划问题中的研究和应用[期刊论文]-江西理工大学学报 2010,31(2) 2. 张晋 嵌入式电脑鼠运行算法的研究[会议论文]-2009 3. 朱姗.傅或哲.吴忠丽.王伟.仇润鹤 一种走迷宫电脑鼠的设计与实现[期刊论文]-微型电脑应用2008,24(9) 4. 曾璐.周贤娟 迷宫电脑鼠控制系统设计[期刊论文]-自动化博览2009,26(7) 5. 方金亮.谈英姿.周怡君.FANG Jin-liang.TAN Ying-zi.ZHOU Yi-jun 基于ARM的IEEE标准电脑鼠研究与实现[期刊论文]-机械制造与自动化 2008,37(5) 6. 于莉.YU Li 校园科技活动的新宠——电脑鼠[期刊论文]-中国西部科技2010,9(8) 7. 朱闻达 IEEE迷宫电脑鼠的迷宫搜索算法研究[期刊论文]-中国科技博览2009(27) 8. 尹会明.Yin Huiming 智能老鼠走迷宫系统设计的优化与实现[期刊论文]-电子测试2010(4) 9. 贺利军.王理燕.He Lijun.Wang Liyan 智能老鼠走迷宫算法的设计[期刊论文]-电脑与电信2008(10) 10. 陈敬 电脑鼠走迷宫[会议论文]-1998
大数据结构实验-迷宫问题
实验报告实验课名称:数据结构实验实验名称:迷宫问题班级:20130613 学号:16 姓名:施洋时间:2015-5-18一、问题描述这是心理学中的一个经典问题。
心理学家把一只老鼠从一个无顶盖的大盒子的入口处放入,让老鼠自行找到出口出来。
迷宫中设置很多障碍阻止老鼠前行,迷宫唯一的出口处放有一块奶酪,吸引老鼠找到出口。
简而言之,迷宫问题是解决从布置了许多障碍的通道中寻找出路的问题。
本题设置的迷宫如图1所示。
入口出口图1 迷宫示意图迷宫四周设为墙;无填充处,为可通处。
设每个点有四个可通方向,分别为东、南、西、北。
左上角为入口。
右下角为出口。
迷宫有一个入口,一个出口。
设计程序求解迷宫的一条通路。
二、数据结构设计以一个m×n的数组mg表示迷宫,每个元素表示一个方块状态,数组元素0和1分别表示迷宫中的通路和障碍。
迷宫四周为墙,对应的迷宫数组的边界元素均为1。
根据题目中的数据,设置一个数组mg如下int mg[M+2][N+2]={{1,1,1,1,1,1,1,1},{1,0,0,1,0,0,0,1},{1,1,0,0,0,1,1,1},{1,0,0,1,0,0,0,1},{1,0,0,0,0,0,0,1},{1,1,1,1,1,1,1,1}};在算法中用到的栈采用顺序存储结构,将栈定义为Struct{ int i; //当前方块的行号int j; //当前方块的列号int di; //di是下一个相邻的可走的方位号}st[MaxSize];// 定义栈int top=-1 //初始化栈三、算法设计要寻找一条通过迷宫的路径,就必须进行试探性搜索,只要有路可走就前进一步,无路可进,换一个方向进行尝试;当所有方向均不可走时,则沿原路退回一步(称为回溯),重新选择未走过可走的路,如此继续,直至到达出口或返回入口(没有通路)。
在探索前进路径时,需要将搜索的踪迹记录下来,以便走不通时,可沿原路返回到前一个点换一个方向再进行新的探索。
一种电脑鼠走迷宫算法的设计与实现
代表的绝对方向 上方 右方 下方 左方
当有超过一条路可以走时, 则执行多路程序。 多路程序需 准则可以包括格子走过的次数 、 位差 要根据一些准则选择路径, 值、 直走还是拐弯等。 如果电脑鼠有两个或三个可选方向, 首先要判断的准则是 相邻格子是否走过, 这可以通过该格子的隔墙资料来确定 。 一 种可能性是至少有一个格子没有走过 。 这样的话, 电脑鼠选择 的下一个格子应该是没有走过的格子 。但是如果有超过一个格 子未走过, 则需要根据位差值进一步决定 。 位差值准则是通过 选择具有最小位差值的相邻格子作为可选路径的方法 。如果有 两个格子具有相同的最小位差值, 则选择直走。 向前移动比左 右转弯的优先级要高, 这是因为电脑鼠直走比转弯的速度更快 。 另一种情况是所有的格子都走过, 电脑鼠则选择相邻格子中走 过次数最小的格子进入 。若相邻格子走过的次数相同则再判断 位差值, 若还相同的则选择直走 。
为了让电脑鼠记住所走过的各个迷宫格的信息, 需要使用 坐标对 256 个迷宫进行编号。 规定以电脑鼠放到起点时的方向为参照, 此时电脑鼠的正 前方为 Y 轴正方向。迷宫格与坐标的对应关系如图 1 所示。 根据坐标的定义和比赛规则可知, 电脑鼠的起点可在迷宫 的四个角落的点上, 但是无法确定起点的具体坐标 。 解决方法 是根据电脑鼠第一次检测到的转弯口是在右方还是左方判断 。 如果电脑鼠第一个检测到的拐弯口是在它的右方( 迷宫的四个 0 ) 点出发; 如果 角落中有两个角落是这种情况) , 那么它从( 0 , 第一个检测到的拐弯口在它的左边( 迷宫的四个角落中有两个 0 ) 出发。 那么它从( 15 , 角落是这种情况) ,
课程设计报告--电脑鼠走迷宫
天津职业技术师范大学Tianjin University of Technology and Education课程设计专业班级:应电0814学生姓名:乔伟 09 李月 19 华焱建 43指导教师:刘新月系别:电子工程学院目录1 电脑鼠走迷宫 (1)1.1电脑鼠技术指标 (1)1.2电脑鼠方案论证及选择 (1)1.2.1核心控制器 (1)1.2.2传感器 (1)1.2.3电动机 (1)1.2.4电源 (1)1.3电脑鼠总体电路图 (2)1.4电脑鼠系统组成框图 (2)1.5电脑鼠单元电路设计 (2)1.5.1传感器单元 (2)1.5.2步进电机驱动单元 (3)1.5.3电源单元 (4)1.6运动算法设计 (5)1.7迷宫坐标信息采集算法 (5)1.8迷宫算法 (7)1.9测试结果分析及改进 (8)1.10总结 (8)2 智能电梯控制系统 (9)2.1主要技术指标 (9)2.2方案论证及选择 (9)2.3系统组成框图 (9)2.4单元电路设计 (10)2.4.1单片机最小系统模块 (10)2.4.2开关控制模块 (11)2.4.3电机驱动模块 (11)2.4.4液晶显示模块 (11)2.4.5报警模块 (12)2.4.6 电路总图 (13)2.5软件流程图以及任务描述 (13)2.6元件清单 (14)2.7 调试过程 (15)2.8总结 (15)参考文献 (16)附录1 电梯代码 (17)附录2 个人总结 (28)1电脑鼠走迷宫1.1电脑鼠技术指标依据IEEE标准迷宫构建相应数据结构,结合数据结构进行迷宫搜索算法的设计;分析电脑鼠硬件需求进行产品选型,构建硬件平台;实现电脑鼠自动搜索迷宫,从中选出最佳路径进行冲刺的功能。
1.2电脑鼠方案论证及选择1.2.1核心控制器基于所需完成任务要求我们知道,电脑鼠核心控制器需要有很快的信息处理速度。
那么,普通的8位单片机不能满足快速处理的条件,不能胜任任务。
为了实现高速信息处理,采用由Liminary公司生产的LM3S615控制器,该控制器是以ARM-Cortex-M3为内核的32位SOC系统,拥有50-MHz工作频率,可以胜任任务所要求的高速信息处理能力。
《电脑鼠走迷宫》课件
电脑鼠的特点
电脑鼠具有自主学习和决策能力,能够根据环境变化调整自 己的行为。
电脑鼠通常使用传感器和算法来感知和导航,以在迷宫中寻 找最佳路径。
电脑鼠的应用
在游戏领域,电脑鼠可以作为玩 家挑战的AI对手,提供有趣的迷
宫探险体验。
在机器人技术中,电脑鼠的概念 被用于开发自主导航和智能控制
算法。
在教育和培训领域,电脑鼠可以 作为教学工具,帮助学生理解人
性能评估
为了评估算法的性能,可以采用不同的评估指标,如搜索时间、路径长度、成功率等。通 过对这些指标的分析,可以了解算法的优缺点,并进行优化。
案例总结
成果总结
本案例通过分析经典电脑鼠走迷宫的实例,展示了A*算法在路径搜索方面的应用。通过合理的算法选择和实现细节处 理,可以有效地解决电脑鼠走迷宫问题。
05
CATALOGUE
电脑鼠走迷宫的未来发展
技术发展对电脑鼠走迷宫的影响
技术进步提升电脑鼠性能
随着人工智能、机器学习等技术的不断进步,电脑鼠的决策能力、路径规划能 力和适应复杂环境的能力将得到显著提升。
传感器与硬件升级
更先进的传感器和硬件设备将使电脑鼠具备更敏锐的感知能力,能够更准确地 识别障碍和目标,提高迷宫导航的效率。
《电脑鼠走迷宫 》ppt课件
目录
• 电脑鼠简介 • 迷宫的构造与规则 • 电脑鼠走迷宫的策略与技巧 • 电脑鼠走迷宫的实例分析 • 电脑鼠走迷宫的未来发展
01
CATALOGUE
电脑鼠简介
电脑鼠的起源
01
电脑鼠的概念起源于人工智能领 域,旨在模拟老鼠在迷宫中寻找 食物的行为。
02
早期的电脑鼠程序主要用于研究 人工智能和搜索算法,随着技术 的发展,电脑鼠的应用范围逐渐 扩大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京科技大学实验报告学院:自动化学院专业:智能科学学技术班级:姓名:学号:实验日期:2017年11月6日实验名称:人工智能电脑鼠搜迷宫实验实验目的:掌握电脑鼠的基本操作及智能搜索算法操作。
实验仪器:KEIL MDK、电脑鼠、J-Link、VS实验原理:所谓“电脑鼠”,英文名叫做Micromouse,是一种具有人工智能的轮式机器人,是由嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置的俗称。
当电脑鼠放入起点,按下启动键之后,他就必须自行决定搜索法则并且在迷宫中前进,转弯,记忆迷宫墙壁资料,计算最短路径,搜索终点等功能。
电脑鼠更结合了机械、电机、电子、控制、光学、程序设计和人工智能等多方面的科技知识。
本实验中,通过红外传感器检测电脑鼠所处位置状态,通过智能算法保存地图并实现地图的搜索,通过pid等控制算法控制电机,达到电脑鼠搜索迷宫并计算最短路径等功能。
实验内容与步骤:实验内容1)KEIL MDK的安装2)电脑鼠硬件的检查及调整3)智能搜索算法的编写4)算法的调试与优化5)实验结果实验步骤(一)KEIL MDK的安装1双击运行Ke i l MDK 4.12 安装程序,出现软件安装界面,如图所示:2点击Next,勾选安装协议;3选择安装路径,建议安装在C 盘,运行速度快些4 填入用户信息,个人用户随意填入即可;点击Next 就进入实质的安装过程了,Wait for a Whle…5点击Finish,Keil MDK 就完成安装了,可以发现桌面上生成了名为“Keil uVis ion4”的可执行文件快捷方式。
(二)检查和调整电脑鼠的硬件1.电机检查:在电脑鼠程序文件中找到Motor.c文件,直接为两侧电机赋相同的速度值,用G-link连接电脑鼠和电脑,传入程序,打开电脑鼠放在地面上,如果电脑鼠能正常直线行进,即证明两侧电机正常工作。
如果有电机有问题,拆下原来的电机换新的再次进行电机检查即可。
2.传感器检查:用G-link连接电脑鼠和电脑,打开传感器查询模式,用手逐渐靠近每一个传感器,如果相应的传感器值由小变大,那么此传感器工作正常。
且每个传感器在手指位于相同距离时,回传的传感器值近似相等即证明传感器都正常工作,如果有传感器有问题,拆下原来的传感器换新的再次进行传感器检查即可。
传感器回传值查询界面(三)智能搜索算法的编写在含底层驱动的程序的基础上加上算法,实现智能搜索,把电脑鼠变成一只真正的智能的老鼠。
1.常见的算法形式右手法则电脑鼠在前进的方向上存在两条和两条以上的支路时,优先考虑向右转,其次向前,最后才考虑向左。
左手法则与右手法则相似,只不过是优先考虑左转,其次是向前,最后才考虑向右。
右手法则示意图左手法则示意图求心法则求心法则就是每当电脑鼠有至少两个方向可以选择时,则优先转向离中心点最近的方向前进。
如何确定哪个方向更能接近目标呢?如图5-4 所示,把迷宫可以分为四个对等的区域(1、2、3、4)。
可以观察出,在区域 1 中,电脑鼠向右和向上运动更能接近中心。
在区域 2 中电脑鼠向左和向上更能接近中心。
同样还可以很容易观察出区域3 和区域 4 最容易接近中心的方向。
如果电脑鼠可供选择前进的方向包含了两个都有可能是离迷宫中心最近的迷宫分区示意求心法则示意图方向,优先选择可以直线前进的反向,其次选择只用转90度的方向前进。
如果可前进的方向都是远离中心的方向时,优先选择直线运行方向,其次选择转弯90度的方向。
其搜索示意图如图所示。
寻找最优路径的算法等高图算法首先开辟一块8×8的二维数组空间(MapStep[8][8]),其中每一个元素代表迷宫中的一个方格,用以计算后储存各方格至起点的最短路径步数(所谓步数即为路径中经过的方格数)。
当起点坐标处标识为1 时,可以直接达到的相邻方格均为2,再远的方格的等高值依次递增。
这样距离越远的地方等高值越大。
以此类推,直到当前坐标没有可前进方向,且堆栈中没有未处理完的分岔点时结束。
最终可以得到等高图。
等高图的数字即为步数,也就代表其相对应的位置,由于电脑鼠转弯要浪费一定时间,为了寻找一条最优的路径(也就是能最快达到的路径),可以给转弯点加权。
可以假设权值为1。
即经过转弯前进的坐标等高值是由当前等高值加 2 得到的。
具体的加权值可以根据自己电脑鼠转弯性能来决定。
冲刺算法在搜索方案上,当电脑鼠处于搜索阶段时,电脑鼠速度较慢,以便准确获取迷宫信息;处于冲刺阶段时,电脑鼠已知迷宫信息,所以速度很快。
为了保险起见,本设计的搜索方案是:首先慢速搜索到终点,然后沿已走路径返回起点,再沿已走路径快速冲刺到终点,到此已经拥有比赛成绩。
电脑鼠在终点处更换搜索法则,进行第二次搜索,从终点搜索到起点,此时已经寻找到最优路径,最后电脑鼠按最优路径冲刺,以求刷新之前的成绩。
2.算法设计当电脑鼠达到一方格坐标时,应根据传感器检测结果记录下当前方格的墙壁资料,为了方便管理和节省存储空间,每一个字节变量的低四位分别用来存储一个方格四周的墙壁资料,迷宫共有8×8个方格,所以可以定义一个8×8的二维数组变量来保存整个迷宫墙壁资料。
迷宫墙壁资料全部初始化为0,凡是走过的迷宫格至少有一方没有墙壁,即墙壁资料不为0,。
这样就可以通过单元格存储的墙壁资料是否为0来确定该单元格是否曾搜索过。
迷宫搜索方法:在没有预知迷宫路径的情况下,电脑鼠必须要先探索迷宫中的所有单元格,直到抵达终点为止。
做这个处理的电脑鼠要随时知道自己的位置及姿势,同时要记录下所有访问过的方块四周是否有墙壁。
在搜索过程中,还要尽量避免重复搜索已经搜索过的地方。
转弯也是电脑鼠运行时必不可少一部分,同时转弯也分为静止转弯和行进中转弯。
静止转弯要求电脑鼠首先要停止,主要用在电脑鼠进行搜索中,这时要求电脑鼠要绝对的稳定,所以采用静止转弯比较好。
行进中转弯的特点是消除了静止转弯的要求电脑鼠停止的弊端,可以节省一些时间,主要用在电脑鼠进行冲刺时,这时要求电脑鼠要以竟可能短的时间从起点到达终点,所以行进中转弯可以节省不少的时间。
静止转弯时,对两个电机设置走相同的步数,如当要转左转90°时,设置左电机向后走40步,右电机向前走40步。
通过两个电机走的方位不同,来实现静止转弯,但静止转弯的缺点就是,在转弯前首先要让电机停止,然后再对电机的要走的步数进行赋值,这样会浪费一点时间。
行进中转弯时,让一个轮子停止,一个轮子进行运转来实现。
如当要左转90°时,设置左电机停止转动,右电机转动80步。
与静止转弯区别开来的是,电机的步数在其他的函数中赋值好了,在转弯函数中只要一开始将一个电机停止转动就可以了,而不用一开始就将两个电机都停止,然后对电机的步数进行赋值,这样的话,就可以节省一些不必要的时间。
利用第一种方式虽然可以缩短探索迷宫所需的时间,但是不一定能够得到整个迷宫的地图资料。
若找到的路不是迷宫的最优路径,这将会影响电脑鼠最后冲刺的时间。
冲刺函数的实现是建立在等高图已经建立好的基础上的。
当电脑鼠要进行冲刺的时候,调用冲刺函数时,首先会调用等高图制作函数将等高图制作好。
然后该函数通过等高图和墙壁信息来进行电脑鼠的行进控制。
当然,我们认为电脑鼠在走直道的时候应该会比走弯道的时候,来的更快一点,所以我们没有进行特殊的加权,直接是走直道的。
电脑鼠从起点开始,一直利用等高图信息和墙壁信息进行一格一格的对比,只有当这一格在电脑鼠绝对方向上时,这一格才算记录到进行直道冲刺,同时直道格数加一。
当遇到电脑鼠要转弯的时候,已的步数记录下来了,接下来直接调用行进函数,控制电脑鼠走完记录好的步数后,即走到电脑鼠要转弯的地方后,再进行转弯,然后接着继续进行上一步的动作。
3.算法优化寻路是小车在运行的整个过程中进行的第一个操作,目的是让小车在迷宫中探索,同时记录已经走过的路径信息,直到小车找到终点就可以结束探索寻路的过程。
当然也可以在找到终点后继续探索整个迷宫,尽可能多地收集迷宫的信息,以便后期进行最短路径分析计算时能够运用更多的信息,找到更佳的最短路径,得到更好的成绩。
寻路算法的2个关键点,一是在岔路口的转弯策略以及小车运行的稳定性。
转弯策略决定了从小车开始运行到找到终点的时间长短。
良好的转弯寻路策略可以大量减少不必要的寻路时间。
小车运行的稳定性对于寻路过程也十分重要,所以小车的行进和转弯的过程一定要在机械和软件方面都调节到最稳定的状态。
二是正确使用堆栈,整个选路算法的运行过程中会大量地使用堆栈的人栈和出栈操作,如果对人栈和出栈的条件判断不正确,有可能造成数据紊乱,最好使用调试版上的数码管实时显示堆栈栈顶的数据,发现有错误就在程序中寻找错误,直到整个寻路算法稳定为止。
行进过程中:电脑鼠行进速度决定了迷宫搜索以及冲刺的时间,但是如果速度过快,电脑鼠容易在转弯处碰壁,影响其稳定性。
为了兼顾速度和稳定,通过反复实验,对搜索速度和直线冲刺速度做了调整。
转弯过程中:电脑鼠转弯包括原地转弯和前进中转弯2种方法。
原地转弯就是电脑鼠先停在原地,然后一个电机正转另一个电机反转来实现原地转弯。
前进中转弯,就是一个电机快转,另一个慢转,通过两轮速度差来实现前进中转弯。
由于原地转弯在转弯前需要先停止,所以前进中转弯相对于原地转弯效率更高,本文也选择此方法用于电脑鼠在迷宫中转弯。
连续转弯的过程:要求电脑鼠只小迷宫方格内完成转弯动作。
为了保持电脑鼠在连续转弯时具有较高的速度,本文通过增加最大转弯半径的方法来提升连续转弯速度。
实验数据:1)传感器阈值2)电机速度3)步长实验数据处理:调整实验数据,使电脑鼠能够正常搜索迷宫。
实验结果与分析:实验结果:经过我们小组的努力和尝试,电脑鼠可以顺利完成走迷宫任务。
实验分析:这学期我们学习人工智能这门课程相配电脑鼠实验。
首先我们小组互相帮助,很快完成了软件的安装,一款新软件对我们来说蛮陌生的,不知道怎么样进行调试,不知道该调试什么。
我们小组有一个同学参加了智能车的比赛,有一些相应的经验,我们先打开 watch Windows 界面,由远及近对每一个传感器进行判断,想要确保其无硬件问题。
通过实验我们发现,由远及近sensor的值会越来越大,确立都无误后,我们进行传感器的值调试。
传入测试程序后发现效果还不错,可到下次课在进行调试时,不知道怎么了,小鼠无法跑。
后来把小鼠放到3面围挡的墙处,进行调试。
总之,通过小组的合作,小鼠基本已顺利完成了走迷宫任务,让我对算法有了更深的理解,对调试的方法也有了一些经验和技巧。