Как работает робот-пылесос
Робот-пылесос сканирует комнату лидаром, камерой или простыми датчиками, строит по этим данным карту и маршрут, а затем едет по нему и одновременно всасывает мусор турбиной со щётками.
Робот-пылесос убирает пол за счёт связки трёх систем, которые работают одновременно: датчики считывают пространство вокруг, процессор превращает эти данные в маршрут, а рабочий узел с турбиной и щётками собирает мусор. Сначала устройство осматривается лидаром, камерой или набором простых датчиков, затем строит внутреннюю карту помещения и прокладывает по ней маршрут, и только потом едет, одновременно всасывая пыль и счищая её вращающимися щётками. Чем точнее первый шаг, тем меньше пропущенных мест и повторных проходов по уже убранному участку.
Как робот видит комнату
У большинства современных моделей на крышке стоит вращающаяся башенка - это лидар, лазерный дальномер. Он непрерывно посылает короткие световые импульсы во все стороны по кругу и замеряет, через сколько времени луч вернётся, отразившись от стены, ножки стула или дверного косяка. По задержке возврата луча процессор вычисляет расстояние до препятствия в каждом направлении, и за один оборот башенки набирается целое кольцо таких замеров. Пока робот едет по комнате, кольца замеров с разных точек складываются друг с другом, и из них постепенно получается план помещения.
Кроме лидара, на корпусе почти всегда стоит набор датчиков попроще: инфракрасные пары на бортах и снизу ловят близкие препятствия и край ступеньки, датчик удара на переднем бампере фиксирует лёгкое касание мебели, а колёсные энкодеры считают обороты колёс и позволяют прикинуть, на сколько сантиметров робот уже проехал и куда развернулся. Ни один датчик по отдельности не даёт полной картины: лидар видит контуры, но не различает цвет пола и провод от плинтуса, бампер чувствует препятствие, только когда уже в него упёрся. Работает именно сочетание сигналов, а не один прибор.
Лидар и построение карты
Построение карты по данным лидара называется одновременной локализацией и картографированием - в инженерной литературе этот процесс обозначают аббревиатурой SLAM. Суть в том, что робот решает сразу две задачи одним и тем же потоком данных: понять, где он сейчас находится, и одновременно дорисовать план помещения, которого ещё не видел. Это взаимно связанные вещи: чтобы верно положить новый кусок карты, нужно точно знать собственное положение, а чтобы уточнить собственное положение, нужно сверяться с уже нарисованной картой.
На практике это выглядит так. Робот делает круг лидаром, получает набор точек - контур стен и мебели с текущей позиции. Затем он немного проезжает вперёд и снова делает круг. Новый набор точек почти совпадает со старым, но чуть сдвинут - алгоритм ищет это совпадение и по сдвигу понимает, на сколько сантиметров и в какую сторону робот реально переместился, что не всегда совпадает с показаниями одних только колёсных энкодеров, потому что колёса могут проскальзывать на гладком полу или ворсистом ковре. Совмещая множество таких снимков, процессор постепенно достраивает единый план: стены, дверные проёмы, крупная мебель, зоны с коврами. Готовая карта хранится в памяти устройства и при следующей уборке уже не строится с нуля, а лишь уточняется, если что-то в комнате переставили.
Модели без лидара - камеры и метки на потолке
Часть роботов обходится без вращающегося лазерного дальномера и ориентируется по камере, направленной вверх, в потолок. Способ основан на том, что потолок и верхняя часть стен почти всегда неподвижны и дают устойчивый узор из светильников, углов и границ мебели. Пока робот едет, камера снимает эту картину десятки раз в секунду, и по тому, как узор сдвигается в кадре, алгоритм считает пройденное расстояние и направление поворота - похожий принцип используется в оптических компьютерных мышах, только там подложкой служит стол, а не потолок.
У такого подхода есть слабое место: в темноте или при очень низком потолке без выраженных ориентиров картинка становится однообразной, и робот теряет уверенность в своём положении. Поэтому камерная навигация часто дополняется теми же инфракрасными и ударными датчиками по бортам, а в моделях подороже - ещё и отдельной фронтальной камерой, которая распознаёт крупные препятствия на полу и объезжает их заранее, а не после столкновения.
Простые модели - хаотичное движение без карты
Самые недорогие роботы вообще не строят карту и не помнят, где уже проехали. Они движутся почти вслепую: едут прямо, пока не упрутся в препятствие бампером или не поймают его инфракрасным датчиком, затем разворачиваются на случайный угол и снова едут прямо. Такой способ иногда называют хаотичным обходом - со стороны кажется, что робот мечется по комнате без всякой системы, и отчасти это правда.
Логика в этом всё же есть: теория вероятности постепенно вытягивает такое случайное блуждание в достаточно равномерное покрытие площади, если дать роботу довольно много времени и он не забился в угол за диваном. Но у хаотичного обхода есть очевидная плата - он менее предсказуем, чаще проезжает по одному и тому же месту по нескольку раз, а какие-то углы может не задеть вовсе за один цикл уборки. Именно поэтому модели с лидаром или камерой убирают заметно быстрее при том же размере комнаты: они не тратят время на повторные проезды по уже чистому полу.
Как робот выбирает маршрут уборки
Когда карта помещения готова, у робота появляется выбор стратегии. Самый распространённый способ - деление площади на прямоугольные зоны и уборка каждой зоны параллельными полосами, как косят траву газонокосилкой: проехал в одну сторону, сдвинулся на ширину щётки, проехал в обратную. Такой рисунок даёт минимум пропусков и наименьшее число лишних разворотов.
Вдоль стен и вокруг мебели полосовой рисунок не работает - там робот переключается на объезд по контуру, держась вплотную к плинтусу, чтобы забрать пыль из угла, куда полосовой проезд не достаёт. Некоторые модели дополнительно распознают сильно загрязнённые участки по звуку, который выдаёт всасываемый мусор, ударяясь о датчик в воздуховоде, и задерживаются там на несколько лишних проходов. После завершения всех зон робот сверяет карту с фактически пройденным маршрутом и, если находит белые пятна, отдельно возвращается к ним перед тем, как ехать на базу.
Готовую карту можно открыть в приложении на телефоне и разметить вручную: назвать комнаты, провести виртуальную границу там, где робот не должен проезжать, или, наоборот, отправить его убирать только одну выбранную зону, не трогая остальную квартиру. В квартирах с несколькими этажами или разными зданиями робот способен хранить сразу несколько отдельных карт и переключаться между ними, если его переносят с этажа на этаж вручную - без этого при каждом переезде на новый этаж пришлось бы заново строить карту с нуля.
Всасывание и щётки - что происходит внутри
Строительство маршрута решает, куда ехать, но саму уборку делает механическая часть. В днище корпуса стоит турбина - компактный электромотор с крыльчаткой, которая создаёт разрежение воздуха под роботом, и сор вместе с воздушным потоком затягивается внутрь через узкую щель. Дальше воздух проходит через пылесборник, где пыль оседает на фильтре, а очищенный воздух выходит наружу через решётку - принцип тот же, что и в обычном напольном пылесосе, только турбина заметно меньше и слабее из-за ограничений по весу и энергопотреблению батареи. Подробно устройство всасывающего узла разобрано в статье как работает пылесос.
Сама по себе тяга турбины плохо справляется с мусором, который прилип к полу или забился в ворс ковра, поэтому почти у всех моделей снизу стоит главная щётка - вращающийся валик с щетиной или резиновыми лопастями, который механически счищает пыль и шерсть с поверхности и подгоняет их к щели всасывания. По бокам корпуса добавляют одну или две боковые щётки на длинных тонких лучах: они выметают мусор из-под плинтуса и от стены в зону действия главной щётки и всасывания, потому что сама турбина туда бы не дотянулась.
Как робот справляется с разными поверхностями
Твёрдый пол и ковёр требуют разной мощности всасывания: на ламинате достаточно умеренной тяги, а на ворсистом ковре пыль и шерсть держатся крепче, и без увеличения оборотов турбины робот просто проедет по грязному месту, не забрав мусор. Датчики под корпусом или в колёсах фиксируют изменение нагрузки на мотор при заезде на ковёр и автоматически поднимают мощность всасывания, а заодно приподнимают главную щётку, чтобы она не увязала в ворсе.
Отдельная проблема - перепады высоты. Порог между комнатами, край коврика или плитка с рельефным швом создают небольшую ступеньку, и колёса с независимой подвеской должны её преодолеть, не потеряв сцепления и не застряв бампером. У большинства моделей высота такого порога ограничена нескольких сантиметрами - выше корпус просто не переедет и развернётся в поисках другого пути.
Почему робот застревает
Застревание почти всегда происходит в одном из трёх сценариев. Первый - длинные гибкие предметы вроде проводов от зарядки, кистей ковра с бахромой или шнурков: они не создают достаточного сопротивления, чтобы бампер их распознал как препятствие, зато легко наматываются на вращающийся валик главной щётки или на ось колеса, и мотор глохнет от перегрузки. Второй сценарий - тёмные и глянцевые полы: инфракрасные датчики обрыва определяют край ступеньки по отражённому лучу, а тёмная блестящая поверхность поглощает или странно рассеивает этот луч, и робот иногда либо принимает обычный тёмный пол за пропасть и отказывается на него заезжать, либо, наоборот, не различает настоящий край лестницы и рискует съехать вниз, если производитель не подстраховался запасным датчиком.
Третий сценарий - низкие зазоры под мебелью. Кровать или диван с просветом чуть выше корпуса робота выглядят проходимыми, но стоит роботу заехать чуть глубже под конструкцию с перекладиной или ножкой другой высоты, и он может упереться крышкой в раму, потеряв возможность развернуться в тесном пространстве. Именно поэтому в инструкциях к роботам-пылесосам обычно советуют убирать провода с пола и на первых уборках проверять новую комнату вручную, отмечая зоны, которые стоит закрыть виртуальной границей через приложение.
Как робот находит дорогу к базе и заряжается
Когда уборка закончена или заряд батареи опускается ниже определённого порога, робот прекращает уборку и едет на базу самостоятельно. Найти дорогу помогает та же внутренняя карта: зная своё текущее положение и координаты станции, процессор прокладывает кратчайший путь назад, а не блуждает в её поисках вслепую. На последних метрах в дело вступает более точная система: зарядная станция излучает инфракрасный сигнал по определённому шаблону, и робот, поймав его датчиками на переднем бампере, доворачивает и подъезжает точно так, чтобы контакты на его корпусе совпали с контактами на базе.
После стыковки начинается обычная зарядка литий-ионного аккумулятора - устроен он по тому же принципу, что и батарея в мобильном телефоне, подробнее об этом можно прочитать в статье как работает аккумулятор телефона. Пока идёт зарядка, робот держит в памяти карту помещения и данные о том, какие зоны уже убраны, а какие остались, чтобы после подзарядки не начинать уборку заново, а вернуться ровно туда, где остановился. Если площадь квартиры больше, чем робот успевает пройти на одном заряде, он рассчитывает маршрут так, чтобы уехать на базу с ближайшего к ней края неубранной зоны, а не с противоположного угла комнаты.
Что робот-пылесос делает плохо и почему за ним нужно ухаживать
Даже самая аккуратная навигация не отменяет механических ограничений. Волосы и шерсть животных наматываются на ось главной щётки постепенно, слой за слоем, и если не снимать и не чистить щётку вручную хотя бы раз в одну-две недели, накопившийся жгут начинает подклинивать вращение так же, как и случайно попавший под робота провод - просто медленнее и незаметнее. Пылесборник и фильтр тоже забиваются: чем плотнее слой пыли на фильтре, тем слабее становится разрежение воздуха, которое создаёт турбина, и робот, формально проезжая по всей комнате, начинает хуже забирать мусор, хотя маршрут и мощность мотора не менялись.
Есть и вещи, которые устройство не умеет в принципе, а не просто делает хуже человека. Обычный робот-пылесос не поднимается по лестницам и не переезжает пороги выше определённой высоты - в таких квартирах его либо покупают по одному на этаж, либо заранее закрывают лестничный пролёт виртуальной границей через приложение. Влажная уборка, если она вообще предусмотрена моделью, работает как протирание пола влажной тряпкой под собственным весом корпуса, а не как замена швабре с усилием руки, поэтому засохшие пятна робот, как правило, не отмывает. Все эти ограничения - не брак и не ошибка навигации, а следствие того, что устройство физически небольшое, лёгкое и работает от батареи, а не от розетки с полной мощностью обычного пылесоса.