Driving Behavior Modeling Using Naturalistic Human Driving Data With Inverse Reinforcement Learning

2023-10-27

数学建模

The state s t ∈ S \mathbf{s}_t \in \mathcal{S} stS: the driver observes at timestep t t t consists of the position, orientations, and velocities of itself and surrounding vehicles

The action a t ∈ A \mathbf{a}_t \in \mathcal{A} atA the driver takes is composed of speed and steering controls of the ego vehicle.

Assuming a discrete-time setup and a finite length L L L. a trajectory ζ = [ s 1 , a 1 , s 2 , a 2 , . . . , s L , a L ] \zeta=[\mathbf{s}_1, \mathbf{a}_1,\mathbf{s}_2, \mathbf{a}_2,...,\mathbf{s}_L, \mathbf{a}_L] ζ=[s1,a1,s2,a2,...,sL,aL] is yielded by organizing the state and action in each timestep within the decision horizon.

The trajectory includes multiple vehicles in the driving scene since we consider interactions between agents.

状态 s t \mathbf{s}_t st只是可以直接从传感器获得的物理或部分观察结果。

我们假设一个基于selected features的加权和的线性结构的reward function

在一个指定的状态 s t \mathbf{s}_t st的reward function r ( s t ) r(\mathbf{s}_t) r(st) 被定义为

r ( s t ) = θ T f ( s t ) (1) r(\mathbf{s}_t)=\theta^T\mathbf{f}(\mathbf{s}_t) \tag{1} r(st)=θTf(st)(1)

其中, θ = [ θ 1 , θ 2 , . . . , θ K ] \mathbf{\theta}=[\theta_1, \theta_2,...,\theta_K] θ=[θ1,θ2,...,θK] K − K- K维的权重向量, f ( s t ) = [ f 1 ( s t ) , f 2 ( s t ) , . . . , f K ( s t ) ] \mathbf{f(\mathbf{s}_t)}=[f_1(\mathbf{s}_t), f_2(\mathbf{s}_t),...,f_K(\mathbf{s}_t)] f(st)=[f1(st),f2(st),...,fK(st)]是提取的刻画状态 s t \mathbf{s}_t st的feature vector

因此,一条轨迹 R ( ζ ) R(\zeta) R(ζ)的reward表示为:

R ( ζ ) = ∑ t r ( s t ) = θ T f ζ = θ T ∑ s t ∈ ζ f ( s t ) \R(\zeta)=\sum_{t}r(\mathbf{s}_t)=\mathbf{\theta}^T\mathbf{f}_{\zeta}=\mathbf{\theta}^T\sum_{\mathbf{s}_t\in \zeta}\mathbf{f}(\mathbf{s}_t) R(ζ)=tr(st)=θTfζ=θTstζf(st)

其中, f ζ \mathbf{f}_{\zeta} fζ表示在轨迹 ζ \zeta ζ上的accumulative features

问题定义

给定一个包含 N N N条轨迹的人类驾驶数据 D = { ζ 1 , ζ 2 , . . . , ζ N } \mathcal{D}=\{\zeta_1, \zeta_2, ..., \zeta_{N}\} D={ζ1,ζ2,...,ζN}

如何获得reward的权重 θ \mathbf{\theta} θ,使得可以生成一个匹配人类演示轨迹的driving policy

轨迹生成

对于横向 y y y坐标,我们需要指定目标位置、速度和加速度,与初始状态一起形成总共六个边界条件,这需要一个五次多项式函数。 对于纵向 x x x轴,只需要目标速度和加速度,因此四次多项式函数可以满足平滑性要求。

计算五秒的轨迹,每0.1秒作为一个时间间隔

我们可以通过在目标空间 Φ = { v x e , a x e , y e , v y e , a y e } \Phi=\{v_{xe}, a_{xe}, y_{e},v_{ye},a_{ye}\} Φ={vxe,axe,ye,vye,aye}采样目标状态从而生成多条多项式轨迹,使得其能够覆盖所有可能的行为。

