Что может быть общего у умного пылесоса, автомобиля с автопилотом, смартфона и VR-гарнитуры для смешанной реальности? На первый взгляд — ничего, но если присмотреться к одному конкретному аспекту, окажется, что общего куда больше, чем кажется. Все эти устройства умеют строить карту окружающего пространства, а некоторые — пылесос и автомобиль — способны ещё и передвигаться по такой карте. Понимать своё окружение таким устройствам помогает датчик глубины — ToF или LiDAR. Он стоит в современных смартфонах, в некоторых умных пылесосах, а также — в том или ином виде — в VR-гарнитурах для смешанной реальности.
Вопрос в том, как именно эти устройства видят и запоминают мир вокруг себя и как они этим пользуются. Ответ будет разным для разных категорий устройств. В этой статье речь пойдёт об автономных роботах — не в смысле искусственного интеллекта, восставшего против человечества, а в самом практическом смысле: это умные пылесосы, автомобили с автопилотом, четвероногие роботы вроде Spot от Boston Dynamics — то есть устройства, способные распознавать местность вокруг себя и осуществлять навигацию без участия человека.

Три составляющих ориентирования робота
Ориентирование любого робота на местности — будь то автомобиль или пылесос — складывается из трёх основных элементов.

Первый — восприятие: то, как и с помощью каких датчиков робот получает информацию об окружающем мире. Второй — локализация: определение собственного местоположения робота в пространстве. Третий — картирование: непосредственно построение карты местности. Разберём каждый из этих элементов по порядку.
Восприятие: глаза и уши робота
Датчики восприятия — это, по сути, глаза и уши робота: именно они собирают информацию об окружении. Их можно разделить на две большие категории — камеры и датчики глубины.

Любому автономному роботу необходимо понимать, на каком расстоянии от него находится препятствие и какого оно размера. Обычные камеры переносят окружающий мир на плоскость в виде фотографии или видео, а по плоскому изображению крайне сложно точно оценить настоящие размеры объектов в кадре и расстояние между ними. Поэтому для определения размеров и дистанций используются отдельные сенсоры глубины — лидары и ToF-датчики. Подобную деталь можно заметить на автомобилях с системами помощи водителю или на умных пылесосах — например, на модели Dreame L10s Ultra.

Важное уточнение: лидар (LiDAR) и ToF-датчик (Time of Flight) — вещи разные, хотя сегодня их нередко считают взаимозаменяемыми. И то и другое используется для определения расстояния от датчика до объекта путём измерения времени, за которое свет долетает до объекта и возвращается обратно, — по принципу, схожему с работой эхолота. Схоже и происхождение названий: LiDAR расшифровывается как Light Detection and Ranging — «обнаружение и определение дальности с помощью света», а ToF — Time of Flight, «время полёта», то есть определение дальности по времени, затраченному светом на путь туда и обратно. Разница между ними в том, что лидар для измерений использует полупроводниковый лазер, а ToF-датчик — инфракрасное излучение.

Поскольку именно лидары используются в автономных роботах, дальше речь пойдёт в основном о них. Стоит лишь отметить, что ToF-датчики дешевле в производстве и компактнее, что позволяет использовать их в небольших устройствах, — но у них есть и недостатки: они медленнее, менее точны и сильнее подвержены помехам, чем лидары. В смартфоне это не критично, а вот если ошибётся с позиционированием пылесос или тем более целый автомобиль, последствия могут быть куда серьёзнее.
Как устроен лидар
В основе лидара лежит лазер — тема, безусловно, для отдельного большого разговора, поэтому здесь стоит сосредоточиться не столько на физике лазера, сколько на самом принципе его работы. С одной стороны, всё довольно просто: лазер испускает свет, тот отражается от поверхности и попадает в приёмник лидара. Расстояние до препятствия вычисляется так: скорость света умножается на время между запуском лазерного импульса и попаданием отражённого света в приёмник, а затем результат делится пополам — ведь свет проходит двойной путь, туда и обратно. Одним таким импульсом можно быстро и точно измерить расстояние до конкретной точки.

