当前位置: 首页 > wzjs >正文

g2g有哪些网站网络seo是什么工作

g2g有哪些网站,网络seo是什么工作,十大电商平台,网站建设公司转型做什文章目录 定义关键问题一、核心公式与参数1. 纯跟踪控制公式2. 参数说明表 二、等价性证明1. 全局坐标系计算—航向角偏差2. 车身坐标系计算—预瞄角3. 等价性数学证明4.等价性结论 三、Python代码实现:1. 等价性验证代码2. 完整纯跟踪控制器 四、应用场景说明​五、…

文章目录

    • 定义关键问题
    • 一、核心公式与参数
      • 1. 纯跟踪控制公式
      • 2. 参数说明表
    • 二、等价性证明
      • 1. 全局坐标系计算—航向角偏差
      • 2. 车身坐标系计算—预瞄角
      • 3. 等价性数学证明
      • 4.等价性结论
    • 三、Python代码实现:
      • 1. 等价性验证代码
      • 2. 完整纯跟踪控制器
    • 四、应用场景说明​
    • 五、常见问题解答​
    • 六、算法计算逻辑示意图
    • 七、参考

定义关键问题

在深入纯跟踪算法核心前,必须澄清一对容易被混淆但至关重要的概念:

概念坐标系物理意义计算方式
航向角偏差(α_global)全局坐标系车辆航向与预瞄点方向的夹角预瞄点方位角 - 车辆航向角
预瞄角(α_body)车身坐标系预瞄点相对于车辆纵轴的夹角车身坐标下的反正切计算

关键疑问:为什么文献中对二者的论述常常混用?是否真的 α_global ≡ α_body?

一、核心公式与参数

在这里插入图片描述

1. 纯跟踪控制公式

本部分展示了车辆纯跟踪控制中常用的数学公式。我们通过这些公式计算车辆的转向角度,并根据车速、预瞄点的位置等因素来调节转向。以下是核心公式:
δ = arctan ⁡ ( 2 L ⋅ sin ⁡ ( α ) l d ) , l d = k v ⋅ v + l o \delta = \arctan\left(\frac{2L \cdot \sin(\alpha)}{l_{\text{d}}}\right), \ l_{\text{d}} = k_v \cdot v + l_{\text{o}} δ=arctan(ld2Lsin(α)), ld=kvv+lo
其中, α \alpha α 表示航向角偏差,通过以下公式计算:
α = arctan ⁡ ( y r − y x r − x ) − ψ \alpha = \arctan\left(\frac{y_{\text{r}}-y}{x_{\text{r}}-x}\right) - \psi α=arctan(xrxyry)ψ

2. 参数说明表

符号含义单位典型值补充说明
δ \delta δ前轮转角rad±0.52 (±30°)
L L L车辆轴距m2.5~3.5轿车约2.7m,SUV约2.9m
α \alpha α航向角偏差rad-即预瞄角
l d l_d ld前视距离m3~20速度相关
k v k_v kv速度增益s0.5~1.0调参重点
l 0 l_0 l0最小视距m2~3保证低速性能
x , y x,y x,y车辆坐标m-全局坐标系
x r , y r x_{\text{r}}, y_{\text{r}} xr,yr预瞄点坐标m-
ψ \psi ψ车辆航向角rad-全局坐标系

二、等价性证明

在这一部分,我们将讨论全局坐标系中航向角偏差与车身坐标系中预瞄角的计算公式,并证明这两个坐标系中的角度计算是等价的。

1. 全局坐标系计算—航向角偏差

设车辆状态向量为 S t a t e = [ x , y , ψ ] T \mathbf{State} = [x, y, \psi]^T State=[x,y,ψ]T,其中:

  • ( x , y ) (x, y) (x,y)为车辆在全局坐标系中的位置
  • ψ \psi ψ为车辆航向角(全局坐标系)

给定预瞄点坐标 ( x t , y t ) (x_t, y_t) (xt,yt),则航向角偏差定义为:
α global = arctan ⁡ 2 ( y t − y , x t − x ) ⏟ 预瞄点方位角 − ψ \alpha_{\text{global}} = \underbrace{\arctan2(y_t - y, x_t - x)}_{\text{预瞄点方位角}} - \psi αglobal=预瞄点方位角 arctan2(yty,xtx)ψ

物理意义 α global \alpha_{\text{global}} αglobal表示车辆当前航向指向预瞄点方向之间的夹角

2. 车身坐标系计算—预瞄角

将预瞄点从全局坐标系转换到车身坐标系的变换过程:
坐标平移:以车辆位置为坐标原点
Δ x = x t − x Δ y = y t − y \Delta x = x_t - x \\ \Delta y = y_t - y Δx=xtxΔy=yty
坐标旋转:消除航向角影响
[ x body y body ] = R ( ψ ) ⋅ [ Δ x Δ y ] = [ cos ⁡ ψ sin ⁡ ψ − sin ⁡ ψ cos ⁡ ψ ] [ Δ x Δ y ] \begin{bmatrix} x_{\text{body}} \\ y_{\text{body}} \end{bmatrix} = \mathbf{R}(\psi) \cdot \begin{bmatrix} \Delta x \\ \Delta y \end{bmatrix} = \begin{bmatrix} \cos\psi & \sin\psi \\ -\sin\psi & \cos\psi \end{bmatrix} \begin{bmatrix} \Delta x \\ \Delta y \end{bmatrix} [xbodyybody]=R(ψ)[ΔxΔy]=[cosψsinψsinψcosψ][ΔxΔy]

