
Unitree Go2
STDIO通过大语言模型将自然语言转换为ROS2控制Unitree Go2机器人
通过大语言模型将自然语言转换为ROS2控制Unitree Go2机器人
The Unitree Go2 MCP Server is a server built on the Model Context Protocol (MCP) that enables users to control the Unitree Go2 robot using natural language commands interpreted by a Large Language Model (LLM). These commands are translated into ROS2 instructions, allowing the robot to perform corresponding actions.
You can find the list of functions in the MCPFUNCTIONS.md.
unitree_ros2
environmenthttps://github.com/unitreerobotics/unitree_ros2
Step 2: Connect and test
in the repository linked above.git clone https://github.com/lpigeon/unitree-go2-mcp-server.git cd unitree-go2-mcp-server
uv
Installationuv
, you can use the following command:curl -LsSf https://astral.sh/uv/install.sh | sh
or
pip install uv
uv venv source .venv/bin/activate
Set MCP setting to mcp.json.
Please keep in mind that the configuration must be done on the PC connected to the Go2.
{ "mcpServers": { "unitree-go2-mcp-server": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/unitree-go2-mcp-server", "run", "server.py" ] } } }
If you use Claude Desktop, you can find mcp.json using the following command:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
You can install Claude Desktop to use claude-desktop-debian.
code ~/.config/Claude/claude_desktop_config.json
code $env:AppData\Claude\claude_desktop_config.json
UNITREE_ROS2_SETUP_SH_PATH
.server.py
and change your UNITREE_ROS2_SETUP_SH_PATH
(eg. /home/lpigeon/unitree_ros2/setup.sh
)rosbridge
, you need Set IP and Port to connect rosbridge (Optional).server.py
and change your LOCAL_IP
, ROSBRIDGE_IP
and ROSBRIDGE_PORT
. (ROSBRIDGE_PORT
's default value is 9090
)Type the following command in the terminal.
ros2 topic list
You should see the following topic:
/wirelesscontroller
If you don't see the topic, check the connection between the Go2 robot and the network.
unitree-go2-mcp-server
.When you type a command like "It looks like the Go2 is getting tired," the LLM interprets this contextually — understanding that the robot might need a break or some form of stretching!
This task is a comprehensive demo task showcasing the Unitree Go2 robot's obstacle avoidance, direction changing, and user interaction capabilities.
Contributions are welcome!
Whether you're fixing a typo, adding a new function, or suggesting improvements, your help is appreciated.
Please follow the contributing guidelines for more details on how to contribute to this project.