自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 建造者模式详解及其在自动驾驶场景的应用举例(以C++代码实现)

建造者模式(Builder Pattern)是一种创建型设计模式,用于分步构造复杂对象。该模式将对象构建过程与其表示分离,支持通过相同构建过程生成不同表现形式,特别适合需要灵活配置的自动驾驶车辆系统搭建场景。核心价值分步构建复杂配置对象隔离构建过程与最终表示支持多种配置变体生成适用场景自动驾驶车辆多版本配置管理测试场景参数组合生成动态系统参数包构建本实现展示了建造者模式在自动驾驶配置管理中的典型应用,通过将复杂配置对象的构建过程模块化,为创建灵活可扩展的自动驾驶系统提供了可靠的架构支持。

2025-04-22 21:42:36 679

原创 抽象工厂模式及其在自动驾驶中的应用举例(c++代码实现)

抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,用于封装一组具有共同主题的独立对象创建过程。该模式通过提供统一接口创建相关对象家族,而无需指定具体实现类,特别适合需要保证系统组件兼容性的自动驾驶硬件平台适配场景。核心价值封装相关对象创建过程确保产品家族兼容性提高系统可配置性适用场景自动驾驶多硬件平台适配传感器套件兼容性保障仿真系统与真实系统切换。

2025-04-20 17:55:40 548

原创 模板方法模式详解及在自动驾驶中的代码示例(以c++代码实现)

模板方法模式(Template Method Pattern)是一种行为型设计模式,通过定义算法框架并将具体步骤延迟到子类实现,实现代码复用与流程标准化。该模式尤其适用于需要保持算法结构稳定但允许步骤灵活变化的场景,是自动驾驶系统模块化设计的核心模式之一。核心价值确保算法结构稳定,允许步骤灵活变化提升代码复用率,降低维护成本强制实施关键处理流程,提高系统可靠性适用场景自动驾驶多传感器数据处理标准化决策控制流程系统诊断与自检流程。

2025-04-19 20:09:08 319

原创 23种设计模式全解析及其在自动驾驶开发中的应用

解耦对象创建过程,提升系统灵活性:优化类与对象的结构组合:优化对象间通信与职责分配。

2025-04-19 15:50:40 1143

原创 责任链模式详解及在自动驾驶场景代码示例(c++代码实现)

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,允许将多个处理对象连接成链,请求沿链传递直到被处理。该模式特别适合需要多级数据处理的自动驾驶感知系统,可实现处理流程的动态配置和灵活扩展。核心价值解耦请求发送者与接收者动态配置处理流程支持分布式处理逻辑适用场景多级数据处理的感知系统需要动态调整处理流程的自动驾驶平台需要渐进式数据增强的机器学习流水线。

2025-04-19 15:39:31 342

原创 原型模式详解及在自动驾驶场景代码示例(c++代码实现)

原型模式(Prototype Pattern)是一种创建型设计模式,通过克隆已有对象来创建新对象,避免重复执行昂贵的初始化操作。该模式特别适用于需要高效创建相似对象的场景,是自动驾驶感知系统中处理大量重复数据结构的理想选择。核心价值通过对象克隆替代昂贵的新建操作保持新对象与原型的一致性支持动态运行时对象类型扩展适用场景需要高效创建大量相似障碍物实例的感知系统需要保存和恢复传感器数据快照的场景支持动态加载新障碍物类型的自动驾驶平台。

2025-04-18 23:04:11 836

原创 工厂方法模式详解及在自动驾驶场景代码示例(c++代码实现)

工厂方法模式(Factory Method Pattern)是一种创建型设计模式,通过定义抽象工厂接口将对象创建过程延迟到子类实现,实现对象创建与使用的解耦。该模式特别适合需要动态扩展产品类型的场景。核心价值将对象创建与使用分离,符合单一职责原则提高系统可扩展性,新增产品类型无需修改已有代码适用场景需要支持多类型传感器的自动驾驶系统需要灵活替换不同品牌传感器的车规平台需要统一管理传感器生命周期的中间件。

