首页 > 编程语言 >横向LQR、纵向PID控制进行轨迹跟踪以及python实现

横向LQR、纵向PID控制进行轨迹跟踪以及python实现

时间:2024-06-21 20:31:43浏览次数:32  
标签:轨迹 python 0.0 PID LQR 矩阵 ax ay import

横向LQR、纵向PID控制进行轨迹跟踪以及python实现

附赠自动驾驶最全的学习资料和量产经验:链接

一、LQR问题模型建立:

理论部分比较成熟,这里只介绍demo所使用的建模方程:

使用离散代数黎卡提方程求解

image

系统状态矩阵:

image

输入矩阵:

image

A矩阵:

image

B矩阵:

image

二、代码实现

# 导入相关包

import math
import sys
import os

import matplotlib.pyplot as plt
import numpy as np
import scipy.linalg as la

# cubic_spline_planner为自己实现的三次样条插值方法
try:
    from cubic_spline_planner import *
except ImportError:
    raise

设置轨迹途经点并生成轨迹:

# 设置轨迹会经过的点
ax = [0.0, 6.0, 12.5, 10.0, 17.5, 20.0, 25.0]
ay = [0.0, -3.0, -5.0, 6.5, 3.0, 0.0, 0.0]
goal = [ax[-1], ay[-1]]

# 使用三次样条插值方法,根据途经点生成轨迹,x、y、yaw、曲率k,距离s
cx, cy, cyaw, ck, s = calc_spline_course(
        ax, ay, ds=0.1)

# 绘制规划好的轨迹
plt.plot(ax, ay, "xb", label="waypoints")
plt.plot(cx, cy, "-r", label="target course")

生成的轨迹如下:

image

设置期望速度:

# 设置目标速度
target_speed = 10.0 / 3.6  # simulation parameter km/h -> m/s


speed_profile = [target_speed] * len(cyaw)

direction = 1.0

# 转弯幅度较大时将速度设置为0,并将速度方向翻转
# Set stop point
for i i

标签:轨迹,python,0.0,PID,LQR,矩阵,ax,ay,import
From: https://blog.csdn.net/liuphahaha/article/details/139869241

相关文章

  • 【每日一练】python入门级小案例
    题目数字从小到大排序 用户随意分别输入三个数,利用列表的排序方法sort()从小到大排序。代码: 输出结果: 代码分析:先创建三个变量x,y,z,用input()输入获取值;再创建一个列表,元素分别是x,y,z三个变量;利用列表的排序方法sort(),对列表从小到大排序;用for循环遍......
  • 零基础学习python-1.安装python
    1.安装python众所周知,若想学习python就得有一台电脑,如果手机端的同学也想玩python编程的话,那我建议你安装一个QPython玩玩就可以,若是想跟深度学习,那请各位少爷小姐们,一同跟随我,一步步教会你安装python及其编译器第一步.找python官网注意:请识别官网,python是免费的,别选错了......
  • Python基础教程(二十四):日期和时间
    ......
  • Python统计实战:一题搞定一元线性回归的回归系数、显著性及预测值计算
    为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。(以下练习题来源于《统计学—基于Python》。联系获取完整数据和Python源代码文件。)练习题随机抽取10家航空公司,对其最近一年的航班准点率......
  • Python统计实战:一题搞定一元线性回归分析、模型诊断分析
    为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。(以下练习题来源于《统计学—基于Python》。联系获取完整数据和Python源代码文件。)练习题下面是来自R语言的anscombeh数据集(前3行和后3行......
  • Python统计实战:一题搞定双因子方差分析(交互效应分析)
    为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。(以下练习题来源于《统计学—基于Python》。联系获取完整数据和Python源代码文件。)练习题城市道路交通管理部门为研究不同路段和不同时段......
  • python web框架哪家强?Flask、Django、FastAPI对比
    前言当你掌握了python的基础知识,并且会用和HTML和CSS编写简单的静态网页。现在你只需再掌握一个pythonweb框架的知识,就可以开始编写一个动态的网站了。目前市面比较流程的pythonweb框架有三个flask、Django、FastAPI。接下来我们对比一下。他们三个各自有什么特点。Flas......
  • Python+selenium+unittest框架实现网易邮箱的自动登录
    文章目录概要整体架构流程技术细节小结概要 本实例只针对简单的账密登录场景做处理,涉及登录方式切换、人机检测部分未作处理,后续会跟进处理。整体架构流程依赖环境    Python3.7    selenium3.141.0    ddt1.6.0        目......
  • Python标注工具labelImg使用Pyinstaller打包成EXE的过程及问题处理
    直接上过程1.在python项目中使用pip命令安装pyinstaller。2.在python编辑器(如Pycharm)终端切换到要打包的.py文件所在目录。3.使用pyinstaller工具命令打包.py文件,如:pyinstallerlabelImg.py--noconsole--workpath.\Pyinstaller\temp --distpath.\Pyinstaller\dist 4.......
  • python pyinstaller打包的exe 反编译问题记录 破解加密
    首先是用pyinstxtractor这个网上很多教程,不详说了。生成一个xxx.exe_extracted目录生成过程中,如果pyinstaller用key加密了,会[!]Error:FailedtodecompressPYZ-00.pyz_extracted\Cython\__init__.pyc,probablyencrypted.Extractingasis. 这个说是fail了,其实可以解......