ROBOCUP小型组足球机器人-通讯和底层决策文档

ROBOCUP小型组足球机器人-通讯和底层决策文档

ID:46883112

大小:75.50 KB

页数:9页

时间:2019-11-28

ROBOCUP小型组足球机器人-通讯和底层决策文档_第1页
ROBOCUP小型组足球机器人-通讯和底层决策文档_第2页
ROBOCUP小型组足球机器人-通讯和底层决策文档_第3页
ROBOCUP小型组足球机器人-通讯和底层决策文档_第4页
ROBOCUP小型组足球机器人-通讯和底层决策文档_第5页
资源描述:

《ROBOCUP小型组足球机器人-通讯和底层决策文档》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、ROBOCUP小型组足球机器人通讯和底层决策文档根据Robocup系统的四个子系统的分类,串口通讯的任务是将决策系统确定的每个机器人的轮速发送出去.考虑到SendCommand()是每个机器人的在BasicActO1!1调川的函数,所以把通讯的相关函数放在Player类中,m_hComm存在于程序运行的始终,并与实例无关,设为静态变量,InitComm()需操作m_hComm,故设为静态函数,其它与实例无关的函数也定义成静态函数。//inPlaycr.hsUiticHANDLEm_hComm;voidSendCommand(

2、);staticintInitComm(intComm_num,intbaud);staticBOOLWriteABuffer(char*lpBuf,DWORDdwToWrite);staticvoidScndCommandofAll();staticvoidSendSingleCommand(constunsignedcharcommand);SendCommandO^每个机器人单独调用的函数,作用是将设置到该机器人(g.MyTeamfi])中去的速度m_vL,m_vR通过串口发送岀去。其他各函数的功能及有关说明见函数屮的

3、注释。//inPlayer.cpp//功能:初始化串口//参数:Comm串口号,1或2;baud::波特率//返回:若成功返回1,失败则返回一1intPlayer::InitComm(intComm_num,intbaud){CStringstrCommNum;if(l==Comm_num)strCommNum="COMln;elsestrCommNum="COM2";m_hComm=CreateFile(strCommNum,GENERIC_READIGENERIC_WRITE,0,0,OPEN_EXISTING,FILE

4、_FLAG_OVERLAPPED,0);if(m_hComm==INVALID_HANDLE_VALUE)//){AfxMessageBox(H串口初始化失败“);return-1;}//erroropeningport;abort〃设置DCB结构DCBdeb;FillMemory(&dcb,sizeof(dcb),0);dcb.DCBlength=sizeof(dcb);CStringstr;CStringstrl;strl.Format("%d",baud);str=strl+”,BOOLb=BuildCommDCB(s

5、tr,&deb);//将参数写进debif(!b)〃若失败{AfxMcssagcBox("buildcommdcbfailed!");return-1;)if(!SctCommStatc(m_hComm,&deb))//根据deb设置串口状态,若火败{AfxMessageBox(H串口初始化失败!“);return・1;}return1;〃功能:先设定命令字command,再用SendSingleCommand(command)将该命令字发送公〃命令为1个字节:最高三位小车编号001-100为1(g_MyTeam[0])到4

6、(g_MyTeam[3])号,000为5号第四位为左右轮标识:0:左,1:右轮第五位为速度方向:0:向前;1:向后最低三位为速度大小:000-111从小到人八档速度//参数:无〃返回:无voidPlayer::SendCommand()//W单个小年的速度发送111去{unsignedcharcommand;//—个字节unsignedchartemp;//暂存command〃先发左轮再发右轮for(unsignedcharj=O;j<=l;j++)//j=O为左轮,j=l为右轮{〃设定小车编号if(this->Get_Nu

7、m()==4)//为5号时发送00()temp=();elsetemp=this->Get_Num()+l;tempvv=5;〃左移5位得到高三位,小车编号〃设定左右轮标识unsignedcharcharv;charv=(unsignedchar)j«4;temp=tempIcharv;//第四位左右伦//设定速度方向unsignedcharmask;intt=l;if(j=O){mask=((*this).Gct_vL()<0?(t«3):0);}elsell=={mask=((*this).Get_vR()<0?(t

8、«3):0);}temp=tempImask;//第五位速度方向,速度向后为1,向前为0〃设定速度人小intm_noor=();//()-7if(j==O)//分别设置速度,最低三位{m_floor=(int)floor((fabs((*this).Get_vL())/(MAX_VELOC

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

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

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