多无人机--强化学习
这个是我对于我的大创项目的构思,随着时间逐渐更新
项目概要
我们的项目平台来自挑战杯揭绑挂帅的无人机对抗项目,但是在由于时间原因,并未考虑强化学习,所以现在通过大创项目来弥补遗憾
我们项目分为三部分,分为虚拟机,态势系统,和运行程序端(使用主机)
虚拟机内包含各种无人机信息,并封装为接口供windows端控制
态势系统主要是用来显示战场的情况,使得态势可视化
运行程序端编写程序进行无人机控制
启动顺序为
虚拟机-》态势系统-》运行程序端
项目学习基础
强化学习:
学习马尔可夫决策决策过程(MDP)
学习强化学习主要算法:
值迭代法,策略梯度法 重点学习PPO和DDPG
如果对于强化学习公式的了解较少的可以观看b站上的课程
【强化学习的数学原理】课程:从零开始到透彻理解(完结)_哔哩哔哩_bilibili
由于这里我们目前所使用的公式原因,先学习
了解仿真平台
对于各种API的研究(前期工作)
理解无人机的各种参数
对于linux系统的了解(前期工作)
学习一些基础操作,并对于其提供的虚拟机实现了解
对于强化学习接口搭建(完成Gym接口)封装Linux接口作为训练环境
首先利用PPO/DDPG训练单无人机基础移动(边界避障,上下限制)
进行侦察训练,导弹躲避训练
然后再加入对抗系统,使得无人机与敌机进行交互
首先是蓝方设计固定策略进行训练
然后红蓝方都进行强化学习训练
目前较为适合的最终算法(改进的MADDPG)
基础知识
Linux
一些基础linux命令总结为linux命令
如下
linux命令-CSDN博客
然后需要查看shell脚本
这里推荐黑马程序员的课程
02.shell入门(1)_哔哩哔哩_bilibili
强化学习
然后是强化学习的基础知识
马尔可夫决策
基本元素
-
状态集(State Space)
记为 S,表示系统可能处于的所有状态的集合。例如,在一个迷宫环境中,每个格子可以看作一个状态;在资源分配问题中,状态可以是当前资源的使用量、剩余量等的组合。 -
动作集(Action Space)
记为 A,表示在每个状态下可执行的所有动作。例如,在迷宫中可向上、下、左、右移动;在资源分配问题中可以为“给某个任务分配多少资源”等不同策略选项。 -
状态转移概率(Transition Probability)
记为 P(s′∣s,a),表示当前处于状态 s,执行动作 a 之后,转移到下一状态 s′ 的概率。这也是“马尔可夫”性质的来源:转移只与当前状态和当前动作相关,而与之前的历史状态无关。 -
奖励函数(Reward Function)
记为 R(s,a)或 R(s,a,s′),表示在状态 s 执行动作 a并转移到状态 s′时得到的即时回报。这个回报值可能是正的(奖励)或负的(惩罚)。 -
折扣因子(Discount Factor)
记为 γ,取值范围通常在 [0,1] 之间。它用于平衡短期和长期收益的重要性:当 γ越接近 1 时,更注重长期回报;当 γ越小,越关注即时回报。
决策过程
-
观察状态
系统(或智能体)观察当前状态 s。 -
选择动作
根据一定的策略(policy)π\piπ,在状态 sss 下选择一个动作 aaa。策略 π\piπ 可以理解为一个函数或规则,用于指定在不同状态下执行哪一个动作。 -
环境反馈
- 状态转移:在环境中执行动作 aaa 后,系统会随机地转移到下一个状态 s′s's′(由转移概率 P(s′∣s,a)P(s' \mid s,a)P(s′∣s,a) 决定)。
- 得到奖励:与此同时,系统给予执行该动作的即时回报 R(s,a)R(s,a)R(s,a) 或 R(s,a,s′)R(s, a, s')R(s,a,s′)。
-
更新决策
基于新的状态 s′s's′ 和获得的奖励,智能体可以对其策略 π\piπ 进行更新或继续保持不变,具体取决于使用的算法(例如价值迭代、策略迭代、Q 学习、深度强化学习等)。 -
进入下一轮决策
新的状态 s′s's′ 成为当前状态,系统重复上述过程,直到达到终止条件(如达到目标状态、达到最大交互步数、收敛到稳定策略等)
PPO

DDPG


note:无人机飞行是连续的动作,使用 DDPG
聚焦连续动作空间,使用确定性策略和 Critic-Q 网络来估计动作价值,具备较高的数据利用效率,但也对训练稳定性和超参数选择有更高要求。
MADDPG
多无人机对战是多智能体和DDPG的结合
- 集中式 Critic:在训练过程中,每个智能体的 Critic 都可以访问 全局信息,包括所有智能体的状态和动作。这使得 Critic 在更新时对环境动态和其他智能体决策有更全面的认识,缓解了环境非平稳问题。
- 分散式 Actor:在执行阶段,每个智能体只基于自身的局部观测来进行决策,保持灵活性与可扩展性。

初步研究
动作设置:
我们使用机动号操作无人机进行对战,一共执行五个状态,平飞,俯冲,平飞加减速,爬升,转弯
奖励函数设置
?
初步设计为分为多个阶段,进行分开训练,分为巡航,进攻,躲避,撤退四个策略,通过条件进行状态转移
开始设计初步的奖励和惩罚函数
巡航:
奖励项:侦察到敌方无人机,侦察到敌方无人机时的高度差
惩罚项:碰撞到边界
进攻:
奖励项:导弹命中敌方无人机
惩罚项:敌方无人机脱离我方锁定
躲避:
奖励:躲避敌方导弹
撤退:
奖励:??
惩罚:被敌方无人机侦测
相关文章:
多无人机--强化学习
这个是我对于我的大创项目的构思,随着时间逐渐更新 项目概要 我们的项目平台来自挑战杯揭绑挂帅的无人机对抗项目,但是在由于时间原因,并未考虑强化学习,所以现在通过大创项目来弥补遗憾 我们项目分为三部分,分为虚…...
UE制作2d游戏
2d免费资产: Free 2D Game Assets - CraftPix.net 需要用到PaperZD插件 官网下载后启用即可 导入png素材 然后全选 - 创建Sprite 创建 人物基类 设置弹簧臂和相机 弹簧臂设置成旋转-90 , 取消碰撞测试 设置子类Sprite 拖到场景中 绑定设置输入映射,让角色移动跳跃 神似卡拉比…...
说一下JVM管理的常见参数
Java虚拟机(JVM)有许多常见参数,用于控制其行为和性能。以下是一些常见的JVM参数及其说明: 1. 内存管理参数 -Xms<size> START 设置初始堆内存大小。例如,-Xms512m表示初始堆大小为512MB。 -Xmx<size>…...
【FPGA】 MIPS 12条整数指令【2】
目录 仿真 代码 完整代码 实现slt 仿真 ori r1,r0,1100h ori r2,r0,0020h ori r3,r0,ff00h ori r4,r0,ffffh addi r5,r0,ffff slt r6,r5,r4 slt r6,r4,r3 代码 EX Slt:regcData ($signed(regaData)<$signed(regbData))?1b1:1b0; ID Inst_slt:be…...
机器学习--python基础库之Matplotlib (2) 简单易懂!!!
python基础库之Matplotlib(2) python基础库之Matplotlib0 准备1 散点图的绘制2 柱状图绘制3 其他 python基础库之Matplotlib 上篇文章机器学习–python基础库之Matplotlib (1) 超级详细!!!主要讲解了python的基础库matplotlib中绘图的流程以及折线图的…...
mybatis plus 持久化使用技巧及场景
mybatis plus提供了很多强大的持久化工具,新手容易对这些工具使用困难,下面我总结了一下mybatis plus持久化的使用技巧及使用场景。 一、持久化 官方文档:https://baomidou.com/guides/data-interface/ (一)通过ser…...
JVM监控和管理工具
基础故障处理工具 jps jps(JVM Process Status Tool):Java虚拟机进程状态工具 功能 1:列出正在运行的虚拟机进程 2:显示虚拟机执行主类(main()方法所在的类) 3:显示进程ID(PID,Process Identifier) 命令格式 jps […...
记录 | 基于MaxKB的文字生成视频
目录 前言一、安装SDK二、创建视频函数库三、调试更新时间 前言 参考文章:如何利用智谱全模态免费模型,生成大家都喜欢的图、文、视并茂的文章! 自己的感想 本文记录了创建文字生成视频的函数库的过程。如果想复现本文,需要你逐一…...
生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (下)
今天小李哥将开启全新的技术分享系列,为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来生成式 AI 安全市场正迅速发展。据IDC预测,到2025年全球 AI 安全解决方案市场规模将突破200亿美元,年复合增长率超过30%,而Gartn…...
现场流不稳定,EasyCVR视频融合平台如何解决RTSP拉流不能播放的问题?
视频汇聚EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台灵活性强,支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大…...
文献阅读 250205-Global patterns and drivers of tropical aboveground carbon changes
Global patterns and drivers of tropical aboveground carbon changes 来自 <Global patterns and drivers of tropical aboveground carbon changes | Nature Climate Change> 热带地上碳变化的全球模式和驱动因素 ## Abstract: Tropical terrestrial ecosystems play …...
算法与数据结构(括号匹配问题)
思路 从题干可以看出,只要给出的括号对应关系正确,那么就可以返回true,否则返回false。这个题可以使用栈来解决 解题过程 首先从第一个字符开始遍历,如果是括号的左边(‘(‘,’[‘,’}‘&…...
订单状态监控实战:基于 SQL 的状态机分析与异常检测
目录 1. 背景与问题 2. 数据准备 2.1 表结构设计 3. 场景分析与实现 3.1 场景 1:检测非法状态转换...
C# 中记录(Record)详解
从C#9.0开始,我们有了一个有趣的语法糖:记录(record) 为什么提供记录? 开发过程中,我们往往会创建一些简单的实体,它们仅仅拥有一些简单的属性,可能还有几个简单的方法,比如DTO等等…...
YOLOv11-ultralytics-8.3.67部分代码阅读笔记-autobackend.py
autobackend.py ultralytics\nn\autobackend.py 目录 autobackend.py 1.所需的库和模块 2.def check_class_names(names): 3.def default_class_names(dataNone): 4.class AutoBackend(nn.Module): 1.所需的库和模块 # Ultralytics 🚀 AGPL-3.0 License …...
Docker使用指南(一)——镜像相关操作详解(实战案例教学,适合小白跟学)
目录 1.镜像名的组成 2.镜像操作相关命令 镜像常用命令总结: 1. docker images 2. docker rmi 3. docker pull 4. docker push 5. docker save 6. docker load 7. docker tag 8. docker build 9. docker history 10. docker inspect 11. docker prune…...
Rust 变量特性:不可变、和常量的区别、 Shadowing
Rust 变量特性:不可变、和常量的区别、 Shadowing Rust 是一门以安全性和性能著称的系统编程语言,其变量系统设计独特且强大。本文将从三个角度介绍 Rust 变量的核心特性:可变性(Mutability)、变量与常量的区别&#…...
NFT Insider #167:Champions Tactics 角色加入 The Sandbox;AI 助力 Ronin 游戏生态
引言:NFT Insider 由 NFT 收藏组织 WHALE Members、BeepCrypto 联合出品, 浓缩每周 NFT 新闻,为大家带来关于 NFT 最全面、最新鲜、最有价值的讯息。每期周报将从 NFT 市场数据,艺术新闻类,游戏新闻类,虚拟…...
鹧鸪云无人机光伏运维解决方案
在新能源产业蓬勃发展的当下,光伏电站作为清洁能源供应的关键一环,其稳定运行和高效运维至关重要。随着光伏电站规模持续扩大,数量不断增加,传统人工巡检方式的弊端日益显著。人工巡检不仅效率低、人力和时间成本高,而…...
NeuralCF 模型:神经网络协同过滤模型
实验和完整代码 完整代码实现和jupyter运行:https://github.com/Myolive-Lin/RecSys--deep-learning-recommendation-system/tree/main 引言 NeuralCF 模型由新加坡国立大学研究人员于 2017 年提出,其核心思想在于将传统协同过滤方法与深度学习技术相结…...
Zemax中的色差分析与优化策略
1. 色差基础:为什么你的镜头拍不出清晰照片? 每次用手机拍夕阳时,总发现边缘有紫色光晕?这就是色差在作怪。作为光学设计中最常见的像差之一,色差会让不同颜色的光无法汇聚在同一点,导致成像模糊和颜色失真…...
程序员的“无用论”:为什么你觉得数据结构与算法没用?
在计算机科学的学习过程中,数据结构与算法(DSA)常常被视为“面试敲门砖”。许多本科生甚至从业多年的开发者都会产生疑问:“我每天的工作就是 CRUD(增删改查)和调 API,为什么还要花那么多时间去…...
Vue3+TS+Vite项目实战:5分钟搞定Mock数据接入(附完整代码)
Vue3TSVite项目实战:5分钟实现动态权限Mock系统 最近在重构后台管理系统时,遇到一个典型痛点:前端页面都开发完了,后端接口还在设计中。这种前后端进度不匹配的情况,相信每个前端开发者都深有体会。今天分享的这套Mock…...
CodeSys随机数生成实战:从GPS通信验证到实验作业的完整代码解析
CodeSys随机数生成实战:从GPS通信验证到实验作业的完整代码解析 在工业自动化领域,随机数生成看似是个小众需求,直到你遇到需要模拟设备故障、生成验证码或创建随机测试场景时才会发现它的重要性。CodeSys作为工业控制领域的"瑞士军刀&…...
comsol燃料电池堆冷却:模型对聚合物电解质膜 (PEM) 燃料电池堆的热管理进行建模 对电...
comsol燃料电池堆冷却:模型对聚合物电解质膜 (PEM) 燃料电池堆的热管理进行建模 对电池堆的所有电池单元来说,以相似的温度曲线进行操作非常重要,因为非均匀的温度分布可能会导致非均匀的水蒸气冷凝,以及电池单元之间出现较大的性…...
瑞芯微RK3588/RK356X混合量化实战:手把手教你用rknn-toolkit2优化模型精度
瑞芯微RK3588/RK356X混合量化实战:手把手教你用rknn-toolkit2优化模型精度 在嵌入式AI开发中,模型量化是提升推理效率的关键技术,但传统的全INT8量化往往会导致精度损失,影响最终应用效果。瑞芯微的rknn-toolkit2工具链提供了混合…...
28GHz毫米波滤波器设计实战:用SynMatrix快速搞定SIW带通滤波器(附完整参数)
28GHz毫米波滤波器设计实战:SynMatrix工具链的高效应用指南 在毫米波频段,滤波器设计一直是射频工程师面临的重大挑战之一。尤其是当工作频率上升到28GHz甚至更高时,传统设计方法往往陷入反复迭代的泥潭,耗费大量时间在仿真优化与…...
基于n8n的春联生成模型自动化工作流设计
基于n8n的春联生成模型自动化工作流设计 春联作为传统文化的重要组成部分,每年春节都面临着巨大的创作需求。传统手工创作方式效率低下,而AI技术为这一场景带来了全新的解决方案。本文将介绍如何利用n8n构建春联生成模型的自动化工作流,实现从…...
MIL图像库实战:从采集卡配置到Qt应用开发
1. 工业视觉项目开发全流程解析 第一次接触MIL图像库时,我被它强大的硬件抽象能力震撼到了。这个由Matrox开发的图像处理库,就像一位经验丰富的翻译官,把不同品牌采集卡的硬件差异统统屏蔽掉。想象一下,你手里有Basler、AVT、Dals…...
Koodo Reader:您的跨平台电子书阅读解决方案,让阅读无处不在
Koodo Reader:您的跨平台电子书阅读解决方案,让阅读无处不在 【免费下载链接】koodo-reader A modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux, Android, iOS and Web 项目地址: https://gitcode.com/Gi…...
