精华内容
下载资源
问答
  • 横向移动的思路与实现

    万次阅读 2020-08-28 10:10:51
    当拿到某域内的一台机器后,需要进一步的扩大战果,这时候就需要进行横向移动,横向移动这部分的技术的都是基于信息收集的结果才能实现,信息收集很重要,切记。 推荐几种实现方式: 利用现有exp来对操作系统进行...

    前言

    当拿到某域内的一台机器后,需要进一步的扩大战果,这时候就需要进行横向移动,横向移动这部分的技术的都是基于信息收集的结果才能实现,信息收集很重要,切记。

    推荐几种实现方式:

    1. 利用现有exp来对操作系统进行攻击,例如ms17010,ms08067等。
    2. 利用密码爆破ssh或者对smb服务进行爆破,可利用impacket工具实现。
    3. 利用服务端应用的rce漏洞,如tomcat等中间件漏洞。
    4. 制作黄金票据进行横向移动,可利用impacket与mimikatz工具实现。
    5. 利用windows的自带命令远控对方主机。
    6. 对敏感端口进行攻击。

    实现

    利用exp来对操作系统进行攻击

    这部分主要靠积累,根据对方的操作系统在网上下载对应的exp进行攻击,当然能写exp也行。

    利用密码爆破

    倘若要攻击linux主机的话,ssh爆破是个好方法,这个可以自己写python脚本实现比较简单。
    倘若是攻击windows主机也可以采用密码爆破,具体实现方法是利用impacket工具实现:

    内网机器遍历做hash传递验证,ips.txt内容为内网ip,每段一条 FOR /F %i in (ips.txt) do
    atexec.exe -hashes :3dbde697d71690a769204beb12283678
    ./administrator@%i whoami
    在这里插入图片描述

    指定主机ntlm hash遍历验证,hashes.txt为已知ntlm hash内容,每段一条 FOR /F %i in
    (hashes.txt) do atexec.exe -hashes %i ./administrator@192.168.23.99
    whoami
    在这里插入图片描述
    文件内部的hash格式应该为":nthash"或者"lmhash:nthash",如果只采用nthash切记加一个冒号":"
    在这里插入图片描述

    内网机器遍历做密码验证,passwords.txt为已知密码内容,每段一条 FOR /F %i in (passwords.txt) do
    atexec.exe ./administrator:%i@192.168.23.99 whoami
    在这里插入图片描述

    指定主机密码遍历验证,ips.txt内容为内网ip,每段一条 FOR /F %i in (ips.txt) do atexec.exe
    ./administrator:123@%i whoami

    在这里插入图片描述
    更详细的信息请看我的这篇impacket命令总结

    利用服务端应用的漏洞

    这部分例子很多后面会陆陆续续出文章来讲解。

    黄金票据

    黄金票据相关技术请看我的这篇文章:

    黄金票据的制作与使用
    mimikatz常用命令总结
    impacket命令总结

    利用windows的自带命令远控对方主机

    下面两篇文章对其进行了比较详细的讲述:

    windows远程命令执行
    windows常见快捷命令

    对敏感端口进行攻击

    可以先看看我的这篇敏感端口的常见攻击方式,后续会写具体文章来讲对应的知识点。

    附录:后渗透信息收集

    我的这两篇文章对其做了总结:

    windows信息收集与内网定位
    linux后渗透信息收集

    展开全文
  • 横向ListView的完整实现 包含基于横向listview做的一个小相册demo 具体过程参见:http: blog csdn net yanzi1225627 article details 21294553
  • mysql横向转纵向、纵向转横向排列

    万次阅读 2020-08-06 15:46:29
    mysql横向转纵向、纵向转横向排列 初始化数据 DROP TABLE IF EXISTS `cj_tab`; CREATE TABLE `cj_tab` ( `id` int(0) NOT NULL, `km` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL ...

    mysql横向转纵向、纵向转横向排列

    初始化数据

    DROP TABLE IF EXISTS `test_01`;
    CREATE TABLE `test_01`  (
      `id` int(0) NOT NULL,
      `user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户',
      `km` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '科目',
      `fs` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分数',
      `time` datetime(0) NULL DEFAULT NULL COMMENT '时间',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
    
    INSERT INTO `test_01` VALUES (1, '小三', '语文', '98', '2020-08-06 15:51:21');
    INSERT INTO `test_01` VALUES (2, '小三', '数学', '90', '2020-07-01 15:51:25');
    INSERT INTO `test_01` VALUES (3, '小三', '英语', '77', '2020-06-01 15:51:28');
    INSERT INTO `test_01` VALUES (4, '小二', '英语', '78', '2020-06-01 15:51:28');
    

    一、横向转纵向排列

    SELECT 
    	user,
    	SUM( CASE WHEN km = "语文" THEN fs ELSE 0 END ) "语文",
    	SUM( CASE WHEN km = "数学" THEN fs ELSE 0 END ) "数学",
    	SUM( CASE WHEN km = "英语" THEN fs ELSE 0 END ) "英语" 
    FROM
    	test_01 
    GROUP BY user
    

    在这里插入图片描述

    二、纵向转横向排列

    SELECT km FROM test_01 WHERE id = 1 
    UNION 
    SELECT fs FROM test_01 WHERE id = 1 
    

    在这里插入图片描述

    展开全文
  • 横向滤波器

    万次阅读 多人点赞 2017-03-17 11:20:39
    横向滤波器 1.1 概念   横向滤波器,也称抽头延迟线滤波器或有限脉冲响应滤波器,是自适应滤波器中最常用的一种滤波器结构。其结构如图1所示。              图1 横向滤波器结构   由...

    如有不当之处欢迎批评指正

    1. 横向滤波器

    1.1 概念

      横向滤波器(transversal filter),也称抽头延迟线滤波器(tapped-delay line filter)或有限脉冲响应滤波器(fir filter),是自适应滤波器中最常用的一种滤波器结构。其结构如图1所示。

    图1 横向滤波器结构

    1 横向滤波器[1]^{[1]}[1]

      由图1 可以看出,每输入一个数据u(n)u(n)u(n)横向滤波器对应地输出一个数据y(n)y(n)y(n)。它由三个基本单元组成:单位延迟单元(z−1z^{-1}z1),乘法器和加法器

      wm∗w_m^*wm称为滤波器的系数或抽头权值。u(n)u(n)u(n)经过单位延迟单元后的结果是u(n−1)u(n-1)u(n1)延迟单元的个数通常称为滤波器的阶数。

      根据横向滤波器的结构可得当u(n)u(n)u(n)进入到滤波器的时候,滤波器的输出为:
    y(n)=∑m=0Mwm∗u(n−m)(1)y(n)=\sum_{m=0}^Mw_m^*u(n-m)\tag{1}y(n)=m=0Mwmu(nm)(1)

      其中nnn表示时刻,MMM为滤波器的阶数,wm∗w_m^*wm为第mmm个抽头线上的权值,u(n−m)u(n-m)u(nm)表示nnn时刻横向滤波器第mmm个抽头线上的输入数据。亦可将其表示成向量内积的形式,令u(n)\mathbf{u}(n)u(n)表示nnn时刻的输入向量(即nnn时刻滤波器每个抽头输入组成的列向量),w(n)\mathbf{w}(n)w(n)表示nnn时刻的抽头权向量(即nnn时刻滤波器每个抽头权值组成的列向量),则:
    y(n)=uT(n)w(n)(2)y(n)=\mathbf{u}^T(n)\mathbf{w}(n)\tag{2}y(n)=uT(n)w(n)(2)

    1.2 举例

      假设进入横向滤波器的数据按照时间先后顺序依次为:

      1,2,3,4,51,2 ,3, 4 ,51,2,3,4,5

      横向滤波器的系数从左到右依次为:

      5,6,75 ,6 ,75,6,7

      可知此例中,横向滤波器的阶数为222,长度为333(横向滤波器的长度比它的阶数大111)。对照着横向滤波器的结构图可知:

      在数字333到来的时候,滤波器的输出为:3∗5+2∗6+1∗7=343*5+2*6+1*7=3435+26+17=34

      在数字444到来的时候,滤波器的输出为:4∗5+3∗6+2∗7=524*5+3*6+2*7=5245+36+27=52

      在数字555到来的时候,滤波器的输出为:5∗5+4∗6+3∗7=705*5+4*6+3*7=7055+46+37=70

      由以上例子可以更进一步理解单位延迟单元的作用,即取当前单位延迟单元输入数据的前一时刻的数据

    2. 参考文献

    [1] 《自适应滤波器原理》(第五版) 原作者:Simon Haykin

    展开全文
  • 基于车辆模型的横向控制方法

    万次阅读 多人点赞 2020-03-24 14:37:05
    无人驾驶车辆基于模型横向控制、车辆运动学模型、纯跟踪、后轮反馈、前轮反馈控制算法;车辆动力学模型、车辆线性二自由度动力学模型、车辆路径跟踪偏差状态方程的构建、LQR 横向控制算法的求解


    1. 简介


    1.1. 无人驾驶车辆

    大到类似百度apollo无人车,无人配送车
    小到扫地机器人,其实都是无人驾驶车辆
    都是一个复杂的软硬件结合系统
    其软件算法模块主要包含:感知、定位、轨迹预测、行为决策、运动规划 及 反馈控制

    在这里介绍和补充的是 反馈控制部分
    部分软件实现可参考:个人开源项目 path-following-control


    1.2. 横向控制和纵向控制

    反馈控制是无人车 最底层 的软件算法模块,包括:

    • 横向控制,主要用于车辆方向盘的控制
    • 纵向控制,主要用于车辆油门、刹车的控制

    两者协同工作以 使无人车按照预定的参考轨迹行驶

    其中,横向控制根据上层运动规划输出的 路径曲率 等信息进行跟踪控制,以减少跟踪误差
    同时保证车辆行驶的 稳定性舒适性


    1.3. 横向控制

    根据横向控制使用车辆模型的不同,可以将其分为两种类型,包括:

    • 无模型 的横向控制方法
    • 基于模型 的横向控制方法

    1.3.1. 无模型横向控制

    无模型的横向控制即传统的 PID 控制算法
    将车辆当前的 路径跟踪偏差 作为输入量
    对跟踪偏差进行比例(Proportion)、积分(Integration)和微分(Differentiation)控制得到转向控制量
    具体原理可以参考:增量式PID控制的理解和应用

    但该算法由于没有考虑车辆本身的特性
    因此算法对外界干扰的鲁棒性较差,无法满足车辆在高速行驶过程中的有效控制


    1.3.2. 基于模型横向控制

    而其中基于模型的方法又可分为:

    • 基于车辆 运动学模型 的横向控制方法
    • 基于车辆 动力学模型 的横向控制方法

    因此,将主要介绍包括:

    • 基于车辆运动学模型的纯跟踪控制(Pure Pursuit)算法
    • 后轮反馈控制(Rear wheel feedback)
    • 前轮反馈控制(Front wheel feedback)算法
    • 基于车辆动力学模型的线性二次型调节器(Linear Quadratic Regulator,LQR)控制算法

    2. 基于车辆运动学模型的控制方法


    2.1. 车辆运动学模型

    基于车辆运动学模型的控制方法主要考虑了 车辆的运动学约束对车辆控制的影响

    首先了解一下常见的车辆运动学模型:
    在这里插入图片描述

    平时见到的汽车属于 阿克曼转向,通常可以简化为两轮的自行车模型

    在这里插入图片描述

    其假设车辆的前后轮均为刚体,只能沿着车轮滚动的方向前进,无侧向滑动

    由上述假设可得自行车模型的运动微分方程如下式:

    在这里插入图片描述

    角速度和角速度的关系:v=ωr,即 ω=v/r,因此这里 ψ˙\dot{\psi} = v * tan(δδ) / L
    其他的比较简单,就不加以说明


    2.2. 纯跟踪控制算法

    纯跟踪控制算法(Pure Pursuit)是一种典型的横向控制方法
    最早由 R. Wallace 在1985年提出,该方法对外界的 鲁棒性 较好

    该算法的思想:
    基于当前车辆 后轮中心 位置,在参考路径上向 lld (自定义)的距离匹配一个预瞄点
    假设车辆后轮中心点可以按照一定的转弯半径𝑅 行驶抵达该预瞄点
    然后根据 预瞄距离 lld , 转弯半径𝑅,车辆坐标系下预瞄点的朝向角𝛼 之间的几何关系来 确定前轮转角

    在这里插入图片描述

    弧的弧度为2𝛼是因为这个三角形是等腰三角形,边长为𝑅,而其中一个角为 ππ/2-𝛼
    所以这个弧度为 ππ -(ππ / 2- 𝛼)* 2 = 2𝛼

    如图所示,弧线为经过车辆后轮中心以及预瞄点的圆弧
    圆弧的半径𝑅 与 朝向角𝛼和 预瞄距离 lld 有关,其实也就是与(xxgyyg)有关

    作一条辅助线d,垂直于𝑅,则:
    在这里插入图片描述
    根据图中的几何关系,𝑅, 𝛼, 与 lld 的关系为:

    在这里插入图片描述
    再作一条辅助线,垂直于lld,则:
    在这里插入图片描述
    根据图中的几何关系,𝑅, 𝛼, 与 lld 的关系为:

    在这里插入图片描述
    根据运动学方程(2-1) 中 ψ˙\dot{\psi} = vtanv * tan(δδ) /L/ L
    tantan(δδ) = ψ˙\dot{\psi} L/v* L / v,而在这里 ψ˙\dot{\psi} /v/ v = 𝑅,即:

    在这里插入图片描述
    再把式(2-4)带入(2-5)可得前轮转角为:
    在这里插入图片描述


    2.3. 后轮反馈控制算法

    后轮反馈式(Rear wheel feedback)是利用 后轮中心路径跟踪偏差量 来进行转向控制量计算的方法

    在这里插入图片描述

    根据运动学方程(2-1)及车辆后轮与参考路径的几何关系
    可推导出参考路径坐标系 (𝑠, 𝑙)

    Ferent 坐标系下 (𝑠, 𝑒, ψ\psi𝑒) 的变化率为:

    在这里插入图片描述

    Frenet坐标系使用道路的中心线作为参考线,使用参考线的 切线向量法线向量 建立坐标系
    那么基于参考线的位置,就可以使用 纵向距离横向距离 来描述任意位置
    同时纵向和横向的速度、加速度、加加速度等信息也更便于计算

    对于二次连续可导的参考线,需要设计车身横摆角速度𝜔保证在李亚普洛夫方程下局部渐进收敛:
    在这里插入图片描述
    李亚普洛夫稳定(一个分析系统的稳定性方法)用数学的语言描述为:
    可控可微分的状态方程 x˙\dot{x} = f(x,u)f(x,u)

    在给定的参考轨 xxref (t)(t) 下,存在 \forallε>0,tt1<tt2,𝛽>0,满足下列条件:
    :

    在这里插入图片描述
    对于李亚普洛夫稳定也分为渐进稳定和指数稳定

    李亚普洛夫稳定性理论是从能量的观点出发的
    系统的能量随着时间的推移不断变化(增加or减少),在有限时间内,系统趋于稳定,能量不再变化
    此时,系统的k+1时刻的能量减去k时刻的能量是<0的,即V(k+1)-V(k)<0,V代表能量函数

    渐进稳定指对于时变系统,𝛽在条件(1)下独立于时间tt1
    指数稳定指收敛率是以指数下降

    对于后轮反馈式算法,为了保证车辆的李亚普洛夫稳定性,车身横摆角速度𝜔可表示为式(2-10)

    在这里插入图片描述

    其中, 𝑘ψ 为横摆角偏差反馈控制增益, 𝑘e 为横向位置偏差反馈控制增益

    因此,根据运动学方程(2-1),可得到前轮转角𝛿为:
    在这里插入图片描述


    2.4. 前轮反馈控制算法

    前轮反馈控制(Front wheel feedback)又称 Stanley 控制
    其核心思想是利用 前轮中心路径跟踪偏差量 对方向盘转向控制量进行计算

    在这里插入图片描述

    前轮中心横向位置跟踪偏差𝑒 的变化率为:

    在这里插入图片描述

    式(2-12)中可以看出前轮横向位置偏差的变化率e˙\dot{e} 可以直接通过 前轮转角𝛿 进行控制

    当定义 e˙\dot{e}=k= -k𝑒 后,可以保证前轮横向位置偏差𝑒 满足 李亚普洛夫的指数化收敛,即:

    在这里插入图片描述

    李亚普洛夫指数:在相空间中相互靠近的两条轨线随着时间的推移,按指数分离或聚合的平均变化速率

    关于 arcsinarcsin 函数:
    在这里插入图片描述
    那么对于式(2-13)来说,当 ke/v|-ke/vf >1|>1 时,函数无解

    对于有限域内的指数收敛可以放宽到局部指数收敛,从而将前轮转角𝛿 定义为:

    在这里插入图片描述

    Stanley 前轮反馈控制算法 在变曲率路径且路径连续可导 的条件下,可以满足局部指数收敛特性
    但也可以看出该算法不适用于倒车的场景,导致对于自动泊车等工况不适用


    3. 基于车辆动力学模型的横向控制

    基于车辆运动学模型的方法忽略了车辆的动力学特性
    因此在 车速过快 或者 曲率变化率过大 的情况下该算法无法满足车辆的 稳定性 控制要求

    这里介绍一种典型的基于车辆动力学模型的横向控制方法,包括

    • 车辆线性二自由度动力学模型的构建
    • 车辆路径跟踪偏差状态方程的构建
    • LQR 横向控制算法的求解

    3.1. 车辆线性二自由度动力学模型

    对于基于车辆动力学模型的控制方法,首要的工作是对车辆动力学进行建模
    由于车辆动力学模型具有强 非线性时变 的特性,因此精确建模整个车辆动力学十分困难

    在横向控制中,主要关心的是车辆横向运动特性
    通常将车辆动力学模型简化为的二自由度横向动力学模型
    假设车身的纵向速度Vx 保持不变, 其横向动力学模型的两个自由度为:

    • 横向运动
    • 横摆运动

    由于精确的二自由度动力学模型是非线性的,为了便于进行实时的跟踪控制计算
    通常还需要在精确的二自由度动力学模型基础上进行一些简化近似,得到线性二自由度动力学模型

    这里介绍基于 转向小角度轮胎动力学 线性化假设下的车辆线性二自由度动力学模型
    下图为车辆为车辆横向动力学坐标系示意图
    在这里插入图片描述

    假设道路平整(不考虑道路横向的倾斜),且转向角度较小时
    则车身𝑦轴方向应用牛顿第二定律可得:

    在这里插入图片描述
    其中,𝑚是整车质量, 𝛼y 是车辆质心处的横向加速度, Fyf,Fyr 为地面给前轮胎和后轮施加的横向力
    而横向加速度𝛼y 由两部分组成:

    • 车辆沿车身𝑦轴横向运动产生的加速度 y˙\dot{y}
    • 车身横摆运动产生的向心加速度 vxψ˙\dot{\psi}

    因此:
    在这里插入图片描述
    将(3-2)代入(3-1)可得:
    在这里插入图片描述
    然后,车辆绕𝑧轴的转矩平衡方程为:

    在这里插入图片描述
    其中, llf , llr 分别是前轮轴和后轮轴到质心的距离

    接下来对横向轮胎力 Fyf,Fyr进行计算
    实验结果表明,轮胎侧偏角较小时
    地面施加给轮胎的横向力(侧偏力)与轮胎侧偏角成线性关系(侧偏角是车轮速度方向与车轮纵轴的夹角)
    在这里插入图片描述
    前轮侧偏角为:
    在这里插入图片描述

    θ\thetavf 是前轮胎速度方向与车身纵轴的夹角,𝛿为前轮转向角
    后轮的侧偏角为:
    在这里插入图片描述
    θ\thetavr 是后轮胎速度方向与车身纵轴的夹角

    因此,前轮(2个)横向轮胎力为:
    在这里插入图片描述
    C𝛼f 是前轮侧偏刚度(cornering stiffness)

    同样,后轮(2个)横向轮胎力为:
    在这里插入图片描述
    C𝛼r 是后轮侧偏刚度

    计算θ\thetavfθ\thetavr
    在这里插入图片描述

    θ\thetavfθ\thetavr 较小时可近似得到:
    在这里插入图片描述
    将(3-5),(3-6),(3-7),(3-8),(3-11),(3-12)代入(3-3)和(3-4)可得线性二自由度模型的状态方程:
    在这里插入图片描述


    3.2. 车辆路径跟踪偏差状态方程的构建

    有了式(3-13)的系统状态方程之后
    就可以分析出在给定的前轮转角输入下,车辆的横向位移、横向速度、横摆角以及横摆角速度的响应

    但是横向跟踪控制的目的是为了减小跟踪偏差
    需要的状态方程是能够分析在给定的前轮转角下车辆跟踪偏差的响应
    因此些偏差通常是:

    • 横向位置偏差𝑒1 及横向位置偏差变化率 e˙\dot{e}1
    • 横摆角偏差𝑒2 及横摆角偏差变化率e˙\dot{e}2

    在这里插入图片描述
    下面介绍具体的转换过程
    车辆期望横摆角速度:
    在这里插入图片描述
    期望的横向加速度𝛼ydes 为:
    在这里插入图片描述
    则横向加速度偏差e˙\dot{e}1 为:
    在这里插入图片描述
    因此横向位置偏差变化率 e˙\dot{e}1 (横向速度偏差)为:
    在这里插入图片描述
    此外,横摆角偏差 𝑒2 为:
    在这里插入图片描述
    将式(3-16),(3-17),(3-18)代入(3-3),(3-4)化简后可以得到新的状态方程:

    在这里插入图片描述
    即:
    在这里插入图片描述
    进一步忽略 ψ˙\dot{\psi}des 项之后:
    在这里插入图片描述

    上式(3-20)就是横向控制所需的路径跟踪偏差状态方程


    3.3. LQR 横向控制算法的求解

    基于前面推导的路径跟踪偏差系统状态方程(3-20)
    就可以分析在前轮转角控制输入𝛿作用下,车辆路径跟踪偏差𝑥的响应特性

    期望的响应特性就是 跟踪偏差能够快速、稳定地趋近于零,并保持平衡
    同时前轮转角控制输入又尽可能小
    ,这就是一个典型的多目标优化最优控制问题

    且优化的目标函数可以表示为跟踪过程累计的跟踪偏差与累计的控制输入的加权和
    如式(3-21)所示:
    在这里插入图片描述
    其中, 𝑄为半正定的状态加权矩阵, 𝑅为正定的控制加权矩阵
    且 𝑄, 𝑅通常取为对角阵

    若只是 xxδ\delta 做为代价,那么存在xx的正误差被δ\delta的负误差消除
    相反,自身相乘,这样负值也会产生正平方,称这些为二次项

    𝑄矩阵元素变大意味着希望跟踪偏差能够快速趋近于零
    𝑅矩阵元素变大意味着希望控制输入能够尽可能小

    设M是n阶方阵,如果对任何非零向量z,都有zTMz> 0,其中zT 表示z的转置,就称M为正定矩阵

    则式(3-21)目标函数中
    第一项优化目标 0(xTQx)dt\int_{0}^{∞} (x^TQx)\, dt 表示跟踪过程路径偏差的累积大小
    第二项优化目标 0(δTRδ)dt\int_{0}^{∞} (\delta^TR\delta)\, dt 表示跟踪过程控制能量的损耗

    这样就将横向控制问题转化为一个最优控制问题:
    求解最优的前轮转角控制输入 δ\delta* ,使得式(3-21)目标函数 𝐽 可以取极小值

    而式(3-21)是一个关于状态变量𝑥和控制输入𝛿的二次型目标函数
    对它的优化求解是一个典型的 LQR 最优控制问题

    根据 LQR 最优控制理论,对式(3-21)目标函数的优化求解
    解出的最优控制规律δ\delta* 是关于状态变量𝑥的线性函数:

    在这里插入图片描述
    其中,𝐴d 和 Bd 代表状态方程(3-20)离散化后的𝐴, B1 矩阵, 𝑃是式(3-23)黎卡提方程的解:
    在这里插入图片描述
    因此,根据式(3-22)可以设计一个状态反馈调节器,通过状态反馈实现闭环最优控制,如图所示
    在这里插入图片描述
    根据求解的状态反馈调节器增益𝐾,则可以得到最优的状态反馈前轮转角 δ\deltafb
    在这里插入图片描述
    由于在 LQR 状态反馈控制求解过程中没有考虑路径本身的动态变化特性
    因此只有式(3-25)的反馈控制输入时 LQR 控制在曲线行驶时会存在稳态误差

    稳态误差是系统从一个稳态过渡到新的稳态,或系统受扰动作用又重新平衡后,系统出现的偏差

    为了消除该稳态误差, 还需要加上一个前馈控制输入量δ\deltaff
    前馈控制考虑了路径的曲率及车辆的转向不足特性
    在这里插入图片描述
    其中, KV为不足转向梯度,表征了车辆的转向特性
    e2ss 为稳态时的角度跟踪偏差
    k3 为𝐾矩阵中的角度偏差反馈控制增益部分
    在这里插入图片描述
    因此,总的 LQR 前轮转角输入为:
    在这里插入图片描述


    4. 总结

    本文主要介绍了基于车辆运动学和动力学模型的横向控制算法
    从上文对两类方法的分析可以看出,两类方法在应用场景上都存在一定的局限性,并具有较强的互补性
    因此在实际使用中,综合使用这些方法会更有效
    在这里插入图片描述

    无模型的 PID 横向控制算法参数少,简单易用
    但是由于没有考虑车辆系统动力学特性及路径本身的动态变化特性,对外界干扰的鲁棒性较差
    在高速或曲率较大的弯道场景时,会出现较大的跟踪误差和“画龙”现象
    因此,该方法比较适合应用于低速曲率较小的路径跟踪控制场景中

    基于运动学模型的横向控制算法中
    Pure Pursuit 和 Stanley 前轮反馈算法在中低速场景下,他们的路径跟踪的性能较好

    Pure Pursuit 在大的跟踪误差和非连续的路径场景下鲁棒性较好
    其控制的关键在于对最佳前向预瞄距离的确定
    其中,增大前向预瞄距离将提高车辆控制的稳定性
    但随之会带来路径跟踪性能降低及稳态误差增大的后果,表现出转弯内切现象

    相比于 Pure Pursuit 算法,Stanley 前轮反馈算法还额外考虑了横摆角偏差
    因此在大多数场景下,跟踪性能更佳
    然而,由于没有设置前向预瞄,Stanley 算法会出现转向过度的情况
    与 Pure Pursuit 和 Stanley 算法相比,后轮反馈控制算法计算更加复杂, 对路径的平滑性要求更高
    在中等速度下的跟踪性能及鲁棒性与 Stanley 方法近似
    然而在速度较大时,稳态误差也会变大,从而导致控制效果不佳

    LQR 算法使用二自由度动力学模型来设计横向控制器
    与前述基于运动学模型的几种算法相比,LQR 参数调节更加复杂
    其不仅需要获取车辆自身的模型参数
    还需要调节LQR 目标函数的 Q,R 矩阵以获得较优的跟踪性能

    LQR 算法的优点在于,通过与转向前馈进行有效结合,LQR 能够很好的解决曲线行驶时的稳态跟踪误差
    中等速度曲线行驶时其稳态误差趋近于零,从而极大提升跟踪性能
    LQR 非常适用于路径平滑的高速公路及城市驾驶场景,具有较好的车辆高速控制性能

    但是,由于模型的固有缺陷,LQR 与前馈控制的结合也无法解决所有跟踪控制问题
    由于该方法采用基于简化后的二自由度动力学模型
    因此当车辆运动不满足二自由度动力学模型转向小角度,或轮胎动力学线性化的假设条件时
    LQR 算法的跟踪性能会大幅降低,从而导致控制失效


    参考: 走进自动驾驶横向控制,你需要这篇超长综述


    谢谢

    展开全文
  • 横向移动

    千次阅读 2019-04-20 12:34:37
    横向移动 横向移动—APT Windows横向移动攻击的检测 https://www.4hou.com/technology/10430.html 概述 横向移动技术广泛应用于复杂的网络攻击中,特别是高级持续性威胁(APT)。攻击者使用这些技术访问受感染系统...
  • 移动端横向滑动去掉横向滚动条

    千次阅读 2020-07-06 13:50:52
    移动端去掉横向滚动条 在想要消失滚动条的div最外层加 //段落中的文本不换行 white-space: nowrap; //横向滑动 overflow-x: scroll; //滚动条消失 &::-webkit-scrollbar { display: none; }
  • ListView横向滑动

    热门讨论 2015-04-14 14:53:47
    ListView横向滑动,类似股票,首例不动,可以横向滑动
  • html5:div 横向排列的方法。

    万次阅读 多人点赞 2017-11-21 12:06:47
    div 横向排列的方法。 以下面这组 div 为例,wrap 的高度由内容撑开 <div id="wrap"> <div id="div1">div1</div> <div id="div2">div2</div> <div id="div3">div3</...
  • Echarts横向的柱状图

    万次阅读 2018-08-15 17:52:15
    Echarts横向的柱状图 1、步骤: 1)、封装Echarts折线图方法registerFunnelChart(),提取出公共的部分; 2)、AJax获取后台数据传参至Echarts公共方法; 3)、模拟后台获取的json数据; 4)、给day...
  • Android 横向列表GridView 实现横向滚动

    千次阅读 2016-11-05 17:07:48
    横向列表GridView 实现横向滚动 Android 横向列表实现,可左右滑动,如下图   1.主界面布局代码:activity_main.xml a.包裹HorizontalScrollView控件是GirdView横向滚动的基本条件b....
  • ScrollView横向滑动

    2019-11-21 16:06:37
    horizontal默认为true,代表横向滑动 showsVerticalScrollIndicator默认值为true,显示竖直滚动条showsVerticalScrollIndicator={false}不显示滚动条 horizontal={false}改为横向滑动 showsHorizontalScrollIndicator...
  • 图片横向打印横向打印图片的方法

    千次阅读 2020-03-06 16:22:18
    有时候得到的发票文件是图片形式的,后缀名是jpg,怎么在A4纸上横向打印出来呢?直接打印的话出现的都是占满整面A4纸的。 解决办法:通过图片转pdf网站将图片形式的文件转成pdf文件,再打印pdf文件。 图片转pdf...
  • stata横向合并

    千次阅读 2020-02-18 17:13:19
    stata横向合并 横向合并的前提是主数据集和从数据集必须都有一个(或者多个)相同的关键变量,只有具有相同的关键变量才可以将其进行横向合并。合并之前主从数据集均必须以这些关键变量进行排序,且除了关键变量...
  • WMI横向移动

    千次阅读 2020-02-02 23:39:59
    0x01 WMI横向移动简介 简介 WMI全称“windows管理规范”,从win2003开始一直存在。它原本的作用是方便管理员对windows主机进行管理。因此在内网渗透中,我们可以使用WMI进行横向移动。 利用条件 1、WMI服务开启,...
  • 是否NestedScrollView与横向滑动存在冲突?我在xml中的NestedScrollView嵌套了横向的recyclerView滑动,似乎不能刷新与加载更多</p><p>该提问来源于开源项目:dkzwm/SmoothRefreshLayout</p></div...
  • 单行横向滚动GridView

    热门讨论 2011-12-07 09:06:26
    这个是android的横向滚动GridView 的demo。里面主要是涉及到GridView及adapter的使用,及搭配HorizontalScrollView实现GridView的横向滚动.经测试通过后才上传!
  • 横向思维

    2015-06-08 16:26:08
    横向思维(lateral thinking)是爱德华·德波诺教授针对纵向思维(vertical thinking)——即传统的逻辑思维——提出的一种看问题的新程式、新方法。他认为纵向思维者对局势采取最理智的态度,从假设一前提一概念...
  • 横向打印二叉树

    2017-12-29 22:04:02
    历届试题 横向打印二叉树
  • 在攻击者获取到某台内网机器的控制权限之后,进一步会考虑如何在内网进行横向移动,以及攻击域控服务器,本文总结了突破边界后进一步的攻击技巧,拿到内网机器的密码或Hash进行横向移动的方式
  • PTH横向移动

    千次阅读 2020-02-24 12:17:33
    0x02 通过PTH横向移动 一、通过cobaltstrike进行PTH 1、在已上线机器中直接dir访问目标系统C盘,提示没权限。 beacon> shell dir \192.168.3.123\c$ 2、此处使用先前已获取的hash对目标administrator用户...
  • JS实现图片自动滚动(图片横向滚动)

    万次阅读 多人点赞 2018-11-13 15:55:57
    实现的效果就是 一排图片自动横向滚动,鼠标指向的时候,暂定滚动,鼠标离开,继续滚动 首先看下html代码:随便加入四张图片 <div id="div1"> <ul> <li><img src="img/logo-black.png" ...
  • css 横向滑动

    千次阅读 2019-06-17 10:01:48
    <!DOCTYPE html> <html> <head>...横向滑动</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style type="text/css">...
  • 横向滚动菜单

    千次阅读 2018-01-09 15:58:25
    在布局文件中简单写横向滚动菜单: app:tabGravity="center" 设置居中对齐 app:tabIndicatorColor="@color/colorAccent" 下滑线的颜色 app:tabMode="scrollable" 设置tabLayoout菜单的模式,,,...
  • 微信小程序横向滑动样式 &lt;!--横向滚动 --&gt; &lt;scroll-view class="recommend_scroll_x_box" scroll-x="true"&gt;  &lt;view class="recommend_hot_box"...
  •  布局时需要加一个HorizontalScrollView 保证GridView可以横向显示滑动  加HorizontalScrollView时GridView 外面需要加一个LinearLayout线性布局  如:    android:layout_width=fill_parent  ...
  • 尺子横向滑动选择控件

    千次阅读 2017-12-28 22:03:41
    尺子横向滑动选择控件
  • WPF ListBox 横向排列

    千次阅读 2018-11-09 01:57:27
    WPF ListBox 横向排列
  • css横向滑动

    千次阅读 2019-02-27 11:16:48
    &lt;!DOCTYPE html&gt; &lt;html&gt;...横向滑动&lt;/title&gt;  &lt;style type="text/css"&gt;  .slide-box{  margin-top: 200px;  display: -webkit-
  • 横向墨卡托坐标系

    千次阅读 2019-06-02 16:23:08
    横向墨卡托投影由墨卡托投影改造而来。不论是横向投影还是墨卡托投影,都是圆柱变换,且是保角变换。然而,在横向墨卡托投影中,外切圆柱体相对于赤道转动了90度。所以,投影是以某条经线为中心,而不是以赤道为中心...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,974
精华内容 20,789
关键字:

横向