自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 带延迟的运动学 MPC 中,车速最小约束的核心作用

在带延迟的运动学 MPC 中,的核心作用是避免车速趋近于 0 时,状态矩阵A出现奇异、模型预测失真或控制指令震荡,进而平衡 “计算精确性”(模型与真实车辆动态匹配)和 “响应性”(控制指令及时、无过度延迟)。

2025-12-04 16:01:35 305

原创 std::lower_bound 深度解析

C++中的std::lower_bound是二分查找算法,用于在已排序序列中查找第一个不小于给定值的元素。它要求输入范围必须是有序的,返回指向目标元素的迭代器或end()。时间复杂度为O(logN)(随机访问)或O(N)(非随机访问)。支持自定义比较函数,适用于基础类型和自定义类型。使用时需注意边界检查,确保比较规则与排序一致。与upper_bound和equal_range形成互补关系。典型应用场景包括有序数组查询、自定义结构体查找等,是高效查找的重要工具。

2025-10-28 11:49:25 777

原创 C++ Lambda表达式深度解析

C++ Lambda表达式核心技术解析 摘要:Lambda表达式是C++11引入的匿名函数对象,其核心包括捕获列表、参数列表、返回类型和函数体。编译器会将Lambda转换为匿名类,包含捕获变量和重载的operator()。捕获方式支持值捕获(=)、引用捕获(&)、混合捕获及初始化捕获(C++14)。典型应用包括STL算法回调、自定义排序和多条件比较。无捕获的Lambda可隐式转换为函数指针,每个Lambda表达式都有唯一类型。通过闭包机制,Lambda可高效实现回调函数、算法策略等场景,是函数式编程

2025-10-28 11:41:46 402

原创 黄金分割搜索算法(Golden Section Search)实现原理深度解析

黄金分割法是一种基于黄金比例φ=(1+√5)/2的单峰函数优化算法。通过将搜索区间[a,b]按φ比例分割为c、d两点,比较f(c)和f(d)的值,每次迭代可缩减约38.2%的区间,保留包含极值点的子区间。该算法只需每次迭代计算一次新函数值,具有线性收敛速度,比二分法更高效。文中给出了完整的C++实现,包括边界检查、函数值缓存等优化,并验证了算法在抛物线函数上的有效性。

2025-10-27 17:12:22 622

原创 C++ try-catch 异常处理机制详解

C++异常处理机制通过try-catch-throw结构实现程序错误控制。try块监控可能出错的代码,throw抛出异常,catch捕获并处理特定类型异常。关键特性包括:异常传播机制、栈展开(自动调用析构函数)、自定义异常类继承体系(推荐继承std::exception)以及RAII资源管理模式。异常处理使错误逻辑与业务逻辑分离,但需注意性能开销(比正常返回慢10-100倍)。现代C++建议优先使用标准异常类型,多线程避免异常跨线程传播,C++17可用std::optional替代部分异常场景。

2025-10-17 17:31:50 965

原创 五次多项式平滑过渡曲线的原理与C++实现

本文阐述了在路径规划中使用五次多项式生成平滑过渡段的数学原理与实现方法。五次多项式能同时满足位置、方向(一阶导)和曲率(二阶导)的连续性要求。通过建立6个边界条件方程(起止点的位置、方向和曲率)求解多项式系数,并转化为矩阵形式利用Eigen库求解。文中提供了完整的C++实现,包括状态结构体定义、多项式类实现及曲率计算功能。该方案通过约束二阶导数保证曲率连续,可灵活调整过渡段长度,适用于机器人路径规划等需要平滑轨迹的场景。代码示例展示了从路径A到路径B的过渡曲线生成过程。

2025-09-28 10:21:46 387

原创 路径平滑连接方法

摘要:针对路径过渡段横向偏差导致的方向盘抖动问题,提出采用几何曲线连接与控制策略协同的解决方案。路径平滑方面,推荐使用五次多项式或Clothoid曲线实现位置、方向和曲率的连续过渡;控制算法上建议采用带转向角变化率约束的MPC或改进型纯跟踪控制。关键参数包括过渡段长度(车速×2-3秒)、最大曲率变化率(<0.1m⁻¹/m)及转向速率限制(<15°/s)。通过离线路径预处理(曲率检查)与在线控制(结合滤波和速率限制)的协同优化,可有效抑制抖动。典型应用表明,该方案在高速公路匝道和城市转向等场景中能兼顾跟踪精度

2025-09-26 17:08:50 1154

原创 低通滤波器、中值滤波器、均值滤波器详细对比分析

