思路讲解

我采用的电感摆放方式是这样的,电感均采用横电感的摆放方式。

流程图

示意图+讲解

当车子到达预环岛标志位之后变量就会放置1,这个时候开始编码器积分,当积到阈值之后就说明小车已经行驶到了可以入环的位置(该阈值在自己家实验室可以测试出来的),然后开始第一次角度积分,在这个积分角度里面,车子一直都是打死角的,保证车子能稳定入环,但是这个角度不能太大,当小车稳定入环,陀螺仪积分数值就超过阈值(goto_cirle_gyro),此时开始切换到后面2个横电感电感循迹同时陀螺仪积分数值清零,清零之后陀螺仪开始第二次角度积分,当陀螺仪积分数值超过阈值(gyro_cirlr)之后说明小车已经出环岛了,环岛状态可以结束了,清零环岛相关变量数值。

代码分析

后面2个横电感的数值大于一定阈值才会判断为预环岛,因为长前瞻的话车子会在离环岛比较远的地方就感知到环岛。预环岛后会积分一段距离直到适当的入环位置。

接下来是入环编码器积分:

接下来是入环陀螺仪积分:

最后是环内积分角度出环:

源码参考了众多开源程序,时间太久找不到原链接了,如有侵权或该文章令源码作者感到不适,还请私信或者评论,作者看见了一定会第一时间与您取得联系。