基于光流的机器人碰撞检测方法、装置、计算机设备及存储介质与流程

文档序号:29709296发布日期:2022-04-16 16:47阅读:142来源:国知局
基于光流的机器人碰撞检测方法、装置、计算机设备及存储介质与流程

1.本技术涉及清洁机器人导航技术领域,尤其涉及基于光流的机器人碰撞检测方法、装置、计算机设备及存储介质。


背景技术:

2.清洁机器人在行驶过程当中,需要连续记录其行走的路径,基于成本和精度共同的考虑,一种清洁机器人的行走路径的记录方法,是通过在清洁机器人的边轮上设置光栅,当清洁机器人移动的时候,清洁机器人的边轮产生了转动,使得光栅产生了计数,在理想状态下,光栅的计数频率与边轮的转速正相关。通过对光栅的计数,能够检测到两个边轮各自的转速,由此可以记录清洁机器人的移动速度,尤其是可以通过两个边轮的差速计算,能够检测出清洁机器人的转动行为,并确定清洁机器人在转动时的线速度、角速度,并且通过累加的方式,确定清洁机器人的运行里程。
3.但是通过光栅进行清洁机器人的里程计量,会因为轮子颠簸、打滑无法准确反映清洁机器人的实际运行情况,尤其在清洁机器人发生碰撞的时候清洁机器人的边轮如果打滑,就无法检测到清洁机器人因发生碰撞而受困。
4.光流数据能够根据连续拍摄的图像,根据连续拍摄的图像当中的同一特征产生的位置变化,结合图像之间的时间间隔,确定光流数据获取结构所在位置的移动情况,在清洁机器人的应用环境下,通过在清洁机器人的底部获取地面的图像,来检测清洁机器人的行走速度,以及转动的角速度,通过光流数据检测的清洁机器人运动情况,能够与通过光栅数据检测的清洁机器人的运动情况相互印证。但是清洁机器人在不同地面上行走的时候,通过统一算法检测的清洁机器人的速度和角速度,会产生偏差,这一偏差是线性的,因此通过光流数据检测到的速度和角速度,与通过光栅数据检测到的线速度和角速度相互之间存在有线性比例,这一线性比例在清洁机器人处于不同地面上行走的时候,也会产生变化。


技术实现要素:

