智能车转角与速度控制算法1
检测黑线中点Center:设黑、白点两个计数数组black、white,从第一个白点开始,检测到一个白点,白点计数器就加1,检测到第一个黑点,黑点计数器就加1,并且白点计数器停止,以此类推扫描每一行;黑线中点=白点个数+(黑点的个数/2)2
判断弯直道:找出黑线的平均位置avg(以每10行或者20…作为参照,行数待定)算出相对位移之和(每一行黑线中点与黑线平均位置距离的绝对值之和)然后用Curve的大小来确定是否弯直道(Curve的阀值待定)
控制速度:根据弯度的大小控制速度大小
//*****************************弯度检测函数*******************************//Curvecontrol(){intblack[N];//黑点计数器intwhite[N];//白点计数器intcenter[N];//黑线中点位置intavg;//黑线中点平均位置intcurve;//N行的相对位移之和if(白点)++white[N];//判断黑白点的个数else++black[N];center[N]=white[N]+black[N]/2;//每一行的黑线中点avg=(center[1]+center[2]+
+center[N])/N;//求出黑线中点的平均位置curve=(|avg-center[1]|+|avg-center[2]|+
+|avg-center[N]|)/N//求出N行的相对位移之和returncurve;//返回弯度大小}//*****************************舵舱转角控制函数******************************////****黑线轨迹会指引小车的行驶方向,所以向左还是向右是由黑线决定的
********////****设0为小