机器人运动控制方法、机器人和计算机可读存储介质
文献发布时间:2023-06-19 19:07:35
技术领域
本申请涉及机器人领域,尤其涉及一种机器人运动控制方法、机器人和计算机可读存储介质。
背景技术
机器人在运动过程中,可能出现由于建图不规范,或是已建地图的环境发生变化,或是有物体故意阻挡机器人的运动线路而导致机器人在运动时进入某个特殊的角落的情况。在这种特殊情况下,现有的机器人由于避障方案单一、传感器和控制端之间的配合不协调,容易出现卡在角落无法脱身的问题。
发明内容
有鉴于此,本申请的主要目的在于提出机器人运动控制方法、机器人和计算机可读存储介质,旨在解决现有的机器人由于避障方案单一、传感器和控制端不协调,容易出现卡在角落无法脱身的技术问题。
为实现上述目的,本申请的第一方面提供一种机器人运动控制方法,所述方法用于控制一机器人运动,所述机器人设置有至少一个距离传感器,所述至少一个距离传感器用于检测所述机器人与至少一个方向上的物体之间的距离。所述机器人运动控制方法包括:在控制所述机器人按照预设导航路线运动的过程中,获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人周围是否有障碍物;以及,若确定所述机器人周围有障碍物,则根据障碍物所在的方向确定避障方向,并控制所述机器人往所述避障方向运动。其中,所述避障方向为所述机器人的预设距离内没有障碍物的方向。
本申请提供的机器人运动控制方法,在控制机器人按照预设导航路线运动的过程中,判断机器人的周围是否有障碍物,并根据障碍物所在的方向确定避障方向,以及控制机器人往避障方向运动,如此,可以确保机器人能够提前避开障碍物,从而能够提高机器人的避障成功率、减少机器人被困的概率。
可选地,所述若确定所述机器人周围有障碍物,则根据障碍物所在的方向确定避障方向,并控制所述机器人往所述避障方向运动,包括:若确定所述机器人周围有障碍物,控制所述机器人发出让路提示信号,以提示周围物体让路;若确定在发出让路提示信号后的预设时长内所述机器人的周围仍然有障碍物,则根据障碍物所在的方向确定避障方向;以及,控制所述机器人往所述避障方向运动。
可选地,所述若确定所述机器人周围有障碍物,控制所述机器人发出让路提示信号,以提示周围物体让路,包括:若确定所述机器人周围有障碍物,则控制所述机器人停止在当前位置;控制所述机器人发出让路提示信号,以提示周围物体让路;以及,在所述机器人停止运动的期间,获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人周围是否仍然有障碍物。
可选地,在所述控制所述机器人发出让路提示信号之后,所述方法还包括:若确定在发出让路提示信号后的预设时长内所述机器人周围没有障碍物,则控制所述机器人继续按照所述预设导航路线运动。
可选地,所述根据障碍物所在的方向确定避障方向,包括:在所述机器人周围只有一个方向存在障碍物时,确定所述避障方向为与障碍物所在的方向相反的方向;在所述机器人周围至少有两个方向存在障碍物时,根据存在障碍物的方向判断所述机器人是否被困;以及,若确定所述机器人没有被困,则确定一个预设距离内没有障碍物的方向为所述避障方向。
可选地,所述至少一个方向至少包括正前方、正后方、左前方、左后方、右前方以及右后方。所述根据存在障碍物的方向判断所述机器人是否被困,包括:判断存在障碍物的方向中是否包括相反方向;其中,正后方和正前方为相反方向,左前方与右后方为相反方向,右前方和左后方为相反方向;若存在障碍物的方向中包括相反方向,则确定所述机器人被困;以及,若存在障碍物的方向中不包括相反方向,则确定所述机器人没有被困。
可选地,所述若确定所述机器人没有被困,则确定一个预设距离内没有障碍物的方向为所述避障方向,包括:若所述机器人的一个正方向和一个侧方向均存在障碍物,则确定与所述侧方向相反的方向为所述避障方向;其中,所述正方向包括正前方或正后方,所述侧方向包括左前方、左后方、右前方、右后方中的一个;若所述机器人的一个正方向和两个侧方向均存在障碍物,则确定与所述正方向相反的方向为所述避障方向;以及,若所述机器人的两个侧方向均存在障碍物,则确定与所述两个侧方向中的一个侧方向相反的方向为所述避障方向。
可选地,在所述根据存在障碍物的方向判断所述机器人是否被困之后,所述方法还包括:若确定所述机器人被困,则控制所述机器人发出被困报警信号,以通知管理人员。
可选地,在所述确定所述机器人周围有障碍物时,所述方法还包括:将所述障碍物所在的方向记录为第一障碍物方向。所述控制所述机器人往所述避障方向运动,包括:在控制所述机器人往所述避障方向运动的过程中,实时地或按照预设时间间隔获取各个距离传感器检测到的距离,以及根据各个距离传感器检测到的距离,判断所述机器人周围当前是否有障碍物;若确定所述机器人周围当前有障碍物,则在当前障碍物所在的方向和所述第一障碍物方向不一致时,对避障方向进行更新;以及,控制所述机器人往更新后的避障方向运动。
可选地,所述在当前障碍物所在的方向和所述第一障碍物方向不一致时,对避障方向进行更新,包括:在当前障碍物所在的方向和所述第一障碍物方向不一致时,将当前障碍物所在的方向记录为第二障碍物方向,将所述第一障碍物方向以外且远离所述第二障碍物方向的方向确定为更新后的避障方向。
可选地,在所述确定所述机器人周围有障碍物时,所述方法还包括:将所述障碍物所在的方向记录为第一障碍物方向。所述控制所述机器人往所述避障方向运动,包括:在所述避障方向为左前方、右前方、左后方或者右后方时,重复执行转角操作。其中,所述转角操作包括:控制所述机器人以与所述避障方向对应的速度和与转角角度进行转角运动;在所述机器人转角运动的距离达到预设转角距离时,获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人周围当前是否有障碍物;若确定所述机器人周围当前没有障碍物,则停止执行所述转角操作;若确定所述机器人周围当前有障碍物,则判断执行转角操作的次数是否达到预设次数;若执行转角操作的次数未达到所述预设次数,则基于所述机器人的当前位置,再次执行所述转角操作;若执行转角操作的次数达到所述预设次数,则确定当前避障方向为不可通行方向,并基于所述第一障碍物方向,对避障方向进行更新;以及,控制所述机器人往更新后的避障方向运动。
可选地,所述基于所述第一障碍物方向,对避障方向进行更新,包括:将所述第一障碍物方向和当前避障方向以外的方向确定为更新后的避障方向。
可选地,所述控制所述机器人往所述避障方向运动,包括:在所述避障方向为正前方或者正后方时,控制所述机器人以第一速度朝所述避障方向进行直线运动;在所述避障方向为左前方或者右前方时,控制所述机器人以第二速度和第一转角角度朝所述避障方向进行转角运动;以及,在所述避障方向为左后方或者右后方时,控制所述机器人以第三速度和第二转角角度朝所述避障方向进行转角运动;其中,所述第二速度大于所述第三速度且小于所述第一速度,所述第一转角角度大于所述第二转角角度。
可选地,所述获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人周围是否有障碍物,包括:获取所述至少一个距离传感器检测到的距离;以及,在确定所述至少一个距离传感器检测到的距离小于或者等于一预设距离阈值时,确定所述机器人周围有障碍物。
可选地,所述至少一个方向至少包括正前方、正后方、左前方、左后方、右前方以及右后方,所述至少一个距离传感器包括依次设置于所述机器人的正前部、正后部、左前部、右前部、左后部以及右后部的正前方距离传感器、正后方距离传感器、左前方距离传感器、右前方距离传感器、左后方距离传感器以及右后方距离传感器;其中,各个距离传感器用于检测其与相应方向上的物体之间的距离。所述在确定所述至少一个距离传感器检测到的距离小于或者等于一预设距离阈值时,确定所述机器人周围有障碍物,包括:针对所述正前方距离传感器或所述正后方距离传感器中的每个正方向距离传感器,判断所述正方向距离传感器检测到的距离是否大于第一预设距离阈值;若所述正方向距离传感器检测到的距离大于所述第一预设距离阈值,则确定所述机器人的所述正方向距离传感器相应的正方向没有障碍物;若所述正方向距离传感器检测到的距离小于或者等于所述第一预设距离阈值,则确定所述机器人的所述正方向距离传感器相应的正方向有障碍物;针对所述左前方距离传感器、右前方距离传感器、左后方距离传感器、右后方距离传感器中的每个侧方向距离传感器,判断所述侧方向距离传感器检测到的距离是否大于第二预设距离阈值;若所述侧方向距离传感器检测到的距离大于第二预设距离阈值,则确定所述机器人的所述侧方向距离传感器相应的侧方向没有障碍物;以及,若所述侧方向距离传感器检测到的距离小于或者等于第二预设距离阈值,则确定所述机器人的所述侧方向距离传感器相应的侧方向有障碍物。其中,所述第一预设距离阈值大于所述第二预设距离阈值。
本申请的第二方面还提供一种机器人,所述机器人包括至少一个距离传感器和处理器,所述至少一个距离传感器用于检测所述机器人与至少一个方向上的物体之间的距离。所述处理器用于控制执行上述的机器人运动控制方法中的步骤。
本申请的第三方面还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于供处理器调用后,执行上述的机器人运动控制方法中的步骤。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
图1是本申请实施例提供的机器人的结构示意图。
图2是本申请实施例提供的机器人运动控制方法的流程图。
图3是图2中步骤10的细化流程图。
图4是图2中步骤20的细化流程图。
图5是图4中步骤21、步骤22以及步骤23的一种细化流程图。
图6a是本申请实施例提供的机器人的第一种应用场景示意图。
图6b是本申请实施例提供的机器人的第二种应用场景示意图。
图6c是本申请实施例提供的机器人的第三种应用场景示意图。
图6d是本申请实施例提供的机器人的第四种应用场景示意图。
图6e是本申请实施例提供的机器人的第五种应用场景示意图。
图7是图4中步骤23的另一种细化流程图。
图8a是本申请实施例提供的机器人的第六种应用场景示意图。
图8b是本申请实施例提供的机器人的第七种应用场景示意图。
主要元件符号说明:
100-机器人;1-正前方距离传感器;2-正后方距离传感器;3-左前方距离传感器;4-右前方距离传感器;5-左后方距离传感器;6-右后方距离传感器;8-处理器。
如下具体实施方式将结合上述附图进一步说明本申请。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要说明的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
本申请实施例提供一种机器人运动控制方法,所述方法用于控制一机器人100运动,所述机器人100设置有至少一个距离传感器,所述至少一个距离传感器用于检测所述机器人100与至少一个方向上的物体之间的距离。示例性地,如图1所示,所述机器人的外观轮廓为正方形或者长方形,所述至少一个距离传感器包括依次设置于所述机器人的正前部、正后部、左前部、右前部、左后部以及右后部的正前方距离传感器1、正后方距离传感器2、左前方距离传感器3、右前方距离传感器4、左后方距离传感器5以及右后方距离传感器6,所述至少一个方向对应的包括正前方、正后方、左前方、右前方、左后方以及右后方。其中,各个距离传感器用于检测其与相应方向上的物体之间的距离,以所述左前方距离传感器3为例,所述左前方距离传感器3用于检测所述左前方距离传感器3与左前方的物体之间的距离。可选地,各个距离传感器的检测方向可以大致为所述机器人的中心指向该距离传感器的方向,即各个距离传感器的检测方向与所述机器人的中心指向该距离传感器的方向之间的夹角小于或者等于预设角度(例如5度)。当然,在其他实施例中,所述至少一个距离传感器的数量也可以为其他数量,例如,4个(即包括正前方距离传感器、正左方距离传感器、正右方距离传感器、正后方距离传感器)、10个(即包括正前方距离传感器、左前方距离传感器、右前方距离传感器、左后方距离传感器、右后方距离传感器、前左方距离传感器、前右方距离传感器、后左方距离传感器、后右方距离传感器、正后方距离传感器,也就是说每一个角上包括两个距离传感器,其中,左前方距离传感器位于该机器人的左面的前端部位)等等。示例性地,所述至少一个距离传感器可以是光学距离传感器、红外距离传感器、超声波距离传感器中的一种。需要说明的是,当一个距离传感器的检测方向上的物体距离该距离传感器的距离超过该距离传感器的最大检测距离,或者,该距离传感器的检测方向上没有物体时,可视为该距离传感器检测到的距离为无穷远的距离。
请参阅图2,本申请实施例提供的机器人运动控制方法包括以下步骤:
步骤10,在控制所述机器人100按照预设导航路线运动的过程中,获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人100周围是否有障碍物。若确定所述机器人100周围有障碍物,则执行步骤20。在一些实施例中,若确定所述机器人100周围没有障碍物,则控制所述机器人100继续按照所述预设导航路线运动。
步骤20,若确定所述机器人100周围有障碍物,则根据障碍物所在的方向确定避障方向,并控制所述机器人100往所述避障方向运动。其中,所述避障方向为所述机器人100的预设距离内没有障碍物的方向。可选地,在所述避障方向为正前方或者正后方时,控制所述机器人100以第一速度朝所述避障方向进行直线运动。在所述避障方向为左前方或者右前方时,控制所述机器人100以第二速度和第一转角角度朝所述避障方向进行转角运动。在所述避障方向为左后方或者右后方时,控制所述机器人100以第三速度和第二转角角度朝所述避障方向进行转角运动。其中,所述第二速度大于所述第三速度且小于所述第一速度,所述第一转角角度大于所述第二转角角度,示例性地,所述第一速度为50厘米/分钟,所述第二速度为30厘米/分钟,所述第三速度为25厘米/分钟,所述第一转角角度为30度,所述第二转角角度为25度。需要说明的是,设置直行速度大于转角速度,往前转角的角度大于往后转角的角度,往前转角的速度大于往后转角的速度,可以提升所述机器人100运动的稳定性,能够避免所述机器人100出现“翻车”的情况。
本申请提供的机器人运动控制方法,在控制机器人100按照预设导航路线运动的过程中,判断机器人100的周围是否有障碍物,并根据障碍物所在的方向确定避障方向,以及控制机器人100往避障方向运动,如此,可以确保机器人100能够提前避开障碍物,从而能够提高机器人100的避障成功率、减少机器人100被困的概率。
请参阅图3,在本申请实施例中,所述步骤10包括步骤11~步骤12,具体如下:
步骤11,获取所述至少一个距离传感器检测到的距离。其中,在控制所述机器人100按照预设导航路线运动的过程中,获取所述至少一个距离传感器的检测距离的频率可以是实时地,也可以是每隔预设时间间隔(例如100毫秒)获取一次。
步骤12,在确定所述至少一个距离传感器检测到的距离小于或者等于一预设距离阈值时,确定所述机器人100周围有障碍物。进一步地,在本申请实施例中,所述步骤12包括:
针对所述正前方距离传感器1或所述正后方距离传感器2中的每个正方向距离传感器,判断所述正方向距离传感器检测到的距离是否大于第一预设距离阈值。若所述正方向距离传感器检测到的距离大于所述第一预设距离阈值,则确定所述机器人100的所述正方向距离传感器相应的正方向没有障碍物。若所述正方向距离传感器检测到的距离小于或者等于所述第一预设距离阈值,则确定所述机器人100的所述正方向距离传感器相应的正方向有障碍物。示例性地,以所述第一预设距离阈值为30厘米,所述正前方距离传感器1为例,若所述正前方距离传感器1检测到的距离小于或者等于30厘米(例如25厘米)时,则确定所述机器人的正前方有障碍物。
针对所述左前方距离传感器3、右前方距离传感器4、左后方距离传感器5、右后方距离传感器6中的每个侧方向距离传感器,判断所述侧方向距离传感器检测到的距离是否大于第二预设距离阈值。若所述侧方向距离传感器检测到的距离大于第二预设距离阈值,则确定所述机器人100的所述侧方向距离传感器相应的侧方向没有障碍物。若所述侧方向距离传感器检测到的距离小于或者等于第二预设距离阈值,则确定所述机器人100的所述侧方向距离传感器相应的侧方向有障碍物。其中,所述第一预设距离阈值大于所述第二预设距离阈值,如此,可以为所述机器人100预留足够的转角空间,确保所述机器人100在转角避障时不会与障碍物相撞。其中,所述第一预设距离阈值和所述第二预设距离阈值可以根据所述机器人100的尺寸相应的设定,示例性地,以所述第二预设距离阈值为20厘米,所述左前方距离传感器3为例,若所述左前方距离传感器3检测到的距离小于或者等于20厘米(例如17厘米)时,则确定所述机器人的左前方有障碍物。
进一步地,请参阅图4,在本申请实施例中,所述步骤20包括步骤21~步骤23,具体如下:
步骤21,若确定所述机器人100周围有障碍物,控制所述机器人100发出让路提示信号,以提示周围物体让路。示例性地,可以发出“挡住路啦,请让一让”的语音提示来提醒周围的物体或者人体让路。
步骤22,若确定在发出让路提示信号后的预设时长内所述机器人100的周围仍然有障碍物,则根据障碍物所在的方向确定避障方向。其中,所述预设时长可以根据应用场景相应设定(例如5秒),那么,在发出让路提示信号5秒后,如果所述机器人100的周围仍然有障碍物,则可以确定该障碍物不是临时障碍物,需要避障。
步骤23,控制所述机器人100往所述避障方向运动。
进一步地,请参阅图5,在一种实施例中,所述至少一个方向至少包括正前方、正后方、左前方、左后方、右前方以及右后方。在执行步骤10时,所述方法还包括:将所述障碍物所在的方向记录为第一障碍物方向,可选地,可以设定只保存最近的连续若干次(例如3次)检测到的障碍物信息,或者,只保存预设时间内(例如距离当前5分钟内)检测到的障碍物信息,而将之前其他的障碍物信息删除,如此,能够节省系统资源。所述步骤21包括步骤211~步骤214,所述步骤22包括步骤221~步骤224,所述步骤23包括步骤231~步骤234,具体如下:
步骤211,若确定所述机器人100周围有障碍物,则控制所述机器人100停止在当前位置。如此,可以避免所述机器人100继续靠近障碍物,从而能够留出更大的避障空间,从而能够提升避障成功率。
步骤212,控制所述机器人100发出让路提示信号,以提示周围物体让路。
步骤213,在所述机器人100停止运动的期间,获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人100周围是否仍然有障碍物。若确定在发出让路提示信号后的预设时长内所述机器人100周围没有障碍物,则执行步骤214。若确定在发出让路提示信号后的预设时长内所述机器人100周围有障碍物,且在所述机器人100周围只有一个方向存在障碍物时,则执行步骤221。若确定在发出让路提示信号后的预设时长内所述机器人100周围有障碍物,且在所述机器人100周围至少有两个方向存在障碍物时,则执行步骤222。
步骤214,控制所述机器人100继续按照所述预设导航路线运动。在发出让路提示信号的预设时长之后,如果所述机器人100的周围没有障碍物,则可以确定该障碍物为临时障碍物,不需要避障,如此,可以减少所述机器人100的运算量,能够节省系统资源。
步骤221,确定所述避障方向为与障碍物所在的方向相反的方向。其中,正后方和正前方为相反方向,左前方与右后方为相反方向,右前方和左后方为相反方向。例如,如果所述机器人100的正前方有障碍物,则所述避障方向为正后方。如果所述机器人100的左前方有障碍物,则所述避障方向为右后方。
步骤222,根据存在障碍物的方向判断所述机器人100是否被困。若确定所述机器人100被困,则执行步骤223,若确定所述机器人100没有被困,则执行步骤224。进一步地,在本实施例中,所述步骤222包括步骤2221~步骤2223,具体如下:
步骤2221,判断存在障碍物的方向中是否包括相反方向。
步骤2222,若存在障碍物的方向中包括相反方向,则确定所述机器人100被困。可以理解的是,如果存在障碍物的方向中包括相反方向,则所述机器人100无法通过调整位姿以绕开其周围的障碍物。例如,当所述机器人100的正前方和正后方均存在障碍物时,或者,左前方和右后方均存在障碍物时,或者,右前方和左后方均存在障碍物时,即认为所述机器人100被包围且无法脱困。
步骤2223,若存在障碍物的方向中不包括相反方向,则确定所述机器人100没有被困。
步骤223,控制所述机器人100停在原地,并发出被困报警信号,以通知管理人员,例如,向管理人员的手机发送“机器人被包围了”的短信信息。此时,已经确定所述机器人100被包围且无法脱困,需要管理人员到现场帮助所述机器人100脱困。
步骤224,确定一个预设距离内没有障碍物的方向为所述避障方向。在本实施例中,所述步骤224包括步骤2241~步骤2243,具体如下:
步骤2241,若所述机器人100的一个正方向和一个侧方向均存在障碍物,则确定与所述侧方向相反的方向为所述避障方向。其中,所述正方向包括正前方或正后方,所述侧方向包括左前方、左后方、右前方、右后方中的一个。如图6a所示,当所述机器人100的正前方和右前方均存在障碍物,且正后方、左前方、左后方、右后方均不存在障碍物时,则所述避障方向为左后方。如图6b所示,当所述机器人100的正前方和左后方均存在障碍物,且正后方、左前方、右后方、右前方均不存在障碍物时,则所述避障方向为右前方。
步骤2242,若所述机器人100的一个正方向和两个侧方向均存在障碍物,则确定与所述正方向相反的方向为所述避障方向。如图6c所示,当所述机器人100的正前方、左前方以及右前方均存在障碍物,且正后方、左后方、右后方均不存在障碍物时,则所述避障方向为正后方。
步骤2243,若所述机器人100的两个侧方向均存在障碍物,则确定与所述两个侧方向中的一个侧方向相反的方向为所述避障方向。如图6d所示,当所述机器人100的左前方、左后方均存在障碍物,且正前方、正后方、右前方、右后方均不存在障碍物时,则所述避障方向为右前方或右后方中的一个。
步骤231,在控制机器人100往避障方向运动的过程中,获取各个距离传感器检测到的距离,以及根据各个距离传感器检测到的距离,判断机器人100周围当前是否有障碍物。若确定所述机器人100周围当前有障碍物,则执行步骤232。若确定所述机器人100周围当前没有障碍物,则执行步骤234。其中,获取各个距离传感器的检测距离的频率可以是实时地,也可以是每隔预设时间间隔(例如100毫秒)获取一次。
步骤232,在当前障碍物所在的方向和所述第一障碍物方向不一致时,对避障方向进行更新。具体地,在本实施方式中,在当前障碍物所在的方向和所述第一障碍物方向不一致时,将当前障碍物所在的方向记录为第二障碍物方向,将所述第一障碍物方向以外且远离所述第二障碍物方向的方向确定为更新后的避障方向。在本申请实施例中,所述方法还包括:在当前障碍物所在的方向和所述第一障碍物方向一致时,继续控制所述机器人100往所述避障方向运动。
步骤233,控制所述机器人100往更新后的避障方向运动。需要说明的是,在所述机器人100往避障方向运动的过程中,可能遇到新的障碍物,并且出现所述机器人100无法同时检测到新的障碍物和原障碍物的情况,例如图6e所示,当所述机器人100的第一障碍物方向为正前方,即更新前的避障方向为正后方,在所述机器人100往正后方运动的过程中,可能确定正前方不存在第一障碍物而正后方存在第二障碍物,此时,如果再次将正前方确定为更新后的避障方向,那么,将会出现所述机器人100在第一障碍物和第二障碍物之间来回移动的问题,如此,所述机器人100不仅无法脱困,还会持续耗费电能。此时,将正前方以外并且远离正后方的方向(例如右前方)确定为更新后的避障方向,可以让所述机器人100成功脱困,从而能够进一步提升避障的成功率。
步骤234,根据所述预设导航路线中的目标位置重新规划导航路线,以及控制所述机器人100按照新的导航路线运动。可以理解的是,当所述机器人100避开障碍物后,将不能按照所述预设导航路线行驶,因此,需要根据所述预设导航路线中的目标位置重新规划导航路线。
可选地,在一种实施例中,所述步骤23包括:在所述避障方向为左前方、右前方、左后方或者右后方时,重复执行转角操作。具体地,请参阅图7~图8b,所述转角操作包括以下步骤:
步骤2301,控制所述机器人100以与所述避障方向对应的速度和与转角角度进行转角运动。如图8a~图8b所示,本实施例以所述机器人100在A位置时,其正前方、右后方均存在障碍物为例,此时,所述避障方向为左前方,即控制所述机器人100以第二速度(例如30厘米/分钟)和第一转角角度(例如30度)朝左前方进行转角运动。
步骤2302,在所述机器人100转角运动的距离达到预设转角距离时,获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人100周围当前是否有障碍物。若确定所述机器人100周围当前没有障碍物,则执行步骤2303。若确定所述机器人100周围当前有障碍物,则执行步骤2304。
步骤2303,停止执行转角操作,根据所述预设导航路线中的目标位置重新规划导航路线,以及控制所述机器人100按照新的导航路线运动。
步骤2304,判断执行转角操作的次数是否达到预设次数。若执行转角操作的次数未达到所述预设次数,则执行步骤2305。若执行转角操作的次数达到所述预设次数,则执行步骤2306。示例性地,可选地,所述预设转角距离与所述预设次数的乘积小于所述第二预设距离阈值,所述预设转角距离为5厘米,所述预设次数为3次。如此,可以确保所述机器人100在进行多次转角时不会与障碍物相撞。
步骤2305,基于所述机器人100的当前位置,再次执行所述转角操作。
步骤2306,确定当前避障方向为不可通行方向,并基于所述第一障碍物方向,对避障方向进行更新。
步骤2307,控制所述机器人100往更新后的避障方向运动。在本申请实施例中,将所述第一障碍物方向和当前避障方向以外的方向确定为更新后的避障方向。
在一种应用场景下,如图8a所示,所述机器人100的正前方和右后方存在障碍物,且正后方、左前方、右前方、左后方均不存在障碍物,则确定左前方为避障方向,从而控制所述机器人100往左前方进行转角运动,当所述机器人100完成第一次转角操作后,到达B位置,此时,所述机器人100的右前方距离传感器4检测到所述机器人100的右前方存在障碍物,从而执行第二次转角操作,到达C位置,此时,所述机器人100周围当前没有障碍物,从而执行步骤2303。
在另一种应用场景下,如图8b所示,所述机器人100的正前方和右后方存在障碍物,且正后方、左前方、右前方、左后方均不存在障碍物,则确定左前方为避障方向,从而控制所述机器人100往左前方进行转角运动,当所述机器人100到达B位置,此时,所述机器人100的正前方距离传感器1检测到所述机器人100的正前方依然存在障碍物,从而执行第二次转角操作,到达C位置,此时,所述机器人100的正前方距离传感器1和右前方距离传感器4检测到所述机器人100的正前方和右前方存在障碍物,到达D位置,此时,所述机器人100的正前方距离传感器1和右前方距离传感器4依然检测到所述机器人100的正前方和右前方存在障碍物,并且所述机器人100执行转角操作的次数达到3次。因此,可以确定左前方是不可通行方向,并将左后方确定为更新后的避障方向,进而控制所述机器人往左后方运动以避开障碍物。
可以理解的是,在一些特殊的应用场景下,所述机器人100转角避障时,可能通过一次转角操作无法避开障碍物,因此,控制所述机器人100重复执行转角操作,可以提高避障的成功率。此外,在往一个方向转角的次数达到预设次数(例如3次)时,更新避障方向,能够进一步提高避障的成功率。
基于同样的发明构思,请再次参阅图1,本申请实施例还提供一种机器人100,所述机器人100包括至少一个距离传感器和处理器8,所述至少一个距离传感器用于检测所述机器人100与至少一个方向上的物体之间的距离。示例性地,所述至少一个距离传感器包括依次设置于所述机器人的正前部、正后部、左前部、右前部、左后部以及右后部的正前方距离传感器1、正后方距离传感器2、左前方距离传感器3、右前方距离传感器4、左后方距离传感器5以及右后方距离传感器6。其中,各个距离传感器用于检测其与相应方向上的物体之间的距离,以所述左前方距离传感器3为例,所述左前方距离传感器3用于检测其与左前方的物体之间的距离。所述处理器8分别与各个距离传感器电连接,所述处理器8用于控制执行上述任一实施例中的机器人运动控制方法中的步骤。
例如,所述处理器8用于控制执行如下的步骤:
步骤10,在控制所述机器人100按照预设导航路线运动的过程中,获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人100周围是否有障碍物。若确定所述机器人100周围有障碍物,则执行步骤20。在一些实施例中,若确定所述机器人100周围没有障碍物,则控制所述机器人100继续按照所述预设导航路线运动。
步骤20,若确定所述机器人100周围有障碍物,则根据障碍物所在的方向确定避障方向,并控制所述机器人100往所述避障方向运动。其中,所述避障方向为所述机器人100的预设距离内没有障碍物的方向。
基于同样的发明构思,本申请实施例还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于供处理器调用后执行上述任一实施例中的机器人运动控制方法中的步骤。
例如,所述计算机程序用于供处理器调用后执行如下的步骤:
步骤10,在控制所述机器人100按照预设导航路线运动的过程中,获取各个距离传感器检测到的距离,并根据各个距离传感器检测到的距离,判断所述机器人100周围是否有障碍物。若确定所述机器人100周围有障碍物,则执行步骤20。在一些实施例中,若确定所述机器人100周围没有障碍物,则控制所述机器人100继续按照所述预设导航路线运动。
步骤20,若确定所述机器人100周围有障碍物,则根据障碍物所在的方向确定避障方向,并控制所述机器人100往所述避障方向运动。其中,所述避障方向为所述机器人100的预设距离内没有障碍物的方向。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
- 一种机器人控制方法、机器人及计算机可读存储介质
- 机器人交互方法、装置、计算机设备及可读存储介质
- 机器人自适应地形分类方法、系统与计算机可读存储介质
- 四足机器人着地足力分配方法、装置、终端及计算机可读存储介质
- 机器人移动控制方法、系统、设备及计算机可读存储介质
- 一种机器人重定位方法、机器人和计算机可读存储介质
- 机器人清扫方法、装置、机器人和计算机可读存储介质