自动驾驶
文章平均质量分 80
自驾
唔希迪西
这个作者很懒,什么都没留下…
展开
-
第1章:自动驾驶车辆“规划”与“控制”的通用架构
2014年美国汽车工程师学会 () 定义了6个无人驾驶等级,从0级(完全手动)到5级(完全自动),这些无人驾驶等级准则已经被美国交通部采纳;该标准也被称为SAE标准;原创 2024-04-16 22:00:25 · 337 阅读 · 0 评论 -
第2章:车辆纵向控制
纵向控制的输入:油门 / 刹车纵向控制的输出:纵向速度 / 纵向加速度 / 跟车距离aaaa。原创 2024-04-17 21:32:37 · 1115 阅读 · 3 评论 -
第3章:车辆横向控制
自行车模型 + 阿克曼几何 + 纯追踪法 + 斯坦利控制原创 2024-05-09 00:00:44 · 604 阅读 · 0 评论 -
第4章:车辆的横向优化控制
车辆动力学方程的详细推导 + 连续LQR控制器的详细推导 + 离散LQR控制器的详细推导 + LQR控制车辆的横向运动 + 对LQR的优化 + 代码实现原创 2024-06-03 00:50:26 · 898 阅读 · 0 评论 -
第5章:模型预测控制(MPC)
MPC基本原理 + MPC控制器在车辆运动上的运用原创 2024-06-11 20:50:45 · 964 阅读 · 0 评论 -
第5章:模型预测控制(MPC)的代码实现
注:使用车辆横向动力学模型 + 纵向动力学模型(误差模型)注:详细推导见中对【线性系统 + 线性约束】问题的 QP 问题的构建过程;其中其中,因为本身车辆模型提供的状态空间方程的状态量 x 就是误差量,对于误差量而言他的目标值就是0;aaaaa。原创 2024-06-16 03:05:00 · 431 阅读 · 0 评论 -
笔记91:Apollo 命令
注:aem 工具是用来启动和进入 docker 容器的;注意:启动容器前需要先将当前目录切入到 Apollo 的工作空间中;原创 2024-05-28 14:36:51 · 378 阅读 · 0 评论 -
笔记92:连续状态空间方程转化为离散状态空间方程的详细推导 + 离散LQR控制器详细推导
a对LQR算法本质的总结:利用性能函数J作为目标;利用Frenet上的动力学方程作为(等式)约束条件;使用拉格朗日乘子法计算J的极小值点处U的值在这一步中经过数学推导,可以不用计算复杂的拉格朗日乘子法,直接用现成的里卡提公式就可以计算出极小值点处U的值)U_%7Bk%7DJ1%7DU_%7Bk%7D1%7DU_%7Bk%7DU_%7Bk%7D1%7DU_%7Bk%7DX_%7Bk%7DJU_%7Bk%7DJJU_%7Bk%7D1%7DU_%7Bk%7DP_%7Bk%7D。原创 2024-05-29 16:04:38 · 440 阅读 · 0 评论 -
笔记95:车辆横向动力学方程转化为误差形式 -- 详细推导过程
公式中的k是曲率是投影中车辆速度的大小。原创 2024-06-06 14:23:00 · 455 阅读 · 0 评论 -
笔记96:前馈控制 + 航向误差
计算 K:通过 LQR 中的 Riccati 方程获得计算:通过下面的公式计算。原创 2024-06-06 15:15:02 · 516 阅读 · 0 评论 -
笔记97:C++ 中 string / char 和 int 之间相互转化
方法:使用强制类型转化进行 char 和 int 之间的转换;原创 2024-06-12 16:08:35 · 371 阅读 · 0 评论 -
笔记98:按列压缩矩阵 csc_matrix 的 “含义”
按列压缩(Compressed Sparse Column -- CSC),是一种使用三个特征数组就可以表示整个矩阵的方法;一般我们在求解二次规划问题的时候,需要将矩阵 P 和 A 传入求解器;但如果我们通过一个个指定矩阵 P 和 A 的每个元素的方式定义矩阵,这样的代码可太脑瘫了;因此我们可以使用按列压缩的方式来表示一个矩阵,这样我们只需要3个特征数组,就可以知道整个矩阵到底是什么样的;需要完整的矩阵 A 和 P 时,将这3个特征数组传入函数 csc_matrix() 就可以了;原创 2024-06-13 23:11:45 · 1044 阅读 · 0 评论 -
笔记99:OSQP 求解器示例代码
OSQP 库仅支持C语言,不支持C++,所以下面的示例代码使用的是C语言;但是 OSQP 求解库提供了针对C++的接口 OSQP-EIGEN;以下代码是 OSQP 的官方文档提供的示例,我加上了详细的注释;注:涉及到 csc(按列压缩)的方式表达稀疏矩阵,在文章。原创 2024-06-13 23:42:25 · 266 阅读 · 0 评论 -
笔记100:使用 OSQP-Eigen 对 MPC 进行求解的方法与代码
我们在对系统进行建模的时候,为了减少计算量,一般都将系统简化为线性的,系统如果有约束,也是将约束简化为线性的;aaaa。原创 2024-06-14 22:00:18 · 544 阅读 · 6 评论