Сложность в другом: сам по себе лазерный луч не движется и способен сканировать лишь одну и ту же точку пространства. Значит, луч нужно постоянно перенаправлять, чтобы охватить всю необходимую область. Если размеры устройства не ограничены, задача решается относительно просто: берётся лазер, отражающее зеркало и электродвигатель, поворачивающий это зеркало. За счёт вращения зеркала лидар последовательно охватывает всё пространство вокруг себя и впереди, формируя карту дальности.

Но для компактных устройств вроде умного пылесоса такую систему приходится значительно уменьшать — особенно по высоте, чтобы пылесос мог заехать, например, под кровать. Полностью избавиться от механики и зеркал не получается — эти элементы необходимы для работы лидара, — однако их можно уменьшить буквально до микроскопических размеров. Соответствующая технология называется МЭМС — микроэлектромеханические системы: устройства, объединяющие на одной кремниевой подложке механические, оптические и электрические компоненты микронного размера. МЭМС применяются не только в лидарах, но и во многих других датчиках — например, в акселерометрах и гироскопах.

Внутри лидара с такой системой расположены сам лазер и несколько крошечных зеркал размером в единицы микрометров. Эти зеркала способны немного сдвигаться, изменяя угол, под которым лазер излучает свет, — это заметно расширяет поле зрения датчика. Однако одного этого недостаточно для эффективной навигации, поэтому в помощь такой системе устанавливается ещё и небольшой электродвигатель — именно поэтому лидар на роботах-пылесосах постоянно вращается. Такая система в целом позволяет автономному роботу точно оценивать расстояние до препятствий вокруг себя.
Что лидар не умеет
При всех своих достоинствах лидар, как и любой ToF-датчик, не распознаёт узоры, разметку и вообще какие-либо цвета — для него любой объект — это просто препятствие, «стена». Поэтому для более полного понимания окружающего мира вдобавок к лидару могут использоваться камеры. Правда, их роль здесь скорее вспомогательная: камеры применяются не столько для обнаружения препятствий, сколько для распознавания конкретных объектов. Автомобилям с автопилотом камеры, например, необходимы для считывания сигналов светофора, дорожных знаков и разметки; умный пылесос может комбинировать данные с камеры и с лидара для более точного перемещения в пространстве.

Возникает закономерный вопрос: а нельзя ли обойтись одной камерой и нейросетью, которая будет распознавать препятствия по изображению, — и тем самым отказаться от сложного и недешёвого в производстве лидара? Не всё так просто. У камеры как основного датчика есть свои преимущества: она дешевле, с помощью линз можно менять уровень приближения и поле зрения, а ещё она различает цвета. Но у такого подхода немало и недостатков, которые в большинстве практических задач перевешивают плюсы. Камере необходимы сложные алгоритмы для распознавания объектов и расчёта глубины сцены, а значит, нужно как мощное «железо» — на уровне современных флагманских смартфонов, — так и ресурсы на разработку и обучение нейронной сети. Плюс ко всему, камера без вспомогательных датчиков попросту не работает в темноте. Поэтому для задач, не связанных напрямую с распознаванием объектов, лидары и другие датчики глубины пока остаются вне конкуренции.
Небольшая, но важная поправка: а как обстоят дела у Tesla?
Стоит отдельно остановиться на одном распространённом заблуждении, которое стоит прояснить. Автомобили с системами помощи водителю действительно часто оснащают лидарами — так поступают, например, в беспилотных проектах Waymo. Но именно электромобили Tesla — вопреки расхожему мнению — лидары как раз не используют.