环境模型

  1. 车辆的运动学状态根据自行车模型传播。

注:

自行车模型(Bicycle Model)的建立基于如下假设:

  • 不考虑车辆在垂直方向( Z Z Z轴方向)的运动,即假设车辆的运动是一个二维平面上的运动
  • 假设车辆左右侧轮胎在任意时刻都拥有相同的转向角度和转速;这样车辆的左右两个轮胎的运动可以合并为一个轮胎来描述
  • 假设车辆行驶速度变化缓慢,忽略前后轴载荷的转移
  • 假设车身和悬架系统都是刚性系统
  • 假设车辆的运动和转向是由前轮驱动的
  1. 一般的想法是周围的车辆遵循数据集中的原始轨迹,否则会根据与自车或其他被影响的车辆保持安全距离的目的来做出反应。
  2. 基本假设是,人类是反应最好的代理人,他们可以准确地预测其他代理人对其计划行动的反应。 值得注意的是,这种设置可能会在转移函数的估计中引入一些偏差。
  3. 具体而言,仅考虑环境中距离本车 50 米范围内的车辆。 周围的车辆首先会按照记录的轨迹来,每个人都会不断检查自己与前方车辆之间的差距。 如果前面是自我车辆并且它们之间的间隙小于 IDM 给出的期望间隙,则环境车辆将被 IDM 覆盖,从而不再遵循其原始轨迹。 同样,如果前面的车辆是被 IDM 覆盖的环境车辆,如果它们之间的间隙太小,后面的环境车辆也会被覆盖。

Summary of the IRL Algorithm

  1. initialize the reward parameters randomly
  2. compute the feature expectation of human driving trajectories
  3. create a buffer to store the feature vector of all the generated trajectories to avoid sampling in the environment since the sampling process consumes most of the computation time

自然人类驾驶数据集

  1. 每辆车的位置以每秒 10 帧的速度记录,从而生成从该区域开始到结束的详细车辆轨迹。 然而,数据集中最初收集的车辆轨迹充满了观察噪声,因此我们使用 Savitzky-Golay 滤波器在 2 秒窗口上使用三阶多项式来平滑原始轨迹并获得用于奖励学习的演示轨迹。

特征选择

  1. Feature are mapping from state to real values which capture important properties of the state.
  2. 驾驶状态的特征从以下四个对人类驾驶员很重要的方面进行归纳:
    • Travel Efficiency: 此功能旨在反映人类尽快到达目的地的愿望,其定义为车辆的速度:

      • f v ( s t ) = v ( t ) f_{v}(\mathbf{s}_t)=v(t) fv(st)=v(t)
    • Comfort:乘坐舒适度是人类驾驶员更喜欢的另一个因素,衡量舒适度的指标是纵向加速度 a x a_x ax 、横向加速度 a y a_y ay和纵向加加速度 j x j_x jx
      在这里插入图片描述

      • 其中, x ( t ) x(t) x(t) y ( t ) y(t) y(t)是纵向和横向坐标
    • Risk Aversion: 人类驾驶员倾向于与周围的车辆保持安全距离,这个距离因人类驾驶员而异,这反映了他们不同程度的感知风险。 我们将前车的风险水平定义为与从本车到前车的时距相关的指数函数,假设匀速运动:

      • f r i s k f ( s t ) = e − ( x f ( t ) − x e g o ( t ) v e g o ( t ) ) f_{risk_f}(\mathbf{s}_t)=e^{-(\frac{x_f(t)-x_{ego}(t)}{v_{ego}(t)})} friskf(st)=e(vego(t)xf(t)xego(t))
      • f r i s k r ( s t ) = e − ( x e g o ( t ) − x r ( t ) v r ( t ) ) f_{risk_r}(\mathbf{s}_t)=e^{-(\frac{x_{ego}(t)-x_r(t)}{v_{r}(t)})} friskr(st)=e(vr(t)xego(t)xr(t))
        • 其中, x r x_r xr是自车后面的车的纵坐标, x f x_f xf是离自车最近的前面的车的纵坐标
      • 请注意,在我们的环境模型中评估生成的轨迹时可能会发生碰撞,包括与其他车辆或路缘石碰撞,因此碰撞也是一个风险指标,其定义为:
        • 在这里插入图片描述
    • Interaction:

      • 人类驾驶行为的一个基本属性是人类意识到他们的行为对周围车辆的影响,或者更具体地说,他们的计划是否会给其他人带来额外的不便(例如,急速减速让行)[32]。 我们引入以下特征来明确表示这种影响。
      • 它被定义为根据我们的环境模型(后面车辆的链式减速反应)受到本车行为影响的环境车辆的预测减速度的总和,表明本车对原路线的改变有 对他们造成直接影响。
      • f I ( s t ) = ∑ i a i ( t ) , i f   a i ( t ) < 0 f_{I}(\mathbf{s}_t)=\sum_{i}a_i(t), if\ a_i(t)<0 fI(st)=iai(t),if ai(t)<0
      • where a i ( t ) a_i(t) ai(t) is the acceleration of the vehicle i i i that has been influenced by the ego vehicle.
      • 在实际场景中应用奖励函数时,我们可以使用预测模块来估计此特征,该模块使用驱动模型(如 IDM)预测其他agent由于自车计划动作而采取的动作。
  3. 上述所有特征都是在每个时间步计算并随着时间的推移累积以获得轨迹的特征。 然后通过除以数据集中的最大值将轨迹特征归一化为 [0, 1],以抵消其不同单位和尺度的影响。 此外,我们为碰撞特征分配了一个固定的大负权重 (-10),因为与使该权重可学习相比,这可以提高建模精度。

