您好,欢迎访问三七文档
1中国科技大学第十三届RoboGame机器人大赛参赛计划书队伍名称:A杖地卜师所在院系:工院九系参赛内容:机器人导购负责人姓名:何启明负责人电话:队员信息:职务姓名学号手机学校邮箱队长何启明PB11009队员曹龙轩PB11009队员卢强PB11009队员成亚能PB11009队员杨金钊PB110092指导老师:承诺书组委会承诺:我们组委会保证及时解决各参赛队就比赛相关问题提出的疑问,为各参赛队的制作计划等保密,公正处理机器人比赛相关事务,选拔优秀成员担任比赛裁判,保证裁判的公正。组委会负责人(签字):2013年5月22日参赛者承诺:我们队承诺对本人填写的各项内容保证是本队的原创,没有抄袭他人。我们保证以本承诺为有约束力的协议,遵守中国科学技术大学第十三届robogame组委会的有关规定,认真进行机器人的设计制作等工作,就比赛相3关问题积极与组委会交流,服从组委会的活动安排与最终裁判。对于由本队引发的一切不良后果由本队承担相应责任。参赛队员(签字):何启明曹龙轩卢强杨金钊成亚能——2013年5月22日序:战队简介队伍取名渊源:地卜师生活在黑森林中,最初被赫尔马尼的异族所崇拜的神Meepo,是个淘气的小土灵。身体偏小的土精一点也不弱小,造世主给予了他们过人的智慧。它的强大在于它“分则能成”的强力大招,出A杖后五只精灵一起进攻更是强大到不可思议,我们战队的五个人就代表了这五精灵。4战队宣言:五只精灵团结一致,同进同退,我们相信在队长的带领下我们一定能发挥出“分则能成”的强大力量,秒杀一切,马到成功!战队分工:何启明:程序设计及调试曹龙轩:程序设计及调试卢强:机械设计,加工及调试杨金钊:程序设计,加工及调试成亚能:电路设计及调试一.机械部分1.机器人总装配图主视图:56俯视图:7侧视图:2.机器人各零部件介绍2.1三角钢我们机器人的构架由三角刚来搭建,三角钢较易购买,易打孔与其他构件连接,而且性能稳定。三角钢:82.2底框底座俯视图:底座主视图:9上面是底座的俯视图和主视图,是50cm乘50cm的方形结构,由三角钢搭成。2.3轮子底座框架前面和后面的正中间有两个从动轮(万向轮),20mm的宽度,类似超市里的手推车的前轮,起到支撑和导向的作用。前后万向轮:1011左右两侧是两个主动轮,用俩控制行走和转向,每个轮子分别用一个电机控制。左右主动轮:转向轮和电机和底边三角钢:122.4机器人直线行走及转向问题当左右轮子转速相等时,机器人走直线。在机器人转弯的问题上,我们采用原地转的方式,即机器人向左转时,左侧轮子反转,右侧轮子正转,同理,机器人右转时左轮正传右轮反转。用原地转能很好地控制机器人的位置,不至于在转弯过程中机器人因发生位移而使后面的运动跑偏。底部是一块铁板,铺在方形框架上,用来放电机等其他东西。13底板:从底边框架的立起四个三角钢的竖直杆,用来支撑其他结构。在杆的中部和顶部会搭建两个平板,中部的平板用来放置传送带的电机和篮子,顶部的电机用来丝杠电脑及其它的一些东西。2.5底座加杆底座加杆后视图:14支撑平板用的是与竖直丝杠焊接的三角铁。2.6三角铁及固定三角铁:15三角铁固定于三角钢上:2.7电机下面介绍一下电机和传送带分类装置。电机简介:16电机固定板:17我们的机器人总共需要五个电机,左右两个轮子各一个,传送带两侧各一个,还有一个用来收放绳子。2.8分类装置介绍:我们用传送带的传送来完成分类任务。传送带左侧和右侧各焊接一个矩形铁框,框下吊着一个布袋子,布袋用来缓冲压力,以免物品落下后摔碎。传送带电机的正传和反转由程序控制,电机带动传送带向左或向右转动,从而使放到传送带上的物品掉到左侧(生活类)或右侧(食品类)的篮子里,达到分类的目的。本来我们打算只用一个电动机,另一个带轮用从动轮,但考虑到一个电机可能动力不足,最后决定两侧带轮均由电机控制。传送带装配图:18下面详细介绍一下传送带这一部分用到的各个部件:传送带履带:19传送带带轮:传送带履带和带轮:20传送带固定1:传送带固定2:传送带装配图及固定:21左右分类框及固定板:2.9提篮装置下面介绍机器人完成导购任务后,最后一步走向收银台将货物打包并提到收银台上的过程。22由于我们的传送带分类装置已经直接把两类物品分别放到两个购物袋里面,所以机器人下面只需将购物袋从篮子里面提出即圆满完成了任务。我们设计用一个丝杠来完成提袋的任务。购物袋放在篮子里,两个袋口用一根线穿起来(不系),与左右两侧连接的两根线最后均通过一根总线与丝杠连接。丝杠上面还有一节杆,杆端有一个定滑轮,总线通过定滑轮连接到下面的一个电机,通过电机的转动来控制总线的收放,从而来完成购物袋提起和放下的任务。丝杠水平放置,可以前后运动。机器人到达收银台后,在完成提起购物袋的过程中,丝杠往前伸,同时,控制拉绳子的电机开始转动,使绳子开始收缩。这两个部分的综合作用,能使购物袋同时提到收银台的上方,最后电机反转,绳子伸长,购物袋放到桌面上,即圆满完成任务!下面具体介绍一下提篮的装置:2.9.1提篮工具总图:232.9.2丝杠和电机:2.9.3混合步进电机86BYGHS:24该电机放在丝杠的一端,电机转动来控制丝杠的前伸和后缩,从而来完成提袋和放袋的过程。2.9.4定滑轮:我们需要两个这样的定滑轮,一个固定在丝杠的前端,另一个固定在框架的上平的下方。滑轮固定1:25滑轮固定2:这个滑轮固定装置相当于一个轴承,把滑轮固定在滑轮固定1当中。2.9.5拉绳电机下面讲一下转动电机部分。拉绳转轴:26上面是拉绳转轴,中间有一个洞,绳子从洞中穿过。该转轴与电机相连,电机固定在中间的平板上。电机转动时带动拉绳转轴旋转,从而达到收缩绳子的目的。拉绳电机及固定:在机器人完成任务的过程中,需要电脑随时控制,电脑放在框架中部的平板上。2.9.6电脑:273:重要步骤介绍以上,我把机器人地卜师每个机械部分及其工作原理都做了详细介绍,下面具体介绍一下机器人执行任务两个重要步骤的动作。3.1重要步骤一:物品分类在分类过程中,人取物品后放在传送带上,机器人的程序控制传送带电机旋转,物品即落入左边或右边的框中,完成分类任务。机器人在进行物品分类:283.2重要步骤二:提袋过程在完成所有的导购任务后,机器人走到收银台前面,机器人转向,正面面对收银台。然后开始完成提袋任务。29购物袋很难用solidworks画图画出来,就简单地用一个立方体代替。在该过程中,固定在框架中部控制拉绳的电机开始转动,绳子收缩,两个购物袋同时从左右两侧的框中被提到半空中。机器人在提袋:303.3重要步骤三:放袋过程最后,控制丝杠的电机转动,丝杠前伸,同时控制拉绳的电机反转,使绳子略微放长。两个购物袋被放到收银台的上空。然后,控制拉升的电机继续反转,绳子伸长,购物袋被到收银台上,本次比赛任务圆满完成!二.程序部分:程序的目的是让机器人自主完成导购过程与跟随过程,以及最后的分类与装袋过程,现分不同的阶段逐一讨论:311.导购阶段导购阶段要求机器人自主寻找已经设定好的商品位置,主动前往并且绕过路上的障碍(可能是绕过障碍,或者直接换路行走)。分析可知,该阶段的重点是机器人自动生成最优路径,并且在最优路径检测到障碍物之后,重新生成最优路径,并沿着新生成的路径行走。考虑到现行流行rpg游戏人物定位方法可以应用到路径自动生成中,我们预在游戏人物定位算法的基础上编辑机器人自定位算法。游戏中人物当前位置被记录,如果鼠标指向已经储存在电脑中的地图某处,计算机就会自动生成最优路径并且命令人物沿着生成路径行走。如果人物行走过程中遇到移动型障碍(我们称之为卡位)一直挡在路径前方,电脑就会随时更新生成最优路径,绕开障碍达到目的地。在最优路径设计过程中,依靠先验地图(可行路线与不可达位置)和后验勘测(发现障碍并生成新路径)的算法可以应用在机器人实践中。这种算法被专业人士称为A星算法。A星算法简介:首先将地图分为不同的节点,储存节点与相邻节点的关系,将地图中不可达的地方设置为死节点。其次,从起始点开始检索相邻活节点,并计算相邻节点的G值与F值。32如上图所示,G值可以看做从绿色节点到周围节点的距离,H值是可以看做相邻节点到目的地红色节点的距离。在计算G值时,正向相邻记作10,斜向相邻记作14(1.414倍),之所以不用小数是考虑到计算机执行效率。而计算H值时采用简单的曼哈顿算法(移动像过街道一样只有横向与纵向位移),每经过一个格子加十,死节点也需计算进入。这样在上图的节点中生成了F=G+H值(左上角F,左下角G,右下角H),选取F值最小的节点,重复检索该节点的相邻节点(父节点不予考虑以免重复检索)。这样重复下去就可以生成一条相对较短的路径33如上图所示就是A星算法生成最短路径的过程。A星算法避免了深度优先和广度优先算法的遍历,也避免了狄杰斯特拉算法的繁琐,用较简单的方法找到了类优路径。下面给出A星算法的伪代码实现:heap.add(firstnode)//将开始节点加入堆,同时也是加入openlistdo{fleast=heap.pop();//从openlist取fcost最小的元素current=fleast;//取出的元素作为当前节点fleast.flag=1//1:onclose0:notonopennoronclosefor(inti=current.x-1;icurrent.x+1;i++)//考察当前节点的所有相邻节点for(intj=current.y-1;jcurrent.y+1;j++){if(map[i][j]!=unwalkable||!onclose(node(i,j)))//相邻节点可通并且没有考察过{if(!onopen(node(i,j)))//相邻节点不在openlist中{heap.add(node(i,j));//加入openlistnode(i,j).parent=current;//设置相邻节点的父节点为当前节点node(i,j).calculate(f,g,h);//重新计算fcost,gcost,hcostif(node(i,j)==dest)//如果加入的节点是目标点则找到路径path=find;}34else{temp.gcost=parent.gcost+addcost;//相邻节点已经在openlist中node(i,j).hcost=10*(abs(i-parent.x)+abs(j-parent.y));node(i,j).fcost=node(i,j).gcost+node(i,j).hcost;if(tempgcostnode(i,j).gcost)node(i,j).parent=current;node(i,j).recaculate(f,g,h);//重新计算fcost,gcost,hcost}}}while(!hp.isempty())//如果堆空则没有找到路径if(path==find)outpath;//输出路径elsecoutpathnotfind;!endl;A星算法应用在本次机器人制作需要以下几个工作:1.1、地图的划分A星算法需要知道地图的分布,因此合理将场地划分是执行程序的第一步。考虑到现实情形,机器人有碰撞体积,并不能将场上所有的空地设置为活节点,可以设置机器人型心为质点,考虑该型心所能到达的地方,如果机器人型心超出此范围,则其边界有可能碰到货架或者场地边界,地图的分块是建立在此范围之内,下图显示了计算过机器人大小的型心运动区域分布图,其中阴影部分就是机器人的型心可以到达的区域。35之后在这个区域上划分小块,考虑到机器人绕障碍的精度要求,我们将可行区域划分为200X200MM的小区域,以区域中心作为节点所在位置,如下图所示,所画区域恰好分成诸多小块1.2、节点的储存为了避免不稳定性,我们设定机器人只能沿节点横向或纵向移动(G值不能为14),将每个节点与其邻居节点用结构体储存,结构体应该包括节点编号,节点死活,节点邻居指针,节点中心坐标等元素。361.3节点的定标我们拟采用加速度计与陀螺仪判定机器人当前位移与
本文标题:导购机器人计划书
链接地址:https://www.777doc.com/doc-9274134 .html