(57)【要約】      （修正有）【課題】マスタアームを介して受けるオペレータの操作感を改善した遠隔操作ロボットシステムを提供する。【解決手段】遠隔操作ロボットシステムは、所定の作業を行うスレーブアームと、関節を駆動するモータを有し、スレーブアームを動作させるための操作をオペレータから受け付けるマスタアームと、マスタアームに、スレーブアームが外部から受けた力とは独立した仮想の外力を所定方向に加える指令を生成する指令生成部と、指令生成部から送られた指令に対応した駆動電流をモータに与えるモータ制御部と、を備える。【選択図】図２
2018192596.tif 000002
【特許請求の範囲】
【請求項１】
所定の作業を行うスレーブアームと、
関節を駆動するモータを有し、前記スレーブアームを動作させるための操作をオペレータから受け付けるマスタアームと、
前記マスタアームに、前記スレーブアームが外部から受けた力とは独立した仮想の外力を所定方向に加える指令を生成する指令生成部と、
前記指令生成部から送られた指令に対応した駆動電流を前記モータに与えるモータ制御部と、を備える、遠隔操作ロボットシステム。
【請求項２】
前記仮想の外力の大きさ及び方向を規定するための設定値の入力を受け付ける設定値入力部と、
前記設定値入力部から入力された前記設定値を記憶する設定値記憶部と、を更に備え、
前記指令生成部は、前記設定値記憶部に記憶された前記設定値に基づき前記指令を生成する、請求項１に記載の遠隔操作ロボットシステム。
【請求項３】
前記スレーブアームの先端に設けられた、ワークを保持する保持ハンドと、
前記保持ハンドに保持されたワークの重力を補償する重力補償部と、を更に備え、
前記指令生成部は、前記保持ハンドにワークが保持されている場合に、前記マスタアームに、前記保持ハンドに保持されたワークの重力とは独立した仮想の外力を重力方向に加える指令を生成する、請求項１又は２に記載の遠隔操作ロボットシステム。
【請求項４】
前記マスタアームの先端に設けられた、前記オペレータが把持可能な把持部と、
前記把持部が把持されているか否かを検知する把持センサと、を更に備え、
前記指令生成部は、
前記把持センサが把持されていると検知した場合、前記仮想の外力を前記マスタアームに加える指令を生成し、
前記把持センサが把持されていないと検知した場合、前記仮想の外力を前記マスタアームに加えない指令を生成する、請求項１〜３のいずれか１項に記載の遠隔操作ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタアーム及びスレーブアームを備えた遠隔操作ロボットシステムに関する。
【背景技術】
【０００２】
従来、オペレータにより操作されるマスタアームと、マスタアームに対する操作に応じて動作するスレーブアームとを備えた遠隔操作ロボットシステムが知られている。オペレータは、マスタアームを操作することにより、スレーブアームに機器の組立やメンテナンスなどの作業を行わせる。このような遠隔操作ロボットシステムには、例えばスレーブアームが保持した物体の重力や、スレーブアーム又はそれが保持した物体が他の物体に接触することにより受ける反力（接触力）などを、マスタアームを介してオペレータに感知させるものがある。特許文献１には、この種の技術が開示されている。
【０００３】
この種の遠隔操作ロボットシステムでは、例えばスレーブアームが保持した物体の重量が大きい場合、オペレータはその重量を感知しながらマスタアームを操作することになるため、オペレータに負担となり得る。特許文献１に開示されたシステムでは、マスタアームを操作するオペレータにスレーブアームに作用する反力のみ感知させるか、反力と物体の重力とを合わせて感知させるかをスイッチで切り替えることができるように構成されている。具体的には、特許文献１に開示されたシステムでは、設定時点でスレーブアームが保持した物体の重量を演算する。そして、スレーブアームに作用する反力のみオペレータに感知させる場合には、設定時点以外の期間において、スレーブアームが受ける力から物体の重力に対応する力を減算して得られる駆動信号に基づき、マスタアームを駆動している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特公平８−２９５０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示されたシステムのように、スレーブアームが保持した物体の重力等の所定の外力を完全にキャンセルしてしまうと、オペレータが想定した感覚と、マスタアームを介して受ける感覚との間にずれが生じ得る。このような操作感覚のずれは、作業性に悪影響を与える可能性がある。
【０００６】
そこで、本発明は、マスタアームを介して受けるオペレータの操作感を改善した遠隔操作ロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る遠隔操作ロボットシステムは、所定の作業を行うスレーブアームと、関節を駆動するモータを有し、前記スレーブアームを動作させるための操作をオペレータから受け付けるマスタアームと、前記マスタアームに、前記スレーブアームが外部から受けた力とは独立した仮想の外力を所定方向に加える指令を生成する指令生成部と、前記指令生成部から送られた指令に対応した駆動電流を前記モータに与えるモータ制御部と、を備える。
【０００８】
上記の構成によれば、マスタアームを介してオペレータには、スレーブアームが外部から受けた力とは独立した、所定方向に作用する仮想の外力が提示される。このため、例えばマスタアームに、オペレータが力を受けると想定した方向に、負担にならない程度の外力を作用させれば、オペレータが想定した感覚と、マスタアームを介して受ける感覚との間のずれを低減することができる。これにより、マスタアームを介して受けるオペレータの操作感を改善することができる。
【０００９】
上記の遠隔操作ロボットシステムは、前記仮想の外力の大きさ及び方向を規定するための設定値の入力を受け付ける設定値入力部と、前記設定値入力部から入力された前記設定値を記憶する設定値記憶部と、を更に備え、前記指令生成部は、前記設定値記憶部に記憶された前記設定値に基づき前記指令を生成してもよい。この構成によれば、設定値入力部から仮想の外力の大きさや方向を設定することができるため、マスタアームに加えられる仮想の外力をオペレータにとって操作しやすい大きさ及び方向に適宜調整することができる。
【００１０】
例えば、上記の遠隔操作ロボットシステムは、前記スレーブアームの先端に設けられた、ワークを保持する保持ハンドと、前記保持ハンドに保持されたワークの重力を補償する重力補償部と、を更に備え、前記指令生成部は、前記保持ハンドにワークが保持されている場合に、前記マスタアームに、前記保持ハンドに保持されたワークの重力とは独立した仮想の外力を重力方向に加える指令を生成してもよい。この構成によれば、重力補償部により、スレーブアームが保持ハンドにより保持した物体の重力はマスタアームには反映させず、マスタアームに、重力方向に作用する負担にならない程度の仮想の外力を作用させることができる。これにより、マスタアームの操作負担を軽減でき、且つ、オペレータに物体を保持した感覚を提示できる。
【００１１】
上記の遠隔操作ロボットシステムは、前記マスタアームの先端に設けられた、前記オペレータが把持可能な把持部と、前記把持部が把持されているか否かを検知する把持センサと、を更に備え、前記指令生成部は、前記把持センサが把持されていると検知した場合、前記仮想の外力を前記マスタアームに加える指令を生成し、前記把持センサが把持されていないと検知した場合、前記仮想の外力を前記マスタアームに加えない指令を生成してもよい。この構成によれば、オペレータが把持部を把持している間だけ、前記マスタアームの先端に所定方向に仮想の外力が作用し、オペレータが把持部を離した場合には、仮想の外力は作用しなくなる。このため、オペレータが把持部を離したときに、仮想の外力によりマスタアームが動作することが防がれる。
【発明の効果】
【００１２】
本発明の遠隔操作ロボットシステムによれば、マスタアームを介して受けるオペレータの操作感を改善することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る遠隔操作ロボットシステムの概略構成図である。
【図２】図１に示す指令生成部による指令生成の概要を示す制御ブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図面を参照しながら説明する。
【００１５】
〔遠隔操作ロボットシステム１００〕
図１は遠隔操作ロボットシステム１００の概略構成図である。図１に示すように、遠隔操作ロボットシステム１００は、マスタ・スレーブ方式のロボットシステムであって、スレーブアーム１と、マスタアーム２とを備えている。また、遠隔操作ロボットシステム１００は、入力装置４と、出力装置５と、状況取得装置６と、記憶装置７と、システム１００を包括的に制御する制御ユニット８とを備えている。
【００１６】
遠隔操作ロボットシステム１００では、オペレータがマスタアーム２を操作することにより、マスタアーム２から離れた場所にあるスレーブアーム１がマスタアーム２の動きに追従し所定の作業を行う。本実施形態では、遠隔操作ロボットシステム１００として、自動車組立ラインに構築され、自動車のボディにシートを取り付ける作業を行うシステムが例示される。
【００１７】
具体的には、図１に示すように、シート（以下、組付物）Ｗ１は、スレーブアーム１により保持され動かされる対象（ワーク）であり、組付物Ｗ１の底部に、穴ｈが設けられている。また、図１にその一部が示される自動車のボディ（以下、被組付物）Ｗ２は、支持台（図示略）に支持されており、被組付物Ｗ２の所定の箇所には上方に突き出たピンｐが設けられている。オペレータは、マスタアーム２を操作することにより、スレーブアーム１を動作させ、破線で示すように、組付物Ｗ１の穴ｈに被組付物Ｗ２のピンｐが挿通するように組付物Ｗ１を下方に移動させ、被組付物Ｗ２の上に組み付ける。
【００１８】
また、本実施形態の遠隔操作ロボットシステム１００は、オペレータがマスタアーム２を介してスレーブアーム１を動作させる制御モード（以下、手動モード）と、予め設定されたタスクプログラムに従ってスレーブアーム１を動作させる制御モード（以下、自動モード）とが切り替えられるように構成されている。
【００１９】
以下、遠隔操作ロボットシステム１００の各構成要素について詳細に説明する。
【００２０】
〔スレーブアーム１〕
スレーブアーム１は、複数のリンク１１ａ〜１１ｆの連接体と、これを支持する基台１５とから構成された、複数の関節ＪＴ１〜ＪＴ６を有する多関節ロボットアームである。より詳しくは、第１関節ＪＴ１では、基台１５と、第１リンク１１ａの基端部とが、鉛直方向に延びる軸回りに回転可能に連結されている。第２関節ＪＴ２では、第１リンク１１ａの先端部と、第２リンク１１ｂの基端部とが、水平方向に延びる軸回りに回転可能に連結されている。第３関節ＪＴ３では、第２リンク１１ｂの先端部と、第３リンク１１ｃの基端部とが、水平方向に延びる軸回りに回転可能に連結されている。第４関節ＪＴ４では、第３リンク１１ｃの先端部と、第４リンク１１ｄの基端部とが、第４リンク１１ｄの長手方向に延びる軸回りに回転可能に連結されている。第５関節ＪＴ５では、第４リンク１１ｄの先端部と、第５リンク１１ｅの基端部とが、第４リンク１１ｄの長手方向と直交する軸回りに回転可能に連結されている。第６関節ＪＴ６では、第５リンク１１ｅの先端部と第６リンク１１ｆの基端部とが、捻れ回転可能に連結されている。
【００２１】
そして、第６リンク１１ｆの先端部には、作業内容に対応したエンドエフェクタが着脱可能に装着される。本実施形態では、エンドエフェクタは、組付物Ｗ１を保持する保持ハンド１２である。
【００２２】
スレーブアーム１の各関節ＪＴ１〜ＪＴ６には、それが連結する２つの部材を相対的に回転させるアクチュエータの一例としての駆動モータ（図示略）が設けられている。これら駆動モータは、例えば、モータ制御部１６によってサーボ制御されるサーボモータである。本実施形態に係るモータ制御部１６は、１台で複数の駆動モータをサーボ制御できるものであるが、各駆動モータに対応するモータ制御部が設けられていてもよい。また、各駆動モータには、その回転位置を検出するための位置センサ（図示略）と、その回転を制御する電流を検出するための電流センサ（図示略）とが設けられている。位置センサは、例えば、エンコーダである。駆動モータ、位置センサ、及び電流センサは、モータ制御部１６と電気的に接続されている。
【００２３】
モータ制御部１６は、制御ユニット８（より詳細には、後述する指令生成部８３）より取得した指令値に基づいてトルク指令値（電流指令値）を生成し、トルク指令値に対応した駆動電流を、各関節ＪＴ１〜ＪＴ６の駆動モータへ供給する。駆動モータの出力回転角は位置センサによって検出され、モータ制御部１６へフィードバックされる。但し、モータ制御部１６と制御ユニット８の機能が、単一の回路または単一の演算装置として実現されてもよい。
【００２４】
また、スレーブアーム１は、外部から受ける力を検出する力センサ１７を有する。本実施形態において、力センサ１７は、スレーブアーム１が他の物体（例えば被組付物Ｗ２）に接触することによってスレーブアーム１に加えられる力（以下、「接触力」と称する。）fsの大きさ及び方向を取得するためのものである。本実施形態では、接触力fsは、保持ハンド１２又はそれに保持された組付物Ｗ１が被組付物Ｗ２に接触する場合にスレーブアーム１に加えられる反力である。力センサ１７は、互いに直交する３つの軸方向に作用する分力の検出が可能な３軸力覚センサで構成される。
【００２５】
本実施形態では、力センサ１７は、第６リンク１１ｆの先端部と保持ハンド１２とを接続するように設けられている。このため、力センサ１７により検出された力情報には、保持ハンド１２の重力やそれに保持された組付物Ｗ１の重力も含まれる。力センサ１７により検出された力情報は、制御ユニット８に送られる。制御ユニット８では、後述する重力補償部８２によって、力センサ１７が検出した外力から上述した重力分が除かれて接触力fsが取得される。即ち、本実施形態では、力センサ１７と後述の重力補償部８２とにより、接触力fsを取得する接触力取得部１８（図２参照）が構成される。
【００２６】
但し、接触力取得部１８は、力センサ１７と重力補償部８２とにより取得するものに限定されず、例えばスレーブアーム１の駆動モータの駆動電流を利用して接触力fsを取得してもよい。
【００２７】
〔マスタアーム２〕
マスタアーム２は、オペレータの操作を受け付ける手段である。本実施形態に係る遠隔操作ロボットシステム１００では、スレーブアーム１の手先部がマスタアーム２の手先部の動きに追従して動くように、スレーブアーム１が動作する。つまり、マスタアーム２は、スレーブアーム１の位置や姿勢を直感的に操作できるように構成されている。また、本実施形態に係る遠隔操作ロボットシステム１００では、マスタアーム２の手先部をスレーブアーム１の手先部に追従させるとともに、スレーブアーム１が外部から受けた力をマスタアーム２を介してオペレータに提示するバイラテラル制御が採用されている。
【００２８】
本実施形態では、マスタアーム２は、スレーブアーム１と同じ数の複数の関節ＪＴm１〜ＪＴm６を有する多関節ロボットアームであって、基台２５及び複数のリンク２１ａ〜２１ｆが順次連結されて構成されている。マスタアーム２のリンク２１ａ〜２１ｆの連接構成は、スレーブアーム１のリンク１１ａ〜１１ｆと実質的に同一であり、詳細な説明は省略する。
【００２９】
なお、本実施形態では、マスタアーム２は、スレーブアーム１と相似構造をしているが、マスタアーム２は、スレーブアーム１と非相似構造をしていてもよい。例えば、オペレータがマスタアーム２を介してスレーブアーム１に行わせる動作が上下方向への移動のみである場合、マスタアーム２はスレーブアーム１より少ない数（例えばＪＴm２，ＪＴm３，ＪＴm５のみ）の関節を有する多関節ロボットアームであってもよい。
【００３０】
マスタアーム２の各関節ＪＴm１〜ＪＴm６には、それが連結する２つの部材を相対的に回転させるアクチュエータの一例としての駆動モータ（図示略）が設けられている。これら駆動モータは、例えば、モータ制御部２６によってサーボ制御されるサーボモータである。本実施形態に係るモータ制御部２６は、１台で複数の駆動モータをサーボ制御できるものであるが、各駆動モータに対応するモータ制御部が設けられていてもよい。また、各駆動モータには、その回転位置を検出するための位置センサ（図示略）と、その回転を制御する電流を検出するための電流センサ（図示略）とが設けられている。位置センサは、例えば、エンコーダである。駆動モータ、位置センサ、及び電流センサは、モータ制御部２６と電気的に接続されている。
【００３１】
モータ制御部２６は、制御ユニット８（より詳細には、後述する指令生成部８３）より取得した指令値に基づいてトルク指令値（電流指令値）を生成し、トルク指令値に対応した駆動電流を、各関節ＪＴm１〜ＪＴm６の駆動モータへ供給する。駆動モータの出力回転角は位置センサによって検出され、モータ制御部２６へフィードバックされる。但し、モータ制御部２６と制御ユニット８の機能が、単一の回路または単一の演算装置として実現されてもよい。
【００３２】
マスタアーム２の第６リンク２１ｆの先端部には、力センサ２８を介して、オペレータが把持可能なグリッパ（本発明の「把持部」）２９が設けられている。本実施形態では、グリッパ２９を把持したオペレータの操作によってマスタアーム２に加えられる力（以下、「操作力」と称する。）fmの大きさ及び方向が、力センサ２８により検出される。即ち、本実施形態では、力センサ１７が、操作力fmを取得する操作力取得部として機能する。力センサ２８は、互いに直交する３つの軸方向に作用する分力の検出が可能な３軸力覚センサで構成される。力センサ２８により検出された操作力fmは、制御ユニット８に送られる。
【００３３】
また、グリッパ２９には、当該グリッパ２９が把持されているか否かを検知する把持センサ３０が設けられている。把持センサ３０により生成された検知信号は、制御ユニット８に送られる。
【００３４】
〔入力装置４〕
入力装置４は、マスタアーム２と共に作業空間外に設置され、オペレータから受け付けた指示を制御ユニット８に入力する入力手段である。入力装置４では、スレーブアーム１の位置や姿勢に係る操作以外の操作が入力される。入力装置４には、スレーブアーム１の制御モードを選択するための操作入力具や、非常停止スイッチなど、スレーブアーム１の位置や姿勢を除く操作指令を入力する１以上の操作入力具が設けられている。１以上の操作入力具には、例えば、タッチパネル、キー、レバー、ボタン、スイッチ、ダイヤルなどの既知の操作入力具が含まれていてよい。また、入力装置４として、ペンダントやタブレットなどの携帯端末が用いられてもよい。
【００３５】
本実施形態において、入力装置４には、後述する仮想の外力の大きさ及び方向を規定するための設定値の入力を受け付ける設定値入力部４１が含まれる。設定値入力部４１は、例えば数値を入力可能なタッチパネル、キーなどである。設定値入力部４１から入力される設定値について、詳細は後述する。
【００３６】
〔出力装置５〕
出力装置５は、制御ユニット８から送信された情報を出力するものである。出力装置５は、マスタアーム２を操作しているオペレータから視認しやすい位置に設置される。出力装置５には、少なくともディスプレイ装置が含まれており、更に、プリンタやスピーカや警報灯などが含まれていてもよい。ディスプレイ装置では、制御ユニット８から送信された情報が表示出力される。例えば、スピーカでは、制御ユニット８から送信された情報が音として出力される。また、例えば、プリンタでは、制御ユニット８から送信された情報が紙などの記録媒体に印字出力される。
【００３７】
〔状況取得装置６〕
状況取得装置６は、スレーブアーム１の作業空間内における状況を示す状況情報を取得する手段である。状況情報は、作業空間内におけるスレーブアーム１の位置及び姿勢等、或いはスレーブアーム１を取り巻く周囲の状況を認識するために利用する情報を含む。より具体的には、状況情報は、例えば、作業空間内におけるスレーブアーム１の位置及び姿勢、スレーブアーム１に保持された組付物Ｗ１と被組付物Ｗ２との位置関係等、作業空間内においてスレーブアーム１の状況及びスレーブアーム１の周囲の状況を認識可能とするために必要な情報を含む。状況取得装置６は、例えば、スレーブアーム１の作業状況を撮影する１つ以上のカメラ装置や、組付物Ｗ１の位置、被組付物Ｗ２の位置、組付物Ｗ１と被組付物Ｗ２の間の距離などを計測するセンサである。
【００３８】
〔記憶装置７〕
記憶装置７には、スレーブアーム１の制御に用いられる各種タスクプログラムが記憶されている。タスクプログラムは、作業ごとの動作フローとして作成されていてよい。タスクプログラムは、例えば、ティーチングにより作成され、スレーブアーム１の識別情報とタスクとに対応付けられて記憶装置７に格納される。なお、記憶装置７は制御ユニット８から独立して記載されているが、制御ユニット８が備える記憶装置が記憶装置７としての機能を担ってもよい。
【００３９】
また、記憶装置７には、予め作成された動作シーケンス情報が記憶されている。動作シーケンス情報とは、作業空間内でスレーブアーム１によって実施される一連の作業工程を規定した動作シーケンスに関する情報である。この動作シーケンス情報では、作業工程の動作順と、スレーブアーム１の制御モードとが対応付けられている。また、この動作シーケンス情報では、各作業工程に対しスレーブアーム１にその作業を自動的に実行させるためのタスクプログラムが対応づけられている。但し、動作シーケンス情報が、各作業工程に対しスレーブアーム１にその作業を自動的に実行させるためのプログラムを含んでいてもよい。
【００４０】
〔制御ユニット８〕
図１に示すように、制御ユニット８には、スレーブアーム１、マスタアーム２、入力装置４、出力装置５、状況取得装置６、及び記憶装置７が有線又は無線で通信可能に接続されている。
【００４１】
制御ユニット８は、いわゆるコンピュータであって、ＣＰＵ等の演算処理部と、ＲＯＭ、ＲＡＭ等の記憶部を有している（いずれも図示せず）。記憶部には、制御ユニット８が実行する制御プログラムや、各種固定データ等が記憶されている。演算処理部は、例えば、入力装置４、出力装置５、状況取得装置６及び記憶装置７などの外部装置とデータの送受信を行う。また、演算処理部は、各種センサからの検出信号の入力や各制御対象への制御信号の出力を行う。制御ユニット８では、記憶部に記憶されたプログラム等のソフトウェアを演算処理部が読み出して実行することにより、システム１００の各種動作を制御するための処理が行われる。なお、制御ユニット８は単一のコンピュータによる集中制御により各処理を実行してもよいし、複数のコンピュータの協働による分散制御により各処理を実行してもよい。また、制御ユニット８は、マイクロコントローラ、プログラマブルロジックコントローラ（ＰＬＣ）等から構成されていてもよい。
【００４２】
制御ユニット８は、機能ブロックとして、モード切替部８１と、重力補償部８２と、指令生成部８３と、設定値記憶部８４と、外力付与切替部８５とを備えている。図１では、これらの機能ブロックが１つの制御ユニット８にまとめて示されているが、各機能ブロック又は複数の機能ブロックの組み合わせが独立した１以上のコンピュータによって実現されていてもよい。この場合、これらの機能ブロックのうち一部が作業空間に配置され、残部が作業外空間に配置されていてもよい。
【００４３】
モード切替部８１は、スレーブアーム１を動作させる制御モードを、上述した手動モードと自動モードとの間で切り替える。モード切替部８１によるスレーブアーム１の制御モードの切替は、記憶装置７に記憶された上述の動作シーケンス情報に基づき行われる。本実施形態では、重力補償部８２による重力補償及び指令生成部８３による指令の生成は、スレーブアーム１を動作させる制御モードが手動モードの場合に実行される。
【００４４】
重力補償部８２は、スレーブアーム１が保持した組付物Ｗ１の重力がマスタアーム２を介してオペレータに提示されないように、組付物Ｗ１の重力を補償する。具体的には、力センサ１７が検出した力には、例えばスレーブアーム１が保持した組付物Ｗ１の重力などが含まれる。バイラテラル制御では、スレーブアームが受ける外力がマスタアームを介してオペレータに提示されるため、例えばスレーブアームが保持した物体の重量が大きい場合、オペレータはその重量を感知しながらマスタアームを操作することになり、オペレータに負担となり得る。このため、本実施形態では、重力補償部８２が、保持ハンド１２に組付物Ｗ１が保持されている場合に、スレーブアーム１の力センサ１７により検出した値から、保持ハンド１２の重力分と当該保持ハンド１２に保持された組付物Ｗ１の重力分を除く補正を行っている。このように補正されることで、接触力fsが取得され、後述の指令生成部８３に送られる。
【００４５】
指令生成部８３は、モータ制御部１６，２６に送る指令値を生成する。本実施形態に係る遠隔操作ロボットシステム１００では、並列型バイラテラル制御が採用されている。即ち、本実施形態における指令生成部８３は、接触力fsに関する情報と操作力fmに関する情報から、スレーブアーム１側のモータ制御部１６に送る位置指令値Xd,sと、マスタアーム２側のモータ制御部２６に送る位置指令値Xd,mを生成する位置指令生成部である。スレーブアーム１のスレーブ座標系とマスタアーム２のマスタ座標系とは対応づけられている。
【００４６】
図２は、指令生成部８３による指令生成の概要を示す制御ブロック図である。本実施形態では、指令生成部８３は、力速度換算部８６、並びに速度位置換算部８７ａ，８７ｂの各機能部を有している。
【００４７】
力速度換算部８６は、接触力fsと操作力fmに基づく力指令値から、スレーブアーム１の手先部の移動方向及び移動速度を規定する速度指令値vdを算出する。速度指令値vdは、速度ベクトルであって、所定の水平方向に延びるｘ軸方向の速度指令値vdx、ｘ軸に直交し且つ水平方向に延びるｙ軸方向の速度指令値vdy、及び、重力方向に延びるｚ軸方向の速度指令値vdzとして算出される。
【００４８】
本実施形態では、力速度換算部８６は、マスタアーム２に、重力方向（ｚ方向）に仮想の外力、即ち仮想重力を加える速度指令値vdを生成する。ここで、「仮想の外力」とは、実際にスレーブアーム１に作用した外力、即ち力センサ２８により検知した外力とは独立したものであることを意味する。
【００４９】
具体的には、力速度換算部８６は、マスタアーム２に仮想の重力を加えるよう、操作力fm及び接触力fsに基づく力指令値から、以下の換算式（１）により速度指令値vdを算出する。
【００５０】
【数１】
2018192596.tif 000003
【００５１】
ここで、上記の式（１）の左辺において、「m×g」の項が、マスタアーム２の手先部に上述した仮想重力を加えるための項であり、「m」は予め設定した仮想質量である。
【００５２】
上記換算式（１）における「m×g」の項の意義について説明する。上述したように重力補償部８２により保持ハンド１２により保持した物体の重力が補償されるため、従来の並列型バイラテラル制御に従って接触力fsと操作力fmのみにより指令値を生成すると、オペレータには物体を保持した感覚は提示されない。そこで、本実施形態における力速度換算部８６では、重力方向に負担にならない程度の力がマスタアーム２に作用するように、上記の換算式（１）のように「m×g」の項を追加して速度指令値vdを生成する。
【００５３】
力速度換算部８６で得られた速度指令値vdは、スレーブアーム１側の速度位置換算部８７ａとマスタアーム２側の速度位置換算部８７ｂに送られる。速度位置換算部８７ａ，８７ｂは、それぞれ、速度指令値vdを用いて、リアルタイムに随時、スレーブアーム１の位置指令値Xd,sとマスタアーム２の位置指令値Xd,mを生成する。速度位置換算部８７ａで生成された位置指令値Xd,sは、スレーブアーム１側のモータ制御部１６に送られ、モータ制御部１６は、位置指令値Xd,sに基づきスレーブアーム１の動作を制御する。速度位置換算部８７ｂで生成された位置指令値Xd,mは、マスタアーム２側のモータ制御部２６に送られ、モータ制御部２６は、位置指令値Xd,mに基づきマスタアーム２の動作を制御する。こうして、仮想の重力をマスタアーム２に作用させる位置指令値Xd,mに基づき、マスタアーム２の動作が制御されるため、オペレータにはマスタアーム２を介して物体を保持した感覚が提示される。
【００５４】
設定値記憶部８４は、設定値入力部４１から入力された設定値を記憶する。設定値記憶部８４に記憶された設定値は、指令生成部８３における指令値の生成に用いられる。設定値記憶部８４に記憶される設定値には、上記の式（１）の「m」の値（仮想質量m）が含まれる。設定値記憶部８４に記憶された仮想質量mに応じて、マスタアーム２に作用する重力方向の力の大きさが変更される。例えば、仮想質量mは、マスタアーム２を操作するオペレータに負担にならない程度（例えば１．５ｋｇ）に設定値入力部４１から設定される。また、設定値記憶部８４に記憶される設定値には、上記の式（１）の「M」や「Cv」の値が含まれてもよい。
【００５５】
外力付与切替部８５は、指令生成部８３での指令値の生成方法を、オペレータがグリッパ２９を把持している場合にのみ上述のマスタアーム２に仮想の外力を加える指令が生成されるように切り替える。具体的には、外力付与切替部８５は、把持センサ３０から制御ユニット８に送られる検知信号に応じて、力速度換算部８６における操作力fm及び接触力fsに基づく力指令値を速度指令値vdに換算する換算式を切り替える。
【００５６】
即ち、グリッパ２９が把持されていると把持センサ３０が検知した場合、外力付与切替部８５は、力速度換算部８６で用いる換算式を、上記換算式（１）に設定する。このため、指令生成部８３は、マスタアーム２の先端に仮想の重力を加える指令を生成する。
【００５７】
グリッパ２９が把持されていないと把持センサ３０が検知した場合、マスタアーム２に仮想の重力を加えないよう、外力付与切替部８５は、力速度換算部８６で用いる換算式を、以下の換算式（２）に設定する。
【００５８】
【数２】
2018192596.tif 000004
【００５９】
上記の換算式（２）は、上記の換算式（１）の左辺から、マスタアーム２に作用させる仮想重力の項「m×g」を除いたものである。こうして、接触力fs及び操作力fmに基づき、速度指令値vdが得られ、速度位置換算部８７ａ，８７ｂで位置指令値Xd,s，Xd,mが生成される。その結果、オペレータがグリッパ２９を把持している間だけ、マスタアーム２の先端に仮想の重力が作用し、オペレータがグリッパ２９を離した場合には、仮想の重力は作用しなくなる。このため、オペレータがグリッパ２９を離したときに、設定値入力部４１にて予め設定した仮想の重力によりスレーブアーム１及びマスタアーム２が動作することが防がれる。
【００６０】
また、グリッパ２９が把持されていないと把持センサ３０が検知した場合、外力付与切替部８５は、上記換算式（２）の代わりに、以下の式（３）及び（４）に切り替えてもよい。
【００６１】
【数３】
2018192596.tif 000005
【００６２】
上記の式（３）は、上記の換算式（１）の右辺に、スレーブアーム１の手先部を所定の位置に移動させるための仮想外力fvを追加したものである。上記の式（４）の右辺において、「Xv」は、予め設定したスレーブアーム１の手先部の目標位置であり、「Xd,s」は、スレーブアーム１の手先部の現在位置である。オペレータがグリッパ２９を離すことにより、上記の式（３）及び（４）に切り替えられた場合、予め設定したスレーブアーム１の手先部は、目標位置Xvに向かって移動する。その後、スレーブアーム１が外部から外力を受けない限り（fs＝0）、スレーブアーム１の手先部は目標位置Xvで停止する。ここで、目標位置Xvは、スレーブアーム１の手先部がその位置に移動しても他の物体と接触しない安全な位置に設定される。このように、オペレータがグリッパ２９を離した後にスレーブアーム１の手先部が所定の位置に移動するため、仮想重力によって保持ハンド１２が保持した組付物Ｗ１が下方へと移動して床等に衝突することが防がれる。
【００６３】
上記の式（４）の「k」の値や「Xv」（即ち、スレーブ座標系における位置座標）の値は、設定値記憶部８４に記憶される設定値に含まれてもよい。
【００６４】
〔遠隔操作ロボットシステム１００の動作〕
続いて、上記構成の遠隔操作ロボットシステム１００の動作の一例を説明する。
【００６５】
記憶装置７に記憶された被組付物（自動車のボディ）Ｗ２への組付物（シート）Ｗ１の取付作業の動作シーケンス情報は、コンテナから組付物Ｗ１を取り出す取出タスクＴ１、組付物Ｗ１を被組付物Ｗ２の取付位置近傍まで搬送する搬送タスクＴ２、及び、取付位置近傍にある組付物Ｗ１を取付位置へ取り付ける取付タスクＴ３からなり、これらのタスクＴ１〜Ｔ３をこの順に繰り返し実行する。
【００６６】
初めに、制御ユニット８は、記憶装置７に記憶された所定の動作シーケンス情報を読み出し、この動作シーケンス情報に沿ってシステム１００の制御を開始する。先ず、制御ユニット８は、記憶装置７から取出タスクＴ１のタスクプログラムを読み出して実行する。次いで、制御ユニット８は、搬送タスクＴ２のタスクプログラムを読み出して実行する。取出タスクＴ１及び搬送タスクＴ２では、制御ユニット８は自動モードでスレーブアーム１の動作を制御する。
【００６７】
搬送タスクＴ２が終了すると、制御ユニット８は、次の取付タスクＴ３の制御モードの選択をオペレータに促すための選択画面をディスプレイ装置に表示させる。併せて、制御ユニット８は、制御モードが選択されようとしているスレーブアーム１の状況情報をディスプレイ装置に出力させる。ここで、ディスプレイ装置に表示出力される状況情報に、映されているスレーブアーム１の識別情報や、次に行うプロセスの内容などが含まれていてもよい。
【００６８】
オペレータは、ディスプレイ装置に表示されたスレーブアーム１の状況情報を視認して、例えばマスタアーム２又は入力装置４によって、手動モードか自動モードかを選択する。ここで、手動モードが選択されると、制御ユニット８は、モード切替部８１によりスレーブアーム１の制御モードを自動モードから手動モードに切り替える。
【００６９】
手動モードに切り替えられた時点において、スレーブアーム１の保持ハンド１２には組付物Ｗ１が保持されているが、重力補償部８２により力センサ２８が検出した力の重力分が除かれるため、マスタアーム２に組付物Ｗ１の重力は作用していない。また、オペレータがグリッパ２９を把持していない場合、マスタアーム２には仮想の重力も作用していない。即ち、上記の換算式（２）に基づき、指令生成部８３により位置指令値が生成される。
【００７０】
オペレータが、グリッパ２９を把持すると、外力付与切替部８５により、換算式（２）から、マスタアーム２に仮想重力を作用させるための換算式（１）に切り替わる。このため、オペレータは、マスタアーム２を介して重力方向に力を受けながら、マスタアーム２を操作してスレーブアーム１を動作させる。こうして、オペレータはマスタアーム２を操作して、組付物Ｗ１の穴ｈに被組付物Ｗ２のピンｐを挿通させるために、組付物Ｗ１を被組付物Ｗ２に近づける。
【００７１】
組付物Ｗ１を被組付物Ｗ２に近づける際、穴ｈとピンｐの位置がずれており、組付物Ｗ１の底部（即ち、穴ｈの周りの面）にピンｐが接触すると、鉛直上向きの接触力fsが大きくなり、マスタアーム２を介してオペレータに提示される重力方向（鉛直下向き）の力は軽減される。例えば、接触力fsと仮想の重力m×gが釣り合うと、マスタアーム２を介してオペレータに提示される重力方向の力はゼロになる。このため、オペレータは、組付物Ｗ１の底部が被組付物Ｗ２のピンｐに乗ったことを、マスタアーム２を介して認識することができる。
【００７２】
その後、組付物Ｗ１を横にずらして穴ｈの位置をピンｐの位置に一致させた場合、鉛直上向きの接触力fsはゼロになり、オペレータには、再度、マスタアーム２を介して仮想の重力が提示される。このため、オペレータは、被組付物Ｗ２のピンｐが組付物Ｗ１の穴ｈに入ったことを、マスタアーム２を介して認識することができる。
【００７３】
こうして被組付物Ｗ２に対する組付物Ｗ１の組付けが完了すると、取出タスクＴ１に戻る。以上説明したように、制御ユニット８は動作シーケンスに沿って作業工程を順次進行させる。
【００７４】
本実施形態に係る遠隔操作ロボットシステム１００では、マスタアーム２を介してオペレータには、スレーブアーム１が外部から受けた力とは独立した、重力方向に負担にならない程度に作用する仮想の重力が提示される。即ち、重力補償部８２により、スレーブアーム１が保持ハンド１２により保持した組付物Ｗ１の重力等はマスタアーム２には反映させず、設定値入力部４１から設定した仮想の重力をマスタアーム２に作用させる。このため、オペレータが想定した感覚（物体を保持した感覚）と、マスタアーム２を介して実際に受ける感覚との間のずれを低減することができる。これにより、マスタアーム２を介して受けるオペレータの操作感を改善することができる。
【００７５】
また、本実施形態では、設定値入力部４１から仮想の外力の大きさや方向を設定することができるため、マスタアーム２に加えられる仮想の外力をオペレータにとって操作しやすい大きさ及び方向に適宜調整することができる。このため、マスタアーム２の操作負担を軽減でき、且つ、オペレータに物体を保持した感覚を提示できる。更に、マスタアーム２に加えられる仮想の外力は、設定値入力部４１から予め設定されたものであり、力センサ１７から検出した力とは独立している。このため、保持ハンド１２に保持された物体の重量に関係なく、マスタアーム２に加える仮想の重力を一定にすることができる。
【００７６】
本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変形が可能である。
【００７７】
例えば、上記実施形態では、並列型バイラテラル制御によりマスタアーム２及びスレーブアーム１が制御されたが、本発明に適用されるバイラテラル制御は、並列型に限定されない。例えば、対称型、力逆送型及び力帰還型のいずれのバイラテラル制御も本発明に適用可能である。また、本発明に適用される制御方式は、バイラテラル制御方式でなくてもよい。即ち、スレーブアーム１が外部から受けた力をマスタアーム２に作用させなくてもよく、仮想の重力のみを作用させてもよい。
【００７８】
また、上記実施形態では、指令生成部８３が、マスタアーム２に重力方向に仮想の外力を加える指令値を生成したが、この仮想の外力の大きさや方向は、スレーブアーム１が行う作業に応じて適宜変更可能である。例えば、スレーブアーム１が保持した棒状体などで粘性のある液体をかき混ぜる作業を行う場合、指令生成部８３は、液体から受ける粘性抵抗をマスタアーム２に作用させる指令を生成してもよい。この場合、仮想の外力はマスタアーム２を操作する方向（棒状体の移動方向）とは反対方向に作用させてもよい。
【００７９】
また、上記実施形態では、設定値入力部４１から仮想の外力の大きさや方向を適宜設定することができたが、本発明に係る遠隔操作ロボットシステムは、オペレータによって仮想の外力の大きさ及び方向が予め設定されたものから変更されないように、設定値入力部４１を備えていなくてもよい。
【符号の説明】
【００８０】
１００    ：遠隔操作ロボットシステム
１        ：スレーブアーム
２        ：マスタアーム
１２      ：保持ハンド
１６      ：モータ制御部
２６      ：モータ制御部
２９      ：グリッパ
３０      ：把持センサ
４１      ：設定値入力部
８２      ：重力補償部
８３      ：指令生成部
８４      ：設定値記憶部
Ｗ１      ：組付物
Ｗ２      ：被組付物
ｆｍ      ：操作力
ｆｓ      ：接触力
【図１】
2018192596.tif 000006
【図２】
2018192596.tif 000007