IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーウェーブの特許一覧

<>
  • 特許-主従ロボットの制御装置 図1
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】主従ロボットの制御装置
(51)【国際特許分類】
   B25J 3/00 20060101AFI20240110BHJP
   B25J 9/22 20060101ALI20240110BHJP
【FI】
B25J3/00 Z
B25J9/22 A
【請求項の数】 8
(21)【出願番号】P 2019222023
(22)【出願日】2019-12-09
(65)【公開番号】P2021091020
(43)【公開日】2021-06-17
【審査請求日】2022-10-03
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】100121821
【弁理士】
【氏名又は名称】山田 強
(74)【代理人】
【識別番号】100125575
【弁理士】
【氏名又は名称】松田 洋
(72)【発明者】
【氏名】福岡 貴史
(72)【発明者】
【氏名】佐藤 晶則
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2019-055459(JP,A)
【文献】実開平02-056586(JP,U)
【文献】特開平01-205986(JP,A)
【文献】特開昭60-150978(JP,A)
【文献】特開平10-029177(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ユーザにより加えられた力に倣って動く関節を備える主ロボットと、前記主ロボットよりも大型であり、前記関節に倣った動きを追従して行う対応関節を備える従ロボットと、を制御する制御装置であって、
前記関節の角度と前記対応関節の角度との偏差が大きいほど、前記ユーザが前記関節を動かす際の動作抵抗を大きくし、
前記ユーザが前記関節を動かす際の動作抵抗として、前記ユーザが前記関節を動かす角速度と前記偏差とに比例し、且つ前記ユーザが前記関節を動かす向きと逆向きのトルクを前記関節に作用させる、主従ロボットの制御装置。
【請求項2】
前記主ロボットは、前記ユーザにより操作された場合に操作されたことを通知する操作部を備え、
前記ユーザが前記操作部を操作する際に前記関節が動くことを抑制する操作抵抗を、前記関節に作用させる、請求項1に記載の主従ロボットの制御装置。
【請求項3】
ユーザにより加えられた力に倣って動く関節を備える主ロボットと、前記主ロボットよりも大型であり、前記関節に倣った動きを追従して行う対応関節を備える従ロボットと、を制御する制御装置であって、
前記関節の角度と前記対応関節の角度との偏差が大きいほど、前記ユーザが前記関節を動かす際の動作抵抗を大きくし、
前記主ロボットは、前記ユーザにより操作された場合に操作されたことを通知する操作部を備え、
前記ユーザが前記操作部を操作する際に前記関節が動くことを抑制する操作抵抗を、前記関節に作用させる、主従ロボットの制御装置。
【請求項4】
ユーザにより加えられた力に倣って動く関節を備える主ロボットと、前記主ロボットよりも大型であり、前記関節に倣った動きを追従して行う対応関節を備える従ロボットと、を制御する制御装置であって、
前記主ロボットは、前記ユーザにより操作された場合に操作されたことを通知する操作部を備え、
前記ユーザが前記操作部を操作する際に前記関節が動くことを抑制する操作抵抗を、前記関節に作用させる、主従ロボットの制御装置。
【請求項5】
前記ユーザが前記操作部を操作する際に前記操作部に作用すると想定される想定力が大きいほど、前記操作抵抗を大きくする、請求項又はに記載の主従ロボットの制御装置。
【請求項6】
前記想定力の大きさと、前記関節の角度と、前記主ロボットにおける前記操作部の位置とに基づいて、前記操作抵抗を設定する、請求項に記載の主従ロボットの制御装置。
【請求項7】
前記主ロボットは、前記関節を複数備え、
前記従ロボットは、複数の前記関節にそれぞれ対応する前記対応関節を備え、
複数の前記関節にそれぞれ前記動作抵抗を作用させる、請求項1~のいずれか1項に記載の主従ロボットの制御装置。
【請求項8】
前記主ロボットは、前記関節を複数備え、
前記従ロボットは、複数の前記関節にそれぞれ対応する前記対応関節を備え、
複数の前記関節にそれぞれ前記操作抵抗を作用させる、請求項のいずれか1項に記載の主従ロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザにより加えられた力に倣って動作する主ロボットと、主ロボットに倣った動作を追従して行う従ロボットとを制御する制御装置に関する。
【背景技術】
【0002】
従来、ロボットアームに作用する重力や摩擦力等のみを補償するトルク指令を与え、ロボットアームを外力に倣って動作させる柔軟制御を行う制御装置がある(特許文献1参照)。特許文献1に記載の制御装置は、ロボットの各軸の動作が可動域限界に近付いた場合に、適切な反力を計算して各軸に印加し、各軸の位置が可動域限界に達することを回避している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2011-206886号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、ユーザにより加えられた力に倣って動作する主ロボットと、主ロボットに倣った動作を追従して行う従ロボットとを備えるシステムにおいて、主ロボットに柔軟制御を適用すると以下の問題が生じることに本願発明者は着目した。
【0005】
すなわち、主ロボットが従ロボットよりも小型の場合、主ロボットの姿勢を従ロボットの姿勢よりも変化させやすく、主ロボットの動作に対する従ロボットの動作の遅れが大きくなりやすい。この場合に、従ロボットの手先が主ロボットの手先の現在位置に対応する位置へ最短経路で移動すると、従ロボットの手先がユーザの意図しない経路を移動するおそれがある。これに対して、主ロボットの動作に対する従ロボットの動作の遅れを小さくするために、主ロボットの動作を過度に制限すれば、主ロボットの動作効率が低下することとなる。
【0006】
本発明は、こうした課題を解決するためになされたものであり、その主たる目的は、主従ロボットの制御装置において、主ロボットの動作効率が低下することを抑制しつつ、主ロボットの動作に対する従ロボットの動作の遅れを抑制することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するための第1の手段は、
ユーザにより加えられた力に倣って動く関節を備える主ロボットと、前記主ロボットよりも大型であり、前記関節に倣った動きを追従して行う対応関節を備える従ロボットと、を制御する制御装置であって、
前記関節の角度と前記対応関節の角度との偏差が所定偏差よりも大きい場合に前記ユーザが前記関節を動かす際の動作抵抗を、前記偏差が前記所定偏差よりも小さい場合に前記ユーザが前記関節を動かす際の動作抵抗よりも大きくする。
【0008】
上記構成によれば、主ロボットの関節は、ユーザにより加えられた力に倣って動く。従ロボットの対応関節は、主ロボットの関節に倣った動きを追従して行う。従ロボットは、主ロボットよりも大型である。このため、主ロボットの姿勢を従ロボットの姿勢よりも変化させやすく、主ロボットの動作に対する従ロボットの動作の遅れが大きくなりやすい。
【0009】
この点、制御装置は、主ロボットの関節の角度と従ロボットの対応関節の角度との偏差が所定偏差よりも大きい場合にユーザが関節を動かす際の動作抵抗を、偏差が所定偏差よりも小さい場合にユーザが関節を動かす際の動作抵抗よりも大きくする。このため、関節の角度と対応関節の角度との偏差が所定偏差よりも小さい場合は、主ロボットを素早く動作させることができ、主ロボットの動作効率が低下することを抑制することができる。一方、関節の角度と対応関節の角度との偏差が所定偏差よりも大きい場合は、主ロボットの動作を抑制することができ、主ロボットの動作に対する従ロボットの動作の遅れを抑制することができる。
【0010】
さらに、関節の角度と対応関節の角度との偏差に応じて、ユーザが関節を動かす際の動作抵抗を大きくしている。このため、従ロボットの最高速度(動作性能)や主従ロボット間の応答速度にかかわらず、主ロボットの動作に対する従ロボットの動作の遅れを抑制することができる。
【0011】
第2の手段では、前記偏差が大きいほど、前記ユーザが前記関節を動かす際の動作抵抗を大きくする。こうした構成によれば、関節の角度と対応関節の角度との偏差が小さい場合は、主ロボットの動作をできるだけ抑制せず、偏差が大きくなるほど主ロボットの動作を強く抑制することができる。
【0012】
第3の手段では、前記ユーザが前記関節を動かす際の動作抵抗として、前記ユーザが前記関節を動かす角速度と前記偏差とに比例し、且つ前記ユーザが前記関節を動かす向きと逆向きのトルクを前記関節に作用させる。こうした構成によれば、ユーザが主ロボットの関節を動かす角速度が速いほど動作抵抗を大きくすることができ、関節の角速度が過大になることを抑制することができる。したがって、主ロボットの動作に対して従ロボットの動作が遅れることを未然に抑制することができる。さらに、主ロボットの動作に対して従ロボットの動作が遅れた場合は、その遅れ量に比例して主ロボットの動作を抑制することができる。
【0013】
第4の手段では、前記主ロボットは、前記ユーザにより操作された場合に操作されたことを通知する操作部を備え、前記ユーザが前記操作部を操作する際に前記関節が動くことを抑制する操作抵抗を、前記関節に作用させる。
【0014】
第5の手段は、
ユーザにより加えられた力に倣って動く関節を備える主ロボットと、前記主ロボットよりも大型であり、前記関節に倣った動きを追従して行う対応関節を備える従ロボットと、を制御する制御装置であって、
前記主ロボットは、前記ユーザにより操作された場合に操作されたことを通知する操作部を備え、
前記ユーザが前記操作部を操作する際に前記関節が動くことを抑制する操作抵抗を、前記関節に作用させる。
【0015】
上記構成によれば、主ロボットは、ユーザにより操作された場合に操作されたことを通知する操作部を備えている。ここで、ユーザにより操作部が操作された際に、ユーザの力が操作部を介して主ロボットに作用し、ユーザの意図に反して主ロボットの位置がずれるおそれがある。その場合、従ロボットは主ロボットよりも大型であるため、従ロボットの位置が大きくずれるおそれがある。
【0016】
この点、制御装置は、ユーザが操作部を操作する際に主ロボットの関節が動くことを抑制する操作抵抗を、関節に作用させる。したがって、ユーザにより操作部が操作された際に、ユーザの意図に反して主ロボットの位置がずれること、ひいては従ロボットの位置が大きくずれることを抑制することができる。
【0017】
ユーザが操作部を操作する際に操作部に作用する力が大きいほど、ユーザが操作部を操作する際に主ロボットの関節が動きやすくなる。
【0018】
この点、第6の手段では、前記ユーザが前記操作部を操作する際に前記操作部に作用すると想定される想定力が大きいほど、前記操作抵抗を大きくする。こうした構成によれば、ユーザが操作部を操作する際に操作部に作用すると想定される力が大きい場合であっても、従ロボットの位置が大きくずれることを抑制することができる。
【0019】
ユーザが操作部を操作する際に主ロボットの関節に作用する力は、操作部に作用する力の大きさに比例し、主ロボットの関節の角度と、主ロボットにおける操作部の位置とに応じて変化する。
【0020】
この点、第7の手段では、前記想定力の大きさと、前記関節の角度と、前記主ロボットにおける前記操作部の位置とに基づいて、前記操作抵抗を設定する。したがって、主ロボットの構成及び姿勢に応じて操作抵抗を設定することができ、主ロボットの動作を必要以上に抑制しないようにすることがきる。
【0021】
第8の手段では、前記主ロボットは、前記関節を複数備え、前記従ロボットは、複数の前記関節にそれぞれ対応する前記対応関節を備え、複数の前記関節にそれぞれ前記動作抵抗を作用させる。
【0022】
上記構成によれば、主ロボットは、関節を複数備えている。従ロボットは、主ロボットの複数の関節にそれぞれ対応する対応関節を備えている。このため、従ロボットの複数の対応関節は、主ロボットのそれぞれ対応する関節に倣った動きを追従して行う。そして、制御装置は、主ロボットの複数の関節にそれぞれ動作抵抗を作用させる。このため、主ロボットの動作全体に対する従ロボットの動作全体の遅れを抑制することができる。
【0023】
第9の手段では、前記主ロボットは、前記関節を複数備え、前記従ロボットは、複数の前記関節にそれぞれ対応する前記対応関節を備え、複数の前記関節にそれぞれ前記操作抵抗を作用させる。
【0024】
上記構成によれば、制御装置は、主ロボットの複数の関節にそれぞれ操作抵抗を作用させる。このため、ユーザが操作部を操作する際に、主ロボット全体の位置がずれること、ひいては従ロボット全体の位置がすれることを抑制することができる。
【図面の簡単な説明】
【0025】
図1】マスタロボットとスレーブロボットとを備えるシステムを示す模式図
【発明を実施するための形態】
【0026】
以下、マスタロボットとスレーブロボットとを備えるシステムに適用される制御装置に具現化した一実施形態について、図面を参照しつつ説明する。
【0027】
図1に示すように、システム10は、マスタロボット20とスレーブロボット30とを備えている。
【0028】
マスタロボット20(主ロボット)は、例えば6軸の垂直多関節型ロボットであり、基台(ベース)21とアーム22とを備えている。アーム22の隣り合うリンクは、関節を介して相対回転可能に連結されている。各関節は、各関節に対応する各モータにより駆動される。
【0029】
アーム22の先端には、ハンド23が取り付けられている。ハンド23は、一対の爪23A,23Bを備えており、爪23A,23Bの間隔を拡大及び縮小する開閉動作を行う。爪23A,23Bは、モータにより駆動される。
【0030】
基台21の内部には、マスタロボット20及びハンド23の状態を記録する記録部25、及びマスタロボット20及びハンド23の動作を制御する制御部26が設けられている。制御部26は、CPU、ROM、RAM、駆動回路、及び入出力インターフェース等を備えるコンピュータとして構成されている。
【0031】
マスタロボット20のリンク22aには、ハンド23の開閉ボタン22b及び位置取込ボタン22cが設けられている。制御部26は、ユーザが開閉ボタン22b(操作部)の開部分を押している間、ハンド23を第1速度で開く動作を実行する。制御部26は、ユーザが開閉ボタン22bの閉部分を押している間、ハンド23を第2速度で閉じる動作を実行する。第2速度は、第1速度と同じ速度であってもよいし、第1速度よりも低い速度であってもよい。制御部26は、ユーザが開閉ボタン22bを押すことをやめた時のハンド23の開閉位置を保持する。すなわち、ハンド23は、ユーザにより開閉位置を変更して保持可能である。位置取込ボタン22cについては後述する。
【0032】
マスタロボット20の各関節には、各関節の回転角度を検出するエンコーダがそれぞれ設けられている。すなわち、エンコーダは、アーム22の制御点の位置及び姿勢(以下、「アーム22の位置及び姿勢」という)を検出する。制御点は、アーム22の先端の中央に設定されている。
【0033】
ハンド23には、ハンド23の開閉位置を検出するエンコーダが設けられている。また、ハンド23には、ハンド23の把持力を検出する力センサが設けられている。力センサは、爪23A,23Bを駆動するモータに流れる電流を検出する電流センサや、爪23A,23Bに作用する圧力を検出する圧力センサ等である。
【0034】
制御部26は、アーム22に作用する外力に従って、アーム22の位置及び姿勢を制御する。詳しくは、制御部26は、アーム22に作用する重力及び摩擦力のみを補償するトルクを各関節のモータにより発生させ、アーム22を外力に倣って動作させる柔軟制御を行う。そして、制御部26は、アーム22に作用する外力がなくなった時のアーム22の位置及び姿勢を保持する。すなわち、マスタロボット20は、ユーザによりアーム22の位置及び姿勢を変更して保持可能である。本実施形態では、ユーザは、ダイレクトティーチによりアーム22を直接掴んで移動させることができ、そしてアーム22の位置及び姿勢を保持することができる。
【0035】
ユーザが位置取込ボタン22cを押した時に、制御部26は、各関節及びハンド23のエンコーダ、力センサの検出結果に基づいて、その時のアーム22の位置及び姿勢、ハンド23の開閉位置、把持力、及び把持状態を、状態情報として記録部25に記録させる。制御部26は、ユーザが位置取込ボタン22cを押す度に、状態情報を時系列に記録部25に記録させる。すなわち、位置取込ボタン22c(操作部)は、アーム22及びハンド23の状態を記録する操作を受け付け、ユーザにより操作された場合に操作されたことを通知する。記録部25は、位置取込ボタン22cにより操作を受け付けた時に、各関節の及びハンド23のエンコーダ、及び力センサによりそれぞれ検出されたアーム22の位置及び姿勢、ハンド23の開閉位置、把持力、及び把持状態を状態情報として時系列に記録する。したがって、ユーザは、アーム22の移動、ハンド23の開閉、及び位置取込を繰り返すことにより、アーム22及びハンド23の動作を教示することができる。
【0036】
制御部26は、記録部25により時系列に記録された上記状態情報を再現するように、アーム22及びハンド23の動作を制御する。したがって、ユーザは、教示したアーム22及びハンド23の動作を、制御部26により再現させることができる。これにより、ユーザは、マスタロボット20によりワーク等に対して作業を実行させることができる。
【0037】
マスタロボット20には、ケーブル29によってスレーブロボット30が接続されている。スレーブロボット30(従ロボット)は、マスタロボット20と同型(例えば6軸の垂直多関節型)でマスタロボット20よりも大型のロボットである。スレーブロボット30は、安全柵G内に設置されている。スレーブロボット30は、マスタロボット20よりも大型であること、マスタロボット20と形状が若干異なること、開閉ボタン22b及び位置取込ボタン22cを備えていないことを除いて、マスタロボット20と同様の構成を備えている。スレーブロボット30は、基台(ベース)31とアーム32とを備えている。アーム32の先端には、ハンド(図示略)が取り付けられている。スレーブロボット30の各関節(対応関節)は、マスタロボット20の各関節に対応している。
【0038】
基台31の内部には、スレーブロボット30及びハンドの状態を記録する記録部35、及びスレーブロボット30及びハンドの動作を制御する制御部36が設けられている。制御部36は、CPU、ROM、RAM、駆動回路、及び入出力インターフェース等を備えるコンピュータとして構成されている。
【0039】
スレーブロボット30の各関節には、各関節の回転角度を検出するエンコーダがそれぞれ設けられている。すなわち、エンコーダは、アーム32の制御点の位置及び姿勢(以下、「アーム32の位置及び姿勢」という)を検出する。制御点は、アーム32の先端の中央に設定されている。
【0040】
ハンドには、ハンドの開閉位置を検出するエンコーダが設けられている。また、ハンドには、ハンドの把持力を検出する力センサが設けられている。
【0041】
マスタロボット20の制御部26は、マスタロボット20の各関節及びハンド23のエンコーダ、力センサ、開閉ボタン22b、及び位置取込ボタン22cの検出結果を、スレーブロボット30の制御部36へ送信する。
【0042】
制御部36は、スレーブロボット30の各関節の角度を、マスタロボット20の対応する各関節の角度に一致させるように、スレーブロボット30の各関節のモータを制御する。詳しくは、制御部36は、マスタロボット20の各関節のエンコーダ、及びスレーブロボット30の各関節のエンコーダの検出結果に基づいて、スレーブロボット30の各関節のモータをフィードバック制御する。すなわち、スレーブロボット30の各関節は、マスタロボット20の各関節に倣った動きを追従して行う。制御部36は、スレーブロボット30の各関節及びハンドのエンコーダ、並びに力センサの検出結果を、マスタロボット20の制御部26へ送信する。なお、マスタロボット20の制御部26及びスレーブロボット30の制御部36により、主従ロボットの制御装置が構成されている。
【0043】
ユーザが位置取込ボタン22cを押した時に、制御部36は、スレーブロボット30の各関節及びハンドのエンコーダの検出結果に基づいて、その時のアーム32の位置及び姿勢、並びにハンドの開閉位置を、状態情報として記録部35に記録させる。制御部36は、ユーザが位置取込ボタン22cを押す度に、状態情報を時系列に記録部35に記録させる。記録部35は、位置取込ボタン22cにより操作を受け付けた時に、スレーブロボット30の各関節及びハンドのエンコーダによりそれぞれ検出されたアーム32の位置及び姿勢、並びにハンドの開閉位置を状態情報として時系列に記録する。したがって、ユーザは、マスタロボット20のアーム22の移動、ハンドの開閉、及び位置取込を繰り返すことにより、スレーブロボット30のアーム32及びハンドの動作を教示することができる。
【0044】
制御部36は、記録部35により時系列に記録された上記状態情報を再現するように、アーム32及びハンドの動作を制御する。したがって、ユーザは、教示したアーム32及びハンドの動作を、制御部36により再現させることができる。これにより、ユーザは、スレーブロボット30によりワーク等に対して作業を実行させることができる。
【0045】
ここで、スレーブロボット30は、マスタロボット20よりも大型である。このため、マスタロボット20の姿勢をスレーブロボット30の姿勢よりも変化させやすく、マスタロボット20の動作に対するスレーブロボット30の動作の遅れが大きくなりやすい。
【0046】
この点、マスタロボット20の制御部26は、マスタロボット20の各関節の角度θmとスレーブロボット30の対応する各関節の角度θsとの偏差Δθ(θm-θs)が大きいほど、ユーザがマスタロボット20の各関節を動かす際の動作抵抗を大きくする。詳しくは、制御部26は、ユーザがマスタロボット20の各関節を動かす際の動作抵抗として、ユーザがマスタロボット20の各関節を動かす角速度ωと上記偏差Δθとに比例し、且つユーザがマスタロボット20の各関節を動かす向きと逆向きの抵抗トルクT1を各関節に作用させる。
【0047】
具体的には、制御部26は、以下の式(1)により各関節に作用させる抵抗トルクT1を算出する。αは、上記偏差Δθをトルクに変換する変換係数であり、予め実験等に基づいて設定されている。
【0048】
T1=ωα(θm-θs) ・・・(1)
式(1)に対して、任意の所定偏差を想定すれば、以下のようにいうことができる。すなわち、制御部26は、マスタロボット20の各関節の角度θmとスレーブロボット30の各関節の角度θsとの偏差Δθが所定偏差よりも大きい場合にユーザがマスタロボット20の各関節を動かす際の動作抵抗を、偏差Δθが所定偏差よりも小さい場合にユーザがマスタロボット20の各関節を動かす際の動作抵抗よりも大きくする。
【0049】
また、ユーザにより開閉ボタン22b及び位置取込ボタン22cが操作された際に、ユーザの力がボタン22b,22cを介してマスタロボット20に作用し、ユーザの意図に反してマスタロボット20の位置がずれるおそれがある。その場合、スレーブロボット30はマスタロボット20よりも大型であるため、スレーブロボット30の位置が大きくずれるおそれがある。
【0050】
そこで、マスタロボット20の制御部26は、ユーザがボタン22b,22cを操作する際にマスタロボット20の各関節が動くことを抑制する操作抵抗を、マスタロボット20の各関節に作用させる。制御部26は、ユーザがボタン22b,22cを操作する際にボタン22b,22cに作用すると想定される想定力Fが大きいほど、操作抵抗を大きくする。想定力Fは、ボタン22b,22cを機械的に押し下げるために必要な力、及びボタン22b,22cがユーザの操作を検知するまでにユーザが加える平均的な力等に基づいて設定されている。詳しくは、制御部26は、ユーザがボタン22b,22cを操作する際の操作抵抗として、想定力Fに比例し、且つユーザがボタン22b,22cを操作する際にマスタロボット20の各関節が動く向きと逆向きの抵抗トルクT2を各関節に作用させる。
【0051】
具体的には、制御部26は、以下の式(2)により各関節に作用させる抵抗トルクT2を算出する。J(θm)は、マスタロボット20の基台21からボタン22b,22cまでのヤコビ行列であり、ボタン22b,22cに作用する想定力Fを各関節に作用するトルクに変換する。ヤコビ行列J(θm)は周知であるため、ここでは説明を省略する。βは、想定力Fにより各関節に作用するトルクをそれを抑制するトルクに変換する変換係数であり、予め実験等に基づいて設定されている。
【0052】
T2=βJ(θm)F ・・・(2)
すなわち、制御部26は、想定力Fの大きさと、各関節の角度θmと、マスタロボット20におけるボタン22b,22cの位置とに基づいて、操作抵抗を設定する。
【0053】
そして、制御部26は、上記柔軟制御において各関節のモータにより発生させるトルクに、ユーザがマスタロボット20の各関節を動かす向きと逆向きとなるように抵抗トルクT1,T2を加えて最終トルクTfを算出する。そして、制御部26は、マスタロボット20の各関節のモータにより、最終トルクTfを発生させる。
【0054】
以上詳述した本実施形態は、以下の利点を有する。
【0055】
・制御部26は、マスタロボット20の関節の角度θm(以下、「関節の角度θm」という)とスレーブロボット30の対応する関節の角度θs(以下、「対応関節の角度θs」という)との偏差Δθが所定偏差よりも大きい場合にユーザが関節を動かす際の動作抵抗を、偏差Δθが所定偏差よりも小さい場合にユーザが関節を動かす際の動作抵抗よりも大きくする。このため、関節の角度θmと対応関節の角度θsとの偏差Δθが所定偏差よりも小さい場合は、マスタロボット20を素早く動作させることができ、マスタロボット20の動作効率が低下することを抑制することができる。一方、関節の角度θmと対応関節の角度θsとの偏差Δθが所定偏差よりも大きい場合は、マスタロボット20の動作を抑制することができ、マスタロボット20の動作に対するスレーブロボット30の動作の遅れを抑制することができる。
【0056】
・関節の角度θmと対応関節の角度θsとの偏差Δθに応じて、ユーザが関節を動かす際の動作抵抗を大きくしている。このため、スレーブロボット30の最高速度(動作性能)や、マスタロボット20とスレーブロボット30との間の応答速度にかかわらず、マスタロボット20の動作に対するスレーブロボット30の動作の遅れを抑制することができる。例えば、スレーブロボット30の動作性能が十分に高く、偏差Δθが0に近い場合は、動作抵抗を0に近くすることができる。一方、スレーブロボット30の動作性能が低く、偏差Δθが大きい場合は、動作抵抗を大きくすることができる。
【0057】
・制御部26は、偏差Δθが大きいほど、ユーザが関節を動かす際の動作抵抗を大きくする。こうした構成によれば、関節の角度θmと対応関節の角度θsとの偏差Δθが小さい場合は、マスタロボット20の動作をできるだけ抑制せず、偏差Δθが大きくなるほどマスタロボット20の動作を強く抑制することができる。
【0058】
・ユーザが関節を動かす際の動作抵抗として、ユーザが関節を動かす角速度ωと偏差Δθとに比例し、且つユーザが関節を動かす向きと逆向きの抵抗トルクT1を関節に作用させる。こうした構成によれば、ユーザがマスタロボット20の関節を動かす角速度ωが速いほど動作抵抗を大きくすることができ、関節の角速度ωが過大になることを抑制することができる。したがって、マスタロボット20の動作に対してスレーブロボット30の動作が遅れることを未然に抑制することができる。さらに、マスタロボット20の動作に対してスレーブロボット30の動作が遅れた場合は、その遅れ量に比例してマスタロボット20の動作を抑制することができる。
【0059】
・制御部26は、ユーザがボタン22b,22cを操作する際にマスタロボット20の関節が動くことを抑制する操作抵抗を、関節に作用させる。したがって、ユーザによりボタン22b,22cが操作された際に、ユーザの意図に反してマスタロボット20の位置がずれること、ひいてはスレーブロボット30の位置が大きくずれることを抑制することができる。
【0060】
・ユーザがボタン22b,22cを操作する際にボタン22b,22cに作用すると想定される想定力Fが大きいほど、操作抵抗を大きくする。こうした構成によれば、ユーザがボタン22b,22cを操作する際にボタン22b,22cに作用すると想定される力が大きい場合であっても、スレーブロボット30の位置が大きくずれることを抑制することができる。
【0061】
・想定力Fの大きさと、関節の角度θmと、マスタロボット20におけるボタン22b,22cの位置とに基づいて、操作抵抗を設定する。したがって、マスタロボット20の構成及び姿勢に応じて操作抵抗を設定することができ、マスタロボット20の動作を必要以上に抑制しないようにすることがきる。
【0062】
・マスタロボット20は、関節を複数備えている。スレーブロボット30は、マスタロボット20の複数の関節にそれぞれ対応する対応関節を備えている。このため、スレーブロボット30の複数の対応関節は、マスタロボット20のそれぞれ対応する関節に倣った動きを追従して行う。そして、制御部26は、マスタロボット20の複数の関節にそれぞれ動作抵抗を作用させる。このため、マスタロボット20の動作全体に対するスレーブロボット30の動作全体の遅れを抑制することができる。
【0063】
・制御部26は、マスタロボット20の複数の関節にそれぞれ操作抵抗を作用させる。このため、ユーザがボタン22b,22cを操作する際に、マスタロボット20全体の位置がずれること、ひいてはスレーブロボット30全体の位置がすれることを抑制することができる。
【0064】
なお、上記の実施形態を、以下のように変更して実施することもできる。上記実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0065】
・関節の角度θmと対応関節の角度θsとの偏差Δθが大きいほど、ユーザが関節を動かす際の動作抵抗を大きくする方法として、T1=ωα(θm-θs)^2の式により、抵抗トルクT1を算出してもよい。(θm-θs)^2は、(θm-θs)の2乗を表す。こうした構成によれば、関節の角度θmと対応関節の角度θsとの偏差Δθが小さい場合は、マスタロボット20の動作をできるだけ抑制せず、偏差Δθが大きくなるほどマスタロボット20の動作をさらに強く抑制することができる。
【0066】
・制御部36は、スレーブロボット30のアーム32の位置及び姿勢を、マスタロボット20のアーム22の位置及び姿勢に一致させるように、スレーブロボット30の各関節のモータを制御してもよい。この場合、アーム32の位置及び姿勢をアーム22の現在の位置及び姿勢に対応する位置及び姿勢へ最短経路で移動させると、アーム32の位置がユーザの意図しない経路を移動するおそれがある。この点、マスタロボット20の関節の角度θmとスレーブロボット30の対応関節の角度θsとの偏差Δθが大きいほど、ユーザが関節を動かす際の動作抵抗を大きくすることにより、マスタロボット20の動作を抑制することができ、アーム32の位置がユーザの意図しない経路を移動することを抑制することができる。
【0067】
・ユーザがボタン22b,22cを操作する際に上記抵抗トルクT2を各関節に常に作用させつつ、ボタン22b,22cが操作されたことを検知した時から、ユーザがボタン22b,22cを操作する際の操作抵抗を増大させることもできる。また、制御部26は、ボタン22b,22cが操作されたことを検知したことを条件として、ユーザがボタン22b,22cを操作する際の操作抵抗を、マスタロボット20の各関節に作用させることもできる。また、操作抵抗を省略して、上記動作抵抗のみをマスタロボット20に作用させることもできる。
【0068】
・ハンド23の開閉ボタン22b及び位置取込ボタン22cの一方のみを、マスタロボット20に設けることもできる。また、ユーザにより操作された場合に操作されたことを通知する操作部として、押し下げ式のボタン22b,22cに限らず、スライド式のスイッチや押し倒し式のレバー等を採用することもできる。その場合も、制御部26は、ユーザが操作部を操作する力の方向に応じて、ユーザが操作部を操作する際にマスタロボット20の関節が動くことを抑制する操作抵抗を、各関節に作用させればよい。また、操作部をマスタロボット20とは別体の操作器等に設けることもできる。
【0069】
・制御部26は、上記偏差Δθが所定偏差よりも大きいことを条件として、ユーザがマスタロボット20の各関節を動かす際に動作抵抗を作用させることもできる。こうした構成によれば、偏差Δθが所定偏差よりも大きい場合にマスタロボット20の動作を抑制し、偏差Δθが所定偏差よりも小さい場合にマスタロボット20の動作を抑制しないようにすることができる。
【0070】
・制御部26は、ユーザが関節を動かす際の動作抵抗として、ユーザが関節を動かす角速度ωには比例せず、上記偏差Δθに比例する抵抗トルクT1を関節に作用させることもできる。
【0071】
・制御部26は、マスタロボット20においてユーザがボタン22b,22cを操作する際に動く可能性のある複数の関節のうち、一部の関節に操作抵抗を作用させてもよい。例えば、アーム22において基台21に近い関節等、ユーザがボタン22b,22cに力を加えた際に動きにくい関節には、操作抵抗を作用させないようにすることもできる。
【0072】
・制御部26は、ユーザがアーム22に力を加えた際に動く可能性のある複数の関節のうち、一部の関節に動作抵抗を作用させてもよい。例えば、アーム22において基台21に近い関節等、ユーザがアーム22に力を加えた際に速く動きにくい関節には、動作抵抗を作用させないようにすることもできる。
【0073】
・ユーザにより加えられた力に倣ってマスタロボット20の関節を動かす際に、制御部26は、アーム22に作用する重力のみを補償するトルクを各関節のモータにより発生させてもよい。
【0074】
・マスタロボット20及びスレーブロボット30は、6軸の垂直多関節型ロボットに限らず、5軸以下又は7軸以上の垂直多関節型のロボットや、水平多関節型のロボットであってもよい。
【符号の説明】
【0075】
10…システム、20…マスタロボット(主ロボット)、26…制御部、30…スレーブロボット(従ロボット)、36…制御部。
図1