(57)【要約】【課題】  ロボット本体の制御のみによってツールの位置および姿勢を制御する。【解決手段】  先端部に複数のツールが固定された多関節ロボットの先端部のワールド座標系における現在位置および現在姿勢を示す第１の同次変換行列と、複数のツールのうち制御対象となっている対象ツールの先端部を原点とするローカル座標系における位置および姿勢を示す第２の同次変換行列との積を、第３の同次変換行列として算出するツール座標算出部と、第３の同次変換行列と、ワールド座標系における対象ツールが移動すべき目標位置および目標姿勢を示す第４の同次変換行列とに基づいて、ワールド座標系における対象ツールが移動する第１の軌道を算出するツール軌道算出部と、第１の軌道と、第２の同次変換行列の逆行列との積を、第２の軌道として算出するロボット軌道算出部と、第２の軌道に応じて多関節ロボットを制御する制御部と、を有する。【選択図】  図１
2011189440.tif 000002
【特許請求の範囲】
【請求項１】
先端部に複数のツールが固定された多関節ロボットの前記先端部のワールド座標系における現在位置および現在姿勢を示す第１の同次変換行列と、前記複数のツールのうち制御対象となっている対象ツールの前記先端部を原点とするローカル座標系における位置および姿勢を示す第２の同次変換行列との積を、前記対象ツールの前記ワールド座標系における現在位置および現在姿勢を示す第３の同次変換行列として算出するツール座標算出部と、
前記第３の同次変換行列と、前記ワールド座標系における前記対象ツールが移動すべき目標位置および目標姿勢を示す第４の同次変換行列とに基づいて、前記ワールド座標系における前記対象ツールが移動する第１の軌道を算出するツール軌道算出部と、
前記第１の軌道と、前記第２の同次変換行列の逆行列との積を、前記ワールド座標系における前記先端部が移動する第２の軌道として算出するロボット軌道算出部と、
前記第２の軌道に応じて前記多関節ロボットを制御する制御部と、
を有することを特徴とするロボット制御装置。
【請求項２】
前記第１の軌道は、前記対象ツールの現在位置と前記目標位置とを結ぶ直線軌道であり、
前記ツール軌道算出部は、前記第３の同次変換行列と前記第４の同次変換行列との差に基づいて前記第１の軌道を算出することを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
請求項１または請求項２に記載のロボット制御装置と、
前記制御部の制御によって前記先端部が前記第２の軌道に沿って移動する前記多関節ロボットと、
を備えることを特徴とするロボットシステム。
【請求項４】
前記複数のツールの少なくとも１つは、移動対象物を把持するチャック機構を備え、
前記多関節ロボットは、前記移動対象物を前記チャック機構によって把持して移動させることを特徴とする請求項３に記載のロボットシステム。
【請求項５】
先端部に複数のツールが固定された多関節ロボットを制御する制御部から、前記先端部のワールド座標系における現在位置および現在姿勢が第１の同次変換行列として入力されるコンピュータに、
前記第１の同次変換行列と、前記複数のツールのうち前記制御部の制御対象とする対象ツールの前記先端部を原点とするローカル座標系における位置および姿勢を示す第２の同次変換行列との積を、前記対象ツールの前記ワールド座標系における現在位置および現在姿勢を示す第３の同次変換行列として算出する機能と、
前記第３の同次変換行列と、前記ワールド座標系における前記対象ツールが移動すべき目標位置および目標姿勢を示す第４の同次変換行列とに基づいて、前記ワールド座標系における前記対象ツールが移動する第１の軌道を算出する機能と、
前記第１の軌道と、前記第２の同次変換行列の逆行列との積を、前記ワールド座標系における前記先端部が移動する第２の軌道として算出し、前記制御部に入力する機能と、
を実現させるためのプログラム。
【請求項６】
先端部に複数のツールが固定された多関節ロボットの前記先端部のワールド座標系における現在位置および現在姿勢を示す第１の同次変換行列と、前記複数のツールのうち制御対象となっている対象ツールの前記先端部を原点とするローカル座標系における位置および姿勢を示す第２の同次変換行列との積を、前記対象ツールの前記ワールド座標系における現在位置および現在姿勢を示す第３の同次変換行列として算出し、
前記第３の同次変換行列と、前記ワールド座標系における前記対象ツールが移動すべき目標位置および目標姿勢を示す第４の同次変換行列とに基づいて、前記ワールド座標系における前記対象ツールが移動する第１の軌道を算出し、
前記第１の軌道と、前記第２の同次変換行列の逆行列との積を、前記ワールド座標系における前記先端部が移動する第２の軌道として算出し、
前記第２の軌道に応じて前記多関節ロボットを制御することを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボットシステム、プログラム、およびロボットの制御方法に関する。
【背景技術】
【０００２】
近年、工場の製造ラインなどにおいて様々な産業用ロボットが用いられている。特に、（垂直）多関節ロボットは、人間の腕に近い構造をしているため、種々の作業を人間に代わって行うことができる。
【０００３】
ところで、多関節ロボットは、複数のツール（工具）を備えることもできる。例えば、特許文献１では、ガラス基板を搬送するためのハンドを２つ備え、通常の関節座標系と、ハンドの中心を基準とするツール座標系とを切り替えて制御するロボットシステムが開示されている。また、例えば、特許文献２では、少なくとも１つのハンドをそれぞれ備えた複数のタ―レットを工具軸の先端に設け、各ターレットを回転させることによって、使用するハンドを切り替えることができる産業用ロボットが開示されている。
【０００４】
このようにして、多関節ロボットが複数のツールを備えることによって、１台でより多くの作業を行うことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１００２９２号公報
【特許文献２】特開平５−１１１８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のロボットシステムでは、２つのハンドをツール座標系で移動させるためのアクチュエータやモータなどの動力源がそれぞれ必要となる。また、特許文献２の産業用ロボットでは、複数のターレットを回転させるためのモータおよび減速機がそれぞれ必要となる。
【０００７】
したがって、ロボットの先端部には、ハンドやターレットの重量だけでなく、それらの動力源の重量が加わるため、ロボットの可搬重量を大きくする必要がある。また、ツールの位置や姿勢は、ロボット本体の制御およびハンドやターレットの制御の両方によって変更されるため、制御が困難となる。特に、加工部品などを把持するチャック機構を備えたツールの場合など、ツールの位置および姿勢を高精度に制御する必要がある場合には、当該課題が顕著となる。
【課題を解決するための手段】
【０００８】
前述した課題を解決する主たる本発明は、先端部に複数のツールが固定された多関節ロボットの前記先端部のワールド座標系における現在位置および現在姿勢を示す第１の同次変換行列と、前記複数のツールのうち制御対象となっている対象ツールの前記先端部を原点とするローカル座標系における位置および姿勢を示す第２の同次変換行列との積を、前記対象ツールの前記ワールド座標系における現在位置および現在姿勢を示す第３の同次変換行列として算出するツール座標算出部と、前記第３の同次変換行列と、前記ワールド座標系における前記対象ツールが移動すべき目標位置および目標姿勢を示す第４の同次変換行列とに基づいて、前記ワールド座標系における前記対象ツールが移動する第１の軌道を算出するツール軌道算出部と、前記第１の軌道と、前記第２の同次変換行列の逆行列との積を、前記ワールド座標系における前記先端部が移動する第２の軌道として算出するロボット軌道算出部と、前記第２の軌道に応じて前記多関節ロボットを制御する制御部と、を有することを特徴とするロボット制御装置である。
【０００９】
本発明の他の特徴については、添付図面及び本明細書の記載により明らかとなる。
【発明の効果】
【００１０】
本発明によれば、ロボット本体の制御のみによってツールの位置および姿勢を制御することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態におけるロボット制御装置の構成を示すブロック図である。
【図２】ツール座標算出部１０３、ツール軌道算出部１０４、およびロボット軌道算出部１０５の機能をコンピュータに実現させるためのプログラムの動作を説明するフローチャートである。
【図３】本発明の一実施形態におけるロボット制御装置を備えたロボットシステム全体の構成の概略を示すブロック図である。
【図４】多関節ロボットの先端部の構成の詳細を示す斜視図である。
【図５】ツールＣ１を部品７まで移動させる場合のツールＣ１およびロボット先端部１２の軌道を示す図である。
【図６】部品７を部品８の孔部の真上まで移動させる場合のツールＣ１およびロボット先端部１２の軌道を示す図である。
【図７】ツールＣ２を部品８まで移動させる場合のツールＣ２およびロボット先端部１２の軌道を示す図である。
【図８】部品８を作業台９まで移動させる場合のツールＣ２およびロボット先端部１２の軌道を示す図である。
【発明を実施するための形態】
【００１２】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。
【００１３】
＝＝＝ロボットシステム全体の構成の概略＝＝＝
以下、図３および図４を参照して、後述する本発明の一実施形態におけるロボット制御装置を備えたロボットシステム全体の構成の概略について説明する。なお、図４は、多関節ロボットの先端部の構成の詳細を示している。
【００１４】
図３および図４に示されているロボットシステムは、ロボット本体１１、ロボット先端部１２、およびツールＣ１、Ｃ２からなる多関節ロボットと、当該多関節ロボットを制御するロボット制御装置１０とを含んで構成されている。
【００１５】
図３に示すように、ロボット制御装置１０からは、多関節ロボットを制御するための制御信号ＣＮＴが出力されている。また、図４に示すように、ロボット先端部１２は、ロボット本体１１の先端に固定されており、ロボット先端部１２には、ツールＣ１およびＣ２が固定されている。さらに、ツールＣ１およびＣ２は、それぞれ部品７および８を把持するチャック機構を備えている。
【００１６】
図４において、「ＴＲ」、「ＴＣ１」、および「ＴＣ２」は、それぞれロボット先端部１２、およびツールＣ１、Ｃ２の位置および姿勢を示す４行４列の同次変換行列であり、各同次変換行列は、
2011189440.tif 000003
と表すことができる。
【００１７】
ここで、Ｐ（３×１）は、位置（平行移動）を示す３行１列の行列であり、
2011189440.tif 000004
と表すことができる。
【００１８】
一方、Ｒ（３×３）は、姿勢（各座標軸を中心とする回転）を示す３行３列の行列であり、例えば図３に示すように、ｘ軸回りにθｘ、ｙ軸回りにθｙ、ｚ軸回りにθｚだけ回転させた場合には、
2011189440.tif 000005
2011189440.tif 000006
2011189440.tif 000007
と表されるＲｘ、Ｒｙ、およびＲｚの積として表すことができる。
【００１９】
また、「Σ０」は、図３に示すように、例えば多関節ロボットの基端を原点とするワールド座標系を示し、「ΣＲ」は、ロボット先端部１２を原点とするローカル座標系を示している。
【００２０】
したがって、Σ０ＴＲは、ロボット先端部１２のワールド座標系における位置および姿勢を示す同次変換行列である。以下、このような同次変換行列で示されるワールド座標系における位置および姿勢を、座標Σ０ＴＲのように称することとする。
【００２１】
一方、ΣＲＴＣ１およびΣＲＴＣ２は、それぞれツールＣ１およびＣ２のロボット先端部１２から見た相対的な位置および姿勢を示す同次変換行列である。以下、このような同次変換行列で示される相対的な位置および姿勢を、相対座標ΣＲＴＣ１のように称することとする。
【００２２】
なお、図３、および図５ないし図８においては、ロボット先端部１２を座標Σ０ＴＲで示し、ツールＣ１およびＣ２を、それぞれの相対座標ΣＲＴＣ１およびΣＲＴＣ２とロボット先端部１２の座標Σ０ＴＲとを結ぶ実線で示している。
【００２３】
＝＝＝ロボット制御装置の構成＝＝＝
以下、図１を参照して、本発明の一実施形態におけるロボット制御装置の構成について説明する。なお、以下の説明において、ツールＣ１またはＣ２の何れであるかを特定しない場合には、ツールＣｍと表すこととする。
【００２４】
図１に示されているロボット制御装置１０は、制御部１０１、記憶部１０２、ツール座標算出部１０３、ツール軌道算出部１０４、およびロボット軌道算出部１０５を含んで構成されている。
【００２５】
制御部１０１からは、制御信号ＣＮＴのほか、ロボット先端部１２の現在座標Σ０ＴＲが出力されている。また、記憶部１０２からは、対象ツール（制御対象となっているツール）Ｃｍの目標座標Σ０ＴＤｎおよび対象ツールＣｍの相対座標ΣＲＴＣｍが出力されている。さらに、ツール座標算出部１０３には、ロボット先端部１２の現在座標Σ０ＴＲおよび対象ツールＣｍの相対座標ΣＲＴＣｍが入力され、ツール座標算出部１０３からは、対象ツールＣｍの現在座標Σ０ＴＣｍが出力されている。
【００２６】
ツール軌道算出部１０４には、対象ツールＣｍの現在座標Σ０ＴＣｍおよび対象ツールＣｍの目標座標Σ０ＴＤｎが入力され、ツール軌道算出部１０４からは、対象ツールＣｍの軌道Σ０ＯｎＣｍが出力されている。また、ロボット軌道算出部１０５には、対象ツールＣｍの軌道Σ０ＯｎＣｍおよび対象ツールＣｍの相対座標ΣＲＴＣｍが入力され、ロボット軌道算出部１０５から出力されるロボット先端部１２の軌道Σ０ＯｎＲは、制御部１０１に入力されている。
【００２７】
＝＝＝ロボットシステムの動作の具体例＝＝＝
ここで、図３を参照して、ロボットシステムの動作の具体例について説明する。なお、以下の説明において、ロボット制御装置１０による多関節ロボットの制御は、制御信号ＣＮＴに基づいて行われるものとする。
【００２８】
まず、ロボット制御装置１０は、チャック機構を開いた状態でツールＣ１を部品７まで移動させ、チャック機構を閉じることによって、ツールＣ１に部品７を把持させる。ここで、ツールＣ１は、部品７を上方から把持するものとし、図３においては、この場合のツールＣ１のワールド座標系における位置および姿勢を、目標座標Σ０ＴＤ１として示している。
【００２９】
次に、ロボット制御装置１０は、ツールＣ１に上方から把持された状態で部品７を部品８の孔部の真上まで移動させ、チャック機構を開くことによって、部品７を部品８の孔部に挿入する。図３においては、この場合のツールＣ１のワールド座標系における位置および姿勢を、目標座標Σ０ＴＤ２として示している。
【００３０】
次に、ロボット制御装置１０は、チャック機構を開いた状態でツールＣ２を部品８まで移動させ、チャック機構を閉じることによって、ツールＣ２に部品８を把持させる。ここで、ツールＣ２は、部品８を側面から把持するものとし、図３においては、この場合のツールＣ２のワールド座標系における位置および姿勢を、目標座標Σ０ＴＤ３として示している。
【００３１】
最後に、ロボット制御装置１０は、ツールＣ２に側面から把持された状態で部品８を作業台９まで移動させ、チャック機構を開くことによって、部品８を作業台９に据え置く。図３においては、この場合のツールＣ２のワールド座標系における位置および姿勢を、目標座標Σ０ＴＤ４として示している。
【００３２】
このようにして、ツールＣ１またはＣ２が目標座標Σ０ＴＤ１ないしΣ０ＴＤ４に順次移動することによって、部品７および８は、一体に組み立てられたうえで、作業台９に据え置かれる。以下、各目標座標への移動ごとに、ロボット制御装置１０の動作について説明する。
【００３３】
＝＝＝ツールＣ１の目標座標Σ０ＴＤ１への移動時のロボット制御装置の動作＝＝＝
まず、図１、図２、および図５を適宜参照して、ツールＣ１の目標座標Σ０ＴＤ１への移動時のロボット制御装置１０の動作について説明する。
【００３４】
制御部１０１は、制御信号ＣＮＴを出力して多関節ロボットを制御するとともに、ロボット先端部１２の現在座標Σ０ＴＲを出力する。また、記憶部１０２には、対象ツールＣｍの目標座標が移動順に記憶されている。すなわち、本実施形態では、対象ツールＣ１の目標座標Σ０ＴＤ１、Σ０ＴＤ２、対象ツールＣ２の目標座標Σ０ＴＤ３、Σ０ＴＤ４が当該順序で記憶されている。さらに、記憶部１０２には、ロボット先端部１２に固定されているツールごとの相対座標が記憶されている。すなわち、本実施形態では、ツールＣ１の相対座標ΣＲＴＣ１およびツールＣ２の相対座標ΣＲＴＣ２が記憶されている。
【００３５】
ロボット制御装置１０のうち、ツール座標算出部１０３、ツール軌道算出部１０４、およびロボット軌道算出部１０５の機能は、例えば、制御部１０１および記憶部１０２を備えるコンピュータによって実現することができる。
【００３６】
図２は、ツール座標算出部１０３、ツール軌道算出部１０４、およびロボット軌道算出部１０５に相当する機能をコンピュータに実現させるためのプログラムの動作を示している。
【００３７】
プログラムの処理が開始されると（Ｓ１）、まず、ｎ＝１としてＳ２からＳ７までのループ処理を行う。当該ループ処理においては、まず、制御部１０１からロボット先端部１２の現在座標Σ０ＴＲが入力される（Ｓ２）。また、記憶部１０２から、対象ツールＣ１の目標座標Σ０ＴＤ１を読み出し、さらに、当該対象ツールＣ１の相対座標ΣＲＴＣ１を読み出す（Ｓ３）。
【００３８】
次に、ロボット先端部１２の現在座標Σ０ＴＲと対象ツールＣ１の相対座標ΣＲＴＣ１との積を、対象ツールＣ１の現在座標Σ０ＴＣ１として算出する（Ｓ４）。したがって、当該Ｓ４の処理は、ツール座標算出部１０３に相当する機能を実現し、
（Σ０ＴＣ１）＝（Σ０ＴＲ）（ΣＲＴＣ１）
と算出される。この場合、ロボット先端部１２の現在座標Σ０ＴＲ、対象ツールＣ１の相対座標ΣＲＴＣ１、および対象ツールＣ１の現在座標Σ０ＴＣ１は、それぞれ第１ないし第３の同次変換行列に相当する。
【００３９】
次に、対象ツールＣ１の現在座標Σ０ＴＣ１と目標座標Σ０ＴＤ１とに基づいて、対象ツールＣ１のワールド座標系における軌道Σ０Ｏ１Ｃ１を算出する（Ｓ５）。例えば、対象ツールＣ１の現在座標Σ０ＴＣ１と目標座標Σ０ＴＤ１との差に基づいて、図５に示すように、対象ツールＣ１の現在位置と目標位置とを結ぶ直線軌道を算出することができる。したがって、当該Ｓ５の処理は、ツール軌道算出部１０４に相当する機能を実現している。また、この場合、対象ツールＣ１の目標座標Σ０ＴＤ１および軌道Σ０Ｏ１Ｃ１は、それぞれ第４の同次変換行列および第１の軌道に相当する。
【００４０】
次に、対象ツールＣ１の軌道Σ０Ｏ１Ｃ１と相対座標ΣＲＴＣ１（第２の同次変換行列）の逆行列との積を、ロボット先端部１２のワールド座標系における軌道Σ０Ｏ１Ｒとして算出する（Ｓ６）。したがって、当該Ｓ６の処理は、ロボット軌道算出部１０５に相当する機能を実現し、
（Σ０Ｏ１Ｒ）＝（Σ０Ｏ１Ｃ１）（ΣＲＴＣ１）−１
と算出される。この場合、ロボット先端部１２の軌道Σ０Ｏ１Ｒは、第２の軌道に相当する。
【００４１】
このようにして、ロボット制御装置１０は、例えば図５に示すように、ロボット先端部１２の軌道Σ０Ｏ１Ｒを算出することができる。そして、当該算出された軌道Σ０Ｏ１Ｒに基づいて、ロボット先端部１２が軌道Σ０Ｏ１Ｒに沿って移動するようにロボット本体１１を制御することによって、対象ツールＣ１を軌道Σ０Ｏ１Ｃ１に沿って移動させることができる（Ｓ７）。したがって、部品７を上方から把持するための位置および姿勢にツールＣ１を移動させることができる。
【００４２】
＝＝＝ツールＣ１の目標座標Σ０ＴＤ２への移動時のロボット制御装置の動作＝＝＝
次に、図２および図６を適宜参照して、ツールＣ１の目標座標Σ０ＴＤ２への移動時のロボット制御装置１０の動作について説明する。
【００４３】
この場合、ロボット制御装置１０は、図２において、ｎ＝２としてＳ２からＳ７までのループ処理を行うこととなる。当該ループ処理においても、まず、制御部１０１からロボット先端部１２の現在座標Σ０ＴＲが入力される（Ｓ２）。また、記憶部１０２から、対象ツールＣ１の目標座標Σ０ＴＤ２を読み出し、さらに、当該対象ツールＣ１の相対座標ΣＲＴＣ１を読み出す（Ｓ３）。
【００４４】
次に、ロボット先端部１２の現在座標Σ０ＴＲと対象ツールＣ１の相対座標ΣＲＴＣ１との積を、対象ツールＣ１の現在座標Σ０ＴＣ１として算出する（Ｓ４）。したがって、
（Σ０ＴＣ１）＝（Σ０ＴＲ）（ΣＲＴＣ１）
と算出される。なお、この時点では、対象ツールＣ１の現在座標Σ０ＴＣ１は、ｎ＝１の場合の目標座標Σ０ＴＤ１から移動していないため、当該Ｓ４の処理を省略することも可能である。
【００４５】
次に、対象ツールＣ１の現在座標Σ０ＴＣ１と目標座標Σ０ＴＤ２とに基づいて、対象ツールＣ１のワールド座標系における軌道Σ０Ｏ２Ｃ１を算出する（Ｓ５）。そして、対象ツールＣ１の軌道Σ０Ｏ２Ｃ１と相対座標ΣＲＴＣ１の逆行列との積を、ロボット先端部１２のワールド座標系における軌道Σ０Ｏ２Ｒとして算出する（Ｓ６）。したがって、
（Σ０Ｏ２Ｒ）＝（Σ０Ｏ２Ｃ１）（ΣＲＴＣ１）−１
と算出される。
【００４６】
このようにして、ロボット制御装置１０は、例えば図６に示すように、ロボット先端部１２の軌道Σ０Ｏ２Ｒを算出することができる。そして、当該算出された軌道Σ０Ｏ２Ｒに基づいて、ロボット先端部１２が軌道Σ０Ｏ２Ｒに沿って移動するようにロボット本体１１を制御することによって、対象ツールＣ１を軌道Σ０Ｏ２Ｃ１に沿って移動させることができる（Ｓ７）。したがって、ツールＣ１に上方から把持された状態で部品７を部品８の孔部の真上まで移動させることができる。
【００４７】
＝＝＝ツールＣ２の目標座標Σ０ＴＤ３への移動時のロボット制御装置の動作＝＝＝
次に、図２および図７を適宜参照して、ツールＣ２の目標座標Σ０ＴＤ３への移動時のロボット制御装置１０の動作について説明する。
【００４８】
この場合、ロボット制御装置１０は、図２において、ｎ＝３としてＳ２からＳ７までのループ処理を行うこととなる。当該ループ処理においても、まず、制御部１０１からロボット先端部１２の現在座標Σ０ＴＲが入力される（Ｓ２）。また、記憶部１０２から、対象ツールＣ２の目標座標Σ０ＴＤ３を読み出し、さらに、当該対象ツールＣ２の相対座標ΣＲＴＣ２を読み出す（Ｓ３）。
【００４９】
次に、ロボット先端部１２の現在座標Σ０ＴＲと対象ツールＣ２の相対座標ΣＲＴＣ２との積を、対象ツールＣ２の現在座標Σ０ＴＣ２として算出する（Ｓ４）。したがって、
（Σ０ＴＣ２）＝（Σ０ＴＲ）（ΣＲＴＣ２）
と算出される。なお、ツールＣ１からＣ２へと対象ツールが切り替わっているため、当該Ｓ４の処理を省略することはできない。
【００５０】
次に、対象ツールＣ２の現在座標Σ０ＴＣ２と目標座標Σ０ＴＤ３とに基づいて、対象ツールＣ２のワールド座標系における軌道Σ０Ｏ３Ｃ２を算出する（Ｓ５）。そして、対象ツールＣ２の軌道Σ０Ｏ３Ｃ２と相対座標ΣＲＴＣ２の逆行列との積を、ロボット先端部１２のワールド座標系における軌道Σ０Ｏ３Ｒとして算出する（Ｓ６）。したがって、
（Σ０Ｏ３Ｒ）＝（Σ０Ｏ３Ｃ２）（ΣＲＴＣ２）−１
と算出される。
【００５１】
このようにして、ロボット制御装置１０は、例えば図７に示すように、ロボット先端部１２の軌道Σ０Ｏ３Ｒを算出することができる。そして、当該算出された軌道Σ０Ｏ３Ｒに基づいて、ロボット先端部１２が軌道Σ０Ｏ３Ｒに沿って移動するようにロボット本体１１を制御することによって、対象ツールＣ２を軌道Σ０Ｏ３Ｃ２に沿って移動させることができる（Ｓ７）。したがって、部品８を側面から把持するための位置および姿勢にツールＣ２を移動させることができる。
【００５２】
＝＝＝ツールＣ２の目標座標Σ０ＴＤ４への移動時のロボット制御装置の動作＝＝＝
次に、図２および図８を適宜参照して、ツールＣ２の目標座標Σ０ＴＤ４への移動時のロボット制御装置１０の動作について説明する。
【００５３】
この場合、ロボット制御装置１０は、図２において、ｎ＝４としてＳ２からＳ７までのループ処理を行うこととなる。当該ループ処理においても、まず、制御部１０１からロボット先端部１２の現在座標Σ０ＴＲが入力される（Ｓ２）。また、記憶部１０２から、対象ツールＣ２の目標座標Σ０ＴＤ４を読み出し、さらに、当該対象ツールＣ２の相対座標ΣＲＴＣ２を読み出す（Ｓ３）。
【００５４】
次に、ロボット先端部１２の現在座標Σ０ＴＲと対象ツールＣ２の相対座標ΣＲＴＣ２との積を、対象ツールＣ２の現在座標Σ０ＴＣ２として算出する（Ｓ４）。したがって、
（Σ０ＴＣ２）＝（Σ０ＴＲ）（ΣＲＴＣ２）
と算出される。なお、この時点では、対象ツールＣ２の現在座標Σ０ＴＣ２は、ｎ＝３の場合の目標座標Σ０ＴＤ３から移動していないため、当該Ｓ４の処理を省略することも可能である。
【００５５】
次に、対象ツールＣ２の現在座標Σ０ＴＣ２と目標座標Σ０ＴＤ４とに基づいて、対象ツールＣ２のワールド座標系における軌道Σ０Ｏ４Ｃ２を算出する（Ｓ５）。そして、対象ツールＣ２の軌道Σ０Ｏ４Ｃ２と相対座標ΣＲＴＣ２の逆行列との積を、ロボット先端部１２のワールド座標系における軌道Σ０Ｏ４Ｒとして算出する（Ｓ６）。したがって、
（Σ０Ｏ４Ｒ）＝（Σ０Ｏ４Ｃ２）（ΣＲＴＣ２）−１
と算出される。
【００５６】
このようにして、ロボット制御装置１０は、例えば図８に示すように、ロボット先端部１２の軌道Σ０Ｏ４Ｒを算出することができる。そして、当該算出された軌道Σ０Ｏ４Ｒに基づいて、ロボット先端部１２が軌道Σ０Ｏ４Ｒに沿って移動するようにロボット本体１１を制御することによって、対象ツールＣ２を軌道Σ０Ｏ４Ｃ２に沿って移動させることができる（Ｓ７）。したがって、ツールＣ２に側面から把持された状態で部品８を作業台９まで移動させることができ、処理を終了する（Ｓ８）。
【００５７】
前述したように、ロボット制御装置１０において、対象ツールＣｍの軌道Σ０ＯｎＣｍを算出し、対象ツールＣｍの相対座標ΣＲＴＣｍの逆行列との積を、ロボット先端部１２の軌道Σ０ＯｎＲとして算出し、ロボット先端部１２が軌道Σ０ＯｎＲに沿って移動するようにロボット本体１１を制御することによって、対象ツールＣｍを軌道Σ０ＯｎＣｍに沿って移動させることができる。したがって、ロボット本体１１の制御のみによって対象ツールＣｍの位置および姿勢を制御することができ、ツールＣ１およびＣ２を切り替えて使用することができる。
【００５８】
また、対象ツールＣｍの現在座標Σ０ＴＣｍと目標座標Σ０ＴＤｎとの差に基づいて、対象ツールＣｍの現在位置と目標位置とを結ぶ直線軌道を算出することによって、対象ツールＣｍを最短距離で移動させ、移動時間を短縮することができる。
【００５９】
また、図３および図４に示したロボットシステムにおいて、ロボット先端部１２が軌道Σ０ＯｎＲに沿って移動するようにロボット本体１１を制御することによって、ロボット本体１１の制御のみによって対象ツールＣｍの位置および姿勢を制御することができるため、多関節ロボットの可搬重量を大きくすることなく複数のツールを切り替えて使用することができる。
【００６０】
また、チャック機構を備えたツールをロボット先端部１２に固定することによって、ロボット本体１１の制御のみによってツールの位置および姿勢を高精度に制御し、移動対象物を確実に把持することができる。
【００６１】
また、ロボット制御装置１０のツール座標算出部１０３、ツール軌道算出部１０４、およびロボット軌道算出部１０５に相当する機能をコンピュータに実現させるためのプログラムにおいて、ロボット先端部１２および対象ツールＣｍの座標をそれぞれ同次変換行列ＴＲおよびＴＣｍとして示すことによって、同次変換行列の演算を用いてロボット先端部１２の軌道Σ０ＯｎＲを算出することができる。
【００６２】
また、ロボット先端部１２に固定されたツールＣｍの軌道Σ０ＯｎＣｍを算出し、ツールＣｍの相対座標ΣＲＴＣｍの逆行列との積を、ロボット先端部１２の軌道Σ０ＯｎＲとして算出し、ロボット先端部１２が軌道Σ０ＯｎＲに沿って移動するようにロボット本体１１を制御することによって、ロボット本体１１の制御のみによってツールＣｍの位置および姿勢を制御することができる。
【００６３】
なお、上記実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物も含まれる。
【００６４】
上記実施形態では、図４に示したように、ロボット先端部１２には、チャック機構を備えたツールＣ１およびＣ２が互いに直交するように固定されているが、これに限定されるものではない。ロボット先端部１２に固定されるツールは、部品加工機構や液体供給機構などを備える他の種類のツールであってもよく、それぞれ異なる種類のツールであってもよい。また、ツールが互いに直交するように固定される必要はなく、さらに、３つ以上のツールをロボット先端部１２に固定してもよい。
【符号の説明】
【００６５】
７、８      部品
９          作業台
１０        ロボット制御装置
１１        ロボット本体
１２        ロボット先端部
１０１      制御部
１０２      記憶部
１０３      ツール座標算出部
１０４      ツール軌道算出部
１０５      ロボット軌道算出部
【図１】
2011189440.tif 000008
【図２】
2011189440.tif 000009
【図３】
2011189440.tif 000010
【図４】
2011189440.tif 000011
【図５】
2011189440.tif 000012
【図６】
2011189440.tif 000013
【図７】
2011189440.tif 000014
【図８】
2011189440.tif 000015