(57)【要約】【課題】動作プログラムに確認情報の記述がない場合であっても、ロボットと周辺機器との衝突を未然に防ぐことのできる制御装置を得ること。【解決手段】制御装置５０は、予め作成された動作プログラムに従って動作を行うロボット５の制御装置であって、ロボットの現在位置が動作プログラムに従う動作の開始位置に適しているか確認するための確認情報が動作プログラム内に存在するか判別する情報判別部１と、確認情報が存在しないと判別された場合にロボットの動作を停止させる停止部１と、を備えることを特徴とする。【選択図】図１
2012200841.tif 000002
【特許請求の範囲】
【請求項１】
予め作成された動作プログラムに従って動作を行うロボットの制御装置であって、
前記ロボットの現在位置が前記動作プログラムに従う動作の開始位置に適しているか確認するための確認情報が前記動作プログラム内に存在するか判別する情報判別部と、
前記確認情報が存在しないと判別された場合に前記ロボットの動作を停止させる停止部と、を備えることを特徴とする制御装置。
【請求項２】
前記確認情報は、前記ロボットの現在位置が前記動作プログラムに従う動作の開始位置に適した動作可能開始領域内であるかロボット移動命令前に確認させる現在位置確認命令であることを特徴とする請求項１に記載の制御装置。
【請求項３】
前記確認情報は、前記動作プログラムに従う動作の開始位置に適した動作可能開始領域を示す動作可能開始領域情報であることを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記ロボットの現在位置が前記動作可能開始領域内であるか判別する現在位置判別部、をさらに備え、
前記停止部は、前記ロボットの現在位置が前記動作可能開始領域外であると判別した場合に、前記ロボットの動作を停止させることを特徴とする請求項２または３に記載の制御装置。
【請求項５】
予め作成された動作プログラムに従って動作を行うロボットの制御方法であって、
前記ロボットの現在位置が前記動作プログラムに従う動作の開始位置に適しているか確認するための確認情報が前記動作プログラム内に存在するか判別し、
前記確認情報が存在しないと判別された場合に前記ロボットの動作を停止させることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置および制御方法に関し、特にロボットの動作開始時に他機器との干渉を防止するための制御装置等に関するものである。
【背景技術】
【０００２】
従来、産業用ロボットとして多関節型のロボットが用いられている（例えば特許文献１を参照）。このようなロボットは、所望の作業を行わせるように制御装置によって制御される。ロボットに所望の作業を行わせるために、動作プログラムに基づいて動作が制御される。
【０００３】
例えば、ロボットの先端部に設けられたハンドなどを、動作プログラムに基づいて目的の位置に移動させる制御が行われる。この場合、制御装置が備える命令解釈部によって動作プログラムの命令が解釈される。そして、命令解釈部から渡されたデータに基づいて動作制御部によってロボットが制御される。このような動作プログラムの実行はプログラム実行指令部によって開始される。また、動作プログラムは、例えば、ロボットの動作内容を示す動作命令群と、位置データを示す移動目的位置群とを有して構成される。
【０００４】
プログラム実行指令部によって動作プログラムが実行されると、命令解釈部は、予め記憶された動作プログラムから１行ずつ命令を読み出し解釈する。例えば、命令解釈部が動作命令群から第１ステップ「ＭＯＶ  Ｐ１」を読み出す。命令解釈部は「ＭＯＶ」が移動を示し、「Ｐ１」が移動目的位置を示している場合、移動目的位置群から「Ｐ１」の位置データを取り出し、動作制御部へ“Ｐ１へ移動する”ためのデータを渡す。動作制御部は命令解釈部から渡されたデータに基づきロボットの先端部（ハンド）を「Ｐ１」へ移動させる。
【０００５】
このようにロボットの移動が制御された場合、動作プログラムの開始時のハンドの位置によっては、そこから移動目的位置「Ｐ１」に移動させると周辺機器に衝突してしまう場合があるという問題があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１７２６８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このような、ロボットと周辺機器との衝突を避けるために、ロボットが動作しても干渉のおそれの少ない安全な位置へロボットを移動させる命令を動作プログラムの最初に記述したり、ロボットの現在位置を動作前にチェックさせる命令を動作プログラムの最初に記述したりすることで安全領域にいるかどうかの判断をする等の対処を行うことも多かった。しかしながら、このような安全対策はユーザーに任されており、動作プログラムへの記述忘れや、安全な位置へ移動させることに気づかないケースもあり、ロボット立ち上げ時のトラブル発生要因となってしまうという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、動作開始時にロボットが安全な位置から外れている場合や、動作プログラムに安全確認（確認情報）の記述がない場合であっても、ロボットと周辺機器との衝突を未然に防ぐことのできる制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、予め作成された動作プログラムに従って動作を行うロボットの制御装置であって、ロボットの現在位置が動作プログラムに従う動作の開始位置に適しているか確認するための確認情報が動作プログラム内に存在するか判別する情報判別部と、確認情報が存在しないと判別された場合にロボットの動作を停止させる停止部と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ロボットの動作開始時に、動作プログラム内に確認情報が存在することを判別し、確認情報が存在しない場合にロボットの動作を停止するので、動作プログラムに確認情報を記述し忘れた場合でも、ロボットと周辺機器と衝突を未然に防ぐことができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施の形態１にかかる制御装置の概略構成を示すブロック図である。
【図２】図２は、動作プログラムの１例を示す図である。
【図３】図３は、プログラム実行可否判定部の処理フローを示すフローチャートである。
【図４】図４は、ロボットの現在位置と動作可能開始領域の概念を示す図である。
【図５】図５は、本発明の実施の形態２で実行される動作プログラムを示す図である。
【図６】図６は、実施の形態２でのプログラム実行可否判定部の処理フローを示すフローチャートである。
【図７】図７は、比較例としての制御装置の概略構成を示すブロック図である。
【図８】図８は、比較例としての動作プログラムの１例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態にかかる制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１にかかる制御装置の概略構成を示すブロック図である。制御装置５０は、プログラム実行可否判定部（情報判別部，停止部，現在位置判別部）１、動作プログラム２、命令解釈部３、動作制御部４、およびプログラム実行指令部６を備える。
【００１４】
プログラム実行可否判定部１は、動作プログラム２を実行してもよいかどうかを判定する。動作プログラム２は、記憶部１０に予め記憶されており、ロボット５の動作内容が記述されている。命令解釈部３は、ロボット５の動作プログラム２の命令を解釈し動作制御部４へデータを渡す。動作制御部４は、命令解釈部３から渡されたデータに基づきロボット５を動作させる。プログラム実行指令部６は、動作プログラム２の実行を開始させる。
【００１５】
図２は、動作プログラム２の１例を示す図である。動作プログラム２は、ロボット５の動作命令群２１と、ロボット５の移動目的位置群２２を有して構成される。ロボット５の動作命令群２１の第１ステップの命令「ＳＦＰ  ＰＳＡＦＥ，ΔＸ，ΔｔＹ，ΔＺ」は、ロボット５の現在位置が指定された安全領域であるかどうかをチェックする現在位置確認命令（確認情報）である。
【００１６】
次に、制御装置５０によるロボット５の制御動作について説明する。プログラム実行指令部６から動作プログラム２の実行を指令されたプログラム実行可否判定部１は対象の動作プログラム２の動作命令群を第１ステップから順次チェックする。
【００１７】
図３は、プログラム実行可否判定部１の処理フローを示すフローチャートである。ステップＳ１で、動作プログラム２内に、ロボットの移動命令前に現在位置確認命令が有るか否かをチェックする。現在位置確認命令がなければ（ステップＳ１，Ｎｏ）、プログラムの実行を停止しエラー表示しユーザーに現在位置確認命令がないことを知らせる（ステップＳ４）。
【００１８】
現在位置確認命令がある場合には（ステップＳ１，Ｙｅｓ）、ロボット５の現在位置と現在位置確認命令に記述された位置データから作られる領域（動作可能開始領域）を比較し、領域内であるかどうかをチェックする（ステップＳ２）。
【００１９】
現在位置確認命令に記述された位置データから作られる領域は例えば、ＰＳＡＦＥ＝（ＸＳ，ＹＳ，ＺＳ，ＡＳ，ＢＳ，ＣＳ）であることから、以下の直方体領域として示される。
Ｘ：  ＸＳ−ΔＸ／２  〜  ＸＳ＋ΔＸ／２
Ｙ：  ＹＳ−ΔＹ／２  〜  ＹＳ＋ΔＹ／２
Ｚ：  ＺＳ−ΔＺ／２  〜  ＺＳ＋ΔＺ／２
【００２０】
ロボット５の現在位置がこの領域の外にある場合（ステップＳ２，Ｎｏ）、ロボット５を動作させることが安全でないとして、プログラムの実行を停止しエラー表示しユーザーに危険を知らせる（ステップＳ４）。
【００２１】
図２に示すような動作プログラム２であれば、第１ステップは「ＳＦＰ  ＰＳＡＦＥ，ΔＸ，ΔＹ，ΔＺ」で、ロボット５の現在位置が指定された安全領域内であるか否かをチェックする命令である。さらに、第２ステップのロボット移動命令「ＭＯＶ  Ｐ１」の前にあるため、ステップＳ１では「有り（Ｙｅｓ）」として次のステップＳ２の現在位置チェックを行い、指定領域内であれば（ステップＳ２，Ｙｅｓ）、プログラムの実行を許可する（ステップＳ３）。
【００２２】
図４は、ロボット５の現在位置と動作可能開始領域の概念を示す図である。図４では、動作可能開始領域８を破線で示している。動作可能開始領域８は、ロボット５が動作開始しても周辺機器７と干渉せずに動作できる領域を示している。動作可能開始領域８は、上述した「ＳＦＰ  ＰＳＡＦＥ，ΔＸ，ΔＹ，ΔＺ」で定義された安全領域に相当する。
【００２３】
動作プログラム２の実行が許可されば、命令解釈部３は、予め記憶された動作プログラム２から１行ずつ命令を読み出して解釈し、動作制御部４へデータを渡す。動作制御部４は命令解釈部３から渡されたデータに基づきロボット５を動作させる。
【００２４】
図４に示すように、ロボット５の移動対象部５ａが、動作可能開始領域８にあれば、ロボット５が周辺機器７に衝突せずに、移動目的位置Ｐ１に移動対象部５ａを移動させることができる。ここで、移動対象部５ａは、例えばロボット５の先端に設けられたハンドである。
【００２５】
図７は、比較例としての制御装置の概略構成を示すブロック図である。図８は、比較例としての動作プログラムの１例を示す図である。比較例としての動作プログラム７２の動作命令群２６には、ロボット５の現在位置が指定された安全領域であるかどうかをチェックする現在位置確認命令が記述されていない。移動目的位置群２７には、安全領域が定義されていない。また、比較例にかかる制御装置７０は、プログラム実行可否判定部を備えていない。
【００２６】
そのため、比較例としての制御装置７０によって動作プログラム７２が実行されると、ロボット５の現在位置を確認しないまま、「ＭＯＶ  Ｐ１」が実行され、ロボット５の移動対象部５ａが移動目的位置Ｐ１に移動される（図４も参照）。
【００２７】
したがって、動作プログラム７２の実行時に移動対象部５ａが位置Ｃ１にあれば、そのまま移動目的位置Ｐ１に移動させても、移動対象部５ａが周辺機器７に衝突しないが、動作プログラム７２の実行時に移動対象部５ａが位置Ｃ２にあれば、移動目的位置Ｐ１に移動させる過程で、移動対象部５ａと周辺機器７が位置Ｃ３において衝突してしまうおそれがある。
【００２８】
一方、本実施の形態の制御装置５０では、比較例としての動作プログラム７２を実行しようとした場合、図３に示すステップＳ１において、動作プログラム７２に現在位置確認命令がないとして、ステップＳ４に進み、プログラムの実行が停止されるとともにエラー表示がなされるので、未然に移動対象部５ａと周辺機器７との衝突を防ぐことができる。
【００２９】
また、動作プログラムを実行する前に、現在位置確認命令があるか否かが判別されるので、動作プログラムの作成者が現在位置確認命令を記述するのを忘れてしまった場合でも、未然に移動対象部５ａと周辺機器７との衝突を防ぐことができる。
【００３０】
また、ロボット５の現在位置が動作開始点領域にない場合、例えば位置Ｃ２にある場合には、ステップＳ２において、ロボット５の現在位置が動作開始点領域にないとして、ステップＳ４に進み、プログラムの実行が停止されるとともにエラー表示がなされるので、未然に移動対象部５ａと周辺機器７との衝突を防ぐことができる。
【００３１】
実施の形態２．
次に、本発明の実施の形態２について説明する。制御装置５０は、図１に示すものと同様の構成である。図５は、本発明の実施の形態２で実行される動作プログラム２０を示す図である。動作プログラム２０は、動作プログラム２０の属性として定義された動作可能開始領域情報（確認情報）２３と、ロボットの動作命令群２４と、ロボットの移動目的位置群２５とが記述されている。
【００３２】
次に動作について説明する。図６は、実施の形態２でのプログラム実行可否判定部１の処理フローを示すフローチャートである。
【００３３】
プログラム実行指令部６から動作プログラム２０の実行を指令されたプログラム実行可否判定部１は対象の動作プログラム２０に動作可能開始領域情報２３が定義されているかを確認し、もし定義されていなければ（ステップＳ１１，Ｎｏ）、動作プログラム２０の実行を停止するとともに、エラー表示して（ステップＳ１４）、動作可能開始領域が定義されていないことをユーザーに知らせる。
【００３４】
動作可能開始領域情報２３が定義されている場合は（ステップＳ１１，Ｙｅｓ）、ロボット５の現在位置と定義された動作可能開始領域を比較し、領域内であるかどうかをチェックする（ステップＳ１２）。なお、動作可能開始領域は、実施の形態１で説明したものと同様である。
【００３５】
ロボット５の現在位置が、定義された動作可能開始領域外であれば（ステップＳ１２，Ｎｏ）、動作プログラム２０の実行を停止するとともに、エラー表示する（ステップＳ１４）。ロボット５の現在位置が、定義された動作可能開始領域内であれば（ステップＳ１２，Ｙｅｓ）、動作プログラム２０の実行が許可される（ステップＳ１３）。
【００３６】
プログラムの実行が許可されれば、命令解釈部３は、予め記憶された動作プログラム２０から１行ずつ命令を読み出し解釈し、動作制御部４へデータを渡す。動作制御部４は命令解釈部３から渡されたデータに基づきロボットを動作させる。
【００３７】
本実施の形態の制御装置５０では、比較例としての動作プログラム７２を実行しようとした場合、図６に示すステップＳ１１において、動作プログラム７２に動作開始点領域が定義されていないとして、ステップＳ１４に進み、プログラムの実行が停止されるとともにエラー表示がなされるので、未然に移動対象部５ａと周辺機器７との衝突を防ぐことができる（図４も参照）。
【００３８】
また、動作プログラムを実行する前に、動作開始点領域が定義されているか否かが判別されるので、動作プログラムの作成者が動作開始点領域を定義するのを忘れてしまった場合でも、未然に移動対象部５ａと周辺機器７との衝突を防ぐことができる。
【００３９】
また、ロボット５の現在位置が動作開始点領域にない場合、例えば位置Ｃ２にある場合には、ステップＳ１２において、ロボット５の現在位置が動作開始点領域にないとして、ステップＳ１４に進み、プログラムの実行が停止されるとともにエラー表示がなされるので、未然に移動対象部５ａと周辺機器７との衝突を防ぐことができる。
【００４０】
なお、上記実施の形態では、ロボット５の自動運転開始時に、動作プログラム２，２０内に現在位置確認命令、あるいは動作プログラムの属性として定義された動作可能開始領域が存在することを確認したが、予め動作プログラムを作成するときに確認し、もし作成／定義されていないときにはユーザーへ知らせるように構成してもよい。
【産業上の利用可能性】
【００４１】
以上のように、本発明にかかる制御装置は、産業用ロボットの制御装置に有用である。
【符号の説明】
【００４２】
１  プログラム実行可否判定部（情報判別部，停止部，現在位置判別部）
２  動作プログラム
３  命令解釈部
４  動作制御部
５  ロボット
５ａ  移動対象部
６  プログラム実行指令部
７  周辺機器
８  動作可能開始領域
１０  記憶部
２０  動作プログラム
２１  動作命令群
２２  移動目的位置群
２３  動作可能開始領域情報
２４  動作命令群
２５  移動目的位置群
２６  動作命令群
２７  移動目的位置群
５０  制御装置
７０  制御装置
７２  動作プログラム
Ｃ１〜Ｃ３  位置
Ｐ１  移動目的位置
【図１】
2012200841.tif 000003
【図２】
2012200841.tif 000004
【図３】
2012200841.tif 000005
【図４】
2012200841.tif 000006
【図５】
2012200841.tif 000007
【図６】
2012200841.tif 000008
【図７】
2012200841.tif 000009
【図８】
2012200841.tif 000010