飞思卡尔智能车大赛杭州电子科技大学杭电二队(14)
发布时间:2021-06-11
发布时间:2021-06-11
飞思卡尔智能车大赛技术报告
板之间的色差较大,直接反映在图像数据中就是大于一个黑白色阀值。通过实验可以基本上确定该阀值的大小,由于现场光线变化的影响会有略微的变化,但是该阀值基本上介于 22-30 之间。可以通过判断相邻数据点的差是否大于该阀值,作为边沿提取算法的依据和主要参数。
该算法的主要过程为:首先从最左端的第一个有效数据点(12)开始依次向右进行阀值判断:由于实际中黑白赛道边沿可能会有模糊偏差,导致阀值并不是简单的介于相邻的两个点之间,很可能要相隔两个点。因此, 第 line 为原点,判断和 line+3 的差是否大于阀值,如果是则将 line+3 记为 i,从 i 开始判断从 i+3到该行最末一个点之间的差值是否大于阀值,如果大于则将 line+i/2+2 的坐标赋值给黑线中心位置。利用单行黑线提取算法所得到的黑线提取效果不仅可靠,而且实时性好,在失去黑线目标以后能够记住是从左侧还是右侧超出视野,从而控制舵机转向让赛车回到正常赛道。
根据CCD的数据采集,轨道相对于车体前端传感器组的位置由变量app_val表示,为方便理解,每两个相邻列的距离设定为18,因此轨道位置信息(app_val)的取值范围为0到700。也就是说,探头组返回的数据将是一个数组,经过计算后可以定量地表示轨道的位置,而不是局限于列的个数,如图4.4所示。由于系统本身存在的问题(如红外发射方向分布不均匀)等,图中轨道位置信息(app_val)的数值并不能确切地表达出轨道相对于车体的位置,下文会对此问题的处理方法作描述。
图4.4 轨道信息app_val数值设定
CCD传感器接收端返回的模拟信号经过MC9S12DG128内置的AD转换器处理之后,得到的数据数值在20~650范围内。如果下方为白色底板,返回的数值较大。如果下方为黑色轨迹,则返回的数值较小。其数值分布如图4.5所示,由于传感器组本身存在的误差以及外部光线的干扰,返回的数据会出现随机误差,但误差基本保持在20以内,不会影响系统的分析与计算。
取得探头返回的数据后,还需要一个算法将得到的数据转换成一个可以定性表示轨道位置的数值。通过几何的方法分析数据可以得到一个三角形算法,能够近似地计算得到轨道位置信息。计算方法如下:对于如图4.5所示的一组数据,首先对数据进行一次循环访问,找到数