语言切换:繁體中文版 | 收藏本站
 
当前位置:首页 >> 智能吸尘器的产品评测 >> 详解iRobot Roomba面积模糊判定算法和工作时长的关系

详解iRobot Roomba面积模糊判定算法和工作时长的关系

时间:2013-10-26来源:www.bblqs.com 作者:爸爸乐轻松

    目前iRobot Roomba 3/4/5/6/7系产品均采用iRobot公司的iAdapt专利算法,iAdapt是基于随机碰撞的智能化遍历算法,其中包括了Roomba的数十种标准清扫动作,在清扫过程中Roomba会根据机身感应器的反馈数据,在合适的时候决定采取合适的动作。该算法进行了大量实验室测试,从Roomba初代机开始一直在不停完善,在Roomba 5系之后该算法已经基本定型。(注:iRobot Scooba也采用相同的随机遍历算法和面积判定机制)

什么是面积模糊判定算法

iRobot Roomba 第一代
图1:iRobot Roomba第一代产品未使用面积模糊判定算法


    面积模糊判定算法是iRobot公司iAdpt专利算法中的一项技术,从4系开始iRobot Roomba能够根据一系列数据进行分析,大致估算房间面积并模糊判定清扫时间。例如我们把Roomba放在一平米见方的桌上,然后掐表启动Roomba,我们会发现Roomba将在运行约8分钟后将唱停机表示清扫完毕,而当我们把Roomba放到一个15平米的房间启动的话,Roomba将运行约25分钟后唱歌停机,当我们把Roomba放到一个更大房间运行的话,Roomba将运行60分钟后唱歌停机。我把iRobot Roomba这种根据房间面积自动设定清扫时长的算法,称为面积模糊判定算法。

iRobot Roomba S/M/L设置
图2:iRobot Roomba 第一代的S/M/L设置

    目前在国产随机碰撞机型里,暂无厂家采用类似算法自动设置清扫时间,而Roomba第一代产品(3系)也没有采用该算法而是通过S(Small)/M(Middle)/L(Large)进行人工设置,这种人工选择清扫时间的作法目前仍有部分国产机型采用,而目前国产机型里更多的是采用以电池可用时长(典型方法为根据电池电压作判定)控制清扫时间,电池工作到低电压就会自动回充而不管清扫面积是大还是小。

iRobot Roomba 4系
图3:iRobot Roomba 4系开始取消S/M/L设置采用算法自动判定


面积模糊判定算法的原理

    由于iRobot公司从未对外披露iAdapt算法的工作原理,我无法了解它的具体作用方法,但是根据观察和实际使用,我们可以大致分析和推测它是如何实现的。我认为这个环节应该分成三个步骤:

1、判定的时间段(估算)
由于我们知道Roomba最低运行时间是8分钟,所以可以推测该算法在面积估算阶段的时间不会超过8分钟,最可能是的4-8分钟之间,同时我们也可以推测充电基座附近的工作环境如家具密集程度,将直接对面积判定算法的结果起到比较明显的影响。

2、算法判定的依据(推测)
当Roomba开始工作后(从充电基座或非充电基座启动),Roomba开始收集算法估算所需的两个重要参数:单次行进距离和单位时间碰撞频率。
行进距离的获取可以来自Roomba前方黑白相间的万向轮检测手段,还可以来自主轮的里程数,前者由万向轮后方的红外对管收集滚动次数的电平信号,Roomba可以精确计算出每次碰撞前Roomba的进行距离(行进距离=黑白电平信号侦测数*万向轮周长*2),而后者主轮的里程数则直接来自机器内置的转速测算数据,单次行进距离越长则间接代表房间面积越大,走几步就调头则间接代表房间面积较小。
碰撞频率则相对比较简单,每次碰撞Roomba都能收集到相关信息,单位时间内碰撞频率越高代表房间面积越小(家具的布局会对这部分产生重要影响),碰撞频率低则表示需要清扫的面积较大。
通过在判定时间段内综合这两个参数的数据,Roomba就可以根据一系列复杂计算大致估算出目前清扫房间的大小(实际可能还会计算转向次数、延边距离等众多参数),并赋予Roomba与计算结果相对应的清扫时长。

3、实际清扫时长(估算)
根据面积模糊判定算法,Roomba可自适应清扫面积并自动设置清扫时长
小面积(对应S档):8-15分钟(常见8分钟档)
中面积(对应M档):25-35分钟(常见25分钟档)
大面积(对应L档):45-60分钟(常见60分钟档)
注意:以上时长为DOCK灯闪烁(从充电基座启动)或自动停机(非充电基座启动)之前的清扫时长,DOCK闪烁后为寻找充电基座自动DOCK的时间,不计入面积判定算法工作时长内,如清扫60分钟后闪烁DOCK但是花了20分钟寻找充电基座的情况。
由于条件所限,我暂时无法测定是否有大于60分钟的判定清扫时长(90分钟档),不过估计很可能是没有的。

面积模糊判定算法的缺陷

    房间内家具的摆放,尤其是充电基座附近家具的摆放密集程度,直接关系到面积判定算法的准确程度,在欧美家庭由于户型较大,家具摆放也相对比较疏散,面积判定算法的准确率相对较高。在有些国内用户的家庭中,家具摆放较为密集,这在很大程度上可能在某些时候造成Roomba对清扫面积的误判,很多用户经常也会出现诸如”为什么我家有90平米,Roomba只扫了半小时就回充”一类的问题。

    要解决算法误判,用户首先应确保充电基座附近较为开阔,尽可能不要在诸如储物间、书房等小面积的房间内摆放充电基座,避免Roomba的面积模糊判定算法误判,影响机器的工作时长,同时Lanmu大神的肉丸增强模块,也是非灯塔机型突破面积判定算法清扫最大时长60分钟约束的一个强力辅助。

灯塔导航机型的面积判定算法

    根据官方说明推测,iRobot Roomba灯塔机型在灯塔区域内仍有独立的灯塔区域面积模糊判定算法,其中灯塔区域内最大清扫时间为35分钟(L档),典型清扫时间为25分钟(M档,最常见),最小清扫时间约为8分钟(S档),注意:S/M/L三档灯塔区域内清扫时间独立于寻找灯塔虚拟墙穿越时间之外。

    对灯塔导航机型来说,在单次清扫中Roomba靠近首个灯塔前(灯塔配对或未配对的情况相同),基础面积模糊判定算法同样生效,如果用户的灯塔放置位置不合理,例如没有在有利于Roomba发现灯塔的走道口等处放置,家具过于密集或灯塔附近有杂物遮挡,充电基座房间又比较小被Roomba判定为25分钟左右清扫时间,就有可能会造成Roomba在完成25分钟档清扫时间后直接DOCK回充。如果在25分钟内靠近了室内任一灯塔,Roomba将忽视基础的面积模糊判定算法,其后将根据灯塔堆栈算法指引Roomba跨区清扫灯塔区域,并根据灯塔区域面积模糊判定算法决定清扫时间,大致每灯塔清扫时间为25分钟左右。如果面积判定算法判定充电基座区域清扫为60分钟,则没有以上情况,只要在60分钟内靠近任意灯塔即可开始跨区引导,在60分钟内不碰到任意灯塔的可能性远比25分钟不碰到的几率小得多。(全文完)

相关链接:
关于iRobot Roomba灯塔虚拟墙和普通虚拟墙的详解
iRobot Roomba进口机器人吸尘器的区域控制技术原理介绍

《详解iRobot Roomba面积模糊判定算法和工作时长的关系》由爸爸乐轻松网原创提供,转载请注明:
http://www.bblqs.com/article/452.htm