PX4-MCP
PX4自动驾驶仪的模型上下文协议
强大的集成,使大型语言模型(LLM)能够控制PX4动力无人机并与之交互,以执行高级自主任务。
概述
PX4-MCP通过为PX4自动驾驶仪提供标准化的模型上下文协议(MCP)接口,弥合了人工智能语言模型和自主飞行系统之间的差距。这使得LLM能够通过自然语言命令了解无人机的能力、计划任务并执行复杂的空中任务。
建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ │ │ │ │ │
│ LLM │◄──►│ PX4-MCP │◄──►│ PX4 Autopilot │
│ (Claude/GPT) │ │ Server │ │ │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ │
│ ROS2 Bridge │
│ MAVLink │
│ │
└─────────────────┘特性
- 自然语言任务规划:用简单的英语描述任务,并将其翻译成PX4命令
- 实时遥测:通过MCP访问无人机状态、位置、电池和传感器数据
- 安全第一设计:用于自主操作的内置安全检查和故障保护
- ROS2集成:与ROS2生态系统无缝集成,实现先进的机器人工作流程
- MAVLink通信:使用行业标准MAVLink协议与PX4自动驾驶仪直接通信
- 任务执行:通过自适应规划执行复杂的多航路点任务
- 传感器数据访问:实时访问摄像头馈送、激光雷达、GPS和其他传感器数据
支持的操作
飞行控制
- 起飞和降落顺序
- 路点导航
- 轨道和游荡模式
- 返回发射(RTL)
- 紧急停止和故障保护激活
任务规划
- 动态航路点生成
- 区域测绘和覆盖模式
- 搜救行动
- 视察团
- 交付和运输任务
数据收集
- 实时遥测流
- 传感器数据记录
- 图像和视频捕获
- 环境监测
先决条件
- PX4自动驾驶仪:最新稳定版本
- ROS2:谦逊的霍克斯比尔或更晚
- python:3.8或更高版本
- MAVLink:最新版本
- MCP-SDK:模型上下文协议实现
安装
# Clone the repository
git clone https://github.com/GrooveWJH/px4-mcp.git
cd px4-mcp
# Install dependencies
pip install -r requirements.txt
# Install ROS2 dependencies
rosdep install --from-paths src --ignore-src -r -y
# Build the project
colcon build
# Source the workspace
source install/setup.bash快速开始
1.启动PX4 SITL(软件在环)
cd ~/PX4-Autopilot
make px4_sitl gazebo-classic2.启动MCP服务器
python src/px4_mcp_server.py --config config/default.yaml3.连接您的LLM客户端
from mcp import Client
# Initialize MCP client
client = Client("px4-mcp://localhost:8080")
# Send a mission command
response = client.call("plan_mission", {
"description": "Take off, fly to GPS coordinate (47.6062, -122.3321), take photos, and return home",
"altitude": 50,
"speed": 10
})配置
创建配置文件 config/drone.yaml:
drone:
connection: "udp://:14540"
frame_id: "map"
safety:
max_altitude: 100 # meters
max_distance: 1000 # meters from home
low_battery_threshold: 20 # percent
ros2:
namespace: "/px4"
topics:
telemetry: "/fmu/out/vehicle_status"
position: "/fmu/out/vehicle_local_position"
mcp:
server:
host: "localhost"
port: 8080
tools:
- flight_control
- mission_planning
- data_collection安全注意事项
⚠️ 重要安全注意事项:
- 始终先进行模拟测试(PX4 SITL)
- 确保正确的故障保护配置
- 监控电池电量和天气状况
- 遵守当地航空法规
- 未经适当授权,不得飞越视线之外
- 始终准备好手动超控功能
示例用例
自主检查
mission = {
"type": "inspection",
"target": "building_facade",
"coordinates": [(lat1, lon1), (lat2, lon2)],
"altitude": 30,
"camera_settings": {
"resolution": "4K",
"overlap": 80
}
}搜救
mission = {
"type": "search_pattern",
"area": "polygon_coordinates",
"pattern": "lawnmower",
"sensors": ["camera", "thermal"],
"emergency_frequency": 121.5
}贡献
我们欢迎捐款!请看 贡献.md 作为指导方针。
开发设置
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest tests/
# Run linting
flake8 src/
black src/许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
支持
路线图
- \[\]先进的计算机视觉集成
- \[\]多无人机群协同
- \[\]与基于云的LLM集成
- \[\]实时路径规划优化
- \[\]与AirMap/UTM系统集成
- \[\]支持额外的自动驾驶系统
______________________________________________________________________
免责声明:此软件用于研究和教育目的。用户有责任遵守当地航空法规和安全协议。
