Робопёс как железо: что внутри, как программировать и почему это не дрон

Разбираем робособаку изнутри — архитектура платформы, стек сенсоров, навигация роя и реальные кейсы охраны.

Обложка: Робопёс как железо: что внутри, как программировать и почему это не дрон

Допустим, вам нужно организовать охрану трубопровода длиной 400 километров или проинспектировать НПЗ с десятками корпусов, где в любом из них может быть утечка газа. Что вы выберете? Камеры на столбах не заглянут за угол, дрон висит 30–40 минут и летит заряжаться. Охранник-человек — дорого, медленно и небезопасно.

Именно в таких ситуациях вы, скорее всего, выберете робопса.

Денис, солюшн-архитектор Centicore Group, интегрирует такие платформы в реальные контуры охраны уже несколько лет. Работал с ЦОДами крупных компаний, интегрировал физическую безопасность с IT-инфраструктурой. В статье — технический разбор того, как это устроено изнутри.

Это просто ещё один вид железа

Первое, что нужно понять: робопёс — не новый гаджет с китайской выставки и не военная игрушка из ролика Boston Dynamics — это мобильная аппаратная платформа. Четыре ноги с приводами, аккумулятор, бортовой компьютер и полезная нагрузка сверху. Если вы работали с embedded или IoT — сразу поймёте, о чём речь. Разница в том, что эта штука весит 30–50 кг, ходит по грязи, не боится ветра и умеет открывать двери.

Это просто ещё один вид железа, который мы используем в общем контуре охраны. Такой же, как поворотная камера или датчик движения на заборе. Только этот датчик умеет бегать.

Есть ещё роверы — колёсные платформы. Они проще, дешевле и надёжнее на ровном асфальте. Но собака — это вездеход. Там, где ровер застрянет, четырёхногая платформа пройдёт.

Зачем вообще нужны робособаки, если есть камеры и дроны

Робопсы проверяют оборудование, ищут утечки, считывают показания датчиков в труднодоступных местах. Камера слишком статична, дрон может показаться альтернативой, но у него есть технические ограничения:

  • аптайм 30–40 минут, потом на базу заряжаться
  • не работает в метель и сильный ветер
  • не умеет двигаться в помещениях
  • не умеет открывать двери

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

Что внутри — архитектура платформы

Платформа состоит из нескольких слоев, рассмотрим их снизу вверх:

Механика и ядро. Четыре ноги с шарнирными приводами, аккумулятор, бортовой компьютер. Биомеханика шарниров списана с животных — отсюда устойчивость на неровном рельефе. Перёд и зад у современной собаки отличаются только расположением датчиков, двигаться она может в любую сторону.

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

API наружу. Выше ядра — прикладной уровень. Сюда пишут свой софт через API: сценарии патрулирования, интеграция с камерами, логика поведения, кастомное взаимодействие с навесным оборудованием.

MDM-сервер. Деплой выглядит знакомо:

  1. Получить, распаковать, протестировать
  2. Занести на объект, подключить к серверу управления
  3. Сервер разливает апдейты и прикладные приложения, доставляет драйверы если нужно
  4. Подключает к диспетчерскому контуру, раздает задания

Модуль патрулирования идёт из коробки. Кастомная логика деплоится поверх через тот же сервер.

Закрытый контур. Перед вводом в работу ИБ закрывает порты, блокирует отправку данных вовне, отрубает облачные сервисы производителя, отключает 4G-модем если есть. Робот работает в изолированной сети.

Стек сенсоров