本文比较了三种常见滤波器的核心原理与适用场景:1. 均值滤波器(线性空域):通过邻域平均消除高斯噪声,但会导致边缘模糊和噪声扩散;2. 中值滤波器(非线性空域):基于排序剔除椒盐噪声,边缘保护能力强但对高斯噪声效果差;3. 低通滤波器(频域):通过抑制高频成分处理高斯噪声,但会模糊边缘。三者本质差异在于处理维度(频域/空域)和计算逻辑(线性/非线性)。选择建议:椒盐噪声用中值滤波,高斯噪声优选低通滤波(或均值滤波),需权衡边缘保护与计算效率时可考虑改进型滤波器。

2025-09-26 10:00:38 1161

原创 中值滤波器原理及C++实现

中值滤波器是一种非线性信号处理技术,通过滑动窗口内像素值的中值替代中心像素值,有效抑制噪声。其核心原理包括:1)基于顺序统计理论,对极端值不敏感;2)窗口大小通常为奇数以确保唯一中值;3)能有效消除椒盐噪声等脉冲噪声同时保留边缘信息。实现方式包含一维信号处理和二维图像处理,采用边界填充策略避免数组越界。相比均值滤波和高斯滤波,中值滤波在去除脉冲噪声和保持边缘方面具有优势,但计算复杂度较高。该技术广泛应用于传感器数据去噪、医学图像处理等领域。

2025-09-25 17:32:31 653

原创 C++ std::list 原理与使用详解

摘要 std::list是C++ STL中的双向链表,通过指针链接非连续存储的节点,支持O(1)复杂度的插入/删除操作,但随机访问需O(n)时间。其迭代器稳定(仅删除元素时失效),提供高效专属操作如splice(转移元素)、merge(合并有序链表)、sort和reverse。与vector和deque相比,list适合频繁中间修改的场景,但内存开销较大且不支持随机访问。典型应用包括链表结构、日志系统等需动态增删的场景。

2025-09-17 17:32:20 760

原创 boost::circular_buffer的使用方法简介

本文主要讲解boost::circular_buffer 的使用方法。

2025-09-10 16:18:17 930

原创 C++互斥锁使用详解与案例分析

本文介绍了C++多线程编程中互斥锁的使用原理与方法。互斥锁通过加锁-解锁机制解决多线程环境下的数据竞争问题,确保共享资源的原子访问。重点讲解了std::mutex的基本用法以及RAII风格的std::lock_guard和std::unique_lock包装器,前者自动管理锁生命周期,后者提供更灵活的锁控制。文章通过计数器案例演示了互斥锁的实际应用,并分析了死锁风险及解决方案(如固定锁顺序、使用std::lock函数)。最后指出性能优化方向,建议缩小临界区范围或使用原子操作替代锁。

2025-09-09 11:44:01 951

原创 C++ std::sort的应用总结

本文主要总结std::sort的基本使用。

2025-08-20 17:11:15 948

原创 车辆零偏角和死区的定义及区别详解

本文主要总结了零偏角和死区的定义以及进行自标定的意义。

2025-08-07 09:47:58 1123

原创 C++ 枚举enum的使用详细总结

本文主要总结了枚举的基本使用和原理,以及对强类型枚举使用、类型转换规则进行总结。

2025-07-29 17:53:11 1661

原创 C++ 之类的构造、析构、初始化列表使用注意事项分析总结

本文主要总结类的构造、析构、和初始化列表工程应用中的易错事项。

2025-07-17 16:30:47 924

原创 驱动系统故障等级定义及诊断标准

本文主要总结驱动力故障等级的界定。

2025-07-15 16:25:48 1180

原创 C++ unordered_map使用与原理详解

详细讲解C++ unordered_map使用与原理详解,并比较unordered_map和map 的区别

2025-07-09 14:43:38 1043

原创 制动系统故障定义与诊断标准

此分级诊断框架符合汽车功能安全标准,可集成至车辆电子稳定系统(ESC)或专用制动控制单元中,实现毫秒级故障检测与分级响应。

2025-07-04 16:41:02 1541

原创 C++ switch 语句使用方法

C++中的switch语句是一种多分支选择结构,通过表达式匹配case标签执行对应代码块。基本语法包括switch(expression)、case常量、break和default子句。break用于防止case穿透,default处理未匹配情况。示例展示了根据day变量输出星期几的用法。switch可嵌套使用,外层和内层分别匹配不同变量值。此外,switch可与if-else嵌套,在case中进一步条件判断。当case中使用return语句时,可省略break,因为return会直接终止函数执行。关键点包

2025-07-03 17:55:52 1183

原创 汽车行驶阻力与加速度计算推导

本文推导完整描述了车辆纵向动力学模型,可用于高级驾驶辅助系统(ADAS)、车辆控制系统和故障诊断系统的开发。实际应用中需根据具体车辆参数进行校准,特别是空气阻力系数和滚动阻力系数的确定对模型精度至关重要。

2025-07-02 10:11:30 1944

原创 梯度下降路径平滑算法详解(C++)

本问主要基于梯度下降平滑算法进行总结分析。

2025-06-19 14:40:31 2649

原创 Hybrid A* 算法原理及实现步骤(C++)

