(57)【要約】【課題】Ｃアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができるロボット制御装置を提供すること。【解決手段】Ａ回動軸周りに回動可能なＡアームと、前記Ａアームに対して、Ｂ回動軸周りに回動可能に設けられ、前記Ｂ回動軸の軸方向から見て前記Ａアームと重なる第１状態になることが可能である前記Ｂアームと、前記Ｂアームに対して、前記Ｂ回動軸の軸方向と交差する軸方向であるＣ回動軸周りに回動可能に設けられたＣアームと、を備えたロボットを制御する制御装置であって、前記Ｃアームの回動範囲を制限することが可能である制御部を備える、ロボット制御装置。【選択図】図８
2019055466.tif 000002
【特許請求の範囲】
【請求項１】
Ａ回動軸周りに回動可能なＡアームと、
前記Ａアームに対して、Ｂ回動軸周りに回動可能に設けられ、前記Ｂ回動軸の軸方向から見て前記Ａアームと重なる第１状態になることが可能であるＢアームと、
前記Ｂアームに対して、前記Ｂ回動軸の軸方向と交差する軸方向であるＣ回動軸周りに回動可能に設けられたＣアームと、を備えたロボットを制御する制御装置であって、
前記Ｃアームの回動範囲を制限することが可能である制御部を備える、
ロボット制御装置。
【請求項２】
前記制御部は、
前記第１状態を含む動作において、前記Ｃアームの回動範囲を制限するとともに、前記第１状態を含まない動作において、前記Ｃアームの回動範囲を制限しないことが可能である、
請求項１に記載のロボット制御装置。
【請求項３】
前記制御部は、前記第１状態を含む動作における前記Ｃアームの回動範囲と、前記第１状態を含まない動作における前記Ｃアームの回動範囲とを、異なる回動範囲とすることが可能である、
請求項１又は２に記載のロボット制御装置。
【請求項４】
請求項１から３のうちいずれか一項に記載のロボット制御装置に制御される、
ロボット。
【請求項５】
請求項１から３のうちいずれか一項に記載のロボット制御装置と、
前記ロボット制御装置に制御されるロボットと、
を備えるロボットシステム。
【請求項６】
Ａ回動軸周りに回動可能なＡアームと、
前記Ａアームに対して、Ｂ回動軸周りに回動可能に設けられ、前記Ｂ回動軸の軸方向から見て前記Ａアームと重なる第１状態になることが可能であるＢアームと、
前記Ｂアームに対して、前記Ｂ回動軸の軸方向と交差する軸方向であるＣ回動軸周りに回動可能に設けられたＣアームと、を備えたロボットを制御する制御装置であって、
プロセッサーを備え、
前記プロセッサーは、
前記Ｃアームの回動範囲を制限する指令を実行するように構成されている、
ロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット制御装置、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
ロボットに所定の作業を行わせる技術の研究や開発が行われている。
【０００３】
これに関し、基台と、前記基台に設けられ、第１回動軸周りに回動可能な第１アームと、前記第１アームに設けられ、前記第１回動軸とは軸方向が異なる第２回動軸周りに回動可能な第２アームと、を含むロボットアームと、を備えるロボットであって、前記第２回動軸の軸方向から見て、前記第１アームと前記第２アームとが重なることが可能であり、前記ロボットアームまたは前記ロボットアームに設けられたエンドエフェクターにより対象物を載置可能な載置部の高さ方向の長さは、前記載置部と前記第１回動軸との距離の３．２倍以上であるロボットが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−８７２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなロボットは、エンドエフェクターを制御する制御装置等の他の物体をロボットアームに取り付けた場合、ロボットアームの動きに伴って当該物体とロボットアームとが干渉してしまう場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、Ａ回動軸周りに回動可能なＡアームと、前記Ａアームに対して、Ｂ回動軸周りに回動可能に設けられ、前記Ｂ回動軸の軸方向から見て前記Ａアームと重なる第１状態になることが可能である前記Ｂアームと、前記Ｂアームに対して、前記Ｂ回動軸の軸方向と交差する軸方向であるＣ回動軸周りに回動可能に設けられたＣアームと、を備えたロボットを制御する制御装置であって、前記Ｃアームの回動範囲を制限することが可能である制御部を備える、ロボット制御装置である。
これにより、ロボット制御装置は、Ｃアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができる。
【０００７】
また、本発明の他の態様は、ロボット制御装置において、前記制御部は、前記第１状態を含む動作において、前記Ｃアームの回動範囲を制限するとともに、前記第１状態を含まない動作において、前記Ｃアームの回動範囲を制限しないことが可能である、構成が用いられてもよい。
これにより、ロボット制御装置は、第１状態を含む動作における回動であってＣアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができる。
【０００８】
また、本発明の他の態様は、ロボット制御装置において、前記制御部は、前記第１状態を含む動作における前記Ｃアームの回動範囲と、前記第１状態を含まない動作における前記Ｃアームの回動範囲とを、異なる回動範囲とすることが可能である、構成が用いられてもよい。
これにより、ロボット制御装置は、第１状態を含む動作におけるＣアームの回動範囲を第１状態を含まない動作におけるＣアームの回動範囲と異なる回動範囲とすることにより、Ｃアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができる。
【０００９】
また、本発明の他の態様は、上記に記載のロボット制御装置に制御される、ロボットである。
これにより、ロボットは、Ｃアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができる。
【００１０】
また、本発明の他の態様は、上記に記載のロボット制御装置と、前記ロボット制御装置に制御されるロボットと、を備えるロボットシステムである。
これにより、ロボットシステムは、Ｃアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができる。
【００１１】
また、本発明の他の態様は、Ａ回動軸周りに回動可能なＡアームと、前記Ａアームに対して、Ｂ回動軸周りに回動可能に設けられ、前記Ｂ回動軸の軸方向から見て前記Ａアームと重なる第１状態になることが可能であるＢアームと、前記Ｂアームに対して、前記Ｂ回動軸の軸方向と交差する軸方向であるＣ回動軸周りに回動可能に設けられたＣアームと、を備えたロボットを制御する制御装置であって、プロセッサーを備え、前記プロセッサーは、前記Ｃアームの回動範囲を制限する指令を実行するように構成されている、ロボット制御装置である。
これにより、ロボット制御装置は、Ｃアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット２０の構成の一例を示す図である。
【図３】第２回動軸ＡＸ２がロボット座標系ＲＣにおけるＸ軸と平行な場合であり、且つ、関節Ｊ２が関節Ｊ１よりも当該Ｘ軸の負方向側に位置している場合において、ロボット座標系ＲＣにおけるＹ軸の負方向に向かって見たロボット２０の一例を示す図である。
【図４】図３に示したロボット２０をロボット座標系ＲＣにおけるＸ軸の負方向に向かって見た場合のロボット２０の一例を示す図である。
【図５】ロボット２０が関節Ｊ３を正又は負それぞれの方向に回動させた場合におけるマニピュレーターＭと基台Ｂとの干渉の起こり易さの違いを示す図である。
【図６】ロボット２０が行うことが可能な動作のうちの第１状態を経る動作の一例を示す図である。
【図７】第４アームＬ４が有する面のうちロボット座標系ＲＣにおけるＸ軸の正方向側の面に物体ＥＣが取り付けられた場合におけるロボット２０であって図３に示したロボット２０の一例を示す図である。
【図８】ロボット制御装置３０が実行する動作プログラムに含まれるコマンドＣの一例を示す図である。
【図９】ロボット制御装置３０の機能構成の一例を示す図である。
【図１０】ロボット制御装置３０が行う処理の流れの一例を示すフローチャートである。
【図１１】複数の情報処理装置によってロボット制御装置３０が構成される場合におけるロボット制御装置３０のハードウェア構成の一例である。
【発明を実施するための形態】
【００１３】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１４】
＜ロボットシステムの構成＞
まず、図１〜図６を参照し、ロボットシステム１の構成について説明する。図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、例えば、ロボット２０を備える。なお、ロボットシステム１は、ロボット２０に加えて、撮像部（例えば、ロボット２０と別体のカメラ、ロボット２０に行わせたい所望の動作をロボット２０に教示する教示装置）等の他の装置を備える構成であってもよい。また、図２は、ロボット２０の構成の一例を示す図である。
【００１５】
以下では、説明の便宜上、重力方向（鉛直下方向）を下方向又は下と称し、下方向と反対の方向を上方向又は上と称して説明する。また、以下では、一例として、下方向が、ロボット２０のロボット座標系ＲＣにおけるＺ軸の負方向と一致する場合について説明する。なお、下方向は、当該負方向と一致しない構成であってもよい。
【００１６】
ロボット２０は、基台Ｂと、基台Ｂにより支持された可動部Ａと、ロボット制御装置３０を備える単腕ロボットである。単腕ロボットは、この一例における可動部Ａのような１本の腕を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上の腕（例えば、２本以上の可動部Ａ）を備えるロボットである。なお、複腕ロボットのうち、２本の腕を備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本の腕を備える双腕ロボットであってもよく、３本以上の腕（例えば、３本以上の可動部Ａ）を備える複腕ロボットであってもよい。
【００１７】
基台Ｂの形状は、例えば、長手方向が上下方向に沿ったほぼ直方体形状である。基台Ｂは、中空となっている。基台Ｂが有する面のうちの１つには、フランジＢＦが設けられている。また、フランジＢＦには、可動部Ａが設けられている。すなわち、基台Ｂは、フランジＢＦによって可動部Ａを支持している。なお、基台Ｂの形状は、このような形状に代えて、可動部Ａを支持可能な形状であれば、立方体形状、円柱形状、多面体形状等の他の形状であってもよい。また、基台Ｂは、フランジＢＦが設けられていない構成であってもよい。
【００１８】
以下では、説明の便宜上、基台Ｂが有する面のうちフランジＢＦが設けられている面を上面と称し、基台Ｂが有する面のうちフランジＢＦが設けられている面と反対側の面を下面と称して説明する。基台Ｂは、例えば、設置面ＢＳに設置される。設置面ＢＳは、基台Ｂを設置可能な面であれば如何なる面であってもよく、例えば、床面、壁面、天井面、治具の上面等である。以下では、一例として、設置面ＢＳが、ロボット座標系ＲＣにおけるＸ軸及びＹ軸によって張られる平面であるＸＹ平面と平行である場合について説明する。なお、設置面ＢＳは、当該ＸＹ平面と非平行であってもよい。
【００１９】
ここで、設置面ＢＳには、上下方向に貫通し、基台Ｂを設置面ＢＳの下の空間（例えば、床下の空間）に挿入可能な図示しない開口部が形成されている。当該開口部は、フランジＢＦよりも小さい。ユーザーは、フランジＢＦと設置面ＢＳとを複数本のボルトによって固定することにより、基台Ｂを設置面ＢＳに設置する（取り付ける）ことができる。すなわち、フランジＢＦと設置面ＢＳのそれぞれには、複数のボルトのそれぞれが挿入される複数の貫通孔が形成されている。なお、フランジＢＦと設置面ＢＳとの固定方法は、他の方法であってもよい。この場合、設置面ＢＳには、当該開口部が形成されていない構成であってもよい。
【００２０】
可動部Ａは、マニピュレーターＭと、エンドエフェクターＥを備える。
【００２１】
マニピュレーターＭは、６つのアーム（リンク）である第１アームＬ１〜第６アームＬ６と、６つの関節である関節Ｊ１〜関節Ｊ６を備える。基台Ｂと第１アームＬ１は、関節Ｊ１によって連結される。第１アームＬ１と第２アームＬ２は、関節Ｊ２によって連結される。第２アームＬ２と第３アームＬ３は、関節Ｊ３によって連結される。第３アームＬ３と第４アームＬ４は、関節Ｊ４によって連結される。第４アームＬ４と第５アームＬ５は、関節Ｊ５によって連結される。第５アームＬ５と第６アームＬ６は、関節Ｊ６によって連結される。すなわち、マニピュレーターＭを備える可動部Ａは、６軸垂直多関節型のアームである。なお、可動部Ａは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。また、第２アームＬ２は、Ａアームの一例である。この場合、第３アームＬ３は、Ｂアームの一例であり、第４アームＬ４は、Ｃアームの一例である。
【００２２】
関節Ｊ１は、下に向かって関節Ｊ１を見た場合の反時計回りを正、当該場合の時計回りを負とし、関節Ｊ１の回動における基準となる位置から正負それぞれの方向に３６０°以上回動可能な関節である。以下では、一例として、関節Ｊ１が、当該正負それぞれの方向に３６０°回動可能な関節である場合について説明する。なお、関節Ｊ１は、これに代えて、３６０°未満回動可能な関節であってもよい。
【００２３】
関節Ｊ２は、第２回動軸ＡＸ２に沿った２つの方向のうち第３アームＬ３から第２アームＬ２に向かう方向に向かって関節Ｊ２を見た場合の反時計回りを正、当該場合の時計回りを負とし、関節Ｊ２の回動における基準となる位置から正負それぞれの方向に３６０°以上回動可能な関節である。以下では、一例として、関節Ｊ２が、当該正負それぞれの方向に３６０°回動可能な関節である場合について説明する。なお、関節Ｊ２は、これに代えて、３６０°未満回動可能な関節であってもよい。
【００２４】
関節Ｊ３は、第３回動軸ＡＸ３に沿った２つの方向のうち第３アームＬ３から第２アームＬ２に向かう方向に向かって関節Ｊ３を見た場合の反時計回りを正、当該場合の時計回りを負とし、関節Ｊ３の回動における基準となる位置から正負それぞれの方向に３６０°以上回動可能な関節である。以下では、一例として、関節Ｊ３が、当該正負それぞれの方向に３６０°回動可能な関節である場合について説明する。なお、関節Ｊ３は、これに代えて、３６０°未満回動可能な関節であってもよい。
【００２５】
関節Ｊ４は、第４回動軸ＡＸ４に沿った２つの方向のうち第４アームＬ４から第３アームＬ３に向かう方向に向かって関節Ｊ４を見た場合の反時計回りを正、当該場合の時計回りを負とし、関節Ｊ４の回動における基準となる位置から正負それぞれの方向に３６０°以上回動可能な関節である。以下では、一例として、関節Ｊ４が、当該正負それぞれの方向に３６０°回動可能な関節である場合について説明する。なお、関節Ｊ４は、これに代えて、３６０°未満回動可能な関節であってもよい。
【００２６】
関節Ｊ５は、第３回動軸ＡＸ３に沿った２つの方向のうち第３アームＬ３から第２アームＬ２に向かう方向に向かって関節Ｊ５を見た場合の反時計回りを正、当該場合の時計回りを負とし、関節Ｊ５の回動における基準となる位置から正負それぞれの方向に１２５°回動可能な関節である。なお、関節Ｊ５は、当該正負それぞれの方向に１２５°より小さい角度回動可能な関節であってもよく、当該正負それぞれの方向に１２５°より大きい角度回動可能な関節であってもよい。
【００２７】
関節Ｊ６は、第６回動軸ＡＸ６に沿った２つの方向のうちエンドエフェクターＥから第６アームＬ６に向かう方向に向かって関節Ｊ６を見た場合の反時計回りを正、当該場合の時計回りを負とし、関節Ｊ６の回動における基準となる位置から正負それぞれの方向に３６０°以上回動可能な関節である。以下では、一例として、関節Ｊ６が、当該正負それぞれの方向に３６０°回動可能な関節である場合について説明する。なお、関節Ｊ６は、これに代えて、３６０°未満回動可能な関節であってもよい。
【００２８】
なお、図１及び図２のそれぞれでは、図を簡略化するため、関節Ｊ１〜関節Ｊ６のそれぞれが備えているアクチュエーター、エンコーダー、減速機、ブレーキ等の構成を省略している。当該ブレーキは、電磁ブレーキであってもよく、メカニカルブレーキであってもよい。また、関節Ｊ１〜関節Ｊ６のうちの一部又は全部は、減速機を備えない構成であってもよい。また、関節Ｊ１〜関節Ｊ６のうちの一部又は全部は、ブレーキを備えない構成であってもよい。
【００２９】
第１アームＬ１は、基台Ｂに対して、関節Ｊ１の回動軸である第１回動軸ＡＸ１（例えば、図３参照）周りに回動可能である。第２アームＬ２は、第１アームＬ１に対して、関節Ｊ２の回動軸である第２回動軸ＡＸ２（例えば、図３参照）周りに回動可能である。第３アームＬ３は、第２アームＬ２に対して、関節Ｊ３の回動軸である第３回動軸ＡＸ３（例えば、図３参照）周りに回動可能である。第４アームＬ４は、第３アームＬ３に対して、関節Ｊ４の回動軸である第４回動軸ＡＸ４（例えば、図３参照）周りに回動可能である。第５アームＬ５は、第４アームＬ４に対して、関節Ｊ５の回動軸である第５回動軸ＡＸ５（例えば、図３参照）周りに回動可能である。第６アームＬ６は、第５アームＬ５に対して、関節Ｊ６の回動軸である第６回動軸ＡＸ６（例えば、図３参照）周りに回動可能である。
【００３０】
ここで、図３〜図６を参照し、マニピュレーターＭについてより詳しく説明する。図３は、第２回動軸ＡＸ２がロボット座標系ＲＣにおけるＸ軸と平行な場合であり、且つ、関節Ｊ２が関節Ｊ１よりも当該Ｘ軸の負方向側に位置している場合において、ロボット座標系ＲＣにおけるＹ軸の負方向に向かって見たロボット２０の一例を示す図である。図４は、図３に示したロボット２０をロボット座標系ＲＣにおけるＸ軸の負方向に向かって見た場合のロボット２０の一例を示す図である。
【００３１】
図３及び図４に示したように、基台Ｂの上面から基台Ｂの下面に向かう方向が下方向と一致しているため、関節Ｊ２は、関節Ｊ１よりも上側に位置している。
【００３２】
また、関節Ｊ２は、第１回動軸ＡＸ１の延長上に位置していない。これは、図３に示したように、第１アームＬ１の形状が、ロボット座標系ＲＣにおけるＹ軸の負方向に向かってロボット２０を見た場合において、屈曲した形状であるためである。この一例において、第１アームＬ１の形状は、ロボット座標系ＲＣにおけるＹ軸の負方向に向かってロボット２０を見た場合において、丸みを帯びてほぼＬ字型に湾曲した形状である。具体的には、第１アームＬ１は、４つの部位である部位Ｌ１１〜部位Ｌ１４によって構成されている。部位Ｌ１１は、図３において、第１アームＬ１を構成する４つの部位のうち、基台Ｂから第１回動軸ＡＸ１に沿って上方向に延伸している部位のことである。部位Ｌ１２は、当該４つの部位のうち、部位Ｌ１１の上端からロボット座標系ＲＣにおけるＸ軸の負方向に延伸する部位のことである。部位Ｌ１３は、当該４つの部位のうち、部位Ｌ１２の端部のうち部位Ｌ１１と反対側の端部から上方向に延伸している部位のことである。部位Ｌ１４は、当該４つの部位のうち、部位Ｌ１３の端部のうち部位Ｌ１２と反対側の端部から当該Ｘ軸の正方向に延伸する部位のことである。ここで、部位Ｌ１１〜部位Ｌ１４は、一体として第１アームＬ１を構成してもよく、別体として第１アームＬ１を構成してもよい。また、図３において、部位Ｌ１２と部位Ｌ１３は、ロボット座標系ＲＣにおけるＹ軸の負方向に向かってロボット２０を見た場合、ほぼ直交している。
【００３３】
また、第２回動軸ＡＸ２は、第１回動軸ＡＸ１と交差しない。これは、図４に示したように、第１アームＬ１の形状が、ロボット座標系ＲＣにおけるＸ軸の負方向に向かってロボット２０を見た場合において、当該Ｙ軸の負方向に向かって延伸している部分を有しているからである。図４に示した例では、第１アームＬ１の形状は、当該場合において、丸みを帯びたほぼ直角三角形の形状であるためである。そして、関節Ｊ２は、当該部分に設けられている。このため、図４に示した例では、当該場合において、第２回動軸ＡＸ２は、ロボット座標系ＲＣにおけるＹ軸の負方向に向かって第１回動軸ＡＸ１から距離ＯＦ離れている。これにより、ロボット２０は、前述した関節Ｊ３の正の方向に関節Ｊ３を回動させて第３回動軸ＡＸ３周りにおいて第３アームＬ３を回動させた場合において、マニピュレーターＭと基台Ｂとが干渉してしまうことを抑制することができる。その結果、ロボット２０は、前述した関節Ｊ３の負の方向に関節Ｊ３を回動させて第３回動軸ＡＸ３周りにおいて第３アームＬ３を回動させた場合、マニピュレーターＭと基台Ｂとが干渉しやすくなっている。図５は、ロボット２０が関節Ｊ３を正又は負それぞれの方向に回動させた場合におけるマニピュレーターＭと基台Ｂとの干渉の起こり易さの違いを示す図である。図５における左図に示したように、ロボット２０は、関節Ｊ３の負の方向に関節Ｊ３を回動させて第３回動軸ＡＸ３周りにおいて第３アームＬ３を回動させた場合、関節Ｊ６の重心の位置を基台Ｂよりも下側に位置させることができている。すなわち、当該場合、当該左図では、ロボット２０が、マニピュレーターＭと基台Ｂとが干渉してしまうことを抑制することができていることが分かる。一方、図５における右図に示したように、ロボット２０は、関節Ｊ３の正の方向に関節Ｊ３を回動させて第３回動軸ＡＸ３周りにおいて第３アームＬ３を回動させた場合、関節Ｊ６の重心の位置を基台Ｂよりも下側に位置させることができていない。すなわち、当該場合、当該右図では、ロボット２０が、マニピュレーターＭと基台Ｂとが干渉し易くなっていることが分かる。
【００３４】
図３及び図４に戻る。第２アームＬ２の形状は、長手形状である。第２アームＬ２は、第１アームＬ１の先端部、すなわち、部位Ｌ１４の端部のうち部位Ｌ１３と反対側の端部に接続されている。
【００３５】
第３アームＬ３の形状は、長手形状である。第３アームＬ３は、第２アームＬ２の端部のうち第１アームＬ１と接続されている端部と反対側の端部に接続されている。
【００３６】
第４アームＬ４は、第３アームＬ３の先端部、すなわち、第３アームＬ３の端部のうち第２アームＬ２が接続されている端部と反対側の端部に接続されている。第４アームＬ４には、互いに対向する一対の支持部である支持部Ｌ４１及び支持部Ｌ４２が形成されている。支持部Ｌ４１及び支持部Ｌ４２は、第４アームＬ４の第５アームＬ５との接続に用いられる。すなわち、第４アームＬ４は、第５アームＬ５を支持部Ｌ４１及び支持部Ｌ４２の間に位置させ、支持部Ｌ４１及び支持部Ｌ４２によって第５アームＬ５に接続されている。なお、第４アームＬ４は、これに限られず、１つの支持部によって第５アームＬ５を支持する構成（片持ち）であってもよく、３つ以上の支持部によって第５アームＬ５を支持する構成であってもよい。
【００３７】
第５アームＬ５は、前述したように、支持部Ｌ４１及び支持部Ｌ４２の間に位置し、支持部Ｌ４１及び支持部Ｌ４２に接続される。
【００３８】
第６アームＬ６の形状は、平板形状である。すなわち、第６アームＬ６は、フランジである。第６アームＬ６は、第５アームＬ５の端部のうち第４アームＬ４と反対側の端部に接続されている。また、第６アームＬ６には、当該端部にエンドエフェクターＥが接続される。
【００３９】
この一例において、第２回動軸ＡＸ２と第３回動軸ＡＸ３とは、平行である。また、第３回動軸ＡＸ３と第４回動軸ＡＸ４とは、交差する。図３及び図４に示した例では、第３回動軸ＡＸ３と第４回動軸ＡＸ４とが直交している。また、第４回動軸ＡＸ４と第５回動軸ＡＸ５とは、交差している。当該例では、第４回動軸ＡＸ４と第５回動軸ＡＸ５とが直交している。また、第５回動軸ＡＸ５と第６回動軸ＡＸ６とは、交差している。当該例では、第５回動軸ＡＸ５と第６回動軸ＡＸ６とが直交している。
【００４０】
ここで、マニピュレーターＭでは、第２回動軸ＡＸ２の軸方向から見て、第１アームＬ１と第２アームＬ２とが重なることが可能である。なお、本実施形態において、ある２つのアームをある方向から見た場合に当該２つのアームが重なるとは、当該２つのアームのうちの一方のアームが他方のアームに重なっている面積の割合が所定割合以上であることを示す。所定割合は、例えば、９割であるが、これに限られず、他の割合であってもよい。
【００４１】
また、マニピュレーターＭでは、第２回動軸ＡＸ２の軸方向から見て、第２アームＬ２と第３アームＬ３とが重なることが可能である。すなわち、マニピュレーターＭは、マニピュレーターＭの状態を、関節Ｊ２を回動させることにより、第２アームＬ２と第３アームＬ３とが重なる状態である第１状態にすることができる。図３及び図４に示したマニピュレーターＭの状態は、第１状態の一例である。
【００４２】
マニピュレーターＭの状態を第１状態にすることができる理由は、第３アームＬ３が、関節Ｊ２の回動によって第２アームＬ２と干渉しない形状及び大きさに形成されているためである。例えば、マニピュレーターＭの状態が第１状態である場合、且つ、第４回動軸ＡＸ４が第１回動軸ＡＸ１と平行である場合、第１回動軸ＡＸ１に沿った方向において第２アームＬ２の長さは、第３アームＬ３の長さよりも長い。
【００４３】
また、マニピュレーターＭの状態を第１状態にすることができるため、ロボット２０は、第１状態を経る動作を行うことが可能である。図６は、ロボット２０が行うことが可能な動作のうちの第１状態を経る動作の一例を示す図である。図６に示した点Ｐ１は、第１位置を示す。第１位置は、第１回動軸ＡＸ１に直交する方向から見て、基台Ｂの設置された設置面ＢＳよりも下の位置であってエンドエフェクターＥが届く位置であれば、如何なる位置であってもよい。また、図６に示した点Ｐ２は、第２位置を示す。第２位置は、第１回動軸ＡＸ１に直交する方向から見て、第２回動軸ＡＸ２よりも上の位置であってエンドエフェクターＥが届く位置であれば如何なる位置であってもよい。図６に示した例では、第１位置のロボット座標系ＲＣにおけるＸ軸座標及びＹ軸座標は、第２位置のロボット座標系ＲＣにおけるＸ軸座標及びＹ軸座標と一致している。すなわち、図６に示した動作では、ロボット２０は、第１状態を経ることにより、エンドエフェクターＥの位置（例えば、エンドエフェクターＥの重心の位置によって表される）を、第１位置から第２位置（この一例において、下から上）へほぼ直線に沿って移動させることができる。その結果、ロボット２０は、ロボット２０の一部が他の物体と干渉しないようにするために設ける空間を小さくすることができる。すなわち、ロボット２０は、周囲の物体との空間を狭くすることができる。
【００４４】
図２に戻る。マニピュレーターＭが備える関節Ｊ１〜関節Ｊ６のそれぞれに備えられたアクチュエーターは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、当該アクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００４５】
エンドエフェクターＥは、物体を保持するエンドエフェクターである。この一例において、エンドエフェクターＥは、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を保持する。なお、エンドエフェクターＥは、これに代えて、空気の吸引、磁力、他の治具等によって物体を持ち上げることにより当該物体を保持する構成であってもよい。なお、この一例において、保持するとは、物体を持ち上げることが可能な状態にすることを意味する。図１に示した例では、エンドエフェクターＥは、ロボット２０が作業を行う対象となる物体である対象物Ｏを予め保持している。対象物Ｏは、製品に組み付ける産業用の部品、部材等である。当該例では、図を簡略化するため、対象物Ｏが、直方体形状の物体として示されている。なお、対象物Ｏは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Ｏの形状は、直方体形状に代えて、円盤形状、平板形状、円柱形状等の他の形状であってもよい。
【００４６】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００４７】
ロボット制御装置３０は、少なくとも１つのプロセッサーと、少なくとも１つのメモリーとによって構成される。ロボット制御装置３０において、当該少なくとも１つのプロセッサーは、１つの情報処理装置に備えられる構成であってもよく、複数の情報処理装置に分散されて備えられている構成であってもよい。また、ロボット制御装置３０において、当該少なくとも１つのメモリーは、１つの情報処理装置に備えられる構成であってもよく、複数の情報処理装置に分散されて備えられている構成であってもよい。
【００４８】
図１に示した例では、ロボット制御装置３０は、情報処理装置ＰＣ１に備えられた１つのプロセッサーであるプロセッサー３１と、情報処理装置ＰＣ１に備えられた１つのメモリーであるメモリー３２とによって構成されている。なお、情報処理装置ＰＣ１は、プロセッサー３１に加えて、他のプロセッサーを備える構成であってもよく、メモリー３２に加えて、他のメモリーを備える構成であってもよい。
【００４９】
情報処理装置ＰＣ１は、例えば、ワークステーション、デスクトップＰＣ（Personal  Computer）、ノートＰＣ、タブレットＰＣ、多機能携帯電話端末（スマートフォン）、通信機能付きの電子書籍リーダー、ＰＤＡ（Personal  Digital  Assistant）等である。
【００５０】
プロセッサー３１は、例えば、ＣＰＵ（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）等を含む。すなわち、メモリー３２は、一時的な記憶装置と、非一時的な記憶装置とを含む。なお、メモリー３２は、情報処理装置ＰＣ１に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。メモリー３２は、プロセッサー３１又は他の装置のプロセッサーが処理する各種の情報、指令３２１、３２２等のコンピューターにより実行可能な各種の指令（例えば、プログラム、コード等）、各種の画像等を格納する。
【００５２】
指令３２１及び指令３２２はそれぞれ、プロセッサー３１がロボット制御装置３０を構成するためにプロセッサー３１が実行する複数の指令（すなわち、コンピューターにより実行可能な複数の指令）のうちの一部である。
【００５３】
また、ロボット制御装置３０は、他の装置と通信を行うため、ハードウェア機能部として通信部３４を備える。
通信部３４は、ＵＳＢ等のデジタル入出力ポート、イーサネット（登録商標）ポート等を含んで構成される。
【００５４】
ロボット制御装置３０は、この一例において、基台Ｂの内側に設けられている（内蔵されている）。なお、ロボット制御装置３０は、これに代えて、ロボット２０と別体であってもよい。この場合、ロボットシステム１は、ロボット２０と、ロボット２０と別体のロボット制御装置３０とを少なくとも備える。
【００５５】
ここで、ロボット制御装置３０は、ロボット２０を制御する。より具体的には、ロボット制御装置３０は、例えば、ユーザーによりメモリー３２に予め記憶された動作プログラムに基づいて、動作プログラムによって指定された動作をロボット２０に行わせる。
【００５６】
＜ロボットを動作させる際にロボット制御装置が行う処理の概要＞
以下、ロボット２０を動作させる際にロボット制御装置３０が行う処理の概要について説明する。
【００５７】
前述したように、ロボット制御装置３０は、メモリー３２に予め記憶された動作プログラムに基づいて、動作プログラムによって指定された動作をロボット２０に行わせる。この際、ロボット制御装置３０は、動作プログラムによって指定された複数の教示点を予め決められた順に特定し、特定した教示点にロボット２０の制御点が一致した場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を逆運動学に基づいて算出する。
【００５８】
ここで、ロボット２０の制御点は、ロボット２０の可動部Ａとともに動く仮想的な点であり、例えば、ＴＣＰ（Tool  Center  Point）である。以下では、一例として、当該制御点が、関節Ｊ６の重心の位置に設定されている場合について説明する。なお、当該制御点は、可動部Ａの他の位置に設定される構成であってもよい。当該制御点の位置は、当該重心の位置に対応付けられた三次元局所座標系である制御点座標系の原点の位置によって表される。すなわち、当該原点の位置は、当該重心の位置と一致している。また、当該原点は、当該重心とともに動く。また、当該制御点の姿勢は、制御点座標系における各座標軸のロボット座標系ＲＣにおける方向によって表される。なお、当該制御点の位置及び姿勢は、可動部Ａに対応付けられた他の位置及び姿勢によって表される構成であってもよい。
【００５９】
動作プログラムによって指定される複数の教示点のそれぞれは、ロボット２０がロボット２０の制御点を一致させる目標となる仮想的な点のことである。各教示点には、位置及び姿勢が対応付けられている。ある教示点に当該制御点を一致させた場合、当該制御点の位置及び姿勢は、当該教示点の位置及び姿勢と一致する。
【００６０】
ここで、ロボット２０は、マニピュレーターＭの状態を前述した第１状態とすることができる。換言すると、ロボット２０は、第１状態を含む動作を行うことができる。第１状態を含む動作では、ロボット２０は、図７に示したように第４アームＬ４（より具体的には、第４アームＬ４の外側）に他の物体ＥＣが取り付けられている場合、関節Ｊ４の回動（すなわち、第４アームＬ４の回動）にともなって物体ＥＣと第２アームＬ２とが干渉してしまうことがある。物体ＥＣは、如何なる物体であってもよく、例えば、エンドエフェクターＥを制御する制御装置等の他の装置、治具、各種の配線、各種のセンサー等である。図７は、第４アームＬ４が有する面のうちロボット座標系ＲＣにおけるＸ軸の正方向側の面に物体ＥＣが取り付けられた場合におけるロボット２０であって図３に示したロボット２０の一例を示す図である。
【００６１】
このような物体ＥＣとロボット２０（より具体的には、第２アームＬ２）との干渉を抑制するため、ロボット制御装置３０は、関節Ｊ４の回動範囲（すなわち、第４アームＬ４の回動範囲）を制限することが可能である。これにより、ロボット制御装置３０は、第４アームＬ４に何らかの物体（この一例において、物体ＥＣ）が取り付けられた場合における第４アームＬ４の回動に伴う物体ＥＣとロボット２０との干渉を抑制することができる。
【００６２】
ロボット制御装置３０に関節Ｊ４の回動範囲を制限させる場合、ユーザーは、関節Ｊ４の回動を禁止する範囲である回動禁止範囲、又は関節Ｊ４の回動を許可する範囲である回動許可範囲を動作プログラムによってロボット制御装置３０に設定する。以下では、一例として、ユーザーが、回動禁止範囲を動作プログラムによってロボット制御装置３０に設定（指定）する場合について説明する。
【００６３】
回動禁止範囲が設定された場合、ロボット制御装置３０は、第１状態を含む動作において、関節Ｊ４の回動範囲を制限するとともに、第１状態を含まない動作において、関節Ｊ４の回動範囲を制限しない。すなわち、当該場合、第１状態を含む動作における関節Ｊ４の回動範囲（すなわち、第４アームＬ４の回動範囲）と、第１状態を含まない動作における関節Ｊ４の回動範囲（すなわち、第４アームＬ４の回動範囲）とは、異なる回動範囲である。これにより、ロボット制御装置３０は、第１動作を含む動作をロボット２０に行わせる際において、第４アームＬ４に物体ＥＣが取り付けられた場合において物体ＥＣとロボット２０とが干渉してしまうことを抑制することができる。なお、当該場合、ロボット制御装置３０は、第１状態を含む動作、及び第１状態を含まない動作の両方において、関節Ｊ４の回動範囲を制限する構成であってもよい。また、当該場合、ロボット制御装置３０は、第１状態を含む動作と異なる動作において、関節Ｊ４の回動範囲を制限し、当該動作以外の動作において、関節Ｊ４の回動範囲を制限しない構成であってもよい。
【００６４】
ユーザーは、この一例において、図８に示したコマンドＣを動作プログラムに記載することにより、コマンドＣが示す１以上の回動禁止範囲をロボット制御装置３０に設定（指定）することができる。図８は、ロボット制御装置３０が実行する動作プログラムに含まれるコマンドＣの一例を示す図である。図８に示したコマンドＣは、回動禁止範囲をロボット制御装置３０に設定するコマンドの一例である。図８に示した例では、コマンドＣは、２つの回動禁止範囲をロボット制御装置３０に設定する。コマンドＣに含まれる部分のうち「ｃｏｍｍａｎｄｎａｍｅ」によって示される部分Ｃ１は、コマンドＣを示す名称である。また、コマンドＣの部分のうち「ｘｘｘ１」によって示される部分Ｃ２は、ロボット制御装置３０が関節Ｊ４の回動範囲を制限する対象となるロボットを指定する部分であり、この一例において、ロボット２０を識別する識別情報（例えば、ロボット２０を示すＩＤ）を示す。また、コマンドＣの部分のうち「Ａ＿ｍｉｎ」によって示される部分Ｃ３は、１つ目の回動禁止範囲の最小値をロボット制御装置３０に対して指定する部分である。コマンドＣにおいて、例えば、当該最小値は、前述の正の方向又は負の方向における関節Ｊ４の回動角（すなわち、±３６０°のいずれか）によって指定される。なお、コマンドＣにおいて当該最小値は、正の方向又は負の方向における関節Ｊ４の回動角に応じた他の情報によって指定される構成であってもよい。また、コマンドＣの部分のうち「Ａ＿ｍａｘ」によって示される部分Ｃ４は、１つ目の回動禁止範囲の最大値をロボット制御装置３０に対して指定する部分である。コマンドＣにおいて、例えば、当該最大値は、正の方向又は負の方向における関節Ｊ４の回動角（すなわち、±３６０°のいずれか）によって指定される。なお、「Ａ＿ｍａｘ」によって指定される回動角は、「Ａ＿ｍｉｎ」によって示される回動角よりも大きい。また、コマンドＣにおいて当該最大値は、正の方向又は負の方向における関節Ｊ４の回動角に応じた他の情報によって指定される構成であってもよい。また、コマンドＣの部分のうち「Ｂ＿ｍｉｎ」によって示される部分Ｃ５は、２つ目の回動禁止範囲の最小値をロボット制御装置３０に対して指定する部分である。コマンドＣにおいて、例えば、当該最小値は、正の方向又は負の方向における関節Ｊ４の回動角（すなわち、±３６０°のいずれか）によって指定される。なお、コマンドＣにおいて当該最小値は、正の方向又は負の方向における関節Ｊ４の回動角に応じた他の情報によって指定される構成であってもよい。また、コマンドＣの部分のうち「Ｂ＿ｍａｘ」によって示される部分Ｃ６は、２つ目の回動禁止範囲の最大値をロボット制御装置３０に対して指定する部分である。コマンドＣにおいて、例えば、当該最大値は、正の方向又は負の方向における関節Ｊ４の回動角（すなわち、±３６０°のいずれか）によって指定される。なお、「Ｂ＿ｍａｘ」によって指定される回動角は、「Ｂ＿ｍｉｎ」によって示される回動角よりも大きい。なお、コマンドＣにおいて当該最大値は、正の方向又は負の方向における関節Ｊ４の回動角に応じた他の情報によって指定される構成であってもよい。ここで、ロボット制御装置��０は、動作プログラムによって、１つ目の回動禁止範囲と２つ目の回動禁止範囲とが重なるように２つの回動禁止範囲を設定することが可能な構成であってもよく、１つ目の回動禁止範囲と２つ目の回動禁止範囲とが重なるように２つの回動禁止範囲をロボット制御装置３０に設定することが不可能な構成であってもよい。
【００６５】
なお、ロボット制御装置３０は、動作プログラムに含まれる複数のコマンドのうち、先頭コマンドと末尾コマンドとによって囲まれた範囲に含まれるコマンドを実行する場合において、コマンドＣによって設定された回動禁止範囲を有効にする構成であってもよい。先頭コマンドは、当該回動禁止範囲を有効にするコマンドのことである。また、末尾コマンドは、当該回動禁止範囲を無効にするコマンドのことである。これにより、ロボット制御装置３０は、動作プログラムに含まれるコマンドのうちロボット２０の動作のうちユーザーが所望する動作を表すコマンドを実行する場合において当該回動禁止範囲を有効にし、動作プログラムに含まれるコマンドのうちロボット２０の動作のうちユーザーが所望しない動作を表すコマンドを実行する場合において当該回動禁止範囲を無効にすることができる。ロボット制御装置３０は、当該回動禁止範囲が有効である場合、ロボット２０を動作させる際、関節Ｊ４の回動範囲を制限し、関節Ｊ４の回動角が当該回動禁止範囲に含まれる回動角と一致しないようにロボット２０を動作させる。一方、ロボット制御装置３０は、当該回動禁止範囲が無効である場合、ロボット２０を動作させる際、関節Ｊ４の回動範囲を制限せず、例えば、ロボット２０の動作量が最小になるようにロボット２０を動作させる。当該動作量は、この一例において、関節Ｊ１〜関節Ｊ６それぞれの回動角の大きさ（絶対値）の合計によって表される。なお、当該動作量は、これに代えて、ロボット２０に応じた他の量によって表される構成であってもよい。
【００６６】
また、ロボット制御装置３０は、コマンドＣ、先頭コマンド、末尾コマンドのそれぞれを用いて、動作プログラムに含まれるコマンドのうちロボット２０の動作を表すコマンドのそれぞれ毎に、設定された回動禁止範囲の有効と無効とを変更することができる構成であってもよい。この場合、ロボット制御装置３０は、当該コマンドのそれぞれ毎に、互いに異なる回動禁止範囲を設定することが可能な構成であってもよい。これにより、ユーザーは、ロボット２０の動作毎に、互いに異なる回動禁止範囲をロボット制御装置３０に設定することができる。
【００６７】
＜ロボット制御装置の機能構成＞
以下、図９を参照し、ロボット制御装置３０の機能構成について説明する。図９は、ロボット制御装置３０の機能構成の一例を示す図である。
【００６８】
ロボット制御装置３０は、メモリー３２と、制御部３６を備える。
【００６９】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、ロボット制御部３６１を備える。制御部３６が備えるロボット制御部３６１は、例えば、プロセッサー３１が、メモリー３２に記憶された指令３２１、３２２等の各種の指令を実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００７０】
ロボット制御部３６３は、メモリー３２に予め記憶された動作プログラムをメモリー３２から読み出す。ロボット制御部３６３は、読み出した動作プログラムに基づいて、ロボット２０を動作させる。ロボット制御部３６１が行う具体的な処理については、図１０において説明する。
【００７１】
＜ロボット制御装置が行う処理＞
以下、図１０を参照し、ロボット制御装置３０が行う処理の流れについて説明する。図１０は、ロボット制御装置３０が行う処理の流れの一例を示すフローチャートである。
【００７２】
ロボット制御部３６１は、メモリー３２に予め記憶された動作プログラムをメモリー３２から読み出す（ステップＳ１１０）。なお、この一例では、説明を簡略化するため、動作プログラムには、前述したコマンドＣと、教示点を指定するコマンドである教示点指定コマンドとの２種類のコマンドのみが含まれている場合について説明する。
【００７３】
次に、ロボット制御部３６１は、ステップＳ１１０においてメモリー３２から読み出した動作プログラムに基づいて、動作プログラムに含まれるコマンドを上から順に１つずつ選択し、選択したコマンドについてステップＳ１３０〜ステップＳ１７０の処理を繰り返し行う（ステップＳ１２０）。
【００７４】
ステップＳ１２０においてコマンドが選択された後、ロボット制御部３６１は、ステップＳ１２０において選択されたコマンドがコマンドＣであるか否かを判定する（ステップＳ１３０）。
【００７５】
ステップＳ１２０において選択されたコマンドがコマンドＣである場合（ステップＳ１３０−ＹＥＳ）、ロボット制御部３６１は、ステップＳ１２０において選択されたコマンドＣが示す回動禁止範囲をロボット制御装置３０に設定する（ステップＳ１４０）。例えば、ロボット制御部３６１は、当該回動禁止範囲を示す情報をメモリー３２に記憶させることにより、ロボット制御装置３０に当該回動禁止範囲を設定する。
【００７６】
ステップＳ１４０の処理が行われた後、ロボット制御部３６１は、ステップＳ１２０に遷移し、次のコマンドを選択する。なお、ロボット制御部３６１は、ステップＳ１２０において未選択のコマンドが存在しない場合、処理を終了する。
【００７７】
一方、ステップＳ１２０において選択されたコマンドがコマンドＣではない場合（ステップＳ１３０−ＮＯ）、ロボット制御部３６１は、当該コマンドが教示点指定コマンドであると判定し、当該コマンド示す教示点を、ロボット２０の制御点を一致させる目標となる教示点として特定する（ステップＳ１５０）。
【００７８】
次に、ロボット制御部３６１は、ステップＳ１５０において特定した教示点と、逆運動学とに基づいて、ロボット２０の制御点が当該教示点と一致した場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を算出する（ステップＳ１６０）。
【００７９】
次に、ロボット制御部３６１は、ロボット制御装置３０に回動禁止範囲が設定されているか否かを判定する。ロボット制御部３６１は、この判定結果と、ステップＳ１６０において算出した回動角とに基づいて、ロボット２０を動作させ、ステップＳ１５０において特定した教示点にロボット２０の制御点を一致させる（ステップＳ１７０）。
【００８０】
具体的には、ロボット制御部３６１は、回動禁止範囲を示す情報がメモリー３２に記憶されている場合、ロボット制御装置３０に回動禁止範囲が設定されていると判定する。この場合、ロボット制御部３６１は、例えば、ロボット２０の動作量が最小になるようにロボット２０を動作させることによりステップＳ１５０において特定した教示点にロボット２０の制御点を一致させた場合に、ロボット２０の動作が第１状態を含む動作になるか否かを判定する。ロボット制御部３６１は、ロボット２０の動作が第１状態を含む動作になると判定した場合、当該情報が示す回動禁止範囲に含まれる回動角と関節Ｊ４の回動角とが一致しないようにロボット２０を動作させ、ステップＳ１５０において特定した教示点にロボット２０の制御点を一致させる。一方、ロボット制御部３６１は、ロボット２０の動作が第１状態を含む動作にならないと判定した場合、ロボット２０の動作量が最小になるようにロボット２０を動作させ、当該教示点にロボット２０の制御点を一致させる。
【００８１】
一方、ロボット制御部３６１は、回動禁止範囲を示す情報がメモリー３２に記憶されていない場合、ロボット制御装置３０に回動禁止範囲が設定されていないと判定する。この場合、ロボット制御部３６１は、ロボット２０の動作量が最小になるようにロボット２０を動作させ、ステップＳ１５０において特定した教示点にロボット２０の制御点を一致させる。
【００８２】
ステップＳ１７０の処理が行われた後、ロボット制御部３６１は、ステップＳ１２０に遷移し、次のコマンドを選択する。なお、ロボット制御部３６１は、ステップＳ１２０において未選択のコマンドが存在しない場合、処理を終了する。
【００８３】
なお、上記において説明したロボット制御装置３０は、１つのプロセッサー３１と、１つのメモリー３２とを備える情報処理装置ＰＣ１に代えて、図１１に示したように、複数の情報処理装置のうちの一部又は全部によって構成されてもよい。図１１は、複数の情報処理装置によってロボット制御装置３０が構成される場合におけるロボット制御装置３０のハードウェア構成の一例である。
【００８４】
図１１に示した情報処理装置ＰＣ２及び情報処理装置ＰＣ３は、情報処理装置ＰＣ１と同様の構成であるため、説明を省略する。
【００８５】
図１１に示した例では、情報処理装置ＰＣ１と、情報処理装置ＰＣ２とが無線又は有線によって互いに通信可能に接続されている。また、当該例では、情報処理装置ＰＣ１と、情報処理装置ＰＣ３とがＬＡＮ（Local  Area  Network）を介して無線又は有線によって互いに通信可能に接続されている。また、当該例では、情報処理装置ＰＣ２と、情報処理装置ＰＣ３とがＬＡＮを介して無線又は有線によって互いに通信可能に接続されている。
【００８６】
また、図１１に示した例では、ロボット制御装置３０は、プロセッサー３１と、プロセッサー４１と、プロセッサー５１のうちの少なくとも１つと、メモリー３２と、メモリー４２と、メモリー５２のうちの少なくとも１つとによって構成される。プロセッサー３１と、プロセッサー４１と、プロセッサー５１のうちの２つ以上によってロボット制御装置３０が構成される場合、ロボット制御装置３０を構成する当該２つ以上のプロセッサーは、通信部による通信を行うことにより、連携してロボット制御装置３０の機能を実現する。また、当該場合、当該２つ以上のプロセッサーは、メモリー３２と、メモリー４２と、メモリー５２のうちの少なくとも１つに格納された指令に基づいて、ロボット制御装置３０の機能による処理を実行する。
【００８７】
図１１に示した例のように、ロボット制御装置３０が複数の情報処理装置によって構成される場合、教示装置４０は、当該複数の情報処理装置の少なくとも１つと通信可能に接続される。
【００８８】
また、マニピュレーターＭは、第３回動軸ＡＸ３の軸方向から見て、第３アームＬ３と第４アームＬ４とが重なることが可能であるように構成されてもよい。また、マニピュレーターＭは、第５回動軸ＡＸ５の軸方向から見て、第５アームＬ５と第６アームＬ６とが重なることが可能であるように構成されてもよい。
【００８９】
また、第２回動軸ＡＸ２と第３回動軸ＡＸ３とは、非平行であってもよい。また、第３回動軸ＡＸ３と第４回動軸ＡＸ４とは、直行せずに交差している構成であってもよく、交差していない構成であってもよい。また、第４回動軸ＡＸ４と第５回動軸ＡＸ５とは、直行せずに交差している構成であってもよく、交差していない構成であってもよい。また、第５回動軸ＡＸ５と第６回動軸ＡＸ６とは、直行せずに交差している構成であってもよく、交差していない構成であってもよい。
【００９０】
以上のように、ロボット制御装置３０は、Ｃアーム（この一例において、第４アームＬ４）の回動範囲（この一例において、関節Ｊ４の回動範囲）を制限することが可能である。これにより、ロボット制御装置３０は、Ｃアームに何らかの物体（この一例において、物体ＥＣ）が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボット（この一例において、ロボット２０）との干渉を抑制することができる。
【００９１】
また、ロボット制御装置３０は、第１状態を含む動作において、Ｃアームの回動範囲を制限するとともに、第１状態を含まない動作において、Ｃアームの回動範囲を制限しないことが可能である。これにより、ロボット制御装置３０は、第１状態を含む動作における回動であってＣアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができる。
【００９２】
また、ロボット制御装置３０は、第１状態を含む動作におけるＣアームの回動範囲と、第１状態を含まない動作におけるＣアームの回動範囲とを、異なる回動範囲とすることが可能である。これにより、ロボット制御装置３０は、第１状態を含む動作におけるＣアームの回動範囲を第１状態を含まない動作におけるＣアームの回動範囲と異なる回動範囲とすることにより、Ｃアームに何らかの物体が取り付けられた場合におけるＣアームの回動に伴う当該物体とロボットとの干渉を抑制することができる。
【００９３】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００９４】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００９５】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００９６】
１…ロボットシステム、２０…ロボット、３０…ロボット制御装置、３１、４１、５１…プロセッサー、３２、４２、５２…メモリー、３４、４４、５４…通信部、３５…表示部、３６…制御部、３２１、３２２…指令、３６１…ロボット制御部、ＡＸ１…第１回動軸、ＡＸ２…第２回動軸、ＡＸ３…第３回動軸、ＡＸ４…第４回動軸、ＡＸ５…第５回動軸、ＡＸ６…第６回動軸、Ｂ…基台、Ｅ…エンドエフェクター、Ｊ１〜Ｊ６…関節、Ｌ１…第１アーム、Ｌ２…第２アーム、Ｌ３…第３アーム、Ｌ４…第４アーム、Ｌ５…第５アーム、Ｌ６…第６アーム、Ｍ…マニピュレーター、ＰＣ１、ＰＣ２、ＰＣ３…情報処理装置
【図１】
2019055466.tif 000003
【図２】
2019055466.tif 000004
【図３】
2019055466.tif 000005
【図４】
2019055466.tif 000006
【図５】
2019055466.tif 000007
【図６】
2019055466.tif 000008
【図７】
2019055466.tif 000009
【図８】
2019055466.tif 000010
【図９】
2019055466.tif 000011
【図１０】
2019055466.tif 000012
【図１１】
2019055466.tif 000013