(57)【特許請求の範囲】
【請求項１】
ロボットの制御点の位置または前記ロボットの関節の回転角を含み、前記ロボットを力制御で動作させる制御値に対して範囲を指定し、前記制御値と前記範囲とに基づく動作を前記ロボットに行わせるロボット制御装置であって、
前記範囲は、前記制御点を一致させる点であって予め記憶された教示点の位置及び姿勢を表す教示点座標系に応じた軸に対して設定される第１閾値によって指定され、
前記教示点には、第１教示点と第２教示点とが含まれ、
前記第１教示点の前記第１閾値は、前記第２教示点の前記第１閾値と異なる、
ロボット制御装置。
【請求項２】
前記範囲は、前記関節の回転角を表す関節座標系に応じた軸に対して設定される第２閾値によって指定される、
請求項１に記載のロボット制御装置。
【請求項３】
前記範囲は、ロボット座標系に応じた軸に対して設定される第３閾値によって指定される、
請求項１または２に記載のロボット制御装置。
【請求項４】
前記制御値が前記範囲を所定時間以上超え続けた場合、所定の処理を行う、
請求項１から３のうちいずれか一項に記載のロボット制御装置。
【請求項５】
前記所定の処理は、異常処理と異なる処理を行う、
請求項４に記載のロボット制御装置。
【請求項６】
請求項１から５のうちいずれか一項に記載のロボット制御装置と、
前記ロボット制御装置に制御されるロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット制御装置及びロボットシステムに関する。
【背景技術】
【０００２】
所定の範囲内においてロボットに作業を行わせる技術の研究や開発が行われている。
【０００３】
これに関し、力制御によって教示点の位置と現在のロボット先端の位置との間に発生した位置ずれを検出し、検出した値と予め定めた閾値とを比較し、検出した当該値が当該閾値より大きい場合に、少なくともロボットを異常処理するロボットの制御方法が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２８２５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような制御装置では、教示点の位置とロボット先端の位置との間の位置ずれのみを検出しているため、各教示点においてロボット先端の並進方向への力制御による可動範囲を制限することができたとしても、各教示点においてロボット先端の回転方向への力制御による動きを制限することや、ロボット先端以外のロボットの可動部の力制御による動きを制限することが困難であった。当該可動部は、例えば、ロボットの関節等のことである。その結果、当該制御装置は、ロボットに意図していない動作を行わせてしまう場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、ロボットを力制御で動作させる制御値に対し、範囲を指定し、前記制御値と前記範囲とに基づく動作を前記ロボットに行わせる、ロボット制御装置である。
この構成により、ロボット制御装置は、ロボットを力制御で動作させる制御値に対し、範囲を指定し、制御値と範囲とに基づく動作をロボットに行わせる。これにより、ロボット制御装置は、指定した範囲に応じた動作をロボットに行わせることができる。
【０００７】
また、本発明の他の態様は、ロボット制御装置において、前記範囲は、座標系に応じた軸毎の閾値によって指定される、ロボット制御装置である。
この構成により、ロボット制御装置は、ロボットを動作させる制御値に対し、座標系に応じた軸毎に閾値を指定し、制御値と指定した当該閾値によって指定される範囲とに基づく動作をロボットに行わせる。これにより、ロボット制御装置は、座標系の軸毎に応じた動作をロボットに行わせることができる。
【０００８】
また、本発明の他の態様は、ロボット制御装置において、前記制御値は、前記ロボットの制御点の位置を含み、前記座標系は、前記制御点を一致させる点であって予め記憶された教示点毎の位置及び姿勢を表す教示点座標系を含み、前記教示点座標系に応じた軸毎に第１閾値を前記閾値として指定する、ロボット制御装置である。
この構成により、ロボット制御装置は、教示点座標系に応じた軸毎に第１閾値を閾値として指定する。これにより、ロボット制御装置は、教示点座標系の軸毎に応じた動作をロボット行わせることができる。
【０００９】
また、本発明の他の態様は、ロボット制御装置において、前記教示点毎に異なる前記第１閾値を指定する、構成が用いられてもよい。
この構成により、ロボット制御装置は、教示点毎に異なる第１閾値を指定する。これにより、ロボット制御装置は、制御値と、教示点毎に異なる第１閾値とに基づく動作をロボットに行わせることができる。
【００１０】
また、本発明の他の態様は、ロボット制御装置において、前記第１閾値によって規定されるロボット座標系内の空間の形状は、前記教示点の順番の順に前記教示点を線で繋いだ軌跡に応じた形状である、構成が用いられてもよい。
この構成により、ロボット制御装置は、教示点の順番の順に前記教示点を線で繋いだ軌跡に応じた形状の空間であってロボット座標系内の空間を規定する第１閾値に基づく動作をロボットに行わせる。これにより、ロボット制御装置は、制御値と、第１閾値によって規定されるロボット座標系内の空間の内側と外側とのそれぞれにおいて異なる動作をロボットに行わせることができる。
【００１１】
また、本発明の他の態様は、ロボット制御装置において、前記制御値は、前記ロボットの関節の回転角を含み、前記座標系は、前記関節の回転角を表す関節座標系を含み、前記関節座標系に応じた軸毎に第２閾値を前記閾値として指定する、構成が用いられてもよい。
この構成により、ロボット制御装置は、関節座標系に応じた軸毎に第２閾値を閾値として指定する。これにより、ロボット制御装置は、関節座標系の軸毎に応じた動作をロボットに行わせることができる。
【００１２】
また、本発明の他の態様は、ロボット制御装置において、前記座標系は、ロボット座標系を含み、前記ロボット座標系に応じた軸毎に第３閾値を前記閾値として指定する、構成が用いられてもよい。
この構成により、ロボット制御装置は、ロボット座標系に応じた軸毎に第３閾値を前記閾値として指定する。これにより、ロボット制御装置は、ロボット座標系の軸毎に応じた動作をロボットに行わせることができる。
【００１３】
また、本発明の他の態様は、ロボット制御装置において、前記座標系に応じた軸のうちの予め決められた一部の軸に前記閾値を指定する、構成が用いられてもよい。
この構成により、ロボット制御装置は、座標系に応じた軸のうちの予め決められた一部の軸に閾値を指定する。これにより、ロボット制御装置は、座標系の軸のうちの予め決められた一部の軸に応じた動作をロボットに行わせることができる。
【００１４】
また、本発明の他の態様は、ロボット制御装置において、前記制御値が前記範囲を所定時間以上超え続けた場合、前記制御値と前記範囲とに基づく動作を前記ロボットに行わせる、構成が用いられてもよい。
この構成により、ロボット制御装置は、制御値が範囲を所定時間以上超え続けた場合、所定の処理を行う。これにより、ロボット制御装置は、制御値が範囲を所定時間超え続ける前と後とのそれぞれにおいて異なる動作をロボットに行わせることができる。
【００１５】
また、本発明の他の態様は、ロボット制御装置において、前記所定の処理は、異常処理と異なる処理を行う、構成が用いられてもよい。
この構成により、ロボット制御装置は、制御値が閾値を所定時間以上超え続けた場合、異常処理と異なる処理を行う。これにより、ロボット制御装置は、制御値が閾値を所定時間超え続ける前と後とのそれぞれにおいて、異常処理と異なる処理による動作をロボットに行わせることができる。
【００１６】
また、本発明の他の態様は、上記に記載のロボット制御装置に制御される、ロボットである。
この構成により、ロボットは、ロボットを力制御で動作させる制御値に対し、範囲を指定し、制御値と範囲とに基づく動作を行う。これにより、ロボットは、指定した範囲に応じた動作を行うことができる。
【００１７】
また、本発明の他の態様は、上記に記載のロボット制御装置と、前記ロボット制御装置に制御されるロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムは、ロボットを力制御で動作させる制御値に対し、範囲を指定し、制御値と範囲とに基づく動作をロボットに行わせる。これにより、ロボットシステムは、指定した範囲に応じた動作をロボットに行わせることができる。
【００１８】
以上により、ロボット制御装置、及びロボットシステムは、ロボットを力制御で動作させる制御値に対し、範囲を指定し、制御値と範囲とに基づく動作をロボットに行わせる。これにより、ロボット制御装置は、指定した範囲に応じた動作をロボットに行わせることができる。
また、ロボットは、ロボットを力制御で動作させる制御値に対し、範囲を指定し、制御値と範囲とに基づく動作を行う。これにより、ロボットは、指定した範囲に応じた動作を行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図３】ロボット制御装置３０の機能構成の一例を示す図である。
【図４】教示点座標系のＸ軸及びＹ軸のそれぞれ毎に指定された第１閾値に基づいて算出された仮変域の一例を示す図である。
【図５】図４に示した変域ＲＡ１に基づいてロボット制御装置３０が算出した第１変域の一例を示す図である。
【図６】変域ＲＡ２内に含まれる補正教示点、及び変域ＲＡ２内に含まれない補正教示点のそれぞれを例示する図である。
【図７】教示点座標系のＷ軸に指定された第１閾値に基づいて算出された第２変域の一例を示す図である。
【図８】ロボット座標系ＲＣのＸ軸及びＹ軸のそれぞれ毎に指定された第３閾値に基づいて算出された第３変域の一例を示す図である。
【図９】図５〜図６において説明した変域ＲＡ２の一例と、図８において説明した変域ＲＡ３の一例とをロボット座標系ＲＣにおいて重ねて示した図である。
【図１０】関節座標系Ｊ４ＣのＷ軸に指定された第２閾値に基づいて算出された第４変域の一例を示す図である。
【図１１】関節Ｊ４の回転角の時間的な変化の一例を示す図である。
【図１２】関節座標系Ｊ４ＣのＷ軸に指定された第２閾値に基づいて算出された第４変域の他の例を示す図である。
【図１３】ロボット制御装置３０が行う処理の流れの一例を示すフローチャートである。
【図１４】関節Ｊ４の回転角の時間的な変化の他の例を示す図である。
【図１５】所定の作業において、ロボット２０が第１物体Ｏ１の第１面Ｍ１を第２物体Ｏ２の第２面Ｍ２に接面させる前のタイミングにおけるハンドＨと第２物体Ｏ２との相対的な位置関係の一例を示す図である。
【図１６】所定の作業において、ロボット２０が第１物体Ｏ１の第１面Ｍ１を第２物体Ｏ２の第２面Ｍ２に接面させる前のタイミングにおけるハンドＨと第２物体Ｏ２との相対的な位置関係の他の例を示す図である。
【図１７】円形状の仮変域に基づいて算出された第１変域の一例を示す図である。
【発明を実施するための形態】
【００２０】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００２１】
＜本実施形態における座標系の座標軸＞
まず、本実施形態の説明において用いる各種の座標系の座標軸について説明する。本実施形態の説明において用いる各種の座標系は、Ｘ軸と、Ｙ軸と、Ｚ軸と、Ｕ軸と、Ｖ軸と、Ｗ軸の６つの座標軸を有する。
【００２２】
ある座標系のＸ軸は、当該座標系のＹ軸及びＺ軸と直交しており、当該Ｘ軸に沿った方向であるＸ軸方向の位置（Ｘ軸の座標）を示す座標軸である。当該座標系のＹ軸は、当該座標系のＸ軸及びＺ軸と直交しており、当該Ｙ軸に沿った方向であるＹ軸方向の位置（Ｙ軸の座標）を示す座標軸である。当該座標系のＺ軸は、当該座標系のＸ軸及びＹ軸と直交しており、当該Ｚ軸に沿った方向であるＺ軸方向の位置（Ｚ軸の座標）を示す座標軸である。当該座標系のＵ軸は、当該Ｘ軸周りの回転角を示す座標軸であり、当該Ｕ軸に沿った方向であるＵ軸方向の位置（当該回転角を示す座標であってＵ軸の座標）を示す座標軸である。当該座標系のＶ軸は、当該Ｙ軸周りの回転角を示す座標軸であり、当該Ｖ軸に沿った方向であるＶ軸方向の位置（当該回転角を示す座標であってＶ軸の座標）を示す座標軸である。当該座標系のＷ軸は、当該Ｚ軸周りの回転角を示す座標軸であり、当該Ｗ軸に沿った方向であるＷ軸方向の位置（当該回転角を示す座標であってＷ軸の座標）を示す座標軸である。
【００２３】
なお、以下の説明において、１つ目の座標系である第１座標系の各座標軸と２つ目の座標系である第２座標系の各座標軸とが一致するとは、第１座標系におけるＸ軸と第２座標系におけるＸ軸とが一致し、第１座標系におけるＹ軸と第２座標系におけるＹ軸とが一致し、第１座標系におけるＺ軸と第２座標系におけるＺ軸とが一致し、第１座標系におけるＵ軸と第２座標系におけるＵ軸とが一致し、第１座標系におけるＶ軸と第２座標系におけるＶ軸とが一致し、第１座標系におけるＷ軸と第２座標系におけるＷ軸とが一致することを意味する。
【００２４】
以下では、このような６つの座標軸を有する各種の座標系に基づいて、本実施形態に係るロボットシステム１について説明する。
【００２５】
＜ロボットシステムの構成＞
以下、図１を参照し、ロボットシステム１の構成について説明する。図１は、本実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、ロボット２０と、ロボット制御装置３０を備える。
【００２６】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボットや、直角座標ロボット等の他のロボットであってもよい。直角座標ロボットは、例えば、ガントリロボットである。
【００２７】
アームＡは、エンドエフェクターＥと、マニピュレーターＭと、力検出部２１を備える。
エンドエフェクターＥは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターＥは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【００２８】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２９】
マニピュレーターＭは、支持台Ｂ側からエンドエフェクターＥ側に向かって順に関節Ｊ１、関節Ｊ２、関節Ｊ３、関節Ｊ４、関節Ｊ５、関節Ｊ６、関節Ｊ７と称する図示しない７つの関節を備える。また、当該７つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、７軸垂直多関節型のアームである。アームＡは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える７つの関節それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、アームＡは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００３０】
アームＡが７軸の自由度で動作する場合、アームＡは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これによりアームＡは、例えば、動作が滑らかになり、更にアームＡの周辺に存在する物体との干渉を容易に回避することができる。また、アームＡが７軸の自由度で動作する場合、アームＡの制御は、アームＡが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００３１】
マニピュレーターＭが備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。また、各アクチュエーターは、エンコーダーを備えている。各エンコーダーは、各エンコーダーが備えられたアクチュエーターの回転角を示す情報をロボット制御装置３０に出力する。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３２】
この一例において、ある関節の回転軸は、当該関節の関節座標系のＺ軸と一致している。当該関節の回転軸は、当該関節のアクチュエーターの回転軸のことである。当該関節座標系は、当該関節とともに動くように当該関節のアクチュエーターに対応付けられた三次元局所座標系である。すなわち、当該関節の回転角は、当該関節のアクチュエーターに対応付けられた関節座標系におけるＷ軸方向の位置（座標）によって表される。当該関節の回転角は、当該関節のアクチュエーターの回転軸が回転した角度のことである。
【００３３】
この一例では、関節Ｊ１のアクチュエーターには、関節座標系Ｊ１Ｃが対応付けられている。また、関節Ｊ２のアクチュエーターには、関節座標系Ｊ２Ｃが対応付けられている。また、関節Ｊ３のアクチュエーターには、関節座標系Ｊ３Ｃが対応付けられている。また、関節Ｊ４のアクチュエーターには、関節座標系Ｊ４Ｃが対応付けられている。また、関節Ｊ５のアクチュエーターには、関節座標系Ｊ５Ｃが対応付けられている。また、関節Ｊ６のアクチュエーターには、関節座標系Ｊ６Ｃが対応付けられている。また、関節Ｊ７のアクチュエーターには、関節座標系Ｊ７Ｃが対応付けられている。
【００３４】
なお、ある関節の回転軸は、当該関節のアクチュエーターに対応付けられた関節座標系のＺ軸と一致していない構成であってもよい。また、この一例におけるアクチュエーターは、１つの回転軸のみを有するアクチュエーターであるが、これに代えて、２つ以上の回転軸を有するアクチュエーターであってもよい。この場合、当該アクチュエーターには、当該２つ以上の回転軸のそれぞれが回転した回転角を表すため、それぞれの回転軸毎に関節座標系が対応付けられる。
【００３５】
力検出部２１は、エンドエフェクターＥとマニピュレーターＭの間に備えられる。力検出部２１は、例えば、力センサーである。力検出部２１は、ハンドＨに加えられた外力を検出する。ハンドＨは、エンドエフェクターＥ、又はエンドエフェクターＥにより把持された物体のことである。外力は、力とモーメント（トルク）のうち少なくとも一方のことである。具体的には、力検出部２１が検出する力の大きさは、ハンドＨに加えられた力の大きさであって、力検出座標系のＸ軸方向、Ｙ軸方向、Ｚ軸方向のそれぞれに加えられた力の大きさである。また、力検出部２１が検出するモーメントの大きさは、ハンドＨに加えられたモーメントであって、力検出座標系のＵ軸方向、Ｖ軸方向、Ｗ軸方向のそれぞれに加えられたモーメントの大きさである。力検出部２１は、検出したこれらの大きさを示す力検出値を含む力検出情報を通信によりロボット制御装置３０へ出力する。力検出座標系は、力検出部２１とともに動くように力検出部２１に対応付けられた三次元局所座標系である。
【００３６】
力検出情報は、ロボット制御装置３０によるアームＡの力検出情報に基づく制御である力制御に用いられる。力制御は、例えば、インピーダンス制御等のコンプライアントモーション制御のことである。なお、力検出部２１は、トルクセンサー等のハンドＨに加えられた外力を検出する他のセンサーであってもよい。
【００３７】
力検出部２１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、力検出部２１とロボット制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続される構成であってもよい。
【００３８】
ロボット制御装置３０は、この一例において、ロボットコントローラーである。ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて各種の制御値を生成する。ロボット制御装置３０は、生成した制御値に基づいて、マニピュレーターＭの各関節が備えるアクチュエーターを動作させる制御信号を生成する。ロボット制御装置３０は、生成した制御信号をロボット２０に送信し、当該各アクチュエーターを動作させることによってロボット２０を動作させる。ここで、当該制御信号には、エンドエフェクターＥを動作させる制御信号も含まれる。ロボット制御装置３０は、このようにしてロボット２０を動作させ、ロボット２０に所定の作業を行わせる。なお、ロボット制御装置３０は、ロボット２０の外部に設置される構成に代えて、ロボット２０に内蔵される構成であってもよい。
【００３９】
＜ロボットが行う所定の作業＞
以下、ロボット２０が行う所定の作業について説明する。
【００４０】
ロボット２０は、所定の作業として、エンドエフェクターＥにより把持された第１物体Ｏ１の第１面Ｍ１を、第２物体Ｏ２の第２面Ｍ２に接面させる作業を行う。
【００４１】
第１物体Ｏ１は、例えば、産業用の部品や部材、製品等である。なお、第１物体Ｏ１は、これに代えて、産業用と異なる日用品の部品や部材、製品等や、生体等の他の物体であってもよい。図１に示した例では、第１物体Ｏ１が直方体形状の物体として表されている。なお、第１物体Ｏ１の形状は、直方体形状に代えて、他の形状であってもよい。
【００４２】
第１物体Ｏ１の第１面Ｍ１は、この一例において、エンドエフェクターＥにより把持された第１物体Ｏ１の面のうちのエンドエフェクターＥの重心から最も離れた面である。なお、第１面Ｍ１は、これに代えて、エンドエフェクターＥにより把持された第１物体Ｏ１の面のうちの、エンドエフェクターＥの重心から最も離れた面を除く他の面であってもよい。
【００４３】
図１に示したように、第１物体Ｏ１は、エンドエフェクターＥに予め把持されている。なお、第１物体Ｏ１は、エンドエフェクターＥに予め把持されていない構成であってもよい。この場合、所定の作業には、図示しない給材領域に配置された第１物体Ｏ１を、ロボット２０がエンドエフェクターＥにより把持する作業が含まれる。
【００４４】
第２物体Ｏ２は、例えば、産業用の部品や部材、製品等である。なお、第２物体Ｏ２は、これに代えて、産業用と異なる日用品の部品や部材、製品等や、生体等の他の物体であってもよい。図１に示した例では、第２物体Ｏ２が平板状の物体として表されている。なお、第２物体Ｏ２の形状は、平板状に代えて、他の形状であってもよい。また、第２物体Ｏ２は、作業台ＴＢの上面に予め載置されている。作業台ＴＢは、この一例において、テーブル等の台である。なお、作業台ＴＢは、これに代えて、床面や棚等の第２物体Ｏ２を載置可能な面を有する物体であれば、他の物体であってもよい。
【００４５】
第２物体Ｏ２の第２面Ｍ２は、例えば、第２物体Ｏ２の上面である。当該上面は、この一例において、第２物体Ｏ２の面のうちの作業台ＴＢと接面している面である下面と反対側の面である。なお、第２面Ｍ２は、これに代えて、当該面ではない第２物体Ｏ２の他の面であってもよい。以下では、一例として、第２面Ｍ２がロボット座標系ＲＣにおけるＺ軸に直交する面である場合について説明する。なお、第２面Ｍ２は、これに代えて、当該Ｚ軸に直交しない面であってもよい。
【００４６】
＜ロボット制御装置が行う処理の概要＞
以下、ロボット制御装置３０が行う処理の概要について説明する。
【００４７】
ロボット制御装置３０は、エンドエフェクターＥに予め対応付けられた位置に、エンドエフェクターＥとともに動くＴＣＰ（Tool  Center  Point）である制御点Ｔを設定する。エンドエフェクターＥに予め対応付けられた位置は、例えば、エンドエフェクターＥにより予め把持された第１物体Ｏ１の重心の位置である。なお、エンドエフェクターＥに対応付けられた位置は、これに代えて、エンドエフェクターＥの重心の位置等の他の位置であってもよく、マニピュレーターＭに対応付けられた何らかの位置であってもよい。
【００４８】
制御点Ｔには、制御点Ｔの位置を示す情報である制御点位置情報と、制御点Ｔの姿勢を示す情報である制御点姿勢情報とが対応付けられている。なお、制御点Ｔには、これらに加えて、他の情報が対応付けられる構成であってもよい。ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定（決定）する。ロボット制御装置３０は、指定した制御点位置情報及び制御点姿勢情報に基づいて制御値を導出する。
【００４９】
具体的には、ロボット制御装置３０は、制御値として、制御位置と、制御姿勢と、制御回転角とを導出する。制御位置は、制御点位置情報が示す位置である。制御姿勢は、制御点姿勢情報が示す位置である。制御回転角は、制御位置及び制御姿勢に制御点Ｔの位置及び姿勢を一致させた場合において実現するマニピュレーターＭの各関節が備えるアクチュエーターの回転角である。ロボット制御装置３０は、制御位置及び制御姿勢と、逆運動学とに基づいて、制御回転角を導出する。
【００５０】
ロボット制御装置３０は、導出した制御値を含む制御信号を生成する。ロボット制御装置３０は、生成した制御信号をロボット２０に送信し、マニピュレーターＭの各関節が備えるアクチュエーターを動作させ、ロボット制御装置３０は、制御位置に制御点Ｔの位置を一致させるとともに、制御姿勢に制御点Ｔの姿勢を一致させる。すなわち、ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット２０を動作させる。これにより、ロボット制御装置３０は、ロボット２０に所定の作業を行わせる。
【００５１】
この一例において、制御点Ｔの位置は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔの姿勢は、制御点座標系ＴＣの各座標軸のロボット座標系ＲＣにおける方向によって表される。制御点座標系ＴＣは、制御点Ｔとともに動くように制御点Ｔに対応付けられた三次元局所座標系である。なお、この一例において、前述の第１物体Ｏ１の位置及び姿勢は、制御点Ｔの位置及び姿勢によって表される。また、この一例において、制御点座標系ＴＣの各座標軸は、前述の力検出座標系の各座標軸と一致している。なお、制御点座標系ＴＣの各座標軸は、力検出座標系の各座標軸と一致しない構成であってもよい。
【００５２】
ロボット制御装置３０は、ユーザーから予め入力された制御点設定情報に基づいて制御点Ｔを設定する。制御点設定情報は、例えば、エンドエフェクターＥの重心の位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターＥに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターＭに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ロボット２０の他の部位に対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
【００５３】
ロボット制御装置３０は、位置制御によってロボット２０を動作させる。位置制御は、ロボット制御装置３０に予め記憶された教示点情報に基づいて、ロボット制御装置３０がロボット２０を動作させる制御である。具体的には、ロボット制御装置３０は、位置制御により、ロボット制御装置３０に予め記憶された教示点情報に基づいて制御点Ｔを移動させる。
【００５４】
教示点情報は、教示点を示す情報である。教示点は、ロボット制御装置３０がマニピュレーターＭを動作させる際に制御点Ｔを移動させる目標となる仮想的な点のことである。教示点には、教示点位置情報と、教示点姿勢情報と、教示点識別情報とが対応付けられている。教示点位置情報は、教示点の位置を示す情報である。また、教示点姿勢情報は、教示点の姿勢を示す情報である。教示点識別情報は、教示点を識別する情報である。この一例において、教示点の位置は、教示点に対応付けられた三次元局所座標系である教示点座標系の原点のロボット座標系ＲＣにおける位置によって表される。また、教示点の姿勢は、教示点座標系の各座標軸のロボット座標系ＲＣにおける方向によって表される。
【００５５】
位置制御において、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、教示点情報が示す１以上の教示点を順に指定する。ロボット制御装置３０は、指定した教示点である指定教示点に対応付けられた教示点位置情報を制御点位置情報として指定するとともに、指定教示点に対応付けられた教示点姿勢情報を制御点姿勢情報として指定する。すなわち、位置制御において、ロボット制御装置３０は、指定教示点に基づいて制御点位置情報及び制御点姿勢情報を指定する。これにより、ロボット制御装置３０は、制御点Ｔを指定教示点に一致させることができる。なお、この一例において、ある教示点と制御点Ｔとが一致することは、当該教示点の位置及び姿勢と制御点Ｔの位置及び姿勢とが一致することを意味する。
【００５６】
また、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、教示点情報が示す１以上の教示点を順に指定する際、教示点とともに制御点Ｔを移動させる速さを指定する。これにより、ロボット制御装置３０は、制御点Ｔを指定教示点に一致させる際、指定教示点とともに指定した速さによって制御点Ｔを動かす。また、ロボット制御装置３０は、指定した速さに基づいて予想移動時間を算出する。予想移動時間は、第１教示点から第２教示点まで移動するために要すると予想される時間のことである。第１教示点は、１つ目の教示点であり現在制御点Ｔが一致している教示点のことである。第２教示点は、２つ目の教示点であり指定教示点である教示点のことである。具体的には、ロボット制御装置３０は、第１教示点の位置と第２教示点の位置との間の距離を算出する。ロボット制御装置３０は、算出した当該距離と、指定した速さとに基づいて予想移動時間を算出する。
【００５７】
また、ロボット制御装置３０は、力制御によってロボット２０を動作させる。力制御は、ロボット制御装置３０が力検出部２１から取得した力検出情報に基づいて、ロボット制御装置３０がロボット２０を動作させる制御である。具体的には、ロボット制御装置３０は、力検出部２１から力検出情報を取得する。そして、ロボット制御装置３０は、力検出部２１から取得された力検出情報に含まれる力検出値が力制御条件を満たしていない場合、制御点Ｔを移動させる目標となる仮想的な点を、指定教示点から補正教示点に変更（補正）する。補正教示点は、制御点Ｔが一致した場合において力検出部２１から取得される力検出値のそれぞれが所定の力制御条件を満たすと予想される仮想的な点である。力制御条件は、力検出部２１から取得される力検出情報に含まれる力検出値についての条件である。以下では、一例として、力制御条件が、力検出部２１から取得される力検出情報に含まれる力検出値のそれぞれが０になることである場合について説明する。なお、力制御条件は、これに代えて、他の条件であってもよい。
【００５８】
ロボット制御装置３０は、力検出部２１から取得した力検出情報に含まれる力検出値と、現在の制御点Ｔの位置及び姿勢と、位置制御における指定教示点の位置及び姿勢とに基づいて補正教示点の位置及び姿勢を算出する。補正教示点の位置及び姿勢の算出方法については、既知の方法を用いてもよく、これから開発される方法を用いてもよいため、説明を省略する。ロボット制御装置３０は、算出した補正教示点の位置を示す補正点教示点位置情報を制御点位置情報として指定するとともに、算出した補正教示点の姿勢を示す補正教示点姿勢情報を制御点姿勢情報として指定する。これにより、ロボット制御装置３０は、制御点Ｔを移動させ、制御点Ｔを補正教示点に一致させる。なお、この一例において、ある補正教示点と制御点Ｔとが一致することは、当該補正教示点の位置及び姿勢と制御点Ｔの位置及び姿勢とが一致することを意味する。
【００５９】
このように、ロボット制御装置３０は、力検出部２１から取得された力検出情報に含まれる力検出値が力制御条件を満たしていない場合、制御点Ｔを移動させる目標を力制御によって指定教示点から補正教示点に変更し、変更した補正教示点に制御点Ｔを一致させる。これにより、ロボット制御装置３０は、ハンドＨに加えられた外力に応じて制御点Ｔを移動させることができる。その結果、ロボット制御装置３０は、ハンドＨを他の物体に干渉させてしまうことにより当該物体を変形させてしまうことを抑制することができる。
【００６０】
ここで、ロボット制御装置３０が力制御によって制御点Ｔを補正教示点に一致させる際、ハンドＨに加えられた外力の大きさが意図していた大きさよりも大きいと、制御点Ｔが意図していない位置及び姿勢へと変化してしまう場合がある。意図していない位置及び姿勢は、例えば、所定の作業をロボット２０に行わせる際において、ロボット２０が所定の作業を継続することが困難になってしまう位置及び姿勢である。
【００６１】
これを抑制するため、この一例におけるロボット制御装置３０は、ロボット２０を力制御で動作させる制御値に対し、範囲を指定し、制御値と範囲とに基づく動作をロボット２０に行わせる。より具体的には、ロボット制御装置３０は、ロボット２０を動作させる制御値に対し、座標系に応じた軸毎に閾値を指定し、制御値と指定した当該閾値によって指定される範囲とに基づく動作をロボット２０に行わせる。当該軸は、この一例において、座標軸のことである。これにより、ロボット制御装置３０は、指定した範囲、すなわち指定した当該閾値に応じた動作をロボット行わせることができる。以下では、ロボット制御装置３０が座標系に応じた軸毎に閾値を指定し、制御値と閾値とに基づく動作をロボット２０に行わせる処理について詳しく説明する。なお、ある座標系に応じた軸は、Ｘ軸と、Ｙ軸と、Ｚ軸と、Ｕ軸と、Ｖ軸と、Ｗ軸とのうちの一部であってもよく、Ｘ軸と、Ｙ軸と、Ｚ軸と、Ｕ軸と、Ｖ軸と、Ｗ軸との全部であってもよい。
【００６２】
＜ロボット制御装置のハードウェア構成＞
以下、図２を参照し、ロボット制御装置３０のハードウェア構成について説明する。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００６３】
ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。また、ロボット制御装置３０は、通信部３４を介してロボット２０と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。
【００６４】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部３２は、ロボット制御装置３０が処理する各種情報や画像、動作プログラムを含む各種のプログラム、教示点情報を格納する。
【００６５】
入力受付部３３は、例えば、表示部３５と一体に構成されたタッチパネルである。なお、入力受付部３３は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００６６】
＜ロボット制御装置の機能構成＞
以下、図３を参照し、ロボット制御装置３０の機能構成について説明する。図３は、ロボット制御装置３０の機能構成の一例を示す図である。
【００６７】
ロボット制御装置３０は、記憶部３２と、制御部３６を備える。
【００６８】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、力検出情報取得部３６１と、ロボット制御部３６３を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００６９】
力検出情報取得部３６１は、力検出部２１から力検出情報を取得する。
ロボット制御部３６３は、記憶部３２から動作プログラム及び教示点情報を読み出す。ロボット制御部３６３は、読み出した動作プログラム及び教示点情報に基づいて、位置制御によってロボット２０を動作させる。また、ロボット制御部３６３は、力検出情報取得部３６１が取得した力検出情報に基づいて、力制御によってロボット２０を動作させる。これらにより、ロボット制御部３６３は、ロボット２０に所定の作業を行わせる。
【００７０】
＜ロボット制御装置が行う処理の具体例＞
以下、ロボット制御装置３０が行う処理の具体例について説明する。
【００７１】
この一例におけるロボット制御装置３０は、前述の動作プログラムに基づいて、教示点情報が示す１以上の教示点を順に指定する際、ユーザーが所望する座標系と、当該座標系に応じた軸毎の閾値とを指定する。ここで、ロボット制御装置３０は、ユーザーが所望する座標系と、当該座標系に応じた各軸のうちの予め決められた一部の軸の閾値とを指定してもよい。また、ロボット制御装置３０が当該座標系を指定する際、ロボット制御装置３０は、ユーザーが所望する座標系として、指定教示点に対応付けられた教示点座標系と、ロボット座標系ＲＣと、関節Ｊ１に対応付けられた関節座標系Ｊ１Ｃと、関節Ｊ２に対応付けられた関節座標系Ｊ２Ｃと、関節Ｊ３に対応付けられた関節座標系Ｊ３Ｃと、関節Ｊ４に対応付けられた関節座標系Ｊ４Ｃと、関節Ｊ５に対応付けられた関節座標系Ｊ５Ｃと、関節Ｊ６に対応付けられた関節座標系Ｊ６Ｃと、関節Ｊ７に対応付けられた関節座標系Ｊ７Ｃとの一部又は全部を動作プログラムに基づいて指定する。
【００７２】
ユーザーが所望する座標系に応じた軸毎の閾値は、この一例において、当該軸毎の上限値及び下限値のことである。当該軸毎の上限値は、当該軸毎の軸方向における位置（座標）の上限値である。また、当該軸毎の下限値は、当該軸毎の軸方向における位置（座標）の下限値である。例えば、当該座標系がロボット座標系ＲＣであり、当該座標系に応じた軸がロボット座標系ＲＣにおけるＸ軸及びＹ軸であった場合、当該座標系に応じた軸毎の閾値は、当該Ｘ軸の上限値及び下限値と、当該Ｙ軸の上限値及び下限値とのそれぞれである。なお、当該座標系に応じた軸毎の閾値は、当該軸毎の上限値及び下限値に代えて、当該軸毎の上限値と下限値のうちいずれか一方のことであってもよい。
【００７３】
ロボット制御装置３０は、ユーザーが所望する座標系と、当該座標系に応じた軸毎の閾値とを指定した後、指定した座標系に応じた制御値の変域を、指定した当該軸毎の閾値に基づいて算出する。当該制御値は、当該座標系が教示点座標系であった場合、制御位置と制御姿勢との少なくとも一方のことである。また、当該制御値は、当該座標系がロボット座標系ＲＣであった場合、制御位置のことである。また、当該制御値は、当該座標系が関節座標系であった場合、７つの制御回転角のうちの一部又は全部のことである。当該制御値の変域は、この一例において、ロボット制御装置３０が当該制御値を変化させることが可能な範囲のうちの当該座標系に応じた軸毎の閾値によって指定される（示される）範囲のことである。
【００７４】
前述の変域を算出した後、ロボット制御装置３０は、算出した変域と、指定した制御点位置情報及び制御点姿勢情報に基づいて導出した制御値とに基づいてロボット２０を動作させる。以下では、算出された変域であって各座標系に応じた制御値の変域と、当該変域に基づくロボット制御装置３０の処理との具体例について説明する。
【００７５】
＜教示点座標系に応じた制御値の変域の具体例＞
以下、図４〜図７を参照し、教示点座標系に応じた制御値の変域の具体例について説明する。以下では、説明の便宜上、ロボット制御装置３０が教示点座標系の軸毎に指定する閾値を第１閾値と称して説明する。
【００７６】
まず、図４〜図６を参照し、教示点座標系のＸ軸、Ｙ軸、Ｚ軸のそれぞれ毎に指定された第１閾値に基づいて算出された変域である第１変域と、第１変域に基づくロボット制御装置３０の処理との具体例について説明する。なお、図４〜図６では、説明を簡略化するため、制御点Ｔがロボット座標系ＲＣにおけるＺ軸方向に移動しない場合について説明する。すなわち、図４〜図６に示した教示点は、ロボット座標系ＲＣにおけるＺ軸に直交する１つの平面内にすべて含まれている。このため、図４〜図６では、ロボット制御装置３０が教示点座標系のＺ軸に第１閾値を指定しない場合について説明する。なお、ロボット制御装置３０は、指定した座標系の各軸のうちの一部に対して閾値を指定しない場合、当該一部に対する閾値として無限大を指定することにより当該閾値を指定しない構成であってもよい。
【００７７】
図４は、教示点座標系のＸ軸及びＹ軸のそれぞれ毎に指定された第１閾値に基づいて算出された仮変域の一例を示す図である。仮変域は、第１変域を算出するために算出される制御値の変域のことである。図４において、教示点Ｐ１は、ロボット制御装置３０が前回の位置制御によって指定した教示点、又は前回の力制御によって当該教示点を補正した補正教示点である。図４に示した例では、制御点Ｔは、教示点Ｐ１と一致している。教示点Ｐ２は、ロボット制御装置３０が今回の位置制御によって指定した指定教示点である。ハンドＨに外力が加えられない限り、ロボット制御装置３０は、制御点Ｔを移動させ、制御点Ｔを教示点Ｐ２に一致させる。教示点Ｐ２には、図４に示したように、教示点座標系Ｐ２Ｃが対応付けられている。教示点座標系Ｐ２Ｃは、ロボット座標系ＲＣにおける教示点Ｐ２の位置及び姿勢を表す。また、教示点Ｐ３は、ロボット制御装置３０が次回の位置制御によって指定する教示点である。
【００７８】
また、図４に示した教示点座標系Ｐ２ＣのＸ軸の値ＸＣ１は、ロボット制御装置３０が指定した第１閾値のうちの当該Ｘ軸の上限値を示す。また、当該Ｘ軸の値ＸＣ２は、当該第１閾値のうちの当該Ｘ軸の下限値を示す。また、図４に示した教示点座標系Ｐ２ＣのＹ軸の値ＹＣ１は、当該第１閾値のうちの当該Ｙ軸の上限値を示す。また、当該Ｙ軸の値ＹＣ２は、当該第１閾値のうちの当該Ｙ軸の下限値を示す。また、変域ＲＡ１は、ロボット制御装置３０が指定した第１閾値に基づいてロボット制御装置３０が算出した仮変域を示す。変域ＲＡ１の形状は、図４に示した例では、正方形状である。なお、変域ＲＡ１の形状は、これに代えて、ロボット制御装置３０が指定した第１閾値それぞれを通過する円形状等のロボット制御装置３０が指定した第１閾値に基づく他の形状であってもよい。
【００７９】
ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、次の指定教示点として教示点Ｐ２を指定する際、教示点Ｐ２とともに、ユーザーが所望する座標系として教示点座標系Ｐ２Ｃを指定し、更に教示点座標系Ｐ２ＣのＸ軸及びＹ軸のそれぞれ毎の第１閾値を指定する。当該第１閾値は、図４に示した値ＸＣ１、値ＸＣ２、値ＹＣ１、値ＹＣ２のそれぞれのことである。ロボット制御装置３０は、指定した当該第１閾値に基づいて、教示点座標系Ｐ２Ｃに応じた制御値の変域ＲＡ１を算出する。図４に示した例において、当該制御値は、制御位置及び制御姿勢のうちの制御位置のことある。
【００８０】
ロボット制御装置３０は、算出した変域ＲＡ１に基づいて第１変域を算出する。具体的には、ロボット制御装置３０は、変域ＲＡ１に基づいて第１変域を算出する。第１変域は、より具体的には、ロボット座標系ＲＣにおける空間のうちの変域ＲＡ１に基づく空間のことである。
【００８１】
図５は、図４に示した変域ＲＡ１に基づいてロボット制御装置３０が算出した第１変域の一例を示す図である。図５に示した変域ＲＡ２は、変域ＲＡ１に基づいて算出された第１変域である。ロボット制御装置３０は、ロボット制御装置３０が制御点Ｔを移動させる移動軌跡に沿って、教示点Ｐ２を変域ＲＡ１とともに教示点Ｐ１まで移動させた場合に変域ＲＡ１が通過する領域として変域ＲＡ２を算出する。当該移動軌跡は、ロボット座標系ＲＣにおいて教示点Ｐ１から教示点Ｐ２まで制御点Ｔが移動する軌跡である。すなわち、変域ＲＡ２の形状は、当該移動軌跡に応じた形状となる。当該移動軌跡は、直線であってもよく、曲線であってもよい。ロボット制御装置３０は、当該移動軌跡に沿って教示点Ｐ２を変域ＲＡ１とともに教示点Ｐ１まで移動させた場合に変域ＲＡ１が通過する領域を変域ＲＡ２として算出する。なお、この一例において、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて当該移動軌跡を直線又は曲線のいずれかに指定する。
【００８２】
変域ＲＡ２を算出した後、ロボット制御装置３０は、教示点Ｐ１から教示点Ｐ２まで制御点Ｔを移動させている最中においてハンドＨに外力が加えられた場合、前述したように補正教示点の位置及び姿勢を算出する。ロボット制御装置３０は、算出した当該位置及び姿勢のうちの当該位置（すなわち、制御位置）が変域ＲＡ２内に含まれるか否かを判定する。そして、ロボット制御装置３０は、当該位置が変域ＲＡ２内に含まれるか否かの判定結果に応じた処理を行う。例えば、ロボット制御装置３０は、当該位置が変域ＲＡ２内に含まれていると判定した場合、指定教示点を補正教示点に変更した後、制御点Ｔを移動させて補正教示点に制御点Ｔを一致させる。そして、ロボット制御装置３０は、前述の動作プログラムに基づいて次に指定する教示点である教示点Ｐ３を指定教示点として指定する。一方、ロボット制御装置３０は、当該位置が変域ＲＡ２内に含まれていないと判定した場合、所定の処理を行う。所定の処理は、例えば、異常処理である。異常処理は、この一例において、ロボット２０の動作を停止させることである。なお、異常処理は、これに代えて、他の処理であってもよい。また、ロボット制御装置３０は、異常処理において、位置制御によってロボット２０を動作させる処理のみを停止させ、力制御のみによってロボット２０を動作させる処理であってもよい。
【００８３】
図６は、変域ＲＡ２内に含まれる補正教示点、及び変域ＲＡ２内に含まれない補正教示点のそれぞれを例示する図である。図６に示した教示点Ｖ１は、変域ＲＡ２内に含まれる位置の補正教示点である。また、図６に示した教示点Ｖ２は、変域ＲＡ２内に含まれない位置の補正教示点である。
【００８４】
ロボット制御装置３０が算出した補正教示点の位置が、教示点Ｖ１の位置であった場合、ロボット制御装置３０は、指定教示点を教示点Ｖ１に変更した後、制御点Ｔを移動させて教示点Ｖ１に制御点Ｔを一致させる。そして、ロボット制御装置３０は、前述の動作プログラムに基づいて次に指定する教示点である教示点Ｐ３を指定教示点として指定する。一方、ロボット制御装置３０が算出した補正教示点の位置が、教示点Ｖ２の位置であった場合、ロボット制御装置３０は、例えば、所定の処理として異常処理を行う。
【００８５】
なお、異常処理は、ロボット制御装置３０が制御点Ｔを補正教示点に移動させる際において、変域ＲＡ２の外側と変域ＲＡ２との境界面と、現在の制御点Ｔの位置から補正教示点の位置までを繋ぐ直線との交点の位置を補正教示点の位置として算出し直す構成等の制御点Ｔを当該外側へ移動させない構成であってもよい。補正教示点の位置を算出し直す場合、ロボット制御装置３０は、算出し直した位置の補正教示点に制御点Ｔを一致させる。これにより、ロボット制御装置３０は、教示点座標系のＸ軸及びＹ軸のそれぞれ毎にロボットの動作を制限することができる。なお、ロボット制御装置３０が教示点座標系のＸ軸、Ｙ軸、Ｚ軸のそれぞれ毎に第１閾値を指定した場合、ロボット制御装置３０は、教示点座標系のＸ軸、Ｙ軸、Ｚ軸のそれぞれ毎にロボットの動作を制限することができる。この場合、変域ＲＡ１の形状は、例えば、球形状である。
【００８６】
次に、図７を参照し、教示点座標系のＵ軸、Ｖ軸、Ｗ軸のそれぞれ毎に指定された第１閾値に基づいて算出された変域である第２変域と、第２変域に基づくロボット制御装置３０の処理との具体例について説明する。なお、図７では、説明を簡略化するため、制御点Ｔがロボット座標系ＲＣにおけるＵ軸、Ｖ軸のそれぞれの方向に回転しない場合について説明する。このため、図７では、ロボット制御装置３０が教示点座標系のＵ軸、Ｖ軸のそれぞれに第１閾値を指定しない場合について説明する。
【００８７】
図７は、教示点座標系のＷ軸に指定された第１閾値に基づいて算出された第２変域の一例を示す図である。なお、図７に示した教示点Ｐ１〜教示点Ｐ３と制御点Ｔとの相対的な位置及び姿勢の関係は、図４に示した教示点Ｐ１〜教示点Ｐ３と制御点Ｔとの相対的な位置及び姿勢の関係と同様であるため、説明を省略する。また、図７では、一例として、ロボット制御装置３０が、ハンドＨに加えられた外力に基づいて、制御点Ｔを移動させる目標を教示点Ｐ２から教示点Ｖ３に変更した場合について説明する。すなわち、教示点Ｖ３は、補正教示点である。また、図７に示した教示点座標系Ｖ３Ｃは、教示点Ｖ３に対応付けられた教示点座標系である。教示点座標系Ｖ３Ｃの原点から伸びる補助線ＨＬ１は、教示点座標系Ｖ３Ｃの姿勢を明確に示すために描かれている補助線であり、教示点座標系Ｐ２ＣのＸ軸に平行な直線である。
【００８８】
ここで、この一例において、ある教示点座標系の原点から伸びる直線であって当該教示点座標系のＸＹ平面と平行な直線が延伸する方向は、当該教示点座標系のＷ軸の位置を表す。以下では、一例として、当該教示点座標系のＸ軸の負方向から正方向に向かう方向は、当該Ｗ軸の原点を表す場合について説明する。なお、当該原点は、これに代えて、他の方向によって表される構成であってもよい。また、当該教示点座標系のＺ軸の正方向から負方向に向かって当該教示点座標系を見た場合において、当該教示点座標系の原点を中心として反時計回りに回転する方向は、当該教示点座標系のＷ軸の正方向である。
【００８９】
ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、次に指定する指定教示点として教示点Ｐ２を指定する際、教示点Ｐ２とともに、ユーザーが所望する座標系として教示点座標系Ｐ２Ｃを指定し、更に教示点座標系Ｐ２ＣのＷ軸の第１閾値を指定する。当該第１閾値は、Ｗ軸の上限値θ１及び下限値θ２のそれぞれである。ロボット制御装置３０は、指定した当該第１閾値に基づいて、上限値θ１と下限値θ２との間の範囲を教示点座標系Ｐ２Ｃに応じた制御値の第２変域として算出する。図７に示した例において、当該制御値は、制御位置及び制御姿勢のうちの制御姿勢のことある。
【００９０】
第２変域を算出した後、ロボット制御装置３０は、教示点Ｐ１から教示点Ｐ２まで制御点Ｔを移動させている最中においてハンドＨに外力が加えられた場合、前述したように補正教示点である教示点Ｖ３の位置及び姿勢を算出する。ロボット制御装置３０は、算出した当該位置及び姿勢のうちの当該姿勢（すなわち、制御姿勢）と、教示点Ｐ２の姿勢との差分を算出する。ロボット制御装置３０は、算出した当該差分が第２変域内に含まれるか否かを判定する。
【００９１】
図７に示した例では、当該差分は、補助線ＨＬ１と教示点座標系Ｖ３ＣのＸ軸との間の角度θ３である。図７には、当該差分が第２変域内に含まれているか否かを明確にするため、補助線ＨＬ２及び補助線ＨＬ３が描かれている。補助線ＨＬ２は、教示点座標系Ｖ３Ｃの原点から伸びる補助線であり、当該原点を中心として補助線ＨＬ１を上限値θ１だけ反時計回りに回転させた場合に一致する補助線である。補助線ＨＬ３は、教示点座標系Ｖ３Ｃの原点から伸びる補助線であり、当該原点を中心として補助線ＨＬ１を下限値θ２だけ時計回りに回転させた場合に一致する補助線である。すなわち、図７に示した例において、当該差分は、第２変域内に含まれている。
【００９２】
ロボット制御装置３０は、当該差分が第２変域内に含まれるか否かの判定結果に応じた処理を行う。例えば、ロボット制御装置３０は、当該差分が第２変域内に含まれていると判定した場合、指定教示点を補正教示点である教示点Ｖ３に変更した後、制御点Ｔを移動させて教示点Ｖ３に制御点Ｔを一致させる。そして、ロボット制御装置３０は、前述の動作プログラムに基づいて次に指定する教示点である教示点Ｐ３を指定教示点として指定する。一方、ロボット制御装置３０は、当該差分が第２変域内に含まれていないと判定した場合、例えば、所定の処理として異常処理を行う。
【００９３】
なお、異常処理は、ロボット制御装置３０が制御点Ｔを補正教示点に移動させる際において、当該差分が第１閾値として指定したＷ軸の上限値を超えていた場合、当該差分が当該上限値となるように補正教示点の姿勢を算出し直し、当該差分が第１閾値として指定したＷ軸の下限値を超えていた場合、当該差分が当該下限値となるように補正教示点の姿勢を算出し直す構成等の第１閾値が表わす第２変域内に当該差分を必ず含ませる構成であってもよい。補正教示点の姿勢を算出し直す場合、ロボット制御装置３０は、算出し直した姿勢の補正教示点に制御点Ｔを一致させる。
【００９４】
図４〜図７において説明したように、ロボット制御装置３０は、教示点座標系に応じた軸毎に第１閾値を指定し、指定した第１閾値に基づいてロボット２０を動作させる。これにより、ロボット制御装置３０は、教示点座標系の軸毎に応じた動作をロボット２０に行わせることができる。なお、図４〜図７では、Ｘ軸、Ｙ軸のそれぞれに対する第１閾値と、Ｗ軸に対する第１閾値とがロボット制御装置３０によって別々に指定される例について説明したが、第１閾値は、ロボット制御装置３０によってＸ軸、Ｙ軸、Ｚ軸、Ｕ軸、Ｖ軸、Ｗ軸のうちの一部又は全部のそれぞれに対して指定される構成であってもよい。
【００９５】
なお、ロボット制御装置３０は、教示点座標系に応じた軸毎に第１閾値を指定する際、現在の制御点Ｔの姿勢から補正教示点の姿勢まで制御点Ｔを回転させる回転軸であって教示点座標系における回転軸に第１閾値を指定する構成であってもよい。この場合、ロボット制御装置３０は、算出した補正教示点の姿勢に現在の制御点Ｔの姿勢を回転させる回転軸を算出する。そして、ロボット制御装置３０は、補正教示点の姿勢と、現在の制御点Ｔの姿勢との差分が、指定した第１閾値に基づく第２変域に含まれているか否かを判定する。
【００９６】
＜ロボット座標系に応じた制御値の変域の具体例＞
以下、図８及び図９を参照し、ロボット座標系に応じた制御値の変域である第３変域の具体例について説明する。以下では、説明の便宜上、ロボット制御装置３０がロボット座標系の軸毎に指定する閾値を第３閾値と称して説明する。
【００９７】
まず、図８を参照し、ロボット座標系ＲＣのＸ軸、Ｙ軸、Ｚ軸のそれぞれ毎に指定された第３閾値に基づいて算出された第３変域と、第３変域に基づくロボット制御装置３０の処理との具体例について説明する。なお、図８では、説明を簡略化するため、制御点Ｔがロボット座標系ＲＣにおけるＺ軸方向に移動しない場合について説明する。すなわち、図８に示した教示点は、ロボット座標系ＲＣにおけるＺ軸に直交する１つの平面内にすべて含まれている。このため、図８では、ロボット制御装置３０がロボット座標系ＲＣのＺ軸に第３閾値を指定しない場合について説明する。
【００９８】
図８は、ロボット座標系ＲＣのＸ軸及びＹ軸のそれぞれ毎に指定された第３閾値に基づいて算出された第３変域の一例を示す図である。なお、図８に示した教示点Ｐ１〜教示点Ｐ３と制御点Ｔとの相対的な位置及び姿勢の関係は、図４に示した教示点Ｐ１〜教示点Ｐ３と制御点Ｔとの相対的な位置及び姿勢の関係と同様であるため、説明を省略する。
【００９９】
また、図８に示したロボット座標系ＲＣのＸ軸の値ＸＣ３は、ロボット制御装置３０が指定した第３閾値のうちの当該Ｘ軸の上限値を示す。また、当該Ｘ軸の値ＸＣ４は、当該第３閾値のうちの当該Ｘ軸の下限値を示す。また、図８に示したロボット座標系ＲＣのＹ軸の値ＹＣ３は、当該第３閾値のうちの当該Ｙ軸の上限値を示す。また、当該Ｙ軸の値ＹＣ４は、当該第３閾値のうちの当該Ｙ軸の下限値を示す。また、変域ＲＡ３は、ロボット制御装置３０が指定した第３閾値に基づいてロボット制御装置３０が算出した第３変域を示す。変域ＲＡ３の形状は、図８に示した例では、長方形状である。なお、変域ＲＡ３の形状は、これに代えて、ロボット制御装置３０が指定した第３閾値それぞれを通過する円形状等のロボット制御装置３０が指定した第３閾値に基づく他の形状であってもよい。
【０１００】
ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、次の指定教示点として教示点Ｐ２を指定する際、教示点Ｐ２とともに、ユーザーが所望する座標系としてロボット座標系ＲＣを指定し、更にロボット座標系ＲＣのＸ軸及びＹ軸のそれぞれ毎の第３閾値を指定する。当該第３閾値は、図８に示した値ＸＣ３、値ＸＣ４、値ＹＣ３、値ＹＣ４のそれぞれのことである。ロボット制御装置３０は、指定した当該第３閾値に基づいて、ロボット座標系ＲＣに応じた制御値の変域ＲＡ３を算出する。図８に示した例において、当該制御値は、制御位置及び制御姿勢のうちの制御位置でのことある。
【０１０１】
変域ＲＡ３を算出した後、ロボット制御装置３０は、教示点Ｐ１から教示点Ｐ２まで制御点Ｔを移動させている最中においてハンドＨに外力が加えられた場合、前述したように補正教示点の位置及び姿勢を算出する。ロボット制御装置３０は、算出した当該位置及び姿勢のうちの当該位置（すなわち、制御位置）が変域ＲＡ３内に含まれるか否かを判定する。そして、ロボット制御装置３０は、当該位置が変域ＲＡ３内に含まれるか否かの判定結果に応じた処理を行う。例えば、ロボット制御装置３０は、当該位置が変域ＲＡ３内に含まれていると判定した場合、指定教示点を補正教示点に変更した後、制御点Ｔを移動させて補正教示点に制御点Ｔを一致させる。そして、ロボット制御装置３０は、前述の動作プログラムに基づいて次に指定する教示点である教示点Ｐ３を指定教示点として指定する。一方、ロボット制御装置３０は、当該位置が変域ＲＡ３内に含まれていないと判定した場合、例えば、所定の処理として異常処理を行う。
【０１０２】
なお、異常処理は、ロボット制御装置３０が制御点Ｔを補正教示点に移動させる際において、変域ＲＡ３の外側と変域ＲＡ３との境界面と、現在の制御点Ｔの位置から補正教示点の位置までを繋ぐ直線との交点の位置を補正教示点の位置として算出し直す構成等の制御点Ｔを当該外側へ移動させない構成であってもよい。補正教示点の位置を算出し直す場合、ロボット制御装置３０は、算出し直した位置の補正教示点に制御点Ｔを一致させる。このように、ロボット制御装置３０は、ロボット座標系ＲＣのＸ軸及びＹ軸のそれぞれ毎にロボットの動作を制限することができる。なお、ロボット制御装置３０がロボット座標系ＲＣのＸ軸、Ｙ軸、Ｚ軸のそれぞれ毎に第３閾値を指定した場合、ロボット制御装置３０は、ロボット座標系ＲＣのＸ軸、Ｙ軸、Ｚ軸のそれぞれ毎にロボットの動作を制限することができる。この場合、変域ＲＡ３の形状は、例えば、球形状である。
【０１０３】
また、ロボット制御装置３０は、図８に示した例において、ロボット座標系ＲＣにおけるＸ軸、Ｙ軸のそれぞれ毎に第３閾値を指定したが、これに限られず、ロボット座標系ＲＣにおけるＸ軸、Ｙ軸、Ｚ軸、Ｕ軸、Ｖ軸、Ｗ軸のうちの一部又は全部のそれぞれに第３閾値を指定する構成であってもよい。特に、ロボット座標系ＲＣにおけるＵ軸、Ｖ軸、Ｗ軸のうちの一部又は全部のそれぞれに対して第３閾値を指定した場合、ロボット制御装置３０は、ロボット座標系ＲＣの原点を中心とした立体角であって第３閾値によって表される立体角の少なくとも一部の領域（範囲）内にロボット２０の動作を制限することができる。
【０１０４】
図９は、図５〜図６において説明した変域ＲＡ２の一例と、図８において説明した変域ＲＡ３の一例とをロボット座標系ＲＣにおいて重ねて示した図である。ロボット制御装置３０は、教示点座標系Ｐ２ＣにおけるＸ軸及びＹ軸のそれぞれ毎に第１閾値を指定し、ロボット座標系ＲＣにおけるＸ軸及びＹ軸のそれぞれ毎に第３閾値を指定した場合、変域ＲＡ２と変域ＲＡ３とが重なる重畳領域に応じた処理を行う。
【０１０５】
具体的には、ロボット制御装置３０は、教示点Ｐ１から教示点Ｐ２まで制御点Ｔを移動させている最中においてハンドＨに外力が加えられた場合、前述したように補正教示点の位置及び姿勢を算出する。ロボット制御装置３０は、算出した当該位置及び姿勢のうちの当該位置（すなわち、制御位置）が重畳領域内に含まれるか否かを判定する。そして、ロボット制御装置３０は、当該位置が重畳領域内に含まれるか否かの判定結果に応じた処理を行う。例えば、ロボット制御装置３０は、当該位置が重畳領域内に含まれていると判定した場合、指定教示点を補正教示点に変更した後、制御点Ｔを移動させて補正教示点に制御点Ｔを一致させる。そして、ロボット制御装置３０は、前述の動作プログラムに基づいて次の教示点である教示点Ｐ３を指定教示点として指定する。一方、ロボット制御装置３０は、当該位置が重畳領域内に含まれていないと判定した場合、例えば、所定の処理として異常処理を行う。
【０１０６】
このように、ロボット制御装置３０は、ロボット座標系ＲＣに応じた軸毎に第３閾値を指定し、指定した第３閾値に基づいてロボット２０を動作させる。これにより、ロボット制御装置３０は、ロボット座標系ＲＣの軸毎に応じた動作をロボット２０に行わせることができる。
【０１０７】
＜関節座標系に応じた制御値の変域の具体例＞
以下、図１０〜図１２を参照し、関節座標系に応じた制御値の変域である第４変域の具体例について説明する。以下では、説明の便宜上、ロボット制御装置３０が関節座標系に応じた軸毎に指定する閾値を第２閾値と称して説明する。以下では、一例として、ロボット制御装置３０が関節Ｊ４に対応付けられた関節座標系Ｊ４ＣのＷ軸に第２閾値を指定する場合について説明する。
【０１０８】
図１０は、関節座標系Ｊ４ＣのＷ軸に指定された第２閾値に基づいて算出された第４変域の一例を示す図である。図１０には、図４に示した教示点Ｐ２に制御点Ｔを一致させた場合における関節Ｊ４の状態が示されている。図１０に示した関節座標系Ｊ４Ｃは、前述したように関節Ｊ４に対応付けられた関節座標系である。図１０に示した例では、関節Ｊ４の回転角は、回転角θ１０である。関節座標系Ｊ４Ｃの原点から伸びる補助線ＨＬ４は、関節座標系Ｊ４Ｃにおいて関節Ｊ４の回転角θ１０を明確に示すために描かれている補助線である。
【０１０９】
ここで、この一例において、関節座標系Ｊ４Ｃの原点から伸びる直線であって関節座標系Ｊ４ＣのＸＹ平面と平行な直線が延伸する方向は、関節座標系Ｊ４ＣのＷ軸の位置を表す。以下では、一例として、関節座標系Ｊ４ＣのＸ軸の負方向から正方向に向かう方向は、当該Ｗ軸の原点を表す場合について説明する。なお、当該原点は、これに代えて、他の方向によって表される構成であってもよい。また、関節座標系Ｊ４ＣのＺ軸の正方向から負方向に向かって関節座標系Ｊ４Ｃを見た場合において、関節座標系Ｊ４Ｃの原点を中心として反時計回りに回転する方向は、関節座標系Ｊ４ＣのＷ軸の正方向である。
【０１１０】
ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、次に指定する指定教示点として図４に示した教示点Ｐ２を指定する際、教示点Ｐ２とともに、ユーザーが所望する座標系として関節座標系Ｊ４Ｃを指定し、更に関節座標系Ｊ４ＣのＷ軸の第２閾値を指定する。当該第２閾値は、関節Ｊ４の回転角からの相対的な回転角である。具体的には、当該第２閾値は、関節Ｊ４の回転角から関節Ｊ４の回転角が増加する回転方向への回転角の上限値θ２０、及び関節Ｊ４の回転角から関節Ｊ４の回転角が減少する回転方向への回転角の下限値θ３０のそれぞれである。ロボット制御装置３０は、指定した当該第２閾値に基づいて、上限値θ２０と下限値θ３０との間の範囲を関節座標系Ｊ４Ｃに応じた制御値の第４変域として算出する。なお、図１０に示した例において、当該制御値は、制御回転角のことである。
【０１１１】
第４変域を算出した後、ロボット制御装置３０は、教示点Ｐ１から教示点Ｐ２まで制御点Ｔを移動させている最中においてハンドＨに外力が加えられた場合、前述したように補正教示点である教示点Ｖ３の位置及び姿勢を算出する。ロボット制御装置３０は、算出した当該位置及び姿勢に制御点Ｔの位置及び姿勢を一致させた場合における関節Ｊ４の回転角（すなわち、制御回転角）と、教示点Ｐ２の位置及び姿勢に制御点Ｔの位置及び姿勢を一致させた場合における関節Ｊ４の回転角とを算出する。そして、ロボット制御装置３０は、これら２つの回転角の差分を算出する。ロボット制御装置３０は、算出した当該差分が第４変域内に含まれるか否かを判定する。
【０１１２】
図１０に示した例では、第４変域は、制御点Ｔが教示点Ｐ２に一致した場合における関節Ｊ４の回転角から当該関節Ｊ４の回転角が増加する回転方向への回転角の上限値θ２０と、当該関節Ｊ４の回転角から当該関節Ｊ４の回転角が減少する回転方向への回転角の下限値θ３０との間の範囲（領域）である。図１０には、当該差分が第４変域内に含まれているか否かを明確にするため、補助線ＨＬ５及び補助線ＨＬ６が描かれている。補助線ＨＬ５は、関節座標系Ｊ４Ｃの原点から伸びる補助線であり、当該原点を中心として補助線ＨＬ４を上限値θ２０だけ反時計回りに回転させた場合に一致する補助線である。補助線ＨＬ６は、関節座標系Ｊ４Ｃの原点から伸びる補助線であり、当該原点を中心として補助線ＨＬ４を下限値θ３０だけ時計回りに回転させた場合に一致する補助線である。
【０１１３】
ロボット制御装置３０は、当該差分が第４変域内に含まれるか否かの判定結果に応じた処理を行う。例えば、ロボット制御装置３０は、当該差分が第４変域内に含まれていると判定した場合、指定教示点を補正教示点である教示点Ｖ３に変更した後、制御点Ｔを移動させて教示点Ｖ３に制御点Ｔを一致させる。そして、ロボット制御装置３０は、前述の動作プログラムに基づいて次に指定する教示点である教示点Ｐ３を指定教示点として指定する。一方、ロボット制御装置３０は、当該差分が第４変域内に含まれていないと判定した場合、例えば、所定の処理として異常処理を行う。
【０１１４】
なお、異常処理は、ロボット制御装置３０が制御点Ｔを補正教示点に移動させる際において、当該差分が第２閾値として指定したＷ軸の上限値を超えていた場合、当該差分が当該上限値となるようにマニピュレーターＭが備える各関節の回転角を算出し直し、当該差分が第２閾値として指定したＷ軸の下限値を超えていた場合、当該差分が当該下限値となるように当該回転角を算出し直す構成等の第２閾値が表わす変域内に当該差分を必ず含ませる構成であってもよい。当該回転角を算出し直す場合、ロボット制御装置３０は、制御点Ｔの位置及び姿勢が補正教示点の位置及び姿勢と一致することを条件として当該回転角を算出し直す。そして、ロボット制御装置３０は、算出し直した当該回転角を実現させるようにマニピュレーターＭの各関節を回転させ、制御点Ｔを補正教示点と一致させる。
【０１１５】
図１１は、関節Ｊ４の回転角の時間的な変化の一例を示す図である。図１１に示したグラフの縦軸は、関節Ｊ４の回転角を示す。当該グラフの横軸は、時間を示す。図１１に示した曲線Ｌ１は、ロボット制御装置３０が制御点Ｔを図４に示した教示点Ｐ１、教示点Ｐ２、教示点Ｐ３の順に一致させた場合における関節Ｊ４の回転角の時間的な変化を示す曲線である。また、図１１に示した曲線ＵＬは、曲線Ｌ１から回転角が相対的に上限値θ２０だけ離れた曲線である。すなわち、曲線ＵＬは、当該場合における関節Ｊ４の回転角の時間的な変化とともに変化する上限値の時間的な変化を示す。当該上限値は、当該回転角からの相対的な回転角として表されている上限値θ２０を、関節座標系Ｊ４ＣのＷ軸の原点からの回転角として表した値である。また、図１１に示した曲線ＤＬは、曲線Ｌ１から回転角が相対的に下限値θ３０だけ離れた曲線である。すなわち、曲線ＤＬは、当該場合における関節Ｊ４の回転角の時間的な変化とともに変化する下限値の時間的な変化を示す。当該下限値は、当該回転角からの相対的な回転角として表されている下限値θ３０を、関節座標系Ｊ４ＣのＷ軸の原点からの回転角として表した値である。
【０１１６】
また、図１１に示したタイミングｔ１は、ロボット制御装置３０が制御点Ｔを教示点Ｐ１に一致させたタイミングである。また、図１１に示したタイミングｔ２は、ロボット制御装置３０が教示点Ｐ１から教示点Ｐ２まで制御点Ｔを移動させるために要すると予想される予想移動時間が経過したタイミングである。
【０１１７】
また、図１１に示した曲線Ｌ２は、ロボット制御装置３０が力制御によって制御点Ｔを教示点Ｐ１から補正教示点に一致させる際、当該補正教示点と制御点Ｔとが一致する場合におけるマニピュレーターＭの関節Ｊ４の回転角の時間的な変化を示す。図１１に示したように、曲線Ｌ２が曲線ＵＬを下から上へと交差した場合、当該回転角は、ロボット制御装置３０が第２閾値に基づいて算出した変域内に含まれなくなる。この場合、ロボット制御装置３０は、例えば、所定の処理として異常処理を行う。
【０１１８】
図１２は、関節座標系Ｊ４ＣのＷ軸に指定された第２閾値に基づいて算出された第４変域の他の例を示す図である。図１２には、図４に示した教示点Ｐ２に制御点Ｔを一致させた場合における関節Ｊ４の状態が示されている。
【０１１９】
ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、次の指定教示点として図４に示した教示点Ｐ２を指定する際、教示点Ｐ２とともに、ユーザーが所望する座標系として関節座標系Ｊ４Ｃを指定し、更に関節座標系Ｊ４ＣのＷ軸の第２閾値を指定する。当該第２閾値は、関節Ｊ４の回転角の上限値θ４０及び下限値θ５０のそれぞれである。ロボット制御装置３０は、指定した当該第２閾値に基づいて、上限値θ４０と下限値θ５０との間の範囲を関節座標系Ｊ４Ｃに応じた制御値の第４変域として算出する。なお、この一例において、当該制御値は、制御回転角のことである。
【０１２０】
第４変域を算出した後、ロボット制御装置３０は、教示点Ｐ１から教示点Ｐ２まで制御点Ｔを移動させている最中においてハンドＨに外力が加えられた場合、前述したように補正教示点である教示点Ｖ３の位置及び姿勢を算出する。ロボット制御装置３０は、算出した当該位置及び姿勢に制御点Ｔの位置及び姿勢を一致させた場合における関節Ｊ４の回転角（すなわち、制御回転角）を算出する。そして、ロボット制御装置３０は、算出した当該回転角が第４変域内に含まれるか否かを判定する。ロボット制御装置３０は、当該回転角が第４変域内に含まれるか否かの判定結果に応じた処理を行う。例えば、ロボット制御装置３０は、当該回転角が第４変域内に含まれていると判定した場合、指定教示点を補正教示点である教示点Ｖ３に変更した後、制御点Ｔを移動させて教示点Ｖ３に制御点Ｔを一致させる。そして、ロボット制御装置３０は、前述の動作プログラムに基づいて次の教示点である教示点Ｐ３を指定教示点として指定する。一方、ロボット制御装置３０は、当該回転角が当該変域内に含まれていないと判定した場合、例えば、所定の処理として異常処理を行う。
【０１２１】
なお、異常処理は、ロボット制御装置３０が制御点Ｔを補正教示点に移動させる際において、当該回転角が第２閾値として指定したＷ軸の上限値を超えていた場合、当該回転角が当該上限値となるようにマニピュレーターＭが備える各関節の回転角を算出し直し、当該回転角が第２閾値として指定したＷ軸の下限値を超えていた場合、当該差分が当該下限値となるように当該各関節の回転角を算出し直す構成等の第２閾値が表わす変域内においてのみ当該各関節を回転させる構成であってもよい。当該回転角を算出し直す場合、ロボット制御装置３０は、制御点Ｔの位置及び姿勢が補正教示点の位置及び姿勢と一致することを条件として当該回転角を算出し直す。そして、ロボット制御装置３０は、算出し直した当該回転角を実現させるようにマニピュレーターＭの各関節を回転させ、制御点Ｔを補正教示点と一致させる。
【０１２２】
また、この一例において説明した関節座標系についての処理は、ユーザーが所望する関節毎のインピーダンス制御に対して適用することも可能である。当該インピーダンス制御は、ハンドＨに加えられた外力に応じて、ユーザーが所望する関節を回転させる制御のことである。関節のインピーダンス制御は、制御点Ｔの位置及び姿勢から関節の回転角を把握することが困難である。このため、当該処理は、例えば、関節のインピーダンス制御において関節の回転を制限するために有効である。すなわち、ロボット制御装置３０が当該処理を行うことにより、ユーザーは、容易に関節の回転を制限することができる。
【０１２３】
＜ロボット制御装置が行う処理の流れ＞
以下、図１３を参照し、ロボット制御装置３０が行う処理の流れについて説明する。図１３は、ロボット制御装置３０が行う処理の流れの一例を示すフローチャートである。ロボット制御装置３０は、図１３に示したステップＳ１１０〜ステップＳ１９０の処理を、ロボット制御装置３０が順に指定する教示点に含まれるすべての組み合わせであって順番が連続する２つの教示点である第１教示点及び第２教示点の組み合わせのそれぞれ毎に行う。また、図１３に示したフローチャートでは、ステップＳ１１０の処理が開始される前に、制御点Ｔが第１教示点と一致している場合について説明する。
【０１２４】
ロボット制御部３６３は、ユーザーにより予め入力された動作プログラムに基づいて、指定教示点として第２教示点を指定するとともに、制御点Ｔを移動させる速さと、ユーザーが所望する座標系と、当該座標系に応じた軸毎の閾値とを指定する（ステップＳ１１０）。そして、ロボット制御部３６３は、指定した当該座標系及び当該閾値に基づいて、前述の変域（第１変域〜第４変域）のうちの一部又は全部を算出する。次に、ロボット制御部３６３は、第１教示点の位置と第２教示点の位置との間の距離を算出する。そして、ロボット制御部３６３は、算出した当該距離と、ステップＳ１１０において指定した速さとに基づいて予想移動時間を算出する（ステップＳ１２０）。
【０１２５】
次に、ロボット制御部３６３は、位置制御により制御点Ｔの第２教示点への移動を開始する（ステップＳ１３０）。次に、ロボット制御部３６３は、力検出部２１から力検出情報を取得する。そして、ロボット制御部３６３は、取得した力検出情報に含まれる検出値に基づいて、ハンドＨに外力が加えられたか否かを判定する（ステップＳ１４０）。
【０１２６】
ハンドＨに外力が加えられていないと判定した場合（ステップＳ１４０−ＮＯ）、ロボット制御部３６３は、ステップＳ１３０において制御点Ｔの移動を開始してから現在までの間に、ステップＳ１２０において算出した予想移動時間が経過したか否かを判定する（ステップＳ１８０）。予想移動時間が経過したと判定した場合（ステップＳ１８０−ＹＥＳ）、ロボット制御部３６３は、処理を終了する。一方、予想移動時間が経過していないと判定した場合（ステップＳ１８０−ＮＯ）、ロボット制御部３６３は。ステップＳ１４０に遷移し、再びハンドＨに外力が加えられたか否かを判定する。
【０１２７】
ハンドＨに外力が加えられていると判定した場合（ステップＳ１４０−ＹＥＳ）、ロボット制御部３６３は、ステップＳ１４０において取得した力検出情報に含まれる力検出値に基づいて、補正教示点の位置及び姿勢を算出する（ステップＳ１５０）。次に、ロボット制御部３６３は、ステップＳ１５０において算出した補正教示点の位置及び姿勢を含む制御値が所定条件を満たすか否かを判定する（ステップＳ１６０）。所定条件は、この一例において、以下に示した１）〜４）の４つの条件のうちの少なくとも１つを満たすことである。
【０１２８】
１）ユーザーが所望する座標系として教示点座標系がステップＳ１１０において指定され、教示点座標系のＸ軸、Ｙ軸、Ｚ軸のうちの少なくとも１つに第１閾値がステップＳ１１０において指定された場合において、制御位置がステップＳ１１０において算出された第１変域内に含まれないこと。
【０１２９】
２）ユーザーが所望する座標系として教示点座標系がステップＳ１１０において指定され、教示点座標系のＵ軸、Ｖ軸、Ｗ軸のうちの少なくとも１つに第１閾値がステップＳ１１０において指定された場合において、制御姿勢がステップＳ１１０において算出された第２変域内に含まれないこと。
【０１３０】
３）ユーザーが所望する座標系としてロボット座標系ＲＣがステップＳ１１０において指定され、ロボット座標系ＲＣのＸ軸、Ｙ軸、Ｚ軸、Ｕ軸、Ｖ軸、Ｗ軸のうちの少なくとも１つに第３閾値がステップＳ１１０において指定された場合において、制御位置がステップＳ１１０において算出された第３変域内に含まれないこと。
【０１３１】
４）ユーザーが所望する座標系としてある関節座標系がステップＳ１１０において指定され、当該関節座標系のＷ軸に第２閾値がステップＳ１１０において指定された場合において、当該関節座標系に対応付けられた関節を回転させる制御値である制御回転角と、第２教示点の位置及び姿勢に制御点Ｔの位置及び姿勢を一致させた場合における当該関節の回転角との差分が、ステップＳ１１０において算出された第４変域内に含まれないこと。なお、当該制御回転角は、ステップＳ１５０において算出された位置及び姿勢に制御点Ｔの位置及び姿勢を一致させた場合における回転角である。
【０１３２】
制御値が所定条件を満たすと判定した場合（ステップＳ１６０−ＹＥＳ）、ロボット制御部３６３は、例えば、所定の処理として異常処理を実行し（ステップＳ１９０）、処理を終了する。一方、制御値が所定条件を満たしていないと判定した場合（ステップＳ１６０−ＮＯ）、ロボット制御部３６３は、制御点Ｔを移動させ、ステップＳ１５０において算出した補正教示点の位置及び姿勢に制御点Ｔの位置及び姿勢を一致させる（ステップＳ１７０）。そして、ロボット制御部３６３は、ステップＳ１８０に遷移し、ステップＳ１３０において制御点Ｔの移動を開始してから現在までの間に、ステップＳ１２０において算出した予想移動時間が経過したか否かを判定する。
【０１３３】
このように、ロボット制御装置３０は、ロボット２０を動作させる制御値に対し、座標系に応じた軸毎に閾値を指定し、制御値と閾値とに基づく動作をロボット２０に行わせる。これにより、ロボット制御装置３０は、座標系の軸毎に応じた動作をロボット行わせることができる。
【０１３４】
＜ロボット制御部の判定方法の他の例＞
以下、図１４を参照し、図１３に示したステップＳ１６０の処理においてロボット制御部３６３が行う判定方法の他の例について説明する。以下では、一例として、関節Ｊ４の回転角が所定条件を満たすか否かの判定方法を例に挙げて説明する。なお、ロボット制御部３６３は、ステップＳ１６０において他の制御値に対しても、以下において説明する判定方法と同様の判定方法によって当該制御値が所定条件を満たすか否かを判定する構成であってもよく、他の判定方法によって当該制御値が所定条件を満たすか否かを判定する構成であってもよい。
【０１３５】
図１４は、関節Ｊ４の回転角の時間的な変化の他の例を示す図である。図１４に示したグラフの縦軸は、関節Ｊ４の回転角を示す。当該グラフの横軸は、時間を示す。なお、図１４に示した曲線Ｌ１、曲線ＵＬ、曲線ＤＬ、タイミングｔ１、タイミングｔ２のそれぞれは、図１１に示した曲線Ｌ１、曲線ＵＬ、曲線ＤＬ、タイミングｔ１、タイミングｔ２のそれぞれと同様であるため、説明を省略する。
【０１３６】
また、図１４に示した曲線Ｌ３は、ロボット制御装置３０が力制御によって制御点Ｔを教示点Ｐ１から補正教示点に一致させる際、当該補正教示点と制御点Ｔとが一致する場合における関節Ｊ４の回転角の時間的な変化を示す。図１４に示したように、当該回転角は、タイミングｔ３からタイミングｔ４までの間である時間ｔｓ１において、ロボット制御装置３０が第２閾値に基づいて算出した第４変域内に含まれなくなる。また、当該回転角は、タイミングｔ１からタイミングｔ２までの間である時間ｔｓ２において、当該第４変域内に含まれなくなる。
【０１３７】
ロボット制御部３６３は、当該回転角が当該第４変域に所定時間ｔｓｃ以上含まれていない場合、当該回転角が当該第４変域内に含まれていないと判定する。一方、当該回転角が当該第４変域に所定時間ｔｓｃ未満だけ含まれていない場合、当該回転角が当該第４変域内に含まれていると判定する。図１４に示した例では、タイミングｔ１から所定時間ｔｓｃが経過したタイミングは、タイミングｔ５である。すなわち、ロボット制御部３６３は、タイミングｔ５において、当該回転角が当該第４変域内に含まれていないと判定する。一方、時間ｔｓ１は、所定時間ｔｓｃ未満の時間である。すなわち、ロボット制御部３６３は、タイミングｔ４において、当該回転角が当該第４変域内に含まれていると判定する。
【０１３８】
このように、ロボット制御装置３０は、制御値が閾値を所定時間以上超え続けた場合、制御値と閾値とに基づく動作をロボット２０に行わせる。これにより、ロボット制御装置３０は、制御値が閾値を所定時間超え続ける前と後とのそれぞれにおいて異なる動作をロボット２０に行わせることができる。
【０１３９】
＜所定の作業においてロボット制御装置が制御値と変域に基づいて行う処理の具体例＞
以下、図１５を参照し、所定の作業においてロボット制御装置３０が制御値と変域に基づいて行う処理の具体例について説明する。
【０１４０】
図１５は、所定の作業において、ロボット２０が第１物体Ｏ１の第１面Ｍ１を第２物体Ｏ２の第２面Ｍ２に接面させる前のタイミングにおけるハンドＨと第２物体Ｏ２との相対的な位置関係の一例を示す図である。また、図１５は、ロボット座標系ＲＣのＺ軸の正方向から負方向に向かってハンドＨと第２物体Ｏ２を見た場合の側面図である。図１５に示した例では、当該場合において、第２物体Ｏ２の上面のうちの半分よりもロボット座標系ＲＣのＹ軸の正方向側の部分には、物体ＭＴが配置されている。物体ＭＴは、当該場合において斜面を有する三角柱形状の物体である。当該斜面は、当該正方向側から当該半分の位置に向かって高さが低くなる斜面である。
【０１４１】
教示点Ｐ１０は、現在制御点Ｔが一致している教示点である。教示点Ｐ１１は、ロボット制御装置３０が指定する指定教示点である。ロボット制御装置３０は、位置制御によって制御点Ｔを移動させ、教示点Ｐ１０に一致した制御点Ｔを教示点Ｐ１１に一致させる。しかし、図１５に示した例では、第１物体Ｏ１の第１面Ｍ１と第２物体Ｏ２の第２面Ｍ２との間の空間には、物体ＭＴの斜面の一部が入り込んでいる。すなわち、ロボット制御装置３０が制御点Ｔを教示点Ｐ１１に一致させようと制御点Ｔを移動させた場合、第１物体Ｏ１は、物体ＭＴと接触し、物体ＭＴから外力が加えられる。
【０１４２】
ロボット制御装置３０は、物体ＭＴから第１物体Ｏ１に加えられた外力に基づいた力制御によって補正教示点を算出する。そして、ロボット制御装置３０は、指定教示点を算出した補正教示点に変更した後、制御点Ｔを移動させて補正教示点に一致させる。図１５に示した教示点ＶＰ１１は、物体ＭＴから第１物体Ｏ１に加えられた外力に基づいてロボット制御装置３０が算出した補正教示点である。また、輪郭ＶＯ１１は、ロボット制御装置３０が力制御によって当該補正教示点に制御点Ｔを一致させた場合の第１物体Ｏ１の輪郭である。
【０１４３】
このようにロボット制御装置３０がロボット２０を動作させる際、例えば、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、第１変域ＲＡ４を算出する。なお、図１５に示した例では、変域が第１変域ＲＡ４のみである場合について説明するが、これに限られず、変域が第１変域〜第４変域のうちの一部又は全部であってもよい。
【０１４４】
ロボット制御装置３０は、力制御によって制御点Ｔを移動させる際、図１５に示した第１変域ＲＡ４内に制御点Ｔの位置が含まれていると判定している限り、制御点Ｔを教示点ＶＰ１１に向かって移動させ続ける。そして、ロボット制御装置３０は、力検出部２１から取得した力検出情報に含まれる力検出値のうちの力検出座標系のＺ軸の正方向に加わる力が所定値以上となり、当該力検出座標系のＸ軸方向及びＹ軸方向に加わる力が０となり、当該力検出座標系のＵ軸方向、Ｖ軸方向、Ｗ軸方向に加わるモーメントが０となる場合に、所定の作業が完了したと判定し、制御点Ｔの移動を停止する。一方、ロボット制御装置３０は、図１５に示した第１変域ＲＡ４内に制御点Ｔの位置が含まれていないと判定した場合、例えば、所定の処理として異常処理を行う。
【０１４５】
また、図１５に示した例では、教示点Ｐ１０から第１変域ＲＡの端うちのロボット座標系ＲＣにおけるＹ軸の正方向側の端までの距離は、教示点Ｐ１０から第１変域ＲＡ４の端うちのロボット座標系ＲＣにおけるＹ軸の負方向側の端までの距離よりも短い。これは、図１５に示した例において、第１物体Ｏ１が物体ＭＴと異なる他の要因からも外力を加えられた場合において、ロボット制御装置３０が制御点Ｔを当該正方向側に移動させないように動作プログラムをユーザーが入力した結果である。すなわち、ロボット制御装置３０は、当該動作プログラムに基づいて、指定した座標系及び指定した第１閾値に基づいて第１変域ＲＡ４を算出する。
【０１４６】
以下、図１６を参照し、所定の作業においてロボット制御装置３０が制御値と変域に基づいて行う処理の具体例について説明する。
【０１４７】
図１６は、所定の作業において、ロボット２０が第１物体Ｏ１の第１面Ｍ１を第２物体Ｏ２の第２面Ｍ２に接面させる前のタイミングにおけるハンドＨと第２物体Ｏ２との相対的な位置関係の他の例を示す図である。また、図１６は、ロボット座標系ＲＣのＺ軸の正方向から負方向に向かってハンドＨと第２物体Ｏ２を見た場合の側面図である。
【０１４８】
教示点Ｐ１２は、現在制御点Ｔが一致している教示点である。教示点座標系Ｐ１２Ｃは、教示点Ｐ１２に対応付けられた教示点座標系である。教示点Ｐ１３は、ロボット制御装置３０が指定する指定教示点である。ロボット制御装置３０は、位置制御によって制御点Ｔを移動させ、教示点Ｐ１２に一致した制御点Ｔを教示点Ｐ１３に一致させる。しかし、図１６に示した例では、第１物体Ｏ１の第１面Ｍ１と第２物体Ｏ２の第２面Ｍ２とが平行ではなく傾いている。すなわち、制御点Ｔの姿勢が、図１５に示した制御点Ｔの姿勢に対して、制御点座標系ＴＣのＵ軸方向に傾いている。これにより、ロボット制御装置３０が制御点Ｔを教示点Ｐ１３に一致させようと制御点Ｔを移動させた場合、第１物体Ｏ１の一部は、第２物体Ｏ２の第２面Ｍ２と接触し、第２面Ｍ２から外力が加えられる。
【０１４９】
ロボット制御装置３０は、第２面Ｍ２から当該一部に加えられた外力に基づいた力制御によって補正教示点を算出する。そして、ロボット制御装置３０は、指定教示点を算出した補正教示点に変更した後、制御点Ｔを移動させて補正教示点に一致させる。図１６に示した教示点ＶＰ１１は、第２面Ｍ２から当該一部に加えられた外力に基づいてロボット制御装置３０が算出した補正教示点である。また、輪郭ＶＯ１２は、ロボット制御装置３０が力制御によって当該補正教示点に制御点Ｔを一致させた場合の第１物体Ｏ１の輪郭である。
【０１５０】
このようにロボット制御装置３０がロボット２０を動作させる際、例えば、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、指定した座標系である教示点座標系Ｐ１２ＣのＵ軸に第１閾値を指定する。当該第１閾値は、当該Ｕ軸の上限値θ７０及び下限値θ８０である。ロボット制御装置３０は、指定した当該第１閾値に基づいて、教示点座標系Ｐ１２Ｃに応じた第２変域を算出する。当該第２変域は、この一例において、ロボット座標系ＲＣのＺ軸の正方向から負方向に向かってハンドＨと第２物体Ｏ２を見た場合に、補助線ＨＬ７０と補助線ＨＬ８０との間の範囲（領域）である。補助線ＨＬ７０は、当該場合において、教示点座標系Ｐ１２ＣのＸ軸を中心として教示点座標系Ｐ１２Ｃを反時計回りに上限値θ７０だけ回転させた際に教示点座標系Ｐ１２ＣのＺ軸と一致する直線である。補助線８０は、教示点座標系Ｐ１２ＣのＸ軸を中心として教示点座標系Ｐ１２Ｃを時計回りに下限値θ８０だけ回転させた際に教示点座標系Ｐ１２ＣのＺ軸と一致する直線である。なお、図１６に示した例では、変域が当該第２変域のみである場合について説明するが、これに限られず、変域が第１変域〜第４変域のうちの一部又は全部であってもよい。
【０１５１】
当該第２変域を算出した後、ロボット制御装置３０は、教示点Ｐ１２から教示点Ｐ１３まで制御点Ｔを移動させている最中においてハンドＨに外力が加えられた場合、前述したように補正教示点である教示点Ｖ１３の位置及び姿勢を算出する。ロボット制御装置３０は、算出した当該位置及び姿勢のうちの当該姿勢と、教示点Ｐ１２の姿勢との差分を算出する。そして、ロボット制御装置３０は、これら２つの回転角の差分を算出する。ロボット制御装置３０は、算出した当該差分が当該第２変域内に含まれるか否かを判定する。
【０１５２】
ロボット制御装置３０は、力制御によって制御点Ｔを移動させる際、当該第２変域内に当該差分が含まれていると判定している限り、制御点Ｔを教示点Ｖ１３に向かって移動させ続ける。そして、ロボット制御装置３０は、力検出部２１から取得した力検出情報に含まれる力検出値のうちの力検出座標系のＺ軸の正方向に加わる力が所定値以上となり、当該力検出座標系のＸ軸方向及びＹ軸方向に加わる力が０となり、当該力検出座標系のＵ軸方向、Ｖ軸方向、Ｗ軸方向に加わるモーメントが０となる場合に、所定の作業が完了したと判定し、制御点Ｔの移動を停止する。一方、ロボット制御装置３０は、当該第２変域内に当該差分が含まれていないと判定した場合、例えば、所定の処理として異常処理を行う。
【０１５３】
また、図１６に示した例では、上限値θ７０の絶対値よりも下限値θ８０の絶対値の方が大きい。これは、図１６に示した例において、第１物体Ｏ１が物体ＭＴと異なる他の要因からも外力を加えられた場合において、第１物体Ｏ１の第１面Ｍ１と第２物体Ｏ２の第２面Ｍ２との間の角度が大きくなる方向にロボット制御装置３０が制御点Ｔを回転させないように動作プログラムをユーザーが入力した結果である。
【０１５４】
＜第１変域の形状の他の例＞
以下、図１７を参照し、第１変域の形状の他の例について説明する。前述したように、ロボット制御装置３０が第１変域を算出するために用いる仮変域の形状は、図１７に示した仮変域ＲＡ１０のように、ロボット制御装置３０が指定した第１閾値それぞれを通過する円形状であってもよい。図１７は、円形状の仮変域に基づいて算出された第１変域の一例を示す図である。
【０１５５】
図１７に示した教示点Ｐ１５は、現在制御点Ｔが一致している教示点である。教示点Ｐ１６は、ロボット制御装置３０が指定する指定教示点である。ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、教示点Ｐ１６に対応付けられた教示点座標系Ｐ１６ＣのＸ軸及びＹ軸に対して、教示点座標系Ｐ１６ＣのＸＹ平面において仮変域が円形状となるように第１閾値を指定する。例えば、ロボット制御装置３０は、第１閾値を指定する際、当該Ｘ軸の第１閾値と当該Ｙ軸の第１閾値との間の拘束条件を指定する。当該拘束条件は、当該Ｘ軸の第１閾値が指定する範囲内に含まれる当該Ｘ軸の位置と、当該Ｙ軸の第１閾値が指定する範囲内に含まれる当該Ｙ軸の位置とが円の方程式の解であることである。なお、仮変域が円形状と異なる形状である場合、当該拘束条件は、他の条件であってもよい。ロボット制御装置３０は、算出した仮変域ＲＡ１０に基づいて、上記において説明した方法によって第１変域ＲＡ１１を算出する。
【０１５６】
このように、ロボット制御装置３０は、指定した第１閾値に対して拘束条件を指定することにより、指定した拘束条件に応じた形状の仮閾値を算出することができる。なお、図１７では、ロボット制御装置３０が第１閾値に対して拘束条件を指定する場合について説明したが、これに限られず、第３閾値に対して拘束条件を指定する構成であってもよい。また、図１７では、ロボット制御装置３０が教示点座標系Ｐ１６ＣのＸ軸及びＹ軸に対して第１閾値を指定する構成について説明したが、これに代えて、ロボット制御装置３０が教示点座標系Ｐ１６ＣのＸ軸、Ｙ軸、Ｚ軸、Ｕ軸、Ｖ軸、Ｗ軸の一部又は全部に対して第１閾値を指定する構成であってもよい。
【０１５７】
＜実施形態の変形例＞
上記の説明において、所定の処理は、異常処理であった。しかし、所定の処理は、異常処理に代えて、他の処理であってもよい。例えば、所定の処理は、ロボット制御装置３０が所定の作業が完了したと判定し、所定の作業と異なる作業であって次の作業をロボット２０に行わせる処理等の他の処理であってもよい。これにより、ロボット制御装置３０は、異常処理と異なる処理による動作をロボットに行わせることができる。
【０１５８】
また、上記の説明における異常処理は、ロボット制御装置３０が表示部３５にエラーを表示させる処理であってもよく、ロボット制御装置３０が図示しないスピーカーから音を鳴らす処理であってもよく、ロボット制御装置３０が動作を終了する処理であってもよく、他の処理であってもよい。
【０１５９】
また、ロボット制御装置３０は、表示部３５に図示しないＧＵＩ（Graphical  User  Interface）を表示し、各座標系に応じた軸毎の閾値のユーザーによる入力をＧＵＩから受け付ける構成であってもよい。
また、ロボット制御装置３０は、動作プログラム及び教示点情報に基づいて算出される軌跡であって位置制御による制御点Ｔの移動の軌跡を、表示部３５に表示させる構成であってもよい。この場合、当該軌跡の表示は、三次元表示であってもよく、二次元表示であってもよい。
また、表示部３５は、ヘッドマウントディスプレイであってもよい。
また、ロボット制御装置３０は、位置制御によって制御点Ｔを移動させる目標をビジュアルサーボ等のように撮像部によって撮像された撮像画像によって補正する際、補正された目標における制御点Ｔの位置及び姿勢を、上記において説明した変域によって変更又は制限する構成であってもよい。
【０１６０】
以上のように、ロボット制御装置３０は、ロボット２０を力制御で動作させる制御値に対し、範囲を指定し、制御値と範囲とに基づく動作をロボット２０に行わせる。これにより、ロボット制御装置３０は、指定した範囲に応じた動作をロボット２０に行わせることができる。
【０１６１】
また、ロボット制御装置３０は、ロボット２０を動作させる制御値に対し、座標系に応じた軸毎に閾値を指定し、制御値と指定した当該閾値によって指定される範囲とに基づく動作をロボット２０に行わせる。これにより、ロボット制御装置３０は、座標系の軸毎に応じた動作をロボット２０に行わせることができる。
【０１６２】
また、ロボット制御装置３０は、教示点座標系に応じた軸毎に第１閾値を閾値として指定する。これにより、ロボット制御装置３０は、教示点座標系の軸毎に応じた動作をロボット２０行わせることができる。
【０１６３】
また、ロボット制御装置３０は、教示点毎に異なる第１閾値を指定する。これにより、ロボット制御装置３０は、制御値と、教示点毎に異なる第１閾値とに基づく動作をロボット２０に行わせることができる。また、ロボット制御装置３０は、所定の作業の内容が変化した場合であっても、容易に第１閾値を変更することができる。
【０１６４】
また、ロボット制御装置３０は、教示点の順番の順に前記教示点を線で繋いだ軌跡に応じた形状の空間であってロボット座標系ＲＣ内の空間を規定する第１閾値に基づく動作をロボット２０に行わせる。これにより、ロボット制御装置３０は、制御値と、第１閾値によって規定されるロボット座標系ＲＣ内の空間の内側と外側とのそれぞれにおいて異なる動作をロボット２０に行わせることができる。
【０１６５】
また、ロボット制御装置３０は、関節座標系に応じた軸毎に第２閾値を閾値として指定する。これにより、ロボット制御装置３０は、関節座標系の軸毎に応じた動作をロボット２０に行わせることができる。その結果、ロボット制御装置３０は、第２閾値に基づいて、ユーザーが所望する関節の回転を変更又は制限することができる。関節の回転角は、制御点Ｔの位置及び姿勢から把握することが困難である。このため、ロボット制御装置３０のこのような処理は、ユーザーが所望する関節の回転を制限する際に有効な処理となる。
【０１６６】
また、ロボット制御装置３０は、ロボット座標系ＲＣに応じた軸毎に第３閾値を前記閾値として指定する。これにより、ロボット制御装置３０は、ロボット座標系ＲＣの軸毎に応じた動作をロボットに行わせることができる。
【０１６７】
また、ロボット制御装置３０は、座標系に応じた軸のうちの予め決められた一部の軸に閾値を指定する。これにより、ロボット制御装置３０は、座標系の軸のうちの予め決められた一部の軸に応じた動作をロボット２０に行わせることができる。その結果、ロボット制御装置３０は、例えば、ある座標系の各座標軸方向のうちのユーザーが所望する方向のみについて、ロボット２０の動作を変更又は制限することができる。また、ロボット制御装置３０は、例えば、ある座標系のある座標軸の正方向及び負方向のいずれか一方又は両方について、ロボット２０の動作を変更又は制限することができる。
【０１６８】
また、ロボット制御装置３０は、制御値が閾値を所定時間以上超え続けた場合、所定の処理を行う。これにより、ロボット制御装置３０は、制御値が閾値を所定時間超え続ける前と後とのそれぞれにおいて異なる動作をロボット２０に行わせることができる。その結果、ロボット制御装置３０は、例えば、外乱によって一時的に制御値が閾値を超えてしまうことを許容し、意図していない動作によって制御値が閾値を超えてしまうことを監視することができる。
【０１６９】
また、ロボット制御装置３０は、制御値が閾値を所定時間以上超え続けた場合、異常処理と異なる処理を行う。これにより、ロボット制御装置３０は、制御値が閾値を所定時間超え続ける前と後とのそれぞれにおいて、異常処理と異なる処理による動作をロボット２０に行わせることができる。
【０１７０】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１７１】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１７２】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１７３】
１…ロボットシステム、２０…ロボット、２１…力検出部、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、３６１…力検出情報取得部、３６３…ロボット制御部
【図１】
0006746990.tif 000002
【図２】
0006746990.tif 000003
【図３】
0006746990.tif 000004
【図４】
0006746990.tif 000005
【図５】
0006746990.tif 000006
【図６】
0006746990.tif 000007
【図７】
0006746990.tif 000008
【図８】
0006746990.tif 000009
【図９】
0006746990.tif 000010
【図１０】
0006746990.tif 000011
【図１１】
0006746990.tif 000012
【図１２】
0006746990.tif 000013
【図１３】
0006746990.tif 000014
【図１４】
0006746990.tif 000015
【図１５】
0006746990.tif 000016
【図１６】
0006746990.tif 000017
【図１７】
0006746990.tif 000018