创建动态夹具
试验夹具动态设计
2 uo t eN H E g er ga dT c nlg eerhC ne n u rv c , fi 3 0 9 C ia .A t i V ni ei n eh o y R sac e t A h i oi e He 0 0 , hn ) mo v n n o r P n e2
e c n t e vbrto e t Ac o dig t h p e r n e a d t e l c to ft e e e to i o o n s,a n e o h i ai n t s. c r n o t e a p a a c n h o a in o h lcr n c c mp ne t
Ab t a t I r e o t s h e ib lt fe e to i o o e t fa t mo i s,t e v b a in r l. s r c : n o d rt e tt e r l ii o lc r n c c mp n n so u o bl a y e h i r t ei o a ii e tn sn c sa y b l y tsi g i e e s r .Th x u e,wh c su e oc a n x t l cr n c c mp ne t so e t ef tr i ih i s d t lmp a d f he ee to i o o n s,i n i o h s mp ra tc mp n n s i he t si g T e d na c p roma e o h x u e h s g e ti fu fte mo ti o t n o o e t n t e tn . h y mi e r nc fte f t r a r a n — f i l
基于ABB搬运工业机器人离线编程与仿真研究
基于ABB搬运工业机器人离线编程与仿真研究作者:田小龙王国章来源:《科技风》2022年第34期摘要:针对工业机器人在线编程低效和碰撞等问题,本文采用离线编程解决这些问题。
在实际应用中离线编程也便于修改,满足不同设计需要。
在RobotStudio中,搭建搬运工作站,规划搬运路径设计动作流程,根据搬运设计要求编制相关程序。
图形仿真优化路径,避免碰撞和优化程序,达到最优效果。
离线编程实现最优路径编程,避免在线编程碰撞,达到高效和安全的效果。
ABB搬运工业机器人离线编程为解决工业机器人搬用问题提供了一定参考。
关键词:工业机器人;工作站;路径;离线编程;仿真中图分类号:TP242.2文献标识码:AThe Research on Off-line Programming andSimulation of Handling Industrial Robot Based on ABBTian XiaolongWang GuozhangHebei professional technology institute of Machinery and ElectricityHebeiXingtai054000Abstract:Aiming at the problems of inefficiency and collision in online programming of industrial robots,offline programming is adopted to solve these problems.In practical applications,offline programming is also easy to modify to meet different design needs.In RobotStudio,the handling workstation is built,the transportation path is planed,the action process is designed and the relevant procedures is compiled according to the transportation design requirements.The graphics simulation optimizes the path,avoids collision and optimizes the program,to achieve the optimal results.Off-line programming realizes optimal path programming,avoids online programming collision,and achieves the effect of high efficiency and safety.ABB offline programming provides some reference for solving the problem of industrial robot.Keywords:Industrial robot;Workstation;Path;Off-line programming;Simulation工业机器人具有自动化程度高、生产率高、运行可靠等优点,同时随着人力的成本越来越高,工业机器人取代工人进行生产成为一种趋势。
机床夹具设计步骤和实例
机床夹具设计步骤和实例机床夹具是用于在机床上夹持工件或刀具的装置,用于保持工件的位置稳定,使其能够被加工。
机床夹具设计的步骤主要包括需求分析、夹具类型选择、夹具基础结构设计、夹具强度计算、夹具定位系统设计、夹具操作系统设计、夹具零件设计和夹具组装等。
以下为机床夹具设计步骤和一个实例:步骤1:需求分析首先,需要了解加工工件的要求和工艺流程。
通过与工艺人员或工程师的交流,了解工件的形状、材料、尺寸等特性,以及工件的精度要求、加工工艺和工时要求等。
根据需求分析,明确夹具的基本功能、定位方式和操作方式。
步骤2:夹具类型选择根据加工工件的特性和加工工艺的要求,通过参考手册或专业书籍选择合适的夹具类型。
常见的夹具类型包括平板夹具、顶升夹具、转角夹具、滑块夹具、气垫夹具等。
根据不同的工件形状和加工要求,选择适合的夹具类型。
步骤3:夹具基础结构设计根据工件的形状和夹持要求,设计夹具的基础结构。
夹具的基础结构通常由夹紧装置、支撑装置和定位装置组成。
夹紧装置主要用于夹持工件,支撑装置用于保持工件的平衡和稳定,定位装置用于确保工件的位置准确。
步骤4:夹具强度计算根据夹具类型和加工工件的特性,计算夹具的强度。
夹具的强度计算包括静态强度和动态强度两个方面。
静态强度主要考虑夹具在夹持工件时的受力情况,包括切削力、惯性力等;动态强度主要考虑夹具在工件加工过程中的振动和冲击力,保证夹具结构能够承受夹持工件时的各种力。
步骤5:夹具定位系统设计根据工件的定位要求,设计夹具的定位系统。
夹具的定位系统应能够满足工件的精度要求,并确保工件的位置准确。
定位系统常采用定位销、定位块等形式,根据工件的形状和加工特点选择合适的定位方式。
步骤6:夹具操作系统设计根据夹具的使用要求,设计夹具的操作系统。
夹具的操作系统主要包括夹紧装置的控制方式和操作机构的设计。
根据夹紧力的大小和控制精度的要求,选择合适的液压夹紧系统或气动夹紧系统。
步骤7:夹具零件设计根据夹具的基础结构、定位系统和操作系统的设计要求,设计夹具的各个零件。
ABB robotstudio使用详细步骤
搬运码垛工作站建模1、创建机器人系统2、创建动态输送链3、创建动态夹具4、工作站逻辑连接5、添加IO(设置好需重启)6、示教目标点(同步到RAPID)7、RAPID编程一、创建机器人系统1、创建空工作站2、导入IRB 260机器人模型3、从布局创建机器人系统,勾选Chinese和709-1网络二、创建动态输送链1、添加输送链并修改位置2、创建600*400*200的物料并修改位置3、添加一个smart组件4、添加source组件5、设置物料本地原点6、添加LINEMOVER和QUEUE组件7设置LINEMOVER属性8、添加面传感器组件9、设置输送链不能被传感器检测10、设置SC_输送链的属性连接11、设置信号连接12、添加信号处理组件,用于检测传感器下降沿13、传感器下降沿触发source进行copy14、传感器与SC输送链的输出联系15、添加仿真开始结束组件,用于激活传感器16、添加置位复位组件,对仿真开始结束信号进行保持17、18、进行仿真设定选择SC——输送链进行验证三、创建动态夹具1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘2、添加SMART组件3、添加ATTACHER和DETACHER组件4、设置属性5、添加一个线传感器组件6、线传感器设置属性7、设置吸盘工具不能被传感器检测8、把线传感器安装到吸盘(不更新位置,保持当前位置)9、设置属性连接10、添加信号及连接11、添加信号处理取非和锁定组件12、继续信号连接13、添加一个示教物料14、应用手动线性验证SC_工具四、工作站逻辑连接五、参考代码MODULE MainMoudlePERS tooldatatGrip:=[TRUE,[[0,0,200],[1,0,0,0]],[25,[0,0.00109327,116.889],[1,0,0,0],0,0,0]];!吸盘工具数据PERS loaddata LoadEmpty:=[0.01,[0,0,1],[1,0,0,0],0,0,0];PERS loaddata LoadFull:=[40,[0,0,50],[1,0,0,0],0,0,0];!有效载荷数据PERS robtarget pHome:=[[1620.00,-0.00,1331.59],[1.27986E-06,-0.707107,-0.707107,1.27986E-06],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!基准点PERS robtarget pActualPos:=[[1620,-1.87531E-14,1331.59],[1.27986E-06,-0.707107,-0.707107,1.27986E-06],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!实际点PERS robtargetpPick1:=[[1488.007792464,376.826660408,476.964684195],[0,0.707106307,0.7071 07256,0],[0,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路拾取目标点PERS robtarget pPlace1:=[[-292.446,1263.27,55.4492],[0,0.707107,0.707106,0],[1,0,2,0],[9E+09,9E+09,9E+09, 9E+09,9E+09,9E+09]];!1路放置基准点PERS robtarget pBase1_0:=[[-292.446294945,1263.272085268,55.449220723],[0,0.707107387,0.707106176,0],[1, 0,2,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路放置0度姿态PERS robtarget pBase1_90:=[[-391.976797324,1362.469634994,55.449159414],[0,1,-0.000030621,0],[1,0,3,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路放置90度姿态PERS robtarget pPick2:=[[1488.013130905,-358.406014736,476.965039287],[0,0.707106307,0.707107256,0],[-1,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS robtarget pPlace2:=[[-317.378,-1857.99,55.449],[0,0.707108,0.707106,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];PERS robtarget pBase2_0:=[[-317.378137718,-1857.993871961,55.448967354],[0,0.707107745,0.707105817,0],[-2,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS robtarget pBase2_90:=[[-407.525988074,-1755.902485322,55.449282402],[0,1,-0.000031217,0],[-2,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS speeddata MinSpeed:=[1000,300,5000,1000];PERS speeddata MidSpeed:=[2500,400,5000,1000];PERS speeddata MaxSpeed:=[4000,500,5000,1000];!搬运速度定义PERS bool bPalletFull1:=FALSE;PERS bool bPalletFull2:=FALSE;!逻辑布尔量,拾取后为UE,放置后为FALSEPERS num nCount1:=1;PERS num nCount2:=1;!输送链计数PROC Main()rInitAll;WHILE TRUE DOIF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THEN rPick1;rPlace1;ENDIFIF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THEN rPick2;rPlace2;ENDIFWaitTime 0.1;ENDWHILEENDPROCPROC rInitAll()Reset doGrip;pActualPos:=CRobT(\tool:=tGrip);pActualPos.trans.z:=pHome.trans.z;MoveL pActualPos,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pHome,MidSpeed,fine,tGrip\WObj:=wobj0;bPalletFull1:=FALSE;nCount1:=1;bPalletFull2:=FALSE;nCount2:=1;ENDPROCPROC rPick1()MoveJ Offs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0;MoveL pPick1,MinSpeed,fine,tGrip\WObj:=wobj0;Set doGrip;WaitTime 0.3;GripLoad LoadFull;MoveL Offs(pPick1,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROCPROC rPick2()MoveJ Offs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPick2,MinSpeed,fine,tGrip\WObj:=wobj0;Set doGrip;WaitTime 0.3;GripLoad LoadFull;MoveL Offs(pPick2,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROCPROC rPlace1()rPosition1;MoveJ Offs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveL pPlace1,MinSpeed,fine,tGrip\WObj:=wobj0;Reset doGrip;WaitTime 0.3;GripLoad LoadEmpty;MoveL Offs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJ Offs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount1:=nCount1+1;IF nCount1>20 THENbPalletFull1:=TRUE;ENDIFENDPROCPROC rPlace2()rPosition2;MoveJ Offs(pPlace2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPlace2,MinSpeed,fine,tGrip\WObj:=wobj0;Reset doGrip;WaitTime 0.3;GripLoad LoadEmpty;MoveL Offs(pPlace2,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJ Offs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount2:=nCount2+1;IF nCount2>20 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPosition1()TEST nCount1CASE 1:pPlace1:=Offs(pBase1_0,0,0,0);CASE 2:pPlace1:=Offs(pBase1_0,600+10,0,0);CASE 3:pPlace1:=Offs(pBase1_90,0,400+10,0);CASE 4:pPlace1:=Offs(pBase1_90,400+10,400+10,0);CASE 5:pPlace1:=Offs(pBase1_90,800+20,400+10,0);CASE 6:pPlace1:=Offs(pBase1_0,0,600+10,200);CASE 7:pPlace1:=Offs(pBase1_0,600+10,600+10,200);CASE 8:pPlace1:=Offs(pBase1_90,0,0,200);CASE 9:pPlace1:=Offs(pBase1_90,400+10,0,200);CASE 10:pPlace1:=Offs(pBase1_90,800+20,0,200);CASE 11:pPlace1:=Offs(pBase1_0,0,0,400);CASE 12:pPlace1:=Offs(pBase1_0,600+10,0,400);CASE 13:pPlace1:=Offs(pBase1_90,0,400+10,400);CASE 14:pPlace1:=Offs(pBase1_90,400+10,400+10,400);CASE 15:pPlace1:=Offs(pBase1_90,800+20,400+10,400);CASE 16:pPlace1:=Offs(pBase1_0,0,600+10,600);CASE 17:pPlace1:=Offs(pBase1_0,600+10,600+10,600);CASE 18:pPlace1:=Offs(pBase1_90,0,0,600);CASE 19:pPlace1:=Offs(pBase1_90,400+10,0,600);CASE 20:pPlace1:=Offs(pBase1_90,800+20,0,600);DEFAULT:TPErase;TPWrite "the Counter of line 1 is error,please check it!"; Stop;ENDTESTENDPROCPROC rPosition2()TEST nCount2CASE 1:pPlace2:=Offs(pBase2_0,0,0,0);CASE 2:pPlace2:=Offs(pBase2_0,600+10,0,0);CASE 3:pPlace2:=Offs(pBase2_90,0,400+10,0);CASE 4:pPlace2:=Offs(pBase2_90,400+10,400+10,0); CASE 5:pPlace2:=Offs(pBase2_90,800+20,400+10,0); CASE 6:pPlace2:=Offs(pBase2_0,0,600+10,200);CASE 7:pPlace2:=Offs(pBase2_0,600+10,600+10,200); CASE 8:pPlace2:=Offs(pBase2_90,0,0,200);CASE 9:pPlace2:=Offs(pBase2_90,400+10,0,200);CASE 10:pPlace2:=Offs(pBase2_90,800+20,0,200);CASE 11:pPlace2:=Offs(pBase2_0,0,0,400);CASE 12:pPlace2:=Offs(pBase2_0,600+10,0,400);CASE 13:pPlace2:=Offs(pBase2_90,0,400+10,400);CASE 14:pPlace2:=Offs(pBase2_90,400+10,400+10,400); CASE 15:pPlace2:=Offs(pBase2_90,800+20,400+10,400); CASE 16:pPlace2:=Offs(pBase2_0,0,600+10,600);CASE 17:pPlace2:=Offs(pBase2_0,600+10,600+10,600);CASE 18:pPlace2:=Offs(pBase2_90,0,0,600);CASE 19:pPlace2:=Offs(pBase2_90,400+10,0,600);CASE 20:pPlace2:=Offs(pBase2_90,800+20,0,600);DEFAULT:TPErase;TPWrite "the Counter of line 1 is error,please check it!"; Stop;ENDTESTENDPROCPROC rModify()MoveJ pHome,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pPick1,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase1_0,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase1_90,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pPick2,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase2_0,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase2_90,MinSpeed,fine,tGrip\WObj:=wobj0;ENDPROCENDMODULE。
《工业机器人仿真应用教程》教学大纲
《工业机器人仿真应用教程》课程标准1.课程概述本课程旨在提高学生在机器人方面的综合素质,着重使学生掌握从事机器人加工类企业中机器人工作所必备的知识和基本技能,初步形成处理实际问题的能力。
培养其分析问题和解决问题的学习能力,具备继续学习专业技术的能力;在本课程的学习中渗透思想道德和职业素养等方面的教育,使学生形成认真负责的工作态度和严谨的工作作风,为后续课程学习和职业生涯的发展奠定基础。
1.1课程定位《工业机器人仿真应用教程》课程是高级技工学校工业机器人应用与维护专业的专业课。
主要内容包括:Robot Studio软件的操作、建模、Smart组建的使用、轨迹离线编程、动画效果的制作、模拟工作站的构建、仿真验证以及在线操作。
1.2设计思路本课程教学最好采用理论与实际相结合的一体化教学方式,借助多媒体网络教室,一人一机,使用多媒体课件讲解与软件操作相结合。
理论教学中应帮助学生总结并灵活运用所学的相关知识,本着够用的原则讲授,切忌面面俱到。
对工业机器人仿真操作不作深入探讨,仅作一般性了解。
实践教学环节中对工业机器人Robot Studio仿真软件常用功能作简单介绍,重点培养学生使用软件对工业机器人进行基本操作、功能设置、二次开发、在线监控与编程、方案设计和检验。
教师教学中多联系生产实际并选用一些工业上经典的工业机器人使用案例进行讲解,提高学生对工业机器人进行应用开发、调试、现场维护的能力。
2.课程目标2.1知识目标1、了解机器人仿真软件,了解机器人仿真软件的应用。
2、掌握构建基本仿真工业机器人工作站的方法。
3、掌握码垛机器人工作站、焊接机器人工作站、打磨抛光机器人工作站的设计理念和设计方法。
4、掌握ABB 机器人仿真软件RobotStudio 中的建模功能,能运用所学制图软件在RobotStudio中进行建模。
5、掌握ABB 工业机器人离线轨迹编程方法。
6、了解ABB 机器人仿真软件RobotStudio 中的其它功能。
ABB-robotstudio使用详细步骤
搬运码垛工作站建模1、创建机器人系统2、创建动态输送链3、创建动态夹具4、工作站逻辑连接5、添加IO(设置好需重启)6、示教目标点(同步到RAPID)7、RAPID编程一、创建机器人系统1、创建空工作站2、导入IRB 260机器人模型3、从布局创建机器人系统,勾选Chinese和709-1网络二、创建动态输送链1、添加输送链并修改位置2、创建600*400*200的物料并修改位置3、添加一个smart组件4、添加source组件5、设置物料本地原点6、添加LINEMOVER和QUEUE组件7设置LINEMOVER属性8、添加面传感器组件9、设置输送链不能被传感器检测10、设置SC_输送链的属性连接11、设置信号连接12、添加信号处理组件,用于检测传感器下降沿13、传感器下降沿触发source进行copy14、传感器与SC输送链的输出联系15、添加仿真开始结束组件,用于激活传感器16、添加置位复位组件,对仿真开始结束信号进行保持17、18、进行仿真设定选择SC——输送链进行验证三、创建动态夹具1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘2、添加SMART组件3、添加ATTACHER和DETACHER组件4、设置属性5、添加一个线传感器组件6、线传感器设置属性7、设置吸盘工具不能被传感器检测8、把线传感器安装到吸盘(不更新位置,保持当前位置)9、设置属性连接10、添加信号及连接11、添加信号处理取非和锁定组件12、继续信号连接13、添加一个示教物料14、应用手动线性验证SC_工具四、工作站逻辑连接五、参考代码MODULE MainMoudlePERS tooldatatGrip:=[TRUE,[[0,0,200],[1,0,0,0]],[25,[0,0.00109327,116.889],[1,0,0,0],0,0,0]];!吸盘工具数据PERS loaddata LoadEmpty:=[0.01,[0,0,1],[1,0,0,0],0,0,0];PERS loaddata LoadFull:=[40,[0,0,50],[1,0,0,0],0,0,0];!有效载荷数据PERS robtarget pHome:=[[1620.00,-0.00,1331.59],[1.27986E-06,-0.707107,-0.707107,1.27986E-06],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!基准点PERS robtarget pActualPos:=[[1620,-1.87531E-14,1331.59],[1.27986E-06,-0.707107,-0.707107,1.27986E-06],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!实际点PERS robtargetpPick1:=[[1488.007792464,376.826660408,476.964684195],[0,0.707106307,0.7071 07256,0],[0,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路拾取目标点PERS robtarget pPlace1:=[[-292.446,1263.27,55.4492],[0,0.707107,0.707106,0],[1,0,2,0],[9E+09,9E+09,9E+09, 9E+09,9E+09,9E+09]];!1路放置基准点PERS robtarget pBase1_0:=[[-292.446294945,1263.272085268,55.449220723],[0,0.707107387,0.707106176,0],[1, 0,2,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路放置0度姿态PERS robtarget pBase1_90:=[[-391.976797324,1362.469634994,55.449159414],[0,1,-0.000030621,0],[1,0,3,0],[9E9,9E9,9E9,9E9,9E9,9E9]];!1路放置90度姿态PERS robtarget pPick2:=[[1488.013130905,-358.406014736,476.965039287],[0,0.707106307,0.707107256,0],[-1,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS robtarget pPlace2:=[[-317.378,-1857.99,55.449],[0,0.707108,0.707106,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];PERS robtarget pBase2_0:=[[-317.378137718,-1857.993871961,55.448967354],[0,0.707107745,0.707105817,0],[-2,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS robtarget pBase2_90:=[[-407.525988074,-1755.902485322,55.449282402],[0,1,-0.000031217,0],[-2,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];PERS speeddata MinSpeed:=[1000,300,5000,1000];PERS speeddata MidSpeed:=[2500,400,5000,1000];PERS speeddata MaxSpeed:=[4000,500,5000,1000];!搬运速度定义PERS bool bPalletFull1:=FALSE;PERS bool bPalletFull2:=FALSE;!逻辑布尔量,拾取后为UE,放置后为FALSEPERS num nCount1:=1;PERS num nCount2:=1;!输送链计数PROC Main()rInitAll;WHILE TRUE DOIF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THEN rPick1;rPlace1;ENDIFIF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THEN rPick2;rPlace2;ENDIFWaitTime 0.1;ENDWHILEENDPROCPROC rInitAll()Reset doGrip;pActualPos:=CRobT(\tool:=tGrip);pActualPos.trans.z:=pHome.trans.z;MoveL pActualPos,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pHome,MidSpeed,fine,tGrip\WObj:=wobj0;bPalletFull1:=FALSE;nCount1:=1;bPalletFull2:=FALSE;nCount2:=1;ENDPROCPROC rPick1()MoveJ Offs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPick1,MinSpeed,fine,tGrip\WObj:=wobj0;Set doGrip;WaitTime 0.3;GripLoad LoadFull;MoveL Offs(pPick1,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROCPROC rPick2()MoveJ Offs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPick2,MinSpeed,fine,tGrip\WObj:=wobj0;Set doGrip;WaitTime 0.3;GripLoad LoadFull;MoveL Offs(pPick2,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROCPROC rPlace1()rPosition1;MoveJ Offs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveL pPlace1,MinSpeed,fine,tGrip\WObj:=wobj0;Reset doGrip;WaitTime 0.3;GripLoad LoadEmpty;MoveL Offs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJ Offs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount1:=nCount1+1;IF nCount1>20 THENbPalletFull1:=TRUE;ENDIFENDPROCPROC rPlace2()rPosition2;MoveJ Offs(pPlace2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPlace2,MinSpeed,fine,tGrip\WObj:=wobj0;Reset doGrip;WaitTime 0.3;GripLoad LoadEmpty;MoveL Offs(pPlace2,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJ Offs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount2:=nCount2+1;IF nCount2>20 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPosition1()TEST nCount1CASE 1:pPlace1:=Offs(pBase1_0,0,0,0);CASE 2:pPlace1:=Offs(pBase1_0,600+10,0,0);pPlace1:=Offs(pBase1_90,0,400+10,0);CASE 4:pPlace1:=Offs(pBase1_90,400+10,400+10,0); CASE 5:pPlace1:=Offs(pBase1_90,800+20,400+10,0); CASE 6:pPlace1:=Offs(pBase1_0,0,600+10,200);CASE 7:pPlace1:=Offs(pBase1_0,600+10,600+10,200); CASE 8:pPlace1:=Offs(pBase1_90,0,0,200);CASE 9:pPlace1:=Offs(pBase1_90,400+10,0,200);CASE 10:pPlace1:=Offs(pBase1_90,800+20,0,200);CASE 11:pPlace1:=Offs(pBase1_0,0,0,400);CASE 12:pPlace1:=Offs(pBase1_0,600+10,0,400);CASE 13:pPlace1:=Offs(pBase1_90,0,400+10,400);CASE 14:pPlace1:=Offs(pBase1_90,400+10,400+10,400); CASE 15:pPlace1:=Offs(pBase1_90,800+20,400+10,400); CASE 16:pPlace1:=Offs(pBase1_0,0,600+10,600);CASE 17:pPlace1:=Offs(pBase1_0,600+10,600+10,600);pPlace1:=Offs(pBase1_90,0,0,600);CASE 19:pPlace1:=Offs(pBase1_90,400+10,0,600);CASE 20:pPlace1:=Offs(pBase1_90,800+20,0,600);DEFAULT:TPErase;TPWrite "the Counter of line 1 is error,please check it!"; Stop;ENDTESTENDPROCPROC rPosition2()TEST nCount2CASE 1:pPlace2:=Offs(pBase2_0,0,0,0);CASE 2:pPlace2:=Offs(pBase2_0,600+10,0,0);CASE 3:pPlace2:=Offs(pBase2_90,0,400+10,0);CASE 4:pPlace2:=Offs(pBase2_90,400+10,400+10,0);CASE 5:pPlace2:=Offs(pBase2_90,800+20,400+10,0);CASE 6:pPlace2:=Offs(pBase2_0,0,600+10,200);CASE 7:pPlace2:=Offs(pBase2_0,600+10,600+10,200);CASE 8:pPlace2:=Offs(pBase2_90,0,0,200);CASE 9:pPlace2:=Offs(pBase2_90,400+10,0,200);CASE 10:pPlace2:=Offs(pBase2_90,800+20,0,200);CASE 11:pPlace2:=Offs(pBase2_0,0,0,400);CASE 12:pPlace2:=Offs(pBase2_0,600+10,0,400);CASE 13:pPlace2:=Offs(pBase2_90,0,400+10,400);CASE 14:pPlace2:=Offs(pBase2_90,400+10,400+10,400);CASE 15:pPlace2:=Offs(pBase2_90,800+20,400+10,400);CASE 16:pPlace2:=Offs(pBase2_0,0,600+10,600);CASE 17:pPlace2:=Offs(pBase2_0,600+10,600+10,600);CASE 18:pPlace2:=Offs(pBase2_90,0,0,600);CASE 19:pPlace2:=Offs(pBase2_90,400+10,0,600);CASE 20:pPlace2:=Offs(pBase2_90,800+20,0,600);DEFAULT:TPErase;TPWrite "the Counter of line 1 is error,please check it!"; Stop;ENDTESTENDPROCPROC rModify()MoveJ pHome,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pPick1,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase1_0,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pBase1_90,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pPick2,MinSpeed,fine,tGrip\WObj:=wobj0;MoveJ pBase2_0,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pBase2_90,MinSpeed,fine,tGrip\WObj:=wobj0; ENDPROCENDMODULE。
完善机器人仿真工作流程
2. 编辑立方体放置指令
编辑立方体放置指令的具体步骤如下。
611..操作步骤操(作12)步)骤~((1(4121) )~(14) 712121..操..操作作步步骤骤操.(操(作2作2)1步步)~骤(骤4()(152)521))~ ( )(~(417)17)) 813132..操..操作作步步骤骤操.(操(作5作2)步2步)~骤(7()(158 ) 骤)((~12)87)) 941143..操..操作作步步骤骤操(.操(作8作)2步3步)骤~(((214923)) )骤~((2(4)189)) 1500.5操..操作作步步骤骤(.(操92)作0)~步(骤11()(920 ))~(1)
工业机器人离线编程与仿真
(基于KUKA)
Car 情报局
任务四
项目四 模型组件的高级应用
完善机器人仿真工作流程
目录
任务描述
Car 情报局
任务知识
任务实施
项目小结
任务描述
Car 情报局
上次任务,我们给输送链添加了工作逻 辑,然而在仿真过程中,夹具虽然关闭了, 但是机器人却没能抓住立方块,说明还需 要进一步完善仿真过程中各个模型之间的 配合。本次任务,我们就来学习完善机器 人仿真工作流程的操作。
机器人运动 程序流程图
任务知识
任务知识
1 机器人运动工作流程 2 离线编程系统中机器人运动的轨迹规划
Car 情报局
任务知识
二、离线编程系统中机器人运动的轨迹规划
离线编程系统除了对机器人静态位置进行运动 学计算外,还应该对机器人在工作空间的运动轨 迹进行仿真。由于不同的机器人厂家所采用的轨 迹规划算法差别很大,离线编程系统应对机器人 控制柜中所采用的算法进行仿真。
ABB虚拟仿真技术
1.如何安装RS6(1)介绍了如何在robotstudio官网下载软件已经安装步骤2.版本说明(1)介绍了软件的使用和权限情况已经激活的方法(2)介绍了高级版和基础班的区别3.软件菜单栏的介绍(1)介绍了菜单栏中文件/基本/建模/仿真/控制器/RAPID/Add-Ins菜单栏的作用和按钮的作用。
4.导入机器人(1)创建一个空工作站(2)机器人导入和工具的添加5.为机器人安装工具6.放置周边的对象(1)在机器人周围放置工作台propeller table(2)如何显示机器人当前工具的工作区域(3)如何移动工作台到合适位置(4)添加盒子Curve_thing(与工作台的长宽一致)并用两点法将盒子放置到工作台上。
7.建立机器人系统(1)将工作站保存到自定义位置(2)从布局创建系统(目录最好不要有中文)。
8.手动操纵机器人(1)在非要的情况下如何移动工业机器人在移动框架询问中要选择是。
(2)手动关节移动机器人各轴。
(3)工具的线性移动、重定位移动。
(4)回到机器人原点。
(5)手动关节运动、手动线性运动。
9.创建工件坐标(1)用户框架下用三点法创建工件坐标10.创建运动轨迹(1)创建一个空路径(z轴下去走方形)(2)如何在路径中示教各个点。
(3)检查路径的到达能力。
(4)自动配置参数(轴配置)。
(5)沿着路径移动。
11.建模功能的使用及模型的导入(1)在软件中利用托盘基本尺寸创建一个矩形并导出几何体。
(2)将第三方软件创建的模型导入rs。
12.测量工具的使用(1)直线测量/角度测量/直径测量/最短距离测量13.创建机械装置(1)创建滑台滑块机械装置(设备)(2)将滑台滑块添加到链接(3)定义轴和运动范围(4)创建姿态和原点位置姿态(5)设置姿态之间的转换时间(6)保存为库文件14.创建用户工具(1)将导入的3D模型创建为工具。
(2)调整模型的位置并修改本地原点与大地坐标系一致①三点法放置模型②设定位置③旋转模型(3)创建框架,设定为表面的法线方向。
《工业机器人工程应用虚拟仿真》课程标准
《工业机器人工程应用虚拟仿真》课程标准学时:72学分:4适用专业及学制:三年制、机电技术应用(机器人方向)、全日制审定:机电技术教学部一、制定依据本课程是机电技术应用(机器人方向)专业核心课程。
本标准依据《中职国家专业教学标准》而制定。
二、课程性质在本课程中,通过项目主导、任务驱动教学的方法,对ABB公司的RObotStUdiO软件的操作、建模Smart组件的使用、轨迹离线编程、动画效果的制作、模拟工作站的构建、仿真验证以及在线操作进行全面的讲解。
本课程适合从事工业机器人应用开发、调试、现场维护的工程技术人员学习和参考,特别是已掌握ABB机器人基本操作,需要进一步掌握工业机器人工程应用模拟仿真的工程技术人员参考。
三、课程教学目标本课程旨在提高学生在机器人方面的综合素质,着重使学生掌握从事机器人加工类企业中机器人工作所必备的知识和基本技能,初步形成处理实际问题的能力。
培养其分析问题和解决问题的学习能力,具备继续学习专业技术的能力;在本课程的学习中渗透思想道德和职业素养等方面的教育,使学生形成认真负责的工作态度和严谨的工作作风,为后续课程学习和职业生涯的发展奠定基础。
(一)知识目标1.能认识、安装工业机器人仿真软件。
2.会构建基本仿真工业机器人工作站。
3.能较熟练运用仿真软件RobotStudio中的建模功能。
4.能较熟练运用仿真软件RobotStudio对工业机器人离线轨迹编程。
5.会运用RobotStudio中Smart组件的应用。
6.会带导轨和变位机的机器人系统的创建与应用。
7.会SCreenMaker示教器用户自定义界面使用。
(二)能力目标1.本课程是操作性很强的,对于这种类型的课程,必须加强平时的练习,在重复操作练习中提高熟练软件,并掌握其中的操作原理2.能运用虚拟软件进行在线编辑I/O信号的操作、正确编程运动轨迹、正确布局机器人工作站。
3.学会举一反三的方法,能在课外学习新的编程指令,并能学习使用。
RobotStudioSmart组件创建动态夹具
RobotStudioSmart组件创建动态夹具⼀、创建动态夹具的smart组件⼆、添加组件☆Attacher—安装⼀个对象属性:Parent—安装的⽗对象Flange:机械装置或⼯具数据安装到Child:安装对象Mount:移动对象到其⽗对象Offset:当进⾏安装时位置与安装的⽗对象相对应Orientation:当进⾏安装时,⽅向与安装的⽗对象相对应输⼊:Execute:设为high(1)时去安装输出:Executed:设为high(1)时当此操作完成☆Detacher—拆装⼀个已安装的对象属性:Child:安装对象KeepPosition:如果是false,已安装对象回到原始的位置输⼊:Execute:设为high(1)时去取消安装输出:Executed:设为high(1)时当此操作完成☆LinSensor—检测是否有任何对象与两点之间的线段相交属性:Start:起点End:结束点Radius:感应半径SensorPart:已有的部件已靠近开始点SensorPoint:包含的点是线段与接近的部件相交输⼊:Active:设为1时去激活传感器输出:SensorOut:设为high(1)时当对象与线段相交时三、属性连结线传感器检测到的对象即为安装的⼦对象。
拆除的⼦对象即为安装的⼦对象。
四、IO信号diGripper:真空吸盘动作信号doVacuumOK:真空反馈信号五、IO连结吸盘SC_Gripper⼯作信号diGripper为“1”时,线传感器LineSensor开始激活(输⼊信号Active为“1”),线传感器⼀旦检测到对象,输出信号SensorOut即为“1”,开始执⾏安装Attacher动作(输⼊信号Execute为“1”),安装执⾏完成后(Executed为“1”),真空反馈信号doVacuumOK为“1”,程序部分执⾏拾取动作,吸盘⼯作信号diGripper为“0”时,即线传感器检测到的对象取反时,开始执⾏拆除Detacher动作(输⼊信号Execute为“1”),拆除执⾏完成后(Executed为“0”),真空反馈信号doVacuumOK为“0”。
robotstudio第五节
产品源隐藏。
1.单击“可见”,取 消勾选。
工作站逻辑设定
三、仿真运行
可以利用共享中的打包 功能,将制作完成的码 垛仿真工作站进行打包 并与他人进行分享。
doVacuumOK信号自 动置为0,验证完成后,
将演示用的产品取消 “可见”,并且取消 “可由传感器检测”。
1.单击“可见”,取 消勾选。同时取消 “可由传感器检测”
的勾选
工作站逻辑设定
一、查看机器人程序及I/O信号
完成设定Smart组件与 机器人端的信号通信, 从而完成整个工作站的
仿真动画。
1.单击“配置编辑器” 选择“I/O”
六.仿真运行
1.单击“I/O仿真器”
2.选择 “SC_InFeeder”
3.单击“播放” 4.单击“diStart”
用Smart组件创建动态输送链
六.仿真运行
1.复制品运动到输送 链末端,与限位传感 器接触后停止运动。
用Smart组件创建动态输送链
六.仿真运行
利用线性移动将复制品 移开,使其与面传感器 不接触,则输送链前端 会再次产生一个复制品, 进入下一个循环。如图
工作站逻辑设定
一、查看机器人程序及I/O信号
1.双击“Signal”
2.已定义的三个I/O信 号
工作站逻辑设定
一、查看机器人程序及I/O信号
1.单击“RAPID”选 项卡
2.展开MainMoudle
工作站逻辑设定
二、设定工作站逻辑
1.单击“工作站逻辑”
工作站逻辑设定
二、设定工作站逻辑
1.进入“信号与连接” 选项卡
1.单击“添加I/O Signals”。
ABB robotstudio使用详细步骤
搬运码垛工作站建模1、创建机器人系统2、创建动态输送链3、创建动态夹具4、工作站逻辑连接567、12312345、设置物料本地原点6、添加LINEMOVER和QUEUE组件7设置LINEMOVER属性8、添加面传感器组件9、设置输送链不能被传感器检测10、设置SC_输送链的属性连接11、设置信号连接12、添加信号处理组件,用于检测传感器下降沿13、传感器下降沿触发source进行copy14151617、18、进行仿真设定选择SC——输送链进行验证三、创建动态夹具1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘2、添加SMART组件3、添加ATTACHER和DETACHER组件4、设置属性5、添加一个线传感器组件678910111213140],0,0,0]];!吸盘工具数据PERSloaddataLoadEmpty:=[0.01,[0,0,1],[1,0,0,0],0,0,0]; PERSloaddataLoadFull:=[40,[0,0,50],[1,0,0,0],0,0,0];!有效载荷数据PERSrobtargetpHome:=[[1620.00,-0.00,1331.59],[1.27986E-06,-0.707107,-0.707107,1.27986E-06],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!基准点PERSrobtargetpActualPos:=[[1620,-1.87531E-14,1331.59],[1.27986E-06,-0.707107,-0.707107,1.27986E-06],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];!实际点!1路拾取目标点PERSrobtargetpPlace1:=[[-292.446,1263.27,55.4492],[0,0.707107,0.707106,0],[1,0,2,0],[9E+09,9E+09,9E+09,9E+09,9 E+09,9E+09]];!1!1!1PROCMain()rInitAll;WHILETRUEDOIFdiBoxInPos1=1ANDdiPalletInPos1=1ANDbPalletFull1=FALSETHENrPick1;rPlace1;ENDIFIFdiBoxInPos2=1ANDdiPalletInPos2=1ANDbPalletFull2=FALSETHEN rPick2;rPlace2;ENDIFWaitTime0.1;ENDWHILEENDPROCENDPROCGripLoadLoadFull;MoveLOffs(pPick1,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROCPROCrPick2()MoveJOffs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveLpPick2,MinSpeed,fine,tGrip\WObj:=wobj0;SetdoGrip;WaitTime0.3;GripLoadLoadFull;MoveLOffs(pPick2,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROCPROCrPlace1()rPosition1;ENDIFENDPROCMoveLpPlace2,MinSpeed,fine,tGrip\WObj:=wobj0; ResetdoGrip;WaitTime0.3;GripLoadLoadEmpty;MoveLOffs(pPlace2,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJOffs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0;nCount2:=nCount2+1;IFnCount2>20THENbPalletFull2:=TRUE;ENDIFENDPROCPROCrPosition1()TESTnCount1CASE1:CASE2:CASE3:CASE4:CASE5:CASE6:CASE7:CASE8:pPlace1:=Offs(pBase1_90,0,0,200); CASE9:pPlace1:=Offs(pBase1_90,400+10,0,200); CASE10:pPlace1:=Offs(pBase1_90,800+20,0,200); CASE11:CASE12:pPlace1:=Offs(pBase1_0,600+10,0,400); CASE13:pPlace1:=Offs(pBase1_90,0,400+10,400); CASE14:pPlace1:=Offs(pBase1_90,400+10,400+10,400);CASE15:CASE16:CASE17:CASE18:CASE19:CASE20:Stop;ENDTESTENDPROCPROCrPosition2()TESTnCount2CASE1:CASE2:pPlace2:=Offs(pBase2_0,600+10,0,0);CASE3:pPlace2:=Offs(pBase2_90,0,400+10,0);CASE4:pPlace2:=Offs(pBase2_90,400+10,400+10,0);CASE5:CASE6:CASE7:CASE8:CASE9:CASE10:CASE11:CASE12:pPlace2:=Offs(pBase2_0,600+10,0,400); CASE13:pPlace2:=Offs(pBase2_90,0,400+10,400); CASE14:pPlace2:=Offs(pBase2_90,400+10,400+10,400); CASE15:pPlace2:=Offs(pBase2_90,800+20,400+10,400); CASE16:pPlace2:=Offs(pBase2_0,0,600+10,600);CASE17:pPlace2:=Offs(pBase2_0,600+10,600+10,600); CASE18:pPlace2:=Offs(pBase2_90,0,0,600);CASE19:CASE20:Stop;ENDTESTENDPROCMoveJpPick2,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJpBase2_0,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJpBase2_90,MinSpeed,fine,tGrip\WObj:=wobj0; ENDPROCENDMODULE。
模块四 RobotStudio中典型工作站的构建pptx (1)
输送链的产品源建立步骤1~3
4.选择”动作”列表中的”Source”; 5.“Source”选为“Product Source”; 6.设定完成后单击”应用”。
二、设定输送链的运动属性
输送链的运动属性设定步骤1~4
5.“Object”选为“SC_InFeeder/Queue”; 6.“Direction”中第一项数值设为-1000.00; 7.“Speed”设为300.00; 8.“Execute”设置为1,单击“应用”。
7.移动已到位的复制品,使其与传感器不再接触;
说 明ቤተ መጻሕፍቲ ባይዱ
:利用FreeHand中的线性移动将复制品移开,使 其与面传感器不接触,则输送链前端会再次产生一个复 制品,进入下一个循环。
8.自动生成下一个复制品,并 开始沿着输送链线性运行。
步骤8
9.右击产生的复制品,将其删除。一般复制品名称为 设定的源名称+数字(Product_Source_1)。
说 明
:完成动画效果验证后,删除生成的复制品,在设
置Source属性时,可以设置成产生临时性复制品,当仿真
结束后,所生成的复制品会自动消失。
10.在Transient属性前面打勾, 则完成了相应的修改,单击 “应用”
步骤10
七、设定夹具属性 1.在“建模”功能选项卡中单击Smart组件。
2.单击Smart组件,并将其命 名为“SC_Gripper”
3.再在浏览库文件中选择待加工工件 “Fixture_EA”,并将其拖放到变位机上。
4.单击“机器人系统”选择 “从布局……”。设定后创建
出系统
创建系统
UG中夹具运动分析制作过程
UG中夹具运动分析制作过程1.进入motion模块,并取消随后出现的对话框。
2. 打开装配树,右键单击装配文件名,新建运动构件。
3.取消运动过程中的装配约束关系。
4.单击图标定义LINK。
(1)一节旋转销LINK 的定义 压板及其上面的运动件 —— LINK01 气缸头 —— LINK02 气缸体 —— LINK03 (2)两节旋转销LINK 的定义 压板及其上面的运动件 —— LINK01 连杆 —— LINK02 气缸头 —— LINK035. 单击图标 定义JOINT 。
LINK 名(1) 一节旋转销JOINT 的定义A. 固定转动副 —— 压板旋转销与气缸体安装销 选择旋转点后单击JOINT 菜单中的APPLY 。
B. 相对转动副 —— 气缸头与压板连接销选择一个LINK 的旋转点,单击LINK2图标选择另一个LINK 的旋转点,再单击APPLY 确认。
C. 相对移动副 —— 气缸头与气缸体之间 单击平移图标,LINK1选择气缸头,LINK2选择气缸体,运动方式选择constant :displacement 为0,Velocity 为-10(或10,旋转平移LINK1LINK2运动方式JOINT 名JOINT 显示比例主要看运动方向标示,定义后可以编辑修改),单击APPLY确认。
(2)两节旋转销JOINT的定义A. 固定转动副——连杆与连接板的旋转点B. 相对转动副——气缸头与压板连接销,连杆与压板连接销C. 固定移动副——气缸头单击平移图标,选择气缸头,运动方式选择constant:displacement为0,Velocity为-10(或10),单击APPLY确认。
6.单击图标可以编辑修改LINK和JOINT。
7. 单击图标进行运动过程模拟。
A. 首先出现分析选项对话框,设置好运动时间和步数后单击OK 。
B. 出现分析的信息窗口和运动对话框。
C. 将压板打开状态及气缸摆动最大状态的运动轨迹保存。
创建动态机械装置
一、创建动态机械装置
3、编辑工具接点: (9)关节名称改为L2 ; (10)关节类型“往复的”,父链接为“L1”,子链接为
“L3”; (11)鼠标停在“关节轴”-“第一个位置”的第一个方框中
,捕捉点作为夹具移动方向上的第一个点; (12)鼠标停在“关节轴”-“第二个位置”的第一个方框中
,捕捉点作为夹具移动方向上的第二个点; (13)最小限值改为0,最大限值改为15; (14)单击“应用”;
图4-23 编辑工具接点J2
一、创建动态机械装置
4、编辑工具的坐标系框架数据: (1)双击“工具数据”; (2)工具数据名称改为“Grip”; (3) “属于链接”选择L1; (4)位置改为“0,0,110”; (5)重心“0,0,80”; (6)单击“确定”;
1、导入工装模型: ②、在弹出的菜单中依次选择“夹具L1”、“夹具L2”、 “夹具L3”;
图4-15 导入夹具几何体
一、创建动态机械装置
1、导入工装模型:
图4-16 加载后效果
一、创建动态机械装置
2、编辑工具链接与接点: (1)单击“创建机械装置”; (2)机械装置名称改为“夹具” ; (3)机械装置类型选择“工具”; (4)双击“链接”;
图4-19 编辑链接L2
一、创建动态机械装置
2、编辑工具链接与接点: (14)链接名称修改L3 ; (15)“所选部件”选为 “夹具L3”; (16)点击添加; (17)单击“应用”;
图4-20 编辑链接L3
一、创建动态机械装置
3、编辑工具接点: (1)双击“接点”; (2)关节名称改为J1; (3)关节类型“往复的”,父链接为“L1”,子链接为“L2”;
图4-21 编辑工具接点J1关系
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
制模式下给夹具添加工作逻辑,需要定义 IO信号的有:关节动E1_ActionSignal、 关节开启状态E1_OpenState和关节关闭
关节开启状态 E1_OpenState
该信号可反馈当前 夹 具开启的状态
状态E1_ClosedState。 右表为其工作逻辑的相关属性。
关节关闭状态 该信号可反馈当前 夹 E1_ClosedState 具关闭的状态
工业机器人离线编程与仿真
(基于KUKA)
Car 情报局
任务一
项目四 模型组件的高级应用
创建动态夹具
目录
任务描述
Car 情报局
学习重点
任务知识
任务实施
任务描述
Car 情报局
本次任务,我们将在已创建工具的 基础上,学习创建动态夹具,并给夹具 添加工作逻辑,实现夹具夹取动作。
学习重点
创建动态夹具
Car 情报局
Car 情报局
任务实施
创建动态夹具
我们以添加EOAT夹具工作逻辑为例,学习创建动态夹具的相关知识。 2.设置工具坐标系 设置工具坐标系具体操作步骤如下:
1. 操作步骤(1)~((22))
2.操作步骤(3)~(4)
3.操作步骤(5)~(7)
Car 情报局
任务实施
创建动态夹具
我们以添加EOAT夹具工作逻辑为例,学习创建动态夹具的相关知识。 3.定义夹具与机器人之间的传输信号 定义夹具与机器人之间的传输信号, 具体的操作步骤如下:
1.操作步骤(1)~(3) 2.操作步骤(4)~(6) 3.操作步骤(7) 4.操作步骤(8)~(10) 5.操作步骤(11)~(12) 6.操作步骤(13)
Car 情报局
任务实施
创建动态夹具
我们以添加EOAT夹具工作逻辑为例,学习创建动态夹具的相关知识。 4. 实现夹具的移动及抓取动作 最后,实现夹具的移动及抓取动作, 具体的操作步骤如下:
任务实施
创建动态夹具
我们以添加EOAT夹具工作逻辑为例,学习创建动态夹具的相关知识。 1.设置IO信号控制模式并安装夹具 具体的操作步骤如下:
1. 操作步骤(1) 2. 操作步骤(2)~(4) 3. 操作步骤(5)~(6) 4. 操作步骤(7)~(9) 5. 操作步骤(10)~(12) 6. 操作步骤(13)~(15)
任务知识
任务知识
1 夹具动态运动过程 2 夹具的工作逻辑属性
Car 情报局
任务知识
二、夹具的工作逻辑属性
Car 情报局
要让夹具在特定点位时执行不同的动
图例
功能
说明
作,就需要给夹具添加工作逻辑。 在KUKA sim Pro 3.0中,在IO信号控
关节动作 E1_ActionS开启 或者 关闭的动作
7.操作步骤(14) 8.操作步骤(15)~(16) 9.操作步骤(17)~(18) 10.操作步骤(19) 11.操作步骤(20) 12.操作步骤(21)~(23)
Car 情报局
谢谢观看
任务知识
任务知识
1 夹具动态运动过程 2 夹具的工作逻辑属性
Car 情报局
任务知识
Car 情报局
一、夹具动态运动过程
夹具夹取动作可分解如下:机器人移动到点位P1,夹具抓手打开;机器人运动到点位P2,夹具抓 手夹紧。两点的动作状态分别如图所示。
1. 机器人在点位P1时的状态 2. 机器人在点位P2时的状态
1. 操作步骤(1)~(3) 2. 操作步骤(4) 3. 操作步骤(5)~(6) 4. 操作步骤(7)~(8) 5. 操作步骤(9)
Car 情报局
任务实施
创建动态夹具
我们以添加EOAT夹具工作逻辑为例,学习创建动态夹具的相关知识。 4. 实现夹具的移动及抓取动作 最后,实现夹具的移动及抓取动作, 具体的操作步骤如下: