MCP Tools для Reachy Mini: управление роботом через естественный язык | AiManual
AiManual Logo Ai / Manual.
28 Июн 2026 Инструмент

Добавление MCP Tools в Reachy Mini: говорим роботу «принеси кофе» и он делает

Полный гайд по интеграции MCP-инструментов в Reachy Mini: команды голосом, профили поведения, сравнение с ROS и REST API. Работает на реальном роботе.

Реклама
partv1

Робот, который понимает с полуслова — миф или уже реальность?

Reachy Mini от Pollen Robotics — штука крутая. Сервоприводы, камера, манипулятор, полный фарш. Но пока ты пишешь reachy.motion.set_angle(neck, 30), твой коллега уже заставил робота принести ему печеньку одной фразой. Разница — в MCP.

Model Context Protocol (тот самый USB-порт для ИИ) превращает робота в агентскую систему. Ты не программируешь движения — ты описываешь задачу. Нейросеть на борту (или рядом) выбирает нужный MCP-инструмент и дёргает его. В 2026 году это не эксперимент, а штатная фича прошивки Reachy Mini 2.4.

В отличие от классических ROS-пайплайнов, MCP не требует писать ноды для каждого жеста. Всё, что нужно — подключить MCP-сервер с инструментами управления роботом, и любой LLM-агент сможет ими воспользоваться.

Что добавляют MCP Tools в Reachy Mini

Коробочный Reachy Mini управляется через Python SDK или пульт. MCP-слой добавляет сверху абстракцию: ты не думаешь о градусах и углах, ты думаешь о намерениях. Мы реализовали три типа инструментов:

  • Движение и навигацияmove_to(x, y, theta), look_at(object_name), follow_person().
  • Манипуляцииgrasp(object_id), release(), place_on(surface).
  • Профили поведенияset_profile('explorer'), set_profile('guide'), set_profile('idle').

Профили — это предустановленные наборы параметров (скорость, жёсткость, зона внимания). Например, в профиле guide робот двигается плавно, реагирует на голос, обводит рукой объекты. В explorer — быстрее, постоянно сканирует пространство, игнорирует голос, пока не окликнешь громко.

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

Допустим, у тебя стоит локальный LLM-агент (собранный по нашему руководству без облака). К нему подключён MCP-сервер Reachy Mini через стандартный транспорт (SSE или stdio).

Пользователь говорит: «Принеси мне синюю кружку со стола».

Агент:

  1. Распознаёт речь (Gemma 4 + Whisper, если локально, или облачный API).
  2. Парсит намерение: найти синий объект, подойти к столу, взять, вернуться.
  3. Вызывает цепочку инструментов: look_for_color('blue')locate_object('cup')navigate_to(table)grasp(object_id)return_to(user).
  4. Каждый шаг — вызов MCP Tool с валидацией параметров. Если кружка не найдена — возвращает ошибку и запрашивает уточнение.

При этом смена профиля происходит автоматически: перед захватом агент переключает профиль на precision (снижает скорость, увеличивает жёсткость), а после — обратно на guide.

Техническая реализация: от слов к MCP-серверу

На борту Reachy Mini работает Python-процесс, который регистрирует инструменты через библиотеку mcp (версия 1.8.3 на июнь 2026). Выглядит это так:

from mcp import Server, Tool
from reachy_sdk import ReachySDK

reachy = ReachySDK('localhost')
server = Server('reachy-controller')

@server.tool(description='Плавно повернуть голову в указанную сторону')
def turn_head(direction: str, speed: float = 0.3):
    angles = {'left': -30, 'right': 30, 'center': 0}
    reachy.neck.roll.goal_position = angles.get(direction, 0)
    return f'Head turned {direction}'

server.run()

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

Не советую делать один гигантский инструмент «выполни команду». LLM-агенты работают лучше с атомарными, чётко описанными действиями. Разбивайте логику на шаги — это упрощает отладку и повышает надёжность.

Профили: как не дать роботу сойти с ума

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

ПрофильСкорость движенийЖёсткость сервCV FPSПример команды
guide0.3xlow15«Покажи, где выход»
explorer0.8xmedium30«Осмотри комнату»
precision0.1xhigh5«Возьми красный кубик»

Профиль можно переключить отдельным инструментом, а можно внедрить его в описание других инструментов (через MCP-промпты). Агент сам решает, какой профиль нужен, исходя из контекста.

💡
Один из наших читателей использовал profiles + MCP Tool Registry, чтобы автоматически подгружать профили для разных помещений. Робот сам выбирает «кухонный» или «офисный» набор параметров по QR-коду на стене.

Сравнение с альтернативами

На рынке есть три способа управлять Reachy Mini (и подобными роботами) через ИИ:

  • ROS + поведенческие деревья — классика, но требует написания Behaviour Tree XML. LLM туда не вставить без костылей. MCP проще: один сервер, один протокол.
  • Самодельный Voice-to-Action пайплайн — часто люди пишут свой парсер команд (услышал «иди» — вызвал move). Это не масштабируется. MCP даёт готовый интерфейс, поддерживаемый всеми современными LLM-фреймворками (LangChain, Vercel AI SDK и т.д.).
  • MCP для робота через OpenAI Function Calling — рабочий вариант, но требует постоянного интернета и платного API. Наш подход с локальным LLM (llama.cpp с MCP) полностью офлайн, что критично для промышленных задач.

Грабли, на которые мы наступили

Первая версия MCP-сервера для Reachy Mini была синхронной. LLM-агент ждал, пока робот доедет до точки, блокируя остальные вызовы. Пришлось переписать на asyncio и использовать send_progress() из MCP (добавлен в спецификацию 2025.2).

Вторая проблема — безопасность. Если LLM ошибётся и вызовет move_to() с невалидными координатами, робот может врезаться. Решение: валидация на сервере (ограничение рабочей области) и мягкие лимиты скорости в профиле по умолчанию.

Третья — латентность. Локальный LLM на Raspberry Pi 5 (который часто используют с Reachy) выдаёт токены медленно. MCP-сервер на самом Reachy работает быстро, но сетевой обмен с LLM (если он не на том же устройстве) добавляет задержку. Выход: запускать LLM на DGX Spark или другом NPU-ускорителе (собирали такого агента).

Кому это нужно (кроме гиков)

Интеграция MCP Tools в Reachy Mini полезна:

  • Разработчикам прототипов — не нужно писать бэкенд для каждой команды. Один MCP-сервер покрывает 90% сценариев.
  • Преподавателям робототехники — можно дать студентам задачу «научи робота реагировать на голос» без погружения в ROS.
  • Интеграторам — MCP легко стыкуется с CRM, календарями, Webex.
  • Ивент-компаниям — робот-экскурсовод переключает профили под разные экспонаты.

Любой, кто умеет писать Python на уровне «понимаю декораторы», осилит добавление нового инструмента. А если нужно больше — почти такой же подход работает для Spring-сервисов.

Совет напоследок

Не пытайтесь засунуть в MCP-инструмент всю логику управления роботом. Сделайте 5-10 атомарных инструментов, а агент пусть сам собирает из них цепочки. Для отладки цепочек используйте MCP Chat Studio v2 — это Postman для MCP, где можно пошагово проверить каждый вызов.

И да, через год такие штуки будут в каждом офисе. Начните сейчас, пока конкуренты пишут ROS-ноды.

Подписаться на канал