【Gazebo安装指南】Ubuntu22.04LTS环境下的高效配置与常见问题解决

【Gazebo安装教程】2023年最新安装全流程详解! Ubuntu22.04下的gazebo安装全流程详细分析介绍 后续将会利用gazebo进行简单仿真案例演示 阅读详情

1. 为什么你的Gazebo安装总出问题?先搞懂这些再动手

很多刚接触机器人仿真或者ROS的朋友,第一个拦路虎往往不是写代码,而是装环境。我见过太多人,兴冲冲地打开终端,照着网上搜到的教程一顿sudo apt install,结果不是报错“找不到软件包”,就是装完打开一个空白界面,或者干脆启动不了。折腾半天,热情都耗光了。今天,我就以Ubuntu 22.04 LTS这个目前最主流的长期支持版为例,带你彻底捋清楚Gazebo的安装门道,避开那些我当年踩过的坑。

首先,你得明白一个关键点:Gazebo的版本和安装源,是决定安装成败的核心。Gazebo本身是一个历史比较久的仿真器,它的开发迭代和发布方式经历过几次大的变化。尤其是在2022年前后,Gazebo的官方维护团队和发布策略进行了调整,这直接导致了很多2022年之前写的教程完全失效。如果你搜到的教程还在让你添加packages.osrfoundation.org/gazebo这个源,那基本就是过时的,大概率会失败。所以,我们的安装思路必须与时俱进。

那么,在Ubuntu 22.04上,我们到底应该装哪个Gazebo?简单来说,对于绝大多数做机器人仿真、尤其是配合ROS 2(Humble或Iron)使用的朋友,我们的目标就是Gazebo Classic。这是Gazebo 11的一个延续维护版本,拥有我们熟悉的GUI界面和丰富的模型库。而官网首页现在主推的“Gazebo Garden”或“Gazebo Sim”,是一个更现代、但生态和插件尚在发展的新版本,对于新手和大多数现有ROS项目来说,并不友好。所以,请记住我们的目标:在Ubuntu 22.04上,通过系统默认或ROS的源,稳定安装Gazebo Classic。搞清楚这个,安装就成功了一半。

2. 安装前的准备工作:打好地基才能盖高楼

安装软件最忌讳的就是上来就干,环境没准备好,后面全是坑。在Ubuntu 22.04上安装Gazebo,第一步不是下载,而是把系统的基础打好。这里我分享一个我自己必做的“三板斧”,能解决90%的依赖问题。

首先,更新系统软件源列表。这个操作就像去超市购物前先看看最新的商品目录,确保你知道哪里能买到东西。命令很简单,但很重要:

sudo apt update

这个命令会刷新本地软件包索引,与配置的软件源服务器同步。我建议在开始任何安装之前都先做这一步,特别是如果你刚装好系统,或者很久没更新了。

接下来,安装一些基础工具。这些工具可能在后续步骤中用到,比如处理密钥、下载文件等。一条命令搞定:

sudo apt install curl wget gnupg lsb-release ca-certificates -y

这里的curl和wget是下载工具,gnupg用于管理加密密钥(添加软件源时验证用),lsb-release能帮助系统识别版本信息,ca-certif

Gazebo详细安装过程并连接ros 请注意,这些步骤适用于Ubuntu系统,并且可能需要根据你的具体Ubuntu版本(如Bionic、Focal等)调整Gazebo的版本号。此外,如果你的系统之前没有添加Gazebo的软件源,还需要先添加软件源和相应的密钥,才能安装Gazebo。这些命令会从Ubuntu的软件仓库中下载并安装Gazebo 11及其依赖项。过程没有错误地结束,控制台输出应以 "Done" 结束。示例输出显示了更新过程中的一些信息,包括访问的软件源和完成的状态。首先,需要更新系统的Debian数据库,以确保软件包列表是最新的。 阅读详情

相关推荐

超详细:从零开始搭建ROS智能无人装备gazebo仿真教程(含PX4安装教程、D435i深度相机安装教程、多工作空间管理教程)

超详细:从零开始搭建ROS智能无人装备gazebo仿真教程(含PX4安装教程、D435i深度相机安装教程、多工作空间管理教程)

weixin_47776213的博客 3817

保姆级教程:用WSL2+Ubuntu22.04搭建ROS2 Humble和Gazebo仿真环境(Win11实测)

本文提供了一份详细的保姆级教程,指导用户在Windows 11系统上,通过WSL2和Ubuntu 22.04 LTS环境,搭建ROS2 Humble和Gazebo仿真平台。教程涵盖了从WSL2基础配置、图形界面设置,到ROS2安装验证、Gazebo部署与性能优化的全流程,旨在帮助开发者在Windows环境下构建高效、流畅的机器人开发与仿真工作站。

pluto的博客 1119

Win11玩转机器人仿真:手把手教你用WSL2+Ubuntu 22.04安装最新版Gazebo Fortress

