ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

华北赛区河北建筑工程学院疯狂电路申请技术创新特邀

华北赛区河北建筑工程学院疯狂电路申请技术创新特邀 01【申请技术创新特邀】一、技术创新点1、1. 元素转向的参考线接管 闭环退出状态机含金量最高常规做法直角/十字多靠图像判断后开环打一个固定角转多少全凭经验易过转/不足。我的做法识别到元素后锁定目标转角yaw_target ±75°用参考线接管中线引导转向左转贴左、右转贴右、直行锁中并以陀螺仪转角/行驶里程闭环判据退出——转够才交还主链路。效果转向角度精确可控、不依赖经验值直角处不失控且软缓冲防误切。2、2. 双 PD 复合控制误差平方加权增强常规做法单一固定增益 PID大偏差小偏差一个参数易顾此失彼。我的做法两组 PD 并联——主 PD 图像 P 角速度 D 抑制横摆辅助 PD 以作 P偏差越大增益越强、偏差小时细调。效果大偏差快速纠偏、小偏差不超调直道稳、弯道跟手。3、 分块大津法三区自适应二值化常规做法全局 Otsu 或固定阈值远处光照/阴影变化就翻车。我的做法远/中/近三区各自求阈值区间 2 行线性过渡阈值每 20 帧更新Otsu 全图遍历贵、下限限幅且按键可调。效果远近光照自适应省算力实时不掉帧。4、 远近三角权重合成单一转向输入常规做法直接取近处中线或整条中线平均易抖或前瞻不足。我的做法把找边线→中线→远近加权压缩成一个数大、远区提供前瞻。效果输入量干净单一直道稳、弯道跟手控制环实现简单。5、5. 三链路调试工具链 FFT 验证滤波常规做法改码-编译-下载调参分钟级滤波系数凭感觉。作为转向环输入中区权重最我的做法无线串口JustFloat WiFi 图传 IPS 按键调参三链路并行车上秒级调参并用VOFA FFT 频谱实测验证一阶低通截止频率理论 fc≈8Hz 与实测对照。效果迭代速度数量级提升滤波参数从拍脑袋变成有依据。视觉识别与循迹循迹控制量来源于找边线→求中线→加权→转向输入的完整链路。选用灰度摄像头结合赛道视野与处理需求,裁剪图像94×60、选定帧率100fps与曝光时间/增益兼顾成像质量与实时性采用分块大津法按远/中/近三区自适应求阈值完成二值化稳定提取赛道边线每帧扫线求取中线将中线与图像中心的偏差按远近差异化权重加权平均为单一误差量 作为转向环输入中区权重最大、兼顾远区前瞻实现直道稳、弯道跟手。针对直角、十字路口等特殊元素引入 NONE/DETECTED/TURNING 元素状态机普通循迹时状态机保持空闲、走中线加权主链路识别到元素后判定转向方向并锁定目标转角转入转向态用参考线接管中线左转贴左、右转贴右、直行锁中仍沿用同一套加权与转向环逻辑最终以陀螺仪转角/行驶里程闭环判据确认转向到位后交还主链路从而规避直角处扫线中线失真导致的转向失控并以临界帧延迟判定的软缓冲避免误切换。传感器的选择以及算法。二、搜线代码创新部分#define CONT_REF 15ustatic uint8 full_search_none0;/**全行遍历搜边search_state1左→右0右→左未找到返回默认 col*/static uint8 search_FullLine(uint8 search_state,const uint8*row){uint8 col;int16 col_i;uint8 cont_times0;if(search_stateSEARCH_LEFTLINE){col0u;for(col_i0;col_i1(int16)COL;col_i){if(row[col_i]BLACKrow[col_i1]WHITE){full_search_none0;return(uint8)col_i;}WHITE)elseif(col_iCONT_ZONErow[col_i]WHITErow[col_i1]{cont_times;if(cont_timesCONT_REF){full_search_none0;returncol;}}}}elseif(search_stateSEARCH_RIGHTLINE){col(uint8)(COL-1);if(full_search_none1){returncol;}for(col_i(int16)COL-1;col_i2;col_i--){if(row[col_i]BLACKrow[col_i-1]WHITE){return(uint8)col_i;}elseif(col_i1(int16)COL-CONT_ZONErow[col_i]WHITErow[col_i-1]WHITE){cont_times;if(cont_timesCONT_REF){break;}}}}full_search_none1;returncol;}static void search_FullLine_row(uint8*l,uint8*r,const uint8*row){*lsearch_FullLine(SEARCH_LEFTLINE,row);*rsearch_FullLine(SEARCH_RIGHTLINE,row);}/**中线的种子继承*/static uint8 search_from_mid(uint8 search_state,const uint8*row,uint8 mid){int16 col_i;uint8 col;uint8 col_u;if(search_stateSEARCH_LEFTLINE){col0u;for(col_i(int16)mid;col_i2;col_i--){if(row[col_i-1]BLACKrow[col_i]WHITE){return(uint8)(col_i-1);}}}elseif(search_stateSEARCH_RIGHTLINE){col(uint8)(COL-1);for(col_umid;col_u2COL;col_u){if(row[col_u]WHITErow[col_u1]BLACK){return(uint8)(col_u1);}}}returncol;}static void search_from_mid_row(uint8*l,uint8*r,const uint8*row,uint8 mid){*lsearch_from_mid(SEARCH_LEFTLINE,row,mid);*rsearch_from_mid(SEARCH_RIGHTLINE,row,mid);}/***brief 选择性种子生长法扫线*Success:基于逐行遍历的普适性结合种子生长法的窗口思想与窄赛道连续的特点*author;任某人*/void search_line_pro(void){int16 row;uint8 mid_prev;uint8 full_scan_next0u;memset(l_border,0,sizeof(l_border));memset(r_border,COL-1,sizeof(r_border));memset(mid_line,COL/2,sizeof(mid_line));row(int16)ROW-1;search_FullLine_row(l_border[row],r_border[row],bin_image[row]);mid_line[row](uint8)((l_border[row]r_border[row])/2);for(row(int16)ROW-2;row0;row--){if(full_scan_next){search_FullLine_row(l_border[row],r_border[row],bin_image[row]);full_scan_next0u;}else{mid_prevmid_line[row1];if(mid_prevCOL){mid_prev(uint8)(COL-1);}if(bin_image[row][mid_prev]BLACK){bin_image[row]);}search_FullLine_row(l_border[row],r_border[row],full_scan_next1u;else{search_from_mid_row(l_border[row],r_border[row],bin_image[row],mid_prev);}}mid_line[row](uint8)((l_border[row]r_border[row])/2);}}
返回列表