(57)【特許請求の範囲】
【請求項１】
ロボットを含む実行主体を１含んでおり開始タイミングが定義された作業単位を示すアクション、またはロボットを含む実行主体を複数含んでおり開始タイミングが定義された作業単位を示すアクションを複数含むアクション情報に基づき、前記アクションのうち前記実行主体を複数含むアクションを前記実行主体ごとに複数のアクションへ分割する分割部と、
前記分割部によって分割されたアクションを含む複数のアクション間の依存関係をあらわす依存情報に基づき、該複数のアクションのうち実行主体が一致する複数のアクションの少なくとも１の開始タイミングを調整する調整部と
を備える、作業計画装置。
【請求項２】
前記調整部は、
前記依存情報に基づき、前記実行主体が一致する複数のアクション同士が時間軸上で重複範囲をもたないように、前記開始タイミングを調整する同一主体調整部をさらに備える、請求項１に記載の作業計画装置。
【請求項３】
前記調整部は、
前記依存情報に基づき、前記実行主体が一致しない複数のアクションの２以上が時間軸上で重複範囲をもつように、前記開始タイミングを調整する主体間調整部をさらに備える、請求項１または２に記載の作業計画装置。
【請求項４】
前記アクション情報に基づき、前記分割部によって分割されたアクションに関する前記依存情報を生成する依存情報生成部をさらに備える、請求項１、２または３に記載の作業計画装置。
【請求項５】
前記アクション情報に基づき、各アクションに対して前記開始タイミングを定義する開始タイミング定義部をさらに備え、
前記分割部は、
前記開始タイミング定義部によって前記開始タイミングが定義されたアクションを分割する、請求項１〜４のいずれか１つに記載の作業計画装置。
【請求項６】
前記調整部は、
前記依存情報に基づき、前記分割部によって１つの前記アクションから分割された各アクションが時間軸について連続するように調整する分割元調整部をさらに備える、請求項１〜５のいずれか一つに記載の作業計画装置。
【請求項７】
前記調整部は、
前記依存情報に基づき、一の前記アクションの開始条件として他の前記アクションの終了が含まれる場合には、前記一のアクションの開始タイミングが前記他のアクションの終了タイミング以降となるように、前記一のアクションの開始タイミングを調整する待機調整部をさらに備える、請求項１〜５のいずれか一つに記載の作業計画装置。
【請求項８】
前記同一主体調整部は、
前記依存情報に基づき、前記実行主体が一致する複数のアクションのうち、時間軸について隣接するアクション間に所定の時間間隔が存在する場合には、開始タイミングが遅いほうの前記アクションの開始タイミングを開始タイミングが早いほうの前記アクションの終了タイミングへ近づける、請求項２に記載の作業計画装置。
【請求項９】
ロボットを含む実行主体を１含んでおり開始タイミングが定義された作業単位を示すアクション、またはロボットを含む実行主体を複数含んでおり開始タイミングが定義された作業単位を示すアクションを複数含むアクション情報に基づき、前記アクションのうち前記実行主体を複数含むアクションを前記実行主体ごとに複数のアクションへ分割する分割工程と、
前記分割工程によって分割されたアクションを含む複数のアクション間の依存関係をあらわす依存情報に基づき、該複数のアクションのうち実行主体が一致する複数のアクションの少なくとも１の開始タイミングを調整する調整工程と
を含む、作業計画装置による作業計画方法。
【請求項１０】
ロボットを含む実行主体を１含んでおり開始タイミングが定義された作業単位を示すアクション、またはロボットを含む実行主体を複数含んでおり開始タイミングが定義された作業単位を示すアクションを複数含むアクション情報に基づき、前記アクションのうち前記実行主体を複数含むアクションを前記実行主体ごとに複数のアクションへ分割する分割手順と、
前記分割手順によって分割されたアクションを含む複数のアクション間の依存関係をあらわす依存情報に基づき、該複数のアクションのうち実行主体が一致する複数のアクションの少なくとも１の開始タイミングを調整する調整手順と
をコンピュータに実行させる、作業計画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、作業計画装置、作業計画方法および作業計画プログラムに関する。
【背景技術】
【０００２】
従来、たとえばロボットなどの複数の実行主体の作業計画を作成する作業計画装置が知られている。かかる作業計画装置では、複数のロボットの動作命令どうしを組み合わせ、協調して作業するロボットの作業計画を生成する（たとえば、特許文献１参照）。
【０００３】
ここで、動作命令とは、たとえば作業点への作業などの一定の要素に従って分割されたロボットの教示データそれぞれに対応する動作をロボットに実行させる命令のことを指す。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２００３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術は、複数の実行主体についての作業計画を効率的に作成する点で更なる改善の余地がある。具体的には、上述した技術では、実行主体が複数となった場合、たとえば、複数のロボットで協調動作を行う場合などに、動作命令の複雑な順序を操作者が決定する必要があり、操作者の作業負荷が高くなる。このため、作業計画の生成にも時間を要する。
【０００６】
実施形態の一態様は、上記に鑑みてなされたものであって、複数の実行主体についての作業計画を効率的に作成することができる作業計画装置、作業計画方法および作業計画プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態の一態様に係る作業計画装置は、分割部と、調整部とを備える。前記分割部は、ロボットを含む実行主体を１または複数含んでおり開始タイミングが定義された作業単位を示すアクションを複数含むアクション情報に基づき、前記アクションのうち前記実行主体を複数含むアクションを前記実行主体ごとに複数のアクションへ分割する。前記調整部は、前記分割部によって分割されたアクションを含む複数のアクション間の依存関係をあらわす依存情報に基づき、該複数のアクションのうち実行主体が一致する複数のアクションの少なくとも１の開始タイミングを調整する。
【発明の効果】
【０００８】
実施形態の一態様によれば、複数の実行主体についての作業計画を効率的に作成することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る作業計画方法を示す模式図である。
【図２】図２は、ロボットシステムの構成を示すブロック図である。
【図３】図３は、作業計画装置の構成を示すブロック図である。
【図４Ａ】図４Ａは、開始タイミング定義部によって実行する処理を説明するための説明図（その１）である。
【図４Ｂ】図４Ｂは、開始タイミング定義部が実行する処理を説明するための説明図（その２）である。
【図４Ｃ】図４Ｃは、分割部が実行する処理を説明するための説明図である。
【図４Ｄ】図４Ｄは、調整部が実行する処理を説明するための説明図（その１）である。
【図４Ｅ】図４Ｅは、調整部が実行する処理を説明するための説明図（その２）である。
【図４Ｆ】図４Ｆは、調整部が実行する処理を説明するための説明図（その３）である。
【図４Ｇ】図４Ｇは、調整部が実行する処理を説明するための説明図（その４）である。
【図４Ｈ】図４Ｈは、調整部が実行する処理を説明するための説明図（その５）である。
【図５】図５は、実施形態に係る作業計画装置が実行する処理手順を示すフローチャートである。
【図６】図６は、開始タイミング調整の処理手順を示すフローチャートである。
【図７】図７は、作業計画装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本願の開示する作業計画装置、作業計画方法および作業計画プログラムの実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【００１１】
まず、実施形態に係る作業計画方法について、図１を用いて説明する。図１は、実施形態に係る作業計画方法を示す模式図である。なお、図１は、実施形態に係る作業計画方法の概要を模式的に示したものであり、かかる作業計画方法によって各アクションの開始時間が調整される前の状態を上段に、調整された後の状態を下段にそれぞれ示している。
【００１２】
ここで、アクションとは、たとえば、「所定の場所へ移動する」、「所定の物品を保持する」、「所定の物品を温める」といった抽象化された作業単位（タスク）のことを指す。アクションは、作業の主体である実行主体を１または複数包含する。アクションが複数の実行主体を含む場合としては、「所定の物品を温める」というアクションが、加熱装置（たとえば、電子レンジ）と、加熱装置の開始操作を行うロボットという２つの実行主体で行われる場合が一例として挙げられる。
【００１３】
図１の上段におけるアクションＡに示すように、各アクションは、たとえば、開始条件、開始効果、終了条件、終了効果といった属性を有する。ここで、開始条件とは、アクションを開始するための条件を指し、たとえば、「電子レンジが使用されていない状態である」といった条件が含まれる。また、開始効果とは、アクションを開始することによって得られる効果を指し、たとえば、「電子レンジが使用中」という状態へ遷移することを示す。
【００１４】
また、終了条件とは、アクションを終了させるための条件を指すが、アクションが自動的に終了する場合には、終了条件は不要である。また、終了効果とは、アクションを終了することによって得られる効果を指し、たとえば、電子レンジが未使用状態へ遷移することを指す。
【００１５】
また、各アクションは、これらの属性に加えて作業の継続期間（継続時間長）を１つの属性として有する。かかる継続期間は、図１に示す各アクションの時間軸に沿った幅に対応する。
【００１６】
本実施形態に係る作業計画方法は、図１の上段に例示した複数のアクションを受け付け、受け付けたアクションのうち、複数の実行主体を含んだアクションを実行主体ごとに分割する。そして、分割後のアクションを含む各アクションについて、開始時間の調整を行う。これにより、本実施形態に係る作業計画方法は、複数の実行主体に関する並列的かつ効率的な作業計画を生成する。
【００１７】
具体的には、図１の上段に示すように、実施形態に係る作業計画方法では、ロボット（不図示）を含む実行主体が１つのアクションと、実行主体が複数のアクションとが混在したアクション群を受け付ける。図１の上段に示した場合では、アクションＡおよびアクションＣは、実行主体が１つ（双方とも実行主体はＭ）のアクションであり、アクションＢは、実行主体が２つ（実行主体はＭおよびＮ）のアクションである。
【００１８】
なお、図１の上段では、理解を容易にする観点から、各アクションが時間軸上に並べられた情報を開始時間の調整対象とする場合を例示しているが、調整対象となる各アクションは、時間軸上に並べられたものであることを要しない。すなわち、開始時間が定義されていない各アクションを調整対象としてもよい。この場合、実施形態に係る作業計画方法は、各アクションに対して開始時間を定義するが、この点については後述する。
【００１９】
図１の上段に示した情報に基づき、実施形態に係る作業計画方法は、図１の下段に示した処理を実行する。具体的には、実行主体がＭおよびＮであるアクションＢを、実行主体がＭであるアクションＢ＿１と、実行主体がＮであるアクションＢ＿２とに分割する（図１のステップＳ１参照）。なお、分割の仕方の詳細については後述する。
【００２０】
つづいて、実施形態に係る作業計画方法は、実行主体がそれぞれ一定の個数に統一されたアクション群について、アクション間の開始タイミングを調整する。たとえば、実施形態に係る作業計画方法は、実行主体が一致する複数のアクション同士が時間軸上で重複範囲をもたないように調整する。なお、図１には、実行主体がそれぞれ１つに分割される場合を例にとって示しているが、これに限らず、たとえば２つの実行主体が協調して動作を行う場合などでは、２つの実行主体を１つのまとまりとして取り扱うことができる。
【００２１】
図１の下段に示すように、アクションＢから分割されたアクションＢ＿１と、アクションＣとはともに実行主体がＭであるので、図１の上段に示したアクションＣの開始時間のままでは、アクションＢ＿１と、アクションＣとは重複範囲をもつ。このため、図１の下段に例示するように、実施形態に係る作業計画方法は、たとえば、アクションＣの開始時間を遅らせることで、両者が重複範囲をもたないようにする（図１のステップＳ２参照）。
【００２２】
ここで、実施形態に係る作業計画方法は、かかる作業計画が対象とする作業に応じて実行主体が一致しない複数のアクションについての時間軸上での関係を調整する。図１では、実行主体が一致しない複数のアクションについて、少なくとも２つ以上が時間軸上で重複範囲をもつように調整された場合を一例として示している。図１の下段に例示するように、アクションＢから分割されたアクションＢ＿２と、アクションＣとでは実行主体が異なるので、実施形態に係る作業計画方法は、両者が重複範囲をもつようにアクションＣの開始時間を調整する。
【００２３】
なお、図１では、実行主体が一致しない複数のアクションについて、少なくとも２つ以上が時間軸上で重複範囲をもつ場合を例にとって示した。しかしながら、これに限らず、たとえば２つのロボットが１つの作業対象物へ同時に作業すると干渉する場合などでは、かかる複数のアクションが互いに重複範囲を持たないように調整することもできる。また、かかる複数のアクションは、作業計画が対象とする作業に応じ、互いに時間軸についての任意の関係で調整されてよい。
【００２４】
なお、図１では、１つのアクションに２つの実行主体が含まれる場合を例にとって説明したが、これに限らず、１つのアクションに３つ以上の実行主体が含まれていてもよい。また、図１では、複数の実行主体のうち１つがロボットである場合を例にとって説明したが、これに限らず、ロボットは任意の数とすることができる。また、複数の実行主体がすべてロボットであってもよい。また、ロボットが双腕ロボットのように複数のハンドを有する場合、各ハンドをそれぞれ実行主体としてもよい。
【００２５】
つづいて、実施形態に係るロボットシステム１について図２を用いて説明する。図２は、ロボットシステム１の構成を示すブロック図である。
【００２６】
なお、以下では、配膳などを行ういわゆるサービスロボットを含むサービスロボットシステムを例に挙げて説明を行う。しかしながら、これに限らず、サービスロボットシステムは、試薬の調製や処理を行うバイオメディカルロボットシステムや、溶接や塗装、組み立て、研磨作業などを行う産業ロボットシステムにも置換可能である。以下では、サービスロボットについては「ロボット」と、サービスロボットシステムについては「ロボットシステム」と、それぞれ記載する。
【００２７】
図２に示すように、ロボットシステム１は、作業計画装置１０と、教示装置２０と、コントローラ３０と、ロボット４０を備える。作業計画装置１０は、図１に示した作業計画方法を実行する装置であり、操作者の入力に基づいてロボット４０を含む実行主体についての作業計画を生成し、教示装置２０へ出力する。なお、作業計画装置１０の詳細については、図３以降を用いて後述する。
【００２８】
教示装置２０は、作業計画装置１０から受け取った作業計画に基づいてロボット４０の動作に関する教示データを生成する。そして、教示装置２０は、かかる教示データに基づいてロボット４０を動作させるジョブプログラムを生成する。なお、図２では、作業計画装置１０と教示装置２０とが別体の場合について例示したが、教示装置２０に作業計画装置１０を含めることとしてもよいし、作業計画装置１０に教示装置２０を含めることとしてもよい。
【００２９】
ここで、実施形態に係るロボット４０は、たとえばアームの先端にハンドを有する自走式のロボットである。また、ジョブプログラムは、ロボット４０の移動や停止、ハンドの移動、保持対象物の保持といった動作に関するデータを含む。コントローラ３０は、入力されたジョブプログラムに従ってロボット４０を動作させる制御を行う。
【００３０】
次に、作業計画装置１０の構成について図３を用いて説明する。図３は、作業計画装置１０の構成を示すブロック図である。なお、図３では、作業計画装置１０の説明に必要な構成要素のみを示しており、一般的な構成要素についての記載を省略している。
【００３１】
図３に示すように、作業計画装置１０は、開始タイミング定義部１１ａと、分割部１１ｂと、調整部１１ｃとを備える。また、作業計画装置１０は、アクション情報１２ａと、初期作業計画情報１２ｂと、中間作業計画情報１２ｃと、作業計画情報１２ｄとを、図示しない記憶部に記憶する。なお、記憶部とは、メモリやハードディスクドライブといった記憶デバイスである。
【００３２】
分割部１１ｂは、分割可否判定部１１ｂａと、アクション分割部１１ｂｂと、依存情報生成部１１ｂｃとをさらに備える。また、調整部１１ｃは、同一主体調整部１１ｃａと、主体間調整部１１ｃｂと、分割元調整部１１ｃｃと、待機調整部１１ｃｄとをさらに備える。
【００３３】
アクション情報１２ａは、上記した作業単位（タスク）にそれぞれ対応するアクション情報の集合である。各アクション情報は、たとえば、アクションを識別する識別子、アクションの作業内容、かかる作業の実行主体および作業の継続期間を含む情報である。また、各アクションには、他のアクションとの関係を示す依存情報が含まれる。
【００３４】
ここで、各アクション情報が含む実行主体の数は、１つに限られず複数であってもよい。このように実行主体の数を定めることで、作業計画の生成を、アクションどうしの組合せおよびアクションごとの実行主体の作業の組合せに多層化（階層化）することができる。
【００３５】
たとえば、１つのアクションが実行主体として複数のロボットを含む場合では、かかるアクションを作業計画に組み込んでから、アクション内の複数のロボットの協調動作を決定したり、複数のロボットのうちいずれのロボットに作業させるかを決定したりできる。
【００３６】
したがって、アクション単位で作業計画を生成することで、対象とする作業についての作業計画の生成を効率化することができる。また、アクションごとに実行主体の作業の組合せや実行主体を決定できるので、たとえばタクトタイムの短縮などに対して精密な検討を行うことができる。また、アクション単位の作業計画を生成しておき、かかる作業計画の生成後に実行主体を決定できるので、作業計画生成についての自由度が増加する。
【００３７】
依存情報とは、アクション間の依存関係を示す情報である。ここで、依存関係とは、複数のアクションについて、先に実行するアクションの効果（上記した開始効果や終了効果）によって以降に実行するアクションの開始条件の一部またはすべてが満たされる関係を指す。
【００３８】
たとえば、「皿を棚からとって、かかる皿をテーブルへ移動する」一連のアクションを例にとると、「皿をもっていること」が「棚から皿をとる」アクションの終了効果となる。そして、「皿をもっていること」は、「皿をテーブルへ移動する」アクションの開始条件となる。
【００３９】
したがって、「棚から皿をとる」アクションの終了効果が満たされないと「皿をテーブルへ移動する」アクションの開始条件が満たされないので、「棚から皿をとる」および「皿をテーブルへ移動する」アクションは、互いに依存関係にあるといえる。
【００４０】
また、さらに「コップをテーブルへ移動する」アクションがあるとした場合、かかるアクションの開始条件は「コップをもっていること」であり、「皿をもっていること」に影響を受けない。したがって、「棚から皿をとる」および「コップをテーブルへ移動する」アクションは、互いに依存関係にはないといえる。
【００４１】
なお、依存情報は、アクションの効果に限らず、アクションの開始／終了に基づいてもよい。この場合、先のアクションの終了条件（終了状態）が、以降のアクションの開始条件となる。また、依存関係は、アクションの効果およびアクションの開始／終了に基づくこととしてもよい。
【００４２】
なお、図３では、アクション情報１２ａにおける各アクション情報が依存情報を含む場合を例示したが、依存情報を含まないアクション情報１２ａを用いることとしてもよい。この場合、依存情報を含まないアクション情報１２ａに基づき、後述する開始タイミング定義部１１ａが依存情報を生成する。
【００４３】
開始タイミング定義部１１ａは、アクション情報１２ａに含まれる各アクション情報に対して開始タイミングを定義する。なお、開始タイミングの定義は、後述するアルゴリズムで行ってもよいし、各アクション情報に対応する矩形などを時間軸とともに表示画面上に表示させ、各矩形を移動させるなどの操作者入力によって行ってもよい。また、アルゴリズムで定義した開始タイミングを操作者入力で修正してもよいし、操作者入力によって、たとえば、おおまかに定義された開始タイミングをアルゴリズムで修正してもよい。
【００４４】
ここで、図４Ａおよび図４Ｂを用いて開始タイミング定義部１１ａが実行する処理について説明しておく。なお、以下では、対象作業（作業単位であるアクションの集合）が、「電子レンジで食べ物を温めている間に、かかる食べ物を盛り付ける皿を準備する」である場合を例にとって説明する。
【００４５】
図４Ａおよび図４Ｂは、開始タイミング定義部１１ａが実行する処理を説明するための説明図（その１）および（その２）である。開始タイミング定義部１１ａは、操作者から入力された対象作業に基づき、アクション情報１２ａから該当するアクション情報を抽出する。そして、各アクション情報に対して開始タイミングを定義する。
【００４６】
図４Ａに示した表ＴＣ１の列ＣＬ１（実行主体）および列ＣＬ２（アクション名）は、アクション情報１２ａから抽出されたアクション情報の一部を例示したものである。また、表ＴＣ１の列ＣＬ３（開始タイミング）は、開始タイミング定義部１１ａが定義した開始タイミングである。
【００４７】
ここで、理解を容易にする観点から、図４Ａに示した表ＴＣ１を、いわゆるガントチャート化したものを図４Ｂに示す。なお、図４Ｂに示した各矩形の時間軸に沿った幅、すなわち、上記したアクションの継続期間は、アクション情報１２ａから取得してもよいし、開始タイミング定義部１１ａで定義してもよい。
【００４８】
なお、図４Ｂに示すアクションＴＬ１〜ＴＬ６の付番は、図４Ａの表ＴＣ１に示したアクションにおける開始タイミングの付番に対応している。たとえば、アクションＴＬ３は、開始タイミングａ３が定義された「棚の前へ移動する」アクションとなる。また、アクションＴＬ４は、開始タイミングａ４が定義された「皿をとる」アクションとなる。
【００４９】
したがって、開始タイミング定義部１１ａによって開始時間が定義されたアクション情報の詳細は、時系列で以下に述べる動作になる。ロボット４０が電子レンジに食べ物をセットする（アクションＴＬ１）。ロボット４０および電子レンジが、電子レンジで（食べ物を）温める（アクションＴＬ２）。ここで、アクションＴＬ２の実行主体にロボット４０が含まれるのは、アクションＴＬ２には、ロボット４０が電子レンジに対して行う動作、たとえば、スイッチをＯＮにする動作を含むためである。
【００５０】
そして、アクションＴＬ２に並行して、ロボット４０が棚の前へ移動し（アクションＴＬ３）、皿をとり（アクションＴＬ４）、電子レンジの前へ移動する（アクションＴＬ５）。そして、ロボット４０が、電子レンジから食べ物を取り出し（アクションＴＬ６）、対象作業が完了する。
【００５１】
なお、開始タイミング定義部１１ａのプランニング手法としては、以下に挙げる従来のアルゴリズムを好適に使用することができる。フローチャートの生成については、たとえば、ＳＴＲＩＰＳやＧｒａｐｈｐｌａｎ、ＮＯＡＨ、ＳＡＴｐｌａｎ、ＦａｓｔＤｏｗｎｗａｒｄ、ＦａｓｔＦｏｒｗａｒｄなどがある。ガントチャートの生成については、ＴｅｍｐｏｒａｌＦａｓｔＤｏｗｎｗａｒｄやＳＧＰｌａｎなどがある。なお、フローチャートを生成する場合、アクションごとの開始タイミングを開始タイミング定義部１１ａが定義することとすればよい。
【００５２】
ところで、従来の手法で生成された作業計画では、アクションＴＬ２およびアクションＴＬ３〜ＴＬ５は、互いに並行する作業でありながら実行主体にロボット４０をともに含む。したがって、計画された作業計画が確実に実行されない場合があった。
【００５３】
また、従来の手法で生成された作業計画では、各アクション（アクションＴＬ１〜ＴＬ６）の開始タイミングが、互いに固定されていた。したがって、アクションの継続期間（継続時間長）が外乱などにより変動した場合に、計画された作業計画が確実に実行されない場合があった。
【００５４】
そこで、本実施形態では、並列作業を含んでいたり、アクションの継続期間が変動したりしても確実に対象作業を実行することができる作業計画を作成することとした。以下では、この点について説明する。
【００５５】
図３の説明に戻り、作業計画装置１０の説明をつづける。開始タイミング定義部１１ａは、対象作業を実行するように組み合わせたアクション情報などを初期作業計画情報１２ｂとして出力する。
【００５６】
初期作業計画情報１２ｂは、開始タイミング定義部１１ａによって生成された作業計画が含むアクション情報を、それぞれに対応する開始タイミング情報とともに記憶する。なお、以下では、アクション情報、依存情報および開始タイミング情報を総称して「アクション情報」と呼ぶことがある。
【００５７】
初期作業計画情報１２ｂは、作業計画のうち最初に実行するアクションについての情報を第１アクション情報、第１依存情報および第１開始タイミング情報として出力する。図３には、作業計画のうちｋ（自然数）およびｋ＋１番目に実行されるアクションについての情報を、第ｋ（第ｋ＋１）アクション情報、第ｋ（第ｋ＋１）依存情報および第ｋ（第ｋ＋１）開始タイミング情報としてそれぞれ示している。
【００５８】
分割部１１ｂは、開始タイミング定義部１１ａから出力された初期作業計画情報１２ｂを受け取り、実行主体が複数のアクション情報を実行主体ごとに分割した中間作業計画情報１２ｃを出力する。
【００５９】
分割可否判定部１１ｂａは、初期作業計画情報１２ｂにおける各アクション情報が、分割可能か否かを判定する。具体的には、分割可否判定部１１ｂａは、各アクション情報の実行主体が複数である場合には、分割が可能であると判定する。また、分割可否判定部１１ｂａは、各アクションの実行主体が単数（１つ）である場合には、分割することができないと判定する。
【００６０】
そして、アクション分割部１１ｂｂは、分割可否判定部１１ｂａによって分割が可能であると判定されたアクション情報を、実行主体ごとに分割する。また、分割されたアクション情報のそれぞれに開始タイミングを定義する。たとえば、アクション分割部１１ｂｂは、図１を用いて説明した開始効果が、アクションの開始時間よりも遅い時間に発生する場合、かかるタイミングをアクションＢ＿２の開始時間とする（図１参照）。
【００６１】
依存情報生成部１１ｂｃは、アクション分割部１１ｂｂによって分割されたアクション情報のそれぞれについて依存情報を生成し、分割された各アクションへ対応付ける。そして、分割された各アクションに依存情報が対応付けられた情報を、中間作業計画情報１２ｃとして出力する。なお、本実施形態では、依存情報生成部１１ｂｃが分割されたアクション情報に関する依存情報を生成する場合について説明するが、これに限らず、すべてのアクション情報に関する依存情報を生成することとしてもよい。
【００６２】
なお、依存情報生成部１１ｂｃで生成される依存情報は、新たに生成されてもよいし、あらかじめアクション情報１２ａに含まれていてもよい。新たに生成される場合では、たとえば、先に実行するアクションの効果（上記した開始効果や終了効果）および以降に実行するアクションの開始条件に基づいて生成される。
【００６３】
あらかじめアクション情報１２ａに含まれる場合では、分割前のアクション情報が実行主体ごとのアクション情報（および依存情報）を含んでおり、かかる分割前のアクション情報が依存情報生成部１１ｂｃで分割されるとともに、それぞれに対応する依存情報を含む分割後のアクション情報が生成される。
【００６４】
このようにすることで、作業計画の設計者が、作業計画をたてる時点では、主体を意識せずに作業単位で考えた設計を行うことができる。つまり、設計者は、作業単位のアクションのみしか意識せずに済むので、設計者の作業負荷を低減することができる。
【００６５】
図３には、２つに分割された場合の第ｋアクション情報、第ｋ依存情報および第ｋ開始タイミング情報を、それぞれ第ｋ＿１および第ｋ＿２アクション情報、第ｋ＿１および第ｋ＿２依存情報、および、第ｋ＿１および第ｋ＿２開始タイミング情報として示している。また、分割部１２ｃで分割（更新）されなかった場合の、中間計画情報１２ｃにおける第ｋ＋１アクション情報、第ｋ＋１依存情報および第ｋ＋１開始タイミング情報をあわせて示している。
【００６６】
なお、分割可否判定部１１ｂａにおいて分割することができないと判定されたアクション情報については、分割部１１ｂは初期作業計画情報１２ｂから読み出したデータを更新することなく中間作業計画情報１２ｃへ出力する。
【００６７】
ここで、分割部１１ｂが実行する処理について図４Ｃを用いて説明しておく。図４Ｃは、分割部１１ｂが実行する処理を説明するための説明図である。なお、図４Ｃでは、図４Ｂを用いてすでに説明したアクションＴＬ２が、実行主体であるロボット４０および電子レンジの２つに分割される場合を例にとって説明する。
【００６８】
アクション分割部１１ｂｂは、図１を用いてすでに説明した開始効果に従ってアクションＴＬ２を２つに分割する。本実施形態では、実行主体がロボット４０である前処理に相当するアクションＴＬ２＿１、および、実行主体が電子レンジである主処理に相当するアクションＴＬ２＿２へアクションＴＬ２を分割する。
【００６９】
なお、図３では、依存情報がアクション情報に含まれる場合を例にとって説明したが、依存情報とアクション情報とを独立した情報とし、作業計画装置１０内に別々に記憶させることとしてもよい。この場合、依存情報は、たとえば、アクションの開始効果や終了効果、開始条件、終了条件などから生成することとすればよく、アクションを識別する識別子などを用いることで、対応するアクション情報と関連付けることとすればよい。なお、依存情報は、作業計画装置１０からアクセス可能であれば作業計画装置１０の外部にあってもよい。
【００７０】
そして、依存情報生成部１１ｂｃは、アクションＴＬ２＿１について、アクションＴＬ２＿２を含む他のアクションとの依存情報を生成する。また、依存情報生成部１１ｂｃは、アクションＴＬ２＿２について、アクションＴＬ２＿１を含む他のアクションとの依存情報を生成する。
【００７１】
たとえば、依存情報生成部１１ｂｃは、アクションＴＬ２＿１の終了効果およびアクションＴＬ２＿２の開始効果からアクションＴＬ２＿１およびＴＬ２＿２間の依存情報を生成する（図４Ｃの矢印４０２参照）。また、アクションＴＬ２＿１の終了効果およびアクションＴＬ３の開始効果からアクションＴＬ２＿１およびＴＬ３間の依存情報を生成する（図４Ｃの矢印４０４参照）。
【００７２】
具体的には、矢印４０２の場合、たとえば、「ロボット４０が電子レンジを操作可能な位置にいる」といったアクションＴＬ２＿１の終了効果や「電子レンジが未使用状態である」といったアクションＴＬ２＿２の開始効果から依存情報が生成される。また、矢印４０４の場合、たとえば、「ロボット４０が電子レンジを操作可能な位置にいる」といったアクションＴＬ２＿１の終了効果や「ロボット４０が作業していない」といったアクションＴＬ３の開始効果から依存情報が生成される。
【００７３】
なお、依存情報生成部１１ｂｃは、アクションＴＬ２＿１の終了条件およびアクションＴＬ２＿２の開始条件からアクションＴＬ２＿１およびＴＬ２＿２間の依存情報を生成してもよい。また、アクションＴＬ２＿１の終了条件およびアクションＴＬ３の開始条件からアクションＴＬ２＿１およびＴＬ３間の依存情報を生成してもよい。
【００７４】
また、アクションＴＬ２＿１およびＴＬ３のように実行主体（ロボット４０）が同じものでは、先に実行するアクションＴＬ２＿１が終了したら、アクションＴＬ３の開始条件が満たされるように依存情報が自動的に生成されるようにしてもよい。
【００７５】
なお、アクションＴＬ２＿１の開始条件および開始効果については、アクションＴＬ２の開始条件および開始効果を引き継ぐことができる。また、アクションＴＬ２＿２の終了条件および終了効果については、アクションＴＬ２の終了条件および終了効果を引き継ぐことができる。
【００７６】
図３の説明に戻り、作業計画装置１０の説明をつづける。中間作業計画情報１２ｃは、分割部１１ｂを経たアクション情報である。中間作業計画情報１２ｃの内容については既に説明したのでここでの説明を省略する。
【００７７】
調整部１１ｃは、分割部１１ｂから出力された中間作業計画情報１２ｃを受け取り、受け取った中間作業計画情報１２ｃにおける各アクション情報の開始時間を調整した作業計画情報１２ｄを出力する。以下では、図４Ｄ〜図４Ｈを用いて調整部１１ｃが実行する処理について説明する。図４Ｄ〜図４Ｈは、調整部１１ｃが実行する処理を説明するための説明図（その１）〜（その５）である。
【００７８】
まず、図４Ｄを用いて同一主体調整部１１ｃａおよび主体間調整部１１ｃｂについて説明する。図４Ｄには、中間作業計画情報１２ｃから読み出された中間作業計画の一例のガントチャートを示している。
【００７９】
同一主体調整部１１ｃａは、同一の実行主体にかかるアクションが時間軸についての重複範囲を有する場合、かかるアクションの開始タイミングを調整して重複範囲をもたないようにする。これにより、実行主体が一致する複数のアクションを矛盾なく計画することができる。
【００８０】
図４Ｄには、アクションＴＬ２＿１に対して重複範囲を有するアクションＴＬ３の開始タイミングを調整した場合を示している（同図に示す矢印４０６参照）。なお、図４Ｄには、調整前のアクションＴＬ３を点線で示している。
【００８１】
なお、図４Ｄに示した例では、アクションＴＬ３およびＴＬ２＿１間の重複を回避するためにアクションＴＬ３の開始タイミングを遅らせることとしたが、これに限らず、たとえば、アクションＴＬ２＿１の開始タイミングを早めてもよい。また、アクションＴＬ２＿１の開始タイミングを早めつつ、アクションＴＬ３の開始タイミングを遅らせることとしてもよい。
【００８２】
次に、主体間調整部１１ｃｂについて説明する。主体間調整部１１ｃｂは、実行主体が一致しない複数のアクションの少なくとも２以上が時間軸についての重複範囲を有するように開始タイミングを調整する。なお、たとえば図４Ｂに示したアクションＴＬ１のように、時間軸について重複する他のアクションが存在しない場合では、かかる調整を行わない。
【００８３】
図４Ｄには、アクションＴＬ２＿２がアクションＴＬ３およびＴＬ４との間で重複範囲を有する場合を例にとって示している。これにより、複数の実行主体によるアクションが並列的に動作する作業計画を効率的に作成することができる。
【００８４】
次に、図４Ｅを用いて分割元調整部１１ｃｃおよび同一主体調整部１１ｃａが実行する処理について説明する。分割元調整部１１ｃｃは、分割部１１ｂによって１つのアクションから分割された各アクションが時間軸について連続するように開始タイミングを調整する。
【００８５】
図４Ｅには、図４Ｄに示したアクションＴＬ４、アクションＴＬ５およびアクションＴＬ６の開始タイミングを調整してアクションＴＬ３へ連続させる場合を示している（同図に示す矢印４１０参照）。なお、図４Ｅには、アクションＴＬ３〜アクションＴＬ５について、アクションの終了時間と次のアクションの開始時間とを一致させる場合を例示しているが、かかる終了時間および開始時間の間隔を短くするだけでも構わない。
【００８６】
すなわち、実行主体が一致する複数のアクションのうち、時間軸について隣接するアクション間に所定の時間間隔がある場合に、開始タイミングが遅い方のアクションの開始タイミングを開始タイミングが早い方のアクションの終了時間へ近づければよい。これにより、実行主体が一致するアクション群についての無駄な待ち時間を排除することができる。
【００８７】
なお、同一主体調整部１１ｃａ、主体間調整部１１ｃｂおよび分割元調整部１１ｃｃがそれぞれ実行する処理は、任意の順番で行われてよい。すなわち、図３に示した調整部１１ｃ内の情報の流れ方向を示す矢印は一例に過ぎない。
【００８８】
つづいて、図４Ｆ〜図４Ｈを用いて待機調整部１１ｃｄが実行する処理について説明する。待機調整部１１ｃｄは、中間作業計画情報１２ｃにおけるアクション情報１２ａにおける依存情報に基づき、各アクションの開始タイミングを調整する。具体的には、待機調整部１１ｃｄは、一のアクションの開始条件として他のアクションの終了が含まれる場合に、一のアクションの開始タイミングが、他のアクションの終了タイミング以降となるように調整する。
【００８９】
すなわち、待機調整部１１ｃｄは、中間作業計画情報１２ｃにおける開始タイミング情報の開始時間よりも、他のアクションの終了タイミングを優先して一のアクションの開始タイミングを決定する。
【００９０】
これにより、作業計画における各アクションの開始タイミングが、あらかじめ設定された開始時間に固定されるのではなく、アクションの終了タイミングによって変動可能となる。したがって、たとえばアクションの継続期間（継続時間長）が外乱などで変動した場合であっても確実に作業計画を実行することができる。以下では、この点について具体的に説明する。
【００９１】
図４Ｆには、待機調整部１１ｃｄがアクション情報１２ａにおける依存情報に基づいて生成するアクション間の終了および開始条件の関係を模式的に示している。図４Ｆでは、それぞれの実線の矢印の基端側のアクションの終了が、先端側のアクションの開始条件に含まれることを示している。そして、待機調整部１１ｃｄは、かかる実線の矢印で表されるアクションの実行順序を満たすようにアクションＴＬ１〜ＴＬ６の開始タイミングを調整する。
【００９２】
また、待機調整部１１ｃｄは、たとえばアクションＴＬ２＿２に対するアクションＴＬ５およびＴＬ６のように、実行主体が異なるアクションにおいて、以下に述べる手法でアクションに対する開始条件を生成することとしてもよい。
【００９３】
具体的には、待機調整部１１ｃｄは、アクションＴＬ２＿２と、アクションＴＬ２＿２の終了以降において開始タイミングが最も早いアクションＴＬ５とをリンク付けする（同図に示す矢印４１４参照）。そして、アクションＴＬ５の開始条件にアクションＴＬ２＿２の終了が含まれているか否かを判定する。
【００９４】
なお、図４Ｆに示す例では、アクションＴＬ５の開始条件にアクションＴＬ２＿２の終了が含まれないので、待機調整部１１ｃｄは、矢印４１４で示したリンクを削除する。そして、アクションＴＬ２＿２と、アクションＴＬ２＿２の終了以降において開始タイミングがアクションＴＬ５の次に早いアクションＴＬ６とをリンク付けし、アクションＴＬ６の開始条件にアクションＴＬ２＿２の終了が含まれているか否かを判定する。
【００９５】
なお、図４Ｆに示す例では、アクションＴＬ６の開始条件にアクションＴＬ２＿２の終了が含まれるので、待機調整部１１ｃｄは、両者のリンク付けを確定する（同図に示す矢印４１２）。つまり、待機調整部１１ｃｄは、アクションＴＬ６の開始タイミングを、アクションＴＬ２＿２以降とするように関連付ける。このような手法を用いることで、作業計画装置１０の処理負荷を低減しつつ、並列化された作業計画を簡便かつ確実に生成することができる。
【００９６】
次に、待機調整部１１ｃｄによって関連付けられる各アクションの開始タイミングについて図４Ｇおよび図４Ｈを用いてさらに具体的に説明しておく。図４Ｇおよび図４Ｈは、理解を容易にする観点から、図４Ｆですでに説明した作業計画を、ガントチャートとして示したものである。
【００９７】
なお、以下に説明する処理は、待機調整部１１ｃｄによる開始タイミングの関連付けを含む作業計画情報１２ｄに基づいて教示装置２０（図２参照）が生成するジョブプログラムをロボット４０（図２参照）が実行する場合に行われる。
【００９８】
したがって、待機調整部１１ｃｄは、以下に説明する処理を行うことができる情報を作業計画に付加し、教示装置２０は、かかる付加された情報を、たとえばウェイト（待機）のコマンドとしてジョブ化する。以下では、待機調整部１１ｃｄにより作業計画を実行するジョブに付加されるジョブを「待機調整ジョブ」と呼ぶ。
【００９９】
図４Ｇには、たとえば外乱などによってアクションＴＬ２＿２の継続期間（継続時間長）が伸びた場合を示している（同図に示す矢印４１６参照）。この場合、開始タイミングａ６’においてアクションＴＬ２＿２は終了しない。したがって、待機調整ジョブはアクションＴＬ６の開始にアクションＴＬ２＿２の終了を待機させる（同図に示す矢印４１８参照）。
【０１００】
そして、待機調整ジョブは、アクションＴＬ２＿２の終了タイミングに、アクションＴＬ６の開始タイミングを設定する（同図に示す開始タイミングａ６’’参照）。なお、図４Ｇには、開始タイミングを調整する前のアクションＴＬ６を点線で示している。
【０１０１】
このように、作業計画にかかるアクションの継続期間（継続時間長）が当初予定した期間よりも伸びた場合であっても、かかるアクションに依存するアクションの開始タイミングを自動的に調整するので、作業計画を確実に実行することができる。
【０１０２】
また、図４Ｈには、アクションＴＬ４の処理が当初予定した期間よりも早く終了した場合を示している（同図に示す矢印４２０参照）。なお、図４Ｈには、当初予定したアクションＴＬ４を点線で示している。
【０１０３】
この場合、待機調整ジョブは、アクションＴＬ５およびＴＬ６の開始タイミングを、アクションＴＬ４の終了にあわせて時間軸についての早い方へシフトさせる（図４Ｈの矢印４２２参照）。図４Ｈには、このようにシフトされたアクションＴＬ５およびＴＬ６の開始タイミングを開始タイミングａ５’’およびａ６’’’として示している。
【０１０４】
このように、作業計画にかかるアクションの継続期間（継続時間長）が当初予定した期間よりも短くなった場合であっても、かかるアクションに依存するアクションの開始タイミングを自動的に調整するので、作業計画を迅速に実行することができる。
【０１０５】
このように、実施形態に係る待機調整部１１ｃｄによれば、作業計画にかかるアクションの開始タイミングを自動的に変更することが可能となる。したがって、アクションの継続期間（継続時間長）が変動した場合においても、作業計画をかかる変動に追従させつつ確実に実行することができる。
【０１０６】
図３の説明に戻り、作業計画装置１０の説明をつづける。待機調整部１１ｃｄは、作業計画情報を作業計画情報１２ｄとして出力する。なお、調整部１１ｃに含まれる同一主体調整部１１ｃａ、主体間調整部１１ｃｂ、分割元調整部１１ｃｃおよび待機調整部１１ｃｄの実行順序は問わないので、これらの処理部のうち最後に実行される処理部が作業計画情報１２ｄを出力することになる。そして、作業計画情報１２ｄは、教示装置２０（図２参照）によって読み出され、ロボット４０（図２参照）を含む実行主体の作業計画として使用される。
【０１０７】
図３には、調整部１１ｃを経た第ｋ＿１および第ｋ＿２アクション情報、第ｋ＿１および第ｋ＿２依存情報、および、第ｋ＿１および第ｋ＿２開始タイミング情報のそれぞれに対応する情報に「’（プライム）」を付して示している。ただし、中間作業計画情報１２ｃと作業計画情報１２ｄとは必ずしも異なっているとは限らず同じである場合も含んでいる。
【０１０８】
たとえば、第ｋ＿１および第ｋ＿２アクション情報、第ｋ＿１および第ｋ＿２依存情報、および、第ｋ＿１および第ｋ＿２開始タイミング情報が調整部１１ｃで更新されず、同図に示す分割部１１ｂで分割（更新）されなかった第ｋ＋１アクション情報、第ｋ＋１依存情報および第ｋ＋１開始タイミング情報が調整部１１ｃで更新されてもよい。
【０１０９】
なお、上述した作業計画装置１０において実行される各処理機能は、全部または任意の一部が、コンピュータおよびコンピュータで解析実行されるプログラムにて、あるいは、ワーヤードロックによるハードウェアとして実現され得る。また、かかるコンピュータを作業計画装置１０の外部に設け、作業計画装置１０と通信するようにしてもよい。
【０１１０】
また、かかるプログラムは、インターネットなどのネットワークを介して配布することができる。さらに、かかるプログラムは、ハードディスクドライブ、ＤＶＤ（Digital  Versatile  Disk）といったコンピュータで読み取り可能な媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０１１１】
なお、上述した説明では、作業計画装置１０がアクション情報１２ａおよび初期作業計画情報１２ｂを記憶することとした。しかしながら、作業計画装置１０がアクション情報１２ａおよび初期作業計画情報１２ｂを記憶せず、あらかじめ生成された初期作業計画情報１２ｂを取得することとしてもよい。この場合、作業計画装置１０は、アクション情報１２ａ、開始タイミング定義部１１ａおよび初期作業計画情報１２ｂに代えて初期作業計画情報を取得する取得部を有することとすればよい。
【０１１２】
また、上述した説明では、分割部１１ｂが中間作業計画情報１２ｃを生成し、生成した中間作業計画情報１２ｃを作業計画装置１０内で記憶することとした。しかしながら、これに限らず、中間作業計画情報１２ｃを生成せずに、初期作業計画情報１２ｂを処理する分割部１１ｂが処理結果を随時、調整部１１ｃへ出力することとしてもよい。なお、作業計画情報１２ｄについても同様に、作業計画装置１０内で記憶することを要せず、たとえば、教示装置２０（図２参照）へ随時送信することとしてもよい。
【０１１３】
次に、実施形態に係る作業計画装置１０が実行する処理手順について図５を用いて説明する。図５は、実施形態に係る作業計画装置１０が実行する処理手順を示すフローチャートである。
【０１１４】
図５に示すように、開始タイミング定義部１１ａは、アクション情報１２ａからアクション情報を読み出す（ステップＳ１０１）。開始タイミング定義部１１ａは、読み出したアクション情報に開始タイミングを定義する（ステップＳ１０２）。
【０１１５】
分割可否判定部１１ｂａは、アクションの実行主体の数に基づいてアクション情報が分割可能か否かを判定する（ステップＳ１０３）。そして、アクション情報が分割可能と判定された場合（ステップＳ１０３，Ｙｅｓ）、すなわち、実行主体が複数の場合には、アクション分割部１１ｂｂは、アクション情報を実行主体ごとに分割する（ステップＳ１０４）。そして、依存情報生成部１１ｂｃは、アクション分割部１１ｂｂで分割されたアクション情報に依存情報を追加する（ステップＳ１０５）。
【０１１６】
そして、すべてのアクションについて処理が終了したか否かが判定され（ステップＳ１０６）、すべてのアクションについて処理が終了した場合（ステップＳ１０６，Ｙｅｓ）には、調整部１１ｃは、開始タイミング調整処理を行い（ステップＳ１０７）、処理を終了する。なお、ステップＳ１０３においてアクション情報が分割不可と判定された場合には（ステップＳ１０３，Ｎｏ）、ステップＳ１０４およびステップＳ１０５の処理を行うことなく、ステップＳ１０６の処理を行う。また、ステップＳ１０６において、すべてのアクションについて処理が終了していないと判定された場合には（ステップＳ１０６，Ｎｏ）、ステップＳ１０３以降の処理を繰り返す。
【０１１７】
次に、図５のステップＳ１０７に示した開始タイミング調整処理の詳細な処理手順について図６を用いて説明する。図６は、開始タイミング調整の処理手順を示すフローチャートである。
【０１１８】
同一主体調整部１１ｃａは、依存情報に基づき、実行主体が一致する複数のアクション同士が時間軸上で重複範囲を持たないように開始タイミングを調整する（ステップＳ２０１）。
【０１１９】
主体間調整部１１ｃｂは、依存情報に基づき、実行主体が一致しない複数のアクションの２以上が時間軸上で重複範囲をもつように開始タイミングを調整する（ステップＳ２０２）。
【０１２０】
分割元調整部１１ｃｃは、依存情報に基づき、分割部１１ｂによって１つのアクションから分割された各アクションが時間軸について連続するように開始タイミングを調整する（ステップＳ２０３）。なお、ステップＳ２０１〜Ｓ２０３の処理は、どの順番で行ってもよく、入れ替えが可能である。
【０１２１】
つづいて、主体間調整部１１ｃｂは、実行主体が一致する複数のアクションのうち、時間軸について隣接するアクション間に所定の時間間隔が存在する場合（ステップＳ２０４，Ｙｅｓ）、依存情報に基づき、開始タイミングが遅い方のアクションの開始タイミングを開始タイミングが早いほうのアクションの終了タイミングへ近づける（ステップＳ２０５）。
【０１２２】
一方、時間軸について隣接するアクション間に所定の時間間隔が存在しない場合には（ステップＳ２０４，Ｎｏ）、ステップＳ２０６以降の処理を実行する。
【０１２３】
そして、待機調整部１１ｃｄは、一のアクションの開始条件として他のアクションの終了が含まれる場合（ステップＳ２０６，Ｙｅｓ）、一のアクションの開始タイミングが他のアクションの終了タイミング以降となるように一のアクションの開始タイミングを調整し（ステップＳ２０７）、リターンする。
【０１２４】
一方、一のアクションの開始条件として他のアクションの終了が含まれない場合には（ステップＳ２０６，Ｎｏ）、リターンする。
【０１２５】
ところで、実施形態に係る作業計画装置１０は、図７に一例として示す構成のコンピュータ５００によって実現される。図７は、作業計画装置１０の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【０１２６】
コンピュータ５００は、ＣＰＵ（Central  Processing  Unit）５１０と、ＲＡＭ（Random  Access  Memory）５２０と、ＲＯＭ（Read  Only  Memory）５３０と、ＨＤＤ（Hard  Disk  Drive）５４０と、通信インターフェイス（Ｉ／Ｆ）５５０と、入出力インターフェイス（Ｉ／Ｆ）５６０と、メディアインターフェイス（Ｉ／Ｆ）５７０とを備える。なお、コンピュータ５００は、ＳＳＤ（Solid  State  Drive）をさらに備え、ＨＤＤ５４０の一部またはすべての機能をかかるＳＳＤが行うようにしてもよい。また、ＨＤＤ５４０に代えてＳＳＤを設けることとしてもよい。
【０１２７】
ＣＰＵ５１０は、ＲＯＭ５３０およびＨＤＤ５４０のいずれか一方または双方に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ５３０は、コンピュータ５００の起動時にＣＰＵ５１０によって実行されるブートプログラムや、コンピュータ５００のハードウェアに依存するプログラムなどを格納する。
【０１２８】
ＨＤＤ５４０は、ＣＰＵ５１０によって実行されるプログラムおよび、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス５５０は、ネットワーク５８０を介して他の機器からデータを受信してＣＰＵ５１０へ送り、ＣＰＵ５１０が生成したデータを、ネットワーク５８０を介して他の機器へ送信する。
【０１２９】
ＣＰＵ５１０は、入出力インターフェイス（Ｉ／Ｆ）５６０を介してディスプレイやプリンタ等の出力装置、および、マウスやキーボードなどの入力装置を制御する。ＣＰＵ５１０は、入出力インターフェイス（Ｉ／Ｆ）５６０を介して、入力装置からデータを取得する。また、ＣＰＵ５１０は、生成したデータを入出力インターフェイス（Ｉ／Ｆ）５６０を介して出力装置へ出力する。
【０１３０】
メディアインターフェイス５７０は、記録媒体５９０に格納されたプログラムやデータを読み取り、ＲＡＭ５２０を介してＣＰＵ５１０に提供する。ＣＰＵ５１０は、かかるプログラムを、メディアインターフェイス５７０を介して記録媒体５９０からＲＡＭ５２０上にロードし、ロードしたプログラムを実行する。記録媒体５９０は、たとえばＤＶＤなどの光磁気記録媒体、半導体メモリなどである。
【０１３１】
たとえば、コンピュータ５００が作業計画装置１０として機能する場合、コンピュータ５００のＣＰＵ５１０は、ＲＡＭ５２０上にロードされたプログラムを実行することにより、開始タイミング定義部１１ａ、分割部１１ｂおよび調整部１１ｃの機能を実現する。
【０１３２】
コンピュータ５００のＣＰＵ５１０は、これらのプログラムを記録媒体５９０から読み取って実行するが、他の例として、他の装置からネットワーク５８０を介してこれらのプログラムを取得してもよい。また、ＨＤＤ５４０は、アクション情報、初期作業計画情報、中間計画作業情報および作業計画情報をそれぞれ記憶することができる。
【０１３３】
上述してきたように、実施形態の一態様に係る作業計画装置は、分割部と、調整部とを備える。分割部は、ロボットを含む実行主体を１または複数含んでおり開始タイミングが定義された作業単位を示すアクションを複数含むアクション情報に基づき、アクションのうち実行主体を複数含むアクションを実行主体ごとに複数のアクションへ分割する。
【０１３４】
調整部は、分割部によって分割されたアクションを含む複数のアクション間の依存関係をあらわす依存情報に基づき、複数のアクションのうち実行主体が一致する複数のアクションの少なくとも１の開始タイミングを調整する。
【０１３５】
したがって、実施形態に係る作業計画装置によれば、複数の実行主体についての作業計画を効率的に作成することができる。
【０１３６】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【０１３７】
１      ロボットシステム
１０      作業計画装置
１１ａ    開始タイミング定義部
１１ｂ    分割部
１１ｂａ  分割可否判定部
１１ｂｂ  アクション分割部
１１ｂｃ  依存情報生成部
１１ｃ    調整部
１１ｃａ  同一主体調整部
１１ｃｂ  主体間調整部
１１ｃｃ  分割元調整部
１１ｃｄ  待機調整部
１２ａ    アクション情報
１２ｂ    初期作業計画情報
１２ｃ    中間作業計画情報
１２ｄ    作業計画情報
２０      教示装置
３０      コントローラ
４０      ロボット
【図１】
0006394218.tif 000002
【図２】
0006394218.tif 000003
【図３】
0006394218.tif 000004
【図４Ａ】
0006394218.tif 000005
【図４Ｂ】
0006394218.tif 000006
【図４Ｃ】
0006394218.tif 000007
【図４Ｄ】
0006394218.tif 000008
【図４Ｅ】
0006394218.tif 000009
【図４Ｆ】
0006394218.tif 000010
【図４Ｇ】
0006394218.tif 000011
【図４Ｈ】
0006394218.tif 000012
【図５】
0006394218.tif 000013
【図６】
0006394218.tif 000014
【図７】
0006394218.tif 000015