当前位置: 首页 > web >正文

2025年EAAI SCI1区TOP,贪婪策略粒子群算法GS-IPSO+无人机桥梁巡检覆盖路径规划,深度解析+性能实测

目录

    • 1.摘要
    • 2.无人机桥梁巡检模型
    • 3.GS-IPSO算法
    • 4.结果展示
    • 5.参考文献
    • 6.代码获取
    • 7.算法辅导·应用定制·读者交流


1.摘要

为提升无人机在桥梁巡检中的效率,针对冗余视角和频繁急转导致的低效问题,本文提出了一种全新覆盖路径规划模型。针对视角冗余问题,提出协同贪婪邻域(CGN)算法,通过Voronoi图对桥梁模型进行预处理,并综合考虑相机视场与云台角度等约束条件,优化巡检视角的分布,显著减少冗余视点数量。在解决无人机路径规划问题时,综合考虑了无人机与桥梁之间的碰撞风险、路径长度、陡升陡降频率及急转弯次数等因素,提出了一种基于贪婪策略改进的粒子群优化算法(Greedy Strategy-Improved PSO, GS-IPSO),用来实现路径的全局优化。

2.无人机桥梁巡检模型

桥面处理
为了有效解决后续视角优化问题,首先需要对获取到的桥梁模型的外部表面进行合理预处理。本文采用Voronoi图法对桥梁的外部表面进行处理,将桥面划分为相对均匀的三角网格,该方法不仅能够保留桥梁的几何特征,还能提高计算精度和网格的均匀性。

设三角形集合为 S = { s 1 , s 2 , s 3 , . . . , s n } S=\{s_{1},s_{2},s_{3},...,s_{n}\} S={s1,s2,s3,...,sn},定义每个三角形的三个顶点为 { A n , B n , C n } \{A_n,B_n,C_n\} {An,Bn,Cn},定义三角形的法向向量:
N n → = A n B n → × A n C n → \overrightarrow{N_n}=\overrightarrow{A_nB_n}\times\overrightarrow{A_nC_n} Nn =AnBn ×AnCn

视角生成

为获得最佳巡检效果并尽量减少因图像畸变或模糊导致的误差,必须确保每个巡检视角的朝向尽可能垂直于桥面。

摄像机角度

为解决这一问题,本文将相机在特定高度下的视场定义为一个矩形区域,并通过公式判断桥面三角网格的中心是否落入该视场,从而确定其是否被有效覆盖。

min ⁡ ∣ φ ∣ s . t . ∀ s ∈ S , p ∈ P , s ≺ p , φ = { ( x c , y c , z c ) } \begin{aligned} & \min|\varphi| \\ & s.t.\forall s\in S,p\in P,s\prec p,\varphi=\{(x_{c},y_{c},z_{c})\} \end{aligned} minφs.t.∀sS,pP,sp,φ={(xc,yc,zc)}

