CN108613656A - 机器人基于六轴陀螺仪检测仰角的方法和检测被卡的方法 - Google Patents
机器人基于六轴陀螺仪检测仰角的方法和检测被卡的方法 Download PDFInfo
- Publication number
- CN108613656A CN108613656A CN201810458442.9A CN201810458442A CN108613656A CN 108613656 A CN108613656 A CN 108613656A CN 201810458442 A CN201810458442 A CN 201810458442A CN 108613656 A CN108613656 A CN 108613656A
- Authority
- CN
- China
- Prior art keywords
- robot
- acceleration
- axis
- elevation
- angle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C1/00—Measuring angles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01M—TESTING STATIC OR DYNAMIC BALANCE OF MACHINES OR STRUCTURES; TESTING OF STRUCTURES OR APPARATUS, NOT OTHERWISE PROVIDED FOR
- G01M99/00—Subject matter not provided for in other groups of this subclass
- G01M99/005—Testing of complete machines, e.g. washing-machines or mobile phones
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Manipulator (AREA)
Abstract
本发明涉及一种机器人基于六轴陀螺仪检测仰角的方法和检测被卡的方法。其中,所述检测仰角的方法,通过将陀螺仪所检测到的竖直方向的加速度与重力加速度进行求方差,如果所求得的方差值在预设方差范围内,表明机器人在水平面上,将机器人的仰角角度校准为零,否则,表明机器人是在斜面上,将机器人的仰角角度确定为六轴陀螺仪检测到的绕X轴转动的角度值,如此可以避免陀螺仪的零点漂移或其它干扰所带来的检测误差,提高了机器人检测仰角的准确性。此外,所述检测被卡的方法,通过将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,并结合时间和打滑情况的综合判断,准确得出机器人是否被卡的检测结果。
Description
技术领域
本发明涉及机器人领域,具体涉及一种机器人基于六轴陀螺仪检测仰角的方法和检测被卡的方法。
背景技术
六轴陀螺仪可以同时检测角速度和加速度,装配在扫地机器人上,常用于姿态的判断。一般将六轴陀螺仪检测到的角速度进行时间积分就可以得到对应的旋转角度。然而,由于各种原因,所述陀螺仪上往往被作用有各种干扰力矩,在这些很小干扰力矩的作用下,陀螺仪的陀螺会产生进动,从而使角动量慢慢偏离原来的方向,我们把这种现象称为零点漂移。陀螺仪存在的零点漂移现象会影响传感器的检测精度。在扫地机中,如果检测到的俯仰角发生偏移,机器人会因此而产生误判,比如,机器人是处于水平面上的,却可能会被判断为在斜面上。此外,在实际家庭环境中,大多数家庭都有立地电风扇、门槛和吧台座椅等等,有些办公地方还有一些凳脚是U型的座椅,该座椅接触地面的凳脚是U型的不锈钢管,管的横截面为扁圆形状。 扫地机器人在进行清扫工作时,容易被立地电风扇底座、门槛、吧台座椅的底座或者U型凳脚卡住,导致机器人出现打滑或者被卡住无法移动的问题,从而影响了机器人构建地图的准确性,导航准确性也因此大大降低。目前,很多机器人都无法识别是否被立地电风扇底座、门槛、吧台座椅的底座或者U型凳脚卡住的问题,有的机器人在这方面可以做一些改善,但是需要额外增加视觉或者激光等传感器的检测,导致机器人的成本增加,不利于推广应用。
发明内容
为解决上述问题,本发明提供了一种机器人基于六轴陀螺仪检测仰角的方法和检测被卡的方法,可以准确地检测机器人的仰角角度,且在不需要增加硬件成本的基础上准确检测出机器人是否被卡。本发明的具体技术方案如下:
一种机器人基于六轴陀螺仪检测仰角的方法,包括如下步骤:步骤S1:确定机器人的六轴陀螺仪中的竖直方向的加速度计在第一预定时间段所检测到的加速度,并进入步骤S2;步骤S2:判断所述加速度与重力加速度的方差值是否在预设方差范围内,如果是,则进入步骤S3,如果否,则进入步骤S4;步骤S3:确定机器人的仰角角度为零;步骤S4:确定六轴陀螺仪检测到的绕X轴转动的角度值为机器人的仰角角度;其中,机器人的左右方向为X轴,前后方向为Y轴,上下方向为Z轴,X轴、Y轴和Z轴构成所述六轴陀螺仪的三维坐标系。
进一步地,所述步骤S1具体包括如下步骤:分析第一预定时间段内,机器人的六轴陀螺仪中的竖直方向的加速度计所检测到的加速度,如果当前分析的加速度与其前一个加速度的差值大于预设加速度值,且当前分析的加速度与其后一个加速度的差值也大于预设加速度值,则确定当前分析的加速度为干扰数据,并删除所述干扰数据,否则,保留当前分析的加速度,把所保留的加速度确定为机器人的六轴陀螺仪中的竖直方向的加速度计在第一预定时间段所检测到的加速度。
进一步地,步骤S2中所述的判断所述加速度与重力加速度的方差值是否在预设方差范围内,具体包括如下步骤:确定所述加速度与所述重力加速度的差值为加速度差值;确定所述加速度差值的平方之和的平均值为加速度平均值;确定所述加速度平均值的算术平方根为方差值;基于***配置的预设方差范围,确定预设方差最大值和预设方差最小值;将所述方差值分别与所述预设方差最大值和所述预设方差最小值进行比较,如果所述方差值大于所述预设方差最小值,且小于所述预设方差最大值,则确定所述加速度与重力加速度的方差值在预设方差范围内,否则确定所述加速度与重力加速度的方差值不在预设方差范围内。
进一步地,所述步骤S4具体包括如下步骤:步骤S41:确定机器人的六轴陀螺仪检测到的绕X轴转动的角速度;步骤S42:将所述角速度进行时间积分得到机器人绕X轴转动的X角度;步骤S43:确定所述六轴陀螺仪的零点漂移值;步骤S44:确定所述机器人的仰角角度为所述X角度与所述零点漂移值的差值。
进一步地,所述步骤S43具体包括如下步骤:当机器人处于静止状态时,把机器人的六轴陀螺仪检测到的绕X轴转动的角速度进行时间积分所得到的角度值作为所述六轴陀螺仪的零点漂移值。其中,所述静止状态是指机器人开机后没有移动前的状态或者机器人在移动过程中停止下来时的状态,且所述状态需要持续第二预定时间段。
一种机器人基于六轴陀螺仪检测被卡的方法,包括如下步骤:步骤1:根据上述的机器人基于六轴陀螺仪检测仰角的方法,记录机器人检测到的仰角数据,并进入步骤2;步骤2:将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内,如果是,则进入步骤3,如果否,则将所述第一预设时间段内所记录的仰角数据中的第一个记录的数据删除,并返回步骤1;步骤3:持续记录机器人检测到的仰角数据,并判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间是否达到第二预设时间段,如果是,则进入步骤4,如果否,则确定机器人没有被卡;步骤4:判断在所述第二预设时间段内是否检测到机器人打滑,如果检测到机器人打滑,则确定机器人被卡,如果没有检测到机器人打滑,则确定机器人没有被卡。
进一步地,步骤1中所述的记录机器人检测到的仰角数据,包括如下步骤:每间隔第三预设时间段,记录一个仰角角度;基于仰角角度为Y轴,记录时间为X轴的坐标系中,确定所述机器人所记录的仰角角度所构成的连线。
进一步地,步骤2中所述的将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内,包括如下步骤:步骤21:获取机器人当前所记录的第一预设时间段内的仰角角度所构成的连线,确定所述连线的变化情况,并进入步骤22;步骤22:获取机器人中预先存储的机器人行走至不同斜面时,在所述第一预设时间段内所检测到的参考仰角数据所构成的参考线,并进入步骤23;步骤23:判断当前记录的所述连线的变化情况是否在所述参考线的变化情况的误差范围内,如果是,则确定所记录的仰角数据在参考仰角数据的误差范围内,如果否,则确定所记录的仰角数据不在参考仰角数据的误差范围内。
进一步地,步骤4中所述的判断在所述第二预设时间段内是否检测到机器人打滑,包括如下步骤:步骤41:基于机器人的两个驱动轮上的码盘检测到的数据,确定当前记录时间点所检测到的所述两个驱动轮中的第一驱动轮所行进的第一当前行进距离,和上一记录时间点所检测到的第一驱动轮所行进的第一上一行进距离,计算得出第一驱动轮所行进的第一距离为所述第一当前行进距离与所述第一上一行进距离的差值;确定所述当前记录时间点所检测到的所述两个驱动轮中的第二驱动轮所行进的第二当前行进距离,和所述上一记录时间点所检测到的第二驱动轮所行进的第二上一行进距离,计算得出第二驱动轮所行进的第二距离为所述第二当前行进距离与所述第二上一行进距离的差值;确定所述行进距离差值为所述第一距离与所述第二距离的差值;确定所述两个驱动轮在第一预设时间内的行进角度值为所述行进距离差值与两个驱动轮之间的宽度的比值;确定第一预设时间内两个驱动轮所产生的第一角度变化率为所述行进角度值与所述第一预设时间的比值,并进入步骤42;步骤42:确定所述驱动轮的最大误差率,确定所述第一角度变化率的最大误差值为所述第一角度变化率与所述最大误差率的乘积,并进入步骤43;步骤43:基于机器人的六轴陀螺仪检测到的数据,确定当前记录时间点六轴陀螺仪所检测到的当前角度,和上一记录时间点六轴陀螺仪所检测到的上一角度,计算得出变化角度为所述当前角度与所述上一角度的差值,确定六轴陀螺仪在所述第一预设时间内所产生的第二角度变化率为所述变化角度和所述第一预设时间的比值,并进入步骤S44;步骤44:确定所述第一角度变化率与所述第二角度变化率的差值为第一差值,并进入步骤45;步骤45:确定角速度变化误差率为所述第一差值与所述最大误差值的比值,并进入步骤46;步骤46:判断在所述第二预设时间段内所述角速度变化误差率是否大于或者等于预设值,如果连续N次所确定的所述角速度变化误差率都大于或者等于预设值,则确定机器人打滑,否则,确定机器人没有打滑。其中,所述N为大于或者等于2的自然数,所述最大误差率通过实验测试得出,所述第一预设时间为所述当前记录时间点与所述上一记录时间点之间的时间间隔。
本发明提供的机器人基于六轴陀螺仪检测仰角的方法,通过将陀螺仪所检测到的竖直方向的加速度与重力加速度进行求方差,如果所求得的方差值在预设方差范围内,表明机器人在水平面上,将机器人的仰角角度校准为零,否则,表明机器人是在斜面上,将机器人的仰角角度确定为六轴陀螺仪检测到的绕X轴转动的角度值,如此可以避免陀螺仪的零点漂移或其它干扰所带来的检测误差,提高了机器人检测仰角的准确性,降低误判的概率。此外,本发明所提供的机器人基于六轴陀螺仪检测被卡的方法,通过将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,并结合时间和打滑情况的综合判断,准确得出机器人是否被卡的检测结果。
附图说明
图1为所述机器人基于六轴陀螺仪检测仰角的方法的流程示意图。
图2为六轴陀螺仪的方向示意图。
图3为所述机器人基于六轴陀螺仪检测被卡的方法的流程示意图。
图4为本发明所述的行进角度值的分析示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
本发明所述的机器人是一种智能清洁机器人(比如扫地机器人或者拖地机器人),下述实施例中提到的机器人都是指代智能清洁机器人。这些机器人能凭借一定的人工智能,自动在某些场合自动进行行走。机器人的机体上设有各种传感器,可检测行走距离、行走角度(即行进方向)、机体状态和障碍物等,如碰到墙壁或其他障碍物,会自行转弯,并依不同的设定,而走不同的路线,有规划地行走,还会根据行走过程中检测到的各种数据构建栅格地图,比如把检测到障碍物时所对应的栅格单元标示为障碍单元,把检测到悬崖时所对应的栅格单元标示悬崖单元,把正常行走通过的栅格单元标示为已走过单元等。本发明所述的机器人包括如下结构:带有左驱动轮和右驱动轮的能够自主行走的机器人机体,机体上设有人机交互界面,机体上设有障碍检测单元。机体内部设置有惯性传感器,所述惯性传感器包括加速计和六轴陀螺仪等,两个驱动轮上都设有用于检测驱动轮的行走距离的里程计(一般是码盘),还设有能够处理相关传感器的参数,并能够输出控制信号到执行部件的控制模块。其中,六轴陀螺仪可以检测机器人的偏航角、俯仰角和横滚角,还能检测机器人前后方向、左右方向和上下方向的加速度。
如图1所示,一种机器人基于六轴陀螺仪检测仰角的方法,包括如下步骤:在步骤S1中,机器人先确定六轴陀螺仪中的竖直方向(即机器人的上下方向)的加速度计在第一预定时间段所检测到的加速度,并进入步骤S2。在步骤S2中,机器人再判断所述加速度与重力加速度的方差值是否在预设方差范围内。其中,所述重力加速度是指物体受重力作用的情况下所具有的加速度。所述第一预定时间段可以根据具体的产品设计需求进行相应设置,优选的,可以设置为100毫秒。所述预设方差范围是通过大量的实验测试得出来的,具有准确的参考价值,优选的,该范围为0至300。当判断所述方差值在预设方差范围内时,表明机器人正处于水平面上,可以将机器人的仰角角度校准为零。如果所述方差值不在预设方差范围内,则表明机器人正处于斜面上,可以将六轴陀螺仪检测到的绕X轴转动的角度值确定为机器人的仰角角度。如此可以避免陀螺仪的零点漂移或其它干扰所带来的检测误差,提高了机器人检测仰角的准确性,降低误判的概率。如图2所示,六轴陀螺仪MPU-6000或MUP-6050装配在机器人中,其X轴方向即为机器人的左右方向,Y轴方向即为机器人的前后方向,Z轴方向即为机器人的上下方向。沿+X方向绕X轴转动的角度即为机器人的仰角角度。X轴、Y轴和Z轴构成所述六轴陀螺仪的三维坐标系。本实施例所述的方法,通过利用机器人中已有的六轴陀螺仪来检测并确定机器人的仰角角度,不需要增加其它的辅助检测器件,可以进一步降低机器人的硬件成本。同时,通过六轴陀螺仪的自校正功能,还能提高机器人的六轴陀螺仪检测数据的准确性,为后续的数据分析提供可靠的参考数据。
作为其中一种实施方式,所述步骤S1具体包括如下步骤:分析第一预定时间段内,机器人的六轴陀螺仪中的竖直方向的加速度计所检测到的加速度,如果当前分析的加速度与其前一个加速度的差值大于预设加速度值,且当前分析的加速度与其后一个加速度的差值也大于预设加速度值,则确定当前分析的加速度为干扰数据,并删除所述干扰数据,否则,保留当前分析的加速度,把所保留的加速度确定为机器人的六轴陀螺仪中的竖直方向的加速度计在第一预定时间段所检测到的加速度。其中,所述预设加速度值可以根据具体的产品设计需求进行相应设置,优选的,可以设置为1000 LSB/g。所述差值是取绝对值后的数值。本实施例所述方法通过对所采集的加速度数据进行滤波处理,删除一些干扰数据,如此可以有效避免外界干扰所带来的误差影响,从而保证了机器人分析数据的准确性。
作为其中一种实施方式,步骤S2中所述的判断所述加速度与重力加速度的方差值是否在预设方差范围内,具体包括如下步骤:首先,确定检测到的所述加速度为G1、G2、G3、G4……GN,N为大于0的自然数。确定所述重力加速度为G,G为地球的重力加速度,数值保持不变。则两者的差值为加速度差值,即G1-G、G2-G、G3-G、G4-G……GN-G。然后,确定所述加速度差值的平方之和的平均值为加速度平均值,即((G1-G)²+(G2-G)²+(G3-G)²+(G4-G)²+……(GN-G)²)/N。接着,再确定所述加速度平均值的算术平方根为方差值,即对((G1-G)²+(G2-G)²+(G3-G)²+(G4-G)²+……(GN-G)²)/N进行开平方,即可得到方差值。紧接着,基于***配置的预设方差范围,确定预设方差最大值和预设方差最小值,所述预设方差最大值和预设方差最小值都是经过大量研究和实验所总结出来的,在产品设计时会预先配置到机器人***中。最后,再将所述方差值分别与所述预设方差最大值和所述预设方差最小值进行比较,如果所述方差值大于所述预设方差最小值,且小于所述预设方差最大值,则确定所述加速度与重力加速度的方差值在预设方差范围内,表明机器人此时正处于水平面上,否则确定所述加速度与重力加速度的方差值不在预设方差范围内,表明机器人此时正处于斜面上。本实施例所述的方法,通过对检测到的加速度数据进行方差处理,可以准确得出机器人在竖直方向上的加速度的离散程度,从而可以准确判断机器人是处于水平面上,还是斜面上,为后续判断机器人是否被卡提供了准确有效的参考依据。
作为其中一种实施方式,所述步骤S4具体包括如下步骤:首先,在步骤S41中,机器人确定六轴陀螺仪检测到的绕X轴转动的角速度(即图2中沿+X方向转动的角速度);然后进入步骤S42,将所述角速度进行时间积分得到机器人绕X轴转动的X角度;接着进入步骤S43,确定所述六轴陀螺仪的零点漂移值;最后进入步骤S44,确定所述机器人的仰角角度为所述X角度与所述零点漂移值的差值。本实施例所述的方法,通过将六轴陀螺仪检测到的绕X轴转动的角度减去零点漂移所带来的误差,从而提高了陀螺仪检测的准确性。
作为其中一种实施方式,所述步骤S43具体包括如下步骤:当机器人处于静止状态时,把机器人的六轴陀螺仪检测到的绕X轴转动的角速度进行时间积分所得到的角度值作为所述六轴陀螺仪的零点漂移值。其中,所述静止状态是指机器人开机后没有移动前的状态或者机器人在移动过程中停止下来时的状态,且所述状态需要持续第二预定时间段。所述第二预定时间段可以根据具体的设计需求进行相应设置,优选的,可以设置为0.5秒至2秒中的任意一值。本实施例所述的方法,机器人通过在静止状态下,六轴陀螺仪所检测到的角度变化来确定零点漂移值,可以准确地进行陀螺仪的校准。
基于上述实施例所述的机器人基于六轴陀螺仪检测仰角的方法,提供一个具体数据的示例性说明。假设机器人每10毫秒读取一次加速度,则100毫秒(第一预定时间段)可以读取10个加速度数据,具体为16400、16388、16353、16215、16425、16363、20000、16500、15000和16345,单位为LSB/g。分析这堆数据,同时进行滤波,由于第七个数据20000明显比前一个数据16363大很多,同时又比后一个数据16500大很多,则认为是干扰导致,需要滤除掉该干扰数据。倒数第二的数据15000比前面和后面的数据都小很多,也是干扰数据,需要滤除,需要注意的是,15000分别与16500和16345的差值是取绝对值后得到的数值,为1500和1345。进行数据滤除的标准是,对比数据相差超过1000 LSB/g,则认为是干扰数据。接着,将滤波后的数据分别与重力加速度所对应的数据16384相减,得到16、4、31、169、41、21、116、39,再进行平方求和得到48693,最后进行求平均值及对平均值开平方得到方差值为76。由于76在预设方差范围(0-300)内,所以,可以判断机器人此时正处于水平面上,仰角角度为0。假设所求得的方差值不在0-300这个范围内,则可以判断机器人此时正处于斜面上,仰角角度为六轴陀螺仪所检测到的沿+X方向绕X轴转动的角度。
如图3所示,一种机器人基于六轴陀螺仪检测被卡的方法,该方法具体包括如下步骤:在步骤S1中,根据上述实施例所述的机器人基于六轴陀螺仪检测仰角的方法,先记录机器人检测到的仰角数据。记录仰角数据的时机可以是实时记录(即每毫秒都进行记录),也可以是间隔一定时间记录一次,比如间隔10毫秒、20毫秒或者30毫秒记录一次。机器人一边行走一边进行记录操作,并进入步骤S2。
在步骤S2中,机器人将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,比较的方式可以直接采用点对点的数据对比方式,也可以采用数据线的形式进行整体趋势对比。其中,所述第一预设时间段可以根据具体的设计需求进行相应设置,比如,可以设置为0.5秒或者1秒。预先存储的参考仰角数据是机器人***中预先存储的一些关于仰角的参考数据,这些参考数据可以是机器人出厂前,通过实验测试得出并存储在机器人***中的,也可以是用户购买后,结合自己家庭的使用环境,在相应的物体(比如吧台座椅的底座、立地电风扇的底座、门槛或者U型凳脚等)上进行机器人预运行,并由机器人记录、存储在***中的。机器人根据比较结果,当判断所记录的仰角数据不在参考仰角数据的误差范围内时,表明机器人当前所处位置不在所存储的参考仰角数据所对应的物体上,即机器人当前不处于任何会导致机器人被卡的斜面或者横槛上,所以,机器人继续正常行走和记录检测到的仰角数据。如果机器人行走时间超过了第一预设时间段,则将所述第一预设时间段内所记录的仰角数据中的第一个记录的数据删除,并将新检测到的数据记录起来作为最后一个仰角数据,并返回步骤S1。比如,机器人每隔10毫秒记录一次数据,在1秒钟的时间段内,可以记录100个数据,机器人开始行走至经过1秒的时间段,已经记录了100个数据,此后,从1秒后开始,删除前面第10毫秒时记录的数据,其它数据相应向前移动,即第20毫秒记录的数据变成第1个记录的数据,第30毫秒记录的数据变成第2个记录的数据,依次类推,第1秒记录的数据变成第99个数据,第1.01秒记录的数据作为第100个数据。如此,机器人一边行走检测,一边滚动更新所记录的数据,并实时进行记录数据与存储数据的对比。当判断所记录的仰角数据在参考仰角数据的误差范围内时,表明机器人当前可能处于会导致机器人被卡的斜面或者横槛上,此时,需要进入步骤S3作进一步地判断。其中,所述误差范围为±3%至±5%中的任意一值,比如,当选择±4%时,如果参考仰角数据的一个值为0.06°,则机器人检测到的角度为0.0576°至0.0624°之间的任意一值,即可认为检测到的角度值在所述误差范围内。
在步骤S3中,机器人持续记录其检测到的仰角数据,并判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间是否达到第二预设时间段,其中,所述第二预设时间段可以根据具体的设计需求进行相应设置,可以设置为大于等于1秒并小于等于2秒的任一时间值。如果所记录的仰角数据在参考仰角数据的误差范围内的持续时间达不到第二预设时间段,表明机器人可能是处于斜度相似的其它物体上,并且该物体不会导致机器人打滑或者被卡,机器人可以在该物体的表明上顺利通过,所以,可以确定机器人没有被卡。如果所记录的仰角数据在参考仰角数据的误差范围内的持续时间达到第二预设时间段,表明机器人很有可能是被卡在对应的物体上了,需要进入步骤S4作进一步判断。
在步骤S4中,机器人判断在所述第二预设时间段内是否检测到机器人打滑,其中,机器人是否打滑可以采用不同的方式进行检测,比如采用六轴陀螺仪的检测数据与码盘的检测数据进行对比分析的方式,或者采用光流传感器的检测数据与加速度传感器的检测数据进行对比分析的方式,等等。如果检测到机器人打滑,则基于机器人在已存储的参考仰角数据所对应的物体上出现打滑情况的双重判断标准,可以准确地确定机器人被该物体卡住了。如果没有检测到机器人打滑,表明机器人有可能只是在表面斜度近似的物体上行走,确定机器人没有被卡。
本实施例所述的机器人被卡的检测方法,通过将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,并结合时间和打滑情况的综合判断,准确得出机器人是否被卡的检测结果,提高了机器人定位和导航的精度。
作为其中一种实施方式,步骤1中所述的记录机器人检测到的仰角数据,包括如下步骤:首先,机器人每间隔第三预设时间段,记录一个仰角角度,其中,所述第三预设时间段可以根据具体的设计需求进行相应设置,优选的,可以设置为10毫秒至30毫秒之间的任意一值,本实施例设置为20毫秒,即机器人开始启动后,每隔20毫秒记录一次当前检测到的仰角角度,该仰角角度可以直接采用传感器的检测数值,也可以将传感器检测到的数值与机器人的实际尺寸进行换算所得到的机器人前端抬起的高度。然后,机器人基于仰角角度为Y轴,记录时间为X轴的坐标系中,确定所述机器人所记录的仰角角度所构成的连线,通过该坐标系中的连线可以看出机器人随着行走时间的增加,其仰角的角度变化规律。本实施例所述的方法,通过坐标系的分析方式,有利于确定机器人的仰角角度随时间的变化情况。
作为其中一种实施方式,步骤2中所述的将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内,包括如下步骤:在步骤21中,获取机器人当前所记录的第一预设时间段内的仰角角度所构成的连线,确定所述连线的变化情况,然后进入步骤22。优选的,所述第一预设时间段的值设置为1秒或1.5秒,如果设置的值过小,传感器的精度达不到要求,如果设置的值过大,又容易降低检测的时效性。在步骤22中,获取机器人中预先存储的机器人行走至不同斜面时,在所述第一预设时间段内所检测到的参考仰角数据所构成的参考线,接着进入步骤23。其中,预选存储的参考线是由用户将机器人在家中的立地电风扇底座、门槛、吧台座椅的底座或者U型凳脚等物体上进行预先运行时所记录并保存下来的,优选的,在同一物体上预先运行的次数为10次,并选取平均值作为最终存储的数据,如此可以提高参考数据的准确性和参考价值。在步骤23中,判断当前记录的所述连线的变化情况是否在所述参考线的变化情况的误差范围内,所述误差范围也可以根据具体的设计需求进行相应设置,本实施例设置为±5%。如果当前记录的所述连线的变化情况在所述参考线的变化情况的±5%范围内,则确定所记录的仰角数据在参考仰角数据的误差范围内,表明机器人可能在参考线所对应的物体上,接着进入步骤S3进行后续操作。如果当前记录的所述连线的变化情况不在所述参考线的变化情况的±5%范围内,则确定所记录的仰角数据不在参考仰角数据的误差范围内,表明机器人不在参考线所对应的物体上,机器人继续一边行走一边检测仰角数据,并不断进行记录数据的滚动更新。本实施例所述的方法,通过线型变化规律的情况进行数据的对比分析,有利机器人更快速准确地得出分析结果。
举一些具体数据进行示例说明,假设第一预设时间段为1秒,机器人每间隔20毫秒记录一次仰角角度,则机器人从开始启动到1秒后,已经记录了50个仰角角度。由于前500毫秒机器人一直在水平面上行走,检测到的仰角角度一直为0°(不考虑六轴陀螺仪漂移误差等情况)。当520毫秒时,机器人检测到的仰角角度变为0.01°;540毫秒时,机器人检测到的仰角角度变为0.02°;560毫秒时,机器人检测到的仰角角度变为0.03°;580毫秒时,机器人检测到的仰角角度变为0.04°;600毫秒时,机器人检测到的仰角角度变为0.05°;620毫秒时,机器人检测到的仰角角度变为0.06°;640毫秒至1秒这段时间,机器人检测到的仰角角度维持在0.06°;表明机器人从水平面爬上了一个斜面角度为0.06°的表面。将这些仰角角度随着时间的顺序依次连接起来,就可以看出该连线的变化情况为:在0至500毫秒是一段水平直线,在640毫秒至1秒这段时间也是一段水平直线,在500毫秒至640毫秒之间则是一段从0°变化为0.06°的斜线。同样的,如果机器人中预先存储的参考线的变化情况与此相同或者仅有一些误差范围内的微小偏移,比如在连续6数据中从-0.003°变化到0.057°,或者从0.003°变化到0.063°,并且这连续6个数据之前和之后的数据的连接线都保持直线状态,则可以认为机器人所在的表面即为该参考线所对应的物体的表面。
作为其中一种实施方式,步骤4中所述的判断在所述第二预设时间段内是否检测到机器人打滑,包括如下步骤:在步骤41中,首先,基于机器人的两个驱动轮上的码盘检测到的数据,确定当前记录时间点所检测到的所述两个驱动轮中的第一驱动轮所行进的第一当前行进距离,和上一记录时间点所检测到的第一驱动轮所行进的第一上一行进距离,计算得出第一驱动轮所行进的第一距离为所述第一当前行进距离与所述第一上一行进距离的差值。然后,确定所述当前记录时间点所检测到的所述两个驱动轮中的第二驱动轮所行进的第二当前行进距离,和所述上一记录时间点所检测到的第二驱动轮所行进的第二上一行进距离,计算得出第二驱动轮所行进的第二距离为所述第二当前行进距离与所述第二上一行进距离的差值。接着,确定所述行进距离差值为所述第一距离与所述第二距离的差值。再确定所述两个驱动轮在第一预设时间内的行进角度值为所述行进距离差值与两个驱动轮之间的宽度的比值。最后,确定第一预设时间内两个驱动轮所产生的第一角度变化率为所述行进角度值与所述第一预设时间的比值,并进入步骤42。其中,所述第一预设时间为所述当前记录时间点与所述上一记录时间点之间的时间间隔。所述第一预设时间可以根据具体的设计需求进行相应设置,优选的,设置为10毫秒。该步骤通过对每个记录时间点所检测到的行进距离进行分析比较,可以得出不同时间段内两个驱动轮的行进距离差值,为不同时间段内的角度变化率提供计算数据,保证后续计算角度变化率的准确性。如图2所示,如果机器人打滑,则两个驱动轮所行进的距离可能不一样(比如一个驱动轮空转,另一个实转,或者两个驱动轮与地面的摩擦力不一样等等,这些都会导致驱动轮打滑产生的轮子转动的圈数不一样,即两个驱动轮所行进的距离不一样),使得机器人会产生一个微小的偏转,如果机器人的机体被卡住,虽然机器人没有移动,但是编码器产生的数据也会机器人误认为产生了一个微小的弧形的行进轨迹。为了便于说明,如图4所示,将采用直线的形式表示第一驱动轮和第二驱动轮的行进轨迹,由此产生的误差在可预期范围内。图4中,通过码盘检测到第一驱动轮在第一预设时间T内行进的第一距离为L,通过码盘检测到第二驱动轮在第一预设时间内行进的第二距离为R,所以,处理器在接收到码盘的检测数据后,计算得出两个驱动轮在所述第一预设时间内的行进距离差值为△L。由于两个驱动轮之间的宽度为W,所以计算得出两个驱动轮在所述第一预设时间内的行进角度值为a,a=△L/W。最终,计算得出第一角度变化率为P,P=a/T=△L/(W*T)。通过这种小角度的检测方法,得出的每个第一预设时间内的角度变化率,有利于后续的角度误差变化率的计算,能够提高最终判断机器人是否打滑的准确性。
在步骤42中,确定所述驱动轮的最大误差率,确定所述第一角度变化率的最大误差值为所述第一角度变化率与所述最大误差率的乘积,并进入步骤43。由于两个驱动轮在物理结构上本身会存在误差,对于相同的物理结构,所产生的误差率非常接近,所以,所述最大误差率可以通过实验测试得出最大值,也可以从所测试的多组数据中取平均值作为最大误差率。通过引入最大误差率来确定第一角度变化率的最大误差值,可以为后续的数据处理提供准确的依据,避免直接引用有误差的数据所导致的误判的情况出现,提高判断机器人是否打滑的准确性。
在步骤43中,首先,基于机器人的六轴陀螺仪检测到的数据,确定当前记录时间点六轴陀螺仪所检测到的当前角度,和上一记录时间点六轴陀螺仪所检测到的上一角度。然后,计算得出变化角度为所述当前角度与所述上一角度的差值。最后,确定六轴陀螺仪在所述第一预设时间内所产生的第二角度变化率为所述变化角度和所述第一预设时间的比值,并进入步骤44。由于六轴陀螺仪在角度检测方面具有较高的准确性,所以,该步骤利用机器人内部已设有的六轴陀螺仪的检测数据计算得出的角度变化率,准确性较高。同时,通过与上述相对应的记录时间点进行数据检测,可以进行准确的数据对比,避免由于对比数据出错而造成的后续的角速度变化误差率的计算出错,保证了机器人打滑判断的准确性。
在步骤44中,机器人通过计算所述第一角度变化率与所述第二角度变化率的差值,得出第一差值,并进入步骤45。
在步骤45中,机器人通过计算所述第一差值与所述最大误差值的比值,得出角速度变化误差率,并进入步骤46。由于每次的第一角度变化率不一样,得出的最大误差值也不一样,也就是说每次的最大误差值是动态变化的,如果采用固定的绝对数值为参考进行判断,得出的结果会有较大误差。该步骤采用的是对比的方式,根据对比的比值进行判断,可以得出更准确的结果。
在步骤46中,机器人通过判断在所述第二预设时间段内所述角速度变化误差率是否大于或者等于预设值来确定机器人是否打滑。如果连续N次所确定的所述角速度变化误差率都大于或者等于预设值,则确定机器人打滑,否则,确定机器人没有打滑。所述预设值为1,这样可以准确地界定第一差值和最大误差值的关系,从而根据对比结果有效地判断出机器人是否处于打滑状态。由于机器人行进的路面情况很复杂,而不同的路面情况又会对机器人的检测结果产生不同的影响,所以,仅依靠一次数据的检测和判断,就确定机器人是否打滑,会存在误判的情况。应该进行连续多次的检测,并对多次的检测结果进行分析,只有都满足的情况下,才能确定是否打滑,这样得出的结果才具有更高的准确性。其中,所述N可以根据具体的情况进行相应的设置,优选的,设置为大于或者等于2的自然数,最优的,设置为5次,太少了达不到准确的效果,太多了又会浪费计算资源。其中,所述最大误差率通过实验测试得出。
本实施例所述的打滑检测方法,通过利用机器人现有的驱动轮上的码盘、机体内的六轴陀螺仪和处理器,来检测并计算得出两个驱动轮在第一预设时间内所产生的第一角度变化率,六轴陀螺仪在相同的所述第一预设时间内所产生的第二角度变化率,从而确定了机器人的角速度变化误差率,最后通过判断该角速度变化误差率是否大于或等于预设值来确定机器人是否打滑。这种机器人打滑的检测方法,成本相对较低。同时,采用码盘和六轴陀螺仪结合进行检测判断的方式,准确性较高。此外,当检测到机器人是在打滑,还可以记录打滑数据,并对机器人的行进数据进行修正,从而避免打滑对机器人行进准确性的影响。
一种机器人脱卡的控制方法,该方法基于以上实施例所述的机器人被卡的检测方法确定机器人被卡时,启动机器人脱卡的控制方法,具体包括如下步骤:
在步骤T0中,基于上述机器人被卡的检测方法确定机器人被卡时,确定与所对应的参考仰角数据相应的物体。如果所述物体是机器人能够跨越的物体,比如门槛或者U型凳脚等,则进入步骤T10。如果所述物体是机器人不能够跨越的物体,比如立地电风扇的底座或者吧台座椅的底座等,则进入步骤T20。
在步骤T10中,机器人控制两个驱动轮同时向后运转,进行后退脱卡操作,并判断驱动轮运转设定距离内,机器人检测到的仰角角度是否小于设定角度。其中,所述设定距离可以根据具体的设计需求进行相应设置,通过设置设定距离,使机器人可以在恰当的时机停止后退脱卡操作,避免机器人无休止地进行后退脱卡操作而导致的脱卡效率低的问题,由于此时机器人也许被卡得不是很牢固,可能稍微后退一点就可以脱卡,所以,优选的,所述设定距离设置为5厘米。所述设定角度也可以根据具体的设计需求进行相应设置,通过设置设定角度,可以使机器人及时检测到自己是否回到了水平面,避免机器人脱卡后继续后退所带来的误差累积,优选的,设置为0.01°。如果驱动轮运转没有超过5厘米,并且机器人检测到了仰角角度小于0.01°,则表明机器人已经从物体的斜面上退下至水平面,可以确定机器人摆脱了该物体,脱卡成功。如果驱动轮运转超过了5厘米,但是机器人检测到的仰角角度始终没有小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T11做进一步脱卡操作。
在步骤T11中,机器人控制第一驱动轮向后运转,第二驱动轮向前运转,进行旋转脱卡操作,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度。其中,所述第一设定时间可以根据具体的设计需求进行相应设置,通过设置第一设定时间,可以控制机器人进行旋转脱卡操作的时间,避免机器人无休止地进行旋转脱卡操作所带来的脱卡效率低的问题,优选的,设置为10秒。如果机器人进行旋转脱卡操作的时间没有超过10秒,并且机器人检测到了仰角角度小于0.01°,则确定机器人脱卡成功。如果机器人进行旋转脱卡操作的时间超过10秒,并且机器人没有检测到仰角角度小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T12做进一步脱卡操作。
在步骤T12中,机器人控制第二驱动轮向后运转,第一驱动轮向前运转,进行反向旋转脱卡操作,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度。如果机器人进行反向旋转脱卡操作的时间没有超过10秒,并且机器人检测到了仰角角度小于0.01°,则确定机器人脱卡成功。如果机器人进行反向旋转脱卡操作的时间超过10秒,并且机器人没有检测到仰角角度小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T13做进一步脱卡操作。
在步骤T13中,机器人控制两个驱动轮同时向前运转,进行前进脱卡操作,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,其中,所述第二设定时间可以根据具体的设计需求进行相应设置,通过设置第二设定时间,可以控制机器人进行前进脱卡操作的时间,避免机器人无休止地进行前进脱卡操作所带来的脱卡效率低的问题,优选的,设置为5秒。如果机器人进行前进脱卡操作的时间没有超过5秒,并且机器人检测到了仰角角度小于0.01°,则确定机器人脱卡成功。如果机器人进行前进脱卡操作的时间超过5秒,并且机器人没有检测到仰角角度小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T14做进一步脱卡操作。
在步骤T14中,机器人控制两个驱动轮同时向后运转,再次进行后退脱卡操作,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度。相对于步骤T10中的5厘米限制的后退脱卡操作,该步骤的后退脱卡操作的时间更长。主要是因为机器人在此前的步骤中已经进行较长时间的旋转和前进操作,依然没有脱卡,需要尝试相对时间较长的后退脱卡操作,使得机器人在各个方向都进行充分尝试。如果机器人进行后退脱卡操作的时间没有超过5秒,并且机器人检测到了仰角角度小于0.01°,则确定机器人脱卡成功。如果机器人进行后退脱卡操作的时间超过5秒,并且机器人没有检测到仰角角度小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T15做进一步脱卡操作。
在步骤T15中,判断启动机器人脱卡的控制方法的时间是否超过第三设定时间,所述第三设定时间可以根据具体的设计需求进行相应设置,当机器人进行一定时间的脱卡操作后,依然无法脱卡,表明机器人被完全卡死,无休止地进行脱卡操作所带来的脱卡效果也不明显,甚至会导致机器人电量耗尽,从而降低用户的产品使用体验,所以,优选的,所述第三设定时间设置为3分钟。如果机器人检测到进行的脱卡操作没有达到3分钟,返回步骤T10,重新进行一轮脱卡操作。如果机器人检测到脱卡操作已经进行了3分钟,则进入步骤T16,确定机器人脱卡失败,并报错,提醒用户帮忙机器人脱卡。
在步骤T20中,机器人控制两个驱动轮同时向后运转,进行后退脱卡操作,并判断驱动轮运转设定距离内,机器人检测到的仰角角度是否小于设定角度。其中,所述设定距离可以根据具体的设计需求进行相应设置,通过设置设定距离,使机器人可以在恰当的时机停止后退脱卡操作,避免机器人无休止地进行后退脱卡操作而导致的脱卡效率低的问题,由于此时机器人也许被卡得不是很牢固,可能稍微后退一点就可以脱卡,所以,优选的,所述设定距离设置为5厘米。所述设定角度也可以根据具体的设计需求进行相应设置,通过设置设定角度,可以使机器人及时检测到自己是否回到了水平面,避免机器人脱卡后继续后退所带来的误差累积,优选的,设置为0.01°。如果驱动轮运转没有超过5厘米,并且机器人检测到了仰角角度小于0.01°,则表明机器人已经从物体的斜面上退下至水平面,可以确定机器人摆脱了该物体,脱卡成功。如果驱动轮运转超过了5厘米,但是机器人检测到的仰角角度始终没有小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T21做进一步脱卡操作。
在步骤T21中,机器人控制第一驱动轮向后运转,第二驱动轮不运转,进行后转向脱卡操作,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度。其中,所述第一设定时间可以根据具体的设计需求进行相应设置,通过设置第一设定时间,可以控制机器人进行后转向脱卡操作的时间,避免机器人无休止地进行后转向脱卡操作所带来的脱卡效率低的问题,优选的,设置为10秒。如果机器人进行后转向脱卡操作的时间没有超过10秒,并且机器人检测到了仰角角度小于0.01°,则确定机器人脱卡成功。如果机器人进行后转向脱卡操作的时间超过10秒,并且机器人没有检测到仰角角度小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T22做进一步脱卡操作。
在步骤T22中,机器人控制第二驱动轮向后运转,第一驱动轮向前运转,进行反向旋转脱卡操作,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度。如果机器人进行反向旋转脱卡操作的时间没有超过10秒,并且机器人检测到了仰角角度小于0.01°,则确定机器人脱卡成功。如果机器人进行反向旋转脱卡操作的时间超过10秒,并且机器人没有检测到仰角角度小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T23做进一步脱卡操作。
在步骤T23中,机器人控制两个驱动轮同时向前运转,进行前进脱卡操作,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,其中,所述第二设定时间可以根据具体的设计需求进行相应设置,通过设置第二设定时间,可以控制机器人进行前进脱卡操作的时间,避免机器人无休止地进行前进脱卡操作所带来的脱卡效率低的问题,优选的,设置为5秒。如果机器人进行前进脱卡操作的时间没有超过5秒,并且机器人检测到了仰角角度小于0.01°,则确定机器人脱卡成功。如果机器人进行前进脱卡操作的时间超过5秒,并且机器人没有检测到仰角角度小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T24做进一步脱卡操作。
在步骤T24中,机器人控制两个驱动轮同时向后运转,再次进行后退脱卡操作,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度。相对于步骤T20中的5厘米限制的后退脱卡操作,该步骤的后退脱卡操作的时间更长。主要是因为机器人在此前的步骤中已经进行较长时间的旋转和前进操作,依然没有脱卡,需要尝试相对时间较长的后退脱卡操作,使得机器人在各个方向都进行充分尝试。如果机器人进行后退脱卡操作的时间没有超过5秒,并且机器人检测到了仰角角度小于0.01°,则确定机器人脱卡成功。如果机器人进行后退脱卡操作的时间超过5秒,并且机器人没有检测到仰角角度小于0.01°,表明机器人依然卡在物体的斜面上,需要进入步骤T25做进一步脱卡操作。
在步骤T25中,判断启动机器人脱卡的控制方法的时间是否超过第三设定时间,所述第三设定时间可以根据具体的设计需求进行相应设置,当机器人进行一定时间的脱卡操作后,依然无法脱卡,表明机器人被完全卡死,无休止地进行脱卡操作所带来的脱卡效果也不明显,甚至会导致机器人电量耗尽,从而降低用户的产品使用体验,所以,优选的,所述第三设定时间设置为3分钟。如果机器人检测到进行的脱卡操作没有达到3分钟,返回步骤T20,重新进行一轮脱卡操作。如果机器人检测到脱卡操作已经进行了3分钟,则进入步骤T26,确定机器人脱卡失败,并报错,提醒用户帮忙机器人脱卡。
本实施例所述的机器人脱卡的控制方法,通过分析卡住机器人的物体是不是可以跨越,然后针对不同的物体控制机器人的驱动轮采取不同的运转方式来进行脱卡,从而提高了机器人的脱卡效率,提升用户的产品使用体验。
作为其中一种实施方式,在启动机器人脱卡的控制方法后,机器人不更新当前位置信息,直到确定机器人脱卡成功。如此,可以避免机器人进行脱卡操作时,频繁的打滑所带来的累积误差的问题,从而保证了机器人定位和导航的准确性。
作为其中一种实施方式,在确定机器人脱卡成功的步骤之后,还包括如下步骤:在步骤T30中,基于上述的机器人被卡的检测方法确定机器人被卡时,确定与所对应的参考仰角数据相应的物体。如果所述物体是机器人能够跨越的物体,比如门槛或者U型凳脚等,则进入步骤T31。如果所述物体是机器人不能够跨越的物体,比如立地电风扇的底座或者吧台座椅的底座等,则进入步骤T32。
在步骤T31中,机器人确定此前脱卡时的动作,如果是两个驱动轮同时向后运转时脱卡成功的,或者是一个驱动轮向后运转且另一个驱动轮不动时脱卡成功的,表明机器人已经从该物体上脱离下来,则机器人直接掉头行走,避免跨越该物体时打滑所带来的误差。如果是一个驱动轮向前运转,一个驱动轮向后运转时脱卡成功的,表明机器人的两个驱动轮分别位于该物体的两侧,则机器人加速转弯掉头行走,使其中一个驱动轮跨过该物体后,机器人彻底脱离该物体。
在步骤T32中,机器人确定被卡之前的工作状态,如果机器人处于沿边行走状态,则绕所述物体的边缘行走,继续完成剩余沿边行走。如果机器人处于区域规划行走的状态,则掉头行走或者转向90°后行走,避开所述物体后继续完成剩余的规划行走。
本实施例所述的方法,通过分析机器人脱卡后的物体是不是可以跨越,来确定后续的操作,使得机器人可以有目的性地脱离所述物体,有利于提高机器人行动的效率,提升机器人的智能性。
本实施例所述的芯片,用于存储程序。所述程序用于控制机器人执行以上实施例所述的机器人被卡的检测方法,和/或用于控制机器人执行以上实施例所述的机器人脱卡的控制方法。所述芯片可以是机器人主控芯片、机器人辅助控制芯片或者机器人处理器芯片等。装配该芯片的机器人在不需要增加其它的硬件传感器的基础上,具有能够准确检测自身是否被物体卡住以及能够快速控制自身进行脱卡操作的功能,从而提高了芯片和装配该芯片的机器人的实用性,保证了机器人的低成本,适于推广应用。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。这些程序可以存储于计算机可读取存储介质(比如ROM、RAM、CPU、MCU、磁碟或者光盘等各种可以存储程序代码的介质)中。该程序在执行时,执行包括上述各方法实施例的步骤。
最后应说明的是:本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可,各实施例之间的技术方案是可以相互结合的。以上各实施例仅用于说明本发明的技术方案,而非对其限制,尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.机器人基于六轴陀螺仪检测仰角的方法,其特征在于,包括如下步骤:
步骤S1:确定机器人的六轴陀螺仪中的竖直方向的加速度计在第一预定时间段所检测到的加速度,并进入步骤S2;
步骤S2:判断所述加速度与重力加速度的方差值是否在预设方差范围内,如果是,则进入步骤S3,如果否,则进入步骤S4;
步骤S3:确定机器人的仰角角度为零;
步骤S4:确定六轴陀螺仪检测到的绕X轴转动的角度值为机器人的仰角角度;
其中,机器人的左右方向为X轴,前后方向为Y轴,上下方向为Z轴,X轴、Y轴和Z轴构成所述六轴陀螺仪的三维坐标系。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1具体包括如下步骤:
分析第一预定时间段内,机器人的六轴陀螺仪中的竖直方向的加速度计所检测到的加速度,如果当前分析的加速度与其前一个加速度的差值大于预设加速度值,且当前分析的加速度与其后一个加速度的差值也大于预设加速度值,则确定当前分析的加速度为干扰数据,并删除所述干扰数据,否则,保留当前分析的加速度,把所保留的加速度确定为机器人的六轴陀螺仪中的竖直方向的加速度计在第一预定时间段所检测到的加速度。
3.根据权利要求2所述的方法,其特征在于,步骤S2中所述的判断所述加速度与重力加速度的方差值是否在预设方差范围内,具体包括如下步骤:
确定所述加速度与所述重力加速度的差值为加速度差值;
确定所述加速度差值的平方之和的平均值为加速度平均值;
确定所述加速度平均值的算术平方根为方差值;
基于***配置的预设方差范围,确定预设方差最大值和预设方差最小值;
将所述方差值分别与所述预设方差最大值和所述预设方差最小值进行比较,如果所述方差值大于所述预设方差最小值,且小于所述预设方差最大值,则确定所述加速度与重力加速度的方差值在预设方差范围内,否则确定所述加速度与重力加速度的方差值不在预设方差范围内。
4.根据权利要求3所述的方法,其特征在于,所述步骤S4具体包括如下步骤:
步骤S41:确定机器人的六轴陀螺仪检测到的绕X轴转动的角速度;
步骤S42:将所述角速度进行时间积分得到机器人绕X轴转动的X角度;
步骤S43:确定所述六轴陀螺仪的零点漂移值;
步骤S44:确定所述机器人的仰角角度为所述X角度与所述零点漂移值的差值。
5.根据权利要求4所述的方法,其特征在于,所述步骤S43具体包括如下步骤:
当机器人处于静止状态时,把机器人的六轴陀螺仪检测到的绕X轴转动的角速度进行时间积分所得到的角度值作为所述六轴陀螺仪的零点漂移值;
其中,所述静止状态是指机器人开机后没有移动前的状态或者机器人在移动过程中停止下来时的状态,且所述状态需要持续第二预定时间段。
6.机器人基于六轴陀螺仪检测被卡的方法,其特征在于,包括如下步骤:
步骤1:根据权利要求1至5任一项所述的机器人基于六轴陀螺仪检测仰角的方法,记录机器人检测到的仰角数据,并进入步骤2;
步骤2:将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内,如果是,则进入步骤3,如果否,则将所述第一预设时间段内所记录的仰角数据中的第一个记录的数据删除,并返回步骤1;
步骤3:持续记录机器人检测到的仰角数据,并判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间是否达到第二预设时间段,如果是,则进入步骤4,如果否,则确定机器人没有被卡;
步骤4:判断在所述第二预设时间段内是否检测到机器人打滑,如果检测到机器人打滑,则确定机器人被卡,如果没有检测到机器人打滑,则确定机器人没有被卡。
7.根据权利要求6所述的方法,其特征在于,步骤1中所述的记录机器人检测到的仰角数据,包括如下步骤:
每间隔第三预设时间段,记录一个仰角角度;
基于仰角角度为Y轴,记录时间为X轴的坐标系中,确定所述机器人所记录的仰角角度所构成的连线。
8.根据权利要求7所述的方法,其特征在于,步骤2中所述的将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内,包括如下步骤:
步骤21:获取机器人当前所记录的第一预设时间段内的仰角角度所构成的连线,确定所述连线的变化情况,并进入步骤22;
步骤22:获取机器人中预先存储的机器人行走至不同斜面时,在所述第一预设时间段内所检测到的参考仰角数据所构成的参考线,并进入步骤23;
步骤23:判断当前记录的所述连线的变化情况是否在所述参考线的变化情况的误差范围内,如果是,则确定所记录的仰角数据在参考仰角数据的误差范围内,如果否,则确定所记录的仰角数据不在参考仰角数据的误差范围内。
9.根据权利要求6至8任意一项所述的方法,其特征在于,步骤4中所述的判断在所述第二预设时间段内是否检测到机器人打滑,包括如下步骤:
步骤41:基于机器人的两个驱动轮上的码盘检测到的数据,确定当前记录时间点所检测到的所述两个驱动轮中的第一驱动轮所行进的第一当前行进距离,和上一记录时间点所检测到的第一驱动轮所行进的第一上一行进距离,计算得出第一驱动轮所行进的第一距离为所述第一当前行进距离与所述第一上一行进距离的差值;确定所述当前记录时间点所检测到的所述两个驱动轮中的第二驱动轮所行进的第二当前行进距离,和所述上一记录时间点所检测到的第二驱动轮所行进的第二上一行进距离,计算得出第二驱动轮所行进的第二距离为所述第二当前行进距离与所述第二上一行进距离的差值;确定所述行进距离差值为所述第一距离与所述第二距离的差值;确定所述两个驱动轮在第一预设时间内的行进角度值为所述行进距离差值与两个驱动轮之间的宽度的比值;确定第一预设时间内两个驱动轮所产生的第一角度变化率为所述行进角度值与所述第一预设时间的比值,并进入步骤42;
步骤42:确定所述驱动轮的最大误差率,确定所述第一角度变化率的最大误差值为所述第一角度变化率与所述最大误差率的乘积,并进入步骤43;
步骤43:基于机器人的六轴陀螺仪检测到的数据,确定当前记录时间点六轴陀螺仪所检测到的当前角度,和上一记录时间点六轴陀螺仪所检测到的上一角度,计算得出变化角度为所述当前角度与所述上一角度的差值,确定六轴陀螺仪在所述第一预设时间内所产生的第二角度变化率为所述变化角度和所述第一预设时间的比值,并进入步骤S44;
步骤44:确定所述第一角度变化率与所述第二角度变化率的差值为第一差值,并进入步骤45;
步骤45:确定角速度变化误差率为所述第一差值与所述最大误差值的比值,并进入步骤46;
步骤46:判断在所述第二预设时间段内所述角速度变化误差率是否大于或者等于预设值,如果连续N次所确定的所述角速度变化误差率都大于或者等于预设值,则确定机器人打滑,否则,确定机器人没有打滑;
其中,所述N为大于或者等于2的自然数,所述最大误差率通过实验测试得出,所述第一预设时间为所述当前记录时间点与所述上一记录时间点之间的时间间隔。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810458442.9A CN108613656B (zh) | 2018-05-14 | 2018-05-14 | 机器人基于六轴陀螺仪检测被卡的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810458442.9A CN108613656B (zh) | 2018-05-14 | 2018-05-14 | 机器人基于六轴陀螺仪检测被卡的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108613656A true CN108613656A (zh) | 2018-10-02 |
CN108613656B CN108613656B (zh) | 2020-12-15 |
Family
ID=63663207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810458442.9A Active CN108613656B (zh) | 2018-05-14 | 2018-05-14 | 机器人基于六轴陀螺仪检测被卡的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108613656B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968099A (zh) * | 2019-12-17 | 2020-04-07 | 小狗电器互联网科技(北京)股份有限公司 | 一种机器人被困检测方法以及机器人 |
CN111121705A (zh) * | 2019-05-07 | 2020-05-08 | 浙江利尔达客思智能科技有限公司 | 一种基于六轴检测的开门状态检测***及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN204833713U (zh) * | 2015-07-31 | 2015-12-02 | 上海朗尚科贸有限公司 | 一种简易的车载路况检测*** |
US9285223B1 (en) * | 2014-05-15 | 2016-03-15 | State Farm Mutual Automobile Insurance Company | System and method for identifying heading of a moving vehicle using accelerometer data |
CN107289929A (zh) * | 2017-08-08 | 2017-10-24 | 珠海市微半导体有限公司 | 一种机器人碰到障碍物的检测方法和***及芯片 |
CN107456173A (zh) * | 2016-06-06 | 2017-12-12 | 北京小米移动软件有限公司 | 障碍物跨越方法及装置 |
CN207123333U (zh) * | 2017-04-28 | 2018-03-20 | 深圳乐行天下科技有限公司 | 碰撞检测装置及具有其的机器人 |
-
2018
- 2018-05-14 CN CN201810458442.9A patent/CN108613656B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9285223B1 (en) * | 2014-05-15 | 2016-03-15 | State Farm Mutual Automobile Insurance Company | System and method for identifying heading of a moving vehicle using accelerometer data |
CN204833713U (zh) * | 2015-07-31 | 2015-12-02 | 上海朗尚科贸有限公司 | 一种简易的车载路况检测*** |
CN107456173A (zh) * | 2016-06-06 | 2017-12-12 | 北京小米移动软件有限公司 | 障碍物跨越方法及装置 |
CN207123333U (zh) * | 2017-04-28 | 2018-03-20 | 深圳乐行天下科技有限公司 | 碰撞检测装置及具有其的机器人 |
CN107289929A (zh) * | 2017-08-08 | 2017-10-24 | 珠海市微半导体有限公司 | 一种机器人碰到障碍物的检测方法和***及芯片 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111121705A (zh) * | 2019-05-07 | 2020-05-08 | 浙江利尔达客思智能科技有限公司 | 一种基于六轴检测的开门状态检测***及方法 |
CN110968099A (zh) * | 2019-12-17 | 2020-04-07 | 小狗电器互联网科技(北京)股份有限公司 | 一种机器人被困检测方法以及机器人 |
CN110968099B (zh) * | 2019-12-17 | 2024-05-07 | 小狗电器互联网科技(北京)股份有限公司 | 一种机器人被困检测方法以及机器人 |
Also Published As
Publication number | Publication date |
---|---|
CN108613656B (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628312A (zh) | 机器人被卡的检测方法和脱卡的控制方法及芯片 | |
AU2016213846B2 (en) | Carpet drift estimation using differential sensors or visual measurements | |
US6314341B1 (en) | Method of recording trajectory data and sensor data for a manually-driven vehicle | |
US11918175B2 (en) | Control method for carpet drift in robot motion, chip, and cleaning robot | |
CN112254741B (zh) | 里程传感器的异常检测方法、自移动机器人及存储介质 | |
CN108274467B (zh) | 机器人走直线的控制方法和芯片及机器人 | |
CN104536445A (zh) | 移动导航方法和*** | |
Iagnemma et al. | Classification-based wheel slip detection and detector fusion for mobile robots on outdoor terrain | |
US20220179417A1 (en) | Systems and Methods for Ground Plane Estimation | |
EP2083340A1 (en) | Inverted type movable body and control method thereof | |
JP2007334896A (ja) | 位置補正機能を提供する移動装置及び位置補正方法 | |
CN108681325B (zh) | 机器人基于加速计的仰角检测方法和被卡检测及脱卡方法 | |
CN108613656A (zh) | 机器人基于六轴陀螺仪检测仰角的方法和检测被卡的方法 | |
Ivanjko et al. | Extended Kalman filter based mobile robot pose tracking using occupancy grid maps | |
CN109358623A (zh) | 一种机器人运动地毯偏移的识别方法、芯片及清洁机器人 | |
Sebastian et al. | Support vector machine based real-time terrain estimation for tracked robots | |
Gersdorf et al. | A Kalman Filter for Odometry using a Wheel Mounted Inertial Sensor. | |
Lindgren et al. | Relating torque and slip in an odometric model for an autonomous agricultural vehicle | |
US11685049B2 (en) | Robot localization using variance sampling | |
Zhao et al. | Learning to compensate for the drift and error of gyroscope in vehicle localization | |
Seyr et al. | Proprioceptive navigation, slip estimation and slip control for autonomous wheeled mobile robots | |
Maatoug et al. | Multisensor data fusion for electrical wheelchair localization using extended Kalman Filter | |
Mendoza et al. | GALNet: An End-to-End Deep Neural Network for Ground Localization of Autonomous Cars. | |
Chestnutt et al. | Interactive control of humanoid navigation | |
Hasegawa et al. | Decores: Degree expressional command reproducing system for autonomous wheelchairs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |