解码智驾“神经中枢”:深入解析自动驾驶软件架构的分层奥秘

学习笔记10--自动驾驶汽车软件架构 本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。 此专栏是关于《自动驾驶汽车平台技术基础》书籍的笔记. 阅读详情

1. 智驾软件架构:不只是算力的游戏

大家好,我是老张,在智能驾驶这个行当里摸爬滚打了十来年。我发现一个挺有意思的现象,很多朋友聊起智驾,开口闭口就是“算力几百Tops”、“用了多少颗激光雷达”,好像堆料就能堆出好体验。这感觉就像评价一个厨师,只关心他厨房里有多少口锅、多少把刀,却从不看他如何统筹火候、调配食材、设计菜单。锅再好,炒出来的菜也可能难以下咽。

真正的智驾体验好不好,关键不在于硬件参数的纸面豪华,而在于背后的“软件架构”这个“总厨师长”是否高明。它决定了如何高效、安全地指挥所有传感器(眼睛耳朵)、计算芯片(大脑)和执行器(手脚)协同工作。今天,我就带大家抛开那些浮于表面的参数,来一次真正深入的“庖丁解牛”,看看这套被称为智驾“神经中枢”的软件架构,到底是怎么一层一层搭建起来,又是如何让车“聪明”起来的。理解了这套逻辑,你再去试驾或者看车企的宣传,就能一眼看出门道,知道哪些是扎实的技术,哪些只是华丽的噱头。

简单来说,智驾软件架构的核心任务,就是模拟一个经验丰富的老司机开车时的完整思维和行动链条。这个过程可以精炼为一条核心工作流:感知 -> 预测 -> 规划 -> 控制。咱们用个生活化的例子来理解:你开车下班回家。首先,你的眼睛(感知)要看清红绿灯、前车刹车灯、旁边车道有没有车加塞;接着,你的大脑(预测)会根据前车距离和速度,预判它会不会急刹,旁边那个探头探脑的电动车是不是想冲过来;然后,大脑(规划)会做出决策:是保持距离跟车,还是打灯变道;最后,你的手脚(控制)会精准地执行:轻点刹车、转动方向盘。智驾软件架构,就是为汽车打造这样一套自动化、高可靠性的“数字大脑和神经系统”,让它能7x24小时不知疲倦地执行这个流程。

2. 分层拆解:从“看见”到“执行”的精密流水线

现代成熟的智驾软件,几乎都采用模块化、分层的设计。这种设计思路清晰,责任明确,就像一家公司的组织架构。基层员工(感知层)负责收集和处理一线原始数据;中层经理(决策规划层)分析信息,制定行动方案;高层领导(控制层)则下达最终的执行命令。每一层都基于下一层提供的“报告”进行工作,层层递进。下面,我们就走进这家“公司”,看看每个部门具体在忙些什么。

2.1 感知层:汽车的“超级感官”,搞清“我在哪,周围有什么”

感知层是整个系统的信息入口,相当于人的眼睛、耳朵和本体感觉。它的任务是把摄像头、激光雷达、毫米波雷达等一堆传感器传来的原始、嘈杂的数据,转化成一幅车辆能够理解的、结构化的环境地图。这一步如果错了,后面全盘皆输,所谓“garbage in, garbage out”。

首先,是传感器驱动与同步。这活儿听起来基础,但至关重要。想象一下,你的左眼和右眼看到的东西如果有半秒的延迟,你肯定会头晕目眩。感知层首先要搞定各个传感器的硬件驱动,确保能从它们那里稳定地拿到数据。更关键的是时间同步,必须给所有传感器数据打上统一、精确到毫秒甚至微秒级的时间戳。只有这样,才能说“在T时刻,摄像头看到了这个,激光雷达

51c自动驾驶~合集57 多目标多头蒸馏模块:我们看到轨迹模仿学习之后的轨迹还过了其他的MLP,这就是其他头,它的目标也是不一样的,第一个是跟碰撞相关的,第二个是跟行驶区域相关的,第三个是跟舒适度相关的,也就是说不同的评判指标都有一个teacher,之前的模仿学习就是人类的teacher,那么这些teacher是怎么来的呢?本文作者提出的新的范式,就是规划模块是多模的输出,同时,目标也是多样性的,即不仅是GT的轨迹也同时引入了更多的正样本,由不同的专家给出的。还是那句话,小米汽车的成功,是小米价值观,小米模式,和小米方法论的成功。 阅读详情

相关推荐

VLA:具身智能的神经中枢与动作连续表征革命

视觉-语言-动作(VLA)是具身智能的核心范式,它突破传统多模态模型的‘感知-理解-输出’割裂结构,将视觉、语言与物理动作统一建模于可执行的连续表征空间。其技术本质在于以动作可行性为优化目标,依托SE(3)流形嵌入、具身交互轨迹蒸馏和任务级闭环鲁棒性评估,实现从语义理解到真实世界操作的能力跃迁。VLA不再追求跨模态对齐精度,而是强调动作的物理一致性、时序因果性与系统级鲁棒性,已成为机器人、智能座舱等落地场景的关键使能技术。当前工程焦点正从大模型堆叠转向轻量级分层执行、硬件无关表征与多源失败归因——这标志着A

