使用API筛选目标

下面的代码是一个示例Python脚本,它使用RoboDK API过滤目标(姿势目标或关节目标),使用FilterTarget命令:

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

如果是3,这个例子很有用理查德·道金斯party应用程序(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并检索机器人:

RDKRobolink()

机器人RDK(ITEM_TYPE_ROBOT

如果机器人有效的():

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

pose_tcpXYZWPR_2_Pose([00200000])#定义TCP

pose_refXYZWPR_2_Pose([40000000])#定义Ref Frame

更新机器人TCP和参考系

机器人setTool(pose_tcp

机器人setFrame(pose_ref

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

机器人setAccuracyActive(精度可以是ON或OFF

在关节空间中定义一个标称目标:

关节00900900]

#计算关节目标的机器人标称位置:

pose_rob机器人SolveFK(关节#机器人法兰WRT机器人底座

#计算pose_target:关于参考帧的TCP

pose_targetinvH(pose_ref)*pose_rob*pose_tcp

打印(“目标未过滤:”

打印(Pose_2_XYZWPR(pose_target))

joints_approx关节# joints_approx必须在20度以内

pose_target_filtreal_joints机器人FilterTarget(pose_target关节

打印(的目标过滤:

打印(real_jointstolist())

打印(Pose_2_XYZWPR(pose_target_filt))