【技术领域】
本发明总体说来涉及机器人技术领域,更具体地讲,涉及一种机器人及其障碍检测方法和障碍检测系统。
背景技术:
机器人障碍检测技术在机器人自主导航系统中具有十分关键的作用,它的好坏可直接影响着机器人在实际环境运行时能否安全可靠地进行自主导航。目前应用于服务机器人障碍检测方面的传感器种类较多,主要有激光传感器、rgbd传感器、超声传感器和红外传感器。为了使机器人能够具备立体避障能力,一般都是将上述提到的多传感器数据进行融合使用。由于红外传感器自身的工作原理是单发单收的模式,常见的应用方案有两种:一种是把它作为单线测距传感器,采用单线测距模型投射障碍测距信息,另一种是把它作为类超声传感器,采用三角波束模型投射障碍测距信息。这两种基于红外的障碍检测方案均存在一定的问题,第一种方案由于单线模型视域较小导致忽略掉大部分的障碍物,第二种方案由于近似的三角波束模型随着障碍越远近似的区域会越大,导致会将较大部分的非障碍物区域错误地标注为障碍,从而降低机器人的通过性。
鉴于此,迫切需要提出一种较为精准的使用红外传感器检测障碍的方法。
技术实现要素:
本发明的示例性实施例的目的在于提供一种机器人及其障碍检测方法和障碍检测系统,以克服上述至少一个缺陷。
在一个总体方面,提供一种机器人障碍检测方法,所述机器人包括若干红外传感器,所述障碍检测方法包括:
获取所述若干红外传感器当前周期采集的检测数据;
根据当前周期所获取的检测数据,确定所述机器人的疑似障碍区域;
基于所述疑似障碍区域和所述若干红外传感器在当前周期的前一周期所采集的检测数据,更新所述机器人的障碍检测状态。
可选地,所述机器人包括若干红外传感器,包括:
所述若干红外传感器采用扇形阵列的方式安装在所述机器人轮廓的外表面上。
可选地,所述机器人包括若干红外传感器,包括:
所述若干红外传感器中的每个红外传感器之间按照预设步长安装在所述机器人轮廓的外表面上。
可选地,在所述获取所述若干红外传感器当前周期采集的检测数据之后,还包括:
将所述当前周期所获取的检测数据采用波动幅值滤波。
可选地,所述根据当前周期所获取的检测数据,确定所述机器人的疑似障碍区域,包括:
将所述当前周期所获取的检测数据采用方阵涨分模型,确定所述机器人的疑似障碍区域;其中,所述方阵涨分模型为根据所述当前周期所获取的检测数据,采用预设涨分规则建立的模型。
在另一总体方面,本发明提供了一种机器人障碍检测系统,所述机器人包括若干红外传感器,所述障碍检测系统包括:
获取模块,用于获取所述若干红外传感器当前周期采集的检测数据;
确定模块,用于根据当前周期所获取的检测数据,确定所述机器人的疑似障碍区域;
更新模块,用于基于所述疑似障碍区域和所述若干红外传感器在当前周期的前一周期所采集的检测数据,更新所述机器人的障碍检测状态。
可选地,所述机器人包括若干红外传感器,所述若干红外传感器采用扇形阵列的方式安装在所述机器人轮廓的外表面上。
可选地,所述机器人包括若干红外传感器,所述若干红外传感器中的每个红外传感器之间按照预设步长安装在所述机器人轮廓的外表面上。
可选地,所述障碍检测系统还包括滤波模块,所述滤波模块用于将所述当前周期所获取的检测数据采用波动幅值滤波;
所述确定模块具体用于将所述当前周期所获取的检测数据采用方阵涨分模型,确定所述机器人的疑似障碍区域;其中,所述方阵涨分模型为根据所述当前周期所获取的检测数据,采用预设涨分规则建立的模型。
在另一总体方面,提供一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的障碍检测方法。
采用本发明示例性实施例的机器人障碍检测方法和障碍检测系统,通过获取若干红外传感器当前周期采集的检测数据;根据当前周期所获取的检测数据,确定机器人的疑似障碍区域;基于疑似障碍区域和若干红外传感器在当前周期的前一周期所采集的检测数据,更新机器人的障碍检测状态。本发明采用的障碍检测方法可以根据机器人在实际环境中的运行状态更新障碍检测结果,使得机器人的运行更加安全可靠,提高了机器人的可通过性。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出根据本发明示例性实施例的红外传感器在机器人上的安装示意图;
图2示出根据本发明示例性实施例的机器人障碍检测方法的流程图;
图3示出根据本发明示例性实施例的建立方阵涨分模型的示意图;
图4示出根据本发明示例性实施例的确定机器人的疑似障碍区域的方法示意图;
图5示出根据本发明示例性实施例的机器人障碍检测系统的框图;
图6示出根据本发明示例性实施例的机器人的控制框图。
【具体实施方式】
为了使本发明的目的、技术方案和有益技术效果更加清晰明白,以下结合附图和具体实施方式,对本发明进行进一步详细说明。应当理解的是,本说明书中描述的具体实施方式仅仅是为了解释本发明,并不是为了限定本发明。
本发明实施例提供了一种机器人障碍检测方法,其中,机器人包括若干红外传感器,图1示出了根据本发明示例性实施例的红外传感器在机器人上的安装示意图。
示例性的,若干个红外传感器可以采用扇形阵列的方式安装在机器人轮廓的外表面上,如图1所示,当采用左手系表示,x轴表示机器人正方向,y轴表示机器人的右手边,若干红外传感器中的每个红外传感器之间按照预设步长安装在机器人轮廓的外表面上,一般以机器人轮廓的两个前置侧向顶点作为扇形阵列的两侧端点,扇形区域内按照固定的角度步长依次排放。扇形阵列中传感器的个数,通常是按照固定角度或两个相邻红外传感器的间距反向确定的,也和机器人实体大小有关系;红外传感器可以随着数量的增加,提高精度和感知范围,但选取的数量需要结合实际的应用情况考虑。
图2示出了根据本发明示例性实施例的机器人障碍检测方法的流程图。
参照图2,在步骤s10中,获取若干红外传感器当前周期采集的检测数据。
在本步骤中,获取若干红外传感器在当前周期内采集的检测数据,即每个红外传感器采集的红外数据,示例性的,若干红外传感器的采集周期可以根据用户的需求进行设定,例如每25ms采集一次,或者每50ms采集一次。
在步骤s20中,根据当前周期所获取的检测数据,确定机器人的疑似障碍区域。
在获取得到当前周期内采集的红外数据以后,将红外数据通过数据处理算法,确定机器人的疑似障碍区域。
示例性的,确定机器人的疑似障碍区域的方法,可以通过将每根红外测量的末端采用方阵涨分模型,其中,方阵涨分模型是依据预设的涨分规则得到的,下面将以一具体示例阐述两根红外测量的末端为例,确定机器人的疑似障碍区域的方法。
图3为以某一红外末端点为对应方阵的中心点,从而建立的3*3的方阵的示意图,将中心点设为s4,其余栅格中的符号按照从左到右、从上到下的顺序依次标号为s0、s1、s2、s3、s5、s6、s7、s8,设置的涨分规则为:中心点s4对应的栅格单次涨分是500,s4的外层单次涨分是200,当方阵中的栅格分值大于等于1000时,该栅格的属性值标记为致命障碍状态,否则为自由状态。需要说明的是,为了调高机器人工作的安全性,可以逐步提高尺寸,
为了保证机器人的通过性下,可以逐步减小尺寸,即可以建立以某一红外末端点为对应方阵的中心点而形成的2*2、5*5、7*7等方阵,并且方阵中栅格单次涨分分值也可以根据用户的实际需求进行适当调优。
参考图4,图4中示出了当前周期内机器人的第4根和第6根红外检测到了障碍物,假设此前该区域内所有红外传感器均没有检测到障碍物,则该区域的栅格分值均为0,现按照上述方阵涨分模型依次对第4、6根所影响的栅格计算分值:第4根红外影响的栅格有:s0、s1、s2、s3、s5、s6、s7、s8,其中s4是红外测距末端点对应的栅格的中心点,分值为累加500,其余的累加200;第6根红外影响的栅格有:s0*、s1*、s2*、s3*、s4*、s5*、s6*、s7*、s8*,其中s4*是红外测距末端点对应的栅格的中心点,分值为累加500,其余的累加200,第4根和第6根红外重叠区域为s2、s5、s8(s0*、s3*、s6*),经过累加计算分值均为400,对此,经过与预设的障碍阈值。可以设为1000进行比较,这些栅格属性均为自由,依次进行计算,直至某栅格的分值大于等于1000时,属性将变换为致命障碍。
在步骤s30中,基于疑似障碍区域和若干红外传感器在当前周期的前一周期所采集的检测数据,更新机器人的障碍检测状态。
在确定了当前周期内的机器人的疑似障碍区域后,根据疑似障碍区域和前一周期采集的检测数据,更新机器人的障碍检测状态,可以理解的是,通过当前周期内的检测数据可以确定疑似障碍区域,结合前一周期内的历史检测数据,可以将当前机器人的障碍检测状态及时进行更新。
更新的具体方法可以为在假设最小障碍物宽度大于等于相邻两根红外的间距,即所有的障碍物都能被检测到的情况下,通过依次遍历红外检测数据,将在预先设定好的距离ρ内没有检测到障碍的红外检测数据归并为红外子集,其中,预先设定好的距离ρ可以取30-35cm之间,需根据实际需求而定,当红外子集当中的元素个数(即红外的根数)大于等于预设数量时,示例性的,该数量可以为设定为3,再将该红外子集中第一根红外和最后一根红外构成的轮廓区域对应的所有栅格属性标记为自由。例如,当红外子集中存在第3根、第4根、第5根红外数据时,将第3根和第5根组成的矩形内将栅格属性标记为自由,从而更新机器人的障碍检测状态。
示例性的,在获取若干红外传感器当前周期采集的检测数据之后,还包括:步骤s40,将当前周期所获取的检测数据采用波动幅值滤波。
在本步骤中,可以将无效数据进行过滤,提高后面数据处理的效率和准确性,减少数据量。具体的波动幅值滤波规则是当红外当前第i帧的红外检测数据r(i)相较于上一帧i-1数据值r(i-1)的变化量r-diff不可以大于最大可允许的波动幅值σ,如果大于,则跳过当前帧数据,作为无效数据过滤掉,计算公式如下:
r-diff=|r(i)-r(i-1)|
r(i)isvalid,ifr-diff≤σ
r(i)isinvalid,ifr-diff>σ
其中,r(i)表示当前第i帧的红外检测数据,r(i-1)为上一帧的红外检测数据,r-diff为当前帧r(i)和上一帧r(i-1)的变化量,σ为最大可允许的波动幅值。
本发明实施例提供的机器人障碍检测方法,通过获取若干红外传感器当前周期采集的检测数据;根据当前周期所获取的检测数据,确定机器人的疑似障碍区域;基于疑似障碍区域和若干红外传感器在当前周期的前一周期所采集的检测数据,更新机器人的障碍检测状态。本发明采用的障碍检测方法可以根据机器人在实际环境中的运行状态更新障碍检测结果,使得机器人的运行更加安全可靠,提高了机器人的可通过性。
本发明实施例还提供了一种机器人障碍检测系统100,图5示出根据本发明示例性实施例的机器人障碍检测系统的框图。机器人包括若干红外传感器,障碍检测系统100包括:
获取模块101,用于获取若干红外传感器当前周期采集的检测数据;
确定模块102,用于根据当前周期所获取的检测数据,确定机器人的疑似障碍区域;
更新模块103,用于基于疑似障碍区域和若干红外传感器在当前周期的前一周期所采集的检测数据,更新机器人的障碍检测状态。
示例性的,若干红外传感器采用扇形阵列的方式安装在机器人轮廓的外表面上。
示例性的,若干红外传感器中的每个红外传感器之间按照预设角度安装在机器人轮廓的外表面上。
示例性的,障碍检测系统100还包括:
滤波模块104,用于将当前周期所获取的检测数据采用波动幅值滤波。
示例性的,确定模块102具体用于将当前周期所获取的检测数据采用方阵涨分模型,确定机器人的疑似障碍区域;其中,方阵涨分模型为根据当前周期所获取的检测数据,采用预设涨分规则建立的模型。
本发明实施例提供的机器人障碍检测系统,机器人包括若干红外传感器,包括获取模块,用于获取若干红外传感器当前周期采集的检测数据;确定模块,用于根据当前周期所获取的检测数据,确定机器人的疑似障碍区域;更新模块,用于基于疑似障碍区域和若干红外传感器在当前周期的前一周期所采集的检测数据,更新机器人的障碍检测状态通过获取若干红外传感器当前周期采集的检测数据。本发明采用的障碍检测系统可以根据机器人在实际环境中的运行状态更新障碍检测结果,使得机器人的运行更加安全可靠,提高了机器人的可通过性。
本发明还提供了一种机器人,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上所述的障碍检测方法。
如图6所示,根据本发明示例性实施例的机器人200包括:处理器201和存储器202。
具体说来,存储器202用于存储计算机程序,计算机程序在被处理器201执行时实现上述的障碍检测方法。
尽管已参照优选实施例表示和描述了本发明,但本领域技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对这些实施例进行各种修改和变换。
本发明并不仅仅限于说明书和实施方式中所描述,因此对于熟悉领域的人员而言可容易地实现另外的优点和修改,故在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。