您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页仿真机器人程序设计

仿真机器人程序设计

来源:意榕旅游网
2018年 6 月 12 日

一、项目任务 二、项目要求 1. 机器人要准确做出指定动作。 2. 要使用提供的VJC场地文件。 3. 三、使用到的软、硬件设备 VJC软件、计算机 四、程序的截图(包括图形和命令代码部分)、程序的思路说明 题目1:使用VJC1.5仿真软件,编写一个灭火机器人,让其完成如下的动作: (1) 机器人从蓝色圆圈的位置出发 (2) 机器人只在蓝线上行走 (3) 机器人能够发现蜡烛 (4) 机器人发现蜡烛后,停止运动,启用风扇将蜡烛吹灭(机器人保持停止) 图1 灭火机器人场地 1. 程序的截图(包括图形和命令代码部分) 2. 程序的思路说明 (1)刚开始时,仿真机器人面向180度角,并处在蓝色圆圈的起点位置。 (2)仿真机器人开始前进,并进行计算。 (3)进行条件循环判断,亮度检测的亮度值不等于255并且计算值等于1。 (4)如果条件(3)成立,则仿真机器人前进时进行地面检测,通过地面检测地面灰度值进行判断,如果灰度值为43则继续前进;如果灰度值不为43则左转,继续进行地面检测,直到灰度值为43为止;如果条件(3)不成立,则程序结束,仿真机器人停止运动。 (5)在条件(4)的基础上,仿真机器人在前进过程中进行亮度检测,通过亮度平均值是否为255判断找到蜡烛。如果亮度值不等于255,则表示找到蜡烛,此时仿真机器人停止前进并启动电机,通过亮度检测亮度值等于255,则仿真机器人停止扩展电机停止运动。如果亮度值等于255,则继续进行地面检测和亮度检测,直到符合条件为止。 机器人运行结果如下: 题目2:使用AI-RCJ软件,编写一个足球机器人,使其完成如下的动作: (1) 机器人将球从蓝色点踢入球门(黄点是球门中心) 图2 足球机器人场地 1. 程序的截图(包括图形和命令代码部分) 命令代码如下: #include void run() { doMoveTo(0,0); double px,py,ballx,bally,k,b,Dx,Dy,Cx,Cy,Ay,GoalWidth,head; Cx = getOpponentGoalCenterX(); //获取进攻球门中心的x坐标 Cy = getOpponentGoalCenterY(); //获取进攻球门中心的y坐标 ballx = getBallX(); bally = getBallY(); GoalWidth = getGoalWidth(); //获取球门的宽 Ay = Cy - GoalWidth/4; head = heading(ballx,bally,Cx,Ay); //从蓝色点入门 k = tan(head); b = bally - k*ballx; Dx = ballx - getBallRadius() - getRadius(); Dy = k * Dx + b; doMoveTo(Dx,Dy); //到达足球背后的进攻点A点 doTurnTo(head); //转向进攻方向 while(1){ doMoveTo(getBallX(),getBallY()); } } 2. 程序的思路说明 (1)先计算足球和蓝色点形成的直线方程,然后在足球的背后找到一个进攻点设为A。控制机器人来到A点,并转向蓝色点方向,不停地向前运动就可以把足球从蓝色点推入门内。 (2)黄色点是进攻球门的中心点,减去球门宽的1/4可得到蓝色点的y坐标。使用系统提供的heading(double px,double py,double bx,double bx)函数获得足球与蓝色点的方向。假设A点在足球背后,而A点的y坐标可通过足球和蓝色点的直线方程算出。 (3)先设定机器人的坐标为(0,0),获取进攻球门中心的x坐标和y坐标。再获取球门的宽,并求出机器人跟足球的直线。机器人到达足球背后,转向进攻方向,将足球从蓝色点入门。 程序的截图如下: 机器人运行结果如下: 五、测试项目过程中出现的问题分析 题一中: (1)机器人开始运行即停止,是因为条件判断值中的地面灰度值不设为43,修改方法是在条件判断中,将条件改为地面灰度值等于43。 (2)机器人在前进至第一个转弯处是停止不动,原因是此时检测出的亮度值为255,机器人停止。修改方法是通过地面检测代替亮度检测来判断前进路径。 (3)机器人在发现光源时继续前进并启动电机,直至蜡烛被吹灭也不停止运动。修改方法是在条件循环中判断亮度值为255时停止电机以及停止扩展电机。 题二中: (1)机器人把足球射入球门的方向不确定,有时在蓝色点,有时不在蓝色点,原因是没有正确获取到蓝色点的x和y坐标,解决之法是使用系统提供的heading(double px,double py,double bx,double bx)函数获得足球与蓝色点的方向,再获取进攻球门中心的x坐标和y坐标,减去球门宽的1/4可得到蓝色点的y坐标,从而得到蓝色点的x坐标和y坐标。 六、项目结论与体会 通过本次期末动手操作,基本运用了本学期课堂所学所识内容。题一主要考查了地面检测、亮度检测以及扩展电机的内容。难点是地面灰度值和亮度检测值的设定以及判断,从而触发什么事件。题二主要考查了机器人的进攻动作,从而避免出现乌龙球事件,核心是准确获取球的位置、进攻球门的中心的x坐标和y坐标、球门的宽、球的射入点以及进攻方向。只有正确把握以上几点,才能避免乌龙球,成功入球。通过这次实验,重新认识并且扩展了课本知识,并且加大力度锻炼了思维能力以及动手操作能力,同时也发现了自身对机器人领域的许多不足,但也正因为不足才更具动力,我相信以后有机会更加熟悉机器人的。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务