weixin_30859423的博客 417

广义端到端与VLA:自动驾驶认知框架的范式升维

端到端自动驾驶正从‘图像到控制’的狭义映射,演进为融合视觉、语言与动作的广义智能体范式。其核心原理在于绕过人工定义的中间语义模块(如检测框、车道线),直接建立原始多模态输入到物理可执行动作的映射关系。这一转变不仅提升了长尾场景下的泛化能力与指令鲁棒性,更重构了系统可靠性边界与安全验证逻辑。在技术价值上,它缓解模块化架构固有的‘耦合诅咒’,推动感知-决策-控制在时空与表征层面的深度统一;典型应用场景涵盖语音驱动的施工区改道、无标线窄路会车、交警手势响应等强意图依赖任务。VLA与广义端到端共同标志着自动驾驶正从

cmff98425的博客 440

RL-Time Pruning:面向自动驾驶的实时大模型动态剪枝技术

大语言模型(LLM)在物理世界落地的核心瓶颈是推理延迟与功耗失控,尤其在自动驾驶等强实时场景中,传统离线剪枝无法应对动态变化的环境重要性。本文聚焦‘实时剪枝’这一关键技术路径,基于强化学习(RL)构建毫秒级响应的动态稀疏化机制,将模型计算负载与安全约束(如AEB≤120ms)、多模态场景表征(vad向量)深度耦合。其本质是让剪枝从静态压缩升级为闭环控制系统,兼顾精度、时延与能效三重目标。该技术适用于车规级AI部署、嵌入式边缘推理及具身智能系统优化,为Embodied LLMs在真实道路中的可靠运行提供可工程

weixin_30654583的博客 386

DonkeyCar发布教程:树莓派自动驾驶平台服务启动全指南

DonkeyCar 是一个面向教育与实践的轻量级端到端自动驾驶开发平台,其核心在于将深度学习模型部署到树莓派等边缘硬件,实现真实传感器输入、实时模型推理与物理车辆控制的闭环。它基于 Flask 构建 Web 交互层,通过多进程 Vehicle 管理器协调摄像头采集、TensorFlow Lite 模型推理和 PCA9685 PWM 驱动等模块,强调‘物理确定性’——每一行代码都映射为车轮转动与舵机偏转。该平台广泛应用于高校机器人课程、嵌入式AI教学及青少年科技实践,是连接算法理论与真实世界控制的关键桥梁。本

weixin_33847182的博客 386

MuleSoft+LLM企业级AI编排:合规、可审计、可落地的集成实践

企业级AI编排是指将大语言模型(LLM)深度嵌入现有IT系统,通过成熟集成平台实现连接治理、状态管理与端到端可观测性。其核心原理在于用确定性流程约束非确定性模型输出,依托RAG增强、Prompt版本化、上下文透传与输出Schema校验等机制保障结果可信。技术价值体现在降低幻觉风险、满足ISO 27001等合规审计要求,并显著提升AI介入环节的可验证性与可回滚性。典型应用场景包括智能合同审核、跨系统工单联动、GDPR条款提取等需强事务性与高责任追溯的业务流。本文聚焦MuleSoft与Azure OpenAI协

weixin_33857679的博客 450

清华深研院电子信息11大方向全解析:从芯片到AI的产教融合之路

电子信息工程作为现代科技产业的基石,其核心在于通过硬件、通信与软件系统的协同,实现信息的获取、传输、处理与应用。从底层原理看,它依托半导体物理、电磁场理论及信号处理算法,构建了从微纳器件到复杂系统的技术体系。其技术价值在于驱动数字化、智能化变革,为人工智能、物联网、高性能计算等前沿领域提供基础设施。典型的应用场景广泛覆盖了通信网络、智能终端、工业自动化及数据中心等关键行业。本文聚焦于清华大学深圳国际研究生院(清华深研院)的电子信息学科生态,深入剖析其下设的集成电路、人工智能、通信工程等11个核心方向。这些方

weixin_34318272的博客 381

MuleSoft企业级AI编排:让大语言模型成为可审计、可计费的标准服务节点

AI编排(AI Orchestration)是将大语言模型深度融入企业现有SOA/ESB架构的技术范式,其核心在于超越简单API调用,实现安全鉴权、多源数据编织、韧性熔断与全链路审计。它依托集成平台的协议转换、数据治理与流程调度能力,将LLM从不可控的‘黑盒智能’转化为符合企业SLA、合规要求与成本模型的标准化服务单元。关键技术支撑包括OAuth 2.0资源服务器策略、声明式数据转换引擎(如DataWeave)、JSON Schema强校验、traceID贯通日志与异步降级机制。本文聚焦MuleSoft R

