(57)【要約】【課題】ユーザーによるロボットの作業領域の決定を補助することができるロボット制御装置を提供すること。【解決手段】複数の関節を有する可動部を備えるロボットを制御するロボット制御装置であって、前記ロボットの第１所定位置が特異点を通過しないように前記ロボットの第２所定位置が移動可能な領域を表示部に表示する表示制御部を備える、ロボット制御装置。【選択図】図７
2018111155.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を有する可動部を備えるロボットを制御するロボット制御装置であって、
前記ロボットの第１所定位置が特異点を通過しないように前記ロボットの第２所定位置が移動可能な領域を表示部に表示する表示制御部を備える、
ロボット制御装置。
【請求項２】
前記第１所定位置は、前記第２所定位置と同じ位置である、
請求項１に記載のロボット制御装置。
【請求項３】
前記ロボットを制御するロボット制御部を備え、
前記ロボット制御部は、前記領域において、連続経路制御によって前記第２所定位置を動かす、
請求項１又は２に記載のロボット制御装置。
【請求項４】
前記ロボット制御部は、対象物が撮像された撮像画像に基づいて算出された前記対象物の姿勢に基づいて連続経路制御における経路を補正し、補正した前記経路に沿って連続経路制御により前記第２所定位置を動かす、
請求項３に記載のロボット制御装置。
【請求項５】
前記ロボットの作業領域は、前記領域の内側である、
請求項１から４のうちいずれか一項に記載のロボット制御装置。
【請求項６】
前記ロボットには、吐出部が設けられている、
請求項１から５のうちいずれか一項に記載のロボット制御装置。
【請求項７】
前記ロボットには、保持部が設けられている、
請求項１から６のうちいずれか一項に記載のロボット制御装置。
【請求項８】
前記ロボットには、力検出部が設けられている、
請求項１から７のうちいずれか一項に記載のロボット制御装置。
【請求項９】
前記ロボットは、第ｎ（ｎは１以上の整数）回動軸周りに回動可能な第ｎアームと、
前記第ｎアームに、前記第ｎ回動軸の軸方向と異なる軸方向である第（ｎ＋１）回動軸周りに回動可能に設けられた第（ｎ＋１）アームと、
を有し、
前記第（ｎ＋１）回動軸の軸方向から見て、前記第ｎアームと前記第（ｎ＋１）アームとが重なることが可能である、
請求項１から８のうちいずれか一項に記載のロボット制御装置。
【請求項１０】
前記第ｎアームの長さは、前記第（ｎ＋１）アームの長さよりも長い、
請求項９に記載のロボット制御装置。
【請求項１１】
前記第ｎアーム（ｎは１である）は、基台に設けられている、
請求項９又は１０に記載のロボット制御装置。
【請求項１２】
前記ロボットは、架台に設けられている、
請求項１から１１のうちいずれか一項に記載のロボット制御装置。
【請求項１３】
請求項１から１２のうちいずれか一項に記載のロボット制御装置に制御される、
ロボット。
【請求項１４】
請求項１から１２のうちいずれか一項に記載のロボット制御装置と、
前記ロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット制御装置、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
ロボットに所定の作業を行わせる技術の研究や開発が行われている。
【０００３】
これに関し、連続経路制御（ＣＰ（Continuous  Path）制御）による動作である連続経路動作をロボットが備える複数の関節のそれぞれに行わせることによって当該ロボットに所定の作業を行わせる技術が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１４７３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、連続経路動作時においてロボットの姿勢が特異姿勢に近づいた場合、ロボットが備える複数の関節のうちの少なくとも１つの速度（すなわち、回動速度又は角速度）が限界速度を超えて回動することがある。特異姿勢は、ロボットのＰ点が特異点と一致した場合におけるロボットの姿勢のことである。また、Ｐ点は、ロボットの位置及び姿勢を表す仮想的な点のことであり、当該複数の関節それぞれの回動角に基づいて位置及び姿勢を算出可能な点のことである。限界速度を超えて回動し続けた関節には、不具合が生じる可能性がある。このため、当該場合、ロボットは、エラーが発生したと判定し、停止する場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、複数の関節を有する可動部を備えるロボットを制御するロボット制御装置であって、前記ロボットの第１所定位置が特異点を通過しないように前記ロボットの第２所定位置が移動可能な領域を表示部に表示する表示制御部を備える、ロボット制御装置である。
この構成により、ロボット制御装置は、ロボットの第１所定位置が特異点を通過しないようにロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置は、ユーザーによるロボットの作業領域の決定を補助することができる。
【０００７】
また、本発明の他の態様は、ロボット制御装置において、前記第１所定位置は、前記第２所定位置と同じ位置である、構成が用いられてもよい。
この構成により、ロボット制御装置では、第１所定位置は、第２所定位置と同じ位置である。これにより、ロボット制御装置は、第１所定位置が移動可能な領域を、ロボットの作業領域の候補としてユーザーに提供することができる。
【０００８】
また、本発明の他の態様は、ロボット制御装置において、前記ロボットを制御するロボット制御部を備え、前記ロボット制御部は、前記領域において、連続経路制御によって前記第２所定位置を動かす、構成が用いられてもよい。
この構成により、ロボット制御装置は、ロボットの第１所定位置が特異点を通過しないように第２所定位置が移動可能な領域において、連続経路制御によって第２所定位置を動かす。これにより、ロボット制御装置は、第１所定位置が特異点を通過しないように第２所定位置が移動可能な領域をロボットの作業領域とし、連続経路制御による所定の作業をロボットに行わせることができる。
【０００９】
また、本発明の他の態様は、ロボット制御装置において、前記ロボット制御部は、対象物が撮像された撮像画像に基づいて算出された前記対象物の姿勢に基づいて連続経路制御における経路を補正し、補正した前記経路に沿って連続経路制御により前記第２所定位置を動かす、構成が用いられてもよい。
この構成により、ロボット制御装置は、対象物が撮像された撮像画像に基づいて算出された対象物の姿勢に基づいて連続経路制御における経路を補正し、補正した当該経路に沿って連続経路制御により第２所定位置を動かす。これにより、ロボット制御装置は、対象物の姿勢が所望の姿勢からずれた場合であっても、ロボットに所定の作業を精度よく行わせることができる。
【００１０】
また、本発明の他の態様は、ロボット制御装置において、前記ロボットの作業領域は、前記領域の内側である、構成が用いられてもよい。
この構成により、ロボット制御装置では、ロボットの作業領域は、ロボットの第１所定位置が特異点を通過しないようにロボットの第２所定位置が移動可能な領域の内側である。これにより、ロボット制御装置は、第１所定位置が特異点を通過しないように第２所定位置が移動可能な領域の内側において所定の作業をロボットに行わせることができる。
【００１１】
また、本発明の他の態様は、ロボット制御装置において、前記ロボットには、吐出部が設けられている、構成が用いられてもよい。
この構成により、ロボット制御装置は、吐出部が設けられているロボットの第１所定位置が特異点を通過しないように当該ロボットの第２所定位置が移動可能な領域を表示する。吐出部が設けられているロボットの作業領域のユーザーによる決定を補助することができる。
【００１２】
また、本発明の他の態様は、ロボット制御装置において、前記ロボットには、保持部が設けられている、構成が用いられてもよい。
この構成により、ロボット制御装置は、保持部が設けられているロボットの第１所定位置が特異点を通過しないように当該ロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置は、保持部が設けられているロボットの作業領域のユーザーによる決定を補助することができる。
【００１３】
また、本発明の他の態様は、ロボット制御装置において、前記ロボットには、力検出部が設けられている、構成が用いられてもよい。
この構成により、ロボット制御装置は、力検出部が設けられているロボットの第１所定位置が特異点を通過しないように当該ロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置は、力検出部が設けられているロボットの作業領域のユーザーによる決定を補助することができる。
【００１４】
また、本発明の他の態様は、ロボット制御装置において、前記ロボットは、第ｎ（ｎは１以上の整数）回動軸周りに回動可能な第ｎアームと、前記第ｎアームに、前記第ｎ回動軸の軸方向と異なる軸方向である第（ｎ＋１）回動軸周りに回動可能に設けられた第（ｎ＋１）アームと、を有し、前記第（ｎ＋１）回動軸の軸方向から見て、前記第ｎアームと前記第（ｎ＋１）アームとが重なることが可能である、構成が用いられてもよい。
この構成により、ロボット制御装置は、第（ｎ＋１）回動軸の軸方向から見て、第ｎアームと第（ｎ＋１）アームとが重なることが可能であるロボットの第１所定位置が特異点を通過しないように当該ロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置は、ユーザーによるロボットの作業領域の決定であって、第（ｎ＋１）回動軸の軸方向から見て、第ｎアームと第（ｎ＋１）アームとが重なることが可能であるロボットの作業領域の決定を補助することができる。
【００１５】
また、本発明の他の態様は、ロボット制御装置において、前記第ｎアームの長さは、前記第（ｎ＋１）アームの長さよりも長い、構成が用いられてもよい。
この構成により、ロボット制御装置は、第ｎアームの長さが第（ｎ＋１）アームの長さよりも長いロボットの第１所定位置が特異点を通過しないように当該ロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置は、ユーザーによるロボットの作業領域の決定であって、第ｎアームの長さが第（ｎ＋１）アームの長さよりも長いロボットの作業領域の決定を補助することができる。
【００１６】
また、本発明の他の態様は、ロボット制御装置において、前記第ｎアームの長さは、前記第（ｎ＋１）アームの長さよりも長い、構成が用いられてもよい。
この構成により、ロボット制御装置は、第ｎアームの長さが第（ｎ＋１）アームの長さよりも長いロボットの第１所定位置が特異点を通過しないように当該ロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置は、ユーザーによるロボットの作業領域の決定であって、第ｎアームの長さが第（ｎ＋１）アームの長さよりも長いロボットの作業領域の決定を補助することができる。
【００１７】
また、本発明の他の態様は、ロボット制御装置において、前記第ｎアーム（ｎは１である）は、基台に設けられている、構成が用いられてもよい。
この構成により、ロボット制御装置は、第ｎアーム（ｎは１である）が基台に設けられているロボットの第１所定位置が特異点を通過しないように当該ロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置は、ユーザーによるロボットの作業領域の決定であって第ｎアーム（ｎは１である）が基台に設けられているロボットの作業領域の決定を補助することができる。
【００１８】
また、本発明の他の態様は、ロボット制御装置において、前記ロボットは、架台に設けられている、構成が用いられてもよい。
この構成により、ロボット制御装置は、架台に設けられているロボットの第１所定位置が特異点を通過しないように当該ロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置は、ユーザーによるロボットの作業領域の決定であって架台に設けられているロボットの作業領域の決定を補助することができる。
【００１９】
また、本発明の他の態様は、上記に記載のロボット制御装置に制御される、ロボットである。
この構成により、ロボットは、ロボット制御装置による補助によってユーザーにより決定された作業領域において所定の作業を行う。これにより、ロボットは、エラーの発生を抑制しつつ、所定の作業を行うことができる。
【００２０】
また、本発明の他の態様は、上記に記載のロボット制御装置と、前記ロボットと、を備えるロボットシステムである。この構成により、ロボットシステムは、ロボットの第１所定位置が特異点を通過しないようにロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボットシステムは、ユーザーによるロボットの作業領域の決定を補助することができる。
【００２１】
以上により、ロボット制御装置、及びロボットシステムは、ロボットの第１所定位置が特異点を通過しないようにロボットの第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置、及びロボットシステムは、ユーザーによるロボットの作業領域の決定を補助することができる。
また、ロボットは、ロボット制御装置による補助によってユーザーにより決定された作業領域において所定の作業を行う。これにより、ロボットは、エラーの発生を抑制しつつ、所定の作業を行うことができる。
【図面の簡単な説明】
【００２２】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット２０の構成の一例を示す図である。
【図３】図１及び図２に示したロボット２０の側面図の一例を示す図である。
【図４】図３に示したロボット２０をロボット座標系ＲＣにおけるＹ軸の正方向から当該Ｙ軸の負方向に向かって見た場合のロボット２０の正面図の一例である。
【図５】マニピュレーターＭの動作のうちコンパクト状態を経る動作を説明するための図である。
【図６】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図７】ロボット制御装置３０の機能構成の一例を示す図である。
【図８】ロボット制御装置３０が行う領域表示処理の流れの一例を示すフローチャートである。
【図９】領域表示画面の一例を示す図である。
【図１０】ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【図１１】制御点Ｔの位置及び姿勢が作業開始位置及び作業開始姿勢と一致している様子の一例を示す図である。
【図１２】教示点第２情報が示す１以上の第２教示点のうちのある第２教示点に制御点Ｔが一致している様子の一例を示す図である。
【発明を実施するための形態】
【００２３】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００２４】
＜ロボットシステムの構成＞
まず、図１〜図４を参照し、ロボットシステム１の構成について説明する。図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。図２は、ロボット２０の構成の一例を示す図である。
【００２５】
ロボットシステム１は、例えば、架台ＢＳと、ロボット２０を備える。なお、ロボットシステム１は、これらに加えて、物体を搬送する搬送装置（例えば、搬送用の他のロボット、ベルトコンベア等）、撮像部（すなわち、ロボット２０と別体のカメラ）等の他の装置を備える構成であってもよい。
【００２６】
以下では、説明の便宜上、重力方向（鉛直下方向）を下方向又は下と称し、下方向と反対の方向を上方向又は上と称して説明する。以下では、一例として、下方向が、ロボット２０のロボット座標系ＲＣにおけるＺ軸の負方向と一致する場合について説明する。なお、下方向は、当該負方向と一致しない構成であってもよい。
【００２７】
架台ＢＳは、例えば、直方体形状の金属製の枠である。なお、架台ＢＳの形状は、直方体形状に代えて、円柱形状等の他の形状であってもよい。また、架台ＢＳの材質は、金属に代えて、樹脂等の他の材質であってもよい。架台ＢＳが有する端部のうち最も上側の端部である最上部には、天井板として平板が設けられている。架台ＢＳが有する端部のうち最も下側の端部である最下部には、床板として平板が設けられている。また、架台ＢＳは、設置面に設置される。設置面は、例えば、床面である。なお、設置面は、床面に代えて、壁面、地面、天井面等の他の面であってもよい。ロボットシステム１では、ロボット２０は、架台ＢＳの内側において所定の作業を行うことが可能なように架台ＢＳの天井板に設置される。なお、ロボットシステム１は、架台ＢＳを備えない構成であってもよい。この場合、ロボット２０は、架台ＢＳに代えて、床面、壁面等に設置される。
【００２８】
ロボット２０は、基台Ｂと、基台Ｂにより支持された可動部Ａと、ロボット制御装置３０を備える単腕ロボットである。単腕ロボットは、この一例における可動部Ａのような１本の腕を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上の腕（例えば、２本以上の可動部Ａ）を備えるロボットである。なお、複腕ロボットのうち、２本の腕を備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本の腕を備える双腕ロボットであってもよく、３本以上の腕（例えば、３本以上の可動部Ａ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボット（水平多関節ロボット）、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
【００２９】
基台Ｂの形状は、例えば、長手方向が上下方向に沿ったほぼ直方体形状である。基台Ｂは、中空となっている。基台Ｂが有する面のうちの１つには、フランジＢＦが設けられている。また、フランジＢＦには、可動部Ａが設けられている。すなわち、基台Ｂは、フランジＢＦによって可動部Ａを支持している。なお、基台Ｂの形状は、このような形状に代えて、可動部Ａを支持可能な形状であれば、立方体形状、円柱形状、多面体形状等の他の形状であってもよい。
【００３０】
以下では、説明の便宜上、基台Ｂが有する面のうちフランジＢＦが設けられている面を上面と称し、基台Ｂが有する面のうちフランジＢＦが設けられている面と反対側の面を下面と称して説明する。基台Ｂは、例えば、基台Ｂの下面から基台Ｂの上面に向かう方向が下方向と一致するように、すなわち、ロボット２０の作業領域の全体が当該天井板よりも下側に位置するように当該天井板に設置される。具体的には、例えば、当該天井板には、上下方向に貫通し、基台Ｂを挿入可能な図示しない開口部が形成されている。当該開口部は、フランジＢＦよりも小さい。ユーザーは、フランジＢＦと当該天井板とを複数本のボルトによって固定することにより、基台Ｂを当該天井板に設置する（取り付ける）ことができる。すなわち、フランジＢＦと当該天井板のそれぞれには、複数のボルトのそれぞれが挿入される複数の貫通孔が形成されている。なお、基台Ｂは、架台ＢＳの他の位置に設置される構成であってもよい。また、フランジＢＦと当該天井板との固定方法は、他の方法であってもよい。
【００３１】
可動部Ａは、マニピュレーターＭと、エンドエフェクターＥと、力検出部２１と、撮像部１０と、吐出部Ｄを備える。
【００３２】
マニピュレーターＭは、６個のアームである第１アームＬ１〜第６アームＬ６と、６つの関節である関節Ｊ１〜関節Ｊ６を備える。基台Ｂと第１アームＬ１は、関節Ｊ１によって連結される。第１アームＬ１と第２アームＬ２は、関節Ｊ２によって連結される。第２アームＬ２と第３アームＬ３は、関節Ｊ３によって連結される。第３アームＬ３と第４アームＬ４は、関節Ｊ４によって連結される。第４アームＬ４と第５アームＬ５は、関節Ｊ５によって連結される。第５アームＬ５と第６アームＬ６は、関節Ｊ６によって連結される。すなわち、マニピュレーターＭを備える可動部Ａは、６軸垂直多関節型のアームである。なお、可動部Ａは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。
【００３３】
第１アームＬ１は、関節Ｊ１の回動軸である第１回動軸ＡＸ１（例えば、図３参照）周りに回動可能である。第２アームＬ２は、関節Ｊ２の回動軸である第２回動軸ＡＸ２（例えば、図３参照）周りに回動可能である。第３アームＬ３は、関節Ｊ３の回動軸である第３回動軸ＡＸ３（例えば、図３参照）周りに回動可能である。第４アームＬ４は、関節Ｊ４の回動軸である第４回動軸ＡＸ４（例えば、図３参照）周りに回動可能である。第５アームＬ５は、関節Ｊ５の回動軸である第５回動軸ＡＸ５（例えば、図３参照）周りに回動可能である。第６アームＬ６は、関節Ｊ６の回動軸である第６回動軸ＡＸ６（例えば、図３参照）周りに回動可能である。
【００３４】
ここで、図３〜図５を参照し、マニピュレーターＭについてより詳しく説明する。図３は、図１及び図２に示したロボット２０の側面図の一例を示す図である。
【００３５】
図３に示したように、基台Ｂの下面から基台Ｂの上面に向かう方向が下方向と一致しているため、関節Ｊ２は、関節Ｊ１よりも下側に位置している。関節Ｊ２は、第１回動軸ＡＸ１の延長上に位置していない。これは、第１アームＬ１の形状が、屈曲した形状であるためである。この一例において、第１アームＬ１の形状は、ロボット座標系ＲＣにおけるＸ軸の正方向から負方向に向かってロボット２０を見た場合において、丸みを帯びてほぼＬ字型に湾曲した形状である。具体的には、第１アームＬ１は、４つの部位である部位Ｌ１１〜部位Ｌ１４によって構成されている。部位Ｌ１１は、図３において、第１アームＬ１を構成する４つの部位のうち、基台Ｂから第１回動軸ＡＸ１に沿って下方向に延伸している部位のことである。部位Ｌ１２は、当該４つの部位のうち、部位１１の下端から第２回動軸ＡＸ２に沿ってロボット座標系ＲＣにおけるＹ軸の負方向に延伸する部位のことである。部位Ｌ１３は、当該４つの部位のうち、部位Ｌ１２の端部のうち部位Ｌ１１と反対側の端部から、第１回動軸ＡＸ１に沿って下方向に延伸している部位のことである。部位Ｌ１４は、当該４つの部位のうち、部位Ｌ１３の端部のうち部位Ｌ１２と反対側の端部から、第２回動軸ＡＸ２に沿って当該Ｙ軸の正方向に延伸する部位のことである。ここで、部位Ｌ１１〜部位Ｌ１４は、一体として第１アームＬ１を構成してもよく、別体として第１アームＬ１を構成してもよい。また、図３において、部位Ｌ１２と部位Ｌ１３は、ロボット座標系ＲＣにおけるＸ軸に沿ってロボット２０を見た場合、ほぼ直交している。
【００３６】
第２アームＬ２の形状は、長手形状である。第２アームＬ２は、第１アームＬ１の先端部、すなわち、部位Ｌ１４の端部のうち部位Ｌ１３と反対側の端部に接続されている。
【００３７】
第３アームＬ３の形状は、長手形状である。第３アームＬ３は、第２アームＬ２の端部のうち第１アームＬ１と接続されている端部と反対側の端部に接続されている。
【００３８】
第４アームＬ４は、第３アームＬ３の先端部、すなわち、第３アームＬ３の端部のうち第２アームＬ２が接続されている端部と反対側の端部に接続されている。第４アームＬ４には、互いに対向する一対の支持部である支持部Ｌ４１及び支持部Ｌ４２が形成されている。支持部Ｌ４１及び支持部Ｌ４２は、第４アームＬ４の第５アームＬ５との接続に用いられる。すなわち、第４アームＬ４は、第５アームＬ５を支持部Ｌ４１及び支持部Ｌ４２の間に位置させ、支持部Ｌ４１及び支持部Ｌ４２によって第５アームＬ５に接続されている。なお、第４アームＬ４は、これに限られず、１つの支持部によって第５アームＬ５を支持する構成（片持ち）であってもよく、３つ以上の支持部によって第５アームＬ５を支持する構成であってもよい。
【００３９】
第５アームＬ５は、前述したように、支持部Ｌ４１及び支持部Ｌ４２の間に位置し、支持部Ｌ４１及び支持部Ｌ４２に接続される。
【００４０】
第６アームＬ６の形状は、平板形状である。すなわち、第６アームＬ６は、フランジである。第６アームＬ６は、第５アームＬ５の端部のうち第４アームＬ４と反対側の端部に接続されている。また、第６アームＬ６には、当該端部に力検出部２１を介してエンドエフェクターＥが接続される。具体的には、第６アームＬ６とエンドエフェクターＥの間には、力検出部２１が設けられる。
【００４１】
また、この一例において、マニピュレーターＭが備える６つの関節それぞれの回動軸のうち第２回動軸ＡＸ２と第３回動軸ＡＸ３とは、互いに平行である。なお、第２回動軸ＡＸ２と第３回動軸ＡＸ３とは、互いに非平行であってもよい。
【００４２】
また、この一例において、マニピュレーターＭが備える６つの関節それぞれの回動軸の軸方向は、互いに異なる軸方向である。なお、本実施形態において、２つの関節それぞれの軸方向が異なるとは、一方の軸方向と他方の軸方向とが一致していない（重なっていない）ことを示す。すなわち、本実施形態では、当該２つの関節の回動軸が平行であっても、これらの回動軸が重なっていない場合、当該２つの関節の軸方向が異なると称する。
【００４３】
なお、図１〜図３のそれぞれでは、図を簡略化するため、関節Ｊ１〜関節Ｊ６のそれぞれが備えているアクチュエーター、エンコーダー、減速機、ブレーキ等の構成を省略している。当該ブレーキは、電磁ブレーキであってもよく、メカニカルブレーキであってもよい。また、関節Ｊ１〜関節Ｊ６のうちの一部又は全部は、減速機を備えない構成であってもよい。また、関節Ｊ１〜関節Ｊ６のうちの一部又は全部は、ブレーキを備えない構成であってもよい。
【００４４】
ここで、マニピュレーターＭでは、第１回動軸ＡＸ１の軸方向から見て、第１アームＬ１と第２アームＬ２とが重なることが可能である。また、マニピュレーターＭでは、第２回動軸ＡＸ２の軸方向から見て、第１アームＬ１と第２アームＬ２とが重なることが可能である。また、マニピュレーターＭでは、第２回動軸ＡＸ２の軸方向から見て、第２アームＬ２と第３アームＬ３とが重なることが可能である。また、マニピュレーターＭでは、第４回動軸ＡＸ４の軸方向から見て、第４アームＬ４と第５アームＬ５とが重なることが可能である。なお、本実施形態において、ある２つのアームをある方向から見た場合に当該２つのアームが重なるとは、当該２つのアームのうちの一方のアームが他方のアームに重なっている面積の割合が所定割合以上であることを示す。所定割合は、例えば、９割であるが、これに限られず、他の割合であってもよい。また、マニピュレーターＭは、第３回動軸ＡＸ３の軸方向から見て、第３アームＬ３と第４アームＬ４とが重なることが可能であるように構成されてもよい。また、マニピュレーターＭは、第５回動軸ＡＸ５の軸方向から見て、第５アームＬ５と第６アームＬ６とが重なることが可能であるように構成されてもよい。
【００４５】
ここで、マニピュレーターＭは、マニピュレーターＭの状態を、関節Ｊ２と関節Ｊ３のそれぞれを回動させることにより、コンパクト状態にすることができる。コンパクト状態は、この一例において、第１回動軸ＡＸ１に沿った方向において第２回動軸ＡＸ２と第５回動軸ＡＸ５との間の距離が最も短い状態、且つ第１回動軸ＡＸ１と第４回動軸ＡＸ４とが一致した状態のことである。すなわち、図３に示したマニピュレーターＭの状態は、コンパクト状態である。図３に示したロボット２０をロボット座標系ＲＣにおけるＹ軸の正方向から当該Ｙ軸の負方向に向かって見た場合、コンパクト状態におけるマニピュレーターＭでは、図４に示したように第１アームＬ１と第２アームＬ２と第３アームＬ３との３つのアームが重なる。図４は、図３に示したロボット２０をロボット座標系ＲＣにおけるＹ軸の正方向から当該Ｙ軸の負方向に向かって見た場合のロボット２０の正面図の一例である。
【００４６】
マニピュレーターＭの状態をコンパクト状態にすることができる理由は、第２アームＬ２が、関節Ｊ２の回動によって架台ＢＳの天井板、第１アームＬ１のそれぞれと干渉しない形状及び大きさに形成されているためである。
【００４７】
ここで、この一例において、マニピュレーターＭの状態がコンパクト状態である場合、第１回動軸ＡＸ１に沿った方向において、第１アームＬ１の長さは、第２アームＬ２の長さよりも長い。また、当該場合、当該方向において、第２アームＬ２の長さは、第３アームＬ３の長さよりも長い。また、当該場合、当該方向において、第４アームＬ４の長さは、第５アームＬ５の長さよりも長い。また、当該場合、当該方向において、第５アームＬ５の長さは、第６アームＬ６の長さよりも長い。なお、第１アームＬ１〜第６アームＬ６それぞれの長さは、これらに代えて、他の長さであってもよい。
【００４８】
また、マニピュレーターＭの状態をコンパクト状態にすることができるため、マニピュレーターＭは、図５に示したように、関節Ｊ１を回動させずに関節Ｊ２を回動させることにより、コンパクト状態を経て、関節Ｊ６の位置を、第１回動軸ＡＸ１周りに１８０°異なる位置に移動させることが可能である。図５は、マニピュレーターＭの動作のうちコンパクト状態を経る動作を説明するための図である。関節Ｊ６の位置は、この一例において、関節Ｊ６の重心の位置によって表される。なお、関節Ｊ６の位置は、関節Ｊ６の重心の位置に代えて、関節Ｊ６に対応付けられた他の位置によって表される構成であってもよい。より具体的には、マニピュレーターＭは、関節Ｊ１を回動させずに関節Ｊ２を回動させることにより、マニピュレーターＭの先端である第６アームＬ６を図５の左側に示す左側位置から、コンパクト状態を経て、第１回動軸ＡＸ１周りに１８０°異なる図５の右側に示す右側位置に移動させることが可能である。なお、図５に示した動作では、第６アームＬ６は、第１回動軸ＡＸ１に沿った方向からロボット２０を見た場合、直線上を移動する。
【００４９】
また、第３アームＬ３〜第６アームＬ６の長さの合計は、第２アームＬ２の長さよりも長い。これにより、第２回動軸ＡＸ２に沿った方向からロボット２０を見た場合にマニピュレーターＭの状態をコンパクト状態と一致させると、第２アームＬ２から第６アームＬ６の先端を突出させることができる。その結果、第６アームＬ６にエンドエフェクターＥを取り付けた場合において、エンドエフェクターＥが第１アームＬ１及び第２アームＬ２と干渉してしまうことを抑制することができる。
【００５０】
このようにマニピュレーターＭは、第１回動軸ＡＸ１を回動させずに第２回動軸ＡＸ２を回動させることにより、コンパクト状態を経て、エンドエフェクターＥを第１回動軸ＡＸ１周りに１８０°異なる位置に移動させることができる。その結果、ロボット２０は、エンドエフェクターＥを効率よく移動させることができるとともに、ロボット２０の一部が他の物体と干渉しないようにするために設ける空間を小さくすることができる。
【００５１】
図２に戻る。マニピュレーターＭが備える関節Ｊ１〜関節Ｊ６のそれぞれに備えられたアクチュエーターは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、当該アクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００５２】
エンドエフェクターＥは、物体を空気によって吸着（保持）可能な吸着部を備えるエンドエフェクターである。エンドエフェクターＥは、保持部の一例である。なお、エンドエフェクターＥは、当該吸着部を備えるエンドエフェクターに代えて、物体を把持可能な爪部（指部）を備えるエンドエフェクター等の他のエンドエフェクターであってもよい。
【００５３】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００５４】
力検出部２１は、エンドエフェクターＥとマニピュレーターＭの間に備えられる。力検出部２１は、例えば、力センサーである。力検出部２１は、エンドエフェクターＥ又はエンドエフェクターＥにより吸着された物体に作用した外力を検出する。当該外力には、エンドエフェクターＥ又はエンドエフェクターＥにより吸着された物体を並進させる並進力と、エンドエフェクターＥ又はエンドエフェクターＥにより把持された物体を回転させる回転モーメント（トルク）とが含まれる。力検出部２１は、検出した外力の大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置３０へ出力する。
【００５５】
力検出情報は、ロボット制御装置３０によるロボット２０の制御のうちの力検出情報に基づく制御である力制御に用いられる。力制御は、力検出情報が示す外力が所定の終了条件を満たす状態を実現するようにエンドエフェクターＥとマニピュレーターＭの少なくとも一方を動作させる制御である。終了条件は、力制御によるロボット２０の動作をロボット制御装置３０が終了させるための条件である。すなわち、力制御は、例えば、インピーダンス制御等のコンプライアントモーション制御のことである。なお、力検出部２１は、トルクセンサー等のエンドエフェクターＥ又はエンドエフェクターＥにより吸着された物体に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。また、力検出部２１は、エンドエフェクターＥとマニピュレーターＭの間に備えられる構成に代えて、マニピュレーターＭの他の部位に備えられる構成であってもよい。
【００５６】
力検出部２１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、力検出部２１とロボット制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００５７】
力検出部２１をロボット２０が備えていることにより、ユーザーは、ロボット制御装置３０にロボット２０の動作を教示（記憶）させる際、ダイレクトティーチングによってロボット制御装置３０に当該動作を教示させることができる。また、力検出部２１をロボット２０が備えていることにより、ロボット制御装置３０は、例えば、力制御によって物体を変形させてしまうことなくロボット２０に保持させることができる。
【００５８】
撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、撮像部１０は、エンドエフェクターＥの一部に備えられる。そのため、撮像部１０は、可動部Ａの動きに応じて移動する。また、撮像部１０が撮像可能な範囲は、可動部Ａの動きに応じて変化する。撮像部１０は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
【００５９】
撮像部１０は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、撮像部１０は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００６０】
吐出部Ｄは、吐出物を吐出可能なディスペンサーである。吐出物は、液体、気体、粉粒体等の吐出可能な物質のことである。以下では、一例として、吐出物がグリース（潤滑材）である場合について説明する。吐出部Ｄは、図示しないシリンジ部と、図示しないニードル部と、シリンジ部の内部に空気を注入する図示しない空気注入部とを備える。シリンジ部は、内部にグリースを入れる空間を有する容器である。ニードル部は、シリンジ部に入っているグリースを吐出する針を有する。ニードル部は、当該針の先端からグリースを吐出する。すなわち、吐出部Ｄは、空気注入部がシリンジ部の内部に空気を注入することにより、シリンジ部の内部に入っているグリースをニードル部の先端から吐出する。この一例において、吐出部Ｄは、エンドエフェクターＥの一部に備えられる。そのため、吐出部Ｄが吐出物を吐出可能な位置は、可動部Ａの動きに応じて変化する。
【００６１】
ロボット制御装置３０は、ロボット２０を制御するコントローラーである。ロボット制御装置３０は、ユーザーにより予め記憶された動作プログラムに基づいてロボット２０を動作させる。これにより、ロボット制御装置３０は、ロボット２０に所定の作業を行わせることができる。
【００６２】
ロボット制御装置３０は、この一例において、基台Ｂの内側に設けられている（内蔵されている）。なお、ロボット制御装置３０は、これに代えて、ロボット２０と別体であってもよい。この場合、ロボットシステム１は、ロボット２０と、ロボット２０と別体のロボット制御装置３０とを少なくとも備える。
【００６３】
＜ロボットを動作させる際にロボット制御装置が行う処理の概要＞
以下、ロボット２０を動作させる際にロボット制御装置３０が行う処理の概要について説明する。
【００６４】
ロボット制御装置３０は、吐出部Ｄの予め決められた位置に、吐出部Ｄとともに動くＴＣＰ（Tool  Center  Point）である制御点Ｔを設定する。吐出部Ｄの予め決められた位置は、吐出部Ｄが備えるニードル部の先端の位置である。なお、吐出部Ｄの予め決められた位置は、これに代えて、吐出部Ｄの重心の位置等の吐出部Ｄに対応付けられた他の位置であってもよい。また、ロボット制御装置３０は、吐出部Ｄの予め決められた位置に制御点Ｔを設定する構成に代えて、可動部Ａに対応付けられた他の位置に制御点Ｔを設定する構成であってもよい。
【００６５】
ロボット制御装置３０は、ユーザーから予め入力された制御点設定情報に基づいて制御点Ｔを設定する。制御点設定情報は、例えば、Ｐ点（ロボット２０の出力点）の位置及び姿勢から、吐出部Ｄが備えるニードル部の先端の位置及び姿勢までの相対的な位置及び姿勢を示す情報である。Ｐ点は、可動部Ａ（すなわち、ロボット２０）の位置及び姿勢を表す仮想的な点のことであり、関節Ｊ１〜関節Ｊ６それぞれの回動角に基づいて位置及び姿勢を算出可能な点のことである。以下では、Ｐ点が、関節Ｊ６の重心とともに動く仮想的な点である場合について説明する。すなわち、この一例において、Ｐ点の位置は、当該重心に対応付けられた三次元局所座標系であるＰ点座標系ＰＣの原点のロボット座標系ＲＣにおける位置によって表される。また、Ｐ点の姿勢は、Ｐ点座標系ＰＣにおける各座標軸のロボット座標系ＲＣにおける方向によって表される。この場合、Ｐ点と制御点Ｔとの間の相対的な位置及び姿勢は、振動等による誤差を除いて、ロボット２０が如何様に動作しても変化しない。ロボット制御装置３０は、現在の関節Ｊ１〜関節Ｊ６それぞれの回動角に基づく順運動学によって、Ｐ点の位置及び姿勢を算出することができる。その結果、ロボット制御装置３０は、算出したＰ点の位置及び姿勢と、制御点設定情報とに基づいて、制御点Ｔの位置及び姿勢を算出することができる。なお、Ｐ点は、関節Ｊ６の重心とともに動く仮想的な点に代えて、可動部Ａに対応付けられた他の部位とともに動く仮想的な点であってもよい。
【００６６】
制御点Ｔには、制御点Ｔの位置を示す情報である制御点位置情報と、制御点Ｔの姿勢を示す情報である制御点姿勢情報とが対応付けられている。なお、制御点Ｔには、これらに加えて、他の情報が対応付けられる構成であってもよい。ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報のそれぞれを指定（決定）する。ロボット制御装置３０は、関節Ｊ１〜関節Ｊ６のうちの少なくとも１つを動作させることによってＰ点を動かし、指定した制御点位置情報が示す位置に制御点Ｔの位置を一致させるとともに、指定した制御点姿勢情報が示す姿勢に制御点Ｔの姿勢を一致させる。すなわち、ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット２０を動作させる。
【００６７】
この一例ではロボット２０が６軸垂直多関節型の可動部Ａを備えるため、制御点Ｔの位置は、関節Ｊ１〜関節Ｊ３のそれぞれを回動させることによっておおよそ決定される。なお、制御点Ｔの位置は、関節Ｊ４〜関節Ｊ６のそれぞれを回動させることによって微調整することもできる。また、当該一例では、制御点Ｔの姿勢は、関節Ｊ４〜関節Ｊ６のそれぞれを回動させることによって決定される。
【００６８】
この一例において、制御点Ｔの位置は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔの姿勢は、制御点座標系ＴＣの各座標軸のロボット座標系ＲＣにおける方向によって表される。制御点座標系ＴＣは、制御点Ｔとともに動くように制御点Ｔに対応付けられた三次元局所座標系である。なお、この一例において、吐出部Ｄが備えるニードル部の先端の位置及び姿勢は、制御点Ｔの位置及び姿勢によって表される。
【００６９】
また、ロボット制御装置３０は、ロボット制御装置３０に予め記憶された教示点情報に基づいて制御点Ｔを移動させる。
【００７０】
教示点情報は、教示点を示す情報である。教示点は、ロボット制御装置３０がマニピュレーターＭを動作させる際に制御点Ｔを移動させる目標となる仮想的な点のことである。教示点には、教示点位置情報と、教示点姿勢情報と、教示点速度情報と、教示点識別情報とが対応付けられている。教示点位置情報は、教示点の位置を示す情報である。また、教示点姿勢情報は、教示点の姿勢を示す情報である。教示点速度情報は、教示点の速度を示す情報である。教示点識別情報は、教示点を識別する情報である。また、教示点識別情報は、教示点の順番を示す情報でもある。この一例において、教示点の位置は、教示点に対応付けられた三次元局所座標系である教示点座標系の原点のロボット座標系ＲＣにおける位置によって表される。また、教示点の姿勢は、教示点座標系の各座標軸のロボット座標系ＲＣにおける方向によって表される。
【００７１】
ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、教示点情報が示す１以上の教示点を順に指定する。そして、ロボット制御装置３０は、当該動作プログラムに基づいて、現在の制御点Ｔが一致している教示点である第１教示点から、指定した教示点である第２教示点までの軌道を生成（算出）する。当該軌道は、直線であってもよく、曲線であってもよい。以下では、一例として、当該軌道が直線である場合について説明する。なお、第１教示点には、ロボット２０が最初に制御点Ｔを一致させている始点が含まれる。
【００７２】
また、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、連続経路制御（ＣＰ（Continuous  Path）制御）を行う。連続経路制御では、ロボット制御装置３０は、第１教示点から第２教示点までの軌道であって制御点Ｔの位置及び姿勢の変化を表す軌道を、第１教示点から第２教示点まで制御点Ｔが移動する際の経過時間の関数として生成（算出）する。すなわち、ロボット制御装置３０は、経過時間を指定することによって、当該軌道に基づいて当該軌道上における制御点Ｔの位置及び姿勢を特定することができる。以下では、説明の便宜上、当該軌道を連続経路軌道（ＣＰ軌道）と称して説明する。ここで、ロボット制御装置３０は、連続経路軌道を生成する際、連続経路軌道に沿って移動する制御点Ｔの速度が、第２教示点の速度である場合における連続経路軌道を生成する。そして、ロボット制御装置３０は、生成した連続経路軌道に沿って制御点Ｔを第１教示点から第２教示点まで移動させる。この際、ロボット制御装置３０は、第１教示点から制御点Ｔを移動させ始めるタイミングからの経過時間を計時し、計時した当該経過時間に応じた位置及び姿勢であって連続経路軌道上における制御点Ｔの位置及び姿勢を目標位置及び目標姿勢として特定する。ロボット制御装置３０は、特定した目標位置を示す情報を制御点位置情報として指定し、特定した目標姿勢を示す情報を制御点姿勢情報として指定する。目標位置及び目標姿勢は、ロボット制御装置３０が制御点Ｔの位置及び姿勢を一致させる目標となる位置及び姿勢のことである。これにより、ロボット制御装置３０は、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢に一致させる。このようにして、ロボット制御装置３０は、制御点Ｔが第２教示点と一致するまで前述の経過時間に応じて制御点Ｔを移動させることができる。なお、連続経路制御によって連続経路軌道を生成する方法については、既知の方法を用いてもよく、これから新たに開発される方法を用いてもよいため説明を省略する。
【００７３】
連続経路制御においてロボット制御装置３０が制御点Ｔを連続経路軌道に沿って移動させる際、ロボット制御装置３０は、制御点Ｔの位置及び姿勢が目標位置及び目標姿勢に一致した場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を第１回動角として逆運動学に基づいて算出する。例えば、現在の制御点Ｔの位置及び姿勢が位置及び姿勢Ｘ１と一致しており、目標位置及び目標姿勢が位置及び姿勢Ｘ２である場合、ロボット制御装置３０は、位置及び姿勢Ｘ２に制御点Ｔの位置及び姿勢が一致した場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を第１回動角として逆運動学に基づいて算出する。ロボット制御装置３０は、算出した第１回動角に基づいて、関節Ｊ１〜関節Ｊ６それぞれに連続経路動作を行わせることにより、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢に一致させる。ある関節に行わせる連続経路動作は、当該関節の回動角を第１回動角に含まれる当該関節の回動角に一致させる動作のことである。例えば、関節ＪＮに行わせる連続経路動作は、関節ＪＮの回動角を、第１回動角に含まれる関節ＪＮの回動角に一致させる動作のことである。ここで、Ｎは、１〜６のいずれかの整数である。このような連続経路動作を関節Ｊ１〜関節Ｊ６のそれぞれに繰り返させることにより、ロボット制御装置３０は、制御点Ｔを第１教示点から第２教示点に移動させる。
【００７４】
ここで、連続経路動作時にロボット２０の姿勢が特異姿勢に近づいた場合、ロボット２０が備える複数の関節のうちの少なくとも１つの関節は、当該関節の速度（すなわち、回動速度又は角速度）が限界速度を超えて回動することがある。限界速度を超えて回動し続けた関節には、不具合が生じる可能性がある。このため、当該場合、ロボット２０は、エラーが発生したと判定し、動作の停止等のエラーの発生に応じた各種の動作を行う。しかし、このような動作をロボット２０が行った場合、ロボット制御装置３０がロボット２０に行わせていた所定の作業が中断されてしまい、当該作業の効率を低下させてしまうことがある。
【００７５】
特異姿勢は、ロボットのＰ点が特異点と一致した場合におけるロボットの姿勢のことである。特異点は、Ｐ点が一致することにより、ロボット２０の自由度が減少又は増加することによって逆運動学における解が不定となる仮想的な点のことである。ロボット２０にＰ点が定義（設定）される位置は、ロボット２０の構造毎に異なる。このため、特異姿勢は、ロボット２０の構造に応じて異なる姿勢である。ロボット２０の姿勢は、この一例において、ロボット２０の関節Ｊ１〜関節Ｊ６それぞれの回動角の組み合わせによって表される。
【００７６】
このような問題を抑制するため、この一例におけるロボット制御装置３０は、ロボット２０のＰ点が特異点を通過しないように制御点Ｔが移動可能な領域を表示する。これにより、ロボット制御装置３０は、ユーザーによるロボット２０の作業領域の決定を補助することができる。すなわち、ユーザーは、ロボット制御装置３０により表示された当該領域を参照し、ロボット２０のＰ点が特異点を通過しないように制御点Ｔが移動可能な領域内に、ロボット２０の作業領域を決定することができる。なお、ロボットシステム１において、Ｐ点と制御点Ｔとは、同じ位置に設定される構成であってもよい。
【００７７】
以下では、ロボット制御装置３０がロボット２０のＰ点が特異点を通過しないように制御点Ｔが移動可能な領域を表示する領域表示処理と、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理とについて詳しく説明する。
【００７８】
＜ロボット制御装置がロボットに行わせる所定の作業の概要＞
以下、ロボット制御装置３０がロボット２０に行わせる所定の作業について説明する。
【００７９】
所定の作業には、この一例において、第１作業と、第２作業との２つの作業が含まれる。第１作業は、架台ＢＳの内側に設けられた平板形状の作業台ＴＢの上面に配置された対象物Ｏの上面にグリースを吐出（すなわち、塗布）する作業である。第２作業は、作業台ＴＢの上面に配置された対象物Ｇの側面にグリースを吐出（すなわち、塗布）する作業である。なお、所定の作業は、これに代えて、他の作業であってもよい。また、所定の作業は、第１作業と第２作業とのいずれか一方であってもよい。
【００８０】
対象物Ｏは、製品に組み付ける産業用の部品や部材である。以下では、一例として、対象物Ｏが製品に組み付ける平板形状のプレートである場合について説明する。なお、対象物Ｏは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Ｏの形状は、平板形状に代えて、円盤形状、直方体形状、円柱形状等の他の形状であってもよい。
【００８１】
対象物Ｇは、製品に組み付ける産業用の部品や部材であり、対象物Ｏと異なる部品や部材である。以下では、一例として、対象物Ｇが製品に組み付ける歯車である場合について説明する。なお、対象物Ｇは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。図１では、図を簡略化するため、歯車である対象物Ｇを円柱形状の物体として表している。ここで、以下では、一例として、作業台ＴＢの上面に配置された対象物Ｇの側面が、歯車の歯が並んだ面である場合について説明する。
【００８２】
＜ロボット制御装置のハードウェア構成＞
以下、図６を参照し、ロボット制御装置３０のハードウェア構成について説明する。図６は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００８３】
ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。また、ロボット制御装置３０は、通信部３４を介して撮像部１０、ロボット２０、吐出部Ｄのそれぞれと通信を行う。
【００８４】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（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）等の領域表示画像ＲＲ１以外のＧＵＩが省略されている。
【０１０６】
領域表示画像ＲＲ１は、仮想空間ＶＳ内の様子を表す三次元画像である。しかし、図９では、図を簡略化するため、領域表示画像ＲＲ１を、ロボットＶＲ１の第２回動軸ＡＸ２に沿ってロボットＶＲ１の第２アーム、ロボットＶＲ１の第１アームの順に並んで見える方向に向かってロボットＶＲ１を見た場合における仮想空間ＶＳ内の様子を表す二次元画像として表している。なお、領域表示画像ＲＲ１は、当該三次元画像に代えて、図９に示したような二次元画像であってもよい。なお、領域表示画像ＲＲ１には、ロボットＶＲ１と、領域画像ＶＲ２とのそれぞれに加えて、例えば、架台ＢＳ等の他の物体を表す画像が表示される構成であってもよい。この場合、表示制御部３６１は、ユーザーから予め当該物体が配置された位置を示す情報、当該物体の形状を示す情報等を受け付ける。
【０１０７】
図９に示した領域画像ＶＲ２は、前述した通り、ステップＳ１３０において受け付けられたフラグ情報が示す第１フラグ〜第３フラグに対応する領域を表す画像である。図９に示した領域画像ＶＲ２が表す領域は、第１フラグが０であり、第２フラグが０であり、第３フラグが１である場合の第１フラグ〜第３フラグに対応する領域である。すなわち、第１フラグ〜第３フラグのうちの少なくとも１つが当該場合のフラグと異なる場合、表示制御部３６１は、図９に示した領域画像ＶＲ２が表す領域と異なる領域を表す領域画像ＶＲ２を領域表示画像ＲＲ１に表示させる。
【０１０８】
ユーザーは、図９に示した領域表示画像ＲＲ１に含まれるロボットＶＲ１と領域画像ＶＲ２との相対的な位置関係に基づいて、領域画像ＶＲ２に対応する実空間上の領域を作業領域として決定することができる。すなわち、ロボット制御装置３０は、ユーザーによるロボット２０の作業領域の決定を補助することができる。そして、ユーザーは、決定した作業領域内に、ロボット２０が作業を行う対象（この一例では、対象物Ｏ、対象物Ｇ）を配置することができる。その結果、ロボット制御部３７５は、ロボット２０のＰ点が特異点を通過しないように制御点Ｔを移動させることができる。すなわち、ロボット制御部３７５は、ロボット２０のＰ点が特異点を通過しないように制御点Ｔが移動可能な領域において所定の作業のうち連続経路制御によって行われる第１作業をロボット２０に行わせることができる。
【０１０９】
なお、図９に示した領域ＶＲ３は、領域画像ＶＲ２が表す領域のうち、第２回動軸ＡＸ２に沿って第２アームＬ２、第１アームＬ１の順に並んで見える方向に向かってロボット２０を見た場合において、関節Ｊ６の重心が第４回動軸ＡＸ４よりも第５回動軸ＡＸ５を中心として時計回りに９０°より大きな回動角回動する領域、又は当該重心が第４回動軸ＡＸ４よりも第５回動軸ＡＸ５を中心として反時計回りに９０°より大きな回動角回動する領域である。表示制御部３６１は、領域画像ＶＲ２を表示する際、領域画像ＶＲ２内において領域ＶＲ３を区別可能なように領域画像ＶＲ２を表示する構成であってもよく、領域画像ＶＲ２内において領域ＶＲ３を区別不可能なように領域画像ＶＲ２を表示する構成であってもよい。
【０１１０】
また、表示制御部３６１は、第１フラグ〜第３フラグの組み合わせ毎に、第１フラグ〜第３フラグの組み合わせに応じた領域を表す領域画像を生成し、生成した当該組み合わせ毎の領域画像それぞれの一部又は全部を重ねて領域表示画像ＲＲ１に表示させる構成であってもよい。この場合、表示制御部３６１は、当該組み合わせ毎の領域画像それぞれの一部又は全部を互いに区別可能なように領域表示画像ＲＲ１に表示させる。例えば、表示制御部３６１は、当該領域画像それぞれを異なる色、ハッチング等によって表して領域表示画像ＲＲ１に表示させる。
【０１１１】
また、表示制御部３６１は、ユーザーから受け付けた操作、又は記憶部３２に予め記憶された動作プログラムに基づいて、仮想空間ＶＳ内に配置されたロボットＶＲ１を領域表示画像ＲＲ１内において動かすことが可能な構成であってもよい。この場合、表示制御部３６１は、例えば、ステップＳ１３０において受け付けたフラグ情報が示す第１フラグ〜第３フラグを参照せず、仮想空間ＶＳ内におけるロボットＶＲ１の動作に応じたフラグ情報に基づいて、領域表示画像ＲＲ１に当該フラグ情報に応じた領域画像を表示する。例えば、当該操作又は当該動作プログラムによるロボットＶＲ１の動作が第１１動作、第２１動作、第３２動作のそれぞれを伴う動作であった場合、表示制御部３６１は、第１フラグが０、第２フラグが０、第３フラグが１であると判定し、これらのフラグに対応する領域画像を領域表示画像ＲＲ１に表示させる。また、表示制御部３６１は、当該操作又は当該動作プログラムによるロボットＶＲ１の動作においてロボットＶＲ１のＰ点が特異点を通過する場合、領域表示画像ＲＲ１に表示された領域画像をロボットＶＲ１の動作に応じて切り替えてもよい。例えば、表示制御部３６１は、当該操作又は当該動作プログラムによるロボットＶＲ１の動作が、第１１動作、第２１動作、第３２動作のそれぞれを伴う動作を行っている間、当該動作に応じた領域画像を領域表示画像ＲＲ１に表示し、ロボットＶＲ１の動作が第１１動作、第２１動作、第３２動作のそれぞれを伴う動作から第１１動作、第２２動作、第３２動作のそれぞれを伴う動作に変化した際、領域表示画像ＲＲ１に表示されている領域画像を当該動作に応じた領域画像に切り替える（表示し直す）。なお、表示制御部３６１は、当該操作又は当該動作プログラムによるロボットＶＲ１の動作においてロボットＶＲ１のＰ点が特異点を通過する場合、領域表示画像ＲＲ１に表示された領域画像をロボットＶＲ１の動作に応じて切り替えなくてもよい。
【０１１２】
ステップＳ１５０の処理が行われた後、表示制御部３６１は、画面ＤＲ１の表示を終了させる操作が行われたか否かを判定する（ステップＳ１６０）。画面ＤＲ１の表示を終了させる操作が行われていないと表示制御部３６１が判定した場合（ステップＳ１６０−ＮＯ）、ロボット制御部３７５は、ステップＳ１３０に遷移し、再び画面ＤＲ１からフラグ情報を受け付けるまで待機する。そして、ロボット制御部３７５が再びフラグ情報を受け付けた場合、新たに受け付けたフラグ情報に基づいてステップＳ１３０〜ステップＳ１６０の処理を実行する。この際、表示制御部３６１は、図９に示した領域表示画像ＲＲ１を新たに生成された領域表示画像に切り替える（表示し直す）。一方、画面ＤＲ１の表示を終了させる操作が行われたと表示制御部３６１が判定した場合（ステップＳ１６０−ＹＥＳ）、制御部３６は、処理を終了する。
【０１１３】
＜ロボット制御装置がロボットに所定の作業を行わせる処理＞
以下、図１０を参照し、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理について説明する。図１０は、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。なお、以下では、図１０に示したフローチャートが実行される前の時間帯において、ユーザーが、図８に示したフローチャートの処理によって表示部３５に表示された領域表示画像ＲＲ１に基づいて、ロボット制御部３７５に設定した第１フラグ〜第３フラグに応じた領域であってロボット２０のＰ点が特異点を通過しないように制御点Ｔが移動可能な領域内（当該領域の内側）に対象物Ｏ及び対象物Ｇのそれぞれを配置している場合について説明する。また、以下では、ユーザーが、対象物Ｇの位置及び姿勢を、当該領域内において予め決められた位置及び姿勢と一致させている場合について説明する。
【０１１４】
ロボット制御部３７５は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を予め決められた撮像位置及び撮像姿勢と一致させる（ステップＳ２１０）。撮像位置及び撮像姿勢は、制御点Ｔの位置及び姿勢が撮像位置及び撮像姿勢と一致している場合において、撮像部１０が撮像可能な範囲に対象物Ｏの上面が少なくとも含まれる位置及び姿勢であれば如何なる位置及び姿勢であってもよい。
【０１１５】
次に、撮像制御部３６３は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる（ステップＳ２２０）。次に、画像取得部３６７は、ステップＳ２２０において撮像部１０が撮像した撮像画像を撮像部１０から取得する（ステップＳ２３０）。次に、位置姿勢算出部３７１は、ステップＳ２３０において画像取得部３６７が取得した撮像画像に基づいて、撮像画像に含まれる対象物Ｏの位置及び姿勢を算出する（ステップＳ２４０）。例えば、位置姿勢算出部３７１は、パターンマッチング等によって当該撮像画像から当該位置及び当該姿勢を算出する。対象物Ｏの位置は、例えば、対象物Ｏの重心に対応付けられた図示しない三次元局所座標系の原点のロボット座標系ＲＣにおける位置によって表される。なお、対象物Ｏの位置は、これに代えて、対象物Ｏに対応付けられた他の位置によって表される構成であってもよい。対象物Ｏの姿勢は、例えば、当該三次元局所座標系における各座標軸のロボット座標系ＲＣにおける方向によって表される。なお、対象物Ｏの姿勢は、これに代えて、対象物Ｏに対応付けられた他の方向によって表される構成であってもよい。
【０１１６】
次に、ロボット制御部３７５は、記憶部３２に予め記憶された作業開始位置姿勢情報を記憶部３２から読み出す。作業開始位置姿勢情報は、ステップＳ２４０において検出された対象物Ｏの位置及び姿勢から作業開始位置及び作業開始姿勢までの相対的な位置及び姿勢を示す情報である。作業開始位置は、所定の作業のうちの第１作業の開始時においてユーザーが制御点Ｔの位置を一致させたい所望の位置のことである。作業開始姿勢は、第１作業の開始時においてユーザーが制御点Ｔの姿勢を一致させたい所望の姿勢のことである。ロボット２０は、第１作業の開始時において、制御点Ｔの位置及び姿勢が作業開始位置及び作業開始姿勢と一致している状態で吐出部Ｄから吐出物を吐出し始める。ここで、作業開始位置及び作業開始姿勢は、制御点Ｔの位置及び姿勢が作業開始位置及び作業開始姿勢と一致している場合において、作業開始位置及び作業開始姿勢に応じた位置であって対象物Ｏの上面の位置に吐出部Ｄがグリースを吐出可能な位置及び姿勢である。また、当該上面の位置は、ユーザーがグリースを吐出（すなわち、塗布）したい所望の位置である。ロボット制御部３７５は、記憶部３２から読み出した作業開始位置姿勢情報に基づいて制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を作業開始位置姿勢情報が示す作業開始位置及び作業開始姿勢と一致させる（ステップＳ２６０）。
【０１１７】
次に、ロボット制御部３７５は、記憶部３２に予め記憶された教示点情報のうち第１作業において用いられる教示点情報である教示点第１情報を記憶部３２から読み出す（ステップＳ２８０）。ここで、教示点第１情報が示すある第２教示点は、制御点Ｔが当該第２教示点と一致している場合において、当該第２教示点に応じた位置であって対象物Ｏの上面の位置に吐出部Ｄがグリースを吐出可能な教示点である。また、当該上面の位置は、ユーザーがグリースを吐出（すなわち、塗布）したい所望の位置である。次に、ロボット制御部３７５は、ステップＳ２８０において読み出した教示点第１情報が示す１以上の第２教示点を、第２教示点の順番が小さい順に１つずつ対象第２教示点として選択し、選択した対象第２教示点毎にステップＳ３００〜ステップＳ３１０の処理を繰り返し実行する（ステップＳ２９０）。
【０１１８】
ステップＳ２９０において対象第２教示点が選択された後、ロボット制御部３７５は、関節Ｊ１〜関節Ｊ６それぞれの回動角を示す情報をロボット２０から取得し、取得した当該情報に基づく順運動学によって、現在の制御点Ｔの位置及び姿勢を第１教示点の位置及び姿勢として算出する。そして、ロボット制御部３７５は、算出した第１教示点と、ステップＳ２９０において選択された対象第２教示点とに基づいて連続経路軌道を生成する（ステップＳ３００）。次に、ロボット制御部３７５は、ステップＳ３００において生成した連続経路軌道に基づいて、関節Ｊ１〜関節Ｊ６のそれぞれに連続経路動作を行わせ始め、制御点Ｔを第１教示点から対象第２教示点に移動させる。この際、ロボット制御部３７５は、吐出制御部３６５を制御し、制御点Ｔが移動している間において吐出部Ｄにグリースを吐出させる（ステップＳ３１０）。
【０１１９】
このように、ステップＳ２９０〜ステップＳ３１０の処理を繰り返すことにより、ロボット制御装置３０は、教示点第１情報が示す１以上の第２教示点のそれぞれに、第２教示点の順番が小さい順に連続経路制御によって制御点Ｔを一致させ、連続経路軌道に沿って対象物Ｏの上面にグリースを吐出部Ｄに吐出させる作業を第１作業としてロボット２０に行わせることができる。ここで、図１１を参照し、ステップＳ２９０〜ステップＳ３１０の繰り返し処理について説明する。
【０１２０】
図１１は、制御点Ｔの位置及び姿勢が作業開始位置及び作業開始姿勢と一致している様子の一例を示す図である。図１１に示した制御点Ｔの位置及び姿勢は、作業開始位置及び作業開始姿勢を示す第１教示点Ｐ１と一致している。ステップＳ３１０におけるロボット制御部３７５は、ステップＳ３００において生成した連続経路軌道に沿って制御点Ｔを移動させながら、吐出部Ｄにグリースを吐出させる。その結果、ロボット２０は、図１１に示した対象物Ｏの上面に描かれた点線ＰＴに沿って、吐出部Ｄからグリースを吐出させる。対象物Ｏの上面のうちの点線ＰＴが描かれた部分は、ユーザーがグリースを吐出（塗布）したい所望の位置の集まりである。図１１に示した例では、点線ＰＴの形状は、Ｓ字形状である。すなわち、この一例におけるロボット制御部３７５は、ステップＳ２９０〜ステップＳ３１０の繰り返し処理によって制御点ＴをＳ字形状に移動させ、対象物Ｏの上面にグリースがＳ字形状となるようにグリースを吐出する。
【０１２１】
なお、ステップＳ２９０〜ステップＳ３１０の繰り返し処理において、ロボット制御部３７５は、ステップＳ２４０において算出された対象物Ｏの位置及び姿勢に基づいて連続経路制御における経路を生成している。すなわち、ロボット制御部３７５によるステップＳ２４０〜ステップＳ３１０の処理は、対象物Ｏが撮像された撮像画像に基づいて対象物Ｏの位置及び姿勢を算出し、算出した当該位置及び当該姿勢に基づいて連続経路制御における経路である連続経路軌道を補正し、補正した連続経路軌道に沿って連続経路制御により制御点Ｔを動かし、所定の作業をロボット２０に行わせる処理であると換言することができる。これにより、ロボット制御装置３０は、対象物Ｏの位置及び姿勢が所望の位置及び姿勢からずれた場合であっても、ロボット２０に所定の作業を精度よく行わせることができる。ここで、ロボット制御装置３０は、ステップＳ２４０において対象物Ｏの姿勢のみを算出する構成であってもよい。この場合、ユーザーは、対象物Ｏを作業台ＴＢの上面に配置する際、対象物Ｏの位置を当該上面の予め決められた位置と一致させる。そして、ロボット制御装置３０には、予め当該位置を示す情報がユーザーから記憶されている。また、ロボット制御装置３０は、対象物Ｏが撮像された撮像画像に基づいて対象物Ｏの姿勢を算出し、算出した当該姿勢に基づいて連続経路制御における経路である連続経路軌道を補正し、補正した連続経路軌道に沿って連続経路制御により制御点Ｔを動かし、所定の作業をロボット２０に行わせる。
【０１２２】
ステップＳ２９０〜ステップＳ３１０の繰り返し処理が行われた後、ロボット制御部３７５は、記憶部３２に予め記憶された教示点情報のうち第２作業において用いられる教示点第２情報を記憶部３２から読み出す（ステップＳ３２０）。ここで、教示点第２情報が示すある第２教示点は、制御点Ｔが当該第２教示点と一致している場合において、当該第２教示点に応じた位置であって対象物Ｇの側面の位置に吐出部Ｄがグリースを吐出可能な教示点である。また、当該側面の位置は、ユーザーがグリースを吐出（すなわち、塗布）したい所望の位置である。教示点第２情報が示す１以上の第２教示点のそれぞれは、第２作業においてユーザーが制御点Ｔの位置を一致させたい１以上の所望の第２教示点である。すなわち、教示点第２情報が示す１以上の第２教示点毎に、第２教示点に制御点Ｔが一致している状態において、ロボット２０は、対象物Ｇの側面に対して吐出部Ｄからグリースを吐出する。
【０１２３】
次に、ロボット制御部３７５は、ステップＳ３２０において読み出した教示点第２情報が示す１以上の第２教示点を、第２教示点の順番が小さい順に１つずつ対象第２教示点として選択し、選択した対象第２教示点毎にステップＳ３４０〜ステップＳ３５０の処理を繰り返し実行する（ステップＳ３３０）。
【０１２４】
ステップＳ３３０において対象第２教示点が選択された後、ロボット制御部３７５は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を対象第２教示点の位置及び姿勢と一致させる（ステップＳ３４０）。なお、ロボット制御部３７５は、ステップＳ３４０において制御点Ｔを移動させる際、第１教示点及び対象第２教示点に基づいて前述の連続経路制御による連続経路軌道を生成する構成であってもよく、第１教示点及び対象第２教示点に基づいて連続位置決め制御（ＰＴＰ（Point  To  Point）制御）により連続位置決め軌道を生成する構成であってもよい。ロボット制御部３７５が連続経路軌道を生成する場合、ロボット制御部３７５は、生成した連続経路軌道に沿って制御点Ｔを移動させる。また、ロボット制御部３７５が連続位置決め軌道を生成する場合、ロボット制御部３７５は、生成した連続位置決め軌道に沿って制御点Ｔを移動させる。
【０１２５】
連続位置決め制御では、ロボット制御部３７５は、制御点Ｔが第１教示点と一致している場合における関節Ｊ１〜関節Ｊ６それぞれの回動角、すなわち現在の関節Ｊ１〜関節Ｊ６それぞれの回動角を始点回動角として算出する。また、ロボット制御部３７５は、制御点Ｔが対象第２教示点と一致している場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を終点回動角として算出する。ロボット制御部３７５は、算出した始点回動角及び終点回動角に基づく関節空間補間軌道生成問題を解き、連続位置決め軌道を生成（算出）する。連続位置決め軌道は、制御点Ｔが第１教示点から対象第２教示点に移動するまでの経過時間とともに変化する回動角であって関節Ｊ１〜関節Ｊ６それぞれの回動角の変化を、当該経過時間の関数として表したものである。ロボット制御部３７５は、生成した連続位置決め軌道に基づいて関節Ｊ１〜関節Ｊ６のそれぞれを回動させ、制御点Ｔを第１教示点から対象第２教示点まで移動させる。
【０１２６】
ステップＳ３４０の処理が行われた後、ロボット制御部３７５は、吐出制御部３６５を制御し、吐出部Ｄにグリースを吐出させる（ステップＳ３５０）。
【０１２７】
このように、ステップＳ３３０〜ステップＳ３５０の処理を繰り返すことにより、ロボット制御装置３０は、教示点第２情報が示す１以上の第２教示点のそれぞれに、第２教示点の順番が小さい順に制御点Ｔを一致させる。そして、ロボット制御装置３０は、制御点Ｔが当該第２教示点のそれぞれと一致する毎に、吐出部Ｄによりグリースを対象物Ｇの側面に吐出することができる。ここで、図１２を参照し、ステップＳ３３０〜ステップＳ３５０の繰り返し処理について説明する。
【０１２８】
図１２は、教示点第２情報が示す１以上の第２教示点のうちのある第２教示点に制御点Ｔが一致している様子の一例を示す図である。図１２に示した点Ｐ２は、当該第２教示点の一例である。図１２に示した制御点Ｔの位置及び姿勢は、点Ｐ２と一致している。ステップＳ３４０におけるロボット制御部３７５は、制御点Ｔを移動させ、ステップＳ３３０において対象第２教示点として選択した点Ｐ２の位置及び姿勢に制御点Ｔの位置及び姿勢を一致させる。ここで、点Ｐ２と制御点Ｔが一致している場合、吐出部Ｄからグリースが吐出される方向ＰＡ、すなわち、吐出部Ｄのニードル部が延伸している方向ＰＡは、歯車である対象物Ｇの中心軸ＧＡ１に対して角度θだけ傾いている。ここで、図１２に示した補助線ＧＡ２は、中心軸ＧＡ１と平行な線である。角度θは、この一例において、補助線ＧＡ２から方向ＰＡに沿って補助線ＧＡ２と交わる図示しない直線までの間の角度であって時計回りに決められる角度である。なお、角度θは、如何なる角度であってもよい。これにより、ロボット制御装置３０は、ユーザーが所望する角度から対象物Ｇの側面に対してグリースをロボット２０に吐出させることができる。その結果、ロボット制御装置３０は、ユーザーが所望する位置にグリースをロボット２０によって吐出する作業を精度よく行うことができる。
【０１２９】
ステップＳ３３０〜ステップＳ３５０の繰り返し処理が行われた後、ロボット制御部３７５は、記憶部３２に予め記憶された作業終了位置姿勢情報を記憶部３２から読み出す。作業終了位置姿勢情報は、作業終了位置及び作業終了姿勢を示す情報である。作業終了位置は、所定の作業の終了時においてユーザーが制御点Ｔの位置を一致させたい所望の位置のことである。作業終了姿勢は、所定の作業の終了時においてユーザーが制御点Ｔの姿勢を一致させたい所望の姿勢のことである。ロボット制御部３７５は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を、読み出した作業終了位置姿勢情報が示す作業終了位置及び作業終了姿勢と一致させる（ステップＳ３６０）。そして、制御部３６は、処理を終了する。
【０１３０】
なお、ステップＳ３６０において、ロボット制御部３７５は、対象物ＯをエンドエフェクターＥによって吸着し、所定の除材領域（又は給材領域）に除材（又は給材）する構成であってもよい。この場合、ロボット制御部３７５は、例えば、撮像部１０により対象物Ｏを撮像し、対象物Ｏが撮像された撮像画像に基づいて対象物Ｏの吸着を行う構成であってもよく、他の方法によって対象物Ｏの吸着を行う構成であってもよい。また、ステップＳ３６０において、ロボット制御部３７５は、対象物ＧをエンドエフェクターＥによって吸着し、所定の除材領域（又は給材領域）に除材（又は給材）する構成であってもよい。この場合、ロボット制御部３７５は、撮像部１０により対象物Ｇを撮像し、対象物Ｇが撮像された撮像画像に基づいて対象物Ｇの吸着を行う構成であってもよく、他の方法によって対象物Ｏの吸着を行う構成であってもよい。
【０１３１】
以上のように、ロボット制御装置３０は、ロボット２０の第１所定位置（この一例において、Ｐ点）が特異点を通過しないようにロボット２０の第２所定位置（この一例において、制御点Ｔ）が移動可能な領域を表示する。これにより、ロボット制御装置３０は、ユーザーによるロボット２０の作業領域の決定を補助することができる。
【０１３２】
また、ロボット制御装置３０では、第１所定位置は、第２所定位置と同じ位置である。これにより、ロボット制御装置３０は、第１所定位置が移動可能な領域を、ロボット２０の作業領域の候補としてユーザーに提供することができる。
【０１３３】
また、ロボット制御装置３０は、ロボット２０の第１所定位置が特異点を通過しないように第２所定位置が移動可能な領域において、連続経路制御によって第２所定位置を動かす。これにより、ロボット制御装置３０は、第１所定位置が特異点を通過しないように第２所定位置が移動可能な領域をロボット２０の作業領域とし、連続経路制御による所定の作業をロボット２０に行わせることができる。
【０１３４】
また、ロボット制御装置３０は、対象物（この一例において、対象物Ｏ）が撮像された撮像画像に基づいて算出された対象物の姿勢に基づいて連続経路制御における経路（この一例において、連続経路軌道）を補正し、補正した当該経路に沿って連続経路制御により第２所定位置を動かす。これにより、ロボット制御装置３０は、対象物の姿勢が所望の姿勢からずれた場合であっても、ロボット２０に所定の作業を精度よく行わせることができる。
【０１３５】
また、ロボット制御装置３０では、ロボット２０の作業領域は、ロボット２０の第１所定位置が特異点を通過しないようにロボット２０の第２所定位置が移動可能な領域の内側である。これにより、ロボット制御装置３０は、第１所定位置が特異点を通過しないように第２所定位置が移動可能な領域の内側において所定の作業をロボット２０に行わせることができる。
【０１３６】
また、ロボット制御装置３０は、吐出部（この一例において、吐出部Ｄ）が設けられているロボット２０の第１所定位置が特異点を通過しないようにロボット２０の第２所定位置が移動可能な領域を表示する。吐出部Ｄが設けられているロボット２０の作業領域のユーザーによる決定を補助することができる。
【０１３７】
また、ロボット制御装置３０は、保持部（この一例において、エンドエフェクターＥ）が設けられているロボット２０の第１所定位置が特異点を通過しないようにロボット２０の第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置３０は、保持部が設けられているロボット２０の作業領域のユーザーによる決定を補助することができる。
【０１３８】
また、ロボット制御装置３０は、力検出部（この一例において、力検出部２１）が設けられているロボット２０の第１所定位置が特異点を通過しないようにロボット２０の第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置３０は、力検出部が設けられているロボット２０の作業領域のユーザーによる決定を補助することができる。
【０１３９】
また、ロボット制御装置３０は、第（ｎ＋１）回動軸の軸方向から見て、第ｎアームと第（ｎ＋１）アームとが重なることが可能であるロボット２０の第１所定位置が特異点を通過しないようにロボット２０の第２所定位置が移動可能な領域を表示する。ここで、ｎは、１以上の整数である。この一例において、マニピュレーターＭが６軸の自由度を有するため、ｎは、１〜５の整数である。これにより、ロボット制御装置３０は、ユーザーによるロボット２０の作業領域の決定であって、第（ｎ＋１）回動軸の軸方向から見て、第ｎアームと第（ｎ＋１）アームとが重なることが可能であるロボット２０の作業領域の決定を補助することができる。
【０１４０】
また、ロボット制御装置３０は、ユーザーによるロボット２０の作業領域の決定であって、第ｎアームの長さが第（ｎ＋１）アームの長さよりも長いロボット２０の作業領域の決定を補助することができる。
【０１４１】
また、ロボット制御装置３０は、ユーザーによるロボット２０の作業領域の決定であって第ｎアーム（ｎは１である）が基台（この一例において、基台Ｂ）に設けられているロボット２０の作業領域の決定を補助することができる。
【０１４２】
また、ロボット制御装置３０は、架台（架台ＢＳ）に設けられているロボット２０の第１所定位置が特異点を通過しないようにロボット２０の第２所定位置が移動可能な領域を表示する。これにより、ロボット制御装置３０は、ユーザーによるロボット２０の作業領域の決定であって架台に設けられているロボット２０の作業領域の決定を補助することができる。
【０１４３】
また、ロボット２０は、ロボット制御装置３０による補助によってユーザーにより決定された作業領域において所定の作業を行う。これにより、ロボット２０は、エラーの発生を抑制しつつ、所定の作業を行うことができる。
【０１４４】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１４５】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１４６】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１４７】
１…ロボットシステム、１０…撮像部、２０…ロボット、２１…力検出部、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、３６１…表示制御部、３６３…撮像制御部、３６５…吐出制御部、３６７…画像取得部、３６９…力検出情報取得部、３７１…位置姿勢算出部、３７５…ロボット制御部３７５、Ｄ…吐出部
【図１】
2018111155.tif 000003
【図２】
2018111155.tif 000004
【図３】
2018111155.tif 000005
【図４】
2018111155.tif 000006
【図５】
2018111155.tif 000007
【図６】
2018111155.tif 000008
【図７】
2018111155.tif 000009
【図８】
2018111155.tif 000010
【図９】
2018111155.tif 000011
【図１０】
2018111155.tif 000012
【図１１】
2018111155.tif 000013
【図１２】
2018111155.tif 000014