(57)【要約】【課題】リアルタイムに作業計画を最適化する。【解決手段】仮想空間内に配置される複数の装置のモデルを用いて、複数の装置を備えるロボットシステム２の動作を模擬するシミュレータ１１と、ロボットシステム２の状態を取得するシステム状態取得部１２と、システム状態取得部１２によって取得された状態及びユーザにより指示された作業の内容に基づいてシミュレータ１１を動作させることにより、ロボットシステム２が実施する作業計画を動的に生成する作業計画生成部１３と、を備える作業計画装置１を提供する。【選択図】図１
2018106542.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内に配置される複数の装置のモデルを用いて、前記複数の装置を備えるロボットシステムの動作を模擬するシミュレータと、
前記ロボットシステムの状態を取得するシステム状態取得部と、
該システム状態取得部によって取得された状態及びユーザにより指示された作業の内容に基づいて前記シミュレータを動作させることにより、前記ロボットシステムが実施する作業計画を動的に生成する作業計画生成部と、
を備える作業計画装置。
【請求項２】
前記作業計画生成部が、前記作業に含まれる各工程にかかる時間と、前記各工程が実施されるまでの待機時間と、前記各工程で使用される装置同士が干渉する時間とに基づいて全体の作業時間を算出し、該全体の作業時間が最小となるように最適化を行う請求項１に記載の作業計画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の装置を備えるシステムにおいて実施される作業の作業計画を行うのに好適な作業計画装置に関する。
【背景技術】
【０００２】
従来、工作機械やロボット等の装置を備えるシステムにおいて複数の工程を含む作業を実施する場合、例えば、ガントチャートを事前に作成することで、各装置に対する各工程の割り当て及び各工程を実施する順序が決定される。
また、例えば、特許文献１には、複数の部材を用いて完成品を製造する際の作業計画を予め作成する装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１７６３８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、実際に作業が実施される際に、上述のように事前に作成された作業スケジュールのみに基づいて作業が実施されることが必ずしも最適とは限らない。例えば、稼働中のシステム内の消耗品の状況や当該システムに備えられる装置の稼働状況等も考慮した上で、リアルタイムに作業計画を最適化することが望まれている。
【０００５】
本発明は、上述した事情に鑑みてなされたものであって、リアルタイムに作業計画を最適化することができる作業計画装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明は以下の手段を提供する。
本発明の第一の態様は、仮想空間内に配置される複数の装置のモデルを用いて、前記複数の装置を備えるロボットシステムの動作を模擬するシミュレータと、前記ロボットシステムの状態を取得するシステム状態取得部と、該システム状態取得部によって取得された状態及びユーザにより指示された作業の内容に基づいて前記シミュレータを動作させることにより、前記ロボットシステムが実施する作業計画を動的に生成する作業計画生成部と、を備える作業計画装置である。
【０００７】
この構成によれば、ユーザにより指示された作業の内容と、システム状態取得部によって取得された複数の装置を備えるロボットシステムの状態とに基づいて、ロボットシステムの動作を模擬するシミュレータを動作させることによって、ロボットシステムによって実施される作業計画が動的に生成される。
【０００８】
このようにすることで、稼働中のロボットシステム状態に応じてリアルタイムに作業計画を最適化することができる。
【０００９】
上記本発明の一態様に係る作業計画装置において、前記作業計画生成部が、前記作業に含まれる各工程にかかる時間と、前記各工程が実施されるまでの待機時間と、前記各工程で使用される装置同士が干渉する時間とに基づいて全体の作業時間を算出し、該全体の作業時間が最小となるように最適化を行う構成であってもよい。
【発明の効果】
【００１０】
本発明によれば、リアルタイムに作業計画を最適化することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る作業計画装置の概略構成を示すブロック図である。
【図２】図１に示される作業計画装置に接続されるロボットシステムの一例を示す図である。
【図３】図１に示される作業計画装置において実行される処理を示すフローチャートである。
【図４】図２に示されるロボットシステムにおける工程及び工程情報の例を示す図表である。
【図５】図２に示されるロボットシステムにおいて実施される作業の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明の一実施形態に係る作業計画装置について図面を参照して説明する。
図１に示されるように、作業計画装置１は、これに接続されるロボットシステム２において実施される作業を計画するために、ユーザから指示された作業内容を受信し、当該作業内容に基づいて作業計画を生成するように構成されている。
【００１３】
作業計画装置１は、ＣＰＵ(Central  Processing  Unit）と、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）等の主記憶装置と、ＨＤＤ（Hard  Disk  Drive）等の補助記憶装置と、キーボード、マウス、タッチパネル等の入力装置と、モニタ等の出力装置と、外部機器との間で種々のデータのやりとりを行う外部インタフェース等を備えている。補助記憶装置には、以下で説明する各機能を実現するプログラムが格納されており、プロセッサが補助記憶装置からプログラムを主記憶装置に読み出すことにより、プログラムが実行される。
【００１４】
作業計画装置１は、機能的には、シミュレータ１１と、システム状態取得部１２と、作業計画生成部１３と、を備えている。シミュレータ１１は作業計画生成部１３に接続されている。システム状態取得部１２は、ロボットシステム２と、作業計画生成部１３とに接続されている。作業計画生成部１３は、ロボットシステム２と、シミュレータ１１と、システム状態取得部１２とに接続されている。
【００１５】
ロボットシステム２は、ロボットを含む複数の装置から構成されるシステムである。
シミュレータ１１は、作業計画装置１に接続されたロボットシステム２における動作を模擬するように構成されている。より具体的には、シミュレータ１１は、仮想空間上に、ロボットシステム２に備えられるロボット、工作機械等のモデルを配置し、作業計画生成部１３において生成された作業計画に従って、仮想空間上のモデルを動作させることにより、ロボットシステム２における動作を模擬するように構成されている。これにより、作業計画に含まれる各工程の実行時間を算出することができる。また、シミュレータ１１において、仮想空間上のモデルを動作させるので、装置間で生じる干渉を検出することができる。
【００１６】
システム状態取得部１２は、ロボットシステム２のシステム状態に関する情報を取得するように構成されている。システム状態に関する情報には、例えば、ロボットシステム２に備えられる各装置が待機状態か稼働状態かの情報、実行中の工程の予定終了時刻、各装置で使用している工具の摩耗状態等の情報が含まれる。なお、実行中の工程の予定終了時刻は、実際に当該工程の開始時刻と、作業計画生成部１３において生成された作業計画に含まれる、シミュレータ１１によって算出された当該工程の実行時間とから算出することができる。
【００１７】
作業計画生成部１３は、ユーザによって入力された作業内容と、システム状態取得部１２によって取得されたシステム状態に関する情報と、作業計画装置１が備える不図示の補助記憶装置に格納された工程情報テーブルとを参照してシミュレータ１１を動作させ、作業内容を実施するのにかかる全体作業時間を算出し、全体作業時間が最も短くなるように最適化された作業計画を生成するように構成されている。
【００１８】
なお、工程情報テーブルとは、ロボットシステム２で実行可能な複数の工程及びこれらの工程に対応する工程情報が表されたテーブルである。
また、工程情報には、工程を実行するのに使用可能な装置、装置の動作プログラム、排他的に使用する資源及び他の工程との順序関係等の拘束条件が含まれている。
なお、最適化の手法としては、種々の手法が考えられるが、例えば、遺伝的アルゴリズム等が使用されてもよい。
【００１９】
以下、上述の作業計画装置１において行われる処理の具体的な実施例を図２から図５を参照して説明する。
本実施例においては、ロボットシステム２が、図２に示されるように、工作機械＃１及び工作機械＃２で参照される工作機械２１と、ロボット＃１及びロボット＃２で参照されるロボット２２と、を備えると仮定する。
【００２０】
また、本実施例における前提条件として、
・ワーク供給口から供給される複数のワークが工作機械２１で加工され、ワーク排出口から排出されること
・ワークの移動はロボット２２によって行われること
・ワークは裏表の２面があり、夫々に対して別加工（加工Ａ、加工Ｂ）が行われること
・加工Ａ，Ｂは工作機械＃１又は工作機械＃２のいずれでもよいこと
・加工Ａ，Ｂを行うには、ロボット２２によって裏表をひっくり返す段取替えを必要とすること
を考慮する。
【００２１】
この場合、ロボットシステム２で実行可能な複数の工程及びこれらの工程に対応する工程情報を表した工程情報テーブルの一例を図４に示す。図４に示されるように、ロボットシステム２において実行可能な工程として、工程Ｐ１〜Ｐ１８までが存在する。各工程の工程情報には、使用可能装置及び動作プログラム、排他的使用資源及び拘束条件が含まれている。
【００２２】
図４において、“ＰＲＧ＿Ｒ１＿１”から“ＰＲＧ＿Ｒ１＿８”の夫々は、対応する工程を実行するために必要なロボット＃１の動作プログラムを表している。“ＰＲＧ＿Ｒ２＿１”から“ＰＲＧ＿Ｒ２＿７”の夫々は、対応する工程を実行するために必要なロボット＃２の動作プログラムを表している。“ＰＲＧ＿Ｍ１＿１”及び“ＰＲＧ＿Ｍ１＿２”の夫々は、対応する工程を実行するために必要な工作機械＃１の動作プログラムを表している。“ＰＲＧ＿Ｍ２＿１”及び“ＰＲＧ＿Ｍ２＿２”の夫々は、対応する工程を実行するために必要な工作機械＃２の動作プログラムを表している。これらの動作プログラムは、作業計画装置１に備えられる不図示の補助記憶装置又はロボットシステム２に備えられる不図示の記憶装置等に格納されている。
【００２３】
また、本実施例においては、ロボット＃１とロボット＃２とが干渉する可能性のある仮置台が、排他的使用資源となる。従って、図４に示されるように、仮置台を使用する工程に対応する工程情報の排他的資源には、仮置台が設定されている。
工程情報の工程順拘束条件は、その工程を実施する前に実施しておくことが必要な工程が設定されている。
【００２４】
図４に示される工程情報テーブルは、作業計画装置１が備える不図示の補助記憶装置に格納されており、必要に応じて参照される。
以下、図３に示されるフローチャートを参照して、作業計画装置１で実行される処理について説明する。
まず、作業計画装置１の作業計画生成部１３に、ユーザによって作業内容が入力される（図３のステップＳ１）。本実施例での作業内容は、「ワークに対して加工Ａ及び加工Ｂを行うこと」である。
【００２５】
次に、システム状態取得部１２によって、現在のロボットシステム２におけるシステム状態に関する情報が取得される（図３のステップＳ２）。
続いて、作業計画生成部１３によって、作業計画の生成が行われる（図３のステップＳ３）。ここでは、入力された作業内容をゴールとして、工程情報テーブルと、システム状態取得部１２によって取得されたシステム状態に関する情報とに基づいて、作業計画が生成される。例えば、乱数を発生させて、作業内容を実施可能な装置、工程及び工程順の組合せを見つけることができる。このようにして、本実施例では、図５に示されるように、工程Ｐ１でワークがワーク供給口に投入されると、ロボット＃１が工程Ｐ２→Ｐ７を実施し、ロボット＃２が工程Ｐ５→Ｐ１０を実施し、工作機械＃２が工程Ｐ１６を実施し、ロボット＃２が、Ｐ４→Ｐ７→Ｐ５→Ｐ１０を実施し、続いて、工作機械＃２が工程Ｐ１７を実施し、最後に、ロボット＃２が工程Ｐ１３を実施して、工程Ｐ１８でワークがワーク排出口から排出されるという一連の作業計画が生成されている。
【００２６】
次に、作業計画生成部１３によって、生成された作業計画に基づいてシミュレータ１１が動作させられ、シミュレータ１１による全体作業時間が計測される（図３のステップＳ４）。全体作業時間とは、各工程の作業時間の合計と、工程間の依存関係によって生じる待機時間と、装置間の干渉によって生じるインターロック時間とを加算したものである。本実施例においては、全体作業時間とは、図５に示されるように、工程Ｐ１から工程Ｐ１８までの間の時間である。
【００２７】
図５において、１番目に供給されたワークに対する作業計画では、待機時間及びインターロック時間が設定されていないため、各工程の作業時間の合計が、全体作業時間となる。一方、２番目に供給されたワークに対する作業計画では、工程Ｐ５と工程Ｐ８とが排他的使用資源である仮置台を同時に使用するとロボット＃１とロボット＃２とが干渉するため、ロボット＃１で実施される工程Ｐ８の直前にインターロック時間が設けられている。さらに、工程Ｐ８の直後には待機時間を設け、ロボット＃２が使用できるようになるまで待機するように計画されている。この場合の全体時間は、各工程の作業時間の合計と、インターロック時間と、待機時間とを加算したものとなる。
【００２８】
次に、ステップＳ５において、シミュレータ１１によって計測された全体作業時間が最適化されたものであるか否かが判断される。なお、最適化とは、全体作業時間が最小となる作業計画を生成することである。ステップＳ５において、最適化されていないと判断された場合は、最適化されたと判断されるまで、ステップＳ２からステップＳ４を繰り返す。最適化されたか否かの基準としては、例えば、繰り返し回数を採用することができる。
【００２９】
ステップＳ５で最適化されたと判断されると、作業計画生成部１３によって、最適化がなされた作業計画がロボットシステム２に送信される（図３のステップＳ６）。ロボットシステム２では、作業計画生成部１３によって送信された作業計画に基づいて、ロボットシステム２に備えられる各装置が動作する。
【００３０】
最後に、ステップＳ７において、ロボットシステム２における作業が終了したか否かが判断される。ロボットシステム２における作業が終了していないと判断された場合には、ステップＳ２に戻り、システム状態取得部１２によって、稼働中のロボットシステム２のシステム状態に関する情報が取得される。そして、続くステップＳ３では、システム状態取得部１２によって取得されたロボットシステム２のシステム状態に関する情報に基づいて、動的に、作業計画が更新され、最適化が図られる。これにより、稼働中の現時点におけるシステム状態に則して作業計画が更新されるので、より高効率にロボットシステム２を稼働させることができる。
【００３１】
なお、上述したような動的に作業計画を行う場合には、作業計画生成部１３における処理をリアルタイムで実行することが求められる。そこで、各工程において現在実行している工程の予定終了時刻から、次に作業計画生成部１３がロボットシステム２に対して指示を出すことができる残り時間を推定し、推定された残り時間をパラメータとして使用して、最適化の範囲を決定する。
【００３２】
例えば、残り時間が少ない場合には、予め決めておいた工程の近傍に対してのみ最適化を行い、残り時間が長い場合には、より広い範囲で最適化を行うこととしてもよい。また、残り時間に応じてインターロックを細かく、又は、大雑把に設定することとしてもよい。
【００３３】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００３４】
例えば、上述の実施形態では、作業計画装置１が、ロボットシステム２の作業計画を生成する場合を例に挙げて説明したがこれに限定されない。ロボットを備えないシステムの作業計画を生成してもよいし、作業者による作業を含むシステムの作業計画を生成してもよい。
【００３５】
また、上述の実施形態では、インターロックが生じる場合、対象となる工程を実施する装置はインターロック時間の間は動作しないこととしたが、例えば、低速に動作させる等することによって、他の装置と干渉しないようにしてもよい。
【符号の説明】
【００３６】
１  作業計画装置
２  ロボットシステム
１１  シミュレータ
１２  システム状態取得部
１３  作業計画生成部
２１  工作機械
２２  ロボット
【図１】
2018106542.tif 000003
【図２】
2018106542.tif 000004
【図３】
2018106542.tif 000005
【図４】
2018106542.tif 000006
【図５】
2018106542.tif 000007