基于STM32图像处理的机器人自动充电解决方案---三

 

接上一篇基于STM32图像处理的机器人自动充电解决方案---二

                                                                              第4章 自主导航与避障设计

 4.1自主导航设计

 如果图像处理的结果表明标注不在视野范围内,则按照顺时针调整装置的方向,直至发现标志物。如果图像处理结果表明,标志物在视野范围内,则启动电机,使装置向前进。如果在此过程中发现标志物脱离了视野范围,则以最后一次视角为对称中心,先顺时针调整装置的位置,如果发现标志物,则恢复前进状态,如果没有则继续顺时针调整,如果调整三次后还未发现标志物,则逆时针调整装置,如果发现标志物,则恢复前进状态,如果没有则继续逆时针调整,直至左右调整的最大角度对称。

流程如下图4-1所示:

 

基于STM32图像处理的机器人自动充电解决方案---三_第1张图片

 

 

4.2避障处理

如果检测到红外传感器的电平从高电平变为低电平,则表示红外传感器有感应到物体。如果在此之前预充电标志没有被置位过,则表明此物体是障碍物,应使整个装置后退一定距离,并向右调整方向,然后向前直走一段距离,最后向左调整方向,继续搜索标志物或自主导航任务。

设计流程如下图4-2所示:

基于STM32图像处理的机器人自动充电解决方案---三_第2张图片

4.3 本章所遇难点与解决方案

  4.3.1 所遇难点

在进行自主导航的过程中,会经常遇到标志物脱离摄像头中央区域的情况,而且没法判断标志物在脱离视野的时候是在左方向还是右方向。如果脱离后搜寻标志物的方法还是按照一开始的一样,即顺时针搜寻,有时候会遇到方向逆向的问题。即标志物脱离视野的时候刚好在视野左方向,搜寻方法确实顺时针,那么搜寻接近一周后才能捕捉到标志物,这样会很耗时间,效率极其低下。

还有一方面,在自主导航的过程中也会有遇到障碍物的情况,阻挡机器人的前进。如果要避开障碍物,识别障碍物是关键点。单纯地利用红外线传感器感应,无法判断,检测到的是障碍物还是充电装置。

   4.3.2 解决方案

为解决上面所遇到的标志物脱离视野后的再次搜寻问题和障碍物判断的问题,本文设计采用了下面的解决方案步骤:

    4.3.2.1 标志物脱离解决方案:

  1. 标志物脱离视野后,立即停止机器人的前进行动,保证标志物脱离视野的范围不会很大。
  2. 在上一步的前提下,先逐步顺时针方向调整机器人三次,如果在调整的过程中再次捕捉到标志物,则退出整个调整状态,恢复自主导航前进状态。
  3. 如果逐步顺时针方向调整机器人三次后,还没有搜索到标志物,那么说明标志物脱离的时候是处在摄像头视野的左方向。接下来进行第(4)步。
  4. 逐步逆时针方向调整机器人六次,进行左右对称扫描,如果在调整过程中再次捕捉到标志物,则退出整个调整状态,恢复自主导航前进状态。

4.3.2.2 障碍物判断与避障解决方案:

  1. 单单只用红外线传感器,无法判断检测到得是障碍物还是充电装置,所以结合红外线传感器和图像处理来进行判断。
  2. 如果红外线传感器有感应,则先查看再次之前图像处理结果是否显示机器人已经很接近充电处。
  3. 如果图像处理结果表明没有靠近充电处,即机器人处于微调状态,那么判断红外线检测到的物体是障碍物,需要进行避障处理。
  4. 如果判断红外线检测到的是障碍物,先顺时针调整机器人三次。
  5. 顺时针调整机器人三次后,利用红外线传感器检测,如果红外线传感器有感应,则继续调整,直至没有没有感应。
  6. 后退一段距离,以便留出足够的空间。
  7. 向右再一定角度。
  8. 向前进一定距离。
  9. 向左调整,使机器人恢复到避障处理前的平行方向,最后继续自主导航。

 

 

 

                                                         第5章定位充电与各阶段LED显示设计

5.1单目视觉定位与充电

