【论文笔记】基于深度强化学习的室内视觉局部路径规划

摘要

针对问题】传统的机器人局部路径规划方法多为已有先验地图的情况设计 → \rightarrow 与视觉 SLAM 结合的导航中效果 不佳

提出方法】一种基于深度强化学习的视觉局部路径规划策略

具体细节】(1)使用视觉SLAM → \rightarrow 栅格地图;全局路径规划 → \rightarrow A ∗ A^{\ast} A算法(2)构建基于深度强化学习的局部路径规划策略,动作 → \rightarrow 前进、左转、右转,作为动作集合的基本元素;状态 → \rightarrow 视觉观测 → \rightarrow 彩色图、深度图和特征点图,以及当前位置到局部目标点的位移矢量; (3)学习和探索 → \rightarrow 近端策略优化算法(PPO)

实现效果】仿真实验;成功率提高,位姿跟踪丢失率和碰撞率减小;

关键词

  1. 视觉导航;
  2. 深度学习;
  3. 强化学习;
  4. 局部路径规划;
  5. 避障;
  6. 视觉 SLAM;
  7. 近端策略优化;
  8. 移动机器人;

0 引言

(1) 路径规划

  1. 全局路径规划 A ∗ A^{\ast} A D ∗ D^{\ast} D
  2. 局部路径规划动态窗口法(Dynamic Window Algorithm, DWA) → \rightarrow 避障能力,计算量小、实时性高 → \rightarrow ROS默认算法;复杂环境 → \rightarrow DWA会陷入局部最小
  3. 局部路径规划时间弹性带(Timed Elastic Band, TEB) → \rightarrow 图优化迭代求解 → \rightarrow 较高的操作性 → \rightarrow 调参复杂
  4. 局部路径规划模型预测控制(Model Prediction Control, MPC) → \rightarrow 根据机器人当前的运动状态 → \rightarrow 预测其未来几个时间步的轨迹 → \rightarrow 二次规划方法来优化 → \rightarrow 调参复杂
  5. 局部路径规划PF 算法 → \rightarrow 一种路径跟随算法 → \rightarrow 基于 PID 的离散控制实现机器人沿着规划出的全局路径行走
  6. 传统局部路径规划:传统 → \rightarrow 调参和泛化上存在劣势;没有考虑机器人在视觉 SLAM 过程中易在低纹理区域跟踪丢失的问题 → \rightarrow 表现较差

(2) 深度强化学习

学者 方法 内容 特点
张福海等 基于 Q-learning 的强化学习 激光雷达作为环境感知器 提高了对未知环境的适应性
Guldenring 等 基于 PPO 的强化学习算法 激光雷达来获取动态环境信息,用环境动态数据进行路径规划 进行局部路径规划
Balakrishnan 等 基于深度强化学习的一种局部路径规划策略 A ∗ A^{*} A全局路径规划算法基础上,利用深度强化学习学习训练局部路径规划,达到局部目标点 依赖于真实先验地图
Chaplot 等 基于深度强化学习的一种局部路径规划策略 与全局策略相结合,以完成视觉探索任务 依赖于真实先验位姿

(3) 提出问题和方法总述

  1. 问题:设计合理的局部路径规划,能与视觉SLAM更好的配合;避免碰撞和位姿跟踪丢失、提升导航成功率。
  2. 工作:充分考虑了机器人避障、防止视觉 SLAM 跟踪丢失以及机器人行走效率等多方面因素;
  3. 创新点:(1)提出方法;(2)多样奖励函数;(3)局部路径规划模型融入总体导航框架;

1 问题描述

低纹理区域 → \rightarrow 视觉 SLAM 跟踪失败现象 → \rightarrow 兼顾低纹理区域障碍物等诸多不利因素影响

Habitat 仿真平台 → \rightarrow 实体的形式存在;能提供机器人所在位置彩色图深度图;实时检测是否发生碰撞;给定机器人的初始位置全局目标点位置

视觉SLAM和三维重建 → \rightarrow 稠密点云地图 → \rightarrow 投影得到栅格地图 → \rightarrow A ∗ A^{\ast} A算法求解

视觉SLAM模块 → \rightarrow ORB(Oriented FAST and Rotated BRIEF, ORB)特征点图 → \rightarrow 实时检测机器人当前位姿跟踪状态(跟踪正常/跟踪丢失)

