一种机器人的碰撞检测方法、装置及智能机器人与流程

文档序号:14273014阅读:406来源:国知局
一种机器人的碰撞检测方法、装置及智能机器人与流程

本发明实施例涉及机器人技术领域,特别是涉及一种机器人的碰撞检测方法、装置及机器人。



背景技术:

随着智能控制技术的发展,越来越多的智能机器人进入到了人们的生活,为人们生活带来了极大的便利性。比如,扫地机器人、空气净化机器人,可以自动高效的为家庭或其他场所提供清扫清洁工作。

智能机器人在使用过程中或多或少都会遇到碰撞的问题,在防碰撞功能的实现上,主要依靠以下几种技术:超声波仿生探测技术、红外距离感应技术、防撞杆设计。

如,利用防碰撞技术、步进电机技术和陀螺仪,扫地机器人可以方便的建立清扫区域的空间坐标,获取当前清扫位置,以及智能规划清扫线路。但防碰撞功能也有可能失效,例如,如果碰到透明的或阻碍面比较小的阻碍物时,红外距离感应失效;又或者相关防碰撞硬件出现故障,导致防碰撞功能失效。

在防碰撞功能失效的情况下,扫地机器人与障碍物发生碰撞,此时扫地机器人继续控制电机转动驱动轮,会导致智能清扫算法获取到的位置信息异常或失效,继而导致整个智能清扫算法失效。

因此,在智能机器人的防碰撞功能失效的情况下,当发生碰撞,智能机器人需要及时认知障碍物,作为其发生碰撞采取相应措施的依据,保证其继续正常工作。



技术实现要素:

本发明实施例主要解决的技术问题是提供一种机器人的碰撞检测方法、装置及智能机器人,在防碰撞功能失效的情况下,当机器人与障碍物发生碰撞,能够及时对碰撞情况进行检测。

为解决上述技术问题,本发明实施例采用的一个技术方案是:第一方面,提供一种机器人的碰撞检测方法,机器人的底部两侧对称安装有第一驱动装置和第二驱动装置,第一驱动装置包括第一驱动电机和第一驱动轮,第二驱动装置包括第二驱动电机和第二驱动轮,该方法包括:

获取机器人的实时角度;

根据第一驱动电机的驱动信息和实时角度获取第一驱动轮的实时坐标,根据第二驱动电机的驱动信息和实时角度获取第二驱动轮的实时坐标;

根据第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮和第二驱动轮之间的虚拟距离;

如果虚拟距离与预设距离的相对偏差不在预设范围内,确定机器人发生碰撞。

可选地,该方法还包括:

如果虚拟距离与预设距离的相对偏差在预设范围内,实时获取第一驱动轮的第一速度和第二驱动轮的第二速度;

如果第一速度和/或第二速度小于预设速度阈值,确定机器人发生碰撞。

可选地,该方法还包括:

如果虚拟距离与预设距离的相对偏差在预设范围内,实时获取第一驱动电机的第一pwm值和第二驱动电机的第二pwm值;

如果第一pwm值和/或第二pwm值大于预设pwm值,确定机器人发生碰撞。

可选地,根据第一驱动电机的驱动信息和实时角度获取第一驱动轮的实时坐标,根据第二驱动电机的驱动信息和实时角度获取第二驱动轮的实时坐标,具体包括:

根据第一驱动电机的转速获取单位时间内第一驱动轮走过的距离,根据实时角度和单位时间内第一驱动轮走过的距离,计算单位时间内第一驱动轮的第一坐标变化量,对第一坐标变化量进行累加,得到第一驱动轮的实时坐标;

根据第二驱动电机的转速获取单位时间内第二驱动轮走过的距离,根据实时角度和单位时间内第二驱动轮走过的距离,计算单位时间内第二驱动轮的第二坐标变化量,对第二坐标变化量进行累加,得到第二驱动轮的实时坐标。

可选地,该方法还包括:

如果机器人发生碰撞,控制机器人进行避障处理;

根据实时角度、第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮的修正坐标和第二驱动轮的修正坐标;

根据第一驱动轮的修正坐标对第一驱动轮的实时坐标进行修正,根据第二驱动轮的修正坐标对第二驱动轮的实时坐标进行修正。

