(57)【要約】【課題】オペレータごとの操作のばらつきを抑制しつつ、作業の精度を保つ。【解決手段】信号生成部は、マニピュレータの操作の履歴に基づいてマニピュレータの第１の操作信号を生成する。スコア算出部は、第１の操作信号の妥当性を示すスコアを算出する。信号出力部は、スコアに基づいて、入力装置の操作に従った第２の操作信号を出力するか、信号生成部が生成した第１の操作信号を出力するかを決定する。【選択図】図１
2018153873.tif 000002
【特許請求の範囲】
【請求項１】
入力装置の操作に基づいてマニピュレータに操作信号を出力するマニピュレータの制御装置であって、
前記マニピュレータの操作の履歴に基づいて前記マニピュレータの第１の操作信号を生成する信号生成部と、
前記第１の操作信号の妥当性を示すスコアを算出するスコア算出部と、
前記スコアに基づいて、前記入力装置の操作に従った第２の操作信号を出力するか、前記第１の操作信号を出力するかを決定する信号出力部と
を備える制御装置。
【請求項２】
前記マニピュレータによる作業の対象となる対象物を認識する認識部と、
前記認識部によって認識された対象物と、前記マニピュレータが前記対象物についての作業をするときの前記入力装置の操作の履歴とに基づいて、前記対象物と前記マニピュレータの位置とから前記第１の操作信号を求めるためのモデルを更新する学習部と
をさらに備え、
前記信号生成部は前記モデルに基づいて前記第１の操作信号を生成し、
前記スコア算出部は前記モデルに基づいて前記スコアを算出する
請求項１に記載の制御装置。
【請求項３】
前記信号出力部は、一定時間ごとに生成される前記第１の操作信号に係る前記スコアが閾値未満になるまで、前記第１の操作信号を出力し、前記スコアが前記閾値未満になった以降、前記第２の操作信号を出力する
請求項１または請求項２に記載の制御装置。
【請求項４】
前記マニピュレータは複数の関節を備え、
前記信号生成部は、前記複数の関節それぞれを操作する第１の操作信号を生成し、
前記信号出力部は、前記複数の関節のうち前記スコアが前記閾値以上の関節に、前記第１の操作信号を出力する
請求項１から請求項３の何れか１項に記載の制御装置。
【請求項５】
前記スコアが閾値未満の関節のうち最も基端側に設けられるものである基準関節を特定する関節特定部と、
前記信号出力部は、前記複数の関節のうち、前記基準間接より基端側に設けられた関節に、前記第１の操作信号を出力し、前記基準関節および前記基準間接より先端側に設けられた関節に、前記第２の操作信号を出力する
請求項４に記載の制御装置。
【請求項６】
操作信号に基づいて駆動するマニピュレータと、
ユーザによる操作の入力を受け付ける入力装置と、
請求項１から請求項５の何れか１項に記載の制御装置と
を備える作業システム。
【請求項７】
マニピュレータの制御方法であって、
前記マニピュレータの操作の履歴に基づいて前記マニピュレータの第１の操作信号を生成するステップと、
前記第１の操作信号の妥当性を示すスコアを算出するステップと、
前記スコアに基づいて、ユーザによる操作の入力を受け付ける入力装置の操作に従った第２の操作信号を出力するか、前記第１の操作信号を出力するかを決定するステップと
を有する制御方法。
【請求項８】
マニピュレータを制御するコンピュータに、
前記マニピュレータの操作の履歴に基づいて前記マニピュレータの第１の操作信号を生成するステップと、
前記第１の操作信号の妥当性を示すスコアを算出するステップと、
前記スコアに基づいて、ユーザによる操作の入力を受け付ける入力装置の操作に従った第２の操作信号を出力するか、前記第１の操作信号を出力するかを決定するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マニピュレータの制御装置、制御方法およびプログラム、ならびに作業システムに関する。
【背景技術】
【０００２】
特許文献１には、操作者による擬人的な動きを検出し、これを複数の信号に変換してロボットデバイスを駆動させる技術が開示されている。特許文献２には、センサによって検知された製品をピックアップするようにピッカーを自動制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１６８０５６号公報
【特許文献２】特許第５９４０６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットデバイスや自動ピッカーなどのマニピュレータを手作業で動作させる場合、オペレータごとにマニピュレータの作業の精度が異なり、不慣れなオペレータには操作が困難となる。他方、マニピュレータを自動制御する場合、作業対象となる対象物に応じて制御を異ならせる必要があるところ、全ての種類の対象物について予め制御情報を記憶することは現実的でない。また機械学習を用いて自動制御する場合にも、学習が不十分である場合に作業の精度が低下する可能性がある。
本発明の目的は、上述した課題を解決するマニピュレータの制御装置、制御方法およびプログラム、ならびに作業システムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によれば、制御装置は、入力装置の操作に基づいてマニピュレータに操作信号を出力するマニピュレータの制御装置であって、前記マニピュレータの操作の履歴に基づいて前記マニピュレータの第１の操作信号を生成する信号生成部と、前記第１の操作信号の妥当性を示すスコアを算出するスコア算出部と、前記スコアに基づいて、前記入力装置の操作に従った第２の操作信号を出力するか、前記第１の操作信号を出力するかを決定する信号出力部とを備える。
【０００６】
本発明の第２の態様によれば、第１の態様に係る制御装置は、前記マニピュレータによる作業の対象となる対象物を認識する認識部と、前記認識部によって認識された対象物と、前記マニピュレータが前記対象物についての作業をするときの前記入力装置の操作の履歴とに基づいて、前記対象物と前記マニピュレータの位置とから前記第１の操作信号を求めるためのモデルを更新する学習部とをさらに備え、前記信号生成部は前記モデルに基づいて前記第１の操作信号を生成し、前記スコア算出部は前記モデルに基づいて前記スコアを算出するものであってよい。
【０００７】
本発明の第３の態様によれば、第１または第２の態様に係る制御装置は、前記信号出力部は、一定時間ごとに生成される前記第１の操作信号に係る前記スコアが前記閾値未満になるまで、前記第１の操作信号を出力し、前記スコアが前記閾値未満になった以降、前記第２の操作信号を出力するものであってよい。
【０００８】
本発明の第４の態様によれば、第１から第３の何れかの態様に係る制御装置は、前記マニピュレータは複数の関節を備え、前記信号生成部は、前記複数の関節それぞれを操作する第１の操作信号を生成し、前記信号出力部は、前記複数の関節のうち前記スコアが前記閾値以上の関節に、前記第１の操作信号を出力するものであってよい。
【０００９】
本発明の第５の態様によれば、第４の態様に係る制御装置は、前記スコアが閾値未満の関節のうち最も基端側に設けられるものである基準関節を特定する関節特定部と、前記信号出力部は、前記複数の関節のうち、前記基準間接より基端側に設けられた関節に、前記第１の操作信号を出力し、前記基準関節および前記基準間接より先端側に設けられた関節に、前記第２の操作信号を出力するものであってよい。
【００１０】
本発明の第６の態様によれば、作業システムは、操作信号に基づいて駆動するマニピュレータと、ユーザによる操作の入力を受け付ける入力装置と、第１から第５の何れかの態様に係る制御装置とを備える。
【００１１】
本発明の第７の態様によれば、制御方法は、マニピュレータの制御方法であって、前記マニピュレータの操作の履歴に基づいて前記マニピュレータの第１の操作信号を生成するステップと、前記第１の操作信号の妥当性を示すスコアを算出するステップと、前記スコアに基づいて、ユーザによる操作の入力を受け付ける入力装置の操作に従った第２の操作信号を出力するか、前記第１の操作信号を出力するかを決定するステップとを有する。
【００１２】
本発明の第８の態様によれば、プログラムは、マニピュレータを制御するコンピュータに、前記マニピュレータの操作の履歴に基づいて前記マニピュレータの第１の操作信号を生成するステップと、前記第１の操作信号の妥当性を示すスコアを算出するステップと、前記スコアに基づいて、ユーザによる操作の入力を受け付ける入力装置の操作に従った第２の操作信号を出力するか、前記第１の操作信号を出力するかを決定するステップとを実行させる。
【発明の効果】
【００１３】
上記態様のうち少なくとも１つの態様によれば、制御装置は、生成された操作信号のスコアに基づいて、入力装置の操作に基づく操作信号と、操作の履歴に基づいて生成された操作信号とからマニピュレータに出力する操作信号を決定する。これにより、制御装置は、操作の履歴から生成された操作信号によってオペレータごとの操作のばらつきを抑制しつつ、学習が不十分な作業についてはオペレータによる操作によりマニピュレータを動作させることで、作業の精度を保つことができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態に係る作業システムの構成を示す概略図である。
【図２】第１の実施形態に係るコントローラの構成を示す概略ブロック図である。
【図３】第１の実施形態に係るマスタコントローラの動作を示す第１のフローチャートである。
【図４】第１の実施形態に係るマスタコントローラの動作を示す第２のフローチャートである。
【図５】第３の実施形態に係るマスタコントローラの構成を示す概略ブロック図である。
【図６】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１５】
《第１の実施形態》
以下、図面を参照しながら実施形態について詳しく説明する。
図１は、第１の実施形態に係る作業システムの構成を示す概略図である。
作業システム１は、入出力グローブ１０と、ヘッドマウントディスプレイ２０と、マスタコントローラ３０と、スレーブコントローラ４０と作業ロボット５０とを備える。入出力グローブ１０とヘッドマウントディスプレイ２０とはオペレータＯに装着され、作業ロボット５０はオペレータＯと遠隔に設置される。マスタコントローラ３０は、入出力グローブ１０およびヘッドマウントディスプレイ２０と電気的に接続される。スレーブコントローラ４０は、作業ロボット５０と電気的に接続される。マスタコントローラ３０とスレーブコントローラ４０とは、ネットワークＮを介して通信可能に構成される。
【００１６】
第１の実施形態に係る作業システム１は、倉庫から物品を運搬するピッキングシステムに適用される。ピッキングシステムは、コンベアや運搬ロボットによって、物品を収容するビンを作業ロボット５０が設置された作業スペースに運搬するシステムである。オペレータＯは、作業ロボット５０を遠隔から操作し、ビンに収容された対象物品を、出荷用コンベアや仕分け箱などの他の位置に移転させる。なお、他の実施形態においては、作業システム１は、ピッキングシステム以外のシステムに適用されてもよい。例えば、作業システム１は、たねまき、仕分け、開梱や梱包、検品、組立などの他の遠隔作業（倉庫内に限らずオフィス、スーパー、病院、図書館、実験室等における遠隔作業を含む）に用いられてもよい。
【００１７】
入出力グローブ１０は、オペレータＯの手に取り付けられる手袋状の入出力装置である。入出力グローブ１０は、オペレータＯの姿勢を検出する姿勢センサと、作業ロボット５０の動作をフィードバックするフィードバックデバイスとを備える。入出力グローブ１０は、姿勢センサが生成する信号を、操作信号としてマスタコントローラ３０に出力する。姿勢センサは、少なくともオペレータＯの関節の角度を算出可能に構成される。姿勢センサは、モーションキャプチャによりオペレータＯの動きを検出するものであってよい。フィードバックデバイスは、作業ロボット５０のマニピュレータ５１が触れた物の触感を再現可能な素子（アクチュエータや電極など）である。フィードバックデバイスは、マスタコントローラ３０から入力されるフィードバック信号に従って動作する。
【００１８】
ヘッドマウントディスプレイ２０は、オペレータＯの頭部に装着されることでオペレータＯに画像を提示する装置である。画像の提示方法としては、オペレータの目に対向するディスプレイに画像を表示する方法や、プロジェクタによってオペレータの目に画像を投影する方法が挙げられる。ヘッドマウントディスプレイ２０は、マスタコントローラ３０から入力される映像信号に従って映像を提示する。ヘッドマウントディスプレイ２０は、自身の姿勢を検出する姿勢センサ（例えば、加速度センサやジャイロスコープなど）を備える。ヘッドマウントディスプレイ２０は、姿勢センサの検出結果を示す姿勢信号をマスタコントローラ３０に出力する。
【００１９】
作業ロボット５０は、マニピュレータ５１とカメラ５２とを備える。
マニピュレータ５１は、複数のリンクが複数の関節を介して互いに接続されている。マニピュレータ５１は、スレーブコントローラ４０から入力される制御信号に従って関節ごとに設けられたアクチュエータを駆動させることによって各関節の角度を調整する。マニピュレータ５１の関節とオペレータＯの関節とは必ずしも一対一に対応しない。例えば、マニピュレータ５１は、５本未満の指（指に相当するリンクと関節との組み合わせ）を備えるものであってよい。また例えばマニピュレータ５１は、２つ以上の肘（肘に相当する関節）を備えるものであってよい。マニピュレータ５１には、触覚センサと姿勢センサとが設けられている。触覚センサは、マニピュレータ５１の表面（特に指に相当するリンクの先端）に設けられ、接触した物体の触感を検出する。姿勢センサは、マニピュレータ５１の関節ごとに設けられており、各関節の角度および角速度を検出する。姿勢センサの例としては、アクチュエータの運動量を計測するセンサ（回転数センサやストロークセンサ）が挙げられる。
カメラ５２は、関節を介してマニピュレータ５１と接続される。カメラ５２は、撮像した画像を表す映像情報をスレーブコントローラ４０に出力する。カメラ５２の姿勢は、スレーブコントローラ４０から入力される制御信号に従って調整される。つまり、カメラ５２とマニピュレータ５１とに接続されたアクチュエータが制御信号に従って駆動することで、カメラ５２の姿勢が調整される。
【００２０】
マスタコントローラ３０は、入出力グローブ１０から入力される操作信号に基づいて、作業ロボット５０のマニピュレータ５１の制御信号を生成する。またマスタコントローラ３０は、作業ロボット５０からマニピュレータ５１が検出する触感を示す触感信号に基づいて、当該触覚を入出力グローブ１０のフィードバックデバイスに再現させるためのフィードバック信号を生成する。また、マスタコントローラ３０は、スレーブコントローラ４０から映像信号を受信し、これをヘッドマウントディスプレイ２０に出力する。またマスタコントローラ３０は、ヘッドマウントディスプレイ２０から入力された姿勢信号に基づいて、作業ロボット５０のカメラ５２の制御信号を生成し、スレーブコントローラ４０に送信する。
【００２１】
スレーブコントローラ４０は、マスタコントローラ３０から制御信号を受信し、これに従ってマニピュレータ５１を駆動させる。またスレーブコントローラ４０は、触覚センサ、姿勢センサ、カメラ５２から信号を取得し、これをマスタコントローラ３０に送信する。
【００２２】
図２は、第１の実施形態に係るコントローラの構成を示す概略ブロック図である。
マスタコントローラ３０は、信号受信部３０１、映像信号出力部３０２、触感信号変換部３０３、フィードバック信号出力部３０４、姿勢記憶部３０５、姿勢更新部３０６、指示入力部３０７、認識部３０８、作業モデル記憶部３０９、制御信号算出部３１０、操作信号入力部３１１、操作信号変換部３１２、制御信号送信部３１３、作業判定部３１４、学習部３１５を備える。
【００２３】
信号受信部３０１は、スレーブコントローラ４０を介して、作業ロボット５０から映像信号、触感信号および姿勢信号を受信する。
映像信号出力部３０２は、受信した映像信号をヘッドマウントディスプレイ２０に出力する。このとき、映像信号出力部３０２は、作業指示に含まれる対象物品Ｉの画像や、認識部３０８による認識結果を映像信号に重畳させてもよい。
触感信号変換部３０３は、受信した触感信号をフィードバック信号に変換する。つまり、触感信号変換部３０３は、作業ロボット５０のマニピュレータ５１が触れた物体の触感を、フィードバックデバイスに再現させるためのフィードバック信号を生成する。触感信号からフィードバック信号への変換は、例えば触感信号を予め求められた関数に入力することで実現することができる。
フィードバック信号出力部３０４は、フィードバック信号を入出力グローブ１０に出力する。
【００２４】
姿勢記憶部３０５は、作業ロボット５０の姿勢を記憶する。作業ロボット５０の姿勢には、各関節の位置、角度、角速度が含まれる。
姿勢更新部３０６は、受信した姿勢信号に基づいて姿勢記憶部３０５が記憶する情報を更新する。
【００２５】
指示入力部３０７は、ピッキングシステム等から作業指示の入力を受け付ける。作業指示には、作業対象となる対象物品Ｉの形状を特定可能な情報が含まれる。形状を特定可能な情報の例としては、立体形状を示す三次元形状データ、複数の視点から撮影された二次元画像データ、三次元形状データや二次元画像データから抽出された特徴量情報などが挙げられる。
【００２６】
認識部３０８は、作業指示に基づいて、映像信号に写った対象物品Ｉの位置および姿勢を認識する。認識部３０８は、例えばパターンマッチング法により対象物品Ｉを認識する。
【００２７】
作業モデル記憶部３０９は、対象物品Ｉの種類、位置および姿勢、ならびにマニピュレータ５１の姿勢からマニピュレータ５１の操作信号を特定するための作業モデルを記憶する。作業モデルは、学習部３１５による機械学習によって更新される。作業モデルの例としては、ニューラルネットワークモデルやベイジアンネットワークなどが挙げられる。
【００２８】
制御信号算出部３１０は、作業モデル記憶部３０９が記憶する作業モデルに対象物品Ｉの種類、位置および姿勢、ならびにマニピュレータ５１の姿勢を入力することで、制御信号（第１の制御信号）を算出する。このとき、制御信号算出部３１０は、制御信号の妥当性を示すスコアを算出する。スコアの例としては、作業モデルの導出過程で算出される制御信号の尤度が挙げられる。本実施形態に係るスコアは値が大きいほど妥当性が高いことを示す。つまり、制御信号算出部３１０は信号生成部およびスコア算出部の一例である。
【００２９】
操作信号入力部３１１は、入出力グローブ１０から操作信号（第２の操作信号）の入力を受け付ける。また操作信号入力部３１１は、ヘッドマウントディスプレイ２０から姿勢信号の入力を受け付ける。
操作信号変換部３１２は、操作信号および姿勢信号を制御信号に変換する。つまり、操作信号変換部３１２は、オペレータＯと同じ動作を作業ロボット５０に実行させるための制御信号を生成する。操作信号および姿勢信号から制御信号への変換は、例えば操作信号および姿勢信号を予め求められた関数に入力することで実現することができる。なお、入出力グローブ１０の操作信号は、マニピュレータ５１の制御信号に変換され、ヘッドマウントディスプレイ２０の姿勢信号は、カメラ５２の制御信号に変換される。
【００３０】
制御信号送信部３１３は、制御信号算出部３１０が生成した制御信号のスコアに基づいて、作業ロボット５０の制御に用いる制御信号を決定する。具体的には、制御信号送信部３１３は、スコアが閾値以上である場合に、制御信号算出部３１０が生成したマニピュレータ５１の制御信号をスレーブコントローラ４０に送信し、スコアが閾値未満である場合に、操作信号変換部３１２が変換したマニピュレータ５１の制御信号をスレーブコントローラ４０に送信する。また制御信号送信部３１３は、スコアに関わらず操作信号変換部３１２が生成したカメラ５２の制御信号をスレーブコントローラ４０に送信する。
【００３１】
作業判定部３１４は、信号受信部３０１が受信した映像信号に基づいて、作業ロボット５０による作業が成功したか否かを判定する。例えば、作業判定部３１４は、対象物品Ｉが目標位置にあり、かつ対象物品Ｉがマニピュレータ５１に把持されていない場合に、作業が成功したと判定する。他方、作業判定部３１４は、対象物品Ｉが目標位置になく、かつ対象物品Ｉがマニピュレータ５１に把持されていない場合に、作業が失敗したと判定する。
学習部３１５は、認識部３０８による認識結果と、作業判定部３１４による判定結果と、作業開始から判定までに出力された制御信号とを用いて作業モデル記憶部３０９が記憶する作業モデルを更新する。
【００３２】
図３は、第１の実施形態に係るマスタコントローラの動作を示す第１のフローチャートである。
ピッキングシステムが対象物を作業スペースに運搬すると、ピッキングシステムは、マスタコントローラ３０に作業指示を出力する。
マスタコントローラ３０の指示入力部３０７は、ピッキングシステムから作業指示の入力を受け付ける（ステップＳ１）。次に、信号受信部３０１は、スレーブコントローラ４０を介して作業ロボット５０から、カメラ５２が撮像した映像信号、触覚センサが検出した触感信号、および姿勢センサが検出した姿勢信号を受信する（ステップＳ２）。
【００３３】
映像信号出力部３０２は、信号受信部３０１が受信した映像信号をヘッドマウントディスプレイ２０に出力する（ステップＳ３）。ヘッドマウントディスプレイ２０は、映像信号が入力されると当該映像信号に基づいて画像をオペレータＯに提示する。これにより、オペレータＯは、作業ロボット５０のマニピュレータ５１と対象物品Ｉとの位置関係を確認することができる。
【００３４】
姿勢更新部３０６は、受信した姿勢信号に基づいて姿勢記憶部３０５が記憶する情報を更新する（ステップＳ４）。また触感信号変換部３０３は、受信した触感信号をフィードバック信号に変換する（ステップＳ５）そして、フィードバック信号出力部３０４は、フィードバック信号を入出力グローブ１０に出力する（ステップＳ６）。これにより、オペレータＯは、マニピュレータ５１が触れるものの触感を得ることができる。
【００３５】
次に、認識部３０８は、作業指示に含まれる対象物品Ｉの情報に基づいて、映像信号に写った対象物品Ｉの位置および姿勢を認識する（ステップＳ７）。制御信号算出部３１０は、作業モデル記憶部３０９が記憶する作業モデルに、対象物品Ｉの種類、位置および姿勢、ならびにマニピュレータ５１の姿勢を入力することで、マニピュレータ５１の制御信号と、当該制御信号の妥当性を示すスコアとを算出する（ステップＳ８）。対象物品Ｉの種類は、作業指示に含まれる。また対象物品Ｉの位置および姿勢は、認識部３０８によって認識される。またマニピュレータ５１の姿勢は、姿勢記憶部３０５に記憶される。当該制御信号は、マニピュレータ５１を単位時間の間動作させるための信号である。
【００３６】
制御信号送信部３１３は、制御信号算出部３１０が生成した制御信号のスコアが閾値以上であるか否かを判定する（ステップＳ９）。スコアが閾値以上である場合（ステップＳ９：ＹＥＳ）、制御信号送信部３１３は、ステップＳ８で算出されたマニピュレータ５１の制御信号を、スレーブコントローラ４０に送信する（ステップＳ１０）。これにより、スレーブコントローラ４０は、作業モデルに基づいて生成された制御信号に従ってマニピュレータ５１を動作させる。
【００３７】
他方、スコアが閾値未満である場合（ステップＳ９：ＮＯ）、制御信号送信部３１３は、オペレータＯによる操作に基づく制御信号をスレーブコントローラ４０に送信することを決定する。このとき、マスタコントローラ３０は、ヘッドマウントディスプレイ２０に入出力グローブ１０の操作の指示を表示させてもよい。オペレータＯによって入出力グローブ１０が操作されると、操作信号入力部３１１は、入出力グローブ１０から操作信号の入力を受け付ける（ステップＳ１１）。操作信号変換部３１２は、操作信号をマニピュレータ５１の制御信号に変換する（ステップＳ１２）。そして、制御信号送信部３１３は、ステップＳ１２で変換されたマニピュレータ５１の制御信号を、スレーブコントローラ４０に送信する（ステップＳ１３）。これにより、スレーブコントローラ４０は、オペレータＯの操作に基づいて生成された制御信号に従ってマニピュレータ５１を動作させる。
【００３８】
マニピュレータ５１の制御信号を送信すると、操作信号入力部３１１は、ヘッドマウントディスプレイ２０から姿勢信号の入力を受け付ける（ステップＳ１４）。操作信号変換部３１２は、姿勢信号をカメラ５２の制御信号に変換する（ステップＳ１５）。そして、制御信号送信部３１３は、スコアに関わらず操作信号変換部３１２が生成したカメラ５２の制御信号を作業ロボット５０に送信する（ステップＳ１６）。これにより、スレーブコントローラ４０は、オペレータＯの視線の動きとカメラ５２の視線の動きが一致するように、カメラ５２の姿勢を制御する。
【００３９】
図４は、第１の実施形態に係るマスタコントローラの動作を示す第２のフローチャートである。
作業判定部３１４は、信号受信部３０１が受信した映像信号に基づいて、対象物品Ｉがマニピュレータ５１に把持されているか否かを判定する（ステップＳ１７）。対象物品Ｉがマニピュレータ５１に把持されている場合（ステップＳ１７：ＹＥＳ）、作業判定部３１４は、作業中であると判定し、ステップＳ２に処理を戻す。他方、対象物品Ｉがマニピュレータ５１に把持されていない場合（ステップＳ１７：ＮＯ）、作業判定部３１４は、信号受信部３０１が受信した映像信号に基づいて、対象物品Ｉが目標位置にあるか否かを判定する（ステップＳ１８）。対象物品Ｉが目標位置にある場合（ステップＳ１８：ＹＥＳ）、作業判定部３１４は、作業が成功したと判定する（ステップＳ１９）。他方、対象物品Ｉが目標位置にない場合（ステップＳ１８：ＮＯ）、作業判定部３１４は、作業が失敗したと判定する（ステップＳ２０）。
【００４０】
そして、学習部３１５は、認識部３０８による認識結果と、作業判定部３１４による判定結果と、作業開始から判定までに出力された制御信号とを用いて作業モデル記憶部３０９が記憶する作業モデルを更新する（ステップＳ２１）。
【００４１】
このように、第１の実施形態によれば、マスタコントローラ３０は、マニピュレータ５１の操作の履歴に基づいてマニピュレータ５１の操作信号とその妥当性を示すスコアを算出し、当該スコアに基づいて、入出力グローブ１０の操作に従った操作信号を出力するか、算出した操作信号を出力するかを決定する。これにより、マスタコントローラ３０は、操作の履歴から生成された操作信号によってオペレータＯごとの操作のばらつきを抑制しつつ、学習が不十分な作業についてはオペレータＯによる操作によりマニピュレータ５１を動作させることで、作業の精度を保つことができる。
【００４２】
《第２の実施形態》
第１の実施形態に係る作業システム１は、作業ロボット５０の単位制御時間ごとに、作業モデルから算出された制御信号と入出力グローブ１０の操作に基づく制御信号との何れを採用するかを決定する。これに対し、第２の実施形態に係る作業システム１は、スコアが閾値未満になるまでは作業モデルから算出された制御信号を採用し、スコアが閾値未満になった以降は、入出力グローブ１０の操作に基づく制御信号を採用する。
【００４３】
具体的には、第１の実施形態に係る制御信号送信部３１３は、ステップＳ９において、ステップＳ８で算出したスコアが閾値以上であるか否かを判定したが、第２の実施形態に係る制御信号送信部３１３は、以前に算出したスコアが全て閾値以上であるか否かを判定する。これにより、制御信号送信部３１３は、スコアが閾値未満になるまでは作業モデルから算出された制御信号を採用し、スコアが閾値未満になった以降は、入出力グローブ１０の操作に基づく制御信号を採用することができる。これにより、第２の実施形態に係る作業システム１は、作業の大まかな工程を自動制御により実現し、妥当性の低い最終工程だけをオペレータＯの操作に基づいて調整することができる。
【００４４】
《第３の実施形態》
第１、第２の実施形態に係る作業システム１は、マニピュレータ５１の全ての関節を作業モデルから算出された制御信号によって制御するか、入出力グローブ１０の操作に基づく制御信号によって制御するかを決定する。これに対し、第３の実施形態に係る作業システム１は、マニピュレータ５１の複数の関節の中から、作業モデルから算出された制御信号によって制御する関節と、入出力グローブ１０の操作に基づく制御信号によって制御する関節とを決定する。
【００４５】
図５は、第３の実施形態に係るマスタコントローラの構成を示す概略ブロック図である。
第３の実施形態に係るマスタコントローラ３０は、第１の実施形態の構成に加え、さらに関節特定部３１６を備える。関節特定部３１６は、マニピュレータ５１が備える複数の関節のうち、制御信号のスコアが閾値未満であって最も基端側に設けられるものを、基準関節として特定する。例えば、制御信号算出部３１０が、各関節の制御信号を生成した場合に、肩に相当する関節のスコアが０．８、肘に相当する関節のスコアが０．７、手首に相当する関節のスコアが０．６、指の第三関節に相当する関節のスコアが０．４、指の第二関節に相当する関節のスコアが０．３、指の第一関節に相当する関節のスコアが０．１であって、閾値が０．５である場合、関節特定部３１６は、指の第三関節に相当する関節を基準関節とする。
【００４６】
第３の実施形態に係る制御信号送信部３１３は、基準間接より基端側に設けられた関節に、制御信号算出部３１０が算出した操作信号を出力し、基準関節および基準間接より先端側に設けられた関節に、操作信号変換部３１２が変換した操作信号を出力する。上記例に倣うと、制御信号送信部３１３は、肩に相当する関節、肘に相当する関節、および手首に相当する関節に、制御信号算出部３１０が算出した操作信号を出力する。また制御信号送信部３１３は、指の第三関節に相当する関節、指の第二関節に相当する関節、指の第一関節に相当する関節に、操作信号変換部３１２が変換した操作信号を出力する。
【００４７】
このように、第３の実施形態に係る作業システム１は、マニピュレータ５１の基端側の動作を自動制御し、学習が不十分な先端部分についてはオペレータＯによる操作によりマニピュレータ５１を動作させる。これにより、作業システム１は、オペレータＯごとの操作のばらつきを抑制しつつ、作業の精度を保つことができる。
【００４８】
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
例えば、上述した実施形態においては、自動制御するか手動制御とするかを判定する閾値が固定値であるが、これに限られない。例えば、他の実施形態においては、当該閾値がオペレータＯの習熟度に応じて異なってもよい。例えば、オペレータＯが作業に習熟しているほど、閾値を高くすることで、習熟度の高いオペレータＯの手動制御の割合を増加させることができる。これにより、習熟度の高いオペレータＯの操作を適切に作業モデルに学習させることができる。また、他の実施形態においては、オペレータＯが当該閾値を自由に変更してもよい。また、他の実施形態においては、対象物品Ｉの種類に応じて閾値を異ならせてもよい。
【００４９】
また、上述の実施形態では、マスタコントローラ３０がオペレータＯの近傍に設けられるが、これに限られない。例えば、他の実施形態では、ネットワークＮ上のサーバ装置において、上述の制御がなされてもよいし、マスタコントローラ３０とスレーブコントローラ４０の位置関係が入れ替わってもよい。つまり、他の実施形態においては、オペレータＯの近傍に設けられたスレーブコントローラ４０が、信号の転送のみを行い、作業ロボット５０の近傍に設けられたマスタコントローラ３０が、上記処理を行ってもよい。
【００５０】
また、第３の実施形態では、マスタコントローラ３０がスコアに基づいて複数の関節のうち基準関節より基端側の関節を自動制御し、基準関節およびこれより先端側の関節を手動制御するが、これに限られない。例えば、他の実施形態においては、マスタコントローラ３０は、複数の関節のうち、スコアが閾値以上の関節を自動制御し、スコアが閾値未満の関節を手動制御してもよい。
【００５１】
図６は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ９０は、ＣＰＵ９１、メインメモリ９２、ストレージ９３、インタフェース９４を備える。
上述のマスタコントローラ３０は、コンピュータ９０に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ９３に記憶されている。ＣＰＵ９１は、プログラムをストレージ９３から読み出してメインメモリ９２に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ９１は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ９２に確保する。
【００５２】
ストレージ９３の例としては、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、半導体メモリ等が挙げられる。ストレージ９３は、コンピュータ９０のバスに直接接続された内部メディアであってもよいし、インタフェース９４または通信回線を介してコンピュータ９０に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ９０に配信される場合、配信を受けたコンピュータ９０が当該プログラムをメインメモリ９２に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、ストレージ９３は、一時的でない有形の記憶媒体である。
【００５３】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能をストレージ９３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００５４】
１  作業システム
１０  入出力グローブ
２０  ヘッドマウントディスプレイ
３０  マスタコントローラ
４０  スレーブコントローラ
５０  作業ロボット
５１  マニピュレータ
５２  カメラ
３０１  信号受信部
３０２  映像信号出力部
３０３  触感信号変換部
３０４  フィードバック信号出力部
３０５  姿勢記憶部
３０６  姿勢更新部
３０７  指示入力部
３０８  認識部
３０９  作業モデル記憶部
３１０  制御信号算出部
３１１  操作信号入力部
３１２  操作信号変換部
３１３  制御信号送信部
３１４  作業判定部
３１５  学習部
３１６  関節特定部
【図１】
2018153873.tif 000003
【図２】
2018153873.tif 000004
【図３】
2018153873.tif 000005
【図４】
2018153873.tif 000006
【図５】
2018153873.tif 000007
【図６】
2018153873.tif 000008