API

次のコードは、RoboDK APIを使用してターゲット(ポーズターゲットまたはジョイントターゲット)をフィルタリングするPythonスクリプトの例です。 FilterTarget コマンド:

pose_filt、joints = robot.FilterTarget(nominal_pose、estimated_joints)

この例は、サードパーティのアプリケーション(RoboDK以外)がポーズターゲットを使用してロボットプログラムを生成する場合に役立ちます。

注意: APIを使用してプログラムが自動的に生成される場合、これは必要ありません。

から ロボリンク インポート * #RoboDKと通信するためのAPI

から Robodk インポート * #基本的な行列演算

 

デフ XYZWPR_2_Posexyzwpr):

 返す KUKA_2_Posexyzwpr#X、Y、Z、A、B、Cをポーズに変換

 

デフ Pose_2_XYZWPRポーズ):

 返す Pose_2_KUKAポーズ#ポーズをX、Y、Z、A、B、Cに変換する

 

#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

 

#SolveFKとSolveIK(フォワード/インバースキネマティクス)で非常に重要

ロボットsetAccuracyActive(誤り) #精度はオンまたはオフにできます

 

#ジョイントスペースに公称ターゲットを定義します。

関節 = [0 0 90 0 90 0]

 

#ジョイントターゲットのロボットの公称位置を計算します。

pose_rob= ロボットSolveFK関節#ロボットベースのロボットフランジ

 

#pose_targetの計算:参照フレームに対するTCP

pose_target= invHpose_ref)*pose_rob*pose_tcp

 

印刷する('フィルターされていないターゲット:'

印刷する(Pose_2_XYZWPRpose_target))

 

joints_approx= 関節 #joints_approxは20度以内でなければなりません

pose_target_filt real_joints = ロボットFilterTargetpose_target 関節

印刷する(「フィルターされたターゲット:」

印刷する(real_jointsリストする())

印刷する(Pose_2_XYZWPRpose_target_filt))