接上一篇基于STM32图像处理的机器人自动充电解决方案---二
第4章 自主导航与避障设计
4.1自主导航设计
如果图像处理的结果表明标注不在视野范围内,则按照顺时针调整装置的方向,直至发现标志物。如果图像处理结果表明,标志物在视野范围内,则启动电机,使装置向前进。如果在此过程中发现标志物脱离了视野范围,则以最后一次视角为对称中心,先顺时针调整装置的位置,如果发现标志物,则恢复前进状态,如果没有则继续顺时针调整,如果调整三次后还未发现标志物,则逆时针调整装置,如果发现标志物,则恢复前进状态,如果没有则继续逆时针调整,直至左右调整的最大角度对称。
流程如下图4-1所示:
4.2避障处理
如果检测到红外传感器的电平从高电平变为低电平,则表示红外传感器有感应到物体。如果在此之前预充电标志没有被置位过,则表明此物体是障碍物,应使整个装置后退一定距离,并向右调整方向,然后向前直走一段距离,最后向左调整方向,继续搜索标志物或自主导航任务。
设计流程如下图4-2所示:
4.3 本章所遇难点与解决方案
4.3.1 所遇难点
在进行自主导航的过程中,会经常遇到标志物脱离摄像头中央区域的情况,而且没法判断标志物在脱离视野的时候是在左方向还是右方向。如果脱离后搜寻标志物的方法还是按照一开始的一样,即顺时针搜寻,有时候会遇到方向逆向的问题。即标志物脱离视野的时候刚好在视野左方向,搜寻方法确实顺时针,那么搜寻接近一周后才能捕捉到标志物,这样会很耗时间,效率极其低下。
还有一方面,在自主导航的过程中也会有遇到障碍物的情况,阻挡机器人的前进。如果要避开障碍物,识别障碍物是关键点。单纯地利用红外线传感器感应,无法判断,检测到的是障碍物还是充电装置。