论文部分内容阅读
扫地机器人受到越来越多家庭的欢迎,但目前国内绝大多数扫地机器人不具备自主导航能力、技术落后,少数具备自主导航能力的产品大多采用激光雷达导航技术,成本较高。国外先进的扫地机器人主要采用了视觉导航技术,而国内在这方面差距较大。本文在低成本的扫地机器人平台上,设计和实现了一套基于视觉的自主导航系统,主要工作包括:1.分析扫地机器人自主导航的功能要求,概述了完整的扫地机器人导航系统必备的四大模块:环境观测与地图构建模块、自主定位模块、路径规划模块和运动控制模块;完成了基于视觉的扫地机器人导航系统总体设计,该系统应用了课题组对天花板视觉定位和视觉测距的相关研究成果,采用ARM+STM32双处理器架构,ARM处理复杂的视觉计算和高层次建模与规划,STM32完成底层传感器数据的采集处理以及运动控制。2.建立扫地机器人的运动模型,对系统中各子模块进行详细的理论推导和设计。机器人定位采用惯性定位+视觉定位的方案,使用视觉定位对惯性定位的累积误差进行校正,兼顾惯性定位自主性高、实时性好和视觉定位误差小的优点;根据视觉测距传感器、红外测距传感器等获取的环境障碍物信息构建栅格地图;采用局部规划和全局规划相结合的方案实现对工作空间的全覆盖;采用分解的方法简化运动控制问题,将运动控制划分为ARM端的路径跟随和STM32端的运动指令执行两部分。3.完成STM32子系统软件的编写,阐述了 STM32端传感器数据采集与处理、运动指令执行、串口通信的实现。重点介绍对霍尔编码器以及红外测距传感器异常数据的处理方法、运动指令执行流程、PID控制器的设计和实现。4.在移植了 OpenCV库的Linux操作系统上,设计实现了 ARM子系统软件的多线程结构用于各功能模块的异步执行。阐述了 ARM端串口通信、惯性定位、地图构建以及路径跟随的实现。设计了一种改进的连通域标记算法,并基于该算法实现路径规划中目标区域的搜索。在搭建的扫地机器人样机上进行了单元测试和系统实验。结果表明设计实现的自主导航系统能满足扫地机器人的自主导航需求,完成了室内环境的全覆盖清扫。