自动驾驶中的滑模控制实战:如何用Python实现车辆轨迹跟踪(附完整代码)

自动驾驶控制算法——滑模控制(SMC)原理与建模 自动驾驶滑模控制(SMC)原理与应用 本文介绍了滑模控制(SMC)在自动驾驶领域的应用原理。SMC是一种鲁棒的非线性控制方法,通过设计滑模面将系统状态强制"吸引"并沿面滑动,有效应对车辆动力学中的不确定性。文章首先阐述了SMC的核心思想,将其与PID、LQR、MPC等控制方法进行对比。随后以车辆横向控制为例,详细推导了SMC的建模过程,包括滑模面设计、控制律推导及抖振问题的解决方案。最后探讨了SMC的优化方向,包括最优滑模面设计、自适应控制和高阶滑模控制。SMC凭借其强鲁棒性和简单结构, 阅读详情

自动驾驶中的滑模控制实战:如何用Python实现车辆轨迹跟踪(附完整代码)

最近和几位做自动驾驶规控算法的朋友聊天,大家普遍觉得,理论推导看了一堆,但真到了动手写代码、让车跑起来的时候,还是容易卡壳。尤其是面对那些号称“鲁棒性强”的非线性控制方法,比如滑模控制,原理似乎懂了,但怎么把它从一个数学公式变成屏幕上能跑通的仿真,中间还隔着不少坑。这篇文章,我就想从一个实践者的角度,和你聊聊怎么用Python从零搭建一个用于车辆轨迹跟踪的滑模控制器。我们不空谈理论,重点放在代码怎么写、参数怎么调、效果怎么看,以及那些只有动手做过才会遇到的细节上。

1. 从车辆模型到控制问题:我们到底要解决什么?

在开始写控制器之前,我们必须先明确控制对象——车辆模型,以及我们要解决的核心问题。自动驾驶中的轨迹跟踪,简单说就是让车辆按照一条预先规划好的路径行驶。这条路径可能来自高精地图,也可能是上游规划模块实时给出的。控制器需要根据车辆当前的位置、姿态与目标路径的偏差,计算出方向盘转角或加速度/刹车指令,让偏差尽快减小并保持为零。

1.1 一个足够好用又不过于复杂的模型:自行车模型

对于横向控制(即方向盘控制),学术界和工业界最常用的简化模型是自行车模型,也叫单轨模型。它把四个轮子简化成前后两个轮子,并假设车辆只在平面上运动。这个模型在低速到中速范围内,对车辆横向动力学有相当好的刻画,而且形式简单,非常适合控制器设计。

我们关心两个核心的状态变量:

  • 横向误差 e_y:车辆质心到目标轨迹的垂直距离。e_y为正表示车辆偏右,为负表示偏左。
  • 航向误差 e_psi:车辆当前航向角与目标轨迹在该点切线方向的夹角。e_psi为正表示车头偏右。

假设车辆纵向速度 v_x 恒定(由纵向控制器负责),我们可以得到一组简化的动力学方程:

# 状态变量定义
state = {
    'e_y': 0.0,    # 横向误差,单位:米
    'e_psi': 0.0   # 航向误差,单位:弧度
}

# 控制输入
delta = 0.0  # 前轮转角,单位:弧度

# 车辆参数
L = 2.5  # 轴距,单位:米
v_x = 5.0 # 纵向速度,单位:米/秒

# 状态更新(欧拉积分近似)
def update_state(state, delta, dt=0.01):
    e_y_dot = v_x * state['e_psi']
    e_psi_dot = v_x / L * delta

    state['e_y'] += e_y_dot * dt
    state['e_psi'] += e_psi_dot * dt
    return state

这个模型告诉我们:横向误差的变化率 (e_y_dot) 与航向误差和速度成正比;而航向误差的变化率 (e_psi_dot) 则与前轮转角和速度成正比,与轴距成反比。我们的控制目标非常明确:设计一个控制律,通过调节 delta,使得 e_y 和 e_psi 都收敛到零。

1.2 为什么是滑模控制?它的杀手锏是什么?

你可能用过PID,也了解过LQR。PID简单直观,但对模型变化和外部干扰比较敏感;LQR性能最优,但严重依赖精确的线性模型。在真实的驾驶场景中,路面摩擦系数会变(雨雪天)、车辆负载会变、轮胎特性也不是线性的,还存在风阻等未知扰动。这时,滑模控制的优势就凸显出来了。

