本发明涉及机器人技术领域,具体涉及一种实时定位和地图构建的机器人。
背景技术:
近年来利用slam技术出现了许多新型机器人,如图1中的turtlebot机器人和图2中的扫地机器人。当前市场上存在的扫地机器人产品按清扫类型分类主要分为随机碰撞式和路径规划式两种类型。其中,路径规划式扫地机器人在运行过程中会建立环境地图,可以通过地图导航更加智能的完成清扫作业。随着扫地机器人技术的进步,出现了随机碰撞式扫地机器人逐渐被路径规划式扫地机器人所取代的趋势。路径规划式扫地机器人的核心技术之一就是slam(simultaneouslocalizationandmapping)技术,而现有的扫地机器人产品中能够实现slam功能的扫地机器人价格昂贵,而且主要是一些国外品牌。因此对低成本、具有slam功能的扫地机器人的研究具有十分重要的意义。
为此,我们基于摄像头的视觉slam,运用现行的地图重建技术和路线规划技术,搭建一个可自主进行地图重建和避障的slam小车平台。
技术实现要素:
针对现有技术的不足,本发明公开了一种实时定位和地图构建的机器人,本发明基于摄像头的视觉slam能运用现行的地图重建技术和路线规划技术,搭建一个可自主进行地图重建和避障的slam小车平台;提出一种扫地机器人平台的搭建方案;最后运用图优化算法提高路线规划的准确性和实时性。
本发明通过以下技术方案予以实现:
一种实时定位和地图构建的机器人,包括电源系统,所述电源系统用于机器人供电;其特征在于,包括stm32机器人控制模块和树莓派3b图像模块,所述stm32机器人控制模块和树莓派3b图像模块之间通过串口相连,所述树莓派3b图像模块通过摄像头以及陀螺仪进行图像数据采集,所述stm32机器人控制模块通过无线路由器与pc上位机相连,所述stm32机器人控制模块与电机控制模块相连。
优选的,所述stm32机器人控制模块采集编码器里程计的数据,通过电机控制模块控制其上的运行。
优选的,所述树莓派3b图像模块对采集的图像数据进行初步处理,通过无线wifi传输到pc端进行三维图像的重建,对基于ros系统的机器人的姿态进行调整。
优选的,所述pc上位机端对图像进行三维重建处理,把结果返回机器人平台,进行路线规划。
优选的,所述树莓派3b图像模块基于arm的微型计算机主板,可以实现无线通讯;可使用相机串行接口连接摄像头;可以安装使用ubuntumate、raspbian等操作系统。
优选的,所述stm32机器人控制模块通过编码器与无线路由器相连,建立与pc上位机的连接。
优选的,所述机器人建的地图种类包括栅格、拓扑和特征地图。
优选的,所述栅格地图使用很多小栅格等分环境,通过传感器获得的障碍物位置信息和可通行区域位置信息对每个小栅格进行赋值,用来表示环境中的障碍物对栅格的占用情况;
所述特征地图是由一系列具有独特特征、可以识别的点或线段等几何特征组成,它的构建需要从传感器获得的原始信息中提取出更加抽象的几何特征;
所述拓扑地图是这三类地图中最简要的环境地图模型,采用连通图表示环境,由节点和边组成,其中节点表示环境中区分度明显的特征或位置不同的区域,边表示节点之间的相邻性和连通性。
本发明的有益效果为:
本发明基于摄像头的视觉slam能运用现行的地图重建技术和路线规划技术,搭建一个可自主进行地图重建和避障的slam小车平台;提出一种扫地机器人平台的搭建方案;最后运用图优化算法提高路线规划的准确性和实时性,具有很强的创造性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的系统框图;
图2是本发明实施例的摄像头系统的组成图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例公开了一种实时定位和地图构建的机器人,包括电源系统,所述电源系统用于机器人供电;包括stm32机器人控制模块和树莓派3b图像模块,所述stm32机器人控制模块和树莓派3b图像模块之间通过串口相连,所述树莓派3b图像模块通过摄像头以及陀螺仪进行图像数据采集,所述stm32机器人控制模块通过无线路由器与pc上位机相连,所述stm32机器人控制模块与电机控制模块相连。
优选的,所述stm32机器人控制模块采集编码器里程计的数据,通过电机控制模块控制其上的运行。
树莓派3b图像模块对采集的图像数据进行初步处理,通过无线wifi传输到pc端进行三维图像的重建,对基于ros系统的机器人的姿态进行调整。
pc上位机端对图像进行三维重建处理,把结果返回机器人平台,进行路线规划。
树莓派3b图像模块基于arm的微型计算机主板,可以实现无线通讯;可使用相机串行接口连接摄像头;可以安装使用ubuntumate、raspbian等操作系统。
stm32机器人控制模块通过编码器与无线路由器相连,建立与pc上位机的连接。
机器人建的地图种类包括栅格、拓扑和特征地图。
栅格地图使用很多小栅格等分环境,通过传感器获得的障碍物位置信息和可通行区域位置信息对每个小栅格进行赋值,用来表示环境中的障碍物对栅格的占用情况;
特征地图是由一系列具有独特特征、可以识别的点或线段等几何特征组成,它的构建需要从传感器获得的原始信息中提取出更加抽象的几何特征;
拓扑地图是这三类地图中最简要的环境地图模型,采用连通图表示环境,由节点和边组成,其中节点表示环境中区分度明显的特征或位置不同的区域,边表示节点之间的相邻性和连通性。
实施例2
本实施例公开了一种基于摄像头的视觉slam,运用现行的地图重建技术和路线规划技术,主要内容包括扫地机器人平台的搭建;路程里程计和视觉数据的采集传输;多传感器的信息融合方法;基于差分控制器的小车控制;地图重建技术和路线规划。
stm32模块负责编码器里程计的数据采集,同时通过电机控制其上的运行。树莓派3b进行图像的采集,而且初步的处理,通过无线wifi传输到pc端进行三维图像的重建。同时陀螺仪的数据与图像数据进行任何,对基于ros系统的机器人的姿态进行调整。pc上位机端对图像进行三维重建处理,把结果返回机器人平台,进行路线规划。系统框架图如图1所示。
slam小车平台需要采集里程数据和运动控制,同时也要对采集的图像进初步进行处理,需要占用控制器大量的运算内存和时间,为了是小车平台的处理速度性能达到较高的实时性,故在这里采取stm32负责控制运动算法和树莓派3b负责图像的前期处理的方案。
树莓派3b它是一款基于arm的微型计算机主板,外形尺寸85x5617mm、重量45g、额定功率4w。它具有64位1.2ghz四核armcortex-a53微处理器、1gb内存,具备802.11nwifi无线网卡,可以实现无线通讯;可以使用相机串行接口(csi接口)连接摄像头;具有4个usb接口、40个引脚、1个microsd卡插槽;可以安装使用ubuntumate、raspbian等操作系统。
立体视觉的基本原理是利用摄像机成像技术从两个或多个角度来观察同一个场景,获得同一物体在不同视点下的图像信息。使用双目相机的目的,是为了克服单目相机无法知道距离的缺点,我们人类可以通过左右眼所看到的的图像的不一样,凭借此差异来判断物体的远近。然而从本质上来说,双目相机其实就是由两个单目相机组合而成的,但是这两个相机的距离,也就是我们所说的基线,是可以知道的。通过基线来估计图像中每个像素的空间位置,这和人通过视觉来估计距离的原理十分相似。
因为相机的运动,实际上是一个刚体运动,这样保证了同一个向量在各个坐标系下的长度和夹角都不会发生变化,因此双目视觉使用时也需要对相机进行标定,获得相关参数矩阵,通过立体视觉匹配方法可直接获得障碍物相对于相机的距离,进而通过相关算法完成slam问题求解。采用双目视觉无论在相机运动或是静止的时候都可以获得障碍物深度信息,有效的避免了单目视觉深度获取困难的问题。其具有效率高、精度合适、系统结构简单、成本低等优点,被广泛应用于机器人slam中,是计算机视觉系统中十分关键的技术之一。
双目立体视觉系统是一个模拟人眼从两个不同的视觉角度感知同一事物的系统,利用同一物体在左右相机中的视差计算出物体和摄像机之间的距离,然后可以通过三维重建技术来确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。而双目相机测量到的深度范围与基线相关,基线越长,能测量的范围就越广。
双目立体视觉系统所测量的距离,并不需要依赖其它传感器,所以它既可以应用在室内,也可以运用到室外。双目立体系统一般可以分为五个部分,即图像采集、立体标定、立体校正、立体匹配及三维重建,如图2所示。
基于图优化的视觉slam算法根据估计相机运动所使用的方法不同分为特征点法和直接法两种。特征点法采用从图像中提取的特征点估计相机运动,特征点法比较有代表性的算法是raulmur-artal等人于2015年提出的orb-slam法和于2016年提出了orb-slam2算法。而特征点法的大概原理是:首先通过相机获取的图像序列,然后从图像中提取出一组观测量,然后以这些特殊的观测量建立摄像头的位姿估计函数,以此来计算相机的位置信息和构建其所在场景的地图。但是这种方法仅仅能提取图像上符合特征类型的信息,会造成许多关键信息的遗漏。
直接法采用图像的部分或全部像素信息估计相机运动,直接法的代表性算法是jakobengel等人于2014年提出的lsd-slam算法,算法主要包括图像跟踪、深度图估计、地图优化等主要模块,相比特征点法仅从图像中提取出特征观测量,lsd-slam算法可以直接利用图像像素点的灰度信息来进行计算,达到实时定位和地图构建的的目的,极大的保留了环境细节信息,可以构建环境的半稠密点云图。相比于使用特征点其他slam方法,该方法即使在特征点稀少的环境条件下,依然可以提供许多的环境几何信息,从而在某些特殊的的条件下,使机器人仍然达到很高的定位精度与鲁棒性。
移动机器人创建的地图种类主要有三种,分别为栅格、拓扑和特征地图。栅格地图使用很多小栅格等分环境,通过传感器获得的障碍物位置信息和可通行区域位置信息对每个小栅格进行赋值,用来表示环境中的障碍物对栅格的占用情况。特征地图是由一系列具有独特特征、可以识别的点或线段等几何特征组成,它的构建需要从传感器获得的原始信息中提取出更加抽象的几何特征,例如线段、曲线或者多边形等特征。
拓扑地图是这三类地图中最简要的环境地图模型,它采用连通图表示环境,由节点和边组成。其中节点表示环境中区分度明显的特征或位置不同的区域,边表示节点之间的相邻性和连通性。而对于家用扫地机器人来说,仅需一个二维的地图就能让它在一个空间内自主导航规避障碍。
但是因为搭载了双目相机,我们就需要一张三维的地图。但是栅格地图在栅格单元划分过细时,会导致计算量增长,slam实时性得不到保障;拓扑地图虽然具备良好的鲁棒性,但是如果遇到相似节点,就很难对其进行判别,而且拓扑地图仅依靠环境特征点信息,无法准确地描述机器人位置。特征地图利用环境信息中的点、直线、线段或曲线进行特征点判别,但是在某些特定的环境中,几何特征信息较少,就很难提取特征点来构建地图。
由于特征地图会引入更多误差,并且受到环境的限制。而拓扑地图又太过简略,并且遇到相似节点会导致难以判别。故采用栅格地图用于机器人路径规划,首先使用octomap方法将lsd-slam获得的半稠密点云图转化为三维栅格地图,再将三维栅格地图转化为二维栅格地图用于扫地机器人路径规划。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。