使用

以下代码是一个示例Python脚本,该脚本使用RoboDK API来过滤目标(姿势目标或联合目标), FilterTarget命令:

pose_filt,关节= robot.FilterTargetnominal_poseestimated_joints

如果第三方应用程序(不是RoboDK)使用姿势目标生成机器人程序,则此示例很有用。

注意:如果使用API​​自动生成程序,则不需要这样做。

机器人链接 进口 * #与RoboDK通信的API

罗布德克 进口 * #基本矩阵运算

 

定义 XYZWPR_2_Posey):

 返回 KUKA_2_Posey #将XYZABC转换为姿势

 

定义 姿势_2_XYZWPR姿势):

 返回 姿势_2_KUKA姿势 #将姿势转换为XYZABC

 

#启动RoboDK API并检索机械手:

RDK = 机器人链接()

机器人 = 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和参考框架

机器人setToolpose_tcp

机器人setFramepose_ref

 

#对于SolveFKSolveIK(正向/反向运动学)非常重要

机器人setAccuracyActive #精度可以为开或关

 

#在关节空间中定义名义目标:

关节 = [0 0 90 0 90 0]

 

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

pose_rob = 机器人SolveFK关节 #机器人法兰与机器人底座

 

#计算pose_target:相对于参考帧的TCP

pose_target = vpose_ref*pose_rob*pose_tcp

 

打印目标未过滤:

打印姿势_2_XYZWPRpose_target))

 

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

pose_target_filt real_joints = 机器人FilterTargetpose_target 关节

打印目标已过滤:

打印real_joints列出())

打印姿势_2_XYZWPRpose_target_filt))