返回市场
ardupilot-mcp服务器沙箱

ardupilot-mcp服务器沙箱

作者:hfujikawa774 星标更新:2025-04-28

项目介绍

ArduPilot MCP Server Sandbox

ArduPilot 是一个与LLM集成,通过自然语言操作无人机的MCP服务器。
可以从MCP主机Claude DesktopCline访问。

alt text
https://youtu.be/y1WE1cDC54Y?si=iy6vdGl38aTRcFcF

运行环境(支持SITL测试)

  • ArduPilot (SITL 或 实机)
  • MAVLink 通信需在 tcp:127.0.0.1:5762 上监听
  • Python 3.10+

使用Mission Planner的模拟器

要轻松地尝试ArduPilot无人机的模拟,可以使用Mission Planner内置的模拟器。

  1. 安装Mission Planner
  2. 启动后,点击顶部菜单中的 模拟 按钮
  3. 在下一个界面中选择 多旋翼
  4. 点击对话框中的 稳定 按钮
  5. ArduPilot模拟器启动,并开始在 tcp:127.0.0.1:5762 上监听

alt text

设置步骤

  1. 准备Python环境

    • 推荐使用 Python 3.10+
    • 支持 Windows / macOS / Linux
  2. 安装可用工具

    pip install -r requirements.txt
    
  3. 手动启动确认MCP服务器

    python ardupilot_mcp_server.py
    

    如果显示「正在启动MCP服务器...」则设置完成。

与Cline的集成步骤

  1. 注册OpenRouter并获取API密钥
  2. 在VS Code中安装Cline扩展
  3. 在VS Code的 settings.json 中添加以下内容:
    {
    "cline.apiKey": "sk-xxxxxxx",
    "cline.apiBaseUrl": "https://openrouter.ai/api/v1",
    "cline.defaultModel": "deepseek/deepseek-chat-v3-0324:free",
    "cline.mcpServers": {
        "ardupilot-controller": {
        "command": "python",
        "args": [
            "${workspaceFolder}/ardupilot_mcp_server.py"
        ],
        "env": {
            "PYTHONPATH": "${env:USERPROFILE}\\.local\\lib\\python3.12\\site-packages"
        }
        }
    }
    }
    
    ※ 根据环境调整python路径和PYTHONPATH。

从Claude Desktop使用(GUI集成)

  1. 安装Claude Desktop

  2. 打开配置文件 claude_desktop_config.json

    对于Windows用户: C:\Users\{用户名}\AppData\Roaming\Claude\claude_desktop_config.json

  3. 添加以下内容:

    {
        "mcpServers": {
            "ardupilot-controller": {
            "command": "python",
            "args": [
                "C:/Users/your-user-name/path/to/ardupilot_mcp_server.py"
            ],
            "alwaysAllow": [
                "arm",
                "disarm",
                "takeoff",
                "change_mode"
            ]
            }
        }
    }
    

    ※ 根据环境调整路径。

  4. 重启Claude Desktop

可用的MCP工具列表

命令说明
arm()使机体处于待命状态
disarm()解除机体的待命状态
takeoff(altitude=10.0)起飞至指定高度
change_mode(mode="GUIDED")更改飞行模式

操作示例(聊天中的操作)

可以通过与Cline或Claude Desktop对话,以自然语言方式控制ArduPilot:

  • 「使ArduPilot处于待命状态」
  • 「起飞到10米高」
  • 「切换到GUIDED模式」
  • 「解除ArduPilot的待命状态」

※ 自然语言会根据MCP服务器注册的工具自动转换。