Skip to content

Files

Latest commit

 

History

History
222 lines (151 loc) · 9.63 KB

README.md

File metadata and controls

222 lines (151 loc) · 9.63 KB

🇨🇳 中文文档 | 🇺🇸 English

无人机正方形编队控制仿真

Status Language MATLAB Version

本项目实现了基于人工势场法的无人机正方形编队控制算法,包含2D和3D两种实现版本。通过仿真展示了多架无人机如何从随机初始位置自主组织成正方形编队的过程。

快速开始

  1. 克隆本仓库
  2. 使用MATLAB打开项目文件夹
  3. 运行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编队控制:在二维平面上实现无人机正方形编队
  • 3D编队控制:在三维空间中实现无人机正方形编队,包含起飞和编队两个阶段
  • 可视化工具:提供高质量的仿真可视化和结果导出功能

主要特性

  • 基于人工势场法的编队控制算法
  • 支持多架无人机(默认20架)
  • 自动避障和碰撞避免
  • 高质量可视化效果(支持深色/浅色背景)
  • 轨迹记录与渐变显示
  • 仿真结果导出(PNG序列和GIF动画)

算法原理

本项目实现了基于人工势场法的无人机正方形编队控制算法。主要特点包括:

  • 领导者-跟随者结构:第一架无人机作为领导者,其余无人机作为跟随者
  • 人工势场法:结合吸引力和斥力实现编队控制和碰撞避免
  • 自适应速度控制:根据距离目标位置的远近动态调整速度

势场力计算

  1. 吸引力:无人机受到目标位置的吸引力

    • 领导者吸引力:LEADER_ATTRACT * 方向向量
    • 跟随者吸引力:FOLLOWER_ATTRACT * 方向向量
  2. 斥力:无人机之间的避碰斥力

    • 当两架无人机距离小于安全距离时产生斥力
    • 斥力大小:K_REPULSE * (1/距离 - 1/SAFE_DISTANCE) * (1/距离²)

示例效果

2D编队控制

2D编队多子图面板

3D编队控制

3D编队多子图面板

结果处理

创建多子图面板

  • 2D版本:运行create_subfigure_2D.py脚本
  • 3D版本:运行create_subfigure_3D.m脚本

创建GIF动画

  • 运行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动画生成工具

🇨🇳 中文文档 | 🇺🇸 English

UAV Square Formation Control Simulation

Status Language MATLAB Version

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.

Quick Start

  1. Clone this repository
  2. Open the project folder in MATLAB
  3. 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

Project Overview

  • 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

Key Features

  • 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)

Algorithm Principles

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

Potential Field Force Calculation

  1. Attractive Force: UAVs are attracted to target positions

    • Leader attraction: LEADER_ATTRACT * direction vector
    • Follower attraction: FOLLOWER_ATTRACT * direction vector
  2. 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²)

Example Results

2D Formation Control

2D Formation Multi-panel

3D Formation Control

3D Formation Multi-panel

Result Processing

Creating Multi-panel Figures

  • 2D version: Run the create_subfigure_2D.py script
  • 3D version: Run the create_subfigure_3D.m script

Creating GIF Animations

  • Run the create_uav_gif.m script to convert saved image sequences to GIF animations

Detailed Documentation

Directory Structure

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