一种室内机器人的SLAM方法和系统
技术领域
本发明涉及机器人室内自主导航技术领域,更具体的说,涉及一种室内机器人的SLAM方法和系统。
背景技术
在自主移动机器人智能导航技术的相关研究中,机器人在未知环境下的同步定位与地图构建(简称SLAM,simultaneous localization and mapping)技术作为关键性的技术,兼具应用和学术上的双重价值,已然成为近二十年来该领域的研究热点。在这种趋势下,学者们提出了多种解决SLAM问题的方法,也应用了多种传感器来解决SLAM中的环境感知问题。
SLAM技术首先要解决的问题是选择适当的传感器系统来感知机器人所处的环境。如激光测距仪、声呐、视觉传感器、GPS、罗盘和里程计等,都是较为常用的机载传感器。其中,激光测距仪这类在测距范围和方位角上都具有较高精确度的传感器成为人们优先选用的传感器,因此对使用此类传感器获取环境信息的SLAM技术的研究逐渐成为SLAM问题的基础性研究。
然而,受限于传感器的成本、安装结构、算法效率和精度等问题,目前能产品化的SLAM方法基本没有。对于室内机器人,考虑到实际的使用场景,激光测距仪由于价格、噪声、结构等方面的因素,必然不能成为室内机器人做SLAM的最优选择。
因此,对于室内机器人SLAM技术的真正产品化,需要一套对环境感知更好的SLAM方法和系统。
发明内容
本发明所要解决的技术问题是提供一种室内机器人的SLAM方法和系统,与现有技术相比较,本发明对传感器的依赖较小,成本低;安装便利,对外观结构限制较小;实时性较高,完全满足机器人的室内导航要求。
本发明的目的是通过以下技术方案来实现的:
一种室内机器人的SLAM方法,所述方法包括:
通过摄像机获取图像数据,所述图像数据包括RGB图像和深度图像;
使用角点检测算法、LK特征点跟踪算法和RANSAC算法处理RGB图像和深度图像,以调整摄像头的位置与角度,获取机器人操作系统下的RGB图像数据信息;
将世界坐标系下的深度图像变换到地面坐标下,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图;
通过单线激光雷达的扫描方式,搜索所述2D障碍物栅格地图,遇到灰度值为第一特征值的栅格后,反馈该栅格到摄像机的距离,得到机器人与障碍物之间的距离,获取机器人操作系统下的深度图像;
根据机器人操作系统下的RGB图像数据信息和机器人操作系统下的深度图像,得到机器人的位置与角度和环境2D地图。
优选的,所述深度图像包括3D点云数据;
所述将世界坐标系下的深度图像变换到地面坐标下,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图的步骤包括:
使用RANSAC算法标定机器人安装结构下的地面坐标系,得到由世界坐标系到地面坐标下的旋转矩阵和平移矩阵,将3D点云数据从像素坐标系变换到世界坐标系下;将世界坐标系下的3D点云数据按标定的旋转矩阵和平移矩阵变换到地面坐标下,根据摄像机的有效测距范围,在地面坐标系下划出矩形区域并栅格化,将栅格设置为初始灰度值,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图。
优选的,所述矩形区域的大小为10米乘10米。
优选的,所述矩形区域栅格化后的初始灰度值为80。
优选的,所述第一特征值为160。
优选的,所述第一特征值为所述初始灰度值的两倍。
优选的,所述使用角点检测算法、LK特征点跟踪算法和RANSAC算法处理RGB图像和深度图像,以调整摄像头的位置与角度,获取机器人操作系统下的RGB图像数据信息的步骤包括:
提取RGB图像的角点特征;
用LK特征点算法跟踪特征点;
结合深度图像,得到有效特征点处的深度信息;
将摄像机的深度图像和RGB图像对齐;
将有效特征点从像素坐标变换到世界坐标;
将有效特征点从摄像机世界坐标系变换到地面坐标下;
根据预设约束条件提取关键帧;
利用RANSAC鲁棒参数求得相邻之间关键帧图像之间的摄像头位置和角度变换;
获取机器人操作系统下的RGB图像数据信息。
本发明还公开一种室内机器人的SLAM系统,所述系统包括:
获取模块,用于通过摄像机获取图像数据,所述图像数据包括RGB图像和深度图像;
RGB图像处理模块,用于使用角点检测算法、LK特征点跟踪算法和RANSAC算法处理RGB图像和深度图像,以调整摄像头的位置与角度,获取机器人操作系统下的RGB图像数据信息;
栅格模块,用于将世界坐标系下的深度图像变换到地面坐标下,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图;
深度图像处理模块,用于通过单线激光雷达的扫描方式,搜索所述2D障碍物栅格地图,遇到灰度值为第一特征值的栅格后,反馈该栅格到摄像机的距离,得到机器人与障碍物之间的距离,获取机器人操作系统下的深度图像;
处理模块,用于根据机器人操作系统下的RGB图像数据信息和机器人操作系统下的深度图像,得到机器人的位置与角度和环境2D地图。
优选的,所述深度图像包括3D点云数据;
所述栅格模块还用于:使用RANSAC算法标定机器人安装结构下的地面坐标系,得到由世界坐标系到地面坐标下的旋转矩阵和平移矩阵,将3D点云数据从像素坐标系变换到世界坐标系下;将世界坐标系下的3D点云数据按标定的旋转矩阵和平移矩阵变换到地面坐标下,根据摄像机的有效测距范围,在地面坐标系下划出矩形区域并栅格化,将栅格设置为初始灰度值,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图。
优选的,所述RGB图像处理模块还用于:
提取RGB图像的角点特征;
用LK特征点算法跟踪特征点;
结合深度图像,得到有效特征点处的深度信息;
将摄像机的深度图像和RGB图像对齐;
将有效特征点从像素坐标变换到世界坐标;
将有效特征点从摄像机世界坐标系变换到地面坐标下;
根据预设约束条件提取关键帧;
利用RANSAC鲁棒参数求得相邻之间关键帧图像之间的摄像头位置和角度变换;
获取机器人操作系统下的RGB图像数据信息。
相对于现有技术,本发明的具有以下优点:本发明基于室内机器人自主导航的实际需求,利用单个RGB-D摄像机,解决了SLAM中的定位和建图的问题,成功构建出2D导航地图。与现有技术相比较,本发明对传感器的依赖较小,成本低;安装便利,对外观结构限制较小;实时性较高,完全满足机器人的室内导航要求。与传统的SLAM方法不同,本发明只用了一个传感器,实现了视觉里程计的方法并模拟成激光雷达的数据,完成了SLAM问题的输入条件,在此基础上构建出了导航地图。与其他SLAM方法相比,本发明由于成本低,结构上安装简单,不会影响机器人的外观结构,且运算量不大,能保证效率和实时性,精度也能满足室内导航需求,是一个真正可以实现产品化的SLAM方法。
附图说明
图1是本发明实施例一的室内机器人的SLAM方法的流程图;
图2是本发明实施例一的深度图像模拟激光测距仪数据的流程图;
图3是本发明实施例一的SLAM生成的地图的示意图;
图4是本发明实施例二的室内机器人的SLAM系统的示意图。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备或客户端包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、客户端、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图和较佳的实施例对本发明作进一步说明。
实施例一
如图1所示,本实施例中公开一种室内机器人的SLAM方法,所述方法包括:
S101、通过摄像机获取图像数据,所述图像数据包括RGB图像和深度图像;
S102、使用角点检测算法、LK特征点跟踪算法和RANSAC算法处理RGB图像和深度图像,以调整摄像头的位置与角度,获取机器人操作系统下的RGB图像数据信息;
S103、将世界坐标系下的深度图像变换到地面坐标下,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图;
S104、通过单线激光雷达的扫描方式,搜索所述2D障碍物栅格地图,遇到灰度值为第一特征值的栅格后,反馈该栅格到摄像机的距离,得到机器人与障碍物之间的距离,获取机器人操作系统下的深度图像;
S105、根据机器人操作系统下的RGB图像数据信息和机器人操作系统下的深度图像,得到机器人的位置与角度和环境2D地图。
本实施例基于室内机器人自主导航的实际需求,利用单个RGB-D摄像机,解决了SLAM中的定位和建图的问题,成功构建出2D导航地图。与现有技术相比较,本实施例对传感器的依赖较小,成本低;安装便利,对外观结构限制较小;实时性较高,完全满足机器人的室内导航要求。与传统的SLAM方法不同,本实施例只用了一个传感器,实现了视觉里程计的方法并模拟成激光雷达的数据,完成了SLAM问题的输入条件,在此基础上构建出了导航地图。与其他SLAM方法相比,本实施例由于成本低,结构上安装简单,不会影响机器人的外观结构,且运算量不大,能保证效率和实时性,精度也能满足室内导航需求,是一个真正可以实现产品化的SLAM方法。
根据其中一个示例,所述深度图像包括3D点云数据;
所述S103将世界坐标系下的深度图像变换到地面坐标下,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图的步骤包括:
使用RANSAC算法标定机器人安装结构下的地面坐标系,得到由世界坐标系到地面坐标下的旋转矩阵和平移矩阵,将3D点云数据从像素坐标系变换到世界坐标系下;将世界坐标系下的3D点云数据按标定的旋转矩阵和平移矩阵变换到地面坐标下,根据摄像机的有效测距范围,在地面坐标系下划出矩形区域并栅格化,将栅格设置为初始灰度值,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图。
这样可以更高效率,更加准确的得到2D障碍物栅格地图。
根据其中另一个示例,所述矩形区域的大小为10米乘10米。划分出矩形区域的大小可以方便进行栅格。
根据其中另一个示例,所述矩形区域栅格化后的初始灰度值为80。设置初始灰度值可以方便后续步骤中设置障碍物的灰度值,方便识别。
根据其中另一个示例,所述第一特征值为160。将第一特征值设置为160可以方便障碍物的识别。
根据其中另一个示例,所述第一特征值为所述初始灰度值的两倍。将第一特征值设置为初始灰度值的两倍,方便寻找到障碍物,从而构建地图。
根据其中另一个示例,所述使用角点检测算法、LK特征点跟踪算法和RANSAC算法处理RGB图像和深度图像,以调整摄像头的位置与角度,获取机器人操作系统下的RGB图像数据信息的步骤包括:
提取RGB图像的角点特征;
用LK特征点算法跟踪特征点;
结合深度图像,得到有效特征点处的深度信息;
将摄像机的深度图像和RGB图像对齐;
将有效特征点从像素坐标变换到世界坐标;
将有效特征点从摄像机世界坐标系变换到地面坐标下;
根据预设约束条件提取关键帧;
利用RANSAC鲁棒参数求得相邻之间关键帧图像之间的摄像头位置和角度变换;
获取机器人操作系统下的RGB图像数据信息。
采用上述方式处理RGB图像,可以更高效率的获取机器人操作系统下的RGB图像数据信息。
本实施例中一种室内机器人的SLAM方法,更加详细的描述如下:
通过摄像机获取图像数据,所述图像数据包括RGB图像和深度图像;
使用角点检测算法、LK特征点跟踪算法和RANSAC算法处理RGB图像和深度图像,以调整摄像头的位置与角度,获取机器人操作系统下的RGB图像数据信息;其中,具体包括:1)提取RGB图像的角点特征;2)用LK特征点算法跟踪特征点;3)结合深度图像,得到有效特征点处的深度信息;4)将摄像机的深度图像和RGB图像对齐;6)将有效特征点从像素坐标变换到世界坐标;7)将有效特征点从摄像机世界坐标系变换到地面坐标下;根据预设约束条件提取关键帧;8)利用RANSAC鲁棒参数求得相邻之间关键帧图像之间的摄像头位置和角度变换;9)获取机器人操作系统下的RGB图像数据信息;
所述深度图像包括3D点云数据,具体结合图2所示,图中,30为摄像机坐标系,31为地面坐标系,32为地面投影栅格图,33为2D激光点云栅格图。具体示例:1)利用RANSAC算法标定机器人安装结构下的地面坐标系,得到由世界坐标系到地面坐标下的旋转矩阵和平移矩阵;2)将3D点云数据从像素坐标系变换到世界坐标系下;3)将世界坐标系下的3D点云数据按标定的旋转矩阵和平移矩阵变换到地面坐标下;4)根据摄像机的有效测距范围,在地面坐标系下划出10米乘10米的区域,按预设分辨率栅格化,并且每个栅格的初始灰度值都置为80;5)根据机器人的实际情况,设定机器人可通行的条件,在此条件下,遍历投影在地面坐标下的深度图像,找到障碍物点,把障碍物所在的栅格的灰度值设置为160,遍历结束后得到2D障碍物栅格地图:6)从摄像机在地面的投影点出发,在摄像机的视场角范围内,模拟单线激光雷达的扫描方式,搜索所述2D障碍物栅格地图,遇到灰度值为160的栅格后,反馈此栅格到摄像机的距离,遍历结束后,得到此刻机器人视野范围内的各个角度下的障碍物距离;7)最终封装成机器人操作系统的消息格式,发布在相应的目录,获取机器人操作系统下的深度图像;
如图3所示,根据机器人操作系统下的RGB图像数据信息和机器人操作系统下的深度图像,得到机器人的位置与角度和环境2D地图。
实施例二
如图4所示,本发明还公开一种室内机器人的SLAM系统,所述系统包括:
获取模块201,用于通过摄像机获取图像数据,所述图像数据包括RGB图像和深度图像;
RGB图像处理模块202,用于使用角点检测算法、LK特征点跟踪算法和RANSAC算法处理RGB图像和深度图像,以调整摄像头的位置与角度,获取机器人操作系统下的RGB图像数据信息;
栅格模块203,用于将世界坐标系下的深度图像变换到地面坐标下,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图;
深度图像处理模块204,用于通过单线激光雷达的扫描方式,搜索所述2D障碍物栅格地图,遇到灰度值为第一特征值的栅格后,反馈该栅格到摄像机的距离,得到机器人与障碍物之间的距离,获取机器人操作系统下的深度图像;
处理模块205,用于根据机器人操作系统下的RGB图像数据信息和机器人操作系统下的深度图像,得到机器人的位置与角度和环境2D地图。
本实施例基于室内机器人自主导航的实际需求,利用单个RGB-D摄像机,解决了SLAM中的定位和建图的问题,成功构建出2D导航地图。与现有技术相比较,本实施例对传感器的依赖较小,成本低;安装便利,对外观结构限制较小;实时性较高,完全满足机器人的室内导航要求。与传统的SLAM方法不同,本实施例只用了一个传感器,实现了视觉里程计的方法并模拟成激光雷达的数据,完成了SLAM问题的输入条件,在此基础上构建出了导航地图。与其他SLAM系统相比,本实施例由于成本低,结构上安装简单,不会影响机器人的外观结构,且运算量不大,能保证效率和实时性,精度也能满足室内导航需求,是一个真正可以实现产品化的SLAM方法。
根据其中一个示例,所述深度图像包括3D点云数据;
所述栅格模块还用于:使用RANSAC算法标定机器人安装结构下的地面坐标系,得到由世界坐标系到地面坐标下的旋转矩阵和平移矩阵,将3D点云数据从像素坐标系变换到世界坐标系下;将世界坐标系下的3D点云数据按标定的旋转矩阵和平移矩阵变换到地面坐标下,根据摄像机的有效测距范围,在地面坐标系下划出矩形区域并栅格化,将栅格设置为初始灰度值,遍历投影在地面坐标下的深度图像,将障碍物所在的栅格的灰度值设置为第一特征值,遍历得到2D障碍物栅格地图。
这样可以更高效率,更加准确的得到2D障碍物栅格地图。
根据其中另一个示例,所述RGB图像处理模块还用于:
提取RGB图像的角点特征;
用LK特征点算法跟踪特征点;
结合深度图像,得到有效特征点处的深度信息;
将摄像机的深度图像和RGB图像对齐;
将有效特征点从像素坐标变换到世界坐标;
将有效特征点从摄像机世界坐标系变换到地面坐标下;
根据预设约束条件提取关键帧;
利用RANSAC鲁棒参数求得相邻之间关键帧图像之间的摄像头位置和角度变换;
获取机器人操作系统下的RGB图像数据信息。
采用上述方式处理RGB图像,可以更高效率的获取机器人操作系统下的RGB图像数据信息。
根据其中另一个示例,所述矩形区域的大小为10米乘10米。划分出矩形区域的大小可以方便进行栅格。
根据其中另一个示例,所述矩形区域栅格化后的初始灰度值为80。设置初始灰度值可以方便后续步骤中设置障碍物的灰度值,方便识别。
根据其中另一个示例,所述第一特征值为160。将第一特征值设置为160可以方便障碍物的识别。
根据其中另一个示例,所述第一特征值为所述初始灰度值的两倍。将第一特征值设置为初始灰度值的两倍,方便寻找到障碍物,从而构建地图。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。