自動キャリブレーション

はじめに#AutoCalib-Intro

産業用ロボットは再現性が高いが正確ではないため、ロボットのキャリブレーションによって産業用ロボットの精度を向上させることができます。キャリブレーションがない場合、ロボットの精度はロボットのブランドとモデルに大きく依存します。ロボットのキャリブレーションを使用すると、ツールの中心点(TCP)を正確に計算し、ロボットの運動学的パラメータをキャリブレーションできます。ロボットの精度は2倍から10倍に改善できます。

Robot Automatic Calibration - 画像 1 Robot Automatic Calibration - 画像 2

RoboDKを使用して、ロボット、ツールの中心点(TCP)を較正し、正確なロボットプログラムを生成できます。RoboDKは、ロボットの精度をテストするためにも使用できます。

ロボットのキャリブレーションにより、ロボットをオフラインでプログラミングするときのロボットの精度を大幅に向上させることができます(オフラインプログラミング(OLP)とも呼ばれます)。

自動ロボットキャリブレーションソリューションは、ロボットおよびツールの中心点(TCP)を正確にキャリブレーションできます。

1.球形ツール➔ツールの中心が調整されています

2.円錐ツール➔ツールの先端は校正されています

要件#AutoCalib-Requirements

自動ロボットキャリブレーションを実行するには、RoboDK自動キャリブレーションアプリをインストールし、互換性のあるセンサーが必要です。

次のものが必要です。

1.1つ以上の産業用ロボットアーム。

2.互換性のあるダイヤルインジケーター(LVDTまたはリニアゲージとも呼ばれます)。

3.RoboDKソフトウェアをインストールし、自動ロボットキャリブレーション用の適切なライセンスを利用できる必要があります。

4.互換性が必要ですロボットドライバーあなたのロボットコントローラーのために。

5.自動キャリブレーションRoboDKアプリをインストールします。

a.自動キャリブレーション用のRoboDKアプリをダウンロード        

b.ファイルをダブルクリックしてRoboDKを開きます

c.ツールを選択➔アプリ自動キャリブレーションをダブルクリックすると、右側に自動キャリブレーションのツールバーとメニューが表示されます。

注意:RoboDKアプリでは、App Loaderプラグインを有効にする必要があります。このプラグインは、rdkpファイルをダブルクリックすると自動的にロードされます。そうでない場合は、ツールでApp Loaderプラグインをロードできます。➔プラグインをロード

Robot Automatic Calibration - 画像 3

注意: 自動校正メニューとツールバーが自動的に表示される場合があります。ツールを選択して、自動キャリブレーションアプリ(または他のアプリ)を表示または非表示にできます➔アプリ一覧アプリのEnabledタグをダブルクリックします。

Robot Automatic Calibration - 画像 4

Robot Automatic Calibration - 画像 5

キャリブレーション設定#AutoCalib-Sim

リニアゲージセンサーを使用してロボットを較正するには、ロボットをRoboDKにロードし、センサーとロボットが接続されていることを確認する必要があります。オプションで、オブジェクトとツールの3Dモデルを追加して、セルをモデル化できます。これにより、衝突を自動的に回避できます。

1.ロボットをロードします。

a.ファイルを選択➔オンラインライブラリを開く。オンラインライブラリがRoboDKに表示されます。

b.フィルターを使用してロボットを見つけます。

c.RoboDKステーションにロボットを自動的にロードするには、[ダウンロード]を選択します。

