(57)【特許請求の範囲】
【請求項１】
基台と、
前記基台に設けられ、第１回転軸を中心に回転する第１アームと、
前記第１アームに設けられ、前記第１回転軸の軸方向とは異なる軸方向の第２回転軸を中心に回転する第２アームと、
前記第１アームを時計回り及び反時計回りの何れか一方の方向に回転させる場合に、前記第１アームが回転基準から時計回りに回転する場合の回転可能な第１領域と、前記第１アームが前記回転基準から反時計回りに回転する場合の回転可能な第２領域との非重複領域では前記第１アームの回転量を示す第１フラグ情報に第１の値を設定し、前記第１領域と前記第２領域との重複領域のうち少なくとも一部では前記第１フラグ情報に第２の値を設定する制御装置と、
を備えることを特徴とするロボット。
【請求項２】
前記制御装置は、前記第１アームの回転基準からの回転角度が、前記第１領域と前記第２領域との重複領域に含まれる閾角度以上になる場合に、前記第１フラグ情報に前記第２の値を設定することを特徴とする請求項１記載のロボット。
【請求項３】
前記制御装置は、前記第１アームが時計回り及び反時計回りの何れか一方の方向に回転する場合の前記回転基準からの回転角度が前記閾角度以上になる場合に前記第１フラグ情報に前記第２の値を設定し、前記第１アームが時計回り及び反時計回りの何れか他方の方向に回転する場合の前記回転基準からの回転角度が前記閾角度である場合には前記第１フラグ情報に設定した前記第２の値を前記第１の値に再設定することを特徴とする請求項２記載のロボット。
【請求項４】
前記閾角度は、前記回転基準からの回転角度が１８０度となる角度であることを特徴とする請求項２又は請求項３記載のロボット。
【請求項５】
前記第１フラグ情報を表示することを特徴とする請求項１から請求項４の何れか一項に記載のロボット。
【請求項６】
前記第２アームに設けられ、前記第２回転軸と平行な第３回転軸を中心に回転する第３アームと、
前記第３アームに設けられ、前記第３アームに沿う第４回転軸を中心に回転する第４アームとを備えており、
前記制御装置は、前記第４アームを時計回り及び反時計回りの何れか一方の方向に回転させる場合に、前記第４アームが回転基準から時計回りに回転する場合の回転可能な第３領域と、前記第４アームが前記回転基準から反時計回りに回転する場合の回転可能な第４領域との非重複領域では前記第４アームの回転量を示す第２フラグ情報に第１の値を設定し、前記第３領域と前記第４領域との重複領域のうち少なくとも一部では前記第２フラグ情報に第２の値を設定する
ことを特徴とする請求項１から請求項５の何れか一項に記載のロボット。
【請求項７】
前記第４アームに設けられ、前記第４回転軸と直交する第５回転軸を中心に回転する第５アームと、
前記第５アームに設けられ、前記第５アームに沿う第６回転軸を中心に回転する第６アームとを備えており、
前記制御装置は、前記第６アームを時計回り及び反時計回りの何れか一方の方向に回転させる場合に、前記第６アームが回転基準から時計回りに回転する場合の回転可能な第５領域と、前記第６アームが前記回転基準から反時計回りに回転する場合の回転可能な第６領域との非重複領域では前記第６アームの回転量を示す第３フラグ情報に第１の値を設定し、前記第５領域と前記第６領域との重複領域のうち少なくとも一部では前記第３フラグ情報に第２の値を設定する
ことを特徴とする請求項６記載のロボット。
【請求項８】
基台と、該基台に設けられて第１回転軸を中心に回転する第１アームと、該第１アームに設けられて前記第１回転軸の軸方向とは異なる軸方向の第２回転軸を中心に回転する第２アームとを備えるロボットを制御する制御装置であって、
前記第１アームを時計回り及び反時計回りの何れか一方の方向に回転させる場合に、前記第１アームが回転基準から時計回りに回転する場合の回転可能な第１領域と、前記第１アームが前記回転基準から反時計回りに回転する場合の回転可能な第２領域との非重複領域では前記第１アームの回転量を示す第１フラグ情報に第１の値を設定し、前記第１領域と前記第２領域との重複領域のうち少なくとも一部では前記第１フラグ情報に第２の値を設定することを特徴とする制御装置。
【請求項９】
前記第１アームが時計回り及び反時計回りの何れか一方の方向に回転する場合の前記回転基準からの回転角度が、前記第１領域と前記第２領域との重複領域に含まれる閾角度以上になる場合に前記第１フラグ情報に前記第２の値を設定し、前記第１アームが時計回り及び反時計回りの何れか他方の方向に回転する場合の前記回転基準からの回転角度が前記閾角度である場合には前記第１フラグ情報に設定した前記第２の値を前記第１の値に再設定することを特徴とする請求項８記載の制御装置。
【請求項１０】
前記閾角度は、前記回転基準からの回転角度が１８０度となる角度であることを特徴とする請求項９記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット及び制御装置に関する。
【背景技術】
【０００２】
一般的に、産業界においては、ロボットアームを有するロボットを用いて各種部品や各種製品の製造が行われている。このようなロボットの一種として、複数のアーム部材を関節で接続したアームを有するロボット（多関節ロボット）が知られている。このロボットは、アームの先端にロボットハンドなどを取り付けることによって様々な作業を行うことができる。尚、多関節ロボットは、アームが垂直面内で屈曲するように設計された垂直多関節型ロボットと、アームが水平面内で屈曲するように設計された水平多関節型ロボットとに大別される。
【０００３】
以下の特許文献１，２には、従来の垂直多関節型ロボットが開示されている。例えば、以下の特許文献１には、回動軸が垂直方向に設定された回動装置と、回動装置の回動体に設けられた多関節アーム等のロボットアームと、ロボットアームの先端部に設けられ物品を保持するロボットハンドとを備える垂直多関節型ロボットが開示されている。尚、このような垂直多関節型ロボットにおいて、ロボットアームの動作領域は、回動装置の回動角度に対応している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４２９３３６２号公報
【特許文献２】特開２０１３−１５８８７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述した特許文献１に開示された垂直多関節型ロボットは、回動装置の回動角度が±１８０°未満であるため、時計回り回転をする場合のロボットアームの動作領域と、反時計回り回転をする場合のロボットアームの動作領域とが重なり合うことはない。しかしながら、上述した特許文献２に開示された垂直多関節型ロボットは、回動装置が±１８０°以上回動可能であるため、時計回り回転をする場合のロボットアームの動作領域と、反時計回り回転をする場合のロボットアームの動作領域とが重なり合ってしまう。
【０００６】
このように、時計回り回転時の動作領域と反時計回り回転時の動作領域とが重なり合う垂直多関節型ロボットでは、時計回り回転を行っても、反時計回り回転を行っても、重なり合う部分にロボットアームを移動させることが可能である。ここで、垂直多関節型ロボットは、３次元空間の座標（ＸＹＺ座標）を指定することによって動作が制御されるが、座標指定だけでは、重なり合う部分にロボットアームを移動させた場合に、時計回り回転をして移動したのか、或いは反時計回り回転をして移動したのかが分からない。
【０００７】
このような垂直多関節型ロボットにおいて、効率的な動作を行わせるには、現在の位置と次に移動させるべき位置とに応じて、回転方向を適切に制御する必要がある。しかしながら、従来の垂直多関節型ロボットは、現在の姿勢が時計回り回転後であるのか、或いは反時計回り回転後であるのかを判別することができないため、効率的な動作を行わせることができないという問題があった。
【０００８】
本発明は上記事情に鑑みてなされたものであり、時計回り回転時の動作領域と反時計回り回転時の動作領域とが重なり合う場合において、ロボットアームを効率的に動作させることが可能なロボット及び制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のロボットは、基台と、前記基台に設けられ、第１回転軸を中心に回転する第１アームと、前記第１アームに設けられ、前記第１回転軸の軸方向とは異なる軸方向の第２回転軸を中心に回転する第２アームと、前記第１アームが時計回りに回転する場合の回転可能な第１領域と、前記第１アームが反時計回りに回転する場合の回転可能な第２領域との非重複領域では前記第１アームの回転量を示す第１フラグ情報に第１の値を設定し、前記第１領域と前記第２領域との重複領域のうち少なくとも一部では前記第１フラグ情報に第２の値を設定する制御装置とを備えることを特徴としている。
この発明によると、第１アームが時計回りに回転する場合の回転可能な第１領域と、第１アームが反時計回りに回転する場合の回転可能な第２領域との非重複領域では第１アームの回転量を示す第１フラグ情報に第１の値が設定され、第１領域と第２領域との重複領域のうち少なくとも一部では第１フラグ情報に第２の値が設定されるため、第１アームが非重複領域に配されるのか、或いは重複領域に配されるのかを知ることができ、第１アームを効率的に動作させることが可能となるという効果がある。
また、本発明のロボットは、前記制御装置が、前記第１アームの回転基準からの回転角度が、前記第１領域と前記第２領域との重複領域に含まれる閾角度以上になる場合に、前記第１フラグ情報に前記第２の値を設定することを特徴としている。
この発明によると、第１アームの回転基準からの回転角度が、第１領域と前記第２領域との重複領域に含まれる閾角度以上になる場合に、第１フラグ情報に第２の値が設定されるため、閾角度の設定を変えれば第１情報に第２の値が設定される条件を変更することができる。
また、本発明のロボットは、前記制御装置が、前記第１アームが時計回り及び反時計回りの何れか一方の方向に回転する場合の前記回転基準からの回転角度が前記閾角度以上になる場合に前記第１フラグ情報に前記第２の値を設定し、前記第１アームが時計回り及び反時計回りの何れか他方の方向に回転する場合の前記回転基準からの回転角度が前記閾角度である場合には前記第１フラグ情報に設定した前記第２の値を前記第１の値に再設定することを特徴としている。
この発明によると、第１アームが時計回り及び反時計回りの何れか一方の方向に回転する場合における回転角度と、第１アームが時計回り及び反時計回りの何れか他方の方向に回転する場合における回転角度との双方を考慮して、第１フラグ情報に設定する値を定めることができる。
また、本発明のロボットは、前記閾角度は、前記回転基準からの回転角度が１８０度となる角度であることを特徴としている。
この発明によると、回転基準からの回転角度が１８０度となる角度が閾角度として設定されているため、反時計回りに回転する場合と時計回りに回転する場合とで、何れの回転方向で回転すれば効率的かを容易に判定することができる。
また、本発明のロボットは、前記制御装置が、前記第１フラグ情報に設定された値に基づいて、前記第１アームの回転方向を決定することを特徴としている。
この発明によると、第１フラグ情報に設定された値に基づいて、第１アームの回転方向が決定されるため、コストの上昇を殆ど伴うことなく、ロボット第１アームを効率的に動作させることができる。
また、本発明のロボットは、前記第１フラグ情報を表示することを特徴としている。
この発明によると、第１フラグ情報が表示されるため、第１アームが非重複領域に配されるのか、或いは重複領域に配されるのかを容易に知ることができ、これにより効率的な動作が実際に行われているか否かを確認することができる。
また、本発明のロボットは、前記第２アームに設けられ、前記第２回転軸と平行な第３回転軸を中心に回転する第３アームと、前記第３アームに設けられ、前記第３アームに沿う第４回転軸を中心に回転する第４アームとを備えており、前記制御装置は、記第４アームが時計回りに回転する場合の回転可能な第３領域と、前記第４アームが反時計回りに回転する場合の回転可能な第４領域との非重複領域では前記第４アームの回転量を示す第２フラグ情報に第１の値を設定し、前記第３領域と前記第４領域との重複領域のうち少なくとも一部では前記第２フラグ情報に第２の値を設定することを特徴としている。
この発明によると、第４アームが時計回りに回転する場合の回転可能な第３領域と、第４アームが反時計回りに回転する場合の回転可能な第４領域との非重複領域では第４アームの回転量を示す第２フラグ情報に第１の値が設定され、第３領域と第４領域との重複領域のうち少なくとも一部では第２フラグ情報に第２の値が設定されるため、第４アームが非重複領域に配されるのか、或いは重複領域に配されるのかを知ることができ、第４アームを効率的に動作させることが可能となるという効果がある。
また、本発明のロボットは、前記第４アームに設けられ、前記第４回転軸と直交する第５回転軸を中心に回転する第５アームと、前記第５アームに設けられ、前記第５アームに沿う第６回転軸を中心に回転する第６アームとを備えており、前記制御装置は、記第６アームが時計回りに回転する場合の回転可能な第５領域と、前記第６アームが反時計回りに回転する場合の回転可能な第６領域との非重複領域では前記第６アームの回転量を示す第３フラグ情報に第１の値を設定し、前記第５領域と前記第６領域との重複領域のうち少なくとも一部では前記第３フラグ情報に第２の値を設定することを特徴としている。
この発明によると、第６アームが時計回りに回転する場合の回転可能な第５領域と、第６アームが反時計回りに回転する場合の回転可能な第６領域との非重複領域では第６アームの回転量を示す第３フラグ情報に第１の値が設定され、第５領域と第６領域との重複領域のうち少なくとも一部では第３フラグ情報に第２の値が設定されるため、第６アームが非重複領域に配されるのか、或いは重複領域に配されるのかを知ることができ、第６アームを効率的に動作させることが可能となるという効果がある。
本発明の制御装置は、基台と、該基台に設けられて第１回転軸を中心に回転する第１アームと、該第１アームに設けられて前記第１回転軸の軸方向とは異なる軸方向の第２回転軸を中心に回転する第２アームとを備えるロボットを制御する制御装置であって、前記第１アームが時計回りに回転する場合の回転可能な第１領域と、前記第１アームが反時計回りに回転する場合の回転可能な第２領域との非重複領域では前記第１アームの回転量を示す第１フラグ情報に第１の値を設定し、前記第１領域と前記第２領域との重複領域のうち少なくとも一部では前記第１フラグ情報に第２の値を設定することを特徴としている。
この発明によると、第１アームが時計回りに回転する場合の回転可能な第１領域と、第１アームが反時計回りに回転する場合の回転可能な第２領域との非重複領域では第１アームの回転量を示す第１フラグ情報に第１の値が設定され、第１領域と第２領域との重複領域のうち少なくとも一部では第１フラグ情報に第２の値が設定されるため、第１アームが非重複領域に配されるのか、或いは重複領域に配されるのかを知ることができ、第１アームを効率的に動作させることが可能となるという効果がある。
また、本発明の制御装置は、前記第１アームが時計回り及び反時計回りの何れか一方の方向に回転する場合の回転基準からの回転角度が、前記第１領域と前記第２領域との重複領域に含まれる閾角度以上になる場合に前記第１フラグ情報に前記第２の値を設定し、前記第１アームが時計回り及び反時計回りの何れか他方の方向に回転する場合の前記回転基準からの回転角度が前記閾角度である場合には前記第１フラグ情報に設定した前記第２の値を前記第１の値に再設定することを特徴としている。
この発明によると、第１アームが時計回り及び反時計回りの何れか一方の方向に回転する場合における回転角度と、第１アームが時計回り及び反時計回りの何れか他方の方向に回転する場合における回転角度との双方を考慮して、第１フラグ情報に設定する値を定めることができる。
また、本発明の制御装置は、前記閾角度が、前記回転基準からの回転角度が１８０度となる角度であることを特徴としている。
この発明によると、回転基準からの回転角度が１８０度となる角度が閾角度として設定されているため、反時計回りに回転する場合と時計回りに回転する場合とで、何れの回転方向で回転すれば効率的かを容易に判定することができる。
また、本発明の制御装置は、前記第１フラグ情報に設定された値に基づいて、前記第１アームの回転方向を決定することを特徴としている。
この発明によると、第１フラグ情報に設定された値に基づいて、第１アームの回転方向が決定されるため、コストの上昇を殆ど伴うことなく、ロボット第１アームを効率的に動作させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態によるロボットの全体構成を示す図である。
【図２】本発明の一実施形態によるロボットの制御装置の内部構成を示すブロック図である。
【図３】本発明の一実施形態によるアームの水平面内における可動範囲を示す図である。
【図４】本発明の一実施形態において用いられるＪ１フラグの設定内容を説明するための図である。
【図５】本発明の一実施形態によるロボットが備える第１モーター制御部の要部構成を示すブロック図である。
【図６】本発明の一実施形態によるロボットが備える第２モーター制御部〜第６モーター制御部の要部構成を示すブロック図である。
【図７】本発明の一実施形態によるロボットが備える制御装置で行われる処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の一実施形態によるロボット及び制御装置について詳細に説明する。図１は、本発明の一実施形態によるロボットの全体構成を示す図である。尚、図１（ａ）は、同ロボットの大まかな外形形状を示す図であり、図１（ｂ）は、同ロボットが備えるアーム等を模式的に示す図である。また、図１（ａ）ではロボットの内部に設けられる構成の一部を模式的に破線で図示している。
【００１２】
図１（ａ）に示す通り、本実施形態のロボット１は、基台１０、アーム２０、及び制御装置５０を備えており、制御装置５０の制御の下でアーム２０の動作が制御される。基台１０は、地面に設置されており、制御装置５０を収容するとともに、アーム２０を動作可能に支持する。アーム２０は、複数のアーム部材及び関節等を備えており、基台１０に対して回転可能に取り付けられている。制御装置５０は、アーム２０の動作を含めたロボット１の全体の動作を制御する。
【００１３】
アーム２０は、６つのアーム部材２１〜２６及び５つの関節３２〜３６を備える。アーム部材２１（第１アーム）は、関節３１によって回転可能に基台１０に取り付けられている。アーム部材２２（第２アーム）は、関節３２によって屈曲可能にアーム部材２１に取り付けられている。アーム部材２３（第３アーム）は、関節３３によって屈曲可能にアーム部材２２に取り付けられている。アーム部材２４（第４アーム）は、関節３４によって回転可能にアーム部材２３に取り付けられている。アーム部材２５（第５アーム）は、関節３５によって屈曲可能にアーム部材２４に取り付けられている。アーム部材２６（第６アーム）は、関節３６によって回転可能にアーム部材２５に取り付けられている。
【００１４】
具体的に、アーム部材２１は、垂直方向に延びる回転軸（第１回転軸）を中心に回転可能に基台１０に取り付けられている。アーム部材２２は、アーム部材２１の回転軸とは直交する回転軸（第２回転軸）を中心に屈曲可能にアーム部材２１に取り付けられている。アーム部材２３は、アーム部材２２の回転軸と平行な回転軸（第３回転軸）を中心に屈曲可能にアーム部材２２に取り付けられている。
【００１５】
アーム部材２４は、アーム部材２３に沿う方向に延びる回転軸（第４回転軸）を中心に回転可能にアーム部材２３に取り付けられている。アーム部材２５は、アーム部材２４の回転軸とは直交する回転軸（第５回転軸）を中心に屈曲可能にアーム部材２４に取り付けられている。アーム部材２６は、アーム部材２５に沿う方向に延びる回転軸（第６回転軸）を中心に回転可能にアーム部材２５に取り付けられている。
【００１６】
尚、アーム部材２６の先端には、力センサー２７を介して、ロボットハンド（所謂、ハンド部）や、溶接治具等の図示しない各種の治具（いわゆるエンドエフェクター）が装着される。力センサー２７は、ロボットハンドやエンドエフェクターの重量や、把持したワークの重量等を検出する。尚、本実施例のロボット１は、アーム２０が垂直面内で屈曲するように設計されており、ある関節を動かすことによってそれより先の関節の回転軸の向きが変化するロボット（所謂、垂直多関節型ロボット）である。
【００１７】
また、アーム２０の関節３１の部分には、関節３１を駆動するための第１モーター４１が搭載されている。同様に、関節３２の部分には関節３２を駆動するための第２モーター４２が搭載されており、関節３３の部分には関節３３を駆動するための第３モーター４３が搭載されている。以下同様に、関節３４の部分には第４モーター４４が、関節３５の部分には第５モーター４５が、関節３６の部分には第６モーター４６が、それぞれ搭載されている。尚、図１（ｂ）に示す通り、関節３１の角度を角度θ１で表し、関節３２の角度を角度θ２、関節３３の角度を角度θ３、関節３４の角度を角度θ４、関節３５の角度を角度θ５、関節３６の角度を角度θ６で表すものとする。
【００１８】
図２は、本発明の一実施形態によるロボットの制御装置の内部構成を示すブロック図である。図２に示す通り、制御装置５０は、全体制御部５０ａ、メモリー５０ｍ、及び第１モーター制御部５１〜第６モーター制御部５６を備える。全体制御部５０ａは、ロボット１全体の動作を制御する。メモリー５０ｍは、例えば不揮発性の半導体メモリーによって実現され、全体制御部５０ａによって実行されるプログラム及び全体制御部５０ａで用いられる姿勢フラグ等を記憶する。尚、姿勢フラグの詳細については後述する。
【００１９】
第１モーター制御部５１は、全体制御部５０ａの下で第１モーター４１を制御する。同様に、第２モーター制御部５２は、全体制御部５０ａの下で第２モーター４２を制御し、第３モーター制御部５３は、全体制御部５０ａの下で第３モーター４３を制御する。以下同様に、全体制御部５０ａの下で、第４モーター制御部５４は第４モーター４４を制御し、第５モーター制御部５５は第５モーター４５を制御し、第６モーター制御部５６は第６モーター４６を制御する。
【００２０】
第１モーター４１には、第１モーター４１の回転角度θ１を検出する角度センサー４１ｓが搭載されている。同様に、第２モーター４２には、第２モーター４２の回転角度θ２を検出する角度センサー４２ｓが搭載されており、第３モーター４３には、第３モーター４３の回転角度θ３を検出する角度センサー４３ｓが搭載されている。以下同様に、第４モーター４４には、第４モーター４４の回転角度θ４を検出する角度センサー４４ｓが、第５モーター４５には、第５モーター４５の回転角度θ５を検出する角度センサー４５ｓが、第６モーター４６には、第６モーター４６の回転角度θ６を検出する角度センサー４６ｓが、それぞれ搭載されている。
【００２１】
各モーター制御部は、制御対象とするモーターに搭載された角度センサーからの出力に基づいて、制御対象とするモーターの動作をそれぞれ制御する。例えば、第１モーター制御部５１は、角度センサー４１ｓで検出された回転角度θ１に基づいて、第１モーター４１の動作を制御する。尚、第２モーター制御部５２〜第６モーター制御部５６についても同様に、角度センサー４２ｓ〜４６ｓで検出された回転角度θ２〜θ６に基づいて、第２モーター４２〜第６モーター４６の動作をそれぞれ制御する。
【００２２】
ここで、第１モーター制御部５１は、角度センサー４１ｓで検出した回転角度θ１だけでなく、全体制御部５０ａで用いられるＪ１フラグ（上述した姿勢フラグの一種）も用いて第１モーター４１の動作を制御する。具体的には、Ｊ１フラグに基づいて第１モーター４１の回転方向を制御する。尚、Ｊ１フラグを用いた第１モーター４１の制御の詳細は後述する。また、図２に示す通り、制御装置５０には、力センサー２７の出力も供給される。尚、制御装置５０は、角度センサー４１ｓ〜４６ｓ及び力センサー２７の出力を、１００Ｈｚ以上の周期でサンプリングする。
【００２３】
上記の角度センサー４１ｓ〜４６ｓの検出結果は、全体制御部５０ａにも入力されている。全体制御部５０ａは、これら角度センサー４１ｓ〜４６ｓの検出結果を用いて前述した姿勢フラグ（メモリー５０ｍに記憶される姿勢フラグ）を設定する。ここで、上記の姿勢フラグは、アーム２０の姿勢を判別するためのフラグであり、以下の６種類のフラグがある。
【００２４】
・Ｊ１フラグ（第１フラグ情報）
・Ｊ４フラグ（第２フラグ情報）
・Ｊ６フラグ（第３フラグ情報）
・ハンド（Hand）フラグ
・肘（Elbow）フラグ
・手首（Wrist）フラグ
【００２５】
上記の「Ｊ１フラグ」は、アーム部材２１（関節３１）の回転量を確認するために用いられるフラグである。上記の「Ｊ４フラグ」は、アーム部材２４（関節３４）の回転量を確認するために用いられるフラグであり、上記の「Ｊ６フラグ」は、アーム部材２６（関節３６）の回転量を確認するために用いられるフラグである。上記の「ハンドフラグ」は、アーム２０の姿勢が右手系の姿勢であるのか、或いは左手系の姿勢であるのかを示すフラグである。上記の「肘フラグ」は、アーム２０の姿勢が上肘姿勢であるのか、或いは下肘姿勢であるのかを示すフラグである。上記の「手首フラグ」は、アーム２０の姿勢が手首非反転姿勢であるのか、或いは手首反転姿勢であるのかを示すフラグである。
【００２６】
図３は、本発明の一実施形態によるアームの水平面内における可動範囲を示す図である。尚、図３中に示したＸＹ直交座標系は、アーム２０の制御のために用いられる座標系（ロボット座標系）であり、＋Ｙ方向が水平面内におけるアーム２０の回転基準（回転角度θ１＝０）に設定されているものとする。また、図３では、Ｘ軸からＹ軸に向かう回転方向（反時計回り）を正の方向としている。
【００２７】
アーム２０が反時計回りに回転する場合の可動範囲は、図３（ａ）に示す通り、０°≦θ１≦２４０°の範囲（第２領域）である。また、アーム２０が時計回りに回転する場合の可動範囲は、図３（ｂ）に示す通り、−２４０°≦θ１≦０°の範囲（第１領域）である。つまり、アーム２０の可動範囲は、回転基準を中心として±２４０°の範囲であり、図３（ｃ）に示す通り、符号Ｗ及び斜線を付した領域（反時計回りで１２０〜２４０°の範囲（時計回りで−１２０〜−２４０°の範囲：重複領域））において重複する。
【００２８】
全体制御部５０ａは、図４に示す通り、アーム部材２１（関節３１）の回転基準からの回転角が±１８０°（閾角度）未満であるときに、Ｊ１フラグの値を「０」（第１の値）に設定する。また、アーム部材２１（関節３１）の回転基準からの回転角が±１８０°（閾角度）以上であるときに、Ｊ１フラグの値を「１」（第２の値）に設定する。図４は、本発明の一実施形態において用いられるＪ１フラグの設定内容を説明するための図である。
【００２９】
つまり、全体制御部５０ａは、図４（ａ）に示す通り、上記の重複領域Ｗ内であって、アーム部材２１（関節３１）の回転基準からの反時計回りの回転角が１８０°（閾角度）以上になるときに、Ｊ１フラグの値を「１」に設定する。また、全体制御部５０ａは、図４（ｂ）に示す通り、上記の重複領域Ｗ内であって、アーム部材２１（関節３１）の回転基準からの時計回りの回転角が−１８０°（閾角度）以上になるときに、Ｊ１フラグの値を「１」に設定する。
【００３０】
アーム２０の目標位置（アーム２０を移動させるべき位置）が、図３（ｃ）中の重複領域Ｗ内に設定されている場合には、アーム部材２１（関節３１）を、反時計回りに回転させても、時計回りに回転させても、目標位置に到達させることが可能である。しかしながら、回転方向によっては、アーム２０が大回りしてしまうことがあり、効率的な動作を行わせることができない。そこで、本実施形態では、図４に示す通り、Ｊ１フラグの値を設定することによって効率的な動作を可能としている。
【００３１】
全体制御部５０ａで設定される上記の姿勢フラグ、及びロボット１の各種状態を示す情報（例えば、エラー状態である旨を示す情報）は、表示装置ＤＳに表示される。表示装置ＤＳは、液晶表示装置や有機ＥＬ（Electro Luminescence：エレクトロルミネッセンス）表示装置等を備えており、例えば基台１０に取り付けられている。尚、表示装置Ｄは、必ずしもロボット１に取り付けられている必要はなく、ロボット１とは別に設けられていても良い。
【００３２】
図５は、本発明の一実施形態によるロボットが備える第１モーター制御部の要部構成を示すブロック図である。図５に示す通り、第１モーター制御部５１は、演算部６１、位置制御部６２、演算部６３、角速度制御部６４、角速度算出部６５、及び回転角度算出部６６を備えており、図２に示す全体制御部５０ａからの目標位置Ｐｃ及びＪ１フラグに基づいて、角度センサー４１ｓの回転角度θ１が目標位置Ｐｃとなるような制御を行う。
【００３３】
この第１モーター制御部５１には、角度センサー４１ｓで検出された回転角度θ１をフィードバックして制御する第１ループと、第１ループの内側で角速度をフィードバックして制御する第２ループとが設けられている。尚、第１ループは、演算部６１、位置制御部６２、演算部６３、角速度制御部６４、及び回転角度算出部６６から構成され、第２ループは、角速度制御部６４及び角速度算出部６５から構成される。
【００３４】
演算部６１は、全体制御部５０ａからの目標位置Ｐｃと回転角度算出部６６からの位置フィードバック値Ｐfbとの偏差を演算する。位置制御部６２は、演算部６１で演算された偏差に応じた目標角速度ωｃを生成する。このとき、位置制御部６２は、全体制御部５０ａからのＪ１フラグに基づいて、アーム部材２１（関節３１）の回転方向を規定する目標角速度ωｃの符号を決定する。
【００３５】
演算部６３は、位置制御部６２からの目標角速度ωｃと角速度算出部６５からの角速度フィードバック値ωfbとの偏差を算出する。角速度制御部６４は、演算部６３で演算された偏差に応じて第１モーター４１を制御する。角速度算出部６５は、角度センサー４１ｓで検出された回転角度θ１を用いて角速度フィードバック値ωfbを算出する。回転角度算出部６６は、角度センサー４１ｓで検出された回転角度θ１を位置フィードバック値Ｐfbに変換する。
【００３６】
このような第１モーター制御部５１に全体制御部５０ａからの目標位置Ｐｃが入力されると、目標位置Ｐｃと回転角度算出部６６からの位置フィードバック値Ｐfbとの偏差が演算部６１で演算されて位置制御部６２に出力される。すると、演算部６１からの偏差に応じた目標角速度ωｃが位置制御部６２で生成される。ここで、目標角速度ωｃの符号は、全体制御部５０ａからのＪ１フラグに応じて決定される。位置制御部６２で生成された目標角速度ωｃは演算部６３に出力される。
【００３７】
位置制御部６２からの目標角速度ωｃが入力されると、目標角速度ωｃと角速度算出部６５で算出された角速度フィードバック値ωfbとの偏差が演算部６３で演算されて角速度制御部６４に出力される。すると、演算部６３からの偏差に応じて第１モーター４１が制御される。この制御の結果が、角度センサー４１ｓで検出される回転角度θ１に反映されて、回転角度算出部６６を介して位置フィードバック制御が行われ、角速度算出部６５を介して角速度フィードバック制御が行われる。
【００３８】
図６は、本発明の一実施形態によるロボットが備える第２モーター制御部〜第６モーター制御部の要部構成を示すブロック図である。図６に示す通り、第２モーター制御部５２〜第６モーター制御部５６は、演算部７１、位置制御部７２、演算部７３、角速度制御部７４、角速度算出部７５、及び回転角度算出部７６を備えており、図２に示す全体制御部５０ａからの目標位置Ｐｃに基づいて、角度センサーＳの回転角度θが目標位置Ｐｃとなるような制御を行う。
【００３９】
尚、図６において、第２モーター制御部５２については、図中の「モーターＭ」、「角度センサーＳ」、及び「回転角度θ」を、「第２モーター４２」、「角度センサー４２ｓ」、及び「回転角度θ２」とそれぞれ読み替える必要がある。また、第３モーター制御部５３については、「第３モーター４３」、「角度センサー４３ｓ」、及び「回転角度θ３」とそれぞれ読み替え、第４モーター制御部５４については、「第４モーター４４」、「角度センサー４４ｓ」、及び「回転角度θ４」とそれぞれ読み替える必要がある。同様に、第５モーター制御部５５については、「第５モーター４５」、「角度センサー４５ｓ」、及び「回転角度θ５」とそれぞれ読み替え、第６モーター制御部５６については、「第６モーター４６」、「角度センサー４６ｓ」、及び「回転角度θ６」とそれぞれ読み替える必要がある。
【００４０】
第２モーター制御部５２〜第６モーター制御部５６には、第１モーター制御部５１と同様に、角度センサーＳで検出された回転角度θをフィードバックして制御する第１ループと、第１ループの内側で角速度をフィードバックして制御する第２ループとが設けられている。尚、第１ループは、演算部７１、位置制御部７２、演算部７３、角速度制御部７４、及び回転角度算出部７６から構成され、第２ループは、角速度制御部７４及び角速度算出部７５から構成される。
【００４１】
演算部７１、演算部７３、角速度制御部７４、角速度算出部７５、及び回転角度算出部７６は、図５に示す演算部６１、演算部６３、角速度制御部６４、角速度算出部６５、及び回転角度算出部６６と同様のものである。位置制御部７２は、図５に示す位置制御部６２と同様に、演算部７１で演算された偏差に応じた目標角速度ωｃを生成するものであるが、全体制御部５０ａからのＪ１フラグは入力されておらず、Ｊ１フラグに基づいた目標角速度ωｃの符号の決定が行われていない点が異なる。
【００４２】
このような第２モーター制御部５２〜第６モーター制御部５６に全体制御部５０ａからの目標位置Ｐｃが入力されると、目標位置Ｐｃと回転角度算出部７６からの位置フィードバック値Ｐfbとの偏差が演算部７１で演算されて位置制御部７２に出力される。すると、演算部７１からの偏差に応じた目標角速度ωｃが位置制御部７２で生成されて演算部７３に出力される。
【００４３】
位置制御部７２からの目標角速度ωｃが入力されると、目標角速度ωｃと角速度算出部７５で算出された角速度フィードバック値ωfbとの偏差が演算部７３で演算されて角速度制御部７４に出力される。すると、演算部７３からの偏差に応じてモーターＭが制御される。この制御の結果が、角度センサーＳで検出される回転角度θに反映されて、回転角度算出部７６を介して位置フィードバック制御が行われ、角速度算出部７５を介して角速度フィードバック制御が行われる。
【００４４】
次に、上記構成におけるロボットの動作について説明する。以下では、主としてロボット１が備えるアーム２０を水平面内で回転させる動作について説明するものとする。また、以下では、説明を簡単にするために、現在位置から目標位置に中継点を介することなくアーム２０を移動させる２点間動作を例に挙げて説明する。また、初期状態では、アーム２０の回転角度θ１が「０」であり、Ｊ１フラグの値が「０」であるとする。
【００４５】
図７は、本発明の一実施形態によるロボットが備える制御装置で行われる処理を示すフローチャートである。尚、図７に示すフローチャートの処理は、ロボット１のアーム２０を目標位置に移動させる度に行われる。処理が開始されると、まず参照位置の姿勢フラグを取得する処理が全体制御部５０ａで行われる（ステップＳ１１）。具体的には、図２に示すメモリー５０ｍに格納された姿勢フラグを読み出す処理が行われる。ここで、２点間動作の場合には、上記の参照位置は現在位置であるため、全体制御部５０ａでは、メモリー５０ｍに格納された現在位置の姿勢フラグを読み出す処理が行われる。
【００４６】
次に、ステップＳ１１で読み出した姿勢フラグを用いて、参照位置をロボット座標に変換する処理が全体制御部５０ａで行われる（ステップＳ１２）。そして、変換されたロボット座標が動作範囲を満たすか否か（つまり、予め規定された動作範囲に収まっているか否か）が全体制御部５０ａで判断される（ステップＳ１３）。動作範囲を満たしていないと判断された場合（判断結果が「ＮＯ」の場合）には、エラーが生じた旨を表示装置ＤＳに表示する処理が全体制御部５０ａによって行われ（ステップＳ１４）、図７に示す一連の処理が終了する。尚、２点間動作の場合には、現在位置が参照位置となるため、参照位置（現在位置）が動作範囲を満たしていないと判断されることは実質的に無い。
【００４７】
これに対し、動作範囲を満たしていると判断された場合（ステップＳ１３の判断結果が「ＹＥＳ」の場合）には、参照位置の姿勢フラグを目標位置の姿勢フラグに設定する処理が全体制御部５０ａで行われる（ステップＳ１５）。具体的には、参照位置におけるアーム２０の姿勢を示す「ハンドフラグ」、「肘フラグ」、及び「手首フラグ」を、目標位置の姿勢フラグに設定する処理が行われる。この処理は、アーム２０の姿勢を極力変化させずにアーム２０を目標位置に移動させるために行われる。
【００４８】
次に、ステップＳ１５で設定した姿勢フラグを用いて、目標位置をロボット座標に変換する処理が全体制御部５０ａで行われる（ステップＳ１６）。そして、ステップＳ１３と同様に、変換されたロボット座標が動作範囲を満たすか否か（つまり、予め規定された動作範囲に収まっているか否か）が全体制御部５０ａで判断される（ステップＳ１７）。動作範囲を満たしていないと判断された場合（判断結果が「ＮＯ」の場合）には、ステップＳ１５で設定した目標位置の姿勢フラグを元に戻す処理が全体制御部５０ａで行われる（ステップＳ１８）。
【００４９】
これに対し、動作範囲を満たしていると判断された場合（ステップＳ１７の判断結果が「ＹＥＳ」の場合）には、現在位置から目標位置までのアーム部材２１（関節３１）の回転量（例えば、反時計回りの回転量）が１８０°よりも小であるか否かが全体制御部５０ａで判断される（ステップＳ１９）。アーム部材２１（関節３１）の回転量が１８０°よりも小であると判断された場合（判断結果が「ＹＥＳ」の場合）には、Ｊ１フラグの値を決定する処理が全体制御部５０ａで行われる（ステップＳ２０）。尚、初期状態ではＪ１フラグの値が「０」であるとしているため、ここではＪ１フラグの値が「０」に決定される。
【００５０】
これに対し、ステップＳ１９でアーム部材２１（関節３１）の回転量が１８０°以上であると判断された場合（判断結果が「ＮＯ」の場合）には、Ｊ１フラグの値を変更する処理が全体制御部５０ａで行われる（ステップＳ２１）。初期状態ではＪ１フラグの値が「０」であるため、ここではＪ１フラグの値が「１」に変更される。つまり、アーム部材２１（関節３１）を反時計回りに回転させた場合には、回転量が１８０°以上となって効率が悪くなることから、アーム部材２１（関節３１）を時計回りに回転させるべく、Ｊ１フラグの値が「１」に変更される。
【００５１】
続いて、現在位置から目標位置までのアーム部材２１（関節３１）の回転量が１８０°であるか否かが全体制御部５０ａによって判断される（ステップＳ２２）。アーム部材２１（関節３１）の回転量が１８０°ではないと判断された場合（判断結果が「ＮＯ」の場合）には、Ｊ１フラグの値を決定する処理が全体制御部５０ａで行われる（ステップＳ２０）。尚、ステップＳ２１でＪ１フラグの値が変更されているため、ここではＪ１フラグの値が「１」に決定される。
【００５２】
これに対し、アーム部材２１（関節３１）の回転量が１８０°であると判断された場合（ステップＳ２２の判断結果が「ＹＥＳ」の場合）には、Ｊ１フラグの値を元に戻す処理が全体制御部５０ａで行われる（ステップＳ２３）。つまり、現在位置から目標位置までの回転量が１８０°である場合には、アーム部材２１（関節３１）を反時計回りに回転させても、時計回りに回転させても回転量が同じであるため、ステップＳ２１で変更されたＪ１フラグの値を元の値に戻す処理が行われる。ステップＳ２３の処理が終了すると、Ｊ１フラグの値を決定する処理が全体制御部５０ａで行われる（ステップＳ２０）。尚、ステップＳ２３でＪ１フラグの値が元に戻されているため、ここではＪ１フラグの値が「０」に決定される。このようにして、Ｊ１フラグの値が決定される。
【００５３】
以上の処理が終了すると、制御装置５０から第１モーター制御部５１〜第６モーター制御部５６に対して目標位置Ｐｃが出力されるとともに、制御装置５０から第１モーター制御部５１に対してＪ１フラグが出力される。全体制御部５０ａからの目標位置Ｐｃが入力されると、第２モーター制御部５２〜第６モーター制御部５６では、図６を用いて説明した動作が行われて第２モーター４２〜第６モーター４６がそれぞれ駆動される。
【００５４】
また、全体制御部５０ａからの目標位置Ｐｃ及びＪ１フラグが入力されると、第１モーター制御部５１では、図５を用いて説明した動作が行われて第１モーター４１が駆動される。このとき、Ｊ１フラグの値に基づいて第１モーター４１の駆動方向（回転方向）が制御される。これにより、アーム部材２１（関節３１）は、Ｊ１フラグの値に応じた回転方向に回転し、その結果として効率的な動作が実施される。
【００５５】
以上の通り、アーム部材２１（関節３１）の回転基準からの回転角度が１８０°未満になる場合に、Ｊ１フラグの値を「０」に設定し、アーム部材２１（関節３１）の回転基準からの回転角度が１８０°以上になる場合に、Ｊ１フラグの値を「１」に設定している。そして、設定されたＪ１フラグの値に基づいてアーム２０の回転方向が決定されて、アーム２０の制御が行われている。このため、時計回り回転時の動作領域と反時計回り回転時の動作領域とが重なり合う場合において、ロボット１のアーム２０を効率的に動作させることができる。
【００５６】
以上、本発明の一実施形態によるロボット及び制御装置について説明したが、本発明は上記実施形態に制限されず、本発明の範囲内で自由に変更が可能である。例えば、以下に示す変形例が可能である。
【００５７】
（１）上記実施形態では、Ｊ１フラグの値に基づいてアーム部材２１（関節３１）の回転方向が制御される場合を例に挙げて説明したが、本発明はこれに限定されるものではない。例えば、Ｊ４フラグの値に基づいてアーム部材２４（関節３４）の回転方向が制御されるようにしても良い。具体的には、アーム部材２４（関節３４）が時計回りに回転する場合の回転可能な領域（第３領域）と、アーム部材２４（関節３４）が反時計回りに回転する場合の回転可能な領域（第４領域）との非重複領域ではＪ４フラグの値を「０」（第１の値）に設定し、重複領域ではＪ４フラグの値を「１」（第２の値）に設定してアーム部材２４（関節３４）の回転方向を制御するといった具合である。
【００５８】
（２）また、Ｊ６フラグの値に基づいてアーム部材２６（関節３６）の回転方向が制御されるようにしても良い。具体的には、アーム部材２６（関節３６）が時計回りに回転する場合の回転可能な領域（第５領域）と、アーム部材２６（関節３６）が反時計回りに回転する場合の回転可能な領域（第６領域）との非重複領域ではＪ６フラグの値を「０」（第１の値）に設定し、重複領域ではＪ６フラグの値を「１」（第２の値）に設定してアーム部材２６（関節３６）の回転方向を制御するといった具合である。
【００５９】
（３）上記実施形態では、アーム２０の可動範囲が、回転基準を中心として±２４０°の範囲（回転基準を中心として対称的な範囲）である場合を例に挙げて説明したが、本発明はこれに限定されるものではない。例えば、アーム２０の可動範囲は、回転基準を中心として±２４０°以上であっても良く、回転基準を中心として非対称（反時計回りで回転する場合の可動範囲と時計回りで回転する場合の可動範囲とが異なる）であっても良い。
【００６０】
（４）上記実施形態では、閾角度が１８０°である場合を例に挙げて説明したが、本発明はこれに限定されるものではない。例えば、重複領域内であれば、閾角度を任意の角度に設定することができる。
【００６１】
（５）上記実施形態では、図３（ｃ）に示す通り、重複領域Ｗが反時計回りで１２０〜２４０°の領域（時計回りで−１２０〜−２４０°の領域）に限定される場合を例に挙げて説明したが、本発明はこれに限定されるものではない。例えば、重複領域は、反時計回りで０〜３６０°（時計回りで−３６０〜０°）の全領域に亘って設定されていても良い。このように、全領域に亘って重複領域が設定されている場合には、反時計回りを偶数、時計回りを奇数とし、回転基準から３６０°回転する毎にＪ１フラグの値を変更するようにしても良い。つまり、反時計回りの場合にはＪ１フラグの値を２，４，６，…と変更し、時計回りの場合にはＪ１フラグの値を１，３，５，…と変更するといった具合である。或いは、閾角度を９０°に設定し、９０°回転する毎にＪ１フラグの値がインクリメントされるようにしても良い。
【００６２】
（６）上記実施形態では、理解を容易にするために、基台１０が地面に設置されている場合を例に挙げて説明したが、本発明はこれに限定されるものではない。基台１０は任意の位置に設置することが可能である。例えば、天井に設置されていても良く、斜面に設置されていても良い。
【００６３】
（７）上記実施形態では、ロボット１が、６つの関節３１〜３６を有する６軸ロボットである場合を例に挙げて説明したが、本発明はこれに限定されるものではない。例えば、６つよりも少ない関節を有するロボット（例えば、４軸ロボット）であっても良く、６つよりも多い関節を有するロボット（例えば、８軸ロボット）であっても良い。
【符号の説明】
【００６４】
１…ロボット、１０…基台、２１…アーム部材、２２…アーム部材、２３…アーム部材、２４…アーム部材、２５…アーム部材、２６…アーム部材、５０…制御装置、Ｗ…重複領域
【図１】
0006439375.tif 000002
【図２】
0006439375.tif 000003
【図３】
0006439375.tif 000004
【図４】
0006439375.tif 000005
【図５】
0006439375.tif 000006
【図６】
0006439375.tif 000007
【図７】
0006439375.tif 000008