개요
ROS MCP 서버는 사용자가 LLM을 통해 입력한 자연어 명령을 로봇 제어를 위한 ROS 명령으로 변환하는 기능 세트를 제공함으로써 로봇이 복잡한 작업을 수행하고 다양한 환경에 효과적으로 적응할 수 있도록 지원하도록 설계되었습니다. 또한, rosbridge 활용하여 ROS 및 ROS2 시스템 모두에서 작동하도록 구성되었으며, 웹소켓 기반 통신을 통해 다양한 플랫폼에서 폭넓게 활용할 수 있습니다.
이 프로젝트에 기반한 연구 내용은 아래 링크된 영상에서 확인할 수 있습니다.
Related MCP server: ROS2 MCP Server
지원되는 유형
geometry_msgs/트위스트
센서_메시지/이미지
센서_메시지/조인트상태
특징
WebSocket 기반의 범용 호환성 : ROS 및 ROS2 시스템 모두와 Rosbridge를 사용하여 통신하므로 ROS 버전에 관계없이 원활한 통합이 가능합니다.
크로스 플랫폼 지원 : Linux, Windows, MacOS에서 작동하므로 다양한 개발 및 배포 환경에 적합합니다.
LLM 및 AI 시스템과의 간편한 통합 : MCP 기능을 통해 자연어 명령을 로봇 동작으로 직접 번역할 수 있습니다.
확장 가능한 기능 세트 : MCP 도구 인터페이스를 확장하여 새로운 로봇 제어나 센서 기능을 쉽게 추가할 수 있습니다.
ROS 노드 수정 필요 없음 : 로봇의 핵심 코드를 변경하지 않고도 기존 ROS/ROS2 주제 및 서비스와 상호 작용합니다.
기본 ROS/ROS2 명령 호환성 : 선택적으로 로컬 ROS/ROS2 라이브러리 사용을 지원하므로 WebSocket 기반 제어와 함께 기본 ROS 명령 및 도구를 실행할 수 있습니다.
기여하다
기여를 환영합니다!
오타를 수정하든, 새로운 기능을 추가하든, 개선 사항을 제안하든, 여러분의 도움에 감사드립니다.
이 프로젝트에 기여하는 방법에 대한 자세한 내용은 기여 지침을 따르세요.
설치
Smithery를 통해 설치
Smithery를 통해 Claude Desktop에 ros-mcp-server 자동으로 설치하려면:
지엑스피1
로컬 설치
uv 설치
uv설치하려면 다음 명령을 사용하면 됩니다.
curl -LsSf https://astral.sh/uv/install.sh | sh또는
pip install uv가상 환경을 생성하고 활성화합니다(선택 사항)
uv venv
source .venv/bin/activateMCP 서버 구성
MCP 설정을 mcp.json으로 설정합니다.
"ros-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/ros-mcp-server",,
"run",
"server.py"
]
}Claude Desktop을 사용하는 경우 다음 명령을 사용하여 mcp.json을 찾을 수 있습니다.
맥OS/리눅스
code ~/Library/Application\ Support/Claude/claude_desktop_config.json윈도우
code $env:AppData\Claude\claude_desktop_config.jsonMCP 기능
MCPFUNCTIONS.md 에서 함수 목록을 찾을 수 있습니다.
사용 방법
1. 로스브릿지에 연결하기 위해 IP와 포트를 설정합니다.
server.py열고LOCAL_IP,ROSBRIDGE_IP,ROSBRIDGE_PORT변경하세요. (ROSBRIDGE_PORT의 기본값은9090입니다.)
2. 로스브릿지 서버를 실행합니다.
로오스 1
roslaunch rosbridge_server rosbridge_websocket.launch로오스 2
ros2 launch rosbridge_server rosbridge_websocket_launch.xml3. ros-mcp-server 가져온 AI 시스템을 실행합니다.
4. "로봇을 앞으로 움직이게 하세요."라고 입력하세요.
5. rosbridge_server 와 ros topic 확인하세요.
rosbridge_serverros topic
시뮬레이션 테스트
NVIDIA Isaac Sim 시뮬레이션 환경 내에서 MOCA 모바일 매니퓰레이터를 사용한 MCP 기반 제어.