本文详细介绍了如何在Windows11系统上通过WSL2和Ubuntu 22.04 LTS安装最新版Gazebo Fortress,打造高效的机器人仿真开发环境。从WSL2配置、Ubuntu基础设置到Gazebo Fortress的安装与优化,手把手教你解决常见问题并提升性能,适合工业自动化、学术研究及创客开发。

weixin_28738165的博客 416

Ubuntu 22.04安装ROS2 Humble完整指南:从系统配置到环境验证

机器人操作系统(ROS)作为机器人软件开发的核心框架,其第二代版本ROS2基于现代化的分布式通信架构,解决了ROS1在实时性、跨平台和多机器人协作方面的局限性。其底层采用DDS数据分发服务,实现了去中心化的节点通信,为工业级应用提供了可靠的技术基础。在工程实践中,一个稳定高效的开发环境是项目成功的前提,这涉及到操作系统选择、依赖管理、网络配置和构建工具链的整合。对于机器人、自动驾驶和智能硬件领域的开发者而言,在Ubuntu 22.04 LTS长期支持版上部署ROS2 Humble发行版,能够获得最佳的兼容性

weixin_30236595的博客 480

保姆级教程:在Ubuntu 22.04上从零搭建ROS2 Humble + PX4 + Gazebo仿真环境(含网络问题解决)

本文提供在Ubuntu 22.04上搭建ROS2 Humble、PX4和Gazebo仿真环境的完整教程,涵盖系统准备、软件安装、环境配置及常见网络问题解决方案。通过模块化步骤和实用技巧,帮助开发者高效构建无人机仿真平台,适用于机器人学习和工程开发。

weixin_42540248的博客 591

VMware中安装Ubuntu 22.04中文桌面完整教程

虚拟化技术是现代开发与学习的重要基础,而VMware Workstation作为主流虚拟机软件,凭借其稳定性和丰富功能,成为许多用户运行Linux系统的首选。理解虚拟机的工作原理,掌握虚拟硬件资源分配(如CPU、内存、磁盘)的关键要点,能显著提升系统性能与使用体验。通过合理配置VMware Tools(如open-vm-tools),实现剪贴板共享、自适应分辨率等无缝交互,是搭建高效开发环境的重要环节。本文面向Linux初学者和开发者,系统讲解从镜像下载、虚拟机创建到Ubuntu 22.04 LTS中文桌面

weixin_34239592的博客 736

Gazebo Garden + ROS2 Humble 仿真环境从零搭建实战指南

Gazebo 是面向机器人系统的物理仿真引擎,其核心价值在于高保真动力学建模与传感器模拟能力。理解 Gazebo 的分层架构(物理引擎、渲染管线、ROS 桥接、模型描述)是解决‘界面闪烁’‘模型不加载’‘关节无响应’等高频问题的前提。Gazebo Garden(即 Gazebo Sim)相比 Classic 在 GPU 渲染稳定性、ROS2 原生集成度和 SDF 模型生态上具备显著优势,已成为 ROS2 Humble/Foxy 项目事实标准。本文聚焦 Ubuntu 22.04 环境下 Gazebo Gard

weixin_34006965的博客 1500

ROS2 Humble安装指南:Ubuntu 22.04环境配置与避坑实践

机器人操作系统(ROS)作为机器人开发领域的核心框架,其分布式节点通信架构和模块化设计理念为复杂机器人系统的构建提供了标准化解决方案。ROS2在ROS1基础上进行了全面重构,采用数据分发服务(DDS)作为底层通信中间件,显著提升了实时性、安全性和跨平台兼容性。这一技术演进使得ROS2能够更好地满足工业机器人、自动驾驶等对可靠性和性能要求严苛的应用场景。在ROS2的多个发行版中,Humble Hawksbill作为长期支持版本,凭借其稳定的系统依赖和丰富的社区资源,成为开发者搭建机器人软件开发环境的首选。本文

weixin_33671935的博客 324

Ubuntu 22.04与ROS 2 Humble环境配置全攻略:从零搭建机器人开发环境

机器人操作系统(ROS)是机器人开发领域的核心框架,它基于分布式计算和节点通信原理,为机器人软件提供了模块化、可复用的架构。ROS 2作为新一代版本,在实时性、跨平台支持和安全性方面实现了显著提升,其技术价值在于为自动驾驶、工业自动化和服务机器人等复杂应用场景提供了标准化的开发平台。环境配置是ROS 2开发的首要步骤,涉及操作系统选择、依赖管理和工具链搭建。本文聚焦于Ubuntu 22.04 LTS与ROS 2 Humble这一主流组合,详细解析了系统安装、软件源配置、核心包部署及常见问题排查,特别针对**

weixin_30599769的博客 428

Gazebo 仿真环境实战指南(一):从零搭建到高效配置

本文是Gazebo仿真环境实战指南的首篇,详细指导如何从零开始搭建并高效配置Gazebo。文章首先帮助读者在Gazebo Classic与Gazebo Garden之间做出明智选择,并评估硬件需求。随后提供了基于Ubuntu 22.04的清晰安装步骤、常见问题排查方法,以及基础操作指引。最后,重点分享了启用GPU加速、管理本地模型库和调整仿真参数等关键性能调优技巧,旨在帮助机器人开发者快速构建流畅、稳定的仿真环境。

weixin_29061531的博客 406

Unity WebGL项目如何实现画布透明,完美融入网页背景(附.jslib文件与完整配置)

本文详细解析了Unity WebGL项目实现画布透明化的技术原理与实战步骤,从.jslib文件配置到前端框架集成,帮助开发者解决默认背景色问题,实现3D内容与网页设计的无缝融合。重点介绍了透明化核心机制、常见误区及React/Vue等现代框架中的最佳实践方案。

weixin_31896061的博客 292

SRv6第二弹:SRv6基本概念

在SRv6网络编程中,不同的转发行为由不同的Function来标识,例如在RFC中定义了公认的End、End.X、End.DX4、End.DX6等。例如:R3使用报文的IPv6目的地址FC03::3查找Local SID表,命中到End SID,随后R3将报文SL减1,同时将SL=1的SID做为报文目标IPv6地址,并查路由表转发出去。SID支持静态配置或者动态分配,end-op、end、end.x、end-dt4、end-dt6、end-dx2推荐静态配置 ,便于网络运维,其他的SID可以动态分配。

wbyyy的博客 4236

退火朗之万动力学采样

退火朗之万动力学采样(Simulated Annealing Langevin Dynamics Sampling)结合了退火技术和朗之万动力学,是一种用于分子模拟和统计物理中的计算方法。这种方法可以帮助系统从局部最小值中逃逸,以找到全局最小值或进行有效的配置空间探索。

weixin_39699362的博客 1943

机器人的“大脑”进化论:从专用控制器到高性能SoC的异构计算时代

摘要:随着AI与机器人技术融合,高性能芯片成为机器人智能化的关键。本文分析了机器人对芯片的核心需求,包括多模态数据处理、实时控制和智能决策能力。系统级芯片(SoC)因集成CPU、GPU/NPU等模块而成为主流选择。市场呈现分层格局:中低端设备(如扫地机器人)采用"MCU+轻量SoC"方案,满足基础功能;高端机器人则依赖"高性能SoC+独立GPU"处理复杂任务。除主控芯片外,完整的机器人系统还需传感器接口、驱动、通信等配套芯片。未来,芯片技术的进步将持续推动机器人智能化

致力于lidar应用开发 76

游戏客户端开发工程师笔试题

1、已知有一个关键字序列:(27,23,34,14,1,55, 20,19,85,83,10,68)散列存储在一个哈希表中,若散列函数为H(key)=key%7,并采用链地址法来解决冲突,则在等概率情况下查找成功的平均查找长度为(4、出现死锁时,除了可以采用资源剥夺的方法解决死锁问题外,还可以使用的方法是()是被限定只能在表的一端进行插入运算,在另一端进行删除运算的线性表.5、大端模式,是指数据的高字节保存在内存的(3、在二叉查找树中, 最好情况下复杂度为。)地址中,而数据的低字节保存在内存的(

博客 1857

倍福--RS232自由口实现

RS232/485通信协议是在现场中常用到的,比如触摸屏、温控模块等设备控控制器做通信,会常用到此类协议,本文介绍RS232/485自由口通信的实现,并用PC调试助手进行测试。 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制器软件 3 硬件连接 3 2.1. PC COM介绍 3 2.2. RS232/RS485连接 3 3.2.1. N030…………. 4 3.2.2. N031…………. 4 2.3. 实际线路连接 5 PLC程序 7 3

weixin_41883890的博客 3280

零承诺的启动之路:详解 SAP BTP 的 Pay-As-You-Go for SAP BTP(含案例与迁移策略)

SAP BTP的Pay-As-You-Go(PAYG)模式为零承诺的按需付费方案,适合PoC和小规模上线场景。它提供生产环境直接启用服务的能力,按月后付标准目录价,无预付和折扣。PAYG可与BTP企业协议(BTPEA/CPEA)混合使用,用量稳定后可平滑迁移至CPEA获取更好财务条款。关键优势在于灵活开启/关闭服务,支持通过SAP Discovery Center估算费用,并配合成本治理工具控制支出。该模式适用于创新项目初期,当业务规模可预测时再考虑转为承诺型消费模式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 237

深度学习工具包 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")

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 一键绑骨,实时动画生成:探索《Mixamo》的高效3D创作流程
下一篇: 避坑指南:Qt5.14.2 ARM交叉编译中那些你可能遇到的‘坑’及解决方案
人行有师
博客等级 码龄10年 53粉丝 1569原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值