预瞄角计算
α body = arctan ⁡ 2 ( y body , x body ) \alpha_{\text{body}} = \arctan2(y_{\text{body}}, x_{\text{body}}) αbody=arctan2(ybody,xbody)

物理意义 α body \alpha_{\text{body}} αbody表示在车辆自身视角下预瞄点与车头正方向的夹角

3. 等价性数学证明

在这里插入图片描述

4.等价性结论

α global ≡ α body \alpha_{\text{global}} \equiv \alpha_{\text{body}} αglobalαbody

三、Python代码实现:

1. 等价性验证代码

import numpy as npdef calculate_angles(ego_x, ego_y, ego_yaw, target_x, target_y):"""验证航向角偏差与预瞄角的等价性"""# 全局坐标系计算dx = target_x - ego_xdy = target_y - ego_ytarget_yaw = np.arctan2(dy, dx)yaw_error = target_yaw - ego_yawyaw_error = np.arctan2(np.sin(yaw_error), np.cos(yaw_error))  # 归一化# 车身坐标系计算rotation_matrix = np.array([[np.cos(ego_yaw), np.sin(ego_yaw)],[-np.sin(ego_yaw), np.cos(ego_yaw)]])dx_body, dy_body = rotation_matrix @ np.array([dx, dy])preview_angle = np.arctan2(dy_body, dx_body)# 计算差异(应≈0)angle_diff = np.degrees(np.abs(yaw_error - preview_angle))return yaw_error, preview_angle, angle_diff

2. 完整纯跟踪控制器

class PurePursuitController:def __init__(self, wheelbase, k_v=0.6, l0=3.0, max_steer_deg=30.0):"""纯跟踪控制器:param wheelbase: 车辆轴距(m):param k_v: 速度前视增益:param l0: 基础前视距离(m):param max_steer_deg: 最大转向角(度)"""self.L = wheelbaseself.k_v = k_vself.l0 = l0self.max_steer = np.radians(max_steer_deg)def get_steering_angle(self, v, ego_x, ego_y, ego_yaw, target_x, target_y):"""计算转向角:param v: 当前车速(m/s):param ego_x, ego_y: 车辆位置:param ego_yaw: 车辆航向(rad):param target_x, target_y: 预瞄点位置:return: 转向角(rad)"""# 1. 计算动态前视距离lookahead = max(self.l0, self.k_v * v)  # 保证最小前视距离# 2. 计算航向角偏差(即预瞄角)dx = target_x - ego_xdy = target_y - ego_ytarget_yaw = np.arctan2(dy, dx)alpha = target_yaw - ego_yawalpha = np.arctan2(np.sin(alpha), np.cos(alpha))  # 归一化到[-π, π]# 3. 纯跟踪公式steering = np.arctan(2 * self.L * np.sin(alpha) / lookahead)# 4. 转向限幅return np.clip(steering, -self.max_steer, self.max_steer)

四、应用场景说明​

预瞄距离调参经验

场景 k v k_v kv l 0 l_0 l0效果
城市道路0.3~0.53m平滑转弯
高速公路0.8~1.05m提前预判
泊车场景0.1~0.32m精准控制

五、常见问题解答​

Q: 为什么不直接使用距离偏差代替角度偏差?
角度偏差具有方向敏感性,当车辆偏离路径时:

  • 角度偏差:能立即反映偏离方向(左/右)
  • 距离偏差:不能反映偏离方向

Q: 如何防止预瞄点跳变?
采用路径点筛选策略:

# 选择最近路径点前方lookahead距离的点
min_idx = np.argmin(np.sqrt((path_x-ego_x)**2 + (path_y-ego_y)**2))
target_idx = min_idx + int(lookahead / point_interval)

六、算法计算逻辑示意图

在这里插入图片描述

当然,航向角偏差如果是用预瞄点计算的,那么两者就是等价的,否则根据实际情况判断

七、参考

自动驾驶控制算法——纯跟踪算法(Pure Pursuit)

http://www.dtcms.com/wzjs/252647.html

相关文章:

  • 河南省住房城乡建设厅官方网站西安网站seo诊断
  • 微小店网站建设官网成人电脑培训班办公软件
  • 网站模板 扁平化互联网培训
  • php网站语言切换功能如何做云seo
  • wordpress做管理网站吗国外搜索引擎大全百鸣
  • 做微商网站需要哪些免费seo网站推广
  • 怎样接做网站和软件的活网络营销图片素材
  • 做门户网站用什么模板好内容营销案例
  • 网站采集来源网站提交
  • 宁波网站制作相信荣胜网络优化整站
  • php网站开发实训心得百度收录查询api
  • 劳动保障局瓯海劳务市场和做网站泰安网络推广培训
  • 做加工都在哪个网站推广关键词推广效果分析
  • 有没有做鸭的网站工作室招聘新闻媒体发布平台
  • 网站备案中国开头朝阳seo建站
  • 学习网站建设与管理什么网站推广比较好
  • 厦门网站建设制作热门搜索关键词
  • 做平面那个网站素材好优化营商环境个人心得体会
  • 镇平哪家网站做的好seo的实现方式
  • 做网站需要域名吗设计网站接单
  • 个人网站建设规划案例360收录
  • 公司做网站要企业认证seo优化教程培训
  • 订阅号做微网站市场调研报告范文3000字
  • 网站txt地图怎么做营销型网站建设案例
  • 陕西建设厅八大员官方网站手游推广平台代理
  • 网站策划书我与音乐做博客的seo技巧
  • 网站开发用哪些字体营销推广方案包括哪些内容
  • 西安市做网站手机app开发
  • 网站链接做投票百度广告一级代理
  • 网站服务器多少钱一月网络营销专业代码