扫地机器人论坛 | 爸爸乐轻松_扫地机器人的百科全书

 找回密码
 没有帐号?
查看: 20905|回复: 11

[原创] iRobot Roomba面积模糊判定算法和工作时长的关系   [复制链接]

超级版主

科技改变生活

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

帖子
16212
电量
28664
在线时间
4682 小时
注册时间
2012-3-5

资深"丸"家 我是麦霸 热心会员 板猪?版猪?! 第一次“设精” 大海啊全是水 我喜欢这儿 DIY达人 什么都难不住我! 精英用户

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

什么是面积模糊判定算法

Roomba_初代目.jpg


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


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

Roomba_SML.jpg


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


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

Roomba_Discovery.jpg


图: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分钟寻找充电基座的情况。

面积模糊判定算法的缺陷

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

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

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

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

灯塔机型清扫总时长=(灯塔数量+1)*30
注意:上面的30分钟是估算灯塔区域内25分钟清扫+5分钟寻找灯塔穿越的时间,根据房间布局、灯塔区域面积大小不同以及灯塔寻找难易度等因素相关,所以实际清扫时间可能会有一定出入。

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

后记:以上文字主要基于本人的分析和推理 ,绝大部分均无任何官方文档资料支持,故仅供参考不能作为权威资料引用,特此说明。




产品四要素:
NO.1 智能程度(算法)
NO.2 清洁能力(结构)
NO.3 续航时间(电池)
NO.4 性能稳定(质量)

Rank: 12Rank: 12Rank: 12

帖子
611
电量
3073
在线时间
784 小时
注册时间
2012-11-8

团结就是力量! SHOW IT 我是麦霸 我喜欢这儿 DIY达人 第一次“设精”

发表于 2013-10-5 17:07:42 |显示全部楼层
继续学习,谢谢斑竹!
roomba的灯塔还是有一些容易出问题的情况的,配对呀什么的,说明书也惜字如金,不甚明了。
只有经常来论坛看斑竹的帖子,以及大家的反馈,自己举一反三,才能用好机器。
所以,这个产品,使用起来还是有一定的知识门槛,估计这个会影响它的普及。
这个门槛在我家的表现,就是我要出几天的差,LD在家就会搞不定。

点评

wangsq  赞同,irobot的灯塔确实也并不太让人省心哈  发表于 2013-12-17 09:29:07

Rank: 4

帖子
211
电量
415
在线时间
81 小时
注册时间
2013-10-9

团结就是力量! SHOW IT

发表于 2013-10-10 00:06:58 |显示全部楼层
太专业了,向版主致敬!

Rank: 3Rank: 3

帖子
44
电量
102
在线时间
30 小时
注册时间
2013-10-13
发表于 2013-10-14 21:59:18 |显示全部楼层
专业啊。连看了好几遍才大概明白点机器的工作原理

Rank: 12Rank: 12Rank: 12

帖子
307
电量
2330
在线时间
1515 小时
注册时间
2013-5-15

SHOW IT 我是麦霸 热心会员 大海啊全是水 我喜欢这儿 DIY达人

发表于 2013-10-24 21:21:11 |显示全部楼层
灯塔分区清扫   最小面积清扫时间是8分钟

点评

tteenn  570  发表于 2013-10-24 21:33:55
bblqs  用什么机型测试的?  发表于 2013-10-24 21:24:17
1

查看全部评分

Rank: 3Rank: 3

帖子
94
电量
373
在线时间
71 小时
注册时间
2012-12-11
发表于 2013-11-29 18:42:40 |显示全部楼层
哎呀,好赞啊~我一开始还以为黑白双色万向轮只是为了好看~

超级版主

评测中寻找快乐

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

帖子
7285
电量
19765
在线时间
7670 小时
注册时间
2013-7-21

SHOW IT 我是麦霸 热心会员 第一次“设精” 大海啊全是水 我喜欢这儿 DIY达人 什么都难不住我! 精英用户 产品评测组

发表于 2013-11-29 19:08:26 |显示全部楼层
金刚130也是配黑白双色前转向轮,难道它也有面积模糊判定吗?

点评

edisonfok  功能应该只限于探测机器有没有被困  发表于 2013-12-17 02:57:36

Rank: 4

帖子
292
电量
537
在线时间
81 小时
注册时间
2013-11-27
发表于 2013-12-17 01:11:15 |显示全部楼层
gaolaozhuang 发表于 2013-11-29 19:08
金刚130也是配黑白双色前转向轮,难道它也有面积模糊判定吗?

同问,有这么先进的功能吗?

Rank: 1

帖子
5
电量
24
在线时间
4 小时
注册时间
2014-12-20
发表于 2014-12-20 10:38:14 |显示全部楼层
那如果面积很大,200平米,也只扫一个小时吗?

点评

bblqs  不使用灯塔有两种结果:1、60分钟后DOCK亮起,Roomba刚好在充电基座附近的话会很快回充。2、60分钟后DOCK亮起,Roomba在离充电基座很远的地方清扫,会继续工作到直到靠近充电基座为止。  发表于 2014-12-20 11:42:41

Rank: 1

帖子
5
电量
24
在线时间
4 小时
注册时间
2014-12-20
发表于 2014-12-20 10:39:00 |显示全部楼层
如果780 不放灯塔,最大可打扫多大面积?打扫多久?

点评

bblqs  无灯塔最大60分钟  发表于 2014-12-20 11:25:54
您需要登录后才可以回帖 登录 | 没有帐号?

Archiver|手机版|扫地机器人论坛 | 爸爸乐轻松

GMT+8, 2018-7-17 00:34 , Processed in 0.003198 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部