清洁机器人的打滑检测方法、装置、存储介质和设备与流程

文档序号:32202911发布日期:2022-11-16 03:35阅读:130来源:国知局
清洁机器人的打滑检测方法、装置、存储介质和设备与流程

1.本发明属于清洁机器人技术领域,具体地讲,涉及一种清洁机器人的打滑检测方法、打滑检测装置、计算机可读存储介质和计算机设备。


背景技术:

2.科技的进步推动社会发展,扫地机器人等清洁机器人也从近几年开始走进千家万户。随着扫地机器人越来越普及,扫地机器人面临的使用场景也越发复杂。其中使用惯性导航的清洁机器人因其使用轮组码表作为里程计,存在在地毯、湿滑地面不能及时并准确地判断轮组打滑的情况,这种情况将会导致扫地机建图时出现地图平移、漏建、多建等情况,最终导致清洁机器人重复清扫、机器无法返回充电座充电、无法抵达预设导航点而导致漏扫等问题。
3.现有技术中通常比较轮组里程计数据与陀螺仪芯片采集的数据来进行打滑判断,陀螺仪芯片在平坦路面,数据较准确,在非平坦路面数据误差大,这种情况用来判断打滑准确性不足。且从陀螺仪芯片获得里程数据需要先读取陀螺仪芯片获得加速度,积分后获得当前速度,再获得单位时间内的距离。在采样频率不足的情况下,算出来的距离误差较大,陀螺仪在用于判断打滑时存在不及时、不准确的问题。


技术实现要素:

