(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-27
(45)【発行日】2022-07-05
(54)【発明の名称】ロボットの直接教示装置及び直接教示方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20220628BHJP
G05B 19/42 20060101ALI20220628BHJP
【FI】
B25J9/22 A
G05B19/42 D
(21)【出願番号】P 2018167821
(22)【出願日】2018-09-07
【審査請求日】2021-07-28
(73)【特許権者】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】100101133
【氏名又は名称】濱田 初音
(74)【代理人】
【識別番号】100199749
【氏名又は名称】中島 成
(74)【代理人】
【識別番号】100188880
【氏名又は名称】坂元 辰哉
(74)【代理人】
【識別番号】100197767
【氏名又は名称】辻岡 将昭
(74)【代理人】
【識別番号】100201743
【氏名又は名称】井上 和真
(72)【発明者】
【氏名】田原 鉄也
【審査官】杉田 隼一
(56)【参考文献】
【文献】特開平5-285870(JP,A)
【文献】特開平5-303425(JP,A)
【文献】特開平9-141580(JP,A)
【文献】特開平6-95739(JP,A)
【文献】特開2019-93526(JP,A)
【文献】特開2019-55459(JP,A)
【文献】特開昭62-199376(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22
G05B 19/42
(57)【特許請求の範囲】
【請求項1】
ロボットが有するアームに加えられた外力を検知する外力検知部と、
前記外力検知部により検知された外力に従う前記アームの動きを算出する従動制御演算部と、
前記アームの位置又は姿勢のうちの少なくとも一方である位置姿勢を算出する位置姿勢演算部と、
前記位置姿勢演算部による算出結果に基づいて、前記アームの位置姿勢が、当該アームの位置姿勢の拘束先である拘束目標に近づいているかを判定する近接判定部と、
操作者が拘束付き直接教示を解除するための解除操作を行ったかを判定する解除操作判定部と、
拘束付き直接教示へと切換え可能な状態への復帰条件を満たしたかを判定する復帰判定部と、
拘束目標及び前記位置姿勢演算部による算出結果に基づいて、拘束付き直接教示における拘束制御の目標値を算出する目標値算出部と、
前記位置姿勢演算部による算出結果に基づいて、前記目標値算出部により算出された目標値に移動する前記アームの動きを算出する拘束制御演算部と、
自機が第一の状態である場合において前記近接判定部により拘束目標に近づいていると判定された場合に自機を第二の状態へと切換え、自機が第二の状態である場合において前記解除操作判定部により操作者が解除操作を行ったと判定された場合に自機を第三の状態へと切換え、自機が第三の状態である場合において前記復帰判定部により復帰条件を満たしたと判定された場合に自機を第一の状態へと切換え、自機が第二の状態にある場合に前記拘束制御演算部による処理を有効とし、自機が第一の状態又は第三の状態にある場合に前記拘束制御演算部による処理を無効とする切換部と、
前記従動制御演算部による算出結果と前記拘束制御演算部による算出結果とを合成する合成部と、
前記合成部による合成結果に基づいて前記アームを駆動する駆動制御部と
を備えた直接教示装置。
【請求項2】
前記アームの位置姿勢に関するパラメータを計測する位置姿勢計測部を備え、
前記従動制御演算部は、位置姿勢計測部による計測結果に基づいて、前記外力検知部により検知された外力に従う前記アームの動きを算出し、
前記位置姿勢演算部は、前記従動制御演算部による算出結果に基づいて、前記アームの位置姿勢を算出する
ことを特徴とする請求項1記載の直接教示装置。
【請求項3】
前記アームの位置姿勢に関するパラメータを計測する位置姿勢計測部を備え、
前記位置姿勢演算部は、前記位置姿勢計測部による計測結果に基づいて、前記アームの位置姿勢を算出する
ことを特徴とする請求項1記載の直接教示装置。
【請求項4】
前記解除操作判定部は、前記外力検知部による検知結果又は前記位置姿勢演算部による算出結果に基づいて、操作者が解除操作を行ったかを判定する
ことを特徴とする請求項1記載の直接教示装置。
【請求項5】
前記復帰判定部は、操作者が解除操作を行った後一定時間が経過した場合、又は、前記位置姿勢演算部により算出された前記アームの位置姿勢が拘束目標に近づいていない場合に、復帰条件を満たしたと判定する
ことを特徴とする請求項1記載の直接教示装置。
【請求項6】
前記アームは垂直多関節型ロボットアームであり、
前記位置姿勢演算部は、前記アームの姿勢を算出し、
前記近接判定部は、前記位置姿勢演算部による算出結果に基づいて、前記アームの姿勢が、拘束目標である拘束方向に近づいているかを判定する
ことを特徴とする請求項1から請求項5のうちの何れか1項記載の直接教示装置。
【請求項7】
前記アームは垂直多関節型ロボットアームであり、
前記位置姿勢演算部は、前記アームの位置及び姿勢を算出し、
前記近接判定部は、前記位置姿勢演算部による算出結果に基づいて、前記アームの位置が拘束目標である拘束軸に近づいているかを判定し且つ当該アームの姿勢が拘束目標である拘束方向に近づいているかを判定することで、当該アームの位置姿勢が拘束目標に近づいているかを判定する
ことを特徴とする請求項1から請求項5のうちの何れか1項記載の直接教示装置。
【請求項8】
前記アームは垂直多関節型ロボットアームであり、
前記位置姿勢演算部は、前記アームの位置及び姿勢を算出し、
前記近接判定部は、前記位置姿勢演算部による算出結果に基づいて、前記アームの位置が拘束目標である拘束面に近づいているかを判定し且つ当該アームの姿勢が拘束目標である拘束方向に近づいているかを判定することで、当該アームの位置姿勢が拘束目標に近づいているかを判定する
ことを特徴とする請求項1から請求項5のうちの何れか1項記載の直接教示装置。
【請求項9】
外力検知部が、ロボットが有するアームに加えられた外力を検知するステップと、
従動制御演算部が、前記外力検知部により検知された外力に従う前記アームの動きを算出するステップと、
位置姿勢演算部が、前記アームの位置又は姿勢のうちの少なくとも一方である位置姿勢を算出するステップと、
近接判定部が、前記位置姿勢演算部による算出結果に基づいて、前記アームの位置姿勢が、当該アームの位置姿勢の拘束先である拘束目標に近づいているかを判定するステップと、
解除操作判定部が、操作者が拘束付き直接教示を解除するための解除操作を行ったかを判定するステップと、
復帰判定部が、拘束付き直接教示へと切換え可能な状態への復帰条件を満たしたかを判定するステップと、
目標値算出部が、拘束目標及び前記位置姿勢演算部による算出結果に基づいて、拘束付き直接教示における拘束制御の目標値を算出するステップと、
拘束制御演算部が、前記位置姿勢演算部による算出結果に基づいて、前記目標値算出部により算出された目標値に移動する前記アームの動きを算出するステップと、
切換部が、自機が第一の状態である場合において前記近接判定部により拘束目標に近づいていると判定された場合に自機を第二の状態へと切換え、自機が第二の状態である場合において前記解除操作判定部により操作者が解除操作を行ったと判定された場合に自機を第三の状態へと切換え、自機が第三の状態である場合において前記復帰判定部により復帰条件を満たしたと判定された場合に自機を第一の状態へと切換え、自機が第二の状態にある場合に前記拘束制御演算部による処理を有効とし、自機が第一の状態又は第三の状態にある場合に前記拘束制御演算部による処理を無効とするステップと、
合成部が、前記従動制御演算部による算出結果と前記拘束制御演算部による算出結果とを合成するステップと、
駆動制御部が、前記合成部による合成結果に基づいて前記アームを駆動するステップと
を有する直接教示方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットの直接教示を行う直接教示装置及び直接教示方法に関する。
【背景技術】
【0002】
産業用のロボットでは、ロボットに作業をさせるために、前もって教示(ティーチング)と呼ばれる作業が実施される。このロボットの教示を行う方法の1つとして、直接教示(ダイレクト教示)と呼ばれる方法がある。
【0003】
例えば特許文献1では、力センサを用いたロボットの直接教示方法が開示されている。また、例えば特許文献2では、トルク検出手段を用いたロボットの直接教示方法が開示されている。これらの特許文献で開示されている直接教示装置の概略構成を
図23に示す。
【0004】
図23に示す直接教示装置11では、まず、外力検知部1101が、力センサ又はトルクセンサ等を用いて、ロボットが有するアーム2に対して操作者により加えられた外力を検知する。次いで、従動制御演算部1102が、外力検知部1101により検知された外力に従うアームの動きを算出(従動制御演算)する。なお、従動制御演算部1102は、従動制御演算において、位置姿勢計測部(不図示)により計測されたアームの位置姿勢に関するパラメータを用いる場合もある。なお、アームの位置姿勢とは、アームの位置及びアームの姿勢のうちの少なくとも一方を意味する。また、上記パラメータとしては、アームの位置、アームの姿勢、又は、アームの関節角等が挙げられる。そして、従動制御演算部1102は、従動制御演算の結果に基づいて更新した従動制御指令値を駆動制御部1103に通知する。次いで、駆動制御部1103は、従動制御演算部1102により通知された従動制御指令値に従ってアーム2を駆動する。
この一連の動作により、
図23に示す直接教示装置11は、操作者により加えられた外力に従ってアーム2が動くように制御できる。そして、直接教示装置11は、制御によりアーム2の位置及び姿勢が操作者の意図する状態となった場合に、その際の上記パラメータを教示点として記録する。この直接教示装置11により記録された教示点はロボットが作業する際に使用される。
【0005】
このように、ロボットの直接教示は、操作者がアームを直接操作して位置及び姿勢を教示するため、操作者にとって直観的でわかりやすいという利点を持つ。一方で、アームが操作者により加えられた外力に従ってそのまま動くという特徴は利点ばかりではない。
【0006】
例えば、操作者が、ロボットに対して、ある点Pの位置を教示した後に、その真下の別の点Qの位置を教示するというケースを考える。このケースでは、操作者は、真下方向(Z軸方向)にアームを動かすことになる。しかしながら、操作者がアームに対して正確に真下方向へ外力を加えることは難しく、アームのX軸座標及びY軸座標がずれることが多い。後からアームのX軸座標及びY軸座標だけをティーチングペンダント等を用いて修正することは可能であるが、それでは直接教示の利点が減ずる。
また、例えば、操作者が、アームの先端に設けられたエンドエフェクタを真下に向けたまま教示を行うケースを考える。このケースにおいても、操作者がアームに対して正確に真下に向けた状態を維持したままアームを直接操作することは難しく、アームの姿勢がずれることが多い。
以上のように、直接教示は、直観的で分かりやすい反面、操作が難しいケースも存在する。
【0007】
これに対し、例えば特許文献3,4では、上記のような課題を解決する技術が開示されている。
【0008】
特許文献3では、モード切換スイッチにより、動作モードを、位置方向移動モード、位置移動モード又は方向移動モードに切換え可能とする直接教示装置が開示されている。位置移動モードでは、アームの先端の姿勢を維持したまま位置のみを移動可能としている。また、方向移動モードでは、アームの先端の位置を維持したまま姿勢のみを変更可能としている。この直接教示装置により、上記のような直接教示における操作の難しさをある程度緩和可能となる。なお、通常の直接教示は位置方向移動モードで実現可能である。
【0009】
また、特許文献4では、入力装置により、動作モードを、拘束モード又は全方向移動モードに切換え可能とする直接教示装置が開示されている。拘束モードでは、エンドエフェクタの先端を特定の拘束軸又は拘束面に沿って移動可能としている。また、全方向移動モードでは、通常の直接教示を実施可能としている。この直接教示装置は、直接教示の途中で拘束モードに切換えることにより、アームの先端を正確に上下方向に動かすことが可能となり、直接教示における操作の難しさが軽減される。
【先行技術文献】
【特許文献】
【0010】
【文献】特開平05-204441号公報
【文献】特開平05-250029号公報
【文献】特開平05-285870号公報
【文献】特開平05-303425号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
上記のように、特許文献3,4に開示された直接教示装置は、アームの操作に拘束を課さない通常の直接教示を行うモードと、アームの操作に拘束を課す拘束付き直接教示を行うモードとを切換える。そして、特許文献3ではモード切換スイッチによって、また、特許文献4では入力装置によって、モードの切換えが行われており、操作者が手でスイッチ等を操作することで切換え可能となっている。
【0012】
しかしながら、直接教示では、操作者は手でアームを直接操作しているため、モードの切換えを手で操作するのは便利ではない。例えば、操作者が両手でアームを操作している場合、モードの切換えを操作する際にはアームの操作を一旦停止してアームを片手で保持することになる。通常時に両手で保持しているアームを片手で保持すると、アームの位置姿勢がずれることも考えられる。その結果、拘束付き直接教示の効果を減ずることにもなりかねない。
【0013】
この発明は、上記のような課題を解決するためになされたもので、操作者がアームを操作している状態のまま通常の直接教示と拘束付き直接教示を切換え可能な直接教示装置を提供することを目的としている。
【課題を解決するための手段】
【0014】
この発明に係る直接教示装置は、ロボットが有するアームに加えられた外力を検知する外力検知部と、外力検知部により検知された外力に従うアームの動きを算出する従動制御演算部と、アームの位置又は姿勢のうちの少なくとも一方である位置姿勢を算出する位置姿勢演算部と、位置姿勢演算部による算出結果に基づいて、アームの位置姿勢が、当該アームの位置姿勢の拘束先である拘束目標に近づいているかを判定する近接判定部と、操作者が拘束付き直接教示を解除するための解除操作を行ったかを判定する解除操作判定部と、拘束付き直接教示へと切換え可能な状態への復帰条件を満たしたかを判定する復帰判定部と、拘束目標及び位置姿勢演算部による算出結果に基づいて、拘束付き直接教示における拘束制御の目標値を算出する目標値算出部と、位置姿勢演算部による算出結果に基づいて、目標値算出部により算出された目標値に移動するアームの動きを算出する拘束制御演算部と、自機が第一の状態である場合において近接判定部により拘束目標に近づいていると判定された場合に自機を第二の状態へと切換え、自機が第二の状態である場合において解除操作判定部により操作者が解除操作を行ったと判定された場合に自機を第三の状態へと切換え、自機が第三の状態である場合において復帰判定部により復帰条件を満たしたと判定された場合に自機を第一の状態へと切換え、自機が第二の状態にある場合に拘束制御演算部による処理を有効とし、自機が第一の状態又は第三の状態にある場合に拘束制御演算部による処理を無効とする切換部と、従動制御演算部による算出結果と拘束制御演算部による算出結果とを合成する合成部と、合成部による合成結果に基づいてアームを駆動する駆動制御部とを備えたことを特徴とする。
【発明の効果】
【0015】
この発明によれば、上記のように構成したので、操作者がアームを操作している状態のまま通常の直接教示と拘束付き直接教示を切換え可能となる。
【図面の簡単な説明】
【0016】
【
図1】この発明の実施の形態1に係る直接教示装置の構成例を示す図である。
【
図2】
図2A~
図2Dは、この発明の実施の形態1に係る直接教示装置による通常の直接教示と拘束付き直接教示(位置拘束の場合)の切換えの一例を示す図である。
【
図3】
図3A~
図3Dは、この発明の実施の形態1に係る直接教示装置による通常の直接教示と拘束付き直接教示(姿勢拘束の場合)の切換えの一例を示す図である。
【
図4】この発明の実施の形態1に係る直接教示装置の動作例を示すフローチャートである。
【
図5】この発明の実施の形態1における近接判定部の動作例を説明する図である(姿勢拘束の場合)。
【
図6】この発明の実施の形態1における解除操作判定部の動作例を説明する図である(外力を用いた場合)。
【
図7】この発明の実施の形態1における解除操作判定部の動作例を説明する図である(アームの位置姿勢を用いた場合)。
【
図8】この発明の実施の形態1における切換部の動作例を説明する図である。
【
図9】この発明の実施の形態1における目標値算出部の動作例を説明する図である(姿勢拘束の場合)。
【
図10】この発明の実施の形態1における目標値算出部の動作例を説明する図である(姿勢拘束の場合)。
【
図11】この発明の実施の形態2に係る直接教示装置の動作例を示すフローチャートである。
【
図13】この発明の実施の形態2における近接判定部の動作例を示すフローチャートである。
【
図15】
図15A、
図15Bは、この発明の実施の形態2における目標値算出部の動作例を説明する図であり、回転軸の算出例を示す図である。
【
図16】
図16A、
図16Bは、この発明の実施の形態2における目標値算出部の動作例を説明する図であり、回転方向の算出例を示す図である。
【
図17】この発明の実施の形態2における目標値算出部の動作例を説明する図である。
【
図18】この発明の実施の形態3に係る直接教示装置による軸拘束を説明する図である。
【
図19】この発明の実施の形態3に係る直接教示装置の動作例を示すフローチャートである。
【
図20】この発明の実施の形態3における近接判定部の動作例を説明する図である。
【
図21】この発明の実施の形態4に係る直接教示装置による面拘束を説明する図である。
【
図22】この発明の実施の形態4に係る直接教示装置の動作例を示すフローチャートである。
【
図23】従来の直接教示装置の構成例を示す図である。
【発明を実施するための形態】
【0017】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1はこの発明の実施の形態1に係る直接教示装置1の構成例を示す図である。
直接教示装置1は、ロボットの直接教示を行う。この直接教示装置1は、直接教示方法として、ロボットが有するアーム2の位置姿勢に対して拘束を課さない通常の直接教示と、アーム2の位置姿勢を拘束目標に拘束する拘束付き直接教示とを切換え可能である。
なお、アーム2の位置姿勢とは、アーム2の位置及びアーム2の姿勢のうちの少なくとも一方を意味する。また、アーム2の位置とは、アーム2の先端に設けられたエンドエフェクタ201の位置501を意味し、アーム2の姿勢とはエンドエフェクタ201の向き502を意味する。また、拘束目標とは、アーム2の位置姿勢の拘束先である。アーム2の位置に対する拘束目標としては、拘束面503及び拘束軸504がある。拘束面503の種別としては、平面及び曲面がある。拘束軸504の種別としては、直線及び曲線がある。アーム2の姿勢に対する拘束目標としては、拘束方向505がある。また、直接教示装置1で用いる拘束目標は1つに限らず複数でもよい。また、ロボットに対しては基準となるロボット座標系が設定され、エンドエフェクタ201に対してはツール座標系が設定される(
図9等参照)。
【0018】
この直接教示装置1は、
図1に示すように、位置姿勢計測部101、外力検知部102、従動制御演算部103、位置姿勢演算部104、近接判定部105、解除操作判定部106、復帰判定部107、切換部108、目標値算出部109、拘束制御演算部110、合成部111及び駆動制御部112を備えている。なお、従動制御演算部103、位置姿勢演算部104、近接判定部105、解除操作判定部106、復帰判定部107、切換部108、目標値算出部109、拘束制御演算部110、合成部111及び駆動制御部112は、システムLSI(Large-Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。
【0019】
位置姿勢計測部101は、アーム2の位置姿勢に関するパラメータを計測する。なお、アーム2の位置姿勢に関するパラメータとしては、アーム2の位置、アーム2の姿勢、又は、アーム2の関節角θ等が挙げられる。
【0020】
外力検知部102は、操作者によりアーム2に加えられた外力を検知する。例えば、外力検知部102は、アーム2の先端に取付けられた力センサを用い、この力センサにより計測された力Fを上記外力として検知してもよい。また、例えば、外力検知部102は、アーム2のモータ駆動軸に取付けられたトルクセンサを用い、このトルクセンサにより計測されたトルクτを上記外力として検知してもよい。また、外力検知部102は、上記のようにセンサを用いて外力を直接計測するのではなく、アーム2が有するモータの電流又はアーム2の関節角θの計測値から間接的に外力を算出する外力オブザーバを用いて上記外力を検知してもよい。
【0021】
従動制御演算部103は、位置姿勢計測部101による計測結果に基づいて、外力検知部102により検知された外力に従うアーム2の動き(従動制御指令値)を算出する。
【0022】
なお、位置姿勢計測部101、外力検知部102及び従動制御演算部103は、拘束が無い通常の直接教示で用いられる構成と同様であり、公知技術である。
【0023】
位置姿勢演算部104は、従動制御演算部103による算出結果に基づいて、アーム2の位置姿勢を算出する。
【0024】
なお
図1では、従動制御演算部103が位置姿勢計測部101による計測結果を用い、位置姿勢演算部104が従動制御演算部103による算出結果を用いている。
しかしながら、これに限らず、従動制御演算部103は、位置姿勢計測部101による計測結果は用いず、外力検知部102により検知された外力に従うアーム2の動きを演算してもよい。この場合、位置姿勢演算部104は、位置姿勢計測部101による計測結果に基づいてアーム2の位置姿勢を算出する。
また、位置姿勢演算部104は、従動制御演算部103による算出結果及び位置姿勢計測部101による計測結果の両方を用いてアーム2の位置姿勢を算出してもよい。
【0025】
近接判定部105は、位置姿勢演算部104による算出結果に基づいて、アーム2の位置姿勢が拘束目標に近づいているかを判定する。
【0026】
解除操作判定部106は、操作者が拘束付き直接教示を解除するための解除操作を行ったかを判定する。この際、例えば、解除操作判定部106は、外力検知部102による検知結果(外力の大きさ、外力の向き又は外力のパターン等)又は位置姿勢演算部104による算出結果(位置姿勢又は位置姿勢のパターン等)に基づいて、操作者が解除操作を行ったかを判定する。
【0027】
復帰判定部107は、拘束付き直接教示へと切換え可能な状態(後述する第一の状態)へ復帰させるための所定の復帰条件を満たしたかを判定する。この際、例えば、復帰判定部107は、操作者が解除操作を行った後一定時間が経過した場合、又は、位置姿勢演算部104により算出されたアーム2の位置姿勢が拘束目標に近づいていない場合に、復帰条件を満たしたと判定する。
【0028】
切換部108は、近接判定部105による判定結果、解除操作判定部106による判定結果及び復帰判定部107による判定結果に従い、拘束制御演算部110の動作を切換える。すなわち、切換部108は、直接教示装置1が第一の状態(近接判定中)である場合において、近接判定部105によりアーム2の位置姿勢が拘束目標に近づいていると判定された場合に、直接教示装置1を第二の状態(解除操作判定中)へと切換える。また、切換部108は、直接教示装置1が第二の状態である場合において、解除操作判定部106により操作者が解除操作を行ったと判定された場合に、直接教示装置1を第三の状態(復帰判定中)へと切換える。また、切換部108は、直接教示装置1が第三の状態である場合において、復帰判定部107により復帰条件を満たしたと判定された場合に、直接教示装置1を第一の状態へと切換える。その上で、切換部108は、直接教示装置1が第二の状態である場合には拘束制御演算部110による処理を有効とし、直接教示装置1がそれ以外の状態である場合には拘束制御演算部110による処理を無効とする。
【0029】
また、切換部108は、拘束目標が複数存在する場合に、近接判定部105による判定結果に従い、目標値算出部109による動作(対象とする拘束目標)の切換えも実施してもよい。
【0030】
目標値算出部109は、拘束目標及び位置姿勢演算部104による算出結果に基づいて、拘束付き直接教示における拘束制御の目標値を算出する。なお、拘束制御の目標値とは、アーム2の目標位置及びアーム2の目標姿勢のうちの少なくとも一方を意味する。
【0031】
拘束制御演算部110は、位置姿勢演算部104による算出結果に基づいて、目標値算出部109により算出された目標値に移動するアーム2の動き(拘束制御指令値)を算出する。
【0032】
合成部111は、従動制御演算部103による算出結果(従動制御指令値)と拘束制御演算部110による算出結果(拘束制御指令値)とを一つの指令値に合成する。
【0033】
駆動制御部112は、合成部111による合成結果に基づいて、アーム2を駆動する。
【0034】
実施の形態1に係る直接教示装置1では、通常の直接教示と拘束付き直接教示の切換えを、操作者によるアーム2の操作により実行可能としている。この切換え方法は、以下に示す3つの仕組みによって実現される。
【0035】
1つ目は、直接教示装置1が、アーム2の位置姿勢が拘束目標に近づいた際に、自動的に通常の直接教示から拘束付き直接教示に切換える仕組みである。例えば
図2A,2Bに示すように、直接教示装置1が、アーム2の位置を所定の平面506(拘束面503)に拘束させる場合を考える。この場合、直接教示装置1は、通常の直接教示を行っている状態(第一の状態)で、平面506からアーム2の位置までの距離が例えば±50[mm]以下になった場合には拘束付き直接教示への切換えを行い、それ以外の場合には通常の直接教示のままにする。また、例えば
図3A,3Bに示すように、直接教示装置1が、アーム2の姿勢を真下方向507(拘束方向505)に拘束させる場合を考える。この場合、直接教示装置1は、通常の直接教示を行っている状態で、アーム2の姿勢が真下方向507から例えば±0.2[rad]以下になった場合には拘束付き直接教示への切換えを行い、それ以外の場合には通常の直接教示のままにする。この1つ目の仕組みにより、直接教示装置1は、操作者によるアーム2の操作のみで、通常の直接教示から拘束付き直接教示への切換えを実現できる。
【0036】
2つ目は、直接教示装置1が、操作者による解除操作を検知することで、拘束付き直接教示を解除する仕組みである。例えば、直接教示装置1は、拘束付き直接教示を行っている状態(第二の状態)で、操作者がアーム2に5.0[N]以上の力を加えたことを検知した場合には解除操作があったと判定して拘束付き直接教示を中止し、5.0[N]以上の力を検知しなかった場合には拘束付き直接教示を継続する。又は、直接教示装置1は、拘束付き直接教示を行っている状態で、操作者がアーム2に1.0[Nm]以上の回転トルクを時計回りに加えたことを検知した場合には解除操作があったと判定して拘束付き直接教示を中止し、1.0[Nm]以上の時計回りの回転トルクを検知しなかった場合には拘束付き直接教示を継続する。
【0037】
また、直接教示装置1は、解除操作があったと判定した場合、最初の状態(第一の状態)に戻るのではなく、復帰判定中という第三の状態に移行する。直接教示装置1は、復帰判定中では、通常の直接教示を実行するが、アーム2の位置姿勢が拘束目標に近づいても拘束付き直接教示への切換えは実行しない。これは、直接教示装置1は、拘束付き直接教示を解除した直後はアーム2の位置姿勢は拘束目標と一致しており、その状態で拘束付き直接教示へと切替えてしまうと通常の直接教示への切換えができなくなるためである。そこで、直接教示装置1は、操作者による解除操作を検知した場合には、一時的に拘束付き直接教示への切換えを停止する。これが、第三の状態が必要となる理由である。
そして、操作者は復帰判定中の間に、
図2C,3Cに示すように、アーム2を拘束目標から遠ざけることができる。この2つ目の仕組みにより、直接教示装置1は、拘束付き直接教示を解除可能となる。
【0038】
3つ目は、直接教示装置1が、復帰判定中に所定の復帰条件を満たした場合に、拘束付き直接教示へと切換え可能な状態(第一の状態)へと復帰させる仕組みである。2つ目の仕組みにより、直接教示装置1は、拘束付き直接教示を解除可能となるが、これだけでは再度拘束付き直接教示を行うことができない。そこで、例えば、直接教示装置1は、アーム2の位置姿勢が拘束目標から十分遠ざかったら、第一の状態へと復帰させる。又は、例えば、直接教示装置1は、アーム2の拘束が解除されてから一定時間以上経過したら、第一の状態へと復帰させる。この3つ目の仕組みにより、直接教示装置1は、拘束付き直接教示を解除するだけでなく、
図2D,3Dのように再度拘束付き直接教示へ切換え可能な状態となる。
【0039】
以上の3つの仕組みを組合わせることにより、実施の形態1に係る直接教示装置1は、操作者がアーム2を操作している状態のまま、通常の直接教示と拘束付き直接教示とを切換え可能となる。以下、
図1に示す直接教示装置1の動作例について、
図4を参照しながら説明する。
【0040】
図1に示す直接教示装置1の動作例では、
図4に示すように、まず、位置姿勢計測部101は、アーム2の位置姿勢に関するパラメータを計測する(ステップST401)。
【0041】
また、外力検知部102は、操作者によりアーム2に加えられた外力を検知する(ステップST402)。なお、外力検知部102により検知される外力は、センサの構造等によっては、操作者によりアーム2に加えられた外力だけではなく、重力に起因する成分が重畳されている場合がある。そこで、このような場合には、外力検知部102は、重力に起因する成分を算出し、検知した外力から当該重力に起因する成分を差し引くことで、外力成分のみを算出するとよい。これは重力補償と呼ばれる公知技術であり、例えば特許文献5等に開示されている。
【文献】特開平01-066715号公報
【0042】
次いで、従動制御演算部103は、位置姿勢計測部101による計測結果に基づいて、外力検知部102により検知された外力に従うアーム2の動き(従動制御指令値)を算出する(ステップST403)。この際、従動制御演算部103は、まず、外力検知部102により検知された外力の向き及び大きさから、操作者がどのようにアーム2を動かそうとしているのかを判断する。そして、従動制御演算部103は、その判断結果及び位置姿勢計測部101により計測されたアーム2の位置姿勢に基づいて、アーム2の移動量(関節角θ等の差分)又は関節角速度θ(ドット)等を算出する。なお、従動制御演算部103による従動制御演算方法は、例えば特許文献2等で開示されており、様々な方式が開発されているためその詳細な記述は省略する。
【0043】
次いで、位置姿勢演算部104は、従動制御演算部103による算出結果に基づいて、アーム2の位置姿勢を算出する(ステップST404)。
ここで、直接教示装置1が位置拘束を行う場合(すなわち直接教示装置1がアーム2の位置を所定の拘束面503又は拘束軸504に拘束する場合)には、位置姿勢演算部104は少なくともアーム2の位置を算出する必要がある。
また、直接教示装置1が姿勢拘束を行う場合(すなわち直接教示装置1がアーム2の姿勢を所定の拘束方向505に拘束する場合)には、位置姿勢演算部104は少なくともアーム2の姿勢を算出する必要がある。
また、直接教示装置1が位置拘束及び姿勢拘束を行う場合(すなわち直接教示装置1がアーム2の位置及び姿勢を所定の拘束面503又は拘束軸504且つ所定の拘束方向505に拘束する場合)には、位置姿勢演算部104はアーム2の位置及び姿勢を算出する必要がある。
【0044】
また、位置姿勢演算部104は、従動制御演算部103による算出結果(最新の従動制御指令値)に基づいて上記算出を行うことが最も望ましい。これは、直接教示装置1が拘束付き直接教示を行う場合に、操作者がアーム2に対して与えた移動量のうち、拘束面503等から外れる成分を同時に相殺でき、拘束制御が最も有効に働くからである。
また、位置姿勢演算部104は、従動制御演算部103による算出結果を用いず、位置姿勢計測部101による計測結果に基づいて上記算出を行うことも可能である。一方、この場合には、拘束面503等から外れたことが計測されてから拘束制御が始まるので、拘束制御の効きが悪くなる。
また、位置姿勢演算部104は、従動制御演算部103による算出結果及び位置姿勢計測部101による計測結果の両方に基づいて上記算出を行ってもよい。
【0045】
なお、位置姿勢計測部101及び従動制御演算部103で関節角θのみが得られ、アーム2の位置姿勢を直接得られない場合、位置姿勢演算部104は、順運動学演算によってアーム2の位置姿勢を算出することが可能である。
【0046】
次いで、近接判定部105は、位置姿勢演算部104による算出結果に基づいて、アーム2の位置姿勢が拘束目標に近づいているかを判定する(ステップST405)。
【0047】
例えば、拘束制御の目的がエンドエフェクタ201の先端のZ軸座標を0.1[m]の位置に固定することであり、また、接近判定のしきい値が0.05[m]であるとする。この場合、近接判定部105は、位置姿勢演算部104により算出されたエンドエフェクタ201の先端のZ軸座標が0.05~0.15[m]の範囲内であればアーム2の位置は拘束目標に近づいていると判定し、それ以外の場合にはアーム2の位置は拘束目標に近づいていないと判定する。
【0048】
また、拘束制御の目的がエンドエフェクタ201の向き502(Z軸)を真下に向けることであり、また、接近判定のしきい値が0.1[rad]であるとする。この場合、近接判定部105は、
図5に示すように、真上方向(基準方向)508とエンドエフェクタ201の向き502との成す角度Θが(π-0.1)[rad]以上(すなわち真下方向507とエンドエフェクタ201の向き502との成す角度が0.1[rad]未満)であれば、アーム2の姿勢は拘束目標に近づいていると判定し、それ以外の場合にはアーム2の姿勢は拘束目標に近づいていないと判定する。
【0049】
また、拘束面503が複数存在する場合等のように拘束目標が複数存在する場合、近接判定部105は、拘束目標毎に上記判定を行い、各拘束目標のうちの1つでもアーム2の位置姿勢が近づいていると判定した場合には、アーム2の位置姿勢は拘束目標に近づいていると判定する。この際、更に、近接判定部105は、アーム2と各拘束目標との間の距離を評価し、上記判定の結果とともにアーム2に最も近い拘束目標を示す情報を切換部108に通知してもよい。
【0050】
また、解除操作判定部106は、操作者が解除操作を行ったかを判定する(ステップST406)。
【0051】
解除操作判定部106による最も好ましい判定方法は、外力を用いた判定方法である。解除操作判定部106による外力を用いた最も単純な判定方法の一例は、外力が所定の力(例えば5.0[N])以上である場合に操作者が解除操作を行ったと判定するという、外力の大きさに基づいた判定方法である。また、解除操作判定部106は、外力の大きさに加えて時間も考慮し、外力が所定の力以上であり且つ一定時間以上継続している場合に、操作者が解除操作を行ったと判定してもよい。
【0052】
解除操作判定部106による外力を用いたより複雑な判定方法の一例について、
図6に示す。
図6Aに示すように、解除操作判定部106は、外力が拘束面503から遠ざかる方向且つ所定の力以上である場合に、操作者が解除操作を行ったと判定してもよい。この判定方法は、外力検知部102において、外力のうち、拘束面503と直交する成分の大きさを検知することで実現可能である。このように、解除操作判定部106による判定方法としては、外力の大きさだけではなく外力の向きも考慮した判定方法も実施可能である。
【0053】
また、
図6Bに示すように、解除操作判定部106は、外力がエンドエフェクタ201の軸を中心とした回転力であり且つ所定の力以上である場合に、操作者が解除操作を行ったと判定してもよい。この判定方法は、外力検知部102において、エンドエフェクタ201の軸を中心とした回転力を検知することで実現可能である。
【0054】
また、
図6Cに示すように、解除操作判定部106は、外力が左右方向に交互に加えられた力であり且つ所定の力以上である場合に、操作者が解除操作を行ったと判定してもよい。この判定方法では、解除操作判定部106は、外力の大きさ及び向きだけではなく時系列なパターンも考慮しているため、意図しない操作により偶然に解除操作と判定する可能性(すなわち誤判定の可能性)が低くなることが期待できる。解除操作判定部106が解除操作を意図するパターンであるかを判定する方法としては、公知のパターン認識、機械学習又はニューラルネットワーク等、様々な方法を利用可能である。
【0055】
また、解除操作判定部106は、外力による判定に限らず、アーム2の位置姿勢を用いて操作者が解除操作を行ったかを判定してもよい。但し、直接教示装置1は、拘束付き直接教示を行っている間は、アーム2の位置姿勢を拘束しているため、アーム2をその拘束範囲でしか動かすことができない。そのため、解除操作判定部106によるアーム2の位置姿勢を用いた判定方法はある程度制限される。解除操作判定部106によるアーム2の位置姿勢を用いた判定方法の一例について、
図7に示す。
【0056】
図7A~7Cに示すように、直接教示装置1が、アーム2をZ座標が一定である平面506(拘束面503)に拘束している場合を考える。
この場合、
図7Aに示すように、解除操作判定部106は、アーム2のX座標又はY座標が平面506より外(例えば±0.5[m]の範囲外)である場合に、操作者が解除操作を行ったと判定してもよい。また、解除操作判定部106は、ワークからエンドエフェクタ201の先端までの距離が例えば0.2[m]より大きい場合に、操作者が解除操作を行ったと判定してもよい。
【0057】
また、
図7Bに示すように、解除操作判定部106は、アーム2が拘束面503上で所定の形(
図7Bでは三角形の形)に動いた場合に操作者が解除操作を行ったと判定する等、エンドエフェクタ201の位置の時系列なパターンに基づいて判定を行ってもよい。解除操作判定部106が解除操作を意図するパターンであるかを判定する方法としては、公知のパターン認識、機械学習又はニューラルネットワーク等、様々な方法を利用可能である。
【0058】
また、
図7Cに示すように、解除操作判定部106は、アーム2が拘束面503上で一回転した場合に操作者が解除操作を行ったと判定する等、エンドエフェクタ201の姿勢の時系列なパターンに基づいて判定を行ってもよい。但し、この判定方法は、直接教示装置1が拘束付き直接教示を行っている状態では実施できない場合がある。解除操作判定部106が解除操作を意図するパターンであるかを判定する方法としては、公知のパターン認識、機械学習又はニューラルネットワーク等、様々な方法を利用可能である。
【0059】
また、
図7D,7Eに示すように、直接教示装置1が、アーム2をZ軸に平行な軸(拘束軸504)に拘束している場合を考える。
この場合、
図7Dに示すように、解除操作判定部106は、エンドエフェクタ201の先端のZ座標が所定の位置(例えば0.3[m])より大きい場合に、操作者が解除操作を行ったと判定してもよい。また、解除操作判定部106は、ワークからエンドエフェクタ201の先端までの距離が大きい場合(すなわちアーム2がワークから遠ざかった場合)に、操作者が解除操作を行ったと判定してもよい。
【0060】
また、
図7Eに示すように、解除操作判定部106は、アーム2が拘束軸504上で所定の周期よりも短い周期で上下に往復した場合に、操作者が解除操作を行ったと判定してもよい。
【0061】
なお、解除操作判定部106は、位置姿勢演算部104により算出されたアーム2の位置姿勢の代わりに、位置姿勢計測部101により計測されたアーム2の位置姿勢に関するパラメータを用いることも可能である。
【0062】
また、直接教示装置1の実施環境が操作者の音声を取得可能な環境である場合、直接教示装置1はマイク等を用いて操作者の音声を取得し、解除操作判定部106は音声認識によって操作者が解除操作を行ったかを判定してもよい。この判定方法では、操作者はアーム2から手を離すことなく解除操作を実施可能となる。
【0063】
また、直接教示装置1の実施環境が操作者の画像を動画として取得可能な環境である場合、直接教示装置1はカメラ等を用いて操作者の唇の画像を取得し、解除操作判定部106は当該画像から操作者が発している言葉を認識することで操作者が解除操作を行ったかを判定してもよい。この方法でも、操作者はアーム2から手を離すことなく解除操作を実施可能となる。
【0064】
また、復帰判定部107は、拘束付き直接教示へと切換え可能な状態へ復帰させるための所定の復帰条件を満たしたかを判定する(ステップST407)。前述した通り、直接教示装置1は、操作者により解除操作が行われた直後に第一の状態に移行してしまうと、解除操作が行われても直ぐに拘束付き直接教示へ戻ってしまうため、そうならないようにする必要がある。復帰判定部107はこのような不具合を解消するために存在する。
【0065】
復帰判定部107による最も好ましい判定方法の一つは、近接判定部105によりアーム2の位置姿勢が拘束目標に近づいていると判定されなくなるのを待って復帰条件を満たしたと判定する方法である。例えば、復帰判定部107は、
図2であればアーム2が拘束面503から±50[mm]以上離れた場合に、
図3であれば真下方向507とアーム2の姿勢とが成す角度が±0.2[rad]以上離れた場合に、復帰条件を満たしたと判定してもよい。これにより、直接教示装置1は、操作者により解除操作が行われた後に操作者の意図に反して拘束付き直接教示が再度有効になることを抑制できる。
【0066】
なお、復帰判定部107は、近接判定のしきい値をそのまま用いるのではなく、近接判定のしきい値よりも多少余裕を持たせたしきい値を用いて判定を行ってもよく、より安定した動作になると考えられる。例えば、復帰判定部107は、
図2であればアーム2が拘束面503から±55[mm]以上離れた場合に、
図3であれば真下方向507とアーム2の姿勢とが成す角度が±0.22[rad]以上離れた場合に、復帰条件を満たしたと判定してもよい。
【0067】
また、復帰判定部107は、操作者が解除操作を行った後一定時間が経過した場合に、復帰条件を満たしたと判定してもよい。例えば、復帰判定部107は、操作者が解除操作を行った後10[秒]経過した場合に、復帰条件を満たしたと判定してもよい。この場合、操作者は、通常の直接教示に戻したい場合には、10[秒]以内に近接判定条件を満たさない領域へとアーム2を操作すればよい。また、操作者は、拘束付き直接教示を再開したい場合には、アーム2をそのままにして時間が経過するのを待てばよい。
【0068】
また、復帰判定部107は、上記の二つの方法を組合わせて、アーム2の位置姿勢が拘束目標から離れた後一定時間が経過した場合に、復帰条件を満たしたと判定してもよい。
【0069】
なお、操作者は、復帰判定部107が拘束目標からの距離又は解除操作からの時間の何れを用いる場合でも、アーム2から手を離すことなく復帰操作が可能である。
【0070】
次いで、切換部108は、近接判定部105による判定結果、解除操作判定部106による判定結果及び復帰判定部107による判定結果に従い、拘束制御演算部110の動作を切換える(ステップST408)。
【0071】
切換部108は、
図8に示すように、直接教示装置1を3つの状態(第一の状態~第三の状態)に分けて管理する。そして、切換部108は、近接判定部105、解除操作判定部106及び復帰判定部107によるそれぞれの判定結果に基づいて、直接教示装置1の状態を切換える。第一の状態は、近接判定部105による判定のみが有効となる近接判定中という状態であり、直接教示装置1はこの状態から動作を開始する。第二の状態は、解除操作判定部106による判定のみが有効となる解除操作判定中という状態である。第三の状態は、復帰判定部107による判定のみが有効となる復帰判定中という状態である。直接教示装置1はこの3つの状態の何れかの状態となる。
【0072】
切換部108は、直接教示装置1が第一の状態である場合には、近接判定部105による判定結果のみを参照する。そして、切換部108は、近接判定部105によりアーム2の位置姿勢が拘束目標に近づいたと判定された場合に、直接教示装置1を第二の状態に切換える。
【0073】
切換部108は、直接教示装置1が第二の状態である場合には、解除操作判定部106による判定結果のみを参照する。そして、切換部108は、解除操作判定部106により操作者が解除操作を行ったと判定された場合に、直接教示装置1を第三の状態に切換える。
【0074】
切換部108は、直接教示装置1が第三の状態である場合には、復帰判定部107による判定結果のみを参照する。そして、切換部108は、復帰判定部107により復帰条件を満たしたと判定された場合に、直接教示装置1を第一の状態に切換える。
【0075】
そして、切換部108は、直接教示装置1の状態に応じて、拘束制御演算部110による処理を有効又は無効に切換える。すなわち、切換部108は、直接教示装置1が第二の状態である場合には、拘束制御演算部110による処理を有効とする。また、切換部108は、直接教示装置1が第一の状態又は第三の状態である場合には、拘束制御演算部110による演算を停止するか又は算出結果がアーム2の制御に反映されないようにして、拘束制御演算部110による処理を無効とする。
また
図8に示すように、切換部108は、直接教示装置1が第二の状態である場合には目標値算出部109による目標値の算出を実行させ、直接教示装置1が第一の状態又は第三の状態である場合には目標値算出部109による目標値の算出を停止させるよう切換えてもよい。
【0076】
このように、直接教示装置1は、操作者によりアーム2の位置姿勢が拘束目標に近づけられると、自動的に拘束制御を開始する。また、直接教示装置1は、操作者により拘束付き直接教示の解除操作が行われると、自動的に拘束制御を終了する。また、直接教示装置1は、復帰条件を満たした後に再度操作者によりアーム2の位置姿勢が拘束目標に近づけられると、自動的に拘束制御を開始する。これにより、直接教示装置1は、操作者によりアーム2が保持された状態で拘束制御のオンオフを切換えることができる。
なお、切換部108は、拘束目標が複数あって近接判定部105からアーム2に最も近い拘束目標を示す情報が通知された場合には、後述する目標値算出部109にその情報を出力して当該目標値算出部109の動作を切換えてもよい。
【0077】
なお、近接判定部105、解除操作判定部106及び復帰判定部107は、切換部108がその判定結果を必要としないときは処理を停止してもよい。例えば、直接教示装置1が第二の状態である場合には、切換部108は近接判定部105による判定結果は用いないため、近接判定部105は処理を停止しても支障はない。また、直接教示装置1が第一の状態又は第三の状態である場合には、切換部108は解除操作判定部106による判定結果は用いないため、解除操作判定部106は処理を停止しても支障はない。また、直接教示装置1が第一の状態又は第二の状態である場合には、切換部108は復帰判定部107による判定結果は用いないため、復帰判定部107は処理を停止しても支障はない。なお、近接判定部105は、復帰判定部107が復帰判定のために近接判定部105による判定結果を用いる場合には、直接教示装置1が第三の状態である場合にも処理を実施する必要がある。
【0078】
次いで、目標値算出部109は、拘束目標及び位置姿勢演算部104による算出結果に基づいて、拘束制御の目標値を算出する(ステップST409)。
【0079】
例えば、拘束制御の目的がエンドエフェクタ201の先端のZ軸座標を0.1[m]の位置に固定することであり、位置姿勢演算部104により算出されたエンドエフェクタ201の先端の現在値が[XP,YP,ZP]であるとする。この場合、目標値算出部109は、拘束制御の目標値を[XP,YP,0.1]とする。
【0080】
また、拘束制御の目的が、
図9下段に示すようにエンドエフェクタ201の向き502のうちのZ軸を真下方向507とした上でX軸をロボット座標系のX軸に合わせることであるとする。この場合、拘束制御の目標値である目標姿勢を回転行列表現で表したものは次式(1)のようになる。なお、回転行列による姿勢の表現は、例えば非特許文献1等に開示されており、その詳細については省略する。
【文献】John J. Craig (三浦・下山訳):ロボティクス,共立出版(1991)
【0081】
なお、目標値算出部109は、拘束制御の目標値として、1つの目標値のみを算出してもよいし、複数の目標値を算出してその中から1つの目標値を選択してもよい。例えば、拘束制御の目的がエンドエフェクタ201の先端のZ軸座標を0.1[m]刻みで最も近い位置に固定することである場合、目標値算出部109は、拘束制御の目標値として[XP,YP,0.1n](nは整数)の中で最も現在の位置に近いものを選択する。
【0082】
また、拘束制御の目的が
図10に示すようにエンドエフェクタ201の向き502のうちのZ軸を真下方向507とし且つこのZ軸を回転軸としてπ/2刻み(90度刻み)に回転させた姿勢で固定することである場合、目標値算出部109は、拘束制御の目標値として最も現在の姿勢に近いものを選択する。このとき、拘束制御の目標値である目標姿勢を回転行列表現で表したものは次式(2)のようになる。
この式(2)は
図10に示すように、nによって目標姿勢が4通りに変わるが、目標値算出部109はその中から現在の姿勢に最も近いものを1つ選択する。目標値算出部109は、現在の姿勢に近いかどうかは、現在の姿勢から各目標姿勢へと回転させた場合の回転角の大小等から判断できる。また、近接判定部105がアーム2に最も近い拘束目標を示す情報を通知している場合には、目標値算出部109はその情報から拘束制御の目標値を選択してもよい。
【0083】
次いで、拘束制御演算部110は、位置姿勢演算部104による算出結果に基づいて、目標値算出部109により算出された目標値に移動するアーム2の動き(拘束制御指令値)を算出する(ステップST410)。この際、拘束制御演算部110は、目標値算出部109により算出された目標値から、アーム2を現在の位置姿勢から目標値に移動させるのに必要なアーム2の移動量又は単位時間当たり移動量である関節角速度θ(ドット)等を算出する。また、拘束制御演算部110は、関節角速度θ(ドット)の代わりに1制御周期あたりの関節角変化量Δθを演算してもよい。
【0084】
次いで、合成部111は、従動制御演算部103から出力された従動制御指令値と拘束制御演算部110から出力された拘束制御指令値とを一つの指令値に合成する(ステップST411)。
【0085】
例えば、従動制御演算部103が従動制御指令値として関節角θDを出力し、拘束制御演算部110が拘束制御指令値として関節角変化量ΔθCを出力した場合には、合成部111は、θD+ΔθCを関節角指令値として出力する。
また、例えば、従動制御演算部103が従動制御指令値として位置座標[xD,yD,zD]及び姿勢TD(回転行列表現)を出力し、拘束制御演算部110が拘束制御指令値として位置変化量[ΔxC,ΔyC,ΔzC]及び姿勢変化量ΔTC(回転行列表現)を出力した場合には、合成部111は、[xD+ΔxC,yD+ΔyC,zD+ΔzC]を位置指令値として、ΔTCTD(回転行列表現)を姿勢指令値として出力する(回転行列表現された姿勢の合成は行列の積となる)。
また、例えば、従動制御演算部103が従動制御指令値としてトルクτDを出力し、拘束制御演算部110が拘束制御指令値としてトルク変化量ΔτCを出力した場合には、合成部111は、τD+ΔτCをトルク指令値として出力する。
【0086】
次いで、駆動制御部112は、合成部111による合成結果に基づいて、アーム2を駆動する(ステップST412)。この駆動制御部112によるアーム2の駆動は、通常のアーム2の制御であるため、その詳細については省略する。
【0087】
以上のように、この実施の形態1によれば、直接教示装置1は、ロボットが有するアーム2に加えられた外力を検知する外力検知部102と、外力検知部102により検知された外力に従うアーム2の動きを算出する従動制御演算部103と、アーム2の位置又は姿勢のうちの少なくとも一方である位置姿勢を算出する位置姿勢演算部104と、位置姿勢演算部104による算出結果に基づいて、アーム2の位置姿勢が、当該アーム2の位置姿勢の拘束先である拘束目標に近づいているかを判定する近接判定部105と、操作者が拘束付き直接教示を解除するための解除操作を行ったかを判定する解除操作判定部106と、拘束付き直接教示へと切換え可能な状態への復帰条件を満たしたかを判定する復帰判定部107と、拘束目標及び位置姿勢演算部104による算出結果に基づいて、拘束付き直接教示における拘束制御の目標値を算出する目標値算出部109と、位置姿勢演算部104による算出結果に基づいて、目標値算出部109により算出された目標値に移動するアーム2の動きを算出する拘束制御演算部110と、自機が第一の状態である場合において近接判定部105により拘束目標に近づいていると判定された場合に自機を第二の状態へと切換え、自機が第二の状態である場合において解除操作判定部106により操作者が解除操作を行ったと判定された場合に自機を第三の状態へと切換え、自機が第三の状態である場合において復帰判定部107により復帰条件を満たしたと判定された場合に自機を第一の状態へと切換え、自機が第二の状態にある場合に拘束制御演算部110による処理を有効とし、自機が第一の状態又は第三の状態にある場合に拘束制御演算部110による処理を無効とする切換部108と、従動制御演算部103による算出結果と拘束制御演算部110による算出結果とを合成する合成部111と、合成部111による合成結果に基づいてアーム2を駆動する駆動制御部112とを備えた。これにより、実施の形態1に係る直接教示装置1は、操作者がアーム2を操作している状態のまま通常の直接教示と拘束付き直接教示を切換え可能となる。
【0088】
実施の形態2.
実施の形態2では、アーム2が垂直多関節型ロボットアームであり、直接教示装置1による拘束方法が姿勢拘束のみに限定された場合を示す。なお、実施の形態2に係る直接教示装置1の構成例は、実施の形態1に係る直接教示装置1の構成例と同様であり、以下では
図1に示す構成例を用いて説明を行う。
【0089】
なお、実施の形態2における位置姿勢演算部104は、アーム2の姿勢を算出する。
また、実施の形態2における近接判定部105は、位置姿勢演算部104による算出結果に基づいて、アーム2の姿勢が拘束方向505に近接しているかを判定する。
【0090】
次に、実施の形態2に係る直接教示装置1の動作例について、
図11を参照しながら説明する。
以下では、直接教示装置1は、エンドエフェクタ201の向き502(Z軸)を真下方向507又は真横方向509に拘束するような姿勢拘束を行うものとする。また、ロボット座標系の各軸の単位ベクトルをe
X,e
Y,e
Zで表す。また、アーム2は6軸であるとする。また、切換部108は、目標値算出部109及び拘束制御演算部110の動作を切換えるものとする。また、従動制御演算部103は従動制御指令値としてアーム2の各関節角θを算出し、拘束制御演算部110は拘束制御指令値としてアーム2の各関節角速度θ(ドット)を算出するものとする。
【0091】
実施の形態2に係る直接教示装置1の動作例では、
図11に示すように、まず、位置姿勢計測部101は、アーム2の各関節角θを計測する(ステップST1101)。例えば、位置姿勢計測部101は、アーム2が有するモータに取付けられたエンコーダ等を用いて、アーム2の関節毎に関節角θを計測する。
【0092】
次いで、外力検知部102は、操作者によりアーム2に加えられた外力を検知する(ステップST1102)。この外力検知部102による処理は実施の形態1と同じである。なお、外力検知部102は重力補償を行うものとする。
【0093】
次いで、従動制御演算部103は、位置姿勢計測部101による計測結果に基づいて、外力検知部102により検知された外力に従うアーム2の各関節角θ(従動制御指令値)を算出する(ステップST1103)。この従動制御演算部103の動作例について、
図12を参照しながら説明する。
【0094】
従動制御演算部103は、例えば
図12Aに示される方法により、外力検知部102により検知されたトルクτからアーム2の各関節角θを算出できる。
図12Aでは、従動制御演算部103は、まず、外力検知部102により検知されたトルクτにゲインK
Tを掛けることで、アーム2の関節毎に目標とする関節角速度θ(ドット)を算出する。なお、ゲインK
Tは、アーム2の関節毎に同一でもよいし異なっていてもよい。なお
図12Aに示すように、従動制御演算部103は、目標とする関節角速度θ(ドット)にリミッタを適用し、従動制御の速さを制限してもよい。
次に、従動制御演算部103は、目標とする関節角速度θ(ドット)に制御周期T
Sを掛けることで、アーム2の関節毎に、1制御周期あたりの関節角変化量Δθを算出する。
次に、従動制御演算部103は、アーム2の関節毎に、現時刻kの関節角θ(k)に関節角変化量Δθを加算して次の時刻k+1の関節角θ(k+1)を算出する。
【0095】
また、従動制御演算部103は、例えば
図12Bに示される方法により、外力検知部102により検知された力Fからアーム2の各関節角θを演算できる。
図12Bの例では、従動制御演算部103は、まず、外力検知部102により検知された力FにゲインK
Fを掛けることで、アーム2の位置及び姿勢毎に移動速度を算出する。なお、ゲインK
Fは、アーム2の位置及び姿勢の各成分毎に同一でもよいし異なっていてもよい。
次に、従動制御演算部103は、移動速度にヤコビ行列Jの逆行列を掛けることで、アーム2の関節毎に目標とする関節角速度θ(ドット)を算出する。なお、従動制御演算部103は、ヤコビ行列Jの逆行列が存在しない場合は疑似逆行列を掛ける。なお
図12Bに示すように、従動制御演算部103は、目標とする関節角速度θ(ドット)にリミッタを適用し、従動制御の速さを制限してもよい。
次に、従動制御演算部103は、目標とする関節角速度θ(ドット)に制御周期T
Sを掛けることで、アーム2の関節毎に、1制御周期あたりの関節角変化量Δθを算出する。
次に、従動制御演算部103は、アーム2の関節毎に、現時刻kの関節角θ(k)に関節角変化量Δθを加算して次の時刻k+1の関節角θ(k+1)を算出する。
【0096】
次いで、位置姿勢演算部104は、従動制御演算部103による算出結果に基づいて、アーム2の姿勢を算出する(ステップST1104)。位置姿勢演算部104は、順運動学により上記算出を実行できる。以下、位置姿勢演算部104により算出されるアーム2の姿勢を回転行列によりTで表す。また、Tを列ベクトルや要素に分解したものを次式(3)のように表す。
【0097】
次いで、近接判定部105は、位置姿勢演算部104による算出結果に基づいて、アーム2の姿勢が拘束方向505に近づいているかを判定する(ステップST1105)。ここでは、拘束方向505は真下方向507又は真横方向509である。また、接近判定のしきい値は0.1[rad]であるとする。近接判定部105の動作例について、
図13を参照しながら説明する。
【0098】
近接判定部105の動作例では、
図13に示すように、近接判定部105は、まず、真上方向(基準方向)508とエンドエフェクタ201の向き502(Z軸)とが成す角度Θを算出する(ステップST1301)。すなわち、近接判定部105は、次式(4)のように、e
Zとt
Zとの内積から角度Θを算出する。
【0099】
そして、近接判定部105は、角度Θが(π/2-0.1)[rad]から(π/2+0.1)[rad]の範囲内であるかを判定する(ステップST1302)。
このステップST1302において、近接判定部105は、角度Θが(π/2-0.1)[rad]から(π/2+0.1)[rad]の範囲内であると判定した場合(例えば
図14Aの場合)には、アーム2の姿勢が真横方向509に近づいていると判定する(ステップST1303)。
【0100】
一方、ステップST1302において、近接判定部105は、角度Θが(π/2-0.1)[rad]から(π/2+0.1)[rad]の範囲内ではないと判定した場合には、角度Θが(π-0.1)[rad]以上であるかを判定する(ステップST1304)。
このステップST1304において、近接判定部105は、角度Θが(π-0.1)[rad]以上であると判定した場合(例えば
図14Bの場合)には、アーム2の姿勢が真下方向507に近づいていると判定する(ステップST1305)。
【0101】
一方、ステップST1304において、近接判定部105は、角度Θが(π-0.1)[rad]以上ではないと判定した場合(例えば
図14Cの場合)には、アーム2の姿勢がどの拘束方向505にも近づいていないと判定する(ステップST1306)。
【0102】
また、解除操作判定部106は、操作者が解除操作を行ったかを判定する(ステップST1106)。ここで、解除操作判定部106は、外力を用いた判定を行う場合には、実施の形態1と同様の方法が適用可能である。一方、解除操作判定部106は、アーム2の位置姿勢を用いた判定を行う場合には、実施の形態2では直接教示装置1がアーム2の姿勢拘束を行っているため、適用可能な判定方法は姿勢拘束と両立可能な判定方法に限定される。例えば、実施の形態2における解除操作判定部106は、
図7Cに示すように、アーム2の姿勢のパターンを用いた判定方法は適用できない。
【0103】
また、復帰判定部107は、拘束付き直接教示へと切換え可能な状態への復帰条件を満たしたかを判定する(ステップST1107)。実施の形態2では直接教示装置1がアーム2の姿勢拘束を行っているため、復帰判定部107は、アーム2の位置姿勢に基づいて判定を行う場合には、角度Θの値に基づいて判定可能である。例えば、復帰判定部107は、角度Θが、(π/2-0.1)[rad]から(π/2+0.1)[rad]の範囲内ではなく、且つ、(π-0.1)[rad]未満である場合に、アーム2の勢が拘束姿勢から離れており、復帰条件を満たしたと判定できる。
【0104】
また上記では、復帰判定部107は、復帰判定のしきい値として、(π/2-0.1)[rad]、(π/2+0.1)[rad]及び(π―0.1)[rad]を用いた。しかしながら、これに限らず、復帰判定部107は、復帰判定のしきい値として、(π/2-0.12)[rad]、(π/2+0.12)[rad]及び(π-0.12)[rad]のように上記のしきい値よりも多少広げた値を用いてもよい。
【0105】
一方で、復帰判定部107は、復帰判定のしきい値として、近接判定部105が用いるしきい値よりも狭い値を用いてはいけない。これは、復帰判定部107が上記の狭い値を用いると、復帰判定部107が復帰条件を満たしたと判定した直後に近接判定部105がアーム2の姿勢が拘束方向505に近づいていると判定し、直接教示装置1が拘束付き直接教示から離脱できないためである。
【0106】
なお、復帰判定部107は、判定にアーム2の位置姿勢を用いず時間のみを用いる場合には、実施の形態1と同様の方法が適用可能である。
【0107】
次いで、切換部108は、目標値算出部109の動作を切換え、また、拘束制御演算部110の動作を切換える(ステップST1108)。すなわち、切換部108は、近接判定部105による判定結果に従い、目標値算出部109の動作を切換える。また、切換部108は、近接判定部105による判定結果、解除操作判定部106による判定結果及び復帰判定部107による判定結果に従い、拘束制御演算部110の動作を切換える。
【0108】
この際、切換部108は、近接判定部105によりアーム2の姿勢が真横方向509に近づいていると判定された場合には、目標値算出部109に目標値として真横方向509への目標姿勢を算出させる。
また、切換部108は、近接判定部105によりアーム2の姿勢が真下方向507に近づいていると判定された場合には、目標値算出部109に目標値として真下方向507への目標姿勢を算出させる。
また、切換部108は、近接判定部105によりアーム2の姿勢がどの拘束方向505にも近づいていないと判定された場合には、目標値算出部109による算出を不要とする。
なお、切換部108による拘束制御演算部110の動作の切換えは、実施の形態1と同様である。
【0109】
次いで、目標値算出部109は、拘束目標及び位置姿勢演算部104による算出結果に基づいて、目標姿勢を算出する(ステップST1109)。例えば、目標値算出部109は、真横方向509又は真下方向507であり、且つ、アーム2の現在の姿勢から最も小さい回転角度ΘRで到達可能な目標姿勢を算出する。目標値算出部109による目標姿勢の算出方法について以下に示す。
【0110】
まず、目標値算出部109は、対象となる目標姿勢毎に、eZに対する目標角度Θ*を算出する。ここで、目標姿勢が真横方向509である場合には目標角度Θ*はπ/2であり、目標姿勢が真下方向507である場合には目標角度Θ*はπである。
【0111】
次に、目標値算出部109は、アーム2の姿勢に基づいて、回転角度Θ
Rが最も小さい回転軸510を算出する。
図15に示すように、この回転軸510は、ロボット座標系のXY平面上にあり且つt
Zと直交する軸(すなわちe
Z及びt
Zの両方と直交する軸)である。よって、目標値算出部109は、e
Z及びt
Zの両方と内積が0となるような単位ベクトルであるrを1つ求め、それを回転軸510とする。なお、目標値算出部109は、e
Zとt
Zとが平行の場合にはrを一意に求めることはできない。しかしながら、これはアーム2の姿勢が真上方向508又は真下方向507を向いている場合であり、目標値算出部109は、XY平面上の任意のベクトルを回転軸510として算出する。
【0112】
次に、目標値算出部109は、算出した目標角度Θ
*及び回転軸510に基づいて、目標姿勢として回転角度Θ
Rを算出する。ここで、エンドエフェクタ201の向き502が真上方向(基準方向)508から角度Θである場合、回転角度Θ
Rの大きさはΘ
*-Θとなるが、
図16に示すように回転の向き(正負)を考慮する必要がある。これは、実施の形態2に係る直接教示装置1では、角度Θを求める際に内積を使っているため、エンドエフェクタ201の向き502の情報が失われているためである。回転の向きを考慮すると、回転角度Θ
Rは次式(5)のようになる。すなわち、回転の向きは、e
Z×t
Zとrとが同じ向きである場合には符号の反転は不要であり、e
Z×t
Zとrとが逆の向きである場合には符号の反転が必要である。
目標値算出部109では、回転軸510を表すr=[r
x,r
y,r
z]
T(Tは転置を表す)と回転角度Θ
Rが得られれば、アーム2の姿勢から目標姿勢への回転が得られたことになるので、拘束目標が事実上得られたことになる。目標姿勢の具体的な表現が必要な場合は、目標値算出部109は、アーム2の姿勢に前述した回転を適用することで得られる。
【0113】
上記では、目標値算出部109が、エンドエフェクタ201の向き502(Z軸)が真下方向507又は真横方向509を向くような目標姿勢を算出する方法について述べた。目標値算出部109は、ここから更に回転を加えて所望の姿勢にして、それを目標姿勢とすることも可能である。
例えば、目標値算出部109は、アーム2が真下方向507を向いた状態からZ軸周りに回転を加えることで、
図10に示すような姿勢を目標姿勢とすることも可能である。また、目標値算出部109は、
図17に示すように、アーム2が真横方向509を向いた状態から更にZ軸周りに回転を加え、t
X又はt
Yがロボット座標系のZ軸と平行となる姿勢を目標姿勢とすることも可能である。
【0114】
次いで、拘束制御演算部110は、位置姿勢演算部104による算出結果に基づいて、目標値算出部109により算出された目標姿勢に移動するアーム2の動き(拘束制御指令値)を算出する(ステップST1110)。なお、アーム2を現在の姿勢から目標姿勢へと動かすような回転は、目標値算出部109が目標姿勢を算出する際に既に算出しているため、拘束制御演算部110は、そのようにアーム2を回転させる動きを算出する。ただし、拘束制御演算部110の出力は関節角速度θ(ドット)とする必要があるので、拘束制御演算部110は、目標値算出部109により算出された回転軸510であるrと回転角度ΘRの組から関節角速度θ(ドット)を算出する必要がある。以下にその計算の一例を示す。
【0115】
拘束制御演算部110は、まず、回転の角速度の大きさ|ω|を決める。例えば、制限を受けなければ1秒で目標姿勢に到達するように制御するのであれば、|ω|=θ
Rとする。拘束制御演算部110は、角速度が大き過ぎるのが好ましくないのであれば、角速度を適宜制限すればよい。
次に、拘束制御演算部110は、アーム2の現在の位置姿勢におけるヤコビ行列Jを算出する。ヤコビ行列Jについては次式(6)が成り立つものとする。
ここで、v
X,v
Y,v
Zはエンドエフェクタ201の先端のX,Y,Z軸方向の速度であり、ω
X,ω
Y,ω
Zはアーム2の姿勢がX軸,Y軸,Z軸について回転する角速度であり、θ
1(ドット)~θ
6(ドット)は各関節角速度である。
【0116】
次に、拘束制御演算部110は、回転軸510であるrと回転速度の大きさ|ω|から姿勢に関する回転ベクトルω=[ω
X,ω
Y,ω
Z]
Tを算出する。
次に、拘束制御演算部110は、次式(7)を満たすようなアーム2の関節毎の関節角速度θ
1(ドット)~θ
6(ドット)を算出する。なお、拘束制御演算部110は、ヤコビ行列Jに逆行列が存在しない場合は疑似逆行列等を用いて関節角速度θ
1(ドット)~θ
6(ドット)を算出する。
【0117】
なお、拘束制御演算部110は、得られた関節角速度が過大になるのを避けるために、リミッタを適用してもよい。その場合、拘束制御演算部110は、全ての関節角に同じ定数(0から1の間の値)を掛けて制限し、回転の向きを変えないようにすることが好ましい。
【0118】
次いで、合成部111は、従動制御演算部103から出力された従動制御指令値(関節角θ)と拘束制御演算部110から出力された拘束制御指令値(関節角速度θ(ドット))とを合成する(ステップST1111)。
例えば、従動制御演算部103が関節角θ=[θ1,・・・,θm]Tを出力し、拘束制御演算部110が関節角速度θ(ドット)=[θ1(ドット),・・・,θm(ドット)]Tを出力した場合、制御周期TSから、合成部111の出力である関節角指令値はθ+TSθ(ドット)となる。ただし、mは駆動制御部112が制御するアーム2の関節数である。
【0119】
次いで、駆動制御部112は、合成部111による合成結果(関節角指令値)に基づいて、アーム2を駆動する(ステップST1112)。
【0120】
なお上記では一部、6軸(関節数が6個)のアーム2を前提として説明及び例示を行ったが、6軸以外のアーム2であっても同様に実施可能である。
【0121】
実施の形態3.
実施の形態2に係る直接教示装置1では、拘束方法が姿勢拘束のみに限定された場合を示した。それに対し、実施の形態3に係る直接教示装置1では、拘束方法が軸拘束のみに限定された場合を示す。軸拘束とは、アーム2の位置を所定の拘束軸504に拘束する位置拘束とアーム2の姿勢を所定の拘束方向505に拘束する姿勢拘束とを同時に行うことを意味する。すなわち、実施の形態3に係る直接教示装置1は、実施の形態2で示した姿勢拘束に加え、位置拘束も行う。以下では、直接教示装置1が、
図18に示すようなロボット座標系のZ軸に平行な直線511への位置拘束及び真下方向507への姿勢拘束を行う場合を示すが、拘束軸504及び拘束方向505は任意に設定可能である。
なお、実施の形態3に係る直接教示装置1の構成例は、実施の形態2に係る直接教示装置1の構成例と同様であり、以下では
図1に示す構成例を用いて説明を行う。
【0122】
なお、実施の形態3における位置姿勢演算部104は、アーム2の位置及び姿勢を算出する。
また、実施の形態3における近接判定部105は、位置姿勢演算部104による算出結果に基づいて、アーム2の位置が拘束目標である拘束軸504に近づいているかを判定し且つアーム2の姿勢が拘束目標である拘束方向505に近づいているかを判定することで、アーム2の位置姿勢が拘束目標に近づいているかを判定する。
【0123】
図19は、実施の形態3に係る直接教示装置1の動作例を示すフローチャートである。
図19に示す実施の形態3に係る直接教示装置1において、
図11に示す実施の形態2に係る直接教示装置1と動作が異なるのは、位置姿勢演算部104、近接判定部105、解除操作判定部106、復帰判定部107、目標値算出部109及び拘束制御演算部110であり、これらの構成の動作例についてのみ説明を行う。
【0124】
まず、位置姿勢演算部104は、従動制御演算部103による算出結果に基づいて、アーム2の位置及び姿勢を算出する(ステップST1904)。実施の形態3ではアーム2の位置及び姿勢の両方を拘束するため、位置姿勢演算部104は、アーム2の位置及び姿勢の両方を算出する必要がある。位置姿勢演算部104は、順運動学により上記算出を実行できる。
【0125】
また、近接判定部105は、位置姿勢演算部104による算出結果に基づいて、アーム2の位置が拘束軸504に近づいているか及びアーム2の姿勢が拘束方向505に近づいているかをそれぞれ判定し、それらの判定結果を基にアーム2の位置姿勢が拘束目標に近づいているかどうかを総合的に判定する(ステップST1905)。例えば、近接判定部105は、アーム2の位置が拘束軸504に近づき且つアーム2の姿勢が拘束方向505に近づいていると判定した場合には、アーム2の位置姿勢は拘束目標に近づいていると判定する。近接判定部105による拘束方向505に対する判定については実施の形態2で説明しているので省略し、以下では、近接判定部105による拘束軸504に対する判定について説明する。
【0126】
この際、近接判定部105は、例えば
図20に示すように、エンドエフェクタ201の位置501から拘束軸504に対して垂線512をおろし、その垂線512の長さが所定の値より小さければアーム2の位置が拘束軸504に近づいていると判定する。例えばアーム2の位置の座標を[x,y,z]で表し、直線511のX座標とY座標をそれぞれx
*,y
*で表す。この場合、垂線512の長さは次式(8)のようになる。
そして、近接判定部105は、式(8)に示す垂線512の長さが所定の値よりも小さければ、アーム2の位置が拘束軸504に近づいていると判定し、それ以外の場合にはアーム2の位置が拘束軸504には近づいていないと判定する。なお、近接判定部105は、拘束軸504がロボット座標系のZ軸に平行な場合以外でも、同様にして拘束軸504に対しておろした垂線の長さから接近判定が可能である。
【0127】
次いで、解除操作判定部106は、操作者が解除操作を行ったかを判定する(ステップST1906)。ここで、解除操作判定部106は、外力を用いた判定を行う場合には、実施の形態1と同様の方法が適用可能である。一方、解除操作判定部106は、アーム2の位置姿勢を用いた判定を行う場合には、実施の形態3では直接教示装置1がアーム2の軸拘束を行っているため、適用可能な判定方法は軸拘束と両立可能な判定方法に限定される。例えば、実施の形態3における解除操作判定部106は、
図7の例では、
図7D,7Eに示した方法のみ適用可能である。一方、実施の形態3における解除操作判定部106は、
図7A~7Cに示した方法は、アーム2が軸に拘束されたままでは実施できないため、適用不可である。
【0128】
次いで、復帰判定部107は、拘束付き直接教示へと切換え可能な状態への復帰条件を満たしたかを判定する(ステップST1907)。実施の形態3では直接教示装置1がアーム2の軸拘束を行っているため、復帰判定部107は、アーム2の位置姿勢に基づいて判定を行う場合には、アーム2の位置と拘束軸504との間の距離及びアーム2の姿勢と拘束方向505との間の関係に基づいて判定可能である。復帰判定部107による拘束方向505に対する判定については実施の形態2で説明しているので省略し、以下では、復帰判定部107による拘束軸504に対する判定について説明する。
【0129】
復帰判定部107は、拘束軸504に対する判定では、近接判定部105と同様に、垂線512の長さに基づいて行う。すなわち、復帰判定部107は、垂線512の長さが所定の値より大きい場合に、復帰条件を満たしたと判定する。なお、上記所定の値は、近接判定部105が用いるしきい値と同じ、又はより大きくする必要がある。これは、復帰判定部107が上記しきい値より狭い値を用いると、復帰判定部107が復帰条件を満たしたと判定した直後に近接判定部105がアーム2の位置姿勢が拘束目標に近づいていると判定してしまい、直接教示装置1が拘束付き直接教示から離脱できなくなってしまうためである。
【0130】
なお、復帰判定部107は、判定にアーム2の位置姿勢を用いず時間のみを用いる場合には、実施の形態1と同様の方法が適用可能である。
【0131】
また、目標値算出部109は、実施の形態2で説明した目標姿勢の算出に加え、アーム2の位置を拘束軸504へと移動させる場合の目標位置の算出を行う(ステップST1909)。例えば、目標値算出部109は、エンドエフェクタ201の位置501から
図20に示すように拘束軸504へと垂線512をおろした位置513を目標位置とする。ここで、目標値算出部109は、アーム2の位置をロボット座標系のZ軸に平行な拘束軸504に拘束させるのであれば、目標位置は[x
*,y
*,z]となる。
【0132】
また、拘束制御演算部110は、実施の形態2と同様に、ヤコビ行列Jを用いてアーム2の関節毎に関節角速度θ(ドット)を算出する(ステップST1910)。ただし、実施の形態3における拘束制御演算部110では、姿勢拘束に加え位置拘束も行うので、演算手順が実施の形態2に対して以下のように変わる。
【0133】
まず、拘束制御演算部110は、回転の角速度の大きさ|ω|を決める。
次に、拘束制御演算部110は、アーム2の現在の位置姿勢におけるヤコビ行列Jを算出する。
次に、拘束制御演算部110は、回転軸510であるrと回転速度の大きさ|ω|から姿勢に関する回転ベクトルω=[ωX,ωY,ωZ]Tを算出する。ここまでの動作は、実施の形態2と同様である。
【0134】
次に、拘束制御演算部110は、アーム2の位置を拘束軸504へと移動させる速さ|v|を決める。例えば、制限を受けなければ1秒で目標位置に到達するように制御するのであれば、拘束制御演算部110は、|v|=√{(x-x
*)
2+(y-y
*)
2}とする。また、拘束制御演算部110は、ある定数v
*を決めて|v|=v
*としてもよい。
次に、拘束制御演算部110は、アーム2の位置に関する速度ベクトルv=[v
X,v
Y,0]
Tを算出する。拘束制御演算部110は、ロボット座標系のZ軸に平行な拘束軸504に拘束させる場合はv=|v|[x
*-x,y
*-y,0]/√{(x-x
*)
2+(y-y
*)
2}より算出可能である。
次に、拘束制御演算部110は、アーム2の関節毎に関節角速度θ(ドット)を次式(9)より算出する。なお、拘束制御演算部110は、得られた関節角速度にリミッタを適用してもよい。
【0135】
その他の動作は実施の形態2と同じになる。
なお、実施の形態3に係る直接教示装置1において、姿勢拘束に関する演算を省略した場合には、アーム2の姿勢に関する拘束は行われず、アーム2の位置のみを指定された軸に拘束する制御となる。
【0136】
実施の形態4.
実施の形態2に係る直接教示装置1では、拘束方法が姿勢拘束のみに限定された場合を示した。それに対し、実施の形態4に係る直接教示装置1では、拘束方法が面拘束のみに限定された場合を示す。面拘束とは、アーム2の位置を所定の拘束面503に拘束する位置拘束とアーム2の姿勢を所定の拘束方向505に拘束する姿勢拘束とを同時に行うことを意味する。すなわち、実施の形態4に係る直接教示装置1は、実施の形態2で示した姿勢拘束に加え、位置拘束も行う。以下では、直接教示装置1が、
図21に示すようなZ軸座標がX軸座標及びY軸座標の関数z=f(x,y)で表される曲面513への位置拘束及び真下方向507への姿勢拘束を行う場合を示すが、拘束面503及び拘束方向505は任意に設定可能であり、例えば拘束面503が関数x=f(y,z)又はy=f(z,x)で表される場合等についても同様の方法で実施可能である。
なお、実施の形態4に係る直接教示装置1の構成例は、実施の形態2に係る直接教示装置1の構成例と同様であり、以下では
図1に示す構成例を用いて説明を行う。
【0137】
なお、実施の形態4における位置姿勢演算部104は、アーム2の位置及び姿勢を算出する。
また、実施の形態4における近接判定部105は、位置姿勢演算部104による算出結果に基づいて、アーム2の位置が拘束目標である拘束面503に近づいているかを判定し且つアーム2の姿勢が拘束目標である拘束方向505に近づいているかを判定することで、アーム2の位置姿勢が拘束目標に近づいているかを判定する。
【0138】
図22は、実施の形態4に係る直接教示装置1の動作例を示すフローチャートである。
図22に示す実施の形態4に係る直接教示装置1において、
図19に示す実施の形態3に係る直接教示装置1と動作が異なるのは、近接判定部105、解除操作判定部106、復帰判定部107、目標値算出部109及び拘束制御演算部110であり、これらの構成の動作例についてのみ説明を行う。
【0139】
まず、近接判定部105は、位置姿勢演算部104による算出結果に基づいて、アーム2の位置が拘束面503に近づいているか及びアーム2の姿勢が拘束方向505に近づいているかをそれぞれ判定し、それらの判定結果を基にアーム2の位置姿勢が拘束目標に近づいているかどうかを総合的に判定する(ステップST2205)。例えば、近接判定部105は、アーム2の位置が拘束面503に近づき且つアーム2の姿勢が拘束方向505に近づいていると判定した場合には、アーム2の位置姿勢は拘束目標に近づいていると判定する。近接判定部105による拘束方向505に対する判定については実施の形態2で説明しているので省略し、以下では、近接判定部105による拘束面503に対する判定について説明する。
【0140】
この際、近接判定部105は、エンドエフェクタ201の位置501から拘束面503に対してロボット座標系のZ軸に平行な直線をおろし、その直線の長さが所定の値より小さければアーム2の位置が拘束面503に近づいていると判定する。例えばアーム2の位置の座標が[x,y,z]である場合、上記直線の長さは{z-f(x,y)}となる。そして、近接判定部105は、この長さが所定の値よりも小さければ、アーム2の位置が拘束面503に近づいていると判定し、それ以外の場合にはアーム2の位置が拘束面503には近づいていないと判定する。
【0141】
次いで、解除操作判定部106は、操作者が解除操作を行ったかを判定する(ステップST2206)。ここで、解除操作判定部106は、外力を用いた判定を行う場合には、実施の形態1と同様の方法が適用可能である。一方、解除操作判定部106は、アーム2の位置姿勢を用いた判定を行う場合には、実施の形態4では直接教示装置1がアーム2の曲面拘束を行っているため、適用可能な判定方法は曲面拘束と両立可能な判定方法に限定される。例えば、実施の形態4における解除操作判定部106は、
図7では、
図7A,7Bに示した方法のみ適用可能である。一方、実施の形態4における解除操作判定部106は、
図7Cに示した方法は、アーム2の姿勢を自由に変更できないため、適用不可である。また、実施の形態4における解除操作判定部106は、
図7D,7Eに示した方法は、アーム2を曲面513から離すことができないため、適用不可である。
【0142】
次いで、復帰判定部107は、拘束付き直接教示へと切換え可能な状態への復帰条件を満たしたかを判定する(ステップST2207)。実施の形態4では直接教示装置1がアーム2の曲面拘束を行っているため、復帰判定部107は、アーム2の位置姿勢に基づいて判定を行う場合には、アーム2の位置と拘束面503との間の距離及びアーム2の姿勢と拘束方向505との間の関係に基づいて判定可能である。復帰判定部107による拘束方向505に対する判定については実施の形態2で説明しているので省略し、以下では、復帰判定部107による拘束面503に対する判定について説明する。
【0143】
復帰判定部107は、拘束面503に対する判定では、近接判定部105と同様に、エンドエフェクタ201の位置501から拘束面503に対してロボット座標系のZ軸に平行な直線をおろし、その直線の長さに基づいて行う。すなわち、復帰判定部107は、この長さが所定の値より大きい場合に、復帰条件を満たしたと判定する。なお、上記所定の値は、近接判定部105が用いる所定の値と同じ、又はより大きくする必要がある。その理由は実施の形態3と同様である。
【0144】
なお、復帰判定部107は、判定にアーム2の位置姿勢を用いず時間のみを用いる場合には、実施の形態1と同様の方法が適用可能である。
【0145】
また、目標値算出部109は、実施の形態2で説明した目標姿勢の算出に加え、アーム2の位置を拘束面503へと移動させる場合の目標位置の算出を行う(ステップST2209)。例えば、目標値算出部109は、アーム2の位置の座標が[x,y,z]である場合、Z軸座標だけを曲面上の座標に置き換えた[x,y,f(x,y)]を目標位置とする。
【0146】
また、拘束制御演算部110は、実施の形態2と同様に、ヤコビ行列Jを用いてアーム2の関節毎に関節角速度θ(ドット)を算出する(ステップST2210)。ただし、実施の形態4における拘束制御演算部110では、姿勢拘束に加え位置拘束も行うので、演算手順が実施の形態2に対して以下のように変わる。
【0147】
まず、拘束制御演算部110は、回転の角速度の大きさ|ω|を決める。
次に、拘束制御演算部110は、アーム2の現在の位置姿勢におけるヤコビ行列Jを算出する。
次に、拘束制御演算部110は、回転軸510であるrと回転速度の大きさ|ω|から姿勢に関する回転ベクトルω=[ωX,ωY,ωZ]Tを算出する。ここまでの動作は、実施の形態2と同様である。
【0148】
次に、拘束制御演算部110は、アーム2の位置を拘束軸504へと移動させる速さ|v|を決める。例えば、制限を受けなければ1秒で目標位置に到達するように制御するのであれば、拘束制御演算部110は、|v|=|z-f(x,y)|とする。また、拘束制御演算部110は、速さ|v|をある定数値にしてもよい。
次に、拘束制御演算部110は、アーム2の位置に関する速度ベクトルv=[0,0,v
Z]
Tをv=[0,0,|v|]より算出する。
次に、拘束制御演算部110は、アーム2の関節毎に関節角速度θ(ドット)を次式(10)より算出する。なお、拘束制御演算部110は、得られた関節角速度にリミッタを適用してもよい。
【0149】
その他の動作は実施の形態2,3と同じになる。
なお、実施の形態4に係る直接教示装置1において、姿勢拘束に関する演算を省略した場合には、アーム2の姿勢に関する拘束は行われず、アーム2の位置のみを指定された面に拘束する制御となる。また、実施の形態4に係る直接教示装置1において、アーム2の位置から拘束面503へ垂線を下した方向を目標姿勢とした場合には、エンドエフェクタ201が拘束面503に対して常に垂直となるような姿勢拘束になる。
【0150】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0151】
1 直接教示装置
2 アーム
101 位置姿勢計測部
102 外力検知部
103 従動制御演算部
104 位置姿勢演算部
105 近接判定部
106 解除操作判定部
107 復帰判定部
108 切換部
109 目標値算出部
110 拘束制御演算部
111 合成部
112 駆動制御部
201 エンドエフェクタ