logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

从零搭建自动驾驶中间件(一):为什么自动驾驶需要自研中间件

本文由一位拥有3年自动驾驶行业经验的工程师分享中间件开发心得。文章对比了ROS2、CyberRT和自研中间件的优劣,指出自动驾驶系统对确定性、低延迟的特殊要求。作者通过具体场景分析(如120km/h时速下的刹车响应)说明传统中间件的不足,详细拆解了自动驾驶中间件的核心模块设计,包括通信层、调度层和运维层等关键组件。文章特别强调零序列化、零侵入和可观测性三大设计原则,分享了HyperFlow中间件的

#自动驾驶#中间件#人工智能
从零搭建自动驾驶中间件(五):状态机、诊断与运维——让系统“可观测、可控制“

本文聚焦让自动驾驶系统从"能跑"到"可靠"的三大能力:层次化状态机(HFSM)支持事件触发、超时自动转换、muParser条件表达式守卫三种转换方式,并通过共享内存输出sys.state与Trigger通知深度集成框架;诊断系统参考AUTOSAR DTC管理,通过DiagComponent上报故障/恢复、稳定性判断防误报、DTC位图对接MCU;进程管理提供ProcessManager自动启停重启、

#自动驾驶#中间件
从零搭建自动驾驶中间件(二):共享内存零拷贝通信的工程实践

本文深入拆解自动驾驶中间件通信层的设计与实现。以点云、图像等高频大数据场景的拷贝开销为切入点,阐述共享内存零拷贝的必要性。核心介绍了 DataQueue 环形缓冲区设计——一写多读、frameid 帧号追踪、READ_LATEST/READ_NEXT 两种读取模式,以及零拷贝读取的陷阱(异步访问、多写者冲突)。跨进程通信采用 shm_open 共享内存文件 + POSIX 实时信号通知 + Tri

#自动驾驶#中间件#人工智能
从零搭建自动驾驶中间件(四):数据录制与回灌——算法调试的核心基础设施

本文聚焦自动驾驶中间件的数据录制与回灌系统,从实际调试场景出发阐述其"灵魂级"价值——精确复现bug、离线调参、回归测试。剖析三大核心挑战:时序控制、时间源切换、零侵入。HyperFlow 采用 Snapshot 快照驱动回灌方案,在模块的 Read/Write 操作中透明拦截记录帧号与读写模式,形成"节拍器"驱动回灌节奏;通过 frameid 精确匹配而非时间戳,保证数据一致性;通过 sys.t

#自动驾驶#中间件#算法
基于 WebRTC 打造视频会议系统(三):直接驾驭 MediaEngine — 绕过 PeerConnection 的音视频通道构建

WebRTC 最有价值的并非 PeerConnection,而是其背后精心调优的 MediaEngine。本文详解如何绕过 PeerConnection 的 SDP 协商模型,直接使用 ChannelManager 和 MediaEngine 构建自定义音视频通道。从创建 MediaEngine、理解 ChannelManager 职责、自定义 BaseChannel 实现 MediaChanne

#webrtc#音视频#实时音视频
基于 WebRTC 打造视频会议系统(一):架构总览与设计思路

本文介绍了一种基于WebRTC底层能力构建轻量级SFU视频会议系统的创新方法。通过摒弃标准PeerConnection+SDP协商模式,保留WebRTC核心的MediaEngine(包含编解码器、音视频处理等关键功能),同时采用KCP over UDP替代ICE/DTLS/SRTP传输方案,显著降低了系统复杂度和延迟。系统采用Publish/Subscribe模型替代SDP协商,实现了按需推拉流控

#webrtc#音视频#实时音视频
从零搭建自动驾驶中间件(三):事件驱动与协程调度的工程实践

本文围绕自动驾驶中间件的调度层展开,从操作系统视角分析三种调度模型(一线程一模、线程池、协程)的优劣,阐述选择 marl 协程库的理由——M:N调度、轻量切换(~100ns)、跨平台、零依赖。详解 HyperFlow 的调度架构:每个 Module 运行在 marl Fiber 中,支持定时、事件驱动、混合三种模式,核心运行循环通过 marl::Event 实现挂起/唤醒。深入拆解 NotifyT

#自动驾驶#中间件#人工智能
从零搭建自动驾驶中间件(三):事件驱动与协程调度的工程实践

本文围绕自动驾驶中间件的调度层展开,从操作系统视角分析三种调度模型(一线程一模、线程池、协程)的优劣,阐述选择 marl 协程库的理由——M:N调度、轻量切换(~100ns)、跨平台、零依赖。详解 HyperFlow 的调度架构:每个 Module 运行在 marl Fiber 中,支持定时、事件驱动、混合三种模式,核心运行循环通过 marl::Event 实现挂起/唤醒。深入拆解 NotifyT

#自动驾驶#中间件#人工智能
CvEditor 节点开发实战:从写一个模糊节点到 YOLO 检测节点

上一篇聊了 CvEditor 的架构设计,这篇来聊更实际的问题:怎么写一个节点?从一个最简单的模糊节点开始,逐步过渡到需要加载模型的 YOLO 检测节点和带状态的跟踪节点。每个示例都附完整代码和我的踩坑经验。

#opencv#c++#计算机视觉
到底了