Каждый сенсор в стеке закрывает слепое пятно предыдущего, вот как это выглядит:

  • Камеры — от одной спереди до восьми по периметру. Основная задача — видеоаналитика и логирование. Собака пишет стереозвук, видео и системные логи непрерывно. Это нужно для доказательной базы: записи поднимают в суде.
  • Лидар — почти всегда есть хотя бы базовый. Строит 3D-карту окружения, детектирует препятствия. Ограничение: плохо работает с водой, стеклом, полиэтиленом.
  • Сонар — добавляют именно из-за ограничений лидара. Робот с сонаром не пробегает через стеклянные витрины.
  • Радар — на дорогих платформах. Пробивает листву, снег, проверяет плотность покрытия. Нужен, чтобы не наступить на то, на что наступать не надо, и быстрее двигаться по сложному рельефу.
  • GPS/ГЛОНАСС — для координат там, где нет помех. В помещениях и при работающих глушилках переключается на навигацию по лидару, камерам и гироскопам.
  • Радиомодем — основной канал связи. Сотовый и спутниковый встречаются реже. Собаки редко уходят дальше пяти километров от радиосети.
  • Микрофоны — для голосовых команд охраны и для логов. Свои на объекте знают голосовой стоп-код, собака его слышит.
  • Рука-манипулятор — идет в базовых комплектациях. Нужна для дверных ручек, кнопок, оборудования.

Как ориентируются и почему рой умнее одного робота

Если карта есть — она грузится с сервера в формате 3D-модели, дальше собака уточняет ее локально по данным всех сенсоров.

Если карты нет — собака движется по заданию и собирает данные сама. При широком канале отдает их в реальном времени, при узком — пишет локально и сбрасывает при возврате на зарядку.

Рой решает проблему охвата. Несколько собак в автономном режиме строят p2p-сеть и обмениваются картами, это не полные — упрощенные форматы: тут дерево упало, здесь новая яма. Одна собака с радиодоступом к центру работает мостом для другой собаки за горизонтом. Это стандартная mesh-топология, ничего нового.

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

Если что, ваш робот-пылесос делает то же самое в вашей же квартире.

При потере GPS — в ангаре, подвале или зоне глушения — навигация переходит на лидар и гироскопы, карта уже либо предзагружена, либо строится с нуля на месте.

Метель, стекло, лестница, стройка

Это раздел про то, где алгоритмы работают не так, как мы ожидаем.

Метель и мороз до -40°C

Тепла от процессора не хватает на обогрев платформы — мёрзнут шарниры, конкретно смазка в них. Нужен северный пакет: отдельный контур обогрева аккумулятора и подогрев шарниров. Такие конфигурации уже есть у нескольких производителей.

Если снег залепляет камеры и лидары, собака очиститься сама не может, поэтому решают это встроенными системами: подогрев стекла, ультразвуковая чистка через вибрацию.

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

Стеклянные двери и прозрачные поверхности

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

Плавать не умеют — тонут. Броды глубиной 30–70 см при защите IP68 проходят. Специальные версии — и водоемы покрупнее.

Лестница

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

Кусты и высокая трава

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

Стройка — отдельный разговор

Стройка — это хаос. Ландшафт меняется каждый час.

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

Что можно сделать через API, как взломать робопса

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

Что доступно через API:

  • сценарии патрулирования с кастомными маршрутами и триггерами
  • интеграция с внешними системами видеонаблюдения
  • кастомная логика поведения при обнаружении событий
  • управление навесным оборудованием — рукой, газоанализатором, динамиком
  • получение телеметрии в реальном времени
  • подписка на события: нарушитель, авария, низкий заряд, застрял

Но само ядро закрыто. Базовая биомеханика, safety-ограничения суставов, низкоуровневое управление ногами. Нельзя заставить робота прыгнуть выше, чем заложено механикой и нельзя программно сломать ноги — что правильно.

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

Логирование: зачем это нужно разработчику

Робот пишет всё непрерывно: видео, стереозвук, системные логи — это требование для работы на охраняемых объектах.

У нас было так: я грибник, просто гулял по ядерному объекту, а ваша собака ударила меня током. Поднимают запись: видно, что он лез через забор, игнорировал предупреждения и тащил мешок с медным кабелем.

С точки зрения архитектуры это стандартный append-only лог с временными метками. Видеопоток пишется локально на бортовой носитель, при возврате синхронизируется с сервером.

Вернёмся к трубопроводу на 400 километров из начала статьи.

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

Экосистема пока отстаёт от дронов на несколько лет. Ядро закрыто, стандартов нет, в гараже не соберёшь. Но задачи, которые закрывает четырёхногая платформа, дрон не закроет никогда.