机器人课程实验指导书实验一机器人程序设计基础的练习实验目的:1.熟悉机器人仿真平台的组成、系统参数设置。2.掌握机器人仿真平台的简单程序设计。3.学会实体机器人程序的设计与调试方法。实验内容:1.机器人仿真平台的系统参数设置。2.机器人仿真平台的简单程序设计。3.实体机器人程序的设计与调试方法。实验设备:安装VJC机器人仿真平台的PC机,能力风暴机器人AS-UII。实验学时:6学时实验类型:验证性实验指导教材:《VJC1.5仿真版使用教程》.上海未来伙伴机器人有限公司.2008《VJC1.5开发版使用教程》.上海未来伙伴机器人有限公司.2008《能力风暴机器人AS-UII使用手册》.上海未来伙伴机器人有限公司.2008实验步骤:(2个学生合作完成本次实验的内容,并写出实验报告)一、虚拟机器人程序设计。在VJC机器人仿真平台中完成以下的设计任务。1、编写一个机器人,使其能够沿着彩线从左端走到右端。(使用场景广茂达仿真场地/沿线走场地.ini)2、编写一个机器人,使其能够根据声音的强度,产生0~2之间的随机数,并跳到相应的格子中。(使用场景广茂达仿真场地/跳格子.ini)3、编写一个机器人,使其能够避开障碍从一端走到另一端。(使用场景广茂达仿真场地/越障跑.ini)二、实体机器人程序设计。使用能力风暴机器人AS-UII完成以下的设计任务。1、参照《能力风暴机器人AS-UII使用手册》,完成能力风暴机器人AS-UII的自检过程。2、参照《能力风暴机器人AS-UII使用手册》,将能力风暴机器人AS-UII跟计算机连接,并练习如何下载程序到机器人的控制器。3、编写一个机器人程序,控制机器人能够在行进的过程中避开障碍物。(分别用“红外传感器”和“碰撞传感器”完成该程序。)4、编写一个机器人程序,控制机器人能够转过90度角。(使用“光电编码器”完成该程序。)5、机器人接力赛。该项目由两个小组共同完成。开始时,A点和B点分别有一个机器人。A机器人先向B点移动,在接近B点时,A机器人停止。接着B机器人启动,向前移动一段距离后停止。(使用“红外传感器”完成该程序。)6、编写一个机器人程序,使其能够在足球场地的任意位置移动到中央位置。(使用“地面灰度检测卡”完成该程序。提示:在传感器连接正确的情况下,使用“AS多功能扩展卡”栏目中的“模拟输入”模块或函数analogport(7)可以读取传感器的数据。)注意:地面灰度检测卡的安装、使用参考《能力风暴智能机器人配件使用手册V2.0》中的第五节地面灰度检测卡的内容。7、编写一个机器人程序,控制机器人能够按直线向前移动1米。(考虑是否需要使用PID控制算法完成该程序。)实验二机器人足球程序设计的练习实验目的:1.熟悉机器人仿真平台AI-RCJ的安装、组成2.掌握机器人仿真平台的系统参数设置。3.学会简单的机器人程序的设计与调试方法。实验内容:1.机器人仿真平台AI-RCJ的安装2.机器人仿真平台的系统参数设置。3.简单的机器人程序的设计。实验设备:安装AI-RCJ机器人仿真平台的PC机实验学时:6学时实验类型:验证性实验指导教材:《AI-RCJC语言教程教材》.中鸣公司.2008《AI-RCJ图形化编程教材》.中鸣公司.2008实验步骤:(2个学生合作完成本次实验的内容,并写出实验报告)1、机器人仿真平台的系统参数设置练习使用提供的机器人程序新建一场比赛,通过观察不同参数值时的比赛,掌握各参数的作用。(机器人程序在文件夹“robot”中)。导入机器人程序步骤:打开AI-RCJ4.0运行平台,菜单项-工具-机器人管理-导入然后再弹出的窗口中找出需要导入的机器人文件(zip或者jar文件)机器人就会被导入(通常在default或者用户自己新建的包里面)新建比赛步骤:然后新建比赛,选择刚刚导入的两队机器人,进行比赛。2、编写一个简单行走的机器人。机器人不断重复以下运动:先后退500个单位距离,再前进500个单位距离。3、编写一个简单行走的机器人。机器人在点(500,500)和点(100,100)之间来回运动。4、编写一个简单行走的机器人。机器人不断重复以下运动:运动到点(100,100),延时50个单位时间,再运动到点(500,500)。5、编写一个简单转动的机器人。机器人不断重复以下运动:先左转90度,再右转90度。6、编写一个简单转动的机器人。机器人不断重复以下运动:先转到90度,再转到270度。7、编写一个简单转动的机器人。机器人不断重复以下运动:绕着边长为500的正方形行走。8、编写一个简单转动的机器人。机器人不断重复以下运动:绕着边长为500的等边三角形。9、编写一个简单转动的机器人。机器人不断重复以下运动:绕着圆行走的机器人。10、使用数组保存数据,编写简单行走的机器人。机器人在点(50,100)(150,100)(400,150)(100,1500)(300,250)之间来回运动。11、编写一个能够移动到球场中央位置的机器人。12、编写一个能够不断移动到(x+200,y+300)位置的机器人,其中x、y是机器人的当前坐标。13、编写一个能够移动到进攻球门中心位置的机器人。14、编写一个能够在自己球门前来回移动的机器人。15、编写一个能够进行简单进攻的机器人。如图1所示,A点是机器人当前的位置,B点是足球当前的位置,P点是进攻球门中心。要求机器人移动到C点后,一直往前推球以使其进入球门。图1机器人的简单进攻图16、编写一个能够进行简单防守的机器人。要求:(1)机器人站在球门前。(2)机器人能实时的跟着足球作位置的调整。当足球在球门范围时,机器人和足球处在一个水平线上,即Y坐标相等;当足球不在球门范围时,机器人处在球门对应的边角处。17、编写一个足球的运动预测程序,要求能够判断n个单位时间后足球所在的位置。函数声明如下:ntimepoint(inttimes,double*ballx,double*bally)。18、编写一个进攻机器人,在其中加入第7题编写的足球运动预测程序。19、编写一个防守机器人,可用在第6题编写的程序中加入第7题编写的足球运动预测程序。说明:(Ai-rcj中提供的机器人移动、转动、延时函数)doMoveAhead(doublex);//向前走doMoveBack(doublex);//向后退doMoveTo(doublex,doubley);//移动到点(x,y)doTurnLeft(doublex);//左转xdoTurnRight(doublex);//右转xdoTurnTo(doublex);//转到方向xexecuteTimes(longtimes);//延时setMoveVelocity(x);设置机器人移动速度setTurnVelocity(x);//设置机器人转动速度setMoveTo(doublex,doubley);//设置机器人移到指定位置setTurnTo(x);//设置机器人转到指定方向setKickBallT(doublex,doubley);//,设置机器人将球踢到指定位置execute()//执行函数(Ai-rcj中提供的相关函数)getCourtWidth(void);//得到场地的宽getCourtCenterX(void);//返回场地中心的x坐标getCourtCenterY(void);//返回场地中心的y坐标getX(void);//得到机器人的X坐标getY(void);//得到机器人的Y坐标getAttack(void);//得到代表自己进攻方向的整数,1表示从左向右攻,-1表示从右向左攻getGoalWidth();//得到球门的宽度getBallX();//得到球的X坐标getBallY();//得到球的Y坐标getBallHeading();//得到球的移动方向getOpponentGoalCenterX()//得到进攻球门中心的x坐标getOpponentGoalCenterY()//得到进攻球门的y坐标nextPoint(currentX,currentY,heading,distance,*nextX,*nextY);//得到下一点的坐标值modifyInCourt(X,Y,reserve);//修正某点到球场内实验三机器人灭火程序设计的练习实验目的:1.掌握机器人仿真平台的简单程序设计。2.学会实体机器人程序的设计与调试方法。实验内容:1.机器人仿真平台的简单程序设计。2.实体机器人程序的设计与调试方法。实验设备:安装VJC机器人仿真平台的PC机,能力风暴机器人AS-UII。实验学时:6学时实验类型:验证性实验指导教材:《VJC1.5仿真版使用教程》.上海未来伙伴机器人有限公司.2008《VJC1.5开发版使用教程》.上海未来伙伴机器人有限公司.2008《能力风暴机器人AS-UII使用手册》.上海未来伙伴机器人有限公司.2008实验步骤:(2个学生合作完成本次实验的内容,并写出实验报告)一、虚拟机器人程序设计。在VJC机器人仿真平台中完成以下的设计任务。1、编写一个机器人,使其能够在一个房间中向点燃的蜡烛运动。(使用场景广茂达仿真场地/房间中的趋光运动.ini)2、编写一个机器人,使其能够在房间外找到房门,并在房门处停下。(使用场景广茂达仿真场地/房间浏览.ini)二、实体机器人程序设计。使用能力风暴机器人AS-UII完成以下的设计任务。1、编写一个机器人程序,控制机器人能够使用风扇把蜡烛吹灭。2、编写一个机器人程序,使其能够向某个房间内点燃的蜡烛运动。3、编写一个机器人程序,使其能够向某个房间内点燃的蜡烛运动,并启动风扇把蜡烛吹灭。4、编写一个机器人程序,完成灭火任务。(任务的详细规则参照“比赛规则”中的《国际灭火比赛规则2010》)注意:风扇硬件的安装、使用参考《能力风暴智能机器人配件使用手册V2.0》中的第二十四节灭火风扇装置的内容。