ユニバーサルロボット(UR)は、2つの異なる方法を使用してRoboDKでプログラムできます:URPファイルまたはスクリプトファイル。
1.グラフィカルユーザーインターフェイス(URPファイル):URPプログラムは、ロボットのティーチペンダントのタッチスクリーンを使用して作成されます。URPプログラムには、1つ以上のスクリプトファイルをサブプログラムとして含めることがあります。URPプログラムは、実行前にロボットコントローラによってスクリプトプログラムに変換されます。
2.スクリプトファイル:スクリプトプログラムは、URのスクリプトプログラミング言語を使用します。他のプログラミング言語と同様に、URスクリプトには変数、タイプ、制御構造ステートメント、関数などがあります。さらに、URスクリプトには、ロボットのI/Oと動きを制御するいくつか組み込まれた変数と関数があります。
RoboDKを使用すると、URロボットが実行できるスクリプトファイルとURPファイルが生成できます。さらに、ロボットがコンピュータに接続されている場合、RoboDKからプログラムをロボットで実行する事ができます。
スクリプトファイルをRoboDKのシミュレーターにインポートすることもできます。これにより、スクリプトプログラムをシミュレートと変更して、再エクスポートできます。
URロボットのグラフィカルユーザーインターフェイスは、PolyScopeと呼ばれます(次の画像を参照に)。

ロボットのIPは、RoboDKシミュレーターから直接プログラムを実行する必要があります。FTPを通してでプログラムファイルを転送することもできます。
ロボットのIPは、URのティーチペンダントのメイン画面の[About]メニューから取得できます。

ロボットは、イーサネット接続(直接接続またはネットワーク)を介してコンピューターに接続する必要があります。Pingテストは、ネットワークリンクが適切に安定しているかどうかをテストします。
ロボットドライバーによって、オフラインプログラミング(プログラムを生成して、ロボットに転送してからて実行する事)の代わりを提供します。RoboDKのシミュレーションを直接ロボットで実行する事ができます(オンラインプログラミング)。詳細については、ロボットドライバー項目へ。
次の手順を辿って、RoboDKからロボットに接続します:
1.RoboDKでロボットを右クリックしてください
2.
3.ロボットのIPを入力して
4.接続を選択します。
接続が成功した場合、準備完了と示す緑色のメッセージが表示されます。
接続メニューからポジションを取得、関節を移動、直線移動を選択して、ロボットが動かせます。

PCからロボットにプログラムを実行させるには、2つ方法があります:
1.RoboDKでフィードバックを得ながら、指示を一歩一歩行いながらロボットで実行(オンラインプログラミング):
この方法は、ロボットをサーバーとして使用し、シミュレータで実行されると同時に各指示をロボットに送信します。この方法はデバッグをする際に役立ちます。
a.プログラムを右クリックします(この例ではPrint3D)
b.ロボットで実行を選択
c.プログラムをダブルクリックして開始します(または右クリックして実行を選択)。
この設定をチェックすると、プログラムをダブルクリックするたびに実際のロボットに接続します(または右クリックして実行を選択すると)。
これらの操作は、RoboDK APIからも使用できます。これにより、他のアプリケーションとロボットプログラミングを統合できます。APIは、Python、C#、およびその他のプログラミング言語で使用できます。

2.プログラムをロボットに送信は、完全なプログラムを生成してからロボットに転送します。転送が終えたら、実際のロボットでプログラムを開始しさせます(ロボットオフラインプログラミング)。
a.プログラムを右クリックしてください(この例ではPrint3D)。
b.プログラムをロボットに送信(Ctrl+F6)を選択します。

UReロボット(UR3e、UR5e、またはUR10e)を使用している場合は、URのロボットコントローラーでリモートコントロール設定を有効にする事をお勧めします。
UReのリモートコントロールを有効にするには、次の手順を辿ってください:
1.右上のボタンから設定メニューを選択してください
2.システム - リモートコントロール(System-Remote Control)を選択
3.有効を選択します
4.操作モードをリモートコントロールに変更します



