(57)【要約】【課題】汎用性の高いマスタ・スレーブ接続を実現させる連動システムを提供すること。【解決手段】本実施形態に係る連動システムは、マスタアーム１１を制御する第１制御構造それぞれの入出力情報を要素として含む第１リストを出力するマスタ制御ユニット１０と、スレーブアーム２１を制御する第２制御構造それぞれの入出力情報であって上記第１制御構造に用いた要素表現と共通する要素表現で表されるものを要素として含む第２リストを出力するスレーブ制御ユニット２０と、第１及び第２リストとマスタアーム１１及びスレーブアーム２１の連動に必要な各入出力情報を前記要素表現で定義した第１及び第２入出力定義との比較結果から共通する要素を抽出し、抽出された共通の要素のうちの少なくとも１つに対応する第１及び第２制御構造の組み合わせを実行可能にしてマスタアーム１１とスレーブアーム２１とを連動させる連動動作管理部１０６とを備える。【選択図】      図１
2014014900.tif 000002
【特許請求の範囲】
【請求項１】
第１関節機構と第２関節機構とをネットワークを介して連動させるシステムであって、
前記第１関節機構を制御する少なくとも１つの第１制御構造と、前記第１制御構造それぞれの入出力情報を要素として含む第１リストを出力する第１リスト出力手段とを有する第１制御ユニットと、
前記第２関節機構を制御する少なくとも１つの第２制御構造と、前記第２制御構造それぞれの入出力情報であって前記第１制御構造に用いた要素表現と共通する要素表現で表されるものを要素として含む第２リストを出力する第２リスト出力手段とを有する第２制御ユニットと、
前記第１リスト出力手段及び第２リスト出力手段から出力される前記第１リスト及び第２リストと前記第１関節機構及び第２関節機構の連動に必要な各入出力情報を前記要素表現で定義した第１入出力定義及び第２入出力定義との比較結果から共通する要素を抽出する抽出手段と、
前記抽出された共通の要素のうちの少なくとも１つに対応する前記第１制御構造及び第２制御構造の組み合わせを実行可能にして前記第１関節機構と前記第２関節機構とを連動させる連動手段と
を具備することを特徴とする連動システム。
【請求項２】
前記入出力情報は、前記第１制御構造及び第２制御構造を識別する情報と、前記第１制御構造及び第２制御構造が出力する状態量の種類とを含むことを特徴とする請求項１に記載の連動システム。
【請求項３】
前記第１制御ユニットは、マスタ又はスレーブの役割を識別可能な第１識別符号を出力する第１識別符号出力手段をさらに有し、
前記第２制御ユニットは、マスタ又はスレーブの役割を識別可能な第２識別符号を出力する第２識別符号出力手段をさらに有し、
前記連動手段は、前記第１識別符号出力手段及び前記第２識別符号出力手段から出力される前記第１識別符号及び前記第２識別符号の役割が互いに異なる場合にのみ前記連動を許可することをさらに特徴とする請求項１又は２に記載の連動システム。
【請求項４】
前記第１リスト及び第２リストは、各要素に判定用ビットが割り振られたビットフラグで表されることをさらに特徴とする請求項１乃至３のいずれか１項に記載の連動システム。
【請求項５】
前記第１リスト及び第２リストは、各要素に固有の番号または文字列が割り振られたＩＤで表されることをさらに特徴とする請求項１乃至３のいずれか１項に記載の連動システム。
【請求項６】
第１関節機構と第２関節機構とをネットワークを介して連動させるシステムに用いられる前記第１関節機構の制御装置であって、
前記第１関節機構を制御する少なくとも１つの第１制御構造と、前記第１制御構造それぞれの入出力情報を要素として含む第１リストを出力する第１リスト出力手段とを有する第１制御ユニットと、
前記第２関節機構を制御する第２制御構造それぞれの入出力情報であって前記第１制御構造に用いた要素表現と共通する要素表現で表されるものを要素として含む第２リストを前記ネットワークを介して受信する受信手段と、
前記第１リスト及び第２リストと前記第１関節機構及び第２関節機構の連動に必要な各入出力情報を前記要素表現で定義した第１入出力定義及び第２入出力定義との比較結果から共通する要素を抽出する抽出手段と、
前記抽出された共通の要素のうちの少なくとも１つに対応する前記第１制御構造及び第２制御構造の組み合わせを実行可能にして前記第１関節機構と前記第２関節機構とを連動させる連動手段と
を具備することを特徴とする制御装置。
【請求項７】
第１関節機構を制御する第１制御構造それぞれの入出力情報を要素として含む第１リストと、第２関節機構を制御する第２制御構造それぞれの入出力情報を要素として含む第２リストと前記第１関節機構及び第２関節機構の連動に必要な各入出力情報を前記要素表現で定義した第１入出力定義及び第２入出力定義との比較結果から共通する要素を抽出し、前記抽出された共通の要素のうち少なくとも１つに対応する前記第１制御構造及び第２制御構造の組み合わせを実行可能にして前記第１関節機構と前記第２関節機構とを連動させるシステムに用いられる前記第２関節機構の制御装置であって、
前記第２関節機構を制御する少なくとも１つの第２制御構造と、
前記第２制御構造の入出力情報であって前記第１制御構造に用いた要素表現と共通する要素表現で表されるものを要素として含む前記第２リストを前記ネットワークに出力する第２リスト出力手段と
を具備することを特徴とする制御装置。
【請求項８】
第１関節機構と第２関節機構とをネットワークを介して連動させるシステムに用いられる方法であって、
前記第１関節機構を制御する少なくとも１つの第１制御構造を有する第１制御ユニットは、前記第１制御構造それぞれの入出力情報を要素として含む第１リストを出力し、
前記第２関節機構を制御する少なくとも１つの第２制御構造を有する第２制御ユニットは、前記第２制御構造それぞれの入出力情報であって前記第１制御構造に用いた要素表現と共通する要素表現で表されるものを要素として含む第２リストを出力し、
前記１制御ユニット及び第２制御ユニットから出力される前記第１リスト及び第２リストと前記第１関節機構及び第２関節機構の連動に必要な各入出力情報を前記要素表現で定義した第１入出力定義及び第２入出力定義との比較結果から共通する要素を抽出し、
前記抽出された共通の要素のうちの少なくとも１つに対応する前記第１制御構造及び第２制御構造の組み合わせを実行可能にして前記第１関節機構と前記第２関節機構とを連動させること
を有することを特徴とする制御方法。
【請求項９】
前記入出力情報は、前記第１制御構造及び第２制御構造を識別する情報と、前記第１制御構造及び第２制御構造が出力する状態量の種類とを含むことを特徴とする請求項８に記載の制御方法。
【請求項１０】
前記第１制御ユニットは、マスタ又はスレーブの役割を識別可能な第１識別符号をさらに出力し、
前記第２制御ユニットは、マスタ又はスレーブの役割を識別可能な第２識別符号をさらに出力し、
前記連動ステップは、前記第１制御ユニット及び前記第２制御ユニットから出力される前記第１識別符号及び前記第２識別符号の役割が互いに異なる場合にのみ前記連動を許可することをさらに特徴とする請求項８又は９に記載の制御方法。
【請求項１１】
前記第１リスト及び第２リストは、各要素に判定用ビットが割り振られたビットフラグで表されることをさらに特徴とする請求項８乃至１０のいずれか１項に記載の制御方法。
【請求項１２】
前記第１リスト及び第２リストは、各要素に固有の番号または文字列が割り振られたＩＤで表されることをさらに特徴とする請求項８乃至１０のいずれか１項に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の実施形態は、例えば、ある入力装置に入力された操作指令が別の出力装置に反映されるような連動システム、制御装置および制御方法に関する。
【背景技術】
【０００２】
高温・高圧・高放射線環境など、人が直接立ち入ることが困難な極限環境下での作業や、作業対象自体が放射性を有するなど人体に危害を及ぼす物体である場合には、機械などによる代替作業を余儀なくされる。このような環境下での作業を実現するものとして、人が離れた場所から機械を操作するマスタ・スレーブ（ＭＳ）システムがある。例えば、使用済み核燃料を処理する場合には、“ホットセル”と称される分厚いコンクリート壁で隔離された空間内に核燃料を置き、特殊なガラス窓越しにオペレータがマニピュレータを操作しながら切断作業などを行う。
【０００３】
このような遠隔作業には、応答性や力覚伝達性能に優れた機械式ＭＳシステムが用いられることが多い。機械式システムは、操作入力部（マスタアーム）と作用出力部（スレーブアーム）とがワイヤ等で物理的に繋がっている。このため、オペレータの操作位置を作業現場付近に配置せざるを得ない不自由さや、マスタとスレーブが物理的に繋がっているが故のメンテナンス性の悪さ、複雑なワイヤ機構を含むことによる設置スペースの増大およびコスト面での割高さといったデメリットも多い。これらの理由から、マスタとスレーブを完全に分離し、電子化された両機器の情報を通信によりやり取りすることで動作指令の伝達を行うような電気式ＭＳシステムが採用される遠隔作業ミッションも多い。
【０００４】
スレーブアームと全く同じ構造を有するアームをマスタとし、マスタの各間接軸角度をそのままスレーブアームで再現するようなＭＳシステムは同構造型と呼ばれている。同構造型は制御が簡単であるが、アーム先端（スレーブ作用出力部）の位置姿勢を任意に指示するような操作が難しい。また、形状を同じくする必要があるが故に、必然的に特定のスレーブアーム専用の入力装置となってしまう。これに対し、マスタアームとスレーブアームの軸構成が異なる異構造型のＭＳシステムが存在する。異構造型ＭＳシステムでは、アーム先端の位置姿勢など、マスタおよびスレーブ両システムが共通に持つ抽象度の高い状態量を操作指令値として用いることで、異なる形状のマスタとスレーブでの協調動作が実現されている。このような異構造型ＭＳシステムでは、前述のような同構造システムの欠点を克服すると共に、スレーブアームと同じ軸構成でなくてはならないという構造上の縛りから開放されるため、一つのマスタで様々なスレーブアームを操作可能な高い汎用性の実現が期待できる（例えば、特許文献１又は２を参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１３８９４５号公報
【特許文献２】特開平６−１１４７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、従来技術では、実際にはスレーブとなる作業アームはそれぞれの作業用途に応じて制御方法が異なる場合があり、常に同じマスタアームの操作指令情報をスレーブアームに適用できるとは限らない。スレーブアームが期待する制御指令値が得られない場合、制御システムは予期せぬ入力情報の影響で強制終了されてしまう。最悪の場合、強制終了もなされず、異なる指令値を期待する制御指令値と誤認したまま処理を実行してしまうことで、スレーブアームが暴走してしまう可能性がある。そのため、せっかく異構造マスタを用いた電気式ＭＳシステムを構築しても、そのマスタシステムは、様々なスレーブアームに接続可能な汎用入力装置としては活用できずに、半ば特定のスレーブアーム専用の入力装置として使われることが多く、その特徴を活かしきれていないのが現状であった。
【０００７】
本実施形態の目的は、汎用性の高いマスタ・スレーブ接続を実現させる連動システム、制御装置および制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
本実施形態に係る連動システムは、第１関節機構と第２関節機構とをネットワークを介して連動させるシステムであって、前記第１関節機構を制御する少なくとも１つの第１制御構造と、前記第１制御構造それぞれの入出力情報を要素として含む第１リストを出力する第１リスト出力手段とを有する第１制御ユニットと、前記第２関節機構を制御する少なくとも１つの第２制御構造と、前記第２制御構造それぞれの入出力情報であって前記第１制御構造に用いた要素表現と共通する要素表現で表されるものを要素として含む第２リストを出力する第２リスト出力手段とを有する第２制御ユニットと、前記第１リスト出力手段及び第２リスト出力手段から出力される前記第１リスト及び第２リストと前記第１関節機構及び第２関節機構の連動に必要な各入出力情報を前記要素表現で定義した第１入出力定義及び第２入出力定義との比較結果から共通する要素を抽出する抽出手段と、前記抽出された共通の要素のうちの少なくとも１つに対応する前記第１制御構造及び第２制御構造の組み合わせを実行可能にして前記第１関節機構と前記第２関節機構とを連動させる連動手段とを具備する。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る連動システムの構成例を示すブロック図。
【図２】連動システムの動作を示すフローチャート。
【図３】連動システムの共通規定情報の一例を示す図。
【図４】連動システムの制御方式制限処理の一例を示す図。
【図５】連動動作制御方式の一覧を示す図。
【図６】マスタ／スレーブＩＦリストの一例を示す図。
【図７】共通動作抽出処理を示す図。
【図８】変形例１に係る連動システムの構成例を示すブロック図。
【図９】変形例２に係る連動システムの構成例を示すブロック図。
【図１０】変形例３に係る連動システムの構成例を示すブロック図。
【図１１】変形例４に係る連動システムの構成例を示すブロック図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本実施形態に係る連動システム、制御装置および制御方法を説明する。  
図１は、本実施形態に係る連動システムの構成例を示すブロック図である。本システムは、図１に示すように、マスタアーム制御ユニット１０、マスタアーム１１、入出力パネルおよびモニタ１３を含むマスタシステムと、スレーブアーム制御ユニット２０およびスレーブアーム２１を含むスレーブシステムとを備えるマスタ・スレーブシステムである。マスタアーム１１は、操作者による作業入力を受ける操作器として、スレーブアーム２１は、動作命令を受けて作業出力する作用器として使用可能であり、操作者がマスタアーム１１を操作すると、その操作動作をスレーブアーム２１が再現する。
【００１１】
マスタアーム制御ユニット１０は、マスタアーム制御部１０１、マスタＩＦ（インタフェース）リスト１０２、ＭＳ（マスタ／スレーブ）識別符号１０３、制御構造変更部１０４、共通動作抽出部１０５、連動動作変更判定部１０７および連動動作管理部１０６を有する。スレーブアーム制御ユニット２０は、スレーブアーム制御部２０１、スレーブＩＦリスト２０２、ＭＳ識別符号２０３および制御構造変更部２０４を有する。
【００１２】
なお、マスタアーム制御ユニット１０及びスレーブアーム制御ユニット２０は、ＣＰＵ、メモリおよび通信モジュール等を有する計算機で実現可能である。例えば、上記各部は、ＣＰＵにより実行される制御プログラムとしてメモリに格納される。ＭＳ識別符号１０３，２０３およびマスタ／スレーブＩＦリスト１０２，２０２は、上記メモリに記憶される。
【００１３】
本実施形態では、例えば、マスタアーム１１は６軸構成で、スレーブアーム２１は垂直多関節な産業用アームのような７軸構成からなり、軸長やリンク構成の異なる２種のアームで構成された異構造システムとする。なお、各アームの軸数や軸構成は一例であり、本構成や組合せに限定するものではない。
【００１４】
マスタアーム１１およびスレーブアーム２１の各稼働軸にはアクチュエータが備えられている。また、マスタアーム１１はマスタアーム制御ユニット１０と、スレーブアーム２１はスレーブアーム制御ユニット２０と接続され、各制御ユニット中のマスタアーム制御部１０１，スレーブアーム制御部２０１がそれぞれのマスタアーム１１，スレーブアーム２１にあるアクチュエータを制御駆動する。
【００１５】
マスタアーム１１およびスレーブアーム２１の稼働軸にはエンコーダおよび原点位置検知用のフォトセンサが備えられ、マスタアーム制御部１０１およびスレーブアーム制御部２０１は各軸原点位置からのエンコーダの回転量を積算することで自アーム各軸の角度や角速度などの状態量が取得可能である。また、現在軸角度とリンクパラメータから自身の姿勢（形状）を推定する順運動学計算が可能となっている。これにより、各アーム先端の位置や姿勢（向き）や速度、加速度といった状態量を推定している。
【００１６】
さらに、エンコーダとモータ動作を組み合わせることで、軸角度を自由に制御することが可能である。さらに、逆運動学計算を行うことで、アーム先端の任意な位置姿勢を指定可能としている。また、マスタアーム１１およびスレーブアーム２１には並進・回転の６軸力成分を検出する力センサが備わっており、これにより外部からの力入力を検知することができる。
【００１７】
マスタアーム制御ユニット１０とスレーブアーム制御ユニット２０との間は、通信用ケーブルで接続されている。ここでは有線としているが、無線でも構わない。また、マスタアーム制御ユニット１０には入出力パネル１２およびモニタ１３が接続され、モニタ１３によって操作者にシステムの内部状態を提示するとともに、操作者の操作指示を入出力パネル１２で受け付けられるようになっている。本実施形態では制御構造の変更などの操作者の特別な指示は、入出力パネル１２を介して受け付けているが、タッチディスプレイのようなモニタがその役割を果たしてもよい。
【００１８】
また、本連動システムは、マスタアーム１１とスレーブアーム２１との連動動作を可能にするための連動動作管理部１０６を有している。連動動作管理部１０６は、マスタアーム１１とスレーブアーム２１がそれぞれ保有する状態量をマスタ・スレーブシステム間で互いに送受信可能にする。連動動作管理部１０６自体も一つの独立した計算機によって処理させても良いが、各アーム制御ユニットの計算機リソースが潤沢であるなど特に分離させるメリットが無い場合には、マスタアーム１１またはスレーブアーム２１のどちらかのシステムと同じ計算機上で処理させても良い。この場合、同一ＣＰＵで処理する側の通信はシェアドメモリやバス通信など高速な情報伝達が可能となり、通信時間や遅延の点でのメリットが生ずる。本実施形態では、連動動作管理部１０６はマスタアーム側の計算機で管理するものとする。
【００１９】
また本実施形態ではもう一方のＣＰＵとの通信は、前記通信用ケーブルを介したネットワーク通信を用いることとする。本連動システムでは、スレーブアーム２１およびスレーブアーム制御ユニット２０の部分をスレーブシステムとし、マスタアーム１１およびマスタアーム制御ユニット１０（共通動作抽出部１０５、連動動作管理部１０６および連動動作変更判定部１０７を含む）、入出力パネル１２、モニタ１３部分をマスタシステムと見なせる。
【００２０】
本システムでは、操作者が操作時に握るマスタアーム１１のグリップ位置をマスタアーム先端と呼称する。マスタアーム１１は自身の先端位置姿勢の位置・速度情報のほか、アーム先端に加えられた操作者の操作力を６軸力成分として検知し、連動動作管理部１０６へ出力する。また、マスタアーム１１はアーム先端の位置または速度による指令値を受けて動作する、先端位置制御および先端速度制御が可能な制御構造（制御モード）をなしているものとする。
【００２１】
一方、スレーブアーム２１はアーム先端に備えられたロボットハンドの作用部分をスレーブアーム先端位置と呼称する。スレーブアーム２１は自身の先端位置姿勢の位置・速度情報のほか、アーム先端に加えられた外部作業対象への作用反力を６軸力成分として検知し、連動動作管理部１０６へ出力する。また、このスレーブアーム２１はアーム先端の速度または各軸の回転角速度による指令値を受けて動作する、先端速度制御および各軸速度制御が可能な制御構造をなしているものとする。
【００２２】
また、これらシステムは、自身の制御構造を自身が有する他の制御構造へ任意のタイミングで変更することが可能な制御構造変更部１０４，２０４を有している。連動動作管理部１０６は、前記制御構造変更部１０４，２０４へ指令を出すことで、マスタおよびスレーブアーム制御部１０１、２０１の制御構造を変更することができる。
【００２３】
マスタＩＦリスト１０２は、マスタアーム１１を制御する少なくとも１つの制御構造（マスタアーム制御部１０１がサポートする制御構造）それぞれの入出力情報（例えば制御方式の識別情報及び出力可能な状態量）を要素として含む。スレーブＩＦリスト２０２は、スレーブアーム２１を制御する少なくとも１つの制御構造（スレーブアーム制御部２０１がサポートする制御構造）それぞれの入出力情報であってマスタアーム１１の制御構造に用いた要素表現と共通する要素表現で表されるものを要素として含む。ＭＳ識別符号１０３，２０３は、マスタ又はスレーブの役割を識別可能な識別符号であり、ＭＳ識別符号１０３は［マスタ］状態と、ＭＳ識別符号２０３は［スレーブ］状態と予め設定されている。
【００２４】
共通動作抽出部１０５は、マスタＩＦリスト１０２及びスレーブＩＦリスト２０２とマスタシステム及びスレーブシステムの連動に必要な各入出力情報を上記リストと共通の要素表現で定義したマスタ側入出力定義及びスレーブ側入出力定義との比較結果から共通する要素を抽出する。連動動作管理部１０６に設けられる連動動作変更判定部１０７は、共通動作抽出部１０５で抽出された共通の要素のうちの少なくとも１つに対応するマスタアーム制御部１０１及びスレーブシステムの制御構造の組み合わせになる連動動作制御方式への変更を許可する。
【００２５】
次に、このように構成される連動システムの動作について説明する。図２は、本システムの動作を示すフローチャートである。  
（ステップＳ１：ＭＳ識別符号確認）  
マスタシステムはマスタアーム制御ユニット１０が持つ記憶領域に、［マスタ］状態が記述されたＭＳ識別符号用ファイル１０３を有し、マスタシステム起動時にまず本ファイルをチェックし、自身のシステムがマスタであることを把握する。同様にスレーブシステムはスレーブアーム制御ユニット２０が持つ記憶領域に、［スレーブ］状態が記述されたＭＳ識別符号用ファイル１０３を有し、スレーブシステム起動時にまず本ファイルをチェックし、自身のシステムがスレーブであることを把握する。各状態は例えば、ファイルの１行目先頭に書かれている数字が０であればマスタ、１であればスレーブである等のルールを用いればよい。これにより、両システムは連動動作時の自システムの挙動をマスタ的（相手システムへ指示を出す側）に行うか、スレーブ的（相手システムから指示を受ける側）に行うかを決定する。
【００２６】
（ステップＳ２：通信接続）  
続いて、両システムにおいて、マスタアーム制御ユニット１０及びスレーブアーム制御ユニット２０は、各システムの通信モジュールにより上記ネットワークを介して接続を確立する。
【００２７】
（ステップＳ３：マスタ／スレーブ判定）  
ここで両システムは、先に把握した自身のＭＳ識別符号もしくはその認識結果を連動動作管理部１０６へ送信し、連動動作管理部１０６は送られてきた両者システムの属性がマスタ／スレーブのいずれであるかを管理し、両システムから送信されるデータの送信先が送信元システムと同一の属性である場合には送信を中断し、エラー処理をおこなう（ステップＳ９）。これにより、マスタ同士の接続やスレーブ同士の接続により生じるエラーを回避できる。なお、自システムおよび接続する機器の役割（マスタ／スレーブ）が予め決められていて、マスタとスレーブの確認が事前に取れている場合には、本機能は省略しても構わない。また、本機能を連動動作管理部１０６内に設置したのはあくまで一例であり、連動動作管理部１０６内に限定するものではない。
【００２８】
このようにマスタ／スレーブの判定をおこなうことで、前述のように接続エラーを回避することが可能になるとともに、マスタ／スレーブ両機能が実装されたマニピュレータなどは、これまでスレーブとして使用していたものを、マスタとして使用することも可能になる。マスタアーム１１には操作者の入力しやすさを考慮した形状や操作方法が求められるため、一般には要求にあった形状の（汎用用途としての）専用マスタが用意されるが、普段スレーブアームとして使用しているマニピュレータも位置・姿勢提示能力があることには変わりなく、マスタとしての機能を実装することも可能である。本識切替え能を有することで、特に、普段使用していたマスタが突然故障した際などの緊急用途として、別のスレーブアームをマスタとして一時的に利用することなどが考えられる。
【００２９】
（ステップＳ４：共通動作抽出）  
図３は、連動システムの共通規定情報の一例を示したものである。本連動システムを構成する全てのシステムは、マスタ／スレーブアーム制御部１０１，２０１を制御する場合の制御構造（制御モード）の名称およびその表現方法、その制御構造に対応して必要となる制御入力情報の名称およびその表現方法、および、その制御構造を実現するための同アーム制御部へ指示変更可能な制御構造変更部に対する指示方法や同変更部が提供する入力手段の名称およびその表現方法などが、全システム共通のルールとして統一に規定されている。
【００３０】
例えば、マスタ／スレーブアーム制御部１０１，２０１が有する制御構造の一つとして、アーム先端速度を指定の目標入力値にあわせるような制御を実行する［先端速度モード］があり、それは所定のＩＤで表される。この制御を実行するために必要な入力値は、先端位置での並進３成分（Ｘ，Ｙ，Ｚ），回転３成分（Ｒｏｌｌ，Ｐｉｔｃｈ，Ｙａｗ）の６軸成分に関する速度成分情報［先端速度情報］である。この［先端速度情報］は、倍精度浮動小数点型の実数６つで表され、６つの実数のうちの１つ目はアーム基準座標系におけるＸ軸方向の並進速度、２つ目はアーム基準座標系におけるＹ軸方向の並進速度、３つ目はアーム基準座標系におけるＺ軸方向の並進速度、４つ目はアーム基準座標系における右ねじ回転表現で表されたＸ軸周りの回転角速度、５つ目はアーム基準座標系における右ねじ回転表現で表されたＹ軸周りの回転角速度、６つ目はアーム基準座標系における右ねじ回転表現で表されたＺ軸周りの回転角速度で構成される。また、この制御構造へ外部システムが切り替え指示を与えるときには、同制御システムが提供するＡＰＩ関数［先端速度モード変更関数］を実行する。このような処理手順やその名称・表現手法・挙動などが共通化され、その仕様を満たすように各システムは実装されている。
【００３１】
なお、本実施形態で挙げている制御構造の種類や情報は一例にすぎず、他の表現や種類を用意しても良い。また座標系の取り方や位置・回転の表現手法なども一例にすぎず、他の手法を用いても良い。同様に、［先端位置モード］で必要となる入力情報として、先端位置での６軸成分に関する位置成分情報である［先端位置情報］、［各軸速度モード］で必要となる入力情報として、各軸に関する回転角速度情報である［各軸速度情報］などと定めている。他にも必要な制御構造があれば一般化して追加することができる。
【００３２】
また、マスタ／スレーブアーム制御部１０１，２０１が出力可能な状態量も共通の表現で管理されている。ここでは、各装置の先端位置での６軸位置成分情報である［先端位置情報］や、先端位置での６軸速度成分情報である［先端速度情報］、先端位置での６軸外力成分情報である［先端６軸力情報］などとする。また、ここではオイラー角により姿勢を表示する形式を取ったが、軸ベクトルや四元数など他の表示形式を用いて位置・姿勢表示を共通化しても一般性は失われないので問題はない。他にもシステム間で利用する情報があれば、共通表現として加えることができる。
【００３３】
上記共通規定に基づいて、図４に示すような連動システムの制御方式制限処理が構築されている。スレーブアーム制御部２０１は、先端速度制御および各軸速度制御が可能な制御構造をなしているので、スレーブアーム制御部２０１が保有する入力可能な制御構造は［先端速度モード］および［各軸速度モード］となる。またこのときスレーブアーム制御部２０１で内部管理され出力可能な状態量は［先端位置情報］、［先端速度情報］および［先端６軸力情報］である。
【００３４】
このとき、スレーブシステムは、スレーブアーム制御ユニット２０が持つ記憶領域内部に、上記入力制御構造と出力状態量を記述したスレーブＩＦリスト２０２を保有している。ここでは８ｂｉｔ長ビットフラグを２つ使用する。
【００３５】
１つ目のビットフラグは、サポートする入力制御構造を表現するために使用し、１ｂｉｔ目は先端速度モードの有無を表し、１ｂｉｔ目が０であれば同モードをサポートしておらず、１であればサポートしていることを表す。同様に２ｂｉｔ目は先端位置モードを、３ｂｉｔ目は各軸速度モードを、４ｂｉｔ目は各軸位置モードを表すことに割り当てる。他にも制御モードが存在する場合には空いているビットに割り当てて良い。このとき、スレーブアーム制御部２０１の１つ目のビットフラグは、０００００１０１となる（右端から左へ順に１ｂｉｔ→８ｂｉｔ）。
【００３６】
また、２つ目のビットフラグは、サポートする出力状態量を表現するために使用し、１ｂｉｔ目は先端速度情報の有無を表し、１ｂｉｔ目が０であれば同状態量の出力をサポートしておらず、１であればサポートしていることを表す。同様に２ｂｉｔ目は先端位置情報の有無を、３ｂｉｔ目は先端６軸力情報の有無を表すことに割り当てている。他にも各軸位置情報や各軸速度情報など他の状態量のやり取りが考えられる場合には、同様に空いているビットに割り当てて良い。このとき、スレーブアーム制御部２０１の２つ目のビットフラグは、０００００１１１となる。なお、使用するビット長や個数は本実施形態に限定するものではなく、必要に応じて自由に変更可能なものである。
【００３７】
また、ビットフラグではなく、各制御構造や状態量に一意のＩＤ番号を与えて、これをファイルに記述するなどして管理しても良い。例えば、先端速度モードにはＩＤ：１を、先端位置モードにはＩＤ：２を、各軸速度モードにはＩＤ：３を、各軸位置モードにはＩＤ：４を割り振り、あるテキストファイルにこれら数字をカンマ区切りなどで列挙して管理する方法などが考えられる。本実施形態のスレーブアーム制御部２０１に関しては、（１，３）が記述されたファイルを保有することになる。他にも同様に状態を一意に定めることが可能な表現方法であれば、管理方法は本実施形態にて挙げられたものに限定しない。なお本実施形態では、ビットフラグを用いた手法を一例として採用している。
【００３８】
また、マスタアーム制御部１０１においても、サポートしている入力制御構造と出力状態量を表現した２つのビットフラグを用意して、マスタアーム制御ユニット１０が持つ記憶領域内にてマスタＩＦリスト１０２として管理している。マスタアーム制御部１０１は、先端位置制御および先端速度制御が可能な制御構造をなしているので、マスタの入力制御構造ビットフラグは００００００１１、出力状態量ビットフラグは０００００１１１となる。
【００３９】
図５に連動動作制御方式の一覧を示す。連動動作管理部１０６は、連動動作管理部１０６が置かれた制御ユニットが持つ記憶領域内に、マスタシステムがスレーブシステムとともに実行する連動動作制御方式の一般形一覧を有している。本実施形態では、「先端位置ユニラテラル」、「先端速度ユニラテラル」、「力覚フィードバック（ＦＢ）付き先端位置バイラテラル」および「力覚ＦＢ付き先端速度バイラテラル」を有しているものとする。他にも別なマスタシステムとスレーブシステムの連動方法があれば、この一覧に追加しても良い。
【００４０】
さらに、連動動作管理部１０６が有する連動動作制御方式には、その連動動作制御方式を実現するために必要なマスタ／スレーブアーム制御部１０１，２０１の制御構造及び状態量を定義する入出力方式（マスタ側／スレーブ側入出力定義）が、前述した図３のような共通規定の表現手法を用いてそれぞれ定められ、ビットフラグで管理されている。例えば、「先端位置ユニラテラル」方式の場合であれば、マスタアーム制御部１０１に要求する制御構造としては［先端位置モード］、マスタアーム制御部１０１に要求する出力状態量としては［先端位置情報］および［先端６軸力情報］としているので、（マスタ側へ要求するための）要求制御構造ビットフラグ００００００１０と、要求出力状態量ビットフラグ０００００１１０を持つことなる。また同連動動作制御方式がスレーブアーム制御部２０１に要求する制御構造としては［先端位置モード］、出力状態量としては［先端位置情報］としているので、（スレーブ側へ要求するための）要求制御構造ビットフラグ００００００１０と、状態量ビットフラグ００００００１０を持つことになる。同様に、各連動動作制御方式に応じてマスタ・スレーブそれぞれに対するビットフラグを持っている。
【００４１】
図６に、マスタ／スレーブＩＦリストの一例を示す。図５の連動動作管理部１０６が持つマスタ側入出力方式定義が、マスタ制御部の持つマスタＩＦリスト１０２に対応するインタフェースとなる。図５の連動動作管理部１０６が持つスレーブ側入出力方式定義が、マスタシステムのスレーブシステム側に対するインタフェースとなる。一方、スレーブシステムのマスタシステム側に対するインタフェースは、本実施形態のシステム構成ではスレーブアーム制御部２０１の入出力方式（入力制御構造及び出力状態量）（スレーブＩＦリスト２０２）に相当する。
【００４２】
ここで、マスタシステムとスレーブシステムの境界となるインタフェースのレイヤーが、例えば本実施形態のようにマスタシステム側に連動動作管理部１０６を含める形となっている場合には、スレーブシステム内部での系統だった構成は必須ではなくなるため、スレーブシステム全体で制御系を一体化して作り込み、スレーブＩＦリストでスレーブアーム制御部２０１の入出力方式（制御構造及び状態量）を一括管理しても良い。
【００４３】
次に、図７を用いて共通動作抽出の動作を説明する。共通動作抽出部１０５は、マスタアーム制御部１０１が保有する入出力方式（図７のマスタＩＦリスト）と、連動動作管理部１０６が保有するマスタ側入出力定義の比較処理を行う。具体的には、連動動作管理部１０６が保有するマスタ側の各連動動作制御方式に関する制御構造ビットフラグおよび状態量ビットフラグを、マスタアーム制御部１０１が保有する入力制御構造ビットフラグおよび出力状態量ビットフラグでそれぞれＡＮＤ（論理和）を取り、その出力がそれぞれ連動動作管理部１０６のマスタ側の入力制御構造ビットフラグに一致すれば、その連動動作制御方式のマスタ比較結果を［ＴＲＵＥ］とし、不一致であれば［ＦＡＬＳＥ］とする。
【００４４】
例えば、「先端位置ユニラテラル」方式のマスタ側制御構造ビットフラグ００００００１０とマスタアーム制御部１０１の入力制御構造ビットフラグ００００００１１のＡＮＤ出力は００００００１０であり、これは連動動作管理部のマスタ側の入力（マスタ側要求制御構造ビットフラグ）に一致する。また「先端位置ユニラテラル」方式のマスタ側状態量ビットフラグ０００００１１０とマスタアーム制御部１０１の出力状態量ビットフラグ０００００１１１のＡＮＤ出力は０００００１１０であり、こちらも連動動作管理部１０６のマスタ側の入力（マスタ側要求出力状態量ビットフラグ）に一致するので、連動動作制御方式のマスタ側の比較結果は［ＴＲＵＥ］となる。同様にして、マスタ側について他の連動動作制御方式に関しても比較処理を実行すると、本実施形態では全て［ＴＲＵＥ］となることが分かる。ここでは、本比較結果をマスタ比較結果と呼称する。
【００４５】
ここで、マスタシステムとスレーブシステムの境界となるインタフェースのレイヤーが、例えば本実施形態のようにマスタシステム側に連動動作管理部１０６を含める形となっている場合には、マスタシステム内部での系統だった構成は必須ではなくなるため、マスタシステム全体で制御系を一体化して作り込み、上記マスタ比較結果を予め確認してリスト化して、これをマスタＩＦリストとして使用する構成にしても構わない。
【００４６】
両システムの通信接続が確立し、互いのＭＳ識別チェックが行われた後、スレーブアーム制御ユニット２０は、自身の保有するスレーブＩＦリストを共通動作抽出部１０５へ送信する。共通動作抽出部１０５は、スレーブシステム側からスレーブＩＦリストを受け取り、連動動作管理部１０６が保有するスレーブ側入出力定義との比較処理を行う。
【００４７】
具体的には、スレーブ側入出力定義の各連動動作制御方式に関する制御構造ビットフラグおよび状態量ビットフラグを、スレーブＩＦリストに格納された入力制御構造ビットフラグおよび出力状態量ビットフラグでそれぞれＡＮＤ（論理和）を取り、その出力がそれぞれスレーブ側入出力方式定義の入力制御構造ビットフラグに一致すれば、その連動動作制御方式のスレーブ比較結果を［ＴＲＵＥ］とし、不一致であれば［ＦＡＬＳＥ］とする。
【００４８】
例えば、「先端位置ユニラテラル」方式のスレーブ側要求出力状態量ビットフラグ００００００１０とスレーブＩＦリストの出力状態量ビットフラグ０００００１１１のＡＮＤ出力は００００００１０であり、これはスレーブ側入出力定義の入力（スレーブ側要求出力状態量ビットフラグ）と一致する。一方、「先端位置ユニラテラル」方式の要求制御構造ビットフラグ００００００１０とスレーブシステムＩＦリストの入力制御構造ビットフラグ０００００１０１のＡＮＤ出力は００００００００であり、これはスレーブ側入出力方式定義の入力（要求制御構造ビットフラグ）とは一致しないので、「先端位置ユニラテラル」方式のスレーブ側の比較結果は［ＦＡＬＳＥ］となる。
【００４９】
同様にして、他の連動動作制御方式に関してもスレーブ側について比較処理を実行すると、「先端速度ユニラテラル」方式では［ＴＲＵＥ］、「力覚ＦＢ付き先端位置バイラテラル」方式では［ＦＡＬＳＥ］、「力覚ＦＢ付き先端速度バイラテラル」方式では［ＴＲＵＥ］となることが分かる。ここでは、本比較結果をスレーブ比較結果と呼称する。
【００５０】
続いて、共通動作抽出部１０５は、各連動動作制御方式に関する前記マスタ比較結果とスレーブ比較結果をそれぞれの連動動作制御方式ごとに比較し、両者が［ＴＲＵＥ］となっている場合に［ＴＲＵＥ］を出力し、それ以外の場合には［ＦＡＬＳＥ］を出力する。例えば、「先端位置ユニラテラル」方式の場合には、マスタ比較結果が［ＴＲＵＥ］、スレーブ比較結果が［ＦＡＬＳＥ］であるから、本方式の比較結果は［ＦＡＬＳＥ］となる。同様にして、他の連動動作制御方式に関しても比較処理を実行すると、「先端速度ユニラテラル」方式の場合には［ＴＲＵＥ］、「力覚ＦＢ付き先端位置バイラテラル」方式の場合には［ＦＡＬＳＥ］、「力覚ＦＢ付き先端速度バイラテラル」方式の場合には［ＴＲＵＥ］となることが分かる。ここでは本比較結果を共通動作抽出結果と呼称する。共通動作抽出部１０５は、本共通動作抽出結果を連動動作管理部１０６へ伝達する。
【００５１】
（ステップＳ５：連動動作移行許可判定）  
各システムが起動し、両システムがネットワーク間で接続され、前記共通動作抽出結果が出力されるまで、マスタ・スレーブ両システムはそれぞれ連動動作形態への移行は許可されず、個別待機状態にある（ステップＳ５：ＮＯ）。共通動作抽出処理が終わると（ステップＳ５：ＹＥＳ）、両システムは連動動作形態へ移行可能となり、操作者からの連動形態移行指令を受けて指定の連動動作制御方式の連動動作形態へ移行する。
【００５２】
（ステップＳ６：連動動作移行許可通知）  
連動動作管理部１０６は、連動動作形態へ移行可能な状態となると、モニタ１３の画面上のメッセージまたは入出力パネル１２上のＬＥＤ点灯表示などにより、操作者に移行可能な状態となったことを通知する。続いて操作者は、入出力パネル１２に設けられたスイッチおよびモニタ１３の画面を用いて、連動動作制御方式を選択する。ここで、モニタ１３上に移行可能な連動動作制御方式を提示して操作者に選択させるような方式であるとき、連動動作管理部１０６の連動動作変更判定部１０７は前記共通動作抽出結果をふまえて、本システム構成で実現可能な連動動作制御方式（上記共通動作抽出結果が［ＴＲＵＥ］のもの）のみを選択肢として操作者に提示する。また入出力パネル１２など、固定入力手段を用いて操作者に連動動作制御方式を選択させる場合には、連動動作変更判定部１０７は、本システムで実現不可能な連動動作制御方式が入力された際に、パネル上のＬＥＤやビープ音、またはモニタ１３画面上へのメッセージなどを提示して、操作者に本システムではその連動動作制御方式がセット不可能であることを通知するとともに、前記入力指令を無効化する。連動動作変更判定部１０７でこのような判定処理を行うことにより、不特定のマスタとスレーブアームを接続した連動システムにおいても、両システムがサポートしていない連動動作制御方式への移行を防ぎ、深刻なシステムエラーを回避することが可能になっている。
【００５３】
本実施形態のように両システムが使用可能な制御構造の管理を連動動作管理部１０６に一任せず、互いのシステムが保有するＩＦリストを両システムで交換し合い、ＩＦリストの比較処理を両システムでそれぞれ実行し、自システムがサポートしない動作システムの命令が指示された場合などのエラー回避処理を両システムで二重にチェックするようなシステム構成にしてもよい。
【００５４】
（ステップＳ７：連動動作制御方式の変更指示）  
連動動作管理部１０６は、操作者から前記手段を用いて連動動作制御方式の変更指示を受けると、自身の動作方式を次モードへの移行待機状態とし、指定の連動動作制御方式に対応した各アーム制御部が取るべき制御構造を、連動動作管理部１０６が保有する（マスタ側／スレーブ側）制御方式ビットフラグなどを用いて確認する。さらに、図４を用いて前述した全システム共通規定に基づき、各制御部が指定の制御構造となるように、制御構造変更部１０４，２０４へ変更指示を出すことで実現される。
【００５５】
このとき、制御構造変更指示ＡＰＩ関数に返値を持たせるなどして、各アーム制御部の制御構造が正常に変更を完了したかどうかを確認可能なようにしていて、両アームの変更処理が正常と確認できた後、移行待機状態としていた連動動作管理部１０６の動作方式を正式に移行完了とする。もし何らかの理由で変更処理の失敗が確認された場合には、入出力パネル１２やモニタ１３を用いて失敗状態を操作者に提示すると共に、連動動作管理部１０６の動作方式の待機状態を破棄して、前モードへ戻し、各制御部も前動作方式の制御構造へとリセットする。ここでリセットも失敗状態になる場合には異常終了処理を行うなどする。
【００５６】
連動動作制御方式がセットされた後、操作者が連動動作実行指令を送ると、連動動作管理部１０６は指定の連動動作制御方式のもと、マスタ・スレーブ連動動作処理を開始する。本システムでは、入出力パネル１２にあるスイッチの一つを連動動作実行用に割り当て、これをＯＮすることで連動動作実行指令を連動動作管理部１０６へ通知することとしている。入力方法はパネルスイッチに限定する物ではなく、マスタアーム本体にボタンスイッチを設けるなど、他の方式を用いても何ら問題ない。
【００５７】
（ステップＳ８：連動動作制御実行）  
連動動作管理部１０６は、連動動作処理開始状態になると、得られた各アーム状態量をもとに、指定連動動作方式の制御則に従い、次ステップの両アームの動作指令値を生成して各アーム制御部へ出力する。例えば、指定連動動作方式が「力覚ＦＢ（フィードバック）付きの先端位置バイラテラル」であれば、連動動作管理部１０６は両アームの検出外力を合成し、この合力を用いてバネ・マス・ダンパといった仮想的な運動特性が予め定められた運動方程式を解くことで次の瞬間の手先位置の位置や速度を定めるような処理を行う。このとき、各アーム制御部への制御指令値は、図３を用いて前述した全システム共通規定から求められ、現動作方式時に各アームが取っている制御構造に適した入力情報を各アーム制御部へ送信することができる。今回の「力覚ＦＢ付きの先端位置バイラテラル」動作方式であれば、このとき各アームで取られている制御構造は（マスタ側／スレーブ側）制御方式ビットフラグから両アーム共に［先端位置モード］であることが分かり、全システム共通規定から各アームへの送信情報（入力情報）は［先端位置情報］が選択される。このとき、連動動作管理部１０６は運動方程式を解いて得られた先端位置情報を各アームの制御指令値として出力する。
【００５８】
連動動作管理部１０６はマスタおよびスレーブで用いられている基準座標系の取り方を既知情報として把握しており、両システムから与えられる各アームそれぞれの基準座標系で表現された各アームの状態量を共通の座標系に変換して連動動作処理を行い、両システムへの制御指令値として出力する際に、各アームそれぞれの基準座標系へ戻してから出力する。
【００５９】
以上述べたように、上記実施形態では、汎用性の高いＭＳ接続を実現させるために、異なる制御構造を有するマスタアームやスレーブアームを連動させるためのシステムにおいて、操作入力側（マスタ）および作用出力側（スレーブ）システムそれぞれで、共通の書式ルールで書かれた連動動作制御時の入出力方式に関するＩＦリストを保有する。そして、両システムが接続された時点でリストを他システムから受け取り、自身のリストと比較して、互いの制御方式のうち重複する部分に関連する連動動作制御方式のみ有効にする制御方式制限処理を行うとともに、制御方式制限処理結果をもとにして各システムの制御構造の変更指令等を出力するものである。
【００６０】
なお、本実施形態は、例えば、入力部と出力部が物理的に分離したマスタ・スレーブ式のテレオペレーションシステムなどの入出力装置として使用され、遠隔操作用の操縦アームと作業用ロボットアームに適用される。また入力側または出力側の一方あるいは両方のシステムは、ディスプレイ上に表示されたＣＧ画像のように、実態を伴わないバーチャルな環境であっても構わない。
【００６１】
すなわち、上記実施形態では、操作器および作用器ともに実体を持ったロボットアームを用いたが、これに限定するものではなく、仮想的な操作器や作用器で構成してもよい。例えば、マスタアーム１１が操作する対象（作用器）を計算機中でシミュレートされた仮想的なマニピュレータシステムとし、その挙動をコンピュータグラフィックで描画したものであってもよく、実機によるマスタ・スレーブ操作を行う前のトレーニングなどとして利用することができる。またマスタアーム（操作器）もディスプレイ上に仮想的に表示された実体を持たないものをタッチパネルや感圧センサなどを利用してＣＧ上で動化すものであってもよい。
【００６２】
また、本実施形態では、連動動作管理部１０６をマスタアーム制御ユニット１０に組み込んだ構成を一例として示したが、図１の構成に限定されるものではなく、例えば以下のような変形例が考えられる。
【００６３】
（変形例１）  
図８は、変形例１に係る連動システムの構成例を示すブロック図である。例えば、図５８に示すように、連動動作管理部１０６を独立した連動動作管理演算ユニット１０Ｂ上に配置しマスタアーム制御ユニット１０Ａから独立したシステム構成にすることができる。このように構成しても、上記実施形態と同様の構成として機能する。
【００６４】
（変形例２）  
図９は、変形例２に係る連動システムの構成例を示すブロック図である。さらに、図９のように独立させた連動動作管理演算ユニット１０Ｂをモジュール化してスレーブシステム側のネットワーク上に配置してもよく、図９に示すようにマスタシステムの範囲とみなすことで、上記実施形態と同様の構成として機能する。
【００６５】
（変形例３）  
図１０は、変形例３に係る連動システムの構成例を示すブロック図である。図１０に示すように、連動動作管理部１０６をスレーブアーム制御ユニット２０Ｂに組み込んだ場合でも、スレーブシステムのマスタ側インタフェースを連動動作管理部１０６がマスタ側へ要求する入出力ビットフラグに、マスタシステムのスレーブ側インタフェースをマスタアーム制御部１０１の入出力方式のビットフラグにすることで、上記実施形態と同様の構成として機能する。
【００６６】
（変形例４）  
図１１は、変形例４に係る連動システムの構成例を示すブロック図である。また、図１１に示すように、連動動作管理部１０６はマスタアーム制御ユニット１０Ｃに組み込み、共通動作抽出部１０５のみをスレーブアーム制御ユニット２０Ｃに組み込むなど、連動動作関連の処理の一部を他システム上で実装して、関連情報をネットワーク経由で伝達させるような構成でも、特にメリットが多いわけではないが、機能上の問題はない。
【００６７】
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００６８】
１０…マスタアーム制御ユニット、１１…マスタアーム、１２…入出力パネル、１３…モニタ、１０１…マスタアーム制御部、１０２…マスタＩＦリスト、１０３…ＭＳ識別符号用ファイル、１０４…制御構造変更部、１０５…共通動作抽出部、１０６…連動動作管理部１０６…連動動作変更判定部、２０…スレーブアーム制御ユニット、２１…スレーブアーム、２０１…スレーブアーム制御部、２０２…スレーブＩＦリスト、２０３…ＭＳ識別符号用ファイル、２０４…制御構造変更部。
【図１】
2014014900.tif 000003
【図２】
2014014900.tif 000004
【図３】
2014014900.tif 000005
【図４】
2014014900.tif 000006
【図５】
2014014900.tif 000007
【図６】
2014014900.tif 000008
【図７】
2014014900.tif 000009
【図８】
2014014900.tif 000010
【図９】
2014014900.tif 000011
【図１０】
2014014900.tif 000012
【図１１】
2014014900.tif 000013