産業用ロボットは再現性が高いが正確ではないため、ロボットのキャリブレーションによって産業用ロボットの精度を向上させることができます。ロボットの公称精度は、ロボットのブランドとモデルによって異なります。ロボットのキャリブレーションにより、ロボットの精度を2〜10倍向上させることができます。
オプションで、ボールバーテスト(循環テスト)または ISO9283 パス精度テストを実行して、ロボットの精度をすばやく検証できます。
ロボットのキャリブレーションには測定システムが必要です。RoboDKを使用して、ロボットを調整したり、正確なロボットプログラムを生成したりできます(これには、プログラムのフィルタリングやRoboDKのオフラインプログラミングエンジンの使用が含まれます)。RoboDKは、ボールバーテストまたはロボットミリングによるキャリブレーションの前後にロボットの精度をテストするためにも使用できます。
ロボットのキャリブレーションは、オフラインプログラミング(オフラインプログラミング(OLP)とも呼ばれます)のロボットの精度を著しく向上させることができます。キャリブレーションされたロボットは、キャリブレーションされていないロボットよりも絶対および相対位置決め精度が高くなります。
注意:詳細はこちらhttps://www.robodk.com/robot-calibration#tab-lt
RoboDKをインストールしてロボットのキャリブレーションを適切に実行するには、次のアイテムが必要です。
1.1つ以上の産業用ロボットアーム
2.測定システム:Leica、API、Faroなどのレーザートラッカー、またはCreaformのC-Trackステレオカメラなどの光学CMM
3.RoboDKソフトウェアをインストールする必要があり、ロボットのキャリブレーションテストに適切なライセンスが必要です。ネットワークライセンスの場合、ライセンスを確認するにはインターネット接続が必要です。ロボットのキャリブレーション用にRoboDKをインストールまたは更新するには:
a.ダウンロードセクションからRoboDKをダウンロード
https://robodk.com/download
b.測定システム用のドライバーをセットアップします(最新のライカトラッカーには必要ありません)。
次の場所にサブフォルダを解凍してコピーします。
C:/ RoboDK / api /
APIレーザートラッカー:https://robodk.com/downloads/private/API.zip(OTIIおよびラジアントラッカー)。
ファロレーザートラッカー:https://robodk.com/downloads/private/Faro.zip(すべてのFaroトラッカー)
ライカレーザートラッカー:https://robodk.com/downloads/private/Leica.zip(すべてのライカトラッカー)。
4.レーザートラッカーを使用する場合、ロボットツールに1つ以上のターゲットを取り付ける必要があります。ツールのセットアップ中は、ターゲットを軸6の近くに配置しないでください。そうしないと、ロボットのフランジの位置を正しく識別することができません。
注意:ロボットキャリブレーション用の特別なツールプレートを用意することはオプションです。製造/生産に使用されるのと同じツールを使用してロボットを較正することをお勧めします(同じツールのペイロードと重心)。1つのSMRをロボットツールに取り付けて、校正手順を実行できます。次に、ツール(TCP)を自己校正済みロボットの精度を使用する(ポーズではなく、ロボットのジョイントを使用してTCPを調整するようにしてください)
5.
測定を開始する前に、RoboDKでロボット設定の仮想環境(オフライン設定)を作成することをお勧めします。このセクションでは、RoboDKステーションをオフラインで準備する方法について説明します。これは、RoboDKがインストールされているコンピューターを使用する場合にのみ、ロボットとトラッカーを使用する前に実行できます。
RoboDKキャリブレーション設定の例は、次のフォルダーからダウンロードできます。
https://www.robodk.com/downloads/calibration/
すでにオフラインのセルがある場合は、このセクションをスキップしてください。参照フレームとツールフレームは概算できます。サンプルステーションを次の図に示します。
注: 入門 セクションでは、新しいRoboDKステーションの作成について詳しく説明します。
RoboDKステーションには、仮想環境ステーションとキャリブレーション情報が保存されます。ステーションはRDKファイルとして保存されます。次の手順に従って、ロボットキャリブレーション用のロボットステーションを最初から作成します(ビデオプレビュー:https://youtu.be/Nkb9uDamFb4):
1.ロボットを選択します。
a.ファイルを選択➔オンラインライブラリを開く。オンラインライブラリがRoboDKに表示されます。
b.フィルターを使用して、ロボットをブランド、ペイロードなどで検索します...
c.[ダウンロード]を選択すると、ロボットがステーションに自動的に表示されます。
d.または、ロボットファイル(.robotファイル拡張子)を個別にダウンロードします。 http://www.robodk.com/library RoboDKで開きます。
2.仮想ステーションをモデル化する
a.プログラムを選択して参照フレームを追加する➔参照フレームを追加。
i.ロボットのベースフレームに対して1つの「測定基準」フレームを追加する必要があります。
ii.追加したばかりの「測定値リファレンス」に対して「トラッカーリファレンス」を1つ追加する必要があります。
iii.「Measurements reference」フレームに対して「Tool reference」を1つ追加して、トラッカーから見たツールの位置を視覚化できます。
ヒント1:ツリーにアイテムをドラッグアンドドロップして、現実の世界に存在する依存関係を再構築します。たとえば、トラッカー参照は、「測定参照」に対して配置する必要があります。
ヒント2:AltキーとShift + Altキーをそれぞれ押して、参照フレームまたはツールフレームをおよそ移動します。または、参照フレームをダブルクリックして、正しい座標を入力します。
ヒント3:アイテムツリーのF2キーを使用してオブジェクトの名前を変更します。
b.ツールオブジェクト(STL、IGESおよびSTEPファイルはサポートされている形式)を追加し、それをロボット(アイテムツリー内)にドラッグアンドドロップします。これにより、オブジェクトがツールに変換されます。利用可能な詳細情報ここに。
➔
オプション:プログラムを選択➔空のツールを追加ステーションで可視化したいTCPを追加します(衝突などをチェックするため)。TCPのおおよその値を設定するには:
i.新しいツールをダブルクリックします。
ii.おおよそのTCP値を設定します。右側の2つのボタンを使用して、6つの値を一度にコピーして貼り付けることができます。
iii.キャリブレーションに使用されるTCPの名前を「CalibTool id」という名前に変更することをお勧めします。ここで、idはキャリブレーションターゲット番号です。
c.他の3D CADファイル(STL、IGES、STEP、SLDなど)を追加して、メニューファイルを使用して仮想ステーションをモデリングします。➔開いた…または、ファイルをRoboDKのメインウィンドウにドラッグアンドドロップします。
ヒント1:ロボットの測定値がトラッカーのワークスペース内に生成されるように、測定ワークスペースの3Dファイルをインポートし、Workspaceという名前を付けます。または、トラッカーワークスペース内の測定値を制限したくない場合は、ワークスペースを非表示に設定します。詳細については、次のセクションを参照してください。
ヒント2:Ctrl + Alt + Shift + Pを選択して、RoboDKにインポートされた機密の3Dファイルのエクスポートをブロックすることができます。
3.ステーションにキャリブレーションモジュールを追加します。
a.メニューユーティリティを選択します➔ロボットのキャリブレーション。
b.[レーザートラッカー]を選択します。
すると、次のウィンドウが表示されます。
このウィンドウは今のところ閉じることができます。ロボットキャリブレーションステーションのアイテムをダブルクリックすることで、いつでも開くことができます。
4.ステーションを保存します。
a.ファイルを選択➔ステーションを保存。
b.フォルダーとファイル名を指定します。
c.保存を選択します。新しいRDKファイルが生成されます(RoboDKステーションファイル)。
RDKファイルを開くことで、ステーションの変更をいつでも回復できます(Windowsではファイルをダブルクリックします)。
次の詳細を再確認することが重要です。
1.キャリブレーションツールの名前は「CalibTool id」で、IDは1から始まる番号です(3つのキャリブレーションツールがある場合、「CalibTool 1」、「CalibTool 2」、「CalibTool 3」が必要です。
2.Measurementsリファレンスフレームは、ロボットベースに直接依存します。
ここでは、この参照フレームの推定を使用できます。
3.TrackerリファレンスはMeasurementsリファレンスに直接依存します。トラッカーリファレンスは、測定リファレンスに対するレーザートラッカーのおおよその位置である必要があります。
4.ロボットキャリブレーションプロジェクトがステーションに存在しており、計画しているすべての測定は衝突がなく、レーザートラッカーで確認できます(測定のグループごとに表示を選択)。
5.衝突を自動的にチェックしたい場合は、衝突のチェックに使用するすべてのオブジェクトで名前タグ「collision」を使用する必要があります。衝突を安全に回避するために、衝突チェックには、調整済みのツールより約25%大きいツールを使用することをお勧めします。
ロボットのキャリブレーションを正常に実行するために必要な測定セットは4つあります。
1.基本セットアップ:ロボットに対して校正基準を配置するには、6つ(またはそれ以上)の移動軸1および2が必要です。キャリブレーション設定ウィンドウで[表示]を選択すると、ロボットがシーケンスに沿って移動します。
2.ツールのセットアップ:ツールフランジとツールターゲット(移動軸5および6)を校正するには、7回以上の測定が必要です。[表示]を選択すると、ロボットがシーケンスに沿って移動します。
3.校正測定:ロボットのキャリブレーションには60回以上の測定が必要です。これらの測定値は、ロボットのワークスペースにランダムに配置でき、周囲のオブジェクトとの衝突がありません。
4.検証測定(オプション):ロボットの精度を検証するために、必要なだけの測定を使用できます。これらの測定値は、ロボットの精度を検証するためにのみ使用され、ロボットのキャリブレーションには使用されません。
最初の2つの測定セットは、RoboDKによって自動的に生成されます。[表示]を選択すると、ロボットはシーケンスに従います(次の図に示すとおり)。シーケンスを変更する必要がある場合は、[測定]を選択し、[データのエクスポート]を選択して、キャリブレーション測定をCSVファイルとしてエクスポートします。このファイルは、Excelシートを使用して編集し、[データのインポート]をクリックして再インポートできます。
最後の2つの測定セット(キャリブレーションと検証)は、次のマクロスクリプトを使用して生成できます。測定値を作成します。このマクロスクリプトは、ロボットのキャリブレーションプロジェクトを開始すると、ステーションに自動的に追加されます。マクロをダブルクリックして実行します。このマクロは、ユーザーに次の設定を定義するように案内するPythonプログラムです。
●測定数:生成する測定の数。ロボットのキャリブレーションには最低60回の測定が必要なため、デフォルトでは80回の測定が使用されます。
●参照位置:参照位置は、ターゲットが表示されているツールがトラッカーに面しているロボットの位置である必要があります。
●ジョイント制限:ジョイントの下限と上限を指定する必要があります。
●デカルトの制限:ロボットの参照フレームに関してデカルトの制限(X、Y、Z値)を提供できます。
スクリプトは、ツールがトラッカーに面している場所で測定値を自動的に生成し、関節とデカルトの制約を尊重します。ツールを中心とした+/- 180度の回転は、参照位置でトラッカーに面する方向を中心に許可されます。さらに、関節の動きのシーケンスは、衝突がなく、測定ワークスペース内にあります(ワークスペースが表示されるように設定されている場合)。次の画像は、自動シーケンスが開始する前にユーザーに表示される概要を示しています。シーケンスが完了するまでに最大5分かかる場合があります。
必要に応じて、[測定の作成]スクリプトを右クリックして[スクリプトの編集]を選択することにより、スクリプトを変更してから、アルゴリズムの追加パラメーターを変更できます。スクリプトは、ユーザー入力をステーションパラメータとして自動的に保存します。次の画像に示すように、ステーションを右クリックしてステーションパラメータを選択することにより、これらの設定を表示、編集、または削除できます。
アルゴリズムが完了すると、新しいメッセージがポップアップします。「キャリブレーション」を選択して、ロボットのキャリブレーションに60個の測定値を使用できます。同じスクリプトを再実行して、検証用の別の測定セットを生成できます。このステップはオプションですが、検証のために80回の測定をお勧めします。
最後に、[メジャー]メニュー内の[データのインポート]を選択して、手動で選択した構成をインポートすることもできます。CSVまたはTXTファイルをNx6マトリックスとしてインポートできます。ここで、Nは構成の数です。
測定を行う手順を自動化するには、レーザートラッカーとロボットをコンピューターに接続する必要があります。また、レーザートラッカーを移動する場合に備えて、3点で参照フレームを測定することをお勧めします(この手順は、軸1のホームポジションを復元する場合は必須です)。附属書II詳細については)。
次の図に示すように、少なくとも1つのSMRターゲット(3つ以上を推奨)を接続する必要があります。レーザートラッカーを移動する必要がある場合は、3つのネストを参照フレームとして使用すると便利です。
次のサブセクションは、測定を開始する準備ができるように、順次実行する必要があります。
RoboDKとの通信を適切に設定するには、レーザートラッカーのIPが必要です。次の手順に従って、レーザートラッカーとの通信を確認します。
a.メニューを選択«接続➔レーザートラッカーを接続»。新しいウィンドウが開きます。
b.レーザートラッカーのIPを設定します。
c.「接続」ボタンをクリックします。
接続が成功すると、「準備完了」を示す緑色のメッセージが表示されます。ウィンドウを閉じることができ、接続はアクティブなままになります。
RoboDKとの通信を適切に設定するには、ロボットのIP(またはRS232接続のCOMポート番号)が必要です。次の手順に従って、ロボットとの通信を確認します。
1.接続を選択➔ロボットを接続する。新しいウィンドウが表示されます。
2.ロボットのIPおよびポートを設定します(RS232経由の場合はCOMポート)。
3.[接続]ボタンをクリックします。
4.問題が発生した場合は、付録を参照してください。
注意:詳細については、 プログラムセクション。
接続が成功すると、準備完了を示す緑色のメッセージが表示されます。[現在のジョイントを取得]を選択した場合、仮想ロボットの位置は実際のロボットの位置と正確に一致する必要があります。または、[現在の関節に移動]を選択して、シミュレーターで設定された現在の位置にロボットを移動します。ウィンドウを閉じることができ、接続はアクティブなままになります。
ロボットベースに取り付けられたキャリブレーション参照フレームを測定することをお勧めします。これは、キャリブレーション中にトラッカーを移動したり、2つのロボットキャリブレーションを比較したりする場合に役立ちます。キャリブレーション参照フレームは、3つの具体的なポイントで定義する必要があります。
ロボットに対してトラッカーを移動しない場合、または軸1のホームポジションを復元する必要がない場合は、この手順を省略できます。この場合、レーザートラッカーの参照が使用されます。
レーザートラッカーを移動するたびに、次の手順を実行する必要があります。
1.接続を選択➔レーザートラッカーを接続する。
2.レーザートラッカーのIPを設定し、[接続]を選択します(レーザートラッカーが接続されていない場合)。
3.画像に示すように、キャリブレーション基準とトラッカー基準を設定します。キャリブレーション基準は「測定基準」とも呼ばれます。
4.[基本ターゲットの設定]を選択します。
RoboDKは、次の画像に示すメニューでユーザーをガイドします。手順が完了すると、レーザートラッカーの位置が、キャリブレーション基準に対して自動的に更新されます。
ロボットのキャリブレーションは4つのステップに分かれています。各ステップでは、一連の測定を行う必要があります。次の4つの手順を順番に実行する必要があります。
1.基本参照測定(3分)。
2.ツールリファレンス測定(3分)
3.キャリブレーション測定(7分、60測定)
4.検証測定(7分、60測定)。
次のビデオは、このキャリブレーションを20分で実行する方法を示しています。 https://www.robodk.com/robot-calibration#tab-lt。検証測定(ステップ4)はロボットのキャリブレーションに必須ではありませんが、精度結果の客観的な観点を提供します。ある領域でのロボットのキャリブレーションと別の領域での検証の影響を確認することもできます。
4つの測定セットのそれぞれに対して[測定]ボタンを選択します。これにより新しいウィンドウが開き、既存の測定値をテキストファイル(csvまたはtxt形式)にインポートおよびエクスポートできます。
これらの測定は、6つの測定すべてで同じターゲットを測定する場合、ツールフランジの任意の場所で実行できます。測定を開始するには、[基本設定]セクションで[測定]を選択します。次のウィンドウが開きます。次に、[測定開始]を選択すると、ロボットはスケジュールされた測定を順に実行します。
測定が完了したらウィンドウを閉じます。測定基準フレームがロボットのベースフレームに対して更新されます。参照フレームを選択しなかった場合は、参照を追加できます(プログラムを選択します➔参照フレームを追加)をロボットのベース参照の下に配置します(アイテムツリーのドラッグアンドドロップ)。
概要には、キャリブレーション参照フレーム(mmおよびラジアンでの[x、y、z、w、p、r]形式)に対する位置と方向またはロボット参照フレームが表示されます
6つの測定で同じターゲットを測定する限り、測定1〜6はツールフランジの任意の場所で実行できます。その後、測定するすべてのTCPが同じTCPに対して1つの測定値を追加します。この場合、3つのTCPがあるため、合計で6 + 3 = 9の測定値になります。測定値をダブルクリックして、その位置から測定を続けることができます。
前のセクションと同様に、[ツールセットアップ]セクションで[測定]を選択します。次のウィンドウが開きます。[測定を開始]を選択すると、ロボットは計画された測定を順に実行します。測定をダブルクリックして、その位置から測定を続行します。
手順が完了すると、要約に調整済みTCPが表示されます。TCPの定義(次の画像「CalibTool 1」)は自動的に更新されます。TCPを選択しなかった場合は、新しいTCPを追加できます(「プログラム➔空のツールを追加」)、「再計算」を選択します。新しいウィンドウが表示され、測定した順序に応じてツールの「ID」を選択する必要があります。同じ手順を繰り返して、必要な数のTCP(この場合は3つのTCP)を更新できます。ツールの名前が数字で終わる場合、ツールのIDは自動的に検出されます。
キャリブレーションセクションで測定を選択します。次のウィンドウが開きます。次に、[測定開始]を選択すると、ロボットは計画された測定を順に実行します。測定をダブルクリックして、その位置から測定を続行します。
測定が完了したらウィンドウを閉じます。ロボットは自動的に調整され、問題がなければ次のメッセージが表示されます。
最後に、緑色の画面に、キャリブレーション測定に関する統計と、それらの測定の精度がどの程度向上するかが表示されます。
ロボットのキャリブレーションに使用したのと同じ測定値を使用してロボットの精度を検証するべきではないため、精度を検証するために追加の測定を行うことをお勧めします(精度結果のより客観的な観点を持ちます)。
検証測定を行うには、同じ校正手順に従う必要があります。概要には検証統計が表示されます。次を参照してください結果セクション詳細については。
キャリブレーションが完了すると、RoboDKによって提供される統計を読み取ることにより、精度の向上を分析できます。これらの統計を表示するには、ロボットキャリブレーションウィンドウを開きます(ロボットキャリブレーションアイコンをダブルクリックします)。検証セクションの概要ウィンドウには、キャリブレーション前(公称キネマティクス)とキャリブレーション後(キャリブレーションされたキネマティクス)のエラーが表示されます。2つのテーブルが提供されます。1つは位置エラーに関する統計を示し、もう1つは距離エラーを示します。
●位置誤差:位置誤差は、ロボットが参照フレームに対して1点を達成できる精度です。
●距離誤差:距離誤差は、ポイントのペアの距離誤差を測定することによって取得されます。ロボットが認識する2点間の距離(キャリブレーションされた運動学を使用して取得)は、測定システムが認識する距離(物理的に測定)と比較されます。すべての組み合わせが考慮されます。315回測定した場合、315x315 / 2 = 49455の距離エラー値になります。
提供される統計は、平均誤差、標準偏差(std)、および最大誤差です。また、平均に標準偏差の3倍を加えた値も提供されます。これは、すべての測定値の99.98%の予想誤差に対応します(誤差が正規分布に従うことを考慮した場合)。
[統計を表示]を選択すると、キャリブレーションの前後の誤差の分布が2つのヒストグラムに表示されます。1つは位置精度のヒストグラム、もう1つは距離精度を示します。次の画像は、この例で使用されている315の検証測定に対応しています。
最後に、[レポートを作成]を選択すると、このセクションに表示される情報を含むPDFレポートが生成されます。
ロボットのキャリブレーションが完了すると、ロボットのキャリブレーションを使用するさまざまな方法があります。
●既存のプログラムをフィルタリングする:プログラム内のすべてのロボットターゲットは、ロボットの精度を向上させるために変更されます。手動またはAPIを使用して実行できます。
●オフラインプログラミング用のRoboDKを使用して、正確なプログラムを生成します(APIを使用して生成されたプログラムを含め、生成されたプログラムは既にフィルター処理されています)。
既存のプログラムを手動でフィルタリングするには:ロボットプログラムファイルをRoboDKのメイン画面にドラッグアンドドロップします(または[ファイル]を選択します➔開いた)、[フィルターのみ]を選択します。プログラムがフィルタリングされ、同じフォルダに保存されます。フィルターの概要では、フィルターアルゴリズムの使用に問題があったかどうかが示されます。RoboDK内でプログラムをシミュレーションする場合は、プログラムをインポートするオプションもあります。プログラムに依存関係(ツールフレームまたはベースフレームの定義、サブプログラムなど)がある場合、それらは最初のプログラムがインポートされるのと同じディレクトリに配置する必要があります。
RoboDK内にプログラムをインポートしたら、絶対的な精度の有無にかかわらず、プログラムを再生成できます。RoboDKの主な精度設定(ツール➔オプション➔正確さ)常に正確なキネマティクスを使用してプログラムを生成するか、毎回確認するか、または現在のロボットキネマティクスを使用するかを決定できます。現在のロボットの運動学を変更するには、ロボットを右クリックして、[正確な運動学を使用]タグをアクティブ化/非アクティブ化します。アクティブな場合は緑色のドットが表示され、アクティブでない場合は赤いドットが表示されます。
キャリブレーションされたロボットとロボットプログラムを使用して、RoboDKを使用して完全なプログラムをフィルタリングすることが可能です。 FilterProgramコール:
ロボット。FilterProgram(file_program)
FilterProgramと呼ばれるマクロの例は、ライブラリのマクロセクションにあります。次のコードは、RoboDK APIを使用してプログラムをフィルタリングするPythonスクリプトの例です。
からロボリンクインポート*#RoboDKと通信するためのAPI
から Robodk インポート*#基本的な行列演算
インポート os #パス操作
#現在の作業ディレクトリを取得
CWD = os。道。dirname(os。道。リアルパス(__ファイル__))
#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 = RDK。AddFile(Calibration_file)
もしない calib_item。有効():
上げる例外(「読み込み中に問題が発生しました」+ Calibration_file)
#ロボットを取得します(ロボットが1つだけの場合はポップアップなし):
ロボット= RDK。ItemUserPick(「フィルタリングするロボットを選択してください」、 ITEM_TYPE_ROBOT)
もしないロボット。有効():
上げる例外(「ロボットが選択されていないか、利用できません」)
#精度を有効にする
ロボット。setAccuracyActive(1)
#フィルタープログラム:プログラムのコピーを自動的に保存します
#ロボットのブランドに応じて名前が変更されたファイル
状態、概要=ロボット。FilterProgram(file_program)
もし状態==0:
印刷する(「プログラムのフィルタリングに成功しました」)
印刷する(概要)
calib_item。削除する()
RDK。閉じるRoboDK()
そうしないと:
印刷する("プログラムのフィルタリングに失敗しました!エラーコード:%i"%状態)
印刷する(概要)
RDK。ShowRoboDK()
次のコードは、RoboDK APIを使用してターゲット(ポーズターゲットまたはジョイントターゲット)をフィルタリングするPythonスクリプトの例です。 FilterTargetコマンド:
pose_filt、joints = robot.FilterTarget(nominal_pose、estimated_joints)
この例は、サードパーティのアプリケーション(RoboDK以外)がポーズターゲットを使用してロボットプログラムを生成する場合に役立ちます。
注意: APIを使用してプログラムが自動的に生成される場合、これは必要ありません。
からロボリンクインポート*#RoboDKと通信するためのAPI
から Robodk インポート*#基本的な行列演算
デフXYZWPR_2_Pose(xyzwpr):
返す KUKA_2_Pose(xyzwpr)#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と参照フレームを更新する
ロボット。setTool(pose_tcp)
ロボット。setFrame(pose_ref)
#SolveFKとSolveIK(フォワード/インバースキネマティクス)で非常に重要
ロボット。setAccuracyActive(誤り)#精度はオンまたはオフにできます
#ジョイントスペースに公称ターゲットを定義します。
関節=[0、0、90、0、90、0]
#ジョイントターゲットのロボットの公称位置を計算します。
pose_rob =ロボット。SolveFK(関節)#ロボットベースのロボットフランジ
#pose_targetの計算:参照フレームに対するTCP
pose_target = invH(pose_ref)*pose_rob*pose_tcp
印刷する('フィルターされていないターゲット:')
印刷する(Pose_2_XYZWPR(pose_target))
joints_approx =関節#joints_approxは20度以内でなければなりません
pose_target_filt、 real_joints =ロボット。FilterTarget(pose_target、関節)
印刷する(「フィルターされたターゲット:」)
印刷する(real_joints。リストする())
印刷する(Pose_2_XYZWPR(pose_target_filt))
ロボットのキャリブレーションが完了すると、通常はプログラムをフィルタリングするためにRoboDKが必要になるため、RoboDKライセンスが必要です(ロボットがキャリブレーションされたら、基本的なOLPライセンスで正確なロボットプログラムを生成できます)。プログラムをフィルタリングするとは、すべてのキャリブレーションパラメーター(約30パラメーター)を考慮に入れて、プログラムのターゲットを変更/最適化してロボットの精度を向上させることです。
または、ジョイントオフセットとベースフレームとツールリファレンスフレームのみをキャリブレーションすることもできます(4つのジョイントオフセットパラメーターと6つのパラメーター、ベースフレームとツールフレームの6つのパラメーター)。キャリブレーションは、デフォルトの完全なキャリブレーションを使用した場合ほど正確ではありませんが、ロボットコントローラーに特定のパラメーターを入力でき、RoboDKに依存せずにロボットプログラムを生成できます。
ジョイントオフセットのみのキャリブレーションを取得するには、キャリブレーションを選択する必要があります。パラメータ。ボタン、次にマスタリングボタン(ロボットのキャリブレーションメニュー内)。
[マスタリングプログラムの作成]を選択すると、新しいウィンドウが表示されます。このウィンドウでは、新しいホームポジションの作成を検討する軸を選択できます。
[マスタリングプログラムの作成]ボタンがロボットのキャリブレーションウィンドウに表示されます。このボタンを選択して、ロボットを新しいホームポジションに戻すプログラムを生成します。ロボットに転送して実行すると、新しいホームポジションが記録されます。
ロボットとPCが接続されている場合は、プログラムを右クリックして、 プログラムをロボットに送信プログラムをロボットに自動的に送信します。それ以外の場合は、ロボットプログラムを生成するホームポジションの新しいジョイント値を確認します。
例として、次の手順に従ってMotomanロボットのホームポジションを更新する必要があります。
最初にプログラム「MASTERING」を実行して、ロボットを新しいホームポジションに戻す必要があります。
プログラムがコントローラーに入ると、「管理モード」(Motomanロボットのパスワードは通常99999999)としてログインする必要があり、ティーチモードにする必要があります。次の図は、従う必要のある手順を示しています。
すべてのロボットジョイントのホームポジションを必ず更新してください。
ホームポジションを設定したら、ロボットを新しいホームポジションに持ってきたロボットプログラムを削除する必要があります。
RoboDKには、参照フレームとツールフレームを調整するためのユーティリティがいくつか用意されています。これらのツールはユーティリティからアクセスできます➔参照フレームの調整とユーティリティ➔ツールフレームの調整それぞれ。
参照フレームまたはツールフレーム(それぞれユーザーフレームおよびTCPとも呼ばれます)を調整するには、3つ以上の点に接触するいくつかのロボット構成が必要です。これらのロボット構成は、ジョイント値またはデカルト座標(場合によっては方向データを持つ)のいずれかです。(ロボットの関節をRoboDKのメイン画面にコピーアンドペーストすることにより)RoboDKで実際のロボット構成を確認しやすくなるため、デカルト座標の代わりに関節の値を使用することをお勧めします。
ユーティリティを選択➔校正ツールRoboDKを使用してTCPを調整します。さまざまな方向を使用して、必要な数のポイントを使用できます。より多くのポイントとより大きな方向の変更は、TCPのより良い推定とTCPエラーのより良い推定を得るのでより良いです。
注:詳細については、ヒントセクション。
TCPを調整するには、次の2つのオプションを使用できます。
●方向の異なるTCPで1つの静止点に触れること。
●(タッチプローブのように)TCPで平面に触れる。
タッチプローブまたはスピンドルを調整する必要がある場合は、平面参照に触れて調整することをお勧めします。この方法は、ユーザーエラーに対してより安定しています。
TCPが球形の場合、球の中心は新しいTCPとして計算されます(球の直径を指定する必要はありません)。
(図に示すように)平面でTCPを調整するには、次の手順に従う必要があります。
1.キャリブレーションが必要なツールを選択します。
2.校正方法を選択➔” Calib XYZ by plane”。
3.「ジョイント」を使用してキャリブレーションを選択します。
4.使用しているロボットを選択してください。
5.TCPキャリブレーションに使用する構成の数を選択します(8つ以上の構成を取ることをお勧めします)。
6.参照面の推定を選択します。参照面がロボットのXY平面に平行でない場合(ロボット参照から)、この参照面の推定値を±20度以内で追加する必要があります。この平面の位置は重要ではなく、方向だけが重要です。
7.ジョイント値のテーブルへの入力を開始できます。手動で、またはボタンを使用してコピー/貼り付けを実行することで(図に示すように)入力できます。「Get Jx」ボタンを使用して、シミュレータのロボットから現在の関節値を取得することもできます。ロボットに接続されている実際のロボットから関節を取得する場合は、最初にロボット接続メニューから[現在の関節を取得]を選択する必要があります(RoboDKとロボットの接続の詳細については、添付の画像または付録を参照してください)。キャリブレーションに使用するジョイント(テキストファイルなど)のコピーを個別に保存することを強くお勧めします。
8.テーブルがいっぱいになると、新しいTCP値(X、Y、Z)が「キャリブレーション済みTCP」としてウィンドウの終わりに向かって表示されます。「更新」を選択すると、RoboDKステーションで新しいTCPが更新されます。この方法では、プローブの向きを見つけることができません。
9.「エラーを表示」を選択すると、計算されたTCP(すべての構成の平均)に関するすべての構成のエラーが表示されます。エラーが他の構成よりも大きい場合は、1つの構成を削除できます。
10.実際のロボットコントローラの値を手動で更新する必要があります(X、Y、Zのみ)。このTCPがRoboDKによって生成されたプログラムで使用される場合、ロボットコントローラの値を更新する必要はありません。
ユーティリティを選択➔リファレンスを校正する参照フレームを較正します。異なる方法を使用して参照フレームを設定することが可能です。図の例では、参照フレームは3つのポイントで定義されています。ポイント1と2はX軸方向を定義し、ポイント3は正のY軸を定義します。
注意:リファレンスフレームのキャリブレーションに関する詳細情報は、ヒントセクション。
軸1と6のマスタリング/ホーム値を復元する場合は、特別な注意を払う必要があります。これらの値は、軸1のロボットベースフレームと軸6のTCPリファレンスに直接関連しています。したがって、外部測定を行う必要があります。これらの値を適切に設定します。このウィンドウは、キャリブレーションメニューで[マスタリングプログラムの作成]を選択すると表示されます。
これらの2つの軸のマスタリングパラメータを適切に設定するには、次の2つの手順に従う必要があります。
軸6の「ホーム」位置を適切に設定するには、参照ターゲットを使用する必要があります。角度オフセットは、測定されたTCP(X、Y、Z)を既知のTCPリファレンス。測定されたTCP(次の画像を参照)は、キャリブレーション手順のステップ2で測定されたTCPの1つです。参照TCPは、使用されている調整ツールのTCPの1つに対応する既知の参照です。
理想的には、リファレンスTCPは、ツールフランジに関してCMMで測定する必要があります(ロボットツールフランジのレプリカが最適です)。または、新しいロボットを使用してTCPを初めて測定し(キャリブレーション手順のステップ2)、1つの測定されたTCPを基準として使用することもできます。エンドエフェクタが常に同じ位置に配置されるようにするには、ダウエルピンや適切なツールフランジリファレンスを使用することが重要です。
軸1を実際のロボットのベースフレームに合わせる場合、ロボットのキャリブレーションを開始する前に3つのベースターゲットを適切に測定する必要があります。これらのベースターゲットは、ロボットに対して参照フレームが見つかるように選択する必要があります。
軸1の「ホーム」位置は、3つのベースターゲットとロボットベースのセットアップに直接依存します。ロボットベースのセットアップは最初のキャリブレーションステップで、測定システムのベースフレームは、軸1と2を移動して測定することにより、ロボットベースフレームに対して配置されます。
測定システムのベースターゲットは、[ベースターゲットの設定]を押すと設定できます(次の図を参照)。これらは、目的のロボット参照フレームを定義する3つの測定値です(最初の2つの測定値はX軸を定義し、3番目の点は正のY軸です)。この手順を繰り返すことができるように、ロボットベースに関連する適切な基準点を使用する必要があります。
ジョイント1の補正角度は、3点を介して測定されたベースリファレンスのX軸と、ロボット軸1および2を移動して測定されたベースリファレンスの間の角度になります。もちろん、両方のベクトルは以前に、ツリーポイントをタッチして取得したベースリファレンス。
ロボットのキャリブレーションでは、測定システムを使用してロボットから測定値を取得する必要があります。これらの測定を行うには、コンピューターと通信するFaroレーザートラッカーが必要です。通信は、コンソールモードで実行できるドライバexeファイルを介して行われます。
たとえば、Faroは「Tracker Utilities」と呼ばれる無料のアプリケーションを提供しています。このアプリケーションは、レーザートラッカーを初期化し、とりわけヘルスチェックを実行できます。
トラッカーを初期化するには、「トラッカーユーティリティ」アプリケーションを起動し、トラッカーIPを使用して接続してから、「スタートアップチェック」を選択します。トラッカーが初期化されるとき、初期化の前に1.5インチSMRターゲットを「ホーム」位置に配置する必要があります。そうしないと、初期化後に緑色のライトが点滅し、測定が無効になります。
初期化が完了したら、次の図に示すように、「スタートアップが完了しました」メッセージを読む必要があります。
トラッカーで問題が発生した場合は、「ヘルスチェック…」を押してヘルスチェックを実行できます。次の2つの画像は、それぞれ成功チェックと失敗チェックを示しています。場合によっては、ケーブルを再接続してLaser Trackerを再起動すると、問題が解決することがあります。
注意:時々、トラッカーの自己補正を実行することをお勧めします。この補正では、トラッカーヘッドのいくつかの基準点を使用して、測定システムを自動較正します。または、角度精度チェックを実行して、レーザートラッカーの精度を検証することもできます。
最後に、「測定パッド」を使用していくつかの測定を行うことができます。レーザートラッカーはターゲットを追跡し、XYZ位置を1000 Hzのレートで測定できます。ポイントごとに1つのサンプルを設定し、連続トリガーを設定すると、トラッカーは1秒あたり1000回の測定をCSVファイルに記録します。
この機能を使用してロボットの経路を測定し、RoboDKの経路精度チェックを使用して、経路に沿った精度、速度、加速度を確認できます。