2025-04-18 22:57:32 696

原创 23种设计模式全面解析

设计模式是解决软件设计中常见问题的经典方案。

2025-04-18 22:48:04 1026

原创 观察者模式详解与C++实现

观察者模式(Observer Pattern)是一种行为型设计模式,定义了对象间的一对多依赖关系。当一个对象(被观察者/主题)状态改变时,所有依赖它的对象(观察者)都会自动收到通知并更新。该模式广泛应用于事件处理系统、GUI组件交互和实时数据监控等场景。观察者模式通过建立高效的发布-订阅机制,有效降低了系统组件间的耦合度。在实际应用中需要根据具体需求选择推/拉模型,并注意内存管理和线程安全等问题。

2025-04-18 22:34:25 909

原创 C++类型系统深度解析:int vs int32_t的底层差异

确保在16位int系统(如嵌入式设备)与64位int系统(如服务器)间数据一致。,但C++标准允许实现定义是否支持负零(实际所有现代编译器均用二进制补码)。在非32位友好的架构(如某些DSP)上,可能需要额外指令处理32位数据。需要精确控制位域时(如加密算法、硬件寄存器映射)。仅在目标平台原生支持32位有符号整数时可用(通过。网络传输、二进制文件存储要求精确位宽。结论:现代编译器对二者优化能力相同。头文件提供),否则编译器不定义。看似都是32位整型,但在。

2025-04-16 13:10:02 1331

原创 程序员老爸教4岁大宝学习scratch计划制订 [第一周]

娃儿今年4岁了,作为程序员的老爸,不让娃继承自己的衣钵怎么能行(其实一点都想让他搞编程,不过培养一下逻辑思维,应该也没毛病),上兴趣班又太贵,怎么办,程序员老爸卷起袖子自己上。通过将编程思维拆解为**“听指令-做动作-讲故事”**,即使极少接触屏幕,孩子也能在游戏中培养逻辑基础,为未来正式学习埋下兴趣种子 🌱。计划并不完善,欢迎有经验的宝爸宝妈给提建议改进,等改好了就开始实施,我也会记录孩子的学习过程,反馈给各位老板们😊😊。:通过“指令游戏”理解“顺序”“循环”,不涉及复杂操作。”,而非“应该点哪个积

2025-04-16 07:49:26 305

原创 使用deepseek时有哪些高阶技巧

循环优化提示词,建立个人常用指令库。重要任务建议交叉验证关键信息,并配合专业工具进行最终审核。[测试-反馈-迭代]

2025-04-15 08:43:28 416

原创 使用Python分析股票并制定买入策略

数据获取→ 2.策略设计→ 3.回测验证→ 4.实盘监控重要提醒:股市有风险,代码生成的信号需人工复核,建议先用模拟盘测试!

2025-04-15 08:02:44 401

原创 【大厂面试必备】C++虚函数底层机制:从内存模型到性能损耗,一篇彻底搞懂

C++智能指针源码解剖:从RAII到循环引用检测》——点击关注不迷路!“为什么虚函数会降低性能?”“虚函数表存在内存的哪个区?带你直击虚函数本质,解决90%面试官的连环追问🔥。

2025-04-14 20:44:25 243

原创 C++对象池设计:从高频`new/delete`到性能飞跃的工业级解决方案

当你在高频交易系统中用对象池将订单处理耗时从微秒级降到纳秒级,就会明白——

2025-04-14 20:16:09 983

原创 C++多线程编程时的伪共享问题及其定位和解决