滑模控制的核心思想,我更喜欢用一个比喻来理解:想象你在冰面上推一个箱子去一个目标点。直接瞄准目标推,箱子很容易打滑跑偏。滑模控制的策略是,先设计一条“理想滑道”(滑模面),比如一条指向目标的直线。你的控制策略不再是“朝目标推”,而是“无论如何,把箱子压到这条滑道上”。一旦箱子上了滑道,它就会沿着滑道自然地滑向目标。即使冰面各处摩擦不同(模型不确定),或者有风吹(外部扰动),只要你施加的控制力足够让箱子不脱离滑道,它最终就能到达目标。

这个“滑道”就是滑模面,通常设计为系统误差的线性组合,例如 s = e_y_dot + λ * e_y。s=0 就定义了这个理想滑道。控制器的任务变得非常直接:设计控制律,使得系统状态(e_y, e_psi)被“吸引”到 s=0 这个面上,并保持在其上“滑动”。只要系统在滑模面上滑动,其动态特性就由滑模面方程 (s=0) 决定,而不再受原系统参数摄动和外部干扰的直接影响,这就是其强鲁棒性的来源。

2. 滑模控制器的设计与Python实现

理解了要解决的问题和控制哲学,我们现在进入实战环节,一步步用代码把控制器搭起来。

2.1 第一步:设计滑模面

对于我们的车辆模型,一个常见且有效的滑模面设计是:

s = v_x * e_psi + λ * e_y

这里 λ 是一个大于零的设计参数。为什么这么设计?让我们拆解一下:

  • 当 s=0 时,有 e_psi = - (λ / v_x) * e_y。这意味着航向误差与横向误差成比例关系。
  • 这个关系实际上描述了一种“提前转向”的行为:当车辆偏右 (e_y>0) 时,它应该有一个向左的航向角 (e_psi<0),以便车头指向目标轨迹,从而消除横向误差。λ 的大小决定了这种转向行为的激进程度。λ 越大,对于同样的横向误差,要求的航向修正角越大,收敛越快,但也可能更“抖”。
def calculate_sliding_surface(e_y, e_psi, v_x, lambda_):
    """
    计算滑模面值
    Args:
        e_y: 横向误差
        e_psi: 航向误差
        v_x: 纵向速度
        lambda_: 滑模面参数,大于0
    Returns:
        s: 滑模面值
    """
    s = v_x * e_psi + lambda_ * e_y
    return s

2.2 第二步:推导控制律并处理“抖振”

我们希望系统状态能到达滑模面 (s=0),一个经典的方法是让滑模面本身满足趋近律。我们采用指数趋近律:

s_dot = -η * sign(s)

其中 η > 0 是趋近速度系数,sign() 是符号函数。这个公式意味着,无论 s 是正是负,s_dot 总是指向原点 (s=0),并且大小恒定,这能保证系统状态在有限时间内到达滑模面。

接下来,我们对滑模面 s 求导,并将车辆动力学模型代入:

s = v_x * e_psi + λ * e_y
s_dot = v_x * e_psi_dot + λ * e_y_dot
      = v_x * (v_x / L * delta) + λ * (v_x * e_psi)
      = (v_x**2 / L) * delta + λ * v_x * e_psi

令其等于趋近律:

(v_x**2 / L) * delta + λ * v_x * e_psi = -η * sign(s)

由此可以解出控制输入——前轮转角 delta:

delta = - (L / v_x**2) * (λ * v_x * e_psi + η * sign(s))

这里有一个工程上的大问题:sign(s) 函数在 s=0 处是不连续的,会导致控制量 delta 高频剧烈切换,这种现象称为抖振。在实际车辆上,这会让方向盘疯狂抖动,无法执行。解决方法是用一个连续的饱和函数 sat(s/φ) 来代替符号函数。

饱和函数在边界层 (-φ, φ) 内是线性的,之外则饱和为 ±1。这样,当系统状态接近滑模面(s 很小)时,控制作用是平滑的线性反馈;只有当偏差较大时,才发挥滑模控制的强鲁棒性。

def saturation(x, phi):
    """
    饱和函数,用于替代符号函数以减轻抖振
    Args:
        x: 输入值
        phi: 边界层厚度,大于0
    Returns:
        饱和后的值
    """
    if x > phi:
        return 1.0
    elif x < -phi:
        return -1.0
    else:
        return x / phi

