你可以像使用机床一样使用世界杯2022美洲预选赛直播工业机器人(三轴或五轴CNC)。为了达到与数控机床相同的效果,工业机器人需要先进的离线编程软件(如RoboDK)将机器程序世界杯2022美洲预选赛直播转换为机器人程序。2022世界杯8强赛时间RoboDK支持转换机器程序,如APT, g代码ACL, TAP或NCI到机器人模拟和机器人程序。
机器人加工包括不同的材料去除应用,如铣削、钻孔、倒角和去毛刺,通常由自动化机床(CNC)执行。
零件尺寸由计算机辅助设计(CAD)软件确定,然后由计算机辅助制造(CAM)软件转换成制造程序(如g代码)。然后可以使用RoboDK的离线编程工具将制造程序转换为机器人程序。2022世界杯8强赛时间
附加轴,如转盘和/或线性轨道可以创建和同步用机器人扩展工作空间。
本节展示了一些涉及机器人加工的示例。其中一些示例包括使用插件来显示如何生成CAM工具路径。但是,您可以在RoboDK中加载任何通用的5轴工具路径,例如APT, NC或G-code文件。
请访问我们文档中的CAM Add-Ins部分,了解更多关于机器人加工项目的示例,例如一种数控编程,MecSoft / RhinoCAM,发明家,FeatureCAM或Fusion360。
本示例将帮助您了解RoboDK中机器人加工的基础知识,以及如何将3轴机器人加工作业转换为机器人加工仿真和机器人程序。
本示例将帮助您了解如何在RoboDK中配置机器人加工设置,以及如何将5轴机器人加工作业转换为机器人加工仿真和机器人程序。
这个示例还将帮助您在不同的加工作业操作之间创建安全的接近/收回运动。
本例展示了如何使用库卡机器人附加3个外轴进行机器人加工。该单元包括一个6轴机械臂,一个单轴导轨和一个2轴转台。
更多信息请参见RhinoCAM示例部分。RhinoCAM与RoboDK的集成会自动从RhinoCAM中加载APT文件到RoboDK中。
这个例子展示了如何使用安川/马达曼机器人进行激光切割应用。定义机器人切削刀具路径RoboDK插件为Autodesk融合。
这个例子展示了如何使用安川/马达曼机器人进行机器人加工和RoboDK插件的Mastercam。RoboDK支持自动加载Mastercam生成的NCI或NC文件。
参观Mastercam示例部分了解更多信息。
这个例子展示了如何使用ABB机器人去毛刺。这个示例包括一个拾取和放置操作。
这个例子展示了如何使用库卡机器人进行抛光。
本节展示如何为机器人加工准备一个简单的RoboDK项目(离线)。机器人加工单元必须至少有一个机器人、一个刀具(EOAT)和一个参照系(也称为坐标系、零件参照系或基准)。更多关于在RoboDK中建立新车站的信息开始部分。
下面的步骤展示了如何使用KUKA KR210机器人和Teknomotor铣削主轴准备机器人加工设置(该示例在库中作为Sample-New-Project.rdk提供)。
1 -选择一个机器人:
一个。选择文件➔开放网上图书馆。
b。使用过滤器根据品牌、有效载荷找到您的机器人……
例如,选择库卡kr210 r2700(210公斤有效载荷,2.7米到达)。
c。选择2022世界杯国家队名单机器人应该会自动出现在主屏幕上。
2 -选择工具:
一个。从同一在线库中,选择Reset以删除过滤器和过滤器类型➔工具。
b。选择2022世界杯国家队名单加载主轴工具,如Teknomotor ATC71-C-LN主轴。
c。主轴将自动附着在机器人上。
d。关闭在线图书馆窗口。
3 -添加一个参考系:
一个。选择机器人基础框架(命名为库卡KR210 R2700底座)。
b。选择程序➔添加参考系。一个新的参考系将被添加到机器人基座上。
c。双击参考点,输入坐标:
XYZABC = [1500,1000,500,0,0,0] (mm-deg)
d。将新的参考框架重命名为铣削参考通过输入新名称或选择F2。
4 -添加您将用于机器人加工的对象(可选):
一个。选择文件➔开放
b。选择一个名为目标象棋菜鸟从RoboDK库中:
C: / RoboDK /库
c。拖放对象到铣削参考,如果它不是自动放置在那里(在工位树内)
5 -双击机器人可以看到机器人面板(可选)。机器人面板显示活动工具和活动参考系。通过选择和更新工具和参考系,我们应该在机器人控制器中看到相同的坐标。默认情况下,Teknomotor主轴在刀柄的根部有TCP。该工具(TCP)将具有一定的长度。在这个例子中,我们将更新TCP来表示刀具的长度:
一个。将TCP (Tool X)坐标更新为375mm。您将看到TCP沿着轴移动。
b。(可选)您还可以创建第二个工具,并通过添加沿Z轴的转换来定义相对于第一个工具的TCP。
c。关闭机器人面板窗口。
按照以下步骤在RoboDK中建立一个新的机器人加工项目,使用CAM软件(如G-code或APT)生成NC文件:
1.选择公用事业公司➔机器人加工项目(Ctrl + M)。
将弹出一个新窗口,如图所示。
2.选择选择NC文件在路径输入部分中
3.提供NC文件,如以下APT加工文件:
C: / RoboDK /图书馆/ Example-02。电子机器人加工象棋菜鸟
4.将机器人加工项目重命名为加工设置右键单击树中的新项目并选择重命名(F2)。
在菜单的左上角选择机器人、参照系和工具,如下图所示。相对于正确的坐标系,工具路径应该以绿色显示。
加工刀具路径以绿色显示,路径法线以白色矢量显示。取消选中“可见工具路径”以隐藏工具路径。
你可以选择更新看看是否可以用默认设置创建一个机器人加工程序。如果程序成功生成,您将看到一个绿色的复选标记。然后你可以选择模拟或者双击生成的程序来查看模拟开始。
如果您看到带有警告信息的红色十字,则意味着您的机器人加工程序不可行。您可能必须更改一些设置,如刀具方向,优化参数,起点或零件的位置。
以下部分提供了关于如何定制机器人加工设置的更多信息。
路径输入允许您选择不同的方式来提供工具路径。
·选择NC文件:作为一个NC文件(从CAM软件获得),如本节所述。
·选择曲线:作为一个或多个曲线,如中所述曲线跟踪项目部分。
这是可能的进口曲线作为RoboDK的坐标列表。
·选择分:一个或多个点,如中所述点跟踪项目部分。
这是可能的进口分作为RoboDK的坐标列表。
·3D打印对象:作为3D打印的对象。切片器用于将几何图形转换为工具路径
选择项目活动显示生成机器人程序时需要考虑的特殊事件。这包括触发更换工具,设置主轴转速在RPM或触发特定程序的程序开始或程序完成。
您可以指定舍入值在程序事件中。这将在程序开始时自动创建一个舍入指令,并有助于使机器人加工程序更平滑,防止机器人晃动。例如,在ABB机器人上,这将以毫米为单位设置ZoneData值,在发那科机器人上,这将以百分比设置碳纳米管值,在优傲机器人控制器上,它将以毫米为单位设置混合值。
如果您正在使用g代码或NCI文件,默认情况下,自定义M代码将作为对M_RunCode的函数调用触发(M代码作为参数传递)。您可以通过删除对M_RunCode的调用来删除自定义M调用。
将鼠标光标移到相应的字段上以获取更多信息,以自定义每个部分。
例如,当更改工具时,您可以使用%1值来表示CAM软件提供的工具ID。如果您更喜欢触发静态函数而不是传递参数,则可以替换SetTool (% 1)通过SetTool % 1。当使用工具2时,这将生成SetTool2而不是SetTool(2)。
您可以自定义您的方法,并从机器人加工菜单的右上方收回运动。默认情况下,RoboDK增加了沿法线100毫米的接近和收缩运动。
选择添加增加一个额外的收缩运动。绿色路径将相应更新。它可以选择沿着特定的轴移动,提供坐标,有一个弧的方法等。的方法来组合多个接近/收回动作添加按钮。
选择删除移开:移开某一特定的途径或收回运动
刀具偏移的路径允许沿着刀具路径改变刀具的首选方向。此选项主要用于将工具绕TCP的Z轴旋转。这允许处理6th绕刀具轴的自由度。根据应用程序及其要求提供了几个选项。例如,您可以选择最小化刀具方向或沿着路径遵循刀具方向。
由于6轴机器人用于遵循3轴或5轴CNC制造程序,我们有一个额外的自由度来定义。这个自由度通常是围绕TCP的Z轴旋转。这种额外的自由度对于避免奇点、关节极限、碰撞或可达性问题尤其有用。
默认情况下,工具偏移量的路径显示一个rotz (0)转换。这意味着您可以围绕工具的Z轴添加额外的旋转。可以修改此值以建立工具的首选方向,修改TCP的Z轴周围的方向或与其他轴的组合。首选方向是机器人在沿着刀具路径时试图保持的方向。
默认情况下,RoboDK使用最小刀具方向变化算法。这意味着刀具的方向沿着刀具路径尽可能保持不变。一般来说,这个选项适合铣削操作,因为它最大限度地减少了机器人关节运动。或者,还有其他可用的算法/方法,例如沿着刀具路径的刀具方向(有用的切割应用,其中刀片需要保持切线沿着路径),或手持物体的机器人如果需要遵循附加到机器人工具上的刀具路径(例如,用于点胶或抛光应用,也称为远程TCP配置)。
给定一个首选的刀具方向,机器人可以有一定的自由度来围绕刀具的Z轴旋转。这使得机器人可以避免机器人奇点、关节极限并确保所有点都可达。默认情况下,RoboDK允许工具围绕TCP轴旋转+/-180度,增量为20度。
建议根据应用程序来限制这种旋转。例如,可以输入+/-90度来限制允许的旋转一半。减小该参数也将减少获得程序的处理时间。
如果路径的某些点无法到达,建议旋转参考系或更允许工具Z旋转。移动参考系可以通过握住Alt键并拖动坐标系,以更好地适应机器人工作空间内的零件。
RoboDK自动选择更靠近首选启动关节的启动配置(首选关节为起点)。从这一点开始,机器人将遵循线性运动,因此机器人的构型不会改变。
下拉菜单将显示启动程序的所有可能的解决方案。如果需要,选择一个首选的机器人关节构型,并选择更新重新计算程序。
选择更新生成给定设置的机器人程序。如果程序创建成功,系统会显示绿色的复选标记。然后你会在电台里看到一个新节目加工。
双击生成的程序或选择模拟启动机器人加工仿真。
右键单击程序并选择生成机器人程序(F6)生成机器人程序。中有关程序生成的更多信息程序部分。
您可以设置算法以保持刀具沿路径的方向不变。例如,这种行为可能对切割或焊接应用有用。
选择工具方向如下路径在选择算法下拉以重新计算首选工具路径。其他的设置都是一样的加工项目具有恒定的刀具方向。
当制造操作发生时,机器人与刀具保持对象/刀具路径时,可以对机器人进行编程。这是有用的胶水点胶或抛光应用,例如。这种类型的机器人编程也被称为远程TCP。
选择机器人握住物体在选择算法下拉,以便将工具路径正确地放置在TCP引用上。其他的设置都是一样的加工项目具有恒定的刀具方向。
更多信息可在RoboDK插件为Autodesk融合部分。
使用RoboDK可以使机器人在3D空间中跟随曲线。RoboDK中的曲线可以从物体边缘或进口作为CSV文件中的点列表。例如,这个选项对于机器人焊接应用非常有用。
选择公用事业公司➔曲线跟踪项目按照设置打开曲线。这些设置与a相同机器人加工项目,唯一的区别是路输入预设为选择曲线。
选择选择曲线在屏幕上选择曲线。
用鼠标左键选择曲线。两次选择同一条曲线将切换运动方向。此外,右键单击以前选择的曲线可以切换感测或取消选择以前选择的曲线。
右键单击屏幕并选择完成或按“Esc”键返回设置菜单。绿色的路径将显示机器人相对于物体的运动。
设置的右上方有一些附加选项,例如工具速度,以及是否必须对每个曲线应用接近/收回移动。默认设置如下图所示:
在RoboDK中,可以选择从CSV文件或文本文件导入曲线公用事业公司➔进口曲线。一个新的项目将出现在车站显示曲线作为一个对象。
该文件可以是具有曲线每个点的3D坐标的文本文件。可选地,工具Z轴的方向可以作为i,j,k矢量提供。所有坐标必须相对于零件的坐标系。
可选的,一个对象的现有曲线可以导出为CSV文件(右键单击曲线,然后,选择导出曲线),修改和重新导入回RoboDK。
有关如何自定义将CSV或TXT文件导入为曲线或点的更多信息和示例,请参见RoboDK API的示例部分。
你可以很容易地模拟机器人跟随点与RoboDK。RoboDK中的点可以从物体,曲线或进口作为CSV文件中的点列表。例如,该选项可用于点焊或钻孔应用。下面的视频展示了一个建立点焊应用程序的示例:观看视频。
选择公用事业公司➔点跟踪项目按照设置打开点。这些设置与a相同机器人加工项目,唯一的区别是路输入预设为选择分。
选择选择分选择屏幕上的点。
用鼠标左键选择点。两次选择相同的点将改变接近方向。此外,右键单击一个点可以选择随后的点选择next。
右键单击屏幕并选择完成或按“Esc”键返回设置菜单。绿色的路径将显示机器人相对于物体的运动。
设置的右上角提供了一些附加选项,例如工具速度和接近距离。默认设置如下图所示:
可以通过选择从文本文件或CSV文件导入点列表公用事业公司➔进口分。一个新的项目将出现在车站显示点作为一个对象。
该文件可以是具有曲线每个点的3D坐标的文本文件。可选地,工具Z轴的方向可以作为i,j,k矢量提供。
可选的是,对象的现有曲线可以通过右键单击曲线转换为点,然后选择提取曲线点。
增材制造(或3D打印)是从数字文件制作三维实体物体的过程。世界杯2022美洲预选赛直播工业机械臂可以作为一个3轴或5轴3D打印机与RoboDK。以下视频展示了如何使用RoboDK离线设置3D打印的概述:观看视频。
机器人3D打印可以通过以下方式实现:
·使用RoboDK直接将g代码程序(NC文件)转换为机器人程序,如图所示机器人加工项目。每次运动的物料流速率(挤出机指令E)都可以适当地计算,并且可以作为a集成到生成的程序中项目活动。G-code是RoboDK支持的一种NC文件,也是许多3D打印机支持的一种格式。大多数切片器软件都可以生成给定STL文件的g代码。
·选择公用事业公司➔3D打印项目,打开3D打印设置。
默认情况下,RoboDK将E指令转换为一个程序调用到一个被调用的程序挤出机并将E值作为参数传递。选择项目活动改变这种行为。
挤出机值(E)表示在每次移动之前需要挤出多少材料。这个值可以用来驱动挤出机饲料从机器人考虑到机器人的速度和点之间的距离。
或者,可以使用后处理器计算挤出机进料并相应地生成适当的代码。下面的小节提供了一个示例。
本节展示如何修改机器人后置处理程序在执行3D打印的运动指令之前计算挤出机的速度。或者,这些操作可以在机器人控制器上使用Extruder程序调用(默认命令来驱动挤出机)进行。
通过定制机器人后处理器,可以在将程序发送给机器人之前更容易地集成3D打印挤出机。为了完成这个任务,我们需要在机器人后处理器中生成程序时进行一些计算并输出定制代码。
第一步是拦截Extruder调用,并在后处理器的RunCode部分中读取新的Extruder值(E值)。以下部分处理为程序生成的所有程序调用:
defRunCode(自我,代码,is_function_call=假):
如果is_function_call:
如果代码。startswith(挤出机():
#拦截挤出机命令。
#如果程序调用是Extruder(123.56)
#我们将数字提取为字符串
#并将其转换为数字
自我。PRINT_E_NEW=浮动(代码[9:-1])
跳过程序调用生成
返回
其他:
自我。addline(代码+“()”)
其他的:
#输出程序代码
自我。addline(代码)
挤出机值(长度/E)保存为机器人后处理器中的PRINT_E_NEW变量。
我们需要触发一个函数调用new_move随着每一个新的线性运动指令。我们可以在MoveL命令的开头添加这个调用:
defMoveL(自我,构成,关节,conf_RLF=没有一个):
“”“添加一个线性运动”“”
处理3D打印挤出机集成
自我。new_move(构成)
…
我们还必须在后处理程序的头部添加以下变量来计算挤出机增量:
# 3D打印挤出机设置参数:
PRINT_E_AO=5#模拟输出ID,用于命令挤出机流量
PRINT_SPEED_2_SIGNAL=0.10#比率转换速度/流量模拟输出信号
PRINT_FLOW_MAX_SIGNAL=24提供给挤出机的最大信号
PRINT_ACCEL_MMSS=-1#加速,-1假设恒定速度,如果我们使用舍入/混合
#内部3D打印参数
PRINT_POSE_LAST=没有一个#最后一个姿势打印出来
PRINT_E_LAST=0#最后挤出机长度
PRINT_E_NEW=没有一个新挤出机长度
PRINT_LAST_SIGNAL=没有一个最后一个挤出机信号
最后,我们需要定义一个新的程序,该程序将根据运动之间的距离,机器人速度和机器人加速度生成适当的挤出机进料命令。这假定挤出机进料是由特定的模拟输出或定制的程序调用驱动的。
我们需要在def MoveL程序定义之前添加以下代码。
defcalculate_time(自我,距离,Vmax,Amax= -1):
计算用最大加速度和最大速度移动一段距离的时间
如果Amax<0:
#假设速度恒定(必须设置适当的平滑/舍入参数)
Ttot=距离/Vmax
其他的:
假设我们加速和减速
tacc=Vmax/Amax;
Xacc=0.5*Amax*tacc*tacc;
如果距离< =2*Xacc:
未达到# Vmax
tacc=√6(距离/Amax)
Ttot=tacc*2
其他的:
达到了# Vmax
Xvmax=距离-2*Xacc
Tvmax=Xvmax/Vmax
Ttot=2*tacc+Tvmax
返回Ttot
defnew_move(自我,new_pose):
"""对3D打印的挤出机实施操作,如果适用的话"""
如果自我。PRINT_E_NEW是没有一个或new_pose是没有一个:
返回
#跳过第一步,记住姿势
如果自我。PRINT_POSE_LAST是没有一个:
自我。PRINT_POSE_LAST=new_pose
返回
计算下一个移动的增加的材料
add_material=自我。PRINT_E_NEW-自我。PRINT_E_LAST
自我。PRINT_E_LAST=自我。PRINT_E_NEW
#计算机器人速度和挤出机信号
extruder_signal=0
如果add_material>0:
distance_mm=规范(subs3(自我。PRINT_POSE_LAST。Pos(),new_pose。Pos()))
#以秒为单位计算移动时间
time_s=自我。calculate_time(distance_mm,自我。SPEED_MMS,自我。PRINT_ACCEL_MMSS)
避免被0除法
如果time_s>0:
#这可能看起来多余,但它允许你考虑加速度,我们可以应用小的速度调整
speed_mms=distance_mm/time_s
计算挤出机转速(RPM*Ratio) (PRINT_SPEED_2_SIGNAL)
extruder_signal=speed_mms*自我。PRINT_SPEED_2_SIGNAL
确保信号在可接受的范围内
extruder_signal=马克斯(0,最小值(自我。PRINT_FLOW_MAX_SIGNAL,extruder_signal))
#根据需要更新挤出机速度
如果自我。PRINT_LAST_SIGNAL是没有一个或腹肌(extruder_signal-自我。PRINT_LAST_SIGNAL)>1 e-6:
自我。PRINT_LAST_SIGNAL=extruder_signal
#使用内置的setDO函数设置模拟输出
自我。setDO(自我。PRINT_E_AO,“% .3f”%extruder_signal)
#或者,触发一个程序调用并处理与机器人控制器的集成
#self.addline('ExtruderSpeed(%.3f)' % extruder_signal)
#记住最后一个姿势
自我。PRINT_POSE_LAST=new_pose