本项目实现了基于人工势场法的无人机正方形编队控制算法,包含2D和3D两种实现版本。通过仿真展示了多架无人机如何从随机初始位置自主组织成正方形编队的过程。
- 克隆本仓库
- 使用MATLAB打开项目文件夹
- 运行2D或3D编队控制脚本:
- 2D编队:运行
quadrangular_2D/quadrangular_formation_control_2D_V3_white_bg.m
- 3D编队:运行
quadrangular_3D/quadrangular_formation_control_3D_V4_white_bg.m
- 2D编队:运行
- 2D编队控制:在二维平面上实现无人机正方形编队
- 3D编队控制:在三维空间中实现无人机正方形编队,包含起飞和编队两个阶段
- 可视化工具:提供高质量的仿真可视化和结果导出功能
- 基于人工势场法的编队控制算法
- 支持多架无人机(默认20架)
- 自动避障和碰撞避免
- 高质量可视化效果(支持深色/浅色背景)
- 轨迹记录与渐变显示
- 仿真结果导出(PNG序列和GIF动画)
本项目实现了基于人工势场法的无人机正方形编队控制算法。主要特点包括:
- 领导者-跟随者结构:第一架无人机作为领导者,其余无人机作为跟随者
- 人工势场法:结合吸引力和斥力实现编队控制和碰撞避免
- 自适应速度控制:根据距离目标位置的远近动态调整速度
-
吸引力:无人机受到目标位置的吸引力
- 领导者吸引力:
LEADER_ATTRACT * 方向向量
- 跟随者吸引力:
FOLLOWER_ATTRACT * 方向向量
- 领导者吸引力:
-
斥力:无人机之间的避碰斥力
- 当两架无人机距离小于安全距离时产生斥力
- 斥力大小:
K_REPULSE * (1/距离 - 1/SAFE_DISTANCE) * (1/距离²)
- 2D版本:运行
create_subfigure_2D.py
脚本 - 3D版本:运行
create_subfigure_3D.m
脚本
- 运行
create_uav_gif.m
脚本可以将保存的图片序列转换为GIF动画
Formation_Control_quadrangular/
├── README.md # 项目总体说明
├── quadrangular_2D/ # 2D编队控制实现
│ ├── README.md # 2D编队详细说明
│ ├── quadrangular_formation_control_2D.m # 基础版本
│ ├── quadrangular_formation_control_2D_V2.m # 改进版本
│ ├── quadrangular_formation_control_2D_V3_white_bg.m # 白色背景版本
│ └── create_subfigure_2D.py # 2D结果处理工具
├── quadrangular_3D/ # 3D编队控制实现
│ ├── README.md # 3D编队详细说明
│ ├── quadrangular_formation_control_3D.m # 基础版本
│ ├── quadrangular_formation_control_3D_V2.m # 改进版本
│ ├── quadrangular_formation_control_3D_V3.m # 深色背景优化版本
│ ├── quadrangular_formation_control_3D_V4_white_bg.m # 白色背景版本
│ ├── create_subfigure_3D.m # 3D结果处理工具
└───└── create_uav_gif.m # GIF动画生成工具
This project implements a UAV square formation control algorithm based on artificial potential field method, including both 2D and 3D implementations. The simulation demonstrates how multiple UAVs autonomously organize themselves into a square formation from random initial positions.
- Clone this repository
- Open the project folder in MATLAB
- Run the 2D or 3D formation control script:
- 2D formation: Run
quadrangular_2D/quadrangular_formation_control_2D_V3_white_bg.m
- 3D formation: Run
quadrangular_3D/quadrangular_formation_control_3D_V4_white_bg.m
- 2D formation: Run
- 2D Formation Control: Implements UAV square formation in a two-dimensional plane
- 3D Formation Control: Implements UAV square formation in three-dimensional space, including takeoff and formation phases
- Visualization Tools: Provides high-quality simulation visualization and result export functions
- Formation control algorithm based on artificial potential field method
- Support for multiple UAVs (default 20)
- Automatic obstacle avoidance and collision prevention
- High-quality visualization effects (supporting dark/light backgrounds)
- Trajectory recording and gradient display
- Simulation result export (PNG sequences and GIF animations)
This project implements a UAV square formation control algorithm based on artificial potential field method. Key features include:
- Leader-Follower Structure: The first UAV acts as the leader, while the rest are followers
- Artificial Potential Field Method: Combines attractive and repulsive forces for formation control and collision avoidance
- Adaptive Velocity Control: Dynamically adjusts velocity based on distance to target position
-
Attractive Force: UAVs are attracted to target positions
- Leader attraction:
LEADER_ATTRACT * direction vector
- Follower attraction:
FOLLOWER_ATTRACT * direction vector
- Leader attraction:
-
Repulsive Force: Collision avoidance force between UAVs
- Repulsive force is generated when the distance between two UAVs is less than the safe distance
- Force magnitude:
K_REPULSE * (1/distance - 1/SAFE_DISTANCE) * (1/distance²)
- 2D version: Run the
create_subfigure_2D.py
script - 3D version: Run the
create_subfigure_3D.m
script
- Run the
create_uav_gif.m
script to convert saved image sequences to GIF animations
Formation_Control_quadrangular/
├── README.md # Project overview
├── quadrangular_2D/ # 2D formation control implementation
│ ├── README.md # 2D formation details
│ ├── quadrangular_formation_control_2D.m # Basic version
│ ├── quadrangular_formation_control_2D_V2.m # Improved version
│ ├── quadrangular_formation_control_2D_V3_white_bg.m # White background version
│ └── create_subfigure_2D.py # 2D result processing tool
├── quadrangular_3D/ # 3D formation control implementation
│ ├── README.md # 3D formation details
│ ├── quadrangular_formation_control_3D.m # Basic version
│ ├── quadrangular_formation_control_3D_V2.m # Improved version
│ ├── quadrangular_formation_control_3D_V3.m # Dark background optimized version
│ ├── quadrangular_formation_control_3D_V4_white_bg.m # White background version
│ ├── create_subfigure_3D.m # 3D result processing tool
└───└── create_uav_gif.m # GIF animation generation tool