伪共享是指多个线程同时修改位于同一缓存行(Cache Line)的不同变量时,由于缓存一致性协议的影响,导致缓存行在不同核心之间频繁无效化和重新加载,从而引起性能下降的现象。为了更好地理解伪共享,需要先了解缓存行的概念。现代计算机处理器通常会将主存中的数据分成固定大小的块(一般为 64 字节)加载到高速缓存(Cache)中,这个固定大小的块就是缓存行。缓存一致性协议(如 MESI 协议)用于保证多个核心之间的缓存数据一致性。当一个核心修改了某个缓存行中的数据时,其他核心中缓存该行数据的副本会被标记为无效。

2025-04-13 22:37:35 557

原创 理想汽车MindVLA自动驾驶架构核心技术梳理

MindVLA通过。

2025-04-13 21:56:15 1414 1

原创 RT-2论文深度解读:视觉-语言-动作统一模型的机器人泛化革命

RT-2证明了大规模预训练模型向物理世界的迁移可行性,为通用机器人学习开辟了新范式。其核心价值不仅在于技术突破,更在于揭示了"具身智能"可能的技术演进路径——通过语言这一通用接口,实现人类与机器人的自然协作。:利用互联网规模的视觉语言预训练知识,实现机器人技能的零样本(zero-shot)迁移。指令:“把可乐递给饥饿的人” → 成功定位可乐瓶并递向人体姿态。

2025-04-13 21:44:42 947

原创 2025年最值得开发者关注的十大技术趋势

作为一名开发者,你是否常常感到迷茫?面对日新月异的技术浪潮,如何才能抓住机遇,提升自己的竞争力?今天,我将为你分享2025年最值得开发者关注的十大技术趋势,并结合实战案例,帮助你更好地理解和应用这些技术。如果你觉得这篇文章对你有帮助,别忘了点赞、评论和关注我哦!• 自然语言处理的突破:大语言模型(如DeepSeekR1)正在改变我们的生活。例如,某电商公司利用自然语言处理技术优化了智能客服系统,客户满意度提升了30%。开发者可以学习如何利用这些模型来提升自己的项目。• 计算机视觉的拓展:在安防监控、自

2025-04-13 19:11:28 433

原创 端到端VLA模型架构:让机器“知行合一”的工程实践

尽管面临数据与解释性挑战,但其在复杂任务中的潜力已初见端倪——从Google RT-2的零样本泛化能力,到PaLM-E的多任务统一建模,端到端架构正成为具身智能的核心载体。未来的机器人将不再依赖繁琐的手工编程,而是像人类一样,通过“看-想-动”的连贯过程,自主适应瞬息万变的物理世界。这种“流水线”模式看似分工明确,却存在致命缺陷——各模块间的信息损失、误差累积和延迟叠加,导致系统难以应对动态复杂任务(如“避开移动障碍物并抓取摇晃的杯子”)。:根据图像和指令“向左/右移动方块”,控制机械臂末端水平移动。

2025-04-13 16:24:16 1722

原创 生成与强化学习:赋予VLA系统物理行动能力

动作生成与强化学习是VLA系统从“纸上谈兵”走向“真枪实弹”的关键。未来,随着大模型与强化学习的深度融合,VLA系统将不仅限于执行预设任务,而是能够像人类一样,在动态环境中自主学习、灵活应变——这才是真正意义上的具身智能。当机器能够“看懂”图像、“听懂”指令时,一个更根本的挑战浮现:如何让它们像人类一样,将认知转化为精准的物理动作?本文将从机器人运动建模、强化学习框架、仿真训练环境三个维度展开,解析VLA系统中的动作生成原理,并通过机械臂抓取任务的代码实战,揭示如何让机器在物理世界中“动起来”。

2025-04-13 16:05:31 1044

原创 多模态表示学习:构建VLA技术的基石

引言:从“单感官”到“多感官”的智能进化人类婴儿通过眼睛观察、耳朵聆听、双手触摸来认识世界——这种多感官协同的认知方式,正是智能的本质特征。而在人工智能领域,要让机器像人类一样理解并操作物理世界,必须突破单一模态的局限,构建视觉、语言、动作的统一语义空间。这正是多模态表示学习的核心目标:让不同模态的数据(如图像、文本、动作)在共享的数学空间中“对话”,为VLA技术奠定基础。

