(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-18
(45)【発行日】2022-10-26
(54)【発明の名称】ロボットシステム及びロボットシステムの制御方法
(51)【国際特許分類】
B25J 3/00 20060101AFI20221019BHJP
【FI】
B25J3/00 A
(21)【出願番号】P 2018240132
(22)【出願日】2018-12-21
【審査請求日】2021-11-12
(73)【特許権者】
【識別番号】000000974
【氏名又は名称】川崎重工業株式会社
(74)【代理人】
【識別番号】110000556
【氏名又は名称】特許業務法人 有古特許事務所
(72)【発明者】
【氏名】掃部 雅幸
(72)【発明者】
【氏名】笠 秀行
(72)【発明者】
【氏名】藤森 潤
(72)【発明者】
【氏名】木下 博貴
(72)【発明者】
【氏名】▲高▼橋 大樹
(72)【発明者】
【氏名】志鷹 拓哉
(72)【発明者】
【氏名】清水 開
【審査官】松浦 陽
(56)【参考文献】
【文献】国際公開第2018/212265(WO,A1)
【文献】特開2000-153475(JP,A)
【文献】特開平04-344505(JP,A)
【文献】特開2017-013167(JP,A)
【文献】特開平08-118262(JP,A)
【文献】特開平01-183379(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
作業端を有するスレーブアームと、前記作業端又は前記作業端に保持したワークに作用する反力の方向及び大きさを検出するスレーブ側力検出部と、前記スレーブアームを駆動するスレーブアーム駆動部と、前記作業端の目標位置を規定するスレーブ動作指令に基づき前記スレーブアーム駆動部を制御するスレーブ側制御部と、を含むスレーブユニットと、
操作端を有するマスタアームと、前記操作端に操作者が加えた操作力の方向及び大きさを検出するマスタ側力検出部と、前記マスタアームを駆動するマスタアーム駆動部と、前記操作端の目標位置を規定するマスタ動作指令に基づき前記マスタアーム駆動部を制御するマスタ側制御部と、を含むマスタユニットと、
前記操作力及び前記反力に基づいて前記スレーブ動作指令及び該スレーブ動作指令の前記作業端の移動方向に対応する移動方向に前記操作端を移動させる前記マスタ動作指令を生成するシステム制御部と、を有するロボットシステムであって、
前記システム制御部は、
前記操作力の大きさが所定の第1閾値を超えていないと判定すると、前記操作力及び前記反力に基づいて前記スレーブ動作指令の前記作業端の移動方向に対応する移動方向に前記操作端を移動させる前記マスタ動作指令を生成し、
前記操作力の大きさが所定の
前記第1閾値を超えたと判定すると、
前記操作力に基づいて前記操作端を前記操作力の方向に移動させ
る前記マスタ動作指令を生成する、ロボットシステム。
【請求項2】
前記システム制御部は、前記操作力が大きくなるにしたがって、前記操作端の移動速度の変化を大きくするように前記マスタ動作指令を生成する、請求項1に記載のロボットシステム。
【請求項3】
前記システム制御部は、通常動作モード及び報知動作モードを含む複数の動作モードのうち1の該動作モードに設定する動作モード設定部と、前記操作力及び前記反力に基づいて前記スレーブ動作指令を生成するスレーブ動作指令生成部と、前記操作力及び前記反力に基づいて該スレーブ動作指令の前記作業端の移動方向に対応する移動方向に前記操作端を移動させる第1仮マスタ動作指令を生成する第1仮マスタ動作指令生成部と、前記操作力に基づいて第2仮マスタ動作指令を生成する第2仮マスタ動作指令生成部と、前記通常動作モードにおいて
前記第1仮マスタ動作指令を前記マスタ動作指令に設定し、前記報知動作モードにおいて
前記第2仮マスタ動作指令を前記マスタ動作指令に設定するマスタ動作指令設定部と、を含み、
前記動作モード設定部は、前記操作力の大きさが前記第1閾値を超えたと判定すると、前記動作モードを前記報知動作モードに設定する、請求項1又は2に記載のロボットシステム。
【請求項4】
複数の前記動作モードは、更に復帰動作モードを含み、
前記システム制御部は、前記第1仮マスタ動作指令が規定する前記操作端の前記目標位置に向けて前記操作端を移動させる第3仮マスタ動作指令を生成する第3仮マスタ動作指令生成部を更に備え、
前記マスタ動作指令設定部は、更に前記復帰動作モードにおいて前記第3仮マスタ動作指令を前記マスタ動作指令に設定し、
前記動作モード設定部は、前記動作モードを前記報知動作モードに設定している状態において前記操作力の大きさが所定の第2閾値以下であると判定すると前記動作モードを前記復帰動作モードに設定する、請求項3に記載のロボットシステム。
【請求項5】
前記動作モード設定部は、前記動作モードを前記復帰動作モードに設定している状態において、前記操作端が前記第1仮マスタ動作指令の前記目標位置に位置したと判定すると、前記動作モードを前記通常動作モードに設定する、請求項4に記載のロボットシステム。
【請求項6】
前記システム制御部は、前記操作力及び前記反力に基づいて目標速度ベクトルを算出する換算部と、前記操作力に基づいて仮目標速度ベクトルを算出する副換算部と、を含み、
前記スレーブ動作指令生成部は、前記目標速度ベクトルに基づいて前記スレーブ動作指令を生成し、
前記第1仮マスタ動作指令生成部は、前記目標速度ベクトルに基づいて前記第1仮マスタ動作指令を生成し、
前記第2仮マスタ動作指令生成部は、前記仮目標速度ベクトルに基づいて前記第2仮マスタ動作指令を生成する、請求項3乃至5の何れか1に記載のロボットシステム。
【請求項7】
作業端を有するスレーブアームと、前記作業端又は前記作業端に保持したワークに作用する反力の方向及び大きさを検出するスレーブ側力検出部と、前記スレーブアームを駆動するスレーブアーム駆動部と、を含むスレーブユニットと、
操作端を有するマスタアームと、前記操作端に操作者が加えた操作力の方向及び大きさを検出するマスタ側力検出部と、前記マスタアームを駆動するマスタアーム駆動部と、を含むマスタユニットと、を有するロボットシステムの制御方法であって、
前記操作力及び前記反力に基づいて算出した前記作業端の目標位置に前記作業端を位置させ、
前記操作力の大きさが所定の第1閾値を超えていないと判定すると、前記操作力及び前記反力に基づいて算出
され且つ前記スレーブアームの前記作業端の移動方向に対応する移動方向に前記操作端を移動させる前記操作端の目標位置であって、前記スレーブアームの前記作業端の位置に対応する目標位置に前記操作端を位置させ、
前記操作力の大きさが所定の
前記第1閾値を超えたと判定すると、
前記操作力に基づいて前記操作端を前記操作力の方向に移動させる、ロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステム及びロボットシステムの制御方法に関する。
【背景技術】
【0002】
従来からマスタースレーブマニピュレータとその制御方法が知られている(例えば特許文献1参照)。
【0003】
このマスタースレーブマニピュレータは、力センサの測定した反力があらかじめ設定した力目標値を超えると、作業対象物の法線方向にほぼ一致するようにあらかじめ設定しておいた力制御方向、すなわち、作業対象物に向かう方向及び作業対象物から離れる方向に関しては、スレーブアームをマスターアームの動作に追従するように動作させずに、あらかじめ設定した力目標値と、力センサの測定した反力が一致するように力制御によって動作させるように構成されている。これによって、作業対象物に接触しながら作業を行うマスタースレーブマニピュレータを安定に制御することができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に記載のマスタースレーブマニピュレータは、例えば硬い作業対象物に接触しているときなどにおいて、スレーブアームを作業対象物に向かう方向に対応する方向にマスタアームを無理に動かそうとして、作業者がマスタアームに過大な負荷をかけてしまうと、力センサやマスタアームが破損するおそれがあった。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明のある態様に係るロボットシステムは、作業端を有するスレーブアームと、前記スレーブアームを駆動するスレーブアーム駆動部と、前記作業端の目標位置を規定するスレーブ動作指令に基づき前記スレーブアーム駆動部を制御するスレーブ側制御部と、を含むスレーブユニットと、操作端を有するマスタアームと、前記操作端に操作者が加えた操作力の方向及び大きさを検出するマスタ側力検出部を含むマスタユニットと、前記操作者の知覚によって感知可能な感覚情報を用いて報知を行う報知部と、前記操作端への操作入力に基づいて、前記スレーブ動作指令を生成するスレーブ動作指令生成部を含むシステム制御部と、を有するロボットシステムであって、前記システム制御部は、前記操作力の大きさが所定の閾値を超えると判定すると前記報知部を制御して前記操作者に対する報知を行う。
【0007】
この構成によれば、操作力の大きさが所定の第1閾値を超えたことを操作者に報知することができ、マスタアームに過負荷がかかっていることを操作者に報知することができる。その結果、操作者がマスタアームを破損させてしまうことを防止することができる。
【発明の効果】
【0008】
本発明は、マスタアームの破損を防止することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施の形態1に係るロボットシステムの構成例を概略的に示す図である。
【
図2】
図1のロボットシステムの制御系統の構成例を概略的に示すブロック図である。
【
図3】
図1のロボットシステムの動作例を示すフローチャートである。
【
図4】本発明の実施の形態2に係るロボットシステムの制御系統の構成例を概略的に示すブロック図である。
【発明を実施するための形態】
【0010】
ある態様にかかるロボットシステムは、作業端を有するスレーブアームと、前記作業端又は前記作業端に保持したワークに作用する反力の方向及び大きさを検出するスレーブ側力検出部と、前記スレーブアームを駆動するスレーブアーム駆動部と、前記作業端の目標位置を規定するスレーブ動作指令に基づき前記スレーブアーム駆動部を制御するスレーブ側制御部と、を含むスレーブユニットと、操作端を有するマスタアームと、前記操作端に操作者が加えた操作力の方向及び大きさを検出するマスタ側力検出部と、前記マスタアームを駆動するマスタアーム駆動部と、前記操作端の目標位置を規定するマスタ動作指令に基づき前記マスタアーム駆動部を制御するマスタ側制御部と、を含むマスタユニットと、前記操作力及び前記反力に基づいて前記スレーブ動作指令及び該スレーブ動作指令の前記作業端の移動方向に対応する移動方向に前記操作端を移動させる前記マスタ動作指令を生成するシステム制御部と、を有するロボットシステムであって、前記システム制御部は、前記操作力の大きさが所定の第1閾値を超えたと判定すると、前記操作端を前記操作力の方向に移動させるように前記マスタ動作指令を生成する。
【0011】
この構成によれば、操作力の大きさが所定の第1閾値を超えたことをマスタアームを介して操作者に報知することができ、マスタアームに過負荷がかかっていることを操作者に報知することができる。また、操作者が力をかけた方向に操作端が移動することによって、マスタアーム及びマスタ側力検出部にかかる負荷を軽減することができ、マスタアーム及びマスタ側力検出部の破損を防止することができる。その結果、操作者がマスタアームを破損させてしまうことを防止することができる。
【0012】
前記システム制御部は、前記操作力が大きくなるにしたがって、前記操作端の移動速度の変化を大きくするように前記マスタ動作指令を生成してもよい。
【0013】
この構成によれば、操作者に対し、操作力をどの程度弱めたらよいのかを案内することができ、その結果、操作者が操作力を適切に弱めるように誘導することができる。また、操作力の大きさが大きくなればより早く操作端が操作者が力をかけた方向に移動するので、マスタアーム及びマスタ側力検出部にかかる負荷をより適切に軽減することができ、マスタアーム及びマスタ側力検出部の破損をより適切に防止することができる。
【0014】
前記システム制御部は、通常動作モード及び報知動作モードを含む複数の動作モードのうち1の該動作モードに設定する動作モード設定部と、前記操作力及び前記反力に基づいて前記スレーブ動作指令を生成するスレーブ動作指令生成部と、前記操作力及び前記反力に基づいて該スレーブ動作指令の前記作業端の移動方向に対応する移動方向に前記操作端を移動させる第1仮マスタ動作指令を生成する第1仮マスタ動作指令生成部と、前記操作力に基づいて第2仮マスタ動作指令を生成する第2仮マスタ動作指令生成部と、前記通常動作モードにおいて第1仮マスタ動作指令を前記マスタ動作指令に設定し、前記報知動作モードにおいて第2仮マスタ動作指令を前記マスタ動作指令に設定するマスタ動作指令設定部と、を含み、前記動作モード設定部は、前記操作力の大きさが前記第1閾値を超えたと判定すると、前記動作モードを前記報知動作モードに設定してもよい。
【0015】
この構成によれば、通常動作モードから報知動作モードに動作モードを切り替えることによって、操作者への報知をマスタアームを介して適切に行うことができる。また、設定されている動作モードにかかわらず、スレーブアームを停止させたり、検出部が検出した操作力及び反力に基づきスレーブアームの動作を適切に変化させたりすることができる。よって、操作者に報知する際のマスタアームの動作がスレーブアームの動作に影響することを防止することができ、操作者への報知を適切に行うことができる。また、動作モードの切り替えを自動で行うことができるので、システムを保護するための非常停止を避けることができる。
【0016】
複数の前記動作モードは、更に復帰動作モードを含み、前記システム制御部は、前記第1仮マスタ動作指令が規定する前記操作端の前記目標位置に向けて前記操作端を移動させる第3仮マスタ動作指令を生成する第3仮マスタ動作指令生成部を更に備え、前記マスタ動作指令設定部は、更に前記復帰動作モードにおいて前記第3仮マスタ動作指令を前記マスタ動作指令に設定し、前記動作モード設定部は、前記動作モードを前記報知動作モードに設定している状態において前記操作力の大きさが所定の第2閾値以下であると判定すると前記動作モードを前記復帰動作モードに設定してもよい。
【0017】
この構成によれば、操作者への報知を行った後、操作端と作業端とが所定の対応関係をとる位置に向けて操作端を移動させることができる。
【0018】
前記動作モード設定部は、前記動作モードを前記復帰動作モードに設定している状態において、前記操作端が前記第1仮マスタ動作指令の前記目標位置に位置したと判定すると、前記動作モードを前記通常動作モードに設定してもよい。
【0019】
この構成によれば、操作端と作業端とが所定の対応関係をとって同期して動作する状態に復帰させることができる。また、自動で通常動作モードに復帰させることができ、作業の中断を避けることができる。
【0020】
前記システム制御部は、前記操作力及び前記反力に基づいて目標速度ベクトルを算出する換算部と、前記操作力に基づいて仮目標速度ベクトルを算出する副換算部と、を含み、前記スレーブ動作指令生成部は、前記目標速度ベクトルに基づいて前記スレーブ動作指令を生成し、前記第1仮マスタ動作指令生成部は、前記目標速度ベクトルに基づいて前記第1仮マスタ動作指令を生成し、前記第2仮マスタ動作指令生成部は、前記仮目標速度ベクトルに基づいて前記第2仮マスタ動作指令を生成してもよい。
【0021】
この構成によれば、バイラテラル制御方式のロボットシステムにおいて、操作者への報知を適切に行うことができる。
【0022】
他の態様にかかるロボットシステムは、作業端を有するスレーブアームと、前記スレーブアームを駆動するスレーブアーム駆動部と、前記作業端の目標位置を規定するスレーブ動作指令に基づき前記スレーブアーム駆動部を制御するスレーブ側制御部と、を含むスレーブユニットと、操作端を有するマスタアームと、前記操作端に操作者が加えた操作力の方向及び大きさを検出するマスタ側力検出部を含むマスタユニットと、前記操作者の知覚によって感知可能な感覚情報を用いて報知を行う報知部と、前記操作端への操作入力に基づいて、前記スレーブ動作指令を生成するスレーブ動作指令生成部を含むシステム制御部と、を有するロボットシステムであって、前記システム制御部は、前記操作力の大きさが所定の閾値を超えると判定すると前記報知部を制御して前記操作者に対する報知を行う。
【0023】
この構成によれば、操作力の大きさが所定の第1閾値を超えたことを操作者に報知することができ、マスタアームに過負荷がかかっていることを操作者に報知することができる。その結果、操作者がマスタアームを破損させてしまうことを防止することができる。
【0024】
前記システム制御部は、前記操作力が大きくなるにしたがって、前記感覚情報の強度が強くなるように前記報知部を制御する。
【0025】
この構成によれば、操作者に対し、操作力をどの程度弱めたらよいのかを案内することができ、その結果、操作者が操作力を適切に弱めるように誘導することができる。
【0026】
以下、実施の形態について、図面を参照しながら説明する。なお、本実施の形態によって本発明が限定されるものではない。また、以下では、全ての図を通じて、同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【0027】
(実施の形態1)
図1は、実施の形態1に係るロボットシステム100の構成例を概略的に示す図である。
図2は、ロボットシステム100の制御系統の構成例を概略的に示すブロック図である。
【0028】
ロボットシステム100は、
図1及び
図2に示すように、スレーブアーム11がマスタアーム21の動きをなぞるように動作するマスタースレーブ方式のロボットを含むシステムである。ロボットシステム100では、スレーブアーム11の作業領域から離れた位置(作業領域外)にいる操作者Pがマスタアーム21を動かして動作指令をロボットシステム100に入力することで、スレーブアーム11が該動作指令に対応した動作を行い、部品の組み付け作業などの特定の作業を行うことができるように構成されている。
【0029】
更に、ロボットシステム100は、バイラテラル制御方式のロボットシステムであり、制御部がスレーブアーム11に加えてマスタアーム21の動作を同期して制御することで、スレーブアーム11に作用する力をマスタアーム21を介して操作者Pに提示するように構成されている。ロボットシステム100は、スレーブアーム11を含むスレーブユニット1と、マスタアーム21を含むマスタユニット2と、システム制御部3とを備える。
【0030】
[スレーブユニットの構成例]
図1に示すように、スレーブユニット1は、例えば産業用ロボットである。スレーブユニット1は、基部10と、スレーブアーム11と、スレーブ側力検出部12と、スレーブアーム駆動部13(
図2参照)と、スレーブ側制御部14(
図2参照)とを含む。
【0031】
スレーブアーム11は、例えば、垂直多関節型のロボットアームである。すなわち、基端部から先端部に向かう方向に順次連結される複数のリンクと、隣り合うリンクの一方に対して他方を回動可能に連結する一以上の関節を備える。そして、スレーブアーム11の先端部が作業端11aであり、作業端11aにはハンド(エンドエフェクタ)16が設けられている。基部10は、例えば床に固定され、スレーブアーム11を支えている。スレーブアーム11は、例えば6自由度を有し、作業端11aを動作範囲内の任意の位置で任意の姿勢を取らせることができる。
【0032】
ハンド16は、例えば、ワークWの保持を行う保持動作及び保持したワークWの解放を行う解放動作を行うことができるように構成され、例えば部品の組み付け作業を実施する。ハンド16は、保持動作及び解放動作を行うための図示しないハンド駆動部を含む。なお、ハンド16は、溶接作業、塗装作業を行うことができるように、当該作業目的に応じた構造であってもよい。
【0033】
スレーブ側力検出部12は、互いに直交する3つの軸方向に作用する力の大きさ及びこれら3つの軸周りに作用する力のモーメントを検出するセンサであり、スレーブアーム11の作業端11aに配設されている。スレーブ側力検出部12は互いに直交する3つの軸方向及び軸周りに作用する分力の検出が可能な6軸力覚センサで構成される。これによって、スレーブ側力検出部12は、スレーブアーム11の作業端11aに保持したワークWがワークWを組み付ける対象物Tに接触したときに、作業端11a又は作業端11aに保持したワークWに作用する反力fsの方向及び大きさを検出する。検出した反力fsは、システム制御部3に出力される。
【0034】
スレーブアーム駆動部13は、スレーブアーム11を駆動する。すなわち、スレーブアーム駆動部13は、スレーブアーム11の各関節に設けられたアクチュエータを含み、アクチュエータの駆動によって各関節を動作させることにより、スレーブアーム11の基端部に対して先端部(作業端11a)及びハンド16を所定の動作領域内で移動させる。本実施の形態において、例えば、スレーブアーム11の各関節は回動関節であり、アクチュエータは減速機を備えるサーボモータである。
【0035】
スレーブ側制御部14は、作業端11aの目標位置を規定する位置指令であるスレーブ動作指令xsに基づきスレーブアーム駆動部13を制御し、スレーブアーム11を動作させる。スレーブ動作指令xsは、スレーブ座標系における位置指令である。スレーブ側制御部14は、スレーブ動作指令xsに基づき、各関節のサーボモータの出力軸の回転角を算出し、スレーブアーム11の各関節のサーボモータに供給する電流を制御してサーボモータの動作を制御し、スレーブアーム11の姿勢を変更し、これによって、作業端11aを目標位置に位置させる。スレーブアーム11の姿勢の制御は、スレーブアーム11に設けられた図示しないエンコーダから出力される関節角度に基づいたフィードバック制御によって行われる。
【0036】
[マスタユニットの構成例]
マスタユニット2は、作業領域外に設置され、スレーブアーム11の動作を遠隔的に制御する。マスタユニット2は、マスタアーム21と、マスタ側力検出部22と、マスタアーム駆動部23(
図2参照)と、マスタ側制御部24(
図2参照)とを含む。
【0037】
マスタアーム21は、操作者Pが触れて操作して操作者Pからスレーブアーム11に対する動作指令を入力する装置である。マスタアーム21は、例えば6自由度を有し、操作端21aを動作範囲内の任意の位置で任意の姿勢を取らせることができる。操作者Pが触れて操作する部位が操作端21aを構成し、操作者Pは操作端21aに力を加えて、スレーブアーム11に対する動作指令を入力する。
【0038】
マスタ側力検出部22は、互いに直交する3つの軸方向に作用する力の大きさ及びこれら3つの軸周りに作用する力のモーメントを検出するセンサであり、マスタアーム21の操作端21aに配設されている。マスタ側力検出部22は互いに直交する3つの軸方向及び軸周りに作用する分力の検出が可能な6軸力覚センサで構成される。これによって、マスタ側力検出部22は、操作者Pの操作端21aへの操作入力を検知し、操作者Pからスレーブアーム11に対する動作指令、すなわちマスタアーム21の操作端21aに操作者Pが加えた操作力fmの方向及び大きさを検出する。検出した操作力fmは、システム制御部3に出力される。
【0039】
マスタアーム駆動部23は、マスタアーム21を駆動する。すなわち、マスタアーム駆動部23は、マスタアーム21の各関節に設けられたアクチュエータを含み、アクチュエータの駆動によって各関節を動作させることにより、マスタアーム21の操作端21aを移動させる。本実施の形態において、例えば、アクチュエータは減速機を備えるサーボモータである。
【0040】
マスタ側制御部24は、操作端21aの目標位置を規定する位置指令であるマスタ動作指令xmに基づきマスタアーム駆動部23を制御し、マスタアーム21を動作させる。マスタ動作指令xmは、マスタ座標系における位置指令である。マスタ座標系とスレーブ座標系とは対応関係を有しており、座標変換によって、一方の位置指令値に基づいて他方の位置指令値を算出することが可能となっている。マスタ側制御部24は、マスタ動作指令xmに基づき、マスタアーム21の各関節のサーボモータの出力軸の回転角を算出し、マスタアーム21の各関節のサーボモータに供給する電流を制御して各関節のサーボモータの動作を制御し、マスタアーム21の姿勢を変更し、これによって、操作端21aを目標位置に位置させる。マスタアーム21の姿勢の制御は、マスタアーム21に設けられた図示しないエンコーダから出力される関節角度に基づいたフィードバック制御によって行われる。
【0041】
[システム制御部の構成例]
システム制御部3は、並列型バイラテラル制御方式によって、スレーブユニット1及びマスタユニット2を制御する。すなわち、システム制御部3は、マスタ側力検出部22が検出した操作力fm及びスレーブ側力検出部12が検出した反力fsに基づいて、位置指令であるスレーブ動作指令xs及び位置指令であるマスタ動作指令xmを生成する。
【0042】
システム制御部3は、換算部31と、副換算部32と、スレーブ動作指令生成部51と、第1仮マスタ動作指令生成部52と、第2仮マスタ動作指令生成部53と、第3仮マスタ動作指令生成部54と、マスタ動作指令設定部36と、動作モード設定部37とを含む。これら換算部31、副換算部32、スレーブ動作指令生成部51、第1仮マスタ動作指令生成部52、第2仮マスタ動作指令生成部53、第3仮マスタ動作指令生成部54、マスタ動作指令設定部36、及び動作モード設定部37は、所定の制御プログラムを図示しない演算部が実行することにより実現される機能ブロックである。
【0043】
スレーブ側制御部14、マスタ側制御部24及びシステム制御部3に係る上記の演算部は、例えばマイクロコントローラ、CPU、ASIC、FPGA等のプログラマブルロジックデバイス(PLD)などの演算器で構成される。演算部は、集中制御する単独の制御器で構成されていてもよく、互いに協働して分散制御する複数の制御器で構成されてもよい。また、システム制御部3は、各種プログラム及びデータを記憶する記憶装置(図示せず)を備えている。また、システム制御部3は、スレーブ側制御部14及びマスタ側制御部24を含む単独の制御器で構成されていてもよく、互いに協働して分散制御する複数の制御器で構成されてもよい。
【0044】
換算部31は、マスタ側力検出部22が検出した操作力f
m、及びスレーブ側力検出部12が検出した反力f
sの合成力に基づいて、目標速度ベクトルv
dを算出する。この目標速度ベクトルv
dは、後述する通り、作業端11a及び操作端21aの移動方向及び移動量の大きさを算出するために用いられる。より具体的には、換算部31は、操作力f
m及び反力f
sの差分に基づいて、作業端11a及び操作端21aの移動方向及び移動速度を規定する目標速度ベクトルv
dを例えば以下の式(1)に基づいて算出する。
【数1】
【0045】
式(1)に示すように、換算部31は、操作力fm及び反力fsの差分を算出することによって、操作力fmと反力fsとを関係づけ、反力fsを操作力fmに対する反力として取り扱う。そして、目標速度ベクトルvdは、操作力fm及び反力fsの差分に応じた値であり、対象物Tへの接触により反力fsがゼロでない場合、通常、目標速度ベクトルvdは操作力fmの方向と異なる方向に向かうベクトルとなる。
【0046】
副換算部32は、マスタ側力検出部22が検出した操作力f
mに基づいて操作端21aの移動方向及び移動量の大きさを算出するために用いられる仮目標速度ベクトルv
dtを算出する。より具体的には、副換算部32は、操作力f
mに基づいて、操作端21aの移動方向及び移動速度を規定する仮目標速度ベクトルv
dtを例えば以下の式(2)に基づいて算出する。
【数2】
【0047】
式(2)に示すように、仮目標速度ベクトルvdtは、操作力fmに応じた値であり、目標速度ベクトルvdは実質的に操作力fmと同じ方向に向かうベクトルとなる。また、副換算部32は、反力fsに所定の係数を乗じて反力fsよりも小さい仮反力を設定し、この仮反力と操作力fmに基づいて仮目標速度ベクトルvdtを算出してもよい。
【0048】
スレーブ動作指令生成部51は、目標速度ベクトルvdの値に応じた速度で作業端11aを移動させるように、目標速度ベクトルvdに基づいて、スレーブ動作指令xsを生成する。スレーブ動作指令xsは、上述の通り、作業端11aの目標位置を規定する位置指令である。この目標位置は、目標速度ベクトルvdに関して述べた通り、反力fsが実質的にゼロでない場合、通常、操作力fmの方向と異なる方向に設定される。スレーブ動作指令xsはスレーブ側制御部14に出力され、スレーブ側制御部14は、このスレーブ動作指令xsに基づきスレーブアーム駆動部13を制御し、スレーブアーム11の作業端11aはマスタアーム21の操作端21aの動きをなぞるように同期して移動する。
【0049】
第1仮マスタ動作指令生成部52は、目標速度ベクトルvdの値に応じた速度で作業端11aを移動させるように、目標速度ベクトルvdに基づいて、第1仮マスタ動作指令xmt1を生成する。第1仮マスタ動作指令xmt1は、スレーブ動作指令xsの作業端11aの移動方向に対応する移動方向に操作端21aを移動させる動作指令であり、操作端21aの目標位置を規定する位置指令である。この目標位置は、スレーブ動作指令xsと同様に、反力fsが実質的にゼロでない場合、通常、操作力fmの方向と異なる方向に設定される。
【0050】
本実施の形態においては、第1仮マスタ動作指令xmt1をスレーブ動作指令xsの作業端11aの移動方向に対応する移動方向に操作端21aを移動させる動作指令とするために、スレーブ動作指令xsと同様に、目標速度ベクトルvdに基づいて、第1仮マスタ動作指令xmt1を生成する。そして、操作者Pから見て、スレーブ動作指令xsの作業端11aの移動方向と、第1仮マスタ動作指令xmt1の操作端21aの移動方向とが同じ方向となる(互いに一致する)ように第1仮マスタ動作指令xmt1が生成される。
【0051】
第2仮マスタ動作指令生成部53は、仮目標速度ベクトルvdtの値に応じた速度で作業端11aを移動させるように、仮目標速度ベクトルvdtに基づいて第2仮マスタ動作指令xmt2を生成する。第2仮マスタ動作指令xmt2は、操作端21aの目標位置を規定する位置指令である。この目標位置は、仮目標速度ベクトルvdtに関して述べた通り、操作力fmと同じ方向に設定される。
【0052】
第3仮マスタ動作指令生成部54は、第1仮マスタ動作指令xmt1が規定する操作端21aの目標位置に向けて操作端21aを移動させる第3仮マスタ動作指令xmt3を生成する。第3仮マスタ動作指令xmt3は、操作端21aの目標位置を規定する位置指令である。この目標位置は、仮目標速度ベクトルvdtに関して述べた通り、操作力fmと同じ方向に設定される。
【0053】
マスタ動作指令設定部36は、通常動作モードにおいて第1仮マスタ動作指令xmt1をマスタ動作指令xmに設定し、報知動作モードにおいて第2仮マスタ動作指令xmt2をマスタ動作指令xmに設定し、復帰動作モードにおいて第3仮マスタ動作指令xmt3をマスタ動作指令xmに設定する。マスタ動作指令xmはマスタ側制御部24に出力される。
【0054】
動作モード設定部37は、通常動作モード、報知動作モード、及び復帰動作モードを含む複数の動作モードのうち1の動作モードに設定する。
【0055】
したがって、マスタ動作指令設定部36は、通常動作モードにおいて、第1仮マスタ動作指令xmt1をマスタ動作指令xmに設定し、マスタ側制御部24は、第1仮マスタ動作指令xmt1に基づきマスタアーム駆動部23を制御し、スレーブアーム11の作業端11aに作用する力を、マスタアーム21の操作端21aにおいて操作力fmに抗するように操作端21aを動作させることにより、操作端21aを介して操作者Pに提示する。したがって、操作者Pは、作業端11aが環境に接触した際の力覚を認識して作業を行うことができるように構成されている。
【0056】
また、マスタ動作指令設定部36は、報知動作モードにおいて、第2仮マスタ動作指令xmt2をマスタ動作指令xmに設定し、マスタ側制御部24は、第2仮マスタ動作指令xmt2に基づきマスタアーム駆動部23を制御し、操作端21aを操作者Pが加えた操作力fmの方向に移動させる。
【0057】
更に、マスタ動作指令設定部36は、復帰動作モードにおいて、第3仮マスタ動作指令xmt3をマスタ動作指令xmに設定し、マスタ側制御部24は、第3仮マスタ動作指令xmt3に基づきマスタアーム駆動部23を制御し、作業端11aとの対応関係を回復するように、操作端21aを移動させる。
【0058】
なお、スレーブ動作指令生成部51、第1仮マスタ動作指令生成部52、第2仮マスタ動作指令生成部53、及び第3仮マスタ動作指令生成部54は、現在動作設定されている動作モードに関わらず、動作指令を生成する。
【0059】
[動作例]
次に、ロボットシステム100の動作例を説明する。
【0060】
図3は、ロボットシステム100の動作例を示すフローチャートである。本動作例においては、
図1に示すように円筒形に形成され貫通孔Waを有するワークWと、上下方向に伸延する円柱状のピンであって、貫通孔Waと嵌合可能に形成されている対象物Tとを嵌合させて、ワークWを対象物Tに組み付ける作業をロボットシステム100を用いて行う。ワークWはスレーブアーム11のハンド16に把持されており、対象物Tは例えば生産ライン上に位置している。
【0061】
まず、動作モード設定部37は、操作力fmの大きさが所定の第1閾値flim1を超えたか否かを判定する(ステップS1)。第1閾値flim1は、マスタアーム21が許容する負荷に基づいて予め設定される値であり、例えばマスタ側力検出部22が検出可能な最大負荷、マスタ側力検出部22が破損しない負荷、マスタアーム21の関節が損傷しない負荷、及びマスタアーム21のリンクが曲がらない負荷に基づいて設定される値である。マスタアーム21に操作力fmが加えられていない初期状態においては、操作力fmはゼロであるので、動作モード設定部37は、操作力fmの大きさが所定の第1閾値flim1を超えていないと判定し(ステップS1においてNo)、動作モードを通常動作モードに設定する(ステップS2)。
【0062】
そして、この初期状態において、スレーブアーム11が対象物T等の環境に接触していないのであれば反力fsもゼロとなり、操作力fmと反力fsとの差分もゼロとなる。したがって、換算部31が算出する目標速度ベクトルvdはゼロとなり、目標速度ベクトルvdに基づいてスレーブ動作指令生成部51が生成したスレーブ動作指令xsに係る位置指令値は変化しない。よって、スレーブ側制御部14は、スレーブアーム11の現在の姿勢を維持する。また、第1仮マスタ動作指令xmt1に係る位置指令値も変化せず、通常動作モードにおいて、マスタ側制御部24は、第1仮マスタ動作指令xmt1に基づいてマスタアーム21の現在の姿勢を維持する。そして、動作モード設定部37は、再度ステップS1に係る判定を実行する。
【0063】
次に、操作者PがワークWを対象物Tに近づける方向、すなわちマスタアーム21の操作端21aに下方に向かう操作力fmを加えると、換算部31は、式(1)に基づき、操作力fmに応じた大きさを有する下方向の目標速度ベクトルvdを算出する。なお、ワークWが対象物Tに接触していない状態においては、反力fsはゼロである。
【0064】
次に、スレーブ動作指令生成部51は、目標速度ベクトルvdに基づいてスレーブ動作指令xsを生成し、スレーブアーム11の作業端11aの目標位置を現在位置の下方に設定する。スレーブ側制御部14は、スレーブ動作指令xsに基づき、作業端11aが下方に移動するようにスレーブアーム11の姿勢を変化させる。
【0065】
また、第1仮マスタ動作指令生成部52は、目標速度ベクトルvdに基づいて第1仮マスタ動作指令xmt1を生成し、マスタアーム21の操作端21aの目標位置を現在位置の下方の位置に更新する。操作力fmの大きさが所定の第1閾値flim1を超えないときは、動作モードが通常動作モードに設定された状態が維持され、マスタ側制御部24は、第1仮マスタ動作指令xmt1に基づき、操作端21aが目標位置に向かって下方に移動するようにマスタアーム21の姿勢を変化させる。
【0066】
このように、操作力fmの大きさが所定の第1閾値flim1を超えないとき、スレーブアーム11の作業端11a及びマスタアーム21の操作端21aは、同時に同じ方向に移動するように構成されている。これによって、操作者Pは、操作者Pがマスタアーム21の操作端21aを動かすことによって、スレーブアーム11の作業端11aがマスタアーム21の操作端21aの動きをなぞるように動作するような感覚を得られる。
【0067】
そして、スレーブアーム11の作業端11aが下方に移動することにより、ワークWが対象物Tの上端に接触し、ワークWが対象物Tに押し付けられると、押し付ける力の大きさに応じた反力fsがスレーブ側力検出部12により検出される。そして、この状態から操作者Pが操作端21aに下方に強い操作力fmを加えても操作力fmに比例して反力fsが増大し、操作力fmと反力fsの差分が実質的に0となり、換算部31が算出する目標速度ベクトルvdはゼロベクトルとなる。
【0068】
このとき、スレーブ動作指令生成部51は、設定されている動作モードに関わらず、ゼロベクトルである目標速度ベクトルvdに基づいてスレーブ動作指令xsを生成し、スレーブアーム11の作業端11aの目標位置を現在位置と実質的に同じ位置に設定する。スレーブ側制御部14は、スレーブ動作指令xsに基づき、スレーブアーム11の現在の姿勢を維持する。
【0069】
また、第1仮マスタ動作指令生成部52も、ゼロベクトルである目標速度ベクトルvdに基づいて第1仮マスタ動作指令xmt1を生成し、マスタアーム21の操作端21aの目標位置を現在位置と実質的に同じ位置に設定する。そして、通常動作モードにおいて、マスタ側制御部24は、第1仮マスタ動作指令xmt1に基づいてマスタアーム21の現在の姿勢を維持し、マスタアーム21の操作端21aにおいて操作力fmに抗するように操作端21aを動作させる。これによって、スレーブアーム11の作業端11aに作用する反力fsを、操作端21aを介して操作者Pに提示することができる。したがって、操作者Pは、作業端11aが環境に接触した際には反力fsを操作者Pの力覚を通じて認識して作業を行うことができるように構成されている。この作業は、例えば、ワークWを対象物Tに押し付けながら反力が働く方向と直行する方向に移動させ、貫通孔Waと対象物Tが嵌合する位置を探る作業であり、操作者Pは反力fsが働く方向を認識することによって対象物Tが嵌合する位置を探る方向、すなわち反力fsと直交する方向を認識することができ、作業を効率よく行うことができる。
【0070】
このとき、操作者Pがマスタアーム21の操作端21aに下方に向かう操作力fmを無理に加える等の操作によって、動作モード設定部37は、操作力fmの大きさが第1閾値flim1を超えたと判定すると(ステップS1においてYes)、動作モードを報知動作モードに設定する(ステップS3)。これによって、マスタ動作指令設定部36が、第2仮マスタ動作指令xmt2をマスタ動作指令xmに設定し、操作端21aを操作力fmの方向に移動させるようにマスタ動作指令xmが生成される。
【0071】
上述の通り、第2仮マスタ動作指令生成部53は、副換算部32が算出した仮目標速度ベクトルvdtに基づいて第2仮マスタ動作指令xmt2を生成する。したがって、動作モードが報知動作モードに設定された状態において、マスタ側制御部24は、第2仮マスタ動作指令xmt2に基づいてマスタアーム21の操作端21aが目標位置に向かって下方に移動するようにマスタアーム21の姿勢を変化させる。
【0072】
また、上述の通り、仮目標速度ベクトルvdtは、マスタ側力検出部22が検出した操作力fmに応じた大きさと向きを有する速度ベクトルであるので、操作者Pが操作端21aに下方に強い操作力fmを加えている状態において仮目標速度ベクトルvdtは、大きさが大きい下向きのベクトルとなる。したがって、第2仮マスタ動作指令xmt2の目標位置は、現在位置の下方に大きく離れた位置となる。したがって、マスタ側制御部24は、操作力fmの大きさが所定の第1閾値flim1を超えるまでは操作端21aを移動させず、その後、操作力fmの大きさが所定の第1閾値flim1を超えると、急に操作端21aが下方に移動するように構成されている。すなわち、操作端21aの動作が急に変化するように構成されている。これによって、操作力fmの大きさが所定の第1閾値flim1を超えたことを操作者Pに報知することができる。また、操作者Pが力をかけた方向に操作端21aが移動することによって、マスタアーム21及びマスタ側力検出部22にかかる負荷を軽減することができ、マスタアーム21及びマスタ側力検出部22の破損を防止することができる。
【0073】
そして、操作者Pが力をかけた方向に操作端21aが急に移動し、操作端21aの動作が急に変化するように構成されているため、操作者Pに驚きを与えることができ、その結果、操作者Pが操作力fmを弱めるように誘導することができる。
【0074】
また、操作力fmの大きさ(又は操作力fmの第1閾値flim1からの超過量)が大きくなるにしたがって、仮目標速度ベクトルvdtの大きさは大きくなり、その結果、操作端21aの移動速度の変化が大きくなるようにマスタ動作指令xmが生成されるので、操作者Pに対し、操作力fmをどの程度弱めたらよいのかを案内することができる。また、過大な操作力fmの大きさに応じた驚きを操作者Pに与えることができる。その結果、操作者Pが操作力fmを適切に弱めるように誘導することができる。また、操作力fmの大きさが大きくなればより早く操作者Pが力をかけた方向に操作端21aが移動する。したがって、マスタアーム21及びマスタ側力検出部22にかかる負荷をより適切に軽減することができ、マスタアーム21及びマスタ側力検出部22の破損をより適切に防止することができる。更に、通常動作モードから報知動作モードへの切り替えを自動で行うことができるので、ロボットシステム100を保護するための非常停止を避けることができる。
【0075】
なお、本実施の形態においては、操作力fmの大きさが大きくなるにしたがって、操作端21aの移動速度を大きくするようにマスタ動作指令xmが生成されるように構成したが、これに限られるものではない。これに代えて、操作力大きさの単位時間あたりの変化量が大きくなるにしたがって、操作端21aの移動速度を大きくするようにマスタ動作指令xmが生成されるように構成してもよい。
【0076】
なお、スレーブ側制御部14は、設定されている動作モードに関わらず、操作力fm及び反力fsに基づいてスレーブアーム11を制御するよう構成されているので、操作者Pが操作力fmを弱めると、式(1)に基づき目標速度ベクトルvdは上方向のベクトルとなり、スレーブ側制御部14はスレーブアーム11を対象物Tへの押し付け力を緩和するように制御する。なお、動作モードが通常動作モード以外の動作モードに設定されているときは、スレーブアーム11の動作を停止させてもよい。
【0077】
そして、動作モード設定部37は、ステップS3において報知動作モードに設定すると、次に、操作力fmの大きさが第2閾値flim2以下であるか否かを判定する(ステップS4)。第2閾値flim2は、第1閾値flim1以下の値をとるように予め設定された値である。
【0078】
そして、動作モード設定部37は、操作力fmの大きさが第2閾値flim2を超えていると判定している間(ステップS4においてNo)、繰り返し操作力fmの大きさが第2閾値flim2を超えたか否かを判定する。
【0079】
そして、操作者Pが操作力fmを弱めることによって操作力fmが第2閾値flim2以下になると、動作モード設定部37は、操作力fmの大きさが第2閾値flim2以下であると判定し(ステップS4においてYes)、動作モードを復帰動作モードに設定する(ステップS5)。
【0080】
上述の通り、第3仮マスタ動作指令生成部54は、操作端21aの現在位置及び第1仮マスタ動作指令生成部52が生成した第1仮マスタ動作指令xmt1に基づいて第3仮マスタ動作指令xmt3を生成する。したがって、動作モードが復帰動作モードに設定された状態において、マスタ側制御部24は、第3仮マスタ動作指令xmt3に基づいてマスタアーム21の操作端21aを第1仮マスタ動作指令xmt1の目標位置に向けて移動させる。
【0081】
次に、動作モード設定部37は、操作端21aが、第1仮マスタ動作指令生成部52が生成した第1仮マスタ動作指令xmt1に係る目標位置に位置したか否かを判定する(ステップS6)。この判定は、操作端21aの現在位置と第1仮マスタ動作指令xmt1の目標位置とが等しいか否かによって行う。そして、動作モード設定部37は、操作端21aが第1仮マスタ動作指令xmt1に係る目標位置に位置していないと判定すると(ステップS6においてNo)、再びステップS5を実行し、復帰動作モードに設定された状態を維持する。
【0082】
そして、動作モード設定部37は、操作端21aが第1仮マスタ動作指令xmt1に係る目標位置に位置したと判定すると、ステップS2を実行し、動作モードを通常動作モードに設定し、復帰させる。これによって、再びスレーブアーム11の作業端11a及びマスタアーム21の操作端21aが同時に同じ方向に移動するように構成される。また、自動で通常動作モードに復帰させることができ、作業の中断を避けることができる。
【0083】
以上に説明したように、ロボットシステム100は、動作モード設定部37が操作力fmの大きさが第1閾値flim1を超えたと判定すると、動作モードを報知動作モードに設定し、操作端21aを操作力fmの方向に移動させるようにマスタ動作指令xmが生成されるので、マスタアーム21に過負荷がかかっていることを操作者Pに報知することができる。また、マスタアーム21にかかる負荷を逃がすようにマスタアーム21を動作させることができる。これによって、マスタアーム21の破損を防止することができる。
【0084】
(実施の形態2)
以下では実施の形態2の構成、動作について、実施の形態1との相違点を中心に述べる。
図4は、実施の形態2にかかるロボットシステム200の制御系統の構成例を概略的に示すブロック図である。
【0085】
本実施の形態において、ロボットシステム200は、操作者Pの知覚によって感知可能な感覚情報を用いて報知を行う報知部204を更に備える。操作者Pの知覚とは、例えば、触覚、力覚、聴覚、嗅覚、及び視覚の少なくとも何れか1の感覚である。また、報知部204として、バイブレータ、スピーカー、ディスプレイ、又は信号灯が例示される。また、本実施の形態において、システム制御部3は、報知部制御部231を更に含む。報知部制御部231は、所定の制御プログラムを図示しない演算部が実行することにより実現される機能ブロックである。なお、
図4においては、副換算部32、第2仮マスタ動作指令生成部53、及び第3仮マスタ動作指令生成部54を図示していないが、これらの機能ブロックを含んでいてもよい。
【0086】
報知部制御部231は、報知動作モードにおいて、報知部204を制御して操作者Pに対する報知を行う。これによって、操作力fmの大きさが所定の第1閾値flim1を超えたことを操作者Pに報知することができる。
【0087】
また、報知部制御部231は、操作力fmが大きくなるにしたがって、感覚情報の強度が強くなるように報知部204を制御する。感覚情報の強度が強くなるように報知部204を制御するとは、例えば、音量を大きくする、輝度を大きくする、表示部における表示領域を大きくすることである。これによって、過大な操作力fmの大きさに応じた驚きを操作者Pに与え、その結果、操作者Pが操作力fmを適切に弱めるように誘導することができる。
【0088】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施の形態が明らかである。したがって、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び/又は機能の詳細を実質的に変更できる。
【符号の説明】
【0089】
W ワーク
T 対象物
P 操作者
xs スレーブ動作指令
xm マスタ動作指令
fs 反力
fm 操作力
flim1 第1閾値
1 スレーブユニット
2 マスタユニット
3 システム制御部
11a 作業端
11 スレーブアーム
12 スレーブ側力検出部
13 スレーブアーム駆動部
14 スレーブ側制御部
21 マスタアーム
21a 操作端
22 マスタ側力検出部
23 マスタアーム駆動部
24 マスタ側制御部
100 ロボットシステム