d.または、オンラインライブラリからロボットファイルを直接ダウンロードします(https://robodk.com/library)、RoboDKでファイルを開きます(.robotファイル)。

2.センサーを接続します。

a.センサーをコンピューターに接続します。

b.自動校正を選択Robot Automatic Calibration - 画像 6 測定。

c.センサーが測定中であり、測定値が安定していることを確認してください。

Robot Automatic Calibration - 画像 7

3.ロボットを接続します。

a.接続を選択➔ロボットを接続する

b.ロボットのIPとポートを入力します。

c.接続を選択します。

Robot Automatic Calibration - 画像 8

注意:一部のロボットコントローラは、特定のセットアップまたは特定のソフトウェアオプションに従う必要があります。詳細については、ロボットドライバー セクション。

4.ロボット接続パネルから[位置を取得]を選択します。この手順により、RoboDK内のロボットの位置が更新されます。

クイックセットアップ#AutoCalib-Quick

測定センサーの近くに物体がない場合は、校正手順を開始できます。自動校正を選択するだけRobot Automatic Calibration - 画像 9 ロボットの調整 ロボットのキャリブレーションシーケンスを開始します。

カスタマイズされたセットアップ#AutoCalib-Custom

必要に応じて、これらの手順に従って、セルの3D環境を適切にモデル化できます。

1.ツールの3Dモデルを読み込み、RoboDKでツールを作成します。詳細については、ツールセクションを作成する

2.セルをモデリングする3Dファイルをロードします。3D STEP、IGES、STLファイルをロードできます。入門セクションの詳細情報。

注意:衝突を避けるために、セルを適切にモデル化することを強くお勧めします。

Robot Automatic Calibration - 画像 10 Robot Automatic Calibration - 画像 11

キャリブレーション結果#AutoCalib-Results

ロボットのキャリブレーションシーケンスが完了すると、キャリブレーション結果を示すグラフが表示されます。RoboDKは、ロボットのキャリブレーションがある場合とない場合のツールの中心点(TCP)を計算します。

1.ロボットキャリブレーションなしのTCP:TCPは、公称のロボット運動学を使用して計算されます。

2.TCPとロボットのキャリブレーション:TCPは、正確なロボット運動学を使用して計算されます。測定値は、ロボットと正確なロボットTCPを調整するために使用されます。この方法では、より正確な結果が得られますが、ロボットのエラーを正確に説明するには、プログラムのフィルタリングが必要です。詳細については、プログラムのフィルタリング セクション。

注意: 自動校正を選択➔校正を開始別のポイントセットでロボットのキャリブレーションシーケンスを再開するには(センサーを移動しないでください)。

Robot Automatic Calibration - 画像 12

注意:自動キャリブレーションメニューのキャリブレーションサマリを選択して、これらの結果を表示することもできます。➔結果を表示する

Robot Automatic Calibration - 画像 13

検証#AutoCalib-Run

キャリブレーションシーケンスを実行したら、いくつかの検証テストを実行できます。これらの検証テストは、センサーの同じ場所または異なる場所で行うことができます。

ツールのキャリブレーションを検証する#AutoCalib-ValidTCP

からTCPの更新を選択します ロボットパネルツールのみをキャリブレーションします。キャリブレーションデータは、TCPの計算に使用されます(ロボットキャリブレーションを除く)。

計算されたTCPが表示され、一部の統計は計算されたTCPの推定エラーを提供します。

Robot Automatic Calibration - 画像 14

選択する Robot Automatic Calibration - 画像 15 ツールバーから検証して、検証シーケンスを開始します(メニューまたは[キャリブレーション]パネルから選択することもできます)。

Robot Automatic Calibration - 画像 16

結果に関する要約といくつかの統計を表示するには、「統計の表示」を選択します。これらの統計は、センサーによって検出された平面エラーに対応しています。

Robot Automatic Calibration - 画像 17

注意:自動キャリブレーションメニューから検証結果を選択して、これらの結果を表示することもできます。➔結果を表示する

ロボットとツールのキャリブレーションを検証する#AutoCalib-ValidRobotTCP

から[Update Robot&TCP]を選択します ロボットパネルツールのみをキャリブレーションします。キャリブレーションデータは、TCPの計算に使用されます(ロボットキャリブレーションを除く)。

計算されたTCPが表示されます。一部の統計は、計算されたTCPの推定エラーを提供します。

Robot Automatic Calibration - 画像 18

結果に関する要約といくつかの統計を表示するには、「統計の表示」を選択します。これらの統計は、センサーによって検出された平面エラーに対応しています。

Robot Automatic Calibration - 画像 19

注意:自動キャリブレーションメニューから検証結果を選択して、これらの結果を表示することもできます。➔結果を表示する

Robot Automatic Calibration - 画像 20

設定#AutoCalib-Params

このセクションでは、調整をさらにカスタマイズしてロボットの精度をテストするために変更できる追加の設定とオプションについて説明します。

キャリブレーションパネル#AutoCalib-Panel

自動校正を選択Robot Automatic Calibration - 画像 21 校正パネルロボット校正パネルを開きます。このパネルでは、調整するツールを指定できます。基準点として使用するキャリブレーションターゲットを選択することもできます。

キャリブレーションに使用するターゲットをプレビューし、シミュレーションを実行できます。

Robot Automatic Calibration - 画像 22

[データの表示]を選択して、現在の測定値や以前の測定値を表示できます。

Robot Automatic Calibration - 画像 23

キャリブレーション設定#AutoCalib-Settings

自動校正を選択➔校正設定次の画像に示す設定ウィンドウを開きます。

特に、アプローチ速度、アプローチ距離、測定速度を変更できます。

Robot Automatic Calibration - 画像 24

プログラムのフィルタリング#Calib-Filter

ロボットがキャリブレーションされたら、フィルターされたプログラムを生成するか、キャリブレーションされたロボットパラメーターを考慮して、ロボットキャリブレーションを確実に利用する必要があります。

キャリブレーション後にロボットを正確にプログラムするには、次の方法の1つだけに従う必要があります。

1.RoboDKを使用する オフラインプログラミング正確なプログラムを生成します(生成されたプログラムは既にフィルターされています)。これは、最適な精度の結果を得るために推奨されるオフラインプログラミングオプションです。

2.校正する ロボットコントローラのパラメータ (リンク長、DH-DHMパラメータ、マスタリングパラメータなど)。

3.プログラムのフィルタリング:プログラム内のすべてのロボットターゲットが修正され、ロボットの精度が向上します。

4.ターゲットまたはプログラムのフィルタリング RoboDK APIを使用します。

正確なオフラインプログラミング#Calib-AccurateOLP

ロボットがRoboDKで調整されている場合、ロボットを右クリックして[正確な運動学を使用]を選択することにより、正確な運動学をアクティブ化するオプションがあります。

Robot Automatic Calibration - 画像 25

精度がアクティブな場合は緑色のドットが表示され、アクティブでない場合は赤いドットが表示されます。

これは、最適な精度の結果を得るための推奨オプションです。RoboDKでロボットの精度オプションを有効にすると、RoboDKによって生成されたすべてのプログラムが自動的にフィルタリングされます。つまり、ロボットのエラーを補正するために、すべてのデカルト座標がわずかに変更されます。

これは、ロボットをロボット加工に使用したり、NCファイルからロボットをプログラムしたり、RoboDKでサポートされているCAD / CAMプラグインを使用したりする場合に最適なオプションです。

注意: ツールの中心点(TCP)と参照フレームが 校正済み RoboDKで定義されている(フィルタリング前の実際の設定の値と一致)。

ロボットパラメーターのキャリブレーション#Calib-AccurateDH

ロボットが較正されると、[パラメータ]メニューで較正されたパラメータにアクセスできます。一部のロボットコントローラでは、特定のロボットパラメータを変更できます。

注意:RoboDKはDenatit-Hartenberg Modified規約を使用します。選択/校正されたすべてのパラメータを必ず使用してください。

Robot Automatic Calibration - 画像 26

正確なプログラムフィルタリング#Calib-AccurateFilter

RoboDKでロボットプログラムをドラッグアンドドロップして、それらをフィルタリングできます(または、ファイル➔開いた)。同じフォルダーに正確なプログラムを自動的に作成するには、[フィルターのみ]を選択します。プログラムがフィルタリングされ、同じフォルダに保存されます。

注意:このオプションは、一部のロボットコントローラとロボットプログラミング言語に限定されています。プログラミングのスタイルも重要です。たとえば、RoboDKは、ジョイントターゲットや、プログラム内で計算されたターゲット(forループなど)をフィルタリングしません。

フィルターの要約では、フィルターアルゴリズムの使用に問題があったかどうかが示されます。RoboDK内でプログラムをシミュレーションする場合は、プログラムをインポートするオプションもあります。プログラムに依存関係(ツールフレームまたはベースフレームの定義、サブプログラムなど)がある場合、それらは最初のプログラムがインポートされるのと同じディレクトリにある必要があります。

Robot Automatic Calibration - 画像 27

Robot Automatic Calibration - 画像 28

RoboDK内にプログラムをインポートすることを選択した場合、絶対的な精度の有無にかかわらず、プログラムを再生成できます。RoboDKの主な精度設定(ツール➔オプション➔正確さ)常に正確なキネマティクスを使用してプログラムを生成するか、毎回確認するか、または現在のロボットキネマティクスを使用するかを選択できます。

Robot Automatic Calibration - 画像 29

API#Calib-AccurateAPIを使用してフィルタリングする

前のセクションで説明したように、RoboDK APIを使用して、デカルトターゲットをフィルタリングしたり、プログラムをフィルタリングしたりすることができます。

APIを使用してターゲットをフィルターする

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

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

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

注意: 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))