局部路径规划:

  1. 目标点 → \rightarrow 机器人当前位置作圆与全局路径的交点;
  2. 目标 → \rightarrow (尽可能少的动作)达到目标点 + 避开障碍物 + 避免跟踪失败;
  3. 目标完成后 → \rightarrow 进行下一个局部点生成 + 路径规划;
  4. 失败 → \rightarrow 视觉SLAM跟踪失败 / 发生碰撞

论文图片1

论文图片2

2 基于深度强化学习的路径规划

2.1 模型建立

2.2 框架设计

根据接口标准

(1) step 函数

执行 a t a_{t} at,进入下一个状态 s t + 1 s_{t+1} st+1,返回奖励值 r t r_{t} rt,判断是否结束bool d o n e done done

基本数据单元 →   ( s t , a t , s t + 1 , r t , d o n e ) \rightarrow\ \big( s_{t},a_{t},s_{t+1},r_{t},done \big)  (st,at,st+1,rt,done)

(2) reset 函数

智能体与环境初始化 → \rightarrow 新一轮交互

触发条件 → \rightarrow 达到局部目标点、发生碰撞、跟踪失败、最大步数限制

(3) render 函数

输出可视化窗口显示机器人当前的状态及所处环境

彩色图 (RGB)、深度图(Depth)、全局地图路径规划

2.3 可观测状态与奖励函数设计

如何描述可观测状态空间?

如何设计奖励函数?

状态

S = ( S r g b , S d e p t h , S d i s , S a n g l e , S m p t ) S d i s = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 ∣ S a n g l e ∣ = arctan ⁡ ( cos ⁡ ( β ) ( y 2 − y 1 ) + sin ⁡ ( β ) ( x 2 − x 1 ) S d i s ) S=(S_{rgb},S_{depth},S_{dis},S_{angle},S_{mpt}) \\ S_{dis} = \sqrt{(x_{2}-x_{1})^{2}+(y_{2}-y_{1})^{2}} \\ |S_{angle}|=\arctan\big( \frac{\cos(\beta)(y_{2}-y_{1}) + \sin(\beta)(x_{2}-x_{1})}{S_{dis}} \big) S=(Srgb,Sdepth,Sdis,Sangle,Smpt)Sdis=(x2x1)2+(y2y1)2 Sangle=arctan(Sdiscos(β)(y2y1)+sin(β)(x2x1))

S r g b S_{rgb} Srgb → \rightarrow 彩色图片; S d e p t h S_{depth} Sdepth → \rightarrow 深度图片;

S d i s S_{dis} Sdis S a n g l e S_{angle} Sangle → \rightarrow 机器人局部目标点距离,机器人朝向机器人与局部目标点连线夹角

S m p t S_{mpt} Smpt → \rightarrow 采样时刻当前帧的特征点图的位置矩阵 → \rightarrow 包含了特征点在图像帧上的位置数量信息

动作

A = { a l , a r , a f } A=\{ a_{l},a_{r},a_{f} \} A={al,ar,af} $ \rightarrow$ 向左、向右和向前

每个动作执行时间 $ \rightarrow$ 1 s s s;左转/右转角速度 $ \rightarrow$ 0.3 r a d / s rad/s rad/s;前进速度 → \rightarrow 0.1 m / s m/s m/s

奖励函数设计

$s_{sts} $ → \rightarrow 机器人运行状态;

值域 → \rightarrow { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4} → \rightarrow 机器人正常运行碰撞视觉 SLAM 跟踪丢失到达局部目标点

