# virtual-drone **Repository Path**: airy_wang/virtual-drone ## Basic Information - **Project Name**: virtual-drone - **Description**: 虚拟无人机项目 - AI团队协作开发 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-19 - **Last Updated**: 2026-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 虚拟无人机模拟器 (Virtual Drone Simulator) 基于Python实现的高保真无人机飞行模拟器,包含完整的动力学模型、传感器模拟、控制算法和任务规划功能。 ## 功能特性 ### 1. 飞行动力学模型 - 四旋翼无人机动力学建模 - 3D刚体运动仿真 - 重力、推力、空气阻力等物理效应 - 基于四元数的姿态表示 ### 2. 传感器系统 - **IMU模拟器**: 陀螺仪和加速度计,含噪声和零偏漂移 - **GPS模拟器**: 位置和速度测量,含高斯噪声 - **气压计模拟器**: 高度测量,含温度补偿 - **传感器融合**: 互补滤波算法 ### 3. 控制系统 - **PID控制器**: 三轴姿态和位置控制 - **级联控制**: 位置-姿态级联控制架构 - **飞行模式**: 自动、手动、引导等多种模式 ### 4. 导航与任务 - **A*路径规划**: 3D空间路径搜索算法 - **航点管理**: 任务规划和航点序列管理 - **多种航点类型**: 导航、盘旋、起飞、着陆等 ### 5. 飞行状态管理 - **状态机**: 完整的飞行状态管理 - **安全机制**: 多重安全检查和保护功能 - **故障处理**: 传感器故障和应急处理 ## 项目结构 ``` virtual-drone/ ├── src/ │ ├── utils/ # 工具函数 │ │ ├── math3d.py # 3D数学运算 │ │ └── coordinate.py # 坐标转换 │ ├── physics/ # 物理模型 │ │ └── dynamics.py # 飞行动力学 │ ├── sensors/ # 传感器模拟 │ │ ├── imu.py # IMU模拟器 │ │ ├── gps.py # GPS模拟器 │ │ ├── barometer.py # 气压计模拟器 │ │ └── sensor_fusion.py # 传感器融合 │ ├── core/ # 核心功能 │ │ ├── pid_controller.py # PID控制器 │ │ ├── state_machine.py # 飞行状态机 │ │ └── flight_controller.py # 主飞控逻辑 │ └── navigation/ # 导航功能 │ ├── path_planner.py # A*路径规划 │ └── waypoint_manager.py # 航点管理 ├── scripts/ # 脚本 │ └── simulate.py # 模拟器入口 ├── config/ # 配置文件 │ └── default.yaml # 默认配置 ├── tests/ # 测试代码 │ ├── test_flight_controller.py │ └── test_sensors.py └── requirements.txt # 依赖包 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 运行模拟器 ```bash python scripts/simulate.py ``` ### 3. 命令行选项 ```bash python scripts/simulate.py --help ``` 常用选项: - `--config`: 指定配置文件 - `--rate`: 设置仿真更新频率 (Hz) - `--headless`: 无头模式运行 - `--log`: 指定日志目录 - `--mission-file`: 加载任务文件 ## 使用示例 ### 基本使用 ```python from src.core.flight_controller import FlightController from src.core.state_machine import FlightState # 创建飞行控制器 fc = FlightController() # 设置初始状态 fc.set_initial_state( position=[0, 0, 0], velocity=[0, 0, 0] ) # 解锁并起飞 fc.state_machine.request_arm(True) fc.controller.update_position_setpoint(0, 0, 10) # 飞到10米高度 # 运行控制循环 while True: result = fc.run_control_loop() # 处理结果... ``` ### 航点任务 ```python from src.navigation.waypoint_manager import WaypointManager, Waypoint, WaypointType # 创建航点管理器 wm = WaypointManager() # 添加航点 waypoints = [ Waypoint(0, 0, 10, WaypointType.TAKEOFF), Waypoint(10, 0, 10, WaypointType.NAV), Waypoint(10, 10, 15, WaypointType.NAV), Waypoint(0, 0, 10, WaypointType.LAND) ] wm.set_waypoints(waypoints) wm.start_mission() ``` ## 配置说明 主要配置参数位于 `config/default.yaml`,包括: - 无人机物理参数(质量、推力等) - 传感器噪声参数 - 控制器增益参数 - 仿真参数 - 安全限制参数 ## 测试 运行单元测试: ```bash python -m pytest tests/ ``` 或单独运行测试文件: ```bash python tests/test_flight_controller.py python tests/test_sensors.py ``` ## 许可证 MIT License