修改自Github项目:https://github.com/heleidsn/UAV_Navigation_DRL_AirSim
Navigation_DRL_UAV 是一个基于深度强化学习(DRL)的无人机导航平台,用于在复杂未知环境中训练无人机导航策略。该平台基于 AirSim 和 Stable-Baselines3,包含多旋翼和固定翼无人机的运动学模型,并提供多种 UE4 环境用于训练和测试。
-
如果使用conda配置 最好使用conda虚拟环境配置,避免环境混杂
conda create -n DRL_AirSim python=3.8.20conda activate DRL_AirSim激活DRL_AirSim环境
-
Install CUDA and PyTorch (Win10 or Win11)
- Download CUDA11.6
pip3 install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio===0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html- You can use
tools/test/torch_gpu_cpu_test.pyto test your PyTorch and CUDA.
-
Install Requirements
pip install numpy==1.24.4 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simplepip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
-
Install gym_env
pip install -e ./gym_env
-
Install customized stable-baselines3
pip install -e ./stable-baselines3
- 运行“Navigation_DRL_UAV\UE4\AirSimNH\WindowsNoEditor\AirSimNH.exe”虚幻4仿真环境(自行下载)
- 在“Choose Vehicle”弹窗选择否 回到终端:
python ./scripts/start_train_with_plot.py
This repo using config file to control training conditions.
Now we provide 3 training envrionment and 3 dynamics.
env_name
-
SimpleAvoid
- This is a custom UE4 environment used for simple obstacle avoidance test. You can download it from google drive.
-
City_400_400
- A custom UE4 environment used for fixedwing obstacle avoidance test. You can also get it from google drive
-
Random obstacles
-
Other Airsim build in envrionment (AirSimNH and CityEnviron):
dynamic_name
- SimpleMultirotor
- Multirotor
- SimpleFixedwing
- requirements.txt:项目依赖的 Python 包和环境配置。
- README.md:项目的详细说明文档,包含安装、配置和使用说明。
这是项目的核心组件,提供了与 AirSim 交互的 Gym 环境。
- gym_env/gym_env/envs/airsim_env.py:主要的环境类
AirsimGymEnv,继承自gym.Env,实现了强化学习环境的接口,包含状态观测、动作执行、奖励计算等功能。 - gym_env/gym_env/envs/dynamics/:包含不同类型的无人机动力学模型
- multirotor_simple.py:简化的多旋翼无人机动力学模型
- multirotor_airsim.py:基于 AirSim 的多旋翼无人机动力学模型
- fixedwing_simple.py:简化的固定翼无人机动力学模型
- gym_env/setup.py:用于将 gym_env 安装为 Python 包
包含用于训练和测试的虚幻引擎环境:
- SimpleAvoid/:简单的障碍物避障测试环境
- AirSimNH/:AirSim 内置的 NeighborhoodEnvironment 环境
- AirSimNH.zip:AirSim 内置的 NeighborhoodEnvironment 环境压缩包
- ZhangJiajie.zip:张家界景观环境压缩包
- SimpleAvoid.rar:简单避障环境压缩包
包含用于训练和评估模型的脚本:
- start_train_with_plot.py:启动训练过程并实时可视化训练情况
- start_evaluate_with_plot.py:评估训练好的模型并可视化结果
- train.py:主要的训练逻辑
- evaluation.py:评估模型的逻辑
- utils/:各种辅助功能和工具函数
包含不同训练场景的配置文件:
- config_NH_center_Multirotor_3D.ini:NeighborhoodEnvironment 中心区域的多旋翼训练配置
- config_fixedwing.ini:固定翼无人机的训练配置
- config_Maze_SimpleMultirotor_2D.ini:迷宫环境中简化多旋翼的训练配置
- config_Trees_SimpleMultirotor.ini:树林环境中简化多旋翼的训练配置
定制版的 Stable-Baselines3 库,用于实现深度强化学习算法:
- stable_baselines3/:包含 PPO、SAC、TD3 等强化学习算法的实现
- tests/:测试代码
- scripts/:辅助脚本
- docs/:文档
AirSim 模拟器的配置文件,用于设置模拟环境参数。
- logs/:训练过程的日志
- logs_eval/:评估过程的日志
- logs_save/:保存的模型和训练结果
包含项目使用的图像、图表等资源文件。
包含各种辅助工具,如 PyTorch GPU 测试脚本等。
- AirsimGymEnv:作为核心环境类,与 AirSim 交互获取感知信息,将动作发送给无人机
- 动力学模型:实现不同类型无人机的运动学特性,由环境类调用
- 训练算法:使用 Stable-Baselines3 中的算法(PPO、SAC、TD3)进行训练
- 可视化界面:使用 PyQt 实现的实时训练和评估可视化界面