本文主要讲解Hybrid A* 算法原理及实现步骤。

2025-06-19 14:16:11 3153

原创 A*算法实现原理以及实现步骤(C++)

本文针对A*算法原理以及实现步骤进行详细的总结。

2025-06-05 16:58:20 1657

原创 ubuntu 常用操作指令(与域控制器交互相关)

本文详细总结了ubuntu常用操作指令,主要是针对与域控制器交互使用指令总结。

2025-06-04 17:50:32 1222

原创 C++ 之多线程和互斥锁原理和使用详解

本文主要针对多线程和互斥锁进行总结。

2025-05-30 17:32:43 1233

原创 C++ 之局部变量隐藏成员变量问题分析

本文主要针对局部变量隐藏成员变量问题分析。

2025-05-29 14:40:31 556

原创 C++ 智能指针使用方法

本文主要针对智能指针的使用是原理进行总结。

2025-05-13 18:28:53 1292

原创 PID速度控制之积分饱和处理时机对控制结果的影响

PID速度控制之积分饱和处理时机对控制结果的影响。

2025-05-08 16:25:52 1121

原创 不同控制算法(PID、LQR、MPC等)适合选用的坐标系类型

不同控制算法(PID、LQR、MPC等)适合选用的坐标系类型。

2025-04-02 16:26:40 959

原创 关于笛卡尔坐标系、车体坐标系、Frenet坐标系三者的区别以及使用场景

关于笛卡尔坐标系、车体坐标系、Frenet坐标系三者的区别以及使用场景

2025-04-02 16:11:05 1321

原创 C++ 之字节取反

本文主要演示字节的取反和逻辑非操作。

2025-03-07 14:59:49 589

原创 关于巴特沃斯滤波器和均值滤波器的各自适用处理信号类型及区别

关于巴特沃斯滤波器和均值滤波器的各自适用处理信号类型及区别总结

2025-03-05 15:00:34 1094

原创 线性回归计算斜率原理及C++实现

线性回归计算斜率原理及C++实现

2025-02-10 16:08:25 2347

原创 C++ 静态变量static的使用方法

本文主要总结静态变量的使用方法。

2025-01-23 08:59:40 2144

原创 基于动力学的MPC控制器设计盲点解析

基于动力学的MPC横向控制算法回顾总结。

2024-12-31 18:06:23 1925 1

原创 C++ 数据结构之--队列Queue

主要回顾总结队列queue的基本使用方法。

2024-12-25 15:41:50 1079

原创 boost/date_time/posix_time及chrono库高精度计时详细总结

本文主要介绍了及时器相关的time_duration、ptime、time_period、ticks、microsec_clock::local_time()、not_a_date_time、等的用法总结。

2024-11-01 15:38:43 1101

原创 C++ 之Eigen库常用法回顾总结

Eigen库是C++中用于线性代数运算的高性能模板库,支持矩阵、向量和数值计算。核心功能包括:矩阵定义与初始化(静态/动态矩阵)、基础运算(加减乘除、转置、逆矩阵等)、特殊矩阵生成(单位阵、零矩阵等)。向量操作支持多种初始化方式和运算。解线性方程组推荐使用QR分解法(colPivHouseholderQr().solve())而非直接求逆,因其数值稳定性更高。Eigen库通过头文件包含即可使用,适合处理各类线性代数问题,尤其适合需要高性能计算的场景。

2024-10-31 11:41:37 3917

原创 均值滤波算法及实现

均值滤波器是一种基础图像处理技术,通过计算邻域像素平均值来平滑图像并抑制噪声。其核心原理是使用滑动窗口(如3x3、5x5)对图像进行局部平均处理,具有计算简单、处理速度快的特点,适用于高斯噪声但对椒盐噪声效果较差。存在边缘模糊和振铃效应等局限,可通过加权均值和自适应滤波优化。实际应用需根据噪声类型选择参数,窗口越大平滑效果越强但细节损失越多。文末提供了C语言实现的加权均值滤波代码示例,展示了权重系数对处理结果的影响。该技术在图像预处理、医学影像等领域有广泛应用。

2024-07-18 17:23:20 2445

基于运动学的MPC控制盲点解析

matlab语言实现基于运动学的MPC控制算法

2024-05-08

读取多个一列.csv文件并画出每列数据进行对比

所需读取数据

2024-03-14

C++ 读&写一维csv文件

曲率一维.csv文件数据

2024-03-13

Python读取.csv/.txt文件并画图

读取result.txt文本数据。

2024-03-07

常见控制算法和规划算法c++&&python代码实现

常见控制算法和规划算法c++&&python代码实现

2024-03-04

常见控制算法的c++/python版本代码实现

主要包括:pp pid stanley lqr mpc 的c++版和python版代码实现

2024-02-26

gitlens gitgraph githistory

vscode git插件使用

2023-03-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除