阿克曼模型推导

一、序论

1.1 研究目的

运动学是从几何学的角度研究物体的运动规律,包括物体在空间的位置、速度等随时间而产生的变化,因此,车辆运动学模型应该能反映车辆位置、速度、加速度等与时间的关系。在车辆轨迹规划过程中应用运动学模型,可以使规划出的轨迹更切合实际,满足行驶过程中的运动学几何约束,且基于运动学模型设计出的控制器也能具有更可靠的控制性能。

1.2 自行车模型

车辆控制研究中,建立模型应尽可能使模型简单易用,且能真实反映车辆特性,搭建车辆模型多基于单车模型,使用单车模型需做如下假设:

  • 不考虑车辆在Z轴方向的运动,只考虑XY水平面的运动,如图1所示;

  • 左右侧车轮转角一致,这样可将左右侧轮胎合并为一个轮胎,以便于搭建单车模型,如图2所示;

  • 车辆行驶速度变化缓慢,忽略前后轴载荷的转移;

  • 车身及悬架系统是刚性的;

其中,O 为OA、OB的交点,是车辆的瞬时滚动中心,线段OA、OB分别垂直于两个滚动轮的方向;β为滑移角,指车辆速度方向和车身朝向两者间所成的角度,ψ为航向角,指车身与X轴的夹角。

一般情况下,我们不考虑车辆滑移,β默认为0

1.3 运动学与动力学模型

自行车运动学与动力学公式推导

二、阿克曼模型

2.1 阿克曼转向几何

(1)参数定义

阿克曼转向几何(Ackerman Turning Geometry)是一种为了解决交通工具转弯时,内外转向轮路径指向的圆心不同的几何学。

车轮偏角定义:

阿克曼转向几何:

阿克曼中转弯半径R是重要参数

(2)转弯半径R

低速环境下,车辆行驶路径的转弯半径变化缓慢,此时我们可以假设车辆的方向变化率等于车辆的角速度。则车辆的角速度为

其中,利用弧长与角度关系,可得到 1/R = δ/L:

则,可求得半径R:

R = L / δ,其中 δ为前轮转角,也是车辆绕圆心点转过的角度

2.2 利用半径R更新车辆位置

