免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > 基于c语言的电脑机器人足球进攻程序设计(2)

基于c语言的电脑机器人足球进攻程序设计(2)

时间:2012-05-12 22:24来源:未知 整理:寂涯网络 点击:


球;如果没有找到球,就继续处于静止状态。
void main()
{
//初始化函数
XlRCU_1nit();
ifIgetDat8《89)==0)
{
setData(89,1):
setData(1,10):
setData(2.1 00):
)
g_speed=getData(2);
if(g——speed>100)g——speed=100;
setMotor(1 00.1 OO):
wait(O.1):
while(1)
{
g_degree=getComPB0;//读取指南针
g_Q_Max=geLQ_CPI(9);//前复眼最大值
g—H—Max=geLH—CPI(9);//后复眼最大值
GetAIIAl0;//读取各个模拟传感器 。
if(g—Q—Max>g—H—Max&&g_Q Max>G—BALU
机器人前方有球
{
g_ftag=0;
g_Q_Maxlndex=get_Q_CPI(8);
findBall—Q《):
qian..CD0;
}
else
l ’机器人后方有球
g_flag=l:
g—H—Maxlndex=get_H—CPI(8);
findBall—H0;
hou_CD0;
l
'
}
关于追球的处理
不管是前追球,还是后追球。机器人在很多时候不应该直
着追球,比如球在球场两侧时,就不能直着追球,要带点弧度
朝向球门追球,这样机器人在追球时要判断所处位置:离球场
左侧比较近或紧挨左侧场边、离球场左侧稍远但还没有到中间、
离球场右侧比较近或紧挨右侧场边、离球场右侧稍远但还没有
到中间,程序中就这4种情况分别以不同的速度和弧度追球。
,,前追球
void findBall Q()
{
if(g_fireQ>G..NEER&&g.—Q_Maxlndex>=3&&g_Q_
Maxlndex<=5)
{,/追球时,球离机器比较近时,各个眼睛看到球后进行的
//处理
if((g—degree<22119_degree>338))
{∥特球进门
if(g_ir_zuo>g—ir_you)
,/机器入带球在球场的左侧
{
if(g—ir_zuo>80‘1 6)setMotor(1 00.70):
,,离球场左侧比较近或紧挨左侧场边
else if(g_ir_zuo>50’1 6l setMotor
(100,80)://离球场左侧稍远f目还没有到中间
else setMotor(1 00,1 00):
,,中间
)
else
{//机器人带球在球场的右侧
if(g—ir_.you>80+1 6) setMotor
170.1 00);//离球场右侧比较近或紧挨右侧场边
else if(g—ir_you>50+1 6) setMotor
(80,100)://离球场右侧稍远但还没有到中间
else setMotor(1 00,1 OO)://中间
}
return;
l
l
else.f((g_degree>90&&g_degree<1 80)lI(g_degree<
270&&g_degree>1 80))
{胖0断符合乌龙球的条件时,就进行乌龙球处理。
T1=getSysTime0;
qianwulon90;
return;
}
,,追球时,球离机器比较远时,各个眼睛看到球后进行的
,/处理
if(g—Q_Maxlndex==7)setMotor(40,-40);
else if(g一0LMaxlndex==1)setMotor(-40,40):
else if(g—Q_Maxlndex==6)setMotor(40,-20);
else if(g一0LMaxlndex==2)setMotor(-20,40):
else
{
if(g_fireQ>G—NEER)setMotor(1 00,1 00):
else if《g_Q—Maxlndex==5)setMotor(1 00,50):
else if(g—Q_Maxlndex==3)setMotor(50,1 00);
else
{
int var3=get_Q—CPI(3);
int var5=geLQ_CPI(5);
if(var3>var5) setMotor(90,1 00):
else ifIvar3<varS) setMotor(1 00,90):
else setMotor(1 00.1 00):
}
}
)
5关于乌龙球的处理
乌龙球时要对两个扇形区域进行判断.分别是大于等于
90度且小于270度之间。且机器人和球在这两个区域都是对
着自己的球门。
(1)取得指南针方位,判断方位g_degree>=90&&g._degree<
130,如果条件成立,然后判断球所处方位g_Q—Maxlndex<5或
艮Q—Maxlndex>=5,然后进行各复眼马达速度处理,调整机器
人位置。
(2)判断方位g_degree<270&&g_.degree>230,如果条件成
立,然后判断所处方位咖一Maxlndex>3或g_Q—Maxlndex<=3, 然后进行备复眼马达速度处理.调整机器人位置。
(3)判断方位g_degree<130&&g_degree<230。如果条件成
立。说明机器人和球及球门的相对位置是在一条育线上。这种
状态比较危险,需要判断机器人和球是在球场偏左侧、偏右侧
或偏中问,然后进行各复眼马达速度处理。调整机器人位置。
注:前后乌龙球的处理思想基本上是一致的。

本页地址 http://www.jybase.net/biancheng/20120512921.html

百度搜索更多

谷歌搜索更多

顶一下
(1)
33.3%
踩一下
(2)
66.7%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com