RoboDKドライバーとURの制御システムとの接続は双方向です。つまり、ドライバーはクライアントとしてリモートシステムに接続するだけでなく、同時にサーバーとしても機能し、制御システムからの逆方向の接続を待ち受けます。UR制御システムからRoboDKのコンピューターへのこの逆方向の接続は、RoboDK側からは外部からの着信接続とみなされます。このような接続は、多くの場合、オペレーティングシステムのファイアウォールによってブロックされます。システムのファイアウォールを完全に無効にすることが受け入れられない場合は、以下の表を使用して、必要な受信および送信接続を許可してください:
用途 | 方向 | プロトコル | ポート番号 (apiur) | ポート番号 (DriverUR) |
セカンダリインターフェース | RoboDK → UR | TCP | 30002 | 30002 |
リアルタイムインターフェース(RTDE) | RoboDK → UR | TCP | not used | 30004 |
リバースインターフェース | UR → RoboDK | TCP | 30000 | 50001 |
スクリプト送信 | UR → RoboDK | TCP | not used | 50002 |
軌道インターフェース | UR → RoboDK | TCP | not used | 50003 |
スクリプトコマンドインターフェース | UR → RoboDK | TCP | not used | 50004 |
RoboDKシミュレーションの準備が出来たら、スクリプトおよび/またはURPプログラムが生成できます。この2つのファイルは、ロボットコントローラで実行できます。次の手順を辿って、ロボットシミュレーションからスクリプトおよびURPプログラムを生成します:
1.プログラムを右クリックします(この例ではPrint3D)。
2.ロボットプログラムを生成 F6を選択します
プログラムはテキストエディタに表示されます(この動作はメニューで変更できます:ツール➔設定➔プログラム)。

スクリプトおよびURPファイルの転送は、SFTP転送またはUSBドライブを介してできます。
次の手順は、ユニバーサルロボットのロボットにURPファイルを読み込む方法をまとめたものです。
1.プログラムを右クリックし、ポストプロセッサーを選択を選択します
2.Universal Robots URPを選択
デフォルトのポストプロセッサーもURPファイルを生成するため、最初の2つのステップは任意です。しかし、スクリプトファイルとして実行するURPプログラムではなく、ユーザーが読み込めるURPプログラムを生成します。
3.プログラムを右クリックし、ロボットプログラムを生成(F6)を選択して
4.生成されたURPファイルをUSBメモリディスクに保存します。
5.USBメモリディスクをロボットのティーチペンダント(URのポリスコープ)に接続
6.ロボットティーチペンダントで:実行タブを選択します
7.Load Programを選択し、RoboDKから生成されたプログラムを読み込みます
8.プログラムタブを選択し、再生ボタンで開始します
9.再生ボタンを選択してプログラムを開始します。




次の手順と画像は、ロボットでスクリプトプログラムを実行する手順をまとめたものです。これらの手順は、URPプログラムファイルを実行するために必要ではありません:
1.ティーチペンダントのメイン画面でProgram Robotを選択します
2.Empty Programを選択
3.Structureタブを選択して
4.Advancedタブを選択してください
5.Script codeを選択
6.Fileを選択します(画像で示すように)
7.RoboDKによって生成されたスクリプトファイルを選択します
8.再生アイコンを選択してプログラムを実行させます
9.File ➔Saveを選択して変更を保存します
10.最後に、プログラムが実行できます




RoboDKから生成されたスクリプトプログラム(F6キーを押した時など)は、USBディスクを使用してロボットに転送できますがロボットとコンピュータが接続されている場合は、FTP転送も使用できます。
FileZillaクライアントをデフォルトパスまたはRoboDKインストールフォルダー内にインストールして、RoboDKによって自動的に検出されるようにすることをお勧めします。
C:\RoboDK\FileZilla FTP Client\
FTPでファイルを転送するには:
1.ロボットを右クリックして
2.ロボットに接続...を選択し
3.検索を選択します。FileZillaクライアントが開きます(FTP転送用のソフトウェア)。
4.ファイル➔サイト管理...(Site Manager…)を選択
5.定義済みサイト(Predefined Sites)でユニバーサルロボットサンプル(Universal Robot Sample)を選択。
6.複製(Duplicate)を選択。Universal Robot設定のコピーが作成されます。
7.ロボットのIPを入力します(この例では192.168.1.66)。
8.接続を選択してください。
9.以前に生成されたスクリプトファイルをロボットに転送します。
スクリプトプログラムは通常、ロボットコントローラの/Programs/フォルダに保存されます。