weixin_30363981的博客 394

90_自动驾驶系统软件架构简介.pptx

详细介绍了自动驾驶的软件开发构架,提出了软件的设计理念,模块结构以及主要功能和实现方法,是一个非常好的软件设计框架。

自动驾驶系统架构设计

这篇英文ppt主要介绍了自动驾驶系统架构的设计包括逻辑架构、功能架构、网络架构和线控架构等等。

保姆级教程:用YOLOv8/9/10搞定仪表盘指针识别,附完整数据集和Python环境配置

本文提供了一份基于YOLOv8/v9/v10的仪表盘指针检测全流程指南,涵盖环境配置、数据集构建、模型选型、训练调优和部署落地等关键步骤。通过详细的代码示例和实战经验,帮助开发者高效解决工业视觉中的仪表盘检测难题,特别适合电力巡检、智能监控等应用场景。

weixin_29031057的博客 1335

2019年电赛D题《简易电路特性测试仪》全过程

2019年全国大学生电子设计大赛D题《简易电路特性测试仪》硬件部分及故障分析

zzhao2580的博客 5万+

深入探讨 VQ-VAE:理解变分量化自动编码器

VQ-VAE代表"Variational Quantized Variational Autoencoder",是一种生成模型,通常用于处理高维数据,如图像和音频。它的设计灵感来自于变分自动编码器(VAE)和量化方法,结合了它们的优点,使得 VQ-VAE 能够生成高质量的数据,并在数据表示上引入离散性。VQ-VAE 是一种强大的生成模型,结合了变分自动编码器和量化方法的优点。它在图像和音频生成、数据压缩和生成性对抗网络等领域具有广泛的应用。

DeepViewInsight的博客 7016

脑电数据预处理十四:主成分分析(PCA)用于伪迹去除与降维

本文探讨了主成分分析(PCA)在脑电图(EEG)预处理中的双重应用。针对EEG数据的高维特性和伪迹干扰问题,PCA既可有效去除高振幅伪迹(如眼动、心电等),又能实现数据降维。文章详细解析了PCA的核心原理,包括正交基向量投影和方差最大保留机制,并提供了基于MNE-Python的完整实现方案。通过代码示例展示了PCA在伪迹去除和降维中的具体应用效果,包括功率谱密度和时域波形的可视化对比。虽然ICA在复杂伪迹处理上更具优势,但PCA以其算法简单、计算高效的特点,成为EEG分析流程中不可或缺的基础工具。

qq_32516809的博客 1419

Zemax操作40--序列模式中LD光源模拟

LD模拟

lzy750750的博客 9124

高通平台WIFI学习-- WCN7851 三频 2X2 MIMO DBS HBS Wi-Fi 7介绍

WCN7851是支持Wi-Fi 7和蓝牙5.4的三频SoC芯片,具有以下核心特性:采用NSP334封装,支持2.4GHz/5GHz/6GHz三频段并发操作,最高速率达5.8Gbps;集成MU-MIMO、4096QAM调制技术,6GHz频段支持320MHz带宽;提供PCIe Gen3接口和低功耗设计,兼容多种无线标准。电气特性包括1.8V/1.2V可编程GPIO、76.8MHz时钟源要求,以及详细的射频性能参数。该芯片通过多链路操作和动态频率选择等先进功能,实现高性能无线连接。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 1281

Vue3 - 超详细“纯前端“将文件上传到阿里云OSS对象存储,最新阿里云前端直传音频、视频、图片、文件、office文档等任意文件,vue3单个或批量从本地选择文件,秒传到阿里云oss无需后端接口!

vue3,阿里云oss存储,前端直传oss,上传图片/office文档/音视频/zip压缩包到阿里云oss,项目中上传文件到阿里云oss详细教程,如何将本地文件上传到阿里云OSS存储,纯前端实现阿里云OSS上传,纯前端直传至阿里OSS对象存储教程,如何解决上传文件到阿里云OSS本地环境调试出现跨域问题,直传阿里云oss跨域报错解决,前端直接上传文件到oss服务端,不经过后端直传,浏览器直接上传文件,阿里云oss上传sdk官方文档,阿里云错误,解决这个问题,上传很慢,一直签名失败,权限,不经过后端,纯前端直传

🏆 前端领域优质创作者 1万+

【原理图PCB专题】案例:双排0.5mm间距座子转单排0.5mm间距座子Layout方案分析

本文提供一种分析思路,并通过实际案例来进行Layout方案分析的讲解。

一点硬件 457

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Open FPV VTX新手必看:从硬件连接到PixelPilot出图的完整避坑指南
下一篇: Nsight Systems保姆级教程:从零完成LLM推理全链路性能分析(含NVTX打桩技巧)
php55
博客等级 码龄15年 51粉丝 1553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值