2025-04-13 10:50:01 689

原创 VLA技术:开启具身智能时代的钥匙

视觉-语言-动作(Vision-Language-Action, VLA)技术的核心使命:赋予智能体“眼睛”“嘴巴”和“手脚”,使其在物理世界中完成复杂任务。随着多模态大模型与机器人技术的深度融合,我们或将见证一场新的智能革命——未来的家庭机器人不仅能听懂指令,还能主动思考:“主人可能想喝咖啡,我现在应该去清洁咖啡机。从家庭机器人整理房间到手术器械的精准操控,从自动驾驶汽车理解语音指令到工业机械臂自主装配零件,VLA技术正在重新定义人工智能的边界。

2025-04-13 10:46:21 1040

原创 Eigen库的core模块源码阅读笔记

是库的核心,定义了所有基础数据结构(如矩阵、向量、数组)和运算符重载,并实现了高效的表达式模板(Expression Templates)技术。通过深入阅读 Eigen Core 模块源码,可以深刻理解其高效性的设计根源,并为开发类似数值计算库提供重要借鉴。是一个开源的C++模板库,专注于线性代数运算(矩阵、向量、数值求解等)。可能导致表达式模板延迟求值失效(需显式调用。对大矩阵手动分块以利用缓存局部性。

2025-04-12 20:13:03 942

原创 什么是VLA

VLA技术旨在通过融合视觉输入、语言理解和动作生成,赋予智能体(如机器人、自动驾驶系统)在真实世界中完成复杂任务的能力。VLA技术正在推动人工智能从“数字世界”走向“物理世界”,其发展将深刻改变机器人、自动驾驶、智能家居等领域。尽管面临数据、对齐、安全等挑战,随着多模态大模型与强化学习的深度融合,VLA有望在未来十年内实现从实验室到大规模商用的跨越,最终实现真正的具身通用智能。本文从技术背景、核心方法、应用场景、挑战与未来方向四个维度,系统梳理VLA技术的研究进展,并展望其发展方向。

2025-04-12 20:03:45 1145

原创 模型开发中的微调是干什么

是指利用预训练模型(Pre-trained Model)的参数作为初始值,在特定任务或数据集上进一步调整模型参数的过程。它是迁移学习(Transfer Learning)的核心技术之一,目的是通过少量数据和计算资源,使模型适应新的任务或领域。使用在大规模通用数据集(如ImageNet、文本语料库)上训练好的模型(如BERT、ResNet、GPT等),这些模型已具备对通用特征的提取能力。通过微调,模型能够快速适应新任务,同时保留预训练中学到的通用知识,是实际应用中提升效率的关键技术。

2025-04-12 19:54:22 467

原创 pytorch dataloader 中collate_fn是什么

collate_fn(collate function)是在 PyTorch 中 DataLoader 中使用的一个参数,用于自定义数据加载和批处理的方式。在训练神经网络时,通常会将数据划分成小批量进行处理,collate_fn 就是用来指定如何将单个样本组合成小批量的。collate_fn 接受一个批量的样本列表作为输入,并将它们组合成一个批量的数据。在自定义 collate_fn 时,可以根据数据的不同特点和需求,灵活地进行处理。以下是一个简单的示例,说明了如何定义一个 collate_fn:im

2024-02-08 18:05:22 2781 1

原创 点云transformer算法: FlatFormer 论文阅读笔记

由于普通的MHSA核心无法有效支持可变序列长度,SST将大小相似的窗口分批处理,并在每批中将所有窗口填充到批中的最大组大小(即填充到相同的长度)。更糟糕的是,将点分配到相等的窗口还引入了显著的延迟开销:在Waymo上,每个场景需要18毫秒,甚至比CenterPoint模型的总运行时间还要慢。例如,在VoTr模型中,为Waymo上的单个场景准备邻居的步骤需要22毫秒(即总运行时间的36%),这已经比整个CenterPoint模型更慢。K2*D),N是点数,D是每个点的特征通道数,K是一个点附近点点数。

