说明
这是一个关于无人机深度强化学习自主避障算法的项目。整个项目包括静态环境和动态环境中的避障。在静态环境中,结合了多智能体强化学习和人工势场算法。在动态环境中,项目采用了干扰流场算法和单智能体强化学习算法的组合。
由于这是我的本科毕业设计,学术水平有限,当时我写了一篇会议论文。论文地址为:基于深度强化学习框架的自适应干扰流体动力学系统算法
静态环境
有四种解决方法:
- MADDPG
- 完全集中式DDPG
- 完全分散式DDPG
- 完全集中式TD3
第三和第四种方法表现比其他方法更好。
动态环境
有四种解决方法:
- PPO+GAE(多进程)
- TD3
- DDPG
- SAC
前三种方法表现基本相同。PPO收敛所需的回合数较少。TD3和DDPG收敛速度快。虽然Soft Actor-Critic是深度强化学习中的出色算法,但在我的环境中没有明显效果。
无人机路径规划的传统方法
用MATLAB编写了三种传统方法:
- A*搜索算法
- RRT算法
- 蚁群算法
C++:
- D星算法
实验表明,A*搜索算法比其他算法好得多,但效果不如强化学习路径规划。
人工势场算法
本项目提供了人工势场算法的MATLAB和Python实现。
Python实现:./APF/APFPy2.py ./APF/APFPy3.py ./APF/ApfAlgorithm.py(二维和三维)
Matlab实现:./APF/APF_matlab(二维)
IFDS和IIFDS算法
这是一种基于流场的避障规划算法。我用matlab实现了它。代码在IIFDS_and_IFDS文件夹中。
如何开始训练
例如,如果你想在动态环境中用TD3训练智能体,你只需运行main.py,然后运行test.py,最后打开matlab运行test.m来绘图。
如果你想在有4个障碍物的环境中测试模型,你只需运行Multi_obstacle_environment_test.py。
环境要求
numpy
torch
matplotlib
seaborn==0.11.1
文件说明
calGs.m:计算表示路线性能的指标Gs。
calLs.m:计算表示路线性能的指标Ls。
draw.py:该文件包含Painter类,可以绘制各种方法的奖励曲线。
config.py:该文件给出了算法训练过程中参数的设置,如MAX_EPISODE、batch_size等。
Method.py:该文件包含许多重要方法,如如何计算智能体的奖励。
static_obstacle_environment.py:该文件包含许多静态障碍环境的参数。
dynamic_obstacle_environment.py:该文件包含许多动态障碍环境的参数。
Multi_obstacle_environment_test.py:该文件在dynamic_obstacle_environment.py中的环境中测试动态模型。
data_csv:该文件保存一些数据,如无人机的轨迹和训练中的奖励。
AntColonybenchmark.m:MATLAB实现的蚁群算法。
Astarbenchmark.m:MATLAB实现的A*算法。
RRTbenchmark.m:MATLAB实现的RRT算法。
简单模拟示例
Star历史
版权所有。