1.本发明涉及智能机器人领域,具体涉及一种机器人控制方法、芯片以及机器人。
背景技术:2.扫地机器人,又称自动打扫机、智能吸尘、机器人吸尘器等,是智能家用电器的一种,能凭借一定的人工智能,自动在房间内完成地板清理工作。一般采用刷扫和真空方式,将地面杂物先吸纳进入自身的垃圾收纳盒,从而完成地面清理的功能。一般来说,将完成清扫、吸尘、擦地工作的机器人,也统一归为扫地机器人。
3.目前,扫地机器人以圆形为主,而适用于圆形扫地机的沿边清扫方式应用在d型机上会出现各种问题。当d型机沿边时遇到障碍物或墙体时,需要转弯对齐障碍物或墙体继续沿边,此时若直接转弯,机器后侧调整空间不足,会直接撞到障碍物或墙体。
技术实现要素:4.为解决上述问题,本发明提供了一种机器人控制方法、芯片以及机器人,可使得d型机器人高效地完成转弯对齐动作,且不会产生碰撞。本发明的具体技术方案如下:
5.一种机器人控制方法,所述方法包括如下步骤:步骤s1,根据前方障碍物的位置,机器人计算转弯时所需的旋转角度;步骤s2,基于所述旋转角度,以及机器人的机身参数,机器人计算转弯时需要调整的边距;步骤s3,基于所述边距,机器人按照预设动作调整位置,然后根据所述旋转角度进行转弯。
6.进一步地,所述机器人为d型机器人;所述d型机器人包括呈半圆形的机头、呈矩形的机身和两个对称设置的轮子,所述两个对称设置的轮子通过轮轴连接,所述轮轴设置于所述机头和所述机身的分界线处;所述d型机器人还包括激光雷达和/或碰撞传感器,其中,所述激光雷达用于采集障碍物的点云数据,所述碰撞传感器以预设安装角度设置在所述机头的前端,用于在所述d型机器人产生碰撞时反馈碰撞信号。
7.进一步地,所述步骤s1中,机器人确定前方障碍物的位置,计算转弯时所需的旋转角度的方法具体包括:步骤s11,机器人通过激光雷达获取前方障碍物的点云数据,然后使用最小二乘法对所述点云数据进行线性拟合,得到表示前方障碍物位置的直线;步骤s12,取所述表示前方障碍物位置的直线的垂线,所述垂线与x轴正方向的夹角作为机器人转弯时所需的旋转角度;其中,以朝机器人侧边障碍物且与机器人侧边垂直的方向作为x轴正方向。
8.进一步地,所述步骤s12中,所述垂线与x轴正方向的夹角的计算方法如下:取所述表示障碍物位置的直线上的任意两个点r0(x0,y0)和r1(x1,y1),代入预设公式中计算可得到所述垂线与x轴正方向的夹角α;其中,所述预设公式为α=atan((y1-y0)/(x1-x0)+90
°
)。
9.进一步地,所述步骤s2中,机器人计算转弯时需要调整的边距的方法具体包括:当所述旋转角度α大于等于90
°
时,
10.d1=r-d;
11.d2=(r-d)*tan(α-90
°
)+(d-h);
12.当所述旋转角度α小于90
°
时,如果α小于arccos(r/d),则
13.d1=r-d;
14.d2=(d-h)-d1*tan(90
°‑
α);
15.如果α大于等于arccos(r/d),则
16.d1=cos(arccos(r/d)-α)*r-d;
17.d2=(d-h)-d1*tan(90
°‑
α);
18.其中,d1表示机器人的侧边与障碍物需要调整的边距,d2表示机器人的机头与前端障碍物需要调整的边距,r表示以所述轮轴中点为起点,到机器人机身边界的最长距离,d表示机器人机身宽度的一半,h表示所述机头的最大半径。
19.进一步地,所述步骤s3中,机器人按照预设动作调整位置的具体方法包括:步骤s31,机器人控制靠近侧边障碍物一侧的轮子后退,待所述轮轴移动前后的位置形成的夹角达到预设角度时停止后退,然后控制另一侧的轮子后退,直至所述轮轴与机器人调整位置前的轮轴平行,完成机器人侧边与障碍物边距的调整;其中,所述预设角度为β=arccos(l/(l-d1)),l表示轮轴的长度;步骤s32,在完成机器人侧边与障碍物边距的调整后,机器人计算机头与前端障碍物变化的距离,并用所述变化的距离减去d2得到一差值,如果所述差值大于0,则机器人前进所述差值的距离,否则后退所述差值的距离,完成机器人机头与前端障碍物边距的调整;其中,所述变化的距离为d3=l*sinβ。
20.进一步地,所述步骤s1中,机器人确定前方障碍物的位置,计算转弯时所需的旋转角度的方法具体包括:当机器人无法拟合出前方障碍物的直线时,如果两个碰撞传感器都被触发,机器人转弯时所需的旋转角度α=90
°
;如果左侧或右侧碰撞传感器被触发,机器人转弯时所需的旋转角度α等于碰撞传感器的预设安装角度;其中,机器人装配有两个碰撞传感器,所述两个碰撞传感器分别以预设安装角度设置在所述机头左右两侧的前端;其中,所述预设安装角度指的是碰撞传感器的中轴线与x轴正方向的夹角;其中,以朝机器人侧边障碍物且与机器人侧边垂直的方向作为x轴正方向。
21.一种机器人,所述机器人用于实现所述的机器人控制方法,所述机器人包括:旋转角度计算模块,用于根据前方障碍物的位置,计算机器人转弯时所需的旋转角度;调整边距计算模块,用于根据所述旋转角度以及机器人的机身参数,计算机器人转弯时需要调整的边距;转弯控制模块,用于根据所述边距,按照预设动作调整机器人的位置,然后根据所述旋转角度控制机器人进行转弯。
22.进一步地,所述机器人为d型机器人;所述d型机器人包括呈半圆形的机头、呈矩形的机身和两个对称设置的轮子,所述两个对称设置的轮子通过轮轴连接,所述轮轴设置于所述机头和所述机身的分界线处;所述d型机器人还包括激光雷达和/或碰撞传感器,其中,所述激光雷达用于采集障碍物的点云数据,所述碰撞传感器以预设安装角度设置在所述机头的前端,用于在所述d型机器人产生碰撞时反馈碰撞信号。
23.一种芯片,所述芯片储存有计算机程序代码,所述计算机程序代码被执行时实现所述的机器人控制方法的步骤。
24.本发明的有益效果在于:与现有技术相比,本发明所述的方法通过d型机器人搭载的激光雷达或碰撞传感器判断前方障碍物的位置,从而获得转弯时需要的旋转角度。然后,
根据机身参数,进一步计算d型机器人转弯时需要调整的边距并进行位置上的调整,可以避免机器人后侧因空间不足而直接与障碍物相撞。所述方法可使得机器人高效地完成转弯对齐动作,且调整空间代价小,避免出现机器人因转弯动作幅度过大而导致漏扫的情况。
附图说明
25.图1为d型机器人的示意图。
26.图2为本发明一种实施例所述机器人控制方法的流程图示意图。
27.图3为本发明一种实施例所述机器人通过激光雷达计算旋转角度的示意图。
28.图4为本发明另一种实施例所述机器人通过激光雷达计算旋转角度的示意图。
29.图5为本发明一种实施例所述调整机器人位置的过程示意图。
30.图6为本发明一种实施例所述机器人调整位置后与障碍物的距离示意图。
具体实施方式
31.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
32.应当理解,当在本技术中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在本技术中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
33.如在本技术中所使用的那样,术语“如果”可以依据上下文被解释为“当
…
时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0034]
另外,在本技术的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0035]
目前,扫地机器人以圆形为主,而适用于圆形扫地机的沿边清扫方式应用在d型机上会出现各种问题。图1显示了一种d型机的示意图,当该d型机沿边时遇到障碍物或墙体时,需要转弯对齐障碍物或墙体继续沿边,此时若直接转弯,机器后侧调整空间不足,会直接撞到障碍物或墙体。
[0036]
如图1所示,所述d型机器人包括呈半圆形的机头1、呈矩形的机身2和两个对称设置的轮子3,所述两个对称设置的轮子通过轮轴4连接,所述轮轴4设置于所述机头1和所述机身2的分界线处。其中,机身参数r表示以所述轮轴中点为圆心,机器人的最大半径,换句
话说,r是以所述轮轴中点为起点,到机器人机身边界的最长距离;d表示所述机头和所述机身的分界线的长度的一半,即机身宽度的一半;h表示所述机头的最大半径。
[0037]
为了解决上述问题,本发明实施例提供一种机器人控制方法,可使得d型机器人高效地完成转弯对齐动作,且不会产生碰撞。如图1所示,所述方法包括如下步骤:
[0038]
步骤s1,根据前方障碍物的位置,机器人计算转弯时所需的旋转角度;
[0039]
步骤s2,基于所述旋转角度,以及机器人的机身参数,机器人计算转弯时需要调整的边距;
[0040]
步骤s3,基于所述边距,机器人按照预设动作调整位置,然后根据所述旋转角度进行转弯。
[0041]
需要说明的是,机器人在沿边过程中可以通过多种传感器检测前方障碍物。比如,机器人通过激光雷达打在障碍物上的点云判断障碍物的情况,精度较高,但价格偏贵且对于低矮障碍物的检测效果不理想。一般,对于低矮障碍物,机器人通过碰撞传感器(图1中编号5即碰撞传感器)进行检测,基于机器人产生碰撞时反馈的碰撞信号的数量和方向可以判断障碍物的情况。
[0042]
作为其中一种实施方式,如图3所示,所述步骤s1中,机器人确定前方障碍物的位置,计算转弯时所需的旋转角度的方法具体包括:
[0043]
步骤s11,机器人通过激光雷达获取前方障碍物的点云数据,然后使用最小二乘法对所述点云数据进行线性拟合,得到表示前方障碍物位置的直线6;
[0044]
步骤s12,取所述表示前方障碍物位置的直线6的垂线8,所述垂线8与x轴正方向的夹角作为机器人转弯时所需的旋转角度α;其中,以朝机器人侧边障碍物7且与机器人侧边垂直的方向作为x轴正方向。需要说明的是,目前的扫地机器人以右沿边为主,因此本发明的实施例均以右侧障碍物为例进行说明。
[0045]
在执行步骤s12的过程中,所述垂线8与x轴正方向的夹角的计算方法如下:取所述表示障碍物位置的直线6上的任意两个点r0(x0,y0)和r1(x1,y1),代入预设公式中计算可得到所述垂线与x轴正方向的夹角α,所述预设公式为α=atan((y1-y0)/(x1-x0)+90
°
)。
[0046]
作为另一种实施方式,图4显示了不同旋转角度的情况,该旋转角度的求取方法与上述实施例相同,仍然是求垂线8与x轴正方向的夹角,即α=atan((y1-y0)/(x1-x0)+90
°
)。需要说明的是,在该实施例中,atan((y1-y0)/(x1-x0)是一个负值,与90
°
相加后得到的结果符合图4显示的锐角α。
[0047]
进一步地,在所述步骤s2中,机器人计算转弯时需要调整的边距的方法具体包括:
[0048]
当所述旋转角度α大于等于90
°
时,
[0049]
d1=r-d;
[0050]
d2=(r-d)*tan(α-90
°
)+(d-h);
[0051]
当所述旋转角度α小于90
°
时,
[0052]
如果α小于arccos(r/d),则
[0053]
d1=r-d;
[0054]
d2=(d-h)-d1*tan(90
°‑
α);
[0055]
如果α大于等于arccos(r/d),则
[0056]
d1=cos(arccos(r/d)-α)*r-d;
[0057]
d2=(d-h)-d1*tan(90
°‑
α);
[0058]
其中,d1表示机器人的侧边与障碍物需要调整的边距,d2表示机器人的机头与前端障碍物需要调整的边距,r表示以所述轮轴中点为起点,到机器人机身边界的最长距离,d表示机器人机身宽度的一半,h表示所述机头的最大半径。
[0059]
如图5所示,在执行步骤s3的过程中,机器人按照预设动作调整位置的具体方法包括:
[0060]
步骤s31,机器人控制靠近侧边障碍物一侧的轮子w1后退,待所述轮轴移动前后的位置形成的夹角达到预设角度β时停止后退,然后控制另一侧的轮子w2后退,直至所述轮轴与机器人调整位置前的轮轴平行,完成机器人侧边与障碍物边距的调整,参照图6,此时机器人向左(以右沿边为例)调整了d1距离;其中,所述预设角度为β=arccos(l/(l-d1)),l表示轮轴的长度;
[0061]
步骤s32,在完成机器人侧边与障碍物边距的调整后,机器人计算机头与前端障碍物变化的距离,并用所述变化的距离减去d2得到一差值,如果所述差值大于0,表明此时机器人与前方障碍物的距离过大,则机器人前进所述差值的距离,否则后退所述差值的距离,完成机器人机头与前端障碍物边距的调整,参照图6,此时机器人向下调整了d2距离;其中,所述变化的距离为d3=l*sinβ。
[0062]
需要说明的是,d1和d2是理论上机器人转弯时需要与障碍物保持的最小距离。其中,参照图6,d1是机器人右侧机身与侧边障碍物的垂直距离,d2是机器人机头正中间向正前方障碍物的距离。在实际应用中,d1和d2可以加上一个常数,以确保机器人有足够的调整空间。但是,该常数不宜过大,以避免因机器人转弯幅度太大而导致漏扫的情况。此外,不同机器人在沿边和碰到障碍物时预留的距离不尽相同,因此所述常数的大小需要根据实际情况决定。在本发明中,所述常数取0。
[0063]
至此,机器人已有足够的调整空间进行转弯,此时基于步骤s1计算得到的旋转角度α向左(以右沿边为例)旋转,可与障碍物对齐,继续进行沿边。上述实施例所述的方法可以避免机器人后侧因空间不足而直接与障碍物相撞,而且需要的调整空间代价小,不会因机器人转弯动作幅度过大而导致漏扫。
[0064]
作为另一种实施方式,在所述步骤s1中,机器人确定前方障碍物的位置,计算转弯时所需的旋转角度的方法具体包括:
[0065]
当机器人无法拟合出前方障碍物的直线时,比如前方障碍物为不规则形状、或者存在机器人无法通过激光雷达检测的低矮障碍物,从而与障碍物产生碰撞时,如果两个碰撞传感器都被触发,则表明障碍物在机器人的正前方,此时机器人转弯时所需的旋转角度α=90
°
;如果左侧碰撞传感器被触发,则表明障碍物在机器人的左前方,此时机器人转弯时所需的旋转角度α等于碰撞传感器的预设安装角度;如果右侧碰撞传感器被触发,则表明障碍物在机器人的右前方,此时机器人转弯时所需的旋转角度α等于碰撞传感器的预设安装角度。如图1所示,机器人装配有两个碰撞传感器5,所述两个碰撞传感器5分别以预设安装角度设置在所述机头左右两侧的前端;其中,所述预设安装角度指的是碰撞传感器5的中轴线(碰撞传感器5上的虚线)与x轴正方向的夹角;其中,以朝机器人侧边障碍物且与机器人侧边垂直的方向作为x轴正方向。
[0066]
本发明实施例提供一种机器人,所述机器人包括:旋转角度计算模块,用于根据前
方障碍物的位置,计算机器人转弯时所需的旋转角度;调整边距计算模块,用于根据所述旋转角度以及机器人的机身参数,计算机器人转弯时需要调整的边距;转弯控制模块,用于根据所述边距,按照预设动作调整机器人的位置,然后根据所述旋转角度控制机器人进行转弯。
[0067]
具体地,如图1所示,所述机器人为d型机器人。所述d型机器人包括呈半圆形的机头1、呈矩形的机身2和两个对称设置的轮子3,所述两个对称设置的轮子通过轮轴4连接,所述轮轴4设置于所述机头1和所述机身2的分界线处。所述d型机器人还包括激光雷达(图中未示出)和/或碰撞传感器5。其中,所述激光雷达用于采集障碍物的点云数据,然后传输给所述旋转角度计算模块进行计算。具体地,通过最小二乘法对所述点云数据进行线性拟合,得到表示障碍物位置的直线,然后取直线上的任意两个点r0(x0,y0)和r1(x1,y1),代入预设公式α=atan((y1-y0)/(x1-x0)+90
°
)中计算可得到所述旋转角度。所述碰撞传感器以预设安装角度设置在所述机头的前端,用于在所述d型机器人与低矮障碍物产生碰撞时反馈碰撞信号,进而根据触发的碰撞传感器的数量和预设安装角度判断障碍物的位置和机器人的旋转角度。
[0068]
本发明还提供一种芯片,所述芯片储存有计算机程序代码,所述计算机程序代码被执行时实现所述的机器人控制方法的步骤。所述芯片可装配于所述d型机器人上,使得机器人可以根据机身参数计算出转弯时需要调整的边距并进行位置上的调整,以避免机器人后侧因空间不足而直接与障碍物相撞,而且需要的调整空间代价小,不会因机器人转弯动作幅度过大而导致漏扫。
[0069]
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,该计算机程序可存储于一非易失性计算机可读存储介质中,该计算机程序在执行时,可包括如上述个方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器rom、可编程存储器prom、电可编程存储器dprom、电可擦除可编程存储器ddprom或闪存。易失性存储器可包括随机存取存储器ram或者外部高速缓冲存储器。
[0070]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0071]
以上各实施例仅表达了本发明的几种实施例,其描述较为具体和详细,但并不能因此而理解为发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。