可选地,根据实时角度、第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮的修正坐标和第二驱动轮的修正坐标,具体包括:

根据第一驱动轮的实时坐标(x1,y1)和第二驱动轮的实时坐标(x2,y2),得到中心点的实时坐标(x3,y3):

x3=(x1+x2)/2

y3=(y1+y2)/2

根据实时角度θ和中心点的实时坐标(x3,y3),计算第一驱动轮的修正坐标(x1,y1)和第二驱动轮的修正坐标(x2,y2):

x1=x3-d˙cosθ

y1=y3-d˙sinθ

x2=x3+d˙cosθ

y2=y3+d˙sinθ

其中,d为第一驱动轮或第二驱动轮与中心点之间的理论距离。

第二方面,本发明实施例还提供一种机器人的碰撞检测装置,机器人的底部两侧对称安装有第一驱动装置和第二驱动装置,第一驱动装置包括第一驱动电机和第一驱动轮,第二驱动装置包括第二驱动电机和第二驱动轮,该装置包括:

角度获取模块,用于获取机器人的实时角度;

实时坐标获取模块,用于根据第一驱动电机的驱动信息和实时角度获取第一驱动轮的实时坐标,根据第二驱动电机的驱动信息和实时角度获取第二驱动轮的实时坐标;

虚拟距离计算模块,用于根据第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮和第二驱动轮之间的虚拟距离;

状态确定模块,用于如果虚拟距离与预设距离的相对偏差不在预设范围内,确定机器人发生碰撞。

可选地,该装置还包括:

速度获取模块,用于如果虚拟距离与预设距离的相对偏差在预设范围内,实时获取第一驱动轮的第一速度和第二驱动轮的第二速度;

状态确定模块,还用于如果第一速度和/或第二速度小于预设速度阈值,确定机器人发生碰撞。

可选地,该装置还包括:

pwm值获取模块,用于如果虚拟距离与预设距离的相对偏差在预设范围内,实时获取第一驱动电机的第一pwm值和第二驱动电机的第二pwm值;

状态确定模块,还用于如果第一pwm值和/或第二pwm值大于预设pwm值,确定机器人发生碰撞。

可选地,实时坐标获取模块,具体用于:

根据第一驱动电机的转速获取单位时间内第一驱动轮走过的距离,根据实时角度和单位时间内第一驱动轮走过的距离,计算单位时间内第一驱动轮的第一坐标变化量,对第一坐标变化量进行累加,得到第一驱动轮的实时坐标;

根据第二驱动电机的转速获取单位时间内第二驱动轮走过的距离,根据实时角度和单位时间内第二驱动轮走过的距离,计算单位时间内第二驱动轮的第二坐标变化量,对第二坐标变化量进行累加,得到第二驱动轮的实时坐标。

可选地,该装置还包括:

避障模块,用于如果机器人发生碰撞,控制机器人进行避障处理;

修正坐标计算模块,用于根据实时角度、第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮的修正坐标和第二驱动轮的修正坐标;

实时坐标修正模块,用于根据第一驱动轮的修正坐标对第一驱动轮的实时坐标进行修正,根据第二驱动轮的修正坐标对第二驱动轮的实时坐标进行修正。

可选地,修正坐标计算模块,具体用于:

根据第一驱动轮的实时坐标(x1,y1)和第二驱动轮的实时坐标(x2,y2),得到中心点的实时坐标(x3,y3):

x3=(x1+x2)/2

y3=(y1+y2)/2

根据实时角度θ和中心点的实时坐标(x3,y3),计算第一驱动轮的修正坐标(x1,y1)和第二驱动轮的修正坐标(x2,y2):

x1=x3-d˙cosθ

y1=y3-d˙sinθ

x2=x3+d˙cosθ

y2=y3+d˙sinθ

其中,d为第一驱动轮或第二驱动轮与中心点之间的理论距离。

第三方面,本发明实施例还提供一种智能机器人,智能机器人的底部两侧对称安装有第一驱动装置和第二驱动装置,第一驱动装置包括第一驱动电机和第一驱动轮,第二驱动装置包括第二驱动电机和第二驱动轮,智能机器人还包括:

