iRobot Roomba 560

Он движется хаотично. Есть два основных элемента: шататься случайно
(столкнувшись со стеной или просто потому что захотелось, развернуться
куда угодно и топать дальше) и идти по стеночке аккуратно повторяя её
повороты. Он эти два элемента сочетает, опять же, случайно между ними
переключаясь. Случайное шатание даёт хорошее покрытие площади комнаты,
а хождение по стеночке во-первых гарантирует, что он везде заберётся
(даже под стул, у которого расстояние между ножками где-то всего на
2см больше ширины робота), а во-вторых гарантирует тщательную вычистку
пыли вдоль плинтусов (захват пыли находится под пузом, но сбоку есть
специальная вертящаяся щётка, которая от плинтуса всё сгребает под
пузо). И есть ещё один специализированный вид движения: если он чует
под собой грязь (правда, чует! сам наблюдал!), то он на корпусе
зажигает специальную лампочку и некоторое время наматывает
спирали-круги по этому месту с особой тщательностью.

В процессе уборки комнаты, исходя из частоты столкновений с
предметами, максимальных длин участков, которые удаётся пройти без
столкновения и регулярности срабатывания датчика загрязнённости, он
непрерывно прикидывает, за сколько времени хаотичным тынянием ему
удастся вычистить вверенную территорию. Собственно, это время (как я
понимаю, непрерывно уточняемое) он и работает.

Как мы видим из построенной зоны покрытия, такими прикидочными
методами ему таки удаётся достигнуть хороших результатов (собственно,
для того и строил - самому интересно было :) Да, оно никогда не будет
идеально равномерным: где-то он пройдёт 3 раза, а где-то 6. Ну а
завтра будет наоборот.

Режима работы у него два: штатная уборка (всё вышеописанное) и
точечная: приносишь его туда, где что-то рассыпал, нажимаешь кнопку
точечной уборки, он начинает кататься по раскручивающейся спирали до
круга диаметром где-то в метр-полтора, потом по спирали "скручивается"
обратно в центр и останавливается.

Плюс ещё есть третья управляющая кнопка: команда вернуться на базу.
Также он возвращается на базу после уборки, если с неё стартовал или в
процессе уборки где-то её заметил. Если стартовал не с базы и в
процессе уборки её нигде не видел - останавливается где угодно
(кажется, старается при этом выехать куда-нибудь подальше от стен -
чтобы не завершить уборку, например, под диваном), но обязательно
сперва возвращается в ту комнату, откуда начал уборку (о навигации по
комнатам - см. ниже).

Базу находит по инфракрасному. Когда он решает, что хочет на базу, он
продолжает штатно случайно тыняться (не переставая убирать - он вообще
убирает всегда, когда ползает), пока не попадёт в её навигационный
луч. Тогда по лучу идёт на парковку. В видео парковки можно увидеть:
где-то на 12 секунде он тычется в стену, чуть поворачивается, начинает
ехать от неё и практически сразу вдруг сбавляет скорость. Вот это
сбавление скорости - это он почуял базу. Дальше он мучительно пытается
к ней придти :)

Надо сказать, что этот столик (с которым в видео парковки он долго
мучается, пытаясь обойти его не с той стороны) - особо подлое
препятствие: через него инфракрасное проходит, а проехать нельзя :)
Но, что радует, хоть и мучительно (приведённое видео - один из самых
неудачных походов на базу), но он всегда добивается своего. Ведь
по-хорошему, мне совершенно неинтересно, сколь тернист был его путь.
Главное чтобы к моему приходу домой припарковался и заряжался.

Работать без подзарядки, говорят, может ~2.5 часа. С учётом того, что
нашу комнату он выдраивает где-то за час, я ещё ни разу не видел,
чтобы у него кончался заряд. Разве что когда принесли, всё чего я от
него "из коробки" добился - это он с криками "ой, голодно мне" дополз
до базы и присосался :) Я не стал его беспокоить. У него даже
реализовано поддержание боевого духа в аккумуляторе: иногда (ещё не
видел, описываю по мануалу), если его долго не трогать и он видит, что
до ближайшего выезда по расписанию времени вагон, он проделывает цикл
полной разрядки-зарядки аккумулятора. При этом мигает особым образом,
сигнализируя, что этот процесс лучше не прерывать.

Он гудит. Наверное, тише, чем современный нормальный (достаточно
мощный) пылесос но тут разница в том, что пылесос гудит, когда ты им
пылесосишь. То есть занят этим процессом. А когда ты занят своими
делами, а эта штука пол часа путается под ногами и гудит - за пол часа
достаёт. И именно в этом месте рулит шедалер (чтобы процесс происходил
по заданным дням в моё отсутствие).

Ещё бывают стенки/маяки. Это один и тот же девайс, на нём просто
переключатель режима. Оба они вещают прямо перед собой луч, который
пылесос не пересекает. В случае стены - вообще никогда, в случае маяка
- пока не уберёт эту комнату. Убрав комнату, пылесос спинговывается по
радио с нужным маяком, маяк высвечивает два навигационных
(инфракрасных) луча и по ним пылесос проходит в соседнюю комнату.
Подробно с картинками описано тут:

http://forums.irobot.com/irobothome/board/message?board.id=80&thread.id=5075

При этом пылесос запоминает свой путь через маяки по комнатам, чтобы
потом вернуться в ту комнату, откуда стартовал и пристыковаться к
базе, если там таковая есть.

У него есть датчики соударения с препятствием, инфракрасные датчики,
направленные вперёд (он на подъезде к предмету, если предмет
достаточно крупен, ощутимо сбавляет скорость, легонько в него
тыкается, затем разворачивается и уезжает дальше), инфракрасные,
направленные вниз (просекать, что он собирается прыгнуть, например, с
лестницы, и отказывать от такого суицида), датчики движения разного
рода (в принципе, он может застрять и тогда не биться головой об
стену, а перестать рыпаться и громко вопить, призывая хозяина),
датчики вращения щёток (чтобы зажевав туда, например, провод или
шнурки от ботинок, понять, что это не проглотить, повертев щётки в
другую сторону, выплюнуть бяку и спокойно работать дальше), уже
помянутый датчик грязи (у меня пока только гипотезы, как он работает,
но работает, зараза!) и ещё целая пачка датчиков самодиагностики.

Вот здесь можно посмотреть ролики о фичах:

http://www.irobot.com/hrd_right_rail/roomba_rr/roomba_560/Roomba560_rr_howitworks.html

На сколько я сейчас могу судить, ролики практически не приукрашивают -
всё действительно так и есть и работает. Отдельный рулез (см.
последний ролик) - это то, что он разбирается практически на 100% (и
эта процедура _предполагается_ к исполнению по необходимости простым
потребителем и описана в инструкции), состоит из грамотно продуманных
элементарных деталей. Все детали заменяемы, все продаются отдельно.

В общем, девайс очень грамотно устроен. Объясняется это очень просто:
"...iRobot (фирма-производитель) was founded in 1990 by Rodney Brooks,
Colin Angle and Helen Greiner after working in MIT's Artificial
Intelligence Lab." MIT - это многое объясняет :)

-- 
Erelen
http://melda.ru/
ICQ: 277178
