VREP——无人机路径规划(按键控制、目标跟踪、DQN)

2021.03.18更新  上传仿真坏境和代码

下载链接:无人机跟踪地面小车代码(基于dqn、视觉、vrep)-深度学习文档类资源-CSDN下载

由于config文件忘记上传了,内容直接贴在文末啦。

注意:因为加了opencv目标跟踪的 CSR-DCF 函数,所以第一次跑代码要在显示窗口上手动圈一下要跟踪的小车。(圈的不好会影响 CSR-DCF 的效果)

网络框架

vrep仿真环境
训练结果

不同的小车运动速度 实验结果

不同的小车运动速度 不同的环境 实验结果

2020.07.01更新  历史新突破:loss收敛,reward收敛

问题:智能体在训练后期只执行一个动作,也就是在不同的输入状态下,神经网络的参数、输出结果固定不变了。

我尝试的方法:

0、将输入进行归一化。img/255.0

1、将cnn的卷积核调整合适。因为输入图像是64*64的大小,而行人在相机视野里只占很小的一部分。但是我关注的不是图像的细节,而是行人在无人机的哪个方向,所以卷积核应该稍微大一点。(将3*3,stride=1调整为6*6,8*8,stride=2)

2、参数初始化。一般权重参数0.01均方差,0均值的高斯分布是万能的,不行就试更大的。偏差参数全0即可。

3、将relu激活函数换成了leaky_relu。relu梯度消失的问题。

4、增加神经网络深度。增加两层全连接层。

5、调整随机explore的概率。在之前的训练中,1000step左右loss就下降到0.5以内了,所以随机探索的概率是这样的:<200steps  rate=0.9,保证有足够多的随机探索状态;  200-1000 由0.9下降到0.15;>1000steps  rate保持0.15。

6、把value和advantage去了,化繁为简。

原始版本网络参数

新版本网络参数

 结果展示:

无人机跟踪行人

最后保持在0.15左右
reward其实设计的不好,就是-distance

2020.06.30更新

经过好几个版本的修改,在6.25版本的前5000步,loss有了下降趋势。但是5000后又上升了我去

 reward惨不忍睹:

2020.06.12更新

1、键盘控制无人机运动并保存图像、位置信息(Python)

codehttps://download.csdn.net/download/weixin_40820983/12517149

功能:

1、键盘 w s a d up down left right 八个按键控制无人机 向前 向后 向左 向右 上升 下降 左旋 右旋 \

2、记录与行人的距离、动作序号、图像

3、有前置摄像、下置摄像两个场景

下置摄像

 2、前置摄像opencv行人识别

代码:利用opencv识别vrep场景中的行人_vrep场景下载,vrep雷达-图像处理文档类资源-CSDN下载

功能:将图像中的行人标出

缺点:模糊的、不完整的不能识别

3、DRQN训练无人机跟踪行人

代码:还在修改还在跑,仿真太慢了。

结果:上一阶段,前置摄像头的结果不太理想,我认为很大的原因是摄像头容易看不到行人。所以换了下置摄像头,

先放一个150局的结果图,reward有上升趋势,loss不收敛。继续改吧。

 (内容不多,但是真的花了很多时间去研究vrep怎么用。感兴趣就坚持吧!)

config.py

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

""" parameters setting """

import numpy as np

restore = False
valid_actions = ['FWD','BCK','Left','Right','UP','DWN']#'UP','DWN','STOP','ROT_CW','ROT_CCW'
  # rad/s (pioneer 3dx: 5.6 rad/s: ~ 0.56m/s)  # similar to human's normal speed

wait_response = False # True: Synchronous response(too much delay)
valid_actions_dict = {valid_actions[0]: np.array([1, 0, 0]),
                      valid_actions[1]: np.array([-1, 0, 0]),
                      valid_actions[2]: np.array([0, 1, 0]),
                      valid_actions[3]: np.array([0,-1, 0]),
                      valid_actions[4]: np.array([0, 0, 0])}

# network
batch_size = 32  # How many experiences to use for each training step.
update_freq = 4  # How often to perform a training step.
gamma = .99  # Discount factor on the target Q-values
startE = 1  # Starting chance of random action
endE = 0.1  # Final chance of random action
path = "./DQN_trainedModel"   # The path to save our model to.
annealing_steps = 10000.  # How many steps of training to reduce startE to endE.
num_episodes = 500     # How many episodes of game environment to train network with.
pre_train_steps = 5000  # How many steps of random actions before training begins.
max_epLength = 50         # The max allowed length of our episode.
tau = 0.001               # Rate to update target network toward primary network
replay_memory = 50000

time_step = 0.05
best_distance = 3.5/2

il_steps = 1000000   # total imitation learning step
il_update_freq = 4

  • 12
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 68
    评论
你好!对于无人机路径规划的强化学习实战,你可以按照以下步骤进行: 1. 确定问题:首先,明确无人机路径规划的具体问题,例如在给定的环境中,无人机如何选择最优路径来完成特定任务。 2. 状态与动作定义:将环境抽象为状态空间,无人机在每个状态下可以选择的动作定义为动作空间。例如,状态可以包括无人机当前位置、目标位置、障碍物信息等,动作可以是无人机的移动指令。 3. 建立奖励函数:设计一个奖励函数来评估每个状态下的行动。奖励函数应该能够鼓励无人机选择对任务有利的路径,并惩罚不良行为。例如,可以给到达目标位置的行动一个正向奖励,给与碰撞障碍物或者偏离目标的行动一个负向奖励。 4. 强化学习算法选择:选择适合无人机路径规划问题的强化学习算法。常用的算法包括Q-learning、Deep Q-Network (DQN)、Proximal Policy Optimization (PPO)等。 5. 构建训练环境:根据定义的状态、动作和奖励函数,构建一个仿真环境来进行训练。这个仿真环境可以模拟无人机的运动和环境信息。 6. 训练模型:使用选定的强化学习算法,在训练环境中对无人机路径规划模型进行训练。通过与环境的交互,逐步优化模型的策略,使其能够选择最优的路径。 7. 模型评估与优化:训练完成后,对训练得到的模型进行评估。可以使用一些指标来衡量模型在路径规划任务上的性能,如成功率、路径长度等。如果需要改进,可以进一步调整参数或尝试其他强化学习算法。 以上是一个基本的无人机路径规划强化学习实战流程,具体的实施过程可能因问题的复杂性而有所不同。希望对你有所帮助!如果还有其他问题,请随时提问。
评论 68
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值