至少一个处理器;以及

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

存储器存储有可被至少一个处理器执行的指令程序,指令程序被至少一个处理器执行,以使至少一个处理器能够执行如上的方法。

第四方面,本发明实施例还提供一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,当计算机可执行指令被智能机器人执行时,使智能机器人执行如上的方法。

第五方面,本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被智能机器人执行时,使智能机器人执行如上的方法。

本发明实施例的有益效果是:区别于现有技术的情况,本发明实施例通过获取第一驱动轮和第二驱动轮的实时坐标,根据第一驱动轮和第二驱动轮的实时坐标计算第一驱动轮和第二驱动轮之间的虚拟距离,当机器人与障碍物发生碰撞并继续运动的情况下,虚拟距离会比预设距离偏大或偏小,如果虚拟距离与预设距离的相对偏差不在预设范围内,确定机器人发生碰撞,在防碰撞功能失效的情况下,当机器人与障碍物发生碰撞,能够及时对碰撞情况进行检测。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例所涉及的一种扫地机器人的结构示意图;

图2是图1所示的扫地机器人的功能结构示意图;

图3是本发明实施例的机器人的碰撞检测方法的示意图;

图4是本发明另一实施例的机器人的碰撞检测方法的示意图;

图5是本发明又一实施例的机器人的碰撞检测方法的示意图;

图6是本发明又一实施例的机器人的碰撞检测方法的示意图;

图7是本发明实施例的根据实时角度和中心点的坐标计算驱动轮的修正坐标的示意图;

图8是本发明实施例的机器人的碰撞检测装置的示意图;

图9是本发明实施例的智能机器人的功能结构示意图。

具体实施例

为了便于理解本发明,下面结合附图和具体实施方式,对本发明进行更详细的说明。需要说明的是,当元件被表述“固定于”另一个元件,它可以直接在另一个元件上、或者其间可以存在一个或多个居中的元件。当一个元件被表述“连接”另一个元件,它可以是直接连接到另一个元件、或者其间可以存在一个或多个居中的元件。

除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

本发明实施例的机器人的碰撞检测方法及装置可应用于各种智能机器人,如,扫地机器人、空气净化机器人、导购机器人或安全防护机器人等。机器人包括机身,机身的底部左右两侧对称安装有第一驱动装置和第二驱动装置,第一驱动装置包括第一驱动电机和第一驱动轮,第二驱动装置包括第二驱动电机和第二驱动轮。

机身的内部还设置有侦测组件和处理器,侦测组件用于侦测或获取机器人的状态信息,处理器用于根据上述侦测组件侦测或获取到的状态信息结合预设算法输出一个或多个电机信号,使得机器人转向预定的方向、位置,或者保持预定的位置或姿态。侦测组件可包括速度传感器、红外传感器、陀螺仪等,处理器可为中央处理器(centralprocessingunit,cpu)、微控制器(microcontrollerunit,mcu)等

请参考图1,图1示出了本发明其中一实施例所涉及的一种扫地机器人的结构示意图,该扫地机器人为扁圆柱形壳体结构,设有第一驱动轮11、第二驱动轮12和清扫刷13。

请参阅图2,图2为该扫地机器人的功能结构示意图,该扫地机器人包括处理器20以及分别与处理器20连接的按键模块30和电源模块40。处理器20还与第一速度传感器21、第二速度传感器22、陀螺仪23、红外传感器24连接,通过第一速度传感器21获取第一驱动轮11的速度,通过第二速度传感器22获取第二驱动轮12的速度,通过陀螺仪23获取扫地机器人的角速度信号,以及通过红外传感器24获取外部的障碍物信号。

处理器20还与第一驱动电机25、第二驱动电机26、毛刷电机27、吸尘电机28连接,其中,第一驱动电机25与第一驱动轮11连接,用于驱动第一驱动轮11转动,第二驱动电机26与第二驱动轮12连接,用于驱动第二驱动轮12转动,毛刷电机27与清扫刷13连接,用于驱动清扫刷13转动,吸尘电机28与吸尘管路连接,用于使吸尘管路产生负压。