ライブラリには、URロボットの状態をモニターとRoboDKにある実際のロボットの位置を更新するマクロがあります。
1.ファイル➔開くを選択してください
2.C:/RoboDK/Library/Macros/からUR_ActivateMonitoring.pyのマクロを読み込み、新しいPythonオブジェクトがプロジェクトに追加されます。
3.接続パラメーターでしっかりとロボットIPが提供されていることを確認してください。
4.マクロをダブルクリックしてモニタリングを開始します。
シミュレーターはロボットの位置を更新し、実際のロボットが動くと同時にターゲットを作成します。特に、ロボットの速度、加速度、モーター電流をモニターすることが可能です。
RoboDKは、RobotiQグリッパーを操作できるUniversal Robots用のプログラム生成をサポートしています。RobotiQグリッパーは、プログラムをオフラインで生成する方法、およびURロボット用のRoboDKドライバーを使用する方法の両方で操作できます。
RoboDKを使用してプログラムをオフラインで生成することで、URコントローラーから直接RobotiQグリッパーを操作できます。
RobotiQグリッパーのサポートを追加するには、Universal_Robots_RobotiQポストプロセッサーを選択する必要があります:
1.プログラムまたはロボットを右クリックします。
2.Select Post Processorを選択します。
3.Universal Robots RobotiQを選択します。
これにより、RobotiQグリッパーを操作できるプログラム呼び出しを生成できます。例えば、グリッパーを開くにはrq_move_and_wait( 255 )、閉じるにはrq_move_and_wait( 0 )を使用します。

RoboDKでプログラムの準備ができたら、次の2つの方法のいずれかでロボット上で実行できます:
プログラム(GripperOpenCloseなど)を右クリックし、Send Program to Robotを選択します。
プログラム(GripperOpenCloseなど)を右クリックし、Generate Programを選択します(この2つ目の方法では、プログラムをロボットに手動で読み込む必要があります)。
この操作方法では、ドライバーを使用する必要はありません。
ドライバー(Run on robotオプション)を使用すると、RoboDKから直接RobotiQグリッパーを操作できます。URおよびRobotiQ用のRoboDKドライバーを使用すると、RoboDKからプログラムをステップごとに実行し、実行中のポインターをいつでもRoboDKから確認できます。
この機能を使用するには、ロボットに接続できることを確認することが重要です。この通信を許可するために、Windowsの管理者権限が必要な場合や、Windowsファイアウォールのルールを追加する必要がある場合があります(Windowsファイアウォールを無効にすると、問題がファイアウォールに関連するかどうかのトラブルシューティングに役立つことがあります)。
RoboDKから直接RobotiQグリッパーを動かせるようにするには、次の手順に従います:
1.次のスクリプトファイルをダウンロードします:https://robodk.com/files/upload/progrobodk-rq.zip
1.progrobodk.scriptファイルを次の場所に解凍します:C:/RoboDK/bin/progrobodk.script
2.ドライバーが実行中だった場合は、必ず再起動してください(Disconnectをダブルクリックし、続けてConnectをダブルクリックします)。
3.Tools-Options-Driversを選択します。
4.Manage program calls with RoboDK when connected to a robotオプションのチェックを外します。
ドライバーを使用してグリッパーを正しく操作する(例えば、グリッパーの開閉を行う)には、0~255の範囲内のパラメーターを渡してrq_move_and_waitのプログラム呼び出しを使用する必要があります。
例:
rq_move_and_wait( 0 ) # Fully close the gripper
rq_move_and_wait( 255 ) # Fully open the gripper
引数として渡す数値は、ドライバーで必須です。
URロボットは円弧移動と直線移動の両方に対応していますが、URロボット用のドライバーを使用すると、ティーチペンダントにエラーが表示されることがあります。
URロボットドライバー(「Run on robot」オプション)を使用すると、次のようなエラーが表示されることがあります。これは、ドライバーがURポストプロセッサーのデフォルトフィルターをすべて適用するわけではないためです。これらのフィルターは、URコントローラーが問題なくプログラムを実行できるようにコードを整理するのに役立ちます。
これらのエラーには、次のものがあります:
1.半径が無限の円弧(CIRCULAR_ARC_WITH_INFINITE_RADIUS):大きな半径の円弧移動を行おうとすると、このエラーが表示されることがあります。ポストプロセッサーは、これらの移動を自動的に直線移動に変換します。
2.半径がゼロの円弧(CIRCULAR_ARC_WITH_ZERO_RADIUS):小さな円弧移動でこのエラーが表示されることがあります。ポストプロセッサーは、これらの移動を削除するか、直線移動に変換することがあります。
プログラムをオフラインで生成する場合(プログラムを右クリックしてGenerate programを選択、またはF6)や、自動的にロボットに送信する場合(プログラムを右クリックしてSend program to robotを選択、またはCtrl+F6)には、これらのエラーは表示されないはずです。この2つのプログラム生成方法では、ドライバーではなくポストプロセッサーが使用されます。
ドライバーを使用せずにプログラムをオフラインで生成する際にエラーが発生する場合は、次の手順に従って円弧移動を自動的に直線移動に変換できます:
1.Tools-Optionsを選択します。
2.Programタブを選択します。
3.Avoid Arcsオプションをクリックします。
4.直線移動のMinimum step size (mm)を0.5 mmに設定します:これにより、0.5 mmより近い点がエクスポートされないようになり、ブレンド半径が効果を発揮します。動きのぎこちなさを減らすには、さらに値を大きくすることもできます。
URSimを使用すると、実際のUniversal Robotsロボットコントローラーの動作をコンピューター上でエミュレートできます。これにより、コントローラーに慣れたり、RoboDKで生成したプログラムをテストしたりすることができます。このセクションでは、URSimのインストール方法を説明します。
Universal RobotsのWebサイトから公式のURSimイメージを、公式Webサイトから Oracle VM VirtualBoxをダウンロードする必要があります。
1.こちらのリンクから、Non Linux用の最新のOffline Simulatorをダウンロードします:https://www.universal-robots.com/download/?query=ursim。

