(57)【要約】【課題】ロボットの姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができるロボットを提供すること。【解決手段】複数の関節を備えたロボットであって、連続経路動作時に前記ロボットの姿勢が特異姿勢に近づいた場合、前記複数の関節のうちの一部の関節である第１関節が前記連続経路動作とは異なる動作を行い、前記複数の関節のうちの前記第１関節と異なる第２関節の速度が制限される、ロボット。【選択図】図３
2017185598.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を備えたロボットであって、
連続経路動作時に前記ロボットの姿勢が特異姿勢に近づいた場合、
前記複数の関節のうちの一部の関節である第１関節が前記連続経路動作とは異なる動作を行い、
前記複数の関節のうちの前記第１関節と異なる第２関節の速度が制限される、
ロボット。
【請求項２】
前記ロボットの姿勢が前記特異姿勢に近づいた場合、
前記第１関節の動作を前記連続経路動作から連続位置決め動作に切り替える、
請求項１に記載のロボット。
【請求項３】
前記ロボットの姿勢が前記特異姿勢から遠ざかった場合、
前記第１関節の動作を前記連続位置決め動作から前記連続経路動作に切り替える、
請求項２に記載のロボット。
【請求項４】
前記連続位置決め動作時における前記第１関節の速度の推定値が所定閾値以上であると判定された場合、
前記第１関節の動作を前記連続位置決め動作から前記連続経路動作に切り替えるタイミングを遅らせる、
請求項２又は３に記載のロボット。
【請求項５】
前記ロボットの姿勢が前記特異姿勢に近づいた場合、
前記第２関節の動作を前記連続経路動作のまま保持する、
請求項１から４のうちいずれか一項に記載のロボット。
【請求項６】
複数の関節を備えたロボットであって、
連続経路動作時に前記ロボットの姿勢が特異姿勢に近づいた場合、
前記複数の関節のうちの少なくとも一部の関節が前記連続経路動作とは異なる動作を行い、
当該関節の速度が制限される、
ロボット。
【請求項７】
請求項１から６のうちいずれか一項に記載のロボットを制御する、
ロボット制御装置。
【請求項８】
請求項１から６のうちいずれか一項に記載のロボットと、
前記ロボットを制御するロボット制御装置と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、ロボット制御装置、及びロボットシステムに関する。
【背景技術】
【０００２】
連続経路制御（ＣＰ（Continuous  Path）制御）による動作である連続経路動作をロボットが備える複数の関節のそれぞれに行わせることによって当該ロボットに所定の作業を行わせる技術の研究や開発が行われている。
【０００３】
連続経路動作時においてロボットの姿勢が特異姿勢に近づいた場合、ロボットが備える複数の関節のうちの少なくとも１つの速度（すなわち、回動速度又は角速度）が限界速度を超えて回動することがある。限界速度を超えて回動し続けた関節には、不具合が生じる可能性がある。
【０００４】
これに関し、ロボットの姿勢が特異姿勢に近づいた場合、連続位置決め制御（ＰＴＰ（Point  To  Point）制御）による動作である連続位置決め動作をロボットが備える複数の関節の少なくとも一部に行わせることにより、ロボットの各関節の速度が限界速度を超えてしまうことを抑制するマニピュレーター制御装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０５−８４６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このようなマニピュレーター制御装置では、ロボットのＴＣＰ（Tool  Center  Point）の速度を速くした場合においてロボットの姿勢が特異姿勢に近づくと、ロボットが備える複数の関節のうちの少なくとも１つの関節の速度が限界速度を超えてしまうことがあった。このため、当該マニピュレーター制御装置では、ロボットに所定の作業を行わせる時間を短縮することが困難な場合があった。
【課題を解決するための手段】
【０００７】
上記課題の少なくとも一つを解決するために本発明の一態様は、複数の関節を備えたロボットであって、連続経路動作時に前記ロボットの姿勢が特異姿勢に近づいた場合、前記複数の関節のうちの一部の関節である第１関節が前記連続経路動作とは異なる動作を行い、前記複数の関節のうちの前記第１関節と異なる第２関節の速度が制限される、ロボットである。
この構成により、ロボットは、連続経路動作時にロボットの姿勢が特異姿勢に近づいた場合、第１関節が連続経路動作とは異なる動作を行い、第２関節の速度が制限される。これにより、ロボットは、ロボットの姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、前記ロボットの姿勢が前記特異姿勢に近づいた場合、前記第１関節の動作を前記連続経路動作から連続位置決め動作に切り替える、構成が用いられてもよい。
この構成により、ロボットは、ロボットの姿勢が特異姿勢に近づいた場合、第１関節の動作を連続経路動作から連続位置決め動作に切り替える。これにより、ロボットは、連続位置決め動作によって、ロボットの姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記ロボットの姿勢が前記特異姿勢から遠ざかった場合、前記第１関節の動作を前記連続位置決め動作から前記連続経路動作に切り替える、構成が用いられてもよい。
この構成により、ロボットは、ロボットの姿勢が特異姿勢から遠ざかった場合、第１関節の動作を連続位置決め動作から連続経路動作に切り替える。これにより、ロボットは、ロボットの姿勢に応じて第１関節の動作を連続経路動作と連続位置決め動作とのいずれかに切り替えることにより、ロボットの姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、前記連続位置決め動作時における前記第１関節の速度の推定値が所定閾値以上であると判定された場合、前記第１関節の動作を前記連続位置決め動作から前記連続経路動作に切り替えるタイミングを遅らせる、構成が用いられてもよい。
この構成により、ロボットは、連続位置決め動作時における第１関節の速度の推定値が所定閾値以上であると判定された場合、第１関節の動作を連続位置決め動作から連続経路動作に切り替えるタイミングを遅らせる。これにより、ロボットは、第１関節の速度が限界速度を超えてしまうことを抑制するとともに、ロボットの姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記ロボットの姿勢が前記特異姿勢に近づいた場合、前記第２関節の動作を前記連続経路動作のまま保持する、構成が用いられてもよい。
この構成により、ロボットは、ロボットの姿勢が特異姿勢に近づいた場合、第２関節の動作を連続経路動作のまま保持する。これにより、ロボットは、第２関節の動作を連続経路動作に保持したまま、ロボットの姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００１２】
また、本発明の他の態様は、ロボットにおいて、複数の関節を備えたロボットであって、連続経路動作時に前記ロボットの姿勢が特異姿勢に近づいた場合、前記複数の関節のうちの少なくとも一部の関節が前記連続経路動作とは異なる動作を行い、当該関節の速度が制限される、構成が用いられてもよい。
この構成により、ロボットは、連続経路動作時にロボットの姿勢が特異姿勢に近づいた場合、複数の関節のうちの少なくとも一部の関節が連続経路動作とは異なる動作を行い、当該関節の速度が制限される。これにより、ロボットは、ロボットの姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００１３】
また、本発明の他の態様は、上記に記載のロボットを制御する、ロボット制御装置である。
この構成により、ロボット制御装置は、連続経路動作時にロボットの姿勢が特異姿勢に近づいた場合、第１関節に連続経路動作とは異なる動作を行わせ、第２関節の速度を制限する。これにより、ロボット制御装置は、ロボットの姿勢が特異姿勢に近づく動作を含む作業をロボットに行わせる時間を短縮することができる。
【００１４】
また、本発明の他の態様は、上記に記載のロボットと、前記ロボットを制御するロボット制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムは、連続経路動作時にロボットの姿勢が特異姿勢に近づいた場合、第１関節に連続経路動作とは異なる動作を行わせ、第２関節の速度を制限する。これにより、ロボットシステムは、ロボットの姿勢が特異姿勢に近づく動作を含む作業をロボットに行わせる時間を短縮することができる。
【００１５】
以上により、ロボットは、連続経路動作時にロボットの姿勢が特異姿勢に近づいた場合、第１関節が連続経路動作とは異なる動作を行い、第２関節の速度が制限される。これにより、ロボットは、ロボットの姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
また、ロボット制御装置、及びロボットシステムは、連続経路動作時にロボットの姿勢が特異姿勢に近づいた場合、第１関節に連続経路動作とは異なる動作を行わせ、第２関節の速度を制限する。これにより、ロボットシステムは、ロボットの姿勢が特異姿勢に近づく動作を含む作業をロボットに行わせる時間を短縮することができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図３】ロボット制御装置３０の機能構成の一例を示す図である。
【図４】制御点Ｔを第１教示点から第２教示点へ移動させる際にロボット制御装置３０が行う処理の流れの一例を示すフローチャートである。
【図５】関節Ｊ４の関節速度曲線の一例を示す図である。
【図６】関節Ｊ４の関節速度曲線の他の例を示す図である。
【図７】第２関節のうちの１つである関節Ｊ２の速度の変化の一例を示す図である。
【図８】制御点Ｔの速度と第１関節及び第２関節の速度との関係を例示する図である。
【発明を実施するための形態】
【００１７】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１８】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、ロボット２０と、ロボット制御装置３０を備える。
【００１９】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボットや、円筒型ロボット等の他のロボットであってもよい。
【００２０】
アームＡは、エンドエフェクターＥと、マニピュレーターＭを備える。
エンドエフェクターＥは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターＥは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【００２１】
マニピュレーターＭは、５個のアーム部材であるリンクＬ１〜リンクＬ５と、６つの関節である関節Ｊ１〜関節Ｊ６を備える。支持台ＢとリンクＬ１は、関節Ｊ１によって連結される。リンクＬ１とリンクＬ２は、関節Ｊ２によって連結される。リンクＬ２とリンクＬ３は、関節Ｊ３によって連結される。リンクＬ３とリンクＬ４は、関節Ｊ４によって連結される。リンクＬ４とリンクＬ５は、関節Ｊ５によって連結される。リンクＬ５とエンドエフェクターＥは、関節Ｊ６によって連結される。すなわち、マニピュレーターＭを備えるアームＡは、６軸垂直多関節型のアームである。なお、アームＡは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。
【００２２】
関節Ｊ２、関節Ｊ３、関節Ｊ５のそれぞれは、旋回関節（曲げ関節）であり、関節Ｊ１、関節Ｊ４、関節Ｊ６のそれぞれは、回転関節（ねじり関節）である。前述したように、関節Ｊ６には、エンドエフェクターＥが連結（装着）される。
【００２３】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。また、関節Ｊ１〜関節Ｊ６のそれぞれは、ケーブルによってロボット制御装置３０と通信可能に接続されている。なお、これらのケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。また、関節Ｊ１〜関節Ｊ６のうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２４】
ロボット制御装置３０は、この一例において、ロボットコントローラーである。ロボット制御装置３０は、予め入力された動作プログラムに基づいて制御信号を生成する。ロボット制御装置３０は、生成した制御信号をロボット２０に送信し、ロボット２０に所定の作業を行わせる。以下では、説明の便宜上、ロボット制御装置３０による当該制御信号の生成及び送信についての説明を省略し、ロボット制御装置３０がロボット２０に行わせる動作、及びロボット２０を動作させる際にロボット制御装置３０が行う処理について説明する。所定の作業は、例えば、図示しない物体をロボット２０が把持し、把持した物体を図示しない給材領域にロボット２０が配置する作業であるが、これに代えて、他の作業であってもよい。
【００２５】
＜ロボットを動作させる際にロボット制御装置が行う処理の概要＞
以下、ロボット２０を動作させる際にロボット制御装置３０が行う処理の概要について説明する。
【００２６】
ロボット制御装置３０は、エンドエフェクターＥに予め対応付けられた位置に、エンドエフェクターＥとともに動くＴＣＰ（Tool  Center  Point）である制御点Ｔを設定する。エンドエフェクターＥに予め対応付けられた位置は、例えば、エンドエフェクターＥの重心の位置である。なお、エンドエフェクターＥに対応付けられた位置は、これに代えて、エンドエフェクターＥに把持された物体の重心の位置等の他の位置であってもよく、マニピュレーターＭに対応付けられた何らかの位置であってもよい。
【００２７】
ロボット制御装置３０は、ユーザーから予め入力された制御点設定情報に基づいて制御点Ｔを設定する。制御点設定情報は、例えば、エンドエフェクターＥの重心の位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターＥに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターＭに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ロボット２０の他の部位に対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
【００２８】
制御点Ｔには、制御点Ｔの位置を示す情報である制御点位置情報と、制御点Ｔの姿勢を示す情報である制御点姿勢情報とが対応付けられている。なお、制御点Ｔには、これらに加えて、他の情報が対応付けられる構成であってもよい。ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報のそれぞれを指定（決定）する。ロボット制御装置３０は、アームＡの関節Ｊ１〜関節Ｊ６のうちの少なくとも１つを動作させ、指定した制御点位置情報が示す位置に制御点Ｔの位置を一致させるとともに、指定した制御点姿勢情報が示す姿勢に制御点Ｔの姿勢を一致させる。すなわち、ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット２０を動作させる。
【００２９】
この一例ではロボット２０が６軸垂直多関節型のアームＡを備えるため、制御点Ｔの位置は、関節Ｊ１〜関節Ｊ３のそれぞれを回動させることによっておおよそ決定される。なお、制御点Ｔの位置は、関節Ｊ４〜関節Ｊ６のそれぞれを回動させることによって微調整することもできる。また、当該一例では、制御点Ｔの姿勢は、関節Ｊ４〜関節Ｊ６のそれぞれを回動させることによって決定される。
【００３０】
この一例において、制御点Ｔの位置は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔの姿勢は、制御点座標系ＴＣの各座標軸のロボット座標系ＲＣにおける方向によって表される。制御点座標系ＴＣは、制御点Ｔとともに動くように制御点Ｔに対応付けられた三次元局所座標系である。なお、この一例において、エンドエフェクターＥの位置及び姿勢は、制御点Ｔの位置及び姿勢によって表される。
【００３１】
ロボット制御装置３０は、ロボット制御装置３０に予め記憶された教示点情報に基づいて制御点Ｔを移動させる。
【００３２】
教示点情報は、教示点を示す情報である。教示点は、ロボット制御装置３０がマニピュレーターＭを動作させる際に制御点Ｔを移動させる目標となる仮想的な点のことである。教示点には、教示点位置情報と、教示点姿勢情報と、教示点速度情報と、教示点識別情報とが対応付けられている。教示点位置情報は、教示点の位置を示す情報である。また、教示点姿勢情報は、教示点の姿勢を示す情報である。教示点速度情報は、教示点の速度を示す情報である。教示点識別情報は、教示点を識別する情報である。この一例において、教示点の位置は、教示点に対応付けられた三次元局所座標系である教示点座標系の原点のロボット座標系ＲＣにおける位置によって表される。また、教示点の姿勢は、教示点座標系の各座標軸のロボット座標系ＲＣにおける方向によって表される。
【００３３】
ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、教示点情報が示す１以上の教示点を順に指定する。そして、ロボット制御装置３０は、当該動作プログラムに基づいて、現在の制御点Ｔが一致している教示点である第１教示点から、指定した教示点である第２教示点までの軌道を生成（算出）する。当該軌道は、直線であってもよく、曲線であってもよい。以下では、一例として、当該軌道が直線である場合について説明する。なお、第１教示点には、ロボット２０が最初に制御点Ｔを一致させている始点が含まれる。
【００３４】
また、ロボット制御装置３０は、ユーザーにより予め入力された動作プログラムに基づいて、連続経路制御（ＣＰ（Continuous  Path）制御）を行う。連続経路制御では、ロボット制御装置３０は、第１教示点から第２教示点までの軌道であって制御点Ｔの位置及び姿勢の変化を表す軌道を、第１教示点から第２教示点まで制御点Ｔが移動する際の経過時間の関数として生成（算出）する。すなわち、ロボット制御装置３０は、経過時間を指定することによって、当該軌道に基づいて当該軌道上における制御点Ｔの位置及び姿勢を特定することができる。以下では、説明の便宜上、当該軌道を連続経路軌道（ＣＰ軌道）と称して説明する。ここで、ロボット制御装置３０は、連続経路軌道を生成する際、連続経路軌道に沿って移動する制御点Ｔの速度が、第２教示点の速度である場合における連続経路軌道を生成する。そして、ロボット制御装置３０は、生成した連続経路軌道に沿って制御点Ｔを第１教示点から第２教示点まで移動させる。この際、ロボット制御装置３０は、第１教示点から制御点Ｔを移動させ始めるタイミングからの経過時間を計時し、計時した当該経過時間に応じた位置及び姿勢であって連続経路軌道上における制御点Ｔの位置及び姿勢を目標位置及び目標姿勢として特定する。ロボット制御装置３０は、特定した目標位置を示す情報を制御点位置情報として指定し、特定した目標姿勢を示す情報を制御点姿勢情報として指定する。目標位置及び目標姿勢は、ロボット制御装置３０が制御点Ｔの位置及び姿勢を一致させる目標となる位置及び姿勢のことである。これにより、ロボット制御装置３０は、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢に一致させる。このようにして、ロボット制御装置３０は、制御点Ｔが第２教示点と一致するまで前述の経過時間に応じて制御点Ｔを移動させることができる。なお、連続経路制御によって連続経路軌道を生成する方法については、既知の方法を用いてもよく、これから新たに開発される方法を用いてもよいため説明を省略する。
【００３５】
連続経路制御においてロボット制御装置３０が制御点Ｔを連続経路軌道に沿って移動させる際、ロボット制御装置３０は、制御点Ｔの位置及び姿勢が目標位置及び目標姿勢に一致した場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を第１回動角として逆運動学に基づいて算出する。例えば、現在の制御点Ｔの位置及び姿勢が位置及び姿勢Ｘ１と一致しており、目標位置及び目標姿勢が位置及び姿勢Ｘ２である場合、ロボット制御装置３０は、位置及び姿勢Ｘ２に制御点Ｔの位置及び姿勢が一致した場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を第１回動角として逆運動学に基づいて算出する。ロボット制御装置３０は、算出した第１回動角に基づいて、関節Ｊ１〜関節Ｊ６それぞれに連続経路動作を行わせることにより、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢に一致させる。ある関節に行わせる連続経路動作は、当該関節の回動角を第１回動角に含まれる当該関節の回動角に一致させる動作のことである。例えば、関節ＪＮに行わせる連続経路動作は、関節ＪＮの回動角を、第１回動角に含まれる関節ＪＮの回動角に一致させる動作のことである。ここで、Ｎは、１〜６のいずれかの整数である。このような連続経路動作を関節Ｊ１〜関節Ｊ６のそれぞれに繰り返させることにより、ロボット制御装置３０は、制御点Ｔを第１教示点から第２教示点に移動させる。
【００３６】
ここで、ロボット制御装置３０は、連続経路動作時にロボット２０の姿勢が特異姿勢に近づいた場合、ロボット２０が備える複数の関節のうちの一部の関節である第１関節に連続経路動作とは異なる動作を行わせ、当該複数の関節のうちの第１関節と異なる第２関節の速度を制限する。連続経路動作時は、ロボット制御装置３０が連続経路軌道に沿って制御点Ｔを移動させる処理を行っている時のことである。これにより、ロボット制御装置３０は、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。この一例において、ロボット２０が備える関節のうちのある関節の速度は、当該関節の回動軸の回動速度、すなわち当該回動軸の角速度を意味する。第１関節と第２関節については、後述する。
【００３７】
特異姿勢は、ロボット２０の姿勢のうちのロボット２０の自由度が減少又は増加することによって逆運動学における解が不定となる姿勢のことである。また、特異姿勢は、ロボット２０の構成に応じて異なる姿勢である。ロボット２０の姿勢は、ロボット２０の各関節それぞれの回動角の組み合わせによって表される。すなわち、ロボット２０の姿勢は、この一例において、関節Ｊ１〜関節Ｊ６それぞれの回動角の組み合わせによって表される。
【００３８】
例えば、ロボット２０の場合、特異姿勢には、第１姿勢と、第２姿勢と、第３姿勢と、第４姿勢との４つの姿勢が含まれる。第１姿勢は、関節Ｊ１の回動軸上にＰ点が一致する姿勢である。Ｐ点は、ロボット２０の出力点の位置及び姿勢を表す仮想的な点であり、この一例において、関節Ｊ５の回動軸の重心の位置に設定される点である。なお、Ｐ点は、これに代えて、ロボット２０に対応付けられた他の位置に設定される点であってもよい。第２姿勢〜第４姿勢のそれぞれは、ロボット２０が備える複数の回転関節のうちの２つの回動軸が一致する姿勢である。具体的には、第２姿勢は、関節Ｊ１の回動軸と関節Ｊ４の回動軸とが一致する姿勢である。また、第３姿勢は、関節Ｊ１の回動軸と関節Ｊ６の回動軸とが一致する姿勢である。また、第４姿勢は、関節Ｊ４の回動軸と関節Ｊ６の回動軸とが一致する姿勢である。これは、前述したように、当該回転関節が、この一例において、関節Ｊ１と、関節Ｊ４と、関節Ｊ６との３つの関節であるためである。
【００３９】
また、例えば、複数の旋回関節のみを備えるロボットの場合、特異姿勢は、当該ロボットの姿勢のうちのＰ点と当該旋回関節それぞれの回動軸とが一直線上に並ぶ姿勢である。
また、例えば、スカラロボットの場合、特異姿勢は、第２軸の回動軸が０°となる姿勢であり、当該回動軸に沿って第１アーム及び第２アームを上から下に向かって見た場合に、第１アームと第２アームとが重なる姿勢である。
【００４０】
以下では、一例として、ロボット２０が行う所定の作業が、ロボット２０の姿勢が第４姿勢に近づく動作を含む作業である場合について説明する。このような場合、ロボット制御装置３０は、ロボット２０の姿勢が特異姿勢に近づいたか否かを、関節Ｊ５の回動角と、関節Ｊ４の速度とによって判定することができる。より具体的には、ロボット制御装置３０は、所定の判定条件が満たされたか否かを判定し、判定条件が満たされた場合、ロボット２０の姿勢が特異姿勢に近づいたと判定する。判定条件は、この一例において、以下に示す１）、２）の２つの条件の両方を満たすことである。なお、判定条件は、当該２つの条件のうちのいずれか一方を満たすことであってもよい。また、判定条件は、当該２つの条件のうちのいずれか一方又は両方に代えて、他の条件を満たすことであってもよい。
【００４１】
１）関節Ｊ５の回動角が所定回動角以上であること
２）関節Ｊ４の速度が所定速度以上であること
【００４２】
ロボット制御装置３０は、関節Ｊ４が備えるエンコーダーから関節Ｊ４の回動角を示す回動角情報を取得する。ロボット制御装置３０は、取得した当該回動角情報に基づいて、関節Ｊ４の速度を算出する。そして、ロボット制御装置３０は、算出した当該速度が所定速度以上であるか否かを判定する。また、ロボット制御装置３０は、関節Ｊ５が備えるエンコーダーから関節Ｊ５の回動角を示す回動角情報を取得する。そして、ロボット制御装置３０は、取得した当該回動角情報が示す回動角が所定回動角以上であるか否かを判定する。このような判定方法により、ロボット制御装置３０は、ロボット２０の姿勢が特異姿勢に近づいたか否かを判定する。
【００４３】
以下では、連続経路動作時にロボット２０の姿勢が特異姿勢に近づいた場合にロボット制御装置３０が行う処理について詳しく説明する。
【００４４】
＜ロボット制御装置のハードウェア構成＞
以下、図２を参照し、ロボット制御装置３０のハードウェア構成について説明する。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００４５】
ロボット制御装置３０は、例えば、ＣＰＵ（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）等のハードウェア機能部であってもよい。
【００５１】
ロボット制御部３６は、記憶部３２に予め記憶された動作プログラム及び教示点情報に基づいて、ロボット２０を動作させる。この際、ロボット制御部３６は、ロボット２０が備える複数の関節に連続経路動作を行わせることにより、ロボット２０を動作させる。また、ロボット制御部３６は、ロボット２０の姿勢が特異姿勢に近づいた場合、第１関節に連続経路動作とは異なる動作を行わせ、第２関節の速度を制限する。
【００５２】
＜連続経路動作時にロボットの姿勢が特異姿勢に近づいた場合においてロボット制御装置が行う処理＞
以下、図４を参照し、連続経路動作時にロボット２０の姿勢が特異姿勢に近づいた場合においてロボット制御装置３０が行う処理について説明する。図４は、制御点Ｔを第１教示点から第２教示点へ移動させる際にロボット制御装置３０が行う処理の流れの一例を示すフローチャートである。
【００５３】
ロボット制御部３６は、記憶部３２に予め記憶された動作プログラム及び教示点情報に基づいて第２教示点を指定する（ステップＳ１１０）。次に、ロボット制御部３６は、ステップＳ１１０において指定された第２教示点と、第１教示点とに基づいて、連続経路制御により連続経路軌道を生成する（ステップＳ１２０）。
【００５４】
次に、ロボット制御部３６は、ステップＳ１２０において生成した連続経路軌道に基づいて、関節Ｊ１〜関節Ｊ６のそれぞれに連続経路動作を行わせ始め、制御点Ｔを第１教示点から第２教示点に移動させ始める（ステップＳ１３０）。次に、ロボット制御部３６は、ステップＳ１３０において開始した連続経路動作によって制御点Ｔを移動させる毎に、ロボット２０の姿勢が特異姿勢に近づいたか否かを判定する（ステップＳ１４０）。すなわち、ロボット制御部３６は、ステップＳ１４０において、連続経路動作時にロボット２０の姿勢が特異姿勢に近づいたか否かを判定する。
【００５５】
ステップＳ１４０においてロボット２０の姿勢が特異姿勢に近づいたと判定した場合（ステップＳ１４０−ＹＥＳ）、ロボット制御部３６は、現在の制御点Ｔの位置及び姿勢に基づいて、連続位置決め制御（ＰＴＰ（Point  To  Point）制御）により連続位置決め軌道を生成する（ステップＳ１５０）。ここで、ステップＳ１５０の処理について詳しく説明する。
【００５６】
連続位置決め制御では、ロボット制御部３６は、始点と終点を特定する。始点は、現在の制御点Ｔが一致している仮想的な点であって連続経路軌道上の点のことである。また、始点の位置及び姿勢である始点位置及び始点姿勢は、現在の制御点Ｔの位置及び姿勢である。終点は、連続経路軌道上において制御点Ｔが一致する仮想的な点のうちの前述の判定条件が満たされなくなる点である。また、当該点は、始点から第２教示点までの間の点であって始点に最も近い点である。終点の位置及び姿勢である終点位置及び終点姿勢は、連続経路軌道上における終点に制御点Ｔが一致している場合の制御点Ｔの位置及び姿勢である。
【００５７】
終点を算出する際、ロボット制御部３６は、関節Ｊ１〜関節Ｊ６の動作を連続経路動作に保持したまま連続経路軌道に沿って始点から第２教示点まで制御点Ｔを移動させた場合における経過時間毎の関節Ｊ４の速度及び関節Ｊ５の回動角を算出する。そして、ロボット制御部３６は、算出した当該速度及び当該回動角に基づいて、当該速度と当該回動角のうちの少なくとも一方が前述の判定条件を満たさなくなる当該経過時間であって最も早い当該経過時間を終点時間として特定する。ロボット制御部３６は、特定した終点時間において制御点Ｔが一致する仮想的な点であって連続経路軌道上の点を終点として特定する。
【００５８】
始点及び終点を特定した後、ロボット制御部３６は、制御点Ｔが始点と一致している場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を始点回動角として算出する。また、ロボット制御部３６は、制御点Ｔが終点と一致している場合における関節Ｊ１〜関節Ｊ６それぞれの回動角を終点回動角として算出する。ロボット制御部３６は、算出した始点回動角及び終点回動角に基づく関節空間補間軌道生成問題を解き、連続位置決め軌道を生成（算出）する。連続位置決め軌道は、制御点Ｔが始点から終点に移動するまでの経過時間とともに変化する回動角であって関節Ｊ１〜関節Ｊ６それぞれの回動角である第２回動角の変化を、当該経過時間の関数として表したものである。ただし、始点から移動した制御点Ｔが終点と一致するまでに経過する経過時刻は、前述の終点時間である。以下では、説明の便宜上、当該関数が表す曲線、すなわち第２回動角の変化を表す曲線を連続位置決め軌道と称して説明する。また、ロボット制御部３６は、算出した連続位置決め軌道に基づいて、当該経過時間とともに変化する速度であって関節Ｊ１〜関節Ｊ６それぞれの速度を当該経過時間の関数として生成（算出）する。以下では、説明の便宜上、当該関数が表す曲線を関節速度曲線と称して説明する。関節速度曲線が表す経過時間に応じた速度であって関節Ｊ１〜関節Ｊ６それぞれの速度は、関節Ｊ１〜関節Ｊ６それぞれの速度の推定値の一例である。
【００５９】
以上のように、ステップＳ１５０においてロボット制御部３６は、現在の制御点Ｔの位置及び姿勢である始点位置及び始点姿勢に基づいて、連続位置決め制御によって連続位置決め軌道を生成する。
【００６０】
ステップＳ１５０において連続位置決め軌道が生成された後、ロボット制御部３６は、ステップＳ１５０において生成した関節速度曲線に基づいて、第１関節のうちの少なくとも１つの速度が所定閾値以上となる時間帯があるか否かを判定する（ステップＳ１６０）。第１関節は、この一例において、関節Ｊ４〜関節Ｊ６のそれぞれである。従って、第２関節は、この一例において、関節Ｊ１〜関節Ｊ３のそれぞれである。なお、第１関節は、ロボット２０の構造や特異姿勢に応じて異なるため、ロボット２０の構造や特異姿勢に応じた他の関節であってもよい。また、第２関節は、第１関節に応じて異なるため、第１関節に応じた他の関節であってもよい。ここで、図５を参照し、ステップＳ１６０の処理について詳しく説明する。図５では、この一例における第１関節の１つである関節Ｊ４を例に挙げて説明する。なお、関節Ｊ５及び関節Ｊ６については、ロボット制御部３６が、以下において説明する関節Ｊ４に行わせる動作と同様の動作を行わせるため説明を省略する。
【００６１】
図５は、関節Ｊ４の関節速度曲線の一例を示す図である。図５に示したグラフの横軸は、第１教示点から制御点Ｔが移動し始めてから第２教示点に一致するまでの経過時間を表す。また、当該グラフの縦軸は、関節Ｊ４の速度を表す。当該グラフの曲線Ｆ１は、関節Ｊ４の関節速度曲線の一例である。図５に示した速度Ｓ１は、この一例における所定閾値である。所定閾値は、例えば、関節Ｊ４の限界速度である。なお、所定閾値は、これに代えて、他の速度であってもよい。ある関節の限界速度は、この一例において、当該関節に不具合が生じる可能性が高くなる速度である。図５に示した時間Ｔ１は、ステップＳ１３０の処理が開始された時間、すなわち第１教示点から制御点Ｔが移動し始めた時間である。また、時間Ｔ２は、制御点Ｔが第２教示点に一致する時間である。また、始点時間ＴＳは、制御点Ｔが始点に一致した時間である。また、終点時間ＴＥは、制御点Ｔが終点に一致する時間である。前述したように、図５に示した始点時間ＴＳから終点時間ＴＥまでの時間帯では、ロボット制御部３６は、関節Ｊ４に連続位置決め動作を行わせる。図５には、当該時間帯において関節Ｊ４の速度が速度Ｓ１を超えている例が示されている。この場合、ロボット制御部３６は、ステップＳ１６０において、第１関節の速度が所定閾値以上となる時間帯があると判定する。
【００６２】
ステップＳ１６０において第１関節のうちの少なくとも１つの速度が所定閾値以上となる時間帯があると判定した場合（ステップＳ１６０−ＹＥＳ）、ロボット制御部３６は、連続位置決め軌道の再生成を行う（ステップＳ１７０）。ここで、図６を参照し、ステップＳ１７０の処理について説明する。
【００６３】
図６は、関節Ｊ４の関節速度曲線の他の例を示す図である。図６に示したグラフの横軸は、第１教示点から制御点Ｔが移動し始めてから第２教示点に一致するまでの経過時間を表す。また、当該グラフの縦軸は、関節Ｊ４の速度を表す。当該グラフの曲線Ｆ２は、関節Ｊ４の関節速度曲線の他の例である。図６に示した速度Ｓ１１は、この一例における所定閾値である。図６に示した時間Ｔ１１は、ステップＳ１３０の処理が開始された時間、すなわち第１教示点から制御点Ｔが移動し始めた時間である。また、時間Ｔ１２は、制御点Ｔが第２教示点に一致する時間である。また、始点時間ＴＳ１１は、制御点Ｔが始点に一致した時間である。また、終点時間ＴＥ１１は、制御点Ｔが終点に一致する時間である。前述したように、図６に示した始点時間ＴＳ１１から終点時間ＴＥ１１までの時間帯では、ロボット制御部３６は、関節Ｊ４に連続位置決め動作を行わせる。図６に示した例では、曲線Ｆ２は、当該時間帯において関節Ｊ４の速度が速度Ｓ１１を超えている。この場合、ロボット制御部３６は、ステップＳ１７０において連続位置決め軌道の再生成を行う。
【００６４】
具体的には、ロボット制御部３６は、現在の終点時間ＴＥ１１から所定時間経過した時間を新たな終点時間ＴＥ１２として特定する。所定時間は、この一例において、１０ミリ秒である。なお、所定時間は、これに代えて、他の時間であってもよい。そして、ロボット制御部３６は、始点から第２教示点まで連続経路軌道に沿って制御点Ｔを移動させた場合に終点時間ＴＥ１２において制御点Ｔが一致する仮想的な点であって連続経路軌道上の点を新たな終点として特定する。ロボット制御部３６は、始点位置及び始点姿勢と、特定した新たな終点における終点位置及び終点姿勢とに基づいて連続位置決め軌道を再生成する。また、ロボット制御部３６は、当該連続位置決め軌道に基づいて関節速度曲線を再生成する。ステップＳ１７０における当該連続位置決め軌道及び当該関節速度曲線の生成方法については、ステップＳ１５０における連続位置決め軌道及び関節速度曲線の生成方法と同様であるため説明を省略する。終点時間は、第１関節の動作を連続位置決め動作から連続経路動作に切り替えるタイミングの一例である。
【００６５】
図６に示した曲線Ｆ３は、ロボット制御部３６により再生成された関節速度曲線であって関節Ｊ４の関節速度曲線の一例である。図６に示したように、ロボット制御部３６が終点時間ＴＥ１１を終点時間ＴＥ１２に変化させた結果として、関節Ｊ４の速度は、始点時間ＴＳ１１から終点時間ＴＥ１２の時間帯において所定閾値を超えていない。
ステップＳ１７０において連続位置決め軌道の再生成を行った後、ロボット制御部３６は、ステップＳ１６０に遷移し、再び第１関節のうちの少なくとも１つの速度が所定閾値以上となる時間帯があるか否かを判定する。なお、ステップＳ１７０において現在の終点時間から所定時間経過した時間を新たな終点時間としたにも拘らず、再びステップＳ１６０において当該時間帯があると判定された場合、ロボット制御部３６は、ステップＳ１７０において当該終点時間から更に所定時間経過した時間を新たな終点時間として特定する。すなわち、ステップＳ１６０〜ステップＳ１７０を繰り返すことにより、ロボット制御部３６は、連続位置決め軌道に基づいて動作させる第１関節の速度を、所定閾値未満の速度に制限することができる。
【００６６】
一方、ステップＳ１６０において第１関節のうちの少なくとも１つの速度が所定閾値以上となる時間帯がないと判定した場合（ステップＳ１６０−ＮＯ）、ロボット制御部３６は、第１関節に連続位置決め動作を行わせ始め、連続経路軌道と異なる軌道に沿って制御点Ｔを移動させる（ステップＳ１８０）。ある関節の連続位置決め動作は、当該関節の回動角が連続位置決め軌道に沿って回動する動作のことである。より具体的には、ある関節の連続位置決め動作は、始点から制御点Ｔが移動し始めてからの経過時間に応じて、当該関節の回動角をステップＳ１５０又はステップＳ１７０において算出した第２回動角に一致させる動作のことである。すなわち、ロボット制御部３６は、ステップＳ１８０において、第１関節の動作を連続経路動作から連続位置決め動作に切り替える。
【００６７】
また、ステップＳ１８０の処理において、ロボット制御部３６は、第２関節の動作をステップＳ１３０において開始した連続経路動作に保持させたまま、制御点Ｔを移動させる。この際、ロボット制御部３６は、図７に示したように、第２関節の速度を所定の第２閾値未満に制限する。図７は、第２関節のうちの１つである関節Ｊ２の速度の変化の一例を示す図である。なお、関節Ｊ１及び関節Ｊ３については、ロボット制御部３６が、以下において説明する関節Ｊ２に行わせる動作と同様の動作を行わせるため説明を省略する。
【００６８】
図７に示したグラフの横軸は、第１教示点から制御点Ｔが移動し始めてから第２教示点に一致するまでの経過時間を表す。また、当該グラフの縦軸は、関節Ｊ２の速度を表す。当該グラフの曲線Ｆ４は、関節Ｊ２の速度の変化を表すグラフの一例である。図７に示した速度Ｓ２は、この一例における所定の第２閾値である。図７に示した時間Ｔ２１は、ステップＳ１３０の処理が開始された時間、すなわち第１教示点から制御点Ｔが移動し始めた時間である。また、時間Ｔ２２は、制御点Ｔが第２教示点に一致する時間である。また、時間ＴＳ２１は、関節Ｊ２の速度が制限され始めた時間である。また、時間ＴＥ２１は、関節Ｊ２の速度の制限が解除された時間である。図７に示した時間ＴＳ２１から時間ＴＥ２１までの時間帯では、ロボット制御部３６は、関節Ｊ２の速度を速度Ｓ２未満に制限している。このため、図７に示した例では、曲線Ｆ４は、当該時間帯において関節Ｊ２の速度が速度Ｓ２未満に収まっている。
【００６９】
このように、ステップＳ１８０において第１関節に連続位置決め動作を行わせ始めるとともに第２関節の速度を制限し始めた後、ロボット制御部３６は、制御点Ｔを移動させる毎に、ロボット２０の姿勢が特異姿勢から遠ざかったか否かを判定する（ステップＳ１９０）。この一例において、ロボット制御部３６は、制御点Ｔが終点と一致した場合、ロボット２０の姿勢が特異姿勢から遠ざかったと判定する。なお、ロボット制御部３６は、これに代えて、制御点Ｔを移動させる毎に、関節Ｊ５の回動角及び関節Ｊ４の速度を特定し、特定した当該回動角及び当該速度に基づいて前述の判定条件が満たされなくなったか否かを判定し、当該判定条件が満たされなくなった場合にロボット２０の姿勢が特異姿勢から遠ざかったと判定する等の他の条件によってロボット２０の姿勢が特異姿勢から遠ざかったか否かを判定する構成であってもよい。
【００７０】
ロボット２０の姿勢が特異姿勢から遠ざかっていないと判定した場合（ステップＳ１９０−ＮＯ）、ロボット制御部３６は、ステップＳ１８０において開始した動作によって制御点Ｔを移動させた後、再びステップＳ１９０においてロボット２０の姿勢が特異姿勢から遠ざかったか否かを判定する。一方、ロボット２０の姿勢が特異姿勢から遠ざかったと判定した場合（ステップＳ１９０−ＹＥＳ）、ロボット制御部３６は、ステップＳ１２０において生成した連続経路軌道に基づいて、第１関節の動作を連続位置決め動作から連続経路動作に切り替える（ステップＳ２００）。すなわち、ロボット制御部３６は、ステップＳ２００において、連続経路動作による制御点Ｔの移動を再開する。具体的には、ロボット制御部３６は、終点から第２教示点まで制御点Ｔを移動させる際、ステップＳ１２０において生成した連続経路軌道に基づく連続経路動作を関節Ｊ１〜関節Ｊ６のそれぞれに行わせる。そして、ロボット制御部３６は、ステップＳ１４０に遷移し、再びロボット２０の姿勢が特異姿勢に近づいたか否かを判定する。
【００７１】
一方、ステップＳ１４０においてロボット２０の姿勢が特異姿勢に近づいていないと判定した場合（ステップＳ１４０−ＮＯ）、ロボット制御部３６は、制御点Ｔが第２教示点に一致したか否かを判定する（ステップＳ２１０）。制御点Ｔが第２教示点に一致していないと判定した場合（ステップＳ２１０−ＮＯ）、ロボット制御部３６は、ステップＳ１４０に遷移し、再びロボット２０の姿勢が特異姿勢に近づいたか否かを判定する。一方、制御点Ｔが第２教示点に一致したと判定した場合（ステップＳ２１０−ＹＥＳ）、ロボット制御部３６は、処理を終了する。
【００７２】
以上のように、ロボット制御装置３０は、連続経路動作時にロボット２０の姿勢が特異姿勢に近づいた場合、複数の関節のうちの一部の関節である第１関節に連続経路動作とは異なる動作を行わせ、複数の関節のうちの第１関節と異なる第２関節の速度を制限する。これにより、ロボット制御装置３０は、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業をロボット２０に行わせる時間を短縮することができる。
【００７３】
なお、ロボット制御装置３０は、連続経路動作時にロボット２０の姿勢が特異姿勢に近づいた場合、複数の関節のうちの少なくとも一部の関節に連続経路動作とは異なる動作を行わせ、当該関節の速度を制限する構成であってもよい。この場合、例えば、ロボット制御装置３０は、ステップＳ１８０の処理において、関節Ｊ１〜関節Ｊ６のそれぞれに連続位置決め動作を行わせ始め、連続経路軌道と異なる軌道に沿って制御点Ｔを移動させる。また、当該場合、ロボット制御装置３０は、ステップＳ１７０における連続位置決め軌道の再生成により、関節Ｊ１〜関節Ｊ６それぞれの速度を所定閾値未満に制限する。これにより、ロボット制御装置３０は、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業をロボット２０に行わせる時間を短縮することができる。
【００７４】
また、ロボット制御装置３０は、ユーザーから予め受け付けた操作に基づいて、関節Ｊ１〜関節Ｊ６のうちの当該操作に応じた関節を第１関節として特定し、関節Ｊ１〜関節Ｊ６のうちの第１関節とは異なる関節を第２関節として特定する構成であってもよい。すなわち、ロボット制御装置３０は、当該操作に基づいて、ロボット２０の姿勢が特異姿勢に近づいた場合に連続位置決め動作を行わせる関節を特定する構成であってもよく、当該操作に基づいて当該場合に速度を制限する関節を特定する構成であってもよい。
【００７５】
また、ロボット制御装置３０は、第１関節に連続位置決め動作を行わせている時間帯において、第２関節に補正された連続経路動作を行わせる構成であってもよい。補正された連続経路動作は、当該時間帯における第２関節の回動角を、制御点Ｔが連続経路軌道に沿って移動するように補正した第１回動角に一致させる動作のことである。このような補正を行う方法は、従来から知られている方法であってもよく、これから開発される方法であってもよいため説明を省略する。
【００７６】
＜制御点の速度と第１関節及び第２関節の速度との関係＞
以下、図８を参照し、制御点Ｔの速度と第１関節及び第２関節の速度との関係について説明する。図８は、制御点Ｔの速度と第１関節及び第２関節の速度との関係を例示する図である。図８に示したグラフのうちの上段の３つのグラフであるグラフＧ１〜グラフＧ３のそれぞれは、経過時間に応じた関節Ｊ４の速度の変化を表す図である。グラフＧ１〜グラフＧ３のそれぞれの横軸は、経過時間を表す。また、グラフＧ１〜グラフＧ３のそれぞれの縦軸は、関節Ｊ４の速度を表す。
【００７７】
グラフＧ１は、第１関節及び第２関節の両方に連続経路動作を行わせている時間帯において制御点Ｔを速度Ｖ１によって移動させた場合の関節Ｊ４の速度の変化を表すグラフである。また、グラフＧ２は、当該時間帯において制御点Ｔを速度Ｖ２によって移動させた場合の関節Ｊ４の速度の変化を表すグラフである。また、グラフＧ３は、当該時間帯において制御点Ｔを速度Ｖ３によって移動させた場合の関節Ｊ４の速度の変化を表すグラフである。ここで、速度Ｖ１は、速度Ｖ２及び速度Ｖ３よりも遅い速度であり、速度Ｖ２は、速度Ｖ３よりも遅い速度である。また、グラフＧ１〜グラフＧ３のそれぞれにおける速度Ｓ３１は、前述の所定閾値である。
【００７８】
グラフＧ１〜グラフＧ３を比較することにより、制御点Ｔの速度が速くなるほど、関節Ｊ４が連続位置決め動作を行う時間帯における関節Ｊ４の最大速度が速くなることが分かる。また、制御点Ｔの速度を速くすることによって当該時間帯における関節Ｊ４の最大速度が速度Ｓ３１を超える場合、前述したようにロボット制御装置３０が終点時間を遅くしていることが分かる。具体的には、図８に示した例では、グラフＧ２において関節Ｊ４の最大速度が速度Ｓ３１を超えていないため、始点時間と終点時間との間の時間は、時間Ｔ３１である。一方、当該例では、グラフＧ３において関節Ｊ４の最大速度が速度Ｓ３１を超えないようにロボット制御装置３０が終点時間を遅くしており、始点時間と終点時間との間の時間は、時間Ｔ３１よりも長い時間Ｔ３２となっている。
【００７９】
図８に示したグラフのうちの下段の３つのグラフであるグラフＧ４〜グラフＧ６のそれぞれは、経過時間に応じた関節Ｊ２の速度の変化を表す図である。グラフＧ４〜グラフＧ６のそれぞれの横軸は、経過時間を表す。また、グラフＧ４〜グラフＧ６のそれぞれの縦軸は、関節Ｊ２の速度を表す。
【００８０】
グラフＧ４は、第１関節及び第２関節の両方に連続経路動作を行わせている時間帯において制御点Ｔを速度Ｖ１によって移動させた場合の関節Ｊ２の速度の変化を表すグラフである。また、グラフＧ５は、当該時間帯において制御点Ｔを速度Ｖ２によって移動させた場合の関節Ｊ２の速度の変化を表すグラフである。また、グラフＧ６は、当該時間帯において制御点Ｔを速度Ｖ３によって移動させた場合の関節Ｊ６の速度の変化を表すグラフである。また、グラフＧ４〜グラフＧ６のそれぞれにおける速度Ｓ３２は、前述の所定の第２閾値である。
【００８１】
グラフＧ４〜グラフＧ６を比較することにより、制御点Ｔの速度が速くなるほど、関節Ｊ２の最大速度が速くなることが分かる。しかし、関節Ｊ２の速度は、この一例において、最大速度が速度Ｓ３２に制限されているため、図８に示した時間帯Ｔ３３及び時間帯Ｔ３４において速度がおおよそ速度Ｓ３２になっている。なお、図８に示したように第２関節の速度が速度Ｓ３２に制限された場合、第２関節の速度の制限に応じて第１関節の速度も遅くなるが、第１関節の速度の変化を表す曲線の形状は変化しない。このため、ロボット制御装置３０は、ロボット２０の姿勢が特異姿勢に近づいた場合、第１関節の動作を連続位置決め動作に切り替えるとともに、第２関節の速度を制限することにより、制御点Ｔの速度を速くした場合であっても、関節Ｊ１〜関節Ｊ６それぞれの速度が限界速度を超えてしまうことを抑制することができる。
【００８２】
以上のように、ロボット２０は、連続経路動作時にロボット２０の姿勢が特異姿勢（この一例において、第４姿勢）に近づいた場合、第１関節（この一例において、関節Ｊ４〜関節Ｊ６のそれぞれ）が連続経路動作とは異なる動作を行い、第２関節（この一例において、関節Ｊ１〜関節Ｊ３のそれぞれ）の速度が制限される。これにより、ロボット２０は、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００８３】
また、ロボット２０は、ロボット２０の姿勢が特異姿勢に近づいた場合、第１関節の動作を連続経路動作から連続位置決め動作に切り替える。これにより、ロボット２０は、連続位置決め動作によって、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００８４】
また、ロボット２０は、ロボット２０の姿勢が特異姿勢から遠ざかった場合、第１関節の動作を連続位置決め動作から連続経路動作に切り替える。これにより、ロボット２０は、ロボット２０の姿勢に応じて第１関節の動作を連続経路動作と連続位置決め動作とのいずれかに切り替えることにより、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００８５】
また、ロボット２０は、連続位置決め動作時における第１関節の速度の推定値が所定閾値以上であると判定された場合、第１関節の動作を連続位置決め動作から連続経路動作に切り替えるタイミングを遅らせる。これにより、ロボット２０は、第１関節の速度が限界速度を超えてしまうことを抑制するとともに、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００８６】
また、ロボット２０は、ロボット２０の姿勢が特異姿勢に近づいた場合、第２関節の動作を連続経路動作のまま保持する。これにより、ロボット２０は、第２関節の動作を連続経路動作に保持したまま、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００８７】
また、ロボット２０は、連続経路動作時にロボット２０の姿勢が特異姿勢に近づいた場合、複数の関節のうちの少なくとも一部の関節（例えば、関節Ｊ１〜関節Ｊ６のそれぞれ）が連続経路動作とは異なる動作を行い、当該関節の速度が制限される。これにより、ロボット２０は、ロボット２０の姿勢が特異姿勢に近づく動作を含む作業を行う時間を短縮することができる。
【００８８】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００８９】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００９０】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００９１】
１…ロボットシステム、２０…ロボット、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…ロボット制御部
【図１】
2017185598.tif 000003
【図２】
2017185598.tif 000004
【図３】
2017185598.tif 000005
【図４】
2017185598.tif 000006
【図５】
2017185598.tif 000007
【図６】
2017185598.tif 000008
【図７】
2017185598.tif 000009
【図８】
2017185598.tif 000010