智能机器人实验设计报告

智能机器人实验设计报告

ID:13092287

大小:313.00 KB

页数:6页

时间:2018-07-20

智能机器人实验设计报告_第1页
智能机器人实验设计报告_第2页
智能机器人实验设计报告_第3页
智能机器人实验设计报告_第4页
智能机器人实验设计报告_第5页
资源描述:

《智能机器人实验设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数理与信息工程学院综合实验设计报告课程名称:智能机器人专业:计算机科学与技术专升本班级:姓名:学号:教师:综合性实验群鸭过河一、[任务]以小组的形式展开比赛,机器人作小鸭,它们能够一个跟在一个后面,一起安全“游”过“河”。安全过“河”的机器人个数最多的队获胜。如图一所示图一小鸭过河二、[任务分析]鸭妈妈带着一队小鸭过河,那么就需要为小鸭妈妈编写“过河”程序,其他小鸭能够一个跟着一个,那么就要为它们编写“跟随”程序。1、活动准备a)物品准备能力风暴智能机器人5台计算机1台b)让机器人移动要用到库函数driv

2、e(a,b),在前面已经作过相应的介绍,在这里就不重复说明了。c)判断与循环语句的使用。While(1){…}这个语句是一个无限循环语句。While语句不断对其后()中的内容进行判定。当判断的值为1时就将{}内的语句执行一遍,然后再接着对()中的值进行判断。而在这里while后面()里的内容为1,所以这个语句会无限循环下去。If()…else或者elseif()…也是比较常见的判断语句,这种语句能够将问题的多种情形都罗列出来,分别进行处理。d)红外传感器可以检测到正前方、左前方、右前方是否有障碍物,调用一

3、次库函数ir_detector(),红外传感器就进行一次检测,并有返回值。返回值具体意义为0=>没有障碍,1=>左边有障碍,2=>右边有障碍,4=>前方有障碍;机器人的碰撞传感器,能够检测到前、后、左、右四个方向的碰撞,调用一次bumper()函数,就进行一次碰撞检测,有返回值。其具体意义为:1左前,2右前,4左后,8右后,3前,12后,5左,10右。2、方案设计方案的设计分为“过河”和“跟随”两个部分。a)“过河”过河的方案有很多,比如:直着过河、斜着过河、波浪式过河等,不同的过河方法,程序编写的难度有

4、所不同,随后的小鸭“跟随”的难度也有所不同,波浪式过河,后面跟随的小鸭就比较容易跟丢,带小鸭成功过河的可能性就比较小。b)“跟随”1)要让小鸭能够跟随,这就需要用到红外传感器,当小鸭“看到”前方有物体时,就会主动跟上前去。这时候,如果小鸭的前进速度比较慢,它很可能就跟不上了,速度快又会撞到前面的小鸭,因此速度的设置比较重要。2)如果小鸭撞到了前面的鸭子,该怎么办?可以让它停下来,再去检测前面有没有可以跟随的鸭子。3)如果小鸭迷失了方向该怎么办呢?也让它停下来,在原地等着鸭妈妈。具体的方法由大家自己来设计,

5、能够完成整个活动的方案就是好方案!3、画流程图母鸭流程图好下:三、[实验记录]方案设计(1)母鸭过河程序设计为便于实现,母鸭部分先用红外线传感器探测,以返回值判断前方是否有障碍物,若无,则前进:若有,则判断左前方向,左前方向无障碍物则左转前进,若有则再判断右前方向,右前方向无障碍物则右转前进,若有则停止运动。为避免母鸭碰到障碍物停止造成小鸭碰在一起,本设计先对前方进行试探,若前方都有障碍物无法行走,则母鸭不动,避免带动小鸭撞成一堆。母鸭部分程序如下:voidmain(){intir=0;intv_f=20

6、;intv_t=15;ir=ir_detector();while(1){if(ir==0)drive(v_f,0);elseif(ir==4){if(ir==1){if(ir==2)stop();else{drive(v_f,v_t);drive(v_f,0);}}else{drive(v_f,-(v_t));drive(v_f,0);}}elsedrive(v_f,0);}}(2)小鸭跟随程序设计小鸭部分主要是跟随前面一只鸭子为主,基本设计思想是先用碰撞传感器检测是否与前一只鸭子连续发生碰撞,若是,则

7、稍微停止片刻,若没有碰撞,则用红外传感器依次检测前方左方右方,检测到有物体的方向即为前面那只鸭子的运动方向,则转向该方向跟随运动。说明:每只小鸭的速度值都不一样,下面小鸭程序仅取母鸭后的第一只小鸭为例部分程序如下:voidmain(){intir=0;intbmp=0;intpre_bmp=0;intv_f=25;intv_t=16;while(1){ir=ir_detector();bmp=bumper()&0b0011;if(pre_bmp&&bmp){stop();wait(0.5);}elseif

8、(bmp)stop();elseif(ir==0)stop();elseif(ir==4)drive(v_f,0);elseif(ir==1)drive(v_f,(-v_t));elseif(ir==2)drive(v_f,v_t);wait(0.1);pre_bmp=bmp;}}后面的3只小鸭的代码与第一只小鸭的代码基本一样,不同的是v_f与v_t这2个决定小鸭前进速度和转速的参数值。在对于小鸭的调试,基本也是在这2个值上做

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。