680 likes | 999 Views
Artificial Intelligence and Robotics. 山东大学创新教育通识核心课程 人工智能与机器人 cyj@sdu.edu.cn 86358137 、 88399323 山东大学. Artificial Intelligence and Robotics. 第十四章 电脑鼠走迷宫. 山东大学工程训练中心 主讲:李泉 Tel:86358137 13006589457 Email:muzibaishui1@163.com. 第十四章 电脑鼠走迷宫. 1. 2. 3. 4.
E N D
Artificial Intelligence and Robotics 山东大学创新教育通识核心课程 人工智能与机器人 cyj@sdu.edu.cn 86358137、88399323 山东大学
Artificial Intelligence and Robotics 第十四章 电脑鼠走迷宫 山东大学工程训练中心 主讲:李泉 Tel:86358137 13006589457 Email:muzibaishui1@163.com
第十四章 电脑鼠走迷宫 1 2 3 4 5 6 7 电脑鼠 走迷宫竞赛 电脑鼠 简介 电脑鼠 走迷宫演示 电脑鼠 走迷宫算法 走迷宫 标准套件 电脑鼠 调试例程 电脑鼠 传感器校正
14.1 电脑鼠走迷宫竞赛 • 电脑鼠迷宫竞赛已经风靡全球
14.1 电脑鼠走迷宫竞赛 • 电脑鼠迷宫竞赛的发展史 电脑鼠比赛在中国大陆还很少见,直到2007年,由上海市计算机学会主办的IEEE标准电脑鼠走迷宫邀请赛(长三角地区)在上海师范大学举行,有三十多所院校参加,反响强烈。2009年,首届全国“电脑鼠走迷宫”竞赛在北京成功举办,随后组委会相继举办了2010 全国“电脑鼠走迷宫”竞赛。 1977年,IEEE Spectrum杂志提出电脑鼠的概念,电脑鼠是一个小型的由微处理器控制的机器人车辆,在复杂迷宫中具有译码和导航的功能。真正的首场电脑鼠迷宫竞赛于1979年于纽约举行,上千作品中只有15个电脑鼠成功完成比赛。 1991年以来,世界级的比赛数目显著增加,现在每年100场比赛以上。 1972年由美国机械杂志发起比赛,最初的电脑鼠是机械的,由弹簧驱动。
14.1 电脑鼠走迷宫竞赛 电脑鼠走迷宫竞赛的三大赛事,水平排第一的是All Japan Micromouse Contest,排第二的是新加坡公开赛SRG,排第三的是IEEE APEC,在美国举行。新加坡公开赛参加的外国人不多,但新加坡的电脑鼠技术太强,这几年一直包揽各项赛事冠军。
迷宫的规范 • 1.迷宫由16×16个﹑18cm×18cm大小的正方形单元所组成。 • 2.迷宫的隔墙高5cm,厚1.2cm,因此两个隔墙所构成的通道的实际距离为16.8cm。外墙将整个迷宫封闭。 • 3.迷宫隔墙的侧面为白色,顶部为红色。迷宫的地面为木质,使用油漆漆成黑色。隔墙侧面和顶部的涂料能够反射红外线,地板的涂料则能够吸收红外线。
电脑鼠的规范 • 1.电脑鼠必须自成独立系统,不能使用可燃物为能源。 • 2.电脑鼠的长和宽限定在25cm×25cm。每次运行中电脑鼠几何尺寸的变化不能超过25cm×25cm。对电脑鼠的高度没有限制。 • 3.电脑鼠穿越迷宫时不能在其身后留下任何东西。 • 4. 电脑鼠不能跳越、攀爬、钻挖和损毁迷宫隔墙。
14.1 电脑鼠走迷宫竞赛 • 迷宫竞赛的简介 竞赛使用这三个参数,从速度、求解迷宫的效率和电脑鼠的可靠性三个方面来进行评分。在迷宫中运行时间最短的电脑鼠获胜。 电脑鼠的基本功能是从起点开始走到终点,这个过程称为一次“运行”,所花费的时间称为“运行时间”。从终点回到起点所花费的时间不计算在运行时间内。从电脑鼠的第一次激活到每次运行开始,这期间所花费的时间称为“迷宫时间”。如果电脑鼠在比赛时需要手动辅助,这个动作称为“碰触”。 目的: 迷宫竞赛的目的是制作一个微型机器人,它能在最短的时间内穿越迷宫到达终点。
14.1 电脑鼠走迷宫竞赛 • 电脑鼠迷宫竞赛的计分规则说明 运行时间T1 返回 运行时间T2 返回 启动 迷宫时间M2 迷宫时间 M1=0 迷宫时间:电脑鼠激活到每次运行开始的那段时间 运行时间:电脑鼠从起点走到终点的时间 ! 成绩=迷宫时间÷30+运行时间-奖励时间(非碰触) 碰触:电脑鼠在运行过程中若要手动辅助,则为碰触,最多允许碰触4次,发生一次碰触失去10s的奖励时间,第二次以后多碰触一次增加5s惩罚时间。
14.1 电脑鼠走迷宫竞赛 • 电脑鼠迷宫竞赛的模拟 时间计算: 这个电脑鼠运行第一次运行时间为60s,没有碰触过,迷宫时间为0,排障时间就是:60秒-10秒(无碰触)=50秒。第二次运行时间为20秒,迷宫时间为90s。这次运行的排障时间就是:20秒+(90秒×1/30)-10秒(无碰触)=13秒 • 1、搜索迷宫,第一次运行 • 2、智能选路,第二次运行
第十四章 电脑鼠走迷宫 1 2 电脑鼠 走迷宫竞赛 电脑鼠 简介
14.2 电脑鼠简介 • 电脑鼠是一种具有人工智能的移动机器人 • 它是多学科的交叉结合的结晶 电子 运动控制 软件工程 机械 人工智能 传感 移动机器人的应用实例
14.2 电脑鼠简介 • 电脑鼠诠释了肢体、感官、脑的协调工作 感官:传感器 肢体:电机 脑:处理器
14.2 电脑鼠简介 • Micromouse615资源 传感器 驱动装置 软件设计 处理器 机械结构 • MicroMouse615采用红外传感器,电路简洁,控制轻松 • MicroMouse615采用步进电机,速度平稳,运行准确 • MicroMouse615机身设计短小灵巧,能在迷宫里转动自如 • MicroMouse615实现了基本的迷宫算法,能准确找到终点 • MicroMouse615采用基于Cortex-M3内核的LM3S615处理器
14.2 电脑鼠简介 LM3S615 ARM cortex-M3内核 • 功耗低 • 具有门数目少 (价格低) • 调试成本低 • 中断延迟短 • 中断响应快速且支持多级中断嵌套 • 处理器采用先进的ARMv7-M架构
红外测距原理 • 发射管 • 940nm • PWM调制 • 接收管 • IRM8601S • 940nm • 视角45˚ • 38K带通滤波
红外测距原理 • 近距 • 红外信号衰减 • 调整变阻器改变发射信号强度改变检测距离 • 远距 • 调整发射频率改变带通滤波器对信号的衰减程度改变检测距离
步进电机驱动 • 半步驱动 • 步进角3.75˚ • 两个电机独立控制 • 定时器控制IO口翻转 • 加减速控制 • 调节定时时间
传感器 14.2 电脑鼠简介 • 编码器 • 陀螺仪 • MEMS陀螺仪 • 旋转角度测量 • 漂移 • 距离传感器 • GP2D12 • 40ms • 10-80cm • 运放+AD
14.2 电脑鼠简介 • 电机 • 步进电机 • 更改电机 • 细分 • 直流电机 • 有刷直流电机 • 减速器 • 闭环控制 • 编码器,速度闭环控制 • 电流环,力矩控制 • 无刷直流电机 • 有感 • 无感
第十四章 电脑鼠走迷宫 1 2 3 电脑鼠 走迷宫竞赛 电脑鼠 简介 电脑鼠 走迷宫演示
14.3 电脑鼠走迷宫演示 • 电脑鼠走迷宫演示
第十四章 电脑鼠走迷宫 1 2 3 4 电脑鼠 走迷宫竞赛 电脑鼠 简介 电脑鼠 走迷宫演示 电脑鼠 走迷宫算法
14.4电脑鼠走迷宫算法 • 电脑鼠迷宫搜索算法 • 右手法则 • 电脑鼠顺着右边走,只要右边存在没有走过的入口则向右转。 • 有多个未走过的入口坐标入栈 • 无未走过入口时返回栈顶坐标格 • 左手法则 • 电脑鼠顺着左边走,只要左边存在没有走过的入口则向左走。 • 有多个未走过的入口坐标入栈 • 无未走过入口时返回栈顶坐标格 • 中心法则 • 电脑鼠就向着离中心目标点最近的方向前进。 • 有多个未走过的入口坐标入栈 • 无未走过入口时返回栈顶坐标格
14.4电脑鼠走迷宫算法 • 迷宫资料的存储 人走迷宫会迷路,但是聪明的电脑鼠是不会的。 如右图,先给迷宫里的单元格按X,Y轴编上号。 0 3 1 2 迷宫是由一个个18cm×18cm大小的方格组成的,迷宫大小为16×16,即行列各有16个方格。 再规定用0、1、2、3分别代替上、右、下、左四个方向。
14.4电脑鼠走迷宫算法 • 迷宫资料的存储-一维数组 上方 左方 下方 右方
14.4电脑鼠走迷宫算法 • 电脑鼠的方向转换 ! 电脑鼠只要有了坐标便能够把采集的信息存到相应存储单元中,以被运行时遍历。但是除了坐标还得知道电脑鼠方向,才能将电脑鼠的四个方向转换为迷宫上的绝对方向。 如何让老鼠在迷宫左拐右拐后还能记住自己前进的方向与迷宫的方向关系呢? 电脑鼠向上时,电脑鼠的前方为当前绝对方向——上。 电脑鼠左转后,电脑鼠的前方则为当前绝对方向——左。
电脑鼠走迷宫算法 0 上 3 左 右 1 下 2 上面动画就是电脑鼠记住方向的示意图,也就是 每转动一次(90度或180度)就要把方向值顺时针 或逆时针移动一个(90度)或两个(180度)单位。
绝对方向转相对方向 ∆dir=Dir_dst + 4 - dir
电脑鼠走迷宫算法 此时没有可前进的路,于是返回堆栈保存分支的地址继续标记 建立一个小型示意迷宫,假设老鼠已完成对迷宫的搜索,即掌握了迷宫地图。 • 求最短路径——制作等高图: 这是第三步 13 起点标记为1 等高图的最后的结果如左图所示,图中已经标明各个坐标到起点需要的最少步数,也就是找出了所有点到起点的最短路径。 地址出栈 此时前进方向的数比自己还小,所以无路可走,应该返回到堆栈保存的分支地址 于是保存分叉路的坐标,并随便选一个方向前进,这不影响结果 此时搜索已没有可前进的 方向,且堆栈中的分支地 址仅有起点地址,所以可 以判断等高图制作完毕。 标记为2,表示第二步到达的方格,后面的以此类推 1 4 5 8 32 22 此时迷宫的前方和右方都有路 2 3 6 7 10 20 3 4 5 8 00 继续保存分叉路的坐标 把起点坐标保存到堆栈 把走过的方格标记为0xfe,未走过的标记为0xff 9 8 4 7 5 10 6 7 11 12
连续转弯(smoothturn) 五段法转弯 转弯半径尽可能小 直线段尽可能长 转弯速度受限制
第十四章 电脑鼠走迷宫 1 2 3 4 5 电脑鼠 简介 电脑鼠 走迷宫竞赛 电脑鼠 走迷宫演示 电脑鼠 走迷宫算法 走迷宫 标准套件
14.5 电脑鼠走迷宫标准套件 • 电脑鼠走迷宫竞赛标准迷宫 符合IEEE国际标准的迷宫MicroMouse Maze16×16 此图为: MicroMouse Maze 16×16 我们还有: MicroMouse Maze 8×8
14.5电脑鼠走迷宫标准套件 • MicroMouse615迷宫智能鼠 • 符合国际比赛标准,体积小,宽度只有迷宫格的一半; • 前方五组可测距的红外线传感器,灵敏度高,方便现场调节; • 电机为步进电机,控制容易; • 电池为2200mAh,7.4V的可充电锂电池,支持电池的电压监测,避免电量不足带来的麻烦; • 采用基于最新内核Cortex-M3的32位Luminary单片机LM3S615,运算速度快,外设丰富; • 为用户预留了6个GPIO口,一个串口,一个SPI接口。 懂C就能开发!!
14.5电脑鼠走迷宫标准套件 • 其他配套开发工具 与MicroMouse615配套的有锂电池、充电器、LM LINK USB JTAG调试器和SPI接口的键盘显示模块,使用户开发调试更为方便。 同时提供《电脑鼠开发指南》和出厂程序光盘。
14.5电脑鼠走迷宫标准套件 键盘显示模块(SPI接口) 用途提示: 1、在开发过程中,或迷宫竞赛开始前用于显示红外线传感器的灵敏度,以方便进行调试。 2、在验证自己迷宫算法的时候,用数码管显示自己所处的迷宫坐标和采集的墙壁信息。 3、键盘可以设置为单步验证各个功能模块,并在数码管上进行显示,比如步进电机的转速,方向等等。 4、……
14.5电脑鼠走迷宫标准套件 LM LINK是由广州致远电子有限公司开发的低成本高性能USB JTAG调试器,它专门用于对Luminary系列单片机程序的调试与下载。该调试器结合IAR EWARM 集成开发环境,可支持所有LM3S系列MCU的程序的下载与调试。
第十四章 电脑鼠走迷宫 1 2 3 4 5 6 电脑鼠 简介 电脑鼠 走迷宫竞赛 电脑鼠 走迷宫演示 电脑鼠 走迷宫算法 走迷宫 标准套件 电脑鼠 调试例程
14.6 电脑鼠调试例程 • 电脑鼠硬件调试连接说明 1.连接电脑鼠电源 4.插入USB通信接口 2.插入JTAG接口 5.开始下载调试 3.拨开电源开关
14.6 电脑鼠调试例程 • 软件安装 • 根据电脑鼠安装指南安装IAR EWARM 集成开发软件 • 安装光盘中的 LM LINK驱动程序,并按照指南进行相关配置 • 安装流明诺瑞驱动库,并按照指南进行相关配置
14.6 电脑鼠调试例程 • 实验例程:步进电机控制 打开IAR EWARM集成开发环境,建立工作区和新建一个项目:
14.6 电脑鼠调试例程 点击Create new project 后会跳出如下对话框,默认情况下直接点击OK按钮:
14.6 电脑鼠调试例程 在“另存为”窗口中浏览和选择新建的D:\DEMO目录,输入新项目的文件名为demo,然后保存:
14.6 电脑鼠调试例程 这时在屏幕左边的Workspace 窗口中将显示新建的项目名和输出代码模式,如图所示:
14.6 电脑鼠调试例程 建立文件组,右击“demo-Debug”然后选择 ADD > ADD Group,如图所示:
14.6 电脑鼠调试例程 新建3个文件组:startup文件组、src文件组和lib文件组 ,如图所示:
14.6 电脑鼠调试例程 向文件组添加对应文件 ,如图所示: driverlib.r79文件 在安装目录: C:\Program Files\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\lib\Luminary startup.c文件 在库文件所在目录: D:\PDL-LM3S-1928\DriverLib\ewarm main.c文件为用户建立保存的
14.6 电脑鼠调试例程 按照电脑鼠开发指南所示进行项目的设置。然后将目录MicroMouse615配套资料\Demo\基础实验\Step Motor\src中main.c的内容复制粘贴到新建的“mian.c”文件,并向工程添加“type.h”文件,如图所示: