1. 项目概述:当AI学会“搭积木”
如果你是一名机械工程师、产品设计师,或者哪怕只是一个CAD软件的深度用户,你一定对“装配体”这个概念又爱又恨。爱的是,它能将成百上千个独立的零件,按照真实的物理关系组合成一个完整的产品,比如一台发动机、一个机器人手臂,甚至是一整辆汽车。恨的是,这个过程极其繁琐且容易出错:你需要手动对齐每一个孔位、匹配每一个约束、检查每一个干涉,任何一个微小的疏忽都可能导致后续的仿真、加工乃至整个项目失败。
传统的CAD软件,无论是SolidWorks、CATIA还是Creo,其装配功能本质上是一个“手动+规则”的辅助工具。它提供了强大的约束命令,但“如何用”、“何时用”、“用哪个”,完全依赖于操作者的经验和判断。这就像给你一盒无比精密的乐高积木,却没有说明书,全凭感觉去拼装。而 AADvark 这个项目,试图从根本上改变这一局面。它的核心目标,是让AI Agent(智能体)来扮演那个经验丰富的“装配大师”,结合一个严谨的“强验证器”作为质检员,实现从零件库到动态、正确装配体的自动化、智能化生成。
简单来说,AADvark是一个系统。你给它一堆三维零件模型(比如螺丝、轴承、齿轮、外壳),再告诉它一个目标(比如“组装一个能转动的齿轮箱”),系统内的AI Agent就会像工程师一样思考,分析零件间的配合关系,自动调用CAD软件的API进行装配操作。而“强验证器”则在一旁实时监督,检查每一步装配是否符合物理规则(如是否穿透、是否过约束),确保最终结果的正确性。这不仅仅是“自动化”,更是“智能化”,它让CAD软件从被动的绘图工具,变成了能理解设计意图、主动完成复杂任务的协作伙伴。
2. 系统核心架构与设计思路拆解
AADvark的成功,并非依赖于某个单一的“超级AI模型”,而是一个精心设计的、多模块协同的系统工程。其架构可以清晰地分为三个层次:感知与规划层、执行与操作层、验证与反馈层。理解这个架构,是理解其如何工作的关键。
2.1 感知与规划层:AI Agent的“大脑”
这是系统的智能核心。它的任务是将一堆杂乱的零件和模糊的指令,转化为一系列可执行的装配步骤。这个过程模仿了人类工程师的思维流程。
第一步:零件特征解析与知识提取。 AI Agent首先需要“看懂”每一个零件。它并非简单地读取模型的三角面片,而是通过几何特征识别算法(如基于边界表示B-Rep的分析)提取关键信息:
- 几何特征 :平面、圆柱面、球面、孔、凸台、螺纹等。
- 工程特征 :配合面、安装孔、键槽、止口等。
- 属性信息 :材料、精度等级、标准件代号(如GB/T 5780 M10x50)。 Agent会将这些信息构建成一个结构化的“零件知识图谱”。例如,一个“深沟球轴承6204”会被识别为:包含一个内圆柱面(与轴配合)、一个外圆柱面(与座孔配合)、两个端平面,并且它是一个标准件,具有固定的尺寸系列。
第二步:装配意图理解与关系推理。 这是最体现“智能”的一步。系统需要理解用户的指令,比如“组装一个皮带传动机构”。AI Agent会基于内置的机械原理知识库(可以是规则库,也可以是小样本微调过的语言模型)进行推理:
- 功能匹配 :在零件库中寻找能实现“皮带传动”功能的组件——至少需要两个皮带轮、一根皮带、支撑轴和轴承座。
- 关系推断 :推断零件间的配合关系。例如,轴与皮带轮之间通常是“过盈配合”或“键连接”,轴承与轴是“间隙配合”,轴承与座孔是“过盈配合”,两个皮带轮的轴线必须平行。
- 约束类型选择 :将物理关系映射为CAD软件中的具体约束命令。例如,“同轴”对应“同心约束”,“端面对齐”对应“重合约束”,“皮带连接”可能被分解为“两个圆的相切约束”加上一个“皮带”柔性连接的定义。
第三步:生成装配序列与路径规划。 确定了“谁和谁配合”之后,AI Agent需要规划一个合理的装配顺序。这类似于解决一个空间规划问题,需要避免装配过程中的空间干涉。它可能会采用图搜索算法(如拓扑排序),以“基础件”(通常是机架或底座)为根节点,按照依赖关系(例如,必须先装轴承,才能装轴;先装轴,才能装齿轮)生成一个有序的装配步骤列表。对于复杂装配,它甚至需要规划零件的临时移动路径,以避免碰撞。
注意 :这里的AI Agent不一定是一个庞大的通用模型(如GPT-4)。在实践中,它更可能是一个“专家系统”与“小型学习模型”的结合体。规则引擎处理明确的、标准的装配关系(如螺栓螺母配对),而一个经过微调的视觉-语言模型(VLM)或图神经网络(GNN)来处理更模糊、更依赖上下文的配合关系判断。
2.2 执行与操作层:AI Agent的“双手”
规划得再好,也需要落到实处。这一层负责与真实的CAD软件交互,将抽象的装配指令转化为具体的软件操作。
核心:CAD API的封装与驱动。 AADvark不可能直接操控鼠标和键盘。它必须通过CAD软件提供的应用程序接口(API)来操作。不同的CAD软件有不同的API(如SolidWorks的SOLIDWORKS API, AutoCAD的.NET API, FreeCAD的Python API)。系统需要封装一套统一的“装配动作指令集”,然后在底层适配不同的CAD软件。
- 统一指令 :
ApplyConstraint(partA, partB, constraintType, geometryFaceA, geometryFaceB) - 软件适配 :在SolidWorks中,上述指令可能翻译为调用
AssemblyDoc::AddMate3方法;在FreeCAD中,则可能调用App::Document.addObject(‘Assembly::Constraint’, ...)。
动态交互与状态同步。 AI Agent在执行每一步装配后,需要从CAD软件中读取最新的模型状态(各零件的位置、约束状态)。这形成了一个“感知-决策-执行”的闭环。例如,Agent执行了一个“同心约束”后,会立即通过API检查这两个零件是否真的实现了同轴,以及是否引发了意外的干涉。这个实时反馈对于后续步骤的调整至关重要。
2.3 验证与反馈层:强验证器的“火眼金睛”
这是保证结果可靠性的安全网,也是AADvark中“强验证器”的核心价值所在。AI Agent可能会犯错,比如选择了错误的配合面,或者遗漏了某个必要的约束。强验证器的作用就是进行二次校验,确保装配体的物理正确性。
5629




被折叠的 条评论
为什么被折叠?