具体情况 奖励函数 备注
避障 r o b v = ( s s t s = = 1 ) ? : λ 1 , 0 r_{obv}=(s_{sts}==1)?:\lambda_{1},0 robv=(ssts==1)?:λ1,0 λ 1 \lambda_{1} λ1是系数
距离 r d i s = λ 2 Δ d r_{dis}=\lambda_{2}\Delta d rdis=λ2Δd Δ d \Delta d Δd 是上一状态和当前状态到局部目标点之间的距离差 λ 2 \lambda_{2} λ2是系数
视觉SLAM跟踪 r s l a m = ( s s t s = = 2 ) ? : − λ 3 , 0 r_{slam}=(s_{sts}==2)?:-\lambda_{3},0 rslam=(ssts==2)?:λ3,0 λ 3 \lambda_{3} λ3是系数
角度 $r_{angle}=\lambda_{4}( \alpha_{t}
特征点数 r N m p t = λ 5 lg ⁡ ( N m p t t + 1 N m p t t ) r_{Nmpt}=\lambda_{5}\lg(\frac{Nmpt_{t+1}}{Nmpt_{t}}) rNmpt=λ5lg(NmpttNmptt+1) λ 5 \lambda_{5} λ5是系数
达到目标点 r b o n u s = ( s s t s = = 3 ) ? λ 6 : 3 , 0 r_{bonus}=(s_{sts}==3)?\lambda_{6}:3,0 rbonus=(ssts==3)?λ6:3,0 λ 6 \lambda_{6} λ6是系数
综合奖励函数 上面的线性求和

ORB 特征点的匹配

ORB SLAM 2算法

前端视觉里程计的基础

特征点在图像中的位置和数量包含了视觉 SLAM 跟踪稳定的信息

论文图片3

2.4 PPO 算法

论文图片4

更新过程中,PPO 算法利用式(1)中的剪切函数来限制策略的更新幅度。

当新旧策略更新偏移量过大时,使用剪切项代替,这样确保新旧策略的偏离程度不至于太大,让 Actor 网络以一种相对平稳的方式进行更新,收敛速度更快。

L c l i p ( θ A ) = E n [ r θ A A n , c l i p ( r θ A , 1 − ϵ , 1 + ϵ ) A n ] (1) L^{clip}(\theta_{A})=E_{n}[ r_{\theta_{A}}A_{n},\mathbf{clip}(r_{\theta_{A}},1-\epsilon,1+\epsilon)A_{n} ] \tag{1} Lclip(θA)=En[rθAAn,clip(rθA,1ϵ,1+ϵ)An](1)

2.5 网络结构

论文图片5

论文图片6

3 仿真结果与分析

3.1 实验环境及参数设置

论文图片8

  • 在实验过程中,可注意到机器人在纹理较丰富的区域时,图像帧中的特征点数变化幅度不大,大概在 850~950。

  • 机器人在由纹理较丰富的区域向低纹理区域运 动时,相邻帧之间的特征点变化幅度较大,比值 N m p t t + 1 N m p t t \frac{Nmpt_{t+1}}{Nmpt_{t}} NmpttNmptt+1 大概在 1.3 到 1.8 之间

3.2 结果及分析

MPC算法是ROS系统中默认的局部路径规划算法,可作为很好的比较基准;

选取指标:成功率(Success Rate, SR)、跟踪丢失率(Tracking Failure Rate, TFR)、碰撞率 (Collision Rate, CR)

  1. PF 算法在所有场景任务中表现都相对较差,这是因为该算法仅仅沿着规划出的全局路径行走,没有考虑如何避障。

  2. DWA 算法、TEB 算法、MPC 算法运 行时需要载入局部地图,根据参数对行走轨迹 进行采样,选择运动代价最小的轨迹。

    在三个场景的任务中均会发生较高的跟踪丢失率。

  3. 本文所述方法在所有场景任务中相比于传统的路径规划算法的平均成功率提高了 53.9%,位姿跟踪丢失率减小了 66.5%,碰撞率减小了 30.1%。

  4. 本文所提出的方法在 Edgemere 场景任务中表现最好,在 Eastville 场景任务中表现次之,在 Mosquito 场景任务中 表现相对较差。

本文所提出的方法后,机器人在行走过程中所跟踪到的特征始终维持在 580 个以上,具有较强的稳定性。

论文图片9

3.3 消融实验

消融实验是深度强化学习研究中确定某种方法是否有效的最直接的方式。

训练过程中每次剔除其中一部分奖励函数以查看对模型指标的影响。评价指标包括成功率、跟踪丢失率和碰撞率。

论文图片10

其他 6 个消融实验在各种指标上都略逊于 6 种奖励函数同时使用的效果,证明了这 6 种奖励函数在点导航任务上具有快速到达局部目标点,并降 低碰撞率和跟踪丢失率的能力。

4 结论

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340