从robodk从robolink进口进口* * #参考系的名称设置为目标:REFERENCE_NAME =“参考CSV”#参考目标的设置名称#(取向将保持常数对这个目标)TARGET_NAME = '回家 ' #--------------------------- # 启动RoboDK API RDK = Robolink() #要求用户选择一个文件:rdk_file_path = RDK.getParam(“PATH_OPENSTATION”)path_file = getOpenFile (rdk_file_path +“/”)如果不是path_file:print("Nothing selected") quit() #从文件路径获取程序名称program_name = getFileName(path_file) #将CSV文件加载为列表[[x,y,z,speed],[x,y,z,speed],…data = LoadList(path_file) #删除之前生成的遵循特定命名的程序#自动删除之前生成的项目(自动标记)#list_items = RDK. itemlist() #列出所有名称#list_items中的项目:# if item. name ().startswith('Frame'): # item.Delete() #选择机器人(只有当有2个或2个以上机器人时才会弹出)robot = RDK。ItemUserPick('Select a robot',ITEM_TYPE_ROBOT) if not robot. valid (): raise Exception(" robot not selected or not valid") quit() #获取参考帧生成路径frame = RDK.Item(REFERENCE_NAME,ITEM_TYPE_FRAME) if not frame. valid (): raise Exception(" reference frame not found. "使用名称:%s" % REFERENCE_NAME) #使用主目标作为引用目标= RDK。Item(TARGET_NAME, ITEM_TYPE_TARGET)如果不是target. valid():抛出异常("Home target是无效的。设置一个名为:%s" % TARGET_NAME)的主目标#将机器人设置为主位置robot. set关节(target.关节())#从主目标pose_ref = robot. pose() #添加一个新程序program = RDK。AddProgram (program_name,机器人)#关掉渲染(快)RDK.Render (False) #加速不显示指令:program.ShowInstructions (False) #记得速度,所以我们不把它与每一个指令current_speed = =没有目标没有#非常重要:确保我们设置参考坐标系和工具坐标系,这样机器人知道program.setPoseFrame(帧)program.setPoseTool (robot.PoseTool()) #我遍历所有点范围内(len(数据)):pi = pose_ref pi. setpos (data[i]) #如果有第4列,则更新速度if len(data[i]) >= 3:速度=数据[i][3] #如果速度与之前设置的速度不同,则更新程序if type(speed) != str and speed != current_speed: program. setspeed (speed) current_speed =速度目标= RDK。AddTarget('T%i'% i, frame) target. setpose (pi) pi = target #如果i == 0: program.MoveJ(pi) else: program.MoveL(pi) #不时更新以通知用户进度如果i % 100 == 0: program.ShowTargets(False) RDK。“正在加载%s: %.”1f %%" % (program_name, 100*i/len(data)),False) RDK.Render() program.ShowTargets(False) RDK.ShowMessage("Done",False) print("Done")