(57)【要約】【課題】作業者とロボットとの干渉が発生しないように動作計画を立てる。【解決手段】作業者と同一の領域で作業を行うロボットを制御するロボット制御装置が、前記ロボットの制御状態を示す情報と、前記作業者の姿勢を示す情報と、前記作業における作業対象物の位置を示す情報と、を取得する情報取得部と、前記情報取得部が取得した各情報に基づいて、実行中の作業を推定する推定部と、前記推定した実行中の作業が何であるのかに基づいて、前記実行中の作業の終了までの所要時間を算出する所要時間算出部と、前記所要時間に基づいて、前記ロボットの動作計画を作成する動作計画作成部と、前記動作計画に沿った作業を行うように前記ロボットを制御する制御部と、を備える。【選択図】図１
2018187746.tif 000002
【特許請求の範囲】
【請求項１】
作業者と同一の領域で作業を行うロボットを制御するロボット制御装置であって、
前記ロボットの制御状態を示す情報と、前記作業者の姿勢を示す情報と、前記作業における作業対象物の位置を示す情報と、を取得する情報取得部と、
前記情報取得部が取得した各情報に基づいて、実行中の作業を推定する推定部と、
前記推定した実行中の作業が何であるのかに基づいて、前記実行中の作業の終了までの所要時間を算出する所要時間算出部と、
前記所要時間に基づいて、前記ロボットの動作計画を作成する動作計画作成部と、
前記動作計画に沿った作業を行うように前記ロボットを制御する制御部と、
を備えるロボット制御装置。
【請求項２】
前記推定部の推定した作業と、前記推定した作業を開始してから終了するまでの時間である作業時間とを紐付けて記憶する作業時間記録部を更に備え、
前記所要時間算出部は、前記作業時間記録部から、前記所要時間の算出対象とする作業に対応する作業時間を読み出し、読み出した作業時間に基づいて前記所要時間を算出する請求項１に記載のロボット制御装置。
【請求項３】
前記所要時間算出部は、前記読み出した作業時間を平均した時間を前記所要時間として算出する請求項２に記載のロボット制御装置。
【請求項４】
前記情報取得部は、前記作業者を識別するための識別情報を更に取得し、
前記所要時間算出部は、前記推定した実行中の作業が何であるのかに加えて、前記取得した識別情報に基づいて特定される作業者が誰であるのかに基づいて、前記実行中の作業の終了までの所要時間を算出する請求項１から請求項３までの何れか１項に記載のロボット制御装置。
【請求項５】
前記動作計画作成部は、前記作業者による作業についての前記所要時間の経過した後に、前記ロボットが前記同一の領域に進入するように前記動作計画を作成する請求項１から請求項４までの何れか１項に記載のロボット制御装置。
【請求項６】
前記動作計画作成部は、前記同一の領域において前記ロボットと前記作業者が共存する時間が少なくなるように前記動作計画を作成する請求項１から請求項５までの何れか１項に記載のロボット制御装置。
【請求項７】
前記動作計画作成部は、前記作業者の待ち時間が少なくなるように前記動作計画を作成する請求項１から請求項６までの何れか１項に記載のロボット制御装置。
【請求項８】
作業者と同一の領域で作業を行うロボットを制御するロボット制御装置としてコンピュータを機能させるロボット制御プログラムであって、
前記ロボットの制御状態を示す情報と、前記作業者の姿勢を示す情報と、前記作業における作業対象物の位置を示す情報と、を取得する情報取得部と、
前記情報取得部が取得した各情報に基づいて、実行中の作業を推定する推定部と、
前記推定した実行中の作業が何であるのかに基づいて、前記実行中の作業の終了までの所要時間を算出する所要時間算出部と、
前記所要時間に基づいて、前記ロボットの動作計画を作成する動作計画作成部と、
前記動作計画に沿った作業を行うように前記ロボットを制御する制御部と、
を備えるロボット制御装置として前記コンピュータを機能させるロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを制御するための、ロボット制御装置及びロボット制御プログラムに関し、特に、作業者と同一の領域で作業を行うロボットを制御するための、ロボット制御装置及びロボット制御プログラムに関する。
【背景技術】
【０００２】
従来、産業用ロボット等の分野において、生産や組立の効率化を図るために、ロボットと作業者とが、同一の領域で作業を行うことがある。
この場合に、ロボットと作業者との干渉が発生して、ロボットと作業者とが作業領域にて接触してしまうことは望ましくない。このような干渉の発生を防止するための技術が、例えば特許文献１に開示されている。
特許文献１に開示の技術では、作業中のロボットと作業者の状態とを検出する。そして、検出したロボットや作業者の状態と、予め学習した情報とに基づいて、ロボットと作業者が干渉する可能性があると判断された場合には、即座にロボットを停止又は減速させ、干渉の発生を回避する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１５９４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１に開示の技術は、干渉するか否かが不明なまま作業を実行し、この作業の実行中に干渉が発生するか否かを判断するものである。
このように干渉するか否かが不明なまま作業を実行するのではなく、予め干渉が発生しないように動作計画を立ててから作業を実行することができれば、作業の効率を高めることができ、生産性の向上にもつながる。
【０００５】
そこで本発明は、作業者とロボットとの干渉が発生しないように動作計画を立てることが可能な、ロボット制御装置及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）  本発明のロボット制御装置（例えば、後述のロボット制御装置１０）は、作業者と同一の領域で作業を行うロボット（例えば、後述のロボット２０）を制御するロボット制御装置であって、前記ロボットの制御状態を示す情報と、前記作業者の姿勢を示す情報と、前記作業における作業対象物の位置を示す情報と、を取得する情報取得部（例えば、後述の情報取得部１１）と、前記情報取得部が取得した各情報に基づいて、実行中の作業を推定する推定部（例えば、後述の推定部１２）と、前記推定した実行中の作業が何であるのかに基づいて、前記実行中の作業の終了までの所要時間を算出する所要時間算出部（例えば、後述の所要時間算出部１４）と、前記所要時間に基づいて、前記ロボットの動作計画を作成する動作計画作成部（例えば、後述の動作計画作成部１５）と、前記動作計画に沿った作業を行うように前記ロボットを制御する制御部（例えば、後述の制御部１６）と、を備える。
【０００７】
（２）  上記（１）に記載のロボット制御装置を、前記推定部の推定した作業と、前記推定した作業を開始してから終了するまでの時間である作業時間とを紐付けて記憶する作業時間記録部（例えば、後述の作業時間記録部１３）を更に備え、前記所要時間算出部は、前記作業時間記録部から、前記所要時間の算出対象とする作業に対応する作業時間を読み出し、読み出した作業時間に基づいて前記所要時間を算出するようにしてもよい。
【０００８】
（３）  上記（２）に記載のロボット制御装置を、前記所要時間算出部は、前記読み出した作業時間を平均した時間を前記所要時間として算出するようにしてもよい。
【０００９】
（４）  上記（１）から（３）までの何れかに記載のロボット制御装置を、前記情報取得部は、前記作業者を識別するための識別情報を更に取得し、前記所要時間算出部は、前記推定した実行中の作業が何であるのかに加えて、前記取得した識別情報に基づいて特定される作業者が誰であるのかに基づいて、前記実行中の作業の終了までの所要時間を算出するようにしてもよい。
【００１０】
（５）  上記（１）から（４）までの何れかに記載のロボット制御装置を、前記動作計画作成部は、前記作業者による作業についての前記所要時間の経過後に、前記ロボットが前記同一の領域に進入するように前記動作計画を作成するようにしてもよい。
【００１１】
（６）  上記（１）から（５）までの何れかに記載のロボット制御装置を、前記動作計画作成部は、前記同一の領域において前記ロボットと前記作業者が共存する時間が少なくなるように前記動作計画を作成するようにしてもよい。
【００１２】
（７）  上記（１）から（６）までの何れかに記載のロボット制御装置を、前記動作計画作成部は、前記作業者の待ち時間が少なくなるように前記動作計画を作成するようにしてもよい。
【００１３】
（８）  本発明のロボット制御プログラムは、作業者と同一の領域で作業を行うロボット（例えば、後述のロボット２０）を制御するロボット制御装置（例えば、後述のロボット制御装置１０）としてコンピュータを機能させるロボット制御プログラムであって、前記ロボットの制御状態を示す情報と、前記作業者の姿勢を示す情報と、前記作業における作業対象物の位置を示す情報と、を取得する情報取得部（例えば、後述の情報取得部１１）と、前記情報取得部が取得した各情報に基づいて、実行中の作業を推定する推定部（例えば、後述の推定部１２）と、前記推定した実行中の作業が何であるのかに基づいて、前記実行中の作業の終了までの所要時間を算出する所要時間算出部（例えば、後述の所要時間算出部１４）と、前記所要時間に基づいて、前記ロボットの動作計画を作成する動作計画作成部（例えば、後述の動作計画作成部１５）と、前記動作計画に沿った作業を行うように前記ロボットを制御する制御部（例えば、後述の制御部１６）と、を備えるロボット制御装置として前記コンピュータを機能させる。
【発明の効果】
【００１４】
本発明によれば、作業者とロボットとの干渉が発生しないように動作計画を立てることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態全体の基本的構成を示す模式図である。
【図２】本発明の実施形態を適用する作業工程の一例を示すシーケンス図である。
【図３】本発明の実施形態におけるロボット制御装置の機能ブロックを示す図である。
【図４Ａ】本発明の実施形態における作業履歴データベースの一例について示す図である。
【図４Ｂ】本発明の実施形態における平均作業時間データベースの一例について示す図である。
【図５】本発明の実施形態における動作計画の生成について説明するためのタイムチャートである。
【図６】本発明の実施形態における動作計画の生成について説明するための模式図である。
【図７】本発明の実施形態の動作を示すフローチャートである。
【図８】本発明の実施形態の変形例を適用する作業工程の一例を示すシーケンス図である。
【図９】本発明の実施形態の変形例における動作計画の生成について説明するためのタイムチャートである。
【発明を実施するための形態】
【００１６】
＜実施形態全体の構成＞
まず、図１を参照して、本実施形態であるロボット制御システム１全体の構成について説明する。図１に示すようにロボット制御システム１は、ロボット制御装置１０、ロボット２０及びカメラ３０を備える。また、図中には、部品４０ａ、部品４０ｂ、ワーク５０、ワーク・部品供給側６１、作業台６２、完成品排出側６３及び作業者７０を図示する。
【００１７】
ロボット制御装置１０とロボット２０は相互に通信可能に接続されている。また、ロボット制御装置１０とカメラ３０も相互に通信可能に接続されている。これらの接続は、信号線を介した有線接続であってもよく、無線接続であってもよい。また、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット等のネットワークを介した接続であってもよい。
ロボット制御装置１０、ロボット２０及びカメラ３０は、かかる接続によって相互に通信を行う。
【００１８】
ロボット制御装置１０は、ロボット２０の動作を制御するための装置である。ロボット制御装置１０はロボット２０の動作を制御するための種々の機能ブロックを備えている。この機能ブロックの詳細については図２を参照して後述する。ロボット制御装置１０は、一般的なロボット制御装置（ロボットコントローラ）に、本実施形態特有の機能を追加することにより実現することができる。
【００１９】
ロボット２０は、ロボット制御装置１０の制御に基づいて動作するロボットである。ロボット２０は、ロボット制御装置１０の制御に基づいて動作するアームや、エンドエフェクタ（例えば、ワークを把持するためのグリッパ）等の可動部を備える。ロボット２０は、例えば、自動車や電子部品を生産する工場で使用されるような、一般的な産業用ロボットにより実現することができる。
【００２０】
カメラ３０は、作業台６２の周辺を撮像するカメラである。カメラ３０は一般的なカメラにより実現することができる。カメラ３０が撮像した撮像データは、ロボット制御装置１０に対して出力される。
【００２１】
＜作業工程の例＞
以下の説明では、ワーク５０に対して部品４０ａ及び部品４０ｂを組み付けることにより完成品を作成する、という作業を行う場合を例に取って説明する。この作業では、ロボット２０がワーク５０、部品４０ａ及び部品４０ｂの搬送を行い、作業者７０が部品４０ａ及び部品４０ｂのワーク５０に対する組み付けを行う。
【００２２】
この作業の工程について図２のフローチャートを参照して説明をする。
まず、ロボット２０が、ワーク・部品供給側６１に設置されているワーク５０を作業台６２に対して搬送する（ステップＳ１１）。そして、作業者７０が搬送されたワーク５０を作業台６２にセットする（ステップＳ１２）。
【００２３】
また、ロボット２０が、ワーク・部品供給側６１に設置されている部品４０ａを作業台６２に対して搬送する（ステップＳ１３）。そして、作業者７０が搬送された部品４０ａをワーク５０に対して組み付ける（ステップＳ１４）。
【００２４】
次に、ロボット２０が、ワーク・部品供給側６１に設置されている部品４０ｂを作業台６２に対して搬送する（ステップＳ１５）。そして、作業者７０が搬送された部品４０ｂをワーク５０に対して組み付ける（ステップＳ１６）。
【００２５】
これにより完成品が出来上がる。すると、ロボット２０が、出来上がった完成品を完成品排出側６３に対して搬送する（ステップＳ１７）。
以上のような作業工程を、ロボット２０と作業者７０とが協働して繰り返すことにより、所望の数だけ完成品を作成することができる。
【００２６】
ここで、作業台６２はロボット２０と作業者７０の両方共が進入できる作業領域のため、作業者７０とロボット２０の干渉が発生する可能性がある。ここで干渉とは、例えば、ロボット２０と作業者７０とが作業台６２にて協働作業を行う場合ではないのに、ロボット２０と作業者７０とが共に作業台６２に進入してしまうことである。このような干渉が発生してしまうと、ロボット２０と作業者７０とが意図せずに接触してしまったりする。
【００２７】
そこで、本実施形態では、ロボット制御装置１０が、ロボット２０や作業者７０の状態と、部品４０ａや部品４０ｂの状態とに基づいて、現在実行されている作業を推定する。そして、ロボット制御装置１０が、推定結果に応じて、ロボット２０と作業者７０が作業台６２に同時にいる時間が最小限となるようにロボット２０の動作計画を作成する。
つまり、本実施形態では、作業者とロボットとの干渉が発生しないように動作計画を立てることができる。
また、ロボット制御装置１０は、ロボット２０がこの動作計画に沿って動作するように、ロボット２０を制御する。これにより、本実施形態では、生産性を低下させることなく、作業者の安全性を確保することが可能となる。
【００２８】
＜ロボット制御装置１０の構成＞
次に、このような処理を実現するための、ロボット制御装置１０の構成について図２を参照して説明をする。
図２に示すようにロボット制御装置１０は、情報取得部１１、推定部１２、作業時間記録部１３、所要時間算出部１４、動作計画作成部１５及び制御部１６を含んで構成される。
なお、図２には、ロボット制御装置１０のみならず、ロボット制御装置１０内の機能ブロックと情報を送受信するロボット２０やカメラ３０も図示する。一方で、図１に示した部品４０ａ及び部品４０ｂや作業者７０については図２では図示を省略する。
【００２９】
情報取得部１１は、ロボット２０、作業者７０、部品４０ａ、部品４０ｂ及びワーク５０の状態を示す情報を取得する部分である。情報取得部１１は、取得した各情報を推定部１２に対して出力する。
【００３０】
ここで、情報取得部１１は、作業者７０、部品４０ａ、部品４０ｂ及びワーク５０の状態を示す情報として、カメラ３０が撮像した撮像データを取得する。この撮像データは、上述したように作業台６２の周辺を撮像したものであり、例えば、作業台６２に進入している作業者７０の様子や、作業台６２における部品４０ａ、部品４０ｂ及びワーク５０の様子が撮像されている。
【００３１】
また、情報取得部１１は、ロボット２０の状態を示す情報として、後述の制御部１６からロボット２０の制御状態を示す情報を取得する。制御状態を示す情報は、例えば、ロボット２０のアームやグリッパの位置を示す情報や、ロボット２０のグリッパの開閉状態等を示す情報や、ロボット２０に行わせている作業の内容を示す情報である。これらの情報は、制御部１６がロボット２０を制御するためにロボット２０に対して出力する制御信号（例えば、位置指令）や、フィードバック制御のためのフィードバック信号や、あるいは制御部１６が読み込んでいる加工プログラム等の情報に基づいて生成される。
なお、情報取得部１１は、ロボット２０の状態を示す情報を、制御部１６から取得するのではなく、カメラ３０の撮像データから取得するようにしてもよい。
【００３２】
推定部１２は、情報取得部１１が取得した各情報に基づいて、現在実行中の作業が、作業工程に含まれる複数の作業の内の何れの作業であるのかを推定する。例えば、情報取得部１１が取得した各情報に基づいて、完成品排出側６３にワーク５０が設置されているが、未だワーク５０に部品４０ａが組み付けられておらず、作業者７０が作業台６２に進入していると特定された場合、作業者７０が部品４０ａをワーク５０に組み付ける作業（図２のステップＳ１４の作業に相当）を実行中であると推定する。
【００３３】
このように、現在行われている作業の推定を行うために、推定部１２は、予め作業工程に含まれる各作業の内容と、各作業を行う順序とを記憶している。また、行われている作業を推定するためには、作業者７０の姿勢を特定することが有効である。そこで、推定部１２は、カメラにより撮像された人物の画像に基づいて、人物の姿勢等を特定するために、例えば特開２００１−０９２９７８号公報に開示の技術を利用することができる。
推定部１２による推定内容は、作業時間記録部１３に対して出力される。
【００３４】
作業時間記録部１３は、推定部１２から入力された推定内容に基づいて「作業履歴データベース」を構築する。そして、作業時間記録部１３は、推定内容を新たに入力される都度、作業履歴データベースを更新する。
また、作業時間記録部１３には、後述の所要時間算出部１４により「平均作業時間データベース」も構築される。所要時間算出部１４は、この平均作業時間データベースを更新する。
この２つのデータベースデータベースに格納される情報の一例について、図４Ａ及び図４Ｂを参照して説明をする。
【００３５】
図４Ａに示すように、作業履歴データベースには、「時刻」、「ロボット２０の状態・作業」、「撮像データから検出された作業者７０の状態」、「推定された作業者の作業」及び「作業時間」が、作業毎に紐付けられて格納されている。
【００３６】
「開始時刻」は、作業を開始した時刻である。ここで、本実施形態では、開始時刻に基づいて後述の「作業時間」を算出する。この作業時間は可能な限り正確に特定することが望ましい。そこで、推定部１２による推定は、少なくとも所定の頻度（例えば、毎秒に一回）で繰り返すようにする。これにより、作業の開始時刻を正確に特定することができるので、作業時間を正確に算出することができる。
【００３７】
「ロボット２０の状態・作業」は、ロボット２０の状態と、ロボット２０が行っている作業とを示す情報である。ここで、ロボット２０の状態は上述したように情報取得部１１が制御部１６から取得することができ、推定部１２はこの状態に基づいてロボット２０が行っている作業を一意に特定することができる。そのため、ロボット２０の状態と作業は別々の項目とはされず１つの項目とする。
【００３８】
「撮像データから検出された作業者７０の状態」は、カメラ３０が撮像した撮像データから検出される作業者の状態を示す情報である。
【００３９】
「推定された作業者の作業」は、撮像データから検出された作業者７０の状態に基づいて推定部１２が推定した作業を示す情報である。ここで、「撮像データから検出された作業者７０の状態」からは、「推定された作業者の作業」を一意に推定できないような場合も考えられる。このような場合に、ユーザが「推定された作業者の作業」の内容を修正等できるように、「撮像データから検出された作業者７０の状態」と「推定された作業者の作業」は別項目としている。
【００４０】
また、図中では説明を簡略化するために、「撮像データから検出された作業者７０の状態」と「推定された作業者の作業」を同じ内容としている。しかし、実際には、例えば「撮像データから検出された作業者７０の状態」が「作業者７０が作業台６２に進入している状態」であり、「推定された作業者の作業」が「部品４０ａ組付中」であってもよい。なぜならば、上述したように推定部１２は、各作業の内容と、各作業を行う順序とを記憶しているので、「作業者７０が作業台６２に進入している状態」から「部品４０ａ組付中」という作業を推定することができるからである。
【００４１】
「作業時間」は、作業を開始してから終了するまでに実際に要した時間である。作業時間は、例えば、作業の開始時刻と、次の作業の開始時刻の差分として求められる。なお、作業が連続して行われる場合には、このように２つの作業の開始時刻の差分により作業時間を算出することができるが、連続して作業が行われるのではなく、作業が終了してから次の作業が開始されるまでの間に、何の作業も行われない時間が存在する場合がある。このような場合には、１つの作業の開始時刻のみではなく終了時刻もデータベースに含めるようにし、この開始時刻と終了時刻の差分を作業時間とするようにしてもよい。
【００４２】
図４Ｂに示すように、平均作業時間データベースには、「作業」と「平均作業時間」が紐付けられて格納されている。ここで「平均作業時間」は紐付けられている作業を開始してから終了するまでの時間である作業時間を平均した時間である。
平均作業時間は、作業履歴データベースに格納されている作業時間に基づいて算出することができる。具体的には、所要時間算出部１４が、或る作業について紐付けられている作業時間を全て読み出し、読み出した作業時間を平均する。そして、この或る作業と、平均した作業時間とを紐付けて、平均作業時間データベースに格納する。
【００４３】
また、所要時間算出部１４は、現在実行中の作業について、作業の終了までの所要時間を算出する。具体的には、現在実行中の作業の平均作業時間から、現在実行中の作業の開始時刻からの経過時間を減算した時間を所要時間として算出する。算出した所要時間は、動作計画作成部１５に対して算出される。
【００４４】
動作計画作成部１５は、ロボット２０の動作計画を作成する部分である。動作計画作成部１５は、動作計画を作成するために、作業工程に含まれる各作業の内容と、各作業を行う順序とを記憶している。そして、動作計画作成部１５は、所要時間算出部１４が算出した所要時間に基づいて動作計画を作成する。作成した動作計画は、制御部１６に対して出力される。なお、動作計画作成部１５による動作計画の作成方法については、図５を参照して後述する。
【００４５】
制御部１６は、動作計画作成部１５が作成した記動作計画に沿った作業を行うようにロボット２０を制御する部分である。制御部１６は、動作計画作成部１５が作成した記動作計画に沿った作業を行うように、位置指令等の制御信号や、グリッパの開閉についての制御信号を生成し、生成した制御信号をロボット２０に対して出力する。ロボット２０はこの制御信号に基づいて動作を行う。また、制御部１６は、これらの制御信号等を、ロボット２０の制御状態を示す情報として情報取得部１１に対して出力する。
【００４６】
以上、ロボット制御装置１０に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、ロボット制御装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算処理装置を備える。また、ロボット制御装置１０は、アプリケーションソフトウェアやＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の各種の制御用プログラムを格納したＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）といった主記憶装置も備える。
【００４７】
そして、ロボット制御装置１０において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやＯＳを読み込み、読み込んだアプリケーションソフトウェアやＯＳを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやＯＳに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【００４８】
＜動作計画の作成＞
次に、動作計画作成部１５により行われる動作計画の作成について、具体例に基づいて説明をする。本例では、図２を参照して上述した作業工程において、ステップＳ１１及びステップＳ１２が終了し、ステップＳ１３が実行中に、以後の作業についての動作計画の作成を行う場合を想定する。
【００４９】
この場合、動作計画作成部１５は、次の作業である部品４０ｂをワーク・部品供給側６１から作業台６２へ運搬する作業（図２のステップＳ１５に相当）についての作業計画を作成する。ここで、動作計画作成部１５は、前工程である作業者７０がワーク５０に部品４０ａを組み付ける作業の（図２のステップＳ１４に相当）作業時間を考慮し、作業者７０とロボット２０とが同時に作業台６２にいる時間がもっとも少なくなるように、動作計画を行う。
【００５０】
説明のために、ロボット２０が部品４０ａを運搬し始めた時をＴ＝０としたタイムチャートを図５に示す。ここで、前提として、部品４０ａをワーク５０に組み付ける平均作業時間をＴＯ（ａ）とする。また、ロボット２０がワーク・部品供給側６１から部品４０ａ、部品４０ｂを作業台６２までに運搬する平均作業時間をそれぞれＴＲ（ａ）、ＴＲ（ｂ）とする。更に、ＴＯ（ａ）≧ＴＲ（ｂ）の関係にあるとする。
【００５１】
時刻ＴＲ（ａ）において、ロボット２０は部品４０ａを運搬し、作業者７０がロボット２０から部品４０ａを受け取り、部品４０ａの組み付けを開始する。
次に、時刻ｔにおいて、図６に示すように、作業者７０が部品４０ａを組み付けている状態と、ロボット２０が次の工程である部品４０ｂを運搬しようとしている状態とが検出されたとする。
【００５２】
ここで、上述したようにロボット２０が部品４０ｂを運搬する時間ＴＲ（ｂ）は作業者７０が部品４０ａを組み付ける時間ＴＯ（ａ）より短い。そのため、ＴＲ（ａ）終了後の時刻ｔに、ロボット２０が部品４０ｂを運搬する作業をそのまま開始してしまうと、ロボット２０が、作業者７０が作業台６２で作業を終える時刻（ＴＲ（ａ）＋Ｔｏ（ａ））よりも早いタイミングである、時刻（ｔ＋ＴＲ（ｂ））に作業台６２に進入することになり、作業者７０とロボット２０が干渉する可能性が生じる。
【００５３】
そこで、動作計画作成部１５は、ロボット２０が部品４０ｂの運搬を開始する時刻を遅らせ、作業者７０が部品４０ａの組み付けが終了した直後にロボット２０が作業台に進入するように、動作計画を作成する。
【００５４】
そのために、動作計画作成部１５は、作業者７０が部品４０ａを組み付ける残り作業時間である所要時間を、所要時間算出部１４から取得する。この場合、所要時間はＴＯ（ａ）−（ｔ−ＴＲ（ａ））となる。
【００５５】
動作計画作成部１５は、この所要時間に基づいて、作業者７０とロボット２０が同じ作業領域に共存する時間を必要最小限とするようにロボット２０の動作計画を作成する。
この場合では、作業者７０が部品４０ａを組み付け終わったと同時に、ロボット２０が部品４０ｂを持って作業台に進入すれば、作業者７０は直ちに次の部品４０ｂを組み付ける工程に移ることができる。そのために動作計画作成部１５は、ロボット２０が部品４０ｂを運搬する動作の開始時刻を、時刻（ＴＲ（ａ）＋ＴＯ（ａ）−ＴＲ（ｂ））までズラした動作計画を作成する。
【００５６】
そして、制御部１６がこの動作計画に沿って動作するようにロボット２０を制御することにより、作業者７０が部品４０ａを組み付け終わったと同時に、ロボット２０が部品４０ｂを持って作業台に進入する。
【００５７】
このように動作計画を作成することにより、本実施形態では、作業者７０とロボット２０が同じ作業領域に共存する時間と作業者の待ち時間を必要最小限にすることができる。
また、作業者７０とロボット２０が干渉する可能性を最小限にすることができ、本質的な安全性を高めることができる。
つまり、作業工程を最適化させることによって、生産性を低下させることなく安全性の高いロボットシステムを提供できる。
【００５８】
また、特許文献１に開示の技術では、隠れマルコフモデルのパラメータを更新するといった学習を行う必要があったが、本実施形態であればこのような学習は行う必要がない。更に、特許文献１に開示の技術では、学習中に生産ラインを止める必要があったが、本実施形態では、実際に生産ラインを稼働させながら平均作業時間を蓄積するようなことも可能となる。
【００５９】
＜本実施形態の動作＞
次に、図７のフローチャートを参照して本実施形態の動作について説明をする。
まず、情報取得部１１が、ロボット制御装置１０、部品４０及びワーク５０の状態を示す情報として、作業台６２の周辺の撮像データをカメラ３０から取得する。また、情報取得部１１がロボット２０の状態を示す情報として、ロボット２０に対して出力される制御信号やフィードバック信号を取得する（ステップＳ２１）。
【００６０】
次に、推定部１２が実行中の作業を推定する（ステップＳ２２）。また、所要時間算出部１４が推定部１２の推定結果に基づいて、実行中の作業終了までの所要時間を算出する（ステップＳ２３）。
【００６１】
更に、動作計画作成部１５が、算出された所要時間や、作業工程の内容や順番に基づいて動作計画を作成する（ステップＳ２４）。
【００６２】
そして、制御部１６が動作計画に沿った動作を行うようにロボット２０を制御する（ステップＳ２５）。
【００６３】
次に、動作計画作成部１５が作業工程に含まれる全ての作業が終了したか否かを判定する（ステップＳ２６）。全ての作業が終了していない場合には（ステップＳ２６においてＮＯ）、処理は再度ステップＳ２１に進み、上述した処理が以降の作業について繰り返される。一方で、全ての作業が終了した場合には（ステップＳ２６においてＹＥＳ）、処理は終了する。
以上説明した動作により、本実施形態は、＜動作計画の作成＞との項目で上述したような効果を奏する。
【００６４】
なお、上記のロボット制御システムに含まれる各装置のそれぞれは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のロボット制御システムに含まれる各装置のそれぞれが協働することにより行なわれるロボット制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【００６５】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。例えば、変形例として以下に記載するような変更を施すことが可能である。
【００６６】
＜変形例１＞
上述した実施形態では、作業者７０が誰であるのかを区別することなく、作業履歴データベースを作成している。また、このようにして作成した作業履歴データベースに基づいて平均作業時間を算出している。しかしながら、作業者７０による作業時間には個人差がある場合が考えられる。例えば、作業者７０が作業についての熟練者である場合と、作業についての初心者である場合とでは、作業時間が異なる可能性がある。
【００６７】
そこで、作業者７０が誰であるのかを区別するようにしてもよい。そのためには、作業者７０それぞれを識別するために、作業者７０それぞれに識別情報（例えば、ＩＤ番号）を割り当てる。そして、作業履歴データベースにおいて、作業者７０それぞれを区別して、ＩＤ番号毎に作業時間を格納する。更に、平均作業時間を算出する際も、作業者７０それぞれを区別して、ＩＤ番号毎に平均作業時間を算出する。このようにすることにより、各作業者７０それぞれの能力を考慮して動作計画を作成することが可能となる。
【００６８】
＜変形例２＞
上述した実施形態では、作業履歴データベースに格納されている作業時間を平均した、平均作業時間に基づいて、所要時間を算出するようにしている。これを変形して、作業履歴データベースに格納されている作業時間の中央値や最頻値に基づいて、所要時間を算出するようにしてもよい。
【００６９】
＜変形例３＞
上述した実施形態では、カメラ３０が撮像した撮像データに基づいて、ロボット制御装置１０、部品４０及びワーク５０の状態を特定している。これを変形して、センサ等により測定した情報により、ロボット制御装置１０、部品４０及びワーク５０の状態を特定するようにしてもよい。例えば、作業者７０が装着するヘルメットにモーションセンサを取り付けておき、このモーションセンサの測定した情報に基づいて作業者７０の状態を特定するようにしてもよい。
【００７０】
＜変形例４＞
上述した実施形態では、一般的な産業用ロボットによりロボット２０を実現することを想定した。そして、ロボット２０と作業者７０との干渉が発生しないように動作計画を作成することにより、干渉の発生を防止した。
しかしながら、例えば、作業者７０が想定外の思わぬ動作をしたような場合等には、ロボット２０と作業者７０との干渉が発生してしまう可能性がある。そこで、このような場合を想定して、力センサ等により干渉の発生を検出すると、自動的に動作を停止するロボットによりロボット２０を実現するようにするとよい。これにより、仮に干渉が発生したとしてもユーザの安全を確保することができる。
【００７１】
＜変形例５＞
上述した実施形態では、ロボット制御装置１０とロボット２０を別体の装置により実現することを想定している。これを変形して、ロボット制御装置１０とロボット２０を同一の装置により実現するようにしてもよい。あるいは、ロボット制御装置１０の機能ブロックの一部又は全部をロボット２０と同一の装置により実現するようにしてもよい。
【００７２】
＜変形例６＞
上述した実施形態では、ロボット２０と作業者７０が１対１の関係である場合を想定している。これを変形して、ロボット２０と作業者７０が１対多又は多対多の関係である場合に本実施形態を適用するようにしてもよい。
【００７３】
＜変形例７＞
上述した実施形態では、ロボット２０と作業者７０とが交互に作業台６２に進入する場合を想定している。これを変形して、ロボット２０と作業者７０とが作業台６２において同時に作業する場合にも本実施形態を適用するようにしてもよい。
この変形例について、図８及び図９を参照して説明をする。本変形例では、作業者７０が、ワーク５０に対して部品４０ｃと部品４０ｄを組み付ける。そして、作業者７０による部品４０ｃの組み付け時に、ロボット２０が、部品４０ｃを組み付けやすいように所定の位置に保持する。例えば、ワーク５０が自動車の車体である場合に、車輪である部品４０ｃを組み付けやすいように、所定の位置に保持する。
【００７４】
この作業の工程について図８のフローチャートを参照して説明をする。
まず、ロボット２０が、ワーク・部品供給側６１に設置されているワーク５０を作業台６２に対して搬送する（ステップＳ３１）。そして、作業者７０が搬送されたワーク５０を作業台６２にセットする（ステップＳ３２）。
【００７５】
また、ロボット２０が、ワーク・部品供給側６１に設置されている部品４０ｃを作業台６２に対して搬送する（ステップＳ３３）。そして、ロボット２０が、部品４０ｃを作業台６２における所定の位置に保持する（ステップＳ３４）。この動作が、上述した実施形態と相違する点である。また、そして、作業者７０がロボット２０により保持されている部品４０ｃをワーク５０に対して組み付ける（ステップＳ３５）。
【００７６】
次に、ロボット２０が、ワーク・部品供給側６１に設置されている部品４０ｄを作業台６２に対して搬送する（ステップＳ３６）。そして、作業者７０が搬送された部品４０ｄをワーク５０に対して組み付ける（ステップＳ３７）。
これにより完成品が出来上がる。すると、ロボット２０が、出来上がった完成品を完成品排出側６３に対して搬送する（ステップＳ３８）。
【００７７】
次に、この場合に、動作計画作成部１５により行われる動作計画の作成について、具体例に基づいて説明をする。本変形例では、図８を参照して上述した作業工程において、ステップＳ３１及びステップＳ３２が終了し、ステップＳ３３が実行中に、以後の作業についての動作計画の作成を行う場合を想定する。
【００７８】
この場合、動作計画作成部１５は、次の作業である部品４０ｄをワーク・部品供給側６１から作業台６２へ運搬する作業（図８のステップＳ３６に相当）についての作業計画を作成する。ここで、動作計画作成部１５は、前工程である作業者７０がワーク５０に部品４０ｃを組み付ける作業の（図８のステップＳ３５に相当）作業時間を考慮し、作業者７０とロボット２０とが同時に作業台６２にいる時間がもっとも少なくなるように、動作計画を行う。
【００７９】
説明のために、ロボット２０が部品４０ｃを運搬し始めた時をＴ＝０としたタイムチャートを図９に示す。ここで、前提として、部品４０ｃをワーク５０に組み付ける平均作業時間をＴＯ（ｃ）とする。また、ロボット２０がワーク・部品供給側６１から部品４０ｃ、部品４０ｄを作業台６２までに運搬する平均作業時間をそれぞれＴＲ（ｃ１）、ＴＲ（ｄ）とする。また、ロボット２０が作業台６２に侵入し、部品４０ｃを作業台６２にて保持している平均作業時間をＴＲ（ｃ２）とする。更に、ＴＯ（ｃ）≧ＴＲ（ｄ）の関係にあるとする。
【００８０】
時刻ＴＲ（ｃ１）において、ロボット２０は部品４０ｃを運搬し、その後、ロボット２０は、部品４０ｃを作業台６２にて保持する。保持は、時刻（ＴＲ（ｃ１）＋ＴＲ（ｃ２））まで行われる。これと並行して、作業者７０がロボット２０から部品４０ｃを受け取り、部品４０ｃの組み付けを行う。
【００８１】
次に、時刻ｔにおいて、作業者７０が部品４０ｃを組み付けている状態と、ロボット２０が次の工程である部品４０ｄを運搬しようとしている状態とが検出されたとする。
【００８２】
ここで、上述したようにロボット２０が部品４０ｄを運搬する時間ＴＲ（ｄ）は作業者７０が部品４０ｃを組み付ける時間ＴＯ（ｃ）より短い。そのため、ＴＲ（ｃ）とＴＲ（ｃ２）終了後の時刻ｔに、ロボット２０が部品４０ｄを運搬する作業をそのまま開始してしまうと、ロボット２０は、作業者７０が作業台６２で作業を終える時刻（ＴＲ（ｃ１）＋Ｔｏ（ｃ））よりも早いタイミングである、時刻（ｔ＋ＴＲ（ｄ））に作業台６２に進入することになり、作業者７０とロボット２０が干渉する可能性が生じる。
【００８３】
そこで、動作計画作成部１５は、ロボット２０が部品４０ｄの運搬を開始する時刻を遅らせ、作業者７０が部品４０ｃの組み付けが終了した直後にロボット２０が作業台に進入するように、動作計画を作成する。
そのために、動作計画作成部１５は、作業者７０が部品４０ｃを組み付ける残り作業時間である所要時間を、所要時間算出部１４から取得する。この場合、所要時間はＴＯ（ｃ）−（ｔ−ＴＲ（ｃ１）＋ＴＲ（ｃ２）となる。
【００８４】
動作計画作成部１５は、この所要時間に基づいて、作業者７０とロボット２０が同じ作業領域に共存する時間を必要最小限とするようにロボット２０の動作計画を作成する。
【００８５】
この場合では、作業者７０が部品４０ｃを組み付け終わったと同時に、ロボット２０が部品４０ｄを持って作業台に進入すれば、作業者７０は直ちに次の部品４０ｄを組み付ける工程に移ることができる。そのために動作計画作成部１５は、ロボット２０が部品４０ｄを運搬する動作の開始時刻を、時刻（ＴＲ（ｃ１）＋ＴＯ（ｃ）−ＴＲ（ｄ））までズラした動作計画を作成する。
【００８６】
そして、制御部１６がこの動作計画に沿って動作するようにロボット２０を制御することにより、作業者７０が部品４０ｃを組み付け終わったと同時に、ロボット２０が部品４０ｄを持って作業台に進入する。
つまり、本変形例のようにロボット２０と作業者７０とが作業台６２において同時に作業する場合においても、上述の実施形態と同様の効果を奏することが可能となる。
【符号の説明】
【００８７】
１  ロボット制御システム
１０  ロボット制御装置
１１  情報取得部
１２  推定部
１３  作業時間記録部
１４  所要時間算出部
１５  動作計画作成部
１６  制御部
２０  ロボット
３０  カメラ
４０ａ、４０ｂ  部品
５０  ワーク
６１  ワーク・部品供給側
６２  作業台
６３  完成品排出側
７０  作業者
【図１】
2018187746.tif 000003
【図２】
2018187746.tif 000004
【図３】
2018187746.tif 000005
【図４Ａ】
2018187746.tif 000006
【図４Ｂ】
2018187746.tif 000007
【図５】
2018187746.tif 000008
【図６】
2018187746.tif 000009
【図７】
2018187746.tif 000010
【図８】
2018187746.tif 000011
【図９】
2018187746.tif 000012