当前位置:首页 > 资源下载 > 作品交流 > 寻迹程序的不对称算法

寻迹程序的不对称算法

发表日期:2016-10-31 20:58:37文章编辑:浏览次数: 标签:    

 

下面的程序段一是简单的寻迹程序:

【程序段一】

void repeat()

{

   if (gnd.getV(5)==0 motor(40,40);

   if (gnd.getV(2)==0 motor(30,40);

   if (gnd.getV(3)==0 motor(40,30); //此处向左向右调整的幅度是相同

   delay(100);

}

   上述算法用于走直线或弧度较小的曲线轨迹是没有问题的。但对于弧度较大的轨迹,机器人常常会冲出弯道。如下图所示的轨迹,我们用下面的程序段二来适用。

寻迹程序的不对称算法
 

【程序段二】

void repeat()

{

   if (gnd.getV(5)==0 motor(40,40);

   if (gnd.getV(2)==0 motor(30,40);

   if (gnd.getV(3)==0 motor(40,20);

   delay(100);

}

   上述程序的显著特点是,机器人向右调整时,调整幅度较大,而向左调整时幅度较小。所以称其为不对称法。如果机器人从上图的相反方向运行寻迹,则将调整方式兑换过来。

寻迹程序的不对称算法

     可是上述算法有一个缺陷,那就是机器人始终运动在向右偏转的道路上。如果是下图这样的轨迹,那冲出道路的概率会更高。

无论向哪个方向运动,机器人都面临向左或向右偏移运动。这时我们要智能地判断机器人所面临道路的情况。此时,我们借用一个状态变量来解决问题。

【程序段三】

int a;

void repeat()

{

   if (gnd.getV(5)==0) {motor(40,40);a=0}  //中间眼睛看到黑线时的情况没有改变

   if (gnd.getV(2)==0)                   //两边的眼睛看到黑线分两种情况对待

   {

      if (a==1) motor(20,40);  //连续左偏,则加大左偏力度  

      else

      {

         motor(30,40);a=1;   //非连续左偏,则做较小偏转

      }  

   }

   if (gnd.getV(3)==0)

   {

      if (a==2) motor(40,20);

      else

      {

         motor(40,30);a=2;

      }  

   }

}

    这个算法,用变量a记下上一个循环周期内机器人是向左(a=1)还是向右偏转的。如果本次偏转的方向和上一次的一致,说明向该方向上偏转的力度不够,则增加向这个方向上偏转的力度。如果本次偏转与上次不一致,无外乎是对上次偏转过度的反方向补偿,或刚有一定偏离轨迹的调整,则进行较小幅度的调整即可。

    注意,上述程序中的偏转量只是理论上的,只是相对大小的说明。实践中要根据实际情况修改它们的值。而且上述算法也默认了机器人左右两轮子的速度、力量都是完全一致的。但大多数情况下,由于电子元件或马达的个体差异,很多情况下我们都应该注意参数的不对称性。

    例如用函数motor(40,40)来走直线,结果,我们发现机器人总是向左偏转,说明机器人左轮速度相对右轮有点慢,我们就可以向前运动的指令写成motor(40,38)来抵销硬件上的差异。

 

如没特殊注明,文章均为亮宁电子原创,转载请注明出处
相关新闻

机器人比赛后的反思(多位)

蒋天佑同学赛后总结我在去年国赛中获得全国一等奖的基础上,今年省赛却发挥失利,只获得省赛二等奖,失误很严重,特究其原因有以下几点:一.准备不充分1. 与搭档的磨合时间太短,两人配...

日期:2018-06-23

机器人比赛后的反思(杨丁锜)

【编者按】杨丁奇同学一直学习亮宁机器人,但后改用足球机器人参赛,由于硬件准备时间不足,发挥失常。但自己事后总结认真、到位。这就是学习真正意义上的收获。这里的文字是学生...

日期:2018-06-19

人生之最

作者 曾经的机器人特色班学员《吉尼斯世界纪录大全》记录着全世界之最,最长的、最大的、最难的……,可以说是无奇不有。中国各地都有地方志,记录着每一个地方之...

日期:2018-06-16

信息技术理论课教学设计案例

《信息的甄别》教学设计课 题:信息的甄别教 材:高中一年级信息技术(湖南科技出版社)主要内容:信息甄别的重要性与基本方法教学目标: 1、理解信息甄别的重要性2、理解信...

日期:2017-11-08

感恩老师与学友

【编者的话】好一篇心灵的表白!即敢于面对自己之不足,又总结发现自己的进步;既有对师友的感恩,也有对自身的剖析。文章虽短,情真意切。谷昊昕同学,在上学期的机器人学习中表现并不...

日期:2017-09-01

机器人比赛的失误与反思(图文)

【编者按】曾子睿同学在学校是班干部、学生会干部,平时学习刻苦努力、文化成绩优异。这次参加机器人比赛,搭档也是一位了不起的女性选手。但在比赛过程中发挥失常,虽然也是国...

日期:2017-08-24