Неожиданное расскажу.
Мы делаем роботизированную котоняню! Это отдельное направление SML Robotix, которое будет именно b2c заниматься. Есть еще b2b, там роботы погрузчики, роботы официанты и тд.
Идея простая: чтобы можно было уехать на недельку и оставить кошку дома, а котобот будет её кормить, следить за водой, убирать лоток, играть с ней и даже разговаривать голосом хозяина. 🔥
Вообще изначально мы хотели делать полноценного домашнего робота-ассистента. Но довольно быстро поняли, что замахнулись на очень большую задачу. И решили в прямом и переносном смысле потренироваться на кошках.
Котобот получается раза в три меньше полноразмерного домашнего робота, дешевле и решает гораздо более узкий набор задач. Но самое интересное — технологически внутри почти всё то же самое.
Он должен сам ездить по квартире и строить её карту через LiDAR: понимать, где кухня, где комната, где стоит миска и где последний раз видел кота.
Для этого используем ROS2, SLAM и Nav2 — примерно тот же стек, который используется в нормальной мобильной робототехнике.
Зрение — камера + YOLO. Робот должен отличать кота от миски, кружки или тапка, видеть человека, воду на полу, дым и огонь. Причём мало просто сказать «я вижу кота». Нужно привязать объект к карте квартиры и дальше с ним что-то сделать.
Например, команда «найди кота» превращается примерно в такую цепочку:
объехать комнаты → найти кота камерой → понять, где он находится → подъехать на безопасное расстояние → сделать фото → прислать хозяину: «Кот найден, спит в спальне».
Отдельная большая история — мозги.
Голосовая команда распознаётся локальным Whisper, дальше LLM понимает, что человек хочет сделать, но LLM специально не может напрямую управлять моторами.
То есть никакого:
— поверни левый двигатель на 80%;
— хорошо, хозяин!
LLM может только выбрать заранее разрешённый навык типа
find_cat, feed_cat или go_to_room и передать параметры через ExecuteSkill. Дальше отдельный policy/safety-слой решает, можно ли вообще это сейчас выполнять.Это важно, потому что даже маленький робот с манипулятором — всё-таки физическая штука, которая ездит рядом с животным и людьми. Поэтому там куча ограничений: аварийная остановка, watchdog, лимиты скорости, запрет движения при потере локализации, отдельные политики поведения рядом с котом и человеком.
Причём мы немного упоролись даже в информационную безопасность :)
ROS2-сеть хотим закрывать через SROS2, команды между основным компьютером и ESP32 — проверять по sequence/checksum, навыки — только из whitelist, параметры от LLM — через строгую JSON-схему. Если связь с управляющим компьютером потерялась, контроллер должен сам обнулить приводы.
Есть ещё проблема приватности. Робот постоянно находится дома, а значит потенциально видит вообще всё.
Поэтому видео, распознавание объектов, голоса и карта квартиры по задумке обрабатываются локально.
Камеру и микрофон можно физически обесточить отдельным тумблером. Wi-Fi — тоже. В облачный LLM отправлять только текст, а если когда-нибудь понадобится отправить изображение в VLM — сначала обфусцировать людей.
Железо пока тоже вполне настоящее: Orange Pi 6 Plus с NPU на 28,8 TOPS, ESP32 для низкоуровневого управления, LiDAR, камера, IMU, мотор-колёса, аккумулятор и манипуляторы. Основной стек — Ubuntu 24.04 + ROS2 Jazzy.
Но пока важная оговорка: это всё ещё ранний R&D.
Мы идём по принципу simulation first. Сначала собираем цифрового двойника в Gazebo, учим его ездить, строить карту, распознавать объекты и выполнять навыки. И только после этого переносим всё на физического робота.
Поэтому кот пока может спать спокойно :)