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

多无人机--强化学习

这个是我对于我的大创项目的构思,随着时间逐渐更新

项目概要

我们的项目平台来自挑战杯揭绑挂帅的无人机对抗项目,但是在由于时间原因,并未考虑强化学习,所以现在通过大创项目来弥补遗憾

我们项目分为三部分,分为虚拟机,态势系统,和运行程序端(使用主机)

虚拟机内包含各种无人机信息,并封装为接口供windows端控制

态势系统主要是用来显示战场的情况,使得态势可视化

运行程序端编写程序进行无人机控制

启动顺序为

虚拟机-》态势系统-》运行程序端

项目学习基础

强化学习:

       学习马尔可夫决策决策过程(MDP)

       学习强化学习主要算法:

              值迭代法,策略梯度法 重点学习PPO和DDPG

如果对于强化学习公式的了解较少的可以观看b站上的课程

【强化学习的数学原理】课程:从零开始到透彻理解(完结)_哔哩哔哩_bilibili

由于这里我们目前所使用的公式原因,先学习

了解仿真平台

       对于各种API的研究(前期工作)

        理解无人机的各种参数

对于linux系统的了解(前期工作)

        学习一些基础操作,并对于其提供的虚拟机实现了解

对于强化学习接口搭建(完成Gym接口)封装Linux接口作为训练环境

首先利用PPO/DDPG训练单无人机基础移动(边界避障,上下限制)

进行侦察训练,导弹躲避训练

然后再加入对抗系统,使得无人机与敌机进行交互

首先是蓝方设计固定策略进行训练

然后红蓝方都进行强化学习训练

目前较为适合的最终算法(改进的MADDPG)

基础知识

Linux

一些基础linux命令总结为linux命令

如下

linux命令-CSDN博客

然后需要查看shell脚本

这里推荐黑马程序员的课程

02.shell入门(1)_哔哩哔哩_bilibili

强化学习

然后是强化学习的基础知识

马尔可夫决策

基本元素

  1. 状态集(State Space)
    记为 S,表示系统可能处于的所有状态的集合。例如,在一个迷宫环境中,每个格子可以看作一个状态;在资源分配问题中,状态可以是当前资源的使用量、剩余量等的组合。

  2. 动作集(Action Space)
    记为 A,表示在每个状态下可执行的所有动作。例如,在迷宫中可向上、下、左、右移动;在资源分配问题中可以为“给某个任务分配多少资源”等不同策略选项。

  3. 状态转移概率(Transition Probability)
    记为 P(s′∣s,a),表示当前处于状态 s,执行动作 a 之后,转移到下一状态 s′ 的概率。这也是“马尔可夫”性质的来源:转移只与当前状态和当前动作相关,而与之前的历史状态无关。

  4. 奖励函数(Reward Function)
    记为 R(s,a)或 R(s,a,s′),表示在状态 s 执行动作 a并转移到状态 s′时得到的即时回报。这个回报值可能是正的(奖励)或负的(惩罚)。

  5. 折扣因子(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:在执行阶段,每个智能体只基于自身的局部观测来进行决策,保持灵活性与可扩展性。

初步研究

动作设置:

        我们使用机动号操作无人机进行对战,一共执行五个状态,平飞,俯冲,平飞加减速,爬升,转弯

奖励函数设置

初步设计为分为多个阶段,进行分开训练,分为巡航,进攻,躲避,撤退四个策略,通过条件进行状态转移

开始设计初步的奖励和惩罚函数

巡航:

        奖励项:侦察到敌方无人机,侦察到敌方无人机时的高度差

        惩罚项:碰撞到边界

进攻:

        奖励项:导弹命中敌方无人机

        惩罚项:敌方无人机脱离我方锁定

躲避:

        奖励:躲避敌方导弹

撤退:

        奖励:??

        惩罚:被敌方无人机侦测


http://www.kler.cn/a/536260.html

相关文章:

  • 水波效果
  • mongodb 使用内存过大分析
  • mac 安装 dotnet 环境
  • IDEA 中集成 Maven,配置环境、创建以及导入项目
  • ONLYOFFICE 文档 8.3 已发布:PDF 图章、合并形状、更多格式支持等
  • python:内置函数与高阶函数
  • 20.责任链模式(Chain of Responsibility Pattern)
  • 搜索+图论1 练习答案+思路
  • 蓝桥算法基础2
  • EtherCAT帧捕获与帧结构分析
  • 基于Bootstrap + Java + Oracle实现的电商平台
  • DeepSeek图解10页PDF
  • STM32自学记录(八)
  • 【ArcGIS Pro 简介1】
  • Docker Desktop安装kubernetes时一直在Starting:Kubernetes failed to start
  • Day56_20250204_图论part1_图论理论基础|深搜理论基础|98.所有可达路径|广搜理论基础
  • Jetson AGX Orin折腾记
  • PEP8代码规范
  • Rust语言进阶之标准输出:stdout用法实例(一百零六)
  • vue高级面试题
  • Mac本地体验LM studio
  • (动态规划基础 整数拆分)leetcode 343
  • 如何在macOS上安装Ollama
  • 航电系统之通信模块篇
  • 【Uniapp-Vue3】使用uni.$emit和$on页面通讯实现发布成功即时更新数据
  • 基于 Three.js 实现的爱心2025粒子特效