处理器20根据第一速度传感器21、第一速度传感器22、陀螺仪23和/或红外传感器24检测到的信息,向第一驱动电机25、第二驱动电机26、毛刷电机27和/或吸尘电机28输出对应的电机信号,以驱动第一驱动轮11、第二驱动轮12和/或清扫刷13转动,和/或使吸尘管路产生负压。

请参阅图3,图3为本发明实施例的机器人的碰撞检测方法的示意图,该方法包括:

步骤110:获取机器人的实时角度。

具体地,可通过陀螺仪获取机器人的角速度ω,将ω与时间积分获取单位时间内机器人的角度变化量:

对角度变化量δθi进行累加,获取机器人的实时角度:

其中,在起始时刻,即i=0时,预设机器人的起始角度为0。

步骤120:根据第一驱动电机的驱动信息和实时角度获取第一驱动轮的实时坐标,根据第二驱动电机的驱动信息和实时角度获取第二驱动轮的实时坐标。

电机的驱动信息通常情况下包括电机的转速、输出功率、脉冲信号、驱动电流等。

根据第一驱动电机的转速α,将转速α与时间积分可获取单位时间内第一驱动轮走过的距离:

其中,l1为一常数,与第一驱动轮的半径呈正比;

根据实时角度δθi和单位时间内第一驱动轮走过的距离s1i,计算单位时间内第一驱动轮的第一坐标变化量:

对第一坐标变化量进行累加,得到第一驱动轮的实时坐标(x1,y1):

其中,(x10,y10)为第一驱动轮起始时刻的坐标。

同样地,根据第二驱动电机的转速β,将转速β与时间积分获取单位时间内单位时间内第二驱动轮走过的距离:

其中,l2为一常数,与第二驱动轮的半径呈正比;

根据实时角度δθi和单位时间内第二驱动轮走过的距离s2i,计算单位时间内第二驱动轮的第二坐标变化量:

对第二坐标变化量进行累加,得到第二驱动轮的实时坐标(x2,y2):

其中,(x20,y20)为第一驱动轮起始时刻的坐标。

步骤130:根据第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮和第二驱动轮之间的虚拟距离。

根据第一驱动轮的实时坐标(x1,y1)和第二驱动轮的实时坐标(x2,y2),可计算得到第一驱动轮和第二驱动轮之间的虚拟距离lx:

步骤140:如果虚拟距离与预设距离的相对偏差不在预设范围内,确定机器人发生碰撞。

其中,预设距离为机器人在正常静止状态下第一驱动轮和第二驱动轮之间的距离。当机器人与障碍物发生碰撞并继续运动的情况下,第一驱动轮和/或第二驱动轮可能出现打滑现象,导致根据路径算法算出的第一驱动轮和/或第二驱动轮的实时坐标出现误差,从而进一步导致算出的第一驱动轮和第二驱动轮之间的虚拟距离lx比预设距离偏大或偏小。

因此,可通过动态监测第一驱动轮和第二驱动轮之间的虚拟距离lx,根据虚拟距离lx与预设距离的相对偏差是否在预设范围内,判断机器人是否发生碰撞。

如果虚拟距离lx与预设距离的相对偏差不在预设范围内,确定机器人发生碰撞。进一步地,可采取相应措施,如,控制机器人进行避障处理,暂停机器人工作,或发出报警提示,避免机器人的损伤。

本实施例通过获取第一驱动轮和第二驱动轮的实时坐标,根据第一驱动轮和第二驱动轮的实时坐标计算第一驱动轮和第二驱动轮之间的虚拟距离,当机器人与障碍物发生碰撞并继续运动的情况下,虚拟距离会比预设距离偏大或偏小,如果虚拟距离与预设距离的相对偏差不在预设范围内,确定机器人发生碰撞,在防碰撞功能失效的情况下,当机器人与障碍物发生碰撞,能够及时对碰撞情况进行检测。

请参阅图4,图4为本发明另一实施例的机器人的碰撞检测方法的示意图,该方法还包括:

步骤210:如果虚拟距离与预设距离的相对偏差在预设范围内,实时获取第一驱动轮的第一速度和第二驱动轮的第二速度。