def sliding_mode_control(e_y, e_psi, v_x, L, lambda_, eta, phi):
    """
    计算滑模控制律(前轮转角)
    Args:
        e_y, e_psi: 状态误差
        v_x, L: 车辆参数
        lambda_, eta, phi: 控制器参数
    Returns:
        delta: 前轮转角控制指令
        s: 当前滑模面值
    """
    # 1. 计算滑模面
    s = v_x * e_psi + lambda_ * e_y

    # 2. 使用饱和函数计算控制量
    delta = - (L / (v_x**2)) * (lambda_ * v_x * e_psi + eta * saturation(s, phi))

    return delta, s

2.3 第三步:搭建完整的仿真闭环

有了控制器和模型,我们就可以构建一个完整的仿真循环。这个循环模拟了真实世界中传感器感知误差、控制器计算指令、车辆执行并更新状态的过程。

import numpy as np
import matplotlib.pyplot as plt

def run_simulation(T=10.0, dt=0.01, initial_state=(1.5, 0.4)):
    """
    运行滑模控制轨迹跟踪仿真
    Args:
        T: 总仿真时间 (秒)
        dt: 仿真步长 (秒)
        initial_state: (初始横向误差, 初始航向误差)
    Returns:
        记录的时间、状态和控制量历史
    """
    # 参数设置
    v_x = 5.0
    L = 2.5
    lambda_ = 2.5   # 滑模面参数
    eta = 4.0       # 趋近律系数
    phi = 0.1       # 饱和函数边界层

    # 初始化
    e_y, e_psi = initial_state
    N = int(T / dt)
    time = np.linspace(0, T, N)

    # 记录历史
    history = {
        'time': time,
        'e_y': np.zeros(N),
        'e_psi': np.zeros(N),
        's': np.zeros(N),
        'delta': np.zeros(N)
    }

    # 主仿真循环
    for i in range(N):
        # 记录当前状态
        history['e_y'][i] = e_y
        history['e_psi'][i] = e_psi

        # 计算控制指令
        delta, s = sliding_mode_control(e_y, e_psi, v_x, L, lambda_, eta, phi)
        history['delta'][i] = delta
        history['s'][i] = s

        # 根据车辆模型更新状态 (欧拉积分)
        e_y_dot = v_x * e_psi
        e_psi_dot = v_x / L * delta

        e_y += e_y_dot * dt
        e_psi += e_psi_dot * dt

    return history

3. 参数调优与性能分析:让控制器真正可用

代码跑起来只是第一步,让控制器性能达到预期,甚至超越基线方法,关键在调参。滑模控制器主要有三个核心参数:λ, η, φ。它们共同决定了控制器的收敛速度、鲁棒性和平滑性。

3.1 参数影响分析与调优指南

