CN108628312B - 机器人被卡的检测方法和脱卡的控制方法及芯片 - Google Patents

机器人被卡的检测方法和脱卡的控制方法及芯片 Download PDF

Info

Publication number
CN108628312B
CN108628312B CN201810457864.4A CN201810457864A CN108628312B CN 108628312 B CN108628312 B CN 108628312B CN 201810457864 A CN201810457864 A CN 201810457864A CN 108628312 B CN108628312 B CN 108628312B
Authority
CN
China
Prior art keywords
robot
determining
elevation angle
card
detected
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.)
Active
Application number
CN201810457864.4A
Other languages
English (en)
Other versions
CN108628312A (zh
Inventor
李永勇
肖刚军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Amicro Semiconductor Co Ltd
Original Assignee
Zhuhai Amicro Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Amicro Semiconductor Co Ltd filed Critical Zhuhai Amicro Semiconductor Co Ltd
Priority to CN201810457864.4A priority Critical patent/CN108628312B/zh
Publication of CN108628312A publication Critical patent/CN108628312A/zh
Application granted granted Critical
Publication of CN108628312B publication Critical patent/CN108628312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

本发明涉及一种机器人被卡的检测方法和脱卡的控制方法及芯片。所述机器人被卡的检测方法,通过将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,并结合时间和打滑情况的综合判断,准确得出机器人是否被卡的检测结果。在检测到机器人被卡时,通过机器人脱卡的控制方法,先分析机器人是被什么类型的物体卡住,然后针对不同的物体控制机器人的驱动轮采取不同的运转方式来进行脱卡,从而实现机器人的快速脱卡。由于所述芯片具有控制机器人进行被卡检测和脱卡控制的程序,使得装配该芯片的机器人在不需要增加其它的硬件传感器的基础上,具有能够准确检测自身是否被物体卡住以及能够快速控制自身进行脱卡操作的功能。

Description

机器人被卡的检测方法和脱卡的控制方法及芯片
技术领域
本发明涉及机器人领域,具体涉及一种机器人被卡的检测方法和脱卡的控制方法及芯片。
背景技术
在实际家庭环境中,大多数家庭都有立地电风扇、门槛和吧台座椅等等,有些办公地方还有一些凳脚是U型的座椅,该座椅接触地面的凳脚是U型的不锈钢管,管的横截面为扁圆形状。 扫地机器人在进行清扫工作时,容易被立地电风扇底座、门槛、吧台座椅的底座或者U型凳脚卡住,导致机器人出现打滑或者被卡住无法移动的问题,从而影响了机器人构建地图的准确性,导航准确性也因此大大降低。目前,很多机器人都无法处理被立地电风扇底座、门槛、吧台座椅的底座或者U型凳脚卡住的问题,有的机器人在这方面可以做一些改善,但是需要额外增加视觉或者激光等传感器的检测,导致机器人的成本增加,不利于推广应用。
发明内容
为解决上述问题,本发明提供了一种机器人被卡的检测方法和脱卡的控制方法及芯片,在不需要增加硬件成本的基础上准确检测出机器人是否被卡,并能快速脱卡。本发明的具体技术方案如下:
一种机器人被卡的检测方法,包括如下步骤:步骤S1:记录机器人检测到的仰角数据,并进入步骤S2;步骤S2:将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内,如果是,则进入步骤S3,如果否,则将所述第一预设时间段内所记录的仰角数据中的第一个记录的数据删除,并返回步骤S1;步骤S3:持续记录机器人检测到的仰角数据,并判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间是否达到第二预设时间段,如果是,则进入步骤S4,如果否,则确定机器人没有被卡;步骤S4:判断在所述第二预设时间段内是否检测到机器人打滑,如果检测到机器人打滑,则确定机器人被卡,如果没有检测到机器人打滑,则进入步骤S5;步骤S5:持续记录机器人检测到的仰角数据,并判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间是否达到第三预设时间段,如果是,则确定机器人被卡,如果否,则确定机器人没有被卡。
进一步地,步骤S1中所述的记录机器人检测到的仰角数据,包括如下步骤:步骤S11:基于机器人的传感器检测到的数据,确定机器人的仰角角度,并进入步骤S12;步骤S12:每间隔第四预设时间段,记录一个仰角角度,并进入步骤S13;步骤S13:基于仰角角度为Y轴,记录时间为X轴的坐标系中,确定所述机器人所记录的仰角角度所构成的连线。
进一步地,步骤S11所述的基于机器人的传感器检测到的数据,确定机器人的仰角角度,包括如下步骤:步骤S111:基于机器人的加速计,确定机器人的左右方向为X轴,前后方向为Y轴,上下方向为Z轴所构成的三维坐标系,并进入步骤S112;步骤S112:基于加速计在X轴、Y轴和Z轴中检测到的数据,确定机器人的运动矢量为R,R=SQRT(Rx^2 + Ry^2 + Rz^2),并进入步骤S113,其中,Rx、Ry和Rz分别为加速计检测到的R在X轴、Y轴和Z轴的运动分量,SQRT表示开平方;步骤S113:确定机器人的仰角角度为Az,Az=arccos(Rz/R)。
进一步地,步骤S11所述的基于机器人的传感器检测到的数据,确定机器人的仰角角度,包括如下步骤:步骤S111:基于机器人的六轴陀螺仪,确定机器人的左右方向为X轴,前后方向为Y轴,上下方向为Z轴所构成的三维坐标系,并进入步骤S112;步骤S112:确定六轴陀螺仪中的加速度计在Z轴方向的加速度为G1,并进入步骤S113;步骤S113:将机器人在第五预设时间段内检测到的G1与重力加速度G的差值进行方差计算,判断所得到的方差值是否在预设方差范围内,如果是,则进入步骤S114,如果否,则进入步骤S115;步骤S114:确定机器人的仰角角度为零;步骤S115:确定机器人的仰角角度为六轴陀螺仪检测到的绕X轴转动的角度值。
进一步地,步骤S2中所述的将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内,包括如下步骤:步骤S21:获取机器人当前所记录的第一预设时间段内的仰角角度所构成的连线,确定所述连线的变化情况,并进入步骤S22;步骤S22:获取机器人中预先存储的机器人行走至不同斜面时,在所述第一预设时间段内所检测到的参考仰角数据所构成的参考线,并进入步骤S23;步骤S23:判断当前记录的所述连线的变化情况是否在所述参考线的变化情况的误差范围内,如果是,则确定所记录的仰角数据在参考仰角数据的误差范围内,如果否,则确定所记录的仰角数据不在参考仰角数据的误差范围内。
进一步地,步骤S4中所述的判断在所述第二预设时间段内是否检测到机器人打滑,包括如下步骤:步骤S41:基于机器人的两个驱动轮上的码盘检测到的数据,确定当前记录时间点所检测到的所述两个驱动轮中的第一驱动轮所行进的第一当前行进距离,和上一记录时间点所检测到的第一驱动轮所行进的第一上一行进距离,计算得出第一驱动轮所行进的第一距离为所述第一当前行进距离与所述第一上一行进距离的差值;确定所述当前记录时间点所检测到的所述两个驱动轮中的第二驱动轮所行进的第二当前行进距离,和所述上一记录时间点所检测到的第二驱动轮所行进的第二上一行进距离,计算得出第二驱动轮所行进的第二距离为所述第二当前行进距离与所述第二上一行进距离的差值;确定所述行进距离差值为所述第一距离与所述第二距离的差值;确定所述两个驱动轮在第一预设时间内的行进角度值为所述行进距离差值与两个驱动轮之间的宽度的比值;确定第一预设时间内两个驱动轮所产生的第一角度变化率为所述行进角度值与所述第一预设时间的比值,并进入步骤S42;步骤S42:确定所述驱动轮的最大误差率,确定所述第一角度变化率的最大误差值为所述第一角度变化率与所述最大误差率的乘积,并进入步骤S43;步骤S43:基于机器人的六轴陀螺仪检测到的数据,确定当前记录时间点六轴陀螺仪所检测到的当前角度,和上一记录时间点六轴陀螺仪所检测到的上一角度,计算得出变化角度为所述当前角度与所述上一角度的差值,确定六轴陀螺仪在所述第一预设时间内所产生的第二角度变化率为所述变化角度和所述第一预设时间的比值,并进入步骤S44;步骤S44:确定所述第一角度变化率与所述第二角度变化率的差值为第一差值,并进入步骤S45;步骤S45:确定角速度变化误差率为所述第一差值与所述最大误差值的比值,并进入步骤S46;步骤S46:判断在所述第二预设时间段内所述角速度变化误差率是否大于或者等于预设值,如果连续N次所确定的所述角速度变化误差率都大于或者等于预设值,则确定机器人打滑,否则,确定机器人没有打滑。其中,所述N为大于或者等于2的自然数,所述最大误差率通过实验测试得出,所述第一预设时间为所述当前记录时间点与所述上一记录时间点之间的时间间隔。
一种机器人脱卡的控制方法,基于上述的机器人被卡的检测方法确定机器人被卡时,启动机器人脱卡的控制方法,包括如下步骤:步骤T0:基于上述的机器人被卡的检测方法确定机器人被卡时,确定与所对应的参考仰角数据相应的物体,如果所述物体是机器人能够跨越的物体,则进入步骤T10,如果所述物体是机器人不能够跨越的物体,则进入步骤T20;步骤T10:控制两个驱动轮同时向后运转,并判断驱动轮运转设定距离内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T11;步骤T11:控制第一驱动轮向后运转,第二驱动轮向前运转,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T12;步骤T12:控制第二驱动轮向后运转,第一驱动轮向前运转,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T13;步骤T13:控制两个驱动轮同时向前运转,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T14;步骤T14:控制两个驱动轮同时向后运转,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T15;步骤T15:判断启动机器人脱卡的控制方法的时间是否超过第三设定时间,如果是,则进入步骤T16,如果否,则返回步骤T10;步骤T16:确定机器人脱卡失败,并报错;步骤T20:控制两个驱动轮同时向后运转,并判断驱动轮运转设定距离内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T21;步骤T21:控制第一驱动轮向后运转,第二驱动轮不运转,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T22;步骤T22:控制第二驱动轮向后运转,第一驱动轮向前运转,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T23;步骤T23:控制两个驱动轮同时向前运转,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T24;步骤T24:控制两个驱动轮同时向后运转,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T25;步骤T25:判断启动机器人脱卡的控制方法的时间是否超过第三设定时间,如果是,则进入步骤T26,如果否,则返回步骤T20;步骤T26:确定机器人脱卡失败,并报错。
进一步地,在启动机器人脱卡的控制方法后,机器人不更新当前位置信息,直到确定机器人脱卡成功。
进一步地,在确定机器人脱卡成功的步骤之后,还包括如下步骤:步骤T30:基于权利要求1所述的机器人被卡的检测方法确定机器人被卡时,确定与所对应的参考仰角数据相应的物体,如果所述物体是机器人能够跨越的物体,则进入步骤T31,如果所述物体是机器人不能够跨越的物体,则进入步骤T32;步骤T31:确定机器人脱卡时的动作,如果是两个驱动轮同时向后运转时脱卡成功的,或者是一个驱动轮向后运转且另一个驱动轮不动时脱卡成功的,则机器人直接掉头行走,如果是一个驱动轮向前运转,一个驱动轮向后运转时脱卡成功的,则机器人加速转弯掉头行走;步骤T32:确定机器人被卡之前的工作状态,如果机器人处于沿边行走状态,则绕所述物体的边缘行走,如果机器人处于区域规划行走的状态,则掉头行走或者转向90°后行走。
一种芯片,用于存储程序,所述程序用于控制机器人执行上述的机器人被卡的检测方法,和/或用于控制机器人执行上述的机器人脱卡的控制方法。
本发明提供的机器人被卡的检测方法,通过将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,并结合时间和打滑情况的综合判断,准确得出机器人是否被卡的检测结果。在检测到机器人被卡时,通过本发明提供的机器人脱卡的控制方法,先分析机器人是被什么类型的物体卡住,然后针对不同的物体控制机器人的驱动轮采取不同的运转方式来进行脱卡,从而实现机器人的快速脱卡。由于本发明提供的芯片具有控制机器人进行被卡检测和脱卡控制的程序,使得装配该芯片的机器人在不需要增加其它的硬件传感器的基础上,具有能够准确检测自身是否被物体卡住以及能够快速控制自身进行脱卡操作的功能,从而提高了芯片和装配该芯片的机器人的实用性,保证了机器人的低成本,适于推广应用。
附图说明
图1为本发明所述的机器人被卡的检测方法的流程图。
图2为本发明所述的行进角度值的分析示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
本发明所述的机器人是一种智能清洁机器人(比如扫地机器人或者拖地机器人),下述实施例中提到的机器人都是指代智能清洁机器人。这些机器人能凭借一定的人工智能,自动在某些场合自动进行行走。机器人的机体上设有各种传感器,可检测行走距离、行走角度(即行进方向)、机体状态和障碍物等,如碰到墙壁或其他障碍物,会自行转弯,并依不同的设定,而走不同的路线,有规划地行走,还会根据行走过程中检测到的各种数据构建栅格地图,比如把检测到障碍物时所对应的栅格单元标示为障碍单元,把检测到悬崖时所对应的栅格单元标示悬崖单元,把正常行走通过的栅格单元标示为已走过单元等。本发明所述的机器人包括如下结构:带有左驱动轮和右驱动轮的能够自主行走的机器人机体,机体上设有人机交互界面,机体上设有障碍检测单元。机体内部设置有惯性传感器,所述惯性传感器包括加速计和六轴陀螺仪等,两个驱动轮上都设有用于检测驱动轮的行走距离的里程计(一般是码盘),还设有能够处理相关传感器的参数,并能够输出控制信号到执行部件的控制模块。
如图1所示的机器人被卡的检测方法的流程图,该方法具体包括如下步骤:在步骤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中,机器人判断在所述第二预设时间段内是否检测到机器人打滑,其中,机器人是否打滑可以采用不同的方式进行检测,比如采用六轴陀螺仪的检测数据与码盘的检测数据进行对比分析的方式,或者采用光流传感器的检测数据与加速度传感器的检测数据进行对比分析的方式,等等。如果检测到机器人打滑,则基于机器人在已存储的参考仰角数据所对应的物体上出现打滑情况的双重判断标准,可以准确地确定机器人被该物体卡住了。如果没有检测到机器人打滑,表明机器人有可能只是在表面斜度近似的物体上行走,不一定会被卡住,此时,需要进入步骤S5作进一步判断。
在步骤S5中,机器人持续记录机器人检测到的仰角数据,并判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间是否达到第三预设时间段,其中,所述第三预设时间段可以根据具体的设计需求进行相应设置,可以设置为3秒至5秒钟的任意一值,并且,第三预设时间段所设置的值要大于所述第二预设时间段所设置的值,因为机器人在表面斜度近似的物体上持续行走一段时间时,如果检测到打滑了,即使该持续的时间相对较短,也可判断机器人被该物体卡住了。如果没有检测到打滑,但是,机器人在该物体表面上持续行走的时间相对较长,则机器人被卡住的可能性也很大,为了避免机器人冲上对应物体后会引起较大的误差,所以,当机器人在该物体表面上持续的时间达到第三预设时间段,就可以确定机器人被卡住,需要尽快执行后续的脱卡操作,从而减小了机器人行走误差的累积,提高了机器人定位和导航的精度。如此可以避免机器人出现误判的情况。当机器人判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间没有达到第三预设时间段,则确定机器人没有被卡,返回步骤S1,机器人继续一边行走,一边检测、记录和更新仰角数据,直到确定机器人被卡时,进入后续的脱卡操作。
本实施例所述的机器人被卡的检测方法,通过将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,并结合时间和打滑情况的综合判断,准确得出机器人是否被卡的检测结果,提高了机器人定位和导航的精度。
作为其中一种实施方式,步骤S1中所述的记录机器人检测到的仰角数据,包括如下步骤:在步骤S11中,基于机器人的六轴陀螺仪或者加速计等传感器检测到的数据,确定机器人的仰角角度,并进入步骤S12。在步骤S12中,每间隔第四预设时间段,记录一个仰角角度,其中,所述第四预设时间段可以根据具体的设计需求进行相应设置,优选的,可以设置为10毫秒至30毫秒之间的任意一值,本实施例设置为20毫秒,即机器人开始启动后,每隔20毫秒记录一次当前检测到的仰角角度,该仰角角度可以直接采用传感器的检测数值,也可以将传感器检测到的数值与机器人的实际尺寸进行换算所得到的机器人前端抬起的高度,接着进入步骤S13。在步骤S13中,机器人基于仰角角度为Y轴,记录时间为X轴的坐标系中,确定所述机器人所记录的仰角角度所构成的连线,通过该坐标系中的连线可以看出机器人随着行走时间的增加,其仰角的角度变化规律。本实施例所述的方法,通过坐标系的分析方式,有利于确定机器人的仰角角度随时间的变化情况。
作为其中一种实施方式,步骤S11所述的基于机器人的传感器检测到的数据,确定机器人的仰角角度,包括如下步骤:在步骤S111中,基于机器人的加速计,确定机器人的左右方向为X轴,前后方向为Y轴,上下方向为Z轴所构成的三维坐标系,并进入步骤S112。在步骤S112中,基于加速计在X轴、Y轴和Z轴中检测到的数据Rx、Ry和Rz,通过R=SQRT(Rx^2 + Ry^2 + Rz^2)的计算方式确定机器人的运动矢量为R,并进入步骤S113。在步骤S113中,通过Az=arccos(Rz/R)的计算方式,确定机器人的仰角角度为Az。其中,Rx、Ry和Rz分别为加速计检测到的R在X轴、Y轴和Z轴的运动分量,即加速计在每个轴上的加速度值就是运动分量的向量值。SQRT表示开平方。本实施例所述的方法,通过利用机器人中已有的加速计来检测并确定机器人的仰角角度,不需要增加其它的辅助检测器件,可以进一步降低机器人的硬件成本。
作为其中一种实施方式,步骤S11所述的基于机器人的传感器检测到的数据,确定机器人的仰角角度,包括如下步骤:在步骤S111中,基于机器人的六轴陀螺仪,确定机器人的左右方向为X轴,前后方向为Y轴,上下方向为Z轴所构成的三维坐标系,并进入步骤S112。在步骤S112中,确定六轴陀螺仪中的加速度计在Z轴方向的加速度为G1,并进入步骤S113;在步骤S113中,将机器人在第五预设时间段内检测到的G1与重力加速度G的差值进行方差计算,判断所得到的方差值是否在预设方差范围内,其中,所述第五预设时间段可以根据具体的设计需求进行相应设置,优选的设置为100毫秒。所述预设方差范围则需要通过大量的实验测试得出,一般取值为0至300。如果所得到的方差值在预设方差范围内,表明机器人所在的物体表面是水平面,所产生的一些微小的数据变化是由于机器人抖动所带来的误差,需要进入步骤S114进行校正。在步骤S114中,将机器人检测到的仰角角度校正为零,通过该校正的步骤,可以提高机器人的六轴陀螺仪检测数据的准确性,从而为后续的数据分析提供可靠的参考数据。如果所得到的方差值不在预设方差范围内,表明机器人所在的物体表面不是水平面,具有一定的斜度,此时需要进入步骤S115,确定机器人的仰角角度。在步骤S115中,通过将六轴陀螺仪中绕X轴转动的角速度进行积分,得到机器人绕X轴转动的角度值,并将该角度值作为机器人的仰角角度。本实施例所述的方法,通过利用机器人中已有的六轴陀螺仪来检测并确定机器人的仰角角度,不需要增加其它的辅助检测器件,可以进一步降低机器人的硬件成本。同时,通过六轴陀螺仪的自校正功能,还能提高机器人的六轴陀螺仪检测数据的准确性,为后续的数据分析提供可靠的参考数据。
作为其中一种实施方式,步骤S2中所述的将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内,包括如下步骤:在步骤S21中,获取机器人当前所记录的第一预设时间段内的仰角角度所构成的连线,确定所述连线的变化情况,然后进入步骤S22。优选的,所述第一预设时间段的值设置为1秒或1.5秒,如果设置的值过小,传感器的精度达不到要求,如果设置的值过大,又容易降低检测的时效性。在步骤S22中,获取机器人中预先存储的机器人行走至不同斜面时,在所述第一预设时间段内所检测到的参考仰角数据所构成的参考线,接着进入步骤S23。其中,预选存储的参考线是由用户将机器人在家中的立地电风扇底座、门槛、吧台座椅的底座或者U型凳脚等物体上进行预先运行时所记录并保存下来的,优选的,在同一物体上预先运行的次数为10次,并选取平均值作为最终存储的数据,如此可以提高参考数据的准确性和参考价值。在步骤S23中,判断当前记录的所述连线的变化情况是否在所述参考线的变化情况的误差范围内,所述误差范围也可以根据具体的设计需求进行相应设置,本实施例设置为±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个数据之前和之后的数据的连接线都保持直线状态,则可以认为机器人所在的表面即为该参考线所对应的物体的表面。
作为其中一种实施方式,步骤S4中所述的判断在所述第二预设时间段内是否检测到机器人打滑,包括如下步骤:在步骤S41中,首先,基于机器人的两个驱动轮上的码盘检测到的数据,确定当前记录时间点所检测到的所述两个驱动轮中的第一驱动轮所行进的第一当前行进距离,和上一记录时间点所检测到的第一驱动轮所行进的第一上一行进距离,计算得出第一驱动轮所行进的第一距离为所述第一当前行进距离与所述第一上一行进距离的差值。然后,确定所述当前记录时间点所检测到的所述两个驱动轮中的第二驱动轮所行进的第二当前行进距离,和所述上一记录时间点所检测到的第二驱动轮所行进的第二上一行进距离,计算得出第二驱动轮所行进的第二距离为所述第二当前行进距离与所述第二上一行进距离的差值。接着,确定所述行进距离差值为所述第一距离与所述第二距离的差值。再确定所述两个驱动轮在第一预设时间内的行进角度值为所述行进距离差值与两个驱动轮之间的宽度的比值。最后,确定第一预设时间内两个驱动轮所产生的第一角度变化率为所述行进角度值与所述第一预设时间的比值,并进入步骤S42。其中,所述第一预设时间为所述当前记录时间点与所述上一记录时间点之间的时间间隔。所述第一预设时间可以根据具体的设计需求进行相应设置,优选的,设置为10毫秒。该步骤通过对每个记录时间点所检测到的行进距离进行分析比较,可以得出不同时间段内两个驱动轮的行进距离差值,为不同时间段内的角度变化率提供计算数据,保证后续计算角度变化率的准确性。如图2所示,如果机器人打滑,则两个驱动轮所行进的距离可能不一样(比如一个驱动轮空转,另一个实转,或者两个驱动轮与地面的摩擦力不一样等等,这些都会导致驱动轮打滑产生的轮子转动的圈数不一样,即两个驱动轮所行进的距离不一样),使得机器人会产生一个微小的偏转,如果机器人的机体被卡住,虽然机器人没有移动,但是编码器产生的数据也会机器人误认为产生了一个微小的弧形的行进轨迹。为了便于说明,如图2所示,将采用直线的形式表示第一驱动轮和第二驱动轮的行进轨迹,由此产生的误差在可预期范围内。图2中,通过码盘检测到第一驱动轮在第一预设时间T内行进的第一距离为L,通过码盘检测到第二驱动轮在第一预设时间内行进的第二距离为R,所以,处理器在接收到码盘的检测数据后,计算得出两个驱动轮在所述第一预设时间内的行进距离差值为△L。由于两个驱动轮之间的宽度为W,所以计算得出两个驱动轮在所述第一预设时间内的行进角度值为a,a=△L/W。最终,计算得出第一角度变化率为P,P=a/T=△L/(W*T)。通过这种小角度的检测方法,得出的每个第一预设时间内的角度变化率,有利于后续的角度误差变化率的计算,能够提高最终判断机器人是否打滑的准确性。
在步骤S42中,确定所述驱动轮的最大误差率,确定所述第一角度变化率的最大误差值为所述第一角度变化率与所述最大误差率的乘积,并进入步骤S43。由于两个驱动轮在物理结构上本身会存在误差,对于相同的物理结构,所产生的误差率非常接近,所以,所述最大误差率可以通过实验测试得出最大值,也可以从所测试的多组数据中取平均值作为最大误差率。通过引入最大误差率来确定第一角度变化率的最大误差值,可以为后续的数据处理提供准确的依据,避免直接引用有误差的数据所导致的误判的情况出现,提高判断机器人是否打滑的准确性。
在步骤S43中,首先,基于机器人的六轴陀螺仪检测到的数据,确定当前记录时间点六轴陀螺仪所检测到的当前角度,和上一记录时间点六轴陀螺仪所检测到的上一角度。然后,计算得出变化角度为所述当前角度与所述上一角度的差值。最后,确定六轴陀螺仪在所述第一预设时间内所产生的第二角度变化率为所述变化角度和所述第一预设时间的比值,并进入步骤S44。由于六轴陀螺仪在角度检测方面具有较高的准确性,所以,该步骤利用机器人内部已设有的六轴陀螺仪的检测数据计算得出的角度变化率,准确性较高。同时,通过与上述相对应的记录时间点进行数据检测,可以进行准确的数据对比,避免由于对比数据出错而造成的后续的角速度变化误差率的计算出错,保证了机器人打滑判断的准确性。
在步骤S44中,机器人通过计算所述第一角度变化率与所述第二角度变化率的差值,得出第一差值,并进入步骤S45。
在步骤S45中,机器人通过计算所述第一差值与所述最大误差值的比值,得出角速度变化误差率,并进入步骤S46。由于每次的第一角度变化率不一样,得出的最大误差值也不一样,也就是说每次的最大误差值是动态变化的,如果采用固定的绝对数值为参考进行判断,得出的结果会有较大误差。该步骤采用的是对比的方式,根据对比的比值进行判断,可以得出更准确的结果。
在步骤S46中,机器人通过判断在所述第二预设时间段内所述角速度变化误差率是否大于或者等于预设值来确定机器人是否打滑。如果连续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 (5)

1.一种机器人被卡的检测方法,其特征在于,包括如下步骤:
步骤S1:记录机器人检测到的仰角数据:
步骤S11:基于机器人的传感器检测到的数据,确定机器人的仰角角度:
步骤S111:基于机器人的六轴陀螺仪,确定机器人的左右方向为X轴,前后方向为Y轴,上下方向为Z轴所构成的三维坐标系,并进入步骤S112;
步骤112:确定六轴陀螺仪中的加速度计在Z轴方向的加速度为G1,并进入步骤S113;
步骤S113:将机器人在第五预设时间段内检测到的G1与重力加速度G的差值进行方差计算,判断所得到的方差值是否在预设方差范围内,如果是,则进入步骤S114,如果否,则进入步骤S115;
步骤S114:确定机器人的仰角角度为零,进入步骤S12;
步骤S115:确定机器人的仰角角度为六轴陀螺仪检测到的绕X轴转动的角度值,进入步骤S12;
步骤S12:每间隔第四预设时间段,记录一个仰角角度,并进入步骤S13;
步骤S13:基于仰角角度为Y轴,记录时间为X轴的坐标系中,确定所述机器人所记录的仰角角度所构成的连线,进入步骤S2;
步骤S2:将第一预设时间段内所记录的仰角数据与机器人中预先存储的参考仰角数据进行比较,判断所记录的仰角数据是否在参考仰角数据的误差范围内:
步骤S21:获取机器人当前所记录的第一预设时间段内的仰角角度所构成的连线,确定所述连线的变化情况,并进入步骤S22;
步骤S22:获取机器人中预先存储的机器人行走至不同斜面时,在所述第一预设时间段内所检测到的参考仰角数据所构成的参考线,并进入步骤S23;
步骤S23:判断当前记录的所述连线的变化情况是否在所述参考线的变化情况的误差范围内,如果是,则确定所记录的仰角数据在参考仰角数据的误差范围内,进入步骤S3,如果否,则确定所记录的仰角数据不在参考仰角数据的误差范围内,将所述第一预设时间段内所记录的仰角数据中的第一个记录的数据删除,并返回步骤S1;
步骤S3:持续记录机器人检测到的仰角数据,并判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间是否达到第二预设时间段,如果是,则进入步骤S4,如果否,则确定机器人没有被卡;
步骤S4:判断在所述第二预设时间段内是否检测到机器人打滑:
步骤S41:基于机器人的两个驱动轮上的码盘检测到的数据,确定当前记录时间点所检测到的所述两个驱动轮中的第一驱动轮所行进的第一当前行进距离,和上一记录时间点所检测到的第一驱动轮所行进的第一上一行进距离,计算得出第一驱动轮所行进的第一距离为所述第一当前行进距离与所述第一上一行进距离的差值;确定所述当前记录时间点所检测到的所述两个驱动轮中的第二驱动轮所行进的第二当前行进距离,和所述上一记录时间点所检测到的第二驱动轮所行进的第二上一行进距离,计算得出第二驱动轮所行进的第二距离为所述第二当前行进距离与所述第二上一行进距离的差值;确定所述行进距离差值为所述第一距离与所述第二距离的差值;确定所述两个驱动轮在第一预设时间内的行进角度值为所述行进距离差值与两个驱动轮之间的宽度的比值;确定第一预设时间内两个驱动轮所产生的第一角度变化率为所述行进角度值与所述第一预设时间的比值,并进入步骤S42;
步骤S42:确定所述驱动轮的最大误差率,确定所述第一角度变化率的最大误差值为所述第一角度变化率与所述最大误差率的乘积,并进入步骤S43;
步骤S43:基于机器人的六轴陀螺仪检测到的数据,确定当前记录时间点六轴陀螺仪所检测到的当前角度,和上一记录时间点六轴陀螺仪所检测到的上一角度,计算得出变化角度为所述当前角度与所述上一角度的差值,确定六轴陀螺仪在所述第一预设时间内所产生的第二角度变化率为所述变化角度和所述第一预设时间的比值,并进入步骤S44;
步骤S44:确定所述第一角度变化率与所述第二角度变化率的差值为第一差值,并进入步骤S45;
步骤S45:确定角速度变化误差率为所述第一差值与所述最大误差值的比值,并进入步骤S46;
步骤S46:判断在所述第二预设时间段内所述角速度变化误差率是否大于或者等于预设值,如果连续N次所确定的所述角速度变化误差率都大于或者等于预设值,则确定机器人打滑,确定机器人被卡,否则,确定机器人没有打滑,进入步骤S5;
步骤S5:持续记录机器人检测到的仰角数据,并判断所记录的仰角数据在参考仰角数据的误差范围内的持续时间是否达到第三预设时间段,如果是,则确定机器人被卡,如果否,则确定机器人没有被卡;
其中,所述N为大于或者等于2的自然数,所述最大误差率通过实验测试得出,所述第一预设时间为所述当前记录时间点与所述上一记录时间点之间的时间间隔。
2.一种机器人脱卡的控制方法,其特征在于,基于权利要求1所述的机器人被卡的检测方法确定机器人被卡时,启动机器人脱卡的控制方法,包括如下步骤:
步骤T0:基于权利要求1所述的机器人被卡的检测方法确定机器人被卡时,确定与所对应的参考仰角数据相应的物体,如果所述物体是机器人能够跨越的物体,则进入步骤T10,如果所述物体是机器人不能够跨越的物体,则进入步骤T20;
步骤T10:控制两个驱动轮同时向后运转,并判断驱动轮运转设定距离内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T11;
步骤T11:控制第一驱动轮向后运转,第二驱动轮向前运转,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T12;
步骤T12:控制第二驱动轮向后运转,第一驱动轮向前运转,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T13;
步骤T13:控制两个驱动轮同时向前运转,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T14;
步骤T14:控制两个驱动轮同时向后运转,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T15;
步骤T15:判断启动机器人脱卡的控制方法的时间是否超过第三设定时间,如果是,则进入步骤T16,如果否,则返回步骤T10;
步骤T16:确定机器人脱卡失败,并报错;
步骤T20:控制两个驱动轮同时向后运转,并判断驱动轮运转设定距离内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T21;
步骤T21:控制第一驱动轮向后运转,第二驱动轮不运转,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T22;
步骤T22:控制第二驱动轮向后运转,第一驱动轮向前运转,并判断第一设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T23;
步骤T23:控制两个驱动轮同时向前运转,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T24;
步骤T24:控制两个驱动轮同时向后运转,并判断第二设定时间内,机器人检测到的仰角角度是否小于设定角度,如果是,则确定机器人脱卡成功,如果否,则进入步骤T25;
步骤T25:判断启动机器人脱卡的控制方法的时间是否超过第三设定时间,如果是,则进入步骤T26,如果否,则返回步骤T20;
步骤T26:确定机器人脱卡失败,并报错。
3.根据权利要求2所述的控制方法,其特征在于,在启动机器人脱卡的控制方法后,机器人不更新当前位置信息,直到确定机器人脱卡成功。
4.根据权利要求2或3所述的控制方法,其特征在于,在确定机器人脱卡成功的步骤之后,还包括如下步骤:
步骤T30:基于权利要求1所述的机器人被卡的检测方法确定机器人被卡时,确定与所对应的参考仰角数据相应的物体,如果所述物体是机器人能够跨越的物体,则进入步骤T31,如果所述物体是机器人不能够跨越的物体,则进入步骤T32;
步骤T31:确定机器人脱卡时的动作,如果是两个驱动轮同时向后运转时脱卡成功的,或者是一个驱动轮向后运转且另一个驱动轮不动时脱卡成功的,则机器人直接掉头行走,如果是一个驱动轮向前运转,一个驱动轮向后运转时脱卡成功的,则机器人加速转弯掉头行走;
步骤T32:确定机器人被卡之前的工作状态,如果机器人处于沿边行走状态,则绕所述物体的边缘行走,如果机器人处于区域规划行走的状态,则掉头行走或者转向90°后行走。
5.一种芯片,用于存储程序,其特征在于:
所述程序用于控制机器人执行权利要求1所述的机器人被卡的检测方法,和/或用于控制机器人执行权利要求2至4任一项所述的机器人脱卡的控制方法。
CN201810457864.4A 2018-05-14 2018-05-14 机器人被卡的检测方法和脱卡的控制方法及芯片 Active CN108628312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810457864.4A CN108628312B (zh) 2018-05-14 2018-05-14 机器人被卡的检测方法和脱卡的控制方法及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810457864.4A CN108628312B (zh) 2018-05-14 2018-05-14 机器人被卡的检测方法和脱卡的控制方法及芯片

Publications (2)

Publication Number Publication Date
CN108628312A CN108628312A (zh) 2018-10-09
CN108628312B true CN108628312B (zh) 2021-11-19

Family

ID=63693070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810457864.4A Active CN108628312B (zh) 2018-05-14 2018-05-14 机器人被卡的检测方法和脱卡的控制方法及芯片

Country Status (1)

Country Link
CN (1) CN108628312B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111060129A (zh) * 2018-10-17 2020-04-24 郑州雷动智能技术有限公司 一种智能机器人判定地毯的方法
CN109828565B (zh) * 2019-01-30 2022-04-05 宁波大叶园林设备股份有限公司 一种自移动设备回归路径的控制方法
CN109875470B (zh) * 2019-01-31 2021-04-20 科沃斯机器人股份有限公司 脱困方法、设备及存储介质
CN111714030B (zh) * 2019-03-19 2022-12-02 北京奇虎科技有限公司 清扫设备的脱困方法、装置、电子设备及可读存储介质
CN111830956B (zh) * 2019-04-16 2024-04-05 杭州萤石软件有限公司 一种检测移动机器人工作状态的方法及移动机器人
CN110605289A (zh) * 2019-10-22 2019-12-24 阳光电源股份有限公司 智能光伏清扫机器人及其运行姿态判断方法和调整方法
CN112835345A (zh) * 2019-11-04 2021-05-25 美智纵横科技有限责任公司 检测结果验证方法、装置及扫地机器人
CN111002346B (zh) * 2019-12-17 2021-05-14 小狗电器互联网科技(北京)股份有限公司 一种机器人被困检测方法以及机器人
CN111358371B (zh) * 2020-03-31 2021-08-10 深圳市银星智能科技股份有限公司 一种机器人脱困方法以及机器人
CN111358374B (zh) * 2020-04-22 2021-08-24 珠海市一微半导体有限公司 机器人沿边磨坎行走的检测方法及被卡检测和处理方法
CN111487969B (zh) * 2020-04-22 2023-05-05 珠海一微半导体股份有限公司 机器人以非平行方式沿边行走的异常检测方法和处理方法
CN111481126B (zh) * 2020-04-22 2021-11-19 珠海一微半导体股份有限公司 机器人沿边行走的异常检测方法和脱卡的处理方法
CN111427362B (zh) * 2020-04-22 2023-08-11 珠海一微半导体股份有限公司 机器人沿直边行走的异常检测方法及脱卡的处理方法
CN111474931B (zh) * 2020-04-22 2023-08-15 珠海一微半导体股份有限公司 一种机器人沿直边行走的异常检测方法及脱卡的处理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN204833713U (zh) * 2015-07-31 2015-12-02 上海朗尚科贸有限公司 一种简易的车载路况检测系统
CN105759814A (zh) * 2016-01-27 2016-07-13 深圳市银星智能科技股份有限公司 一种机器人的制约装置和制约的系统和方法
CN105792720A (zh) * 2013-12-04 2016-07-20 三星电子株式会社 清洁机器人及其控制方法
CN105982624A (zh) * 2015-12-30 2016-10-05 小米科技有限责任公司 自动清洁设备的防卡死处理方法及装置、自动清洁设备
CN107092260A (zh) * 2017-06-09 2017-08-25 北京小米移动软件有限公司 移动机器人及该移动机器人跨越障碍物的方法
CN107340768A (zh) * 2016-12-29 2017-11-10 珠海市微半导体有限公司 一种智能机器人的路径规划方法
CN107456173A (zh) * 2016-06-06 2017-12-12 北京小米移动软件有限公司 障碍物跨越方法及装置
CN207253303U (zh) * 2016-02-22 2018-04-20 Lg电子株式会社 机器人吸尘器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7926598B2 (en) * 2008-12-09 2011-04-19 Irobot Corporation Mobile robotic vehicle
KR20110021191A (ko) * 2009-08-25 2011-03-04 삼성전자주식회사 로봇의 슬립 감지 장치 및 방법
US8312956B2 (en) * 2011-02-15 2012-11-20 Deere & Company Auto inter-axle differential lock engagement for improved braking capacity
CN102425709B (zh) * 2011-12-02 2013-04-03 中国石油大学(北京) 管道机器人的行走机构
CN107450537A (zh) * 2017-08-01 2017-12-08 南京农业大学 一种履带式联合收割机低速作业直线跟踪方法
CN107348910B (zh) * 2017-09-12 2019-10-08 珠海市一微半导体有限公司 机器人打滑的检测方法和建图方法及芯片
CN107807643B (zh) * 2017-10-30 2019-09-03 珠海市一微半导体有限公司 机器人的行走预测和控制方法
CN107671862B (zh) * 2017-11-17 2020-01-21 珠海市一微半导体有限公司 机器人被卡住的处理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105792720A (zh) * 2013-12-04 2016-07-20 三星电子株式会社 清洁机器人及其控制方法
CN204833713U (zh) * 2015-07-31 2015-12-02 上海朗尚科贸有限公司 一种简易的车载路况检测系统
CN105982624A (zh) * 2015-12-30 2016-10-05 小米科技有限责任公司 自动清洁设备的防卡死处理方法及装置、自动清洁设备
CN105759814A (zh) * 2016-01-27 2016-07-13 深圳市银星智能科技股份有限公司 一种机器人的制约装置和制约的系统和方法
CN207253303U (zh) * 2016-02-22 2018-04-20 Lg电子株式会社 机器人吸尘器
CN107456173A (zh) * 2016-06-06 2017-12-12 北京小米移动软件有限公司 障碍物跨越方法及装置
CN107340768A (zh) * 2016-12-29 2017-11-10 珠海市微半导体有限公司 一种智能机器人的路径规划方法
CN107092260A (zh) * 2017-06-09 2017-08-25 北京小米移动软件有限公司 移动机器人及该移动机器人跨越障碍物的方法

Also Published As

Publication number Publication date
CN108628312A (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
CN108628312B (zh) 机器人被卡的检测方法和脱卡的控制方法及芯片
US11832774B2 (en) Method for detecting skidding of robot, mapping method and chip
US11960304B2 (en) Localization and mapping using physical features
US11903540B2 (en) Cleaning robot and method of surmounting obstacle
US11225294B1 (en) Mechanically-timed footsteps for a robotic device
CN108634886B (zh) 机器人清扫中断后的控制方法及芯片
US10266097B2 (en) Traveling vehicle and method of controlling the traveling vehicle
JP6309637B2 (ja) 自律式移動ロボット
EP2083340B1 (en) Inverted type movable body and control method thereof
KR101338143B1 (ko) 이동 로봇의 슬립 감지 장치 및 방법
KR100772912B1 (ko) 절대 방위각을 이용한 로봇 및 이를 이용한 맵 작성 방법
CN111433697A (zh) 用于自主移动机器人的运动规划
EP3705968A1 (en) Robot path prediction and control method
CN108681325B (zh) 机器人基于加速计的仰角检测方法和被卡检测及脱卡方法
CN108274467A (zh) 机器人走直线的控制方法和芯片及机器人
JP2010160735A (ja) 移動ロボット、走行計画マップ生成方法、管理システム
KR20090053263A (ko) 로봇청소기 시스템의 제어방법
CN108613656B (zh) 机器人基于六轴陀螺仪检测被卡的方法
Ibraheem Gyroscope-enhanced dead reckoning localization system for an intelligent walker
CN112596527B (zh) 基于斜坡结构的机器人卡住检测方法、芯片及清洁机器人
JP7407421B2 (ja) 移動ロボット、制御方法、及び制御プログラム
JP7135884B2 (ja) 走行制御装置
JP6187310B2 (ja) 倒立型移動体
KR100963755B1 (ko) 자동청소기의 구속상황 감지 및 대응방법
EP4241641A1 (en) Travel teaching recording method for autonomous traveling body, autonomous traveling body, and recording medium

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
CB02 Change of applicant information

Address after: 519000 2706, No. 3000, Huandao East Road, Hengqin new area, Zhuhai, Guangdong

Applicant after: Zhuhai Yiwei Semiconductor Co.,Ltd.

Address before: Room 105-514, No.6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Applicant before: AMICRO SEMICONDUCTOR Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant