ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

零基础入门具身智能:仿真到真机机械臂抓取实战指南

零基础入门具身智能:仿真到真机机械臂抓取实战指南 2024 到 2025 年这段时间我几乎把业余时间全部押在了具身智能上。从最初看论文看到头疼到在仿真环境里反复调 reward再到第一次让机械臂真的抓起来一个杯子整个过程差不多花了 4 个月。这 4 个月里踩的坑比过去写业务代码几年加起来都多。网上关于具身智能的资料确实不少但最大的问题是碎片化有人讲大模型有人讲强化学习有人直接丢给你一堆论文链接却很少有一条完整的、从零基础到真机落地的路径。很多初学者要么卡在仿真到真机的迁移上要么根本不知道该从哪里开始搭环境。这篇文章是我基于自己的真实经历整理的一份系统教程覆盖了具身智能的学习路径、仿真环境搭建、核心概念拆解、机械臂抓取实战、企业就业要求以及我在实际项目中遇到的高频问题和排查思路。无论你是刚接触这个方向的学生还是想转行做具身智能开发的工程师这篇文章都能帮你少走很多弯路。1. 具身智能到底是什么为什么值得学1.1 从字面拆解具身 智能具身智能Embodied Intelligence这个词字面意思就是“拥有身体的智能”。它和传统 AI 最大的区别在于传统 AI 处理的是数字世界里的数据比如图像分类、文本生成而具身智能强调智能体必须有一个物理身体通过与真实环境的交互来感知、理解、决策和行动。一个完整的具身智能系统通常包含这几个部分感知通过摄像头、激光雷达、触觉传感器等获取环境信息。决策根据感知到的信息决定下一步做什么。控制把决策转化为电机、舵机等执行器的具体动作。学习在与环境的交互中不断优化策略。你可以把它理解成“AI 从屏幕里走出来的过程”。具身智能研究的不是单独某一个算法而是如何把感知、决策、控制、学习这些技术整合到一个物理实体上让它能完成真实世界里的任务。1.2 具身智能和传统机器人的区别很多读者可能会问传统的工业机械臂不是已经很成熟了吗为什么还要提具身智能这里的核心区别在于“泛化能力”。传统工业机器人通常是在严格固定的工位、固定的工件、固定的轨迹下重复执行动作所有的行为都是预先编程好的一旦环境发生一点点变化机器人就无法正常工作。而具身智能要解决的是“不确定性”问题。目标物体可能摆在任意位置光照条件会变化物体的形状可能相似但不完全相同甚至任务本身也可能是自然语言描述的。具身智能系统需要在这些不确定性中实时感知环境、规划动作、执行任务。这也是为什么具身智能研究的复杂度和难度远高于传统机器人开发。1.3 当前的应用场景和岗位现状从应用场景来看目前具身智能比较有代表性的落地方向包括机械臂抓取与操作仓储分拣、上下料、实验室样品处理。移动操作机器人在家庭、酒店、医院等场景中完成走路 抓取 放置的任务。人形机器人面向通用场景的双足或轮式人形平台。数据采集与标注为模型训练采集真实的遥操作数据。从我了解到的招聘市场来看具身智能相关的岗位需求正在快速增长尤其是“具身智能算法工程师”“机器人操作算法工程师”这类岗位。企业普遍要求候选人具备仿真到真机迁移的实战经验而不只是会跑通一个强化学习 demo。2. 4个月学习路线从零基础到真机落地很多初学者拿到一堆资料后最容易犯的错误就是“贪多嚼不烂”。今天看 transformer明天学 diffusion policy后天又开始调机械臂的 PID结果每个方向都只学了个皮毛。下面这条路线是我自己走通的把 4 个月拆成了 5 个阶段每个阶段有明确的目标和产出。2.1 第一阶段第1-2周机器人学基础和 Python 工具链如果你不是机器人专业出身第一个阶段不用碰深度学习先把最基础的机器人学概念补上。需要掌握的知识点刚体的位姿描述位置、姿态、旋转矩阵、欧拉角、四元数。坐标变换基坐标系、工具坐标系、相机坐标系之间的转换。正运动学和逆运动学知道关节角度求末端位姿知道末端位姿求关节角度。基础控制概念位置控制、速度控制、力矩控制。Python 工具链方面建议熟悉以下库pip install numpy scipy matplotlib opencv-python这一阶段不需要动手写太多代码重点是理解概念。我当时是结合《机器人学导论》的前几章和 B 站上的公开课视频一起看的每天花大概 3 到 4 小时两周时间刚刚够。2.2 第二阶段第3-4周吃透仿真环境仿真环境是具身智能学习成本最低的练习场也是后面所有实验的基础。不用先买真机在仿真里跑通一个完整的抓取流程比直接上手真机效率高得多。这个阶段要做的事情选一个仿真平台学会搭建场景、添加物体、控制机械臂。学会读取关节状态、设置目标位姿。学会用相机仿真获取 RGB 图像和深度图像。跑通一个最简单的“运动规划 抓取”流程。我个人的建议是先从 MuJoCo 或 Isaac Sim 这类支持 Python 接口的仿真器入手因为后面很多算法库都基于它们封装。2.3 第三阶段第2个月模仿学习与强化学习入门这是整个学习路线中最核心也最容易劝退的阶段。具身智能的策略学习主要有两条技术路线模仿学习通过人类遥操作或视频演示让模型学习“在某个状态下应该做什么动作”。代表方法有行为克隆、扩散策略Diffusion Policy等。强化学习通过智能体与环境不断交互用奖励信号引导策略优化。代表方法有 PPO、SAC 等。具身智能场景中通常先仿真训练再迁移到真机。这个阶段的目标不是从零手写所有算法而是会用成熟的开源库训练一个简单的策略并理解其中的关键概念状态、动作、奖励、策略、价值函数、探索与利用。推荐以模仿学习作为切入点因为它的训练过程更直观结果更容易复现。2.4 第四阶段第3个月真机平台实操仿真跑通之后一定要找机会接触真机。真机和仿真的差别只有亲自调试过才会真正理解。如果没有条件买真机可以考虑以下几种方案租用学校或实验室的机械臂设备。购买入门级桌面机械臂比如 uFactory 系列、JAKA MiniCobo 等。参加一些提供远程真机实验平台的竞赛或课程。真机实操阶段要掌握的内容机械臂的通信接口TCP 或串口。工具坐标系和末端执行器的标定。相机的手眼标定eye-in-hand 或 eye-to-hand。安全限位和急停逻辑。2.5 第五阶段第4个月项目集成与展示最后一个月把前面学到的所有内容整合成一个完整的项目。一个典型项目可以设定为“通过自然语言指令让机械臂完成‘把红色杯子从桌面上抓起来放到指定区域’的任务。”项目集成阶段需要做到系统能稳定运行连续执行多次任务不失败。有完整的日志记录方便排查问题。项目代码整理成规范的仓库包含 README。录制演示视频展示系统全流程。这样一个项目做下来你的简历上就有一个可以讲的、完整的具身智能实战项目了。3. 环境准备仿真平台与真机平台选型3.1 仿真环境怎么选市面上常用的机器人仿真平台有 MuJoCo、Isaac Sim、Gazebo、PyBullet 等。它们各有优缺点没有绝对的最好只有最适合你的场景。仿真平台优势不足适合场景MuJoCo物理引擎快、轻量、与 Gym/Gymnasium 集成好渲染效果一般强化学习、快速实验Isaac Sim基于 Omniverse渲染真实、支持 USD 场景对显卡要求高、学习曲线陡高质量视觉仿真、sim2realGazebo与 ROS 生态集成好、功能全面配置复杂、调试耗时移动机器人、ROS 开发PyBullet轻量、纯 Python、方便调试物理精度和视觉质量一般快速验证算法思路我自己的组合是 MuJoCo 做策略训练Isaac Sim 做视觉仿真验证真机做最终部署。如果你显卡配置一般建议先只用 MuJoCo 把算法跑通不要一上来就折腾 Isaac Sim。3.2 真机平台怎么选真机选型主要看预算和任务需求预算有限、以学习为主选桌面级六轴机械臂负载 500g 左右即可足够做抓取实验。预算充足、想做人形或移动操作选带移动底盘的复合机器人或者双机械臂平台。以数据采集为主优先选支持遥操作master-slave的设备这个功能对模仿学习数据采集非常重要。选真机时一定要确认是否提供官方 Python SDK 或 ROS 接口避免后期开发时发现设备无法编程控制。3.3 开发环境与工具链推荐如果是学习用途建议直接用 Ubuntu Python 虚拟环境把项目和系统环境隔离开# 创建虚拟环境 python3 -m venv ~/embodied_env source ~/embodied_env/bin/activate常用工具链包括Python 3.8 及以上版本。PyTorch训练模仿学习和强化学习模型。OpenCV图像处理和视觉标定。ROS 2机器人通信和模块集成尤其是做复杂系统时。MuJoCo 的 Python 绑定pip install mujoco。如果你的主要开发机是 Windows也可以用 WSL2 或 Docker 来跑 Linux 环境但最省心的方式还是直接装双系统或者用一台 Linux 机器。4. 核心概念拆解从感知到执行的完整链路一个具身智能系统从前到后可以拆成四个模块。理解这四个模块的职责和它们之间的数据流是设计整个系统的基础。4.1 多模态感知感知模块的输入来自相机、深度传感器、激光雷达、触觉传感器等设备。输出通常是场景中关键物体的位姿、类别、属性等结构化信息。在抓取任务中感知模块的核心任务是目标检测在图像中找到目标物体。位姿估计估计物体在机器人基坐标系下的位置和姿态。障碍物感知识别场景中需要避开的物体。目前工程项目中比较常用的方案是“视觉基础模型 机器人几何信息”的组合。即用 2D 检测模型找到物体像素位置再结合深度图和相机标定参数把 2D 像素坐标转换到 3D 机器人坐标系。4.2 任务规划与决策任务规划解决的是“做什么”的问题。给定一个自然语言指令比如“把桌上的红色杯子放到篮子里”任务规划模块需要把它拆解成一系列可执行的子步骤找到红色杯子。移动到杯子附近。调整机械臂姿态准备抓取。闭合夹爪抓住杯子。移动到篮子上方。释放夹爪。在传统方案中这些步骤是硬编码的。在大模型时代可以用大语言模型LLM把自然语言转换成结构化的任务步骤然后由底层的策略模块逐条执行。4.3 动作生成与运动控制动作生成解决的是“怎么做”的问题。它接收当前状态和目标输出具体的关节动作。这里有两个层面的控制规划层生成一条从当前位姿到目标位姿的无碰撞轨迹。常用方法有 RRT、RRT-Connect、OMPL 库等。执行层跟踪轨迹输出关节力矩或速度。底层常用 PID 控制或基于模型的控制。在基于学习的方案中动作生成可以由策略网络直接输出关节角度或末端速度然后由底层控制器执行。4.4 sim2real 迁移为什么这么难sim2real从仿真到真实是整个具身智能领域公认的难题。仿真环境再逼真和真实世界也存在着“现实差距”。主要差距来源包括物理参数差异真实的摩擦力、惯性、阻尼很难精确建模。视觉差异仿真渲染的纹理、光照和真实相机拍摄的图像有明显差别。系统延迟仿真中状态反馈是即时的真机有通信和计算延迟。噪声真机传感器读数有噪声执行器响应有误差。缩小 sim2real 差距的常见方法域随机化在仿真中随机化物体纹理、光照、物理参数让模型见过更多变化从而泛化到真实环境。系统辨识精确建模真机的动力学参数。直接在真机上微调先在仿真预训练再到真机上用小规模数据微调。5. 完整实战让机械臂抓取一个杯子下面用一个最典型的“机械臂抓取杯子”任务来演示完整流程。这个示例会从任务定义、仿真搭建、核心代码、真机迁移检查四个方面展开。5.1 任务定义与技术选型任务描述机械臂从桌面上随机摆放的几个物体中识别并抓取一个指定颜色的杯子然后移动到指定放置区域。技术选型机械臂六轴协作机械臂支持 Python SDK 控制。视觉RGB-D 深度相机。感知基于 2D 检测 深度图获取物体 3D 位置。规划使用机械臂 SDK 提供的运动规划接口或 OMPL 库。策略第一阶段采用规则式抓取后续再替换为学习式策略。5.2 在仿真环境中搭建场景以 MuJoCo 为例先创建一个简单的抓取场景。这里的关键点是要保证仿真中的机械臂模型和相机内参与真机一致否则后面迁移会很痛苦。假设你已经通过pip install mujoco安装了 MuJoCo并下载了对应的机械臂模型文件。# 文件路径sim_env.py import mujoco import mujoco.viewer import numpy as np # 加载仿真模型 model mujoco.MjModel.from_xml_path(scene.xml) data mujoco.MjData(model) # 设置初始关节角度 data.qpos[:] [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] mujoco.mj_forward(model, data) # 在仿真环境中渲染并保持窗口 with mujoco.viewer.launch_passive(model, data) as viewer: for _ in range(10000): mujoco.mj_step(model, data) viewer.sync()这段代码的作用是加载一个机器人场景设置机械臂初始姿态然后进入仿真循环方框接口会在每一步之后刷新画面。实际项目中你需要把机械臂模型和目标物体的模型都放到scene.xml里。5.3 编写抓取策略核心代码抓取流程核心代码如下。为了便于理解我把感知、规划、执行拆成三个函数# 文件路径pick_place.py import numpy as np class PickPlaceController: def __init__(self, robot_interface, camera_interface): self.robot robot_interface self.camera camera_interface def detect_object_pose(self): 感知模块 通过相机获取目标物体的3D位置。 这里假设已经完成了手眼标定。 rgb, depth self.camera.get_rgbd() # 目标检测得到物体在图像中的2D框 bbox self.detect_in_image(rgb) if bbox is None: return None # 取2D框中心点的像素坐标 u (bbox[0] bbox[2]) // 2 v (bbox[1] bbox[3]) // 2 # 结合深度值反投影到相机坐标系下的3D点 z depth[v, u] * 0.001 # 假设深度单位是毫米转为米 x_cam (u - self.camera.cx) * z / self.camera.fx y_cam (v - self.camera.cy) * z / self.camera.fy # 通过手眼标定矩阵转换到机器人基坐标系 pos_in_base self.camera.transform_to_base( np.array([x_cam, y_cam, z_cam]) ) return pos_in_base def generate_grasp_pose(self, object_pos): 规划模块 根据物体位置生成机械臂的抓取位姿。 这里简化处理保持末端姿态朝下只调整位置。 grasp_pos object_pos.copy() grasp_pos[2] 0.05 # 末端在物体上方5cm处 # 姿态固定为垂直向下抓取 grasp_quat [0.0, 0.707, 0.0, 0.707] return grasp_pos, grasp_quat def execute_grasp(self, grasp_pos, grasp_quat): 执行模块 移动到抓取位姿闭合夹爪抬起。 # 第一步移动到预抓取点物体上方 pre_pos grasp_pos.copy() pre_pos[2] 0.10 self.robot.move_to(pre_pos, grasp_quat) # 第二步缓慢下降到抓取点 self.robot.move_to(grasp_pos, grasp_quat, velocity0.1) # 第三步闭合夹爪 self.robot.close_gripper(force20.0) # 第四步抬起 self.robot.move_to(pre_pos, grasp_quat) def run(self): object_pos self.detect_object_pose() if object_pos is None: print(未检测到目标物体) return grasp_pos, grasp_quat self.generate_grasp_pose(object_pos) self.execute_grasp(grasp_pos, grasp_quat) print(抓取完成)这段代码的核心思路是“先感知再规划最后执行”。其中感知模块根据相机标定参数将像素坐标转换为机器人坐标系下的 3D 位置规划模块生成一个垂直向下抓取的位姿执行模块按“预抓取点 - 下降 - 夹爪闭合 - 抬起”的顺序完成动作。实际项目中机械臂 SDK 的move_to接口通常会封装运动规划和轨迹插补你只需要传入目标位姿即可。如果你的 SDK 没有这个接口就需要用 OMPL 等库自己实现运动规划。5.4 迁移到真机前的检查清单仿真跑通以后直接上真机是非常危险的做法。我强烈建议先做一个静态检查清单检查项说明坐标系一致性相机坐标系、基坐标系、工具坐标系是否已正确转换单位检查仿真中使用的单位是米/毫米真机接口要求是否一致限位保护关节角度限位是否设置正确防止撞到机械臂本体减速比真机运动速度是否设置得太快建议先用 10% 速度测试急停测试紧急情况下能否一键停止机械臂夹爪力度抓取力度是否过大会不会夹碎物体简单来说真机上的第一版参数一定要保守让所有执行器以低速、低力度运行确认安全后再逐步提升。5.5 真机部署与验证真机部署时建议采用“最小闭环”策略第一步不加载感知算法手动指定物体坐标让机械臂完成抓取。第二步加载相机和标定参数利用检测模块获取物体位置。第三步加入任务规划和异常处理逻辑。如果第一步就出现了抓取不到的问题优先排查坐标转换是否正确而不是怀疑算法。很多初学者一上来就调试视觉结果最后发现是手眼标定矩阵错了耽误了大量时间。6. 企业就业标准面试官到底在看什么很多读者学习具身智能最终目标是进入这个行业。这一节我结合自己面试和了解到的招聘信息整理一些企业关注的要点。6.1 岗位类型划分具身智能相关岗位大致可以分为三类算法岗负责策略学习、视觉感知、运动规划等核心算法对数学和深度学习基础要求较高。系统集成岗负责把算法部署到真机上涉及 ROS、硬件调试、通信协议对工程能力要求较高。数据工程岗负责数据采集、数据清洗、数据管理是当前企业需求量比较大的方向。三类岗位里纯算法岗门槛最高通常要求有顶会论文或高难度项目经验。系统集成岗和数据工程岗相对更适合初学者作为切入点。6.2 简历上必须有的项目形式从我了解的情况来看企业面试官最看重的不是你学过多少理论而是你有没有“让一个物理系统按照预期动作运行起来”的经验。一个比较有说服力的项目描述通常包含这几部分任务背景解决什么实际问题。技术方案用了什么感知模型、规划算法、控制框架。具体数据抓取成功率是多少、单次任务耗时多久、用了多少条训练数据。难点分析仿真到真机迁移时遇到了什么问题最终怎么解决的。单纯写“熟悉强化学习”没有说服力如果你能说出“在仿真中训练了 PPO通过域随机化策略成功迁移到真机抓取成功率从 30% 提升到 85%”这会直观得多。6.3 常见面试问题相机手眼标定你用过哪些方法如何在机器人坐标系中获取物体的位置你是怎么处理仿真和真机之间视觉差异的如果机械臂在真机上突然抖动你会从哪些方面排查模仿学习中数据质量差会导致什么问题如何保证数据质量大模型如何在你的系统里发挥作用如果推理延迟很高你怎么优化这些问题没有一个标准答案但如果你真的有真机调试经验回答起来会非常自然。这也是我反复强调要亲手做项目的原因。6.4 没有真机条件怎么办如果条件确实有限也有一些补救方案购买一台入门级二手桌面机械臂几千元以内就有选择。参加提供免费在线仿真环境的比赛很多比赛会提供云端真机调试时长。做一个“仿真到真机迁移模拟”项目在两种物理参数不同的仿真环境中训练和测试同一个策略验证算法的泛化能力。总的原则是优先让项目闭环跑起来而不是追求大而全。7. 4个月踩过的坑高频问题与排查思路下面把我实际踩过、也看到周围人反复踩的坑按问题现象、原因和解决思路整理成表格方便你遇到问题时快速对照。问题现象常见原因解决思路仿真抓取成功率高真机成功率极低sim2real 差距物理参数和视觉不一致加入域随机化固定真机上的光照环境先缩小任务约束检测到物体但抓取位置偏移手眼标定不准或坐标系转换错误重新做手眼标定检查相机内参和畸变参数机械臂运动到目标位置时抖动轨迹点不连续或控制频率过低平滑轨迹减小速度检查控制频率和底层 PID 参数数据采集速度太慢遥操作的方式效率低批量采集引入半自动标注先做静态物体场景模型推理延迟太高模型过大或 GPU 推理没有优化换轻量模型使用 TensorRT 等推理加速工具整个系统经常死锁或卡死模块间通信没有超时处理引入超时重试机制用消息队列解耦模块依赖强化学习训练不收敛奖励函数设计不合理或状态表达不佳从简单任务开始加入逐渐递增的任务难度7.1 仿真跑得很好真机一碰就废这是具身智能初学者最容易遇到、也是最打击信心的问题。根本原因是仿真中很多参数都被“理想化”了比如物体表面摩擦力、机械臂动力学参数、相机成像质量等。我的建议是从第一天开始就刻意给仿真场景增加难度随机化物体位置、姿态、纹理。随机化光照方向。给机械臂关节加入一些随机噪声。测试多个不同的物理参数组合。如果你只在固定条件下训练模型就会过拟合到仿真环境上真机迁移自然失败。7.2 相机标定不准相机标定是视觉抓取的基础。标定不准会导致“看得见但抓不着”而且有时候偏差很小很难察觉。排查时可以这样做先用标定板精准标定相机内参。再通过手眼标定确定相机相对于机械臂基座的位姿。验证方法把机械臂末端移动到某个已知位置用相机观察末端上的标记点看计算结果是否吻合。如果偏差在很多位置都一致通常标定外参错了如果偏差随位置变化可能内参或畸变模型有问题。7.3 机械臂运动规划撞到奇异点机械臂在某些姿态下会进入奇异点导致规划失败或末端突然加速。真机上线前一定要做奇异点规避检查。常见处理方案规划时设置关节速度、加速度限制。使用带奇异点规避功能的规划库。在任务规划层尽量避免让机械臂进入极限姿态。7.4 数据集采集速度太慢模仿学习需要大量高质量数据而遥操作采集一一条干净的数据可能要几十秒。这个问题在工程项目中非常现实。我的建议是第一优先级是“动作可重复性”确保同一个演示能被稳定复现。控制采集环境的一致性避免频繁变动背景和光照。记录传感器原始数据、机器人状态、动作指令方便后续数据增强。7.5 大模型推理延迟太高如果用大语言模型做任务规划一次推理可能要几秒甚至几十秒这对机械臂实时控制来说完全不可接受。工程上常用的办法通过 prompt engineering 让模型输出压缩的 JSON 指令加快推理。模型部署用量化或蒸馏等方式加速。任务规划结果缓存同一个任务指令不重复调用模型。把实时性要求高的部分放在本地模型低频决策用大模型。8. 工程实践与安全建议具身智能项目和传统软件项目有一个非常大的不同代码的 bug 可能会带来物理上的破坏。下面几条工程实践是我认为在项目落地时必须遵守的。8.1 安全永远是第一位在进行真机实验之前必须确认以下几项物理急停按钮是否可用位置是否方便按压。机械臂工作范围内是否没有人或易碎物品。关节力矩限制是否打开。调试速度是否设置为低速模式。是否有一键断电的工具。任何情况下都不要在机械臂运动时把手伸进工作空间哪怕只是调整一个小物块的位置也要先让机械臂完全停止。8.2 日志与数据管理真机实验的复现性高度依赖日志。建议记录以下信息时间戳。机械臂关节状态。相机图像和深度图。所有控制指令。每一步的时间消耗。成功/失败标记及失败原因。日志重放是所有具身智能调试的基础能力。要确保你能在事后回看某一次实验的完整过程。8.3 模型版本控制策略模型更新频繁稍不注意就会覆盖上一次效果更好的版本。建议每个训练版本保存独立的 checkpoint并记录训练参数。模型命名包含日期和关键参数比如policy_20260401_bs64_lr1e4.pth。真机实验时确认当前加载的是哪个版本模型避免用错。8.4 复现性管理为了快速复现结果在项目初始化时就应固定依赖版本# 生成依赖清单 pip freeze requirements.txt # 或者用 poetry 管理 poetry init poetry add numpy torch poetry lock另外如果使用了 ROS建议把 launch 文件和参数文件也纳入版本管理避免“换了电脑就跑不了”的问题。9. 下一步怎么继续深入如果你完整走完了前面 4 个月的学习路线并且做出了至少一个端到端的抓取项目那么你已经具备了进入这个行业的基础能力。下一步可以按兴趣选择深入方向如果你对视觉更感兴趣可以深入研究 6D 位姿估计、三维视觉基础模型、实时目标跟踪。如果你对决策和规划更感兴趣可以重点学习模仿学习中的扩散策略、强化学习中的并行训练框架。如果你对系统更感兴趣可以深入 ROS 2 的通信机制、实时控制系统和嵌入式计算平台。具身智能是一个典型的交叉学科领域需要同时具备算法、系统和硬件的综合能力。没有哪一条知识是“没用的”但也不可能在短时间内全部学完。建议的方式是“先用一条主线打通闭环再横向扩展”。如果你在实操中遇到具体问题欢迎在评论区留言我会选择典型问题补充到后续的文章里。这篇文章的内容比较多建议先收藏然后按阶段逐步实践。
返回列表