自动驾驶控制算法-离散规划轨迹的误差计算

embedded/2024/12/27 18:29:01/

本文是学习自动驾驶控制算法第七讲 离散规划轨迹的误差计算的学习笔记。

上一节中,我们知道 e r r e_{rr} err中元素的表达式如下:
{ e d = d e φ = φ − θ r e ˙ d = v sin ⁡ ( θ − θ r ) e ˙ φ = φ ˙ − θ ˙ r = φ − k r s ˙ \begin{equation} \begin{cases} e_d=d\\ e_{\varphi}=\varphi-\theta_r \\ \dot{e}_d=v\sin(\theta-\theta_r)\\ \dot{e}_{\varphi}=\dot{\varphi}-\dot{\theta}_r =\varphi-k_r\dot{s}\\ \end{cases} \end{equation} ed=deφ=φθre˙d=vsin(θθr)e˙φ=φ˙θ˙r=φkrs˙
接下来计算 e r r e_{rr} err元素表达式中的未知量,可以参考自然坐标系和笛卡尔坐标系之间的转换关系。
第一步计算投影点,
首先遍历离散的轨迹点,与自车当前位置距离最近的点认为是匹配点,记为 x m = ( x m , y m ) \boldsymbol{x_m}=(x_m,y_m) xm=(xm,ym),理论上可以将匹配点作为投影点进行后续计算,这需要轨迹点特别密集,这里我们通过匹配点进一步寻找投影点:
在这里插入图片描述
如图所示
τ m = ( cos ⁡ θ m , sin ⁡ θ m ) \begin{equation} \boldsymbol{\tau_m}=(\cos{\theta_m},\sin{\theta_m}) \end{equation} τm=(cosθm,sinθm)
n m = ( − sin ⁡ θ m , cos ⁡ θ m ) \begin{equation} \boldsymbol{n_m}=(-\sin{\theta_m},\cos{\theta_m}) \end{equation} nm=(sinθm,cosθm)
近似有
e d = ( x − x m ) ⋅ n m \begin{equation} e_d=(\boldsymbol{x}-\boldsymbol{x_m})\cdot{\boldsymbol{n_m}} \end{equation} ed=(xxm)nm
Δ s = ( x − x m ) ⋅ τ m \begin{equation} \Delta{s}=(\boldsymbol{x}-\boldsymbol{x_m})\cdot{\boldsymbol{\tau_m}} \end{equation} Δs=(xxm)τm
这里 x \boldsymbol{x} x表示自车位置, Δ s \Delta{s} Δs为正表示投影点在匹配点前面,为负表示在后面。
另外,假设投影点处的曲率 k r k_r kr与匹配点处的曲率 k m k_m km近似相等
k r = k m \begin{equation} k_r=k_m \end{equation} kr=km
θ r = θ m + k m Δ s \begin{equation} \theta_r=\theta_m+k_m\Delta{s} \end{equation} θr=θm+kmΔs
根据自然坐标系和笛卡尔坐标系之间的转换关系可知
s ˙ = v cos ⁡ ( θ − θ r ) 1 − k r e d \begin{equation} \dot{s}=\frac{v\cos{(\theta-\theta_r)}}{1-k_re_d} \end{equation} s˙=1kredvcos(θθr)
综上,带入到式1中就得到了 e r r e_{rr} err中所有元素的值,结合上一节的计算,也就得到了控制量
u = − K e r r + δ f \begin{equation} u=-Ke_{rr}+\delta_f \end{equation} u=Kerr+δf
的值。


http://www.ppmy.cn/embedded/149238.html

相关文章

SQL Server数据库多主模式解决方案

SQL Server 本身并不直接支持多主模式(Multi-Master Replication),即多个数据库实例可以同时进行写操作,并且这些更改会自动同步到其他实例。不过,SQL Server 提供了多种高可用性和复制解决方案,可以实现类似多主模式的功能。以下是几种常见的方法: 1. Always On 可用性…

探索人工智能及机器学习如何赋能IP代理

在当今数字化时代,互联网已经成为信息传播、商业交流和全球互联的核心平台。随着网络流量的激增和互联网生态的复杂化,IP代理服务扮演着越来越重要的角色。它们不仅为用户提供匿名性、安全性,还帮助优化网络连接、加速数据访问。然而&#xf…

sentinel限流+其他

quick-start | Sentinel sentinel 作用 限流 熔断降级 1,限制什么 QPS 并发线程数 2,限制什么 资源,什么资源 服务,方法,接口,或者一段代码 3,实现方式 配置规则 注解 其他 Java常见5种限流…

feign验签不通过,但是postman没问题

测试一个外部api的时候发现,同样的签名方法和payload,放在postman请求完全没问题,curl也能通过,但是到了feign就签名错误。 百思不得其解,后来发现了问题。 计算签名的时候,payload使用的格式是 {"…

使用 OpenCV 在图像中添加文字

在图像处理任务中,我们经常需要将文本添加到图像中。OpenCV 提供了 cv2.putText() 函数,可以很方便地在图像上绘制文本,支持多种字体、颜色、大小和位置等参数。 本文将详细介绍如何使用 OpenCV 在图像中添加文字,介绍 cv2.putTe…

基于单片机的火灾报警器 (论文+源码)

1.系统设计 本系统由火灾检测模块、A/D转换模块、信号处理模块、声光报警模块和灭火装置模块组成。火灾检测模块由温度检测和烟雾检测构成,其温度传感器选用DS18B20,烟雾传感器选用MQ-2烟雾传感器。A/D转换模块选用常用的模数转换芯片ADC0832。声光报警…

RK3588在Android13/14如何查看GPU,NPU,DDR,RGA数据

由于Android13上selinux的权限管控加强,原来android12的方法已经无法获取到性能相关数据了,故单独介绍Android13上的性能数据获取 首先需要保障能过获取到root权限,adb root能够生效,adb shell进入shell命令行 mount -t debugfs…

JVM内存模型、垃圾回收机制及简单调优方式

JVM内存模型: 1. 方法区 用来存放类加载的信息,同时存放静态属性 和 方法(静态方法和普通方法) jdk1.7之后,取消了方法区名称,改为元空间、方法区也叫元空间也叫永久区 方法区中的数据&#xff0…