欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 调节控制> 一种机器人避障方法、机器人以及存储介质独创技术48646字

一种机器人避障方法、机器人以及存储介质

2021-03-13 20:16:10

一种机器人避障方法、机器人以及存储介质

  技术领域

  本发明涉及机器人领域,特别是涉及一种机器人避障方法、机器人以及存储介质。

  背景技术

  随着智能家居不断迭代升级,清洁机器人能够实现的功能也越来越多。若用户不想让清洁机器人进入某个区域进行清扫,例如防止清洁机器人进入卧室或卫生间等区域,可以设置禁区或者虚拟墙的功能,使得清洁机器人能够绕开禁区或者虚拟墙。

  但目前的传统技术中,禁区被设置成矩形区域,且该矩形区域必须是与机器人行走的地图平行,而虚拟墙的方向也是与行走的地图平行或者垂直,机器人只能沿着矩形区域行走,无法实现沿着其他形状的禁区或者虚拟墙行走,例如曲线形状的虚拟墙或者任意多边形的禁区等,导致清扫效果不好,使用体验感不好。

  发明内容

  本发明至少在一定程度上解决上述技术问题之一,为此本发明提供一种机器人避障方法、机器人以及存储介质,其能够使得机器人能够沿着各种形状的虚拟障碍物行走,实现更好的避障效果,改善用户体验。

  一方面,本发明实施例提供一种机器人避障方法,包括:

  基于所述机器人所处清洁环境建立坐标系;

  获取所述机器人在所述坐标系中的位置和前进方向,以及障碍物在所述坐标系中的位置,所述障碍物包括虚拟障碍物;

  根据所述机器人的位置、所述前进方向以及第一安全距离,确定有效碰撞区;

  判断所述虚拟障碍物是否至少部分落入所述有效碰撞区内;

  若是,根据所述机器人的位置、所述虚拟障碍物的位置和所述第一安全距离,控制所述机器人沿着所述虚拟障碍物行走。

  在一些实施例中,所述根据所述机器人的位置、前进方向以及第一安全距离,确定有效碰撞区,包括:

  确定位于所述机器人周侧的虚拟碰撞区域,所述虚拟碰撞区域的边界与所述机器人的距离等于所述第一安全距离;

  所述虚拟碰撞区域靠近所述机器人前进方向的一部分构成所述有效碰撞区,所述有效碰撞区的边界上的任意一点与所述机器人的中心的连线方向均与所述前进方向的夹角小于或等于第一预设角度。

  在一些实施例中,所述有效碰撞区包括左侧碰撞区、前侧碰撞区和右侧碰撞区,所述判断所述虚拟障碍物是否至少部分落入所述有效碰撞区内,包括:

  根据所述机器人的位置和所述虚拟障碍物的位置,判断所述虚拟障碍物是否与所述有效碰撞区的边界有交点;

  若是,则确定所述虚拟障碍物至少部分落入所述有效碰撞区内;

  若判断到所述虚拟障碍物至少部分落入所述有效碰撞区内,根据落入所述有效碰撞区内的虚拟障碍物的位置和所述机器人的位置,确定虚拟碰撞点,所述虚拟碰撞点为落入所述有效碰撞区内的虚拟障碍物上的点距离所述机器人的中心最近的点;

  根据所述虚拟碰撞点、所述左侧碰撞区、所述前侧碰撞区和所述右侧碰撞区,确定所述虚拟障碍物至少部分落入所述有效碰撞区的位置。

  在一些实施例中,所述根据所述虚拟碰撞点、所述左侧碰撞区、所述前侧碰撞区和所述右侧碰撞区,确定所述虚拟障碍物至少部分落入所述有效碰撞区的位置,包括:

  标记所述虚拟碰撞点与所述机器人的中心的连线方向为障碍方向,

  若所述障碍方向与所述前进方向的夹角大于第二预设角度,且所述障碍方向位于所述前进方向的左侧,则所述虚拟障碍物至少部分落入所述左侧碰撞区;

  若所述障碍方向与所述前进方向的夹角大于第二预设角度,且所述障碍方向位于所述前进方向的右侧,则所述虚拟障碍物至少部分落入所述右侧碰撞区;

  若所述障碍方向与所述前进方向的夹角小于或等于第二预设角度,且所述障碍方向位于所述前进方向的左侧或右侧或同侧,则所述虚拟障碍物至少部分落入所述前侧碰撞区,

  其中所述第二预设角度小于所述第一预设角度。

  在一些实施例中,所述判断所述虚拟障碍物是否至少部分落入所述有效碰撞区内,还包括:

  若所述虚拟障碍物未落入所述右侧碰撞区,则控制所述机器人旋转,直至所述虚拟障碍物至少部分落入所述右侧碰撞区。

  在一些实施例中,所述虚拟障碍物包括第一虚拟障碍物和第二虚拟障碍物,当所述机器人沿着所述第一虚拟障碍物行走时,所述方法还包括:

  判断所述第二虚拟障碍物是否至少部分落入所述左侧碰撞区或所述前侧碰撞区内;

  若是,控制所述机器人旋转,直至所述第二虚拟障碍物至少部分落入所述右侧碰撞区内,再根据所述机器人的位置、所述第二虚拟障碍物的位置以及所述第一安全距离,控制所述机器人沿着所述第二虚拟障碍物行走。

  在一些实施例中,所述根据所述机器人的位置、所述虚拟障碍物的位置和所述第一安全距离,控制所述机器人沿着所述虚拟障碍物行走,包括:

  生成以所述机器人的位置为原点,以预设方向为方向,延伸至所述虚拟障碍物的位置的虚拟探测信号,所述预设方向与所述机器人的前进方向呈锐角设置;

  确定所述虚拟探测信号与所述虚拟障碍物的交点为虚拟交点;

  确定所述机器人距离所述虚拟交点的距离为第一实际距离;

  根据所述第一实际距离是否满足所述第一安全距离,控制所述机器人沿所述虚拟障碍物行走。

  在一些实施例中,所述障碍物还包括真实障碍物,若所述真实障碍物和所述虚拟障碍物同时存在,所述方法还包括:

  获取所述第一实际距离与所述第一安全距离的第一差值;

  获取所述机器人距离所述真实障碍物的第二实际距离;

  获取所述第二实际距离与所述第二安全距离的第二差值;

  判断所述第一差值是否小于所述第二差值;

  若是,根据所述第一实际距离是否满足所述第一安全距离,控制所述机器人沿着所述虚拟障碍物行走;

  若否,根据所述第二实际距离是否满足所述第二安全距离,控制所述机器人沿着所述真实障碍物行走。

  第二方面,本发明实施例提供一种机器人,所述机器人包括:主体;

  驱动轮部件,安装于所述主体,用于驱动所述机器人移动;

  至少一个处理器;和

  与所述至少一个处理器通信连接的存储器;其中,

  所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的机器人避障方法。

  第三方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使机器人执行如上所述的机器人避障方法。

  本发明与现有技术相比至少具有以下有益效果:在本发明中的机器人避障方法,首先基于机器人所处清洁环境建立坐标系,然后获取机器人在坐标系中的位置和前进方向,以及障碍物在坐标系中的位置,该障碍物包括虚拟障碍物,再根据机器人的位置、前进方向以及第一安全距离,确定有效碰撞区,然后判断虚拟障碍物是否至少部分落入有效碰撞区,若是,最后根据机器人的位置、虚拟障碍物的位置和第一安全距离,控制机器人沿着虚拟障碍物行走。因此,无论何种形状的虚拟障碍物,只要该虚拟障碍物存在于有效碰撞区内,该机器人避障方法均可以通过机器人的位置和第一安全距离,控制机器人沿着该虚拟障碍物行走,不限制虚拟障碍物的形状,实现更好的避障效果,进而提升用户体验。

  附图说明

  一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

  图1a是本发明实施例提供的一种机器人的立体示意图;

  图1b是图1a中机器人的底部示意图;

  图2是本发明实施例提供的一种禁区和虚拟墙的表示示意图;

  图3是本发明实施例提供一种机器人避障方法的流程图;

  图4是图3中步骤S34的流程示意图;

  图5是本发明实施例提供的一种确定有效碰撞区示意图;

  图6是本发明另一实施例提供的一种机器人避障方法的流程图;

  图7是图6中步骤S35的流程示意图;

  图8是本发明实施例提供的一种确定虚拟交点的示意图;

  图9是本发明又另一实施例提供的一种机器人避障方法的流程图;

  图10是本发明实施例提供的一种确定机器人距离真实障碍物的实际距离和距离虚拟障碍物的实际距离的示意图;

  图11是本发明实施例提供一种机器人避障装置示意图;

  图12是本发明实施例提供一种控制器结构示意图。

  具体实施方式

  为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

  需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。

  请一并参阅图1a以及图1b,本发明实施例的机器人100可以被构造成任何合适形状,以便实现特定业务功能操作,例如,本发明实施例机器人100可以为清洁机器人、宠物机器人、搬运机器人、看护机器人等等。其中,清洁机器人包括且不限于扫地机器人、吸尘机器人、拖地机器人或洗地机器人。

  机器人100包括主体11和驱动轮部件12以及控制器。主体11的外形可以大体上呈椭圆形、三角形、D形或其他形状。控制器设置于主体11,驱动轮部件12安装于主体11,用于驱动机器人100移动,若机器人100为清洁机器人,则驱动轮部件12驱动机器人100在待清洁面上移动,其中,待清洁面可以是较为光滑的地板表面、铺设有地毯的表面以及其他需要清洁的表面。

  在一些实施例中,驱动轮部件12包括左驱动轮121、右驱动轮122 及全向轮123,左驱动轮121和右驱动轮122分别安装于主体11的相对两侧。全向轮123安装于主体11的底部的靠前位置,全向轮123为活动脚轮,可以水平360度旋转,以使得机器人100可以灵活转向。左驱动轮121、右驱动轮122及全向轮123的安装构成三角形,以提高机器人100行走的平稳性。

  在一些实施例中,全向轮123可被省略,只留左驱动轮121与右驱动轮122亦可以驱动机器人100正常行走。

  在一些实施例中,控制器设置于主体11内部,控制器分别与左驱动轮121、右驱动轮122以及全向轮123电连接。控制器作为机器人100 的控制核心,用于控制机器人100行走、后退以及一些业务逻辑处理。

  在一些实施例中,控制器可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,控制器还可以是任何传统处理器、控制器、微控制器或状态机。控制器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。

  在一些实施例中,上述机器人100在活动的过程中,控制器采用 SLAM(simultaneous localization and mapping,即时定位与建图技术)技术,根据环境数据构建地图和定位。控制器基于被建立好的地图以及机器人100的位置,指示机器人100完全遍历一个环境空间。另外,用户可以预先设置一些禁区或者虚拟墙位置,防止机器人100进入该禁区或虚拟墙以内,设置的禁区或者虚拟墙位置相当于一个虚拟障碍物的位置,该地图可以指示机器人100需要遍历的区域以及位于遍历区域中的障碍物所在的坐标位置。可以理解的是,控制器还可以根据多种方式识别已遍历位置或区域,或者,识别障碍物,从而作出满足产品需求的控制策略。并且,由于虚拟障碍物在地图中是以坐标方式被标记,例如:虚拟墙在地图中的表示方式可以间距小于或等于1cm连续的点组成的线段,该线段可以为直线段,也可以为曲线线段,同样地,禁区也可以设置为任意多边形的形状,甚至多边形的线段也可以是弯曲的。如图2 所示,该区域内设置有一段曲线的虚拟墙A1,五角星区域组成的第一禁区A2以及多边形组成的第二禁区A3。而在传统技术中,机器人100在对虚拟障碍物避障时,只能沿着矩形或者直线段的虚拟障碍物行走,无法实现沿着任意形状的虚拟障碍物行走,避障效果不好。

  请一并参阅图3和图5,本发明实施例提供一种机器人避障方法,如图3所示,该机器人避障方法S30包括:

  S31、基于所述机器人所处清洁环境建立坐标系;

  S32、获取所述机器人在所述坐标系中的位置和前进方向,以及障碍物在所述坐标系中的位置,所述障碍物包括虚拟障碍物;

  S33、根据所述机器人的位置、所述前进方向以及第一安全距离,确定有效碰撞区;

  S34、判断所述虚拟障碍物是否至少部分落入所述有效碰撞区内;

  S35、若是,根据所述机器人的位置、所述虚拟障碍物的位置和所述第一安全距离,控制所述机器人沿着所述虚拟障碍物行走。

  机器人100在行走或者清扫过程中会遇到一些障碍物,这些障碍物包括真实障碍物和虚拟障碍物,机器人100对真实障碍物的避障处理是碰撞传感器检测到碰撞,再进行后续处理。虚拟障碍物包括禁区和虚拟墙等,而机器人100与虚拟障碍物之间不会发生真实的碰撞,相应的传感器也检测不到碰撞,因此,在本发明实施例中,模拟机器人100与虚拟障碍物的虚拟碰撞。若发生虚拟碰撞以后,机器人100采取相应措施,例如刹车或者沿着障碍物行走等,而第一安全距离则设置为机器人100 的有效刹车范围,在该范围内,机器人100能够及时刹车,防止撞到障碍物。

  为了模拟虚拟碰撞,该方法首先基于机器人100所处清洁环境建立坐标系,在坐标系中设置有效碰撞区,如图5中的A4、A5以及A6,只要虚拟障碍物L1至少部分落入有效碰撞区内,则认为机器人100与虚拟障碍物L1发生了虚拟碰撞。而有效碰撞区A4、A5以及A6,根据机器人100的位置、前进方向以及第一安全距离确定,在一些实施例中,确定有效碰撞区A4、A5以及A6的具体方式为首先获取机器人100在坐标系中的位置和前进方向,以及虚拟障碍物L1在坐标系中的位置,根据机器人100的位置、前进方向以及第一安全距离,先确定机器人100 周侧的虚拟碰撞区域,虚拟碰撞区域的边界与机器人100的距离等于第一安全距离,只有在第一安全距离以内的才为虚拟碰撞区,第一安全距离以外的区域,即使存在虚拟障碍物L1,由于离机器人100较远,可以不考虑。在虚拟碰撞区域内,其靠近机器人100前进方向的一部分构成有效碰撞区,且有效碰撞区的边界上任意一点与机器人100的中心的连线方向均与前进方向的夹角小于或等于第一预设角度,也就是在前进方向的左、右预设范围内的区域。在本发明实施例中,该第一预设角度可设为90度,则在虚拟碰撞区的边界上的任意一点与机器人100中心的连线方向,均与前进方向的夹角小于90度。同时,对于机器人100来说,避障时候,也是只需考虑机器人100前进方向的区域即可,对于机器人100后方的各个区域,均不用考虑障碍物L1的存在,因为机器人 100需要向后运动时候,都是先旋转至后方方向,再向前行走。因此,根据机器人100的位置、前进方向以及第一安全距离,就可以确定出有效碰撞区。

  若虚拟障碍物L1至少部分落入有效碰撞区A4、A5以及A6,则认为机器人100与虚拟障碍物L1之间发生了虚拟碰撞,再根据机器人100 的位置和第一安全距离,控制机器人100沿着虚拟障碍物L1行走。具体地,以第一安全距离为目标值,控制机器人100沿着虚拟障碍物L1 行走并与虚拟障碍物L1之间保持在第一安全距离,在行走的过程中,还会实时获取机器人100与虚拟障碍物L1之间的实际距离,根据该实际距离是否满足第一安全距离控制机器人100沿着虚拟障碍物L1行走,若机器人100距离虚拟障碍物L1远了,则控制机器人100向右侧行走一点,达到第一安全距离,若机器人100距离虚拟障碍物L1近了,则控制机器人100向左侧行走一点,达到第一安全距离,即控制机器人100 与虚拟障碍物之间L1保持在第一安全距离,并沿着虚拟障碍物L1行走。

  综上所述,当虚拟障碍物L1至少部分落入机器人100的有效碰撞区时,根据机器人100的位置、虚拟障碍物L1的位置和第一安全距离,控制机器人100沿着虚拟障碍物L1行走。该机器人避障方法对虚拟障碍物L1的形状和类型不做限制,实现更好的避障效果,进而提升用户体验。

  在一些实施例中,请一并参阅图4和图5,有效碰撞区包括左侧碰撞区A5、前侧碰撞区A4和右侧碰撞区A6,请参阅图4,步骤S34包括:

  S341、根据所述机器人的位置和所述虚拟障碍物的位置,判断所述虚拟障碍物是否与所述有效碰撞区的边界有交点;

  S342、若是,则确定所述虚拟障碍物至少部分落入所述有效碰撞区内;

  S343、若判断到所述虚拟障碍物至少部分落入所述有效碰撞区内,根据落入所述有效碰撞区内的虚拟障碍物的位置和所述机器人的位置,确定虚拟碰撞点,所述虚拟碰撞点为落入所述有效碰撞区内的虚拟障碍物上的点距离所述机器人的中心最近的点;

  S344、根据所述虚拟碰撞点、所述左侧碰撞区、所述前侧碰撞区和所述右侧碰撞区,确定所述虚拟障碍物至少部分落入所述有效碰撞区的位置。

  虚拟障碍物L1为用户预先设置的,例如通过与机器人100交互的软件进行设置等,设置以后,该虚拟障碍物L1存在于机器人100行走的空间的地图上,可以获取该虚拟障碍物L1的坐标位置等信息。根据虚拟障碍物L1的坐标信息和有效碰撞区的坐标信息,可以确定虚拟障碍物L1是否与有效碰撞区的边界有交点,具体地,若虚拟障碍物L1为虚拟墙,在坐标系中,其可以通过二元一次方程表示,有效碰撞区的边界可以通过二元二次方程表示,两个方程组合求解,可以求得交点的坐标,若虚拟障碍物L1与有效碰撞区的边界有交点,则确定虚拟障碍物 L1至少部分落入有效碰撞区。

  若判断到虚拟障碍物L1至少部分落入有效碰撞区内以后,再判断虚拟障碍物L1至少部分落入哪个有效碰撞区,即判断该虚拟障碍物存在于左侧碰撞区A5、前侧碰撞区A4还是右侧碰撞区A6,有效碰撞区包含多个区域,若以前进方向为正方向,每个有效碰撞区的范围可以不限制,三个区域的大小也不一定相同,例如,如图5所示,机器人100的前进方向如图中实线箭头所示,前侧碰撞区A4的两个边界线夹角为第一预设角度,其可以为90度,其区域在前进方向的左侧或者右侧,左侧碰撞区A5的两个边界线夹角为第二预设角度,其可以为45度,且在前进方向的左侧,右侧碰撞区A6的两个边界线夹角为第二预设角度,其可以为45度,且在前进方向的右侧。当然,在其他实施方式中,第一预设角度和第二预设角度也不局限于上述举例,可以根据实际需要灵活设置。

  若判断到虚拟障碍物L1至少落入有效碰撞区内,则认为机器人100 和该虚拟障碍物L1发生了虚拟碰撞,则首先根据落入有效碰撞区内的虚拟障碍物和机器人100的位置,确定该虚拟碰撞点C,该虚拟碰撞点C 被定义为落入有效碰撞区内的虚拟障碍物L1上的点距离机器人100的中心点A最近的点,该步骤同样可通过坐标计算实现,例如:若虚拟障碍物L1与有效碰撞区边界存在两个交点,则取两个交点之间的所有虚拟障碍物上L1的点的坐标,计算所有点与机器人100中心点A的距离,距离最短的点即为虚拟碰撞点C,又或者,若虚拟障碍物L1与有效碰撞区边界存在多个交点,则取多个交点之间的所有虚拟障碍物L1上的点的坐标,计算所有点与机器人100中心点A的距离,距离最短的点即为虚拟碰撞点C,又或者,若虚拟障碍物L1与有效碰撞区边界只存在一个交点,则该交点为虚拟障碍物L1上的点距离机器人100的中心点A最近的点,该交点为虚拟碰撞点C。

  最后,根据虚拟碰撞点C、左侧碰撞区A5、前侧碰撞区A4和右侧碰撞区A6,判断虚拟障碍物L1至少部分落入有效碰撞区的具体位置,判断虚拟障碍物L1具体落入哪个有效碰撞区,有很多判断方法,在一些实施例中,首先标记虚拟碰撞点C与机器人100的中心A的连线方向,该连线方向为障碍方向,若该障碍方向与前进方向的夹角大于第二预设角度,且障碍方向位于前进方向的左侧,则该虚拟障碍物L1至少部分落入左侧碰撞区A4,其中,该第二预设角度小于第一预设角度,该第二预设角度的具体数值,可以由用户根据需要而设置,在本发明实施例中,其为45度。若障碍方向与前进方向的夹角大于第二预设角度,且障碍方向位于前进方向的右侧,则虚拟障碍物至少部分落入右侧碰撞区A6。若障碍方向与前进方向的夹角小于或等于第二预设角度,且障碍方向位于前进方向的左侧或右侧,又或者障碍方向与前进方向同侧,则虚拟障碍物L1至少部分落入前侧碰撞区A4。

  在一些实施例中,还可以通过虚拟障碍物L1的坐标和各个有效碰撞区的坐标,直接进行确定该虚拟障碍物L1至少部分落入有效碰撞区的位置,具体地,虚拟障碍物L1的坐标与各个有效碰撞区的坐标进行坐标比对,判断是否有坐标重合区域,若虚拟障碍物L1的坐标与左侧碰撞区A5的坐标有重合,则确定该虚拟障碍物L1至少部分落入左侧碰撞区A5,若虚拟障碍物L1的坐标还与右侧碰撞区A6的坐标有重合,则确定该虚拟障碍物L1至少部分落入右侧碰撞区A6,若虚拟障碍物L1的坐标还与前侧碰撞区A4的坐标有重合,则确定该虚拟障碍物L1至少部分落入前侧碰撞区A4。

  因此,可以通过上述的多种方法确定虚拟障碍物至少部分落入有效碰撞区的位置。在一些实施例中,若所述虚拟障碍物未落入右侧碰撞区,则控制所述机器人100旋转,直至所述虚拟障碍物至少部分落入所述右侧碰撞区。

  因此,若虚拟障碍物L1未落入右侧碰撞区A6,而是至少部分落入于左侧碰撞区A5或者前侧碰撞区A4,则控制机器人100旋转,直至虚拟障碍物L1至少部分落入右侧碰撞区A6,再确定该虚拟障碍物L1与右侧碰撞区A6的虚拟碰撞点,然后再根据虚拟碰撞点响应该虚拟碰撞。

  在一些实施例中,机器人100在沿着障碍物行走的过程中,还同时检测左方区域和前进方向区域的障碍物情况,具体地,虚拟障碍物L1 包括第一虚拟障碍物和第二虚拟障碍物,当机器人100沿着第一虚拟障碍物行走时,请参阅图6,该机器人避障方法S60还包括:

  S61、判断所述第二虚拟障碍物是否至少部分落入所述左侧碰撞区或所述前侧碰撞区内;

  S62、若是,控制所述机器人旋转,直至所述第二虚拟障碍物至少部分落入所述右侧碰撞区内,再根据所述机器人的位置、所述第二虚拟障碍物的位置以及所述第一安全距离,控制所述机器人沿着所述第二虚拟障碍物行走。

  机器人100在沿着第一虚拟障碍物行走的过程中,该第一虚拟障碍物至少部分落入机器人100的右侧碰撞区A6,同时,机器人100会检测第二虚拟障碍物是否部分落入其左侧碰撞区A5或者前侧碰撞区A4 内,若部分落入,则代表机器人100与左侧碰撞区A5内的第二虚拟障碍物或者前侧碰撞区A4内的第二虚拟障碍物发生了虚拟碰撞,那么就立即响应该虚拟碰撞,再进行沿着第二虚拟障碍物行走的过程,具体地,发生虚拟碰撞时,控制机器人100旋转,直至第二虚拟障碍物至少部分落入右侧碰撞区A6,再根据机器人100的位置、第二虚拟障碍物的位置与第一安全距离,控制机器人100沿着第二虚拟障碍物行走,进行新的沿边运动。该方法可以使得机器人100在避障的过程中,同时检测其他方向的虚拟障碍物情况,实现更好地避障效果。

  综上所述,当虚拟障碍物L1至少部分落入机器人100的有效碰撞区时,根据机器人100的位置、虚拟障碍物L1的位置和第一安全距离,控制机器人100沿着虚拟障碍物L1行走。该机器人避障方法对虚拟障碍物L1的形状和类型不做限制,实现更好的避障效果,进而提升用户体验。

  在一些实施例中,请一并参阅图7和图8,步骤S35包括:

  S351、生成以所述机器人的位置为原点,以预设方向为方向,延伸至所述虚拟障碍物的位置的虚拟探测信号,所述预设方向与所述机器人的前进方向呈锐角设置;

  确定虚拟障碍物L1与有效碰撞区发生虚拟碰撞以后,就响应该碰撞,具体地,首先以机器人100与虚拟碰撞点C的连线距离作为最初的实际距离,以第一安全距离作为目标距离,控制机器人100沿着虚拟障碍物L1行走,而在行走的过程中,生成以机器人100的位置为原点,以预设方向为方向,延伸至虚拟障碍物L1的位置的虚拟探测信号,其中,该预设方向与机器人100的前进方向呈锐角设置。该虚拟探测信号的原点为机器人100位置,具体地,其可以为机器人100的中心点A,方向为预设方向,且指向虚拟位置。一般地,该预设方向为原点A指向机器人100tof传感器的方向,其中,若以机器人100前进方向为正方向,则tof传感器设置于机器人100正方向的右上方位置,其可以检测真实障碍物与机器人100之间的距离,且安装于右上方位置,而不是正右侧位置,可以对右侧障碍物的距离进行一下预判,提前做好避障准备,也更好地控制实现沿着障碍物行走。因此,预设方向与机器人100的前进方向之间设置的锐角为机器人100的tof传感器与机器人100前进方向的夹角。

  S352、确定所述虚拟探测信号与所述虚拟障碍物的交点为虚拟交点;

  S353、确定所述机器人距离所述虚拟交点的距离为第一实际距离;

  S354、根据所述第一实际距离是否满足所述第一安全距离,控制所述机器人沿所述虚拟障碍物行走。

  该虚拟探测信号指向虚拟位置,若无尽延长,则肯定与虚拟障碍物 L1有交点,该交点则确定为虚拟交点C,最后确定机器人100距离虚拟交点C的距离为第一实际距离,也即机器人100的位置距离虚拟墙位置的实际距离。例如:如图8所示,虚拟墙L1为一段曲线,且以虚线段进行表示,机器人100的前进方向如图中实线箭头所示,机器人100原点为点A,机器人100的tof传感器所在的位置为点B,以点A为原点,以点A指向点B的方向为预设方向,向虚拟墙L1位置生成虚拟探测信号,该虚拟探测信号以直线l表示,该直线l与虚拟墙的交点为C点, C点则为虚拟交点,则将线段BC的长度作为第一实际距离,即机器人 100距离虚拟交点C点的距离。

  在一些实施例中,确定了第一实际距离以后,根据第一实际距离是否满足第一安全距离,控制机器人100沿着虚拟障碍物L1行走。具体地,第一实际距离其实为机器人100右侧与虚拟墙L1的实际距离,若第一实际距离大于第一安全距离,则控制机器人100向右侧行走,直至使得机器人100与虚拟墙L1之间的距离保持在第一安全距离,若第一实际距离小于第一安全距离,则控制机器人100向左侧行走,直至使得机器人100与虚拟墙L1之间的距离保持在第一安全距离。第一安全距离可以设置为5cm,用户也可以根据需要而设置,而该步骤可以通过P I D 控制算法实现。

  因此,无论虚拟障碍物L1至少部分落入有效碰撞区的哪个部分,均是以机器人100右侧与虚拟障碍物L1的实际距离确定机器人100距离虚拟障碍物L1的第一实际距离。即使在左侧碰撞区A5或者前侧碰撞区A4检测到虚拟障碍物L1至少部分落入该有效碰撞区,该机器人避障方法也能很好地实现避障,达到更好地避障效果。

  在一些实施例中,若左侧碰撞区A5、右侧碰撞区A6和前侧碰撞区 A4均检测到有虚拟障碍物L1至少部分落入,则根据预设优先级,响应虚拟碰撞,具体地,预设优先级可以为左侧碰撞区A5响应优先级>前侧碰撞区A4响应优先级>右侧碰撞区A6响应优先级,即先响应左侧碰撞区A5的虚拟碰撞,若虚拟障碍物L1未至少部分落入左侧碰撞区A5,则先响应前侧碰撞区A4的虚拟碰撞,若虚拟障碍物L1未至少部分落入左侧碰撞区A5且未至少部分落入前侧碰撞区A4,则响应右侧碰撞区 A6的虚拟碰撞。

  综上所述,当虚拟障碍物L1至少部分落入机器人100的有效碰撞区时,根据机器人100的位置、虚拟障碍物L1的位置和第一安全距离,控制机器人100沿着虚拟障碍物L1行走。该机器人避障方法对虚拟障碍物L1的形状和类型不做限制,实现更好的避障效果,进而提升用户体验。

  在一些实施例中,所述障碍物还包括真实障碍物,若真实障碍物和虚拟障碍物L1同时存在,请参阅图9,该机器人避障方法S90包括:

  S91、获取所述第一实际距离与所述第一安全距离的第一差值;

  S92、获取所述机器人距离所述真实障碍物的第二实际距离;

  S93、获取所述第二实际距离与所述第二安全距离的第二差值;

  S94、判断所述第一差值是否小于所述第二差值;

  S95、若是,根据所述第一实际距离是否满足所述第一安全距离,控制所述机器人沿着所述虚拟障碍物行走;

  S96、若否,根据所述第二实际距离是否满足所述第二安全距离,控制所述机器人沿着所述真实障碍物行走。

  机器人100在沿着某个障碍物行走的过程中,可能会碰到真实障碍物和虚拟障碍物L1同时存在的情况,例如:机器人100在沿着虚拟障碍物L1行走的过程中,设置在机器人100右上方的tof传感器检测到右侧存在真实障碍物,那么在机器人100的右侧空间内,则既存在虚拟障碍物L1,又存在真实障碍物。对于真实障碍物来说,机器人100的安全距离为第二安全距离,机器人100与真实障碍物保持在第二安全距离范围内,同时沿着真实障碍物行走,沿着真实障碍物进行沿边运动。其中,在本发明实施例中,第二安全距离为1cm,用户也可以根据需要而设置。

  针对这种在沿边行走的过程中,机器人100右侧空间内真实障碍物和虚拟障碍物L1同时存在的情况,机器人100利用该tof传感器实时测量真实障碍物距离机器人100的距离,该距离称为第二实际距离,首先获取第一实际距离与第一安全距离的第一差值,然后获取第二实际距离与第二安全距离的第二差值,根据两个差值的大小,采取不同的措施,若第一差值小于第二差值,则根据第一实际距离和第一安全距离,控制机器人100沿着虚拟障碍物L1行走,若第一差值大于第二差值,则根据第二实际距离和第二安全距离,控制机器人100沿着真实障碍物行走。即选择较小的差值作为运动控制的反馈值,机器人100沿着障碍物行走的控制过程中,控制目标值可设为零,较小的差值作为反馈值,控制机器人100沿着较小差值对应的障碍物行走。例如:如图10所示,机器人100的前进方向如图中箭头所示,机器人100距离虚拟障碍物L1的实际距离为S1,安全距离为S2,机器人100距离第一真实障碍物L2的实际距离为S3,安全距离为S4,机器人100距离第二真实障碍物L3的实际距离为S5,安全距离为S4(图中未示出),则分别获取各个实际距离与对应安全距离的差值,为了更好地说明,此处将S2设为与S4相等,均设为1cm,在其他实施例中,两者也可以不等,例如S2=5cm,S4=1cm。若S2与S4相等,那么对于虚拟墙L1来说,差值ΔS1=S1-S2=0,对于第一真实障碍物L2来说,差值ΔS2=S3-S4<0,对于第二真实障碍物L3 来说,差值ΔS3=S5-S4>0,则将差值ΔS2反馈给机器人100,机器人100 以差值ΔS2作为反馈值,以零作为目标值,控制机器人100沿着第一真实障碍物L2行走,进行沿边运动。

  当在行走的过程中,若真实障碍物和虚拟障碍物同时存在时,该方法可以无缝切换机器人沿边行走的障碍物,根据障碍物的实际情况,控制机器人沿着对应的障碍物行走,实现更好地避障效果。

  综上所述,当虚拟障碍物至少部分落入机器人的有效碰撞区时,根据机器人的位置、虚拟障碍物的位置和第一安全距离,控制机器人沿着虚拟障碍物行走。该机器人避障方法对虚拟障碍物的形状和类型不做限制,实现更好的避障效果,进而提升用户体验。

  需要说明的是,在上述各个实施例中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。

  作为本发明实施例的另一方面,本发明实施例提供一种机器人避障装置。其中,机器人避障装置可以为软件模块,所述软件模块包括若干指令,其存储在电调中的存储器内,处理器可以访问该存储器,调用指令进行执行,以完成上述各个实施例所阐述的机器人避障方法。

  在一些实施例中,机器人避障装置亦可以由硬件器件搭建成的,例如,机器人避障装置可以由一个或两个以上的芯片搭建而成,各个芯片可以互相协调工作,以完成上述各个实施例所阐述的机器人避障方法。再例如,机器人避障装置还可以由各类逻辑器件搭建而成,诸如由通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合而搭建成。

  请参阅图11,图11是本发明实施例提供一种机器人避障装置,该机器人避障装置200包括建立模块21、第一获取模块22、第一确定模块23、第一判断模块24以及第一控制模块25。

  建立模块21用于基于所述机器人所处清洁环境建立坐标系;

  第一获取模块22用于获取所述机器人在所述坐标系中的位置和前进方向,以及障碍物在所述坐标系中的位置,所述障碍物包括虚拟障碍物;

  第一确定模块23用于根据所述机器人的位置、所述前进方向以及第一安全距离,确定有效碰撞区;

  第一判断模块24用于判断所述虚拟障碍物是否至少部分落入所述有效碰撞区内;

  第一控制模块25用于根据所述机器人的位置、所述虚拟障碍物的位置和所述第一安全距离,控制所述机器人沿着所述虚拟障碍物行走。

  因此,当虚拟障碍物至少部分落入机器人的有效碰撞区时,该机器人避障装置根据机器人的位置、虚拟障碍物的位置和第一安全距离,控制机器人沿着虚拟障碍物行走。该机器人避障方法对虚拟障碍物的形状和类型不做限制,实现更好的避障效果,进而提升用户体验。

  在一些实施例中,第一确定模块23具体用于:确定位于所述机器人周侧的虚拟碰撞区域,所述虚拟碰撞区域的边界与所述机器人的距离等于所述第一安全距离;所述虚拟碰撞区域靠近所述机器人前进方向的一部分构成所述有效碰撞区,所述有效碰撞区的边界上的任意一点与所述机器人的中心的连线方向均与所述前进方向的夹角小于或等于第一预设角度。

  在一些实施例中,所述有效碰撞区包括左侧碰撞区、前侧碰撞区和右侧碰撞区,第一确定模块23还具体用于:根据所述机器人的位置和所述虚拟障碍物的位置,判断所述虚拟障碍物是否与所述有效碰撞区的边界有交点;若是,则确定所述虚拟障碍物至少部分落入所述有效碰撞区内;若判断到所述虚拟障碍物至少部分落入所述有效碰撞区内,根据落入所述有效碰撞区内的虚拟障碍物的位置和所述机器人的位置,确定虚拟碰撞点,所述虚拟碰撞点为落入所述有效碰撞区内的虚拟障碍物上的点距离所述机器人的中心最近的点;根据所述虚拟碰撞点、所述左侧碰撞区、所述前侧碰撞区和所述右侧碰撞区,确定所述虚拟障碍物至少部分落入所述有效碰撞区的位置。

  在一些实施例中,第一确定模块23还具体用于:标记所述虚拟碰撞点与所述机器人的中心的连线方向为障碍方向,

  若所述障碍方向与所述前进方向的夹角大于第二预设角度,且所述障碍方向位于所述前进方向的左侧,则所述虚拟障碍物至少部分落入所述左侧碰撞区;

  若所述障碍方向与所述前进方向的夹角大于第二预设角度,且所述障碍方向位于所述前进方向的右侧,则所述虚拟障碍物至少部分落入所述右侧碰撞区;

  若所述障碍方向与所述前进方向的夹角小于或等于第二预设角度,且所述障碍方向位于所述前进方向的左侧或右侧或同侧,则所述虚拟障碍物至少部分落入所述前侧碰撞区,

  其中所述第二预设角度小于所述第一预设角度。

  在一些实施例中,第一判断模块24具体用于若所述虚拟障碍物未落入所述右侧碰撞区,则控制所述机器人旋转,直至所述虚拟障碍物至少部分落入所述右侧碰撞区。

  在一些实施例中,所述虚拟障碍物包括第一虚拟障碍物和第二虚拟障碍物,当所述机器人沿着所述第一虚拟障碍物行走时,请继续参阅图 11,该机器人避障装置200还包括第二判断模块26,用于判断所述第二虚拟障碍物是否至少部分落入所述左侧碰撞区或所述前侧碰撞区内;第二控制模块27,用于控制所述机器人旋转,直至所述第二虚拟障碍物至少部分落入所述右侧碰撞区内,再根据所述机器人的位置、所述第二虚拟障碍物的位置以及所述第一安全距离,控制所述机器人沿着所述第二虚拟障碍物行走。

  在一些实施例中,第一控制模块25具体用于生成以所述机器人的位置为原点,以预设方向为方向,延伸至所述虚拟障碍物的位置的虚拟探测信号,所述预设方向与所述机器人的前进方向呈锐角设置;确定所述虚拟探测信号与所述虚拟障碍物的交点为虚拟交点;确定所述机器人距离所述虚拟交点的距离为第一实际距离;根据所述第一实际距离是否满足所述第一安全距离,控制所述机器人沿所述虚拟障碍物行走。

  在一些实施例中,若所述真实障碍物和所述虚拟障碍物同时存在,请继续参阅图11,该机器人避障装置200还包括第二获取模块28,用于获取所述第一实际距离与所述第一安全距离的第一差值;获取所述机器人距离所述真实障碍物的第二实际距离;获取所述第二实际距离与所述第二安全距离的第二差值;第三控制模块29,用于判断所述第一差值是否小于所述第二差值;若是,根据所述第一实际距离是否满足所述第一安全距离,控制所述机器人沿着所述虚拟障碍物行走;若否,根据所述第二实际距离是否满足所述第二安全距离,控制所述机器人沿着所述真实障碍物行走。

  需要说明的是,上述机器人避障装置可执行本发明实施例所提供的机器人避障方法,具备执行方法相应的功能模块和有益效果。未在机器人避障装置实施例中详尽描述的技术细节,可参见本发明实施例所提供的机器人避障方法。

  请参阅图12,图12是本发明实施例提供的一种控制器的结构示意图。如图12所示,该控制器300包括一个或多个处理器31以及存储器 32。其中,图12中以一个处理器31为例。

  处理器31和存储器32可以通过总线或者其他方式连接,图12中以通过总线连接为例。

  存储器32作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的机器人避障方法对应的程序指令/模块。处理器31通过运行存储在存储器32中的非易失性软件程序、指令以及模块,从而执行机器人避障装置的各种功能应用以及数据处理,即实现上述方法实施例提供的机器人避障方法以及上述装置实施例的各个模块或单元的功能。

  存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至处理器31。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

  所述程序指令/模块存储在所述存储器32中,当被所述一个或者多个处理器31执行时,执行上述任意方法实施例中的机器人避障方法。

  本发明实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图12中的一个处理器31,可使得上述一个或多个处理器可执行上述任意方法实施例中的机器人避障方法。

  本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行任一项所述的机器人避障方法。

  综上所述,当虚拟障碍物至少部分落入机器人的有效碰撞区时,该机器人避障装置根据机器人的位置、虚拟障碍物的位置和第一安全距离,控制机器人沿着虚拟障碍物行走。该机器人避障方法对虚拟障碍物的形状和类型不做限制,实现更好的避障效果,进而提升用户体验。

  以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

  通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

  最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

《一种机器人避障方法、机器人以及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)