Начиная с 2021 года компания последовательно отказалась сперва от радаров, а затем и от ультразвуковых датчиков, перейдя на систему, которую сама называет Tesla Vision, — она опирается исключительно на камеры и нейросетевую обработку изображений, без лидаров и радаров вовсе. Такое решение остаётся предметом серьёзных споров в индустрии: большинство конкурентов Tesla, включая Waymo, напротив, считают лидар необходимым элементом безопасной автономной навигации, а подход Tesla по-прежнему называют рискованным экспериментом. Так что если и приводить пример автомобиля с лидаром на борту, то это будут скорее беспилотники других компаний, а не машины Tesla.
Локализация: как робот понимает, где он находится
Второй элемент ориентирования робота на местности — локализация, то есть определение собственного положения в пространстве. На открытой местности эта задача решается сравнительно просто — с помощью GPS. Современные двухдиапазонные GPS-модули определяют местоположение с точностью до десятков сантиметров.

Иначе обстоят дела с умным пылесосом или любым другим роботом, работающим внутри помещения: сигнал GPS не проникает сквозь стены и другие непрозрачные препятствия, так что ориентироваться приходится иначе. Разберём это на примере умного пылесоса — для других типов роботов, работающих в помещении, общий алгоритм будет похожим.
Для начала роботу нужна точка отсчёта — объект или место, относительно которого будет отслеживаться его перемещение. Для умного пылесоса такой точкой обычно служит док-станция: именно от неё пылесос начинает движение и к ней же возвращается после уборки. Для отслеживания пройденного расстояния используется одометр — прибор, считающий количество оборотов колеса.

Зная радиус или диаметр колеса, можно рассчитать, какое расстояние проходится за один его оборот: длина окружности равна произведению числа π на диаметр, а эта длина и есть путь, который робот преодолевает за один оборот колеса. Одометр подсчитывает количество таких оборотов и на основе этого вычисляет пройденный путь. Кстати, в автомобилях принцип работы устроен точно так же. Повороты колёс фиксируются аналогичным образом: робот запоминает, на какое расстояние и на какой угол были повёрнуты колёса, — и для возвращения в исходную точку иногда достаточно просто пройти маршрут в обратном направлении, даже не имея карты окружающей местности.
Картирование: как робот строит карту
Если бы вас попросили нарисовать план собственной квартиры, вы, скорее всего, начали бы с контура — стен, — а затем добавили бы мебель внутри этого контура. Человеку легко на глаз отличить стену от предмета мебели, и от этого различия удобно отталкиваться, выстраивая карту «от большего к меньшему».
Для робота такой разницы не существует — и стена, и стул для него всего лишь препятствие, а охватить взглядом всё пространство сразу робот тоже не может. Поэтому роботы используют другой метод — SLAM (Simultaneous Localization and Mapping), то есть «одновременная локализация и построение карты». Название довольно точно раскрывает суть метода: локализацию мы уже разобрали выше, остаётся построение карты.

Для робота карта — это, по сути, база данных, складывающаяся из последовательных записей. Обнаружив препятствие, робот заносит в свою базу его местоположение относительно точки отсчёта и его размер. По мере дальнейшего исследования пространства эта база данных пополняется и в реальном времени визуализируется в виде карты. Если у робота есть возможность двигаться не только по горизонтали, но и по вертикали, он способен построить полноценную трёхмерную карту окружения — а значит, узнать не только длину и ширину препятствий, но и их высоту. Так, например, пылесос лучше распознаёт границы ковра или порога. Чем дольше робот исследует пространство, тем меньше «белых пятен» остаётся на итоговой карте.
Технологии, которые перестали быть фантастикой

Получается интересная история: технологии, которые ещё лет двадцать назад казались чем-то из области научной фантастики, сегодня встроены в самые обыденные вещи — умный пылесос или автомобиль. Из всего, о чём можно было подумать, именно бытовая робототехника стала наглядной демонстрацией того, как самые продвинутые разработки постепенно перебираются из лабораторий в повседневный быт.