1. 智能车竞赛中的圆环处理方案
圆环是智能车竞赛中最具挑战性的赛道元素之一,处理不当很容易导致车辆失控或偏离赛道。在实际比赛中,我们通常采用两种主流方案:基于传统扫线的补线方法和电磁感应结合摄像头辅助判断的方法。
1.1 基于传统扫线的补线方法
以右圆环为例,完整的处理流程可以分为8个关键步骤。首先是找到近端右拐点,这个点的特征是右边界出现明显拐点,同时左边界不丢线。找到这个点后,我们会设置一个标志位进入圆环处理状态。接下来需要定位右边中间拐点,这个点通常位于圆环的中间位置,通过这两个点可以确定补线的起始位置。
在实际编程实现中,我们会使用状态机来管理整个过程。初始状态下,系统会持续检测是否满足进入圆环的条件。一旦检测到符合条件的拐点,就会转入"找拐点定位"状态。这个状态下,程序会不断更新近端拐点和中间拐点的坐标位置。当两个拐点都成功定位后,系统会进入"拉线"状态,开始绘制虚拟的引导线。
拉线过程中需要特别注意边界条件。当右边界底部开始丢线时,表示车辆已经接近圆环入口,这时需要结束拉线状态,转入"找远拐点"阶段。远拐点的定位是关键,它决定了车辆进入圆环的角度和路径。找到远拐点后,系统会进入"入环补线"状态,这时车辆开始实际进入圆环区域。
void Right_Roll_Judge(void) {
if(XK.roll_flag==0 && XK.roll_situation==0) { // 初始状态
if((Right_NearInflection_Judge(40,30)==1) && (Left_Road_Lose(10,60)==1)) {
XK.roll_situation=1; // 进入找拐点状态
XK.roll_flag=1;
}
}
// 其他状态处理...
}
1.2 电磁感应与摄像头融合方案
纯视觉方案在某些光照条件下可能不够稳定,因此我们开发了电磁感应为主、摄像
1712



被折叠的 条评论
为什么被折叠?



