(57)【要約】【課題】スレーブ装置の動作を停止させることなく、スレーブ装置を継続的に動作させることが可能な遠隔操作技術を提供する。【解決手段】遠隔操作システム１は、マスタ装置１０の動きに応じて指令値を生成し、生成された指令値を含むデータを送信するマスタコントローラ３０と、マスタコントローラ３０からの指令値を含むデータを受信して、当該指令値に従ってスレーブ装置７０を制御可能なスレーブコントローラ５０とを有する。スレーブコントローラ５０は、マスタコントローラ３０から受信した指令値の履歴に基づき、当該受信した指令値より後の指令値を予測して予測指令値とし、マスタコントローラ３０とスレーブコントローラ５０との間のデータ伝送が正常か異常かを判定する。データ伝送が正常である場合、指令値に従ってスレーブ装置の動作を制御し、異常である場合、予測指令値に基づいてスレーブ装置の動作を制御する。【選択図】図１
2019217557.tif 000002
【特許請求の範囲】
【請求項１】
オペレータの操作入力を受け付けるマスタ装置と、
前記マスタ装置の動きに応じて動作するスレーブ装置と、
前記マスタ装置の動きに応じて指令値を生成し、生成された指令値を含むデータを送信するマスタコントローラと、
前記マスタコントローラからの指令値を含むデータを受信して、当該指令値に従ってスレーブ装置を制御可能なスレーブコントローラと、
を備え、
前記スレーブコントローラは、
前記マスタコントローラから受信した前記指令値の履歴に基づき、当該受信した指令値より後の指令値を予測して予測指令値とし、
前記マスタコントローラと前記スレーブコントローラとの間のデータ伝送が正常か異常かを判定し、
前記データ伝送が正常と判定した場合には、前記指令値に従って前記スレーブ装置の動作を制御し、
前記データ伝送が異常と判定した場合には、前記予測指令値に基づいてスレーブ装置の動作を制御する
ことを特徴とする遠隔操作システム。
【請求項２】
前記マスタ装置を操作するオペレータに対して各種情報を提供可能な出力装置を、さらに備え、
前記マスタコントローラは、
前記マスタコントローラと前記スレーブコントローラとの間のデータ伝送が正常か異常かを判定し、
前記データ伝送が正常な状態で前記スレーブコントローラに送信された前記指令値の履歴に基づいて、当該送信された指令値より後の指令値を予測してマスタ側予測指令値とし、
前記データ伝送が異常と判定した場合には、前記マスタ側予測指令値に基づいてスレーブ装置の動作を予測し、
予測したスレーブ装置の動作を前記出力装置に表示させる
ことを特徴とする請求項１に記載の遠隔操作システム。
【請求項３】
前記マスタコントローラは、前記マスタ側予測指令値と前記指令値との差に基づいて乖離量を算出し、
前記出力装置は、当該乖離量を出力する
ことを特徴とする請求項２に記載の遠隔操作システム。
【請求項４】
前記マスタ装置は、前記マスタコントローラにより制御されて操作反力を発生可能なマニピュレータを含み、
当該マスタコントローラは、前記乖離量が小さくなるよう当該マニピュレータに生じる操作反力を制御する
ことを特徴とする請求項３に記載の遠隔操作システム。
【請求項５】
前記スレーブコントローラは、
環境物の形状を示す環境モデルが予め格納された記憶装置を有し、
当該環境モデルを参照して、前記予測指令値に基づく前記スレーブ装置の動作が、前記環境物と干渉するか否かを判定し、
干渉すると判定した場合には、前記スレーブ装置の動作を当該環境物との干渉が回避される動作に修正する
ことを特徴とする請求項１ないし請求項４のいずれか一項に記載の遠隔操作システム。
【請求項６】
前記スレーブコントローラは、
前記スレーブ装置が環境物と干渉しないよう、前記スレーブ装置が動作可能な空間を制限し、当該制限された空間内で当該スレーブ装置が動作するよう修正する
ことを特徴とする請求項５に記載の遠隔操作システム。
【請求項７】
前記マスタコントローラは、オペレータの操作に応じて、前記スレーブ装置と環境物との干渉を回避する機能を無効にする無効化信号を生成し、
前記スレーブコントローラは、当該マスタコントローラから当該無効化信号を受信して、前記スレーブ装置の動作を、前記環境モデルを参照して修正する機能を無効にする
ことを特徴とする請求項５又は請求項６に記載の遠隔操作システム。
【請求項８】
オペレータが操作するマスタ装置の動きに応じて、当該マスタ装置から離れた場所にあるスレーブ装置の動作を遠隔操作する遠隔操作方法であって、
前記マスタ装置の動きに応じて、マスタコントローラにおいて指令値を生成するステップと、
前記マスタコントローラにおいて生成された指令値を含むデータを、前記スレーブ装置を制御するスレーブコントローラに伝送するステップと、
前記マスタコントローラと前記スレーブコントローラとの間のデータ伝送が正常である場合、当該スレーブコントローラにより、前記指令値に従って前記スレーブ装置の動作を制御しながら、当該指令値の履歴に基づいてスレーブ装置の動作を予測するステップと、
前記マスタコントローラと前記スレーブコントローラとの間のデータ伝送が異常である場合、当該スレーブコントローラにより、前記予測した動作を示す予測値に従ってスレーブ装置の動作を制御するステップと、
を含むことを特徴とする遠隔操作方法。
【請求項９】
前記マスタコントローラにより、前記指令値の履歴に基づいて前記スレーブ装置の動作を予測するステップと、
当該マスタコントローラにより、当該予測した動作に関する情報が、前記マスタ装置を操作するオペレータに提供されるよう、出力装置を制御するステップと、
をさらに含むことを特徴とする請求項８に記載の遠隔操作方法。
【請求項１０】
前記マスタコントローラは、
前記予測した動作を示す予測値と前記指令値との差である乖離量を算出するステップを含み、
前記出力装置を制御するステップにおいては、当該乖離量を示す情報がオペレータに提供されるよう制御する
ことを特徴とする請求項９に記載の遠隔操作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、オペレータが遠隔の場所からリアルタイムでデバイスの動作を制御する遠隔操作技術に関し、特に、オペレータがマスタ装置を操作することにより、当該マスタ装置から離れた場所にあるスレーブ装置の動作を遠隔操作する技術に関する。
【背景技術】
【０００２】
電離放射線の線量率の高い環境等、人間が立ち入れない環境下では、マニピュレータ等の装置を遠隔操作して、当該操作を行うオペレータに代わって、当該装置に実際の作業を行わせることがある。このような装置を遠隔操作する技術には、例えば、人間が操作する操縦装置である一次装置（以下、マスタ装置と記す）の動作を、二次装置（以下、スレーブ装置と記す）に再生、模倣させる制御、いわゆるマスタ-スレーブ制御がある。このようなマスタ装置やスレーブ装置には、例えば、マニピュレータがある。マニピュレータは、通常、工作物や工具等の対象物をつかみ、数自由度で動かすことが可能である。
【０００３】
このような遠隔操作システムにおいては、例えば、オペレータがマスタ装置を操作することで、離れた位置にあるスレーブ装置を動作させて、当該スレーブ装置に実際の作業を行わせるものがある。このようなシステムには、例えば、スレーブ装置のマニピュレータのアーム等が発生させる力や受ける反力を、マスタ装置のマニピュレータを操作するオペレータに提示するもの、いわゆる力帰還（フィードバック）型マスタースレーブ・マニピュレータが提案されている。
【０００４】
このような遠隔操作システムにおいては、マスタ装置とスレーブ装置との間において、マスタ装置からスレーブ装置への指令値を示すデータや、スレーブ装置からのマスタ装置への実現値を示すデータを、伝送する必要がある。このようなデータを伝送する過程において、例えば、マスタ装置とスレーブ装置間のデータ伝送に大きな遅延等の異常が発生すると、上述したマスタ-スレーブ制御が不安定となり、スレーブ装置の動作がオペレータの意図した動作にならない場合がある。さらに、定常的に大きな遅延等が生じた場合には、当該遅延に起因する時間遅れにより、マスタ装置が指令する動作と、スレーブ装置が実現する動作との間に大きな乖離が生じることがある。
【０００５】
このようなマスタ装置とスレーブ装置との間における動作の乖離を解消するために、マスタ装置のコントローラにおいてスレーブ装置の動作をシミュレーションし、スレーブ装置が受ける反力を推定して、当該反力をマスタ装置において再現し、オペレータに当該反力を体感させる手法が提案されている。
【０００６】
また、共通の対象物を複数のロボットで把持する協調作業を行わせる技術において、一のロボット制御装置と他のロボット制御装置との間にあるネットワークの通信状況が悪化した場合、例えば、大きな遅延等や通信途絶等が生じた場合に、当該ロボット制御装置において、受信され格納された所定数の指令値を基に、指令値を受信できなかった場合に用いる指令値（推定指令値）を推定することが提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平６−５１６９１号公報
【特許文献２】特開平９-２６７２８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した遠隔操作システムにおいて、マスタ装置の制御装置（以下、マスタコントローラと記す）と、スレーブ装置の制御装置（以下、スレーブコントローラと記す）は、指令値や実現値を含むデータを、リアルタイムに伝送して、それぞれマスタ装置とスレーブ装置を制御する必要がある。力フィードバック（帰還）型のシステムにおいては、データ伝送に遅延が発生すると、マスタ装置及びスレーブ装置の制御が不安定になる。また、上述したデータ伝送に、定常的且つ大きな遅延がある場合には、マスタ装置の動作とスレーブ装置の動作には、当該遅延に起因する乖離が生じる。
【０００９】
また、通信途絶と判断されるような大きさの遅延が生じた場合、スレーブコントローラは、所定の期間、指令値を受信できないため、スレーブ装置の動作が停止する。また、データ伝送が再開される際には、マスタ装置の位置及び姿勢（すなわちポーズ）とスレーブ装置のポーズには乖離が生じてしまい、スレーブ装置の制御を再開する際には、マスタ装置及びスレーブ装置のそれぞれのポーズを一致させる必要がある。特に、マスタコントローラとスレーブコントローラとの間のデータ伝送をインターネット等の公衆回線や無線通信で行う場合、通信品質が悪い環境下においては、通信途絶等の通信に異常が頻発する虞があり、このような異常が生じる都度スレーブ装置の動作を停止すると、作業効率が著しく悪化する。
【００１０】
本発明の実施形態は、上記事情に鑑みてなされたものであって、マスタコントローラとスレーブコントローラとの間のデータ伝送に異常が生じた場合であっても、スレーブ装置の動作を停止させることなく、スレーブ装置を継続的に動作させることが可能な遠隔操作技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の目的を達成するため、本発明の実施形態の遠隔操作システムは、オペレータの操作入力を受け付けるマスタ装置と、前記マスタ装置の動きに応じて動作するスレーブ装置と、前記マスタ装置の動きに応じて指令値を生成し、生成された指令値を含むデータを送信するマスタコントローラと、前記マスタコントローラからの指令値を含むデータを受信して、当該指令値に従ってスレーブ装置を制御可能なスレーブコントローラと、を備え、前記スレーブコントローラは、前記マスタコントローラから受信した前記指令値の履歴に基づき、当該受信した指令値より後の指令値を予測して予測指令値とし、前記マスタコントローラと前記スレーブコントローラとの間のデータ伝送が正常か異常かを判定し、前記データ伝送が正常と判定した場合には、前記指令値に従って前記スレーブ装置の動作を制御し、前記データ伝送が異常と判定した場合には、前記予測指令値に基づいてスレーブ装置の動作を制御することを特徴とする。
【００１２】
また、本発明の実施形態の遠隔操作方法は、オペレータが操作するマスタ装置の動きに応じて、当該マスタ装置から離れた場所にあるスレーブ装置の動作を遠隔操作する遠隔操作方法であって、前記マスタ装置の動きに応じて、マスタコントローラにおいて指令値を生成するステップと、前記マスタコントローラにおいて生成された指令値を含むデータを、前記スレーブ装置を制御するスレーブコントローラに伝送するステップと、前記マスタコントローラと前記スレーブコントローラとの間のデータ伝送が正常である場合、当該スレーブコントローラにより、前記指令値に従って前記スレーブ装置の動作を制御しながら、当該指令値の履歴に基づいてスレーブ装置の動作を予測するステップと、前記マスタコントローラと前記スレーブコントローラとの間のデータ伝送が異常である場合、当該スレーブコントローラにより、前記予測した動作を示す予測値に従ってスレーブ装置の動作を制御するステップと、を含むことを特徴とする。
【発明の効果】
【００１３】
本発明の実施形態によれば、マスタコントローラとスレーブコントローラとの間のデータ伝送に異常が生じた場合であっても、スレーブ装置の動作を停止させることなく、スレーブ装置を継続的に動作させることができ、データ伝送に異常が生じるような環境下における作業効率の低下を抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】遠隔操作システムの一例を示す模式図である。
【図２】第１の実施形態に係る遠隔操作システムの各種機能を説明するブロック図である。
【図３】第２の実施形態に係る遠隔操作システムの各種機能を説明するブロック図である。
【図４】第３の実施形態に係る遠隔操作システムの各種機能を説明するブロック図である。
【図５】第４の実施形態に係る遠隔操作システムの各種機能を説明するブロック図である。
【発明を実施するための形態】
【００１５】
以下に、本発明の実施形態について図面を参照して説明する。なお、以下に説明する実施形態により、本発明が限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能である。
【００１６】
〔第１の実施形態〕
本実施形態に係る遠隔操作システムの基本構成の例について、図１を参照して説明する。遠隔操作システムの一例を示す模式図である。
【００１７】
遠隔操作システム１は、オペレータがマスタ装置１０を操作して、遠隔の場所にあるロボットやロボティックデバイス等のスレーブ装置７０の動作をリアルタイムに制御して、当該スレーブ装置に実際の作業を行わせるためのものである。遠隔操作システムは、「遠隔操縦システム」又は「テレオペレーション・システム」とも呼称される。
【００１８】
遠隔操作システム１は、オペレータの操作入力を受け付けるマスタ装置１０と、マスタ装置を操作するオペレータに対して各種の情報を提供可能な出力装置２０と、マスタ装置１０の動き、すなわちオペレータの操作入力に応じて指令値を生成するマスタコントローラ３０と、を有する。マスタ装置１０、出力装置２０及びマスタコントローラ３０は、オペレータの近傍に配置される。マスタ装置１０及び出力装置２０は、それぞれ、マスタコントローラ３０と、通信線を介して電気的に接続されており、これらの間で各種のデータ伝送が可能である。マスタ装置１０及び出力装置２０は、マスタコントローラ３０により制御される。マスタ装置１０、出力装置２０及びマスタコントローラ３０は、遠隔操作システム１のうちマスタ側の部分３を形成している。
【００１９】
また、遠隔操作システム１は、マスタ装置１０の動きに応じて動作するスレーブ装置７０と、マスタコントローラ３０からの指令値を受信して、当該指令値に従ってスレーブ装置７０を制御可能なスレーブコントローラ５０と、を有する。スレーブコントローラ５０及びスレーブ装置７０は、遠隔操作システム１のうちマスタ側の部分３から離れた場所に配置されており、具体的には、高放射線環境等、オペレータが長時間、立ち入ることのできない場所に配置される。スレーブコントローラ５０と、スレーブ装置７０は、通信線を介して電気的に接続されており、これらの間で各種のデータ伝送が可能である。なお、スレーブコントローラ５０は、スレーブ装置７０と一体に結合されているものとしても良い。スレーブコントローラ５０及びスレーブ装置７０は、遠隔操作システム１のうちスレーブ側の部分５を形成している。
【００２０】
本実施形態において、マスタ装置１０は、オペレータによって操作されるマニピュレータを有する。このマスタ装置１０のマニピュレータは、複数のロボティック・アーム１５を有する。各アーム１５は、相互に接続された複数のリンク１６と、隣り合う２つのリンク１６の間に設けられて一方のリンク１６を他方のリンク１６に対して回動させるジョイント（関節）１７とを有する。当該マニピュレータは、オペレータの操作入力を受け付ける入力装置として作動する。また、当該マニピュレータは、マスタコントローラ３０により制御されて、操作反力を発生可能なものである。当該マニピュレータは、これを操作するオペレータに対して、スレーブ装置７０が受ける反力の情報を、操作反力の形で提供する出力装置として作動する。なお、図１においてはアーム１５、アーム７５を簡略的な構成で図示しているが、実際は複数の自由度を有する多関節のロボットアームである。関節数は任意だが、例えば人間の手の自由な動きに追随するには最低６関節（６自由度）が備えられる。以降、アーム１５、アーム７５は複数の関節を有するものとして説明する。
【００２１】
マスタコントローラ３０は、各種の演算処理が可能なプロセッサ３２と、各種の定数が予め格納されたストレージ（記憶装置）３４と、スレーブコントローラ５０との間でデータ伝送を行うためのトランスミッターレシーバ３６とを有する。プロセッサ３２、記憶装置３４及びトランスミッターレシーバ３６は、一体に結合されてマスタコントローラ３０を形成している。
【００２２】
トランスミッターレシーバ３６は、ネットワーク４０に接続されており、当該ネットワーク４０を介してスレーブコントローラ５０のトランスミッターレシーバ５６との間で各種のデータ伝送を行う。なお、ネットワーク４０には、インターネットや無線通信によるネットワークが用いられる。なお、ネットワーク４０には、専用の信号線を利用した通信回線を用いるものとしても良い。図１において、マスタコントローラ３０からスレーブコントローラ５０へのデータ伝送路を矢印４４で示し、スレーブコントローラ５０からマスタコントローラ３０へのデータ伝送路を矢印４６で示す。
【００２３】
マスタコントローラ３０は、プロセッサ３２がマスタ装置１０のマニピュレータのアーム１５の位置及び姿勢（いわゆるポーズ）に応じた指令値を生成する。プロセッサ３２は、当該指令値を含むデータを、トランスミッターレシーバ３６を通して、スレーブコントローラ５０に伝送する。マスタコントローラ３０からスレーブコントローラ５０に伝送される指令値を含むデータには、例えば、各指令ポーズに、対応する時刻を付加したデータ、すなわち軌道を示すデータがある。
【００２４】
また、本実施形態において、スレーブ装置７０は、オペレータに代わって実際の作業を行うマニピュレータ７３を備えたロボットである。当該ロボット７０は、架台（platform）７２に、マニピュレータ７３が搭載されたものである。当該マニピュレータ７３は、複数のロボティック・アーム７５を有する。各アーム７５の先端には、エンドエフェクタ７８が結合されている。図１において、エンドエフェクタ７８は、各種の構造物を把持又は保持するよう設計されたグリッパ（gripper）である。なお、エンドエフェクタ７８は、グリッパに限定されるものではなく、各種溶接を行うための溶接ガンや、ナット（又はボルト）を締め付けるためのナットランナー等であるものとすることができる。
【００２５】
スレーブコントローラ５０は、各種の演算処理が可能なプロセッサ５２と、各種の定数が予め格納されたストレージ（記憶装置）５４と、マスタコントローラ３０との間でデータ伝送を行うためのトランスミッターレシーバ５６とを有する。プロセッサ５２、記憶装置５４及びトランスミッターレシーバ５６は、一体に結合されてスレーブコントローラ５０を形成している。
【００２６】
トランスミッターレシーバ５６は、ネットワーク４０に接続されており、当該ネットワーク４０を介してマスタコントローラ３０のトランスミッターレシーバ３６との間で各種のデータ伝送を行う。
【００２７】
スレーブコントローラ５０は、そのトランスミッターレシーバ５６を通して、マスタコントローラ３０からの指令値を含むデータを受ける。スレーブコントローラ５０のプロセッサ５２は、ネットワーク４０が正常に機能している、すなわち、マスタコントローラ３０のトランスミッターレシーバ３６と、スレーブコントローラ５０のトランスミッターレシーバ５６との間のデータ伝送が、正常であるか異常であるかを判定する機能を有している。
【００２８】
例えば、スレーブコントローラ５０のプロセッサ５２は、所定の時間に亘って、マスタコントローラ３０から指令値を含むデータをトランスミッターレシーバ５６が受けなかった場合や、当該データをトランスミッターレシーバ５６が受信しても、当該データが示す時刻が、実際の時刻よりも所定時間より大きく遅れている場合に、データ伝送に異常があると判定することができる。データ伝送に異常がある場合のスレーブコントローラ５０の制御内容については、後述する。
【００２９】
マスタコントローラ３０とスレーブコントローラ５０との間のデータ伝送が正常であると判定した場合、スレーブコントローラ５０のプロセッサ５２は、当該トランスミッターレシーバ３６，５６を通して受けた指令値に従って、スレーブ装置７０を制御する。具体的には、当該指令値を実現するよう、ロボット７０の位置、及びスレーブ装置７０のマニピュレータ７３の先端にあるエンドエフェクタ７８の位置及び姿勢（ポーズ）を制御する。
【００３０】
また、本実施形態の遠隔操作システム１は、力帰還（フィードバック）型のマスタースレーブ装置のマニピュレータとして構成されており、スレーブコントローラ５０のプロセッサ５２は、スレーブ装置７０のマニピュレータ７３のエンドエフェクタ（グリッパ）７８に作用する力、例えば、グリッパ７８が構造物を把持したときに構造物から反力を受けた場合には、その反力を算出、推定する。
【００３１】
なお、このような反力は、ロボットの内部の状態を計測するための内界センサ（図示せず）が検出した値を用いて算出、推定することができる。なお、ロボットと環境との相互作用の状態、すなわちロボットの外界の状態を計測するための外界センサ（図示せず）を併用して、グリッパ等のエンドエフェクタ７８が受ける力を、算出、推定するものとしても良い。
【００３２】
スレーブコントローラ５０は、図１に矢印４６で示すように、スレーブ装置７０のマニピュレータ７３が受けた反力を示すデータを、トランスミッターレシーバ５６，３６を通してマスタコントローラ３０に伝送する。マスタコントローラ３０のプロセッサ３２は、当該データに従って、マスタ装置１０のマニピュレータに生じる操作反力を決定する。すなわちマスタコントローラ３０は、スレーブコントローラ５０から受けた反力を示すデータに従って、当該反力に対応する操作反力がマスタ装置１０のマニピュレータに生じるよう制御する。これにより、マスタ装置１０のマニピュレータを操作するオペレータは、スレーブ装置７０のうちスレーブ装置７０のマニピュレータ７３（特に、エンドエフェクタ７８）が構造物から受けた反力を、体感することができる。
【００３３】
このように構成された遠隔操作システム１は、ネットワーク４０において突発的な通信途絶や、定常的に大きな遅延等が生じる可能性がある。特に、遠隔操作システム１のうちネットワーク４０やスレーブ側の部分５が、例えば、作業環境が高放射線環境下などで通信機器の配置に制限がある場合等、通信品質が悪い場合には、通信途絶が生じる可能性が高くなる。
【００３４】
そこで、本実施形態の遠隔操作システム１は、スレーブコントローラ５０が、マスタコントローラ３０から受けた指令値の履歴に基づいてマスタコントローラ３０からの指令値（ひいてはマスタ装置１０の動作）を予測し、この予測した指令値（予測指令値）に基づいてスレーブ装置７０を動作制御する機能を有しており、以下に図２を参照して説明する。図２は、第１の実施形態に係る遠隔操作システムの各種機能を説明するブロック図である。なお、図２は、マスタコントローラとスレーブコントローラとの間のデータ伝送が異常である場合のデータの流れを示している。
【００３５】
図１及び図２に示すように、マスタコントローラ３０のプロセッサ３２は、マスタ装置１０の動きに応じて指令値を生成する機能を有する。プロセッサ３２は、マスタ装置１０のマニピュレータ内に設けられた複数の内界センサ（図示せず）からの信号を受信して、当該センサにより計測された各種の計測値を取得している。プロセッサ３２は、各種の計測値に基づいて指令値を生成する。指令値には、スレーブ装置の所定部分の少なくとも位置を示す情報が含まれている。
【００３６】
本実施形態の遠隔操作方法において、プロセッサ３２は、指令値として、マニピュレータの所定部分の位置及び姿勢を示す指令ポーズを生成する。マニピュレータの指令ポーズは、一般的に、マニピュレータの手首（wrist）の位置及び姿勢、又は当該手首に結合されたエンドエフェクタ７８の位置及び姿勢を示すものである。本実施形態のスレーブ装置であるロボット７０は、架台７２にマニピュレータ７３が搭載されたものであるため、ロボットの指令ポーズは、架台７２の指令ポーズに、マニピュレータ７３の指令ポーズが組み合わされたものである。すなわち、プロセッサ３２が生成する指令値には、架台７２の位置及び姿勢の組合せと、マニピュレータ７３の位置及び姿勢の組合せが、含まれている。
【００３７】
プロセッサ３２は、所定の時間間隔（又は時刻）ごとに指令値を生成する。すなわち、プロセッサ３２は、指令値（指令ポーズ）の時系列の順序集合である経路に、各指令値（指令ポーズ）に対応する時間（時刻）を変数として付加した「軌道」を示すデータを生成している。プロセッサ３２により生成された指令値を含むデータは、記憶装置３４に格納される。記憶装置３４には、各種のストレージを用いることが好ましい。また、記憶装置３４には、メモリを用いることもできる。記憶装置３４に格納された時系列の指令値を含むデータは、マスタ装置１０及びスレーブ装置７０のうち少なくとも一方の動作の予測に用いられる。
【００３８】
マスタコントローラ３０は、上述した指令値を含むデータを、順次、トランスミッターレシーバ３６がスレーブコントローラ５０を通して送る。指令値を含むデータは、マスタコントローラ３０とスレーブコントローラ５０との間に形成されたネットワーク４０の伝送路４４を介して伝送される。スレーブコントローラ５０は、マスタコントローラ３０からの指令値を含むデータを、トランスミッターレシーバ５６を通して受ける。
【００３９】
マスタコントローラ３０とスレーブコントローラ５０との間におけるネットワーク４０を介したデータ伝送が正常に行われている場合、スレーブコントローラ５０のプロセッサ５２は、マスタコントローラ３０において生成された指令値を含むデータを、順次、取得することができる。一方、ネットワーク４０において突発的な通信途絶や、定常的に大きな遅延等が生じた場合、プロセッサ５２は、所定の時間間隔で指令値を含むデータを取得することができない。プロセッサ５２は、例えば、所定の時間以上、トランスミッターレシーバ５６を通して指令値を含むデータを取得できなかった場合に、マスタコントローラ３０とスレーブコントローラ５０との間のデータ伝送が異常であると判定することができる。なお、スレーブコントローラ５０は、プロセッサ５２とは別に、ネットワーク４０において通信途絶が発生したか否かを判定する機能ユニットを有するものとしても良い。このように、スレーブコントローラ５０は、マスタコントローラ３０との間における指令値を含むデータ伝送が、正常であるか異常であるかを判定する機能を有する。
【００４０】
スレーブコントローラ５０のプロセッサ５２は、指令値を含むデータ伝送が正常であると判定した場合、マスタコントローラ３０から受けた指令値に従ってスレーブ装置７０を制御する。具体的には、ロボット７０のうち、架台７２の位置及び姿勢と、マニピュレータ７３の位置及び姿勢を、それぞれマスタコントローラ３０からの指令値に従って制御する。
【００４１】
スレーブコントローラ５０は、指令値に従ってスレーブ装置７０の動作を制御しながら、マスタコントローラ３０から過去に受信した指令値の履歴に基づいて、当該受信した指令値より（時間的に）後のマスタコントローラ３０からの指令値を予測する。具体的には、スレーブコントローラ５０のプロセッサ５２は、トランスミッターレシーバ５６を通して指令値を受ける度に、当該指令値をストレージ（記憶装置）５４に格納する。ストレージ５４には、所定の数（複数）の時系列の指令値、すなわち指令値の履歴が格納される。プロセッサ５２は、ストレージ５４に格納されている受信した指令値の履歴に基づいて、その後の指令値（ひいてはマスタ装置１０の動作）を予測する。
【００４２】
例えば、プロセッサ５２は、マニピュレータの手首（wrist）又は当該手首に結合されたエンドエフェクタ７８の位置及び姿勢の「単位時間あたりの加速度の変化率」すなわち「加速度の時間微分値」である「躍度」が最小となるような軌道を予測する。プロセッサ５２は、当該予測された軌道の各時刻における位置及び姿勢を、マニピュレータの位置及び姿勢の目標値（予測値）に設定する。オペレータ等の人間の動作は、消費するエネルギが小さくなるような動きを無意識的に取っており、例えば、ある位置に手を伸ばす動作において、人間の手先の軌道は、当該手先の躍度が最小となるような軌道に近いものになる傾向がある。このような動作の規範すなわち動作の予測手法と、指令値の履歴に基づいて、プロセッサ５２は、未来の複数の異なる時刻におけるマニピュレータのポーズ（位置及び姿勢）を予測することができる。なお、マニピュレータ７３が搭載された架台７２の位置及び姿勢についても、同様の方法で予測することが可能である。
【００４３】
プロセッサ５２は、指令値を含むデータ伝送が正常であるか異常であるかに拘わらず、常に、指令値の履歴に基づいて今後の指令値を予測し、一時的にストレージ（記憶装置）５４に格納する。ストレージ５４に格納される予測指令値は、時間の経過に伴って更新されることが好ましい。
【００４４】
そして、スレーブコントローラ５０は、指令値を含むデータ伝送が異常であると判定した場合、プロセッサ５２が予測指令値に基づいてスレーブ装置７０の動作目標値を算出し、スレーブ装置７０を制御する。これにより、ネットワーク４０において突発的な通信途絶や定常的に大きな遅延が生じる場合など、マスタコントローラ３０からの指令値を、リアルタイムに取得できない場合であっても、スレーブコントローラ５０がスレーブ装置７０の動作を制御することができ、スレーブ装置７０は、オペレータの操作意図から大きく外れることなく、その動作を継続することができる。
【００４５】
ここで、データ伝送に異常があると判定した場合に予測指令値に基づいてスレーブ装置７０の動作目標値を算出するものとして説明したが、常に予測指令値に基づいた動作目標値算出までを行い、データ伝送に異常があると判定した場合には当該動作目標値により動作することであってもよい。これはプロセッサ５２の計算速度、ストレージ５４のデータ読み書き速度等のハードウェア性能を考慮して決定すればよい。
【００４６】
なお、スレーブコントローラ５０は、予測した動作を実現するようスレーブ装置７０を制御している間に、指令値を含むデータ伝送が正常であると判定した場合（データ伝送が回復した場合）には、予測指令値に基づく制御を終了し、マスタコントローラ３０からその都度受けた指令値に従って、スレーブ装置７０の動作を制御する。
【００４７】
また、遠隔操作システム１は、マスタコントローラ３０にも、スレーブコントローラ５０と同様に、指令値の履歴に基づいて、マスタコントローラ３０の指令値を予測する機能を有している。マスタコントローラ３０において、プロセッサ３２は、指令値を生成する度にストレージ（記憶装置）３４に格納しており、当該ストレージ３４には、指令値の履歴が格納されている。プロセッサ３２は、生成した指令値を含むデータを、トランスミッターレシーバ３６を通してスレーブコントローラ５０に送りながら、ストレージ３４に格納されている指令値の履歴に基づいて、常時、マスタコントローラ３０の今後の指令値を予測する。具体的には、プロセッサ３２は、予測した指令値（マスタ側の予測指令値）として、マスタ装置１０のマニピュレータのポーズ（位置及び姿勢）の時間を変数とする順序集合である軌道を予測する。マスタコントローラ３０における予測指令値の算出は、スレーブコントローラ５０と同様の算出手法を用いることにより、スレーブコントローラ５０と理論的には同一の予測指令値が算出される。マスタコントローラ３０側でもスレーブコントローラ５０と同様に予測指令値を算出することで、データ伝送に異常が発生してスレーブ装置７０が予測指令値によって動作している場合に、スレーブ装置７０がどのように動作しているかをマスタコントローラ３０側で把握することが可能となる。
【００４８】
マスタコントローラ３０のプロセッサ３２は、予測指令値と指令値の差に基づいて乖離量を算出する。乖離量は、具体的には、予測指令値と指令値との差や、予測指令値に基づいたスレーブ装置７０の位置及び姿勢と、指令値に基づいたスレーブ装置７０の位置及び姿勢との差である。プロセッサ３２は、算出した乖離量を含むデータを出力装置２０に送り、乖離量を示す情報がオペレータに提供されるよう出力装置２０を制御する。
【００４９】
具体的には、出力装置２０は、図１に示すように、表示画面２２を有する表示装置、いわゆるディスプレイである。当該ディスプレイ２０は、マスタ装置１０を操作するオペレータの近傍に配置されており、プロセッサ３２は、表示画面２２に乖離量を示す情報が表示されるようディスプレイ２０を制御する。例えば、表示画面２２に、乖離量を示す距離が数値で表示することや、マニピュレータの位置及び姿勢をグラフィカルに表示することが好ましい。例えば、データ伝送に異常があると判定した場合に、予測指令値に基づいて動作するスレーブ装置７０の位置及び姿勢（実際のスレーブ装置７０の位置及び姿勢）と、データ伝送異常発生中のマスタ装置１０への入力による指令値に基づいて動作するスレーブ装置７０の位置及び姿勢（データ伝送が正常であればスレーブ装置７０がとったはずの位置及び姿勢）とを重畳して表示画面２２に表示する。このようにして、マスタコントローラ３０は、出力装置（ディスプレイ）２０を通して、乖離量を示す情報を、オペレータに提供する。
【００５０】
乖離量を示す情報を提供することにより、オペレータは、マスタコントローラ３０が予測した動作と、実際の動作、すなわちマスタ装置１０への操作入力との差を認識することができる。加えて、マスタコントローラ３０において算出される予測値と、スレーブコントローラ５０において算出される予測値は、略同一のものであるため、マスタコントローラ３０とスレーブコントローラ５０との間のデータ伝送に異常がある場合であっても、オペレータは、マスタ装置１０への操作入力と、予測値に従って制御されるスレーブ装置７０の動作との差を認識することができる。なお、乖離量を示す情報のオペレータへの提示は、少なくともデータ伝送に異常が発生している場合に提供されればよい。
【００５１】
マスタコントローラ３０において算出された乖離量が大きい場合、マスタ装置１０及びスレーブ装置７０のそれぞれのマニピュレータのポーズ（位置及び姿勢）の乖離も大きい。スレーブ装置７０による継続的な作業が困難なほどに大きな乖離量である場合、データの伝送が異常から正常に戻ったときに、一方のマニピュレータのポーズ（位置及び姿勢）を、他方のマニピュレータのポーズに一致させる動作（いわゆる修正動作）を、マスタ装置１０及びスレーブ装置７０のうち少なくとも一方において行う必要がある。当該修正動作を行った後に、マスタコントローラ３０からの指令値に従ってスレーブ装置７０の動作を制御する「通常のマスタースレーブ制御」を再開することが好ましい。
【００５２】
一方、乖離量が小さい場合には、データ伝送が正常に戻ったときに、上述した修正動作を行うことなく、「通常のマスタースレーブ制御」を再開することができる。マスタ装置１０を操作するオペレータに、上述した乖離量の情報を提供することにより、データ伝送が正常な状態に戻ったとき修正動作を行う必要があるか否かをオペレータが容易に判断することができ、データ伝送に異常が生じるような環境下における作業効率の低下を抑制することができる。
【００５３】
以上に説明したように本実施形態の遠隔操作システム１は、オペレータの操作入力を受け付けるマスタ装置１０と、マスタ装置１０の動きに応じて動作するスレーブ装置７０と、マスタ装置１０の動きに応じて指令値を生成し、生成された指令値を含むデータを送信するマスタコントローラ３０と、マスタコントローラ３０からの指令値を含むデータを受信して、当該指令値に従ってスレーブ装置７０を制御可能なスレーブコントローラ５０とを有する。スレーブコントローラ５０は、マスタコントローラ３０とスレーブコントローラ５０との間のデータ伝送が正常である場合には、指令値に従ってスレーブ装置７０の動作を制御しながら、当該指令値の履歴に基づいて（今後の）指令値を予測し、データ伝送が異常である場合には、予測指令値に基づいてスレーブ装置７０の動作を制御する。
【００５４】
マスタコントローラ３０とスレーブコントローラ５０との間のデータ伝送に異常が生じた場合であっても、スレーブ装置７０の動作を停止させることなく、スレーブ装置７０を継続的に動作させることができ、データ伝送に異常が生じるような環境下における作業効率の低下を抑制することができる。
【００５５】
なお、スレーブコントローラ５０とマスタコントローラ３０のそれぞれが予測指令値を常時算出するものとしていたが、データ伝送異常が発生した場合に予測指令値を算出するものであってもよい。また、本実施形態の遠隔操作システム１において、マスタコントローラ３０が、乖離量を示す情報を、出力装置２０を通してオペレータに提供するものとしたが、本発明の遠隔操作システムは、この態様に限定されるものではない。
【００５６】
また、本実施形態の出力装置２０は、表示画面に各種の情報を表示するディスプレイであるものとしたが、本発明に係る出力装置は、これに限定されるものではない。出力装置は、マスタ装置１０を操作するオペレータに対して、乖離量等の各種情報を提供可能なものであれば良く、例えば、音や振動を通じて各種情報をオペレータに提供するものとしても良い。例えば、オペレータが操作するマスタ装置１０のマニピュレータに操作反力を生じさせて、乖離量等の各種情報をオペレータに体感させるものとしても良い。
【００５７】
〔第２の実施形態〕
本実施形態に係る遠隔操作システムについて、図１及び図３を参照して説明する。図３は、本実施形態に係る遠隔操作システムの各種機能を説明するブロック図である。なお、図３は、マスタコントローラとスレーブコントローラとの間のデータ伝送が異常である場合のデータの流れを示している。なお、第１の実施形態と略共通の構成については、同一の符号を付して説明を省略する。
【００５８】
図１及び図３に示すように、本実施形態の遠隔操作システム１は、スレーブ装置７０と環境物との意図しない干渉を回避するための機能を有する。なお、環境物とは、スレーブ装置７０が作業を行う周辺の環境に存在する構造物である。環境物には、例えば、スレーブ装置７０が作業を行う際に、マニピュレータのアーム等と干渉して当該作業の妨げになるような構造物がある。環境物は、「環境構造物」又は「周辺環境物」とも呼称される。
【００５９】
スレーブ装置７０が作業を行う環境に存在する環境物の形状を示す情報（以下、環境モデルと記す）は、予めストレージ（記憶装置）３４，５４に格納されている。環境モデルは、「環境マップ」とも呼称される。環境マップとも呼称される。なお、環境モデルは、予めＣＡＤ等により作成された形状データを用いることができる。また、環境モデルには、スレーブ装置７０の近傍に配置された外界センサによりスレーブ装置７０の周辺の環境の形状を実際に計測し、当該計測された形状を、当該遠隔操作システム１上で扱えるようモデル化したものを用いることもできる。
【００６０】
スレーブコントローラ５０には、マニピュレータを含むスレーブ装置７０と環境物との意図しない干渉が回避されるよう、ストレージ５４に予め格納された環境モデルを参照して、スレーブ装置７０の動作を評価、修正する機能を有する。すなわち、スレーブコントローラ５０は、環境物との干渉を回避するスレーブ装置７０の動作（以下、干渉回避動作と記す）を計画、生成する機能を有する。具体的には、プロセッサ５２は、環境モデルに基づいて、スレーブ装置７０が動作可能な空間を制限する。これらの処理は、マスタコントローラ３０とスレーブコントローラ５０との間のデータ伝送が正常であるか異常であるかに拘わらず、常時行われる。
【００６１】
ここで、動作可能な空間を制限するとは、マスタコントローラ３０の指令値（または予測指令値）に基づいてスレーブ装置７０を制御する際に、環境物が存在する範囲（または、マージンとして環境物表面から所定距離までの範囲）にスレーブ装置７０が接触（干渉）しないようにスレーブ装置７０を動作制御することを意味する。
【００６２】
プロセッサ５２は、データ伝送が正常であると判定した場合、トランスミッターレシーバ５６を通して受けた指令値（指令ポーズ）に従ってスレーブ装置７０の動作を制御したときの当該スレーブ装置７０と環境物との干渉を評価する。干渉する可能性（いわゆる干渉リスク）が高いと判定した場合には、スレーブ装置７０の動作を、環境物との距離を所定値以上に保つような干渉回避動作に修正する。また、環境物と接触する前に、スレーブ装置７０の動作を停止するような干渉回避動作に修正する。つまり、プロセッサ５２は、スレーブ装置７０が動作可能な空間を制限する。プロセッサ５２は、当該制限された空間内でスレーブ装置７０が動作するよう制御する。
【００６３】
一方、通信途絶が生じた場合など、データ伝送が異常であると判定した場合、図３に示すように、プロセッサ５２は、ストレージ５４に格納された指令値の履歴に基づいて予測指令値を算出する。さらに、プロセッサ５２は、予測指令値に従ってスレーブ装置７０の動作を制御したときの当該スレーブ装置７０と環境物との干渉を評価する。干渉リスクが高いと判定した場合には、データ伝送が正常である場合と同様に、プロセッサ５２は、スレーブ装置７０が動作可能な空間を制限し、当該制限された空間内でスレーブ装置７０が動作するよう制御する。
【００６４】
本実施形態によれば、スレーブコントローラ５０は、マスタコントローラ３０との間のデータの伝送が正常であるか異常であるかに拘わらず、スレーブ装置７０と環境物との干渉を回避することができる。データ伝送が異常である場合、すなわち、指令値の履歴に基づいて予測された予測指令値に従ってスレーブ装置７０の動作が制御されて干渉リスクが比較的高い場合であっても、環境物との干渉を確実に回避することができる。
【００６５】
また、本実施形態においては、マスタコントローラ３０のプロセッサ３２も、ストレージ３４に予め格納された環境モデルを参照して、スレーブコントローラ５０のプロセッサ５２と同じ演算処理を行う。なお、ストレージ３４に格納された環境モデルは、ストレージ５４に格納された環境モデルと同じものである。これにより、マスタコントローラ３０のプロセッサ３２は、データ伝送に異常がある場合であっても、スレーブコントローラ５０において算出された予測指令値、および当該予測指令値に基づいたスレーブ装置７０の動作を推定することができる。また、プロセッサ３２は、生成した指令値と、予測指令値との差である乖離量を算出して、当該乖離量を示す情報を、出力装置２０を通してオペレータに提供することができる。
【００６６】
なお、本実施形態の遠隔操作システムにおいて、マスタコントローラ３０は、スレーブコントローラ５０と同じ環境モデルを参照して同じ演算処理を行って、生成した指令値と、修正された予測指令値との差である乖離量を算出するものとしたが、本発明に係る遠隔操作システムは、この態様に限定されるものではない。遠隔操作システムは、スレーブコントローラ５０が、マスタコントローラ３０からの指令値、又は指令値の履歴に基づく予測指令値を、スレーブ装置７０と環境物との干渉が回避されるよう修正するものであれば良い。マスタコントローラ３０は、動作を予測する機能や、予測された動作を修正する機能、修正された予測指令値と生成した指令値から乖離量を算出し、乖離量を示す情報をオペレータに提供する機能を有しないものとしても良い。
【００６７】
なお、本実施形態の遠隔操作システム１において、マスタコントローラ３０のプロセッサ３２は、マスタ装置１０及びスレーブ装置７０のうち少なくとも一方の動作を予測して、予測された予測指令値と生成した指令値との差である乖離量を示す情報を、出力装置２０を通してオペレータに提供するものとしたが、本発明の遠隔操作システムは、この態様に限定されるものではない。遠隔操作システムは、スレーブコントローラ５０が、指令値の履歴に基づいてスレーブ装置７０の動作を予測する機能を有し、マスタコントローラ３０は、最低限、マスタ装置の動きに応じて指令値を生成する機能を有していれば良い。マスタコントローラ３０は、動作を予測する機能や、乖離量を算出し、乖離を示す情報を出力装置を通してオペレータに提供する機能を有しないものであっても良い。
【００６８】
〔第３の実施形態〕
本実施形態に係る遠隔操作システムについて、図１及び図４を参照して説明する。図４は、本実施形態に係る遠隔操作システムの各種機能を説明するブロック図である。なお、図４は、マスタコントローラとスレーブコントローラとの間のデータ伝送が異常である場合のデータの流れを示している。なお、第２の実施形態と略共通の構成については、同一の符号を付して説明を省略する。
【００６９】
図１及び図４に示すように、本実施形態のマスタ装置１０は、マスタコントローラ３０により制御されて操作反力を発生可能なマニピュレータを含んでいる。当該マニピュレータには、アーム１５のうちジョイント１７がトルクを発生することにより、一方のリンク１６を他方のリンク１６に対して駆動することが可能なものが用いられる。例えば、ジョイント１７に反力アクチュエータを備えたものが用いられる。当該マニピュレータは、これを操作するオペレータに対して、スレーブ装置７０が受けた反力の情報を、操作反力の形で提供する。すなわち、マニピュレータは、オペレータの操作入力を受け付けるマスタ装置１０としてだけでなく、当該マスタ装置１０を操作するオペレータに対してスレーブ装置７０が受けた反力を示す情報を提供する出力装置として作動する。
【００７０】
データ伝送が異常である場合、マスタコントローラ３０において生成された指令値と、スレーブコントローラ５０及びマスタコントローラ３０において指令値の履歴に基づいて予測された予測指令値（干渉回避のために修正された値を含む）との間には、乖離量が存在する。例えば、指令値を生成する基となるマスタ装置１０のマニピュレータの位置及び姿勢と、予測指令値に基づいて制御されたスレーブ装置７０のマニピュレータの位置及び姿勢は、一致しておらず、ある程度の乖離が生じている。このような場合、オペレータが操作するマスタ装置１０の位置や姿勢を、スレーブ装置７０の位置に近づけることにより、コントローラ間のデータ伝送が、再び正常となったときの乖離量を抑制することが要望されている。
【００７１】
本実施形態の遠隔操作方法において、マスタコントローラ３０のプロセッサ３２は、上述した乖離量が小さくなるように、マスタ装置１０のマニピュレータに生じる操作反力を制御する。具体的には、データ伝送の異常時に、プロセッサ３２は、マスタ装置１０の実際の姿勢と、スレーブ装置７０の予測指令値に基づく姿勢とに乖離があるか判定し、乖離がある場合には、乖離量が小さくなる向きの操作反力が生じるようマスタ装置１０を制御する。この操作反力は、マスタ装置１０のマニピュレータの手首の位置及び姿勢（指令値）を、マスタコントローラ３０において予測されたスレーブ装置７０のマニピュレータの手首の位置及び姿勢（予測指令値に基づく位置及び姿勢）に、誘導する方向の力である。この力は、操作ガイド力（操作補助力）ともいう。なお、データ伝送が正常である場合、プロセッサ３２は、スレーブコントローラ５０からフィードバックされるスレーブ装置７０が実際に受けた反力に、当該操作ガイド力を加算した値を、操作反力に設定して、当該操作反力がマスタ装置１０のマニピュレータに生じるように制御する。
【００７２】
このようにマスタ装置１０のマニピュレータを制御することにより、オペレータは、データ伝送が異常である場合であっても、当該マニピュレータに生じる操作反力を受けて誘導されて、予測されたスレーブ装置７０のマニピュレータの動作を認識することができる。これにより、マスタ装置１０とスレーブ装置７０との間におけるマニピュレータの動作の乖離を抑制することができる。また、データ伝送が再び正常となったときに、マスタ装置１０及びスレーブ装置７０のそれぞれのマニピュレータの位置及び姿勢を一致させる作業が軽減される。
【００７３】
なお、本実施形態の遠隔操作方法は、環境モデルを参照して、スレーブ装置７０の動作を評価、修正する機能、すなわちスレーブ装置７０の干渉回避動作を計画、生成する機能は、有していない遠隔操作システムにも適用することができる。遠隔操作システムは、指令値の履歴に基づいてスレーブ装置７０の動作を予測する機能を有し、予測値と指令値との差である乖離量を算出することができるものであれば、本実施形態の制御技術を適用することができる。また、データ伝送が正常である場合には、マスタコントローラ３０は、マスタ装置１０の動作と、スレーブ装置７０の実際の動作とを比較して乖離量を算出し、当該乖離量が小さくなるように操作反力を制御して、当該乖離量を示す情報をオペレータに提供するものとしても良い。
【００７４】
〔第４の実施形態〕
本実施形態に係る遠隔操作システムについて、図１及び図５を参照して説明する。遠隔操作システムの一例を示す模式図である。図５は、本実施形態に係る遠隔操作システムの各種機能を説明するブロック図である。なお、図５は、マスタコントローラとスレーブコントローラとの間のデータ伝送が異常である場合のデータの流れを示している。なお、第１ないし第３の実施形態と略共通の構成については、同一の符号を付して説明を省略する。
【００７５】
図１に示すように、スレーブ装置７０は、そのマニピュレータ７３が環境物と接触する作業を行う場合がある。例えば、マニピュレータ７３のアーム７５の先端に結合されたエンドエフェクタ７８が、構造物を把持するグリッパである場合、当該グリッパを、上述した環境物と接触させる作業、例えば、グリッパが環境物をつかむ作業を行う場合がある。このような場合に、上述した干渉回避動作をスレーブ装置７０に行わせると、エンドエフェクタ７８を含むマニピュレータ７３が、環境物に接触することができず、スレーブ装置７０に所望の作業を行わせることができない場合がある。
【００７６】
遠隔操作システム１は、第２の実施形態において説明したように、スレーブ装置７０と環境物との干渉を回避する機能、すなわち予測したスレーブ装置７０の動作を、環境モデルを参照して修正する機能（干渉回避動作を計画、生成する機能、以下、干渉回避機能と記す。）を有する。本実施形態の遠隔操作システム１は、スレーブ装置７０と環境物とを接触させる作業を行うために、オペレータの操作により当該干渉回避機能を無効にする機能を有する。
【００７７】
オペレータが操作するマスタ装置１０の近傍又はマスタ装置１０には、干渉回避機能を無効にするためのスイッチ１２が配置されている。オペレータがスイッチ１２を操作すると、マスタコントローラ３０は、上述した干渉回避機能の無効化を示す信号（以下、無効化信号と記す）を取得する。プロセッサ３２は、無効化信号を受信して、マスタコントローラ３０において行われる干渉回避機能、具体的には、予測した動作を環境モデルを参照して修正する機能を無効にする。この場合、マスタコントローラ３０においては、予測指令値は、修正されることなく乖離量の算出に用いられる。
【００７８】
また、無効化信号は、マスタコントローラ３０からトランスミッターレシーバ３６，５６を通して、スレーブコントローラ５０に送られる。無効化信号の伝送路を図５に符号４５で示す。プロセッサ５２は、無効化信号を受信して、スレーブコントローラ５０において行われる予測したスレーブ装置７０の動作を、環境モデルを参照して修正する機能、すなわちスレーブ装置が動作可能な空間を制限する機能を、無効にする。
【００７９】
このように干渉回避機能が無効化された場合、スレーブコントローラ５０は、データ伝送が正常である場合には、マスタコントローラ３０からの指令値に従ってスレーブ装置７０を制御し、データ伝送が異常である場合には、指令値の履歴に基づいて算出された予測指令値に従ってスレーブ装置７０を制御する。このようにして、本実施形態の遠隔操作システムは、オペレータの操作により、スレーブ装置７０と環境物との干渉を回避する場合と、スレーブ装置７０を環境物に接触させる場合とを切り替えることができ、作業効率の向上を図ることができる。
【００８０】
なお、本実施形態においては、オペレータがマスタ装置１０の近傍又はマスタ装置１０に配置されたスイッチ１２を操作することにより無効化信号がマスタコントローラ３０及びスレーブコントローラ５０に送られるものとしたが、これに限定されるものではない。オペレータの操作に応じて干渉回避機能を無効にできれば良く、例えば、オペレータがマスタ装置１０に所定の手順の操作を行うと、マスタコントローラ３０及びスレーブコントローラ５０において干渉回避機能が無効にされるものとしても良い。
【００８１】
〔他の実施形態〕
上述した実施形態において、マスタ装置１０は、マニピュレータを含むものとしたが、本発明に係るマスタ装置は、これに限定されるものではない。本発明に係るマスタ装置は、オペレータの操作入力を受け付ける装置であれば良く、ジョイスティックや、各種のレバー、各種のペダル、又はこれらの組み合わせを用いて実現することもできる。
【００８２】
また、上述した実施形態においてマスタコントローラ３０は、指令値として位置及び姿勢を示す指令ポーズを生成し、各指令値に時間を変数として付加したデータ（軌道を示すデータ）をマスタコントローラ３０からスレーブコントローラ５０に伝送するものとしたが、本発明に係る指令値、及びスレーブコントローラ５０に伝送される指令値を含むデータは、これらの態様に限定されるものではない。指令値には、少なくとも位置を示す情報が含まれていれば良い。また、指令値を含むデータは、軌道を示すデータではなく、指令値の順序集合である経路のみを示すデータであるものとしても良い。
【００８３】
また、上述した実施形態において、スレーブ装置７０は、マニピュレータ７３が架台７２に搭載されたロボットであるものとしたが、本発明に係るスレーブ装置は、マニピュレータを有するロボットに限定されるものではない。スレーブ装置は、上述したマスタ装置の動きに応じて、リアルタイムに動作可能なものであれば良く、マニピュレータを含むものに限定されるものではない。スレーブ装置は、マスタ装置の動きに応じて、少なくとも所定部分の位置が変化するものであれば良い。スレーブ装置は、例えば、作業の対象となる物を保持した状態で、二つの軸について当該物の位置を変化させるよう動作するようなデバイスであるものとしても良い。
【００８４】
本発明のいくつかの実施形態について説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８５】
１：遠隔操作システム、３：遠隔操作システムのマスタ側の部分、５：遠隔操作システムのスレーブ側の部分、１０：マスタ装置（マニピュレータ）、１２：スイッチ、１５：アーム（マニピュレータ）、１６：リンク（マニピュレータ）、１７：ジョイント（マニピュレータ）、２０：出力装置（ディスプレイ）、２２：表示画面（出力装置、ディスプレイ）、３０：マスタコントローラ、３２：プロセッサ（マスタコントローラ）、３４：ストレージ（マスタコントローラ、記憶装置）、３６：トランスミッターレシーバ、４０：ネットワーク、５０：スレーブコントローラ、５２：プロセッサ（スレーブコントローラ）、５４：ストレージ（スレーブコントローラ、記憶装置）、５６：トランスミッターレシーバ（スレーブコントローラ）７０：スレーブ装置（ロボット）、７２：架台（スレーブ装置、ロボット）、７３：マニピュレータ（スレーブ装置、ロボット）、７５：アーム（スレーブ装置、マニピュレータ）、７８：エンドエフェクタ（スレーブ装置、マニピュレータ）
【図１】
2019217557.tif 000003
【図２】
2019217557.tif 000004
【図３】
2019217557.tif 000005
【図４】
2019217557.tif 000006
【図５】
2019217557.tif 000007