1.以下のリンクからOracle VM VirtualBoxソフトウェアをダウンロードしてインストールします:https://www.virtualbox.org/wiki/Downloads。
2.ハードドライブにフォルダーを作成し、URSimという名前を付けます。

1.ダウンロードしたURSimファイル(.zipファイルまたは.rar)の内容を、URSimフォルダーに解凍します。

このセクションでは、Oracle VM VirtualBoxを使用して、Universal Robotsコントローラーをシミュレートするための新しい仮想マシンを作成する方法を説明します。
新しいLinuxマシンを作成し、ダウンロードしたコントローラーイメージを読み込むには、次の手順に従います:
1.VirtualBoxを起動し、「New」を押します。

1.名前をUR_Sim_Eseriesに設定し、Machine folderを作成したフォルダーに設定します。TypeをLinuxに、VersionをUbuntu(64ビット)に設定します。


1.Memory sizeを768 MBに設定し、「Next」を押します。

1.Use an existing virtual hard disk fileを選択し、zipファイルを解凍したフォルダーへのパスを指定します。「Create」を押します。




1.「Start」を押して仮想マシンを起動します。

1.「Hardware acceleration is not available」というエラーが表示された場合は、コンピューターを再起動し、BIOS設定で仮想化を有効にする必要がある場合があります。仮想化を有効にしたら、Windows、VirtualBox、仮想マシンを再起動してください。
2.これで仮想マシンが起動するはずです。

必要に応じて、Windowsコンピューターとエミュレートされたコントローラーの間に共有フォルダーを設定し、プログラムファイルを簡単に転送できるようにすることができます。
RoboDKのプログラムフォルダーを、エミュレートされたURロボットコントローラー内の新しいフォルダーにマッピングするには、次の手順に従います:
1.このセクションでは、プログラムを転送するためにWindowsとURSimの間で共有フォルダーを設定する方法を説明します。
2.URSimの仮想マシンを開きます。
3.Linux Ubuntu内の「/home/ur/」の下に「RoboDK_Shared」という名前のフォルダーを作成します。

1.「RoboDK_Shared」フォルダーをデスクトップにドラッグアンドドロップして、デスクトップにショートカットを作成します。

1.RoboDK_Sharedを開きます。
2.View→Folder View Mode→Compact Viewを選択します。

1.VirtualBoxウィンドウの上部メニューから、Devices→Shared Folders→Shared Folders Settingsを選択します。

1.以下の画像に示すボタンを使用して、新しいShared foldersを追加します。

1.Windows内の共有フォルダーのパスを選択します(コンピューター上の任意のフォルダーを使用できます)。
2.「Auto-mount」と「Make Permanent」にチェックを入れます。
3.Mount point:/home/ur/RoboDK_Shared


1.VirtualBoxの上部メニューから、Devices→Insert Guest Additions CD Imageを選択します。

