Integrations
ros2-mcp-сервер
ros2-mcp-server
— это сервер на основе Python, который интегрирует протокол контекста модели (MCP) с ROS 2, позволяя помощникам ИИ управлять роботами через темы ROS 2. Он обрабатывает команды через FastMCP и работает как узел ROS 2, публикуя сообщения geometry_msgs/Twist
в тему /cmd_vel
для управления движением робота.
Эта реализация поддерживает такие команды, как «двигаться вперед со скоростью 0,2 м/с в течение 5 секунд и остановиться» с издателем /cmd_vel
с именем pub_cmd_vel
.
Функции
- Интеграция MCP : использует FastMCP для обработки команд от клиентов MCP (например, Claude).
- ROS 2 Native : работает как узел ROS 2, напрямую публикуя данные в
/cmd_vel
. - Управление на основе времени : поддерживает команды движения на основе длительности (например, движение в течение определенного времени и остановка).
- Асинхронная обработка : объединяет
asyncio
FastMCP с циклом событий ROS 2 для эффективной работы.
Предпосылки
- ROS 2 : дистрибутив Humble установлен и загружен.
- Python : версия 3.10 (требуется для совместимости с ROS 2 Humble).
- uv : Менеджер пакетов Python для управления зависимостями.
- Зависимости :
rclpy
: клиентская библиотека Python для ROS 2 (устанавливается вместе с ROS 2).fastmcp
: фреймворк FastMCP для реализации сервера MCP.numpy
: Требуется для типов сообщений ROS 2.
Установка
- Клонировать репозиторий :Copy
- Конфигурация версии Python : этот проект использует Python 3.10, как того требует ROS 2 Humble. Файл
.python-version
уже настроен:Copy - Зависимости проекта : Файл
pyproject.toml
настроен с необходимыми зависимостями:Copy - Создать УФ-среду :Copy
- Активируйте виртуальную среду :В начале командной строки вы увидитеCopy
(.venv)
, что означает, что виртуальная среда активна. - Установить зависимости :Copy
Конфигурация сервера MCP
Чтобы использовать этот сервер с Claude или другими клиентами MCP, вам нужно настроить его как сервер MCP. Вот как это настроить:
Для рабочего стола Клода
- Откройте настройки Claude Desktop и перейдите в раздел MCP-серверов.
- Добавьте новый сервер MCP со следующей конфигурацией:Важно : заменитеCopy
/path/to/ros2-mcp-server
на фактический путь к вашему репозиторию. Например, если вы клонировали репозиторий в/home/user/projects/ros2-mcp-server
, вы должны использовать этот путь. - Сохраните конфигурацию и перезапустите Клода.
Для Клайна (расширение VSCode)
- В VSCode откройте настройки расширения Cline, нажав на значок Cline на боковой панели.
- Перейдите в раздел конфигурации серверов MCP.
- Добавьте новый сервер MCP со следующей конфигурацией:Важно : заменитеCopy
/path/to/ros2-mcp-server
на фактический путь к вашему репозиторию, как в примере Claude Desktop. - Вы можете мгновенно включать/выключать сервер и проверять соединение непосредственно из интерфейса настроек Cline MCP без необходимости перезапускать VSCode или перезагружать расширение.
Использование
После настройки сервера MCP вы можете использовать Клода для отправки команд роботу:
- Пример команды : попросите Клода переместить робота вперед со скоростью 0,2 м/с в течение 5 секунд:Copy
- Прямое использование инструмента : Вы также можете использовать инструмент
move_robot
напрямую:Copy - Мониторинг тем ROS 2 : проверьте вывод темы
/cmd_vel
:Copy
Тестирование
- С помощью симулятора :
- Запустите симулятор, совместимый с ROS 2 (например, Gazebo с TurtleBot3):Copy
- Используйте Клода для отправки команд движения.
- Понаблюдайте за движением робота в Gazebo.
- Запустите симулятор, совместимый с ROS 2 (например, Gazebo с TurtleBot3):
- С настоящим роботом :
- Убедитесь, что ваш робот правильно настроен для подписки на тему
/cmd_vel
. - Используйте Клода для отправки команд движения.
- Робот должен двигаться согласно командам.
- Убедитесь, что ваш робот правильно настроен для подписки на тему
- Ожидаемый результат :
- Сервер регистрирует команды движения и команды остановки.
- Клод получает ответ типа:
"Successfully moved for 5.0 seconds and stopped"
.
Поиск неисправностей
- Ошибки ведения журнала ROS 2 : если вы столкнулись с ошибками каталога ведения журнала, убедитесь, что переменная среды
ROS_LOG_DIR
установлена в доступном для записи каталоге (например,/tmp
). - Несоответствие версий Python : убедитесь, что вы используете Python 3.10, так как ROS 2 Humble создан для этой версии.
- Ошибки подключения : если Клод сообщает об ошибках «Подключение закрыто», проверьте правильность конфигурации сервера MCP и установку всех зависимостей.
Структура каталога
Ограничения
- Отдельная тема : в настоящее время поддерживает
/cmd_vel
с сообщениямиTwist
. Расширьтеros2-mcp-server.py
для других тем или служб. - Базовые команды : В настоящее время поддерживает простые команды движения. Более сложные поведения потребуют дополнительной реализации.
Лицензия
Обратите внимание, что этот проект использует FastMCP , который лицензируется по Apache License 2.0. Условия этой лицензии также применяются к использованию компонентов FastMCP.
Благодарности
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Сервер на базе Python, который позволяет помощникам на основе искусственного интеллекта управлять роботами путем интеграции протокола контекста модели (MCP) с ROS 2, что позволяет использовать команды на естественном языке, которые преобразуются в движения робота через тему /cmd_vel.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol (MCP) integration that allows AI assistants to control Home Assistant devices by searching for entities and controlling devices through natural language commands.Last updated -10PythonMIT License
- AsecurityAlicenseAqualityAn MCP (Model Context Protocol) server that integrates with the ArgoCD API, enabling AI assistants and large language models to manage ArgoCD applications and resources through natural language interactions.Last updated -106PythonMIT License
- AsecurityAlicenseAqualityA server that enables AI assistants to execute terminal commands and retrieve outputs via the Model Context Protocol (MCP).Last updated -36PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server that allows AI assistants to interact with Prefect's workflow automation platform through natural language, enabling users to manage flows, deployments, tasks, and other Prefect resources via conversational commands.Last updated -4Python