4.本发明解决的技术问题是:如何及时且准确地判断清洁机器人是否处于打滑状态。
5.一种清洁机器人的打滑检测方法,所述清洁机器人安装有轮组传感器和光流传感器,所述打滑检测方法包括:
6.实时获取所述轮组传感器产生的轮组里程数据和所述光流传感器产生的光流里程数据;
7.根据所述轮组里程数据和所述光流里程数据进行打滑判断,并根据判断结果更新打滑参数,完成一次打滑检测子任务,其中当判断结果为打滑时将所述打滑参数增大,当判断结果为未打滑时将所述打滑参数减小;
8.重复进行打滑检测子任务,直至当所述打滑参数达到触发值时,确定所述清洁机器人处于打滑状态。
9.优选地,所述根据所述轮组里程数据和所述光流里程数据进行打滑判断的方法包括:
10.根据所述轮组里程数据计算得到轮组角速度,根据所述光流里程数据计算得到光流角速度,根据所述轮组角速度和所述光流角速度的差值进行打滑判断;
11.和/或,根据所述轮组里程数据计算得到轮组线速度,根据所述光流里程数据计算得到光流线速度,根据所述轮组线速度和所述光流线速度的差值进行打滑判断。
12.优选地,所述打滑检测方法还包括:
13.获取所述清洁机器人的预设角速度和预设线速度;
14.根据所述预设角速度、所述预设线速度、所述轮组角速度、所述光流角速度、所述轮组线速度、所述光流线速度确定所述清洁机器人的打滑类型。
15.优选地,所述打滑类型为如下类型的其中一种:前行双轮打滑、前行左轮打滑、前行右轮打滑、后退双轮打滑、后退左轮打滑、后退右轮打滑、顺时针双轮打滑、顺时针左轮打滑、顺时针右轮打滑、逆时针双轮打滑、逆时针左轮打滑、逆时针右轮打滑、前行向右双轮打滑、前行向右左轮打滑、前行向右右轮打滑、前行向左双轮打滑、前行向左左轮打滑、前行向左右轮打滑、后退向右双轮打滑、后退向右左轮打滑、后退向右右轮打滑、后退向左双轮打滑、后退向左左轮打滑、后退向左右轮打滑。
16.优选地,所述打滑检测方法还包括:
17.在确定所述清洁机器人处于打滑状态之后,继续进行打滑检测子任务;
18.当打滑检测子任务的判断结果为打滑且打滑参数大于触发值时,确定所述清洁机器人处于再次打滑状态。
19.优选地,在重复进行打滑检测子任务并更新打滑参数过程中,当所述打滑参数达到上限值时停止增大,当所述打滑参数达到下限值停止减小,其中所述触发值大于所述下限值且所述触发值小于所述上限值。
20.优选地,在所述清洁机器人启动后,每8~15毫秒进行一次所述打滑检测子任务。
21.本技术还公开了一种清洁机器人的打滑检测装置,所述打滑检测装置包括:
22.里程数据获取模块,用于实时获取轮组传感器产生的轮组里程数据和光流传感器产生的光流里程数据;
23.打滑检测子任务模块,用于根据所述轮组里程数据和所述光流里程数据进行打滑判断,并根据判断结果更新打滑参数,完成一次打滑检测子任务,其中当判断结果为打滑时将所述打滑参数增大,当判断结果为未打滑时将所述打滑参数减小;
24.打滑状态确定模块,用于当所述打滑参数达到触发值时,确定所述清洁机器人处于打滑状态。
25.本技术还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有清洁机器人的打滑检测程序,所述清洁机器人的打滑检测程序被处理器执行时实现上述的清洁机器人的打滑检测方法。
26.本技术还公开了一种计算机设备,所述计算机设备包括计算机可读存储介质、处理器和存储在所述计算机可读存储介质中的清洁机器人的打滑检测程序,所述清洁机器人的打滑检测程序被处理器执行时实现上述的清洁机器人的打滑检测方法。
27.本发明公开的一种清洁机器人的打滑检测方法和打滑检测装置,具有如下技术效果:
28.通过比较轮组传感器产生的轮组里程数据和光流传感器产生的光流里程数据来确定每次打滑检测子任务的结果,利用了光流传感器的高灵敏性、高精确性的特征,可快速地完成每次打滑检测子任务,这样在短时间内可重复多次子任务,在保证检测及时性的同时,提高了检测准确性。同时,根据结合预设角速度和预设线速度,还可确定具体的打滑类型。
附图说明
29.图1为本发明的实施例一的清洁机器人的打滑检测方法的流程图;
30.图2为本发明的实施例一的清洁机器人的结构示意图;
31.图3为本发明的实施例一的清洁机器人的光流传感器的参数示意图;
32.图4为本发明的实施例一的清洁机器人的运动轨迹示意图;
33.图5为本发明的实施例一的清洁机器人的另一运动轨迹示意图;
34.图6为本发明的实施例一的清洁机器人在第一类运动模式下打滑判断示意图;
35.图7为本发明的实施例一的清洁机器人在第二类运动模式下打滑判断示意图;
36.图8为本发明的实施例一的清洁机器人在第三类运动模式下打滑判断示意图;
37.图9为本发明的实施例二的清洁机器人的打滑检测装置的原理框图;
38.图10为本发明的实施例四的计算机设备示意图。
具体实施方式
39.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
40.在详细描述本技术的各个实施例之前,首先简单描述本技术的技术构思:现有技术中的清洁机器人不能及时准确地检测出是否处于打滑,为此本技术提供了一种清洁机器人的打滑检测方法,通过清洁机器人上安装有光流传感器和轮组传感器,通过比较两种传感器产生的里程数据来确定是否打滑,同时进行多次检测来最终确定清洁机器人是否处于打滑状态,这里利用光流传感器自身的高灵敏性,可快速完成一次打滑检测子任务,并且在较短的一段检测时间完成多次打滑检测子任务,这样在保证及时性的同时提高打滑检测的准确性。
41.具体来说,如图1所示,本实施例一的清洁机器人的打滑检测方法包括如下步骤:
42.步骤s10:实时获取轮组传感器产生的轮组里程数据和光流传感器产生的光流里程数据;
43.步骤s20:根据轮组里程数据和光流里程数据进行打滑判断,并根据判断结果更新打滑参数,完成一次打滑检测子任务,其中当判断结果为打滑时将打滑参数增大,当判断结果为未打滑时将打滑参数减小;
44.步骤s30:重复进行打滑检测子任务,直至当打滑参数达到触发值时,确定清洁机器人处于打滑状态。
45.示例性地,如图2所示,在清洁机器人前进方向上,光流传感器100安装于左轮200和右轮300的前方,且光流传感器100更靠近于右轮300并位于万向轮400的一侧。需要说明的是,光流传感器100的安装位置可根据需要自行设置。轮组传感器可采用光栅传感器,记录左右轮组的转动圈数、转动速度等数据,以形成里程数据,其中轮组传感器产生的里程数据为清洁机器人底盘中心处的里程数据,其产生过程为本领域技术的常见技术,在此不进行赘述。光流传感器100产生的里程数据为清洁机器人在运动过程光流传感器100所在位置处的里程数据。其中,本实施例一采用的光流传感器型号为mx8650a,为确保光流传感器在不同光照强度下能正常工作,本实施例一还在光流传感器上增加4个850nm ir led,其性能
参数如图3。在光流传感器与清洁机器人的主板完成电气连接之后,即可读取光流传感器的里程数据,其读取过程为本领域技术人员熟知的技术,在此不进行赘述。
46.进一步地,结合图4的轨迹示意图来说明根据轮组传感器产生的轮组里程数据和光流传感器产生的光流里程数据进行打滑判断的原理。当清洁机器人预设运动路径为前行向右时,第一实线10代表底盘中心的运动轨迹,第二实线20代表光流传感器处的运动轨迹,在正常匀速运动过程中,底盘中心处的轮组里程数据和光流里程数据均保持稳定,此时轮组里程数据和光流里程数据之间的差异程度保持不变。当行进过程中,例如当左轮200发生打滑,右轮300未打滑时,清洁机器人偏离预设运动轨迹,此时光流传感器处的运动轨迹为以左轮200为中心,光流传感器与左轮200的距离为半径的第一圆弧30,其中当左轮200完全打滑时,光流传感器处的运动轨迹为完整的圆,未完全打滑时,运动轨迹则为椭圆。此时,光流传感器100产生的光流里程数据发生较大变化,由于轮组里程数据是轮组传感器通过检测轮组转动数据来得到的,虽然轮组发生打滑,但是轮组的转动圈数、转动速度等数据基本未发生改变,在误差范围内可认为不改变,因此轮组里程数据也是保持不变的。这样当光流里程数据发生较大改变,而轮组里程数据保持不变时,轮组里程数据与光流里程数据之间的差异程度会发生较大改变,此时可认为清洁机器人发生了打滑。即轮组里程数据与光流里程数据之间的差异程度可表征清洁机器人是否打滑。类似地,当右轮300发生打滑,左轮200未打滑时,光流传感器处的运动轨迹为第二圆弧40。类似地,图5为当清洁机器人预设运动路径为后退向左时的运动轨迹即打滑后的光流传感器处的运动轨迹。
47.进一步地,本实施例一通过多次打滑检测子任务的判断结果来最终确定清洁机器人是否打滑,是为了避免单次检测的不准确性而导致误判,主要有如下可能存在误判的情形。第一种情形是启动阶段,清洁机器人刚启动时,轮组处于加速阶段,即轮组里程数据是不稳定的,同时由于清洁机器人刚运动,光流传感器100采集的数据具有一定滞后性,即光流里程数据不稳定或不准确,因此导致轮组里程数据与光流里程数据的差异性较大,会判断为轮组打滑,但是实际情况轮组并未打滑,此时出现了误判。第二种情形是出现短暂打滑后自行恢复运动的,清洁机器人在正常运动过程,突然发生打滑并在轮组自身动力下较快地恢复了,在这过程中进行的若干次打滑检测子任务结果均为打滑,但是整体上来看,轮组很快恢复正常了,无需采取脱困措施,因此这种情形也不认为是清洁机器人发生打滑。
48.示例性地,本实施例一基于光流传感器的高灵敏性、高精确性的特点,每10毫秒进行一次打滑检测子任务,这样在0.1秒内即可完成10次打滑检测子任务,大大地简短了检测时间,出现打滑情况时可及时地检测出来。
49.进一步地,本实施例一的打滑参数i的初始值为0,当打滑检测子任务的判断结果为打滑时,打滑参数i自增1,当打滑检测子任务的判断结果为未打滑时,打滑参数i自减1,打滑参数i的触发值设置10。需要说明的是,触发值的大小需要根据清洁机器人的启动后加速阶段的时长、运动过程发生打滑后靠轮组自身动力恢复的时长等情况来确定。例如本实施例一清洁机器人的启动加速时间为50ms,即启动加速阶段至多进行5次打滑检测子任务,将触发值设置为10可避免启动阶段的误判。在启动加速阶段完成后,打滑参数i为5,此时继续进行打滑检测子任务,若6次判断结果均为打滑,则打滑参数i递增为11,可确定为清洁机器人处于打滑状态。类似地,根据多次测试,本实施例一清洁机器人的在发生打滑后靠轮组自身动力恢复的时长一般不超过100毫秒,即恢复过程中至多进行10次打滑检测子任务,打
滑参数i的递增量至多为10。
50.进一步地,打滑参数i需要设定下限值,下限值优选为0。在正常运动过程,不断进行打滑检测子任务,此时打滑参数i递减,当打滑参数i减小到下限值时,停止下降,防止出现负数,导致后续发生打滑时需要更多检测次数才能确认为打滑状态,导致检测时间延长。举例来说,在打滑参数i的触发值10的情况下,正常运动过程,不断进行打滑检测子任务,若未设置下限值,打滑参数i减小到-10,此时发生打滑时,打滑参数i从-10递增,当经过21次检测任务时,打滑参数i才增大至11,才能确认处于打滑状态。若设置下限值,打滑参数i至多减小到0,此时发生打滑时,打滑参数i从0递增,当经过11次检测任务时,打滑参数i增大至11,即可确认处于打滑状态,极大地缩短了检测时间。
51.进一步地,打滑检测方法还包括:在确定清洁机器人处于打滑状态之后,继续进行打滑检测子任务;当打滑检测子任务的判断结果为打滑且打滑参数i大于触发值时,确定清洁机器人处于再次打滑状态。在清洁机器人确定为处于打滑状态之后,通常会采取脱困措施,在脱困过程中轮组打滑和未打滑往往交替进行。由于确认打滑后,打滑参数i必然大于触发值,例如打滑参数i增大至20时,采取脱困措施或者轮组自行恢复时,在50毫秒内,即5次打滑检测子任务就恢复了正常,此时打滑参数i减小至15,虽然大于触发值10,但是5次打滑检测子任务均是未打滑,此时则不认为清洁机器人处于打滑状态。进一步地,在恢复过程中,前5次打滑检测子任务将打滑参数i减小至15,然而第6次打滑检测子任务又确定为打滑,此时认为清洁机器人处于打滑状态,说明脱困措施或轮组自行恢复还未取得有效结果。
52.进一步地,打滑参数i需要设定上限值,上限值大于触发值,上限值优选为25。一方面,如果上限值设定过小,例如等于10时,根据上文描述,当在5次打滑检测子任务内就恢复了正常,此时打滑参数i减小至5,若再次发生打滑时,需要至少检测6次,打滑参数i增大至11,才能达到触发值,延长了再次打滑的检测时间。另一方面,上限值设定也不能过大,以便于要能让清洁机器人从打滑中恢复正常行走时及时将打滑参数i的值重置归零。
53.在步骤s20中,根据轮组里程数据和光流里程数据进行打滑判断的方法有两种方式。第一种是根据轮组里程数据计算得到轮组角速度,根据光流里程数据计算得到光流角速度,根据轮组角速度和光流角速度的差值进行打滑判断。第二种是根据轮组里程数据计算得到轮组线速度,根据光流里程数据计算得到光流线速度,根据轮组线速度和光流线速度的差值进行打滑判断。
54.具体来说,根据前文描述可知,在正常运动过程中,轮组里程数据和光流里程数据之间的差异程度保持不变,那么计算得到的角速度差值、线速度差值也保持不变。当发生打滑时,轮组里程数据和光流里程数据之间的差异程度增大,那么计算得到的角速度差值、线速度差值也增大,当差值超出某一阈值时可认为发生打滑了,其中阈值的大小与光流传感器的安装位置、清洁机器人的运动路径、运动快慢相关,另外当打滑类型不同时,其阈值也不相同。
55.下面结合清洁机器人的预设角速度、预设线速度、轮组角速度、光流角速度、轮组线速度、光流线速度确定清洁机器人的打滑类型来确定清洁机器人的打滑类型。其中清洁机器人的运动路径已事先规划好,因此清洁机器人按照规划路径对应的预设角速度、预设线速度进行运动。预设角速度和预设线速度均有三种情况,分别是正值、负值和零值,预设角速度代表清洁机器人的转向运动方向,预设线速度代表清洁机器人的直线运动方向。示
例性地,本实施例一的预设角速度、预设线速度与清洁机器人的运动方向的对应关系定义如下:
56.预设角速度为正值,代表清洁机器人右转;预设角速度为负值,代表清洁机器人左转;预设角速度为零值,代表清洁机器人的转动角度为零,即未发生转向。预设线速度为正值,代表清洁机器人前行;预设线速度为负值,代表清洁机器人后退;预设线速度为零值,代表清洁机器人在直线方向未运动。因此,预设角速度与预设线速度有9种组合,即有9种运动情形,当预设角速度为零值、预设线速度为零值时,表示清洁机器人静止,本实施例一对于静止情形不讨论。下面进一步对8种运动情形进行讨论,分为三类模式。
57.第一类模式是清洁机器人只进行直线运动,即预设角速度为零值,预设线速度为正值或负值。如图6所示,主要判断流程是:首先判断光流角速度与轮组角速度的差值的绝对值是否小于第一角速度阈值,若是则判断轮组线速度与光流线速度的差值是否小于第一线速度阈值,若否则判断光流角速度是否大于第一角速度阈值,最后判断预设线速度的正负,以确定最终打滑类型。
58.第二类模式是清洁机器人只进行转向运动,包括顺时针运动和逆时针运动,即预设线速度为零值,预设角速度为正值或负值。如图7所示,主要判断流程是:首先判断光流角速度与轮组角速度的差值的绝对值是否小于第一角速度阈值,若是则判断预设角速度的正负,若否则判断光流角速度的绝对值是否小于第二角速度阈值,若是则判断预设角速度的正负,若否则判断光流线速度的绝对值是否大于第二线速度阈值,并进一步判断预设角速度的正负,以确定打滑类型。
59.第三类模式是清洁机器人同时进行直线运动和转向运动,即预设线速度为正值或负值,预设角速度为正值或负值。如图8所示,主要判断流程是:首先判断光流角速度与轮组角速度的差值的绝对值是否小于第二角速度阈值,若是则判断预设角速度、预设线速度的正负,若否则判断光流角速度的绝对值是否小于第三角速度阈值,若是则判断预设角速度、预设线速度的正负,若否则判断光流角速度是否大于第三角速度阈值,最后判断预设角速度、预设线速度的正负,以确定打滑类型。
60.本实施例一公开的清洁机器人的打滑检测方法,通过比较轮组传感器产生的轮组里程数据和光流传感器产生的光流里程数据来确定每次打滑检测子任务的结果,利用了光流传感器的高灵敏性、高精确性的特征,可快速地完成每次打滑检测子任务,这样在短时间内可重复多次子任务,在保证检测及时性的同时,提高了检测准确性。
61.如图9所示,本实施例二公开了一种清洁机器人的打滑检测装置,打滑检测装置包括里程数据获取模块101、打滑检测子任务模块102和打滑检测子任务模块103。里程数据获取模块101用于实时获取轮组传感器产生的轮组里程数据和光流传感器产生的光流里程数据;打滑检测子任务模块102用于根据轮组里程数据和光流里程数据进行打滑判断,并根据判断结果更新打滑参数,完成一次打滑检测子任务,其中当判断结果为打滑时将打滑参数增大,当判断结果为未打滑时将打滑参数减小;打滑检测子任务模块103用于当打滑参数达到触发值时,确定清洁机器人处于打滑状态。
62.进一步地,打滑检测子任务模块102还用于根据轮组里程数据计算得到轮组角速度,根据光流里程数据计算得到光流角速度,根据轮组角速度和光流角速度的差值进行打滑判断;和/或,根据轮组里程数据计算得到轮组线速度,根据光流里程数据计算得到光流
线速度,根据轮组线速度和光流线速度的差值进行打滑判断。
63.进一步地,里程数据获取模块101还用于获取清洁机器人的预设角速度和预设线速度,打滑检测子任务模块102还用于根据预设角速度、预设线速度、轮组角速度、光流角速度、轮组线速度、光流线速度确定清洁机器人的打滑类型。
64.进一步地,打滑检测子任务模块102还用于在确定清洁机器人处于打滑状态之后,继续进行打滑检测子任务,打滑检测子任务模块103还用当打滑检测子任务的判断结果为打滑且打滑参数大于触发值时,确定清洁机器人处于再次打滑状态。
65.其中,里程数据获取模块101、打滑检测子任务模块102和打滑检测子任务模块103的详细计算过程可参考实施例一的相关步骤的描述,在此不进行赘述。
66.本实施例三还公开了一种计算机可读存储介质,计算机可读存储介质存储有清洁机器人的打滑检测程序,清洁机器人的打滑检测程序被处理器执行时实现上述的清洁机器人的打滑检测方法。
67.本实施例三还公开了一种计算机设备,在硬件层面,如图10所示,该计算机设备包括处理器12、内部总线13、网络接口14、计算机可读存储介质11。处理器12从计算机可读存储介质中读取对应的计算机程序然后运行,在逻辑层面上形成请求处理装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。计算机可读存储介质11上存储有清洁机器人的打滑检测程序,所述清洁机器人的打滑检测程序被处理器执行时实现上述的清洁机器人的打滑检测方法。
68.计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
69.上面对本发明的具体实施方式进行了详细描述,虽然已表示和描述了一些实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改和完善,这些修改和完善也应在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1