项目简介
该项目是一个基于Model Context Protocol (MCP) 实现的服务器端应用,旨在连接大型语言模型 (LLM) 与ArduPilot无人机。通过此服务器,LLM客户端(如Claude Desktop, Cline等)能够通过标准化的MCP接口,以自然语言指令控制ArduPilot无人机的各项功能。
主要功能
本MCP服务器将ArduPilot的飞控指令抽象为一系列可以通过LLM调用的“工具”(Tools),包括:
- アーム (Arm): 解锁螺旋桨电机,准备起飞。
- ディスアーム (Disarm): 锁定螺旋桨电机,停止转动。
- 離陸 (Takeoff): 执行自动离陆到指定高度(默认为10米)。
- 模式変更 (Change Mode): 更改无人机的飞行模式,例如切换到GUIDED模式以便接受指令。
- 状态查询 (Get Status): 获取无人机当前アーム状态、飞行模式等信息。
这些工具允许LLM理解并执行复杂的无人机操作。
安装步骤
-
环境准备: 确保系统安装了Python 3.10或更高版本。同时需要有运行中的ArduPilot仿真环境(SITL)或连接了ArduPilot硬件的地面站(如Mission Planner)能够通过TCP端口 '127.0.0.1:5762' 接收MAVLink连接。
-
下载代码: 将该GitHub仓库代码下载到本地计算机。
-
安装依赖: 打开终端或命令提示符,进入项目代码所在的目录,运行以下命令安装所需的Python库:
pip install -r requirements.txt -
启动仿真 (如果使用SITL): 如果使用Mission Planner的内置模拟器,按照Mission Planner的指引启动一个多旋翼模拟器,它会自动监听 'tcp:127.0.0.1:5762' 端口。
-
手动启动服务器 (可选): 可以在终端手动运行以下命令来测试服务器是否正常启动:
python ardupilot_mcp_server.py看到“MCPサーバーを起動します...”的输出表示启动成功。
服务器配置 (供MCP客户端使用)
MCP客户端(如Cline, Claude Desktop等)需要知道如何启动并连接到这个MCP服务器。通常需要在客户端的配置中添加一个新的MCP服务器条目,指定服务器的名称以及启动它的命令行。
以下是配置所需的主要信息结构(具体格式取决于你的MCP客户端):
- 服务器名称 (Server Name): 为该MCP服务器指定一个识别名称,例如 "ardupilot-controller"。
- 启动命令 (Command): 指定用于运行服务器的可执行程序,例如 "python"。
- 命令行参数 (Args): 提供传递给启动命令的参数列表,例如包含服务器脚本的完整路径。示例中通常是 '["/path/to/your/ardupilot_mcp_server.py"]'。请将 '/path/to/your/' 替换为你实际存放脚本的路径。
- 环境变量 (Env, 可选): 可能需要设置特定的环境变量,例如 'PYTHONPATH',以便Python能找到安装的库。
- 允许调用的工具 (alwaysAllow, 可选): 某些客户端允许预先声明用户总是允许调用的特定工具列表,例如 '["arm", "disarm", "takeoff", "change_mode"]'。这有助于减少交互确认。
请参考你的MCP客户端文档,将这些信息添加到对应的MCP服务器配置项中。
基本使用方法
配置好MCP客户端并连接到该服务器后,你可以直接在与LLM的对话中,使用自然语言指令控制ArduPilot无人机。LLM会识别你的意图,并通过MCP协议调用服务器提供的工具。
示例指令:
- “请将ArduPilotアーム。”
- “让飞机起飞到15米。”
- “切换无人机模式到GUIDED。”
- “ディスアーム无人机。”
LLM会根据你的指令,将这些自然语言转换为对MCP服务器工具的调用。
请注意,确保ArduPilot仿真或硬件已启动,并且服务器能够通过MAVLink端口连接上。
信息
分类
桌面与硬件