当机器人与障碍物发生碰撞并继续运动的情况下,第一驱动轮和第二驱动轮的实时坐标的误差可能会部分抵消,如果虚拟距离与预设距离的相对偏差在预设范围内,进一步地,实时获取第一驱动轮的第一速度和第二驱动轮的第二速度。

步骤220:如果第一速度和/或第二速度小于预设速度阈值,确定机器人发生碰撞。

在实际应用中,机器人工作过程中的速度相对比较稳定,在碰到障碍物并继续运动的情况下,驱动轮的速度会变慢,因此,可根据第一驱动轮的第一速度和第二驱动轮的第二速度,判断机器人是否发生碰撞。

如果第一驱动轮的第一速度和/或第二驱动轮的第二速度小于预设速度阈值,确定机器人发生碰撞。

本实施例通过进一步获取第一驱动轮的第一速度和第二驱动轮的第二速度,如果第一速度和/或第二速度小于预设速度阈值,确定机器人发生碰撞,能够更精确地对碰撞情况进行检测。

请参阅图5,图5为本发明又一实施例的机器人的碰撞检测方法的示意图,该方法还包括:

步骤310:如果虚拟距离与预设距离的相对偏差在预设范围内,实时获取第一驱动电机的第一pwm值和第二驱动电机的第二pwm值。

本实施例的驱动电机基于脉冲宽度调制值(pwm值)驱动,根据处理器发出的电机信号,驱动电机的pwm控制器输出相应的pwm值驱动电机,处理器可实时获取第一驱动电机的pwm值和第二驱动电机的pwm值。

步骤320:如果第一pwm值和/或第二pwm值大于预设pwm值,确定机器人发生碰撞。

正常情况下,第一pwm值和第二pwm值处在某个区间,以保持机器人的速度相对稳定。在机器人碰到障碍物并继续运动的情况下,第一pwm值和第二pwm值会增大。因此,可根据第一驱动轮的第一pwm值和第二驱动轮的第二pwm值,判断机器人是否发生碰撞。

如果第一驱动轮的第一pwm值和/或第二驱动轮的第二pwm值大于预设pwm值,确定机器人发生碰撞。

在其他实施例中,还可在第一驱动电机与处理器之间设置第一电流检测模块,在第二驱动电机与处理器之间设置第二电流检测模块,根据第一电流检测模块检测到的第一驱动电流和第二电流检测模块检测到的第二驱动电流,判断机器人是否发生碰撞。如果第一驱动电流和/或第二驱动电流大于预设电流阈值,确定机器人发生碰撞。

本实施例通过进一步获取第一驱动电机的第一pwm值和第二驱动电机的第二pwm值,如果第一驱动轮的第一pwm值和/或第二驱动轮的第二pwm值大于预设pwm值,确定机器人发生碰撞,能够更精确地对碰撞情况进行检测。

请参阅图6,图6为本发明又一实施例的机器人的碰撞检测方法的示意图,该方法还包括:

步骤410:如果机器人发生碰撞,控制机器人进行避障处理。

如,控制机器人从当前位置开始左向或右向绕开障碍物绕开之后,绕开之后,从新起点继续按原路径前进。

步骤420:根据实时角度、第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮的修正坐标和第二驱动轮的修正坐标。

当机器人与障碍物发生碰撞并继续运动的情况下,会导致根据路径算法算出的第一驱动轮和/或第二驱动轮的实时坐标出现误差。误差持续积累,计算得到的第一驱动轮和/或第二驱动轮的实时坐标与实际坐标相差越来越大,从而影响到机器人的正常工作。

因第一驱动轮和第二驱动轮对称安装在机器人的机身底部,机器人的中心点位于第一驱动轮和第二驱动轮的垂直中间位置,因此,当第一驱动轮和第二驱动轮的实时坐标的误差重叠到中心点后,误差会变小。

根据机器人的实时角度和中心点的实时位置可计算得到第一驱动轮的修正坐标和第二驱动轮的修正坐标,该修正坐标与通过上述方法计算得到的实时坐标相比,更接近第一驱动轮的和第二驱动轮的实际坐标。

具体地,如图7所示,根据第一驱动轮的实时坐标(x1,y1)和第二驱动轮的实时坐标(x2,y2),得到中心点的实时坐标(x3,y3):