APIを使用してプログラムをフィルターする

を使用して、キャリブレーションされたロボットとロボットプログラムをトリガーすることができます。 FilterProgram コール:

ロボットFilterProgramfile_program

FilterProgramと呼ばれるサンプルスクリプトは、ライブラリのマクロセクションにあります。次のコードは、RoboDK APIを使用してプログラムをフィルタリングするPythonスクリプトの例です。

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

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

インポート os #パス操作

 

#現在の作業ディレクトリを取得

CWD = osdirnameosリアルパス__ファイル__))

 

#RoboDKが実行されていない場合は起動し、APIにリンクします

RDK = Robolink()

#オプション:バックグラウンドで実行する次の引数を指定します

#RDK = ロボリンクargs = '/ NOSPLASH / NOSHOW / HIDDEN')

 

#キャリブレーションされたステーション(.rdkファイル)またはロボットファイル(.robot)を取得します。

#ヒント:キャリブレーション後、ロボットを右クリックして[.robotとして保存]を選択します

Calibration_file= CWD + '/KUKA-KR6.rdk'

 

#プログラムファイルを取得します。

file_program= CWD + '/Prog1.src'

 

#RDKファイルまたはロボットファイルをロードします。

calib_item= RDKAddFileCalibration_file

もし ない calib_item有効():

 上げる 例外「読み込み中に問題が発生しました」 + Calibration_file

 

