1.一种工业机器人生产线的虚拟仿真方法,包括如下步骤:
步骤一,根据实际的工业机器人生产线的相关信息构建所需的三维模型,进行贴图渲染和文件格式转换等操作,并导入Unity3D中,从而构建逼真的工业设备模型;
步骤二,针对不同工业设备模型的属性和功能,利用UI工具包设计相应的模型属性面板,通过操作属性面板来控制模型的运行状况;
步骤三,采用JSON文件对仿真环境中设备模型的位置和姿态进行本地持久化存储,并将构建好的设备模型集成为一个多种类的设备模型库;
步骤四,设计模型碰撞检测功能,精确定位设备控制程序的错误,便于检查和维修;
步骤五,使用数据库作为虚实信号的交互中心和存储用户信息与工业设备历史数据的存储中心,实现各类信号的通信交互,满足系统复杂数据的存储需求;
步骤六,基于上述步骤,根据生产线的实际情况,快速地构建出工业机器人生产线仿真场景,完成相应的虚拟调试工作;
所述步骤一具体包括:
先在SoildWorks软件中对工业设备进行等比例建模,再将建好的模型文件导入3DMax软件中进行贴图、渲染的处理,然后将处理好的模型转换成Unity3D引擎可支持导入的FBX文件格式;
机器人生产线中常用的工业设备按照功能种类分类,包括机器人、输送带、传感器、车床以及工具手;机器人模型需按照机器人的物理参数进行运动学建模,并能按照关节角数据进行位姿改变;输送带模型需能控制输送速度和方向,传感器模型被触发时需能释放触发信号,车床模型需能控制门的开启与关闭,工具手模型需具备抓取、焊接、打磨的功能;
所述的机器人是六轴机器人,建模过程具体包括:
对选用的六轴机器人在SoildWorks软件中进行等比例建模,注意轴与轴之间的相对位置关系;若选用市面上常用的机器人型号,则可通过从机器人公司官网下载等途径直接获取到精确的模型文件;
将建好的模型文件导入3DMax软件中进行贴图、渲染的处理,然后将其转换成FBX文件格式;
将FBX文件格式的机器人模型文件导入Unity3D中,按照实际机器人的物理参数对机器人模型进行运动学建模,并使其能按照关节角数据进行位姿改变;六轴机器人的前三个轴用来描述末端位置,后三个轴用来描述末端姿态;根据D‑H参数表设置关节间的父子级关系、连杆参数以及关节变量,D‑H参数表如下:机器人D‑H参数表
因为工具坐标系TCP与机器人最后一个轴相连接,所以六轴机器人的前三个轴和后三个轴分别确定了TCP的位置和姿态;机器人运动学正向求解就是根据6个轴的关节角计算出机器人末端位姿的过程,且解出解为唯一解;机器人相邻连杆之间的转换关系如式(1)所示,将D‑H参数表中的数据代入转换公式即可得到相邻连杆的转换矩阵;
机械臂各连杆转换矩阵如公式(2)所示:
将上述所求得的六轴机器人各连杆转换矩阵依次相乘,可得到机器人末端相对于基坐标系的转换矩阵 机器人工具坐标系TCP相对于基坐标系的位置为(px,py,pz),如公式(3)所示;机器人工具坐标系相对于基坐标系的姿态,如公式(4)所示;通过C#脚本编程,开发机器人类的运动学正解函数库,用于机械臂末端工具坐标系的仿真工作;
2.根据权利要求1所述的方法,其特征在于,所述步骤二具体包括:
属性面板通过Unity3D引擎中的UGUI进行开发;
仿真系统中的属性面板通过基础元素的相互组合实现,根据设备的种类和功能搭配排列出简洁、易操作的界面;从设备模型库中拖拽模型图标时,系统会自动解析图标对应的配置文件,获取拖拽模型的类型、ID和路径信息,从而加载模型和克隆该模型UI面板,并将面板与模型ID保存为键值对数据;当鼠标点击场景中的模型时,被点击模型ID与保存的ID进行匹配,若匹配结果一致就显示ID对应的属性面板,否则就将该面板隐藏;
模型仓库中的每个模型均配有各自的属性面板,属性面板需根据物理设备的特性使用不同的UI控件并控制模型不同的功能。
3.根据权利要求1所述的方法,其特征在于,所述步骤三具体包括:
采用JSON文件对仿真环境中模型的数据信息进行存储,具备存档和读档的功能;存档时,遍历场景中存在的模型对象,对模型的ID、名称、类别、介绍等配置信息以及位置坐标、旋转坐标进行序列化处理,序列化后的JSON字符串文件可以在任何装有仿真系统的PC机上被再次打开与编辑;读档时,遍历JSON字符串文件,对文件中的数据进行反序列化操作,根据解析的配置信息加载相应的设备模型和属性面板,并按照位置坐标和旋转坐标确定其姿态,最终重现保存时的仿真场景;
若场景中的模型被删除,JSON文件将对应删除该模型数据信息;若在场景中添加新的模型,新添加模型的配置信息和坐标信息将被添加进JSON文件中;若场景中模型的位置和姿态发生改变,JSON文件中该模型的坐标数据将被对应修改;
最后,将所有附带属性面板和数据信息的设备模型添加进模型仓库中,构成一个完善的工业设备模型库。
4.根据权利要求1所述的方法,其特征在于,所述步骤四具体包括:
采用包围盒法的方式对模型进行碰撞检测的设计;采用Unity引擎提供的球体、立方体、胶囊体等包围盒结合机械臂各轴的工作空间与预警区域的方法进行检测;先按照形状和工作安全区域为机械臂各个关节轴创建碰撞盒,当碰撞盒发生碰撞时触发相应的函数事件;在函数响应事件中判断机械臂所接触物体的标签,若物体标签不是机械臂工作目标对象,便判定为发生碰撞;若碰撞发生,则立即停止仿真、发出警告信息,及时响应由于程序出错而造成的碰撞事件并进行相关处理。
5.根据权利要求1所述的方法,其特征在于,所述步骤五具体包括:
采用MySQL数据库作为工厂业务数据存储中心,MySQL数据库表包括工厂信息表、设备信息表、设备数据表、日志表、用户记录表,其中工厂信息表为主表,与其他表的关系均为一对多进行关联;采用Redis数据库作为物理信号和虚拟信号的交互中心,数据采集软件中的控制设备I/O信号、机器人关节角等数据都会以key‑value的形式存储在Redis中,并且数据值根据控制程序运行情况实时刷新;
仿真系统会实时读取数据库中保存的数据值,通过实际信号值驱动仿真运行并将仿真运行状态以key‑value形式保存至数据库中;数据采集软件同步从交互中心获取仿真模型运行状态,并反馈至实际控制设备中,从而实现物理世界和虚拟环境的信号交互。
6.根据权利要求1所述的方法,其特征在于,所述步骤六具体包括:
设备模型库中的模型可通过鼠标点击、拖拽的方式被快速加载到仿真环境中,然后使用者能通过坐标定位的方式进行整体布局;所以,只需通过拖拽模型与坐标定位的方式就能快速搭建所需的虚拟生产线,再通过操作模型属性面板来控制和调整虚拟生产线的大小、位置和姿态,最后结合模型碰撞检测功能和采集的物理设备控制信号实现工业机器人生产线的虚拟仿真。