参数物理意义调大带来的影响调小带来的影响调优建议
λ滑模面斜率,决定状态在滑模面上的收敛速度。收敛更快,但对噪声更敏感,可能引发超调或振荡。收敛变慢,系统响应迟缓。从 v_x/L 量级开始尝试。高速场景可适当增大,低速或弯道场景需谨慎。
η趋近速度系数,决定系统状态“冲向”滑模面的力度。趋近阶段更迅猛,鲁棒性更强,但抖振加剧。趋近变慢,对外部扰动的抑制能力下降。需与 φ 配合。通常取 `η >
φ饱和函数边界层厚度,是抑制抖振的关键。控制更平滑,抖振几乎消失,但边界层内系统失去滑模鲁棒性。控制更接近理想滑模,抖振明显,执行器压力大。在保证控制平滑的前提下尽可能小。通常为最大允许控制量的 5%-10%。

调参是一个权衡的过程。我的经验是采用“两步法”:

  1. 先调 λ 和 η,忽略抖振:暂时设一个很小的 φ(如0.01),重点关注误差收敛速度和超调量。目标是让系统能稳定收敛。
  2. 再调 φ,优化控制品质:逐步增大 φ,观察控制量 delta 的曲线,直到高频抖振被有效抑制,同时跟踪性能没有明显恶化。

注意:仿真中的“完美模型”和实车差异巨大。仿真调好的参数,上车前必须进行大量的硬件在环测试,并预留在线微调的空间。

3.2 可视化与结果分析:我们看到了什么?

运行仿真后,我们可以绘制关键曲线来分析控制器性能。

def plot_results(history):
    """
    绘制仿真结果
    """
    fig, axs = plt.subplots(3, 1, figsize=(10, 8), sharex=True)

    # 1. 状态误差收敛图
    axs[0].plot(history['time'], history['e_y'], 'b-', label='Lateral Error $e_y$ (m)')
    axs[0].plot(history['time'], history['e_psi'], 'r-', label='Heading Error $e_\psi$ (rad)')
    axs[0].set_ylabel('Error')
    axs[0].set_title('State Errors Convergence')
    axs[0].legend()
    axs[0].grid(True)

    # 2. 滑模面收敛图
    axs[1].plot(history['time'], history['s'], 'g-', label='Sliding Surface $s$')
    axs[1].axhline(y=0, color='k', linestyle='--', alpha=0.3)
    axs[1].set_ylabel('s(t)')
    axs[1].set_title('Sliding Surface Dynamics')
    axs[1].legend()
    axs[1].grid(True)

    # 3. 控制输入图
    axs[2].plot(history['time'], history['delta'], 'm-', label='Steering Angle $\delta$ (rad)')
    axs[2].set_xlabel('Time (s)')
    axs[2].set_ylabel('Control Input')
    axs[2].set_title('Control Input (Steering Angle)')
    axs[2].legend()
    axs[2].grid(True)

    plt.tight_layout()
    plt.show()

# 运行并绘图
history = run_simulation(T=8.0)
plot_results(history)

从生成的图中,我们可以读出以下信息:

  • 误差收敛图:e_y 和 e_psi 应平滑、快速地收敛到零附近的一个小邻域内。收敛时间、超调量、稳态误差是主要评估指标。
  • 滑模面动态图:s(t) 应迅速趋近并保持在零附近。如果 s 始终大幅波动,说明系统未进入理想的滑动模态,可能是 η 太小或扰动太大。
  • 控制输入图:delta 曲线应该相对平滑,没有剧烈的高频振荡。轻微的波动是允许的,但大幅的“锯齿”表明抖振严重,需要增大 φ 或考虑更高级的抖振抑制方法。

4. 进阶话题:从基础滑模到工程实用化

一个能跑通的仿真只是起点。要让滑模控制真正应用于车载计算单元,还需要考虑更多工程现实。

4.1 应对模型失配与自适应增益

基础的滑模控制假设我们知道扰动的上界,并据此设计 η。但实际中,这个上界可能难以准确获取,或者会随时间变化(如负载变化)。自适应滑模控制 可以让控制器自己在线调整 η。

基本思路是设计一个自适应律来估计 η。例如:

η_hat_dot = γ * |s|

其中 γ 是学习率。这样,当系统偏离滑模面 (|s| 大) 时,η_hat 会增大,增强控制力度;当系统在滑模面附近时,η_hat 增长放缓或停止。这相当于给控制器加了一个“智能油门”。

class AdaptiveSlidingModeController:
    def __init__(self, v_x, L, lambda_, phi, gamma, eta_init=1.0):
        self.v_x = v_x
        self.L = L
        self.lambda_ = lambda_
        self.phi = phi
        self.gamma = gamma  # 自适应增益的学习率
        self.eta_hat = eta_init  # 自适应估计的 eta

    def control(self, e_y, e_psi):
        s = self.v_x * e_psi + self.lambda_ * e_y

        # 自适应律更新 (简化的积分形式)
        self.eta_hat += self.gamma * abs(s) * dt  # dt 为控制周期

        # 计算控制量,使用估计的 eta_hat
        delta = - (self.L / (self.v_x**2)) * (self.lambda_ * self.v_x * e_psi + self.eta_hat * saturation(s, self.phi))
        return delta, s, self.eta_hat

4.2 离散化与执行器延迟

仿真通常在连续时间域进行,但实际控制器是数字的,以固定频率(如100Hz)运行。我们需要对控制律进行离散化。常用的方法是采用前向欧拉法,但要注意采样周期 Ts 不能太大,否则会影响稳定性。

更棘手的是执行器延迟。方向盘从接收到指令到实际转到位需要时间。这会在闭环中引入相位滞后,可能导致系统不稳定。一种补偿方法是使用状态预测器,基于当前状态和模型,预测未来一个延迟时间后的状态,并基于预测状态计算控制量。

def control_with_delay_compensation(state_history, delay_steps, v_x, L, lambda_, eta, phi):
    """
    带延迟补偿的控制计算
    Args:
        state_history: 历史状态列表,最新状态在最后
        delay_steps: 延迟对应的步数
    """
    if len(state_history) > delay_steps:
        # 使用过去的状态来预测当前时刻应有的状态(简化)
        # 这里假设匀速模型预测
        past_state = state_history[-delay_steps]
        # 简单的线性外推预测 (可根据模型改进)
        e_y_pred = past_state['e_y'] + past_state['e_y_dot'] * delay_steps * dt
        e_psi_pred = past_state['e_psi'] + past_state['e_psi_dot'] * delay_steps * dt
        e_y, e_psi = e_y_pred, e_psi_pred
    else:
        # 历史数据不足,使用最新状态
        e_y, e_psi = state_history[-1]['e_y'], state_history[-1]['e_psi']

    # 使用预测/估计的状态计算控制量
    delta, s = sliding_mode_control(e_y, e_psi, v_x, L, lambda_, eta, phi)
    return delta, s

4.3 与其他控制方法的结合思考

滑模控制并非银弹。在实际项目中,它常与其他方法结合:

  • 与PID结合:在误差很小时,可以平滑切换到线性PID控制,彻底消除抖振,用于稳态跟踪。
  • 与MPC框架结合:这是一个前沿方向。在MPC的滚动优化框架中,将滑模控制的鲁棒性要求作为约束或性能指标的一部分,实现“最优”与“鲁棒”的融合。例如,可以在MPC的代价函数中加入对滑模面 s 的惩罚项,引导优化解向鲁棒性区域靠近。

最后,我想说的是,仿真完美不代表实车成功。在把这段代码部署到真车前,一定要经过软件在环、硬件在环的充分测试,并在封闭场地进行大量标定。控制器的参数可能需要针对不同的车速档位、载荷情况准备多套映射表。我曾在项目初期因为忽略了转向系统的速率限制,导致仿真很好的控制器上车后频繁触发执行器保护,车辆表现得很“犹豫”。这些工程细节,往往比算法本身更耗费精力,但也正是区分一个原型和一个产品级方案的关键。

MATLAB/Simulink与ROS、Raspberry Pi融合开发:从模型到实物的快速原型实践 基于模型的设计(MBD)是一种通过图形化建模进行系统设计与仿真的高效工程方法,其核心原理在于将算法和控制逻辑抽象为可视化模型,在虚拟环境中进行验证和迭代。这一方法的技术价值在于显著提升了复杂系统(如机器人、自动驾驶)的开发效率与可靠性,降低了实物试错成本。在实际应用中,工程师常需将仿真模型部署到实体硬件上运行,这就涉及到与机器人操作系统(ROS)的通信集成以及嵌入式平台的代码生成。ROS作为机器人软件框架,提供了标准化的通信机制,便于异构模块的集成;而像Raspberry Pi这类低成本硬件则成为连接虚拟模 阅读详情

相关推荐

无人驾驶汽车自动换道控制策略研究

自动换道是无人驾驶汽车的核心驾驶行为之一,直接影响行车安全、交通效率与乘坐舒适性。本文系统研究了无人驾驶汽车自动换道的控制策略,从决策层、规划层和跟踪控制层三个维度构建完整的技术框架。在决策层面,分析了基于规则、基于学习和基于博弈论的换道决策方法;在轨迹规划层面,提出了满足安全性、平滑性和动力学约束的五次多项式换道轨迹生成方法;在跟踪控制层面,重点研究了模型预测控制(MPC)在换道轨迹跟踪中的应用,设计了综合考虑跟踪精度与控制平滑性的代价函数。本文基于Python实现了一套完整的自动换道仿真系统。

huanghm88的专栏 104

自动驾驶中的滑模控制实战:如何用Python快速搭建轨迹跟踪仿真(附完整代码)

本文详细介绍了在自动驾驶轨迹跟踪中应用滑模控制(SMC)的实战方法。通过Python代码,从建立车辆自行车模型、设计滑模面和控制律,到使用饱和函数解决抖振问题,完整演示了如何搭建一个鲁棒的轨迹跟踪控制器。文章提供了可运行的仿真代码、参数调优技巧,并对比了PID控制,展现了滑模控制在应对模型不确定性和外部扰动时的优势。

ggg99的专栏 109

基于MATLAB的电池等效电路模型(ECM)仿真,用于分析电气行为和动态响应.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

自动驾驶规控算法仿真 c++自动驾驶规划与控制避障算法仿真 环境配置(python matla...

咱们搞C++和Python双修,Matlab/Simulink做可视化验证,ROS负责消息通信。这段代码最妙的地方在优先队列的运用,每次弹出综合代价最低的节点。matlab,simulink. 差速小车,运动规划,路径规划,避障均。matlab,simulink. 差速小车,运动规划,路径规划,避障均。移动机器人,建模运动控制,模糊控制,PID控制,滑模控制。移动机器人,建模运动控制,模糊控制,PID控制,滑模控制。

QQ68823886的博客 106

隔离型全桥LLC谐振变化器建模及参数设计资料【仿真+设计报告+计算书】

内容概要:本文档系统性地提供了隔离型全桥LLC谐振变换器的建模、仿真与参数设计全套技术资料,涵盖Simulink/Plecs仿真模型、详细设计报告及Mathcad计算书,内容涉及开环与闭环控制、软启动过程、恒压恒流双闭环竞争控制等多种工况。资料还拓展至多相交错LLC、双向CLLC拓扑以及V2G(Vehicle-to-Grid)电动汽车充放电等前沿应用场景,并融合状态估计算法(如卡尔曼滤波、扩展卡尔曼滤波、粒子滤波)与神经网络技术进行系统性能优化,配套PPT说明与高水平EI期刊复现案例,为电力电子领域的科研与工程设计提供完整的技术支撑; 适合人群:适用于电力电子、电气工程及其自动化等相关专业的高校研究生、科研人员,以及从事高频DC-DC变换器、新能源电源系统开发的工程师,具备扎实电路理论基础和Matlab/Simulink仿真能力者尤佳; 使用场景及目标:①支撑LLC谐振变换器相关的科研课题、学位论文或项目开发;②开展高频高效电源的参数设计、效率优化与动态响应分析;③学习并复现高水平期刊中先进的控制策略,如变频控制、混合移相控制及智能优化算法;④掌握Simulink/Matlab在电力电子系统建模、控制算法实现与状态估计中的综合应用; 阅读建议:建议结合仿真模型、Mathcad计算书与设计报告三位一体同步研习,重点理解主电路参数设计与闭环控制逻辑之间的耦合关系,优先运行典型算例并调试关键模块,有条件者可进一步推进至硬件原型验证,并积极探索状态估计与人工智能算法在电力系统动态建模中的融合应用。

从Jira到Notion:用Sequential Thinking重构你的敏捷工作流(含GPT-6配置模板)

本文探讨了如何利用Sequential Thinking这一AI认知模型,重构敏捷开发工作流。通过连接Jira、Notion等工具,构建动态依赖图谱,实现从被动响应到主动规划的转变。文章提供了详细的配置教程和GPT-6配置模板,帮助团队实现任务自动拆解、智能看板生成与跨平台协调,从而提升项目管理效率。

gpt4scribbler的博客 205

自动驾驶技术中的算法仿真研究:规控策略、避障算法与路径规划的C++与多环境配置实现

咱们搞C++和Python双修,Matlab/Simulink做可视化验证,ROS负责消息通信。这段代码最妙的地方在优先队列的运用,每次弹出综合代价最低的节点。启发函数用曼哈顿距离不是偷懒,实际测试中发现比欧式距离快30%以上,尤其在栅格地图中效果拔群。matlab,simulink. 差速小车,运动规划,路径规划,避障均。移动机器人,建模运动控制,模糊控制,PID控制,滑模控制。路径规划这块最刺激,A。

2504_94312458的博客 378

深度学习十大算法之Word2Vec

Word2Vec的提出,标志着词嵌入技术的一次重大进步。Word2Vec是一种高效的词嵌入模型,由Google的研究团队于2013年开发。它使用一种称为神经网络的机器学习方法,通过学习大量文本数据,生成能够表达词语间丰富语义关系的词向量。Word2Vec的核心优势在于它能够捕捉到词语之间的细微关系。例如,在Word2Vec模型中,可以通过计算向量之间的距离来估计词语之间的相似度。这不仅能帮助理解语言的复杂性,还可以应用于各种NLP任务,如机器翻译和搜索引擎优化。

第欧根尼的酒桶的博客 1864

Python控制理论工具库推荐:awesome-control-theory中的必备开发资源

探索控制理论领域时,Python工具库是每个工程师和研究人员不可或缺的助手。在awesome-control-theory这个精心整理的资源库中,您将发现一系列功能强大的Python控制理论工具库,这些工具能够帮助您快速实现控制系统设计、仿真和优化。无论您是刚入门的新手还是经验丰富的专家,这些Python控制理论工具库都能为您的项目提供坚实的支持。 ## 📚 为什么选择Python进行控制理论

gitblog_00778的博客 998

基于GPU的GEMM矩阵相乘运算优化

从上图中我们可以看到三种处理方法。第一种是将A和B矩阵分块,第二种方法是将C和B矩阵分块,第三种方法是将C和A矩阵分块。GEMM的子任务是GEPP或GEMP;最小粒度的任务是GEBP或GEPB或点乘。

weixin_55035144的博客 2155

企业微信——智能表格学习

企业微信报表

qq_15138049的博客 1万+

自动驾驶仿真平台与算法开发

咱们搞C++和Python双修,Matlab/Simulink做可视化验证,ROS负责消息通信。这段代码最妙的地方在优先队列的运用,每次弹出综合代价最低的节点。matlab,simulink. 差速小车,运动规划,路径规划,避障均。matlab,simulink. 差速小车,运动规划,路径规划,避障均。移动机器人,建模运动控制,模糊控制,PID控制,滑模控制。移动机器人,建模运动控制,模糊控制,PID控制,滑模控制。

vmnfPZtzOv的博客 195

STM32F407通过SMBus协议精准读取BQ40Z50电池电量

本文详细介绍了STM32F407通过SMBus协议精准读取BQ40Z50电池电量的实现方法。从硬件连接到软件驱动开发,再到通信异常排查,提供了完整的解决方案。重点解析了SMBus协议的特殊时序要求、GPIO模拟驱动的关键代码,以及实际调试中的常见问题与对策,帮助开发者高效完成电池管理系统开发。

weixin_29189003的博客 251

【GitHub项目推荐--Spline-Path-Control:高级样条路径控制完全指南】

​​ 是由WhatDreamsCost开发的开源运动控制库,专注于为机器人、自动驾驶车辆和工业机械提供平滑、精确的路径规划和控制。该项目采用先进的样条曲线算法,实现了高效、稳定的路径生成和跟踪,特别适用于需要高精度运动控制的场景。🔗 ​GitHub地址⚡ ​核心价值​:路径规划 · 运动控制 · 样条曲线 · 机器人导航​项目特色​:​高精度控制​:亚毫米级路径跟踪精度​实时性能​:毫秒级路径生成和更新​多种样条支持​:贝塞尔曲线、B样条、NURBS等​动态障碍规避​:实时路径调整避开障碍物。

j8267643的博客 1557

利用恒源云在云端租用GPU服务器训练YOLOv10模型(包括Linux系统命令讲解)

为当涉及到深度学习的训练任务时,GPU的计算能力是不可或缺的。相对于传统的中央处理器(CPU),图形处理器(GPU)具有更强大的并行计算能力,能够显著加速深度学习模型的训练过程。深度学习算法通常涉及大量的矩阵运算和张量操作,而GPU的并行计算架构使得它们能够高效地执行这些计算,从而加速模型训练的速度。恒源云是一个经济高效的云计算平台,您可以通过恒源云的控制台或者命令行界面来管理实例、上传和下载数据、执行训练任务等。

Snu77的博客 1891

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)

这些模型将长方体的尺寸定义为状态转换期间的常量,并且它们的估计值在滤波器的校正阶段随时间演变。下面的动画显示了在滤波器的预测阶段将具有不同概率的恒定速度和恒定转弯率模型混合在一起的效果。此示例显示了如何使用带有 IMM 过滤器的 JPDA 跟踪器来跟踪使用激光雷达传感器的对象。图像和激光雷达数据读取器从 MAT 文件中读取记录的数据,并分别输出参考图像和点云中点的位置。跟踪器块选中“启用所有轨道输出”和“启用可检测的跟踪 ID 输入”复选框,以从跟踪器输出所有轨道,并将其检测概率作为其状态的函数进行计算。

珞瑜的博客 2565

控制系统仿真CAD:从算法到物理系统的闭环验证实践

控制系统仿真CAD是连接控制算法与物理系统的关键桥梁,其核心原理在于构建高保真的数字孪生模型,实现从概念到实物的闭环验证。这一技术通过整合多物理场建模与实时仿真,能够提前发现设计缺陷、优化控制参数,从而大幅降低开发成本与周期。其技术价值在于打破了传统开发流程中的信息孤岛,为复杂系统(如自动驾驶、工业机器人)的可靠性提供了关键保障。在工程实践中,它广泛应用于汽车电子、电力电子、机器人等领域,例如通过Carsim和Simulink联合仿真验证车辆动力学,或利用Simscape Multibody进行机械臂的精确

weixin_34176694的博客 381

SPRD Android 14 通过属性控制系统设置显示双栏或者单栏

SPRD Android 14 通过属性控制系统设置显示双栏或者单栏

m0_60898338的博客 1118

自动驾驶技术向更高级别发展,SMT贴片加工厂如何做好ADAS控制板精密贴装与检测?

ADAS控制板制造涉及精密贴装、多封装器件焊接和多环节检测。SMT加工不能只关注贴片速度,更需要把DFM评审、锡膏印刷、贴装、回流焊和质量检测结合起来,才能更好地满足项目制造要求。

wjkjpcba的博客 258

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ECCV 2026 | CausalDrive:澳门大学×小米汽车,面向自动驾驶的实时因果世界模型

CausalDrive: Real-time Causal World Models for Autonomous Driving | CausalDrive:面向自动驾驶的实时因果世界模型

陈嘿萌的博客 285

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

2026.11.03 AI产业深度解读|Anthropic招股书关键数据披露;自动驾驶监管变革;AI开始渗透跨境支付场景

梳理11月3日AI行业重点事件:Anthropic更新IPO招股文件,披露Q3营收、客户规模、巨额算力承诺,估值受科技股行情扰动;日本修订L4/L5自动驾驶认证法规,放开无方向盘车辆批量认证;OpenAI布局美国大选AI政策议题;腾讯TenPay Global联合万事达卡拓展入境跨境支付与Agent支付;国内商汤、仪电智算云发布MaaS与可信算力相关成果。从商业财报、监管政策、产业落地、本土技术进展多维度做开发者视角解读,适合AI从业者、技术管理者、产品经理阅读。关键词:Anthropic;IPO招股书;

分享日常学习生活 397

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

开源底座往下沉,自动驾驶与本地判断共用一套栈|2026年11月03日

开源大模型推动判断类模型本地部署门槛下降,NaceAI发布27B参数、262144词元窗口的DrexMaxv1,支持概率输出与多精度量化,实现决策接口标准化。同时,自动驾驶领域依托开源底座,端到端架构成本降至百万美元级,初创公司融资超百万元即可部署。技术下沉带来责任重构:阈值设定、结果可追溯、出错回退成关键成本项。高风险场景中,聊天机器人因缺乏校验层致事故频发,倒逼产品补全来源追溯与人工复核机制。政策层面,“算力园区”等新表述降低沟通成本,但合规与工程双轨并行。趋势明确:底座复用、接口标准化、校验补位,未来

kenshin1980的专栏 606

Foundation4D:迈向自动驾驶汽车的统一感知与重建模型

我们提出了Foundation4D,一个统一的前馈模型,用于从多相机驾驶视频中进行几何估计、3D检测、语义占用和高斯重建。共享骨干网络采用因子化时空注意力,以高效地融合跨相机和跨时间的观测。我们的视频推理流水线使用位姿图优化来精化相机轨迹,并跨输入窗口组装目标轨迹。我们还开发了一条数据标注流水线,并发布了PAI-Foundation4D,这是一个包含1,253个驾驶片段密集深度和语义占用标签的基准。经过针对基准的微调,Foundation4D在Waymo和nuScenes上取得了最低的深度AbsRel,在n

AI浩 603

【LLM推理与Serving⑨】业务模型推理引擎开发:以BEV自动驾驶为例的专用推理实践

系列文章索引:本系列从基础概念到工程实践,系统梳理LLM推理与Serving的核心知识。本文为第9篇,跳出通用LLM框架,看看业务专用推理引擎是怎么打造的。

Dawson Zhu的博客 317

NVIDIA 开源 Cosmos 3 四款模型,用于交互式世界模拟与自动驾驶场景生成

NVIDIA 为 Cosmos 3 模型家族新增四个开放权重检查点,覆盖多视角驾驶数据生成、流式仿真、物理控制转视频和双臂机器人动作预测,均为 160 亿参数的 Cosmos 3 Nano 后训练版本

wfly blog 252
上一篇: DolphinScheduler实战:遇到‘tenant not exists‘错误?三步快速定位并修复租户问题
下一篇: ROS2 Humble版rqt全套插件安装指南:从基础到进阶工具详解
糖果HTML
博客等级 码龄3年 76粉丝 1357原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值