实验设计

  1. Driving Behavior Analysis: 我们利用所提出的方法来分析不同人类驾驶员的驾驶行为。 我们首先从数据集中展示人类驾驶员的奖励学习过程作为示例,以揭示我们提出的方法的有效性。 然后,学习到的奖励函数用于确定测试条件下候选轨迹的概率并解释一些驾驶行为。
  2. Robustness: 我们在非训练阶段的场景中测试学习到的奖励函数,以确定学习到的策略与人类策略之间的相似性是否显着下降,以研究所提出方法的鲁棒性。
  3. Model Accuracy:
    • 我们通过将学到的策略与地面真实的人类驾驶轨迹进行比较,展示了在测试条件下建模准确性的定量结果。
    • 我们研究了个性化的建模假设,即每个人类驾驶员有不同的偏好(驾驶风格),因此对奖励函数有不同的权重。作为比较,我们采用了所有驾驶员共享一个相同的成本函数的一般建模假设。还采用了另外两个基线模型,即分别用于纵向和横向运动的IDM和MOBIL,以及恒速模型。
  4. **Interaction Factors:**我们分析了交互因素对建模精度的影响。它们包括奖励函数中的交互功能和在环境模型中模拟周围车辆对自我车辆路线变化的反应。

实现细节

  1. 为了简化,目标采样空间简化为 Φ = { v x e , y e } \Phi=\{v_{xe}, y_{e}\} Φ={vxe,ye}。只包含纵向的速度和横向的位置,其他设置为0
  2. 纵向速度的采样区间为: [ v − 5 , v + 5 ] m / s [v-5, v+5]m/s [v5,v+5]m/s ,以 1 m / s 1m/s 1m/s作为间隔,其中, v v v是车辆的初始速度
  3. 横向位置的采样集合为 { y , y L , y R } \{y,y_L,y_R\} {y,yL,yR},其中, y y y是初始的横向位置, y L y_L yL y R y_R yR分别是左右车道的位置(if they are available)
  4. 轨迹的时间跨度是 5 s 5s 5s,并且模拟间隔为 0.1 s 0.1s 0.1s
  5. IDM模型的参数如下:
    • desired velocity v 0 = v c u r r e n t   m / s v_0=v_{current}\ m/s v0=vcurrent m/s
    • maximum acceleration a m a x = 5   m / s a_{max}=5\ m/s amax=5 m/s
    • desired time gap τ = 1   s \tau=1\ s τ=1 s
    • comfortable braking deceleration b = 3   m / s b=3\ m/s b=3 m/s
    • minimum distance s 0 = 1   m s_0=1\ m s0=1 m
  6. 出现的一个问题是,人类轨迹的纵向和横向抽动与生成的轨迹难以匹配,因为多项式曲线是平滑的,而人类驾驶轨迹充满了噪声运动。因此,我们在给定原始轨迹的初始状态和结束条件的情况下,将人类驾驶轨迹处理成多项式曲线来表示。