5.本技术实施例的目的在于提出一种基于光流的清洁机器人碰撞检测方法,为了解决上述技术问题,本技术实施例提供一种基于光流的机器人碰撞检测方法,采用了如下所述的技术方案:
6.基于光流的机器人碰撞检测方法,该方法包括:
7.连续通过光栅数据获取清洁机器人的光栅位移数据,且通过光流数据检测清洁机器人的光流位移数据;
8.检测光栅位移数据和光流位移数据之间的实时线性比例;
9.当所述实时线性比例与基准线性比例之间的差距超过第一预设比例时,确定清洁机器人发生了碰撞。
10.进一步的,所述基准线性比例的获取方式,具体包括,驱动清洁机器人在单一表面
类型的地面上行走,以连续获取光栅位移数据和光流位移数据,并且分别形成曲线;
11.拟合步骤,对清洁机器人在单一表面类型的地面上行走时产生的所述光栅位移速率和光流位移速率进行线性拟合,以获取清洁机器人在所述表面类型的地面上行走时,相对应的基准线性比例。
12.进一步的,所述检测光栅位移数据和光流位移数据之间的实时线性比例之后,该方法还包括:当所述实时线性比例与基准线性比例之间的差距超过第二预设比例时,检测光流位移数据的变化量;
13.当光流位移数据在预设时间内没有归零时,执行拟合步骤,以更新所述基准线性比例。
14.进一步的,所述光栅位移数据和光流位移数据为清洁机器人的速度数据;
15.所述确定清洁机器人发生了碰撞,是驱动清洁机器人以固定速度前行时,通过所述实时线性比例与基准线性比例之间的差距超过第一预设比例确定。
16.进一步的,所述光栅位移数据和光流位移数据为清洁机器人的角速度数据;
17.所述确定清洁机器人发生了碰撞,是驱动清洁机器人以固定绕弧半径进行绕弧时,通过所述实时线性比例与基准线性比例之间的差距超过第一预设比例确定。
18.为了解决上述技术问题,本技术实施例还提供一种基于光流的机器人碰撞检测装置,采用了如下所述的技术方案:
19.基于光流的机器人碰撞检测装置,包括:
20.数据获取模块,用于连续通过光栅数据获取清洁机器人的光栅位移数据,且通过光流数据检测清洁机器人的光流位移数据;
21.监控模块,用于检测光栅位移数据和光流位移数据之间的实时线性比例;
22.判断模块,用于当所述实时线性比例与基准线性比例之间的差距超过第一预设比例时,确定清洁机器人发生了碰撞。
23.进一步的,还包括基准线性比例计算模块,具体包括,曲线记录子模块,用于驱动清洁机器人在单一表面类型的地面上行走,以连续获取光栅位移数据和光流位移数据,并且分别形成曲线;
24.拟合子模块,用于对清洁机器人在单一表面类型的地面上行走时产生的所述光栅位移速率和光流位移速率进行线性拟合,以获取清洁机器人在所述表面类型的地面上行走时,相对应的基准线性比例。
25.进一步的,还包括:更新模块,用于当所述实时线性比例与基准线性比例之间的差距超过第二预设比例时,检测光流位移数据的变化量;
26.还用于当光流位移数据在预设时间内没有归零时,调用拟合子模块,以更新所述预设比例。
27.为了解决上述技术问题,本技术实施例还提供一种计算机设备,采用了如下所述的技术方案:
28.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如上所述的基于光流的机器人碰撞检测方法的步骤。
29.为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,采用了
如下所述的技术方案:
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于光流的机器人碰撞检测方法的步骤。
31.与现有技术相比,本技术实施例主要有以下有益效果:分别通过光栅和光流检测清洁机器人的光栅位移数据和光流位移数据,并且检测二者之间的线性比例,因为当清洁机器人是正常行走的时候,光栅位移数据和光流位移数据均能够正常获取,因此,光栅位移数据和光流位移数据线性相关。根据清洁机器人所行走的地面的不同,光栅位移数据和光流位移数据之间的线性关系并非一成不变,根据清洁机器人所行走的地面,设置相应的基准线性比例,当清洁机器人的光栅位移数据和光流位移数据接近这一线性比例的时候,才能保证清洁机器人的行驶是正常的,当光栅位移数据和光流位移数据差距过大,超过了第一预设比例时,确定清洁机器人发生了碰撞。该方案能够根据清洁机器人的行驶环境,通过光流和光栅数据判断清洁机器人是否发生碰撞,防止漏检。
附图说明
32.为了更清楚地说明本技术中的方案,下面将对本技术实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1根据本技术的基于光流的机器人碰撞检测方法的一个实施例的流程图;
34.图2是根据本技术的基于光流的机器人碰撞检测装置的一个实施例的结构示意图;
35.图3是根据本技术的计算机设备的一个实施例的结构示意图。
具体实施方式
36.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
37.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
38.为了使本技术领域的人员更好地理解本技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
39.参考图1,示出了根据本技术的基于光流的机器人碰撞检测方法的一个实施例的流程图。
40.基于光流的机器人碰撞检测方法,该方法包括:
41.步骤s100:连续通过光栅数据获取清洁机器人的光栅位移数据,且通过光流数据检测清洁机器人的光流位移数据;
42.步骤s200:检测光栅位移数据和光流位移数据之间的实时线性比例;
43.步骤s300:当所述实时线性比例与基准线性比例之间的差距超过第一预设比例时,确定清洁机器人发生了碰撞。
44.光流位移数据和光栅位移数据是分别连续获取的,二者通过连续采样,分别形成一条曲线,分别通过光栅和光流检测清洁机器人的光栅位移数据和光流位移数据,并且检测二者之间的线性比例,因为当清洁机器人是正常行走的时候,光栅位移数据和光流位移数据均能够正常获取,因此,光栅位移数据和光流位移数据线性相关。根据清洁机器人所行走的地面的不同,光栅位移数据和光流位移数据之间的线性关系并非一成不变,根据清洁机器人所行走的地面,设置相应的基准线性比例,当清洁机器人的光栅位移数据和光流位移数据接近这一线性比例的时候,才能保证清洁机器人的行驶是正常的,当光栅位移数据和光流位移数据差距过大,超过了第一预设比例时,确定清洁机器人发生了碰撞。该方案能够根据清洁机器人的行驶环境,通过光流和光栅数据判断清洁机器人是否发生碰撞,防止漏检。在一种实施例中,清洁机器人在50ms采样周期内检测采集到的光栅位移数据和光流位移数据之间的线性比例。所述第一预设比例在本实施例中设置为20%,考虑到常见的地面对光流位移数据和光栅位移数据的影响,通常清洁机器人光流位移数据和光栅位移数据之间的线性比例不会超过20%,当光流位移数据和光栅位移数据之间的线性比例超过了20%,清洁机器人能够准确判定产生碰撞的前提下,做到尽快响应。
45.光流组件放在机器人底座上(可以是底座上任意位置)。移动机器人的底座上设置有左右两个边轮;陀螺仪、加速度计可以放置在机器人的控制主板内任意位置用于感测机器人的转动;清洁机器人能够处理相关传感器的参数,并能够输出控制信号到机器人的执行部件。光流组件也可以装设在移动机器人的底座上任意位置。其中边轮上安装有光栅,并通过光源照射,还接收反光,用于检测相应轮子转动的速度;光流组件上装设的光流组件的镜头朝向平行于地面,光流组件上还带有发光led,发光led可以根据环境光的亮度自动关闭或者打开,当地面的亮度比较低时,就打开led灯,当环境光的亮度比较高时,就关闭led灯,适应性的对光流组件照射的区域进行补光。
46.要理解的是,当机器人沿不同反光能力和纹理的底面进行行走的时候。,机器人所行进的实际距离可能与通过光栅检测的边轮转动所产生的距离不同。因此,在机器人通过不同地面时,位置估计误差可能会随时间累积。因此,机器人可能无法建立准确的环境地图或者可能无法有效、准确和/或安全地航行于环境中,从而不能用于执行任务,例如真空除尘。
47.光流组件每隔一定时间获取图像数据,通过图像数据帧与帧之间的移动方向和距离,结合时间间隔,将数据在时间维度上进行积分,再从光流坐标系转换到清洁机器人所在的大世界坐标系得到光流位移数据;将光栅检测的边轮转动情况转化为转动距离,并且在时间维度上进行积分计算,再从机器坐标系转换到光流坐标系得到光栅位移数据。
48.光流组件通过一定速率连续采集物体表面图像,再由机器人对所产生的图像像素点进行分析。由于相邻的两幅图像总会存在相同的特征,所以通过对比这些特征点的位置变化信息,便可以判断出物体表面特征的平均运动;然后根据同一像素点灰度不变原则及
同一图像区域内像素点速度相同原则,建立光流场方程并求解得到像素点的运动速度,然后进行积分计算,从而利用所述光流组件获取的图像特征信息积分计算出机器人在所述第一预设时间内获取的图像位移量,而图像位移量为光流坐标系下的数值,其单位需转换为里程距离单位,故把图像位移量转化为与光栅位移数据相同量纲的位移量。
49.在本发明中,第一预设比例设置为百分之二十。
50.进一步的,所述基准线性比例的获取方式,具体包括,驱动清洁机器人在单一表面类型的地面上行走,以连续获取光栅位移数据和光流位移数据,并且分别形成曲线;
51.拟合步骤,对清洁机器人在单一表面类型的地面上行走时产生的所述光栅位移速率和光流位移速率进行线性拟合,以获取清洁机器人在所述表面类型的地面上行走时,相对应的基准线性比例。
52.具体的,当清洁机器人在材质相同表面水平的地面上正常行驶时,所述光栅位移数据对应的曲线和光流位移数据对应的曲线,变化趋势一致,通常在计算基准线性比例时,控制清洁机器人在单一表面类型的地面上做匀速直线运动,以保证光栅位移数据和光流位移数据对应的曲线变化趋势一致。基准线性比例根据清洁机器人在不同类型的地面上行走有所不同,因此当清洁机器人在不同的地面上运行的时候,需要给定特定的基准线性比例,通过在单一表面类型的地面上行走时产生的光栅位移数据和光流位移数据进行线性拟合,以得到基准线性比例,该方案无需对所有类型的地面对应的基准线性比例进行预设,能够根据自身实际所处环境推算基准线性比例,该方案适应性强。
53.通过线性拟合以确定光栅位移数据和光流位移数据之间的基准线性比例,具体是将同一时间点的光栅位移数据和光流位移数据之一作为自变量,将光栅位移数据和光流位移数据之间的比值作为因变量,建立映射,连续的一端时间内的上述自变量和因变量形成一组映射,上述一组映射反应了光栅位移数据和光流位移数据在不同数值大小时的对应关系,这一组映射是离散的,对这一组映射进行线性拟合,以得到一个线性函数,这一线性函数反应了不同数值大小之下光栅位移数据和光流位移数据之间的比例关系,即基准线性比例。
54.进一步的,所述检测光栅位移数据和光流位移数据之间的实时线性比例之后,该方法还包括:当所述实时线性比例与基准线性比例之间的差距超过第二预设比例时,检测光流位移数据的变化量;
55.当光流位移数据在预设时间内没有归零时,执行拟合步骤,以更新所述基准线性比例。
56.清洁机器人在行走过程中可能会跨越不同表面类型的地面,设置第二预设比例,并且在光栅位移数据和光流位移数据之间的实时线性比例与基准线性比例之间的差距超过第二预设比例时,清洁机器人可能移动到了其他类型表面的地面上了,在一定时间之后,清洁机器人的光流位移数据没有归零,说明清洁机器人还在运行,没有受困或发生碰撞,此时执行拟合步骤,实时更新基准线性比例,保证基准线性比例的精度,防止误判。通常第二预设比例小于第一预设比例,清洁机器人的实时线性比例与基准线性比例在发生碰撞以外的情况下,能够产生的差距有限。第二预设比例根据地面的不同分别设置,也即不同的基准线性比例对应有相应的第二预设比例,因为清洁机器人在不同地面上行走时,光栅位移数据和光流位移数据都会受到地面的影响从而形成不同的曲线,光栅位移数据和光流位移数
据之间的线性比例关系也会受到影响,相应的光栅位移数据和光流位移数据在清洁机器人正常行驶的状态下,产生的当前线性比例可能产生的波动也有不同,因此第二预设比例根据地面的不同,与基准线性比例对应性的设置。
57.进一步的,所述光栅位移数据和光流位移数据为清洁机器人的速度数据;
58.所述确定清洁机器人发生了碰撞,是驱动清洁机器人以固定速度前行时,通过所述实时线性比例与基准线性比例之间的差距超过第一预设比例确定。
59.进一步的,所述光栅位移数据和光流位移数据为清洁机器人的角速度数据;
60.所述确定清洁机器人发生了碰撞,是驱动清洁机器人以固定绕弧半径进行绕弧时,通过所述实时线性比例与基准线性比例之间的差距超过第一预设比例确定。
61.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
62.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
63.进一步参考图2,作为对上述图1所示方法的实现,本技术提供了一种基于光流的机器人碰撞检测装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
64.基于光流的机器人碰撞检测装置,包括:
65.数据获取模块100,用于连续通过光栅数据获取清洁机器人的光栅位移数据,且通过光流数据检测清洁机器人的光流位移数据;
66.监控模块200,用于检测光栅位移数据和光流位移数据之间的实时线性比例;
67.判断模块300,用于当所述实时线性比例与基准线性比例之间的差距超过第一预设比例时,确定清洁机器人发生了碰撞。
68.本技术实施例主要有以下有益效果:分别通过光栅和光流检测清洁机器人的光栅位移数据和光流位移数据,并且检测二者之间的线性比例,因为当清洁机器人是正常行走的时候,光栅位移数据和光流位移数据均能够正常获取,因此,光栅位移数据和光流位移数据线性相关。根据清洁机器人所行走的地面的不同,光栅位移数据和光流位移数据之间的线性关系并非一成不变,根据清洁机器人所行走的地面,设置相应的基准线性比例,当清洁机器人的光栅位移数据和光流位移数据接近这一线性比例的时候,才能保证清洁机器人的行驶是正常的,当光栅位移数据和光流位移数据差距过大,超过了第一预设比例时,确定清洁机器人发生了碰撞。该方案能够根据清洁机器人的行驶环境,通过光流和光栅数据判断清洁机器人是否发生碰撞,防止漏检。
69.进一步的,还包括基准线性比例计算模块,具体包括,曲线记录子模块,用于驱动
清洁机器人在单一表面类型的地面上行走,以连续获取光栅位移数据和光流位移数据,并且分别形成曲线;
70.拟合子模块,用于对清洁机器人在单一表面类型的地面上行走时产生的所述光栅位移速率和光流位移速率进行线性拟合,以获取清洁机器人在所述表面类型的地面上行走时,相对应的基准线性比例。
71.进一步的,还包括:更新模块,用于当所述实时线性比例与基准线性比例之间的差距超过第二预设比例时,检测光流位移数据的变化量;
72.还用于当光流位移数据在预设时间内没有归零时,调用拟合子模块,以更新所述预设比例。
73.为解决上述技术问题,本技术实施例还提供计算机设备。具体请参阅图3,图3为本实施例计算机设备基本结构框图。
74.所述计算机设备6包括通过系统总线相互通信连接存储器61、处理器62、网络接口63。需要指出的是,图中仅示出了具有组件61-63的计算机设备6,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
75.所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
76.所述存储器61至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器61可以是所述计算机设备6的内部存储单元,例如该计算机设备6的硬盘或内存。在另一些实施例中,所述存储器61也可以是所述计算机设备6的外部存储设备,例如该计算机设备6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器61还可以既包括所述计算机设备6的内部存储单元也包括其外部存储设备。本实施例中,所述存储器61通常用于存储安装于所述计算机设备6的操作系统和各类应用软件,例如基于光流的机器人碰撞检测方法的程序代码等。此外,所述存储器61还可以用于暂时地存储已经输出或者将要输出的各类数据。
77.所述处理器62在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器62通常用于控制所述计算机设备6的总体操作。本实施例中,所述处理器62用于运行所述存储器61中存储的程序代码或者处理数据,例如运行所述基于光流的机器人碰撞检测方法的程序代码。
78.所述网络接口63可包括无线网络接口或有线网络接口,该网络接口63通常用于在所述计算机设备6与其他电子设备之间建立通信连接。
79.本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机
可读存储介质存储有基于光流的机器人碰撞检测程序,所述基于光流的机器人碰撞检测程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于光流的机器人碰撞检测方法的步骤。
80.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
81.显然,以上所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,附图中给出了本技术的较佳实施例,但并不限制本技术的专利范围。本技术可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本技术的公开内容的理解更加透彻全面。尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本技术说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本技术专利保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1