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