IndustrialKit 是一个开源软件平台,用于创建实现自动化生产设计和控制的应用程序。该框架提供了可以直接使用或扩展和定制的模块,以满足更具体的使用场景。
主要的 IndustrialKit 框架代码库支持 macOS、iOS/iPadOS、visionOS,需要 Xcode 15.0 或更高版本。IndustrialKit 框架的 Base SDK 版本分别为 14.0、17.0 和 1.0。
可以通过 SPM 安装 CareKit。创建一个新的 Xcode 项目,然后导航到File > Add Package Dependences
。输入 URL https://github.com/MalkarovPark/IndustrialKit
并选择 main
分支。接下来,选择目标项目并点击 Add Package
。
此示例演示了一个完全构建的 IndustrialKit 应用程序。
IndustrialKit 是一个总体包,提供了构建工业应用所需的所有类、结构、函数和枚举。
IndustrialKitUI 提供了一些视图和修饰符,用于设计和数据处理任务。
由 Workspace 类描述的是生产复杂的基础,它由机器人、工具、零件组成,并由全局程序控制,全局程序表现为一系列块 - 算法元素。因此,该类包含四种工作空间对象类型(WorkspaceObject 类)的值的数组属性,这些对象类型继承自 Robot、Tool、Part 以及类型为 WorkspaceProgramElement 的全局控制程序的元素。
对于对象数组,使用标准的一组函数,包括添加、删除、选择、取消选择、按名称搜索。但是,某些功能可能不适用于某些对象。
Robot 类描述了生产系统的一个对象,该对象使用空间位置表示并能够将其机械臂(机械手)端点移动到这些位置。机器人在其属性中包含与 PositionsProgram 类相关的位置程序的数组。
位置程序包含类型为 PositionPoint 的目标位置数组。位置描述了位置 (x, y, z)、其中的旋转角度 (r, p, w)、运动类型和速度。
机器人可以添加、删除和编辑其程序。有用于选择和启动、暂停、重置程序的功能。
技术复杂中使用的其他类型的工业设备由 Tool 类描述。工具可以是独立的,也可以连接到机器人机械手的端点。
与工具的交互通过 opcides 和 infocodes 组织。opcode 负责可执行的技术操作 - 当在 spectial 属性中设置数值时,与代码关联的操作的开始将被初始化。此属性的默认值为 -1,表示不执行任何操作。当操作完成时,opcode 的值将重置为此值。
操作码序列包含在程序数组中,元素是 OperationProgram 类,具有一组具有 OperationCode 类的数值代码值。程序管理与机器人类似 - 有用于添加、删除、选择和执行的函数。
零件构成环境,例如桌子、驱动器、安全围栏等,也代表执行设备直接交互的对象 - 例如机器人组装的零件。由 Part 类描述。
此类有一组属性,用于描述零件的外观和物理属性。零件模型可以通过参数方式获得 - 从长度数组和几何基元的名称获得,也可以从场景文件导入。
连接器用于连接和控制工业设备。它们分为两个子类型 - 用于切换机器人和工具,分别由 RobotConnector 和 ToolConnector 类描述。
各个模型的连接器继承自这些基类,并具有其自身特定的函数和变量重新定义。
通过 connect 函数执行与设备的连接,断开连接则使用 disconnect。连接状态由 Bool 属性返回。设备状态在字典数组中返回。它们包含返回属性的 String 名称和 Any 类型的值。连接参数在相应的结构数组中设置。
此控制器用于连接和控制渲染场景中的机器人和工具模型。由 RobotModelController 和 ToolModelController 子类表示。
此外,控制器可以根据指定的参数更改模型。
一些函数,可以在框架中使用,也可以由开发人员独立使用。
mismatched_name – 查找并更新不匹配的名称;
origin_transform – 通过原点旋转变换输入位置;
apply_bit_mask – 将特定类别位掩码 int 值应用于输入的节点及其所有嵌套节点;
pass_robot_preferences – 在机器人之间传递参数,例如原点位置/旋转和工作空间缩放;
pass_positions_programs – 在机器人之间传递由名称指定的位置程序。
element_from_struct – 通用函数,通过相应的文件结构数据初始化工作空间程序元素。
添加了 Float 的方法,用于将弧度转换为度数 – to_deg,反之亦然 – to_rad。
为 SCNNode 提供了新方法 – remove_all_constraints 以删除约束并重置默认位置,remove_all_child_nodes 以从此节点中删除所有子节点。
扩展提供 UIImage (UIKit) 的 pngData 缺失方法。
NSImage、NSColor 的别名分别将它们用作 UIImage 和 UIColor (AppKit)。
IndustrialKit 平台的内置编程语言形式化了机器人系统算法化的方法,并组织了各种机器人和设备工具的统一连接和控制。
SceneKit 节点的简单视图。仅由 SCNNode 初始化,并具有透明背景。
它具有双击以重置 macOS 上的相机位置的功能。
用于显示各种对象。可以显示带有图像或 SceneKit 场景模型的描述。
可以与从 WorkspaceObject 继承的对象结合使用。卡片初始化程序传递对象 card_info 方法返回的值。
小卡片没有副标题。
程序元素卡片。如果相应的程序元素正在执行,则标记。
寄存器卡允许编辑寄存器值。
提供位置编辑,例如工作空间中生产对象的位置或机器人的目标位置。编辑窗口包含两组三个可编辑的参数
每个可编辑参数都由一个字段和一个关联的步进器组成。所描述的组序列可以以垂直、水平或其他堆栈显示。
提供使用滑块的位置编辑。对于位置,应设置上限(下限值为 0)。旋转限制在 -180º – 180º 范围内。
用于编辑机器人技术综合体的工作区内存的视图。
用于可以指定从中获取数据的元素、寄存器。此功能由寄存器选择器控件提供。可以选择一个或多个寄存器。
用于编辑不同类型的 IMA 程序元素(执行器、修饰符和逻辑)的视图。
输出 WorkspaceObjectChart 图表的数组,可以通过分段选择器在它们之间切换(如果数组的数组的计数大于一)。图表的类型由其属性确定。
按 StateItem 数组输出统计信息。如果元素彼此嵌套,它们将显示在相应的披露组中。图标由可用的 SF Symbols 的名称定义。
用于编程和处理工作空间及其组成工业设备的通用 UI 控件。此示教器的内容因特定的选定对象及其类型(工作空间、机器人或工具)而异。如果未选择合适的对象,则此控件的内容为空白。
空间示教器允许您设置程序元素的序列并控制它们的执行。
GitHub 是我们 IndustrialKit 的主要论坛。欢迎提出关于问题、问题或想法的 issue。
本项目根据 Apache 2.0 许可证的条款提供。请参阅 LICENSE 文件。