前の項目で示したように、プログラムを右クリックするかプログラムメニューから新しい指示が追加できます。
この項目では、オフラインプログラミング用にRoboDKグラフィカルユーザーインターフェイスがサポートする指示について説明します。
プログラム➔
指示を追加する前にターゲットを選択しない限り、移動指示とリンクされた新しいターゲットを作成します。そのターゲットを動かすと、ロボットの動きも変わります。
これがプログラムに追加される最初の指示である場合、移動指示の前に2つ指示がさらに追加されます:参照系を選択とツールの座標系を選択。これにより、プログラムが移動指示に到達した時、ロボットが作成された新しいターゲットと同じ参照系とツールの座標系を使用していることを保証します。

プログラム➔
指示を追加する前にターゲットを選択しない限り、移動指示とリンクされた新しいターゲットを作成します。そのターゲットを動かすと、ロボットの動きも変わります。
関節と直線移動は似たような動作をする為、二つのタイプの間を簡単に切り替えることができます。
関節移動の指示同様に、これがプログラムに追加される最初の指示である場合、移動指示の前に2つ指示がさらに追加されます:参照系を選択とツールの座標系を選択。
関節移動と違って直線移動は、ロボットの特異点と軸の限界に敏感です。例えば、6軸ロボットは、直線移動の途中で特異点を越えることはできません。次の画像は、5番目の関節が(0度の)特異点に近すぎることを示しています。[…]代わりに関節移動の使用を考えましょう。次の画像で示すように。

直線移動が絶対に必要でない場合は、移動命令を右クリックして、関節移動指示に変更しましょう。

あるいは、特異点を回避する為に、ターゲット、TCP、または参照系の位置を変更する必要があります。
プログラム➔
参照系の変数はロボットのブランドによって、作業オブジェクト(ABBロボット)、UFRAME(ファナックロボット)、FRAME(Motoman(安川電機)ロボット)、または$BASE(KUKAロボット)と呼ばれます。

プログラム➔
ツールの座標系の変数はロボットのブランドによって、ToolData(ABBロボット)、UTOOL(ファナックロボット)、TOOL(Motoman(安川電機)ロボット)、または$TOOL(KUKAロボット)と呼ばれます。

プログラム➔
指示を追加する前にターゲットが2つ選択されていない限り、移動指示は新しいターゲットを作成しません。次の画像が示すように、ターゲットを2つ追加し、それらを円形移動の指示にリンクする必要があります。

円形の経路は、ロボットの現在地から始まり、指定された円状の一番目の点(ターゲットリンク1)を通過し、2番目の点(ターゲットリンク2)で終了する円弧です。
プログラム➔
プログラム内で特定の速度や加速を課す為、対応する場面を有効にしてください。ロボットの速度は、この指示が実行された瞬間から適用されます。
ロボットの速度は、ロボットパラメータメニューでも変更できます。ロボットをダブルクリックして、パラメータを選択してください。

プログラム➔

プログラム➔

プログラム➔
デフォルトでは、特定のプログラムへのブロッキングコールですが、コードを挿入に切り替える事により、その指示の位置に固有なコードを入力することができます。これは、特定の場面および特定のコントローラーに役立つ場合があります。


プログラムコールからスレッド開始に切り替えると、サブプログラムへの非ブロッキングコールをします。この場合、コントローラーが新しいスレッドを開始します。この設定は、特定のコントローラーのみで使用でき、特定の操作でのみに機能します。
プログラム➔
IO名は数値または名付けられた変数であれば、テキスト値にすることもできます。IO値は、数値(Falseの場合は0、Trueの場合は1)または名付けられた状態の場合はテキスト値です。

入力が特定の値に変化するまでプログラムの実行を停止するには、デジタル入力を待つに設定します。さらに、ほとんどのロボットコントローラーは、待ち時間が特定の値を超えた場合にエラーを発生させるタイムアウト遅延をサポートしています。この機能を有効にするには、タイムアウト(ms)設定をチェックしてください。

シミュレートされたデジタル入力と出力を変更すると、新しいプロジェクト変数が作成されます。これらの変数の状態を確認するには、プロジェクトを右クリックして、プロジェクトパラメータを選択します。APIを通してこれらの変数を読み取りまたは変更することもできます。
プログラム➔
丸めの指示がない場合、ロボットは各動作の終了時に速度が0に到達します(次の動作が前の動作の接線長にある場合を除く)。これにより、高い加速と迅速な速度の変更を引き起こし、各動作の精度が保証されます。
この値は、ブレンド半径(ユニバーサルロボット)、ゾーンデータ(ABBロボット)、CNT / FINE(ファナックロボット)、コーナリング(メカでミックロボット)または$APO.CDIS/$APO.CPTP/アドバンス(KUKAロボット)とも呼ばれます。

RoboDKのパス精度のテストにより、測定システムでのさまざまな丸め値の影響をよりよく理解できます。
プログラム➔
グラフィカルユーザーインターフェイスを使用したシミュレーションイベントで以下が可能になります:
●ロボットツールにオブジェクトを取り付けるまたは外す
●オブジェクトまたはツールを表示または非表示にする
●オブジェクトと参照系の位置を変更する

例えば、ロボットがオブジェクトを掴む為に特定の場所へ移動させてから、オブジェクトを取り付けるイベントによりロボットと一緒にそのオブジェクトを移動させる事ができます。次に、ロボットがオブジェクトを移動させた後に、オブジェクトを取り外すイベントでツールが持っているオブジェクトを残すことができます。

