使用API过滤目标

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

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

如果是3,这个例子很有用理查德·道金斯party application(除RoboDK外)使用姿态目标生成机器人程序。

robolink进口# API与RoboDK通信

robodk进口基本矩阵运算

defXYZWPR_2_Posexyzwpr):

返回KUKA_2_Posexyzwpr#转换X,Y,Z,A,B,C为一个姿势

defPose_2_XYZWPR构成):

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

#启动RoboDK API并检索机器人:

RDKRobolink()

机器人RDKITEM_TYPE_ROBOT

如果机器人有效的():

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

pose_tcpXYZWPR_2_Pose([00200000])#定义TCP

pose_refXYZWPR_2_Pose([40000000])#定义Ref Frame

#更新机器人TCP和参考帧

机器人setToolpose_tcp

机器人setFramepose_ref

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

机器人setAccuracyActive#精度可开或关

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

关节00900900

计算关节目标的名义机器人位置:

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

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

pose_targetinvHpose_ref)*pose_robpose_tcp

打印“目标未过滤:”

打印Pose_2_XYZWPRpose_target))

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

pose_target_filtreal_joints机器人FilterTargetpose_target关节

打印的目标过滤:

打印real_jointstolist())

打印Pose_2_XYZWPRpose_target_filt))


Baidu
map