(57)【特許請求の範囲】
【請求項１】
操作者により操作されるマスタと、
前記マスタに接続されているモータと、
前記操作者による前記マスタの操作に応じて動作するスレーブを有するマスタスレーブ装置において、
前記スレーブが物体と接触していない状態では、前記マスタの位置ｘ１を求め、前記スレーブの位置ｘ３が該位置ｘ１へ追従するように前記スレーブが該スレーブの位置制御により制御され、
前記スレーブが物体と接触している状態では、
前記マスタが該マスタに接続されている前記モータの保持力により保持されるとともに、
前記操作者の操作により前記マスタに加えられる力ｆ１を求め、前記スレーブにかかる力ｆ３が該力ｆ１に応じた力ｆ２へ追従するよう前記スレーブが該スレーブの前記位置制御とは異なる力制御により制御されることを特徴とするマスタスレーブ装置。
【請求項２】
請求項１に記載のマスタスレーブ装置において、
前記スレーブにかかる力ｆ３が所定の値を超えているときに前記スレーブが物体と接触している状態と判定することを特徴とするマスタスレーブ装置。
【請求項３】
請求項１または２に記載のマスタスレーブ装置において、
前記スレーブが物体と接触している状態では、前記マスタが該マスタに接続されている前記モータの保持力により保持され、前記操作者の操作により前記マスタに加えられる力により伸縮する弾性要素の伸縮量を検出することにより前記操作者の操作により前記マスタに加えられる力ｆ１を求めることを特徴とするマスタスレーブ装置。
【請求項４】
請求項１ないし３のいずれかに記載のマスタスレーブ装置において、
前記モータは超音波モータであることを特徴とするマスタスレーブ装置。
【請求項５】
請求項１ないし３のいずれかに記載のマスタスレーブ装置において、
前記モータに代えてクラッチとすることを特徴とするマスタスレーブ装置。
【請求項６】
請求項１ないし５のいずれかに記載のマスタスレーブ装置において、
前記力ｆ１に代えてトルクｔ１とし、
前記力ｆ２に代えてトルクｔ２とし、
前記力ｆ３に代えてトルクｔ３とし、
前記位置ｘ１に代えて角度θ１とし、
前記位置ｘ３に代えて角度θ３とし、
前記位置制御に代えて、角度制御とし、
前記力制御に代えて、トルク制御とすることを特徴とするマスタスレーブ装置。
【請求項７】
操作者によるマスタの操作に応じて動作するようにスレーブを制御するマスタスレーブ装置制御方法において、
前記スレーブが物体と接触していない状態では、前記マスタの位置ｘ１を求め、前記スレーブの位置ｘ３が該位置ｘ１へ追従するように前記スレーブが該スレーブの位置制御により制御され、
前記スレーブが物体と接触している状態では、
前記マスタが該マスタに接続されているモータの保持力により保持されるとともに、
前記操作者の操作により前記マスタに加えられる力ｆ１を求め、前記スレーブにかかる力ｆ３が該力ｆ１に応じた力ｆ２へ追従するよう前記スレーブが該スレーブの前記位置制御とは異なる力制御により制御されることを特徴とするマスタスレーブ装置制御方法。
【請求項８】
請求項７に記載のマスタスレーブ装置制御方法において、
前記スレーブにかかる力ｆ３が所定の値を超えているときに前記スレーブが物体と接触している状態と判定することを特徴とするマスタスレーブ装置制御方法。
【請求項９】
請求項７または８に記載のマスタスレーブ装置制御方法において、
前記力ｆ１に代えてトルクｔ１とし、
前記力ｆ２に代えてトルクｔ２とし、
前記力ｆ３に代えてトルクｔ３とし、
前記位置ｘ１に代えて角度θ１とし、
前記位置ｘ３に代えて角度θ３とし、
前記位置制御に代えて、角度制御とし、
前記力制御に代えて、トルク制御とすることを特徴とするマスタスレーブ装置制御方法。
【請求項１０】
請求項７ないし９のいずれかに記載のマスタスレーブ装置制御方法をコンピューターシステムにおいて実行するためのコンピュータープログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マスタスレーブ装置、その装置の制御方法及びその方法を実行するためのコンピュータープログラムに係る。特に操作者により操作されるマスタと、操作者によるマスタの操作に応じて動作するスレーブを有するマスタスレーブ装置、その装置の制御方法及びその方法を実行するためのコンピュータープログラムに関する。
【０００２】
【従来の技術】
マスタスレーブ装置は、２体の類似構造を持つ装置を用意し、一つ、すなわちマスタ側装置を操作端として用い、他の一つ、すなわちスレーブ側装置を作業用装置として用いることにより、操作者の位置が作業現場と離れていても必要な作業を行うことができるようにしたものである。操作者がマスタを操作することにより、この操作に応じて動作するスレーブを介して、望みの作業が行われる。特に、作業現場が悪環境である場合の遠隔操作や患者が遠隔地に居る場合の遠隔医療に大きな威力を発揮することから、近年、急速に研究が進められている。
【０００３】
ところで、マスタスレーブ装置は、その制御方式により２つのタイプに分類することができる。図１及び図２は、これらの制御方式をブロック図により表したものである。図１のタイプは操作者２から、操作端４を介して、作業用装置６に指令を送ることはできるが、スレーブが作業対象物や作業環境８から受ける作業反力等の作業情報１０を操作者２にフィードバックすることができない。これらのタイプのものを、ユニラテラル制御方式という。一方、図２のタイプは操作者２から、操作端４を介して、作業用装置６に指令を送ることができることに加えて、上記作業情報の操作者へのフィードバック１２が可能である。これらのタイプのものを、バイラテラル制御方式という。いずれの制御方式においても、操作者が直接に、あるいはモニタなどを用いて間接的に作業状態を見ることによって、視覚による位置情報フィードバック１４がなされ、操作者が運動指令を行うことができる。
【０００４】
図３ないし図６に示されるユニラテラル制御またはバイラテラル制御方式の制御系を表した図により、さらに両制御方式に説明を加える。図３は、ユニラテラル制御方式の制御系を表したものであり、操作者がマスタ１６を操作する際に、マスタ１６の位置とマスタ１６に追従するスレーブ１８の位置との偏差ｘa-ｘbを求め、この偏差に応じて位置調節器２０によりスレーブ１８の位置制御が行われる。
【０００５】
バイラテラル制御方式には幾つかの形態があり、主なものに対称形、力逆送形、力帰還形がある。
図４はバイラテラル制御方式の制御系のうち対称形を表したものであり、操作者がマスタ１６を操作する際に、マスタ１６の位置とマスタ１６に追従するスレーブ１８の位置との偏差ｘa-ｘbを求め、この偏差に応じて位置調節器２２によりスレーブ１８の位置制御を行うとともに、上記偏差を修正する方向の力をマスタ１６にも与え、位置偏差に応じた位置調節器２４によるマスタ１６の位置制御を仲介として力感覚を伝えるようにしている。
図５はバイラテラル制御方式の制御系のうち力逆送形を表したものであり、マスタ１６の位置とスレーブ１８の位置との偏差ｘa-ｘbを求め、この偏差に応じて位置調節器２２によりスレーブ１８の位置制御を行うことは対称形と同様であるが、これとともに、スレーブ１８にかかる力を適当な検出器で検出して、その検出信号を力伝達器２６によりマスタ１６に伝達し、検出された力の大きさに応じて操作者の力感覚を変えるようにマスタ１６を制御するようにしている。
図６はバイラテラル制御方式の制御系のうち力帰還形を表したものであり、マスタ１６の位置とスレーブ１８の位置との偏差ｘa-ｘbを求め、この偏差に応じて位置調節器２２によりスレーブ１８の位置制御を行うことは対称形と同様であるが、これとともに、マスタ１６とスレーブ１８にかかる力を適当な検出器で検出して、両者の検出された力の偏差ｆb-ｆaをマスタ１６にフィードバックし、前記偏差が零となるように力調節器２８によりマスタ１６を制御するようにしている。 なお、バイラテラル制御方式の上述した三形態においては、スレーブ１８に係る出力がフィードバックされ、マスタ１６へ伝達されている。このことはバイラテラル制御方式の三形態に共通の事項である。
【０００６】
ユニラテラル制御方式とバイラテラル制御方式の長所と短所を考察すると以下の通りとなる。ユニラテラル制御方式は、装置の簡素化、小型化及びこれらによる低コスト化、制御系の簡素化及びこれによる低コスト化が期待できるという長所があるが、作業反力等の作業情報をマスタの操作者にフィードバックすることができないため、スレーブと対象物との接触等による触覚・力覚情報をマスタの操作者に呈示することができないという短所があった。一方、バイラテラル制御方式は、作業反力等の作業情報をマスタの操作者にフィードバックすることができるため、スレーブと対象物との接触等による触覚・力覚情報をマスタの操作者に呈示することができるという長所があるが、装置の複雑化、大型化及びこれらによる高コスト化、制御系の複雑化及びこれによる高コスト化という短所があった。特に、スレーブが物体と接触している状態でもスレーブの状態をフィードバックしてマスタを制御し続けなければならないことに起因する、発振や位相遅れの発生、スレーブ側装置の慣性力や摩擦力の補償の必要性等を考慮した適切な制御系の実現という制御の難しさが生ずるという短所があった。
【０００７】
【発明が解決しようとする課題】
本発明は、上記した従来技術の欠点を除くためになされたものである。その目的とするところは、スレーブが物体と接触している状態では、操作者の操作によりマスタに加えられる力ｆ１を求め、スレーブにかかる力ｆ３が力ｆ１に応じた力ｆ２へ追従するようスレーブが制御されることにより、マスタの操作者に力覚・触覚を呈示できる、すなわち、スレーブが物体と接触した際等にマスタの操作者が対象物から受けた反力を力感覚として受け取ることができるという長所を維持したまま、ユニラテラル方式に対するバイラテラル方式による短所を避けることができるようにすることである。本短所には、例えば、制御系の複雑化及びこれによる高コスト化がある。また、スレーブが物体と接触している状態でもスレーブの状態をフィードバックしてマスタを制御し続けなければならないことに起因する、発振や位相遅れの発生、スレーブ側装置の慣性力や摩擦力の補償の必要性等を考慮した適切な制御系の実現という制御の難しさがある。
【０００８】
【課題を解決するための手段】
上記の目的を達成するために、発明に係るマスタスレーブ装置は、操作者により操作されるマスタと、前記マスタに接続されているモータと、前記操作者による前記マスタの操作に応じて動作するスレーブを有するマスタスレーブ装置において、前記スレーブが物体と接触していない状態では、前記マスタの位置ｘ１を求め、前記スレーブの位置ｘ３が該位置ｘ１へ追従するように前記スレーブが該スレーブの位置制御により制御され、前記スレーブが物体と接触している状態では、前記マスタが該マスタに接続されている前記モータの保持力により保持されるとともに、前記操作者の操作により前記マスタに加えられる力ｆ１を求め、前記スレーブにかかる力ｆ３が該力ｆ１に応じた力ｆ２へ追従するよう前記スレーブが該スレーブの前記位置制御とは異なる力制御により制御されることを主たる特徴とするものである。
【０００９】
また、発明に係るマスタスレーブ装置制御方法は、操作者によるマスタの操作に応じて動作するようにスレーブを制御するマスタスレーブ装置制御方法において、前記スレーブが物体と接触していない状態では、前記マスタの位置ｘ１を求め、前記スレーブの位置ｘ３が該位置ｘ１へ追従するように前記スレーブが該スレーブの位置制御により制御され、前記スレーブが物体と接触している状態では、前記マスタが該マスタに接続されているモータの保持力により保持されるとともに、前記操作者の操作により前記マスタに加えられる力ｆ１を求め、前記スレーブにかかる力ｆ３が該力ｆ１に応じた力ｆ２へ追従するよう前記スレーブが該スレーブの前記位置制御とは異なる力制御により制御されることを主たる特徴とするものである。
【００１０】
本発明の他の特徴については、添付図面及び以下の記載により明らかにする。
【００１１】
【発明の実施の形態】
＝＝＝マスタスレーブ装置の構成例＝＝＝
以下本発明を図面に示す実施例に基づいて説明する。図７は、本発明に係るマスタスレーブ装置の全体図である。先ず、マスタスレーブ装置の構成を実施例に基づいて説明する。
【００１２】
図７において、マスタスレーブ装置は、マスタ３２、位置及び力（角度及びトルク）検出器３４、モータ３６、ｆ１/ｆ２（ｔ１/ｔ２）変換部３８、モータ制御部４０、切換指令部４２、スレーブ４４、位置及び力（角度及びトルク）検出器４６、アクチュエータ４８、アクチュエータ制御部５０を備え、モータ制御部４０は、位置（角度）制御部４０ａと保持指令部４０ｂを、アクチュエータ制御部５０は、位置（角度）制御部５０ａと力（トルク）制御部５０ｂを各々有する。
【００１３】
マスタ側においては、操作者により操作されるマスタ３２を制御するためにマスタ３２を駆動し、かつ、保持するモータ３６が、マスタ３２に設けられている。また、マスタ３２の位置（角度）及びマスタ３２にかかる力（トルク）を検出する位置及び力（角度及びトルク）検出器３４が、マスタ３２に設けられている。
【００１４】
スレーブ側においても類似の構成をとっており、操作者によるマスタ３２の操作に応じて動作するスレーブ４４を制御するためにスレーブ４４を駆動するアクチュエータ４８が、スレーブ４４に設けられている。また、スレーブ４４の位置（角度）及びスレーブ４４にかかる力（トルク）を検出する位置及び力（角度及びトルク）検出器４６が、スレーブ４４に設けられている。
【００１５】
位置及び力（角度及びトルク）検出器３４で検出された位置ｘ１（角度θ１）の情報信号は、位置（角度）制御部４０ａと位置（角度）制御部５０ａに入力される。また、位置及び力（角度及びトルク）検出器３４で検出された力ｆ１（トルクｔ１）の情報信号は、ｆ１/ｆ２（ｔ１/ｔ２）変換部３８に入力される。また、位置及び力（角度及びトルク）検出器４６で検出された位置ｘ３（角度θ３）の情報信号は、位置（角度）制御部４０ａと位置（角度）制御部５０ａに入力される。また、位置及び力（角度及びトルク）検出器４６で検出された力ｆ３（トルクｔ３）の情報信号は、切換指令部４２と力（トルク）制御部５０ｂに入力される。
【００１６】
ｆ１/ｆ２（ｔ１/ｔ２）変換部３８は、位置及び力（角度及びトルク）検出器３４で検出された力ｆ１（トルクｔ１）の情報信号を受け取り、力ｆ１（トルクｔ１）に応じた力ｆ２（トルクｔ２）を算出し、力ｆ２（トルクｔ２）の情報信号を出力する。力ｆ１（トルクｔ１）と力ｆ２（トルクｔ２）の関係は、両者が等しい関係になっているものでもよいし、両者がｆ２＝β・ｆ１のように比例関係になっているものでもよいし、ｆ２＝Ｆ（ｆ１）のようにｆ２がｆ１の関数になっているものでもよい。
【００１７】
切換指令部４２は、位置及び力（角度及びトルク）検出器４６で検出された力ｆ３（トルクｔ３）の情報信号を受け取り、この情報信号に基づいてモータ制御部４０及びアクチュエータ制御部５０に指令を与える。詳細については後述するが、力ｆ３（トルクｔ３）が所定の値を超えているときにはスレーブ４４が物体５２と接触している状態と判定され、保持指令部４０ｂと力（トルク）制御部５０ｂを作動させる。逆に、力ｆ３（トルクｔ３）が所定の値を超えていないときにはスレーブ４４が物体５２と接触していない状態と判定され、位置（角度）制御部４０ａと位置（角度）制御部５０ａを作動させる。
【００１８】
位置（角度）制御部４０ａは位置及び力（角度及びトルク）検出器３４で検出された位置ｘ１（角度θ１）の情報信号と位置及び力（角度及びトルク）検出器４６で検出された位置ｘ３（角度θ３）の情報信号を受け取り、位置ｘ１（角度θ１）が位置ｘ３（角度θ３）へ追従するように、モータ３６へ制御信号を送る。
【００１９】
位置（角度）制御部５０ａは位置及び力（角度及びトルク）検出器３４で検出された位置ｘ１（角度θ１）の情報信号と位置及び力（角度及びトルク）検出器４６で検出された位置ｘ３（角度θ３）の情報信号を受け取り、位置ｘ３（角度θ３）が位置ｘ１（角度θ１）へ追従するように、アクチュエータ４８へ制御信号を送る。
【００２０】
保持指令部４０ｂは、切換指令部４２の指令を受けて、マスタ３２をモータ３６の保持力により保持するように、モータ３６へ制御信号を送る。
【００２１】
力（トルク）制御部５０ｂは、ｆ１/ｆ２変換部３８から出力された力ｆ２（トルクｔ２）の情報信号と位置及び力（角度及びトルク）検出器４６で検出された力ｆ３（トルクｔ３）の情報信号を受け取り、力ｆ３（トルクｔ３）が力ｆ２（トルクｔ２）に追従するように、アクチュエータ４８へ制御信号を送る。
【００２２】
本発明は、スレーブが物体と接触している状態でのスレーブの制御方法に特徴があるため、スレーブが物体と接触していない状態での制御方法については、ユニラテラル制御方式、バイラテラル制御方式のうち、どちらの制御方式であるかは問わない。図７のマスタスレーブ装置の全体図は前記バイラテラル制御方式に対応したものであったが、前記ユニラテラル制御方式に対応したものについて、その構成を図８のマスタスレーブ装置の全体図を用いて説明する。
【００２３】
ユニラテラル制御方式においては、モータ３６によるマスタ３２の制御は行われないため、図８におけるマスタスレーブ装置は、図７においてモータ制御部４０が有していた位置（角度）制御部４０ａを有しない。したがって、位置及び力（角度及びトルク）検出器３４で検出された位置ｘ１（角度θ１）の情報信号は、図７における位置（角度）制御部４０ａと位置（角度）制御部５０ａのうち、位置（角度）制御部５０ａにのみ入力される。同様に、位置及び力（角度及びトルク）検出器４６で検出された位置ｘ３（角度θ３）の情報信号は、図７における位置（角度）制御部４０ａと位置（角度）制御部５０ａのうち、位置（角度）制御部５０ａにのみ入力される。
【００２４】
切換指令部４２が、位置及び力（角度及びトルク）検出器４６で検出された力ｆ３（トルクｔ３）の情報信号を受け取り、この情報信号に基づいてモータ制御部４０及びアクチュエータ制御部５０に指令を与えることは、図７の場合と変わりないが、図８の場合はモータ制御部４０への指令に関して、力ｆ３（トルクｔ３）が所定の値を超えているときにはスレーブ４４が物体５２と接触している状態と判定され、保持指令部４０ｂを作動させるのに対し、力ｆ３（トルクｔ３）が所定の値を超えていないときにはスレーブ４４が物体５２と接触していない状態と判定され、保持指令部４０ｂを作動させないか、または、スレーブ４４が物体と接触している状態から物体と接触していない状態となる場合には、モータ３６の保持力によるマスタ３２の保持を解除するよう保持指令部４０ｂを作動させる。
【００２５】
なお、操作者により操作されるマスタ３２、マスタ３２を制御するためにマスタ３２を駆動し、保持するモータ３６並びにマスタ３２の位置（角度）及びマスタ３２にかかる力（トルク）を検出する位置及び力（角度及びトルク）検出器３４の位置関係については、各要素の機能が発揮されればよく、図示の実施例に限定されるものではない。同様に、操作者によるマスタ３２の操作に応じて動作するスレーブ４４、スレーブ４４を駆動するアクチュエータ４８並びにスレーブ４４の位置（角度）及びスレーブ４４にかかる力（トルク）を検出する位置及び力（角度及びトルク）検出器４６の位置関係については、各要素の機能が発揮されればよく、図示の実施例に限定されるものではない。
【００２６】
また、位置及び力（角度及びトルク）検出器３４で検出される位置ｘ１（角度θ１）、位置及び力（角度及びトルク）検出器３４で検出される力ｆ１（トルクｔ１）、位置及び力（角度及びトルク）検出器４６で検出される位置ｘ３（角度θ３）、または位置及び力（角度及びトルク）検出器４６で検出される力ｆ３（トルクｔ３）は、間接的に検出されるもの、例えば、他のパラメーターを検出し、これを基に位置ｘ１（角度θ１）、力ｆ１（トルクｔ１）、位置ｘ３（角度θ３）または力ｆ３（トルクｔ３）が算出されるものであってもよい。
【００２７】
また、マスタ３２またはスレーブ４４は、１自由度のみを有する構成だけでなく、複数自由度を有する構成であってもよい。
【００２８】
また、スレーブ側のスレーブ４４、アクチュエータ４８または位置及び力（角度及びトルク）検出器４６は、実際の物ではなく、コンピューター上の、すなわち、ディスプレイを通じて見ることができる仮想的な物であってもよい。操作者がマスタ３２を操作して、これに応じてコンピューター上のスレーブ４４が動作し、操作者がコンピューターと対話する手段として映像（視覚）と音（聴覚）のみならず力覚・触覚をコンピューター上のスレーブ４４から受け取るときに本発明が適用され得る。
さらに、マスタ側のマスタ３２、モータ３６または位置及び力（角度及びトルク）検出器３４も、コンピューター上の、すなわち、ディスプレイを通じて見ることができる仮想的な物であってもよい。
【００２９】
＝＝＝マスタスレーブ装置の動作例＝＝＝
次に、上記構成に基づいて、その動作について、図７及び図８を参照しつつ、図１３を用いて以下に説明する。図１３は、本発明に係るマスタスレーブ装置の動作を表すフローチャートである。
【００３０】
操作者がマスタ３２を操作することからこのフローチャートは始まる（ステップＳＴＡＲＴ）。先ず、位置及び力（角度及びトルク）検出器４６によりスレーブ４４にかかる力ｆ３（トルクｔ３）が検出される（ステップＳ１）。
【００３１】
検出された力ｆ３（トルクｔ３）の情報信号は、切換指令部４２に入力される。検出された力ｆ３（トルクｔ３）は切換指令部４２において、所定の値αｆ（αｔ）と比較される、力ｆ３（トルクｔ３）が所定の値αｆ（αｔ）を超えているときには「Ｙ」の方向へ、そうでないときには「Ｎ」の方向へ進む（ステップＳ２）。
【００３２】
ここで、ステップＳ２の意味を説明する。スレーブ４４が物体５２と接触しているときには、スレーブ４４は物体５２から反力を受ける。したがって、スレーブ４４にかかる力ｆ３（トルクｔ３）が所定の値αｆ（αｔ）を超えているときにスレーブ４４が物体５２と接触している状態と判定し、スレーブ４４にかかる力ｆ３（トルクｔ３）が所定の値αｆ（αｔ）以下であるときには、物体５２と接触していない状態と判定する。所定の値αｆ（αｔ）は、マスタスレーブ装置の系の慣性力や摩擦力を考慮して設定する。位置及び力（角度及びトルク）検出器４６により、スレーブ４４にかかる力ｆ３は後述するステップＳ８においても検出されることから、接触の有無を力（トルク）の大きさで判定することにより検出手段を双方で共有化することができる、また、接触を検知するような特別なセンサを用意する必要が無いという長所が生じる。さらに、系の慣性力や摩擦力を考慮した設計が可能となるという長所が生じる。
【００３３】
なお、スレーブ４４が物体５２と接触している状態と判定する方法は、スレーブ４４と物体５２の位置（角度）に着目したものでもよく、接触状態を感知するセンサによるものでもよく、上記の実施例に限定されるものではない。
【００３４】
マスタ３２を操作し始めて暫くは、マスタの操作に応じて動作するスレーブ４４は物体５２と接触していない状態を保つ。したがって、ステップＳ２の判定の結果は「Ｎ」ということとなり、位置（角度）制御部４０ａを作動させ、保持指令部４０ｂを作動させないようモータ制御部４０へ指令を送るとともに、位置（角度）制御部５０ａを作動させ、力（トルク）制御部５０ｂを作動させないようモータ制御部５０へ指令を送る。そして、次のステップＳ３へ進む。
【００３５】
ステップＳ３はマスタの保持を解除する手順であることを意味するが、マスタＳ３は未だ保持されていないのでこのステップはスキップされることとなる。
【００３６】
次に、位置及び力（角度及びトルク）検出器３４によりマスタ３２の位置ｘ１（角度θ１）が、位置及び力（角度及びトルク）検出器４６によりスレーブ４４の位置ｘ３（角度θ３）が検出される（ステップＳ４）。
【００３７】
各々で検出された位置ｘ１（角度θ１）の情報信号と位置ｘ３（角度θ３）の情報信号は双方とも位置（角度）制御部４０ａ及び位置（角度）制御部５０ａに送られる。位置（角度）制御部４０ａは、ｘ３−ｘ１（θ３−θ１）の値に応じて、すなわち、位置ｘ１（角度θ１）が位置ｘ３（角度θ３）に追従するようにモータ３６を制御し、モータ３６によりマスタ３２の位置制御が行われる（ステップＳ５）。
【００３８】
同様に、位置（角度）制御部５０ａは、ｘ１−ｘ３（θ１−θ３）の値に応じて、すなわち、位置ｘ３（角度θ３）が位置ｘ１（角度θ１）に追従するようにアクチュエータ４８を制御し、アクチュエータ４８によりスレーブ４４の位置制御が行われる（ステップＳ６）。
【００３９】
次に、手順はステップＳ１へ戻り、スレーブ４４が物体５２と接触していない状態においては、Ｓ１からＳ６のステップを繰り返すこととなる。
【００４０】
なお、上記動作は、スレーブが物体と接触していない状態での制御方法がバイラテラル制御方式である場合について、すなわち図７のマスタスレーブ装置の全体図に対応して説明したが、前記制御方法がユニラテラル制御方式である場合、すなわち図８のマスタスレーブ装置の全体図に対応している場合については以下のようになる。
【００４１】
ユニラテラル制御方式においては、モータ３６によるマスタ３２の制御は行われないため、検出された位置ｘ１（角度θ１）と位置ｘ３（角度θ３）の情報信号は、図７における位置（角度）制御部４０ａと位置（角度）制御部５０ａのうち、位置（角度）制御部５０ａにのみ入力される。また、ｘ３−ｘ１（θ３−θ１）の値に応じて、すなわち、位置ｘ１（角度θ１）が位置ｘ３（角度θ３）に追従するようにモータ３６を制御する位置（角度）制御部４０ａは存在せず、モータ３６によりマスタ３２の位置制御が行われるステップＳ５はない。
【００４２】
操作者がマスタ３２を操作すると、前記ステップＳ１からＳ６の繰り返しにより、マスタ３２に追従するようにスレーブ４４が動くことになる。マスタ３２とスレーブ４４の位置偏差をゼロにするように、マスタ３２とスレーブ４４双方の位置制御が行われることから、マスタ３２にも操作者の操作方向と逆方向の力（トルク）がかかることとなるが、この力（トルク）の大きさを超える力（トルク）の大きさで操作者がマスタ３２を操作することとなる。このように操作者がマスタ３２を操作することにより、マスタ３２にスレーブ４４が追従する形で上記のように動作するが、暫くすると、スレーブ４４が物体５２と接触する状態が生じる。
【００４３】
図１３のフローチャートに戻ると、力ｆ３（トルクｔ３）が検出された後（ステップＳ１）、この情報信号が切換指令部４２に入力され、力ｆ３（トルクｔ３）が所定の値αｆ（αｔ）と比較される（ステップＳ２）。ここで、スレーブ４４が物体５２と接触している状態、すなわち、スレーブにかかる力ｆ３（トルクｔ３）が所定の値αｆ（αｔ）を超えると判定された場合には、ステップＳ２の判定の結果は「Ｙ」ということとなり、保持指令部４０ｂを作動させ、位置（角度）制御部４０ａを作動させないようモータ制御部４０へ指令を送るとともに、力（トルク）制御部５０ｂを作動させ、位置（角度）制御部５０ａを作動させないようモータ制御部５０へ指令を送る。
【００４４】
そして、保持指令部４０ｂは操作者により操作されるマスタ３２をモータ３６の保持力により保持するようにモータ３６へ指令を送る、すなわち、モータ３６をＯＦＦするように指令を送る（ステップＳ７）。これにより、マスタ３２はモータ３６の保持力により保持される。
【００４５】
次に、位置及び力（角度及びトルク）検出器３４によりマスタ３２にかかる力ｆ１（トルクｔ１）が、位置及び力（角度及びトルク）検出器４６によりスレーブ４４にかかる力ｆ３（トルクｔ３）が検出される（ステップＳ８）。
【００４６】
検出された力ｆ１（トルクｔ１）の情報信号はｆ１/ｆ２（ｔ１/ｔ２）変換部３８に送られ、力ｆ１（トルクｔ１）は、力ｆ１（トルクｔ１）に応じた力ｆ２（トルクｔ２）に変換される（ステップＳ９）。
【００４７】
算出された力ｆ２（トルクｔ２）の情報信号と検出された力ｆ３（トルクｔ３）の情報信号は力（トルク）制御部５０ｂに送られる。力（トルク）制御部５０ｂは、ｆ２−ｆ３（ｔ２−ｔ３）の値に応じて、すなわち、力ｆ３（トルクｔ３）が力ｆ２（トルクｔ２）に追従するようにアクチュエータ４８を制御し、アクチュエータ４８によりスレーブ４４の力制御が行われる（ステップＳ１０）。
【００４８】
次に、手順はステップＳ１へ戻り、スレーブ４４が物体５２と接触している状態においては、Ｓ１→Ｓ２→Ｓ７→Ｓ８→Ｓ９→Ｓ１０のステップを繰り返すこととなる。
【００４９】
なお、本ステップの繰り返しにおいて、操作者によるマスタ３２の操作により、これに応じて動作するスレーブ４４が物体５２と接触していない状態に戻る場合も考えられる。この場合は、次のような手順となる。力ｆ３（トルクｔ３）が検出された後（ステップＳ１）、この情報信号が切換指令部４２に入力され、力ｆ３（トルクｔ３）が所定の値αｆ（αｔ）と比較され、スレーブ４４が物体５２と接触していない状態と判定される（ステップＳ２）。切換指令部４２は、位置（角度）制御部４０ａを作動させ、かつ、モータ３６による保持を解除するため保持指令部４０ｂを作動させるようモータ制御部４０へ指令を送るとともに、位置（角度）制御部５０ａを作動させ、力（トルク）制御部５０ｂを作動させないようモータ制御部５０へ指令を送る。そして、次のステップＳ３へ進むが、この場合は、操作者により操作されるマスタ３２はモータ３６の保持力により保持されている状態なので、保持指令部４０ｂはモータ３６の保持力による保持を解除するようにモータ３６へ指令を送る、すなわち、モータ３６をＯＮするように指令を送る（ステップＳ３）。以降の手順は前述したステップＳ４からステップＳ６の手順と同様である。
【００５０】
このように、本実施の形態は、操作者により操作されるマスタ３２と、操作者によるマスタ３２の操作に応じて動作するスレーブ４４を有するマスタスレーブ装置において、スレーブ４４が物体５２と接触している状態である場合に、本発明の制御方法に切り替えること、すなわち、スレーブ４４にかかる力ｆ３（トルクｔ３）が力ｆ１（トルクｔ１）に応じた力ｆ２（トルクｔ２）へ追従するようスレーブ４４が制御されることにより、前述したユニラテラル制御方式とバイラテラル制御方式の短所の双方を解消したもの、換言すれば、両制御方式の長所を両立したものである。
【００５１】
ユニラテラル制御方式の短所、換言すれば、バイラテラル制御方式の長所として位置づけられるマスタ３２の操作者への力覚・触覚の呈示という点については、操作者によりマスタ３２に加えられる力ｆ１（トルクｔ１）に応じた力ｆ２（トルクｔ２）にスレーブ４４にかかる力ｆ３（トルクｔ３）を追従させるというスレーブ４４の制御により、マスタ３２の操作者に力覚・触覚を呈示できる、すなわち、スレーブ４４が物体５２と接触した際にマスタ３２の操作者が物体５２から受けた反力を力感覚として受け取ることができる。
【００５２】
バイラテラル制御方式の短所、換言すれば、ユニラテラル制御方式の長所として位置づけられる制御系の複雑さ及びこれに関連するコストという点については、操作者によりマスタ３２に加えられる力ｆ１（トルクｔ１）を求め、スレーブ４４にかかる力ｆ３（トルクｔ３）が力ｆ１（トルクｔ１）に応じた力ｆ２（トルクｔ２）へ追従するようスレーブ４４が制御されるという簡易な制御手順により、制御系の簡易化、低コスト化を達成することができ、特に、スレーブ４４が物体５２と接触している状態でもスレーブ４４の状態をフィードバックしてマスタ３２を制御し続けなければならないことに起因する、発振や位相遅れの発生、スレーブ側装置の慣性力や摩擦力の補償の必要性等を考慮した適切な制御系の実現という制御の難しさも回避することができる。
【００５３】
すなわち、本実施の形態は、スレーブ４４が物体５２と接触していない状態では、スレーブ４４の位置をマスタ３２の位置へ追従させることに重点を置き、スレーブ４４が物体と接触している状態では、マスタ３２の操作者に力覚・触覚を呈示することに重点を置いた制御を実現している。
【００５４】
＝＝＝マスタ、スレーブ、検出器、モータ等の構成例（例１）＝＝＝
次に、図７及び図８に示された、マスタ３２、位置及び力（角度及びトルク）検出器３４、モータ３６、スレーブ４４、位置及び力（角度及びトルク）検出器４６及びアクチュエータ４８のより詳細な構成について、図９ないし図１２を用いて説明する。なお、本実施例においては、構成及び動作の理解を容易にするために、回転系を例として説明する。直進系の場合には、角度θを位置ｘに、トルクｔを力ｆに置きかえることにより、同様のことが言えることとなる。
【００５５】
図９は、本発明に係るマスタスレーブ装置の部分構成図であり、図１０はこの部分構成図の概念図である。
【００５６】
図９及び図１０において、マスタ側には、マスタ３２、指挿し部６１、角度センサ５４、軸５６、軸受５８、モータ３６、ひずみゲージ６０を設けている。また、スレーブ側には、スレーブ４４、角度センサ６２、軸６４、軸受６６、アクチュエータ４８、ひずみゲージ６８を設けている。
【００５７】
マスタ側においては、操作者が指を入れてマスタ３２を操作するための指挿し部６１がマスタ３２の端に設けられている。また、マスタ３２は、これとほぼ垂直の位置関係にある軸５６に固着されている。また、軸５６はほぼ水平な状態におかれ、軸受５８により支持されており、その回転軸を中心に、マスタ３２と一体となって回るようになっている。また、マスタ３２の角度を検出するための角度センサ５４が軸５６の先端に接続されている。また、マスタ３２を制御するためにマスタ３２を駆動し、保持するモータ３６が、軸５６の端であって角度センサ５４の反対側に接続されている。また、マスタ３２にかかるトルクによりマスタ３２に発生するひずみを検出し、これに基づいてマスタ３２にかかるトルクを算出するひずみゲージ６０を、マスタ３２の上端部、すなわち、指挿し部６１の上部辺りに設けている。
【００５８】
スレーブ側においては、スレーブ４４は、これとほぼ垂直の位置関係にある軸６４に固着されている。また、軸６４はほぼ水平な状態におかれ、軸受６６により支持されており、その回転軸を中心に、スレーブ４４と一体となって回るようになっている。また、スレーブ４４の角度を検出するための角度センサ６２が軸６４の先端に接続されている。また、スレーブ４４を制御するためにスレーブ４４を駆動するアクチュエータ４８が、軸６４の端であって角度センサ６２の反対側に接続されている。また、スレーブ４４にかかるトルクによりスレーブ４４に発生するひずみを検出し、これに基づいてスレーブ４４にかかるトルクを算出するひずみゲージ６８を、スレーブ４４の上端部に設けている。
【００５９】
図７及び図８のマスタスレーブ装置の全体図によれば、図７の実施例においては角度制御部４０ａへ、図７及び図８の実施例においては角度制御部５０ａへ入力される情報信号である角度θ１及び角度θ３、ｔ１/ｔ２変換部３８へ入力される情報信号であるトルクｔ１、切換指令部４２及びトルク制御部５０ｂへ入力される情報信号であるトルクｔ３を検出する。本実施例においては、角度θ１は角度センサ５４により、角度θ３は角度センサ６２により、トルクｔ１はひずみゲージ６０により、トルクｔ３はひずみゲージ６８により検出される。
【００６０】
＝＝＝マスタ、スレーブ、検出器、モータ等の動作例（例１）＝＝＝
次に、上記構成に基づいて、以下その動作について、図９及び図１０を参照しつつ、図１３を用いて説明する。
操作者がマスタ３２を操作することから図１３のフローチャートは始まる（ステップＳＴＡＲＴ）が、このとき、操作者はマスタ３２を操作するための指挿し部６１に指を挿入して、指を下方へ押し下げ、マスタ３２が下方向へ動くように操作する。マスタ３２は、これとほぼ垂直の位置関係にある軸５６に固着されているので、軸５６は、その回転軸を中心にマスタ３２と一体となって回転する。一方、スレーブ４４は、操作者によるマスタ３２の操作に応じて下方向へ動作する。スレーブ４４は、これとほぼ垂直の位置関係にある軸６４に固着されているので、軸６４は、その回転軸を中心にスレーブ４４と一体となって回転する。
【００６１】
ステップＳ１において、角度・トルク検出器４６によりスレーブ４４にかかるトルクｔ３が検出されるが、これはスレーブ４４の上端部に設けているひずみゲージ６８により、スレーブ４４にかかるトルクによりスレーブ４４に発生するひずみを検出し、これに基づいてスレーブ４４にかかるトルクｔ３が算出される。
【００６２】
また、ステップＳ４において、マスタ３２の角度θ１及びスレーブ４４の角度θ３が検出されるが、前者は、軸５６の先端に接続されている角度センサ５４により、後者は、軸６４の先端に接続されている角度センサ６２により検出される。
【００６３】
また、ステップＳ５において、角度θ１が角度θ３に追従するようにモータ３６が制御され、モータ３６によりマスタ３２の位置制御が行われるが、これは、軸５６の端であって角度センサ５４の反対側に接続されているモータ３６により行われる。
【００６４】
同様に、ステップＳ６において、角度θ３が角度θ１に追従するようにアクチュエータ４８が制御され、アクチュエータ４８によりスレーブ４４の位置制御が行われるが、これは、軸６４の端であって角度センサ６２の反対側に接続されているアクチュエータ４８により行われる。
【００６５】
このようにマスタ３２が下方向へ動くように操作者がマスタ３２を操作することにより、マスタ３２にスレーブ４４が追従する形でスレーブ４４は下方向へ動作するが、暫くすると、スレーブ４４が物体５２と接触する状態が生じる。
【００６６】
このときに、ステップＳ７において、操作者により操作されるマスタ３２をモータ３６の保持力により保持するようにモータ３６へ指令が送られ、マスタ３２は軸５６の端であって角度センサ５４の反対側に接続されているモータ３６の保持力により保持される。
【００６７】
また、ステップＳ８において、マスタ３２のトルクｔ１及びスレーブ４４のトルクｔ３が検出されるが、前者は、マスタ３２の上端部、すなわち、指挿し部６１の上部辺りに設けているひずみゲージ６０により、マスタ３２にかかるトルクによりマスタ３２に発生するひずみを検出し、これに基づいて算出され、後者はスレーブ４４の上端部に設けているひずみゲージ６８により、スレーブ４４にかかるトルクによりスレーブ４４に発生するひずみを検出し、これに基づいて算出される。
【００６８】
また、ステップＳ１０において、トルクｔ３がトルクｔ２に追従するようにアクチュエータ４８が制御され、アクチュエータ４８によりスレーブ４４の力制御が行われるが、これは、軸６４の端であって角度センサ６２の反対側に接続されているアクチュエータ４８により行われる。
【００６９】
上記の通り本実施例におけるマスタスレーブ装置は、スレーブ４４が物体５２と接触している状態では、操作者により操作されるマスタ３２をモータ３６の保持力により、保持することを特徴としている。このことにより、マスタ側装置に設けられたモータ３６の保持力によりマスタ３２が保持され、マスタ３２、スレーブ４４間で類似の動作状態、すなわち、マスタ３２及びスレーブ４４の双方がほぼ停止している状態を作り出し、力覚・触覚のマスタ操作者への呈示に加えて、視覚による感覚をマスタ操作者へ呈示することが可能となる。換言すると、操作者がマスタ３２を操作すると、これに追従するようにスレーブ４４が動くことになるが、暫くすると、スレーブ４４が物体５２と接触する状態が生じる。この状態ではスレーブ４４は、ほぼ停止することになるが、マスタ３２は、何もしなければ、操作者の操作により更に動き続き得る。そこで、マスタ３２をモータ３６の保持力により保持することにより、マスタ３２、スレーブ４４間で類似の動作状態を作りだし、操作者が、マスタ３２を見ることにより、スレーブ４４の動きをイメージすることができるようにしたものである。
【００７０】
なお、上記効果を考慮しなければ、マスタ３２をモータ３６の保持力により保持する必要は必ずしもなく、上記実施例に限定されるものではない。
【００７１】
＝＝＝マスタ、スレーブ、検出器、モータ等の構成例（例２）＝＝＝
図１１は、他の実施例として、本発明に係るマスタスレーブ装置の部分構成を、図１２はこの部分構成図の概念を表した図である。
図１１及び図１２において、マスタ側には、マスタ３２、指挿し部６１、角度センサ５４、軸５６、軸受５８、モータ３６とともに、ねじりばね７０を設けている。また、スレーブ側には、スレーブ４４、角度センサ６２、軸６４、軸受６６、アクチュエータ４８とともに、ねじりばね７２と角度センサ７４を設けている。
【００７２】
マスタ側において、操作者が指を入れてマスタ３２を操作するための指挿し部６１がマスタ３２の端に設けられている点、マスタ３２が、これとほぼ垂直の位置関係にある軸５６に固着されている点、軸５６がほぼ水平な状態におかれ、軸受５８により支持されており、その回転軸を中心に、マスタ３２と一体となって回るようになっている点、マスタ３２の角度を検出するための角度センサ５４が軸５６の先端に接続されている点及びマスタ３２を制御するためにマスタ３２を駆動し、保持するモータ３６が、軸５６の端であって角度センサ５４の反対側に接続されている点については、前記実施例と変わりはない。マスタ３２とモータ３６間においてねじりばね７０を軸５６上に設けている点及びひずみゲージを設けていない点で、前記実施例と異なる。
【００７３】
スレーブ側において、スレーブ４４が、これとほぼ垂直の位置関係にある軸６４に固着されている点、軸６４がほぼ水平な状態におかれ、軸受６６により支持されており、その回転軸を中心に、スレーブ４４と一体となって回るようになっている点、スレーブ４４の角度を検出するための角度センサ６２が軸６４の先端に接続されている点及びスレーブ４４を制御するためにスレーブ４４を駆動するアクチュエータ４８が、軸６４の端であって角度センサ６２の反対側に接続されている点については、前記実施例と変わりはない。スレーブ４４とアクチュエータ４８間においてねじりばね７２を軸６４上に設けている点、アクチュエータ４８の角度を検出するための角度センサ７４をアクチュエータ４８に設けている点及びひずみゲージを設けていない点で、前記実施例と異なる。
【００７４】
図７及び図８のマスタスレーブ装置の全体図によれば、角度θ１、角度θ３、トルクｔ１及びトルクｔ３を検出するようになっている。角度θ１は角度センサ５４により、角度θ３は角度センサ６２により検出されることは前記実施例と変わりはない。詳細は後述するが、トルクｔ１は、角度センサ５４によりねじりばね７０の伸縮量を検出することにより、トルクｔ３は、角度センサ６２及び角度センサ７４によりねじりばね７２の伸縮量を検出することにより算出される。
【００７５】
＝＝＝マスタ、スレーブ、検出器、モータ等の動作例（例２）＝＝＝
次に、上記構成に基づいて、以下その動作について、図１１ないし図１３を参照しつつ、図１４を用いて説明する。図１４は、本発明に係るマスタスレーブ装置の動作を表すフローチャートであって、図１１及び図１２の実施例に対応したものである。図１３のフローチャートと共通するフローについては、点線で示してある。
【００７６】
操作者がマスタ３２を操作することから図１４のフローチャートは始まり（ステップＳＴＡＲＴ）、操作者は指挿し部６１に挿入した指を下方へ押し下げマスタ３２が下方向へ動くように操作し、軸５６はその回転軸を中心にマスタ３２と一体となって回転し、一方、スレーブ４４は操作者によるマスタ３２の操作に応じて下方向へ動作し、軸６４はその回転軸を中心にスレーブ４４と一体となって回転する点については図９及び図１０に対応する前記実施例と同様である。
【００７７】
図１３のステップＳ１において、角度・トルク検出器４６によりスレーブ４４にかかるトルクｔ３が検出されるが、図９及び図１０に対応する前記実施例では、ひずみゲージ６８によりスレーブ４４に発生するひずみを検出し、これに基づいてトルクｔ３を算出していた。これに対し、本実施例においては、軸６４の先端に接続されている角度センサ６２によりスレーブ４４の角度θ３を、アクチュエータ４８に設けられている角度センサ７４によりアクチュエータ４８の角度θ２を各々検出することにより、すなわち、スレーブ４４とアクチュエータ４８間に設けられたねじりばね７２の伸縮量を検出することにより、トルクｔ３を算出する（ステップＳ１２及びＳ１３）。トルクｔ３＝ｋｒ（θ２-θ３）となる（ｋｒ：ねじりばね係数）。
【００７８】
また、ステップＳ４において、マスタ３２の角度θ１及びスレーブ４４の角度θ３が検出されるが、前者は、軸５６の先端に接続されている角度センサ５４により、後者は、軸６４の先端に接続されている角度センサ６２により検出される点については図９、図１０に対応する前記実施例と同様である。
【００７９】
また、ステップＳ５において、角度θ１が角度θ３に追従するようにモータ３６が制御され、モータ３６によりマスタ３２の位置制御が行われるが、これは、軸５６の端であって角度センサ５４の反対側に接続されているモータ３６により行われる点、ステップＳ６において、角度θ３が角度θ１に追従するようにアクチュエータ４８が制御され、アクチュエータ４８によりスレーブ４４の位置制御が行われるが、これは、軸６４の端であって角度センサ６２の反対側に接続されているアクチュエータ４８により行われる点についても図９及び図１０に対応する前記実施例と同様である。
【００８０】
また、スレーブ４４が物体５２と接触する状態であるときに、ステップＳ７において、操作者により操作されるマスタ３２をモータ３６の保持力により保持するようにモータ３６へ指令が送られ、マスタ３２は軸５６の端であって角度センサ５４の反対側に接続されているモータ３６の保持力により保持される点についても図９及び図１０に対応する前記実施例と同様である。
【００８１】
また、図１３のステップＳ８において、マスタ３２のトルクｔ１及びスレーブ４４のトルクｔ３が検出されるが、図９、図１０に対応する前記実施例では、前者は、ひずみゲージ６０によりマスタ３２に発生するひずみを検出し、これに基づいてトルクｔ１を算出し、後者は、ひずみゲージ６８によりスレーブ４４に発生するひずみを検出し、これに基づいてトルクｔ３を算出していた。これに対し、本実施例においては、以下のようになる。
【００８２】
前者については、マスタ３２がモータ３６の保持力により保持された直後の軸５６の先端に接続されている角度センサ５４により検出されるマスタ３２の角度θ１を格納領域θ１０にセットしておき、その後角度センサ５４により検出されるマスタ３２の角度θ１との差を算出することによりトルクｔ１を検出する。すなわち、マスタ３２とモータ３６間に設けられたねじりばね７０の伸縮量を検出することにより、トルクｔ１を算出することとなる。トルクｔ１＝ｋｒ（θ１-θ１０）となる（ｋｒ：ねじりばね係数）。
【００８３】
後者については、前記ステップＳ１２及びＳ１３と同様であり、軸６４の先端に接続されている角度センサ６２によりスレーブ４４の角度θ３を、アクチュエータ４８に設けられている角度センサ７４によりアクチュエータ４８の角度θ２を各々検出することにより、すなわち、スレーブ４４とアクチュエータ４８間に設けられたねじりばね７２の伸縮量を検出することにより、トルクｔ３を算出する。トルクｔ３＝ｋｒ（θ２-θ３）となる（ｋｒ：ねじりばね係数）。
【００８４】
上記のトルクｔ１及びトルクｔ３の検出手段につき、その手順を説明すると以下の通りとなる。先ず、カウンタを用意し、ＳＴＡＲＴ時にリセット、すなわち、値をゼロにしておく（ステップＳ１１）。ステップＳ２において、スレーブが物体と接触している状態と判定されたら、カウンタに１を加算する。（ステップＳ１５）。次に、軸５６の先端に接続されている角度センサ５４によりマスタ３２の角度θ１を、アクチュエータ４８に設けられている角度センサ７４によりアクチュエータ４８の角度θ２を、軸６４の先端に接続されている角度センサ６２によりスレーブ４４の角度θ３を各々検出する（ステップＳ１６）。次に、カウンタの値が１であるか否かにより、手順を変更する（ステップＳ１７）。カウンタの値が１である場合には、マスタ３２の角度θ１を角度θ１０の領域に格納し（ステップＳ１８）、トルクｔ１に０をセットし、トルクｔ３を式ｔ３＝ｋｒ（θ２-θ３）によって算出する（ステップＳ１９）。カウンタの値が１でない場合には、すなわち、２以上である場合には、トルクｔ１を式ｔ１＝ｋｒ（θ１-θ１０）により、トルクｔ３を式ｔ３＝ｋｒ（θ２-θ３）によって算出する（ステップＳ２０）。また、スレーブが物体と接触している状態から、物体と接触していない状態となり、再度物体と接触している状態となることもあることから、マスタ３２の保持解除後には、カウンタをリセットすることとする（ステップＳ１４）。
【００８５】
また、ステップＳ１０において、トルクｔ３がトルクｔ２に追従するようにアクチュエータ４８が制御され、アクチュエータ４８によりスレーブ４４の力制御が行われるが、これは、軸６４の端であって角度センサ６２の反対側に接続されているアクチュエータ４８により行われる点については、図９及び図１０に対応する前記実施例と同様である。
【００８６】
上記の通り本実施例におけるマスタスレーブ装置は、スレーブ４４が物体５２と接触している状態では、マスタ３２がマスタ３２に接続されているモータ３６の保持力により保持され、操作者の操作によりマスタ３２に加えられる力により伸縮するねじりばね７０の伸縮量を検出することにより操作者の操作によりマスタ３２に加えられるトルクｔ１を求めることを特徴としている。このことにより、スレーブ４４が物体５２と接触している状態で、マスタ３２がモータ３６の保持力により保持される状態を作り出せば、ねじりばね７０の伸縮量を検出することにより操作者の操作によりマスタ３２に加えられるトルクｔ１を最も簡易に求めることができる。また、角度、または、トルクのいずれにしても角度センサを用いて値を求めることができ、マスタスレーブ装置の検出機構として、ひずみゲージは必要無く、角度センサで構成することができるという長所がある。なお、マスタ側装置に設けられたモータ３６の保持力によりマスタ３２が保持され、マスタ３２、スレーブ４４間で類似の動作状態、すなわち、マスタ３２及びスレーブ４４の双方がほぼ停止している状態を作り出し、力覚・触覚のマスタ操作者への呈示に加えて、視覚による感覚をマスタ操作者へ呈示することが可能となるという図９及び図１０に対応する前記実施例のような効果を本実施例において完全には得ることができないが、ねじりばね定数ｋｒの値を大きくすることにより類似の効果を得ることが可能となる。
【００８７】
なお、ねじりばね７０及びねじりばね７２は、弾性要素であれば、例えば、コイルばね、トルクばね、または様々な形状の板ばねや切り欠きを有する金属等でもよい。また、マスタ３２、軸５６、モータ３６、スレーブ４４、軸６４またはアクチュエータ４８自体が弾性要素を含んでいる場合であってもよい。
【００８８】
また、角度センサ７４は必ずしもアクチュエータ４８に設けられている必要はなく、ねじりばね７２を挟んで角度センサ６２と角度センサ７４が設けられていればよい。
【００８９】
また、トルクｔ１の検出に関しては、マスタ３２がモータ３６の保持力により保持された直後の角度センサ５４により検出されるマスタ３２の角度θ１を格納領域θ１０にセットしておき、その後角度センサ５４により検出されるマスタ３２の角度θ１との差を算出することにより検出したが、スレーブ側と同様に、ねじりばね７０を挟んでもう一つ図示しない角度センサを設け、角度センサ５４と図示しない角度センサにより検出された各々の角度の角度差からトルクｔ１を算出してもよい。さらに、この場合は、マスタ３２をモータ３６の保持力により保持する必要は必ずしもなく、上記実施例に限定されるものではない。
【００９０】
＝＝＝モータ３６のバリエーション等＝＝＝
次に、図９ないし図１２に対応した前記２つの実施例において示されたマスタ側のモータ３６に関してより詳細に検討を加える。
【００９１】
図８のマスタスレーブ装置の全体図に示されるように、スレーブ４４が物体５２と接触していない状態での制御方法がユニラテラル制御方式である場合には、モータ制御部４０は角度θ１が角度θ３に追従するようにモータ３６を制御する角度制御部４０ａを有しないことは既述の通りであり、モータ３６によりマスタ３２の位置制御は行われないため、モータ３６は必ずしも駆動する機能を有している必要はない。したがって、一つの例として、モータ３６に代えてクラッチとすることができる。クラッチは保持力が高いためマスタスレーブ装置を構成するうえで、本特長を生かすことができ、さらに、低コスト化を実現できるという長所がある。
【００９２】
逆に、スレーブ４４が物体５２と接触していない状態での制御方法がバイラテラル制御方式である場合には、モータ３６は駆動する機能を有している必要がある。一つの例として、モータ３６を超音波モータとすると、マスタスレーブ装置を構成するうえで、超音波モータの保持力の高さという特長を生かすことができるという長所が生じる。さらに、超音波モータが進行波型である場合には、超音波モータに定在波を発生させると保持トルクが極めて小さくなるという特徴を利用することにより、スレーブ４４が物体５２と接触していない状態における制御方式を、ハードウエアを変更することなく、バイラテラル制御方式とすることのみならず、ユニラテラル制御方式とすることもできるという長所が生じる。
【００９３】
なお、図９ないし図１２に対応した前記２つの実施例におけるマスタスレーブ装置の角度またはトルクの検出手段及び構成については、角度については角度センサにより、トルクについてはひずみゲージによるひずみ検出または弾性要素の伸縮量検出によるものであったが、角度もしくはトルクの検出、または検出される他のパラメーターを基にした角度もしくはトルクの算出ができれば、本実施例に限定されるものではない。
【００９４】
また、上述したマスタスレーブ装置制御方法のコンピュータープログラムがコンピューターシステムにおいて実行され得る。
【００９５】
【発明の効果】
本発明は、スレーブが物体と接触している状態である場合に、本発明の制御方法に切り替えることにより、前述したユニラテラル制御方式とバイラテラル制御方式の短所の双方を解消したもの、換言すれば、両制御方式の長所を両立したものである。
【００９６】
ユニラテラル制御方式の短所、換言すれば、バイラテラル制御方式の長所として位置づけられるマスタ操作者への力覚・触覚の呈示という点については、操作者によりマスタに加えられる力ｆ１に応じた力ｆ２にスレーブにかかる力ｆ３を追従させるというスレーブの制御により、マスタの操作者に力覚・触覚を呈示できる、すなわち、スレーブが物体と接触した際にマスタの操作者が対象物から受けた反力を力感覚として受け取ることができるという効果を得る。
【００９７】
バイラテラル制御方式の短所、換言すれば、ユニラテラル制御方式の長所として位置づけられる制御系の複雑さ及びこれに関連するコストという点については、操作者によりマスタに加えられる力ｆ１を求め、スレーブにかかる力ｆ３が力ｆ１に応じた力ｆ２へ追従するようスレーブが制御されるという簡易な制御手順により、制御系の簡易化、低コスト化を達成することができ、特に、スレーブが物体と接触している状態でもスレーブの状態をフィードバックしてマスタを制御し続けなければならないことに起因する、発振や位相遅れの発生、スレーブ側装置の慣性力や摩擦力の補償の必要性等を考慮した適切な制御系の実現という制御の難しさも回避することができるという効果がある。
【００９８】
また、スレーブにかかる力ｆ３を求め、この値が所定の値を超えているときに、スレーブが物体と接触している状態と判定することにより、スレーブが物体と接触している状態を判定する手段を力ｆ３が検出される他の手段と共有することが可能となり、また、系の慣性力や摩擦力を考慮した設計が可能となる。
【００９９】
また、スレーブが物体と接触している状態では、マスタ側装置に設けられたモータの保持力によりマスタを保持することにより、マスタ、スレーブ間で類似の動作状態、すなわち、マスタ及びスレーブの双方がほぼ停止している状態を作り出し、力覚・触覚のマスタ操作者への呈示に加えて、視覚による感覚をマスタ操作者へ呈示することが可能となる。
【０１００】
また、スレーブが物体と接触している状態で、マスタがモータの保持力により保持される状態を作り出せば、弾性要素の伸縮量を検出することにより操作者の操作によりマスタに加えられる力ｆ１を最も簡易に求めることができる。
【０１０１】
また、前記のモータを超音波モータとすることにより、マスタスレーブ装置を構成するうえで、超音波モータの保持力の高さという特長を生かすことができる。
【０１０２】
また、前記のモータに代えてクラッチとすることにより、マスタスレーブ装置を構成するうえで、クラッチの保持力の高さという特長を生かすことができる。
【０１０３】
また、上記本発明に係るマスタスレーブ装置制御方法をコンピューターシステムにおいて実行するためのコンピュータープログラムによりマスタスレーブ装置を制御することにより、上記本発明に係る効果を得ることができる。
【０１０４】
また、上記効果は、位置ｘを角度θ、力ｆをトルクｔとした場合、すなわち、直進系だけでなく回転系の場合でもなお維持される。
【図面の簡単な説明】
【図１】ユニラテラル制御方式のブロック図である。
【図２】バイラテラル制御方式のブロック図である。
【図３】ユニラテラル制御方式の制御系を表した図である。
【図４】バイラテラル制御方式の制御系のうち対称形を表した図である。
【図５】バイラテラル制御方式の制御系のうち力逆送形を表した図である。
【図６】バイラテラル制御方式の制御系のうち力帰還形を表した図である。
【図７】本発明に係るマスタスレーブ装置の全体図である。
【図８】本発明に係るマスタスレーブ装置の全体図である。
【図９】本発明に係るマスタスレーブ装置の部分構成図である。
【図１０】図９の部分構成図の概念図である。
【図１１】本発明に係るマスタスレーブ装置の部分構成図である。
【図１２】図１１の部分構成図の概念図である。
【図１３】本発明に係るマスタスレーブ装置の動作を表すフローチャートである。
【図１４】本発明に係るマスタスレーブ装置の動作を表すフローチャートである。
【符号の説明】
２     操作者
４     操作端
６     作業用装置
８     作業対象物または作業環境
１０   作業反力等の作業情報
１２   作業情報の操作者へのフィードバック
１４   視覚による位置情報フィードバック
１６   マスタ
１８   スレーブ
２０   位置調節器
２２   位置調節器
２４   位置調節器
２６   力伝達器
２８   力調節器
３２   マスタ
３４   位置及び力（角度及びトルク）検出器
３６   モータ
３８   ｆ１/ｆ２（ｔ１/ｔ２）変換部
４０   モータ制御部
４０ａ 位置（角度）制御部
４０ｂ 保持指令部
４２   切換指令部
４４   スレーブ
４６   位置及び力（角度及びトルク）検出器
４８   アクチュエータ
５０   アクチュエータ制御部
５０ａ 位置（角度）制御部
５０ｂ 力（トルク）制御部
５２   物体
５４   角度センサ
５６   軸
５８   軸受
６０   ひずみゲージ
６１   指挿し部
６２   角度センサ
６４   軸
６６   軸受
６８   ひずみゲージ
７０   ねじりばね
７２   ねじりばね
７４   角度センサ
【図１】
0004613330.tif 000002
【図２】
0004613330.tif 000003
【図３】
0004613330.tif 000004
【図４】
0004613330.tif 000005
【図５】
0004613330.tif 000006
【図６】
0004613330.tif 000007
【図７】
0004613330.tif 000008
【図８】
0004613330.tif 000009
【図９】
0004613330.tif 000010
【図１０】
0004613330.tif 000011
【図１１】
0004613330.tif 000012
【図１２】
0004613330.tif 000013
【図１３】
0004613330.tif 000014
【図１４】
0004613330.tif 000015