(57)【要約】  ロボットの動作をできるだけコンパクトにするために、ロボット制御装置は、据え付け台側において構造体を回旋させる回旋軸であるＪ１軸をＪ１軸の目標位置における角度J1eまで駆動するとともに、構造体を屈曲したり伸展したりする屈伸軸である、Ｊ２軸、Ｊ３軸、およびＪ５軸の中心軸が互いに平行になるように、構造体を回旋させるＪ４軸を駆動し（Ｓ３〜Ｓ８）、その後、Ｊ４軸を駆動することなくＪ２軸、Ｊ３軸、およびＪ５軸を夫々の軸の目標位置における角度J2e、J3e、J5eまで駆動し（Ｓ９、Ｓ１０）、目標位置における角度に至っていないＪ４軸を目標位置における角度J4eまで駆動する（Ｓ１１）。
2015162757.tif 000002
【特許請求の範囲】
【請求項１】
接続されている構造体を回旋させる２以上の第１軸と、接続されている構造体を屈曲したり伸展したりする２以上の第２軸と、を含む複数の軸であって、前記複数の軸のうちの据え付け台に最も近い側に備えられるＪ１軸は前記第１軸である前記複数の軸を備えるロボットを制御する、ロボット制御装置であって、
前記ロボットの制御点の目標位置を取得したのち、
前記Ｊ１軸を前記Ｊ１軸の前記目標位置における互いに接続されている構造体の角度まで駆動する第１制御と、
前記複数の軸のうちのすべての第２軸の中心軸が互いに平行になるように、前記複数の軸から前記Ｊ１軸を除く軸のうちの一部または全部の第１軸を駆動する第２制御と、
前記第１制御および前記第２制御の実行後、前記第２制御によって駆動された第１軸を駆動することなく前記複数の軸のうちの全部の第２軸を夫々の軸の前記目標位置における角度まで駆動する第３制御と、
前記第３制御の実行後、前記複数の軸のうち前記目標位置における互いに接続されている構造体の角度に到達していない軸を前記目標位置における互いに接続されている構造体の角度まで駆動する第４制御と、
を実行する処理部を備えることを特徴とするロボット制御装置。
【請求項２】
前記複数の軸は、前記据え付け台に最も近い側から前記Ｊ１軸、Ｊ２軸、Ｊ３軸、Ｊ４軸、Ｊ５軸、およびＪ６軸からなる６つの軸であり、
前記Ｊ４軸および前記Ｊ６軸は前記第１軸であり、
前記Ｊ２軸、前記Ｊ３軸、および前記Ｊ５軸は前記第２軸であり、
前記第２制御は、前記Ｊ４軸を駆動する制御である、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
ユーザプログラムを予め記憶する記憶部をさらに備え、
前記処理部は、前記ユーザプログラムから前記目標位置を読み取る、
ことを特徴とする請求項１または請求項２に記載のロボット制御装置。
【請求項４】
接続されている構造体を回旋させる２以上の第１軸と、接続されている構造体を屈曲したり伸展したりする２以上の第２軸と、を含む複数の軸であって、前記複数の軸のうちの据え付け台に最も近い側に備えられるＪ１軸は前記第１軸である前記複数の軸を備えるロボットをロボット制御装置が制御する、ロボット制御方法であって、
前記ロボットの先端の制御点の目標位置を取得する取得ステップと、
前記Ｊ１軸を前記Ｊ１軸の前記目標位置における互いに接続されている構造体の角度まで駆動する第１制御ステップと、
前記複数の軸のうちのすべての第２軸の中心軸が互いに平行になるように、前記複数の軸から前記Ｊ１軸を除く軸のうちの一部または全部の第１軸を駆動する第２制御ステップと、
前記第１制御ステップおよび前記第２制御ステップの実行後、前記第２制御ステップによって駆動された第１軸を駆動することなく前記複数の軸のうちの全部の第２軸を夫々の軸の前記目標位置における互いに接続されている構造体の角度まで駆動する第３制御ステップと、
前記第３制御ステップの実行後、前記複数の軸のうち前記目標位置における互いに接続されている構造体の角度に到達していない軸を前記目標位置における互いに接続されている構造体の角度まで駆動する第４制御ステップと、
を備えることを特徴とするロボット制御方法。
【請求項５】
前記複数の軸は、前記据え付け台に最も近い側から前記Ｊ１軸、Ｊ２軸、Ｊ３軸、Ｊ４軸、Ｊ５軸、およびＪ６軸からなる６つの軸であり、
前記Ｊ４軸および前記Ｊ６軸は前記第１軸であり、
前記Ｊ２軸、前記Ｊ３軸、および前記Ｊ５軸は前記第２軸であり、
前記第２制御ステップは、前記Ｊ４軸を駆動するステップである、
ことを特徴とする請求項４に記載のロボット制御方法。
【請求項６】
前記第１制御ステップは、ユーザプログラムから前記目標位置を読み取るステップである、
ことを特徴とする請求項４または請求項５に記載のロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを制御するロボット制御装置およびロボット制御方法に関する。
【背景技術】
【０００２】
従来、ＦＡ分野においてはアームを有するロボットが使用される。アームは、夫々サーボモータによって駆動される複数の軸が複数のアーム部材を用いて線形に接続されて構成される。アームの先端には、ワークを把持したりワークを加工する工具が接続されたりする手先機構（以降、単に手先という）が接続されている。【０００３】
ここで、ロボットの軌道が特異点に近ければ近いほど、ロボットを構成するいずれかの軸を急激に加減速せしめる必要がある場合がある（例えば特許文献１および特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−４５４８号公報
【特許文献２】特開２００６−２２７７２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
さらに、ロボットは、手先が移動する軌道が特異点に近い場合には、手先の位置および手先の向きを制御するためにアームの姿勢を多くの方向にめまぐるしく変化させることで、結果として動作が大きくなってしまうことがある。このため、ロボットの動きをできるだけコンパクトにすることが要望される。例えば移動関節角度を小さくすることで、ロボットの動きがコンパクトになる。【０００６】
本発明は、上記に鑑みてなされたものであって、ロボットの動きをできるだけコンパクトにすることができるロボット制御装置およびロボット制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、接続されている構造体を回旋させる２以上の第１軸と、接続されている構造体を屈曲したり伸展したりする２以上の第２軸と、を含む複数の軸であって、前記複数の軸のうちの据え付け台に最も近い側に備えられるＪ１軸は前記第１軸である前記複数の軸を備えるロボットを制御する、ロボット制御装置であって、前記ロボットの制御点の目標位置を取得したのち、前記Ｊ１軸を前記Ｊ１軸の前記目標位置における互いに接続されている構造体の角度まで駆動する第１制御と、前記複数の軸のうちのすべての第２軸の中心軸が互いに平行になるように、前記複数の軸から前記Ｊ１軸を除く軸のうちの一部または全部の第１軸を駆動する第２制御と、前記第１制御および前記第２制御の実行後、前記第２制御によって駆動された第１軸を駆動することなく前記複数の軸のうちの全部の第２軸を夫々の軸の前記目標位置における角度まで駆動する第３制御と、前記第３制御の実行後、前記複数の軸のうち前記目標位置における互いに接続されている構造体の角度に到達していない軸を前記目標位置における互いに接続されている構造体の角度まで駆動する第４制御と、を実行する処理部を備えることを特徴とする。
【発明の効果】
【０００８】
本発明にかかるロボット制御装置は、特異点の近傍で制御を行う場合であっても、最もロボットの動作が大きくなる第３制御において各アーム部材が同一直線上から外れないようにロボットを制御することができるので、ロボットの動きをコンパクトにすることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態のロボット制御装置が適用される生産システムを示す図である。
【図２】図２は、ロボットの構成を示す図である。
【図３】図３は、ロボット制御装置の構成例を示す図である。
【図４】図４は、実施の形態のロボット制御装置の動作を説明するフローチャートである。
【図５】図５は、始点位置と終点位置との位置関係の例を示す図である。
【図６】図６は、コンパクト動作モードによる軌道を説明する図である。
【図７】図７は、コンパクト動作モードによる軌道を説明する図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる実施の形態のロボット制御装置およびロボット制御方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態．
図１は、実施の形態のロボット制御装置が適用される生産システムを示す図である。生産システム１は、ロボット１００と実施の形態のロボット制御装置２００とが伝送路３００を介して接続されて構成される。
【００１２】
ここでは一例として、ロボット１００は、６軸垂直多関節ロボットであるものとする。図２は、ロボット１００の構成を示す図である。ロボット１００は、据え付け台１０１、Ｊ１軸１０２、Ｊ２軸１０３、Ｊ３軸１０４、Ｊ４軸１０５、Ｊ５軸１０６、Ｊ６軸１０７、アーム部材１１０、アーム部材１１１、アーム部材１１２、アーム部材１１３、および手先１２０を備える。Ｊ１軸１０２、Ｊ２軸１０３、Ｊ３軸１０４、Ｊ４軸１０５、Ｊ５軸１０６、およびＪ６軸１０７を据え付け台１０１側から手先１２０側にかけてこの順番にアーム部材を介して接続されている。
【００１３】
具体的には、Ｊ１軸１０２は、据え付け台１０１とアーム部材１１０とを接続する。Ｊ２軸１０３は、アーム部材１１０とアーム部材１１１とを接続する。Ｊ３軸１０４は、アーム部材１１１とアーム部材１１２とを接続する。Ｊ４軸１０５は、アーム部材１１２とアーム部材１１３とを接続する。Ｊ５軸１０６は、アーム部材１１３とＪ６軸１０７とを接続する。Ｊ６軸１０７は、Ｊ５軸１０６と手先１２０とを接続する。Ｊ１軸、Ｊ４軸、およびＪ６軸は回旋軸であり、Ｊ２軸、Ｊ３軸、およびＪ５軸は屈伸軸である。ここで、回旋軸は、その軸に接続されている構造体（即ち据え付け台１０１、アーム部材、軸、または手先１２０）を回旋させる軸をいう。回旋させるとは、その軸に接続されている構造体をその軸によって捻ることである。屈伸軸は、その軸に接続されている構造体をその軸を支点として屈曲したり伸展したりする軸をいう。
【００１４】
また、Ｊ１軸１０２の中心軸の向きとＪ２軸１０３の中心軸の向きとは直交する。Ｊ２軸１０３の中心軸とＪ３軸１０４の中心軸とは平行である。Ｊ３軸１０４の中心軸の向きとＪ４軸１０５の中心軸の向きとは直交する。Ｊ４軸１０５の中心軸の向きとＪ５軸１０６の中心軸の向きとは直交する。Ｊ５軸１０６の中心軸の向きとＪ６軸１０７の中心軸の向きとは直交する。
【００１５】
また、ロボット１００は、Ｊ１軸１０２、Ｊ２軸１０３、Ｊ３軸１０４、Ｊ４軸１０５、Ｊ５軸１０６、およびＪ６軸１０７の夫々について、サーボモータとサーボアンプとからなるサーボシステムを具備する（図示せず）。各サーボシステムは、駆動指令に基づき、対応する軸を駆動する。
【００１６】
また、ロボット１００は、先端に制御点を備える。制御点とは、ユーザプログラム（後述するロボットプログラム２０７）によって位置および向きが制御される点である。ここでは制御点は手先１２０であるものとして説明するが、制御点は手先１２０によって保持されるワークまたは工具であってもよい。
【００１７】
ロボット制御装置２００は、各サーボアンプに駆動指令を供給する。駆動指令は、例えば、対応する軸の目標角度を指示する角度指令、対応する軸の目標角速度を指示する角速度指令、モータ位置を指示する位置指令、または、モータ速度を指示する速度指令である。なお、各サーボシステムのうちのサーボアンプは、ロボット１００ではなくロボット制御装置２００に具備され、各サーボアンプはサーボモータに伝送路３００を介して駆動電流を供給するようにしてもよい。
【００１８】
図３は、ロボット制御装置２００の構成例を示す図である。ロボット制御装置２００は、演算装置２０１、メインメモリ２０２、不揮発性メモリ２０３、Ｉ／Ｏインタフェース２０４、およびバス２０５を備えている。バス２０５は、演算装置２０１、メインメモリ２０２、不揮発性メモリ２０３、およびＩ／Ｏインタフェース２０４を相互に接続する。
【００１９】
演算装置２０１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。メインメモリ２０２は、不揮発性メモリ２０３よりも高速なアクセスが可能なメモリである。メインメモリ２０２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）によって構成される。不揮発性メモリ２０３は、各種データの保存領域として用いられるメモリである。不揮発性メモリ２０３は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、光ディスク、磁気ディスク、着脱可能なメモリデバイス、またはこれらの組み合わせによって構成される。Ｉ／Ｏインタフェース２０４は、伝送路３００に接続するためのインタフェース装置である。
【００２０】
不揮発性メモリ２０３は、ファームウェアプログラム２０６およびロボットプログラム２０７を予め記憶する。ロボットプログラム２０７は、ロボット１００の動作手順を記述したユーザプログラムである。ロボットプログラム２０７は、ユーザによって作成される。また、ファームウェアプログラム２０６は、ロボットプログラム２０７を実行するための環境を提供するシステムプログラムであり、例えばロボット１００またはロボット制御装置２００の製造者によって作成される。なお、ロボットプログラム２０７は、バッテリで保持される揮発性メモリに記憶されてもよい。
【００２１】
演算装置２０１は、ファームウェアプログラム２０６を不揮発性メモリ２０３からメインメモリ２０２にロードする。そして、演算装置２０１は、メインメモリ２０２にロードされたファームウェアプログラム２０６に基づいて、ロボットプログラム２０７を実行する処理部として機能する。処理部としての演算装置２０１は、ロボットプログラム２０７を解釈し、ロボットプログラム２０７を解釈した結果に基づいて各サーボアンプに対する駆動指令を算出する。算出された駆動指令は、Ｉ／Ｏインタフェース２０４を介してロボット１００に送信される。
【００２２】
なお、処理部としての演算装置２０１は、各サーボシステムから送られてくるエンコーダ値に基づいて駆動指令を算出してもよい。エンコーダ値は、例えば、角度検出値、角速度検出値、モータ位置の検出値、またはモータ速度の検出値である。
【００２３】
ここで、Ｊ１軸１０２の中心軸とＪ６軸１０７の中心軸とが一直線上に並ぶような制御点は、特異点とされる。特異点とは、制御点の位置および向きから各軸の角度が一意に定まらないような、制御点の位置および向きをいう。例えばＪ１軸１０２の中心軸とＪ６軸１０７の中心軸とが一直線上に並ぶ場合、Ｊ１軸１０２およびＪ６軸１０７の角度は、任意の値をとりうる。このような特異点の近傍を制御点としての手先１２０が通過する際には、各軸が急激に動かざるを得ない場合がある。具体的には、手先１２０の軌道がＪ１軸１０２の中心軸を通る直線に近ければ近いほど、手先１２０がその軌道を通過する際のＪ１軸１０２の駆動速度が速くなり、かつ、手先１２０の位置および向きを維持するために他の軸（Ｊ２軸１０３、Ｊ３軸１０４、Ｊ４軸１０５、Ｊ５軸１０６、およびＪ６軸１０７のうちの一部または全部）の動作が急激に変化する。手先１２０が直線軌道上をゆっくり移動する場合であっても、Ｊ１軸が大きく動いたりすることによって、手先１２０の移動中に各アーム部材の位置および向きがめまぐるしく変化する場合がある。
【００２４】
なお、以降、特に断りがない場合、位置とは、向きをも含むものとする。
【００２５】
ロボットプログラム２０７に使用可能な記述として、コンパクト動作モードと通常モードとが定義されている。通常モードとは、始点位置から終点位置まで直線的に手先１２０を移動させるモードであり、コンパクト動作モードとは、通常モードに比べてロボット１００の動作がコンパクトになるように始点位置から終点位置まで手先１２０を移動させるモードである。処理部は、ロボットプログラム２０７に記述されている移動指令が通常モードで手先１２０を移動させるモードであるかコンパクト動作モードで手先１２０を移動させるモードであるかによって、異なる軌道を演算する。
【００２６】
図４は、実施の形態のロボット制御装置２００の動作を説明するフローチャートである。
【００２７】
処理部は、ロボットプログラム２０７から手先１２０の移動指令を解釈すると、その移動指令のモードとしてコンパクト動作モードが指令されているか否かを判定する（Ｓ１）。コンパクト動作モードが指令されていない場合（Ｓ１、Ｎｏ）、即ち通常モードが指令された場合、処理部は、始点位置から終点位置までを直線補間した軌道にそって手先１２０を移動させ（Ｓ２）、移動指令にかかる動作を終了する。
【００２８】
ロボットプログラム２０７による移動指定は、手先１２０の目標位置の指定を少なくとも含む。処理部は、移動指令の実行開始前の位置を始点位置とし、移動指令によって指定される目標位置を終点位置とする。即ち、この例によれば、処理部は、ロボットプログラム２０７から目標位置を取得する。
【００２９】
Ｓ２の処理においては、処理部は、終点位置の座標および手先１２０の向きに基づいて、終点位置における各軸の角度を演算する。終点位置における各軸の角度を、（J1e,J2e,J3e,J4e,J5e,J6e）と表記する。この数列の各要素は、先頭から、Ｊ１軸１０２の角度、Ｊ２軸１０３の角度、Ｊ３軸１０４の角度、Ｊ４軸１０５の角度、Ｊ５軸１０６の角度、Ｊ６軸１０７の角度を示している。また、角度の単位を「度（deg）」とする。（J1s,J2s,J3s,J4s,J5s,J6s）は、始点位置における各軸の角度である。各要素がいずれの軸の角度を示すかは、終点位置における各軸の角度と同様である。始点位置における各軸の角度は、直前に実行された移動指令の目標位置に基づいて既に演算されているものが使用される。また、エンコーダ値として角度検出値が取得可能である場合には、始点位置における各軸の角度としてエンコーダ値を使用することができる。また、エンコーダ値として角度検出値以外の値が取得可能である場合には、エンコーダ値から始点位置における各軸の角度を演算することが可能である。
【００３０】
Ｓ２においては、処理部は、始点位置（J1s,J2s,J3s,J4s,J5s,J6s）から終点位置（J1e,J2e,J3e,J4e,J5e,J6e）までを、手先１２０の位置が直線的に移動するように補間する。補間の間隔は、例えばロボット１００に駆動指令を供給する間隔に等しい。処理部は、補間により生成された位置毎に駆動指令を生成し、生成した駆動指令を順次ロボット１００に供給する。
【００３１】
図５は、始点位置と終点位置との位置関係の例を示す図である。この図は、ロボット１００を上方からＪ１軸１０２の中心軸の方向に下向きに見たときのロボット１００の状態を示している。アーム部材１１１、アーム部材１１２、およびアーム部材１１３は、ロボット１００を上方から見た場合、同一の直線上に並んで見える。また、この図の例によれば、手先１２０にはワーク４００が把持されている。そして、始点位置と終点位置との間のＪ１軸１０２の角度差が１８０度（deg）から若干ずれている。Ｓ２の処理によれば、図５の点線の矢印に示すように、始点位置から終点位置まで直線的に手先１２０（およびワーク４００）が移動せしめられる。この軌道によれば、手先１２０は、特異点の近傍を通過する。手先１２０が特異点の近傍を通過する際には、手先１２０の向きを制御しながら位置を制御するため、手先１２０の移動速度に対してアーム部材１１１、アーム部材１１２、およびアーム部材１１３の位置および向きがめまぐるしく変化する。
【００３２】
コンパクト動作モードが指令された場合（Ｓ１、Ｙｅｓ）、処理部は、Ｓ２の処理に比べてロボット１００の動作をコンパクトにするために、手先１２０が通過する２つの中継点（第１中間位置および第２中間位置）を生成する。
【００３３】
具体的には、処理部は、まず、始点位置におけるＪ４軸１０５の角度J4sが−９０度よりも小さいか否かを判定する（Ｓ３）。Ｊ４軸１０５の角度J4sが−９０度よりも小さい場合（Ｓ３、Ｙｅｓ）、処理部は、位置（J1e,J2s,J3s,-180,J5s,J6s）を第１中間位置に設定する（Ｓ４）。始点位置におけるＪ４軸１０５の角度J4sが−９０度よりも大きい場合（Ｓ３、Ｎｏ）、処理部は、始点位置におけるＪ４軸１０５の角度J4sが９０度よりも大きいか否かをさらに判定する（Ｓ５）。Ｊ４軸１０５の角度J4sが９０度よりも大きい場合（Ｓ５、Ｙｅｓ）、処理部は、位置（J1e,J2s,J3s,180,J5s,J6s）を第１中間位置に設定する（Ｓ６）。Ｊ４軸１０５の角度J4sが９０度よりも小さい場合（Ｓ５、Ｎｏ）、処理部は、位置（J1e,J2s,J3s,0,J5s,J6s）を第１中間位置に設定する（Ｓ７）。
【００３４】
Ｓ４、Ｓ６、またはＳ７の処理の後、処理部は、始点位置から第１中間位置までを直線補間した軌道に沿って手先１２０を移動させる（Ｓ８）。
【００３５】
Ｓ８の処理は、Ｊ１軸１０２を目標位置におけるＪ１軸１０２の角度J1eまで駆動する第１制御を含んでいる。また、Ｓ８の処理は、Ｊ４軸１０５を、角度J4sから０度、１８０度、または−１８０度まで駆動する第２制御を含んでいる。
【００３６】
前述したように、Ｊ２軸１０３、Ｊ３軸１０４、およびＪ５軸１０６は、すべて屈伸軸であり、Ｊ２軸１０３の中心軸とＪ３軸１０４の中心軸とは平行である。Ｊ３軸１０４とＪ５軸１０６とは間に回旋軸であるＪ４軸１０５を介在するが、Ｊ４軸１０５を０度、１８０度、または−１８０度に駆動することによって、Ｊ２軸１０３の中心軸と、Ｊ３軸１０４の中心軸と、Ｊ５軸１０６の中心軸とが平行になる。
【００３７】
なお、Ｊ２軸１０３の中心軸と、Ｊ３軸１０４の中心軸と、Ｊ５軸１０６の中心軸とを平行にすることができる限り、第１中間位置におけるＪ４軸の角度を任意に設定できる。
【００３８】
また、Ｓ８の処理は、第１制御と第２制御とを同時に行う処理であるが、Ｓ８の処理の代わりに、第１制御と第２制御とが別々に実行されてもよい。第１制御と第２制御とのうちのいずれを先に実行するかは任意である。
【００３９】
手先１２０を第１中間位置に移動した後、処理部は、第１中間位置における各軸の角度のうち、Ｊ２軸１０３、Ｊ３軸１０４、Ｊ５軸１０６、およびＪ６軸１０７の角度を、夫々終点位置における角度J2e、J3e、J5e、J6eに変更することによって、第２中間位置における各軸の角度を演算する（Ｓ９）。そして、処理部は、第１中間位置から第２中間位置までを直線補間した軌道にそって手先１２０を移動させる（Ｓ１０）。
【００４０】
Ｓ１０の処理は、第２制御によって駆動された回旋軸であるＪ４軸１０５を駆動することなくすべての屈伸軸（即ちＪ２軸１０３、Ｊ３軸１０４、およびＪ５軸１０６）を夫々の軸の目標位置における角度J2e、J3e、J5eまで駆動する第３制御に相当する。なお、ここではＳ１０の処理においてＪ６軸１０７が駆動されるものとして説明しているが、Ｊ６軸１０７は前後の処理において角度J6eまで駆動されることでＳ１０の処理においては駆動されなくてもよい。第３制御によって、各屈伸軸の中心軸は互いに平行な関係を保ったまま各屈伸軸が駆動される。
【００４１】
Ｓ１０の処理に続いて、処理部は、Ｊ４軸１０５の角度が終点位置におけるＪ４軸１０５の角度J4eに一致するまでＪ４軸１０５を駆動し（Ｓ１１）、移動指令にかかる動作を終了する。Ｓ１１の処理は、まだ目標位置の角度まで駆動されていない軸であるＪ４軸１０５を、目標位置の角度J4eまで駆動する第４制御に相当する。Ｊ６軸１０７は第４制御において駆動されてもよい。
【００４２】
図６および図７は、コンパクト動作モードによる軌道を説明する図である。状態Ａは、手先１２０が始点位置にある状態を示している。状態Ｂは手先１２０が第１中間位置にある状態を示している。状態Ｃは手先１２０が第２中間位置にある状態を示している。
【００４３】
第１中間位置は、始点位置における各軸の角度のうち、Ｊ１軸１０２の角度が終点位置におけるＪ１軸１０２の角度J1eに変更されるとともにＪ４軸１０５の角度が０度または１８０度または−１８０度に変更されて生成される位置である。Ｊ１軸１０２の角度が終点位置におけるＪ１軸１０２の角度J1eに変更された第１中間位置を経由することによって、図示するように、手先１２０を、Ｊ１軸１０２の中心軸を通る直線の近傍ではなくＪ１軸１０２の中心軸を通る直線上のポイントを通過するように移動させることができる。
【００４４】
また、第１中間位置から第２中間位置までの移動は、支点位置から第１中間位置までの移動および第２中間位置から終点位置までの移動に比べて、移動距離が大きい。その第１中間位置から第２中間位置までの手先１２０の移動の際には、Ｊ４軸１０５を駆動せず、かつ、Ｊ２軸１０３、Ｊ３軸１０４、およびＪ５軸１０６を駆動することで実行される。したがって、第１中間位置から第２中間位置までの手先１２０の移動の際には、ロボット１００の上面からみてアーム部材１１１、アーム部材１１２、およびアーム部材１１３は、第１中間位置から第２中間位置を結ぶ直線上から外れずに駆動されるので、Ｓ２の処理に比べ、ロボット１００の動作がコンパクトである。
【００４５】
このように、実施の形態によれば、処理部は、ロボット１００の先端の制御点の目標位置を取得したのち、次の第１〜第４制御を実行する。第１制御は、Ｊ１軸１０２をＪ１軸１０２の目標位置における角度J1eまで駆動する制御である。第２制御は、６つの軸のうちのすべての屈伸軸であるＪ２軸１０３、Ｊ３軸１０４、およびＪ５軸１０６の中心軸が平行になるように、Ｊ４軸１０５を駆動する制御である。第３制御は、第２制御によって駆動された回旋軸であるＪ４軸１０５を駆動することなくすべての屈伸軸であるＪ２軸１０３、Ｊ３軸１０４、およびＪ５軸１０６を夫々の軸の目標位置における角度J2e、J3e、J5eまで駆動する制御である。第４制御は、目標位置における角度に至っていない軸を目標位置における角度まで駆動する制御である。第４制御においては、Ｊ４軸１０５が駆動される。Ｊ６軸１０７は、第３制御で駆動されてもよいし、第４制御で駆動されてもよい。これにより、ロボット１００の上面からみてアーム部材１１１、アーム部材１１２、およびアーム部材１１３は、第１中間位置から第２中間位置を結ぶ直線上から外れずに駆動されるので、始点位置から終点位置まで直線的にロボット１００を駆動する場合に比べてロボット１００の動作をコンパクトにすることができるようになる。
【００４６】
なお、以上の説明においては、ロボット１００は、据え付け台１０１側からＪ１軸１０２、Ｊ２軸１０３、Ｊ３軸１０４、Ｊ４軸１０５、Ｊ５軸１０６、およびＪ６軸１０７の６つの軸を有するものとして説明したが、ロボット１００が備える軸の数はこれに限定されない。たとえば、ロボット１００が回旋軸をさらに多く備える場合には、第２制御において、すべての屈伸軸の中心軸が平行になるように、Ｊ１軸１０２を除く軸のうちの一部または全部の回旋軸が駆動される。そして、第４制御の実行前に、Ｊ４軸１０５のほかの回旋軸が目標位置における角度に達していない場合には、その回旋軸は、第４制御において駆動される。また、６つの軸のうちのいずれを回旋軸とするかについては、上記した６軸垂直多関節ロボットの例に限定されない。
【００４７】
また、処理部はロボットプログラム２０７から目標位置を取得するとして説明したが、処理部は目標位置を演算により取得してもよい。たとえば、処理部は、現在位置からロボットプログラム２０７の移動指令によって指令された位置（指令位置）までの経路を複数の区間に分割し、分割された区間ごとに目標位置を演算してもよい。
【００４８】
また、たとえば、処理部は、軌道からＪ１軸１０２の中心軸を通る直線までの距離があらかじめ設定されたしきい値よりも大きい場合には、処理部は、通常モードで動作し、軌道からＪ１軸１０２の中心軸を通る直線までの距離が前記しきい値よりも小さい場合には、コンパクト動作モードにモードを自動的に切り替えて動作するように構成されてもよい。処理部が経路を複数の区間に分割する場合には、たとえば、処理部は、分割された区間ごとにモードの判定を行うようにしてよい。また、モードの判定のためのしきい値は、移動指令によって指令される移動速度に応じて可変に構成されてもよい。たとえば、移動速度が大きい場合には、モードの判定のためのしきい値は大きくなる。また、コンパクト動作モードが指定されている場合には、処理部は、Ｊ１軸１０２の中心軸を通る直線までの距離が最も近くなる区間においてのみコンパクト動作モードで動作し、それ以外の区間では通常モードで動作するようにしてもよい。また、処理部は、分割された区間においてコンパクト動作モードで動作した場合、第２中間位置まで制御した後、第２中間位置から移動指令によって指令された位置までの軌道を再計算するようにしてもよい。
【符号の説明】
【００４９】
１  生産システム、１００  ロボット、１０１  据え付け台、１０２  Ｊ１軸、１０３  Ｊ２軸、１０４  Ｊ３軸、１０５  Ｊ４軸、１０６  Ｊ５軸、１０７  Ｊ６軸、１１０，１１１，１１２，１１３  アーム部材、１２０  手先、２００  ロボット制御装置、２０１  演算装置、２０２  メインメモリ、２０３  不揮発性メモリ、２０４  Ｉ／Ｏインタフェース、２０５  バス、２０６  ファームウェアプログラム、２０７  ロボットプログラム、３００  伝送路、４００  ワーク。
【図１】
2015162757.tif 000003
【図２】
2015162757.tif 000004
【図３】
2015162757.tif 000005
【図４】
2015162757.tif 000006
【図５】
2015162757.tif 000007
【図６】
2015162757.tif 000008
【図７】
2015162757.tif 000009
【手続補正書】
【提出日】平成28年5月25日(2016.5.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、接続されている構造体を回旋させる２以上の第１軸と、接続されている構造体を屈曲したり伸展したりする２以上の第２軸と、を含む複数の軸であって、前記複数の軸のうちの据え付け台に最も近い側に備えられるＪ１軸は前記第１軸である前記複数の軸を備えるロボットを制御する、ロボット制御装置であって、前記ロボットの制御点の移動の手順を記述したロボットプログラムを記憶する記憶部と、前記ロボットプログラムから前記制御点の目標位置を取得し、前記Ｊ１軸を前記Ｊ１軸の前記目標位置における互いに接続されている構造体の角度まで駆動する第１制御と、前記複数の軸のうちのすべての第２軸の中心軸が互いに平行になるように、前記複数の軸から前記Ｊ１軸を除く軸のうちの一部または全部の第１軸を駆動する第２制御と、前記第１制御および前記第２制御の実行後、前記第２制御によって駆動された第１軸を駆動することなく前記複数の軸のうちの全部の第２軸を夫々の軸の前記目標位置における角度まで駆動する第３制御と、前記第３制御の実行後、前記複数の軸のうち前記目標位置における互いに接続されている構造体の角度に到達していない軸を前記目標位置における互いに接続されている構造体の角度まで駆動する第４制御と、を実行する処理部と、を備えることを特徴とする。 
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
接続されている構造体を回旋させる２以上の第１軸と、接続されている構造体を屈曲したり伸展したりする２以上の第２軸と、を含む複数の軸であって、前記複数の軸のうちの据え付け台に最も近い側に備えられるＪ１軸は前記第１軸である前記複数の軸を備えるロボットを制御する、ロボット制御装置であって、
前記ロボットの制御点の移動の手順を記述したロボットプログラムを記憶する記憶部と、
前記ロボットプログラムから前記制御点の目標位置を取得し、
前記Ｊ１軸を前記Ｊ１軸の前記目標位置における互いに接続されている構造体の角度まで駆動する第１制御と、
前記複数の軸のうちのすべての第２軸の中心軸が互いに平行になるように、前記複数の軸から前記Ｊ１軸を除く軸のうちの一部または全部の第１軸を駆動する第２制御と、
前記第１制御および前記第２制御の実行後、前記第２制御によって駆動された第１軸を駆動することなく前記複数の軸のうちの全部の第２軸を夫々の軸の前記目標位置における角度まで駆動する第３制御と、
前記第３制御の実行後、前記複数の軸のうち前記目標位置における互いに接続されている構造体の角度に到達していない軸を前記目標位置における互いに接続されている構造体の角度まで駆動する第４制御と、
を実行する処理部と、
を備えることを特徴とするロボット制御装置。
【請求項２】
前記複数の軸は、前記据え付け台に最も近い側から前記Ｊ１軸、Ｊ２軸、Ｊ３軸、Ｊ４軸、Ｊ５軸、およびＪ６軸からなる６つの軸であり、
前記Ｊ４軸および前記Ｊ６軸は前記第１軸であり、
前記Ｊ２軸、前記Ｊ３軸、および前記Ｊ５軸は前記第２軸であり、
前記第２制御は、前記Ｊ４軸を駆動する制御である、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
接続されている構造体を回旋させる２以上の第１軸と、接続されている構造体を屈曲したり伸展したりする２以上の第２軸と、を含む複数の軸であって、前記複数の軸のうちの据え付け台に最も近い側に備えられるＪ１軸は前記第１軸である前記複数の軸を備えるロボットをロボット制御装置が制御する、ロボット制御方法であって、
前記ロボットの先端の制御点の目標位置を前記制御点の移動の手順を記述したロボットプログラムから取得する取得ステップと、
前記Ｊ１軸を前記Ｊ１軸の前記目標位置における互いに接続されている構造体の角度まで駆動する第１制御ステップと、
前記複数の軸のうちのすべての第２軸の中心軸が互いに平行になるように、前記複数の軸から前記Ｊ１軸を除く軸のうちの一部または全部の第１軸を駆動する第２制御ステップと、
前記第１制御ステップおよび前記第２制御ステップの実行後、前記第２制御ステップによって駆動された第１軸を駆動することなく前記複数の軸のうちの全部の第２軸を夫々の軸の前記目標位置における互いに接続されている構造体の角度まで駆動する第３制御ステップと、
前記第３制御ステップの実行後、前記複数の軸のうち前記目標位置における互いに接続されている構造体の角度に到達していない軸を前記目標位置における互いに接続されている構造体の角度まで駆動する第４制御ステップと、
を備えることを特徴とするロボット制御方法。
【請求項４】
前記複数の軸は、前記据え付け台に最も近い側から前記Ｊ１軸、Ｊ２軸、Ｊ３軸、Ｊ４軸、Ｊ５軸、およびＪ６軸からなる６つの軸であり、
前記Ｊ４軸および前記Ｊ６軸は前記第１軸であり、
前記Ｊ２軸、前記Ｊ３軸、および前記Ｊ５軸は前記第２軸であり、
前記第２制御ステップは、前記Ｊ４軸を駆動するステップである、
ことを特徴とする請求項３に記載のロボット制御方法。
【国際調査報告】
2015162757.tif 000010
2015162757.tif 000011