2024-02-05 14:15:37 2154 1

原创 openpcdet中的优化器

优化器用于对梯度、学习率等进行调整下面来看每个配置的具体作用和含义:按照配置的功能,可以分为以下几组:首先是和BATCH_SIZE_PER_GPU: 4 # 表示每个GPU上一次迭代的batch size 是4NUM_EPOCHS: 10 # 表示一共训练40个epoch然后是OPTIMIZER: adam_onecycle # 表示使用的优化器是adam_onecycle。

2024-02-05 10:58:20 1050

原创 【Apollo CyberRT】源码分析之 “component” 模块

与组件类不同,定时组件类在 Initialize() 中没有创建任何的 Reader 读者,也没有搞出调度器、协程工厂、创建任务等一系列复杂的操作,任务全部交给时间轮处理。Component类是各个组件的基类实现,组件类似与ros里的node,每个算法模块都可以自己实现为一个Component的基类,从而加入到CyberRT的框架中。定时调度模块没有绑定消息收发,需要用户自己创建reader来读取消息,如果需要读取多个消息,可以创建多个reader。定时组件类与组件类有所不同,它比组件类多了定时器。

2024-01-28 22:06:51 1103

原创 C++中, barrier的使用

在 C++20 中引入了类(C++17中是),它是一种同步原语,用于在线程间同步和协调。可以在一组线程中设置一个栅栏(barrier),使得这些线程在执行到栅栏之前必须等待所有其他线程都到达栅栏,然后一起继续执行。这种行为对于一些并行算法或任务分解中的同步非常有用。以下是在这个示例中,我们首先创建了一个对象bar,并指定了需要等待的线程数量。然后,我们创建了多个线程,并将bar的地址作为参数传递给每个线程的线程函数。在线程函数中,每个线程都会执行一些任务,并在执行完任务后调用函数等待其他线程到达栅栏。

2024-01-28 21:17:24 1035

原创 C++中,latch的使用

特别适用于那些需要等待多个事务完成后才能继续执行的场景,比如并行算法的不同部分需要在继续之前同步完成状态,或者在启动时,程序需要等待多个资源加载完成后才能继续。),它提供了一个同步原语,使得一组线程可以等待直到某个事件被一定数量的线程观察到后才能继续执行。这是通过一个计数器来实现的,该计数器在。在这个例子中,主线程创建并启动了5个工作线程,每个工作线程在完成其任务后都会通过。的计数减至0,这时它继续执行。是单次使用的,一旦计数器达到0,就不能再重置计数器的值。会将计数器减1,直到计数器为0,此时所有调用。

2024-01-28 20:57:18 656

原创 C++中,函数签名是什么意思?

C++编译器通常会对函数名称进行修饰(或称之为名称改编或名称混淆),以包含更多有关函数的信息,如函数参数类型等,这是因为C++支持函数重载与多态。在C++中,函数签名是用来唯一标识函数的一组属性。函数签名允许编译器在函数重载的情况下正确识别和调用相应的函数。在函数重载时,编译器使用函数签名来判断哪一个函数被调用;如果两个函数除了返回类型外其他都相同,编译器会报错,因为它不能仅凭返回类型来区分这两个函数。以上就是关于C++中函数签名的概念以及其在函数重载和区分中的作用。当函数是类的成员函数时,

2024-01-28 18:19:19 787

原创 Linux进程间通信方法和代码示例

Linux进程间通信(IPC, Inter-Process Communication)包括了多种不同的技术,例如管道(pipe)、信号(signal)、共享内存(shared memory)、消息队列(message queues)、信号量(semaphores)以及套接字(sockets)等。管道是最基本的IPC机制之一,这里指匿名管道,允许一个进程和另一个进程之间的单向数据流。套接字允许在同一台计算机上的进程或不同计算机上的进程之间进行通信。共享内存允许两个或两个以上的进程共享一个给定的存储区。

