过滤目标使用API

下面的代码是一个Python脚本,该脚本使用RoboDK API来过滤目标(构成目标或共同目标),使用FilterTarget命令:

pose_filt关节=机器人。FilterTarget(nominal_pose, estimated_joints)

这个例子是有用的,如果一个3理查德·道金斯方应用程序(除了RoboDK)生成机器人程序使用构成的目标。

robolink进口*# API与RoboDK沟通

robodk进口*#基本矩阵运算

defXYZWPR_2_Pose(xyzwpr):

返回KUKA_2_Pose(xyzwpr)#把X, Y, Z, A, B, C的姿势

defPose_2_XYZWPR(构成):

返回Pose_2_KUKA(构成)#一个姿势转换为X, Y, Z, a, B, C

#开始RoboDK API和检索机器人:

RDK=Robolink()

机器人=RDK(,ITEM_TYPE_ROBOT)

如果机器人有效的():

提高异常(“机器人不可用”)

pose_tcp=XYZWPR_2_Pose([0,0,200年,0,0,0])#定义TCP

pose_ref=XYZWPR_2_Pose([400年,0,0,0,0,0])#定义参考帧

#更新机器人TCP和参照系

机器人setTool(pose_tcp)

机器人setFrame(pose_ref)

对SolveFK #非常重要和SolveIK(正向/逆向运动学)

机器人setAccuracyActive()#精度可以打开或关闭

#在关节空间中定义一个名义上的目标:

关节=(0,0,90年,0,90年,0]

#计算名义机器人位置的共同目标:

pose_rob=机器人SolveFK(关节)#机器人法兰关于机器人基地

#计算pose_target: TCP的参考系

pose_target=invH(pose_ref)*pose_rob*pose_tcp

打印(的目标不是过滤:)

打印(Pose_2_XYZWPR(pose_target))

joints_approx=关节# joints_approx必须在20度

pose_target_filt,real_joints=机器人FilterTarget(pose_target,关节)

打印(的目标过滤:)

打印(real_jointstolist())

打印(Pose_2_XYZWPR(pose_target_filt))


Baidu
map