(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 A
B25J9/22 A
(21)【出願番号】P 2020009764
(22)【出願日】2020-01-24
【審査請求日】2022-10-03
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】100121821
【氏名又は名称】山田 強
(74)【代理人】
【識別番号】100125575
【氏名又は名称】松田 洋
(72)【発明者】
【氏名】佐藤 晶則
(72)【発明者】
【氏名】福岡 貴史
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2017-013167(JP,A)
【文献】特開2018-192600(JP,A)
【文献】特開2019-055459(JP,A)
【文献】特開2019-217557(JP,A)
【文献】特開2002-307336(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ユーザにより加えられた力の大きさ及び方向に基づいて動作する主ロボットと、前記主ロボットに倣った動作を追従して行う従ロボットと、を制御する制御装置であって、
前記従ロボットの周囲に仮想障害物を設定する設定部と、
前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記仮想障害物を押すように前記従ロボットを動作させる前記主ロボットの第1方向への動作を規制しつつ、前記主ロボットの制御を継続する制御部と、
を備え
、
前記制御部は、前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記主ロボットの前記第1方向への動作を規制しつつ、前記仮想障害物に沿うように前記従ロボットを動作させる前記主ロボットの第2方向への動作を許容し、
前記制御部は、前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記ユーザにより加えられた前記力を、前記第1方向の成分を0にし且つ前記第2方向の成分を維持した第1変換力に変換し、前記第1変換力の大きさ及び方向に基づいて前記主ロボットを動作させる、主従ロボットの制御装置。
【請求項2】
ユーザにより加えられた力の大きさ及び方向に基づいて動作する主ロボットと、前記主ロボットに倣った動作を追従して行う従ロボットと、を制御する制御装置であって、
前記従ロボットの周囲に仮想障害物を設定する設定部と、
前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記仮想障害物を押すように前記従ロボットを動作させる前記主ロボットの第1方向への動作を規制しつつ、前記主ロボットの制御を継続する制御部と、
を備え、
前記制御部は、前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記主ロボットの前記第1方向への動作を規制しつつ、前記仮想障害物に沿うように前記従ロボットを動作させる前記主ロボットの第2方向への動作を許容し、
前記制御部は、
前記設定部により設定された前記仮想障害物に前記従ロボットが衝突し、且つ前記ユーザにより加えられた前記力の前記第1方向の成分が前記第2方向の成分よりも小さい場合に、前記ユーザにより加えられた前記力を、前記第1方向の成分を0にし且つ前記第2方向の成分を維持した第1変換力に変換し、前記第1変換力の大きさ及び方向に基づいて前記主ロボットを動作させ、
前記設定部により設定された前記仮想障害物に前記従ロボットが衝突し、且つ前記ユーザにより加えられた前記力の前記第1方向の成分が前記第2方向の成分よりも大きい場合に、前記ユーザにより加えられた前記力を、前記第1方向の成分を0にし且つ前記第2方向の成分を縮小した第2変換力に変換し、前記第2変換力の大きさ及び方向に基づいて前記主ロボットを動作させる
、主従ロボットの制御装置。
【請求項3】
前記従ロボットは、前記主ロボットよりも大型であり、
前記制御装置は、前記従ロボットの動作の教示に用いられる、請求項
1又は2に記載の主従ロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザにより加えられた力の大きさ及び方向に基づいて動作する主ロボットと、主ロボットに倣った動作を追従して行う従ロボットとを制御する制御装置に関する。
【背景技術】
【0002】
従来、ユーザによりロボットに加えられた力の大きさ及び方向に基づいてロボットを動作させ、ロボットの動作を直接教示する制御装置がある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、上記主ロボットと上記従ロボットとを備えるシステムにおいて、主ロボットの動作を通じて従ロボットの動作を制御すると、以下の問題が生じることに本願発明者は着目した。
【0005】
すなわち、主ロボットの周囲環境と従ロボットの周囲環境とは異なるため、ユーザは、主ロボットを動作させる際に、障害物に従ロボットが衝突する危険性を把握することが困難である。また、従ロボットが障害物に接近する度に制御を中断すると、従ロボットを効率的に動作させることができない。
【0006】
本発明は、こうした課題を解決するためになされたものであり、その主たる目的は、主従ロボットの制御装置において、障害物に従ロボットが衝突する危険性をユーザが把握し易くするとともに、従ロボットを効率的に動作させることにある。
【課題を解決するための手段】
【0007】
上記課題を解決するための第1の手段は、
ユーザにより加えられた力の大きさ及び方向に基づいて動作する主ロボットと、前記主ロボットに倣った動作を追従して行う従ロボットと、を制御する制御装置であって、
前記従ロボットの周囲に仮想障害物を設定する設定部と、
前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記仮想障害物を押すように前記従ロボットを動作させる前記主ロボットの第1方向への動作を規制しつつ、前記主ロボットの制御を継続する制御部と、
を備える。
【0008】
上記構成によれば、主ロボットは、ユーザにより加えられた力の大きさ及び方向に基づいて動作する。従ロボットは、主ロボットに倣った動作を追従して行う。
【0009】
ここで、設定部は、従ロボットの周囲に仮想障害物を設定する。仮想障害物は、例えば、従ロボットの周囲環境に実際に存在する実障害物と同じ位置に同じ大きさで設定してもよいし、実障害物よりも一回り大きく設定してもよい。そして、制御部は、設定部により設定された仮想障害物に従ロボットが衝突した場合に、仮想障害物を押すように従ロボットを動作させる主ロボットの第1方向への動作を規制する。このため、仮想障害物に従ロボットが衝突した場合に、従ロボットが仮想障害物を押すように動作することを規制することができる。さらに、主ロボットに力を加えているユーザは、主ロボットの第1方向への動作が規制されたことで、従ロボットが仮想障害物に衝突したこと、すなわち実障害物に従ロボットが衝突する危険性を把握することができる。
【0010】
また、制御部は、仮想障害物に従ロボットが衝突した場合に、主ロボットの第1方向への動作を規制しつつ、主ロボットの制御を継続する。したがって、従ロボットが仮想障害物に衝突しても制御を中断しないようにすることができ、従ロボットを効率的に動作させることができる。
【0011】
仮想障害物に従ロボットが衝突した場合に、仮想障害物を押すように従ロボットを動作させる主ロボットの第1方向への動作を規制する際に、主ロボットの動作全体を規制することが考えられる。この場合、主ロボットが少しでも第1方向へ動作しようとすると主ロボットを動作させることができなくなるため、従ロボットを動作させる操作性が低下するおそれがある。
【0012】
この点、第2の手段では、前記制御部は、前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記主ロボットの前記第1方向への動作を規制しつつ、前記仮想障害物に沿うように前記従ロボットを動作させる前記主ロボットの第2方向への動作を許容する。こうした構成によれば、仮想障害物に従ロボットが衝突した場合に、仮想障害物に沿うように従ロボットを動作させることができる。したがって、仮想障害物に近接する位置まで従ロボットを動作させることが容易となる。
【0013】
具体的には、第3の手段のように、前記制御部は、前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記ユーザにより加えられた力を前記第1方向の成分を0にし且つ前記第2方向の成分を維持した第1変換力に変換し、前記第1変換力の大きさ及び方向に基づいて前記主ロボットを動作させる、といった構成を採用することができる。こうした構成によれば、仮想障害物に従ロボットが衝突した場合に、仮想障害物を押すように従ロボットを動作させることを規制し、且つ仮想障害物に沿うように従ロボットを動作させることを、簡単な演算により実現することができる。
【0014】
第4の手段では、前記制御部は、前記設定部により設定された前記仮想障害物に前記従ロボットが衝突し、且つ前記ユーザにより加えられた前記力の前記第1方向の成分が前記第2方向の成分よりも小さい場合に、前記ユーザにより加えられた前記力を、前記第1方向の成分を0にし且つ前記第2方向の成分を維持した第1変換力に変換し、前記第1変換力の大きさ及び方向に基づいて前記主ロボットを動作させ、前記設定部により設定された前記仮想障害物に前記従ロボットが衝突し、且つ前記ユーザにより加えられた前記力の前記第1方向の成分が前記第2方向の成分よりも大きい場合に、前記ユーザにより加えられた前記力を、前記第1方向の成分を0にし且つ前記第2方向の成分を縮小した第2変換力に変換し、前記第2変換力の大きさ及び方向に基づいて前記主ロボットを動作させる。
【0015】
上記構成によれば、仮想障害物に従ロボットが衝突し、且つユーザにより加えられた力の第1方向の成分が第2方向の成分よりも小さい場合に、第3の手段と同様の制御が行われる。このため、仮想障害物に従ロボットが衝突した場合に、仮想障害物を押すように従ロボットを動作させることを規制し、且つ仮想障害物に沿うように従ロボットを動作させることができる。一方、仮想障害物に従ロボットが衝突し、且つユーザにより加えられた力の第1方向の成分が第2方向の成分よりも大きい場合は、ユーザにより加えられた力の第2方向の成分が縮小された第2変換力の大きさ及び方向に基づいて、主ロボットが動作させられる。このため、ユーザは、従ロボットが仮想障害物に沿う方向よりも仮想障害物を押す方向に動作しようとしていることを把握し易くなるとともに、従ロボットを慎重に動作させることができる。
【0016】
第5の手段では、前記制御部は、前記設定部により設定された前記仮想障害物に前記従ロボットが衝突した場合に、前記主ロボットの前記第1方向への動作を規制する際に前記主ロボットの動作全体を規制する。こうした構成よれば、仮想障害物に前記従ロボットが衝突した場合に、仮想障害物から離れるように従ロボットを動作させる主ロボットの動作しか許容されなくなる。このため、仮想障害物に従ロボットが衝突した場合に、仮想障害物から離れるように従ロボットを動作させることをユーザに促すことができる。
【0017】
第6の手段は、
ユーザにより加えられた力の大きさ及び方向に基づいて動作する主ロボットと、前記主ロボットに倣った動作を追従して行う従ロボットと、を制御する制御装置であって、
前記主ロボットの周囲に仮想障害物を設定する設定部と、
前記設定部により設定された前記仮想障害物に前記主ロボットが衝突した場合に、前記仮想障害物を押す前記主ロボットの第1方向への動作を規制しつつ、前記主ロボットの制御を継続する制御部と、
を備える。
【0018】
上記構成によれば、設定部は、主ロボットの周囲に仮想障害物を設定する。仮想障害物は、例えば、主ロボットと従ロボットとの大きさの違いを考慮して、従ロボットの周囲環境に実際に存在する実障害物の位置と大きさとに対応させて設定してもよいし、実障害物よりも一回り大きい大きさに対応させて設定してもよい。そして、制御部は、設定部により設定された仮想障害物に主ロボットが衝突した場合に、仮想障害物を押す主ロボットの第1方向への動作を規制する。このため、仮想障害物に主ロボットが衝突した場合、すなわち実障害物に従ロボットが衝突した又は衝突する危険が生じた場合に、従ロボットが実障害物を押すように動作することを規制することができる。さらに、主ロボットに力を加えているユーザは、主ロボットの第1方向への動作が規制されたことで、従ロボットが実障害物に衝突した又は衝突する危険が生じたことを把握することができる。
【0019】
また、制御部は、仮想障害物に主ロボットが衝突した場合に、主ロボットの第1方向への動作を規制しつつ、主ロボットの制御を継続する。したがって、主ロボットが仮想障害物に衝突しても制御を中断しないようにすることができ、従ロボットを効率的に動作させることができる。
【0020】
第7の手段では、前記従ロボットは、前記主ロボットよりも大型であり、前記制御装置は、前記従ロボットの動作の教示に用いられる。こうした構成によれば、従ロボットが主ロボットよりも大型であり、ユーザが従ロボットに力を加えて動作を直接教示することが難しい場合に、主ロボットの動作を通じて従ロボットの動作を教示することができる。
【図面の簡単な説明】
【0021】
【
図1】マスタロボットとスレーブロボットとを備えるシステムを示す模式図
【
図2】スレーブロボットのアームと仮想障害物との衝突状態を模式的に示す平面図
【
図3】第1実施形態において、
図2の衝突状態でのマスタロボットのアームと、外力及びその成分を模式的に示す平面図
【
図4】第2実施形態において、
図2の衝突状態でのマスタロボットのアームと、外力の第1変換力とを模式的に示す平面図
【
図5】第2実施形態において、
図2の衝突状態でのマスタロボットのアームと、外力の第2変換力とを模式的に示す平面図
【
図6】第3実施形態において、
図2の衝突状態でのマスタロボットのアームと、外力の第3変換力とを模式的に示す平面図
【
図7】第3実施形態において、
図2の衝突状態でのマスタロボットのアームと、外力の第4変換力とを模式的に示す平面図
【発明を実施するための形態】
【0022】
(第1実施形態)
以下、マスタロボットとスレーブロボットとを備えるシステムに適用される制御装置に具現化した第1実施形態について、図面を参照しつつ説明する。
【0023】
図1に示すように、システム10は、マスタロボット20とスレーブロボット30とを備えている。
【0024】
マスタロボット20(主ロボット)は、例えば6軸の垂直多関節型ロボットであり、基台(ベース)21とアーム22とを備えている。アーム22の隣り合うリンクは、関節を介して相対回転可能に連結されている。各関節は、各関節に対応する各モータにより駆動される。
【0025】
アーム22の先端には、ハンド23が取り付けられている。ハンド23は、一対の爪23A,23Bを備えており、爪23A,23Bの間隔を拡大及び縮小する開閉動作を行う。爪23A,23Bは、モータにより駆動される。
【0026】
基台21の内部には、マスタロボット20及びハンド23の状態を記録する記録部25、及びマスタロボット20及びハンド23の動作を制御する制御部26が設けられている。制御部26の機能は、CPU、ROM、RAM、駆動回路、及び入出力インターフェース等を備えるコンピュータにより実現されている。
【0027】
マスタロボット20のリンク22aには、ハンド23の開閉ボタン22b及び位置取込ボタン22cが設けられている。制御部26は、ユーザが開閉ボタン22b(操作部)の開部分を押している間、ハンド23を第1速度で開く動作を実行する。制御部26は、ユーザが開閉ボタン22bの閉部分を押している間、ハンド23を第2速度で閉じる動作を実行する。第2速度は、第1速度と同じ速度であってもよいし、第1速度よりも低い速度であってもよい。制御部26は、ユーザが開閉ボタン22bを押すことをやめた時のハンド23の開閉位置を保持する。すなわち、ハンド23は、ユーザにより開閉位置を変更して保持可能である。位置取込ボタン22cについては後述する。
【0028】
マスタロボット20の各関節には、各関節の回転角度を検出するエンコーダがそれぞれ設けられている。すなわち、エンコーダは、アーム22の制御点の位置及び姿勢(以下、「アーム22の位置及び姿勢」という)を検出する。制御点は、アーム22の先端の中央に設定されている。また、アーム22には、力覚センサやトルクセンサが設けられており、力覚センサやトルクセンサはアーム22に作用する(加えられる)外力を検出する。外力は、各方向への力とモーメントとを含む。エンコーダ、力覚センサ、及びトルクセンサの検出結果は、制御部26へ入力される。
【0029】
ハンド23には、ハンド23の開閉位置を検出するエンコーダが設けられている。また、ハンド23には、ハンド23の把持力を検出する力センサが設けられている。力センサは、爪23A,23Bを駆動するモータに流れる電流を検出する電流センサや、爪23A,23Bに作用する圧力を検出する圧力センサ等である。エンコーダ、及び力センサの検出結果は、制御部26へ入力される。
【0030】
制御部26は、アーム22に作用する外力に従って、アーム22の位置及び姿勢を制御する。詳しくは、制御部26は、アーム22に作用する重力を補償するトルクを各関節のモータにより発生させるとともに、検出した外力の大きさ及び方向に基づいてアーム22を動作させる力制御を行う。力制御では、外力の方向に、外力の大きさに応じて、制御点の位置及び姿勢の指令値を更新する。そして、制御部26は、アーム22に作用する外力がなくなった時のアーム22の位置及び姿勢を保持する。すなわち、マスタロボット20は、ユーザによりアーム22の位置及び姿勢を変更して保持可能である。本実施形態では、ユーザは、ダイレクトティーチによりアーム22を直接掴んで移動させることができ、そしてアーム22の位置及び姿勢を保持することができる。
【0031】
ユーザが位置取込ボタン22cを押した時に、制御部26は、各関節及びハンド23のエンコーダ、力センサの検出結果に基づいて、その時のアーム22の位置及び姿勢、ハンド23の開閉位置、把持力、及び把持状態を、状態情報として記録部25に記録させる。制御部26は、ユーザが位置取込ボタン22cを押す度に、状態情報を時系列に記録部25に記録させる。すなわち、位置取込ボタン22c(操作部)は、アーム22及びハンド23の状態を記録する操作を受け付け、ユーザにより操作された場合に操作されたことを通知する。記録部25は、位置取込ボタン22cにより操作を受け付けた時に、各関節の及びハンド23のエンコーダ、及び力センサによりそれぞれ検出されたアーム22の位置及び姿勢、ハンド23の開閉位置、把持力、及び把持状態を状態情報として時系列に記録する。したがって、ユーザは、アーム22の移動、ハンド23の開閉、及び位置取込を繰り返すことにより、アーム22及びハンド23の動作を教示することができる。
【0032】
制御部26は、記録部25により時系列に記録された上記状態情報を再現するように、アーム22及びハンド23の動作を制御する。したがって、ユーザは、教示したアーム22及びハンド23の動作を、制御部26により再現させることができる。これにより、ユーザは、マスタロボット20によりワーク等に対して作業を実行させることができる。
【0033】
マスタロボット20には、ケーブル29によってスレーブロボット30が接続されている。スレーブロボット30(従ロボット)は、マスタロボット20と同型式(例えば6軸の垂直多関節型)でマスタロボット20よりも大型のロボットである。スレーブロボット30は、安全柵G内に設置されている。スレーブロボット30は、マスタロボット20よりも大型であること、マスタロボット20と形状が若干異なること、開閉ボタン22b及び位置取込ボタン22cを備えていないこと、設定部37を備えていることを除いて、マスタロボット20と同様の構成を備えている。スレーブロボット30は、基台(ベース)31とアーム32とを備えている。アーム32の先端には、ハンド(図示略)が取り付けられている。スレーブロボット30の各関節(対応関節)は、マスタロボット20の各関節に対応している。
【0034】
基台31の内部には、記録部35、制御部36、及び設定部37が設けられている。記録部35は、スレーブロボット30及びハンドの状態を記録する。制御部36は、スレーブロボット30及びハンドの動作を制御する。設定部37については後述する。制御部36及び設定部37の機能は、CPU、ROM、RAM、駆動回路、及び入出力インターフェース等を備えるコンピュータにより実現されている。
【0035】
スレーブロボット30の各関節には、各関節の回転角度を検出するエンコーダがそれぞれ設けられている。すなわち、エンコーダは、アーム32の制御点の位置及び姿勢(以下、「アーム32の位置及び姿勢」という)を検出する。制御点は、アーム32の先端の中央に設定されている。エンコーダの検出結果は、制御部36へ入力される。
【0036】
ハンドには、ハンドの開閉位置を検出するエンコーダが設けられている。また、ハンドには、ハンドの把持力を検出する力センサが設けられている。エンコーダ、及び力センサの検出結果は、制御部36へ入力される。
【0037】
マスタロボット20の制御部26は、マスタロボット20の各関節及びハンド23のエンコーダ、力センサ、開閉ボタン22b、及び位置取込ボタン22cの検出結果を、スレーブロボット30の制御部36へ送信する。
【0038】
制御部36は、スレーブロボット30の各関節の角度を、マスタロボット20の対応する各関節の角度に一致させるように、スレーブロボット30の各関節のモータを制御する。詳しくは、制御部36は、マスタロボット20の各関節のエンコーダ、及びスレーブロボット30の各関節のエンコーダの検出結果に基づいて、スレーブロボット30の各関節のモータをフィードバック制御する。すなわち、スレーブロボット30の各関節は、マスタロボット20の各関節に倣った動きを追従して行う。制御部36は、スレーブロボット30の各関節及びハンドのエンコーダ、並びに力センサの検出結果を、マスタロボット20の制御部26へ送信する。なお、マスタロボット20の制御部26、並びにスレーブロボット30の制御部36及び設定部37により、主従ロボットの制御装置が構成されている。
【0039】
ユーザが位置取込ボタン22cを押した時に、制御部36は、スレーブロボット30の各関節及びハンドのエンコーダの検出結果に基づいて、その時のアーム32の位置及び姿勢、並びにハンドの開閉位置を、状態情報として記録部35に記録させる。制御部36は、ユーザが位置取込ボタン22cを押す度に、状態情報を時系列に記録部35に記録させる。記録部35は、位置取込ボタン22cにより操作を受け付けた時に、スレーブロボット30の各関節及びハンドのエンコーダによりそれぞれ検出されたアーム32の位置及び姿勢、並びにハンドの開閉位置を状態情報として時系列に記録する。したがって、ユーザは、マスタロボット20のアーム22の移動、ハンドの開閉、及び位置取込を繰り返すことにより、スレーブロボット30のアーム32及びハンドの動作を教示することができる。
【0040】
制御部36は、記録部35により時系列に記録された上記状態情報を再現するように、アーム32及びハンドの動作を制御する。したがって、ユーザは、教示したアーム32及びハンドの動作を、制御部36により再現させることができる。これにより、ユーザは、スレーブロボット30によりワーク等に対して作業を実行させることができる。
【0041】
ここで、マスタロボット20の周囲環境と、スレーブロボット30の周囲環境とは異なる。このため、ユーザは、マスタロボット20を動作させる際に、障害物にスレーブロボット30が衝突する危険性を把握することが困難である。また、スレーブロボット30が障害物に接近する度に制御を中断すると、スレーブロボット30を効率的に動作させることができない。
【0042】
この点、上記設定部37は、スレーブロボット30の周囲環境に実際に存在する実障害物の位置、形状、大きさ等を把握している。例えば、ユーザは、実障害物の位置、形状、大きさ等を、設定部37に予め登録しておけばよい。そして、設定部37は、スレーブロボット30の周囲に仮想障害物B1,B2を設定する。ここでは、設定部37は、実障害物と同じ位置に、実障害物と同じ形状で、実障害物よりも一回り大きく仮想障害物B1,B2を設定している。仮想障害物B1,B2は、スレーブロボット30が衝突を避けるべき仮想的な障害物である。なお、モニタ等(表示装置)に、スレーブロボット30のシミュレーション画像及び仮想障害物B1,B2を表示してもよいし、表示しなくてもよい。また、現実の景色に重ねて仮想画像を表示する眼鏡型表示装置において、仮想障害物B1,B2を、スレーブロボット30に対応した位置に表示することもできる。
【0043】
制御部36は、スレーブロボット30の各関節のエンコーダの検出結果、アーム32の形状寸法、及び仮想障害物B1,B2の位置,形状,大きさ(位置等)に基づいて、アーム32が仮想障害物B1,B2に衝突したか否かを判定する。
図2は、スレーブロボット30のアーム32と仮想障害物B1との衝突状態を模式的に示す平面図である。
図2に示すように、制御部36は、アーム32が仮想障害物B1に衝突したと判定した場合、衝突点Cにおける仮想障害物B1の外面Sに対する法線方向Nを算出する。詳しくは、仮想障害物B1の位置、形状、大きさ、及び衝突点Cの位置に基づいて、衝突点Cにおける外面Sに対する法線方向Nを算出する。そして、制御部36は、衝突発生の情報と法線方向Nとを、マスタロボット20の制御部26へ送信する。
【0044】
図3は、
図2の衝突状態でのマスタロボット20のアーム22と、外力F1及びその成分F1a及びF1bを模式的に示す平面図である。スレーブロボット30と位置基準を一致させた座標空間において、法線方向Nにa軸をとり、a軸に垂直な方向にb軸をとっている。外力F1は、ユーザがマスタロボット20に加えた力であり、その大きさ及び方向が力覚センサやトルクセンサにより検出される。外力F1のa軸成分がF1aであり、b軸成分がF1bである。
【0045】
マスタロボット20の制御部26は、スレーブロボット30の制御部36から衝突発生の情報と法線方向Nとを受信した場合に、以下の制御を行う。制御部26は、b軸方向と外力F1の大きさ及び方向とに基づいて(b軸と外力F1との角度、及び外力F1の大きさに基づいて)、外力F1のb軸成分F1bを算出する。そして、外力F1の大きさ及び方向に基づく力制御に代えて、b軸成分F1bの大きさ及び方向に基づく力制御により、アーム22を動作させる。換言すれば、外力F1を、a軸方向(第1方向)の成分を0にし且つb軸方向(第2方向)の成分を維持した第1変換力(=F1b)に変換し、第1変換力の大きさ及び方向に基づいてマスタロボット20を動作させる。すなわち、制御部26は、仮想障害物B1,B2を押すようにスレーブロボット30を動作させるマスタロボット20のa軸方向への動作を規制しつつ、マスタロボット20の制御を継続する。詳しくは、制御部26は、マスタロボット20の法線方向Nへの動作を規制しつつ、仮想障害物B1の外面Sに沿うようにスレーブロボット30を動作させるマスタロボット20の法線方向Nに垂直な方向(第2方向)への動作を許容する。
【0046】
そして、スレーブロボット30の制御部36は、スレーブロボット30の各関節の角度を、マスタロボット20の対応する各関節の角度に一致させるように、スレーブロボット30の各関節のモータを制御する。その結果、仮想障害物B1にスレーブロボット30が衝突した場合に、スレーブロボット30のアーム32は、仮想障害物B1の外面Sに沿うように動作する。
【0047】
以上詳述した本実施形態は、以下の利点を有する。
【0048】
・制御部26は、設定部37により設定された仮想障害物B1にスレーブロボット30が衝突した場合に、仮想障害物B1を押すようにスレーブロボット30を動作させるマスタロボット20の法線方向N(a軸方向)への動作を規制する。このため、仮想障害物B1にスレーブロボット30が衝突した場合に、スレーブロボット30が仮想障害物B1を押すように動作すること、ひいては実障害物に衝突することを規制することができる。さらに、マスタロボット20に力を加えているユーザは、マスタロボット20の法線方向Nへの動作が規制されたことで、スレーブロボット30が仮想障害物B1に衝突したこと、すなわち実障害物にスレーブロボット30が衝突する危険性を把握することができる。
【0049】
・制御部26は、仮想障害物B1にスレーブロボット30が衝突した場合に、マスタロボット20の法線方向Nへの動作を規制しつつ、マスタロボット20の制御を継続する。したがって、スレーブロボット30が仮想障害物B1に衝突しても制御を中断しないようにすることができ、スレーブロボット30を効率的に動作させることができる。
【0050】
・制御部26は、設定部37により設定された仮想障害物B1にスレーブロボット30が衝突した場合に、マスタロボット20の法線方向Nへの動作を規制しつつ、仮想障害物B1に沿うようにスレーブロボット30を動作させる、マスタロボット20の法線方向Nに垂直な方向(b軸方向)への動作を許容する。こうした構成によれば、仮想障害物B1にスレーブロボット30が衝突した場合に、仮想障害物B1に沿うようにスレーブロボット30を動作させることができる。したがって、仮想障害物B1に近接する位置までスレーブロボット30を動作させることが容易となる。
【0051】
・制御部26は、設定部37により設定された仮想障害物B1にスレーブロボット30が衝突した場合に、ユーザにより加えられた力を法線方向Nの成分を0にし且つ法線方向Nに垂直な方向の成分を維持した第1変換力に変換し、第1変換力の大きさ及び方向に基づいてマスタロボット20を動作させる。こうした構成によれば、仮想障害物B1にスレーブロボット30が衝突した場合に、仮想障害物B1を押すようにスレーブロボット30を動作させることを規制し、且つ仮想障害物B1に沿うようにスレーブロボット30を動作させることを、簡単な演算により実現することができる。
【0052】
・スレーブロボット30は、マスタロボット20よりも大型であり、制御装置(制御部26,36、設定部37)は、スレーブロボット30の動作の教示に用いられる。こうした構成によれば、スレーブロボット30がマスタロボット20よりも大型であり、ユーザがスレーブロボット30に力を加えて動作を直接教示することが難しい場合に、マスタロボット20の動作を通じてスレーブロボット30の動作を教示することができる。
【0053】
(第2実施形態)
以下、第2実施形態について、第1実施形態との相違点を中心に説明する。本実施形態では、外力のa軸成分がb軸成分よりも小さいか否かにより、力制御に用いる変換力を変更している。なお、第1実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0054】
図4は、
図2の衝突状態でのマスタロボット20のアーム22と、外力F2の第1変換力F2cとを模式的に示す平面図である。F2aは外力F2のa軸成分であり、F2bは外力F2のb軸成分である。
図4は、外力F2のa軸成分F2aがb軸成分F2bよりも小さい場合を示している。
【0055】
この場合、マスタロボット20の制御部26は、ユーザにより加えられた力である外力F2を、a軸方向(第1方向)の成分を0にし且つb軸方向(第2方向)の成分を維持した第1変換力F2cに変換する。第1変換力F2cは、外力F2のb軸成分F2bと等しい。制御部26は、外力F2の大きさ及び方向に基づく力制御に代えて、第1変換力F2cの大きさ及び方向に基づく力制御により、アーム22を動作させる。そして、スレーブロボット30の制御部36は、スレーブロボット30の各関節の角度を、マスタロボット20の対応する各関節の角度に一致させるように、スレーブロボット30の各関節のモータを制御する。
【0056】
図5は、
図2の衝突状態でのマスタロボット20のアーム22と、外力F3の第2変換力F3cとを模式的に示す平面図である。F3aは外力F3のa軸成分であり、F3bは外力F3のb軸成分である。
図5は、外力F3のa軸成分F3aがb軸成分F3bよりも大きい場合を示している。
【0057】
この場合、マスタロボット20の制御部26は、ユーザにより加えられた力である外力F3を、a軸方向(第1方向)の成分を0にし且つb軸方向(第2方向)の成分を縮小した第2変換力F3cに変換する。第2変換力F3cは、外力F3のb軸成分F3bに、a軸成分F3aの大きさに対するb軸成分F3bの大きさの割合を掛けて算出する(F3c=F3b×|F3b|/|F3a|)。制御部26は、外力F3の大きさ及び方向に基づく力制御に代えて、第2変換力F3cの大きさ及び方向に基づく力制御により、アーム22を動作させる。そして、スレーブロボット30の制御部36は、スレーブロボット30の各関節の角度を、マスタロボット20の対応する各関節の角度に一致させるように、スレーブロボット30の各関節のモータを制御する。
【0058】
以上詳述した本実施形態は、以下の利点を有する。ここでは、第1実施形態と異なる利点のみを述べる。
【0059】
・仮想障害物B1にスレーブロボット30が衝突し、且つユーザにより加えられた力(外力F2)のa軸方向の成分(F2a)がb軸方向の成分(F2b)よりも小さい場合に、第1実施形態と同様の制御が行われる。このため、仮想障害物B1にスレーブロボット30が衝突した場合に、仮想障害物B1を押すようにスレーブロボット30を動作させることを規制し、且つ仮想障害物B1に沿うようにスレーブロボット30を動作させることができる。さらに、外力F2において、スレーブロボット30を仮想障害物B1に向かわせる方向のa軸成分F2aが仮想障害物B1に沿わせる方向のb軸成分F2bよりも小さい場合は、仮想障害物B1に沿わせる方向のb軸成分F2b(=F2c)に従って、スレーブロボット30を動作させることができる。
【0060】
・仮想障害物B1にスレーブロボット30が衝突し、且つユーザにより加えられた力(外力F3)のa軸方向の成分(F3a)がb軸方向の成分(F3b)よりも大きい場合は、外力F3のb軸成分F3bが縮小された第2変換力F3cの大きさ及び方向に基づいて、マスタロボット20が動作させられる。詳しくは、外力F3において、スレーブロボット30を仮想障害物B1に向かわせる方向のa軸成分F3aが仮想障害物B1に沿わせる方向のb軸成分F3bに対して大きいほど、第2変換力F3cが小さくされる。したがって、ユーザは、スレーブロボット30が仮想障害物B1に沿う方向よりも仮想障害物B1を押す方向に動作しようとしていることを把握し易くなるとともに、スレーブロボット30を慎重に動作させることができる。
【0061】
なお、第2変換力F3cを、b軸成分F3bの一律に半分や1/3の大きさに設定することもできる。こうした構成によれば、制御部26は、第2変換力F3cを容易に算出することができる。
【0062】
(第3実施形態)
以下、第3実施形態について、第1実施形態との相違点を中心に説明する。本実施形態では、外力のa軸成分が0よりも大きいか否かにより、力制御に用いる変換力を変更している。なお、第1実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0063】
図6は、
図2の衝突状態でのマスタロボット20のアーム22と、外力F4の第3変換力F4cとを模式的に示す平面図である。F4aは外力F4のa軸成分であり、F4bは外力F4のb軸成分である。
図6は、外力F4のa軸成分F4aが0よりも大きい場合を示している。
【0064】
この場合、マスタロボット20の制御部26は、ユーザにより加えられた力である外力F4を、a軸方向(第1方向)の成分を0にし且つb軸方向(第2方向)の成分を0にした第3変換力F4cに変換する。第3変換力F4cの大きさは0である。制御部26は、外力F4の大きさ及び方向に基づく力制御に代えて、第3変換力F4c=0の大きさ及び方向に基づく力制御により、アーム22を動作させる。すなわち、制御部26は、マスタロボット20のa軸方向への動作を規制する際にマスタロボット20の動作全体を規制する。そして、スレーブロボット30の制御部36は、スレーブロボット30の各関節の角度を、マスタロボット20の対応する各関節の角度に一致させるように、スレーブロボット30の各関節のモータを制御する。すなわち、制御部36は、スレーブロボット30の動作全体を規制する。
【0065】
図7は、
図2の衝突状態でのマスタロボット20のアーム22と、外力F5の第4変換力F5cとを模式的に示す平面図である。F5aは外力F5のa軸成分であり、F5bは外力F5のb軸成分である。
図7は、外力F5のa軸成分F5aが0よりも小さい場合を示している。
【0066】
この場合、マスタロボット20の制御部26は、ユーザにより加えられた力である外力F5を、そのまま第4変換力F5cとする。第4変換力F5cは外力F5と等しい。制御部26は、第4変換力F5c(=F5)の大きさ及び方向に基づく力制御により、アーム22を動作させる。そして、スレーブロボット30の制御部36は、スレーブロボット30の各関節の角度を、マスタロボット20の対応する各関節の角度に一致させるように、スレーブロボット30の各関節のモータを制御する。
【0067】
以上詳述した本実施形態は、以下の利点を有する。ここでは、第1実施形態と異なる利点のみを述べる。
【0068】
・仮想障害物B1にスレーブロボット30が衝突した場合に、仮想障害物B1から離れるようにスレーブロボット30を動作させるマスタロボット20の動作しか許容されなくなる。このため、仮想障害物B1にスレーブロボット30が衝突した場合に、仮想障害物B1から離れるようにスレーブロボット30を動作させることをユーザに促すことができる。
【0069】
・外力F5において、a軸成分F5aが仮想障害物B1からスレーブロボット30を離す方向の成分である場合は、外力F5に従ってそのままスレーブロボット30を動作させることができる。このため、仮想障害物B1からスレーブロボット30を速やかに離すことができる。
【0070】
なお、上記の各実施形態を、以下のように変更して実施することもできる。上記の各実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
【0071】
・ハンド23の開閉ボタン22b及び位置取込ボタン22cの一方のみを、マスタロボット20に設けることもできる。また、ユーザにより操作された場合に操作されたことを通知する操作部として、押し下げ式のボタン22b,22cに限らず、スライド式のスイッチや押し倒し式のレバー等を採用することもできる。
【0072】
・設定部37は、スレーブロボット30の周囲環境に実際に存在する実障害物と同じ位置に同じ大きさで、仮想障害物B1,B2を設定することもできる。
【0073】
・スレーブロボット30のアーム32の先端部に限らず、アーム32の肘等(中間部)が仮想障害物B1,B2に衝突した場合に、上記の各実施形態を実施することもできる。
【0074】
・マスタロボット20の基台21の内部に、上記設定部37に準じた設定部が設けられていてもよい。設定部は、マスタロボット20の周囲に仮想障害物を設定する。仮想障害物は、例えば、マスタロボット20とスレーブロボット30との大きさの違いを考慮して、スレーブロボット30の周囲環境に実際に存在する実障害物の位置と大きさとに対応させて設定してもよいし、実障害物よりも一回り大きい大きさに対応させて設定してもよい。なお、モニタ等(表示装置)に、マスタロボット20のシミュレーション画像及び仮想障害物を表示してもよいし、表示しなくてもよい。また、現実の景色に重ねて仮想画像を表示する眼鏡型表示装置において、仮想障害物を、マスタロボット20に対応した位置に表示することもできる。
【0075】
そして、制御部26は、設定部により設定された仮想障害物にマスタロボット20が衝突した場合に、仮想障害物を押すマスタロボット20の法線方向N(a軸方向)への動作を規制する。こうした構成によれば、仮想障害物にマスタロボット20が衝突した場合、すなわち実障害物にスレーブロボット30が衝突した又は衝突する危険が生じた場合に、スレーブロボット30が実障害物を押すように動作することを規制することができる。さらに、マスタロボット20に力を加えているユーザは、マスタロボット20のa軸方向(第1方向)への動作が規制されたことで、スレーブロボット30が実障害物に衝突した又は衝突する危険が生じたことを把握することができる。
【0076】
また、制御部26は、仮想障害物にマスタロボット20が衝突した場合に、マスタロボット20のa軸方向への動作を規制しつつ、マスタロボット20の制御を継続する。こうした構成によれば、マスタロボット20が仮想障害物B1に衝突しても制御を中断しないようにすることができ、スレーブロボット30を効率的に動作させることができる。なお、上記の場合、マスタロボット20の制御部26及び設定部、並びにスレーブロボット30の制御部36により、主従ロボットの制御装置が構成される。また、マスタロボット20の周囲に仮想障害物を設定した場合も、スレーブロボット30をマスタロボット20に読み替えて、第1~第3実施形態と同様の制御を行うことができる。
【0077】
・制御装置(制御部26,36、設定部37)は、スレーブロボット30の動作の教示に用いられず、マスタロボット20及びスレーブロボット30を制御するだけでもよい。また、スレーブロボット30は、マスタロボット20と同じ大きさや、マスタロボット20よりも小型であってもよい。
【0078】
・マスタロボット20及びスレーブロボット30は、6軸の垂直多関節型ロボットに限らず、5軸以下又は7軸以上の垂直多関節型のロボットや、水平多関節型のロボットであってもよい。
【符号の説明】
【0079】
20…マスタロボット(主ロボット)、22…アーム、26…制御部、30…スレーブロボット(従ロボット)、32…アーム、36…制御部、37…設定部。