ROBOT & AI

首页 | 新闻 | 产品 | 竞赛 | 学苑 | 读书 | 硬件 | 软件 | 智能 | 制作 | 项目 | 资源 | 论坛
 您的位置:首页 >> 竞赛 >> 灭火比赛 >> 正文
站内搜索:   

队列在灭火机器人白线检测中的应用

来源:  浙江省象山丹城中学 石路 字体:[ ]  2007-03-24

关键词:灭火机器人

摘要:在中小学教学机器人设计中,白线检测是制作灭火机器人需要解决的一个基础问题,本文论述了队列这一数据结构在白线检测中的应用。
关键词:机器人 灭火 队列 白线检测
队列是一种特殊的数据结构,他只能在队头出队。如下图,我们引入一种特殊的队。
——队头
——队尾
队头指针总是指向0,所以不需要队头变量。队尾指针总是指向最后一个队员的际位置。队尾指针指向0表示队列是空的。它具有下列基本操作:
long queue [100];//队列数组
int queue_rear//队尾指针
清空队
queue_rear=0;
入队
queue_rear++;
queue[queue_rear]=mseconds();
求队长
return(queue_rear);
下面介绍一下他在白线检测中的应用。
如上图,当机器人路过白线时,他会连续检测到白色,我们把它入队,当队列只有1个队员时,他可能时一个受到污染的白点,当队列长度比较短时,他可能是门口火灭火圈,当队列长度比较长时,他可能是起点(终点)。当机器人路过黑色地面时,我们把队列清空,我们使用1个地面检测传感器来实现白线检测,假设接模拟3口。用1个火焰检测传感器来区分门口线河灭火圈,假设接模拟4口。这里使用的是纳英特机器人,参考算法如下:
int bs=50;//表示白色的灰度值
int hs=160;//表示黑色的灰度值
int I;
void main()
{
queue_rear=0;
while(1)
{
migong_left();//走左手法则
I=test_white()
//然后你要根据I的值做不同的选择
}
}
int test_white()
{
if (queue_rear>=98)// 防止队满.
Queue_rear=97;
If (analog(3) {
if (queue_rear==0)//空队时的入队.
{queue_rear++;//入队.
Queue[queue_rear]=mseconds()//记下检测到白色的时间.
Return(1);}
//表示正在白色地面上行走,但暂时不知道是在家还是在门口。
Else//队非空时的入队.
{
if (mseconds()-queue[queue_rear]>10L)
//每10毫秒作为1个时间片,参数请根据你的机器人速度修改。
{queue_rear++;//入队
queue[queue_rear]=mseconds();}//记下检测到白色的时间。
If (queue_rear>=10)//10这个参数请根据你的机器人速度修改。
Return(4);//表示路过家
Else if (queue_rear>=3)//3这个参数请根据你的机器人速度修改。
//表示路过门口或灭火圈,要用火焰值来进一步区分。
{ if (analog(4)<30)//火焰强。30这个参数请修改。
Return (3);//路过灭火圈。
Else
Return (2) ; // 路过门口。
}
else if (queue_rear>=1)
return(1);
//表示正在白色地面上行走,但暂时不知道是在家还是在门口。
}
if (analog(3)>hs)//位于黑色地面时清空队。
{
if (queue_rear>=10)//10这个参数请根据你的机器人速度修改。
{queue_rear=0;//清空队列以便下一次检测。
Return (4);//表示路过家。
}
else if (queue_rear>=3)//3 这个参数请根据你的机器人速度修改。
{//路过门口或灭火圈,要用火焰值来进一步区分。
Queue_rear=0; //清空队列以便下一次检测。
If (analog(4)<30)
// 火焰强。30这个参数请根据你的机器人的实际进行修改。
return (3) ; // 路过灭火圈。
Else
Return(2) ; // 路过门口。
}
else
{
queue_rear=0 ; //清空队列,以便下一次检测。
Return (-1) ; //表示在黑色地面上行走。
}
return (0) ; // 表示在灰色地面上行走。
}

录入:master 点击:

[发表评论] [打印文章] [关闭窗口]  

原创文章属本站所有,转载请注明来源:Robotain.com  
相关文章

 网友评论(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

发表评论 昵称:

  

  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
最新推荐
热门文章
论坛精华
网站简介设为首页 加入收藏在线留言友情链接联系我们 - 广告服务 - 版权申明

Copyright © Robotain.com  all rights reserved  浙ICP备07003355号

版权所有 机器与智能网