一,车辆运动学模型的建立

如图所示,对于横向控制而言,因变量自变量

将速度沿轴分解得车辆的模型为:

即:

其中,因为是横向控制,故假设是常数

上述车辆运动学模型为非线性模型:

二,车辆运动学模型的线性化:泰勒展开

在参考点处的泰勒展开公式,忽略高次项为:

其中,

,

则上式可表示为:

三,车辆运动学模型的离散化:前向欧拉

其中,

四,基于LQR模型,求解控制量

LQR的代价函数为:

假设,

迭代法求黎卡提方程的解设置迭代次数和迭代精度,如果在迭代次数范围内满足迭代精度的要求,我们认为该方程收敛,从而求得,则反馈增益为:

反馈量为:

LQR控制理论已经非常成熟,核心是建立模型,对模型进行线性化,并离散化,最终带入公式求解LQR的控制量。

五,实例代码

double lqrComputeCommand(double vx, double x, double y, double yaw, Traj_Point match_point,double vel, double l, double dt)
{double steer = 0.0;MatrixXd Q = MatrixXd::Zero(3,3);  MatrixXd R = MatrixXd::Zero(1,1);Q << 1      , 0    , 0,0      , 1    , 0,0      , 0    , 1;R << 1;double curvature = match_point.path_point.kappa;if(vel < 0) curvature = -curvature;double feed_forword = atan2(l * curvature, 1);MatrixXd A = MatrixXd::Zero(3, 3);A(0, 0) = 1.0;A(0, 2) = -vel*sin(match_point.path_point.yaw)*dt;A(1, 1) = 1;A(1, 2) = vel*cos(match_point.path_point.yaw)*dt;A(2, 2) = 1.0;MatrixXd B = MatrixXd::Zero(3,1);B(2, 0) = vel*dt/l/pow(cos(feed_forword),2);double delta_x = x - match_point.path_point.x;double delta_y = y - match_point.path_point.y;double delta_yaw = NormalizeAngle(yaw - match_point.path_point.yaw);VectorXd dx(3); dx << delta_x, delta_y, delta_yaw;double eps = 0.01;double diff = std::numeric_limits<double>::max();MatrixXd P = Q;MatrixXd AT = A.transpose();MatrixXd BT = B.transpose();int num_iter = 0;while(num_iter++ < param_.maxiter && diff > eps){MatrixXd Pn = AT * P * A - AT * P * B * (R + BT * P * B).inverse() * BT * P * A + Q;diff = ((Pn - P).array().abs()).maxCoeff();P = Pn;}MatrixXd feed_back = -((R + BT * P * B).inverse() * BT * P * A) * dx;steer = NormalizeAngle(feed_back(0,0) + feed_forword);return steer;
}

基于车辆运动学模型的LQR横向控制算法相关推荐

  1. 基于车辆运动学模型的纯跟踪(Pure Pursuit)法

    一.定义及概论 纯跟踪控制算法(Pure Pursuit)是一种典型的横向控制方法,最早由 R. Wallace 在1985年提出,该方法对外界的鲁棒性较好. 该算法的思想:基于当前车辆后轮中心位置, ...

  2. 基于阿克曼转向的车辆运动学模型

    基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型,为路径规划奠定基础,能够更好的检验简化的运动学模型反映运动过程的准确性. 包括:1.simulink仿真验证(版本为2018b) ...

  3. 自动驾驶控制算法——车辆运动学模型

    车辆运动学模型 自行车模型(Bicycle Model) 自行车模型(Bicycle Model)的建立基于如下假设: 不考虑车辆在垂直方向(Z轴方向)的运动,即假设车辆的运动是一个二维平面上的运动; ...

  4. 基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型

    基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型,为路径规划奠定基础,能够更好的检验简化的运动学模型反映运动过程的准确性. 包括:1.simulink仿真验证(版本为2018b) ...

  5. 自动驾驶车辆控制(车辆运动学模型)

    本文应配合b站up主"忠厚老实的老王"的自动驾驶控制算法系列视频食用. 文章目录 1. 两个车辆运动学模型 1.1 三个坐标系 1.2符号定义 1.3车辆运动学模型 1.4车辆动力 ...

  6. Apollo学习笔记(7)车辆运动学模型

    这里又整了一遍车辆运动学,之前在Autoware那会,已经在控制那一部分整过一次了,就当复习了吧. 前言 车辆的控制目前用的最广的有三种方式: PID LQR MPC 其中,PID是一种对模型无要求的 ...

  7. Apollo代码学习(二)—车辆运动学模型

    Apollo代码学习-车辆运动学模型 前言 车辆模型 单车模型(Bicycle Model) 车辆运动学模型 阿克曼转向几何(Ackerman turning geometry) 小结 Apollo( ...

  8. 车辆运动学模型到动力学模型推导

    车辆运动学模型到动力学模型推导 参考 https://www.bilibili.com/video/BV1St411A7nH/?spm_id_from=333.788.recommend_more_v ...

  9. 【自动驾驶】车辆运动学模型

    文章目录 参考资料 1. 以车辆重心为中心的单车运动学模型 1.1 参数说明 1.2 几何关系 1.2.1 偏航角ψ\psiψ的关系 1.2.1 滑移角 β\betaβ 的关系 1.2.2 运动学模型 ...

  10. 自动驾驶(五)---------车辆运动学模型

    车辆运动学模型 我的定义:正常直线行驶,位置变化等于速度*时间,车辆不是直线行驶,已知速度和方向盘转角等,求新的位置. 1.单车模型(Bicycle Model) 其中将左/右前轮合并为一个点,位于A ...

最新文章

  1. CEAC网络构建试题
  2. python的random函数_关于random()的详细介绍
  3. bzoj 3033 太鼓达人——欧拉图搜索
  4. 什么是javax.ws.rs.core.context? [第3部分]
  5. 2021-07-24 KDD China郑宇博士部分听会记录
  6. 阿里云和中移物联网M5311的MQTT通讯
  7. [POJ3177]Redundant Paths(双联通)
  8. Kerberos与Sniffer,矛与盾永远的对立
  9. [原创]jQuery动画弹出窗体支持多种展现方式
  10. mysql unrecognized service问题解决
  11. matlab仿真环境运行,第7章 Simulink仿真环境.ppt
  12. 2、pip2.7安装Ansible
  13. 设备性能测试 : 内存带宽的测试
  14. c语言乘法口诀表的流程图_C语言实现“乘法口诀表”
  15. 如何辨别u盘是否为缩水,并恢复u盘真实容量
  16. (vue)在ajax获取数据时使用loading组件不起作用
  17. 显示器还有卖的吗_显示器不够好,你确定修的片能好看? | 摄影早自习第1365天...
  18. RF自动化测试框架(二)
  19. golang学习笔记(十六):多态的实现
  20. 利用自媒体推广实用好方法!

热门文章

  1. 能快速修改视频格式的工具分享
  2. FidMTF: An MTF Estimator (FidMTF:一种MTF估计方法)
  3. 每周大数据论文(一)Data-intensive applications, challenges, techniques and technologies: A survey on Big Data
  4. Hulu在Content Embedding的探索与实践
  5. 饥饿游戏2:星火燎原[The Hunger Games:Catching Fire]
  6. 数据中台02:数据中台架构
  7. 2020 Apple Developer 苹果开发者证书配置
  8. 【正则表达式】正则表达式在线工具怎么使用?怎么测试自己写的正则表达式是否正确?
  9. CF1132D Stressful Training (binary search)(greedy)
  10. CC控制服务的设计和侦测方法综述