使用说明
项目简介
MAVLink MCP服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,专门设计用于与 MAVLink 协议兼容的无人机(如运行 PX4 软件的无人机)进行交互。它充当 LLM 客户端和无人机系统之间的桥梁,通过标准化的 MCP 接口,使得 LLM 能够安全、可扩展地获取无人机上下文信息并执行控制指令。
主要功能点
- 无人机连接管理: 负责与 MAVLink 无人机建立和维护连接。
- 工具注册与执行:
- 'arm_drone': 解锁无人机电机,准备起飞。
- 'get_position': 获取无人机的经纬度、海拔高度等位置信息。
- 'move_to_relative': 控制无人机相对于当前位置进行左右、前后、高度和偏航的相对移动。
- 'takeoff': 控制无人机起飞到指定高度。
- 'land': 控制无人机在当前位置降落。
- 'print_status_text': 获取并返回无人机状态文本信息。
- 'get_imu': 获取无人机IMU(惯性测量单元)数据。
- 'print_mission_progress': 获取并返回无人机任务执行进度。
- 'initiate_mission': 上传并启动预设的飞行任务,支持定义多个任务点。
- 'get_flight_mode': 获取无人机当前的飞行模式。
- 上下文管理: 通过 MCP 协议的上下文机制,为 LLM 提供无人机的实时状态和控制接口。
安装步骤
- 克隆仓库
git clone https://github.com/ion-g-ion/MAVLinkMCP.git cd MAVLinkMCP - 安装依赖
确保已安装 Python 3.10 或更高版本。
pip install -r requirements.txt
服务器配置
MCP 客户端需要配置以下信息以连接到 MAVLink MCP 服务器。配置为 JSON 格式,'server name' 可自定义,'command' 和 'args' 必须与服务器启动命令一致。
{ "server name": "mavlink_mcp", "command": "python", "args": ["src/server/mavlinkmcp.py"] }
参数说明:
- 'server name': MCP 服务器的名称,客户端用于识别和连接。可以自定义。
- 'command': 启动 MCP 服务器的命令,这里使用 'python' 解释器。
- 'args': 启动命令的参数列表,指向服务器脚本 'src/server/mavlinkmcp.py'。
环境变量 (可选) 服务器启动时可以设置以下环境变量来配置 MAVLink 连接:
- 'MAVLINK_ADDRESS': MAVLink 连接地址,默认为空,通常用于指定地面站的IP地址或主机名。
- 'MAVLINK_PORT': MAVLink 连接端口,默认为 '14540'。
如果你的无人机地面站运行在本地默认端口,则无需设置环境变量。如果需要连接到特定的地面站地址和端口,可以设置这两个环境变量。例如,在运行服务器之前,可以执行:
export MAVLINK_ADDRESS="192.168.1.100" export MAVLINK_PORT="14550"
基本使用方法
-
启动 MCP 服务器 在终端中,进入仓库根目录,运行以下命令启动 MCP 服务器:
python src/server/mavlinkmcp.py或使用 'uv run' 启动:
uv run src/server/mavlinkmcp.py服务器成功启动后,将开始尝试连接到 MAVLink 无人机。查看日志信息以确认连接状态。
-
配置并运行 MCP 客户端 仓库中提供了 'example_agent.py' 作为示例客户端。你需要安装 'mcp_agent' 和 'fastagent' 库才能运行客户端。
pip install mcp-agent fastagent在运行 'example_agent.py' 之前,如果示例客户端中使用了 OpenAI 的功能(尽管示例代码本身没有直接使用,但 'fastagent' 框架可能需要),请确保设置了 OpenAI API 密钥环境变量。
然后,运行示例客户端:
python example_agent.py示例客户端将连接到已启动的 MAVLink MCP 服务器,并演示如何通过 'human_input' 工具与服务器交互控制无人机。你可以根据 'example_agent.py' 的代码,构建更复杂的 LLM 客户端应用,利用服务器提供的工具来控制和监控无人机。
注意:
- 确保你的无人机已连接到地面站,并且地面站与运行 MCP 服务器的计算机在同一网络中。
- 首次使用可能需要配置 MAVLink 连接参数,例如地面站地址和端口。
- 使用无人机控制工具时,请务必在安全和可控的环境中进行,并遵守当地的无人机飞行法规。
信息
分类
桌面与硬件