智能车制作

标题: 第十一届飞思卡尔光电组第一发,提速遇到问题望指点 [打印本页]

作者: 斯特凡    时间: 2016-3-19 22:34
标题: 第十一届飞思卡尔光电组第一发,提速遇到问题望指点
第十一届飞思卡尔光电组第一发,提速遇到问题望指点

作者: 斯特凡    时间: 2016-3-19 22:35
http://v.youku.com/v_show/id_XMTUwNTMxMDA3Ng==.html
开环,还没有闭环,希望速度达到2.5M以上的光电车友指点!!!
作者: 斯特凡    时间: 2016-3-19 22:35
回复连接还需要审核,真是醉了
作者: 斯特凡    时间: 2016-3-19 22:36
第十一届飞卡光电
作者: 斯特凡    时间: 2016-3-19 22:40
链接还在审核中,可以到优酷里搜索‘第十一届飞思卡尔第一发’
作者: 斯特凡    时间: 2016-3-19 22:59
用的动态的KP
作者: 斯特凡    时间: 2016-3-19 23:01
就是一个二次函数的拟合,用Matlab
作者: 斯特凡    时间: 2016-3-19 23:01
X^2*a+X*b+c
作者: 斯特凡    时间: 2016-3-19 23:04
这是拟合后舵机的值
作者: 斯特凡    时间: 2016-3-19 23:08
选择的是寻找跳变沿的方法

  1. for( i=Center[0]; i>6; i--)   //提取左边线
  2.     {
  3.         if( data[i]>(data[i-5]+45) && data[i-1]>(data[i-6]+45))
  4.         {
  5.          
  6.                left=i-5;
  7.                break;
  8.         }
  9.          
  10.     }
  11.    
  12.    
  13.     for( i=Center[0]; i<121; i++)
  14.     {
  15.           if( data[i]>(data[i+5]+45)&& data[i+1]>(data[i+6]+45))  
  16.           {
  17.                right=i+5;
  18.                break;
  19.           }
  20.     }
复制代码

作者: 斯特凡    时间: 2016-3-19 23:10
用过大津法求取阈值,准备二值化,后来发现赛场光线不均匀也就放弃了。
  1. //调用接口threshold=OTSU_threshold((uint8 *)pixel,128);
  2. #define Gourd 256
  3. uint8 OTSU_threshold(uint8 *pic,uint16 num)
  4. {
  5.    uint16 i=0;
  6.    uint16 Histogram[Gourd];
  7.    for (i=0;i<Gourd;i++)Histogram[i]=0;//数组清零

  8.    for (i=0;i<num;i++)
  9.    {
  10.        Histogram[(int)pic[i]*Gourd/256]++;
  11.    }

  12.   float pt[Gourd],w[Gourd],u[Gourd],o[Gourd],Ut;

  13.   pt[0]=(float)Histogram[0]/num;
  14.   w[0]=pt[0];
  15.   u[0]=w[0];

  16.   for(i=1;i<Gourd;i++)
  17.   {
  18.     pt[i]=(float)Histogram[i]/num;
  19.     w[i]=w[i-1]+pt[i];
  20.     u[i]=u[i-1]+i*pt[i];
  21.   };
  22.   Ut=u[Gourd-1];

  23.   for(i=0;i<Gourd;i++)
  24.   {
  25.     o[i]=(1-pt[i])*(u[i]*u[i]/w[i]+(u[i]-Ut)*(u[i]-Ut)/(1-w[i]));
  26.   };

  27.   int maxi=0;
  28.   float maxo=0;

  29.   for(i=0;i<Gourd;i++)
  30.   {
  31.     if(o[i]!=0x7FC0000)
  32.     if(o[i]>maxo){maxo=o[i];maxi=i;}

  33.   }
  34.   return maxi*256/Gourd;
  35. }
复制代码

作者: 斯特凡    时间: 2016-3-19 23:14
补线算法是逐飞科技的技术推荐的,在此非常感谢逐飞科技智能车基地。
作者: 教主277    时间: 2016-3-20 00:01
666
作者: Sτrīvé___    时间: 2016-3-20 13:54
求补线算法:):):)
作者: Sτrīvé___    时间: 2016-3-20 13:55
怎样拟合舵机????
作者: 斯特凡    时间: 2016-3-20 16:21
没人自己顶
作者: 斯特凡    时间: 2016-3-20 16:50
Sτrīvé___ 发表于 2016-3-20 13:55
怎样拟合舵机????

Matlab

作者: 斯特凡    时间: 2016-3-20 16:51
Sτrīvé___ 发表于 2016-3-20 13:54
求补线算法

这个暂时不能开源呀

作者: 斯特凡    时间: 2016-3-20 16:54

作者: fbhsy    时间: 2016-3-22 16:04
斯特凡 发表于 2016-3-19 23:14
补线算法是逐飞科技的技术推荐的,在此非常感谢逐飞科技智能车基地。

厉害厉害,下一步可能需要闭环,需要改良整车结构了,搜线,舵机控制可能都需要再优化一下了,看着不够灵敏,假以时日,必能上另一台阶了,加油加油!


作者: 斯特凡    时间: 2016-3-22 22:45
fbhsy 发表于 2016-3-22 16:04
厉害厉害,下一步可能需要闭环,需要改良整车结构了,搜线,舵机控制可能都需要再优化一下了,看着不够灵 ...

非常感谢!!!!!!!

作者: 抢强枪    时间: 2016-4-2 00:14
请问你的中线稳定吗?  我采回来的中线一直抖动
作者: 星辰永不落    时间: 2016-4-15 20:36
你的舵机用的PD  还是只用的了P   我是新手开环一提速就懵逼了
作者: 2560573473    时间: 2016-4-21 16:29
动态阈值+跳变沿大法好
作者: 施主请留步    时间: 2016-4-21 21:38
斯特凡 发表于 2016-3-19 23:01
X^2*a+X*b+c

这个我用二次拟合怎么abc很容易就为0 了,放大1000倍还是会出现0,弄得我头大,可以指导一下吗





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2