利用转弯半径R更新车辆位置点(X(t+1), Y(t+1)

且根据弧长与角度关系知,车辆在t时间内移动距离为 V*t 距离,则可推到出车辆转过的角度θ:

θ = V * t / R , R = L / δ

则 θ = V * t * δ / L

根据车辆转过的角度更新车辆位置点:(车辆坐标系下位置更新)

X(t + 1) = R * (1 - cos(θ))
Y(t + 1) = R * sin(θ)

2.3 转弯半径的另一种表达

由于两个前轮的转向角度不同,造成了,两个后轮旋转半径也不相同,于是,做出了相应的简化,以车辆后轴中心点为旋转参考点,对车辆左前轮角度和右前轮角度取均值:

前轮平均转角:

式中,δ为简化后车辆前轮转向角,δ 和δf,δr 分别为对应的车辆左侧前轮角度和右侧前轮转向角度。

根据图中几何关系,知,tan(δ) = L / R;

其中,δ为车辆前轮转角,L 为车辆前后轴之间的距离,R 为车辆在给定的前轮转角δ情况下,所遵循的圆轨迹的半径。

三、总结

3.1 状态方程

3.2 航向角更新

(1)航向角变化率与转角与滑移角关系

其中,滑移角β默认为0时,则cos(β) = 1,默认后轮不转动,则δr = 0, tan(δr) = 0,即航向角变化率,l = lf + lr

参考链接

  1. https://blog.csdn.net/u013914471/article/details/82968608
  2. https://blog.csdn.net/asafield/article
  3. https://blog.csdn.net/qq_24649627/article

无人驾驶-控制-阿克曼模型相关推荐

  1. 无人驾驶-控制-自行车模型

    无人驾驶-控制-自行车模型 一.综述 1.1 简介 在了解高级的车辆控制算法之前,掌握车辆运动模型是非常有必要的.车辆运动模型就 是一类能够描述我们的车辆的运动规律的模型.显然,越复杂的模型就越接近现 ...

  2. 【MATLAB】无人驾驶车辆的模型预测控制技术(精简讲解和代码)【运动学轨迹规划】

    文章目录 0.友情链接 1.引言 2.预测模型 3.滚动优化 3.1.线性化 3.2.UrU_rUr​的求取 3.3.离散化与序列化 3.4.实现增量控制 4.仿真示例 0.友情链接 B站链接1-北京 ...

  3. 无人驾驶-控制-纯跟踪

    无人驾驶-控制-纯跟踪(Pure Pursuit) 一.模型详解 1.1 简介 (1)对于无人车来说,规划好的路径通常由一系列路径点构成,这些点包含空间位置信息.姿态信息.速度.加速度等.路径与轨迹区 ...

  4. ROS综合学习记录(一)---cmd_vel转换为阿克曼模型的速度变换

    文章目录 0.问题描述: 1.问题分析: 2.解决方案: 2.1Ackermann差速控制输出方法 2.1.1理解阿克曼模型 2.1.2适用阿克曼模型的teb_local_planner 2.2改正c ...

  5. 自动驾驶之无人驾驶车辆与模型预测控制

    无人驾驶车辆 无人车辆( Unmanned Vehicle),根据其行驶环境的不同,可以分为空中无人机( Unmanned Aerial Vehicle).水面无人艇( Unmanned Surfac ...

  6. 无人驾驶-控制-Stanley

    无人驾驶-控制-Stanley 一.模型介绍 1.1 简介 关于无人车追踪轨迹,目前的主流方法分为两类:基于几何追踪的方法和基于模型预测的方法,其中几何追踪方法主要包含纯跟踪和Stanley两种方法, ...

  7. Rviz中控制机器人模型运动(arbotix)

    前言: 通过 URDF 结合 rviz 可以创建并显示机器人模型,不过,当前实现的只是静态模型,如何控制模型的运动呢?在此,可以调用 Arbotix 实现此功能. 简介: Arbotix:Arboti ...

  8. 【控制】模型预测控制 model predictive control 简介

    目录 模型预测控制的一点笔记和看法 1 [控制]模型预测控制 model predictive control 简介 2 [控制]模型预测控制,公式推导,数值仿真,有程序有图 文章目录 1 模型预测控 ...

  9. 在Blender中使用代码控制人物模型的嘴部动作 - 嘴部张开

    在Blender中使用代码控制人物模型的嘴部动作 - 嘴部张开 flyfish 环境 无需iphone,不限制平台 原始的3D模型 控制之后的样子 3D模型部分 中英文对照 此次使用的是形态键(Sha ...

  10. 并联下垂控制(DROOP控制)_SIMULINK模型搭建详解

    一.前言 对于多逆变器并联,最常见以及最经典的方式是采用下垂控制(DROOP控制).通过下垂控制实现微电网的调压调频功能. 二.控制策略 采用三环控制结构:下垂功率外环+电压电流双闭环 控制部分 功率 ...

最新文章

  1. 吴恩达《机器学习训练秘籍》:7 条关于项目实践的实用建议
  2. 高性能HTTP加速器varnish实践
  3. 被Facebook终止合作,被谷歌下架,股价营收皆腰斩,猎豹只剩AI一根救命稻草了...
  4. 移动端自适应布局之-----rem单位的使用
  5. 504. Base 7
  6. java学习:理解abstract
  7. koa --- [MVC实现之一]自定义路由读取规则
  8. 懒办法1篇文10分钟快速入门MySQL增删查改
  9. mac下pip install 安装只能选择python2.7的问题
  10. (计算机组成原理)第五章中央处理器-第三节2:CPU专用数据通路
  11. VSS (Visual Source Safe 2005) 用法详解(转载)
  12. Cascade R-CNN升级!目标检测制霸COCO,实例分割超越Mask R-CNN
  13. 统计csv词频_Python|国家统计局CPI数据动态图表可视化
  14. mysql 按时间分库分表_sharding-jdbc 按时间分库分表
  15. 页面之间传递参数得几种方法
  16. 使用WPF创建画图箭头
  17. 检查Prefab或场景物件是否丢失脚本
  18. 黄聪:C#设置Word中表格某个列宽
  19. python-包机制
  20. C/C++集成开发环境搭建

热门文章

  1. 亲测有效 debian出现does not have a Release file. N: Updating from such a repository can‘t be done securely
  2. 华为EC1261使用小记
  3. 内网渗透学习04——域内横向移动
  4. sptd.sys不是病毒?
  5. java实现日历打印项目
  6. Firebug教你玩转网页小把戏!
  7. Microsoft Surface
  8. 利用XrecycleView写多条目展示+流式布局
  9. html5 input valid,javascript – 如果inputElement.validity.valid == false,如何显示HTML5验证?...
  10. Unity利用JsonFX解析Json格式文本