无人驾驶的规划与控制(四)——反馈控制
文章目录
- 1 自行车模型
- 2 PID反馈控制
- 2.1 横向控制
- 2.2 纵向控制
1 自行车模型
在自行车模型中,我们假设车辆姿态处于一个二维的平面坐标系内,车辆的姿态可以由位移(position)和车身夹角(heading)完全描述,并且前后轮由一个刚性(rigid)轴连接,前轮可转动,后轮只能直行。
自行车模型的一个重要特征是:如果车辆不向前移动,就不能横向位移,称为非完整性约束(nonholonomic constraint)。
符号 | 含义 |
---|---|
e‾x,e‾y\overline{e}_{x},\overline{e}_{y}ex,ey | x和y方向的单位向量 |
prp_{r}pr | position rear tyre 后轮所在位置的向量 |
p˙r\dot{p}_{r}p˙r | 后轮地面接触点瞬时速度向量 |
pfp_{f}pf | position front tyre 前轮所在位置的向量 |
p˙f\dot{p}_{f}p˙f | 前轮地面接触点瞬时速度向量 |
θ\thetaθ | 车身的朝向角,即后轮朝向角P˙r\dot{P}_rP˙r和e‾x\overline{e}_xex的夹角 |
δ\deltaδ | 方向盘转角,前轮朝向和车身朝向的夹角 |
lll | 刚性轴长度 |
这样后轮的x方向速度分量x˙r\dot{x}_rx˙r,y方向速度分量y˙r\dot{y}_ry˙r,和朝向角可以表示为:
x˙r=vrcos(θ)\dot{x}_{r}=v_{r} \cos (\theta) x˙r=vrcos(θ)
y˙r=vrsin(θ)\dot{y}_{r}=v_{r} \sin (\theta) y˙r=vrsin(θ)
θ=vrtan(δ)/l\theta=v_{r} \tan (\delta) / l θ=vrtan(δ)/l
同理,前轮的x方向速度分量x˙f\dot{x}_fx˙f,y方向速度分量y˙f\dot{y}_fy˙f,和朝向角可以表示为:
x˙f=vfcos(θ+δ)\dot{x}_{f}=v_{f} \cos (\theta+\delta) x˙f=vfcos(θ+δ)
y˙f=vfsin(θ+δ)\dot{y}_{f}=v_{f} \sin (\theta+\delta) y˙f=vfsin(θ+δ)
θ=vfsin(δ)/l\theta=v_{f} \sin (\delta) / l θ=vfsin(δ)/l
前后轮的切向速度满足:vr=vfcos(δ)v_{r}=v_{f} \cos (\delta)vr=vfcos(δ)
在这样的车辆模型下,反馈控制需要解决的问题之一,就是寻找满足车辆动态姿态限制的方向盘转角δ∈[δmin,δmax]\delta\in[\delta_{min},\delta_{max}]δ∈[δmin,δmax]和前向速度vr∈[vmin,vmax]v_r\in[v_{min},v_{max}]vr∈[vmin,vmax]。
2 PID反馈控制
无人车反馈控制模块的任务,是控制车辆尽可能遵循上游动作规划(轨迹和速度)出的时空轨迹。
这里使用两个PID控制器分别控制方向盘转角δ\deltaδ以及前进速度vsv_svs。
2.1 横向控制
横向控制主要跟踪的变量误差主要是轨迹的横向误差,和角度误差。
在n采样时刻,控制方向盘转角的PID控制器如下:
δn=K1θe+K2le/Vs+K3ie+K4∑i=1nleΔt\delta_{n}=K_{1} \theta_{e}+K_{2} l_{e} / V_{s}+K_{3} i_{e}+K_{4} \sum_{i=1}^{n} l_{e} \Delta t δn=K1θe+K2le/Vs+K3ie+K4i=1∑nleΔt
符号 | 说明 |
---|---|
θe\theta_eθe | 当前车朝向,和基准轨迹点(Reference Point)之间的跟踪角度误差 |
lel_ele | 横向位置和基准点轨迹之间的距离误差 |
VsV_sVs | 车辆在纵向方向的速度 |
2.2 纵向控制
纵向控制主要跟踪的速度误差,其中速度误差是轨迹曲率和基准轨迹点曲率的函数:
Ve=−f(kVehicle ,kReference )V_e=-f\left(k_{\text { Vehicle }}, k_{\text { Reference }}\right) Ve=−f(k Vehicle ,k Reference )
因此前进速度的PID控制器可以写成:
UV=KPVe+KI∑VeΔt+KDΔVe/ΔtU_{V}=K_{P} V_{e}+K_{I} \sum V_{e} \Delta t+K_{D} \Delta V_{e} / \Delta t UV=KPVe+KI∑VeΔt+KDΔVe/Δt
符号 | 说明 |
---|---|
kVehicle k_{\text { Vehicle }}k Vehicle | 车辆当前的轨迹点曲率 |
kReference k_{\text { Reference }}k Reference | 基准轨迹点的基准点曲率 |
参考文章
《第一本无人驾驶技术书》刘少山
在Typora中输入公式
Typora开启行内公式
常用数学符号的 LaTeX 表示方法
一份不太简短的LATEX2ε介绍【精华】
无人驾驶的规划与控制(四)——反馈控制相关推荐
- 无人驾驶的规划与控制(一)——路由寻径
文章目录 1 无人车规划与控制的模块分类 2 路由寻径 2.1 把车道划分成Lane序列 2.2 建立有向带权图 2.3 利用Dijkstra或A*算法搜索 1 无人车规划与控制的模块分类 无人车的规 ...
- 无人驾驶的规划与控制(二)——行为决策规划
文章目录 1 无人驾驶行为决策需要哪些信息 2 有限状态马尔科夫决策过程 2.1 马尔科夫决策定义 2.2 寻找最优策略 2.3 使用MDP的困难 3 基于场景划分设计行为决策 3.1 分治的核心思想 ...
- 自动驾驶汽车的规划与控制
1. 概念与意义 自动驾驶汽车作为一个复杂的软硬件结合系统,其安全,可靠地运行需要车载硬件,传感器集成.感知.预测以及规划控制等多个模块的协同配合工作.感知预测和规划控制的紧密配合非常重要.这里的规划 ...
- 学习笔记2--自动驾驶汽车的规划与控制
本系列博客包括6个专栏,分别为:<自动驾驶技术概览>.<自动驾驶汽车平台技术基础>.<自动驾驶汽车定位技术>.<自动驾驶汽车环境感知>.<自动驾驶 ...
- 【综述篇】(1)无人驾驶/机器人规划方向综述
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.机器人决策规划岗位的本质的认识 0.规划确定场景与需求 1.不同 ...
- 无人驾驶路径规划(三)局部路径规划-Frenet坐标系下的动态轨迹规划
前言:对于无人驾驶路径规划系列的第二篇RRT算法的改进部分,由于有些内容属于个人想到的创新点,有想法投一篇小论文所以暂时没有公开,等后续完成后我会再公开介绍.今天第三篇内容开启一个新的算法介绍:Fre ...
- 采用truelicense进行Java规划license控制 扩展可以验证后,license 开始结束日期,验证绑定一个给定的mac住址...
采用truelicense进行Java规划license控制 扩展可以验证后,license 开始结束日期,验证绑定一个给定的mac住址. Truelicense 它是一个开源java license ...
- 大学计算机第四讲答案,大学职业生涯规划课第四讲答案
大学职业生涯规划图库答案,压缩有效版,方便快捷 大学职业生涯规划课第四讲答案 1下面专业知识技能叙述不准确的是?选择一个答案d. 不需要经过有意识的.专门的培训. Question 2"它们 ...
- 深度理解特斯拉自动驾驶解决方案 3:规划与控制
从理论到现实,分析特斯拉全自动驾驶的演变 在之前的文章中,我们讨论了特斯拉视觉方案的整个架构. 在这篇文章中,我们将讨论:计划与控制. 计划与控制 这部分由特斯拉自动驾驶软件总监Ashok Ellus ...
最新文章
- 切诺夫界证明(Chernoff bound)
- 计算机jsp外文文献,计算机 JSP web 外文翻译 外文文献 英文文献.doc
- 第四章(变量、作用域、内存问题)
- tensorflow学习(4.loss函数以及正则化的使用 )
- jQuery.ajax success 与 complete 区别
- 原生安卓10怎么打开面部识别_《原创》安卓系统手机只需一步立即提速翻倍,越久的手机越见效...
- 如何做到数百万台车联网设备同时在线 0 故障
- Python鼠标拖动曲线(matplotlib)
- 计算机网络本直通线的制作方法,电脑网线制作之交叉线与直通线的做法
- 微生物群-肠道-大脑轴:从运动到情绪
- from functools import reduce——从典型实例做抓手看reduce函数使用
- html调整背景页面的大小,css如何设置背景图片大小
- JavaWeb核心技术——RequestResponse用户登录注册案例
- 坚果Pro2识别网页链接问题
- 间隔层设备和过程层简介
- 特洛伊的女人 | 经济学人早报精选20210830
- 项目管理工具三、目标管理的SMART原则
- 蓝牙路由器是怎么回事?
- Tushare了解并使用
- ABAP字符串系列操作
热门文章
- 嵌入式工作笔记0006---半导体中的IP核是什么意思
- memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
- 两者结合在一起看SphereFace
- 杭电1425 sort
- redhat java配置
- boost学习之BOOST_PP_SEQ_FOR_EACH
- VMware 虚拟机如何连接网络,且远程可连接
- 一步一步写算法(之排序二叉树删除-2)
- 司机行为识别_台州交警上线“闯红灯抓拍神器”人脸识别+4米大屏,拍到违章直接曝光...
- 谷歌要求华为不启用鸿蒙,谷歌:华为我不让你用我的服务!华为:我还是照样用!...