2024-01-28 17:54:23 467

原创 std::shared_mutex的概念及其使用示例

是C++17引入的一种同步原语,用于提升在多线程环境下对共享资源的访问效率。与传统的互斥锁(如std::mutex)不同,允许多个线程以只读模式共享对资源的访问,但写入操作必须独占资源,防止同时有其他线程对共享资源进行读取或写入。这允许了更高的并行性,特别适用于读操作远多于写操作的场景。

2024-01-28 09:46:51 1364

原创 为什么在使用类成员函数指针时,需要 &Myclass::myfunc ,而不是直接 Myclass::myfunc

成员函数指针类型可以用来声明变量,指向相应的成员函数,并且可以通过变量来调用相应的成员函数。需要注意的是,使用成员函数指针时,需要提供一个对象来调用相应的成员函数。成员函数指针类型的语法比较复杂,它包含了类的类型信息,以及函数的参数列表和返回类型等信息。我们知道一个函数的函数名就是这个函数的地址,那么我们使用类成员函数的地址时,为什么还要在前面加上取地址符号。传递成员函数时,需要使用对象的引用或指针,并且在成员函数前面加上 & 符号以获取成员函数的地址。的类,拥有一个成员函数。是成员函数的返回类型,

2024-01-27 22:40:28 440

原创 通过手撕std::ref来了解其工作原理

函数的原理基本相同:它们都是接受一个引用并返回一个包装了该引用的对象。通过包装引用,我们可以将一个对象传递给函数对象或函数时,使函数对象或函数能够修改对象的值,而不是修改其副本。,用于保存传入的引用。它有一个构造函数,接受一个引用并保存它。它还重载了解引用运算符和成员访问运算符,使得。的原理可以通过一个简单的模板类来实现。对象,它接受一个引用并返回一个包装了该引用的。对象可以像引用一样被使用。类模板包含一个成员指针。假设有变量int a;, 而不是 int&

2024-01-27 22:17:05 540

原创 通过手撕std::bind来了解其工作原理

是 C++11 中的一个函数模板,用于创建一个可调用对象(函数对象或者函数指针)的绑定副本,其中一部分参数被固定为指定值,从而生成一个新的可调用对象。绑定副本可以作为一个新的可调用对象,可以直接调用,也可以传递给其他接受可调用对象的函数,从而实现部分参数固定的函数调用。时,会生成一个新的可调用对象,其中一部分参数被绑定为指定值,剩余的参数保留为占位符(placeholder)。在调用绑定副本时,传递给绑定副本的参数会替换掉占位符,从而形成最终的参数列表,并调用原始函数或函数对象。生成了一个新的可调用对象。

2024-01-27 21:45:06 939

原创 taskflow 源码阅读笔记-1

本文是commitid: b91df2c365c20fa4cb43951192f6939fbe876abf 版本的源码学习记录,其他版本可能会有不同简介可以参考代码仓库的README。

2024-01-26 22:42:40 2592

原创 C++实现并行和异步任务,DAG流水线的开源库-Taskflow

它提供了一个灵活而高效的框架,使得开发者能够方便地定义和执行任务流程,利用多核处理器的并行性能。Taskflow 支持任务之间的有向无环图(DAG)结构,通过图中的节点和边来表示任务和它们之间的依赖关系。这使得任务之间的关系更加清晰,有助于提高代码的可读性和维护性。以上代码创建了一个包含两个简单任务的任务流程图,并定义了任务之间的依赖关系。Taskflow 提供了一个强大而灵活的工具,适用于需要高效处理并行和异步任务的 C++ 项目。适用于有复杂任务依赖关系的场景,通过任务流程图清晰地表示任务之间的关系。

2024-01-26 22:23:35 2002

空空如也

空空如也

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

TA关注的人

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