オブジェクトを取り付けるシミュレーションイベントを使用すると、ツールにオブジェクトを取り付けて、ピック動作をシミュレートできます。
ツールにオブジェクトを取り付ける動作がトリガーされると、選択したツールに最も近いオブジェクトが取り付けられます。デフォルトでは200 mmの許容範囲が使用され、この距離より遠いオブジェクトは無視されます。

距離の許容範囲を指定しない場合は、グローバルなデフォルト値が使用されます(グローバルなデフォルト値は、Tools→Options内のMaximum distance to attach an object to a robot toolで変更できます)。また、デフォルトでは、TCPの位置からオブジェクトの参照点までの距離がチェックされます。あるいは、Check shortest distance between TCP and the object shapeを選択することで、TCPとオブジェクトの形状との間の距離を使用することもできます。
オブジェクトを取り外すシミュレーションイベントを使用すると、ツールからオブジェクトを取り外し、別のオブジェクトまたは座標系に移すことができます。
オブジェクトを取り外すツールと、取り外した後にオブジェクトを取り付ける座標系またはオブジェクトを選択する必要があります。
オブジェクトを取り外すシミュレーションイベントを使用すると、ピックアンドプレイスアプリケーションにおける配置/リリース動作をシミュレートできます(取り付けイベントの逆の動作を実行します)。
例えば、ロボットが特定の位置に移動してオブジェクトをつかむ場合、Attach objectイベントを設定して、そのオブジェクトをロボットと一緒に移動させることができます。その後、ロボットが移動を終え、つかんだオブジェクトを離す準備ができたら、Detach objectイベントをトリガーして、ロボットツールがつかんでいるオブジェクトを離すことができます。

オブジェクトまたはツールを表示するイベントを使用すると、シミュレーション環境内で1つ以上のオブジェクト、ツール、またはロボットを表示できます。
Ctrlキーを押しながら選択することで、複数の項目を選択できます。

オブジェクトまたはツールを非表示にするイベントを使用すると、シミュレーション内で1つ以上のオブジェクトまたはツールを非表示にできます。
Ctrlキーを押しながら選択することで、複数の項目を選択できます。

Set object position (absolute)を使用すると、この動作がトリガーされたときに、選択したすべてのオブジェクトの位置を更新できます。各項目が取り付けられている親参照は変更されません。各オブジェクトの位置のみが更新されます。
Ctrlキーを押しながら選択することで、複数の項目を選択できます。OKを押すと、項目の現在の位置が記録されます。

Set object position (relative)を使用すると、この動作がトリガーされたときに、選択したすべてのオブジェクトの位置と親を更新できます。各項目が取り付けられている親参照も変更され、各オブジェクトの位置も更新されます。
Ctrlキーを押しながら選択することで、複数の項目を選択できます。OKを押すと、項目の現在の位置と、それが取り付けられている親項目が記録されます。
この指示と絶対位置の指示との違いは、この指示では各オブジェクトが取り付けられている親項目も更新される点です。

関節をホームに設定するイベントは、選択したロボットまたは機構を、定義された「ホーム」関節位置に即座に移動させます(この動作は時間経過に沿ってシミュレートされません)。
これは、シミュレーションをリセットし、コンベヤを開始位置に配置する必要がある場合に便利です。
Ctrlキーを押しながら選択することで、複数の項目を選択できます。

コンベヤ移動イベントは、コンベヤを特定の距離だけ移動させることをシミュレートし、時間経過に沿った移動の効果をシミュレートします。
これは、コンベヤ上のオブジェクトが特定の距離を移動した後に処理を行うための特定の増分をシミュレートする必要がある場合に便利です。

オブジェクトを作成する指示を使用すると、シミュレーション環境内に新しいオブジェクトを作成することで、フィーダーをシミュレートできます。
作成するモデルオブジェクトと、項目を取り付ける親参照を選択する必要があります。
この動作は、コンベヤ上に新しいオブジェクトを作成する際に便利です。

オブジェクトを削除する指示は、シミュレーション環境からオブジェクトを削除します。
削除したいモデルオブジェクトを選択する必要があります。この動作がトリガーされると、同じオブジェクトの名前とジオメトリが一致するすべてのオブジェクトが削除されます。選択したモデルオブジェクト自体と、ロックされているオブジェクトは削除されません。
この指示は、シミュレーションが終了し、Create objectの指示によって多数のオブジェクトが作成された状態を整理するのに役立ちます。

オブジェクトを待機する指示は、オブジェクトが別のオブジェクトと接触するのを待ち、特定の動作をトリガーします。
このイベントは、オブジェクト間の接触に基づいて動作をトリガーしたい場合に便利です。この指示は通常、オブジェクトがセンサーに接触したときに特定の動作を実行するループで実行されるプログラム内に単独で配置されます。

オブジェクトがセンサーに接触したときに実行できる動作は次のとおりです:
1.ロボットを停止:停止させるロボットまたは機構を選択する必要があります。
2.オブジェクトを削除:オブジェクトはステーションから削除されます。
3.オブジェクトを待機するのみ(例えば、ロボットにオブジェクトをピックさせるトリガーとして使用できます)。
4.オブジェクトを別の座標系に移動します。例えば、あるコンベヤから別のコンベヤへオブジェクトを取り付ける場合などです。
