(57)【要約】【課題】ユーザーにより作成された作業シーケンスによってロボットが他の物体と干渉してしまうことを抑制することができる制御装置を提供すること。【解決手段】第１命令及び第２命令を含む複数の命令が配列された作業シーケンスに基づいて、ロボットを制御する制御装置であって、作業シーケンスを表示部に表示する表示制御部と、表示部に表示された作業シーケンスにおける第１命令の表示位置と、表示部に表示された作業シーケンスにおける第２命令の表示位置との相対的な第１表示位置関係を示す第１表示位置関係情報を含む表示位置関係情報を記憶する記憶部と、を備え、表示制御部は、作業シーケンスにおいて第１命令と第２命令との相対的な表示位置関係と、記憶部に記憶された第１表示位置関係情報が示す第１表示位置関係とが一致した場合、表示部に注意喚起情報を表示させ、第１命令は、ハンドを動作させる命令である、制御装置。【選択図】図３
2020121389.tif 000002
【特許請求の範囲】
【請求項１】
第１命令及び第２命令を含む複数の命令が配列された作業シーケンスに基づいて、ロボットを制御する制御装置であって、
前記作業シーケンスを表示部に表示する表示制御部と、
前記表示部に表示された前記作業シーケンスにおける前記第１命令の表示位置と、前記表示部に表示された前記作業シーケンスにおける前記第２命令の表示位置との相対的な第１表示位置関係を示す第１表示位置関係情報を含む表示位置関係情報を記憶する記憶部と、
を備え、
前記表示制御部は、前記作業シーケンスにおいて前記第１命令と前記第２命令との相対的な表示位置関係と、前記記憶部に記憶された前記第１表示位置関係情報が示す前記第１表示位置関係とが一致した場合、前記表示部に注意喚起情報を表示させ、
前記第１命令は、ハンドを動作させる命令である、
制御装置。
【請求項２】
前記第１表示位置関係情報が示す前記第１表示位置関係は、前記表示部に表示された前記作業シーケンスにおいて前記第２命令が前記第１命令の直前に位置する表示位置関係である、
請求項１に記載の制御装置。
【請求項３】
前記第２命令は、前記ロボットが有する可動部を、予め決められた速度よりも速く移動させる命令である、
請求項１又は２に記載の制御装置。
【請求項４】
前記速度は、予め決められた複数の速度のうちの最も速い速度である、
請求項３に記載の制御装置。
【請求項５】
前記ロボットは、可動部と、前記可動部に設けられ、第１方向に移動するシャフトと、を有するスカラロボットであり、
前記第２命令は、前記シャフトを前記第１方向に移動させる命令である、
請求項１から４のうちいずれか一項に記載の制御装置。
【請求項６】
前記複数の命令には、第３命令が含まれており、
前記表示位置関係情報は、前記第１命令と、前記第２命令と、前記第３命令との相対的な第２表示位置関係を示す第２表示位置関係情報を含み、
前記第２命令は、前記ロボットが有する可動部を第２方向へ移動させる命令であり、
前記第３命令は、前記ロボットが有する可動部を、前記第２方向と、前記第２方向に対して反対の方向とのいずれとも異なる第３方向へ移動させる命令であり、
前記第２表示位置関係情報が示す前記第２表示位置関係は、前記表示部に表示された前記作業シーケンスにおいて前記第２命令が前記第１命令の直前に位置する表示位置関係であり、且つ、前記表示部に表示された前記作業シーケンスにおいて前記第３命令が前記第１命令の直後に位置する表示位置関係であり、
前記表示制御部は、前記作業シーケンスにおいて前記第１命令と前記第２命令と前記第３命令との相対的な表示位置関係と、前記記憶部に記憶された前記第２表示位置関係情報が示す前記第２表示位置関係とが一致した場合、前記表示部に前記注意喚起情報を表示させる、
請求項１から５のうちいずれか一項に記載の制御装置。
【請求項７】
前記複数の命令には、第４命令が含まれており、
前記表示位置関係情報は、前記第１命令と、前記第２命令と、前記第４命令との相対的な第３表示位置関係を示す第３表示位置関係情報を含み、
前記第２命令は、前記作業シーケンスにおける表示位置のうち前記第２命令に対応付けられた対応表示位置に位置する１以上の命令を繰り返させる命令であり、
前記第１命令は、前記１以上の命令に含まれており、且つ、前記ハンドの開又は閉のうちの一方を前記ハンドに行わせる命令であり、
前記第４命令は、前記ハンドの開又は閉のうちの他方を前記ハンドに行わせる命令であり、
前記第３表示位置関係情報が示す前記第３表示位置関係は、前記第１命令が前記対応表示位置に位置しており、且つ、前記第４命令が前記対応表示位置に位置していない表示位置関係であり、
前記表示制御部は、前記作業シーケンスにおいて前記第１命令と前記第２命令と前記第４命令との相対的な表示位置関係と、前記記憶部に記憶された前記第３表示位置関係情報が示す前記第３表示位置関係とが一致した場合、前記表示部に前記注意喚起情報を表示させる、
請求項１から６のうちいずれか一項に記載の制御装置。
【請求項８】
ユーザーから受け付けた操作に応じて前記表示位置関係情報を設定する設定部を備える、
請求項１から７のうちいずれか一項に記載の制御装置。
【請求項９】
前記表示部に前記注意喚起情報が表示されている場合、前記表示部における前記注意喚起情報の表示を削除するまで、前記作業シーケンスは実行不可能である、
請求項１から８のうちいずれか一項に記載の制御装置。
【請求項１０】
前記ロボットと、
請求項１から９のうちいずれか一項に記載の制御装置と、
を備えるロボットシステム。
【請求項１１】
ロボットのハンドを動作させる第１命令と前記第１命令と異なる第２命令とを含む複数の命令が配列された作業シーケンスに基づいて、前記ロボットを制御する制御装置の表示部に前記作業シーケンスを表示させる表示方法であって、
前記作業シーケンスを前記表示部に表示させる表示ステップと、
前記表示部に表示された前記作業シーケンスにおける前記第１命令の表示位置と、前記表示部に表示された前記作業シーケンスにおける前記第２命令の表示位置との相対的な第１表示位置関係を示す第１表示位置関係情報を含む表示位置関係情報を記憶する記憶部に記憶された前記第１表示位置関係情報が示す前記第１表示位置関係と、前記作業シーケンスにおける前記第１命令と前記第２命令との相対的な表示位置関係とが一致した場合、前記表示部に注意喚起情報を表示させる注意喚起ステップと、
を有する表示方法。
【請求項１２】
前記第１表示位置関係情報が示す前記第１表示位置関係は、前記表示部に表示された前記作業シーケンスにおいて前記第２命令が前記第１命令の直前に位置する表示位置関係である、
請求項１１に記載の表示方法。
【請求項１３】
前記第２命令は、前記ロボットが有する可動部を、予め決められた速度よりも速く移動させる命令である、
請求項１１又は１２に記載の表示方法。
【請求項１４】
前記速度は、予め決められた複数の速度のうちの最も速い速度である、
請求項１３に記載の表示方法。
【請求項１５】
前記ロボットは、可動部と、前記可動部に設けられ、第１方向に移動するシャフトと、を有するスカラロボットであり、
前記第２命令は、前記シャフトを前記第１方向に移動させる命令であり、
前記第１表示位置関係情報が示す前記第１表示位置関係は、前記表示部に表示された前記作業シーケンスにおいて前記第２命令が前記第１命令の直前に位置する表示位置関係である、
請求項１１から１４のうちいずれか一項に記載の表示方法。
【請求項１６】
前記複数の命令には、第３命令が含まれており、
前記表示位置関係情報は、前記第１命令と、前記第２命令と、前記第３命令との相対的な第２表示位置関係を示す第２表示位置関係情報を含み、
前記第２命令は、前記ロボットが有する可動部を第２方向へ移動させる命令であり、
前記第３命令は、前記ロボットが有する可動部を、前記第２方向と、前記第２方向に対して反対の方向とのいずれとも異なる第３方向へ移動させる命令であり、
前記第２表示位置関係情報が示す前記第２表示位置関係は、前記表示部に表示された前記作業シーケンスにおいて前記第２命令が前記第１命令の直前に位置する表示位置関係であり、且つ、前記表示部に表示された前記作業シーケンスにおいて前記第３命令が前記第１命令の直後に位置する表示位置関係であり、
前記注意喚起ステップは、前記作業シーケンスにおいて前記第１命令と前記第２命令と前記第３命令との相対的な表示位置関係と、前記記憶部に記憶された前記第２表示位置関係情報が示す前記第２表示位置関係とが一致した場合、前記表示部に前記注意喚起情報を表示させる、
請求項１１から１５のうちいずれか一項に記載の表示方法。
【請求項１７】
前記複数の命令には、第４命令が含まれており、
前記表示位置関係情報は、前記第１命令と、前記第２命令と、前記第４命令との相対的な第３表示位置関係を示す第３表示位置関係情報を含み、
前記第２命令は、前記作業シーケンスにおける表示位置のうち前記第２命令に対応付けられた対応表示位置に位置する１以上の命令を繰り返させる命令であり、
前記第１命令は、前記１以上の命令に含まれており、且つ、前記ハンドの開又は閉のうちの一方を前記ハンドに行わせる命令であり、
前記第４命令は、前記ハンドの開又は閉のうちの他方を前記ハンドに行わせる命令であり、
前記第３表示位置関係情報が示す前記第３表示位置関係は、前記第１命令が前記対応表示位置に位置しており、且つ、前記第４命令が前記対応表示位置に位置していない表示位置関係であり、
前記注意喚起ステップは、前記作業シーケンスにおいて前記第１命令と前記第２命令と前記第４命令との相対的な表示位置関係と、前記記憶部に記憶された前記第３表示位置関係情報が示す前記第３表示位置関係とが一致した場合、前記表示部に前記注意喚起情報を表示させる、
請求項１１から１６のうちいずれか一項に記載の表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、ロボットシステム、及び表示方法に関する。
【背景技術】
【０００２】
ロボットを制御するロボット制御装置が実行する複数の命令を配列することによって、ロボット制御装置により実行される作業シーケンスを直感的に作成することができるユーザーインターフェイスが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１３／０２５５４２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、このようなユーザーインターフェイスにおいてロボットのハンドを動作させる命令を使用した場合、当該命令と他の命令との作業シーケンス上での表示位置関係によっては、ロボットのハンドが他の物体と干渉してしまう場合があった。例えば、ロボットの作業シーケンスの作成に慣れていないユーザーは、意図せずして、作業シーケンスとして配列された複数の命令同士の表示位置関係を、当該ハンドが他の物体と干渉してしまう可能性の高い表示位置関係と一致させてしまう可能性が高い。
【課題を解決するための手段】
【０００５】
上記課題を解決するために本発明の一態様は、第１命令及び第２命令を含む複数の命令が配列された作業シーケンスに基づいて、ロボットを制御する制御装置であって、前記作業シーケンスを表示部に表示する表示制御部と、前記表示部に表示された前記作業シーケンスにおける前記第１命令の表示位置と、前記表示部に表示された前記作業シーケンスにおける前記第２命令の表示位置との相対的な第１表示位置関係を示す第１表示位置関係情報を含む表示位置関係情報を記憶する記憶部と、を備え、前記表示制御部は、前記作業シーケンスにおいて前記第１命令と前記第２命令との相対的な表示位置関係と、前記記憶部に記憶された前記第１表示位置関係情報が示す前記第１表示位置関係とが一致した場合、前記表示部に注意喚起情報を表示させ、前記第１命令は、ハンドを動作させる命令である、制御装置である。
【図面の簡単な説明】
【０００６】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】情報処理装置５０のハードウェア構成の一例を示す図である。
【図３】情報処理装置５０の機能構成の一例を示す図である。
【図４】作業シーケンス作成画像の一例を示す図である。図４に示した画像Ｐ１は、作業シーケンス作成画像の一例である。
【図５】情報処理装置５０が行う処理のうち作業シーケンス作成画像において注意喚起情報を表示する処理の流れの一例を示す図である。
【図６】注意喚起情報が表示された場合における画像Ｐ１の一例を示す図である。
【図７】図６に示した作業シーケンスに基づく動作プログラムによってロボット２０を動作させるロボット制御装置４０の処理の流れの一例を示す図である。
【図８】注意喚起情報が表示された場合における画像Ｐ１の他の例を示す図である。
【図９】図８に示した作業シーケンスに基づく動作プログラムによってロボット２０を動作させるロボット制御装置４０の処理の流れの一例を示す図である。
【図１０】注意喚起情報が表示された場合における画像Ｐ１の更に他の例を示す図である。
【図１１】図１０に示した作業シーケンスに基づく動作プログラムによってロボット２０を動作させるロボット制御装置４０の処理の流れの一例を示す図である。
【図１２】注意喚起情報が表示された場合における画像Ｐ１の更に更に他の例を示す図である。
【図１３】図１２に示した作業シーケンスに基づく動作プログラムによってロボット２０を動作させるロボット制御装置４０の処理の流れの一例を示す図である。
【図１４】表示部５５に注意喚起情報ＡＴが表示されている場合において情報処理装置５０が行う処理の流れの一例を示す図である。
【発明を実施するための形態】
【０００７】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【０００８】
＜ロボットシステムの構成＞
まず、図１を参照し、実施形態に係るロボットシステム１の構成について説明する。図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。
【０００９】
ロボットシステム１は、例えば、ロボット２０と、制御装置３０を備える。また、制御装置３０は、ロボット制御装置４０と、情報処理装置５０を備える。なお、ロボットシステム１は、これらに加えて、他の装置を備える構成であってもよい。また、ロボットシステム１では、ロボット制御装置４０は、情報処理装置５０と一体に構成されてもよい。この場合、ロボットシステム１では、制御装置３０は、情報処理装置５０と一体に構成されたロボット制御装置４０そのものである。
【００１０】
ロボット２０は、スカラロボットである。スカラロボットは、水平多関節ロボットと称されることがある。なお、ロボット２０は、スカラロボットに代えて、垂直多関節ロボット等の他のロボットであってもよい。ここで、垂直多関節ロボットは、１本の腕を有する単腕ロボット、２本以上の腕を有する複腕ロボット等のことである。２本の腕を有する複腕ロボットは、双腕ロボットと称されることがある。
【００１１】
図１に示した例では、ロボット２０は、予め決められた設置面に設置されている。設置面は、例えば、ロボット２０を設置する部屋の床面である。なお、設置面は、当該床面に代えて、当該部屋の壁面、当該部屋の天井面、テーブルの上面、治具の上面、台の上面等であってもよく、屋外の床面、屋外の壁面等であってもよく、他の面であってもよい。
【００１２】
以下では、説明の便宜上、設置面と直交する方向のうちロボット２０の重心から設置面に向かう方向を下又は下方向と称して説明する。また、以下では、説明の便宜上、下方向と反対の方向を上又は上方向と称して説明する。また、以下では、一例として、下方向が、ロボット座標系ＲＣにおけるＺ軸の負方向と一致している場合について説明する。ここで、ロボット座標系ＲＣは、ロボット２０のロボット座標系のことである。また、以下では、一例として、下方向が重力方向と一致している場合について説明する。なお、下方向は、これに代えて、当該負方向と重力方向のうちのいずれか一方又は両方と一致しない構成であってもよい。
【００１３】
ロボット２０は、基台Ｂと、基台Ｂに支持された可動部Ａを備える。
【００１４】
基台Ｂは、設置面において動かないように設置される。
【００１５】
可動部Ａは、第１アームＡ１と、第２アームＡ２と、シャフトＳを備える。ここで、第１アームＡ１は、基台Ｂにより第１回動軸ＡＸ１周りに回動可能に支持されている。第２アームＡ２は、第１アームＡ１により第２回動軸ＡＸ２周りに回動可能に支持されている。シャフトＳは、第２アームＡ２により第３回動軸ＡＸ３周りに回動可能且つ第３回動軸ＡＸ３の軸方向に並進可能に支持されている。
【００１６】
より具体的には、可動部Ａにおいて、シャフトＳは、ほぼ円柱形状の軸体である。シャフトＳの周表面には、ボールねじ溝とスプライン溝とがそれぞれ形成されている。なお、図１では、図を簡略化するため、シャフトＳの周表面に形成されているボールねじ溝とスプライン溝とのそれぞれを省略している。シャフトＳは、図１に示したように、第２アームＡ２の端部のうちの第１アームＡ１と反対側の端部を、上下方向に貫通し、設けられる。
【００１７】
また、シャフトＳの下端部は、外部装置を取り付け可能である。外部装置は、例えば、エンドエフェクターであるが、エンドエフェクター以外の他の装置であってもよい。ここで、シャフトＳの下端部は、シャフトＳが有する端部のうちの下側の端部のことである。
【００１８】
シャフトＳの下端部に取り付けられるエンドエフェクターは、本実施形態において、指部によって物体を挟んで把持することが可能なエンドエフェクター等である。なお、エンドエフェクターは、物体を挟んで把持することが可能なエンドエフェクターに代えて、空気、磁力等によって物体を吸着することが可能なエンドエフェクターであってもよい。
【００１９】
第１アームＡ１は、第１回動軸ＡＸ１周りに回動し、水平方向に移動する。水平方向は、上下方向と直交する方向である。すなわち、本実施形態において、水平方向は、ロボット座標系ＲＣにおけるＸ軸及びＹ軸によって張られるＸＹ平面に沿った方向である。
【００２０】
また、第１アームＡ１は、図示しない第１アクチュエーターによって第１回動軸ＡＸ１周りに回動させられる。すなわち、本実施形態において、第１回動軸ＡＸ１は、第１アクチュエーターの回動軸と一致する仮想的な軸のことである。ここで、第１アクチュエーターは、例えば、サーボモーターである。第１アクチュエーターは、基台Ｂに備えられる。なお、第１アクチュエーターは、第１アームＡ１に備えられる構成であってもよい。また、第１アクチュエーターは、サーボモーターに代えて、他のアクチュエーターであってもよい。また、第１回動軸ＡＸ１は、第１アクチュエーターの回動軸と一致しない仮想的な軸であってもよい。また、水平方向は、上下方向と直交する方向に代えて、上下方向と直交しない方向であってもよい。また、水平方向は、当該ＸＹ平面に沿った方向に代えて、当該ＸＹ平面に沿っていない方向であってもよい。
【００２１】
第２アームＡ２は、第２回動軸ＡＸ２周りに回動し、水平方向に移動する。第２アームＡ２は、図示しない第２アクチュエーターによって第２回動軸ＡＸ２周りに回動させられる。すなわち、本実施形態において、第２回動軸ＡＸ２は、第２アクチュエーターの回動軸と一致する仮想的な軸のことである。ここで、第２アクチュエーターは、例えば、サーボモーターである。第２アクチュエーターは、第２アームＡ２に備えられる。なお、第２アクチュエーターは、第１アームＡ１に備えられる構成であってもよい。また、第２アクチュエーターは、サーボモーターに代えて、他のアクチュエーターであってもよい。また、第２回動軸ＡＸ２は、第２アクチュエーターの回動軸と一致しない仮想的な軸であってもよい。
【００２２】
また、第２アームＡ２は、図示しない第３アクチュエーター及び図示しない第４アクチュエーターを備える。また、第２アームＡ２は、シャフトＳを支持する。
【００２３】
第３アクチュエーターは、例えば、サーボモーターである。第３アクチュエーターは、シャフトＳのボールねじ溝の外周部に設けられたボールねじナットをタイミングベルト等で回動させる。これにより、第３アクチュエーターは、シャフトＳを上下方向に移動させる。なお、第３アクチュエーターは、サーボモーターに代えて、他のアクチュエーターであってもよい。
【００２４】
第４アクチュエーターは、例えば、サーボモーターである。第４アクチュエーターは、シャフトＳのスプライン溝の外周部に設けられたボールスプラインナットをタイミングベルト等で回動させる。これにより、第４アクチュエーターは、シャフトＳを第３回動軸ＡＸ３周りに回動させる。なお、第４アクチュエーターは、サーボモーターに代えて、他のアクチュエーターであってもよい。
【００２５】
ここで、第３回動軸ＡＸ３は、シャフトＳの中心軸と一致する仮想的な軸のことである。なお、第３回動軸ＡＸ３は、シャフトＳの中心軸と一致しない仮想的な軸であってもよい。
【００２６】
ロボット制御装置４０は、ロボット２０を制御する。例えば、ロボット制御装置４０は、予め記憶された動作プログラムに基づいて、ロボット２０を制御する。例えば、ロボット制御装置４０は、後述する情報処理装置５０により生成された動作プログラムに基づいて、ロボット２０を制御する。
【００２７】
また、ロボット制御装置４０は、ケーブルによってロボット２０、情報処理装置５０のそれぞれと通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）、ＵＳＢ等の規格によって行われる。なお、ロボット制御装置４０は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット２０、情報処理装置５０とのうちいずれか一方又は両方と接続される構成であってもよい。
【００２８】
情報処理装置５０は、例えば、ノートＰＣ（Personal  Computer）である。なお、情報処理装置５０は、ワークステーション、デスクトップＰＣ、タブレットＰＣ、多機能携帯電話端末（スマートフォン）、携帯電話端末、ＰＤＡ（Personal  Digital  Assistant）等の他の情報処理装置であってもよい。
【００２９】
情報処理装置５０は、ユーザーから受け付けた操作に応じて、前述の動作プログラムを生成する。より具体的には、情報処理装置５０は、当該操作に応じて、複数の命令が配列された作業シーケンスを生成する。ここで、当該複数の命令のそれぞれには、１種類以上の第１動作命令、１種類以上の第２動作命令、１種類以上の処理命令、１種類以上の論理命令のうちの一部又は全部が含まれている。なお、当該複数の命令のそれぞれには、これらの命令に代えて、又は、これらの命令に加えて、他の命令が含まれる構成であってもよい。
【００３０】
１種類以上の第１動作命令のそれぞれは、第１動作命令の種類に応じた動作をロボット２０に行わせる命令のことである。以下では、一例として、第１動作命令の種類が３種類である場合について説明する。３種類の第１動作命令のそれぞれは、例えば、第１動作命令Ｃ１１〜第１動作命令Ｃ１３のそれぞれである。第１動作命令Ｃ１１は、ロボット２０の可動部Ａが備える第１アクチュエーター〜第４アクチュエーターのそれぞれを初期化させる第１動作命令のことである。第１動作命令Ｃ１２は、可動部Ａを動作させる第１動作命令のことである。本実施形態では、ロボット２０は、スカラロボットである。このため、ロボット２０は、第１動作命令Ｃ１２によってロボット座標系ＲＣにおけるＺ軸方向に可動部Ａを動かす場合、シャフトＳを動かす。また、ロボット２０は、第１動作命令Ｃ１２によってロボット座標系ＲＣにおけるＸ軸方向とＹ軸方向とのいずれか一方又は両方に可動部Ａを動かす場合、第１アームＡ１と第２アームＡ２戸野内いずれか一方又は両方を動かす。第１動作命令Ｃ１３は、可動部Ａにパレット反復動作を行わせる第１動作命令のことである。なお、当該３種類の第１動作命令のそれぞれには、これらの一部又は全部に代えて、可動部Ａに他の動作を行わせる命令が含まれる構成であってもよい。
【００３１】
これら３種類の第１動作命令のうちの一部又は全部には、１種類以上の第１プロパティーが対応付けられる。ある種類の第１動作命令に対応付けられた１種類以上の第１プロパティーのそれぞれは、当該種類に応じた動作の属性、当該動作の仕方等を指定する情報のことである。例えば、第１動作命令Ｃ１１には、第１プロパティーとして、可動部Ａの移動先を指定する情報、可動部Ａを動作させる速度を指定する情報、可動部Ａの動作の仕方を指定する情報等が対応付けられる。ここで、可動部Ａの動作の仕方は、例えば、可動部ＡをＰＴＰ（Point  To  Point）制御による動作の仕方、ＣＰ（Continuous  Path）制御による動作の仕方、可動部Ａの各関節の回動角を最小とする制御による動作の仕方等のことである。なお、第１動作命令Ｃ１１には、これらの情報に代えて、又は、これらの情報に加えて、他の情報が第１プロパティーとして対応付けられる構成であってもよい。また、３種類の第１動作命令の全部には、第１プロパティーが対応付けられない構成であってもよい。
【００３２】
ここで、可動部Ａの動作は、可動部ＡのＴＣＰ（Tool  Center  Point）の位置及び姿勢を変更させる動作のことである。なお、可動部Ａの動作の速度は、例えば、当該ＴＣＰが動く速度によって表される構成であってもよく、ロボット２０の関節等のロボット２０の他の部位が動く速度によって表される構成であってもよい。以下では、一例として、可動部Ａの動作の速度が、当該ＴＣＰが動く速度によって表される場合について説明する。また、以下では、説明の便宜上、当該ＴＣＰをある位置に移動させることを、可動部Ａを当該位置に移動させると称して説明する。
【００３３】
１種類以上の第２動作命令は、第２動作命令の種類に応じた動作を、ロボット２０に取り付けられた外部装置に行わせる命令のことである。
【００３４】
以下では、一例として、外部装置が、ハンドとカメラとの２つの外部装置である場合について説明する。ここで、ハンドは、ロボット２０に取り付け可能なエンドエフェクターのうち、複数の指部によって物体を把持することが可能なエンドエフェクターのことである。カメラは、ロボット２０により作業が行われる領域を撮像するカメラである。なお、外部装置は、ハンドとカメラとのうちいずれか一方又は両方に代えて、ロボット２０に取り付け可能な他の装置であってもよい。
【００３５】
また、以下では、一例として、第２動作命令の種類が２種類である場合について説明する。２種類の第２動作命令のそれぞれは、例えば、第２動作命令Ｃ２１及び第２動作命令Ｃ２２のそれぞれである。第２動作命令Ｃ２１は、ロボット２０に取り付けられたハンドを動作させる第２動作命令のことである。第２動作命令Ｃ２２は、ロボット２０に取り付けられたカメラを動作させる第２動作命令のことである。なお、当該２種類の第２動作命令のそれぞれは、これらに代えて、ロボット２０に取り付けられた外部装置に他の動作を行わせる命令であってもよい。
【００３６】
これら２種類の第２動作命令のうちのいずれか一方又は両方には、１種類以上の第２プロパティーが対応付けられる。ある種類の第２動作命令に対応付けられた１種類以上の第２プロパティーのそれぞれは、当該種類に応じた動作の属性、当該動作の仕方等を指定する情報のことである。例えば、第２動作命令Ｃ２１には、第２プロパティーとして、ハンドの開閉をハンドの動作として指定する情報等が対応付けられる。ハンドの開閉を指定する情報は、ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを開かせることをハンドの動作として指定する情報、ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせることをハンドの動作として指定する情報等のことである。なお、第２動作命令Ｃ２１には、ハンドの開閉を指定する情報に代えて、又は、当該情報に加えて、ハンドの動作の属性、当該動作の仕方等を指定する他の情報が第２プロパティーとして対応付けられる構成であってもよい。また、２種類の第２動作命令の全部には、第２プロパティーが対応付けられない構成であってもよい。
【００３７】
なお、以下では、説明の便宜上、第１動作命令と第２動作命令とを区別する必要がない場合、まとめて動作命令と称する。
【００３８】
１種類以上の処理命令のそれぞれは、処理命令の種類に応じた処理をロボット制御装置４０又は情報処理装置５０に行わせる命令のことである。以下では、一例として、処理命令の種類が５種類である場合について説明する。５種類の処理命令のそれぞれは、例えば、処理命令Ｃ３１〜処理命令Ｃ３５のそれぞれである。処理命令Ｃ３１は、ロボット制御装置４０による命令の実行をロボット制御装置４０に待機させる処理命令のことである。処理命令Ｃ３２は、各種の信号の他の装置への出力をロボット制御装置４０に行わせる処理命令のことである。処理命令Ｃ３３は、情報処理装置５０の表示部５５への各種のメッセージの表示を情報処理装置５０に行わせる処理命令のことである。処理命令Ｃ３４は、情報処理装置５０の表示部５５に表示された作業シーケンス上へのコメントの表示を情報処理装置５０に行わせる処理命令のことである。処理命令Ｃ３５は、ロボット制御装置４０による命令の実行をロボット制御装置４０に停止させる処理命令のことである。なお、当該５種類の処理命令のそれぞれは、これらに代えて、ロボット制御装置４０又は情報処理装置５０に他の処理を行わせる命令であってもよい。
【００３９】
これら５種類の処理命令のうちの一部又は全部には、１種類以上の第３プロパティーが対応付けられる。ある種類の処理命令に対応付けられた１種類以上の第３プロパティーのそれぞれは、当該種類に応じた処理の属性、当該処理を行う対象、当該処理の内容等を指定する情報のことである。例えば、処理命令Ｃ３１には、第３プロパティーとして、ロボット制御装置４０による命令の実行をロボット制御装置４０に待機させる時間を指定する情報が対応付けられる。なお、処理命令Ｃ３１には、当該情報に代えて、又は、当該情報に加えて、他の情報が第３プロパティーとして対応付けられる構成であってもよい。また、例えば、処理命令Ｃ３２には、第３プロパティーとして、ロボット制御装置４０に出力させる信号の種類を指定する情報、当該信号の出力先の装置を指定する情報等が対応付けられる。なお、処理命令Ｃ３２には、これら情報に代えて、又は、これらの情報に加えて、他の情報が第３プロパティーとして対応付けられる構成であってもよい。また、５種類の処理命令の全部には、第３プロパティーが対応付けられない構成であってもよい。
【００４０】
１種類以上の論理構造命令のそれぞれは、作業シーケンス上に配列される各種の命令が実行される順番を規定する論理構造を指定する命令のことである。以下では、一例として、論理構造命令の種類が２種類である場合について説明する。２種類の論理構造命令のそれぞれは、例えば、論理構造命令Ｃ４１及び論理構造命令Ｃ４２のそれぞれである。論理構造命令Ｃ４１は、当該各種の命令が実行させる順番を分岐させる論理構造命令のことである。論理構造命令Ｃ４２は、当該各種の命令の実行を反復させる論理構造命令のことである。ここで、当該各種の命令には、１つ以上の動作命令と、１つ以上の処理命令とのうちのいずれか一方又は両方が含まれる。
【００４１】
これら２種類の論理構造命令のうちの一部又は全部には、１種類以上の第４プロパティーが対応付けられる。ある種類の論理構造命令に対応付けられた１種類以上の第４プロパティーのそれぞれは、当該種類に応じた論理構造の属性、当該論理構造における条件等を指定する情報のことである。例えば、論理構造命令Ｃ４１には、第４プロパティーとして、各種の命令が実行させる順番を分岐させる条件を指定する情報が対応付けられる。なお、当該条件は、例えば、Ｃ言語におけるｆｏｒ文の条件式によって表される条件に相当する。また、論理構造命令Ｃ４１には、当該情報に代えて、又は、当該情報に加えて、他の情報が第４プロパティーとして対応付けられる構成であってもよい。また、２種類の論理構造命令の全部には、第４プロパティーが対応付けられない構成であってもよい。
【００４２】
以下では、説明の便宜上、第１プロパティー〜第４プロパティーのそれぞれを区別する必要がない限り、まとめてプロパティーと称して説明する。また、以下では、説明の便宜上、１つ以上の動作命令、１つ以上の処理命令、１つ以上の論理構造命令のうちの一部又は全部を区別する必要がない限り、まとめて各種の命令と称して説明する。すなわち、以下では、各種の命令と称した場合、１つ以上の動作命令、１つ以上の処理命令、１つ以上の論理構造命令のうちの一部又は全部を示す。また、以下では、説明の便宜上、動作命令、処理命令、論理構造命令のそれぞれを区別する必要がない限り、まとめて命令と称して説明する。すなわち、以下では、単に命令と称した場合、動作命令、処理命令、論理構造命令のいずれかを示す。
【００４３】
情報処理装置５０は、生成した作業シーケンスを表示部５５に表示させる。情報処理装置５０は、ユーザーから受け付けた操作に応じて、このようにして表示部５５に表示された作業シーケンスとして配列されている各種の命令について、順序の変更、命令の追加、命令の削除等の更新を行う。そして、情報処理装置５０は、ユーザーから受け付けた操作に応じて、表示部５５に表示された作業シーケンスに基づく動作プログラムを生成する。情報処理装置５０は、生成した動作プログラムをロボット制御装置４０に出力し、ロボット制御装置４０に当該動作プログラムを実行させる。
【００４４】
ここで、ユーザーは、情報処理装置５０を操作し、複数の命令を、ユーザーが所望する順に配列することによって作業シーケンスを作成する。このため、ユーザーは、作業シーケンスとして複数の命令を配列する際、作業シーケンスとして配列される複数の命令のうちの少なくとも一部の命令同士の表示位置関係のいずれかを、望ましくない表示位置関係と一致させてしまうことがある。ある２つ以上の命令同士の望ましくない表示位置関係とは、当該２つ以上の命令が実行されることによってロボット２０が意図しない動作を行ってしまう可能性の高い場合における当該２つ以上の命令同士の表示位置関係のことである。ロボット２０の意図しない動作とは、例えば、ロボット２０が他の物体に干渉してしまう動作等のことである。また、本実施形態において、ある画像上において表示されたある２つ以上の命令同士の表示位置関係は、当該画像上における当該２つ以上の命令同士の表示位置の相対的な位置関係のことである。また、本実施形態において、ある命令の表示位置は、当該命令が表示された画像上の位置のうち、当該命令が表示されている位置のことである。
【００４５】
また、ユーザーは、作業シーケンスとして配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれかが望ましくない表示位置関係と一致している場合であっても、当該２つ以上の命令同士の表示位置関係が望ましくない表示位置関係と一致していることに気づかないことがある。このようなことは、ユーザーが作業シーケンスの作成に慣れていないほど、起こる可能性が高い。
【００４６】
そこで、情報処理装置５０は、作業シーケンスとして配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれかが望ましくない表示位置関係となっていた場合、注意喚起情報を表示部５５に表示する。注意喚起情報は、当該２つ以上の命令同士の表示位置関係が望ましくない表示位置関係となっていることを注意喚起する情報のことである。
【００４７】
より具体的には、情報処理装置５０は、ユーザー又は製造者によって表示位置関係情報がメモリー５２に予め記憶される。表示位置関係情報は、１以上の表示位置関係を示す１以上の情報を含む情報のことである。また、表示位置関係情報は、表示位置関係情報に含まれる１以上の情報のそれぞれが示す表示位置関係を示す。また、当該１以上の情報のそれぞれは、作業シーケンスとして配列可能な複数の命令のうち予め決められた２つ以上の命令同士の相対的な表示位置関係を示す情報である。
【００４８】
情報処理装置５０は、表示部５５に表示された作業シーケンスとして配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれかが、メモリー５２に予め記憶された表示位置関係情報が示す１以上の表示位置関係のいずれかと一致した場合、表示部５５に注意喚起情報を表示させる。これにより、情報処理装置５０、すなわち、制御装置３０は、ユーザーにより作成された作業シーケンスによってロボット２０に意図しない動作を行わせてしまうことを抑制することができる。具体的には、例えば、制御装置３０は、ユーザーにより作成された作業シーケンスによってロボット２０が他の物体と干渉してしまうことを抑制することができる。
【００４９】
以下では、このような情報処理装置５０の構成と、情報処理装置５０が注意喚起情報を表示する処理とのそれぞれについて詳しく説明する。
【００５０】
＜情報処理装置のハードウェア構成＞
以下、図２を参照し、情報処理装置５０のハードウェア構成について説明する。図２は、情報処理装置５０のハードウェア構成の一例を示す図である。
【００５１】
情報処理装置５０は、例えば、プロセッサー５１と、メモリー５２と、入力受付部５３と、通信部５４と、表示部５５を備える。これらの構成要素は、バスを介して相互に通信可能に接続されている。また、情報処理装置５０は、通信部５４を介して、ロボット制御装置４０と通信を行う。
【００５２】
プロセッサー５１は、例えば、ＣＰＵ（Central  Processing  Unit）である。なお、プロセッサー５１は、ＣＰＵに代えて、ＦＰＧＡ（Field  Programmable  Gate  Array）等の他のプロセッサーであってもよい。プロセッサー５１は、メモリー５２に格納された各種のプログラムを実行する。
【００５３】
メモリー５２は、例えば、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、メモリー５２は、情報処理装置５０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー５２は、情報処理装置５０が処理する各種の情報、各種の画像、各種のプログラム等を格納する。メモリー５２は、記憶部の一例である。
【００５４】
入力受付部５３は、例えば、キーボード、マウス、タッチパッド、その他の入力装置である。なお、入力受付部５３は、これらに代えて、表示部５５と一体に構成されたタッチパネルであってもよい。また、入力受付部５３は、情報処理装置５０と別体であってもよい。この場合、入力受付部５３は、有線又は無線によって情報処理装置５０と通信可能に接続される。
【００５５】
通信部５４は、例えば、ＵＳＢ等のデジタル入出力ポート、イーサネット（登録商標）ポート等を含んで構成される。
【００５６】
表示部５５は、例えば、液晶ディスプレイパネル、有機ＥＬ（ElectroLuminescence）ディスプレイパネル等である。なお、表示部５５は、情報処理装置５０と別体であってもよい。この場合、表示部５５は、有線又は無線によって情報処理装置５０と通信可能に接続される。
【００５７】
＜情報処理装置の機能構成＞
以下、図３を参照し、情報処理装置５０の機能構成について説明する。図３は、情報処理装置５０の機能構成の一例を示す図である。
【００５８】
情報処理装置５０は、メモリー５２と、入力受付部５３と、通信部５４と、表示部５５と、制御部５６を備える。
【００５９】
制御部５６は、情報処理装置５０の全体を制御する。制御部５６は、表示制御部５６１と、生成部５６３と、出力部５６５を備える。制御部５６が備えるこれらの機能部は、例えば、プロセッサー５１が、メモリー５２に記憶された各種のプログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００６０】
表示制御部５６１は、表示部５５に表示させる各種の画像を生成する。表示制御部５６１は、生成した画像を表示部５５に表示させる。例えば、表示制御部５６１は、ユーザーから受け付けた操作に応じて、作業シーケンスを作成する作業シーケンス作成画像を生成する。そして、表示制御部５６１は、生成した作業シーケンス作成画像を表示部５５に表示させる。
【００６１】
生成部５６３は、作業シーケンス作成画像を介してユーザーから受け付けた操作に応じて、作業シーケンス作成画像上に表示された作業シーケンスに基づいて、動作プログラムを生成する。
【００６２】
出力部５６５は、作業シーケンス作成画像を介してユーザーから受け付けた操作に応じて、生成部５６３により生成された動作プログラムを、ロボット制御装置４０に出力する。
【００６３】
＜作業シーケンス作成画像の構成例＞
以下、図４を参照し、前述の作業シーケンス作成画像の構成例について説明する。図４は、作業シーケンス作成画像の一例を示す図である。図４に示した画像Ｐ１は、作業シーケンス作成画像の一例である。
【００６４】
画像Ｐ１には、例えば、領域Ｒ１〜領域Ｒ４の４つの領域と、ボタンＢ１とボタンＢ２との２つのボタンとがＧＵＩ（Graphical  User  Interface）として含まれている。なお、画像Ｐ１には、これらの６つのＧＵＩに加えて、他のＧＵＩが含まれる構成であってもよい。
【００６５】
領域Ｒ１は、作業シーケンスとして配列可能な複数の命令のそれぞれを示す情報が表示される領域のことである。ユーザーは、領域Ｒ１に表示された複数の情報のうちの１つを選択し、選択した１つの情報が示す命令を、後述する領域Ｒ２内においてユーザーが所望する表示位置に配列することにより、領域Ｒ２内において作業シーケンスを作成することができる。例えば、ユーザーは、領域Ｒ１に表示された複数の情報のうちの１つをドラッグ・アンド・ドロップによって領域Ｒ２内においてユーザーが所望する表示位置に配列することができる。すなわち、表示制御部５６１は、領域Ｒ１に表示された複数の情報のうちの１つを選択し、選択した１つの情報が示す命令を、領域Ｒ２内においてユーザーが所望する表示位置に配列する配列操作をユーザーから受け付けた場合、当該命令を領域Ｒ２内における当該表示位置に表示させて配列させる。
【００６６】
ここで、領域Ｒ１には、領域Ｒ１１〜領域Ｒ１３の３つの領域がＧＵＩとして含まれている。
【００６７】
領域Ｒ１１は、複数の動作命令のそれぞれを示す情報が表示される領域のことである。図４に示した例では、領域Ｒ１１には、第１動作命令Ｃ１１〜第１動作命令Ｃ１３のそれぞれを示す情報と、第２動作命令Ｃ２１及び第２動作命令Ｃ２２のそれぞれを示す情報との５つの情報が表示されている。
【００６８】
領域Ｒ１２は、複数の処理命令のそれぞれを示す情報が表示される領域のことである。図４に示した例では、領域Ｒ１２には、処理命令Ｃ３１〜処理命令Ｃ３５のそれぞれを示す情報が表示されている。
【００６９】
領域Ｒ１３は、複数の論理構造命令のそれぞれを示す情報が表示される領域のことである。図４に示した例では、領域Ｒ１３には、論理構造命令Ｃ４１及び論理構造命令Ｃ４２のそれぞれを示す情報が表示されている。
【００７０】
領域Ｒ２は、領域Ｒ１に表示されている各種の情報のそれぞれが示す命令が作業シーケンスとして配列される領域のことである。換言すると、領域Ｒ２は、領域Ｒ１に表示されている各種の情報のそれぞれが示す命令が配列されることによって、作業シーケンスが作成される領域のことである。更に換言すると、領域Ｒ２は、ユーザーにより複数の命令が配列された作業シーケンスが表示される領域のことである。図４に示した例では、領域Ｒ２には、ユーザーにより１２の命令が配列されている。
【００７１】
また、領域Ｒ２では、領域Ｒ２に配列された命令のうちあるプロパティーが対応付けられた命令について、当該命令の下位ノードとして、当該命令とともに当該プロパティーが表示される。ユーザーにより領域Ｒ２内にある命令が配列された場合、表示制御部５６１は、領域Ｒ２内に当該命令を表示させるとともに、当該命令に対応付けられたプロパティーを、当該命令の下位ノードとして領域Ｒ２内に表示させる。例えば、当該命令が第１動作命令Ｃ１２であった場合、領域Ｒ２内には、第１動作命令Ｃ１２の下位ノードとして、可動部Ａを動作させる速度を指定する第１プロパティー、可動部Ａの移動先を指定する第１プロパティー、可動部Ａの動作の仕方を指定する第１プロパティー等が表示される。
【００７２】
また、領域Ｒ２では、ユーザーは、領域Ｒ２に配列された１つ以上の命令のうちユーザーが所望する命令を選択することができる。そして、ユーザーは、領域Ｒ２内において選択した命令について、領域Ｒ２内における表示位置の変更、領域Ｒ２内からの削除、領域Ｒ２内におけるコピー・アンド・ペースト、領域Ｒ２内におけるカット、ブレークポイントの追加等を、後述する領域Ｒ３に表示されたＧＵＩのうちのいずれかに対して操作を行うことにより、実行することができる。
【００７３】
また、領域Ｒ２では、ユーザーは、領域Ｒ２に表示された１つ以上のプロパティーのうちユーザーが所望するプロパティーを選択することができる。そして、ユーザーは、領域Ｒ２内において選択したプロパティーが指定する内容の編集を、後述する領域Ｒ４に表示されたＧＵＩのうちのいずれかに対して操作を行うことにより、実行することができる。
【００７４】
領域Ｒ３は、領域Ｒ２内においてユーザーにより選択された命令について、領域Ｒ２内における表示位置の変更、領域Ｒ２内からの削除、領域Ｒ２内におけるコピー・アンド・ペースト、領域Ｒ２内におけるカット、ブレークポイントの追加等の操作を受け付けるＧＵＩが表示される領域のことである。当該ＧＵＩは、例えば、ボタンである。なお、当該ＧＵＩは、ボタンに代えて、プルダウンメニュー等の他のＧＵＩであってもよい。表示制御部５６１は、領域Ｒ３を介してユーザーから受け付けた操作に応じて、領域Ｒ２内においてユーザーにより選択された命令について、領域Ｒ２内における表示位置の変更、領域Ｒ２内からの削除、領域Ｒ２内におけるコピー・アンド・ペースト、領域Ｒ２内におけるカット、ブレークポイントの追加等を行う。
【００７５】
領域Ｒ４は、領域Ｒ２内においてユーザーにより選択されたプロパティーが指定する内容の編集を行う領域のことである。表示制御部５６１は、領域Ｒ２内においてユーザーによりあるプロパティーが選択された場合、当該プロパティーが指定する内容を編集する画像を領域Ｒ４に表示させる。図４に示した例では、領域Ｒ４には、第１動作命令Ｃ１２に対応付けられた第１プロパティーの内容の編集を行う画像が表示されている。なお、当該例では、領域Ｒ２内においてユーザーにより選択された第１プロパティーは、領域Ｒ２内においてハッチングされたプロパティーとして示されている。
【００７６】
ボタンＢ１は、領域Ｒ２に表示された作業シーケンスをメモリー５２に記憶させるボタンである。表示制御部５６１は、ボタンＢ１に対してユーザーから操作を受け付けた場合、当該作業シーケンスをメモリー５２に記憶させる。
【００７７】
ボタンＢ２は、領域Ｒ２に表示された作業シーケンスに基づく動作プログラムをロボット制御装置４０に出力して実行させるボタンである。生成部５６３は、ボタンＢ２に対してユーザーから操作を受け付けた場合、当該作業シーケンスに基づいて動作プログラムを生成する。そして、出力部５６５は、生成部５６３により生成された動作プログラムをロボット制御装置４０に出力して実行させる。これにより、ロボット制御装置４０は、当該動作プログラムに基づいてロボット２０を制御することができる。
【００７８】
＜作業シーケンス作成画像において注意喚起情報を表示する処理＞
以下、図５を参照し、情報処理装置５０が行う処理のうち作業シーケンス作成画像において注意喚起情報を表示する処理について説明する。図５は、情報処理装置５０が行う処理のうち作業シーケンス作成画像において注意喚起情報を表示する処理の流れの一例を示す図である。
【００７９】
表示制御部５６１は、作業シーケンスとして領域Ｒ２内に配列された複数の命令の表示位置関係を変化させる操作を受け付けるまで待機する（ステップＳ１１０）。当該操作は、例えば、領域Ｒ１に表示された複数の命令のうちのいずれか１つを領域Ｒ２内に配列させる配列操作、領域Ｒ２内において選択された命令について、命令の領域Ｒ２内における表示位置の変更、命令の削除等を行う変更操作等のことである。
【００８０】
表示制御部５６１は、作業シーケンスとして領域Ｒ２内に配列された複数の命令の表示位置関係を変化させる操作を受け付けた場合（ステップＳ１１０−ＹＥＳ）、当該操作に応じた処理を行う（ステップＳ１２０）。例えば、表示制御部５６１は、受け付けた操作が配列操作であった場合、配列操作により指定された命令を、領域Ｒ２内において当該配列操作により指定された表示位置に表示させて配列させる。また、例えば、表示制御部５６１は、受け付けた操作が変更操作であった場合、変更操作に応じて、領域Ｒ２内において選択された命令について、命令の領域Ｒ２内における表示位置の変更、命令の削除等を行う。
【００８１】
次に、表示制御部５６１は、領域Ｒ２内の作業シーケンスに配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれかが、望ましくない表示位置関係と一致しているか否かを判定する（ステップＳ１３０）。
【００８２】
ここで、ステップＳ１３０の処理について説明する。表示制御部５６１は、メモリー５２に予め記憶された表示位置関係情報をメモリー５２から読み出す。表示制御部５６１は、領域Ｒ２内において作業シーケンスとして配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれかが、メモリー５２から読み出した表示位置関係情報が示す１以上の位置関係のいずれかと一致しているか否かを判定する。表示制御部５６１は、当該２つ以上の命令同士の表示位置関係のいずれかが、当該１以上の表示位置関係のいずれとも一致しない判定した場合、当該２つ以上の命令同士の表示位置関係のいずれも、望ましくない表示位置関係と一致していないと判定する。一方、表示制御部５６１は、当該２つ以上の命令同士の位置関係のいずれかが、当該１以上の表示位置関係のいずれかと一致すると判定した場合、当該２つ以上の表示位置関係のいずれかが、望ましくない表示位置関係と一致していると判定する。
【００８３】
表示制御部５６１は、領域Ｒ２内の作業シーケンスに配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれもが、望ましくない表示位置関係と一致していない判定した場合（ステップＳ１３０−ＮＯ）、作業シーケンスの編集を終了させる操作をユーザーから受け付けたか否かを判定する（ステップＳ１５０）。当該操作は、例えば、ボタンＢ２に対する操作、表示部５５における作業シーケンス作成画像の表示の削除を行う操作等のことである。
【００８４】
表示制御部５６１は、作業シーケンスの編集を終了させる操作をユーザーから受け付けていないと判定した場合（ステップＳ１５０−ＮＯ）、ステップＳ１１０に遷移し、作業シーケンスとして領域Ｒ２内に配列された複数の命令の表示位置関係を変化させる操作を受け付けるまで再び待機する。
【００８５】
一方、表示制御部５６１は、作業シーケンスの編集を終了させる操作をユーザーから受け付けたと判定した場合（ステップＳ１５０−ＹＥＳ）、処理を終了する。
【００８６】
一方、表示制御部５６１は、領域Ｒ２内の作業シーケンスに配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれかが、望ましくない表示位置関係塗一致していると判定した場合（ステップＳ１３０−ＹＥＳ）、前述の注意喚起情報を表示部５５に表示させる（ステップＳ１４０）。ここで、注意喚起情報は、文章によって前述の注意喚起を行うメッセージであってもよく、記号等によって当該注意喚起を行う画像であってもよく、当該注意喚起を行う他の情報であってもよい。ステップＳ１４０の処理が行われた後、表示部５５は、ステップＳ１５０に遷移する。
【００８７】
以上のように、情報処理装置５０は、領域Ｒ２内において作業シーケンスとして配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれかが、望ましくない表示位置関係と一致している場合、注意喚起情報を表示部５５に表示させる。これにより、情報処理装置５０、すなわち、制御装置３０は、ユーザーにより作成された作業シーケンスによってロボット２０に意図しない動作を行わせてしまうことを抑制することができる。具体的には、例えば、制御装置３０は、ユーザーにより作成された作業シーケンスによってロボット２０が他の物体と干渉してしまうことを抑制することができる。
【００８８】
なお、表示制御部５６１が注意喚起情報を表示させるタイミングは、領域Ｒ２内の作業シーケンスに配列された複数の命令のうちの２つ以上の命令同士の表示位置関係のいずれもが、望ましくない表示位置関係と一致していると判定した直後のタイミングであってもよく、ユーザーからボタンＢ１又はボタンＢ２に対して操作を受け付けたタイミングであってもよく、他のタイミングであってもよい。
【００８９】
＜望ましくない表示位置関係の具体例１と注意喚起情報の表示例１＞
以下、図６を参照し、作業シーケンスに配列された複数の命令同士の表示位置関係のうち望ましくない表示位置関係の具体例１と、注意喚起情報の表示例１について説明する。
【００９０】
図６は、注意喚起情報が表示された場合における画像Ｐ１の一例を示す図である。図６に示した矢印Ｏ１は、図６に示した画像Ｐ１における上下を示している。図６に示した例では、領域Ｒ２には、上から下に向かって順に、第１動作命令Ｃ１１、論理構造命令Ｃ４１、第１動作命令Ｃ１２、第２動作命令Ｃ２１、第１動作命令Ｃ１２、第２動作命令Ｃ２１の６つの命令が配列されている。また、当該例では、２つの第１動作命令Ｃ１２のそれぞれと、２つの第２動作命令Ｃ２１のそれぞれと、１つの論理構造命令Ｃ４１とには、プロパティーが対応付けられている。ただし、当該例では、領域Ｒ２においてこれらのプロパティーは、折り畳み状態となっており、表示されていない。また、当該例では、領域Ｒ２において、上から数えて１つ目の第１動作命令Ｃ１２がユーザーにより選択されている。このため、領域Ｒ４には、当該第１動作命令Ｃ１２に対応付けられた３つの第１プロパティーそれぞれの内容を編集する画像が表示されている。当該３つの第１プロパティーは、図６に示したように、可動部Ａの移動先を指定する第１プロパティーと、可動部Ａを動作させる速度を指定する第１プロパティーと、可動部Ａの動作の仕方を指定する第１プロパティーとのそれぞれである。なお、図６に示した領域Ｒ４では、可動部Ａの動作の仕方を指定する第１プロパティーを編集する画像は、領域Ｒ４におけるスクロールにより上方にスライドされていて隠されている。
【００９１】
また、図６に示した例では、領域Ｒ２において上から数えて１つ目の論理構造命令Ｃ４１には、対象となる処理を繰り返し実行させる条件を指定する第４プロパティーが対応付けられている。しかしながら、前述した通り、当該例では、当該第４プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【００９２】
また、図６に示した例では、領域Ｒ２において、論理構造命令Ｃ４１によって繰り返し実行される命令、すなわち、２つの第１動作命令Ｃ１２と、２つの第２動作命令Ｃ２１とのそれぞれが、下位ノードとして論理構造命令Ｃ４１とともに表示されている。ここで、領域Ｒ２内の表示位置のうち論理構造命令Ｃ４１の下位ノードとしてこれら４つの命令が表示されている表示位置は、論理構造命令Ｃ４１に対応付けられた対応表示位置の一例である。当該対応表示位置は、領域Ｒ２内の表示位置のうち論理構造命令Ｃ４１の下位ノードとしての命令が位置する表示位置である。
【００９３】
また、図６に示した例では、領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２は、「動かす：ワークを掴む位置へ移動」と示されている。これは、図６では、当該第１動作命令Ｃ１２に対して、「ワークを掴む位置」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。また、領域Ｒ２において図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「高速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。なお、「ワークを掴む位置」は、実際には、例えば、ロボット座標系ＲＣにおける座標、予め決められた教示された教示点等によって表される。
【００９４】
また、図６に示した例では、領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１は、「ハンド：ワークを掴む」と示されている。これは、図６では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【００９５】
また、図６に示した例では、領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２は、「動かす：ワークを離す位置へ移動」と示されている。これは、図６では、当該第１動作命令Ｃ１２に対して、「ワークを離す位置」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。また、図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「低速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。なお、「ワークを離す位置」は、実際には、例えば、ロボット座標系ＲＣにおける座標、予め決められた教示された教示点等によって表される。
【００９６】
また、図６に示した例では、領域Ｒ２において上から数えて２つ目の第２動作命令Ｃ２１は、「ハンド：ワークを離す」と示されている。これは、図６では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを開かせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【００９７】
また、図６に示した例では、領域Ｒ４には、図６においてスクロールにより上方に隠されているプルダウンメニューＳＲと、入力欄ＩＲと、プルダウンメニューＰＤと、スライドバーＳＢがＧＵＩとして含まれている。
【００９８】
プルダウンメニューＳＲは、可動部Ａの動作の仕方として予め決められた複数の動作の仕方それぞれのリストを表示するＧＵＩである。プルダウンメニューＳＲは、プルダウンメニューＳＲに予め決められた位置に対してユーザーから操作を受け付けた場合、当該リストを表示する。また、プルダウンメニューＳＲは、当該リストに対してユーザーから受け付けた操作に応じて、当該複数の動作の仕方のうちユーザーにより選択された動作の仕方を、プルダウンメニューＳＲが有する表示欄に表示させるとともに、当該リストの表示を削除する。
【００９９】
入力欄ＩＲは、可動部Ａの移動先を示す情報を入力する欄である。図６に示した例では、当該情報として「ワークを掴む位置へ移動」が入力されている。この場合、表示制御部５６１は、領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２に、「ワークを掴む位置」を可動部Ａの移動先として指定する第１プロパティーを対応付ける。
【０１００】
プルダウンメニューＰＤは、可動部Ａを動作させる速度として予め決められた複数段階の速度のそれぞれと、後述するスライドバーＳＢによってユーザーにより指定される速度とのリストを表示するＧＵＩである。以下では、一例として、当該複数段階が、３段階である場合について説明する。また、以下では、一例として、３段階の速度がそれぞれ、低速、中速、高速である場合について説明する。低速は、中速より遅い速度を示す。中速は、高速より遅い速度を示す。高速は、可動部Ａを動作させる速度として最も速い速度の２０％以上の速度を示す。また、以下では、説明の便宜上、スライドバーＳＢによってユーザーにより指定される速度を、カスタム速度と称して説明する。すなわち、プルダウンメニューＰＤは、低速、中速、高速、カスタム速度の４つの速度のリストを表示するＧＵＩである。プルダウンメニューＰＤは、プルダウンメニューＰＤに予め決められた位置に対してユーザーから操作を受け付けた場合、当該リストを表示する。また、プルダウンメニューＰＤは、当該リストに対してユーザーから受け付けた操作に応じて、当該４つの速度のうちユーザーにより選択された速度を、プルダウンメニューＰＤが有する表示欄に表示させるとともに、当該リストの表示を削除する。図６に示した例では、プルダウンメニューＰＤには、高速が表示されている。すなわち、当該例では、可動部Ａを動作させる速度として高速が選択されている。
【０１０１】
スライドバーＳＢは、プルダウンメニューＰＤが有する表示欄にカスタム速度が表示されている場合、ユーザーから受け付けた操作に応じて、高速の０％の速度〜高速の１００％の速度の範囲内のいずれかを、可動部Ａを動作させる速度として指定することが可能なスライドバーである。
【０１０２】
ここで、図６に示した例では、領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２には、可動部Ａを動作させる速度として「高速」を指定する第１プロパティーが対応付けられている。すなわち、領域Ｒ２に表示された作業シーケンスに基づく動作プログラムによってロボット制御装置４０がロボット２０を動作させた場合、ロボット２０は、「高速」で可動部Ａを「ワークを掴む位置」まで動かした後、ハンドによりワークを掴み、ハンドにより掴んだワークを可動部Ａによって「ワークを離す位置」まで動かして、ハンドによりワークを離す。
【０１０３】
より具体的には、ロボット制御装置４０は、図６に示した作業シーケンスに基づく動作プログラムを情報処理装置５０から取得し、取得した動作プログラムに基づいて、図７に示したフローチャートの処理を行い、ロボット２０を動作させる。図７は、図６に示した作業シーケンスに基づく動作プログラムによってロボット２０を動作させるロボット制御装置４０の処理の流れの一例を示す図である。
【０１０４】
ロボット制御装置４０は、ロボット２０が有する第１アクチュエーター〜第４アクチュエーターそれぞれの初期化を行う（ステップＳ２１０）。ステップＳ２１０の処理は、図６に示した領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１１に応じてロボット制御装置４０が行う処理である。
【０１０５】
次に、ロボット制御装置４０は、ステップＳ２３０〜ステップＳ２６０の処理の繰り返しを継続するか否かを判定する（ステップＳ２２０）。ステップＳ２２０の処理は、図６に示した領域Ｒ２において上から数えて１つ目の論理構造命令Ｃ４１に応じてロボット制御装置４０が行う処理である。ここで、ステップＳ２２０において、ロボット制御装置４０は、当該論理構造命令Ｃ４１に対応付けられた第４プロパティーによって指定される条件が満たされたか否かを判定することにより、ステップＳ２３０〜ステップＳ２６０の処理の繰り返しを継続するか否かを判定する。ロボット制御装置４０は、当該条件が満たされたと判定した場合、当該処理の繰り返しを継続しないと判定する。一方、ロボット制御装置４０は、当該条件が満たされたと判定した場合、当該処理の繰り返しを継続すると判定する。
【０１０６】
ロボット制御装置４０は、ステップＳ２３０〜ステップＳ２６０の処理の繰り返しを継続しないと判定した場合（ステップＳ２２０−ＮＯ）、処理を終了する。
【０１０７】
一方、ロボット制御装置４０は、ステップＳ２３０〜ステップＳ２６０の処理の繰り返しを継続すると判定した場合（ステップＳ２２０−ＹＥＳ）、ロボット２０を制御し、予め決められた位置のうちの「ワークを掴む位置」まで、「高速」で可動部Ａを移動させる（ステップＳ２３０）。ステップＳ２３０の処理は、図６に示した領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１０８】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせ、ハンドにワークを掴ませる（ステップＳ２４０）。ステップＳ２４０の処理は、図６に示した領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。
【０１０９】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの「ワークを離す位置」まで、「低速」で可動部Ａを移動させる（ステップＳ２５０）。ステップＳ２５０の処理は、図６に示した領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１１０】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを閉じさせ、ハンドにワークを離させる（ステップＳ２６０）。ステップＳ２６０の処理は、図６に示した領域Ｒ２において上から数えて２つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。ステップＳ２６０の処理が行われた後、ロボット制御装置４０は、ステップＳ２２０に遷移し、ステップＳ２３０〜ステップＳ２６０の処理の繰り返しを継続するか否かを再び判定する。
【０１１１】
このように、ロボット制御装置４０は、図６に示した作業シーケンスに基づく動作プログラムを情報処理装置５０から取得し、取得した動作プログラムに基づいて、図７に示したフローチャートの処理を行い、ロボット２０を動作させる。
【０１１２】
しかしながら、ロボット制御装置４０がステップＳ２３０の処理によって「高速」で可動部Ａを「ワークを掴む位置」まで動かした場合、可動部Ａは、「高速」からの減速による制動によって、可動部Ａが停止しようとしている位置において振動してしまうことがある。その結果、可動部Ａは、他の物体に干渉してしまうことがある。当該他の物体は、例えば、ワーク、ワークを載置している台等である。すなわち、「高速」で可動部Ａを動作させる第１動作命令Ｃ１２が、ハンドを動作させる第２動作命令Ｃ２１の直前に位置する表示位置関係は、望ましくない表示位置関係である。
【０１１３】
そこで、情報処理装置５０のメモリー５２には、第１１表示位置関係情報を含む表示位置関係情報が予め記憶される。第１１表示位置関係情報は、第１１表示位置関係を示す情報のことである。第１１表示位置関係は、領域Ｒ２内に作業シーケンスとして配列された２つ以上の命令同士の表示位置関係のうち、「高速」で可動部Ａを動作させる第１動作命令Ｃ１２が、ハンドを動作させる第２動作命令Ｃ２１の直前に位置する表示位置関係のことである。表示制御部５６１は、図６に示したように、領域Ｒ２内に作業シーケンスとして配列された当該第１動作命令Ｃ１２と当該第２動作命令Ｃ２１との相対的な表示位置関係と、メモリー５２に記憶された第１１表示位置関係情報が示す第１１表示位置関係とが一致した場合、表示部５５に注意喚起情報ＡＴを表示させる。図６に示した例では、注意喚起情報ＡＴは、領域Ｒ２に配列されている当該第１動作命令Ｃ１２の左隣に表示されている。なお、注意喚起情報ＡＴが表示される表示位置は、これに代えて、表示部５５上の他の表示位置であってもよい。ただし、注意喚起情報ＡＴが表示される表示位置は、領域Ｒ２内において、当該第１動作命令Ｃ１２と当該第２動作命令Ｃ２１とのうちのいずれか一方又は両方の表示位置を示すことが可能な表示位置であることが望ましい。これにより、ユーザーは、望ましくない表示位置関係となっている２つの命令のうちのいずれか一方又は両方を、容易に特定することができる。なお、当該第１１表示位置関係は、第１表示位置関係の一例である。また、当該第１１表示位置関係情報は、第１表示位置関係情報の一例である。また、当該第２動作命令Ｃ２１は、第１命令の一例である。また、当該第１動作命令Ｃ１２は、第２命令の一例である。
【０１１４】
なお、上記の第１１表示位置関係情報は、「高速」で可動部Ａを動作させる第１動作命令Ｃ１２が、ハンドを動作させる第２動作命令Ｃ２１の直前に位置する表示位置関係を示す情報に代えて、所定の速度よりも速く可動部Ａを移動させる第１動作命令Ｃ１２が、当該第２動作命令Ｃ２１の直前に位置する表示位置関係を示す情報であってもよい。所定の速度は、ユーザーが所望する速度であってもよく、他の何らかの理由によって決められる速度であってもよい。
【０１１５】
また、上記の第１１表示位置関係情報は、「高速」で可動部Ａを動作させる第１動作命令Ｃ１２が、ハンドを動作させる第２動作命令Ｃ２１の直前に位置する表示位置関係を示す情報に代えて、所定の「カスタム速度」で可動部Ａを移動させる第１動作命令Ｃ１２が、当該第２動作命令Ｃ２１の直前に位置する表示位置関係を示す情報であってもよい。
【０１１６】
また、本実施形態では、ある命令Ｘ１と他の命令Ｘ２と１以上の何らかの処理命令Ｘ３とが、命令Ｘ１、１以上の処理命令Ｘ３、命令Ｘ２の順で並んでいた場合であっても、命令Ｘ１と命令Ｘ２との相対的な表示位置関係において、命令Ｘ１は、命令Ｘ２の直前に位置すると解する。これは、可動部Ａ及び外部装置を処理命令が動作させないからである。換言すると、本実施形態では、作業シーケンス上において、命令Ｘ１の表示位置と命令Ｘ２の表示位置との間に、ロボット２０の位置とロボット２０の姿勢とのうちいずれか一方又は両方を変化させる命令と異なる命令Ｘ４が位置していた場合、例えば、命令Ｘ１、命令Ｘ４、命令Ｘ２の順に命令Ｘ１、命令Ｘ２、命令Ｘ４のそれぞれが並んで表示されていた場合であっても、命令Ｘ１は、命令Ｘ４の存在を無視して、命令Ｘ２の直前に位置していると解し、且つ、命令Ｘ２は、命令Ｘ４の存在を無視して、命令Ｘ１の直後に位置していると解する。このため、本実施形態では、ある画像上において表示されたある２つ以上の命令同士の表示位置関係は、すなわち、２つ以上の動作命令同士の表示位置関係のこと、又は、動作命令と論理構造命令との両方を含む２つ以上の命令同士の表示位置関係のことである。
【０１１７】
また、図６に示した注意喚起情報ＡＴは、画像であったが、これに代えて、領域Ｒ２に配列された複数の命令のうち、望ましくない表示位置関係となっている２つ以上の命令それぞれの表示態様を変化させることによって表される構成であってもよい。当該表示態様は、色、明るさ等のことである。また、図６に示した注意喚起情報ＡＴは、画像であったが、これに代えて、領域Ｒ２に配列された複数の命令のうち、望ましくない表示位置関係となっている２つ以上の命令それぞれの表示位置関係の修正を促すメッセージであってもよい。
【０１１８】
＜望ましくない表示位置関係の具体例２と注意喚起情報の表示例２＞
以下、図８を参照し、作業シーケンスに配列された複数の命令同士の表示位置関係のうち望ましくない表示位置関係の具体例２と、注意喚起情報の表示例２について説明する。
【０１１９】
図８は、注意喚起情報が表示された場合における画像Ｐ１の他の例を示す図である。図８に示した例では、領域Ｒ２には、上から下に向かって順に、第１動作命令Ｃ１１、論理構造命令Ｃ４１、第１動作命令Ｃ１２、第１動作命令Ｃ１２、第２動作命令Ｃ２１、第１動作命令Ｃ１２、第１動作命令Ｃ１２、第２動作命令Ｃ２１の８つの命令が配列されている。また、当該例では、４つの第１動作命令Ｃ１２のそれぞれと、２つの第２動作命令Ｃ２１のそれぞれと、１つの論理構造命令Ｃ４１とには、プロパティーが対応付けられている。ただし、当該例では、領域Ｒ２においてこれらのプロパティーは、折り畳み状態となっており、表示されていない。また、当該例では、領域Ｒ２において、上から数えて２つ目の第１動作命令Ｃ１２がユーザーにより選択されている。このため、領域Ｒ４には、当該第１動作命令Ｃ１２に対応付けられた３つの第１プロパティーそれぞれの内容を編集する画像が表示されている。当該３つの第１プロパティーは、図８に示したように、可動部Ａの移動先を指定する第１プロパティーと、可動部Ａを動作させる速度を指定する第１プロパティーと、可動部Ａの動作の仕方を指定する第１プロパティーとのそれぞれである。なお、図８に示した領域Ｒ４では、可動部Ａを動作させる速度を指定する第１プロパティーを編集する画像は、領域Ｒ４におけるスクロールにより下方にスライドされていて隠されている。
【０１２０】
また、図８に示した例では、領域Ｒ２において上から数えて１つ目の論理構造命令Ｃ４１には、対象となる処理を繰り返し実行させる条件を指定する第４プロパティーが対応付けられている。しかしながら、前述した通り、当該例では、当該第４プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１２１】
また、図８に示した例では、領域Ｒ２において、論理構造命令Ｃ４１によって繰り返し実行される命令、すなわち、４つの第１動作命令Ｃ１２と、２つの第２動作命令Ｃ２１とのそれぞれが、下位ノードとして論理構造命令Ｃ４１とともに表示されている。ここで、領域Ｒ２内の表示位置のうち論理構造命令Ｃ４１の下位ノードとしてこれら６つの命令が表示されている表示位置は、論理構造命令Ｃ４１に対応付けられた対応表示位置の一例である。当該対応表示位置は、領域Ｒ２内の表示位置のうち論理構造命令Ｃ４１の下位ノードとしての命令が位置する表示位置である。
【０１２２】
また、図８に示した例では、領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２は、「動かす：ワークを掴む位置の上方へ移動」と示されている。これは、図８では、当該第１動作命令Ｃ１２に対して、「ワークを掴む位置の上方」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。以下では、一例として、「ワークを離す位置の上方」が、ロボット２０のロボット座標系ＲＣにおける座標（１００，２００，−５０）によって示される位置である場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「高速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１２３】
また、図８に示した例では、領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２は、「動かす：ワークを掴む位置へ移動」と示されている。これは、図８では、当該第１動作命令Ｃ１２に対して、「ワークを掴む位置」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。以下では、一例として、「ワークを離す位置」が、ロボット２０のロボット座標系ＲＣにおける座標（５０，２００，−２００）によって示される位置である場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「低速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１２４】
また、図８に示した例では、領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１は、「ハンド：ワークを掴む」と示されている。これは、図８では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１２５】
また、図８に示した例では、領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２は、「動かす：ワークを離す位置の上方へ移動」と示されている。これは、図８では、当該第１動作命令Ｃ１２に対して、「ワークを離す位置の上方」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。以下では、一例として、「ワークを離す位置の上方」が、ロボット２０のロボット座標系ＲＣにおける座標（−２００，２００，−５０）によって示される位置である場合について説明する。また、図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「高速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１２６】
また、図８に示した例では、領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２は、「動かす：ワークを離す位置へ移動」と示されている。これは、図８では、当該第１動作命令Ｃ１２に対して、「ワークを離す位置」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。以下では、一例として、「ワークを離す位置」が、ロボット２０のロボット座標系ＲＣにおける座標（−２００，２００，−２００）によって示される位置である場合について説明する。また、図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「低速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１２７】
また、図８に示した例では、領域Ｒ２において上から数えて２つ目の第２動作命令Ｃ２１は、「ハンド：ワークを離す」と示されている。これは、図８では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを開かせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１２８】
また、図８に示した例では、領域Ｒ４には、プルダウンメニューＳＲと、入力欄ＩＲと、図８においてスクロールにより下方に隠されているプルダウンメニューＰＤと、図８においてスクロールにより下方に隠されているスライドバーＳＢがＧＵＩとして含まれている。
【０１２９】
図８に示した例では、プルダウンメニューＳＲには、「ジョイント」が表示されている。当該例では、「ジョイント」は、可動部Ａの動作の仕方として予め決められた複数の動作の仕方のうち、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を示している。すなわち、当該例では、プルダウンメニューＳＲでは、可動部Ａの動作の仕方として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」が選択されている。
【０１３０】
図８に示した例では、入力欄ＩＲには、可動部Ａの移動先を示す情報として「ワークを掴む位置へ移動」が入力されている。
【０１３１】
図８に示した例では隠されているが、プルダウンメニューＰＤには、「低速」が表示されている。すなわち、当該例では、可動部Ａを動作させる速度として「低速」が選択されている。
【０１３２】
ここで、図８に示した例では、領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（１００，２００，−５０）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。また、当該例では、領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（５０，２００，−２００）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。また、当該例では、領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（−２００，２００，−５０）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。また、当該例では、領域Ｒ２において上から数えて４つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（−２００，２００，−２００）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。
【０１３３】
すなわち、図８に示した領域Ｒ２に表示された作業シーケンスに基づく動作プログラムによってロボット２０を動作させた場合、ロボット２０は、「高速」で可動部Ａを「ワークを掴む位置の上方」まで動かした後、「低速」で可動部Ａを「ワークを掴む位置」まで動かし、ハンドによりワークを掴み、ハンドにより掴んだワークを可動部Ａによって「ワークを離す位置の上方」まで動かした後、「低速」で可動部Ａを「ワークを離す位置」まで動かし、ハンドによりワークを離す。このため、当該場合、ロボット２０は、ワークを掴む直前、ロボット座標系ＲＣにおけるＺ軸の正方向及び負方向のそれぞれと異なる方向へ可動部Ａを動かす。以下では、説明の便宜上、当該正方向を第１１方向と称して説明する。また、以下では、説明の便宜上、当該負方向を第１２方向と称して説明する。また、以下では、説明の便宜上、当該方向を第１３方向と称して説明する。
【０１３４】
より具体的には、ロボット制御装置４０は、図８に示した作業シーケンスに基づく動作プログラムを情報処理装置５０から取得し、取得した動作プログラムに基づいて、図９に示したフローチャートの処理を行い、ロボット２０を動作させる。図９は、図８に示した作業シーケンスに基づく動作プログラムによってロボット２０を動作させるロボット制御装置４０の処理の流れの一例を示す図である。
【０１３５】
ロボット制御装置４０は、ロボット２０が有する第１アクチュエーター〜第４アクチュエーターそれぞれの初期化を行う（ステップＳ３１０）。ステップＳ３１０の処理は、図８に示した領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１１に応じてロボット制御装置４０が行う処理である。
【０１３６】
次に、ロボット制御装置４０は、ステップＳ３３０〜ステップＳ３８０の処理の繰り返しを継続するか否かを判定する（ステップＳ３２０）。ステップＳ３２０の処理は、図８に示した領域Ｒ２において上から数えて１つ目の論理構造命令Ｃ４１に応じてロボット制御装置４０が行う処理である。ここで、ステップＳ３２０において、ロボット制御装置４０は、当該論理構造命令Ｃ４１に対応付けられた第４プロパティーによって指定される条件が満たされたか否かを判定することにより、ステップＳ３３０〜ステップＳ３８０の処理の繰り返しを継続するか否かを判定する。ロボット制御装置４０は、当該条件が満たされたと判定した場合、当該処理の繰り返しを継続しないと判定する。一方、ロボット制御装置４０は、当該条件が満たされたと判定した場合、当該処理の繰り返しを継続すると判定する。
【０１３７】
ロボット制御装置４０は、ステップＳ３３０〜ステップＳ３８０の処理の繰り返しを継続しないと判定した場合（ステップＳ３２０−ＮＯ）、処理を終了する。
【０１３８】
一方、ロボット制御装置４０は、ステップＳ３３０〜ステップＳ３８０の処理の繰り返しを継続すると判定した場合（ステップＳ３２０−ＹＥＳ）、ロボット２０を制御し、予め決められた位置のうちの図８に示した「ワークを掴む位置の上方」まで、高速で可動部Ａを移動させる（ステップＳ３３０）。ステップＳ３３０の処理は、図８に示した領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１３９】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの図８に示した「ワークを掴む位置」まで、「低速」で可動部Ａを移動させる（ステップＳ３４０）。ステップＳ３４０の処理は、図８に示した領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１４０】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせ、ハンドにワークを掴ませる（ステップＳ３５０）。ステップＳ３５０の処理は、図８に示した領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。
【０１４１】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの「ワークを離す位置の上方」まで、「高速」で可動部Ａを移動させる（ステップＳ３６０）。ステップＳ３６０の処理は、図８に示した領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１４２】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの「ワークを離す位置」まで、「低速」で可動部Ａを移動させる（ステップＳ３７０）。ステップＳ３７０の処理は、図８に示した領域Ｒ２において上から数えて４つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１４３】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを閉じさせ、ハンドにワークを離させる（ステップＳ３８０）。ステップＳ３８０の処理は、図８に示した領域Ｒ２において上から数えて２つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。ステップＳ３８０の処理が行われた後、ロボット制御装置４０は、ステップＳ３２０に遷移し、ステップＳ３３０〜ステップＳ３８０の処理の繰り返しを継続するか否かを再び判定する。
【０１４４】
このように、ロボット制御装置４０は、図８に示した作業シーケンスに基づく動作プログラムを情報処理装置５０から取得し、取得した動作プログラムに基づいて、図９に示したフローチャートの処理を行い、ロボット２０を動作させる。
【０１４５】
ここで、ロボット制御装置４０がステップＳ３３０の処理によって高速で可動部Ａを「ワークを掴む位置の上方」まで動かした後に、ロボット制御装置４０がステップＳ３４０の処理によって「高速」で可動部Ａを「ワークを掴む位置」まで動かしている。そして、「ワークを掴む位置の上方」は、ロボット座標系ＲＣにおける座標（１００，２００，−５０）によって示される位置である。また、「ワークを掴む位置」は、ロボット２０のロボット座標系ＲＣにおける座標（５０，２００，−２００）によって示される位置である。すなわち、可動部Ａは、ハンドがワークを掴む直前に、第１１方向及び第１２方向のそれぞれと異なる第１３方向へ動いている。この場合、可動部Ａは、第１２方向へ振動する。その結果、ロボット２０は、ハンドによるワークの把持を精度よく行うことができないことがある。また、ロボット２０は、ハンドが把持したワークを振動によって落としてしまう虞がある。すなわち、第１１方向及び第１２方向のそれぞれと異なる第１３方向に向けて可動部Ａを動作させる第１動作命令Ｃ１２が、ハンドを動作させる第２動作命令Ｃ２１の直前に位置する表示位置関係は、望ましくない表示位置関係である。
【０１４６】
そこで、情報処理装置５０のメモリー５２には、第１２表示位置関係情報を含む表示位置関係情報が予め記憶される。第１２表示位置関係情報は、第１２表示位置関係を示す情報のことである。第１２表示位置関係は、領域Ｒ２内に作業シーケンスとして配列された２つ以上の命令同士の表示位置関係のうち、第２方向に向けて可動部Ａを動作させる第１動作命令Ｃ１２が、ハンドを動作させる第２動作命令Ｃ２１の直前に位置する表示位置関係のことである。表示制御部５６１は、図８に示したように、領域Ｒ２内に作業シーケンスとして配列された当該第１動作命令Ｃ１２と当該第２動作命令Ｃ２１との表示位置関係と、メモリー５２に記憶された第１２表示位置関係情報が示す第１２表示位置関係とが一致した場合、表示部５５に注意喚起情報ＡＴを表示させる。図６に示した例では、注意喚起情報ＡＴは、領域Ｒ２に配列されている当該第１動作命令Ｃ１２の左隣に表示されている。なお、注意喚起情報ＡＴが表示される表示位置は、これに代えて、表示部５５上の他の表示位置であってもよい。ただし、注意喚起情報ＡＴが表示される表示位置は、領域Ｒ２内において、当該第１動作命令Ｃ１２と当該第２動作命令Ｃ２１とのうちのいずれか一方又は両方の表示位置を示すことが可能な表示位置であることが望ましい。これにより、ユーザーは、望ましくない表示位置関係となっている２つの命令のうちのいずれか一方又は両方を、容易に特定することができる。なお、当該第１２表示位置関係は、第１表示位置関係の一例である。また、当該第１２表示位置関係情報は、第１表示位置関係情報の一例である。また、当該第２動作命令Ｃ２１は、第１命令の一例である。また、当該第１動作命令Ｃ１２は、第２命令の一例である。また、第１１方向は、ワークが棚等に載置されている場合、ロボット座標系ＲＣにおけるＺ軸の正方向と負方向とのそれぞれ以外の方向であってもよい。また、第１１方向は、ロボットの設置面から離間する第１方向の一例であるとともに、第２方向の一例である。また、第１２方向は、ロボットの設置面に接近する第１方向の一例であるとともに、第２方向に対して反対の方向の一例である。また、第１３方向は、第３方向の一例である。
【０１４７】
＜望ましくない表示位置関係の具体例３と注意喚起情報の表示例３＞
以下、図１０を参照し、作業シーケンスに配列された複数の命令同士の表示位置関係のうち望ましくない表示位置関係の具体例３と、注意喚起情報の表示例３について説明する。
【０１４８】
図１０は、注意喚起情報が表示された場合における画像Ｐ１の更に他の例を示す図である。図１０に示した例では、領域Ｒ２には、上から下に向かって順に、第１動作命令Ｃ１１、論理構造命令Ｃ４１、第１動作命令Ｃ１２、第１動作命令Ｃ１２、第２動作命令Ｃ２１、第１動作命令Ｃ１２、第１動作命令Ｃ１２、第１動作命令Ｃ１２、第２動作命令Ｃ２１の９つの命令が配列されている。また、当該例では、５つの第１動作命令Ｃ１２のそれぞれと、２つの第２動作命令Ｃ２１のそれぞれと、１つの論理構造命令Ｃ４１とには、プロパティーが対応付けられている。ただし、当該例では、領域Ｒ２においてこれらのプロパティーは、折り畳み状態となっており、表示されていない。また、当該例では、領域Ｒ２において、上から数えて２つ目の第１動作命令Ｃ１２がユーザーにより選択されている。このため、領域Ｒ４には、当該第１動作命令Ｃ１２に対応付けられた３つの第１プロパティーそれぞれの内容を編集する画像が表示されている。当該３つの第１プロパティーは、図１０に示したように、可動部Ａの移動先を指定する第１プロパティーと、可動部Ａを動作させる速度を指定する第１プロパティーと、可動部Ａの動作の仕方を指定する第１プロパティーとのそれぞれである。なお、図１０に示した領域Ｒ４では、可動部Ａを動作させる速度を指定する第１プロパティーを編集する画像は、領域Ｒ４におけるスクロールにより下方にスライドされていて隠されている。
【０１４９】
また、図１０に示した例では、領域Ｒ２において上から数えて１つ目の論理構造命令Ｃ４１には、対象となる処理を繰り返し実行させる条件を指定する第４プロパティーが対応付けられている。しかしながら、前述した通り、当該例では、当該第４プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１５０】
また、図１０に示した例では、領域Ｒ２において、論理構造命令Ｃ４１によって繰り返し実行される命令、すなわち、５つの第１動作命令Ｃ１２と、２つの第２動作命令Ｃ２１とのそれぞれが、下位ノードとして論理構造命令Ｃ４１とともに表示されている。ここで、領域Ｒ２内の表示位置のうち論理構造命令Ｃ４１の下位ノードとしてこれら７つの命令が表示されている表示位置は、論理構造命令Ｃ４１に対応付けられた対応表示位置の一例である。当該対応表示位置は、領域Ｒ２内の表示位置のうち論理構造命令Ｃ４１の下位ノードとしての命令が位置する表示位置である。
【０１５１】
また、図１０に示した例では、領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２は、「動かす：ワークを掴む位置の上方へ移動」と示されている。これは、図１０では、当該第１動作命令Ｃ１２に対して、「ワークを掴む位置の上方」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。図１０では、一例として、「ワークを掴む位置の上方」が、ロボット２０のロボット座標系ＲＣにおける座標（１００，２００，−５０）によって示される位置である場合について説明する。また、図１０に示した領域Ｒ２において図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「高速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１５２】
また、図１０に示した例では、領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２は、「動かす：ワークを掴む位置へ移動」と示されている。これは、図１０では、当該第１動作命令Ｃ１２に対して、「ワークを掴む位置」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。以下では、一例として、「ワークを掴む位置」が、ロボット２０のロボット座標系ＲＣにおける座標（１００，２００，−２００）によって示される位置である場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「低速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１５３】
また、図１０に示した例では、領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１は、「ハンド：ワークを掴む」と示されている。これは、図１０では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１５４】
また、図１０に示した例では、領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２は、「動かす：上方へ退避」と示されている。これは、図１０では、当該第１動作命令Ｃ１２に対して、「上方」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。以下では、一例として、「上方」が、ロボット２０のロボット座標系ＲＣにおける座標（−１５０，２００，−５０）によって示される位置である場合について説明する。また、図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「高速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、図１０に示した領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１５５】
また、図１０に示した例では、領域Ｒ２において上から数えて４つ目の第１動作命令Ｃ１２は、「動かす：ワークを離す位置の上方へ移動」と示されている。これは、図１０では、当該第１動作命令Ｃ１２に対して、「ワークを離す位置の上方」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。以下では、一例として、「ワークを離す位置の上方」が、ロボット２０のロボット座標系ＲＣにおける座標（−２００，２００，−５０）によって示される位置である場合について説明する。また、図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「低速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、図１０に示した領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１５６】
また、図１０に示した例では、領域Ｒ２において上から数えて５つ目の第１動作命令Ｃ１２は、「動かす：ワークを離す位置へ移動」と示されている。これは、図１０では、当該第１動作命令Ｃ１２に対して、「ワークを離す位置」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。以下では、一例として、「ワークを離す位置」が、ロボット２０のロボット座標系ＲＣにおける座標（−２００，２００，−２００）によって示される位置である場合について説明する。また、図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「低速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、図１０に示した領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１５７】
また、図１０に示した例では、領域Ｒ２において上から数えて２つ目の第２動作命令Ｃ２１は、「ハンド：ワークを離す」と示されている。これは、図１０では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを開かせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１５８】
また、図１０に示した例では、領域Ｒ４には、プルダウンメニューＳＲと、入力欄ＩＲと、図１０においてスクロールにより下方に隠されているプルダウンメニューＰＤと、図１０においてスクロールにより下方に隠されているスライドバーＳＢがＧＵＩとして含まれている。なお、図１０に示した領域Ｒ４は、図８に示した領域Ｒ４と同様の構成であるため、説明を省略する。
【０１５９】
ここで、図１０に示した例では、領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（１００，２００，−５０）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。また、当該例では、領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（１００，２００，−２００）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。また、当該例では、領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（−１５０，２００，−５０）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。また、当該例では、領域Ｒ２において上から数えて４つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（−２００，２００，−５０）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。また、当該例では、領域Ｒ２において上から数えて５つ目の第１動作命令Ｃ１２には、ロボット２０のロボット座標系ＲＣにおける座標（−２００，２００，−２００）によって示される位置を、可動部Ａの移動先として指定する第１プロパティーが対応付けられている。
【０１６０】
すなわち、図１０に示した領域Ｒ２に表示された作業シーケンスに基づく動作プログラムによってロボット２０を動作させた場合、ロボット２０は、高速で可動部Ａを「ワークを掴む位置の上方」まで動かした後、「低速」で可動部Ａを「ワークを掴む位置」まで動かし、ハンドによりワークを掴み、ハンドにより掴んだワークを「高速」で可動部Ａによって「上方」まで動かす。そして、ロボット２０は、「高速」で可動部Ａを「ワークを離す位置の上方」まで動かした後、低速で可動部Ａを「ワークを離す位置」まで動かし、ハンドによりワークを離す。このため、当該場合、ワークを掴む直前に可動部Ａが動く方向は、ワークを掴んだ直後に可動部Ａが動く方向の反対方向と一致していない。
【０１６１】
より具体的には、ロボット制御装置４０は、図１０に示した作業シーケンスに基づく動作プログラムを情報処理装置５０から取得し、取得した動作プログラムに基づいて、図１１に示したフローチャートの処理を行い、ロボット２０を動作させる。図１１は、図１０に示した作業シーケンスに基づく動作プログラムによってロボット２０を動作させるロボット制御装置４０の処理の流れの一例を示す図である。
【０１６２】
ロボット制御装置４０は、ロボット２０が有する第１アクチュエーター〜第４アクチュエーターそれぞれの初期化を行う（ステップＳ４１０）。ステップＳ４１０の処理は、図１０に示した領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１１に応じてロボット制御装置４０が行う処理である。
【０１６３】
次に、ロボット制御装置４０は、ステップＳ４３０〜ステップＳ４９０の処理の繰り返しを継続するか否かを判定する（ステップＳ４２０）。ステップＳ４２０の処理は、図１０に示した領域Ｒ２において上から数えて１つ目の論理構造命令Ｃ４１に応じてロボット制御装置４０が行う処理である。ここで、ステップＳ４２０において、ロボット制御装置４０は、当該論理構造命令Ｃ４１に対応付けられた第４プロパティーによって指定される条件が満たされたか否かを判定することにより、ステップＳ４３０〜ステップＳ４９０の処理の繰り返しを継続するか否かを判定する。ロボット制御装置４０は、当該条件が満たされたと判定した場合、当該処理の繰り返しを継続しないと判定する。一方、ロボット制御装置４０は、当該条件が満たされたと判定した場合、当該処理の繰り返しを継続すると判定する。
【０１６４】
ロボット制御装置４０は、ステップＳ４３０〜ステップＳ４９０の処理の繰り返しを継続しないと判定した場合（ステップＳ４２０−ＮＯ）、処理を終了する。
【０１６５】
一方、ロボット制御装置４０は、ステップＳ４３０〜ステップＳ４９０の処理の繰り返しを継続すると判定した場合（ステップＳ４２０−ＹＥＳ）、ロボット２０を制御し、予め決められた位置のうちの図１０に示した「ワークを掴む位置の上方」まで、高速で可動部Ａを移動させる（ステップＳ４３０）。ステップＳ４３０の処理は、図１０に示した領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１６６】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの図１０に示した「ワークを掴む位置」まで、「低速」で可動部Ａを移動させる（ステップＳ４４０）。ステップＳ４４０の処理は、図１０に示した領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１６７】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせ、ハンドにワークを掴ませる（ステップＳ４５０）。ステップＳ４５０の処理は、図１０に示した領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。
【０１６８】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの「上方」まで、「高速」で可動部Ａを移動させる（ステップＳ４６０）。ステップＳ４６０の処理は、図１０に示した領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１６９】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの「ワークを離す位置の上方」まで、「高速」で可動部Ａを移動させる（ステップＳ４７０）。ステップＳ４７０の処理は、図１０に示した領域Ｒ２において上から数えて４つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１７０】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの「ワークを離す位置」まで、「低速」で可動部Ａを移動させる（ステップＳ４８０）。ステップＳ４８０の処理は、図１０に示した領域Ｒ２において上から数えて５つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１７１】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを閉じさせ、ハンドにワークを離させる（ステップＳ４９０）。ステップＳ４９０の処理は、図１０に示した領域Ｒ２において上から数えて２つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。ステップＳ４９０の処理が行われた後、ロボット制御装置４０は、ステップＳ４２０に遷移し、ステップＳ４３０〜ステップＳ４９０の処理の繰り返しを継続するか否かを再び判定する。
【０１７２】
このように、ロボット制御装置４０は、図１０に示した作業シーケンスに基づく動作プログラムを情報処理装置５０から取得し、取得した動作プログラムに基づいて、図１１に示したフローチャートの処理を行い、ロボット２０を動作させる。
【０１７３】
ここで、ロボット制御装置４０がステップＳ４４０の処理によって「高速」で可動部Ａを「ワークを掴む位置」まで前述の第１２方向へ動かした後に、ロボット制御装置４０がステップＳ４６０の処理によって「高速」で可動部Ａを「上方」まで前述の第１１方向へ動かしている。なお、ステップＳ４４０の処理では、可動部Ａは、ロボット座標系ＲＣにおける座標（１００，２００，−５０）からロボット座標系ＲＣにおける座標（１００，２００，−２００）まで第１２方向へ動いている。また、ステップＳ４６０の処理では、可動部Ａは、ロボット座標系ＲＣにおける座標（１００，２００，−２００）からロボット座標系ＲＣにおける座標（−１５０，２００，−５０）まで第１１方向へ動いている。このように、ハンドがワークを掴んだ直後に可動部Ａが動く方向が、ハンドがワークを掴む直前に可動部Ａが動く方向の反対方向と一致しない場合、ロボット２０は、他の物体と干渉してしまう虞がある。これは、ハンドがワークを掴む直前に可動部Ａが動いている方向が、ロボット２０が他の物体と干渉しない方向である可能性があるためである。すなわち、ハンドがワークを掴む直前に可動部Ａをある方向に向かって動作させる第１動作命令Ｃ１２が、ハンドを動作させる第２動作命令Ｃ２１の直前に位置する表示位置関係であり、且つ、ハンドがワークを掴んだ直後に可動部Ａを当該方向と異なる方向に向かって動作させる第１動作命令Ｃ１２が、当該第２動作命令Ｃ２１の直後に位置する表示位置関係は、望ましくない表示位置関係である。
【０１７４】
そこで、情報処理装置５０のメモリー５２には、第２表示位置関係情報を含む表示位置関係情報が予め記憶される。第２表示位置関係情報は、第２表示位置関係を示す情報のことである。第２表示位置関係は、領域Ｒ２内に作業シーケンスとして配列された２つ以上の命令同士の表示位置関係のうち、ハンドがワークを掴む直前に可動部Ａをある方向に向かって動作させる第１動作命令Ｃ１２が、ハンドを動作させる第２動作命令Ｃ２１の直前に位置する表示位置関係であり、且つ、ハンドがワークを掴んだ直後に可動部Ａを当該方向と異なる方向に向かって動作させる第１動作命令Ｃ１２が、当該第２動作命令Ｃ２１の直後に位置する表示位置関係のことである。表示制御部５６１は、図１０に示したように、領域Ｒ２内に作業シーケンスとして配列されたこれら２つの第１動作命令Ｃ１２と当該第２動作命令Ｃ２１との表示位置関係と、メモリー５２に記憶された第２表示位置関係情報が示す第２表示位置関係とが一致した場合、表示部５５に注意喚起情報ＡＴを表示させる。図１０に示した例では、注意喚起情報ＡＴは、領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２の左隣に表示されている。なお、注意喚起情報ＡＴが表示される表示位置は、これに代えて、表示部５５上の他の表示位置であってもよい。ただし、注意喚起情報ＡＴが表示される表示位置は、領域Ｒ２内において、ハンドがワークを掴む直前に可動部Ａをある方向に向かって動作させる第１動作命令Ｃ１２と、ハンドがワークを掴んだ直後に可動部Ａを当該方向と異なる方向に向かって動作させる第１動作命令Ｃ１２と、当該第２動作命令Ｃ２１とのうちのいずれかの表示位置を示すことが可能な表示位置であることが望ましい。これにより、ユーザーは、望ましくない表示位置関係となっている３つの命令のうちのいずれかを、容易に特定することができるとともに、迅速に特定することができる。なお、当該第２動作命令Ｃ２１は、第１命令の一例である。また、ハンドがワークを掴む直前に可動部Ａをある方向に向かって動作させる第１動作命令Ｃ１２は、第２命令の一例である。また、ハンドがワークを掴んだ直後に可動部Ａを当該方向と異なる方向に向かって動作させる第１動作命令Ｃ１２は、第３命令の一例である。
【０１７５】
＜望ましくない表示位置関係の具体例４と注意喚起情報の表示例４＞
以下、図１２を参照し、作業シーケンスに配列された複数の命令同士の表示位置関係のうち望ましくない表示位置関係の具体例４と、注意喚起情報の表示例４について説明する。
【０１７６】
図１２は、注意喚起情報が表示された場合における画像Ｐ１の更に更に他の例を示す図である。図１２に示した例では、領域Ｒ２には、上から下に向かって順に、第１動作命令Ｃ１１、論理構造命令Ｃ４１、第１動作命令Ｃ１２、第１動作命令Ｃ１２、第２動作命令Ｃ２１、第１動作命令Ｃ１２、第１動作命令Ｃ１２、第２動作命令Ｃ２１、第２動作命令Ｃ２１の９つの命令が配列されている。また、当該例では、４つの第１動作命令Ｃ１２のそれぞれと、３つの第２動作命令Ｃ２１のそれぞれと、１つの論理構造命令Ｃ４１とには、プロパティーが対応付けられている。ただし、当該例では、領域Ｒ２においてこれらのプロパティーは、折り畳み状態となっており、表示されていない。また、当該例では、領域Ｒ２において、上から数えて３つ目の第２動作命令Ｃ２１がユーザーにより選択されている。このため、領域Ｒ４には、当該第２動作命令Ｃ２１に対応付けられた１つの第２プロパティーそれぞれの内容を編集する画像が表示されている。当該１つの第２プロパティーは、図１２に示したように、ハンドの動作としてハンドの開閉を指定する第２プロパティーである。
【０１７７】
また、図１２に示した例では、領域Ｒ２において上から数えて１つ目の論理構造命令Ｃ４１には、対象となる処理を繰り返し実行させる条件を指定する第４プロパティーが対応付けられている。しかしながら、前述した通り、当該例では、当該第４プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１７８】
また、図１２に示した例では、領域Ｒ２において、論理構造命令Ｃ４１によって繰り返し実行される命令、すなわち、４つの第１動作命令Ｃ１２と、２つの第２動作命令Ｃ２１とのそれぞれが、下位ノードとして論理構造命令Ｃ４１とともに表示されている。ここで、領域Ｒ２内の表示位置のうち論理構造命令Ｃ４１の下位ノードとしてこれら６つの命令が表示されている表示位置は、論理構造命令Ｃ４１に対応付けられた対応表示位置の一例である。当該対応表示位置は、領域Ｒ２内の表示位置のうち論理構造命令Ｃ４１の下位ノードとしての命令が位置する表示位置である。
【０１７９】
また、図１２に示した例では、領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２は、「動かす：ワークを掴む位置の上方へ移動」と示されている。これは、図８では、当該第１動作命令Ｃ１２に対して、「ワークを掴む位置の上方」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。また、領域Ｒ２において図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「高速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１８０】
また、図１２に示した例では、領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２は、「動かす：ワークを掴む位置へ移動」と示されている。これは、図１２では、当該第１動作命令Ｃ１２に対して、「ワークを掴む位置」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。また、領域Ｒ２において図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「低速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１８１】
また、図１２に示した例では、領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１は、「ハンド：ワークを掴む」と示されている。これは、図１２では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１８２】
また、図１２に示した例では、領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２は、「動かす：ワークを離す位置の上方へ移動」と示されている。これは、図１２では、当該第１動作命令Ｃ１２に対して、「ワークを離す位置の上方」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。また、図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「高速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１８３】
また、図１２に示した例では、領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２は、「動かす：ワークを離す位置へ移動」と示されている。これは、図１２では、当該第１動作命令Ｃ１２に対して、「ワークを離す位置」を可動部Ａの移動先として指定する第１プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第１プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。また、図示されていないが、以下では、一例として、可動部Ａを動作させる速度として「低速」を指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。また、領域Ｒ２において図示されていないが、以下では、一例として、「可動部Ａの各関節の回動角を最小とする制御による動作の仕方」を、可動部Ａの動作の仕方として指定する第１プロパティーが当該第１動作命令Ｃ１２に対応付けられている場合について説明する。
【０１８４】
また、図１２に示した例では、領域Ｒ２において上から数えて２つ目の第２動作命令Ｃ２１は、「ハンド：ワークを離す」と示されている。これは、図１２では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを開かせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１８５】
また、図１２に示した例では、領域Ｒ２において上から数えて３つ目の第２動作命令Ｃ２１は、「ハンド：閉じる」と示されている。これは、図１２では、当該第２動作命令Ｃ２１に対して、「ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせること」をハンドの動作として指定する第２プロパティーが対応付けられていることを示している。しかしながら、前述した通り、当該例では、当該第２プロパティーは、折り畳み状態となっており、領域Ｒ２において隠されている。
【０１８６】
また、図１２に示した例では、領域Ｒ４には、プルダウンメニューＨＲがＧＵＩとして含まれている。
【０１８７】
図１２に示した例では、プルダウンメニューＨＲには、「閉じる」が表示されている。当該例では、「閉じる」は、ハンドの動作として予め決められた複数の動作のうち、「ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを開かせること」を示している。すなわち、当該例では、プルダウンメニューＨＲでは、ハンドの動作として、「ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせること」が選択されている。
【０１８８】
ここで、図１２に示した例では、領域Ｒ２に表示された作業シーケンスにおいて繰り返し実行される複数の命令の中において、ハンドを開かせる第２動作命令Ｃ２１の数と、ハンドを閉じさせる第２動作命令Ｃ２１の数とが異なる数になっている。すなわち、当該例では、当該複数の命令の中において、ハンドを開かせる第２動作命令Ｃ２１のそれぞれは、ハンドを閉じさせる第２動作命令Ｃ２１と一対一に対応付けられていない。この場合、当該作業シーケンスに基づく動作プログラムによって制御されるロボット２０は、繰り返し行う動作中において、ハンドが一度離したワークを再びハンドが掴む動作、ハンドが一度掴んだワークを再びハンドが離す動作、ハンドが開いている状態においてハンドを更に開こうとする動作、ハンドが閉じている状態においてハンドを更に閉じようとする動作等を行うことになる。
【０１８９】
より具体的には、ロボット制御装置４０は、図１２に示した作業シーケンスに基づく動作プログラムを情報処理装置５０から取得し、取得した動作プログラムに基づいて、図１３に示したフローチャートの処理を行い、ロボット２０を動作させる。図１３は、図１２に示した作業シーケンスに基づく動作プログラムによってロボット２０を動作させるロボット制御装置４０の処理の流れの一例を示す図である。
【０１９０】
ロボット制御装置４０は、ロボット２０が有する第１アクチュエーター〜第４アクチュエーターそれぞれの初期化を行う（ステップＳ５１０）。ステップＳ５１０の処理は、図１２に示した領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１１に応じてロボット制御装置４０が行う処理である。
【０１９１】
次に、ロボット制御装置４０は、ステップＳ５３０〜ステップＳ５９０の処理の繰り返しを継続するか否かを判定する（ステップＳ５２０）。ステップＳ５２０の処理は、図１２に示した領域Ｒ２において上から数えて１つ目の論理構造命令Ｃ４１に応じてロボット制御装置４０が行う処理である。ここで、ステップＳ５２０において、ロボット制御装置４０は、当該論理構造命令Ｃ４１に対応付けられた第４プロパティーによって指定される条件が満たされたか否かを判定することにより、ステップＳ５３０〜ステップＳ５９０の処理の繰り返しを継続するか否かを判定する。ロボット制御装置４０は、当該条件が満たされたと判定した場合、当該処理の繰り返しを継続しないと判定する。一方、ロボット制御装置４０は、当該条件が満たされたと判定した場合、当該処理の繰り返しを継続すると判定する。
【０１９２】
ロボット制御装置４０は、ステップＳ５３０〜ステップＳ５９０の処理の繰り返しを継続しないと判定した場合（ステップＳ５２０−ＮＯ）、処理を終了する。
【０１９３】
一方、ロボット制御装置４０は、ステップＳ５３０〜ステップＳ５９０の処理の繰り返しを継続すると判定した場合（ステップＳ５２０−ＹＥＳ）、ロボット２０を制御し、予め決められた位置のうちの図８に示した「ワークを掴む位置の上方」まで、「高速」で可動部Ａを移動させる（ステップＳ５３０）。ステップＳ５３０の処理は、図１２に示した領域Ｒ２において上から数えて１つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１９４】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの図８に示した「ワークを掴む位置」まで、「低速」で可動部Ａを移動させる（ステップＳ５４０）。ステップＳ５４０の処理は、図１２に示した領域Ｒ２において上から数えて２つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１９５】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせ、ハンドにワークを掴ませる（ステップＳ５５０）。ステップＳ５５０の処理は、図１２に示した領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。
【０１９６】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの「ワークを離す位置の上方」まで、「高速」で可動部Ａを移動させる（ステップＳ５６０）。ステップＳ５６０の処理は、図１２に示した領域Ｒ２において上から数えて３つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１９７】
次に、ロボット制御装置４０は、ロボット２０を制御し、予め決められた位置のうちの「ワークを離す位置」まで、「低速」で可動部Ａを移動させる（ステップＳ５７０）。ステップＳ５７０の処理は、図１２に示した領域Ｒ２において上から数えて４つ目の第１動作命令Ｃ１２に応じてロボット制御装置４０が行う処理である。
【０１９８】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに遠ざかる方向に移動させてハンドを閉じさせ、ハンドにワークを離させる（ステップＳ５８０）。ステップＳ５８０の処理は、図１２に示した領域Ｒ２において上から数えて２つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。
【０１９９】
次に、ロボット制御装置４０は、ハンドを制御し、ハンドが有する複数の指部を互いに近づく方向に移動させてハンドを閉じさせる（ステップＳ５９０）。ステップＳ５９０の処理は、図１２に示した領域Ｒ２において上から数えて３つ目の第２動作命令Ｃ２１に応じてロボット制御装置４０が行う処理である。ステップＳ５９０の処理が行われた後、ロボット制御装置４０は、ステップＳ５２０に遷移し、ステップＳ５３０〜ステップＳ５９０の処理の繰り返しを継続するか否かを再び判定する。
【０２００】
このように、ロボット制御装置４０は、図１２に示した作業シーケンスに基づく動作プログラムを情報処理装置５０から取得し、取得した動作プログラムに基づいて、図１３に示したフローチャートの処理を行い、ロボット２０を動作させる。
【０２０１】
ここで、ステップＳ５２０〜ステップＳ５９０の繰り返し処理において、ロボット制御装置４０は、ステップＳ５５０においてハンドにワークを掴ませ、ステップＳ５８０においてハンドにワークを離させているにもかかわらず、ステップＳ５９０においてハンドを閉じさせている。この場合、ロボット２０は、ステップＳ５８０においてハンドが離したワークを、ステップＳ５９０においてハンドに掴み直させてしまう。その結果、当該繰り返し処理において、ロボット２０は、例えば、ハンドによって掴んだワークを、次にハンドに掴ませるワークに干渉させてしまう。すなわち、ハンドを閉じさせる第２動作命令Ｃ２１が論理構造命令Ｃ４１に対応付けられた対応表示位置に位置しており、且つ、ハンドを開かせる第２動作命令Ｃ２１が論理構造命令Ｃ４１に対応付けられた対応表示位置に位置していない表示位置関係は、望ましくない表示位置関係である。また、ハンドを開かせる第２動作命令Ｃ２１が論理構造命令Ｃ４１に対応付けられた対応表示位置に位置しており、且つ、ハンドを閉じさせる第２動作命令Ｃ２１が論理構造命令Ｃ４１に対応付けられた対応表示位置に位置していない表示位置関係は、望ましくない表示位置関係である。より平易に換言すると、論理構造命令Ｃ４１によって繰り返し実行される命令に第２動作命令Ｃ２１が含まれる場合において、ハンドを閉じさせる第２動作命令Ｃ２１とハンドを開かせる第２動作命令Ｃ２１とが一対一に対応しない表示位置関係は、望ましくない表示位置関係である。
【０２０２】
そこで、情報処理装置５０のメモリー５２には、第３表示位置関係情報を含む表示位置関係情報が予め記憶される。第３表示位置関係情報は、第３表示位置関係を示す情報のことである。第３表示位置関係は、ハンドを閉じさせる第２動作命令Ｃ２１が論理構造命令Ｃ４１に対応付けられた対応表示位置に位置しており、且つ、ハンドを開かせる第２動作命令Ｃ２１が論理構造命令Ｃ４１に対応付けられた対応表示位置に位置していない表示位置関係のことである。また、第３表示位置関係は、ハンドを開かせる第２動作命令Ｃ２１が論理構造命令Ｃ４１に対応付けられた対応表示位置に位置しており、且つ、ハンドを閉じさせる第２動作命令Ｃ２１が論理構造命令Ｃ４１に対応付けられた対応表示位置に位置していない表示位置関係のことでもある。表示制御部５６１は、図１２に示したように、論理構造命令Ｃ４１と、論理構造命令Ｃ４１に対応付けられた対応表示位置に位置している１以上の第２動作命令Ｃ２１との表示位置関係が、メモリー５２に記憶された第３表示位置関係情報が示す第３表示位置関係とが一致した場合、表示部５５に注意喚起情報ＡＴを表示させる。図１２に示した例では、注意喚起情報ＡＴは、領域Ｒ２において上から数えて１つ目の第２動作命令Ｃ２１の左隣に注意喚起情報ＡＴ１として表示されている。また、当該例では、注意喚起情報ＡＴは、領域Ｒ２において上から数えて３つ目の第２動作命令Ｃ２１の左隣に注意喚起情報ＡＴ２として表示されている。なお、注意喚起情報ＡＴが表示される表示位置は、これに代えて、表示部５５上の他の表示位置であってもよい。また、注意喚起情報ＡＴが表示される数は、これに代えて、１つのみであってもよく、３つ以上であってもよい。これにより、ユーザーは、望ましくない表示位置関係となっている２つ以上の命令のうちの一部又は全部を、容易に特定することができる。なお、論理構造命令Ｃ４１によって繰り返し実行される第２動作命令Ｃ２１は、第１命令及び第４命令それぞれの一例である。また、当該論理構造命令Ｃ４１は、第２命令の一例である。
【０２０３】
なお、図１２に示した論理構造命令Ｃ４１は、論理構造命令Ｃ４２に代えても、同様の問題が生じる。このため、この場合であっても、情報処理装置５０は、同様の方法によって注意喚起情報を表示させることができる。
【０２０４】
＜注意喚起情報が表示されている場合において情報処理装置が行う処理＞
以下、図１４を参照し、表示部５５に注意喚起情報ＡＴが表示されている場合において情報処理装置５０が行う処理について説明する。図１４は、表示部５５に注意喚起情報ＡＴが表示されている場合において情報処理装置５０が行う処理の流れの一例を示す図である。以下では、一例として、当該処理のうち、情報処理装置５０が動作プログラムの生成を開始させない処理について説明する。
【０２０５】
生成部５６３は、ボタンＢ２に対して操作が行われるまで待機する（ステップＳ６１０）。
【０２０６】
生成部５６３は、ボタンＢ２に対して操作が行われたと判定した場合（ステップＳ６１０−ＹＥＳ）、画像Ｐ１上に注意喚起情報ＡＴが表示されているか否かを判定する（ステップＳ６２０）。
【０２０７】
生成部５６３は、画像Ｐ１上に注意喚起情報ＡＴが表示されていないと判定した場合（ステップＳ６２０−ＮＯ）、領域Ｒ２内に複数の命令が配列された作業シーケンスに基づいて、動作プログラムを生成する（ステップＳ６３０）。
【０２０８】
次に、出力部５６５は、ステップＳ６３０において生成部５６３が生成した動作プログラムを、ロボット制御装置４０に出力して実行させ（ステップＳ６４０）、処理を終了する。
【０２０９】
一方、表示制御部５６１は、画像Ｐ１上に注意喚起情報ＡＴが表示されていると生成部５６３が判定した場合（ステップＳ６２０−ＹＥＳ）、警告情報を表示部５５に表示させる（ステップＳ６５０）。ここで、警告情報は、注意喚起情報ＡＴの表示が消えるように、領域Ｒ２内に配列された複数の命令同士の表示位置関係を修正することを促す警告を示す情報のことである。当該情報は、メッセージであってもよく、画像であってもよい。ステップＳ６５０の処理が行われた後、生成部５６３は、ステップＳ６１０に遷移し、ボタンＢ２に対して操作が行われるまで再び待機する。
【０２１０】
このように、情報処理装置５０は、表示部５５に注意喚起情報ＡＴが表示されている場合、情報処理装置５０が動作プログラムの生成を開始させない。これにより、情報処理装置５０は、当該場合において領域Ｒ２内に複数の命令が配列された作業シーケンスに基づく動作プログラムを、ロボット制御装置４０に実行させてしまうことを抑制することができる。すなわち、制御装置３０は、表示部５５に注意喚起情報ＡＴが表示されている場合、表示部５５における注意喚起情報ＡＴの表示を削除するまで、当該作業シーケンスを実行不可能である。これにより、制御装置３０は、ユーザーにより作成された作業シーケンスによってロボット２０に意図しない動作を行わせてしまうことを、より確実に抑制することができる。具体的には、例えば、制御装置３０は、ユーザーにより作成された作業シーケンスによってロボット２０が他の物体と干渉してしまうことを、より確実に抑制することができる。
【０２１１】
なお、上記において説明した情報処理装置５０は、ユーザーから受け付けた操作に応じて表示位置関係情報を設定する設定部を備える構成であってもよい。これにより、情報処理装置５０は、領域Ｒ２内に配列された複数の命令のうち２つ以上の命令同士の表示位置関係のいずれかが、ユーザーが望ましくないと考える表示位置関係と一致しているか否かに応じて、注意喚起情報ＡＴを表示部５５に表示させることができる。
【０２１２】
また、上記において説明した表示位置関係情報には、第１１表示位置関係情報と、第１２表示位置関係情報と、第２表示位置関係情報と、第３表示位置関係情報とのうちの一部又は全部が含まれる構成であってもよい。
また、上記において説明した表示位置関係情報には、第１１表示位置関係情報と、第１２表示位置関係情報と、第２表示位置関係情報と、第３表示位置関係情報との一部又は全部に代えて、他の表示位置関係を示す情報が含まれる構成であってもよい。
【０２１３】
以上のように、制御装置は、第１命令及び第２命令を含む複数の命令が配列された作業シーケンスに基づいて、ロボットを制御する制御装置であって、作業シーケンスを表示部に表示する表示制御部と、表示部に表示された作業シーケンスにおける第１命令の表示位置と、表示部に表示された作業シーケンスにおける第２命令の表示位置との相対的な第１表示位置関係を示す第１表示位置関係情報を含む表示位置関係情報を記憶する記憶部と、を備え、表示制御部は、作業シーケンスにおいて第１命令と第２命令との相対的な表示位置関係と、記憶部に記憶された第１表示位置関係情報が示す第１表示位置関係とが一致した場合、表示部に注意喚起情報を表示させ、第１命令は、ハンドを動作させる命令である。これにより、制御装置は、ユーザーにより作成された作業シーケンスによってロボットが他の物体と干渉してしまうことを抑制することができる。
【０２１４】
また、制御装置では、第１表示位置関係情報が示す第１表示位置関係は、表示部に表示された作業シーケンスにおいて第２命令が第１命令の直前に位置する表示位置関係である、構成が用いられてもよい。
【０２１５】
また、制御装置では、第２命令は、ロボットが有する可動部を、所定の速度よりも速く移動させる命令である、構成が用いられてもよい。
【０２１６】
また、制御装置では、所定の速度は、予め決められた互いに異なる複数の速度のうちの最も速い速度である、構成が用いられてもよい。
【０２１７】
また、制御装置では、ロボットは、可動部と、可動部に設けられ、ロボットの設置面に接近又は離間する第１方向に移動するシャフトと、を有するスカラロボットであり、第２命令は、可動部に設けられたシャフトを第１方向に移動させる命令である、構成が用いられてもよい。
【０２１８】
また、制御装置では、複数の命令には、第３命令が含まれており、表示位置関係情報は、第１命令と、第２命令と、第３命令との相対的な第２表示位置関係を示す第２表示位置関係情報を含み、第２命令は、ロボットが有する可動部を第２方向へ移動させる命令であり、第３命令は、ロボットが有する可動部を、第２方向と、第２方向に対して反対の方向とのいずれとも異なる第３方向へ移動させる命令であり、第２表示位置関係情報が示す第２表示位置関係は、表示部に表示された作業シーケンスにおいて第２命令が第１命令の直前に位置する表示位置関係であり、且つ、表示部に表示された作業シーケンスにおいて第３命令が第１命令の直後に位置する表示位置関係であり、表示制御部は、作業シーケンスにおいて第１命令と第２命令と第３命令との相対的な表示位置関係と、記憶部に記憶された第２表示位置関係情報が示す第２表示位置関係とが一致した場合、表示部に注意喚起情報を表示させる、構成が用いられてもよい。
【０２１９】
また、制御装置では、複数の命令には、第４命令が含まれており、表示位置関係情報は、第１命令と、第２命令と、第４命令との相対的な第３表示位置関係を示す第３表示位置関係情報を含み、第２命令は、作業シーケンスにおける表示位置のうち第２命令に対応付けられた対応表示位置に位置する１以上の命令を繰り返させる命令であり、第１命令は、当該１以上の命令に含まれており、且つ、ハンドの開又は閉のうちの一方をハンドに行わせる命令であり、第４命令は、ハンドの開又は閉のうちの他方をハンドに行わせる命令であり、第３表示位置関係情報が示す第３表示位置関係は、第１命令が前記対応表示位置に位置しており、且つ、第４命令が対応表示位置に位置していない表示位置関係であり、表示制御部は、作業シーケンスにおいて第１命令と第２命令と第４命令との相対的な表示位置関係と、記憶部に記憶された第３表示位置関係情報が示す第３表示位置関係とが一致した場合、表示部に注意喚起情報を表示させる、構成が用いられてもよい。
【０２２０】
また、制御装置は、ユーザーから受け付けた操作に応じて前記表示位置関係情報を設定する設定部を備える、構成が用いられてもよい。
【０２２１】
また、制御装置は、表示部に注意喚起情報が表示されている場合、表示部における注意喚起情報の表示を削除するまで、作業シーケンスは実行不可能である、構成が用いられてもよい。
【０２２２】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０２２３】
また、以上に説明した装置における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。ここで、当該装置は、例えば、ロボット２０、制御装置３０、ロボット制御装置４０、情報処理装置５０等である。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。
【０２２４】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワークや電話回線等の通信回線のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル又は差分プログラムであってもよい。
【符号の説明】
【０２２５】
１…ロボットシステム、２０…ロボット、３０…制御装置、４０…ロボット制御装置、５０…情報処理装置、５１…プロセッサー、５２…メモリー、５３…入力受付部、５４…通信部、５５…表示部、５６…制御部、５６１…表示制御部、５６３…生成部、５６５…出力部、Ａ…可動部、Ａ１…第１アーム、Ａ２…第２アーム、ＡＴ、ＡＴ１、ＡＴ２…注意喚起情報、Ｂ…基台、ＲＣ…ロボット座標系、Ｓ…シャフト
【図１】
2020121389.tif 000003
【図２】
2020121389.tif 000004
【図３】
2020121389.tif 000005
【図４】
2020121389.tif 000006
【図５】
2020121389.tif 000007
【図６】
2020121389.tif 000008
【図７】
2020121389.tif 000009
【図８】
2020121389.tif 000010
【図９】
2020121389.tif 000011
【図１０】
2020121389.tif 000012
【図１１】
2020121389.tif 000013
【図１２】
2020121389.tif 000014
【図１３】
2020121389.tif 000015
【図１４】
2020121389.tif 000016