## 代码细节
1. action = (lateral_position, target_speed, 5)

参考文献

[1] Driving Behavior Modeling Using Naturalistic Human Driving Data With Inverse Reinforcement Learning (时间原因没有去找ref,这是文章名称)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Driving Behavior Modeling Using Naturalistic Human Driving Data With Inverse Reinforcement Learning 的相关文章

  • 推荐 4 个本周 火火火火 的开源项目

    本期推荐开源项目目录 1 一个集成了主流 AI 大模型的 APP 2 模拟人类行为的小镇 3 离线 OCR 软件 4 流程图编辑框架 01 一个集成了主流 AI 大模型的 APP 该开源项目集成了主流的大语言模型 绘图模型 基于Flutte
  • 第七站:吃透JavaScript中的函数

    欢迎来到 JavaWeb的奇妙冒险 教学系列 在这里 我们将继续探索Web开发的精彩世界 本站将为你揭开JavaScript中变量的神秘面纱 让我们在学习的过程中既轻松愉快 又能掌握高质量的知识 准备好进入第七站的学习之旅了吗 让我们开始吧
  • 【C++11】右值引用和移动语义 万能引用和完美转发

    文章目录 1 右值引用和移动语义 1 1 左值引用和右值引用 1 2 右值引用的使用场景 1 3 新的类功能 2 万能引用与完美转发 2 1 万能引用的基本介绍和使用 2 2 完美转发 2 3 完美转发的实际应用场景 3 可变参数模板 3

