具体实施方式
为了对本申请实施例的技术特征、目的和效果有更加清楚的理解,现对照附图说明本申请实施例的具体实施方式。
在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。
为使图面简洁,各图中只示意性地表示出了与本申请相关的部分,它们并不代表其作为产品的实际结构。另外,为使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个或多个,或仅标示出了其中的一个或多个。
图1示出了本申请示例性实施例的泳池清洁机器人的池壁避障移动方法的处理流程。如图所示,本实施例主要包括以下步骤:
步骤S102,控制泳池清洁机器人沿泳池的池壁上的清扫路线移动以执行池壁清扫任务。
于本实施例中,清扫路线至少包括有多个下行清扫路段。例如,如图2A所示的下行清扫路段BC、下行清扫路段DE,或如图2B所示的下行清扫路段JK、下行清扫路段MN。
于本实施例中,清扫路线至少包括有多个上行清扫路段。例如,如图2A所示的上行清扫路段AB、上行清扫路段CD,或如图2B所示的上行清扫路段HI、上行清扫路段KL。
可选地,池壁上的清扫路线可包括依次连续的多个折线路径,其中,每一个折线路径可由池壁上的一个上行清扫路段和连接上行清扫路段的一个下行清扫路段所构成。
可选地,每一个折线路径中的上行清扫路段和下行清扫路段可为直接连接或间接连接。
于一实施例中,当上行清扫路段和下行清扫路段为直接连接时,可构成倒V形的折线路径。
例如,参考图2A,由上行清扫路段AB和与之直接连接的下行清扫路段BC可构成一个倒V形折线路径ABC,由上行清扫路段CD和与之直接连接的下行清扫路段DE可构成另一个倒V形折线路径CDE,其中,折线路径ABC和折线路径CDE相互连续。
于另一实施例中,当上行清扫路段和下行清扫路段为间接连接时,可构成梯形的折线路径。
例如,参考图2B,由上行清扫路段HI和与之间接连接的下行清扫路段JK可构成一个梯形折线路径HIJK,由上行清扫路段KL和与之间接连接的下行清扫路段MN可构成另一个梯形折线路径KLMN,其中,折线路径HIJK和折线路径KLMN相互连续。
于本实施例中,上行清扫路段和下行清扫路段之间可经由平移清扫路段相互连接。例如,上行清扫路段HI和下行清扫路段JK之间经由平移清扫路段IJ相互连接;上行清扫路段KL和与下行清扫路段MN之间可借由平移平扫路段LM相互连接。
于本实施例中,泳池清洁机器人可沿池壁上的任意一个下行清扫路段的方向,由泳池的池面向泳池的池底的方向后退移动;或者,泳池清洁机器人可沿池壁上的任意一个上行清扫路段的方向,由泳池的池底向泳池的池面的方向前进移动。
例如,在图2A或图2B所示的泳池清洁机器人的简易示意图中,黑色区域部分为泳池清洁机器人的头端(以下各附图皆同)。其中,泳池清洁机器人可沿池壁上的任意一个上行清扫路段(例如,图2A中的路段AB、路段CD,或图2B中的路段HI、路段KL)前进移动,以由池底向池面方向上爬,并可沿池壁上的任意一个下行清扫路段(例如,图2A中的路段BC、路段DE,或图2B中的路段JK、路段MN)后退移动,以由池面向池底方向下移。
可选地,可根据泳池清洁机器人沿前续折线路径移动所测得的水深、泳池清洁机器人的滚刷长度,确定路段夹角,并根据路段夹角、泳池清洁机器人的当前位置,生成接续前续折线路径的当前折线路径中的当前上行清扫路段与当前下行清扫路段。
具体地,可根据泳池清洁机器人沿前续折线路径移动所测得的水深、泳池清洁机器人的滚刷长度,确定路段夹角;根据路段夹角、泳池清洁机器人的当前位置,确定接续前续折线路径的当前折线路径中的当前上行清扫路段的路段方向,可控制泳池清洁机器人沿当前上行清扫路段的路段方向,由泳池的池底向泳池的池面方向移动,直至泳池清洁机器人的水线感测器感测到泳池清洁机器人已到达泳池的水线位置,并在当前位置根据所确定的路段夹角,控制泳池清机器人执行差速运动,并基于泳池清洁机器人执行差速运动后的朝向,控制泳池清洁机器人由当前位置朝池底的方向移动,直至泳池清洁机器人碰撞泳池的池底,以确定由泳池机器人的当前位置向池底延伸的下行清扫路段。
需要说明的是,本申请的水线感测器可以采用超声传感器,由于检测水线的位置的传感器可以采取多种现有技术手段实现,在此不做限定。
于本实施例中,泳池清洁机器人执行差速运动后的朝向与执行差速运动前的朝向之间的夹角角度为路段夹角的2倍,亦即,同一折线路径中的上行清扫路段的路段夹角与下行清扫路段的路段夹角为相同。
例如,参考图2A,可根据泳池清洁机器人沿前续折线路径ABC移动所测得的水深、泳池清洁机器人的滚刷长度,确定当前折线路径的路段夹角β,并根据路段夹角β、泳池清洁机器人的当前位置C,生成接续前续折线路径ABC的当前折线路径CDE中的当前上行清扫路段CD与当前下行清扫路段DE。
又如,参考图2B,可根据泳池清洁机器人沿前续折线路径HIJK移动所测得的水深、泳池清洁机器人的滚刷长度,确定路段夹角β,并根据路段夹角β、泳池清洁机器人的当前位置K,生成接续前续折线路径HIJK的当前折线路径KLMN中的当前上行清扫路段KL与当前下行清扫路段MN。其中,连接当前上行清扫路段KL与当前下行清扫路段MN的平移清扫路段LM的距离可为预设距离,可通过控制泳池清洁机器人在水线位置进行差速运动移动以实现该预设距离。
借此,本申请基于动态测得的水深,生成池壁清扫路线中的各折线路径的技术方案,可提高池壁清扫的覆盖率,并提升池壁清扫效果。
可选地,可根据前续折线路径中的前续下行清扫路段和/或前续下行清扫路段的路段夹角、以及泳池清洁机器人沿前续折线路径中的前续上行清扫路段和/或前续下行清扫路段移动的移动时间和移动速度,更新泳池的水深,并根据更新后的泳池的水深、泳池清洁机器人的滚刷长度、泳池清洁机器人的当前位置,确定当前折线路径中的当前上行清扫路段和当前下行清扫路段的路段夹角。
例如,可根据前续折线路径的路段夹角、以及泳池清洁机器人沿前续折线路径中的前续上行清扫路段与前续下行清扫路段移动的移动时间和移动速度,更新泳池的水深。
又如,可根据前续折线路径中的前续上行清扫路段的路段夹角、以及泳池清洁机器人沿前续折线路径中的前续上行清扫路段移动的移动时间和移动速度,更新泳池的水深。
较佳地,可根据前续折线路径中的前续下行清扫路段的路段夹角、以及泳池清洁机器人沿前续折线路径中的前续下行清扫路段移动的移动时间和移动速度,更新泳池的水深。
例如,参考图2A,可根据前续折线路径ABC中的前续下行清扫路段BC的路段夹角α、泳池清洁机器人沿前续下行清扫路段BC移动的移动时间和移动速度,更新泳池的水深,并根据更新后的泳池的水深、泳池清洁机器人的滚刷长度、泳池清洁机器人的当前位置C,确定当前折线路径CDE中的当前上行清扫路段CD和当前下行清扫路段DE各自的路段夹角β。
于本实施例中,当前折线路径中的当前上行清扫路段的路段夹角与当前下行清扫路段的路段夹角相同,也就是说,构成同一折线路径的上行清扫路段的路段夹角与下行清扫路段的路段夹角为相同,但在不同折线路径中,上行清扫路段、下行清扫路段各自的路段夹角则根据更新的泳池的水深可为相同或者不同。
例如,参考图2A,前续折线路径ABC中的上行清扫路段AB和当前下行清扫路段BC各自的路段夹角均为α,当前折线路径CDE中的当前上行清扫路段CD和当前下行清扫路段DE各自的路段夹角均为β。
可选地,在泳池清洁机器人沿前续折线路径移动碰撞到池壁障碍物的情况下,可直接获取前续折线路径中的前续上行清扫路段和前续下行清扫路段的路段夹角,以作为接续前续折线路径的当前折线路径中的当前上行清扫路段和当前下行清扫路段的路段夹角。
于具体应用中,在泳池清洁机器人沿前续折线路径移动碰撞到池壁障碍物的情况下,可根据用于确定前续折线路径的路段夹角的水深,确定当前折线路径中的当前上行清扫路段和当前下行清扫路段的路段夹角。
例如,参考图6A,当泳池清洁机器人沿预设的折线路径ABC移动,并在C4点位置碰撞到池壁障碍物2时,可在无需根据泳池清洁机器人沿实际的折线路径ABC4移动的移动时间和移动速度,更新泳池的水深的情况下,直接根据泳池清洁机器人沿折线路径XYA移动所测得的水深,确定待生成的折线路径C4DE的路段夹角θ,并根据路段夹角θ、泳池清洁机器人的当前位置C4,生成接续折线路径ABC4的折线路径C4DE。
由图6A可以看出,由于折线路径ABC4(或折线路径ABC)和折线路径C4DE的路段夹角,均是基于泳池清洁机器人沿折线路径XYA移动所测得的水深来确定的,因此,两个折线路径的路段夹角均为θ。
又如,参考图6B,当泳池清洁机器人沿预设的折线路径ABC移动,并在B1点位置碰撞到池壁障碍物2时,可沿更新后的折线路径AB1C1移动(其中,折线路径AB1C1的路段夹角即为折线路径ABC的路段夹角)。
在泳池清洁机器人移动至C1位置后,可在无需根据泳池清洁机器人沿实际的折线路径AB1C1移动的移动时间和移动速度,更新泳池的水深的情况下,直接根据泳池清洁机器人沿折线路径XYA移动所测得的水深,确定待生成的折线路径C1DE的路段夹角θ,并根据路段夹角θ、泳池清洁机器人的当前位置C1,生成接续折线路径AB1C1的折线路径C1DE。
由图6B可以看出,由于折线路径AB1C1(或折线路径ABC)和折线路径C1DE的路段夹角,均是基于泳池清洁机器人沿折线路径XYA移动所测得的水深来确定的,因此,两个折线路径的路段夹角均为θ。
步骤S104, 在泳池清洁机器人沿清扫路线移动的过程中,碰撞池壁障碍物后,控制泳池清洁机器人在池壁上继续执行池壁清扫任务,或控制泳池清洁机器人沿池底上的避障路径移动,并在避开所述池壁障碍物后,返回池壁并继续执行池壁清扫任务。
可选地,池壁障碍物可包括但不限于地漏(例如入水口)、扶梯、台阶、拐角中的一个。
可选地,可在泳池清洁机器人沿池壁上的任意一个下行清扫路段移动的过程中,碰撞池壁障碍物后,确定泳池清洁机器人沿当前下行清扫路段或当前上行清扫路段移动的移动距离。
可选地,泳池清洁机器人沿当前下行清扫路段移动的移动距离可通过以下方式确定:
将当前折线路径的当前下行清扫路段中接近池面的路段端点确定为移动起点,并根据泳池清洁机器人由移动起点沿当前下行清扫路段移动至池壁障碍物的移动时间、泳池清洁机器人的移动速度,确定泳池清洁机器人沿当前下行清扫路段移动的实际移动距离。
例如,参考图3A,可将当前折线路径ABC的当前下行清扫路段BC中接近池面的路段端点B确定为移动起点,并根据泳池清洁机器人由移动起点B沿当前下行清扫路段BC移动至池壁障碍物2的时间、泳池清洁机器人的移动速度,确定泳池清洁机器人沿当前下行清扫路段BC移动的实际移动距离。
可选地,泳池清洁机器人沿当前上行清扫路段移动的移动距离可通过以下方式确定:
将当前折线路径的当前上行清扫路段中接近池底的路段端点确定为移动起点,并根据泳池清洁机器人由移动起点沿当前上行清扫路段移动至池壁障碍物的移动时间、泳池清洁机器人的移动速度,确定泳池清洁机器人沿当前上行清扫路段移动的实际移动距离。
例如,参考图3E,可将当前折线路径ABC的当前上行清扫路段AB中接近池底的路段端点A确定为移动起点,并根据泳池清洁机器人由移动起点A沿当前上行清扫路段AB移动至池壁障碍物2的时间、泳池清洁机器人的移动速度,确定泳池清洁机器人沿当前上行清扫路段AB移动的实际移动距离。
可选地,可根据泳池清洁机器人在移动过程中的碰撞检测传感器的检测结果来判断泳池清洁机器人是否碰撞到池壁障碍物。
需说明的是,也可通过其他方式判断池清洁机器人在移动过程中是否碰撞到池壁障碍物,并不以上述方案为限,本申请对此不作限制。
可选地,若泳池清洁机器人沿当前下行清扫路段移动的移动距离满足预设避障条件,控制泳池清洁机器人沿池底上的避障路径移动,并在避开池壁障碍物后,返回池壁以继续执行池壁清扫任务。
可选地,可在碰撞池壁障碍物后,计算泳池清洁机器人沿当前下行清扫路段移动的实际移动距离相对于当前下行清扫路段的测算移动距离的移动比值,并基于移动比值,获得移动距离是否满足预设避障条件的判断结果。
可选地,若泳池清洁机器人沿当前上行清扫路段移动的移动距离满足预设避障条件,控制泳池清洁机器人沿池底上的避障路径移动,并在避开池壁障碍物后,返回池壁以继续执行池壁清扫任务。
可选地,可在碰撞池壁障碍物后,计算泳池清洁机器人沿当前上行清扫路段移动的实际移动距离相对于当前上行清扫路段的测算移动距离的移动比值,并基于移动比值,获得移动距离是否满足预设避障条件的判断结果。
具体地,可在碰撞池壁障碍物后,根据泳池的水深、当前下行清扫路段/当前上行清扫路段的路段夹角,确定当前下行清扫路段/当前上行清扫路段的测算移动距离,并根据泳池清洁机器人沿当前下行清扫路段/当前上行清扫路段移动的实际移动距离、当前下行清扫路段/当前上行清扫路段的测算移动距离,确定泳池清洁机器人沿当前下行清扫路段/当前上行清扫路段移动的移动比值,若移动比值未超过预设比值,获得移动距离满足预设避障条件的判断结果,若移动比值超过预设比值,获得移动距离不满足预设避障条件的判断结果。
于本实施例中,预设比值介于0.5至1之间,例如:0.5、0.6(参考图3A至图3D的预设线Z所示高度,或参考图3E至图3H的预设线Z所示高度)、0.7等。
需说明的是,也可在碰撞池壁障碍物时,基于泳池清洁机器人沿当前下行清扫路段移动的实际移动距离、当前下行清扫路段的路段夹角,测算池壁障碍物的水平高度,若池壁障碍物的水平高度高于预设高度,获得移动距离满足预设避障条件的判断结果,反之,若池壁障碍物的水平高度低于预设高度,获得移动距离不满足预设避障条件的判断结果。
或者,可在碰撞池壁障碍物时,基于泳池清洁机器人沿当前上行清扫路段移动的实际移动距离、当前上行清扫路段的路段夹角,测算池壁障碍物的水平高度,若池壁障碍物的水平高度低于预设高度,获得移动距离满足预设避障条件的判断结果,反之,若池壁障碍物的水平高度高于预设高度,获得移动距离不满足预设避障条件的判断结果。
可选地,预设高度相对于泳池水深的比值可介于0.5至1之间,例如:0.5、0.6(参考图3A至图3D的预设线Z所示高度或参考图3E至图3H的预设线Z所示高度)、0.7等。
可选地,若泳池清洁机器人沿当前上行清扫路段移动的移动距离不满足预设避障条件,控制泳池清洁机器人沿池壁上的清扫路线移动,以继续执行池壁清扫任务;或者,若泳池清洁机器人当前下行清扫路段移动的移动距离不满足预设避障条件,控制泳池清洁机器人沿池壁上的清扫路线移动,以继续执行池壁清扫任务。
具体地,若移动距离不满足预设避障条件,可忽略碰池壁障碍物,以在无需由池壁移动至池底的情况下,控制泳池清洁机器人在池壁上继续执行池壁清扫任务。
可选地,若泳池清洁机器人在碰撞池壁障碍物时,沿当前下行清扫路段移动/当前下行清扫路段的实际移动距离相对于当前下行清扫路段/当前下行清扫路段的测算移动距离的移动比值超过预设比值,则控制泳池清洁机器人沿池壁上的清扫路线移动,以继续执行池壁清扫任务。
在实际应用中,也可基于泳池清洁机器人沿当前下行清扫路段/当前下行清扫路段移动的实际移动距离、当前下行清扫路段/当前下行清扫路段的路段夹角,测算池壁障碍物的水平高度,并根据当前下行清扫路段/当前下行清扫路段的测算移动距离、当前下行清扫路段/当前下行清扫路段的路段夹角,测算泳池的水深,并根据池壁障碍物的水平高度和泳池的水深,作为是否满足预设避障条件的判断标准。上述技术方案属于本领域技术人员根据本申请的技术揭露而可轻易习得,其应被视为本申请的等效或等同技术方案,并被涵盖于本申请实施例的保护范围中。
于本实施例中,当泳池清洁机器人沿当前下行清扫路段移动过程中,碰撞到的池壁障碍物的水平高度低于预设高度时,基于泳池清洁机器人的当前位置,更新池壁上的清扫路线,并控制泳池清洁机器人沿池壁上的清扫路线移动,以继续执行池壁清扫任务。
例如,参考图6A,若泳池清洁机器人在沿当前下行清扫路段移动过程中,碰撞池壁障碍物2时,池壁障碍物2的水平高度低于预设高度(图6A所示预设线Z所示高度)时,基于泳池清洁机器人的当前位置C4,更新池壁上的清扫路线,并控制泳池清洁机器人沿池壁上的更新后的清扫路线(例如折线路径C4DE)移动,以继续执行池壁清扫任务。
于本实施例中,当泳池清洁机器人沿当前上行清扫路段移动过程中,碰撞到的池壁障碍物的水平高度高于水深的预设高度时,基于泳池清洁机器人的当前位置,更新池壁上的清扫路线,并控制泳池清洁机器人沿池壁上的清扫路线移动,以继续执行池壁清扫任务。
例如,参考图6B,若泳池清洁机器人在沿当前上行清扫路段移动过程中,碰撞池壁障碍物2时,池壁障碍物2的水平高度高于预设高度(图6B所示预设线Z所示高度)时,基于泳池清洁机器人的当前位置B1,更新池壁上的清扫路线,并控制泳池清洁机器人沿池壁上的更新后的清扫路线(例如折线路径B1DE)移动,以继续执行池壁清扫任务。
综上所述,本实施例提供的泳池清洁机器人的池壁避障移动方法,在泳池清洁机器人执行池壁清扫任务的过程中,碰撞到池壁障碍物时,通过控制泳池清洁机器人执行下墙动作,并沿池底上的避障路径移动,以在避开池壁障碍物后,再次上墙以继续执行池壁清扫任务,借由上述池壁障碍物规避方案,可有效提高泳池清洁机器人执行池壁清扫任务的成功率,且提升泳池池壁的清扫覆盖率,以提高池壁清扫效果。
图4为本申请另一示例性实施例的泳池清洁机器人的池壁避障移动方法,本实施例为上述步骤S104中控制泳池清洁机器人沿池底上的避障路径移动的具体实施方案,如图所示,本实施例主要包括以下步骤:
步骤S402,控制泳池清洁机器人由池壁移动至池底。
可选地,在泳池清洁机器人沿池壁上的当前下行清扫路段移动的情况下,可控制泳池清洁机器人沿池壁上的当前下行清扫路段返回,直至抵达当前下行清扫路段中接近池面的路段端点,并控制泳池清洁机器人沿连接当前下行清扫路段的当前上行清扫路段斜向下移至池底。
例如,参考图3A,当泳池清洁机器人沿当前下行清扫路段BC移动的过程中,碰撞到满足预设避障条件的池壁障碍物2时,控制泳池清洁机器人沿当前下行清扫路段BC返回(例如前进移动),直至抵达当前下行清扫路段BC中接近池面的路段端点B,再控制泳池清洁机器人沿连接当前下行清扫路段BC的当前上行清扫路段AB斜向下移至路段端点A(例如,后退移动),直至抵达泳池的池底。
可选地,在泳池清洁机器人沿池壁上的当前下行清扫路段移动的情况下,控制泳池清洁机器人沿池壁上的当前下行清扫路段返回,直至抵达当前下行清扫路段中接近池面的路段端点,并控制泳池清洁机器人基于路段端点沿池壁垂直下移至池底。
例如,参考图3B,当泳池清洁机器人沿当前下行清扫路段BC移动的过程中,碰撞到满足预设避障条件的池壁障碍物2时,控制泳池清洁机器人沿当前下行清扫路段BC返回(例如前进移动),直至抵达当前下行清扫路段BC中接近池面的路段端点B,再控制泳池清洁机器人基于路段端点B沿池壁垂直下移(例如后退移动)至位置O,以抵达泳池的池底。
可选地,在泳池清洁机器人沿池壁上的当前上行清扫路段移动的情况下,可控制泳池清洁机器人沿当前上行清扫路段斜向下移至池底。
例如,参考图3E,当泳池清洁机器人沿当前上行清扫路段AB移动的过程中,碰撞到满足预设避障条件的池壁障碍物2时,控制泳池清洁机器人沿当前上行清扫路段AB返回(例如后退移动),直至抵达泳池的池底。
可选地,在泳池清洁机器人沿池壁上的当前上行清扫路段移动的情况下,可控制泳池清洁机器人沿池壁垂直下移至池底。
例如,参考图3F,当泳池清洁机器人沿当前上行清扫路段AB移动的过程中,碰撞到满足预设避障条件的池壁障碍物2时,控制泳池清洁机器人基于当前位置,亦即,泳池清洁机器人碰撞池壁障碍物2时的位置B1,沿池壁垂直下移(例如后退移动)至位置O,以抵达泳池的池底。
步骤S404, 控制泳池清洁机器人沿池底上的避障路径移动,以避开池壁障碍物。
可选地,池底上的避障路径可为ㄇ型路径(参考图3A或图3E所示避障路径APQC1或图3B或图3F所示避障路径OPQC1)、V型路径(参考图3C或图3G所示避障路径ARC2)或环形路径(参考图3D或图3H所示避障路径AC3)。
需说明的是,池底上的避障路径并不以上述图3A至图3H所示为限,亦可设计为其他形态的避障路径,例如梯形避障路径等,本申请对此不作限制。
于一实施例中,参考图3A或图3E,在池底上的避障路径为ㄇ型路径的情况下,可在泳池清洁机器人抵达池底(例如,位置A)后,相对于池壁沿池底后退移动至位置P,并在位置P执行90度的顺时针转向操作后前进,以由位置P移动至位置Q,并在位置Q执行90度的逆时针转向操作后前进,以移动至位置C1。
于另一实施例中,参考图3C或图3G,在池底上的避障路径为V型路径的情况下,可在泳池清洁机器人在抵达池底后,由位置A相对于池壁斜向后退至位置R,并在位置R执行差速运动以旋转预设角度后继续前行,以由位置R移动至位置C2。
于又一实施例中,参考图3D或图3H,在池底上的避障路径为环型路径的情况下,可在泳池清洁机器人在抵达池底后,执行差速运动以及调头操作,以由位置A移动至位置C3。
步骤S406, 控制泳池清洁机器人由池底移动至池壁,并沿池壁上的清扫路线移动。
可选地,控制泳池清洁机器人由池底移动至池壁,并基于泳池清洁机器人的当前位置、泳池的水深、泳池清洁机器人的滚刷长度,更新池壁上的清扫路线,且控制泳池清洁机器人沿池壁上更新后的清扫路线移动,以继续执行池壁清扫任务。
于本实施例中,用于更新池壁上的清扫路线的泳池的水深为基于前续折线路径(例如,前续折线路径中的前续上行清扫路段和/或前续下行清扫路段)移动所测得的水深。
例如,参考图3A或图3E,可控制泳池清洁机器人在位置C1执行上墙动作,以由池底移动至池壁,并基于泳池清洁机器人的当前位置(即位置C1)、泳池清洁机器人沿当前折线路径ABC的前续折线路径移动所测得的水深(例如,可以是在泳池清洁机器人沿前续下行清扫路段移动的过程中所测得的水深)、泳池清洁机器人的滚刷长度,生成折线路径C1DE,并将折线路径C1DE更新为当前折线路径后,控制泳池清洁机器人沿当前折线路径C1DE移动,以继续执行池壁清扫任务。
综上所述,本实施例通过控制泳池清洁机器人沿池底上的避障路径移动,以在避开池壁障碍物后,更新池壁上的清扫路线,并控制泳池清洁机器人沿更新后的清扫路线继续执行池壁清扫任务,借以提高池壁清扫任务执行的成功率,并通过动态更新池壁清扫路线,可以提高池壁的清扫覆盖率,以提升池壁清扫效果。
图5A示出了本申请另一示例性实施例的泳池清洁机器人的池壁避障移动方法的处理流程。本实施例为上述步骤104中控制泳池清洁机器人在池壁上继续执行池壁清扫任务的一个具体实施方案,如图所示,本实施例主要包括以下步骤:
步骤S502, 获取路段夹角。
可选地,可根据泳池的水深、泳池清洁机器人的滚刷长度,确定路段夹角。
可选地,泳池的水深为基于前续折线路径移动所测得的水深。
例如,参考图6A,若泳池清洁机器人在沿当前下行清扫路段BC移动的过程中,碰撞到不满足预设避障条件的池壁障碍物2时,根据泳池清洁机器人沿折线路径XYA移动所测得的泳池的水深、泳池清洁机器人的滚刷长度,确定路段夹角。
可选地,也可直接获取当前下行清扫路段BC的路段夹角。
步骤S504,基于泳池清洁机器人的当前位置、路段夹角,确定池壁上的由泳池清洁机器人的当前位置向池面延伸的上行清扫路段,并将其更新为当前上行清扫路段。
例如,参考图6A,可基于泳池清洁机器人的当前位置C4、路段夹角θ,确定池壁上的由泳池清洁机器人的当前位置C4向池面延伸的上行清扫路段C4D,并将其更新为当前上行清扫路段。
具体地,可在当前位置C4根据路段夹角θ,控制泳池清洁机器人执行差速运动,并基于泳池清机器人执行差速运动后的朝向,控制泳池清洁机器人朝池面方向移动,以确定泳池清洁机器人由当前位置C4向池面延伸的上行清扫路段C4D,并将其更新为当前上行清扫路段。
可选地,还可进一步生成连接当前上行清扫路段的当前下行清扫路段,例如,图6A所示的当前下行清扫路段DE。
例如,可控制泳池清洁机器人沿当前上行清扫路段C4D的路段方向,由泳池的池底向泳池的池面方向移动,直至泳池清洁机器人的水线感测器感测到泳池清洁机器人已到达泳池的水线位置,并在当前位置(例如图6A所示的位置D)根据所确定的路段夹角θ,控制泳池清机器人执行差速运动,并基于泳池清洁机器人执行差速运动后的朝向,控制泳池清洁机器人由当前位置D朝池底的方向移动,直至泳池清洁机器人碰撞泳池的池底(例如位置E),以确定由泳池机器人的当前位置向池底延伸的当前下行清扫路段DE。
步骤S506, 控制泳池清洁机器人沿当前上行清扫路段移动,以继续执行池壁清扫任务。
例如,控制泳池清洁机器人沿当前上行清扫路段C4D移动,以继续执行池壁清扫任务。
综上所述,本实施例所述的池壁避障移动方案,当泳池清洁机器人在沿当前下行清扫路段移动的过程中,碰撞到不满足预设避障条件的池壁障碍物时,可在无需下移至池底以中断当前的池壁清扫任务的情况下,通过直接更新池壁上的清扫路线,以供泳池清洁机器人基于更新后的清扫路线继续执行池壁清扫任务,借以提高池壁清扫效率。
图5B示出了本申请另一示例性实施例的泳池清洁机器人的池壁避障移动方法的处理流程。本实施例为上述步骤S104中控制泳池清洁机器人在池壁上继续执行池壁清扫任务的另一具体实施方案,如图所示,本实施例主要包括以下步骤:
步骤S512,获取路段夹角。
可选地,可根据泳池的水深、泳池清洁机器人的滚刷长度,确定路段夹角。
可选地,泳池的水深为基于前续折线路径移动所测得的水深。
例如,参考图6B,若泳池清洁机器人在沿当前上行清扫路段AB移动的过程中,碰撞到不满足预设避障条件的池壁障碍物2时,根据泳池清洁机器人沿折线路径XYA移动所测得的泳池的水深、泳池清洁机器人的滚刷长度,确定路段夹角。
可选地,可也直接获取当前上行清扫路段的路段夹角。
步骤S514,基于泳池清洁机器人的当前位置、路段夹角,确定池壁上的由泳池清洁机器人的当前位置向池底延伸的下行清扫路段,并将其更新为当前下行清扫路段。
例如,参考图6B,可基于泳池清洁机器人的当前位置B1、路段夹角θ,确定池壁上的由泳池清洁机器人的当前位置B1向池底延伸的下行清扫路段B1C1,并将其更新为当前下行清扫路段。
具体地,可在当前位置B1根据路段夹角θ,控制泳池清洁机器人执行差速运动,并基于泳池清机器人执行差速运动后的朝向,控制泳池清洁机器人朝池底方向移动,以确定泳池清洁机器人由当前位置B1向池底延伸的下行清扫路段B1C1。
步骤S516,控制泳池清洁机器人沿当前下行清扫路段移动,以继续执行池壁清扫任务。
例如,控制泳池清洁机器人沿当前下行清扫路段B1C1移动,以继续执行池壁清扫任务。
参考图6B,可将泳池清洁机器人实际移动的折线路径AB1C1更新为实际前续折线路径,并将泳池清洁机器人预设移动的折线路径ABC更新为预设前续折线路径,其中,折线路径AB1C1和折线路径ABC的前续折线路径均为折线路径XYA,可根据泳池清洁机器人沿折线路径XYA移动所测得的水深,确定路段夹角θ,并根据路段夹角θ、泳池清洁机器人的当前位置C1,生成实际前续折线路径AB1C1的当前折线路径C1DE中的当前上行清扫路段C1D和当前下行清扫路段DE。
综上所述,本实施例所述的池壁避障移动方案,当泳池清洁机器人在沿当前上行清扫路段移动的过程中,碰撞到不满足预设避障条件的池壁障碍物时,可在无需下移至池底以中断当前的池壁清扫任务的情况下,通过直接更新池壁上的清扫路线,以供泳池清洁机器人基于更新后的清扫路线继续执行池壁清扫任务,借以提高池壁清扫效率。
图7示出了本申请另一实施例的泳池清洁机器人的池壁避障移动方法的处理流程。
于本实施例中,池壁可包括相邻设置的第一池壁和第二池壁,其中,泳池清洁机器人在沿第一池壁上的清扫路线的移动过程中,碰撞到的池壁障碍物还包括第二池壁。
如图所示,本实施例主要包括以下步骤:
步骤S702,控制泳池清洁机器人沿泳池的池壁上的清扫路线移动以执行池壁清扫任务。
步骤S704,若泳池清洁机器人在沿第一池壁上的任意一个下行清扫路段或任意一个上行清扫路段移动的过程中,碰撞第二池壁时,控制泳池清洁机器人经由池底上的转移路径由第一池壁移动至第二池壁,并继续执行第二池壁的池壁清扫任务。
图8示出了本申请另一实施例的泳池清洁机器人的池壁避障移动方法的处理流程。本实施例为上述步骤S704的具体实施方案。如图所示,本实施例主要包括以下步骤:
步骤S802, 控制泳池清洁机器人由第一池壁移动至池底。
可选地,在泳池清洁机器人在沿第一池壁上的任意一个下行清扫路段的移动过程中,碰撞到第二池壁的情况下,可根据泳池清洁机器人在碰撞第二池壁时,沿当前下行清扫路段移动的移动距离,采用不同的移动方式控制泳池清洁机器人由第一池壁移动至池底。
请参考图10A,本步骤可进一步包括以下处理流程:
步骤S1002,测算泳池清洁机器人在碰撞第二池壁时,沿当前下行清扫路段移动的移动距离。
可选地,可将当前折线路径的当前下行清扫路段中接近池面的路段端点确定为移动起点,根据泳池清洁机器人由移动起点沿当前下行清扫路段移动至第二池壁的移动时间、泳池清洁机器人的移动速度,确定泳池清洁机器人沿当前下行清扫路段移动的实际移动距离。
步骤S1004,判断移动距离是否满足预设避障条件,若是,执行步骤S1006,若否,执行步骤S1008。
可选地,可判断泳池清洁机器人沿当前下行清扫路段移动的实际移动距离相对于当前下行清扫路段的测算移动距离的移动比值是否超过预设比值,据以选择执行步骤S1006或步骤S1008。
可选地,可基于泳池清洁机器人沿当前下行清扫路段移动的实际移动距离、当前下行清扫路段的测算移动距离,判断池壁障碍物的水平高度是否高于预设高度,据以选择执行步骤S1006或步骤S1008。
步骤S1006,控制泳池清洁机器人沿第一池壁上的当前下行清扫路段返回,直至抵达当前下行清扫路段中接近池面的路段端点,并由路段端点移动至池底。
可选地,可控制泳池清洁机器人沿第一池壁上的当前下行清扫路段返回,直至抵达当前下行清扫路段中接近池面的路段端点,并沿连接当前下行清扫路段的当前上行清扫路段斜向下移至所述池底。
例如,参考图9A,可控制泳池清洁机器人沿第一池壁上的当前下行清扫路段BC返回(例如前进移动),直至抵达路段端点B,并沿连接当前下行清扫路段BC的当前上行清扫路段AB斜向下移(例如,后退移动)至池底。
可选地,可控制泳池清洁机器人沿第一池壁上的当前下行清扫路段返回,直至抵达当前下行清扫路段中接近池面的路段端点,并基于路段端点沿第一池壁垂直下移至池底。
例如,参考图9A,可控制泳池清洁机器人沿第一池壁上的当前下行清扫路段BC返回(例如前进移动),并在抵达路段端点B后,直接由路段端点B沿第一池壁垂直下移(例如,后退移动)至位置D,以抵达池底。
步骤S1008, 基于泳池清洁机器人的当前位置、泳池的水深、泳池清洁机器人的滚刷长度,确定第一池壁上的由泳池清洁机器人的当前位置向池面延伸的上行清扫路段。
例如,参考图9B,可基于泳池清洁机器人的当前位置C、基于当前下行清扫路段BC对应的当前折线路径ABC的前续折线路径(其中,前续折线路径图9B中未示出,可参考图6A所示的前续折线路径XYA)所测得的水深、泳池清洁机器人的滚刷长度,确定第一池壁上的由泳池清洁机器人的当前位置C向池面的方向延伸的上行清扫路段(其中,上行清扫路段在图9B中未示出,可参考图6A所示的上行清扫路段C4D)。
步骤S1010,判断泳池清洁机器人是否可沿上行清扫路段移动,若可移动,则重复执行本步骤,直至当判断池清洁机器人无法沿上行清扫路段移动时,返回步骤S1006或执行步骤S1012。
可选地,可当判断池清洁机器人无法沿上行清扫路段移动时,返回步骤S1006。
例如,参考图9B,当判断泳池清洁机器人无法沿连接当前下行清扫路段BC的上行清扫路段移动(例如前进移动)时,可执行步骤S1006的移动技术方案,通过控制泳池清洁机器人沿连接当前下行清扫路段BC返回(例如,前进移动),直至抵达路段端点B,并在路段端点B处,沿连接当前下行清扫路段BC的当前上行清扫路段AB斜向下移(例如,后退移动)至池底,或者,控制泳池清洁机器人直接由路段端点B沿第一池壁垂直下移(例如后退移动)至位置D,以抵达池底。
可选地,可当判断池清洁机器人无法沿连接当前下行清扫路段BC的上行清扫路段移动时,执行步骤S1012。
步骤S1012,控制泳池清洁机器人沿第一池壁和第二池壁的交界线移动至池底。
例如,参考图9B,可控制泳池清洁机器人沿第一池壁和第二池壁的交界线由位置C移动至位置J,以抵达池底。
可选地,在泳池清洁机器人在沿第一池壁上的任意一个上行清扫路段的移动过程中,碰撞到第二池壁的情况下,可根据泳池清洁机器人在碰撞第二池壁时,沿当前上行清扫路段移动的移动距离,采用不同的移动方式控制泳池清洁机器人由第一池壁移动至池底。
请参考图10B,本步骤可进一步包括以下处理流程:
步骤S1032,测算泳池清洁机器人在碰撞第二池壁时,沿当前上行清扫路段移动的移动距离。
可选地,可将当前折线路径的当前上行清扫路段中接近池底的路段端点确定为移动起点,根据泳池清洁机器人由移动起点沿当前上行清扫路段移动至第二池壁的移动时间、泳池清洁机器人的移动速度,确定泳池清洁机器人沿当前上行清扫路段移动的实际移动距离。
步骤S1034,判断移动距离是否满足预设避障条件,若是,执行步骤S1036,若否,执行步骤S1038。
可选地,判断泳池清洁机器人沿当前上行清扫路段移动的实际移动距离相对于当前上行清扫路段的测算移动距离的移动比值是否超过预设比值,据以选择执行步骤S1036或步骤S1038。
可选地,可基于泳池清洁机器人沿当前上行清扫路段移动的实际移动距离、当前上行清扫路段的测算移动距离,判断池壁障碍物的水平高度是否高于预设高度,据以选择执行步骤S1036或步骤S1038。
步骤S1036,控制泳池清洁机器人移动至池底。
可选地,可控制泳池清洁机器人沿当前上行清扫路段斜向下移至池底。
例如,参考图9E,可控制泳池清洁机器人沿第一池壁上的当前上行清扫路段AB斜向下移(例如,后退移动)至池底。
可选地,可基于路段端点沿第一池壁垂直下移至池底,亦即,沿第一池壁和第二池壁的交界线移动至池底。例如,参考图9E,可基于路段端点B,沿第一池壁垂直下移(例如,后退移动)至位置J,以抵达池底。
步骤S1038,基于泳池清洁机器人的当前位置、泳池的水深、泳池清洁机器人的滚刷长度,确定第一池壁上的由泳池清洁机器人的当前位置向池底延伸的下行清扫路段。
例如,参考图9D,可基于泳池清洁机器人的当前位置B、基于当前上行清扫路段AB对应的当前折线路径ABC的前续折线路径(其中,折线路径ABC中的下行清扫路段BC未示出)所测得的水深、泳池清洁机器人的滚刷长度,确定第一池壁上的由泳池清洁机器人的当前位置B向池底的方向延伸的下行清扫路段(图9D未示出,可参考图6B所示的下行清扫路段B1C1)。
步骤S1040,判断泳池清洁机器人是否可沿下行清扫路段移动,若可移动,则重复执行本步骤,直至当判断池清洁机器人无法沿下行清扫路段移动时,执行步骤S1042。
步骤S1042,控制泳池清洁机器人沿当前上行清扫路段斜向下移至池底,或沿第一池壁和第二池壁的交界线垂直下移至池底。
例如,参考图9D,当判断泳池清洁机器人无法沿连接当前上行清扫路段AB的下行清扫路段移动(例如后退移动)时,可通过控制泳池清洁机器人沿当前上行清扫路段AB斜向下移(例如,后退移动)至池底,或者,控制泳池清洁机器人直接由位置B沿第一池壁和第二池壁的交界线垂直下移(例如后退移动)至位置J,以抵达池底。
步骤S804,控制泳池清洁机器人沿池底朝远离第一池壁的方向移动,直至泳池清洁机器人与第一池壁之间的间隔距离可满足泳池清洁机器人执行转向操作。
例如,当泳池清洁机器人下移至池底的位置A时(参考图9A至图9B、或参考图9D至9F),可控制泳池清洁机器人沿池底朝远离第一池壁的方向移动至位置E,以使泳池清洁机器人与第一池壁之间的间隔距离可满足泳池清洁机器人执行转向操作。
又如,当泳池清洁机器人下移至池底的位置D时(参考图9A至图9C),可控制泳池清洁机器人沿池底朝远离第一池壁的方向移动至位置F,以使泳池清洁机器人与第一池壁之间的间隔距离可满足泳池清洁机器人执行转向操作。
再如,当泳池清洁机器人下移至池底的位置J时(参考图9B),可控制泳池清洁机器人沿池底朝远离第一池壁的方向移动至位置F1,以使泳池清洁机器人与第一池壁之间的间隔距离可满足泳池清洁机器人执行转向操作。
又再如,当泳池清洁机器人下移至池底的位置J时(参考图9D或图9E),可控制泳池清洁机器人沿池底朝远离第一池壁的方向移动至位置F,以使泳池清洁机器人与第一池壁之间的间隔距离可满足泳池清洁机器人执行转向操作。
步骤S806,控制泳池清洁机器人朝面向第二池壁的方向执行转向操作。
例如,可控制泳池清洁机器人在位置E(参考图9A至图9B)执行顺时针旋转或在位置F(参考图9A至图9C,)执行顺时针旋转,以使泳池清洁机器人头端面朝第二池壁。
又如,可控制泳池清洁机器人在位置E(参考图9D至图9F)或在位置F(参考图9D或图9E)执行顺时针旋转,以使泳池清洁机器人头端面朝第二池壁。
步骤S808,判断转向操作是否成功,若成功,执行步骤S810,若不成功,执行步骤S814。
步骤S810,控制泳池清洁机器人沿池底朝第二池壁的方向移动。
例如,可控制泳池清洁机器人沿池壁由位置E(参考图9A至图9B,)或由位置F(参考图9A至图9C),抑或由位置F1(参考图9B)朝位置G的方向移动。
又如,参考图9D或图9E,控制泳池清洁机器人沿池壁由位置E朝位置G的方向移动。
步骤S812,控制泳池清洁机器人由池底移动至第二池壁。
例如,控制泳池清洁机器人执行上墙操作,以由池底移动至第二池壁,并沿池壁上的清扫路线(例如图9A、图9B、图9C上的折线路径GHI)移动,以执行第二池壁的池壁清扫任务。
又如,可控制泳池清洁机器人执行上墙操作,以由池底移动至第二池壁,并沿池壁上的清扫路线(例如图9D至图9F上的折线路径GHI)移动,以执行第二池壁的池壁清扫任务。
步骤S814, 控制泳池清洁机器人朝背向第二池壁的方向执行转向操作,并朝远离第二池壁的方向移动,直至泳池清洁机器人与第二池壁之间的间隔距离可满足所述泳池清洁机器人执行调头操作,控制泳池清洁机器人执行调头操作,并在完成调头操作后沿池底朝接近第二池壁的方向移动,并继续执行步骤S812。
例如,参考图9C,当泳池清洁机器人在位置F处无法执行顺时针旋转,以使泳池清洁机器人头端面朝第二池壁时,则控制泳池清洁机器人在位置E处执行逆时针旋转,以使泳池清洁机器人头端背朝第二池壁的方向,并控制泳池清洁机器人朝远离第二池壁的方向移动位置W,使得泳池清洁机器人与第二池壁之间的间隔距离可满足泳池清洁机器人执行调头操作,并控制泳池清洁机器人执行调头操作,且在完成调头操作后沿池底由位置W朝接近第二池壁的方向移动至位置G,并继续执行步骤S812。
又如,参考图9F,当泳池清洁机器人在位置E处无法执行顺时针旋转,以使泳池清洁机器人头端面朝第二池壁时,则控制泳池清洁机器人在位置E处执行逆时针旋转,以使泳池清洁机器人头端背朝第二池壁的方向,并控制泳池清洁机器人朝远离第二池壁的方向移动位置D,使得泳池清洁机器人与第二池壁之间的间隔距离可满足泳池清洁机器人执行调头操作,并控制泳池清洁机器人执行调头操作,且在完成调头操作后沿池底由位置D朝接近第二池壁的方向移动至位置G,并继续执行步骤S812。
综上所述,本申请各实施例提供的池壁避障移动方案,当泳池清洁机器人沿第一池壁执行池壁清扫任务的过程中碰撞到第二池壁时,可经由池底的转移路径由第一池壁移动至第二池壁,并继续执行第二池壁的池壁清扫任务,提高了池壁清扫任务的智能化,提升了用户的使用体验。
图11示出了本申请示例性实施例的泳池清洁机器人的池壁避障移动装置的结构框图。如图所示,本实施例的泳池清洁机器人的池壁避障移动装置1100主要包括移动控制模块1102、避障控制模块1104。
移动控制模块1102,用于控制泳池清洁机器人沿泳池的池壁上的清扫路线移动以执行池壁清扫任务。
避障控制模块1104,用于在所述泳池清洁机器人沿所述清扫路线移动的过程中,碰撞池壁障碍物后,控制所述泳池清洁机器人在池壁上继续执行所述池壁清扫任务;或者控制所述泳池清洁机器人沿池底上的避障路径移动,并在避开所述池壁障碍物后,返回所述池壁并继续执行所述池壁清扫任务。
可选地,所述清扫路线至少包括多个下行清扫路段和多个上行清扫路段,避障控制模块1104还用于:在所述泳池清洁机器人沿所述池壁上的任意一个下行清扫路段移动的过程中,碰撞池壁障碍物后,确定所述泳池清洁机器人沿当前下行清扫路段移动的移动距离,若所述泳池清洁机器人沿当前下行清扫路段移动的移动距离满足预设避障条件,控制所述泳池清洁机器人沿池底上的避障路径移动,并在避开所述池壁障碍物后,返回所述池壁并继续执行所述池壁清扫任务,若所述泳池清洁机器人沿当前下行清扫路段移动的移动距离不满足预设避障条件,控制所述泳池清洁机器人在池壁上继续执行所述池壁清扫任务;或者,在所述泳池清洁机器人沿所述池壁上的任意一个上行清扫路段移动的过程中,碰撞池壁障碍物后,确定所述泳池清洁机器人沿当前上行清扫路段移动的移动距离,若所述泳池清洁机器人沿当前上行清扫路段移动的移动距离满足预设避障条件,控制所述泳池清洁机器人沿池底上的避障路径移动,并在避开所述池壁障碍物后,返回所述池壁并继续执行所述池壁清扫任务,若所述泳池清洁机器人沿当前上行清扫路段移动的移动距离不满足预设避障条件,控制所述泳池清洁机器人在池壁上继续执行所述池壁清扫任务。
可选地,所述池壁上的清扫路线包括依次连续的多个折线路径,每一个所述折线路径由所述池壁上的一个上行清扫路段和连接所述上行清扫路段的一个下行清扫路段所构成,池壁避障移动装置1100还包括路径生成模块(未示出),用于根据所述泳池清洁机器人沿前续折线路径移动所测得的水深、所述泳池清洁机器人的滚刷长度,确定路段夹角,或者,在所述泳池清洁机器人沿前续折线路径移动碰撞到池壁障碍物的情况下,获取前续折线路径的路段夹角;根据所述路段夹角、所述泳池清洁机器人的当前位置,生成接续所述前续折线路径的当前折线路径中的当前上行清扫路段与当前下行清扫路段。
可选地,所述泳池清洁机器人可沿所述池壁上的任意一个下行清扫路段的方向,由所述泳池的池面向所述泳池的池底的方向后退移动;或者,所述泳池清洁机器人可沿所述池壁上的任意一个上行清扫路段的方向,由所述泳池的池底向所述泳池的池面的方向前进移动。
可选地,路径生成模块还用于:根据前续折线路径中的前续下行清扫路段和/或前续下行清扫路段的路段夹角、所述泳池清洁机器人沿前续折线路径中的前续上行清扫路段和/或前续下行清扫路段移动的移动时间和移动速度,更新所述泳池的水深;根据更新后的所述泳池的水深、所述泳池清洁机器人的滚刷长度、所述泳池清洁机器人的当前位置,确定所述当前折线路径中的当前上行清扫路段和当前下行清扫路段各自的路段夹角;所述当前折线路径中的当前上行清扫路段的路段夹角与当前下行清扫路段的路段夹角相同。
可选地,避障控制模块1104还用于:将当前折线路径的当前下行清扫路段中接近所述池面的路段端点确定为移动起点;根据所述泳池清洁机器人由所述移动起点沿所述当前下行清扫路段移动至所述池壁障碍物的移动时间、所述泳池清洁机器人的移动速度,确定所述泳池清洁机器人沿所述当前下行清扫路段移动的实际移动距离。
可选地,避障控制模块1104还用于:将当前折线路径的当前上行清扫路段中接近所述池底的路段端点确定为移动起点,并根据所述泳池清洁机器人由所述移动起点沿所述当前上行清扫路段移动至所述池壁障碍物的移动时间、所述泳池清洁机器人的移动速度,确定所述泳池清洁机器人沿所述当前上行清扫路段移动的实际移动距离。
可选地,避障控制模块1104还用于:根据所述泳池的水深、所述路段夹角,确定所述当前下行清扫路段或所述当前上行清扫路段的测算移动距离;根据所述泳池清洁机器人沿所述当前下行清扫路段或所述当前上行清扫路段移动的实际移动距离、所述当前下行清扫路段或所述当前上行清扫路段的测算移动距离,确定所述泳池清洁机器人沿所述当前下行清扫路段或所述当前上行清扫路段移动的移动比值;若所述移动比值未超过预设比值,获得所述移动距离满足所述预设避障条件的判断结果,若所述移动比值超过所述预设比值,获得所述移动距离不满足预设避障条件的判断结果。
可选地,所述预设比值介于0.5至1之间。
可选地,避障控制模块1104还用于:若所述泳池清洁机器人沿当前下行清扫路段移动的移动距离满足预设避障条件,控制所述泳池清洁机器人由所述池壁移动至所述池底;控制所述泳池清洁机器人沿所述池底上的避障路径移动,以避开所述池壁障碍物;控制所述泳池清洁机器人由所述池底移动至所述池壁,并沿所述池壁上的清扫路线移动以继续执行池壁清扫任务。
可选地,避障控制模块1104还用于:控制所述泳池清洁机器人沿所述池壁上的当前下行清扫路段返回,直至抵达所述当前下行清扫路段中接近所述池面的路段端点;控制所述泳池清洁机器人沿连接所述当前下行清扫路段的当前上行清扫路段斜向下移至所述池底;或者,控制所述泳池清洁机器人基于所述路段端点沿所述池壁垂直下移至所述池底。
可选地,所述池底上的避障路径包括ㄇ型路径、V型路径、环形路径中的一个。
可选地,避障控制模块1104还用于:控制所述泳池清洁机器人由所述池底移动至所述池壁;基于所述泳池清洁机器人的当前位置、所述泳池的水深、所述泳池清洁机器人的滚刷长度,更新所述池壁上的清扫路线;控制所述泳池清洁机器人沿所述池壁上更新后的清扫路线移动,以继续执行池壁清扫任务;其中,所述泳池的水深为基于所述前续折线路径移动所测得的水深。
可选地,避障控制模块1104还用于:若所述泳池清洁机器人沿当前下行清扫路段移动的移动距离不满足预设避障条件,控制所述泳池清洁机器人沿所述池壁上的更新后的清扫路线移动,以继续执行池壁清扫任务。
可选地,避障控制模块1104还用于:获取当前下行清扫路段的路段夹角,或根据所述泳池的水深、所述泳池清洁机器人的滚刷长度,确定路段夹角;基于所述泳池清洁机器人的当前位置、所述路段夹角,确定所述池壁上的由所述泳池清洁机器人的当前位置向所述池面延伸的上行清扫路段,并将其更新为当前上行清扫路段;控制所述泳池清洁机器人沿所述当前上行清扫路段移动,以继续执行池壁清扫任务;其中,所述泳池的水深为基于所述前续折线路径移动所测得的水深。
可选地,避障控制模块1104还用于:在所述当前位置根据所述路段夹角,控制所述泳池清机器人执行差速运动,并基于所述泳池清洁机器人执行差速运动后的朝向,控制所述泳池清洁机器人由所述当前位置朝所述池面的方向移动,以确定由所述泳池机器人的当前位置向所述池面延伸的上行清扫路段。
可选地,避障控制模块1104还用于:若所述泳池清洁机器人沿当前上行清扫路段移动的移动距离满足预设避障条件,控制所述泳池清洁机器人由所述池壁移动至所述池底;控制所述泳池清洁机器人沿所述池底上的避障路径移动,以避开所述池壁障碍物;控制所述泳池清洁机器人由所述池底移动至所述池壁,并沿所述池壁上的清扫路线移动。
可选地,避障控制模块1104还用于:控制所述泳池清洁机器人沿当前上行清扫路段斜向下移至所述池底;或者控制所述泳池清洁机器人沿所述池壁垂直下移至所述池底。
可选地,所述池底上的避障路径包括ㄇ型路径、V型路径、环形路径的任一个。
可选地,避障控制模块1104还用于:控制所述泳池清洁机器人由所述池底移动至所述池壁,并基于所述泳池清洁机器人的当前位置、所述泳池的水深、所述泳池清洁机器人的滚刷长度,更新所述池壁上的清扫路线,且控制所述泳池清洁机器人沿所述池壁上更新后的清扫路线移动,以继续执行池壁清扫任务;其中,所述泳池的水深为基于所述前续折线路径移动所测得的水深。
可选地,避障控制模块1104还用于:若泳池清洁机器人沿当前上行清扫路段移动的所述移动距离不满足预设避障条件,获取当前上行清扫路段的路段夹角,或根据所述泳池的水深、所述泳池清洁机器人的滚刷长度,确定路段夹角;基于所述泳池清洁机器人的当前位置、所述路段夹角,确定所述池壁上的由所述泳池清洁机器人的当前位置向所述池底延伸的下行清扫路段;控制所述泳池清洁机器人沿所述下行清扫路段移动,以继续执行池壁清扫任务;其中,所述泳池的水深为基于所述前续折线路径移动所测得的水深。
可选地,避障控制模块1104还用于:在所述当前位置根据所述路段夹角,控制所述泳池清机器人执行差速运动,并基于所述泳池清洁机器人执行差速运动后的朝向,控制所述泳池清洁机器人由所述当前位置朝所述池底的方向移动,以确定由所述泳池机器人的当前位置向所述池底延伸的下行清扫路段。
可选地,所述池壁包括相邻设置的第一池壁和第二池壁,其中,所述泳池清洁机器人在沿所述第一池壁上的清扫路线的移动过程中,碰撞到的池壁障碍物还包括所述第二池壁;且避障控制模块1104还用于:在所述泳池清洁机器人沿所述第一池壁上的任意一个下行清扫路段或任意一个上行清扫路段移动的过程中,碰撞所述第二池壁时,控制所述泳池清洁机器人经由所述池底上的转移路径由所述第一池壁移动至所述第二池壁,并继续执行所述第二池壁的池壁清扫任务。
可选地,避障控制模块1104还用于:控制所述泳池清洁机器人由所述第一池壁移动至所述池底;控制所述泳池清洁机器人沿所述池底朝远离所述第一池壁的方向移动,直至所述泳池清洁机器人与所述第一池壁之间的间隔距离可满足所述泳池清洁机器人执行转向操作;控制所述泳池清洁机器人朝面向所述第二池壁的方向执行转向操作,并在完成转向操作后沿所述池底朝接近所述第二池壁的方向移动;控制所述泳池清洁机器人由所述池底移动至所述第二池壁。
可选地,避障控制模块1104还用于:若所述泳池清洁机器人朝面向所述第二池壁的方向执行转向操作不成功,控制所述泳池清洁机器人朝背向所述第二池壁的方向执行转向操作;控制所述泳池清洁机器人朝远离所述第二池壁的方向移动,直至所述泳池清洁机器人与所述第二池壁之间的间隔距离可满足所述泳池清洁机器人执行调头操作;控制所述泳池清洁机器人执行调头操作,并在完成调头操作后沿所述池底朝接近所述第二池壁的方向移动;控制所述泳池清洁机器人由所述池底移动至所述第二池壁。
可选地,避障控制模块1104还用于:确定所述泳池清洁机器人在碰撞所述第二池壁时,沿当前下行清扫路段移动的移动距离;若所述移动距离满足预设避障条件,控制所述泳池清洁机器人沿所述第一池壁上的当前下行清扫路段返回,直至抵达所述当前下行清扫路段中接近所述池面的路段端点,并由所述路段端点移动至所述池底;若所述移动距离不满足预设避障条件,基于所述泳池清洁机器人的当前位置、所述泳池的水深、所述泳池清洁机器人的滚刷长度,确定所述第一池壁上的由所述泳池清洁机器人的当前位置向所述池面方向延伸的上行清扫路段,并当所述泳池清洁机器人无法沿所述上行清扫路段移动时,执行若所述移动距离满足预设避障条件的步骤,或者沿所述第一池壁和所述第二池壁的交界线移动至所述池底。
可选地,避障控制模块1104还用于:控制所述泳池清洁机器人沿连接所述当前下行清扫路段的当前上行清扫路段斜向下移至所述池底;或者控制所述泳池清洁机器人由所述路段端点沿所述第一池壁垂直下移至所述池底。
可选地,避障控制模块1104还用于:确定所述泳池清洁机器人在碰撞所述第二池壁时,沿当前上行清扫路段移动的移动距离;若所述移动距离满足预设避障条件,控制所述泳池清洁机器人沿当前上行清扫路段斜向下移至所述池底,或基于所述路段端点沿所述第一池壁垂直下移至所述池底;若所述移动距离不满足预设避障条件,基于所述泳池清洁机器人的当前位置、所述泳池的水深、所述泳池清洁机器人的滚刷长度,确定所述第一池壁上的由所述泳池清洁机器人的当前位置向所述池底延伸的下行清扫路段,并当所述泳池清洁机器人无法沿所述下行清扫路段移动时,控制所述泳池清洁机器人沿当前上行清扫路段斜向下移至所述池底,或沿所述第一池壁和所述第二池壁的交界线垂直下移至所述池底。
此外,本申请实施例的泳池清洁机器人的池壁避障移动装置1100还可用于实现前述各泳池清洁机器人的池壁避障移动方法实施例中的其他步骤,并具有相应的方法步骤实施例的有益效果,在此不再赘述。
本申请示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本申请各实施例的方法。
本申请示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本申请各实施例的方法。
本申请示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本申请各实施例的方法。
参考图12,现将描述可以作为本申请的服务器或客户端的电子设备1200的结构框图,其是可以应用于本申请的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图12所示,电子设备1200包括计算单元1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
电子设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206、输出单元1207、存储单元1208以及通信单元1209。输入单元1206可以是能向电子设备1200输入信息的任何类型的设备,输入单元1206可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1207可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1204可以包括但不限于磁盘、光盘。通信单元1209允许电子设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理。例如,在一些实施例中,前述各实施例的泳池清洁机器人的池壁避障移动方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到电子设备1200上。在一些实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行泳池清洁机器人的池壁避障移动方法。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本申请使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应当理解,虽然本说明书是按照各个实施例描述的,但并非每个实施例仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
以上所述仅为本申请实施例示意性的具体实施方式,并非用以限定本申请实施例的范围。任何本领域的技术人员,在不脱离本申请实施例的构思和原则的前提下所作的等同变化、修改与结合,均应属于本申请实施例保护的范围。