技术领域
[0001] 本发明涉及智能家电技术领域,尤其涉及一种清洁机器人控制方法、清洁机器人及计算机可读存储介质。
相关背景技术
[0002] 清洁机器人在对房间进行清洁时,通常会对障碍物(墙壁、桌子、椅子和茶几等)进行测距,以对障碍物进行沿边清洁或避障。然而清洁机器人一般使用单点测距的传感器(例如红外传感器、TOF传感器、PSD传感器等)测量自身与障碍物距离,这些传感器只能测量到传感器安装在清洁机器人上的某个位置高度的障碍物的距离,因此对于一些不规则的障碍物,测得障碍物与清洁机器人之间的实际距离不够准确,从而清洁机器人与障碍物可能会发生碰撞,从而造成墙体的擦碰掉漆、家具和清洁机器人被刮花的情况。
具体实施方式
[0052] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0053] 通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054] 在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
[0055] 此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0056] 除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
[0057] 实施例1
[0058] 本公开实施例提供了一种清洁机器人控制方法,应用于设置有第一传感器和第二传感器的清洁机器人,其中,第二传感器的设置高度大于第一传感器的设置高度,用于根据高度不同的第一传感器和第二传感器获得清洁机器人机身边缘与障碍物之间的实际距离,并且根据实际距离控制清洁机器人进行沿边清洁,或者根据实际距离控制清洁机器人进行避障。
[0059] 请参见图1,清洁机器人控制方法包括步骤S101~S104,以下对各步骤进行详细说明。
[0060] 步骤S101,在同一时刻下,通过所述第一传感器获取第一环境数据,通过所述第二传感器获取第二环境数据。
[0061] 具体地,清洁机器人在工作过程中,清洁机器人的第一传感器和第二传感器会实时采集周围环境的数据,清洁机器人会获取第一传感器和第二传感器在同一时刻下采集的第一环境数据和第二环境数据。
[0062] 需要说明的是,清洁机器人在移动的过程中,清洁机器人所处的环境会变化,通过获取在同一时刻下的第一环境数据和第二环境数据,能够确保第一环境数据和第二环境数据对应的环境相同。
[0063] 步骤S102,根据所述第一环境数据获取所述第一传感器与障碍物之间的第一距离,根据所述第二环境数据获取所述第二传感器与所述障碍物之间的第二距离。
[0064] 在本实施例中,示例性的,请参见图2A和图2B,清洁机器人内部的处理器根据第一环境数据计算第一传感器2011与斜面的障碍物202之间的第一距离L1,根据第二环境数据计算第二传感器2012与斜面的障碍物202之间的第二距离L2。这样,根据设置位置不同的传感器所获取的数据分别计算得到距离,为后续确定实际距离提供了准确的数据基础。
[0065] 步骤S103,根据所述第一距离和所述第二距离确定所述清洁机器人的机身边缘与所述障碍物之间的实际距离。
[0066] 在本实施例中,此时所得到的第一距离L1和第二距离L2仅是传感器与障碍物之间的距离,还不能准确反映清洁机器人的机身边缘与障碍物之间的实际距离,因此还需要根据第一距离L1和第二距离L2进行数据对比或其他数据处理方式,来确定机身边缘与障碍物之间的实际距离。
[0067] 示范性的,若第一传感器和第二传感器都设置在清洁机器人的同一侧的机身边缘,且第一传感器或第二传感器都为光电位置传感器(Position Sensitive Detectors,PSD),通过PSD传感器发射一束红外光或激光,这束光照射在障碍物上,再反射回来聚焦到PSD传感器的光敏面上,通过检测光点在光敏面上的位置,进而确定出第一传感器与障碍物的第一距离和第二传感器与障碍物的第二距离,由于第一传感器和第二传感器都设置在机身边缘,在障碍物的形状不规则的情况下,因此可以将第一距离和第二距离中的最小距离作为机身边缘与障碍物之间的实际距离。
[0068] 步骤S104,根据所述实际距离进行沿边清洁,或者,根据所述实际距离进行避障。
[0069] 具体地,根据实际距离控制清洁机器人移动至预设的沿边距离,以对障碍物进行沿边清洁;或者,根据实际距离控制清洁机器人移动至预设的安全距离后,再进行转弯以进行避障。
[0070] 其中,沿边距离和安全距离可以是根据人工经验进行预先设定;沿边距离是可以对障碍物的边缘进行清洁,且不会碰撞到障碍物的距离;安全距离是不会造成清洁机器人漏扫,且不会碰撞到障碍物的距离。
[0071] 在本实施例中,对于不同的不规则障碍物,例如图3中斜面的障碍物202(如茶几腿、椅子腿等家具),或具有悬空部分的障碍物203(如悬空的茶几)、上侧具有突出部的障碍物204(如带有悬梁的电视柜、床等家具)等,均可通过清洁机器人201根据两个不同高度的传感器所测得的数据得到实际距离,使得对于不规则的障碍物,清洁机器人201所得的实际距离更加准确,进一步的,再根据实际距离进行沿边清洁,或者,根据实际距离进行避障,可以避免清洁机器人在清洁时碰撞到障碍物,从而避免清洁机器人和障碍物的损坏。
[0072] 在一具体实施例中,所述第一传感器位于所述机身边缘,所述第二传感器位于所述清洁机器人的机身上表面。
[0073] 具体地,在本实施例中,请参见图2A和图2B,第一传感器2011位于清洁机器人201的机身边缘,第二传感器2012位于清洁机器人201的机身上表面。
[0074] 示例性地,第一传感器可以位于清洁机器人的机身前侧边缘、机身左侧边缘或机身右侧边缘;第二传感器可以位于清洁机器人的机身上表面的中心、前部或后部。
[0075] 在一具体实施例中,所述第一传感器为红外传感器、TOF传感器或PSD传感器,所述第二传感器为激光雷达。
[0076] 具体地,红外传感器通过发射红外光并检测反射回来的光线来判断障碍物的距离,TOF(Time‑of‑Flight)传感器利用光或声波的飞行时间来测量障碍物与传感器之间的距离,PSD(Position Sensitive Device)传感器通过检测光的入射位置变化来测量障碍物的距离。
[0077] 在本实施例中,由于通常激光雷达设置的位置较高,常用于定位和建图,因此,将激光雷达作为第二传感器,用来确认第二距离,不需要额外再增加成本另外在清洁机器人上增设传感器。
[0078] 在一具体实施例中,步骤S101包括:根据所述第一传感器的位置,通过所述第二传感器获取待处理数据;将距离所述障碍物最近的所述待处理数据作为所述第二环境数据。
[0079] 需要说明的是,由于激光雷达需要进行定位和建图,通常都会360°的对周围环境进行扫描,从而可以采集得到各个方向上的环境数据,然而,第一传感器是单点测距传感器,只能根据第一传感器设置在清洁机器人上的位置采集特定方向上的环境数据,因此,为保障第一环境数据和第二环境数据对应的障碍物的一致性,需要先根据第一传感器的位置,通过第二传感器获取待处理数据。
[0080] 示例性地,以清洁机器人前进的方向作为清洁机器人的前端,并且以清洁机器人前进的方向作为0°,逆时针方向为角度增加方向;若第一传感器设置在清洁机器人的前侧,则获取第二传感器采集的‑90°~﹢90°方向上的环境数据,并将该方向上的环境数据作为待处理数据;若第一传感器设置在清洁机器人的左侧,则获取第二传感器采集的0°~﹢180°方向上的环境数据,并将该方向上的环境数据作为待处理数据。
[0081] 进一步地,再从待处理数据中获取到距离障碍物最近的第二环境数据,进而可保障后续确定清洁机器人的机身边缘与障碍物之间的实际距离的准确性。
[0082] 在一具体实施例中,所述第一传感器位于所述清洁机器人的右侧边,所述根据所述第一传感器的位置,通过所述第二传感器获取待处理数据,包括:通过所述第二传感器获取沿顺时针方向的0°~‑180°范围内的所述待处理数据。
[0083] 在本实施例中,以清洁机器人前进的方向作为清洁机器人的前端,并且以清洁机器人前进的方向作为0°,逆时针方向为角度增加方向;第一传感器位于清洁机器人的右侧边时,则通过第二传感器获取沿顺时针方向的0°~‑180°范围内的待处理数据,即可以获取与第一传感器在同一侧的待处理数据。
[0084] 请参见图4,在一具体实施例中,步骤S103包括步骤S1031~S1032,以下对各步骤进详细说明。
[0085] 步骤S1031,根据所述第二距离和所述清洁机器人的机身参数获取所述机身边缘与所述障碍物之间的第三距离;所述机身参数为标定后的所述清所述第二传感器的位置与所述机身边缘之间的距离。
[0086] 具体地,在本实施例中,当第二传感器位于清洁机器人的机身上表面时,可将第二距离L2减去清洁机器人的机身参数,得到机身边缘与障碍物之间的第三距离L3。
[0087] 需要说明的是,由于第二传感器可以位于清洁机器人的机身上表面的中心、前部或后部,为便于后续在清洁机器人工作时对第二传感器采集的数据进行处理,在清洁机器人出厂前会对第二传感器的位置进行标定,清洁机器人内部的处理器会将第二传感器的位置标定在清洁机器人的机身上表面的中心位置。
[0088] 下面对机身参数具体进行说明:
[0089] 以第二传感器为激光雷达为例,当忽略激光雷达的体积时,可以将清洁机器人的机身半径作为机身参数。当激光雷达的体积比较大,不能忽略时,将激光雷达的边缘与清洁机器人的机身边缘之间的距离作为清洁机器人的机身参数,这样,考虑了激光雷达的体积,提高了机身边缘与障碍物之间实际距离的计算精度。
[0090] 示范性的,请再次参见图2A,以第二传感器2012为激光雷达为例,第二距离L2实际为激光雷达的中心与障碍物之间的距离。那么,为了能更准确得到机身边缘与障碍物之间的第三距离L3,则第二距离L2减去清洁机器人本身的机身半径,得到机身边缘与障碍物之间的第三距离L3。
[0091] 步骤S1032,根据所述第一距离和所述第三距离确定所述机身边缘与所述障碍物之间的实际距离。
[0092] 在本实施例中,第一距离L1为位于清洁机器人机身边缘的第一传感器与障碍物之间的距离,第三距离L3为位于清洁机器人机身上表面的第二传感器获得的机身边缘与障碍物之间的距离。第一传感器与第二传感器的位置不同,因此,第一距离L1和第三距离L3彼此均不能单独反映机身边缘与障碍物之间的实际距离,而是需要综合二者来确定实际距离。
[0093] 在一具体实施例中,步骤S1032包括:判断所述第一距离是否小于所述第三距离;若所述第一距离小于所述第三距离,则将所述第一距离作为所述实际距离;若所述第一距离大于所述第三距离,则将所述第三距离作为所述实际距离。
[0094] 示例性的,如图2A所示,若第一距离L1大于第三距离L3,则将第三距离L3作为实际距离;如图2B所示,若第一距离L1小于第三距离L3,则将第一距离L1作为实际距离。
[0095] 在本实施例中,由于第一传感器和第二传感器的设置高度不同,将数值最小的距离作为实际距离,在障碍物不规则的情况下,可以更准确的确定清洁机器人与障碍物的实际距离,在避免清洁机器人与障碍物发生碰撞的同时,清洁机器人还可以根据实际距离尽量靠近障碍物,从而避免对障碍物的边角清洁不到位。
[0096] 在一具体实施例中,所述判断所述第一距离是否小于所述第三距离之前,所述方法还包括:确定所述第一距离与所述第三距离之间的距离差值;若所述距离差值小于或等于预设差值阈值,则将所述第一距离作为所述实际距离;相应的,判断所述第一距离是否小于所述第三距离,包括:若所述距离差值大于预设差值阈值,则判断所述第一距离是否小于所述第三距离。
[0097] 具体地,预设差值阈值可以根据人工经验进行预先设定,例如可以是1cm。
[0098] 在本实施例中,若第一距离L1与第三距离L3之间的距离差值小于或等于预设差值阈值,则可知第一距离L1与第三距离L3的距离相差较小,或者第一距离L1与第三距离L3的距离相等,由于第一距离L1为直接根据位于机身边缘的第一传感器获取的第一环境数据所计算得到的第一传感器与障碍物之间的距离,并且第一传感器会对特定方向的环境数据实时采集,而第二传感器是对各个方向的环境数据进行采集,因此要确定某个特定方向的障碍物与机身边缘之间的距离时,第一传感器采集的环境数据的采集频率更高,综上,此时将第一距离L1作为清洁机器人与障碍物的实际距离,会更准确。若第一距离L1与第三距离L3之间的距离差值大于预设差值阈值,则可知第一距离L1与第三距离L3的距离相差较大,此时再根据第一距离L1和第三距离L3的大小,从第一距离L1和第三距离L3中确定实际距离。
[0099] 在一具体实施例中,所述根据所述第一距离和所述第三距离确定所述机身边缘与所述障碍物之间的实际距离,包括:判断所述第一距离或所述第三距离是否小于预设距离阈值;若是,则根据所述第一距离和所述第三距离确定所述机身边缘与所述障碍物之间的实际距离。
[0100] 具体地,若是,即第一距离L1或第三距离L3小于预设距离阈值,则可知清洁机器人已接近障碍物,可进行后续根据第一距离和第三距离确定机身边缘与障碍物之间的实际距离的步骤。若否,即第一距离L1和第三距离L3均大于或等于预设距离阈值,则可知清洁机器人距离障碍物较远,需要清洁机器人继续按照预设的规划路径进行移动,并转至执行步骤S101。
[0101] 可选的,预设距离阈值可以是8m。
[0102] 在一具体实施例中,步骤S101之后,该方法还包括:根据所述第二环境数据获取所述清洁机器人的目标旋转角度;相应的,步骤S104包括:根据所述实际距离和所述目标旋转角度进行沿边清洁。
[0103] 具体地,第二环境数据为点云数据,根据点云数据,清洁机器人内部的处理器可以计算出目标旋转角度。
[0104] 在本实施例中,同时根据实际距离和目标旋转角度进行沿边清洁,可以更好的适应不同形状的障碍物,达到更好的沿边清洁效果。
[0105] 示范性的,请参见图5,根据清洁机器人当前的前进方向确定基准角度,基准角度一般为0°;并将顺时针方向或逆时针方向确定为角度增加方向。
[0106] 进一步地,将由第二传感器指向障碍物的方向确定为障碍物方向。
[0107] 进一步地,基于基准角度和角度增加方向,根据第二环境数据获取障碍物方向与前进方向的夹角角度θ1。此时,若以逆时针方向为角度增加方向,则此时θ1=‑135°。
[0108] 进一步地,将夹角角度θ1与预设角度θ2的角度差值作为目标旋转角度。以预设角度θ2=‑90°为例,则目标旋转角度为‑45°。此时,‑45°意为旋转方向为顺时针,旋转角度值为45°。
[0109] 需要说明的是,预设角度是根据障碍物方向与前进方向的夹角期望值进行确定。一般地,期望障碍物方向与前进方向垂直,因此,在以逆时针方向为角度增加方向的基础上,预设角度θ2=‑90°。
[0110] 在一具体实施例中,所述根据所述实际距离和所述目标旋转角度进行沿边清洁,包括:根据所述实际距离与预设沿边距离确定所述清洁机器人的调整距离;控制所述清洁机器人按照所述调整距离移动至目标位置;在所述目标位置进行沿边清洁;同时,根据所述目标旋转角度调整所述清洁机器人的前进方向与所述障碍物平行,以进行沿边清洁。
[0111] 在本实施例中,根据实际距离与预设沿边距离确定清洁机器人的调整距离,该调整距离一般略小于实际距离,用于控制清洁机器人的机身边缘与障碍物之间留有安全距离。
[0112] 进一步地,控制清洁机器人按照调整距离移动至目标位置,而清洁机器人在目标位置进行沿边清洁,从而可避免清洁机器人碰撞到障碍物。并且,清洁机器人同时根据目标旋转角度进行旋转,以实现旋转后的清洁机器人的前进方向与可障碍物平行,从而进一步避免清洁机器人刮蹭到障碍物,进而实现更好的沿边清洁。
[0113] 为了便于本领域技术人员了解本申请,下面结合图6对本申请提供的方法进行详细介绍,在一具体实施例中,清洁机器人控制方法包括以下几个步骤:
[0114] S601,在同一时刻下,通过第一传感器获取第一环境数据,通过第二传感器获取第二环境数据。
[0115] S602,根据第一环境数据获取第一传感器与障碍物之间的第一距离,根据第二环境数据获取第二传感器与障碍物之间的第二距离;根据第二环境数据获取清洁机器人的目标旋转角度。
[0116] S603,根据第二距离和清洁机器人的机身参数获取机身边缘与障碍物之间的第三距离;机身参数为标定后的第二传感器的位置与机身边缘之间的距离。
[0117] S604,判断第一距离或第三距离是否小于预设距离阈值。
[0118] 具体地,若是,则执行S605;若否,则返回执行S601。
[0119] S605,确定第一距离与第三距离之间的距离差值。
[0120] 具体地,若距离差值大于预设差值阈值,则执行S606;若距离差值小于或等于预设差值阈值,则执行S609。
[0121] S606,若距离差值大于预设差值阈值,判断第一距离是否小于第三距离。
[0122] 具体地,若是,则执行S607;若否,则执行S608。
[0123] S607,若第一距离小于第三距离,则将第一距离作为实际距离。
[0124] S608,若第一距离大于第三距离,则将第三距离作为所述实际距离。
[0125] S609,若距离差值小于或等于预设差值阈值,则将第一距离作为实际距离。
[0126] S610,根据实际距离和目标旋转角度进行沿边清洁,或者,根据实际距离进行避障。
[0127] 本实施例提出的清洁机器人控制方法,通过设置在不同高度的传感器,使得对于不规则的障碍物,可以准确的测量出清洁机器人机身边缘与障碍物之间的实际距离,进一步的,再根据实际距离对障碍物进行沿边清洁,或者进行避障,可以避免清洁机器人在遇到不规则的障碍物时碰撞到障碍物。
[0128] 实施例2
[0129] 此外,本公开实施例提供一种清洁机器人控制装置700,应用于设置有第一传感器和第二传感器的清洁机器人,所述第二传感器的设置高度大于所述第一传感器的设置高度,请参见图7,该装置包括:
[0130] 第一获取模块701,用于在同一时刻下,通过所述第一传感器获取第一环境数据,通过所述第二传感器获取第二环境数据;
[0131] 第二获取模块702,用于根据所述第一环境数据获取所述第一传感器与障碍物之间的第一距离,根据所述第二环境数据获取所述第二传感器与所述障碍物之间的第二距离;
[0132] 确定模块703,用于根据所述第一距离和所述第二距离确定所述清洁机器人的机身边缘与所述障碍物之间的实际距离;
[0133] 控制模块704,用于根据所述实际距离进行沿边清洁,或者,根据所述实际距离进行避障。
[0134] 可选的,确定模块703,用于根据所述第二距离和所述清洁机器人的机身参数获取所述机身边缘与所述障碍物之间的第三距离;所述机身参数为标定后的所述第二传感器的位置与所述机身边缘之间的距离;根据所述第一距离和所述第三距离确定所述机身边缘与所述障碍物之间的实际距离。
[0135] 可选的,确定模块703,用于判断所述第一距离是否小于所述第三距离;若所述第一距离小于所述第三距离,则将所述第一距离作为所述实际距离;若所述第一距离大于所述第三距离,则将所述第三距离作为所述实际距离。
[0136] 可选的,确定模块703,用于确定所述第一距离与所述第三距离之间的距离差值;若所述距离差值小于或等于预设差值阈值,则将所述第一距离作为所述实际距离;相应的,判断所述第一距离是否小于所述第三距离,包括:若所述距离差值大于预设差值阈值,则判断所述第一距离是否小于所述第三距离。
[0137] 可选的,确定模块703,用于判断所述第一距离或所述第二距离是否小于预设距离阈值;若是,则根据所述第一距离和所述第三距离确定所述机身边缘与所述障碍物之间的实际距离。
[0138] 可选的,所述第一传感器为红外传感器、TOF传感器或PSD传感器,所述第二传感器为激光雷达。
[0139] 可选的,确定模块703,用于根据所述第二环境数据获取所述清洁机器人的目标旋转角度;
[0140] 控制模块704,用于根据所述实际距离和所述目标旋转角度进行沿边清洁。
[0141] 可选的,控制模块704,用于根据所述实际距离与预设沿边距离确定所述清洁机器人的调整距离;控制所述清洁机器人按照所述调整距离移动至目标位置;在所述目标位置进行沿边清洁;同时,根据所述目标旋转角度调整所述清洁机器人的前进方向与所述障碍物平行,以进行沿边清洁。
[0142] 可选的,第一获取模块701,还用于根据所述第一传感器的位置,通过所述第二传感器获取待处理数据;将距离所述障碍物最近的所述待处理数据作为所述第二环境数据。
[0143] 可选的,所述第一传感器位于所述清洁机器人的右侧边,第一获取模块701,用于获取沿顺时针方向的0°~‑180°范围内的所述待处理数据。
[0144] 本公开实施例提供的装置,可以执行实施例1中所提供的清洁机器人控制方法的步骤,为避免重复,不再赘述。
[0145] 实施例3
[0146] 此外,本公开实施例提供一种清洁机器人,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时实现实施例1的清洁机器人控制方法。
[0147] 本公开实施例提供的清洁机器人,可以执行实施例1中所提供的清洁机器人控制方法的步骤,为避免重复,不再赘述。
[0148] 实施例4
[0149] 本公开实施例提出一种计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时实现本实施例1的清洁机器人控制方法。
[0150] 在本实施例中,计算机可读存储介质可以为只读存储器(Read‑Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
[0151] 本实施例提供的计算机可读存储介质可以实现实施例1所提供的清洁机器人控制方法,为避免重复,在此不再赘述。
[0152] 在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
[0153] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0154] 以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。