From b79862a3a0b0e3362408671a845eb08150edb046 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:24:18 +0800 Subject: [PATCH 01/30] Add README.txt for graduation project folder --- 2209040027-liuwenjie/undergraduate/README.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 2209040027-liuwenjie/undergraduate/README.txt diff --git a/2209040027-liuwenjie/undergraduate/README.txt b/2209040027-liuwenjie/undergraduate/README.txt new file mode 100644 index 0000000..2a45f4e --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/README.txt @@ -0,0 +1 @@ +毕业设计文件夹 From 669d0533cc07698d4efa6b88bf71b034e1d92bb3 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:30:13 +0800 Subject: [PATCH 02/30] Add main LaTeX file for thesis document --- .../undergraduate/hutbthesis_main.tex | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/hutbthesis_main.tex diff --git a/2209040027-liuwenjie/undergraduate/hutbthesis_main.tex b/2209040027-liuwenjie/undergraduate/hutbthesis_main.tex new file mode 100644 index 0000000..c58e404 --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/hutbthesis_main.tex @@ -0,0 +1,39 @@ +% !TeX program = xelatex +% !TeX encoding = UTF-8 + +\documentclass{hutbthesis} + +% 论文信息 +\titlecn{基于AirSim的无人机集群仿真软件性能优化} +\titleen{Performance Optimization of UAV Swarm Simulation Software Based on AirSim} +\author{刘文杰} +\studentid{2209040027} +\college{智能机器人学院} +\major{机器人工程} +\class{2201} +\supervisor{王海东} +\date{2026年5月} + +\begin{document} + +% 封面 +\maketitle + +% 摘要 +\include{content/abstract} + +% 目录 +\tableofcontents + +% 正文 +\mainmatter +\include{content/chapter01} % 第一章 +% 后续章节需要时再添加 + +% 参考文献 +\bibliography{reference} + +% 致谢 +\include{content/acknowledgements} + +\end{document} From 64f0c522caff9e1630111453b501c308fbc67c85 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:30:44 +0800 Subject: [PATCH 03/30] Create chapter01.tex --- .../undergraduate/content/chapter01.tex | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/content/chapter01.tex diff --git a/2209040027-liuwenjie/undergraduate/content/chapter01.tex b/2209040027-liuwenjie/undergraduate/content/chapter01.tex new file mode 100644 index 0000000..594146f --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/content/chapter01.tex @@ -0,0 +1,91 @@ +\chapter{绪论} +\label{chap:introduction} + +\section{研究背景与意义} +\label{sec:background} + +随着无人机技术的快速发展,无人机集群在军事侦察、物流配送、协同测绘、灾害救援等领域的应用日益广泛。集群无人机能够通过协同合作完成复杂任务,具有效率高、灵活性好、鲁棒性强等优势。然而,大规模无人机集群的实际部署与测试面临着成本高昂、安全性难以保障、环境条件受限等挑战。在此背景下,高保真仿真技术成为验证无人机集群算法、评估系统性能的重要手段。 + +AirSim是由微软发布的一款开源、高保真无人机与自动驾驶仿真平台,基于游戏引擎(Unreal Engine/Unity)构建,提供逼真的物理引擎、传感器模拟和灵活的控制接口。凭借其开源特性、高物理逼真度以及与机器人操作系统(ROS)的良好兼容性,AirSim已成为无人机相关研究领域的重要工具,被广泛应用于路径规划、视觉导航、控制算法等多个研究方向。 + +然而,随着无人机集群规模的扩大,AirSim在仿真效率方面暴露出明显瓶颈。现有研究表明,当仿真无人机数量超过18-20架时,系统会出现帧率(FPS)断崖式下跌、仿真延迟显著增加、CPU内核态时间占比异常升高等现象,严重制约了仿真系统的实时性和准确性。这一性能瓶颈限制了AirSim在大规模无人机集群协同算法验证与性能评估中的应用价值,使得研究人员难以在仿真环境中开展大规模的集群行为研究和算法测试。 + +本研究旨在深入分析并优化AirSim在多无人机集群仿真中的性能问题。该研究的价值主要体现在以下三个方面: + +\textbf{理论价值}方面,本研究通过深入剖析高并发实时仿真系统的性能退化机理,聚焦于操作系统线程调度机制、CPU内核态与用户态切换开销、自旋等待算法在超线程环境下的异常行为等核心问题,为仿真系统性能建模提供新的理论视角和案例支撑。 + +\textbf{应用价值}方面,研究成果将直接提升AirSim平台支持大规模无人机集群仿真的能力。通过性能优化,能够为路径规划、编队控制、协同感知等集群算法的研发与测试提供更稳定、高效的仿真环境,降低实机测试成本与风险,加速无人机集群技术的落地应用进程。 + +\textbf{实践价值}方面,本研究遵循``问题定位-方案设计-实验验证''的完整工程研究路径。研究过程中对AirSim源码的深入分析、多种线程模型的对比实现以及系统化的性能评估方法,可为后续研究者进行类似的仿真平台性能调优提供可复现的技术范式和实践参考。 + +\section{国内外研究现状} +\label{sec:literature} + +无人机集群仿真技术经历了从单机模拟到分布式协同仿真的发展过程。早期研究多集中于单机动力学建模与控制算法验证,如张旭(2021)对无人机导航卡尔曼滤波算法的改进研究。随着集群概念的兴起,分布式仿真成为研究热点,伍智锋(2003)较早开展了分布式飞行仿真技术研究,为多实体协同仿真奠定了基础。 + +在仿真平台发展方面,当前主流的无人机仿真平台可分为两大类:一类是基于游戏引擎的高保真视觉仿真平台,如AirSim、CARLA;另一类是侧重于动力学与通信的轻量化仿真环境,如Gazebo with ROS。方仪豪等(2025)在多旋翼无人机仿真平台综述中指出,AirSim凭借其出色的图形渲染保真度和灵活的API接口,在视觉相关算法测试中占据优势,但其在多机仿真效率方面存在挑战。 + +在AirSim平台的应用研究方面,近年来涌现出大量研究成果。在控制与编队领域,郑筱宇等(2025)基于AirSim实现了无人机位置跟踪与编队控制;席建祥等(2025)研究了协同性能约束下的四旋翼无人机集群预设性能优化编队控制。在感知与规划领域,方璨琦(2023)利用AirSim进行基于深度强化学习的无人机路径规划研究;周游(2020)基于该平台研究无人机三维避障算法。在集群协同领域,刘彦辰等(2024)研究了基于改进SVO的分布式旋翼无人机集群避碰规划;石辅天等(2023)和朱博顺等(2021)分别利用AirSim进行多无人机协同搜索与蜂群侦察搜索的仿真研究。 + +然而,上述研究多数仿真规模有限,当仿真实体数量增加时,性能问题开始凸显。章铭泽(2025)在集群组网通信仿真研究中提到了仿真效率的重要性;龙腾飞(2023)在研究AirSim虚实交互平台时,也涉及了系统实时性问题。这些研究侧面反映了对AirSim进行性能优化的潜在需求。 + +在并发仿真性能优化方面,高性能并发仿真的核心挑战在于资源管理与任务调度。在分布式仿真领域,冯一飞(2023)研究了基于行为法的分布式集群控制与仿真,通过分布式架构分摊计算负载;郭首江(2021)从网络协议层面对无人机集群接入控制进行了性能优化研究。在单系统多线程优化层面,性能瓶颈常出现在线程同步与等待机制上。不当的线程睡眠或自旋策略会导致频繁的上下文切换和极高的内核态CPU占用,这正是高并发实时系统的大忌。 + +尽管已有研究关注无人机集群仿真和AirSim平台应用,但针对AirSim这一具体平台的线程级性能深入分析与优化的系统性研究尚显不足。现有文献大多将性能问题作为现象提及,缺乏对其根本原因的深入剖析和有效解决方案的提出。这正是本研究的切入点。 + +\section{研究内容与目标} +\label{sec:research-content} + +本研究的主要目标是系统分析AirSim在多无人机集群仿真中的性能瓶颈,设计并实现高效的线程调度优化方案,显著提升AirSim支持大规模无人机集群仿真的能力。具体研究内容包括: + +\begin{enumerate} + \item \textbf{性能瓶颈分析与定位}:构建多无人机仿真测试环境,复现性能问题现象;使用性能剖析工具深入分析系统运行时的CPU使用情况,特别是内核态与用户态时间占比;通过代码审查与理论分析,定位性能瓶颈的根本原因。 + + \item \textbf{线程模型优化方案设计}:基于瓶颈分析结果,设计多种线程调度优化方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待五种策略;分析各方案在不同并发场景下的适用性和优劣。 + + \item \textbf{方案实现与系统集成}:在AirSim源码中实现上述优化方案,确保代码的正确性和兼容性;设计灵活的配置机制,便于不同方案的切换和对比测试。 + + \item \textbf{实验评估与方案优选}:设计系统化的实验方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果;通过对比分析,选择最优方案,并分析其性能提升机理。 + + \item \textbf{优化效果验证与总结}:在实际应用场景中验证最优方案的优化效果,总结研究经验,形成可推广的仿真平台性能优化范式。 +\end{enumerate} + +\section{技术路线与研究方法} +\label{sec:methodology} + +本研究采用理论分析与实验验证相结合的技术路线,具体研究方法如下: + +\begin{enumerate} + \item \textbf{文献研究法}:系统梳理无人机集群仿真、AirSim平台应用、多线程调度优化等相关领域的研究成果,明确研究现状、热点问题和未来趋势,为本研究提供理论基础和方向指导。 + + \item \textbf{实验分析法}:设计控制变量实验,逐步增加仿真无人机数量,观测系统性能变化趋势;使用Windows Performance Analyzer、Linux perf等性能剖析工具监控系统运行状态,定位性能瓶颈。 + + \item \textbf{原型系统法}:修改AirSim源码,实现多种线程调度优化方案;构建可配置的测试框架,确保实验的可重复性和可比性。 + + \item \textbf{定量评估法}:定义帧率(FPS)、任务执行偏差时间、CPU内核态时间占比等关键性能指标;设计标准化的测试流程和数据采集方法;使用统计分析方法处理实验数据,得出科学结论。 + + \item \textbf{对比研究法}:通过横向对比五种优化方案在不同测试场景下的表现,分析各方案的优缺点;通过纵向对比优化前后的系统性能,验证优化效果。 +\end{enumerate} + +技术路线遵循``需求分析→问题定位→方案设计→系统实现→测试评估→优化迭代''的循环过程,确保研究的系统性和完整性。 + +\section{论文结构安排} +\label{sec:structure} + +本文共分为六章,具体结构安排如下: + +第一章为绪论,主要介绍研究背景与意义、国内外研究现状、研究内容与目标、技术路线与研究方法,以及论文的结构安排。 + +第二章为相关理论与技术基础,概述无人机集群仿真技术,分析AirSim仿真平台架构,介绍多线程调度与并发编程基础,以及系统性能评估方法。 + +第三章为AirSim集群仿真性能瓶颈分析与定位,详细描述多无人机仿真测试环境的构建过程,复现性能问题现象,使用性能剖析工具定位瓶颈,并深入分析其根本原因。 + +第四章为基于线程模型重构的性能优化方法,详细阐述五种线程等待策略的设计原则和实现方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待,并介绍其在AirSim源码中的集成方法。 + +第五章为实验评估与分析,详细介绍实验环境和测试方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果,并进行综合对比与优选。 + +第六章为总结与展望,总结研究工作、主要创新点和存在问题,并提出未来的改进方向和研究展望。 + +论文最后为参考文献、致谢和附录部分,附录包含实验数据表、核心代码片段和测试环境配置详情等补充材料。 + +通过以上结构安排,本文系统性地展示了从问题发现到方案设计再到实验验证的完整研究过程,为无人机集群仿真软件性能优化提供了理论指导和实践参考。 From 7a393cd6b2cb0b9b23228e0ac758209ad2f3afce Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:31:30 +0800 Subject: [PATCH 04/30] Create abstract.tex --- .../undergraduate/content/abstract.tex | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/content/abstract.tex diff --git a/2209040027-liuwenjie/undergraduate/content/abstract.tex b/2209040027-liuwenjie/undergraduate/content/abstract.tex new file mode 100644 index 0000000..2c0ea29 --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/content/abstract.tex @@ -0,0 +1,11 @@ +\begin{abstractcn} +随着无人机集群技术的发展,高保真仿真平台成为验证集群算法的重要手段。AirSim作为主流仿真平台,在多无人机场景下存在性能瓶颈。本文深入分析AirSim在多机仿真中的性能问题,定位其根源在于低效的线程调度机制。通过设计并实现五种线程优化方案,显著提升了仿真规模上限。实验结果表明,优化后的系统支持无人机数量从18架提升至210架,为大规模集群算法验证提供了高效仿真环境。 + +\keywords{无人机集群;仿真平台;性能优化;线程调度;AirSim} +\end{abstractcn} + +\begin{abstracten} +With the development of UAV swarm technology, high-fidelity simulation platforms have become important for validating swarm algorithms. AirSim, as a mainstream simulation platform, exhibits performance bottlenecks in multi-UAV scenarios. This paper deeply analyzes the performance issues of AirSim in multi-drone simulation, identifying the root cause as inefficient thread scheduling mechanisms. By designing and implementing five thread optimization schemes, the simulation scale limit is significantly improved. Experimental results show that the optimized system supports an increase in UAV count from 18 to 210, providing an efficient simulation environment for large-scale swarm algorithm validation. + +\keywords{UAV Swarm; Simulation Platform; Performance Optimization; Thread Scheduling; AirSim} +\end{abstracten} From 96dcc2bee05a1087f3a9df4a5140c3696471d94f Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:31:52 +0800 Subject: [PATCH 05/30] Create acknowledgements.tex --- .../undergraduate/content/acknowledgements.tex | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/content/acknowledgements.tex diff --git a/2209040027-liuwenjie/undergraduate/content/acknowledgements.tex b/2209040027-liuwenjie/undergraduate/content/acknowledgements.tex new file mode 100644 index 0000000..6ac79bb --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/content/acknowledgements.tex @@ -0,0 +1,11 @@ +\begin{acknowledgements} +衷心感谢我的导师王海东副教授在整个毕业设计过程中给予的悉心指导与宝贵建议。王老师严谨的治学态度、深厚的专业知识和耐心的指导,使我受益匪浅。 + +感谢智能机器人学院所有老师的教诲与帮助,为我奠定了扎实的专业基础。 + +感谢在论文研究和撰写过程中提供支持的同学与朋友们,你们的建议和鼓励是我前进的动力。 + +最后,感谢各位评审老师在百忙之中审阅我的论文并提出宝贵意见。 + +由于作者水平有限,文中难免存在疏漏和不足之处,恳请各位老师和同学批评指正。 +\end{acknowledgements} From 7b2c1ec2415dec6eec05136a078c187b082d9d78 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:32:27 +0800 Subject: [PATCH 06/30] Add references to various UAV research papers --- .../undergraduate/reference.bib | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/reference.bib diff --git a/2209040027-liuwenjie/undergraduate/reference.bib b/2209040027-liuwenjie/undergraduate/reference.bib new file mode 100644 index 0000000..1e0b63a --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/reference.bib @@ -0,0 +1,56 @@ +@article{fang2025survey, + title={多旋翼无人机仿真平台综述}, + author={方仪豪 and 邹丹平}, + journal={计算机工程}, + year={2025}, + note={已录用} +} + +@inproceedings{shi2023airsim, + title={基于AirSim的多无人机协同搜索分布式仿真研究}, + author={石辅天 and 王龙飞 and 童鹏飞 and others}, + booktitle={第24届中国系统仿真技术及其应用学术年会论文集}, + pages={47--53}, + year={2023} +} + +@article{zhu2021swarm, + title={基于AirSim平台的无人机蜂群侦察搜索仿真与分析}, + author={朱博顺 and 王成钢 and 井田 and others}, + journal={计算机应用}, + volume={41}, + number={S1}, + pages={196--201}, + year={2021} +} + +@article{zheng2025tracking, + title={基于AirSim实现对无人机的位置跟踪及编队控制}, + author={郑筱宇 and 胡敏 and 赵辉宏}, + journal={齐鲁工业大学学报}, + volume={39}, + number={5}, + pages={70--75}, + year={2025} +} + +@mastersthesis{long2023airsim, + title={基于Airsim的四旋翼无人机虚实交互平台技术研究}, + author={龙腾飞}, + school={西安工业大学}, + year={2023} +} + +@mastersthesis{feng2023distributed, + title={基于行为法的分布式无人机集群控制方法与仿真研究}, + author={冯一飞}, + school={吉林大学}, + year={2023} +} + +@mastersthesis{zhou2020obstacle, + title={基于AirSim仿真平台的无人机三维避障算法研究}, + author={周游}, + school={电子科技大学}, + year={2020} +} From 4d3e00d815b0fb35e65e4acac7dc6a0f6afd497a Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:32:52 +0800 Subject: [PATCH 07/30] Create hutbthesis.cls --- .../undergraduate/hutbthesis.cls | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/hutbthesis.cls diff --git a/2209040027-liuwenjie/undergraduate/hutbthesis.cls b/2209040027-liuwenjie/undergraduate/hutbthesis.cls new file mode 100644 index 0000000..997bbcf --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/hutbthesis.cls @@ -0,0 +1,73 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{hutbthesis}[2025/01/01 HUTB Thesis Template] + +\LoadClass[12pt,a4paper]{article} + +% 中文字体设置 +\usepackage{fontspec} +\setmainfont{Times New Roman} +\setCJKmainfont{SimSun} + +% 页面设置 +\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=2.5cm]{geometry} + +% 定义命令 +\newcommand{\titlecn}[1]{\def\@titlecn{#1}} +\newcommand{\titleen}[1]{\def\@titleen{#1}} +\newcommand{\author}[1]{\def\@author{#1}} +\newcommand{\studentid}[1]{\def\@studentid{#1}} +\newcommand{\college}[1]{\def\@college{#1}} +\newcommand{\major}[1]{\def\@major{#1}} +\newcommand{\class}[1]{\def\@class{#1}} +\newcommand{\supervisor}[1]{\def\@supervisor{#1}} + +% 封面 +\newcommand{\maketitle}{ + \begin{titlepage} + \centering + \vspace*{2cm} + {\zihao{1} \heiti 湖南工商大学\\} + \vspace{1cm} + {\zihao{2} \heiti 本科毕业设计(论文)\\} + \vspace{3cm} + {\zihao{2} \heiti \@titlecn\\} + \vspace{1cm} + {\zihao{3} \heiti \@titleen\\} + \vspace{3cm} + {\zihao{4} \songti + 学\hspace{2em}院:\@college\\ + 专\hspace{2em}业:\@major\\ + 班\hspace{2em}级:\@class\\ + 学\hspace{2em}号:\@studentid\\ + 姓\hspace{2em}名:\@author\\ + 指导教师:\@supervisor\\} + \vspace{2cm} + {\zihao{4} \@date} + \end{titlepage} +} + +% 章节设置 +\usepackage{titlesec} +\titleformat{\chapter}{\centering\zihao{3}\heiti}{第\chinese{chapter}章}{1em}{} + +% 摘要环境 +\newenvironment{abstractcn}{ + \chapter*{摘要} + \addcontentsline{toc}{chapter}{摘要} +}{} +\newenvironment{abstracten}{ + \chapter*{ABSTRACT} + \addcontentsline{toc}{chapter}{ABSTRACT} +}{} +\newcommand{\keywords}[1]{\par\vspace{1em}\noindent\textbf{关键词:}#1} + +% 致谢环境 +\newenvironment{acknowledgements}{ + \chapter*{致谢} + \addcontentsline{toc}{chapter}{致谢} +}{} + +% 参考文献 +\usepackage[backend=biber,style=gb7714-2015]{biblatex} + +\endinput From 4a4ed8cb70d2eaeedbe68cce892f58130e8149f4 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:33:17 +0800 Subject: [PATCH 08/30] Create latexmkrc --- 2209040027-liuwenjie/undergraduate/latexmkrc | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/latexmkrc diff --git a/2209040027-liuwenjie/undergraduate/latexmkrc b/2209040027-liuwenjie/undergraduate/latexmkrc new file mode 100644 index 0000000..c16136c --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/latexmkrc @@ -0,0 +1,3 @@ +$pdf_mode = 1; +$xelatex = 'xelatex -shell-escape -synctex=1 -interaction=nonstopmode'; +$clean_ext = "bbl blg aux dvi log nav out snm synctex.gz toc lof lot"; From 856fac091edac005b4f891bdd1df9b91c697c992 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:34:00 +0800 Subject: [PATCH 09/30] Create .gitignore --- 2209040027-liuwenjie/undergraduate/.gitignore | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/.gitignore diff --git a/2209040027-liuwenjie/undergraduate/.gitignore b/2209040027-liuwenjie/undergraduate/.gitignore new file mode 100644 index 0000000..0eeb321 --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/.gitignore @@ -0,0 +1,11 @@ +*.aux +*.log +*.out +*.toc +*.bbl +*.blg +*.pdf +*.synctex.gz +*.fls +*.fdb_latexmk +*.xdv From 72cbe257a46bfa5a482bd9e15511968d70f16672 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:52:53 +0800 Subject: [PATCH 10/30] Create README.md --- 2209040027-liuwenjie/undergraduate/swarm/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 2209040027-liuwenjie/undergraduate/swarm/README.md diff --git a/2209040027-liuwenjie/undergraduate/swarm/README.md b/2209040027-liuwenjie/undergraduate/swarm/README.md new file mode 100644 index 0000000..3bdf0ed --- /dev/null +++ b/2209040027-liuwenjie/undergraduate/swarm/README.md @@ -0,0 +1,3 @@ +# 无人机集群仿真性能优化 +作者:刘文杰 (2209040027) +导师:王海东 From 60d4263a9503a7761605abc1eae1061bd569517a Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:30:32 +0800 Subject: [PATCH 11/30] Delete 2209040027-liuwenjie/undergraduate directory --- 2209040027-liuwenjie/undergraduate/.gitignore | 11 --- 2209040027-liuwenjie/undergraduate/README.txt | 1 - .../undergraduate/content/abstract.tex | 11 --- .../content/acknowledgements.tex | 11 --- .../undergraduate/content/chapter01.tex | 91 ------------------- .../undergraduate/hutbthesis.cls | 73 --------------- .../undergraduate/hutbthesis_main.tex | 39 -------- 2209040027-liuwenjie/undergraduate/latexmkrc | 3 - .../undergraduate/reference.bib | 56 ------------ .../undergraduate/swarm/README.md | 3 - 10 files changed, 299 deletions(-) delete mode 100644 2209040027-liuwenjie/undergraduate/.gitignore delete mode 100644 2209040027-liuwenjie/undergraduate/README.txt delete mode 100644 2209040027-liuwenjie/undergraduate/content/abstract.tex delete mode 100644 2209040027-liuwenjie/undergraduate/content/acknowledgements.tex delete mode 100644 2209040027-liuwenjie/undergraduate/content/chapter01.tex delete mode 100644 2209040027-liuwenjie/undergraduate/hutbthesis.cls delete mode 100644 2209040027-liuwenjie/undergraduate/hutbthesis_main.tex delete mode 100644 2209040027-liuwenjie/undergraduate/latexmkrc delete mode 100644 2209040027-liuwenjie/undergraduate/reference.bib delete mode 100644 2209040027-liuwenjie/undergraduate/swarm/README.md diff --git a/2209040027-liuwenjie/undergraduate/.gitignore b/2209040027-liuwenjie/undergraduate/.gitignore deleted file mode 100644 index 0eeb321..0000000 --- a/2209040027-liuwenjie/undergraduate/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -*.aux -*.log -*.out -*.toc -*.bbl -*.blg -*.pdf -*.synctex.gz -*.fls -*.fdb_latexmk -*.xdv diff --git a/2209040027-liuwenjie/undergraduate/README.txt b/2209040027-liuwenjie/undergraduate/README.txt deleted file mode 100644 index 2a45f4e..0000000 --- a/2209040027-liuwenjie/undergraduate/README.txt +++ /dev/null @@ -1 +0,0 @@ -毕业设计文件夹 diff --git a/2209040027-liuwenjie/undergraduate/content/abstract.tex b/2209040027-liuwenjie/undergraduate/content/abstract.tex deleted file mode 100644 index 2c0ea29..0000000 --- a/2209040027-liuwenjie/undergraduate/content/abstract.tex +++ /dev/null @@ -1,11 +0,0 @@ -\begin{abstractcn} -随着无人机集群技术的发展,高保真仿真平台成为验证集群算法的重要手段。AirSim作为主流仿真平台,在多无人机场景下存在性能瓶颈。本文深入分析AirSim在多机仿真中的性能问题,定位其根源在于低效的线程调度机制。通过设计并实现五种线程优化方案,显著提升了仿真规模上限。实验结果表明,优化后的系统支持无人机数量从18架提升至210架,为大规模集群算法验证提供了高效仿真环境。 - -\keywords{无人机集群;仿真平台;性能优化;线程调度;AirSim} -\end{abstractcn} - -\begin{abstracten} -With the development of UAV swarm technology, high-fidelity simulation platforms have become important for validating swarm algorithms. AirSim, as a mainstream simulation platform, exhibits performance bottlenecks in multi-UAV scenarios. This paper deeply analyzes the performance issues of AirSim in multi-drone simulation, identifying the root cause as inefficient thread scheduling mechanisms. By designing and implementing five thread optimization schemes, the simulation scale limit is significantly improved. Experimental results show that the optimized system supports an increase in UAV count from 18 to 210, providing an efficient simulation environment for large-scale swarm algorithm validation. - -\keywords{UAV Swarm; Simulation Platform; Performance Optimization; Thread Scheduling; AirSim} -\end{abstracten} diff --git a/2209040027-liuwenjie/undergraduate/content/acknowledgements.tex b/2209040027-liuwenjie/undergraduate/content/acknowledgements.tex deleted file mode 100644 index 6ac79bb..0000000 --- a/2209040027-liuwenjie/undergraduate/content/acknowledgements.tex +++ /dev/null @@ -1,11 +0,0 @@ -\begin{acknowledgements} -衷心感谢我的导师王海东副教授在整个毕业设计过程中给予的悉心指导与宝贵建议。王老师严谨的治学态度、深厚的专业知识和耐心的指导,使我受益匪浅。 - -感谢智能机器人学院所有老师的教诲与帮助,为我奠定了扎实的专业基础。 - -感谢在论文研究和撰写过程中提供支持的同学与朋友们,你们的建议和鼓励是我前进的动力。 - -最后,感谢各位评审老师在百忙之中审阅我的论文并提出宝贵意见。 - -由于作者水平有限,文中难免存在疏漏和不足之处,恳请各位老师和同学批评指正。 -\end{acknowledgements} diff --git a/2209040027-liuwenjie/undergraduate/content/chapter01.tex b/2209040027-liuwenjie/undergraduate/content/chapter01.tex deleted file mode 100644 index 594146f..0000000 --- a/2209040027-liuwenjie/undergraduate/content/chapter01.tex +++ /dev/null @@ -1,91 +0,0 @@ -\chapter{绪论} -\label{chap:introduction} - -\section{研究背景与意义} -\label{sec:background} - -随着无人机技术的快速发展,无人机集群在军事侦察、物流配送、协同测绘、灾害救援等领域的应用日益广泛。集群无人机能够通过协同合作完成复杂任务,具有效率高、灵活性好、鲁棒性强等优势。然而,大规模无人机集群的实际部署与测试面临着成本高昂、安全性难以保障、环境条件受限等挑战。在此背景下,高保真仿真技术成为验证无人机集群算法、评估系统性能的重要手段。 - -AirSim是由微软发布的一款开源、高保真无人机与自动驾驶仿真平台,基于游戏引擎(Unreal Engine/Unity)构建,提供逼真的物理引擎、传感器模拟和灵活的控制接口。凭借其开源特性、高物理逼真度以及与机器人操作系统(ROS)的良好兼容性,AirSim已成为无人机相关研究领域的重要工具,被广泛应用于路径规划、视觉导航、控制算法等多个研究方向。 - -然而,随着无人机集群规模的扩大,AirSim在仿真效率方面暴露出明显瓶颈。现有研究表明,当仿真无人机数量超过18-20架时,系统会出现帧率(FPS)断崖式下跌、仿真延迟显著增加、CPU内核态时间占比异常升高等现象,严重制约了仿真系统的实时性和准确性。这一性能瓶颈限制了AirSim在大规模无人机集群协同算法验证与性能评估中的应用价值,使得研究人员难以在仿真环境中开展大规模的集群行为研究和算法测试。 - -本研究旨在深入分析并优化AirSim在多无人机集群仿真中的性能问题。该研究的价值主要体现在以下三个方面: - -\textbf{理论价值}方面,本研究通过深入剖析高并发实时仿真系统的性能退化机理,聚焦于操作系统线程调度机制、CPU内核态与用户态切换开销、自旋等待算法在超线程环境下的异常行为等核心问题,为仿真系统性能建模提供新的理论视角和案例支撑。 - -\textbf{应用价值}方面,研究成果将直接提升AirSim平台支持大规模无人机集群仿真的能力。通过性能优化,能够为路径规划、编队控制、协同感知等集群算法的研发与测试提供更稳定、高效的仿真环境,降低实机测试成本与风险,加速无人机集群技术的落地应用进程。 - -\textbf{实践价值}方面,本研究遵循``问题定位-方案设计-实验验证''的完整工程研究路径。研究过程中对AirSim源码的深入分析、多种线程模型的对比实现以及系统化的性能评估方法,可为后续研究者进行类似的仿真平台性能调优提供可复现的技术范式和实践参考。 - -\section{国内外研究现状} -\label{sec:literature} - -无人机集群仿真技术经历了从单机模拟到分布式协同仿真的发展过程。早期研究多集中于单机动力学建模与控制算法验证,如张旭(2021)对无人机导航卡尔曼滤波算法的改进研究。随着集群概念的兴起,分布式仿真成为研究热点,伍智锋(2003)较早开展了分布式飞行仿真技术研究,为多实体协同仿真奠定了基础。 - -在仿真平台发展方面,当前主流的无人机仿真平台可分为两大类:一类是基于游戏引擎的高保真视觉仿真平台,如AirSim、CARLA;另一类是侧重于动力学与通信的轻量化仿真环境,如Gazebo with ROS。方仪豪等(2025)在多旋翼无人机仿真平台综述中指出,AirSim凭借其出色的图形渲染保真度和灵活的API接口,在视觉相关算法测试中占据优势,但其在多机仿真效率方面存在挑战。 - -在AirSim平台的应用研究方面,近年来涌现出大量研究成果。在控制与编队领域,郑筱宇等(2025)基于AirSim实现了无人机位置跟踪与编队控制;席建祥等(2025)研究了协同性能约束下的四旋翼无人机集群预设性能优化编队控制。在感知与规划领域,方璨琦(2023)利用AirSim进行基于深度强化学习的无人机路径规划研究;周游(2020)基于该平台研究无人机三维避障算法。在集群协同领域,刘彦辰等(2024)研究了基于改进SVO的分布式旋翼无人机集群避碰规划;石辅天等(2023)和朱博顺等(2021)分别利用AirSim进行多无人机协同搜索与蜂群侦察搜索的仿真研究。 - -然而,上述研究多数仿真规模有限,当仿真实体数量增加时,性能问题开始凸显。章铭泽(2025)在集群组网通信仿真研究中提到了仿真效率的重要性;龙腾飞(2023)在研究AirSim虚实交互平台时,也涉及了系统实时性问题。这些研究侧面反映了对AirSim进行性能优化的潜在需求。 - -在并发仿真性能优化方面,高性能并发仿真的核心挑战在于资源管理与任务调度。在分布式仿真领域,冯一飞(2023)研究了基于行为法的分布式集群控制与仿真,通过分布式架构分摊计算负载;郭首江(2021)从网络协议层面对无人机集群接入控制进行了性能优化研究。在单系统多线程优化层面,性能瓶颈常出现在线程同步与等待机制上。不当的线程睡眠或自旋策略会导致频繁的上下文切换和极高的内核态CPU占用,这正是高并发实时系统的大忌。 - -尽管已有研究关注无人机集群仿真和AirSim平台应用,但针对AirSim这一具体平台的线程级性能深入分析与优化的系统性研究尚显不足。现有文献大多将性能问题作为现象提及,缺乏对其根本原因的深入剖析和有效解决方案的提出。这正是本研究的切入点。 - -\section{研究内容与目标} -\label{sec:research-content} - -本研究的主要目标是系统分析AirSim在多无人机集群仿真中的性能瓶颈,设计并实现高效的线程调度优化方案,显著提升AirSim支持大规模无人机集群仿真的能力。具体研究内容包括: - -\begin{enumerate} - \item \textbf{性能瓶颈分析与定位}:构建多无人机仿真测试环境,复现性能问题现象;使用性能剖析工具深入分析系统运行时的CPU使用情况,特别是内核态与用户态时间占比;通过代码审查与理论分析,定位性能瓶颈的根本原因。 - - \item \textbf{线程模型优化方案设计}:基于瓶颈分析结果,设计多种线程调度优化方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待五种策略;分析各方案在不同并发场景下的适用性和优劣。 - - \item \textbf{方案实现与系统集成}:在AirSim源码中实现上述优化方案,确保代码的正确性和兼容性;设计灵活的配置机制,便于不同方案的切换和对比测试。 - - \item \textbf{实验评估与方案优选}:设计系统化的实验方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果;通过对比分析,选择最优方案,并分析其性能提升机理。 - - \item \textbf{优化效果验证与总结}:在实际应用场景中验证最优方案的优化效果,总结研究经验,形成可推广的仿真平台性能优化范式。 -\end{enumerate} - -\section{技术路线与研究方法} -\label{sec:methodology} - -本研究采用理论分析与实验验证相结合的技术路线,具体研究方法如下: - -\begin{enumerate} - \item \textbf{文献研究法}:系统梳理无人机集群仿真、AirSim平台应用、多线程调度优化等相关领域的研究成果,明确研究现状、热点问题和未来趋势,为本研究提供理论基础和方向指导。 - - \item \textbf{实验分析法}:设计控制变量实验,逐步增加仿真无人机数量,观测系统性能变化趋势;使用Windows Performance Analyzer、Linux perf等性能剖析工具监控系统运行状态,定位性能瓶颈。 - - \item \textbf{原型系统法}:修改AirSim源码,实现多种线程调度优化方案;构建可配置的测试框架,确保实验的可重复性和可比性。 - - \item \textbf{定量评估法}:定义帧率(FPS)、任务执行偏差时间、CPU内核态时间占比等关键性能指标;设计标准化的测试流程和数据采集方法;使用统计分析方法处理实验数据,得出科学结论。 - - \item \textbf{对比研究法}:通过横向对比五种优化方案在不同测试场景下的表现,分析各方案的优缺点;通过纵向对比优化前后的系统性能,验证优化效果。 -\end{enumerate} - -技术路线遵循``需求分析→问题定位→方案设计→系统实现→测试评估→优化迭代''的循环过程,确保研究的系统性和完整性。 - -\section{论文结构安排} -\label{sec:structure} - -本文共分为六章,具体结构安排如下: - -第一章为绪论,主要介绍研究背景与意义、国内外研究现状、研究内容与目标、技术路线与研究方法,以及论文的结构安排。 - -第二章为相关理论与技术基础,概述无人机集群仿真技术,分析AirSim仿真平台架构,介绍多线程调度与并发编程基础,以及系统性能评估方法。 - -第三章为AirSim集群仿真性能瓶颈分析与定位,详细描述多无人机仿真测试环境的构建过程,复现性能问题现象,使用性能剖析工具定位瓶颈,并深入分析其根本原因。 - -第四章为基于线程模型重构的性能优化方法,详细阐述五种线程等待策略的设计原则和实现方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待,并介绍其在AirSim源码中的集成方法。 - -第五章为实验评估与分析,详细介绍实验环境和测试方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果,并进行综合对比与优选。 - -第六章为总结与展望,总结研究工作、主要创新点和存在问题,并提出未来的改进方向和研究展望。 - -论文最后为参考文献、致谢和附录部分,附录包含实验数据表、核心代码片段和测试环境配置详情等补充材料。 - -通过以上结构安排,本文系统性地展示了从问题发现到方案设计再到实验验证的完整研究过程,为无人机集群仿真软件性能优化提供了理论指导和实践参考。 diff --git a/2209040027-liuwenjie/undergraduate/hutbthesis.cls b/2209040027-liuwenjie/undergraduate/hutbthesis.cls deleted file mode 100644 index 997bbcf..0000000 --- a/2209040027-liuwenjie/undergraduate/hutbthesis.cls +++ /dev/null @@ -1,73 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} -\ProvidesClass{hutbthesis}[2025/01/01 HUTB Thesis Template] - -\LoadClass[12pt,a4paper]{article} - -% 中文字体设置 -\usepackage{fontspec} -\setmainfont{Times New Roman} -\setCJKmainfont{SimSun} - -% 页面设置 -\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=2.5cm]{geometry} - -% 定义命令 -\newcommand{\titlecn}[1]{\def\@titlecn{#1}} -\newcommand{\titleen}[1]{\def\@titleen{#1}} -\newcommand{\author}[1]{\def\@author{#1}} -\newcommand{\studentid}[1]{\def\@studentid{#1}} -\newcommand{\college}[1]{\def\@college{#1}} -\newcommand{\major}[1]{\def\@major{#1}} -\newcommand{\class}[1]{\def\@class{#1}} -\newcommand{\supervisor}[1]{\def\@supervisor{#1}} - -% 封面 -\newcommand{\maketitle}{ - \begin{titlepage} - \centering - \vspace*{2cm} - {\zihao{1} \heiti 湖南工商大学\\} - \vspace{1cm} - {\zihao{2} \heiti 本科毕业设计(论文)\\} - \vspace{3cm} - {\zihao{2} \heiti \@titlecn\\} - \vspace{1cm} - {\zihao{3} \heiti \@titleen\\} - \vspace{3cm} - {\zihao{4} \songti - 学\hspace{2em}院:\@college\\ - 专\hspace{2em}业:\@major\\ - 班\hspace{2em}级:\@class\\ - 学\hspace{2em}号:\@studentid\\ - 姓\hspace{2em}名:\@author\\ - 指导教师:\@supervisor\\} - \vspace{2cm} - {\zihao{4} \@date} - \end{titlepage} -} - -% 章节设置 -\usepackage{titlesec} -\titleformat{\chapter}{\centering\zihao{3}\heiti}{第\chinese{chapter}章}{1em}{} - -% 摘要环境 -\newenvironment{abstractcn}{ - \chapter*{摘要} - \addcontentsline{toc}{chapter}{摘要} -}{} -\newenvironment{abstracten}{ - \chapter*{ABSTRACT} - \addcontentsline{toc}{chapter}{ABSTRACT} -}{} -\newcommand{\keywords}[1]{\par\vspace{1em}\noindent\textbf{关键词:}#1} - -% 致谢环境 -\newenvironment{acknowledgements}{ - \chapter*{致谢} - \addcontentsline{toc}{chapter}{致谢} -}{} - -% 参考文献 -\usepackage[backend=biber,style=gb7714-2015]{biblatex} - -\endinput diff --git a/2209040027-liuwenjie/undergraduate/hutbthesis_main.tex b/2209040027-liuwenjie/undergraduate/hutbthesis_main.tex deleted file mode 100644 index c58e404..0000000 --- a/2209040027-liuwenjie/undergraduate/hutbthesis_main.tex +++ /dev/null @@ -1,39 +0,0 @@ -% !TeX program = xelatex -% !TeX encoding = UTF-8 - -\documentclass{hutbthesis} - -% 论文信息 -\titlecn{基于AirSim的无人机集群仿真软件性能优化} -\titleen{Performance Optimization of UAV Swarm Simulation Software Based on AirSim} -\author{刘文杰} -\studentid{2209040027} -\college{智能机器人学院} -\major{机器人工程} -\class{2201} -\supervisor{王海东} -\date{2026年5月} - -\begin{document} - -% 封面 -\maketitle - -% 摘要 -\include{content/abstract} - -% 目录 -\tableofcontents - -% 正文 -\mainmatter -\include{content/chapter01} % 第一章 -% 后续章节需要时再添加 - -% 参考文献 -\bibliography{reference} - -% 致谢 -\include{content/acknowledgements} - -\end{document} diff --git a/2209040027-liuwenjie/undergraduate/latexmkrc b/2209040027-liuwenjie/undergraduate/latexmkrc deleted file mode 100644 index c16136c..0000000 --- a/2209040027-liuwenjie/undergraduate/latexmkrc +++ /dev/null @@ -1,3 +0,0 @@ -$pdf_mode = 1; -$xelatex = 'xelatex -shell-escape -synctex=1 -interaction=nonstopmode'; -$clean_ext = "bbl blg aux dvi log nav out snm synctex.gz toc lof lot"; diff --git a/2209040027-liuwenjie/undergraduate/reference.bib b/2209040027-liuwenjie/undergraduate/reference.bib deleted file mode 100644 index 1e0b63a..0000000 --- a/2209040027-liuwenjie/undergraduate/reference.bib +++ /dev/null @@ -1,56 +0,0 @@ -@article{fang2025survey, - title={多旋翼无人机仿真平台综述}, - author={方仪豪 and 邹丹平}, - journal={计算机工程}, - year={2025}, - note={已录用} -} - -@inproceedings{shi2023airsim, - title={基于AirSim的多无人机协同搜索分布式仿真研究}, - author={石辅天 and 王龙飞 and 童鹏飞 and others}, - booktitle={第24届中国系统仿真技术及其应用学术年会论文集}, - pages={47--53}, - year={2023} -} - -@article{zhu2021swarm, - title={基于AirSim平台的无人机蜂群侦察搜索仿真与分析}, - author={朱博顺 and 王成钢 and 井田 and others}, - journal={计算机应用}, - volume={41}, - number={S1}, - pages={196--201}, - year={2021} -} - -@article{zheng2025tracking, - title={基于AirSim实现对无人机的位置跟踪及编队控制}, - author={郑筱宇 and 胡敏 and 赵辉宏}, - journal={齐鲁工业大学学报}, - volume={39}, - number={5}, - pages={70--75}, - year={2025} -} - -@mastersthesis{long2023airsim, - title={基于Airsim的四旋翼无人机虚实交互平台技术研究}, - author={龙腾飞}, - school={西安工业大学}, - year={2023} -} - -@mastersthesis{feng2023distributed, - title={基于行为法的分布式无人机集群控制方法与仿真研究}, - author={冯一飞}, - school={吉林大学}, - year={2023} -} - -@mastersthesis{zhou2020obstacle, - title={基于AirSim仿真平台的无人机三维避障算法研究}, - author={周游}, - school={电子科技大学}, - year={2020} -} diff --git a/2209040027-liuwenjie/undergraduate/swarm/README.md b/2209040027-liuwenjie/undergraduate/swarm/README.md deleted file mode 100644 index 3bdf0ed..0000000 --- a/2209040027-liuwenjie/undergraduate/swarm/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# 无人机集群仿真性能优化 -作者:刘文杰 (2209040027) -导师:王海东 From c4a4548cb97071b3a75d99e44f1024251ba195b2 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:31:26 +0800 Subject: [PATCH 12/30] Create README.md --- swarm/undergraduate/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 swarm/undergraduate/README.md diff --git a/swarm/undergraduate/README.md b/swarm/undergraduate/README.md new file mode 100644 index 0000000..dc5cf40 --- /dev/null +++ b/swarm/undergraduate/README.md @@ -0,0 +1,5 @@ +# 无人机集群仿真性能优化 +作者:刘文杰 (2209040027) +导师:王海东 + +文件夹结构正确创建。 From 0d0c85da92eb85e3c1fb98e74111f026a12b51b5 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:32:04 +0800 Subject: [PATCH 13/30] Create hutbthesis_main.tex --- .../swarm/undergraduate/hutbthesis_main.tex | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 swarm/undergraduate/swarm/undergraduate/hutbthesis_main.tex diff --git a/swarm/undergraduate/swarm/undergraduate/hutbthesis_main.tex b/swarm/undergraduate/swarm/undergraduate/hutbthesis_main.tex new file mode 100644 index 0000000..c58e404 --- /dev/null +++ b/swarm/undergraduate/swarm/undergraduate/hutbthesis_main.tex @@ -0,0 +1,39 @@ +% !TeX program = xelatex +% !TeX encoding = UTF-8 + +\documentclass{hutbthesis} + +% 论文信息 +\titlecn{基于AirSim的无人机集群仿真软件性能优化} +\titleen{Performance Optimization of UAV Swarm Simulation Software Based on AirSim} +\author{刘文杰} +\studentid{2209040027} +\college{智能机器人学院} +\major{机器人工程} +\class{2201} +\supervisor{王海东} +\date{2026年5月} + +\begin{document} + +% 封面 +\maketitle + +% 摘要 +\include{content/abstract} + +% 目录 +\tableofcontents + +% 正文 +\mainmatter +\include{content/chapter01} % 第一章 +% 后续章节需要时再添加 + +% 参考文献 +\bibliography{reference} + +% 致谢 +\include{content/acknowledgements} + +\end{document} From f9beab0fd4e146797acf7779aeb8c700bd7f10d6 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:32:21 +0800 Subject: [PATCH 14/30] Add HUTB Thesis LaTeX class file --- .../swarm/undergraduate/hutbthesis.cls | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls new file mode 100644 index 0000000..997bbcf --- /dev/null +++ b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls @@ -0,0 +1,73 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{hutbthesis}[2025/01/01 HUTB Thesis Template] + +\LoadClass[12pt,a4paper]{article} + +% 中文字体设置 +\usepackage{fontspec} +\setmainfont{Times New Roman} +\setCJKmainfont{SimSun} + +% 页面设置 +\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=2.5cm]{geometry} + +% 定义命令 +\newcommand{\titlecn}[1]{\def\@titlecn{#1}} +\newcommand{\titleen}[1]{\def\@titleen{#1}} +\newcommand{\author}[1]{\def\@author{#1}} +\newcommand{\studentid}[1]{\def\@studentid{#1}} +\newcommand{\college}[1]{\def\@college{#1}} +\newcommand{\major}[1]{\def\@major{#1}} +\newcommand{\class}[1]{\def\@class{#1}} +\newcommand{\supervisor}[1]{\def\@supervisor{#1}} + +% 封面 +\newcommand{\maketitle}{ + \begin{titlepage} + \centering + \vspace*{2cm} + {\zihao{1} \heiti 湖南工商大学\\} + \vspace{1cm} + {\zihao{2} \heiti 本科毕业设计(论文)\\} + \vspace{3cm} + {\zihao{2} \heiti \@titlecn\\} + \vspace{1cm} + {\zihao{3} \heiti \@titleen\\} + \vspace{3cm} + {\zihao{4} \songti + 学\hspace{2em}院:\@college\\ + 专\hspace{2em}业:\@major\\ + 班\hspace{2em}级:\@class\\ + 学\hspace{2em}号:\@studentid\\ + 姓\hspace{2em}名:\@author\\ + 指导教师:\@supervisor\\} + \vspace{2cm} + {\zihao{4} \@date} + \end{titlepage} +} + +% 章节设置 +\usepackage{titlesec} +\titleformat{\chapter}{\centering\zihao{3}\heiti}{第\chinese{chapter}章}{1em}{} + +% 摘要环境 +\newenvironment{abstractcn}{ + \chapter*{摘要} + \addcontentsline{toc}{chapter}{摘要} +}{} +\newenvironment{abstracten}{ + \chapter*{ABSTRACT} + \addcontentsline{toc}{chapter}{ABSTRACT} +}{} +\newcommand{\keywords}[1]{\par\vspace{1em}\noindent\textbf{关键词:}#1} + +% 致谢环境 +\newenvironment{acknowledgements}{ + \chapter*{致谢} + \addcontentsline{toc}{chapter}{致谢} +}{} + +% 参考文献 +\usepackage[backend=biber,style=gb7714-2015]{biblatex} + +\endinput From b6a00ab76249ed1ab407b921e2f20e8b385452ae Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:34:52 +0800 Subject: [PATCH 15/30] Create chapter01.tex --- .../swarm/undergraduate/content/chapter01.tex | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex new file mode 100644 index 0000000..594146f --- /dev/null +++ b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex @@ -0,0 +1,91 @@ +\chapter{绪论} +\label{chap:introduction} + +\section{研究背景与意义} +\label{sec:background} + +随着无人机技术的快速发展,无人机集群在军事侦察、物流配送、协同测绘、灾害救援等领域的应用日益广泛。集群无人机能够通过协同合作完成复杂任务,具有效率高、灵活性好、鲁棒性强等优势。然而,大规模无人机集群的实际部署与测试面临着成本高昂、安全性难以保障、环境条件受限等挑战。在此背景下,高保真仿真技术成为验证无人机集群算法、评估系统性能的重要手段。 + +AirSim是由微软发布的一款开源、高保真无人机与自动驾驶仿真平台,基于游戏引擎(Unreal Engine/Unity)构建,提供逼真的物理引擎、传感器模拟和灵活的控制接口。凭借其开源特性、高物理逼真度以及与机器人操作系统(ROS)的良好兼容性,AirSim已成为无人机相关研究领域的重要工具,被广泛应用于路径规划、视觉导航、控制算法等多个研究方向。 + +然而,随着无人机集群规模的扩大,AirSim在仿真效率方面暴露出明显瓶颈。现有研究表明,当仿真无人机数量超过18-20架时,系统会出现帧率(FPS)断崖式下跌、仿真延迟显著增加、CPU内核态时间占比异常升高等现象,严重制约了仿真系统的实时性和准确性。这一性能瓶颈限制了AirSim在大规模无人机集群协同算法验证与性能评估中的应用价值,使得研究人员难以在仿真环境中开展大规模的集群行为研究和算法测试。 + +本研究旨在深入分析并优化AirSim在多无人机集群仿真中的性能问题。该研究的价值主要体现在以下三个方面: + +\textbf{理论价值}方面,本研究通过深入剖析高并发实时仿真系统的性能退化机理,聚焦于操作系统线程调度机制、CPU内核态与用户态切换开销、自旋等待算法在超线程环境下的异常行为等核心问题,为仿真系统性能建模提供新的理论视角和案例支撑。 + +\textbf{应用价值}方面,研究成果将直接提升AirSim平台支持大规模无人机集群仿真的能力。通过性能优化,能够为路径规划、编队控制、协同感知等集群算法的研发与测试提供更稳定、高效的仿真环境,降低实机测试成本与风险,加速无人机集群技术的落地应用进程。 + +\textbf{实践价值}方面,本研究遵循``问题定位-方案设计-实验验证''的完整工程研究路径。研究过程中对AirSim源码的深入分析、多种线程模型的对比实现以及系统化的性能评估方法,可为后续研究者进行类似的仿真平台性能调优提供可复现的技术范式和实践参考。 + +\section{国内外研究现状} +\label{sec:literature} + +无人机集群仿真技术经历了从单机模拟到分布式协同仿真的发展过程。早期研究多集中于单机动力学建模与控制算法验证,如张旭(2021)对无人机导航卡尔曼滤波算法的改进研究。随着集群概念的兴起,分布式仿真成为研究热点,伍智锋(2003)较早开展了分布式飞行仿真技术研究,为多实体协同仿真奠定了基础。 + +在仿真平台发展方面,当前主流的无人机仿真平台可分为两大类:一类是基于游戏引擎的高保真视觉仿真平台,如AirSim、CARLA;另一类是侧重于动力学与通信的轻量化仿真环境,如Gazebo with ROS。方仪豪等(2025)在多旋翼无人机仿真平台综述中指出,AirSim凭借其出色的图形渲染保真度和灵活的API接口,在视觉相关算法测试中占据优势,但其在多机仿真效率方面存在挑战。 + +在AirSim平台的应用研究方面,近年来涌现出大量研究成果。在控制与编队领域,郑筱宇等(2025)基于AirSim实现了无人机位置跟踪与编队控制;席建祥等(2025)研究了协同性能约束下的四旋翼无人机集群预设性能优化编队控制。在感知与规划领域,方璨琦(2023)利用AirSim进行基于深度强化学习的无人机路径规划研究;周游(2020)基于该平台研究无人机三维避障算法。在集群协同领域,刘彦辰等(2024)研究了基于改进SVO的分布式旋翼无人机集群避碰规划;石辅天等(2023)和朱博顺等(2021)分别利用AirSim进行多无人机协同搜索与蜂群侦察搜索的仿真研究。 + +然而,上述研究多数仿真规模有限,当仿真实体数量增加时,性能问题开始凸显。章铭泽(2025)在集群组网通信仿真研究中提到了仿真效率的重要性;龙腾飞(2023)在研究AirSim虚实交互平台时,也涉及了系统实时性问题。这些研究侧面反映了对AirSim进行性能优化的潜在需求。 + +在并发仿真性能优化方面,高性能并发仿真的核心挑战在于资源管理与任务调度。在分布式仿真领域,冯一飞(2023)研究了基于行为法的分布式集群控制与仿真,通过分布式架构分摊计算负载;郭首江(2021)从网络协议层面对无人机集群接入控制进行了性能优化研究。在单系统多线程优化层面,性能瓶颈常出现在线程同步与等待机制上。不当的线程睡眠或自旋策略会导致频繁的上下文切换和极高的内核态CPU占用,这正是高并发实时系统的大忌。 + +尽管已有研究关注无人机集群仿真和AirSim平台应用,但针对AirSim这一具体平台的线程级性能深入分析与优化的系统性研究尚显不足。现有文献大多将性能问题作为现象提及,缺乏对其根本原因的深入剖析和有效解决方案的提出。这正是本研究的切入点。 + +\section{研究内容与目标} +\label{sec:research-content} + +本研究的主要目标是系统分析AirSim在多无人机集群仿真中的性能瓶颈,设计并实现高效的线程调度优化方案,显著提升AirSim支持大规模无人机集群仿真的能力。具体研究内容包括: + +\begin{enumerate} + \item \textbf{性能瓶颈分析与定位}:构建多无人机仿真测试环境,复现性能问题现象;使用性能剖析工具深入分析系统运行时的CPU使用情况,特别是内核态与用户态时间占比;通过代码审查与理论分析,定位性能瓶颈的根本原因。 + + \item \textbf{线程模型优化方案设计}:基于瓶颈分析结果,设计多种线程调度优化方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待五种策略;分析各方案在不同并发场景下的适用性和优劣。 + + \item \textbf{方案实现与系统集成}:在AirSim源码中实现上述优化方案,确保代码的正确性和兼容性;设计灵活的配置机制,便于不同方案的切换和对比测试。 + + \item \textbf{实验评估与方案优选}:设计系统化的实验方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果;通过对比分析,选择最优方案,并分析其性能提升机理。 + + \item \textbf{优化效果验证与总结}:在实际应用场景中验证最优方案的优化效果,总结研究经验,形成可推广的仿真平台性能优化范式。 +\end{enumerate} + +\section{技术路线与研究方法} +\label{sec:methodology} + +本研究采用理论分析与实验验证相结合的技术路线,具体研究方法如下: + +\begin{enumerate} + \item \textbf{文献研究法}:系统梳理无人机集群仿真、AirSim平台应用、多线程调度优化等相关领域的研究成果,明确研究现状、热点问题和未来趋势,为本研究提供理论基础和方向指导。 + + \item \textbf{实验分析法}:设计控制变量实验,逐步增加仿真无人机数量,观测系统性能变化趋势;使用Windows Performance Analyzer、Linux perf等性能剖析工具监控系统运行状态,定位性能瓶颈。 + + \item \textbf{原型系统法}:修改AirSim源码,实现多种线程调度优化方案;构建可配置的测试框架,确保实验的可重复性和可比性。 + + \item \textbf{定量评估法}:定义帧率(FPS)、任务执行偏差时间、CPU内核态时间占比等关键性能指标;设计标准化的测试流程和数据采集方法;使用统计分析方法处理实验数据,得出科学结论。 + + \item \textbf{对比研究法}:通过横向对比五种优化方案在不同测试场景下的表现,分析各方案的优缺点;通过纵向对比优化前后的系统性能,验证优化效果。 +\end{enumerate} + +技术路线遵循``需求分析→问题定位→方案设计→系统实现→测试评估→优化迭代''的循环过程,确保研究的系统性和完整性。 + +\section{论文结构安排} +\label{sec:structure} + +本文共分为六章,具体结构安排如下: + +第一章为绪论,主要介绍研究背景与意义、国内外研究现状、研究内容与目标、技术路线与研究方法,以及论文的结构安排。 + +第二章为相关理论与技术基础,概述无人机集群仿真技术,分析AirSim仿真平台架构,介绍多线程调度与并发编程基础,以及系统性能评估方法。 + +第三章为AirSim集群仿真性能瓶颈分析与定位,详细描述多无人机仿真测试环境的构建过程,复现性能问题现象,使用性能剖析工具定位瓶颈,并深入分析其根本原因。 + +第四章为基于线程模型重构的性能优化方法,详细阐述五种线程等待策略的设计原则和实现方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待,并介绍其在AirSim源码中的集成方法。 + +第五章为实验评估与分析,详细介绍实验环境和测试方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果,并进行综合对比与优选。 + +第六章为总结与展望,总结研究工作、主要创新点和存在问题,并提出未来的改进方向和研究展望。 + +论文最后为参考文献、致谢和附录部分,附录包含实验数据表、核心代码片段和测试环境配置详情等补充材料。 + +通过以上结构安排,本文系统性地展示了从问题发现到方案设计再到实验验证的完整研究过程,为无人机集群仿真软件性能优化提供了理论指导和实践参考。 From 72cda5b0aec0186ae362a79d410f802e38106c5a Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:35:14 +0800 Subject: [PATCH 16/30] Create abstract.tex --- .../content/swarm/undergraduate/content/abstract.tex | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex new file mode 100644 index 0000000..2c0ea29 --- /dev/null +++ b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex @@ -0,0 +1,11 @@ +\begin{abstractcn} +随着无人机集群技术的发展,高保真仿真平台成为验证集群算法的重要手段。AirSim作为主流仿真平台,在多无人机场景下存在性能瓶颈。本文深入分析AirSim在多机仿真中的性能问题,定位其根源在于低效的线程调度机制。通过设计并实现五种线程优化方案,显著提升了仿真规模上限。实验结果表明,优化后的系统支持无人机数量从18架提升至210架,为大规模集群算法验证提供了高效仿真环境。 + +\keywords{无人机集群;仿真平台;性能优化;线程调度;AirSim} +\end{abstractcn} + +\begin{abstracten} +With the development of UAV swarm technology, high-fidelity simulation platforms have become important for validating swarm algorithms. AirSim, as a mainstream simulation platform, exhibits performance bottlenecks in multi-UAV scenarios. This paper deeply analyzes the performance issues of AirSim in multi-drone simulation, identifying the root cause as inefficient thread scheduling mechanisms. By designing and implementing five thread optimization schemes, the simulation scale limit is significantly improved. Experimental results show that the optimized system supports an increase in UAV count from 18 to 210, providing an efficient simulation environment for large-scale swarm algorithm validation. + +\keywords{UAV Swarm; Simulation Platform; Performance Optimization; Thread Scheduling; AirSim} +\end{abstracten} From 1506dd7030c47dbfec0fd53d6c0d6193f9e73b3a Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:35:34 +0800 Subject: [PATCH 17/30] Create acknowledgements.tex --- .../swarm/undergraduate/content/acknowledgements.tex | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex new file mode 100644 index 0000000..6ac79bb --- /dev/null +++ b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex @@ -0,0 +1,11 @@ +\begin{acknowledgements} +衷心感谢我的导师王海东副教授在整个毕业设计过程中给予的悉心指导与宝贵建议。王老师严谨的治学态度、深厚的专业知识和耐心的指导,使我受益匪浅。 + +感谢智能机器人学院所有老师的教诲与帮助,为我奠定了扎实的专业基础。 + +感谢在论文研究和撰写过程中提供支持的同学与朋友们,你们的建议和鼓励是我前进的动力。 + +最后,感谢各位评审老师在百忙之中审阅我的论文并提出宝贵意见。 + +由于作者水平有限,文中难免存在疏漏和不足之处,恳请各位老师和同学批评指正。 +\end{acknowledgements} From 02efc23fe81b7e2364e848deb8464eaad5bfd063 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:35:53 +0800 Subject: [PATCH 18/30] Create reference.bib --- .../content/swarm/undergraduate/reference.bib | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib new file mode 100644 index 0000000..1e0b63a --- /dev/null +++ b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib @@ -0,0 +1,56 @@ +@article{fang2025survey, + title={多旋翼无人机仿真平台综述}, + author={方仪豪 and 邹丹平}, + journal={计算机工程}, + year={2025}, + note={已录用} +} + +@inproceedings{shi2023airsim, + title={基于AirSim的多无人机协同搜索分布式仿真研究}, + author={石辅天 and 王龙飞 and 童鹏飞 and others}, + booktitle={第24届中国系统仿真技术及其应用学术年会论文集}, + pages={47--53}, + year={2023} +} + +@article{zhu2021swarm, + title={基于AirSim平台的无人机蜂群侦察搜索仿真与分析}, + author={朱博顺 and 王成钢 and 井田 and others}, + journal={计算机应用}, + volume={41}, + number={S1}, + pages={196--201}, + year={2021} +} + +@article{zheng2025tracking, + title={基于AirSim实现对无人机的位置跟踪及编队控制}, + author={郑筱宇 and 胡敏 and 赵辉宏}, + journal={齐鲁工业大学学报}, + volume={39}, + number={5}, + pages={70--75}, + year={2025} +} + +@mastersthesis{long2023airsim, + title={基于Airsim的四旋翼无人机虚实交互平台技术研究}, + author={龙腾飞}, + school={西安工业大学}, + year={2023} +} + +@mastersthesis{feng2023distributed, + title={基于行为法的分布式无人机集群控制方法与仿真研究}, + author={冯一飞}, + school={吉林大学}, + year={2023} +} + +@mastersthesis{zhou2020obstacle, + title={基于AirSim仿真平台的无人机三维避障算法研究}, + author={周游}, + school={电子科技大学}, + year={2020} +} From 4610a9ddae1ef7a54b1ebcc822ad1ffdad11a1df Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:36:29 +0800 Subject: [PATCH 19/30] Create latexmkrc --- .../content/swarm/undergraduate/swarm/undergraduate/latexmkrc | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/latexmkrc diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/latexmkrc b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/latexmkrc new file mode 100644 index 0000000..c16136c --- /dev/null +++ b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/latexmkrc @@ -0,0 +1,3 @@ +$pdf_mode = 1; +$xelatex = 'xelatex -shell-escape -synctex=1 -interaction=nonstopmode'; +$clean_ext = "bbl blg aux dvi log nav out snm synctex.gz toc lof lot"; From 00a8588b1e2d4c5b58245e5089eea152ffbb2703 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:36:46 +0800 Subject: [PATCH 20/30] Create .gitignore --- .../undergraduate/swarm/undergraduate/.gitignore | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore new file mode 100644 index 0000000..0eeb321 --- /dev/null +++ b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore @@ -0,0 +1,11 @@ +*.aux +*.log +*.out +*.toc +*.bbl +*.blg +*.pdf +*.synctex.gz +*.fls +*.fdb_latexmk +*.xdv From c5fb603659263c27ccf0e165aef53eaaa8f33a36 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:40:47 +0800 Subject: [PATCH 21/30] Delete swarm directory --- swarm/README.md | 5 - swarm/undergraduate/README.md | 5 - .../swarm/undergraduate/hutbthesis_main.tex | 39 -------- .../swarm/undergraduate/hutbthesis.cls | 73 --------------- .../swarm/undergraduate/content/chapter01.tex | 91 ------------------- .../swarm/undergraduate/content/abstract.tex | 11 --- .../content/acknowledgements.tex | 11 --- .../content/swarm/undergraduate/reference.bib | 56 ------------ .../swarm/undergraduate/latexmkrc | 3 - .../swarm/undergraduate/.gitignore | 11 --- 10 files changed, 305 deletions(-) delete mode 100644 swarm/README.md delete mode 100644 swarm/undergraduate/README.md delete mode 100644 swarm/undergraduate/swarm/undergraduate/hutbthesis_main.tex delete mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls delete mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex delete mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex delete mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex delete mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib delete mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/latexmkrc delete mode 100644 swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore diff --git a/swarm/README.md b/swarm/README.md deleted file mode 100644 index ec9cfb5..0000000 --- a/swarm/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 基于 AirSim 的无人机集群仿真软件性能优化 - -1. 测试优化之前 Unreal 环境下运行的性能; -2. 对比改进之后的性能,不同硬件所能支持的最大无人机数; -3. 代码集成到现有无人机模拟器 [air](https://github.com/OpenHUTB/air) 中; \ No newline at end of file diff --git a/swarm/undergraduate/README.md b/swarm/undergraduate/README.md deleted file mode 100644 index dc5cf40..0000000 --- a/swarm/undergraduate/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 无人机集群仿真性能优化 -作者:刘文杰 (2209040027) -导师:王海东 - -文件夹结构正确创建。 diff --git a/swarm/undergraduate/swarm/undergraduate/hutbthesis_main.tex b/swarm/undergraduate/swarm/undergraduate/hutbthesis_main.tex deleted file mode 100644 index c58e404..0000000 --- a/swarm/undergraduate/swarm/undergraduate/hutbthesis_main.tex +++ /dev/null @@ -1,39 +0,0 @@ -% !TeX program = xelatex -% !TeX encoding = UTF-8 - -\documentclass{hutbthesis} - -% 论文信息 -\titlecn{基于AirSim的无人机集群仿真软件性能优化} -\titleen{Performance Optimization of UAV Swarm Simulation Software Based on AirSim} -\author{刘文杰} -\studentid{2209040027} -\college{智能机器人学院} -\major{机器人工程} -\class{2201} -\supervisor{王海东} -\date{2026年5月} - -\begin{document} - -% 封面 -\maketitle - -% 摘要 -\include{content/abstract} - -% 目录 -\tableofcontents - -% 正文 -\mainmatter -\include{content/chapter01} % 第一章 -% 后续章节需要时再添加 - -% 参考文献 -\bibliography{reference} - -% 致谢 -\include{content/acknowledgements} - -\end{document} diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls deleted file mode 100644 index 997bbcf..0000000 --- a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls +++ /dev/null @@ -1,73 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} -\ProvidesClass{hutbthesis}[2025/01/01 HUTB Thesis Template] - -\LoadClass[12pt,a4paper]{article} - -% 中文字体设置 -\usepackage{fontspec} -\setmainfont{Times New Roman} -\setCJKmainfont{SimSun} - -% 页面设置 -\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=2.5cm]{geometry} - -% 定义命令 -\newcommand{\titlecn}[1]{\def\@titlecn{#1}} -\newcommand{\titleen}[1]{\def\@titleen{#1}} -\newcommand{\author}[1]{\def\@author{#1}} -\newcommand{\studentid}[1]{\def\@studentid{#1}} -\newcommand{\college}[1]{\def\@college{#1}} -\newcommand{\major}[1]{\def\@major{#1}} -\newcommand{\class}[1]{\def\@class{#1}} -\newcommand{\supervisor}[1]{\def\@supervisor{#1}} - -% 封面 -\newcommand{\maketitle}{ - \begin{titlepage} - \centering - \vspace*{2cm} - {\zihao{1} \heiti 湖南工商大学\\} - \vspace{1cm} - {\zihao{2} \heiti 本科毕业设计(论文)\\} - \vspace{3cm} - {\zihao{2} \heiti \@titlecn\\} - \vspace{1cm} - {\zihao{3} \heiti \@titleen\\} - \vspace{3cm} - {\zihao{4} \songti - 学\hspace{2em}院:\@college\\ - 专\hspace{2em}业:\@major\\ - 班\hspace{2em}级:\@class\\ - 学\hspace{2em}号:\@studentid\\ - 姓\hspace{2em}名:\@author\\ - 指导教师:\@supervisor\\} - \vspace{2cm} - {\zihao{4} \@date} - \end{titlepage} -} - -% 章节设置 -\usepackage{titlesec} -\titleformat{\chapter}{\centering\zihao{3}\heiti}{第\chinese{chapter}章}{1em}{} - -% 摘要环境 -\newenvironment{abstractcn}{ - \chapter*{摘要} - \addcontentsline{toc}{chapter}{摘要} -}{} -\newenvironment{abstracten}{ - \chapter*{ABSTRACT} - \addcontentsline{toc}{chapter}{ABSTRACT} -}{} -\newcommand{\keywords}[1]{\par\vspace{1em}\noindent\textbf{关键词:}#1} - -% 致谢环境 -\newenvironment{acknowledgements}{ - \chapter*{致谢} - \addcontentsline{toc}{chapter}{致谢} -}{} - -% 参考文献 -\usepackage[backend=biber,style=gb7714-2015]{biblatex} - -\endinput diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex deleted file mode 100644 index 594146f..0000000 --- a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex +++ /dev/null @@ -1,91 +0,0 @@ -\chapter{绪论} -\label{chap:introduction} - -\section{研究背景与意义} -\label{sec:background} - -随着无人机技术的快速发展,无人机集群在军事侦察、物流配送、协同测绘、灾害救援等领域的应用日益广泛。集群无人机能够通过协同合作完成复杂任务,具有效率高、灵活性好、鲁棒性强等优势。然而,大规模无人机集群的实际部署与测试面临着成本高昂、安全性难以保障、环境条件受限等挑战。在此背景下,高保真仿真技术成为验证无人机集群算法、评估系统性能的重要手段。 - -AirSim是由微软发布的一款开源、高保真无人机与自动驾驶仿真平台,基于游戏引擎(Unreal Engine/Unity)构建,提供逼真的物理引擎、传感器模拟和灵活的控制接口。凭借其开源特性、高物理逼真度以及与机器人操作系统(ROS)的良好兼容性,AirSim已成为无人机相关研究领域的重要工具,被广泛应用于路径规划、视觉导航、控制算法等多个研究方向。 - -然而,随着无人机集群规模的扩大,AirSim在仿真效率方面暴露出明显瓶颈。现有研究表明,当仿真无人机数量超过18-20架时,系统会出现帧率(FPS)断崖式下跌、仿真延迟显著增加、CPU内核态时间占比异常升高等现象,严重制约了仿真系统的实时性和准确性。这一性能瓶颈限制了AirSim在大规模无人机集群协同算法验证与性能评估中的应用价值,使得研究人员难以在仿真环境中开展大规模的集群行为研究和算法测试。 - -本研究旨在深入分析并优化AirSim在多无人机集群仿真中的性能问题。该研究的价值主要体现在以下三个方面: - -\textbf{理论价值}方面,本研究通过深入剖析高并发实时仿真系统的性能退化机理,聚焦于操作系统线程调度机制、CPU内核态与用户态切换开销、自旋等待算法在超线程环境下的异常行为等核心问题,为仿真系统性能建模提供新的理论视角和案例支撑。 - -\textbf{应用价值}方面,研究成果将直接提升AirSim平台支持大规模无人机集群仿真的能力。通过性能优化,能够为路径规划、编队控制、协同感知等集群算法的研发与测试提供更稳定、高效的仿真环境,降低实机测试成本与风险,加速无人机集群技术的落地应用进程。 - -\textbf{实践价值}方面,本研究遵循``问题定位-方案设计-实验验证''的完整工程研究路径。研究过程中对AirSim源码的深入分析、多种线程模型的对比实现以及系统化的性能评估方法,可为后续研究者进行类似的仿真平台性能调优提供可复现的技术范式和实践参考。 - -\section{国内外研究现状} -\label{sec:literature} - -无人机集群仿真技术经历了从单机模拟到分布式协同仿真的发展过程。早期研究多集中于单机动力学建模与控制算法验证,如张旭(2021)对无人机导航卡尔曼滤波算法的改进研究。随着集群概念的兴起,分布式仿真成为研究热点,伍智锋(2003)较早开展了分布式飞行仿真技术研究,为多实体协同仿真奠定了基础。 - -在仿真平台发展方面,当前主流的无人机仿真平台可分为两大类:一类是基于游戏引擎的高保真视觉仿真平台,如AirSim、CARLA;另一类是侧重于动力学与通信的轻量化仿真环境,如Gazebo with ROS。方仪豪等(2025)在多旋翼无人机仿真平台综述中指出,AirSim凭借其出色的图形渲染保真度和灵活的API接口,在视觉相关算法测试中占据优势,但其在多机仿真效率方面存在挑战。 - -在AirSim平台的应用研究方面,近年来涌现出大量研究成果。在控制与编队领域,郑筱宇等(2025)基于AirSim实现了无人机位置跟踪与编队控制;席建祥等(2025)研究了协同性能约束下的四旋翼无人机集群预设性能优化编队控制。在感知与规划领域,方璨琦(2023)利用AirSim进行基于深度强化学习的无人机路径规划研究;周游(2020)基于该平台研究无人机三维避障算法。在集群协同领域,刘彦辰等(2024)研究了基于改进SVO的分布式旋翼无人机集群避碰规划;石辅天等(2023)和朱博顺等(2021)分别利用AirSim进行多无人机协同搜索与蜂群侦察搜索的仿真研究。 - -然而,上述研究多数仿真规模有限,当仿真实体数量增加时,性能问题开始凸显。章铭泽(2025)在集群组网通信仿真研究中提到了仿真效率的重要性;龙腾飞(2023)在研究AirSim虚实交互平台时,也涉及了系统实时性问题。这些研究侧面反映了对AirSim进行性能优化的潜在需求。 - -在并发仿真性能优化方面,高性能并发仿真的核心挑战在于资源管理与任务调度。在分布式仿真领域,冯一飞(2023)研究了基于行为法的分布式集群控制与仿真,通过分布式架构分摊计算负载;郭首江(2021)从网络协议层面对无人机集群接入控制进行了性能优化研究。在单系统多线程优化层面,性能瓶颈常出现在线程同步与等待机制上。不当的线程睡眠或自旋策略会导致频繁的上下文切换和极高的内核态CPU占用,这正是高并发实时系统的大忌。 - -尽管已有研究关注无人机集群仿真和AirSim平台应用,但针对AirSim这一具体平台的线程级性能深入分析与优化的系统性研究尚显不足。现有文献大多将性能问题作为现象提及,缺乏对其根本原因的深入剖析和有效解决方案的提出。这正是本研究的切入点。 - -\section{研究内容与目标} -\label{sec:research-content} - -本研究的主要目标是系统分析AirSim在多无人机集群仿真中的性能瓶颈,设计并实现高效的线程调度优化方案,显著提升AirSim支持大规模无人机集群仿真的能力。具体研究内容包括: - -\begin{enumerate} - \item \textbf{性能瓶颈分析与定位}:构建多无人机仿真测试环境,复现性能问题现象;使用性能剖析工具深入分析系统运行时的CPU使用情况,特别是内核态与用户态时间占比;通过代码审查与理论分析,定位性能瓶颈的根本原因。 - - \item \textbf{线程模型优化方案设计}:基于瓶颈分析结果,设计多种线程调度优化方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待五种策略;分析各方案在不同并发场景下的适用性和优劣。 - - \item \textbf{方案实现与系统集成}:在AirSim源码中实现上述优化方案,确保代码的正确性和兼容性;设计灵活的配置机制,便于不同方案的切换和对比测试。 - - \item \textbf{实验评估与方案优选}:设计系统化的实验方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果;通过对比分析,选择最优方案,并分析其性能提升机理。 - - \item \textbf{优化效果验证与总结}:在实际应用场景中验证最优方案的优化效果,总结研究经验,形成可推广的仿真平台性能优化范式。 -\end{enumerate} - -\section{技术路线与研究方法} -\label{sec:methodology} - -本研究采用理论分析与实验验证相结合的技术路线,具体研究方法如下: - -\begin{enumerate} - \item \textbf{文献研究法}:系统梳理无人机集群仿真、AirSim平台应用、多线程调度优化等相关领域的研究成果,明确研究现状、热点问题和未来趋势,为本研究提供理论基础和方向指导。 - - \item \textbf{实验分析法}:设计控制变量实验,逐步增加仿真无人机数量,观测系统性能变化趋势;使用Windows Performance Analyzer、Linux perf等性能剖析工具监控系统运行状态,定位性能瓶颈。 - - \item \textbf{原型系统法}:修改AirSim源码,实现多种线程调度优化方案;构建可配置的测试框架,确保实验的可重复性和可比性。 - - \item \textbf{定量评估法}:定义帧率(FPS)、任务执行偏差时间、CPU内核态时间占比等关键性能指标;设计标准化的测试流程和数据采集方法;使用统计分析方法处理实验数据,得出科学结论。 - - \item \textbf{对比研究法}:通过横向对比五种优化方案在不同测试场景下的表现,分析各方案的优缺点;通过纵向对比优化前后的系统性能,验证优化效果。 -\end{enumerate} - -技术路线遵循``需求分析→问题定位→方案设计→系统实现→测试评估→优化迭代''的循环过程,确保研究的系统性和完整性。 - -\section{论文结构安排} -\label{sec:structure} - -本文共分为六章,具体结构安排如下: - -第一章为绪论,主要介绍研究背景与意义、国内外研究现状、研究内容与目标、技术路线与研究方法,以及论文的结构安排。 - -第二章为相关理论与技术基础,概述无人机集群仿真技术,分析AirSim仿真平台架构,介绍多线程调度与并发编程基础,以及系统性能评估方法。 - -第三章为AirSim集群仿真性能瓶颈分析与定位,详细描述多无人机仿真测试环境的构建过程,复现性能问题现象,使用性能剖析工具定位瓶颈,并深入分析其根本原因。 - -第四章为基于线程模型重构的性能优化方法,详细阐述五种线程等待策略的设计原则和实现方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待,并介绍其在AirSim源码中的集成方法。 - -第五章为实验评估与分析,详细介绍实验环境和测试方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果,并进行综合对比与优选。 - -第六章为总结与展望,总结研究工作、主要创新点和存在问题,并提出未来的改进方向和研究展望。 - -论文最后为参考文献、致谢和附录部分,附录包含实验数据表、核心代码片段和测试环境配置详情等补充材料。 - -通过以上结构安排,本文系统性地展示了从问题发现到方案设计再到实验验证的完整研究过程,为无人机集群仿真软件性能优化提供了理论指导和实践参考。 diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex deleted file mode 100644 index 2c0ea29..0000000 --- a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex +++ /dev/null @@ -1,11 +0,0 @@ -\begin{abstractcn} -随着无人机集群技术的发展,高保真仿真平台成为验证集群算法的重要手段。AirSim作为主流仿真平台,在多无人机场景下存在性能瓶颈。本文深入分析AirSim在多机仿真中的性能问题,定位其根源在于低效的线程调度机制。通过设计并实现五种线程优化方案,显著提升了仿真规模上限。实验结果表明,优化后的系统支持无人机数量从18架提升至210架,为大规模集群算法验证提供了高效仿真环境。 - -\keywords{无人机集群;仿真平台;性能优化;线程调度;AirSim} -\end{abstractcn} - -\begin{abstracten} -With the development of UAV swarm technology, high-fidelity simulation platforms have become important for validating swarm algorithms. AirSim, as a mainstream simulation platform, exhibits performance bottlenecks in multi-UAV scenarios. This paper deeply analyzes the performance issues of AirSim in multi-drone simulation, identifying the root cause as inefficient thread scheduling mechanisms. By designing and implementing five thread optimization schemes, the simulation scale limit is significantly improved. Experimental results show that the optimized system supports an increase in UAV count from 18 to 210, providing an efficient simulation environment for large-scale swarm algorithm validation. - -\keywords{UAV Swarm; Simulation Platform; Performance Optimization; Thread Scheduling; AirSim} -\end{abstracten} diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex deleted file mode 100644 index 6ac79bb..0000000 --- a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex +++ /dev/null @@ -1,11 +0,0 @@ -\begin{acknowledgements} -衷心感谢我的导师王海东副教授在整个毕业设计过程中给予的悉心指导与宝贵建议。王老师严谨的治学态度、深厚的专业知识和耐心的指导,使我受益匪浅。 - -感谢智能机器人学院所有老师的教诲与帮助,为我奠定了扎实的专业基础。 - -感谢在论文研究和撰写过程中提供支持的同学与朋友们,你们的建议和鼓励是我前进的动力。 - -最后,感谢各位评审老师在百忙之中审阅我的论文并提出宝贵意见。 - -由于作者水平有限,文中难免存在疏漏和不足之处,恳请各位老师和同学批评指正。 -\end{acknowledgements} diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib deleted file mode 100644 index 1e0b63a..0000000 --- a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib +++ /dev/null @@ -1,56 +0,0 @@ -@article{fang2025survey, - title={多旋翼无人机仿真平台综述}, - author={方仪豪 and 邹丹平}, - journal={计算机工程}, - year={2025}, - note={已录用} -} - -@inproceedings{shi2023airsim, - title={基于AirSim的多无人机协同搜索分布式仿真研究}, - author={石辅天 and 王龙飞 and 童鹏飞 and others}, - booktitle={第24届中国系统仿真技术及其应用学术年会论文集}, - pages={47--53}, - year={2023} -} - -@article{zhu2021swarm, - title={基于AirSim平台的无人机蜂群侦察搜索仿真与分析}, - author={朱博顺 and 王成钢 and 井田 and others}, - journal={计算机应用}, - volume={41}, - number={S1}, - pages={196--201}, - year={2021} -} - -@article{zheng2025tracking, - title={基于AirSim实现对无人机的位置跟踪及编队控制}, - author={郑筱宇 and 胡敏 and 赵辉宏}, - journal={齐鲁工业大学学报}, - volume={39}, - number={5}, - pages={70--75}, - year={2025} -} - -@mastersthesis{long2023airsim, - title={基于Airsim的四旋翼无人机虚实交互平台技术研究}, - author={龙腾飞}, - school={西安工业大学}, - year={2023} -} - -@mastersthesis{feng2023distributed, - title={基于行为法的分布式无人机集群控制方法与仿真研究}, - author={冯一飞}, - school={吉林大学}, - year={2023} -} - -@mastersthesis{zhou2020obstacle, - title={基于AirSim仿真平台的无人机三维避障算法研究}, - author={周游}, - school={电子科技大学}, - year={2020} -} diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/latexmkrc b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/latexmkrc deleted file mode 100644 index c16136c..0000000 --- a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/latexmkrc +++ /dev/null @@ -1,3 +0,0 @@ -$pdf_mode = 1; -$xelatex = 'xelatex -shell-escape -synctex=1 -interaction=nonstopmode'; -$clean_ext = "bbl blg aux dvi log nav out snm synctex.gz toc lof lot"; diff --git a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore b/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore deleted file mode 100644 index 0eeb321..0000000 --- a/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -*.aux -*.log -*.out -*.toc -*.bbl -*.blg -*.pdf -*.synctex.gz -*.fls -*.fdb_latexmk -*.xdv From fa0f399d76726f5a6211eae6a8250d7dcc9f8326 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:41:47 +0800 Subject: [PATCH 22/30] Create .gitkeep --- swarm/undergraduate/content/.gitkeep | 1 + 1 file changed, 1 insertion(+) create mode 100644 swarm/undergraduate/content/.gitkeep diff --git a/swarm/undergraduate/content/.gitkeep b/swarm/undergraduate/content/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/swarm/undergraduate/content/.gitkeep @@ -0,0 +1 @@ + From 8a8ec3623b5b137d91b7a57dfdbcf813a9f2c9f2 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:43:14 +0800 Subject: [PATCH 23/30] Create hutbthesis_main.tex --- .../swarm/undergraduate/hutbthesis_main.tex | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 swarm/undergraduate/content/swarm/undergraduate/hutbthesis_main.tex diff --git a/swarm/undergraduate/content/swarm/undergraduate/hutbthesis_main.tex b/swarm/undergraduate/content/swarm/undergraduate/hutbthesis_main.tex new file mode 100644 index 0000000..c58e404 --- /dev/null +++ b/swarm/undergraduate/content/swarm/undergraduate/hutbthesis_main.tex @@ -0,0 +1,39 @@ +% !TeX program = xelatex +% !TeX encoding = UTF-8 + +\documentclass{hutbthesis} + +% 论文信息 +\titlecn{基于AirSim的无人机集群仿真软件性能优化} +\titleen{Performance Optimization of UAV Swarm Simulation Software Based on AirSim} +\author{刘文杰} +\studentid{2209040027} +\college{智能机器人学院} +\major{机器人工程} +\class{2201} +\supervisor{王海东} +\date{2026年5月} + +\begin{document} + +% 封面 +\maketitle + +% 摘要 +\include{content/abstract} + +% 目录 +\tableofcontents + +% 正文 +\mainmatter +\include{content/chapter01} % 第一章 +% 后续章节需要时再添加 + +% 参考文献 +\bibliography{reference} + +% 致谢 +\include{content/acknowledgements} + +\end{document} From c154e1a792518e96188efb81400d1e3ab7ce098f Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:44:22 +0800 Subject: [PATCH 24/30] Create chapter01.tex --- .../swarm/undergraduate/content/chapter01.tex | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex diff --git a/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex new file mode 100644 index 0000000..594146f --- /dev/null +++ b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/chapter01.tex @@ -0,0 +1,91 @@ +\chapter{绪论} +\label{chap:introduction} + +\section{研究背景与意义} +\label{sec:background} + +随着无人机技术的快速发展,无人机集群在军事侦察、物流配送、协同测绘、灾害救援等领域的应用日益广泛。集群无人机能够通过协同合作完成复杂任务,具有效率高、灵活性好、鲁棒性强等优势。然而,大规模无人机集群的实际部署与测试面临着成本高昂、安全性难以保障、环境条件受限等挑战。在此背景下,高保真仿真技术成为验证无人机集群算法、评估系统性能的重要手段。 + +AirSim是由微软发布的一款开源、高保真无人机与自动驾驶仿真平台,基于游戏引擎(Unreal Engine/Unity)构建,提供逼真的物理引擎、传感器模拟和灵活的控制接口。凭借其开源特性、高物理逼真度以及与机器人操作系统(ROS)的良好兼容性,AirSim已成为无人机相关研究领域的重要工具,被广泛应用于路径规划、视觉导航、控制算法等多个研究方向。 + +然而,随着无人机集群规模的扩大,AirSim在仿真效率方面暴露出明显瓶颈。现有研究表明,当仿真无人机数量超过18-20架时,系统会出现帧率(FPS)断崖式下跌、仿真延迟显著增加、CPU内核态时间占比异常升高等现象,严重制约了仿真系统的实时性和准确性。这一性能瓶颈限制了AirSim在大规模无人机集群协同算法验证与性能评估中的应用价值,使得研究人员难以在仿真环境中开展大规模的集群行为研究和算法测试。 + +本研究旨在深入分析并优化AirSim在多无人机集群仿真中的性能问题。该研究的价值主要体现在以下三个方面: + +\textbf{理论价值}方面,本研究通过深入剖析高并发实时仿真系统的性能退化机理,聚焦于操作系统线程调度机制、CPU内核态与用户态切换开销、自旋等待算法在超线程环境下的异常行为等核心问题,为仿真系统性能建模提供新的理论视角和案例支撑。 + +\textbf{应用价值}方面,研究成果将直接提升AirSim平台支持大规模无人机集群仿真的能力。通过性能优化,能够为路径规划、编队控制、协同感知等集群算法的研发与测试提供更稳定、高效的仿真环境,降低实机测试成本与风险,加速无人机集群技术的落地应用进程。 + +\textbf{实践价值}方面,本研究遵循``问题定位-方案设计-实验验证''的完整工程研究路径。研究过程中对AirSim源码的深入分析、多种线程模型的对比实现以及系统化的性能评估方法,可为后续研究者进行类似的仿真平台性能调优提供可复现的技术范式和实践参考。 + +\section{国内外研究现状} +\label{sec:literature} + +无人机集群仿真技术经历了从单机模拟到分布式协同仿真的发展过程。早期研究多集中于单机动力学建模与控制算法验证,如张旭(2021)对无人机导航卡尔曼滤波算法的改进研究。随着集群概念的兴起,分布式仿真成为研究热点,伍智锋(2003)较早开展了分布式飞行仿真技术研究,为多实体协同仿真奠定了基础。 + +在仿真平台发展方面,当前主流的无人机仿真平台可分为两大类:一类是基于游戏引擎的高保真视觉仿真平台,如AirSim、CARLA;另一类是侧重于动力学与通信的轻量化仿真环境,如Gazebo with ROS。方仪豪等(2025)在多旋翼无人机仿真平台综述中指出,AirSim凭借其出色的图形渲染保真度和灵活的API接口,在视觉相关算法测试中占据优势,但其在多机仿真效率方面存在挑战。 + +在AirSim平台的应用研究方面,近年来涌现出大量研究成果。在控制与编队领域,郑筱宇等(2025)基于AirSim实现了无人机位置跟踪与编队控制;席建祥等(2025)研究了协同性能约束下的四旋翼无人机集群预设性能优化编队控制。在感知与规划领域,方璨琦(2023)利用AirSim进行基于深度强化学习的无人机路径规划研究;周游(2020)基于该平台研究无人机三维避障算法。在集群协同领域,刘彦辰等(2024)研究了基于改进SVO的分布式旋翼无人机集群避碰规划;石辅天等(2023)和朱博顺等(2021)分别利用AirSim进行多无人机协同搜索与蜂群侦察搜索的仿真研究。 + +然而,上述研究多数仿真规模有限,当仿真实体数量增加时,性能问题开始凸显。章铭泽(2025)在集群组网通信仿真研究中提到了仿真效率的重要性;龙腾飞(2023)在研究AirSim虚实交互平台时,也涉及了系统实时性问题。这些研究侧面反映了对AirSim进行性能优化的潜在需求。 + +在并发仿真性能优化方面,高性能并发仿真的核心挑战在于资源管理与任务调度。在分布式仿真领域,冯一飞(2023)研究了基于行为法的分布式集群控制与仿真,通过分布式架构分摊计算负载;郭首江(2021)从网络协议层面对无人机集群接入控制进行了性能优化研究。在单系统多线程优化层面,性能瓶颈常出现在线程同步与等待机制上。不当的线程睡眠或自旋策略会导致频繁的上下文切换和极高的内核态CPU占用,这正是高并发实时系统的大忌。 + +尽管已有研究关注无人机集群仿真和AirSim平台应用,但针对AirSim这一具体平台的线程级性能深入分析与优化的系统性研究尚显不足。现有文献大多将性能问题作为现象提及,缺乏对其根本原因的深入剖析和有效解决方案的提出。这正是本研究的切入点。 + +\section{研究内容与目标} +\label{sec:research-content} + +本研究的主要目标是系统分析AirSim在多无人机集群仿真中的性能瓶颈,设计并实现高效的线程调度优化方案,显著提升AirSim支持大规模无人机集群仿真的能力。具体研究内容包括: + +\begin{enumerate} + \item \textbf{性能瓶颈分析与定位}:构建多无人机仿真测试环境,复现性能问题现象;使用性能剖析工具深入分析系统运行时的CPU使用情况,特别是内核态与用户态时间占比;通过代码审查与理论分析,定位性能瓶颈的根本原因。 + + \item \textbf{线程模型优化方案设计}:基于瓶颈分析结果,设计多种线程调度优化方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待五种策略;分析各方案在不同并发场景下的适用性和优劣。 + + \item \textbf{方案实现与系统集成}:在AirSim源码中实现上述优化方案,确保代码的正确性和兼容性;设计灵活的配置机制,便于不同方案的切换和对比测试。 + + \item \textbf{实验评估与方案优选}:设计系统化的实验方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果;通过对比分析,选择最优方案,并分析其性能提升机理。 + + \item \textbf{优化效果验证与总结}:在实际应用场景中验证最优方案的优化效果,总结研究经验,形成可推广的仿真平台性能优化范式。 +\end{enumerate} + +\section{技术路线与研究方法} +\label{sec:methodology} + +本研究采用理论分析与实验验证相结合的技术路线,具体研究方法如下: + +\begin{enumerate} + \item \textbf{文献研究法}:系统梳理无人机集群仿真、AirSim平台应用、多线程调度优化等相关领域的研究成果,明确研究现状、热点问题和未来趋势,为本研究提供理论基础和方向指导。 + + \item \textbf{实验分析法}:设计控制变量实验,逐步增加仿真无人机数量,观测系统性能变化趋势;使用Windows Performance Analyzer、Linux perf等性能剖析工具监控系统运行状态,定位性能瓶颈。 + + \item \textbf{原型系统法}:修改AirSim源码,实现多种线程调度优化方案;构建可配置的测试框架,确保实验的可重复性和可比性。 + + \item \textbf{定量评估法}:定义帧率(FPS)、任务执行偏差时间、CPU内核态时间占比等关键性能指标;设计标准化的测试流程和数据采集方法;使用统计分析方法处理实验数据,得出科学结论。 + + \item \textbf{对比研究法}:通过横向对比五种优化方案在不同测试场景下的表现,分析各方案的优缺点;通过纵向对比优化前后的系统性能,验证优化效果。 +\end{enumerate} + +技术路线遵循``需求分析→问题定位→方案设计→系统实现→测试评估→优化迭代''的循环过程,确保研究的系统性和完整性。 + +\section{论文结构安排} +\label{sec:structure} + +本文共分为六章,具体结构安排如下: + +第一章为绪论,主要介绍研究背景与意义、国内外研究现状、研究内容与目标、技术路线与研究方法,以及论文的结构安排。 + +第二章为相关理论与技术基础,概述无人机集群仿真技术,分析AirSim仿真平台架构,介绍多线程调度与并发编程基础,以及系统性能评估方法。 + +第三章为AirSim集群仿真性能瓶颈分析与定位,详细描述多无人机仿真测试环境的构建过程,复现性能问题现象,使用性能剖析工具定位瓶颈,并深入分析其根本原因。 + +第四章为基于线程模型重构的性能优化方法,详细阐述五种线程等待策略的设计原则和实现方案,包括单线程分发器、标准阻塞睡眠、协作式让出、改良自旋等待和纯自旋等待,并介绍其在AirSim源码中的集成方法。 + +第五章为实验评估与分析,详细介绍实验环境和测试方案,从微观定时精度、集成准确性、仿真规模上限、CPU资源使用等多个维度评估各优化方案的效果,并进行综合对比与优选。 + +第六章为总结与展望,总结研究工作、主要创新点和存在问题,并提出未来的改进方向和研究展望。 + +论文最后为参考文献、致谢和附录部分,附录包含实验数据表、核心代码片段和测试环境配置详情等补充材料。 + +通过以上结构安排,本文系统性地展示了从问题发现到方案设计再到实验验证的完整研究过程,为无人机集群仿真软件性能优化提供了理论指导和实践参考。 From 7a2b939bde9fb67c2d6b2a0eed1378821d7c79d5 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:44:47 +0800 Subject: [PATCH 25/30] Create abstract.tex --- .../content/swarm/undergraduate/content/abstract.tex | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex diff --git a/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex new file mode 100644 index 0000000..2c0ea29 --- /dev/null +++ b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/abstract.tex @@ -0,0 +1,11 @@ +\begin{abstractcn} +随着无人机集群技术的发展,高保真仿真平台成为验证集群算法的重要手段。AirSim作为主流仿真平台,在多无人机场景下存在性能瓶颈。本文深入分析AirSim在多机仿真中的性能问题,定位其根源在于低效的线程调度机制。通过设计并实现五种线程优化方案,显著提升了仿真规模上限。实验结果表明,优化后的系统支持无人机数量从18架提升至210架,为大规模集群算法验证提供了高效仿真环境。 + +\keywords{无人机集群;仿真平台;性能优化;线程调度;AirSim} +\end{abstractcn} + +\begin{abstracten} +With the development of UAV swarm technology, high-fidelity simulation platforms have become important for validating swarm algorithms. AirSim, as a mainstream simulation platform, exhibits performance bottlenecks in multi-UAV scenarios. This paper deeply analyzes the performance issues of AirSim in multi-drone simulation, identifying the root cause as inefficient thread scheduling mechanisms. By designing and implementing five thread optimization schemes, the simulation scale limit is significantly improved. Experimental results show that the optimized system supports an increase in UAV count from 18 to 210, providing an efficient simulation environment for large-scale swarm algorithm validation. + +\keywords{UAV Swarm; Simulation Platform; Performance Optimization; Thread Scheduling; AirSim} +\end{abstracten} From 64c32aedd8d1174cee84a56d6104d4ce4410b9e6 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:45:14 +0800 Subject: [PATCH 26/30] Create acknowledgements.tex --- .../swarm/undergraduate/content/acknowledgements.tex | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex diff --git a/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex new file mode 100644 index 0000000..6ac79bb --- /dev/null +++ b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/acknowledgements.tex @@ -0,0 +1,11 @@ +\begin{acknowledgements} +衷心感谢我的导师王海东副教授在整个毕业设计过程中给予的悉心指导与宝贵建议。王老师严谨的治学态度、深厚的专业知识和耐心的指导,使我受益匪浅。 + +感谢智能机器人学院所有老师的教诲与帮助,为我奠定了扎实的专业基础。 + +感谢在论文研究和撰写过程中提供支持的同学与朋友们,你们的建议和鼓励是我前进的动力。 + +最后,感谢各位评审老师在百忙之中审阅我的论文并提出宝贵意见。 + +由于作者水平有限,文中难免存在疏漏和不足之处,恳请各位老师和同学批评指正。 +\end{acknowledgements} From d4159cc2b216888931a86fe9203cca702cea30bf Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:45:38 +0800 Subject: [PATCH 27/30] Create reference.bib --- .../content/swarm/undergraduate/reference.bib | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib diff --git a/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib new file mode 100644 index 0000000..1e0b63a --- /dev/null +++ b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/reference.bib @@ -0,0 +1,56 @@ +@article{fang2025survey, + title={多旋翼无人机仿真平台综述}, + author={方仪豪 and 邹丹平}, + journal={计算机工程}, + year={2025}, + note={已录用} +} + +@inproceedings{shi2023airsim, + title={基于AirSim的多无人机协同搜索分布式仿真研究}, + author={石辅天 and 王龙飞 and 童鹏飞 and others}, + booktitle={第24届中国系统仿真技术及其应用学术年会论文集}, + pages={47--53}, + year={2023} +} + +@article{zhu2021swarm, + title={基于AirSim平台的无人机蜂群侦察搜索仿真与分析}, + author={朱博顺 and 王成钢 and 井田 and others}, + journal={计算机应用}, + volume={41}, + number={S1}, + pages={196--201}, + year={2021} +} + +@article{zheng2025tracking, + title={基于AirSim实现对无人机的位置跟踪及编队控制}, + author={郑筱宇 and 胡敏 and 赵辉宏}, + journal={齐鲁工业大学学报}, + volume={39}, + number={5}, + pages={70--75}, + year={2025} +} + +@mastersthesis{long2023airsim, + title={基于Airsim的四旋翼无人机虚实交互平台技术研究}, + author={龙腾飞}, + school={西安工业大学}, + year={2023} +} + +@mastersthesis{feng2023distributed, + title={基于行为法的分布式无人机集群控制方法与仿真研究}, + author={冯一飞}, + school={吉林大学}, + year={2023} +} + +@mastersthesis{zhou2020obstacle, + title={基于AirSim仿真平台的无人机三维避障算法研究}, + author={周游}, + school={电子科技大学}, + year={2020} +} From a03d0d192c0482dd401d1c5351fb8a0f0eb3647e Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:46:07 +0800 Subject: [PATCH 28/30] Create hutbthesis.cls --- .../swarm/undergraduate/hutbthesis.cls | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls diff --git a/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls new file mode 100644 index 0000000..997bbcf --- /dev/null +++ b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/hutbthesis.cls @@ -0,0 +1,73 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{hutbthesis}[2025/01/01 HUTB Thesis Template] + +\LoadClass[12pt,a4paper]{article} + +% 中文字体设置 +\usepackage{fontspec} +\setmainfont{Times New Roman} +\setCJKmainfont{SimSun} + +% 页面设置 +\usepackage[top=2.5cm,bottom=2.5cm,left=3cm,right=2.5cm]{geometry} + +% 定义命令 +\newcommand{\titlecn}[1]{\def\@titlecn{#1}} +\newcommand{\titleen}[1]{\def\@titleen{#1}} +\newcommand{\author}[1]{\def\@author{#1}} +\newcommand{\studentid}[1]{\def\@studentid{#1}} +\newcommand{\college}[1]{\def\@college{#1}} +\newcommand{\major}[1]{\def\@major{#1}} +\newcommand{\class}[1]{\def\@class{#1}} +\newcommand{\supervisor}[1]{\def\@supervisor{#1}} + +% 封面 +\newcommand{\maketitle}{ + \begin{titlepage} + \centering + \vspace*{2cm} + {\zihao{1} \heiti 湖南工商大学\\} + \vspace{1cm} + {\zihao{2} \heiti 本科毕业设计(论文)\\} + \vspace{3cm} + {\zihao{2} \heiti \@titlecn\\} + \vspace{1cm} + {\zihao{3} \heiti \@titleen\\} + \vspace{3cm} + {\zihao{4} \songti + 学\hspace{2em}院:\@college\\ + 专\hspace{2em}业:\@major\\ + 班\hspace{2em}级:\@class\\ + 学\hspace{2em}号:\@studentid\\ + 姓\hspace{2em}名:\@author\\ + 指导教师:\@supervisor\\} + \vspace{2cm} + {\zihao{4} \@date} + \end{titlepage} +} + +% 章节设置 +\usepackage{titlesec} +\titleformat{\chapter}{\centering\zihao{3}\heiti}{第\chinese{chapter}章}{1em}{} + +% 摘要环境 +\newenvironment{abstractcn}{ + \chapter*{摘要} + \addcontentsline{toc}{chapter}{摘要} +}{} +\newenvironment{abstracten}{ + \chapter*{ABSTRACT} + \addcontentsline{toc}{chapter}{ABSTRACT} +}{} +\newcommand{\keywords}[1]{\par\vspace{1em}\noindent\textbf{关键词:}#1} + +% 致谢环境 +\newenvironment{acknowledgements}{ + \chapter*{致谢} + \addcontentsline{toc}{chapter}{致谢} +}{} + +% 参考文献 +\usepackage[backend=biber,style=gb7714-2015]{biblatex} + +\endinput From 99ebfab023ccf0a698497c7efad00c377d79c8ab Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:46:31 +0800 Subject: [PATCH 29/30] Create latexmkrc --- .../swarm/undergraduate/swarm/undergraduate/latexmkrc | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/latexmkrc diff --git a/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/latexmkrc b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/latexmkrc new file mode 100644 index 0000000..c16136c --- /dev/null +++ b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/latexmkrc @@ -0,0 +1,3 @@ +$pdf_mode = 1; +$xelatex = 'xelatex -shell-escape -synctex=1 -interaction=nonstopmode'; +$clean_ext = "bbl blg aux dvi log nav out snm synctex.gz toc lof lot"; From d35c0d79ba78fe1baa0344e3fd85755c479e3f81 Mon Sep 17 00:00:00 2001 From: EvilBatman <137277534+EvilBatman@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:46:54 +0800 Subject: [PATCH 30/30] Create .gitignore --- .../undergraduate/swarm/undergraduate/.gitignore | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore diff --git a/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore new file mode 100644 index 0000000..0eeb321 --- /dev/null +++ b/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/content/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/swarm/undergraduate/.gitignore @@ -0,0 +1,11 @@ +*.aux +*.log +*.out +*.toc +*.bbl +*.blg +*.pdf +*.synctex.gz +*.fls +*.fdb_latexmk +*.xdv