智能寻迹机器人一点与研究.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(关于红外对管_实时控制方案非路径记忆算法) 内容有: 1. 检测:包括小车的方向定位,速度大小检测,弯道检测. 2. 寻迹算法:有直道,普通弯道,S 型弯道,上下坡,垂直交叉道 3. 控制算法:速度考虑使用 PID 或者模糊算法,方向拟使用模糊控制算法. 4. 机械设计 5. 调试工具:无线通信模块 nRF905 模块,PC 监控平台软件. 对智能车的有效控制首先要从控制的第一个环节,也就是检测出发,没有正确有效信息的输 入,要做出合理的决策是不可能的。对于智能车控制,需要检测的主要性息有赛道(即路面定 位),以及智能车的即时速度。 速度检测(光电码盘) 方法一:脉冲计数法 设轮子直径 5CM,光电码盘条纹数 10 对,设 0.1 秒采样一次 当实际速度为 0.5M/S 时,能采样的脉冲为 3(实际上应为 3.183)个,程序计算出的速度 0.4712M/S. 误差为 5.76% 。 同理,速度为 1~2M/S 误差都为 5.76% 。 只有当速度达到 15M/S 时,误差才能降到 0.5%左右。(事实上智能车不可能达到的) 显然这种测速方法不能满足实时控制的要求。 参考程序: interrupt void acc_A_overflow_isr(void){ //脉冲计数器 A 溢出中断, PAFLG=0X20; Aoverflow++; } interrupt void timer1_isr(void) //每 0.1S 进行一次速度信息的采集 { TC0=TC0+18750; //下一次中断的时间设置 TFLG1=0x01; //清中断标志符 current=PACN3*256+PACN2; Encoder_Count =current-last+(Aoverflow-Alastof)*65536;//注意 Aoverflow 仍可能溢出.; last= current; Alastof= Aoverflow; PID_Cal(); //计算并调整速度 PWMDTY45=PWM_Set; } 方法二:周期法 利用单片机增强型的定时计数器,捕捉单个脉冲宽度,再用以下公式求解。 根据计算,当实际速度为 0.2~2M/S 时,则 78MS~8MS 中断一次,如果每 50MS 进行一次速 度调整,每次速度调整都能获得更新后的最新速度值。 计算方法: π*R V 其中 M 为条纹对数.为了减轻单片机的计算量,将常数代入,并用总线周期 T 数 M *t 代替实际时间 t,公式可以简化为: V=C/T.(CM/S) 又为了方便进行八位数据处理及避免浮点运算,对求得的 V 进行量化: divV=V/200*255 (设置最大速度为 200cm/s,此时对应该的”速度”为 255.) 255 Velocity=C’*(1/T) (C’=C* ) 200 实现脉冲宽度测量的中断服务程序程序: //这里中断 10 次,取平均值,实际应用中可不必用 interrupt void TCO_ISR() {static unsigned long int width=0; int j; unsigned short sum=0; TFLG1=0X01; current=TCNT; width=(mainover-lastmainover)*65536+current-last; last=current; speedtable[i]=width; i++; lastmainover=mainover; if(i==10) { for(j=0;j

文档评论(0)

sjatkmvor + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档