x3=(x1+x2)/2

y3=(y1+y2)/2

根据实时角度θ和中心点的实时坐标(x3,y3)计算得到第一驱动轮的修正坐标(x1,y1):

x1=x3-d˙cosθ

y1=y3-d˙sinθ

其中,d为第一驱动轮或第二驱动轮与中心点之间的理论距离。

根据实时角度θ和中心点的实时坐标(x3,y3)计算得到第一驱动轮的修正坐标(x2,y2):

x2=x3+d˙cosθ

y2=y3+d˙sinθ。

步骤430:根据第一驱动轮的修正坐标对第一驱动轮的实时坐标进行修正,根据第二驱动轮的修正坐标对第二驱动轮的实时坐标进行修正。

可选地,以第一驱动轮的修正坐标替代第一驱动轮的实时坐标,作为下一次计算的依据;以第二驱动轮的修正坐标替代第二驱动轮的实时坐标,作为下一次计算的依据。

本实施例通过根据实时角度、第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮的修正坐标和第二驱动轮的修正坐标,以对第一驱动轮的实时坐标和第二驱动轮的实时坐标进行修正,能够避免根据路径算法算出的第一驱动轮和第二驱动轮的实时坐标的误差持续积累,影响机器人的正常工作。

本发明实施例进一步公开一种机器人的碰撞检测装置,机器人的底部两侧对称安装有第一驱动装置和第二驱动装置,第一驱动装置包括第一驱动电机和第一驱动轮,所第二驱动装置包括第二驱动电机和第二驱动轮,如图8所示,装置800包括:

角度获取模块810,用于获取机器人的实时角度;

实时坐标获取模块820,用于根据第一驱动电机的驱动信息和实时角度获取第一驱动轮的实时坐标,根据第二驱动电机的驱动信息和实时角度获取第二驱动轮的实时坐标;

虚拟距离计算模块830,用于根据第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮和所述第二驱动轮之间的虚拟距离;

状态确定模块840,用于如果虚拟距离与预设距离的相对偏差不在预设范围内,确定机器人发生碰撞。

实时坐标获取模块820,具体用于:

根据第一驱动电机的转速获取单位时间内第一驱动轮走过的距离,根据实时角度和单位时间内第一驱动轮走过的距离,计算单位时间内第一驱动轮的第一坐标变化量,对第一坐标变化量进行累加,得到第一驱动轮的实时坐标;

根据第二驱动电机的转速获取单位时间内第二驱动轮走过的距离,根据实时角度和单位时间内第二驱动轮走过的距离,计算单位时间内第二驱动轮的第二坐标变化量,对第二坐标变化量进行累加,得到第二驱动轮的实时坐标。

本实施例通过实时坐标获取模块820获取第一驱动轮和第二驱动轮的实时坐标,虚拟距离计算模块830根据第一驱动轮和第二驱动轮的实时坐标计算第一驱动轮和第二驱动轮之间的虚拟距离,当机器人与障碍物发生碰撞并继续运动的情况下,虚拟距离会比预设距离偏大或偏小,如果虚拟距离与预设距离的相对偏差不在预设范围内,状态确定模块840确定机器人发生碰撞,在防碰撞功能失效的情况下,当机器人与障碍物发生碰撞,能够及时对碰撞情况进行检测。

可选地,该装置800还包括:

速度获取模块850,用于如果虚拟距离与预设距离的相对偏差在预设范围内,实时获取第一驱动轮的第一速度和第二驱动轮的第二速度;

状态确定模块840,还用于如果第一速度和/或第二速度小于预设速度阈值,确定所述机器人发生碰撞。

本实施例通过速度获取模块850进一步获取第一驱动轮的第一速度和第二驱动轮的第二速度,如果第一速度和/或第二速度小于预设速度阈值,状态确定模块840确定机器人发生碰撞,能够更精确地对碰撞情况进行检测。

可选地,该装置800还包括:

pwm值获取模块860,用于如果虚拟距离与预设距离的相对偏差在预设范围内,实时获取第一驱动电机的第一pwm值和第二驱动电机的第二pwm值;

状态确定模块840,还用于如果第一pwm值和/或第二pwm值大于预设pwm值,确定机器人发生碰撞。