#ロボットを取得します(ロボットが1つだけの場合はポップアップなし):

ロボット = RDKItemUserPick「フィルタリングするロボットを選択してください」 ITEM_TYPE_ROBOT

もし ない ロボット有効():

 上げる 例外「ロボットが選択されていないか、利用できません」

 

#精度を有効にする

ロボットsetAccuracyActive1

#フィルタープログラム:プログラムのコピーを自動的に保存します

#ロボットのブランドに応じて名前が変更されたファイル

状態 概要 = ロボットFilterProgramfile_program

 

もし 状態 == 0

 印刷する(「プログラムのフィルタリングに成功しました」

 印刷する(概要

 calib_item削除する()

 RDK閉じるRoboDK()

そうしないと:

 印刷する("プログラムのフィルタリングに失敗しました!エラーコード:%i" 状態

 印刷する(概要

 RDKShowRoboDK()


参照フレームとツールフレーム#Calib-RedoSetup

RoboDKには、参照フレームとツールフレームを調整するためのユーティリティがいくつか用意されています。これらのツールはユーティリティからアクセスできます➔参照フレームの調整とユーティリティ➔ツールフレームの調整それぞれ。

Robot Automatic Calibration - 画像 30

基準フレームまたは自動的に較正されていないツール(それぞれユーザーフレームとTCPとも呼ばれます)を較正するには、3つ以上の点に触れるロボット構成が必要です。これらのロボット構成は、ジョイント値またはデカルト座標(方向データを含む)のいずれかです。ある場合には)。(ロボットの関節をRoboDKのメイン画面にコピーアンドペーストすることにより)RoboDKで実際のロボット構成を確認しやすくなるため、デカルト座標の代わりに関節の値を使用することをお勧めします。

ツールのキャリブレーション#Calib-RedoTool

ユーティリティを選択➔校正ツールRoboDKを使用してTCPを調整します。さまざまな方向を使用して、必要な数のポイントを使用できます。より多くのポイントとより大きな方向の変更は、TCPのより良い推定とTCPエラーのより良い推定を得るのでより良いです。

注意: 詳細については、ヒントセクション

参照フレームのキャリブレーション#Calib-RedoFrame

ユーティリティを選択➔リファレンスを校正する参照フレームを較正します。異なる方法を使用して参照フレームを設定することが可能です。図の例では、参照フレームは3つのポイントで定義されています。ポイント1と2はX軸方向を定義し、ポイント3は正のY軸を定義します。

Robot Automatic Calibration - 画像 31

注意:リファレンスフレームのキャリブレーションに関する詳細情報は、ヒントセクション