利用图像处理进行导航,是装置逐渐靠近标志物,也就是充电站附近。如果标志物的像素面积超过设定的阈值,则说明整个装置已经很靠近充电处,初步定为成功,接下来进入微调模式,也就是精准定位模式。减少装置的前进量和方向调整量。如果在精准定位模式过程中,红外传感器的电平从高变为低,则说明已经精准定位到充电站处,可进行后续的充电操作。

     在装置进行精确定位后,使能串口舵机模块,推出充电头进行充电。如果检测到电量充满,则收回充电头,离开充电站。

具体的流程图如下图5-1所示:

 

基于STM32图像处理的机器人自动充电解决方案---三_第3张图片

 

5.2各功能阶段LED显示设计

为了使整个自动充电装置能更加智能形象化,在各功能阶段设置LED显示不同的颜色,并且搭配不同的状态,表示不同的状态信息。颜色和状态方面符合平时的电器使用习惯。

下表5-1是各阶段的LED显示设计:

功能阶段

LED颜色

状态

标志物搜寻

蓝色

闪烁

捕获标志物

蓝色

常亮

电量低

红色

闪烁

充电中

红色

常亮

充满电

绿色

常亮

                      表5-1 各功能阶段LED显示设计表

当机器人在搜索标志物,即自主导航的状态时,将LED灯显示成蓝色,并且将其状态设置成闪烁,表示在搜索中。

当机器人有捕获到标志物时,将LED灯显示成蓝色,并且将其状态设置为常亮,表示获取到标志物。

当机器人的电量低于阈值时,将LED灯显示成红色,并且将其状态设置成闪烁状态,符合我们日常电器使用指示习惯,表示机器人已经快没电了,需要进行充电。

当机器人处在充电的状态时,将LED灯显示成红色,并且将其状态设置成常亮,符合我们日常电器使用指示习惯,表示机器人正在进行充电。

    当机器人的电量达到阈值,充电完成了,将LED灯显示成绿色,并且将其状态设置成常亮状态,表示机器人充电完毕,即将离开充电处。

 

 

5.3 本章所遇难点与解决方案

   5.3.1 所遇难点

    摄像头受焦距条件的限制,在很近的距离上无法成像,或者成像的效果很差,严重失真。在最后的精准定位阶段,接近标志物到一定程度后,摄像头将失去作用。如果只用摄像头,无法判断是否已经到达充电处,只能判断已经很接近充电处了,接近程度无法量化,也无法进行最终的定位。

   5.3.2 解决方案

为了解决摄像头在最终定位阶段失去作用,无法进行最终定位的问题,本文设计采用了以下的解决方案步骤:

  1. 摄像头捕捉到标注物所占面积比例超过阈值后,将机器人调整为微调模式,减少机器人前进的量,也缩小图像处理的有限区域。在软件上给于范围限制,提高定位的精准度。
  2. 启用红外线检测,进行检测。
  3. 利用图像处理结果和红外线传感器检测结果结合进行判断。
  4. 如果机器人处在微调整状态,且红外线传感器有感应,则说明已经到达了充电处,进行最后的精准定位。

 

 

 

 

 

                                                                                    第6章 研究展望

 在往后的发展中,机器人自动充电技术的研究也会越来越深,智能化也会越来越高,能应对各种场合和不同的复杂环境,进而解决目前在机器人自动充电技术上所存在的问题。本文对机器人自动充电技术后续的研发工作展望如下:

  1. 充电座容错性设计。因为时间有限,本文没有对充电座进行设计。我们日常使用的充电座插孔范围有限,如果定位不精准,会导致充电插头和我们日常使用的插座对接不成功,从而导致充电失败,所以在后续的课题研究中,应该设计一个具有一定容错性的配套插座,弥补有时定位不精准带来的错误。
  2. 图像处理算法的改进。在机器人自动充电技术上,目前还没有利用STM32进行图像处理的,所以本文在提出这一方法后,在图像处理方面主要考虑图像处理的信息量。在图像处理算法方面只使用了RGB模式。RGB图像模式会容易受到光照的影响,其对应的分量灰度值会随着光照有一定的变化,所以在后续的研究中,可以将RGB图像中间处理区域的像素转换为HSV图像模式[6],在保证能在STM32上正常进行图像处理下,排除光照的影响。

 

此系列文章为本人毕业设计稿,转发时请注明转发来源。谢谢

你可能感兴趣的:(stm32)