随机推荐

  • C++继承(一)

    目录 继承方式 继承同名成员处理方式 父类与子类中都有相同的成员 继承同名静态成员处理方式 继承中的对象模型 继承中构造和析构函数 菱形继承 多继承语法 在多种接口需要相同输出时 C 的继承相对于传统方式更有利也更方便维护 C 继承语法 c
  • React + css3 实现circle圆环进度条加载

    需求效果图 如上图所示 需求 动态获取不同的分数 圆环展示对应的百分比分数值 正确率 70 以下提示文案 还需要继续加油哦 正确率 70 90 以下提示文案 不错 再加把劲 正确率 90 及以上提示文案 真棒 数据描述 不同的测试分数显示不
  • 如何用Git LFS管理超过50MB的文件

    首先说明 Github对文件上传尺寸有50MB的限制 如果想要上传大于50MB的文件 必须用Git Large File System进行管理 一般情况下 超额的这部分大型文件是各种包啊什么的 比如Unity项目内的一些package 本身
  • Spring IOC的实现机制

    1 什么是Spring IOC Spring IOC Inversion of Control 控制反转 是Spring框架的核心特性之一 它是一种设计模式 通过该模式 对象的创建 依赖注入和生命周期管理等操作由容器负责 而不是由程序员手动
  • Spring-cloud 导致应用收到多次ApplicationPreparedEvent

    最近排查发现DubboComponent被重复注册 怀疑ApplicationPreparedEvent收到了多次 public final class DubboConfigApplicationListener implements A
  • 华为OD机试 -配置文件恢复(C++ & Java & JS & Python)

    描述 有6条配置命令 它们执行的结果分别是 命 令 执 行 reset reset what reset board board fault board add where to add board delete no board at a
  • SPI 及 NOR Flash 介绍

    一 SPI 1 SPI的含义 SPI 串行外设设备接口 Serial Peripheral Interface 是一种高速的 全双工 同步的通信总线 SPI接口主要应用在存储芯片 AD转换器以及LCD中 SPI接口主要应用在存储芯片 AD转
  • Springboot 配置文件中用户名密码加密

    原配置文件内容 详细操作步骤 1 在pom xml文件中加依赖
  • 探究vite——新一代前端开发与构建工具(一)

    Vite 法语意为 快速的 发音 vit 是一种新型前端构建工具 能够显著提升前端开发体验 它主要由两部分组成 一个开发服务器 它基于 原生 ES 模块 提供了 丰富的内建功能 如速度快到惊人的 模块热更新 HMR 一套构建指令 它使用 R
  • 设计模式,命令模式,c++实现,提升内聚性,消除功能类与高层的耦合

    命令模式 给功能类集设置一个接口人 执行者 执行所有需求命令 避免外部 调用者 直接调用某个功能类的内部函数产生大量耦合 用于类间解耦 命令模式是一个高内聚的模式 将一个请求封装为一个对象 使用不同的请求把客户端参数化 对请求排队或者记录请
  • 深度学习中的不确定性:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision

    转载 https zhuanlan zhihu com p 98756147 原文 What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision NI
  • VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题

    页面展示 实现效果 点击实现列表内容的展开 折叠 代码 div class invoice list div class images img src static images invoice pu png img src static
  • SD卡通信接口 SD协议 SPI协议

    SD协议与SPI协议 SD卡虽然只有一种物理接口 但是却支持两种读写协议 SD协议和SPI协议 SPI协议特点 1 SPI协议是单片机中广泛使用的一种通信协议 并不是为SD卡专门发明的 2 SPI协议相对SD协议来说速度比较低 3 SD卡支
  • XGBoost学习(二):介绍及安装

    XGBoost学习 一 原理 XGBoost学习 二 安装及介绍 XGBoost学习 三 模型详解 XGBoost学习 四 实战 XGBoost学习 五 参数调优 XGBoost学习 六 输出特征重要性以及筛选特征 完整代码及其数据 前言
  • 如何使用ssh来连接windows

    什么是SSH协议 在计算机领域中 SSH文本传输协议 安全文件传送协议 是一种数据流连接 提供文件访问 传输和管理功能的网络传输协议 在windows上使用ssh协议因为该协议通过tcp22端口 路由器 服务器 交换机 沙sftp等不安全程
  • Qml中调用C++

    Qml中调用C 方法一 1 写一个C 类 2 在需要使用的地方注册该类 3 qml 中调用 在qml中调用C 类步骤如下 方法一 1 写一个C 类 写一个类 继承自QObject 将类中需要qml调用的方法 用前置的Q INVOKABLE声
  • List集合的定义和原理

    目录 一 List集合的特点介绍 二 List集合的子类 1 ArrayList 2 LinkedList 一 List集合的特点介绍 java util List接口继承于Collection接口 1 List集合是有序的 2 List集
  • VScode C++头文件问题的终极解决办法

    VScode C 头文件问题的终极解决办法 之前在配置VScode环境的时候 按照网上的文章配置 总是找不到头文件 搜索解决方案 都是千篇一律 没有说到重点 在此详细解释一下 局部配置全局配置傻傻分不清楚 网上很多文章都在讲一个配置文件c
  • Java高效并发之乐观锁悲观锁、(互斥同步、非互斥同步)

    乐观锁和悲观锁 首先我们理解下两种不同思路的锁 乐观锁和悲观锁 这两种锁机制 是在多用户环境并发控制的两种所机制 下面看百度百科对乐观锁和悲观锁两种锁机制的定义 乐观锁 Optimistic Locking 相对悲观锁而言 乐观锁机制采取了
  • Driving Behavior Modeling Using Naturalistic Human Driving Data With Inverse Reinforcement Learning

    数学建模 The state s t S mathbf s t in mathcal S st S the driver observes at timestep