1.「Open in File Manager」を選択し、「OK」を押します。

1.次のフォルダーを開きます:/media/ur/VBox_Gas_6.1.38(VBoxのバージョンによって異なる場合があります)。

1.「autorun.sh」ファイルをダブルクリックし、「Execute」を選択します(パスワードは「easybot」です)。スクリプトの実行には少し時間がかかることがあります。

1.仮想マシンを再起動します。
1.ターミナルを開きます:Startボタン→System Tools→UXTermを選択します。

1.ターミナルに sudo adduser $USER vboxsf と入力し、「Enter」を押します。

1.VMを再起動します。
2.Windowsの共有フォルダー内でRoboDKを使用して新しいファイルを生成した場合、VMの共有フォルダー「RoboDK_Shared」で「View」→「Reload Folder」を押すか、「F5」を押してください。

URSimを使用すると、RoboDKとUniversal Robotsコントローラーの間の接続をテストできます。
1.Oracle VM VirtualBox Managerで。
2.UR_Sim_Eseries VMを選択し、Settingsを押します。

1.Network→Attached to:を選択し、Bridge Adapterを選択してOKを押します。

1.URSim仮想マシンを起動します。

1.希望のURモデルでPolyscopeを起動します。

1.シミュレーターのIPアドレスを取得します。

1.URSimの「Move」ウィンドウに移動します。

1.同じURモデルでRoboDKステーションを開きます。
2.Connect→Connect Robotを選択します。

1.UR SimのIPアドレスを入力し、Connectを押します。
2.Get Positionを使用して、URSimロボットの位置を取得し、RoboDKに適用します。
3.Move Jointsを使用して、URSimロボットをRoboDKロボットの位置に移動します。
4.RoboDKのプログラムを右クリックし、「Run on robot」と「Run」を選択して、RoboDKとURSimの両方でプログラムを同時に実行します。
この項目の手順は任意であり、オフラインプログラミングで正確さが要求される特定の状況でのみ必要になります。この項目は、ロボットを正確にシミュレーションする為に、RoboDKでURロボットの固有の運動学的値を入力する方法について説明します。
URコントローラーの運動学は、ロボットごとに異なります。運動学は、DHテーブル(Denavit Hartenberg)の形式でロボットを定義する寸法です。RoboDKシミュレーターはデフォルトで公称UR運動学を使用するため、シミュレーターの運動学とコントローラーの運動学の間で2 mmから10 mmの不一致が発生する場合があります。
シミュレーションを実際のロボットと一致させるには、次の手順を辿って、URロボット固有の運動学がインポートできます。
1.実際のロボットを使用して生成されたURPファイルを取得してください(RoboDKまたはURシミュレーターを使用していないファイル)
2.RoboDKでロボットを開きます。URロボットはRoboDKライブラリで見つかります。既存のRoboDKプロジェクトで利用可能なURロボットを使用することもできます。
3.[ツール]-[スクリプトを実行] を選択します
4.UR_LoadControllerKinematicsを選択します
5.ロボットコントローラから抽出したURPファイルを選択してください。
次の画像に示すようなメッセージが表示されます。利用可能なURPファイルを読み込まなかった場合、または適切なURロボットを選択しなかった場合は、警告メッセージが表示される場合があります。

この手順が完了すると、ロボットを右クリックして[.robotとして保存] が選択できます。これらのパラメータはロボットファイルとともに保存され、新しいプロジェクトごとにこの手順を繰り返す代わりにロボットファイルが使用できます。
RoboDKは、URPファイルからロボットに固有の情報を抽出し、ロボットファイルでのシミュレーションとオフラインプログラミングに考慮します。次の画像で示すように、この設定を変更して、ロボットパラメータメニューでデフォルトの運動学に戻すことができます。

ティーチペンダントに表示されるポーズ情報が、RoboDKで表示する運動学と一致していることがわかります(RoboDKとURロボットのツールフレームと参照系を削除して比較してください)。
各ロボットは工場でURによって調整されているため、URの運動学はロボットによって異なります。KUKA、ABB、安川電機(Motoman)、ファナックなどの他のロボット販売者は、絶対精度の設定を購入しない限り、ロボットを調整しません。絶対精度の設定では、最大40以上の調整パラメータを考慮することができます。
この手順はRoboDKのロボット調整とは同じではありません。ロボットの調整は、実際のロボットの精度を向上させるのに役立ちます。