本实施例通过pwm值获取模块860进一步获取第一驱动电机的第一pwm值和第二驱动电机的第二pwm值,如果第一驱动轮的第一pwm值和/或第二驱动轮的第二pwm值大于预设pwm值,状态确定模块840确定机器人发生碰撞,能够更精确地对碰撞情况进行检测。

可选地,该装置800还包括:

避障模块870,用于如果机器人发生碰撞,控制机器人进行避障处理;

修正坐标计算模块880,用于根据实时角度、第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮的修正坐标和第二驱动轮的修正坐标;

实时坐标修正模块890,用于根据第一驱动轮的修正坐标对第一驱动轮的实时坐标进行修正,根据第二驱动轮的修正坐标对第二驱动轮的实时坐标进行修正。

修正坐标计算模块880,具体用于:

根据第一驱动轮的实时坐标(x1,y1)和第二驱动轮的实时坐标(x2,y2),得到中心点的实时坐标(x3,y3):

x3=(x1+x2)/2

y3=(y1+y2)/2

根据实时角度θ和中心点的实时坐标(x3,y3),计算第一驱动轮的修正坐标(x1,y1)和第二驱动轮的修正坐标(x2,y2):

x1=x3-d˙cosθ

y1=y3-d˙sinθ

x2=x3+d˙cosθ

y2=y3+d˙sinθ

其中,d为第一驱动轮或第二驱动轮与中心点之间的理论距离。

本实施例通过修正坐标计算模块880根据实时角度、第一驱动轮的实时坐标和第二驱动轮的实时坐标,计算第一驱动轮的修正坐标和第二驱动轮的修正坐标,实时坐标修正模块890对第一驱动轮的实时坐标和第二驱动轮的实时坐标进行修正,能够避免根据路径算法算出的第一驱动轮和第二驱动轮的实时坐标的误差持续积累,影响机器人的正常工作。

需要说明的是,由于本发明实施例的装置实施例与方法实施例基于相同的发明构思,方法实施例中的技术内容同样适用于装置实施例,因此,装置实施例中与方法实施例相同的技术内容在此不再赘述。

为了更好的实现上述目的,本发明实施例还提供一种智能机器人,智能机器人的底部两侧对称安装有第一驱动装置和第二驱动装置,第一驱动装置包括第一驱动电机和第一驱动轮,第二驱动装置包括第二驱动电机和第二驱动轮。该智能机器人存储有可执行指令,该可执行指令可执行上述任意方法实施例中的机器人的碰撞检测方法。

图9是本发明实施例提供的一种智能机器人900的功能结构示意图,如图9所示,该智能机器人900包括:一个或多个处理器901以及存储器902,图9中以一个处理器901为例。

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

存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的机器人的碰撞检测方法对应的程序指令/模块(例如,图8所示的各个模块)。处理器901通过运行存储在存储器902中的非易失性软件程序、指令以及模块,从而执行机器人的碰撞检测装置的各种功能应用以及数据处理,即实现上述方法实施例的机器人的碰撞检测方法以及上述装置实施例的各个模块的功能。

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

所述程序指令/模块存储在所述存储器902中,当被所述一个或者多个处理器901执行时,执行上述任意方法实施例中的机器人的碰撞检测方法,例如,执行以上描述的图3至图6所示的各个步骤;也可实现图8所述的各个模块。

本实施例的智能机器人通过获取第一驱动轮和第二驱动轮的实时坐标,根据第一驱动轮和第二驱动轮的实时坐标计算第一驱动轮和第二驱动轮之间的虚拟距离,当机器人与障碍物发生碰撞并继续运动的情况下,虚拟距离会比预设距离偏大或偏小,如果虚拟距离与预设距离的相对偏差不在预设范围内,确定机器人发生碰撞,在防碰撞功能失效的情况下,当机器人与障碍物发生碰撞,能够及时对碰撞情况进行检测,以采取相应措施。

本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图9中的一个处理器901,可使得上述一个或多个处理器可执行上述任意方法实施例中的机器人的碰撞检测方法,例如,执行以上描述的图3至图6所示的各个步骤;也可实现图8所述的各个模块。

上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。

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

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

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1