在桥梁巡检任务中,无人机需规划一条最优路径,依次访问所有巡检视角点,并最终返回起始位置。正常距离代价:
e i j = { ( x j − x i ) 2 + ( y j − y i ) 2 + ( z j − z i ) 2 , if  L i j = 1 ∞ , otherwise e_{ij} = \begin{cases} \sqrt{(x_j - x_i)^2 + (y_j - y_i)^2 + (z_j - z_i)^2}, & \text{if } L_{ij} = 1 \\ \infty, & \text{otherwise} \end{cases} eij={(xjxi)2+(yjyi)2+(zjzi)2 ,,if Lij=1otherwise

在桥梁巡检飞行过程中,无人机频繁出现急转弯不仅会增加能耗,还会延长任务执行时间,影响整体效率。
{ θ = arccos ⁡ ( ( p 3 − p 2 ) ⋅ ( p 2 − p 1 ) ∥ p 3 − p 2 ∥ ⋅ ∥ p 2 − p 1 ∥ ) a i = { 0 , if  i = 1 , 2 or  θ ≥ π 2 1 , otherwise N θ = ∑ i = 1 T − 2 a i \begin{cases} \theta = \arccos\left( \dfrac{(p_3 - p_2) \cdot (p_2 - p_1)}{\|p_3 - p_2\| \cdot \|p_2 - p_1\|} \right) \\[10pt] a_i = \begin{cases} 0, & \text{if } i = 1, 2 \text{ or } \theta \geq \dfrac{\pi}{2} \\ 1, & \text{otherwise} \end{cases} \\[10pt] N_\theta = \sum_{i=1}^{T-2} a_i \end{cases} θ=arccos(p3p2p2p1(p3p2)(p2p1))ai={0,1,if i=1,2 or θ2πotherwiseNθ=i=1T2ai

为了提升无人机飞行的稳定性并降低能耗,需控制其在执行任务过程中出现的剧烈垂直高度变化。
{ h i = { 0 , if  i = 1 or  ∣ h i − h i − 1 ∣ ≤ 3 1 , otherwise N h = ∑ i = 1 T − 1 h i \begin{cases} h_i = \begin{cases} 0, & \text{if } i = 1 \text{ or } |h_i - h_{i-1}| \leq 3 \\ 1, & \text{otherwise} \end{cases} \\[10pt] N_h = \sum_{i=1}^{T-1} h_i \end{cases} hi={0,1,if i=1 or hihi13otherwiseNh=i=1T1hi

总目标函数定义为:
min ⁡ J = κ 1 ∑ i = 1 e i , i + 1 + κ 2 ∑ i = 1 T − 2 a i + κ 3 ∑ i = 1 T − 1 h i s . t . ∀ i ∈ V , e i , i + 1 ∈ E v i s i t e d \begin{aligned} & \min J=\kappa_{1}\sum_{i=1}e_{i,i+1}+\kappa_{2}\sum_{i=1}^{T-2}a_{i}+\kappa_{3}\sum_{i=1}^{T-1}h_{i} \\ & s.t.\forall i\in\mathrm{V},\mathbf{e}_{i,i+1}\in\mathrm{E}_{\mathrm{visited}} \end{aligned} minJ=κ1i=1ei,i+1+κ2i=1T2ai+κ3i=1T1his.t.∀iV,ei,i+1Evisited

3.GS-IPSO算法

在 GS-IPSO 算法中,为提升粒子群的初始解质量,引入贪婪算法进行初始化。从候选点集合中随机选取一个起始点,并在每一步迭代中选择使路径代价函数最小的下一个点,逐步构建完整路径。每次选择后,所选点从候选集中剔除,直至所有点均被覆盖。

为提高算法在不同阶段的优化效果,GS-IPSO引入自适应因子动态调节粒子更新策略:
{ α 1 = 1 − t T early , if  t ≤ T early α 2 = 1 − t − T early T n − T early , otherwise \begin{cases} \alpha_1 = 1 - \dfrac{t}{T_{\text{early}}}, & \text{if } t \leq T_{\text{early}} \\[10pt] \alpha_2 = 1 - \dfrac{t - T_{\text{early}}}{T_n - T_{\text{early}}}, & \text{otherwise} \end{cases} α1=1Tearlyt,α2=1TnTearlytTearly,if tTearlyotherwise

为了进一步增强粒子的多样性,GS-IPSO允许以一定概率保留劣解,根据Metropolis准则,定义替换概率:
P ( J current → J new ) = { 1 , if  J new ≤ J current exp ⁡ ( J current − J new T temp ) , otherwise P(J_{\text{current}} \rightarrow J_{\text{new}}) = \begin{cases} 1, & \text{if } J_{\text{new}} \leq J_{\text{current}} \\[10pt] \exp\left( \dfrac{J_{\text{current}} - J_{\text{new}}}{T_{\text{temp}}} \right), & \text{otherwise} \end{cases} P(JcurrentJnew)= 1,exp(TtempJcurrentJnew),if JnewJcurrentotherwise

在优化过程中,首先评估每个粒子的适应度 J ( k ) J(k) J(k),并根据设定的阈值 GP 将其划分为优质粒子集( k b e s t ) k_\mathrm{best}) kbest)与劣质粒子集( k p o o r k_\mathrm{poor} kpoor)。优质粒子将优先参与交叉与变异操作,以提高解的质量。
在循环交叉操作中,从优质粒子集中随机选取两个不同的粒子,交换其在随机区间 [ m 1 , m 2 ] [m_1,m_2] [m1,m2]内的基因片段,生成两个新粒子。随后检查新个体是否存在基因冲突。接着对新生成的粒子执行变异操作:在随机区间 [ b 1 , b 2 ] [b_1,b_2] [b1,b2]内对基因序列进行反转。若变异后
适应度提升,则保留该个体;否则丢弃。
最后,采用轮盘赌选择法进行粒子筛选。适应度越高的粒子被用于替换的概率越大,而适应
度较低的粒子则史有可能进入下一代,从而在保留优秀解的同时保持种群多样性。

4.结果展示

论文结果

做了一个简单案例:


5.参考文献

[1] Li X, Chen Y, Chen Z, et al. Coverage path planning of bridge inspection with Unmanned aerial vehicle[J]. Engineering Applications of Artificial Intelligence, 2025, 156: 111253.

6.代码获取

xx

7.算法辅导·应用定制·读者交流

http://www.xdnf.cn/news/14203.html

相关文章:

  • 函数式编程 stream流 lambda表达式
  • event.target 详解:理解事件目标对象
  • 学习昇腾开发的第二天--PC机远程登录开发板
  • 大IPD之——华为的管理变革与战略转型之道(三)
  • 05-Linux软件安装与前后端项目部署
  • adoc(asciidoc)转为markdown的方法,把.adoc文件转换为markdown格式
  • PostgreSQL的扩展pg_visibility
  • 【办公类-25-05】20250514 Python模拟UIBOT上传园园通截图(自动最小化界面,时间部分的删除和黏贴)
  • 【CSS-13】CSS 网页布局三大机制详解:普通流、浮动与定位
  • 2.2 订阅话题
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(三)
  • 开源统一数据库管理平台完全指南:私有化部署方案与技术解析
  • 解决Spark4.0.0依赖问题
  • http的缓存问题
  • pytorch 实战二 CNN手写数字识别
  • Spring MVC 中日期格式转换的两种实用方法
  • Hive 性能优化:从表设计到查询执行的全链路优化
  • rust的main.rs和lib.rs该怎么写
  • 【项目实训#07】HarmonyOS API知识图谱构建与系统知识图谱后端实现
  • 【Qt】QStateMachine状态机-对状态机分组、历史状态,实现复杂状态机
  • 玩转Docker | 使用Docker部署Blinko个人笔记工具
  • 如何在FastAPI中构建一个既安全又灵活的多层级权限系统?
  • 刚学到一个使用共享软件而禁用弹窗的工具:微软电脑管家
  • 如何给Hexo-butterfly主题博客在复制时添加版权声明
  • 【图片转 3D 模型】北大·字节跳动·CMU携手——单图15 秒生成结构化3D模型!
  • 创客匠人视角:从外卖大战看创始人IP的差异化定位逻辑
  • veyon(电子教室管理) v4.9.6.1 官方版
  • n8n 从 Docker 到 Node.js 本地环境迁移指南
  • Linux Docker的环境配置与简单使用
  • 《高并发系统性能优化三板斧:缓存 + 异步 + 限流》