(57)【要約】【課題】  ロボット装置が設置されている部分の振動に対応し、振動の影響を低減させることができるロボット装置を提供する。【解決手段】  所定の装置に設けられるロボット装置であって、前記ロボット装置を制御する制御装置を備え、前記制御装置は、前記所定の装置のモデルデータと、前記ロボット装置が動作する軌道データとから、前記所定の装置に生じる振動を算出し、前記振動に基づいて、前記ロボット装置を制御することを特徴とするロボット装置を採用した。【選択図】  図５
2020097101.tif 000002
【特許請求の範囲】
【請求項１】
所定の装置に設けられるロボット装置であって、
前記ロボット装置を制御する制御装置を備え、
前記制御装置は、
前記所定の装置のモデルデータと、
前記ロボット装置が動作する軌道データとから、前記所定の装置に生じる振動を算出し、前記振動に基づいて、前記ロボット装置を制御することを特徴とするロボット装置。
【請求項２】
請求項１に記載のロボット装置において、
前記制御装置は、
前記所定の装置に生じる振動を低減するように、前記軌道データを補正することを特徴とするロボット装置。
【請求項３】
請求項１または２に記載のロボット装置において、
前記制御装置は、
前記ロボット装置の所定の一部と前記所定の装置の一部との相対位置を維持するように、前記軌道データを補正することを特徴とするロボット装置。
【請求項４】
請求項３に記載のロボット装置において、
前記ロボット装置は、対象物を操作するエンドエフェクタを備えており、
前記所定の装置は、前記対象物を載置する載置台を備えており、
前記ロボット装置の所定の一部はエンドエフェクタであり、前記所定の装置の一部は載置台であることを特徴とするロボット装置。
【請求項５】
請求項１から４のいずれか１項に記載のロボット装置において、
前記制御装置は、
前記軌道データと、前記モデルデータとから、前記所定の装置に生じる力を算出し、
前記所定の装置に生じる力に基づいて、前記所定の装置に生じる振動を低減するように、前記軌道データを補正することを特徴とするロボット装置。
【請求項６】
請求項１に記載のロボット装置において、
前記制御装置は、
前記軌道データと、前記モデルデータとから、前記所定の装置に生じる力を算出し、前記所定の装置に生じる力に基づいて、前記所定の装置に生じる振動を低減するように、前記軌道データを補正する第１の補正モードと、
前記ロボット装置の所定の一部と前記所定の装置との相対位置を維持するように、前記軌道データを補正する第２の補正モードと、を有し、
前記軌道データを補正する際、前記ロボットの動作の内容により、前記第１の補正モードと、前記第２の補正モードとのいずれかを、選択することを特徴とするロボット装置。
【請求項７】
請求項６に記載のロボット装置において、
前記制御装置は、
前記軌道データの種類が、対象物の搬送であると設定されている場合、前記第１の補正モードで前記軌道データを補正し、
前記軌道データの種類が、対象物の組立であると設定されている場合、前記第２の補正モードで前記軌道データを補正することを特徴とするロボット装置。
【請求項８】
請求項１から７のいずれか１項に記載のロボット装置において、
前記ロボット装置の動作を検出する検出手段を備え、
前記検出手段からの検出結果により、前記モデルデータを修正することを特徴とするロボット装置。
【請求項９】
請求項８に記載のロボット装置において、
前記検出手段は、
前記ロボット装置を構成する部品の位置情報を検出する位置検出手段と、
前記ロボット装置を構成する部品にかかる荷重を検出する荷重検出手段と、
前記ロボット装置を構成する部品にかかるトルクを検出するトルク検出手段と、
のいずれか１つ、もしくはいずれか２つ、もしくは全てであることを特徴とするロボット装置。
【請求項１０】
請求項１から９のいずれか１項に記載のロボット装置において、
前記制御装置は、
前記軌道データを補正する際、前記所定の装置に生じる残留振動を算出し、前記残留振動に基づいて前記軌道データを補正することを特徴とするロボット装置。
【請求項１１】
請求項１から１０のいずれか１項に記載のロボット装置において、
前記所定の装置には、前記ロボット装置以外にも動作を行う機構を備えており、
前記制御装置は、
前記軌道データを補正する際、前記機構のモデルデータを用いて前記機構の動作により生じる前記所定の装置の振動を算出し、
算出した前記所定の装置の振動に基づいて前記軌道データを補正することを特徴とするロボット装置。
【請求項１２】
請求項１から１１のいずれか１項に記載のロボット装置において、
前記ロボット装置は、前記所定の装置に吊り下げられていることを特徴とするロボット装置。
【請求項１３】
請求項１から１１のいずれか１項に記載のロボット装置において、
前記所定の装置は、移動可能であることを特徴とするロボット装置。
【請求項１４】
請求項１から１１のいずれか１項に記載のロボット装置において、
前記所定の装置は、前記ロボット装置が動作することで変形する部位を備えていることを特徴とするロボット装置。
【請求項１５】
所定の装置にロボット装置が設けられたロボットシステムであって、
前記ロボット装置を制御する制御装置を備え、
前記制御装置は、
前記架台のモデルデータと、
前記ロボット装置が動作する軌道のデータとから、前記所定の装置に生じる振動を算出し、前記振動に基づいて、前記ロボット装置を制御することを特徴とするロボットシステム。
【請求項１６】
所定の装置に設けられるロボット装置の制御方法であって、
前記ロボット装置は、前記ロボット装置を制御する制御装置を備え、
前記制御装置は、
前記所定の装置のモデルデータと、
前記ロボット装置が動作する軌道のデータとから、前記所定の装置に生じる振動を算出する算出工程と、
前記振動に基づいて、前記ロボット装置を制御する制御工程と、を有することを特徴とする制御方法。
【請求項１７】
所定の装置に設けられるロボット装置を用いた物品の製造方法であって、
前記ロボット装置は、前記ロボット装置を制御する制御装置を備え、
前記制御装置は、
前記所定の装置のモデルデータと、
前記ロボット装置が動作する軌道のデータとから、前記所定の装置に生じる振動を算出する算出工程と、
前記振動に基づいて、前記ロボット装置を制御し、物品の製造を行う製造工程と、を有していることを特徴とする物品の製造方法。
【請求項１８】
請求項１６に記載の制御方法または請求項１７に記載の製造方法を、実行させるための制御プログラム。
【請求項１９】
請求項１８に記載の制御プログラムを記録した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置に関する。
【背景技術】
【０００２】
現在、多くの産業において多関節型のロボットアームといったロボット装置を架台等に設置したセル式のロボットシステムが、生産現場の省人化や自動化のために工場等で広く利用されている。特に近年では、少子化や人件費の高騰などから生産の自動化が加速している。さらに工場の限られたスペースを有効利用してロボットシステムの設置数を増やし、生産性向上を図ることも求められている。
【０００３】
そのため、ロボット装置を設置する架台において、ロボットシステムの省スペース化を図るために、低剛性ではあるがサイズの小さい架台をロボットシステムに用いたいという要望がある。
【０００４】
しかしながら、生産に用いられるロボットシステムには生産性の観点からサイクルタイムを短くすることも求められるため、ロボット装置には高速、高加減速な動作が要求される。ゆえに、例えば架台といったロボット装置を設置する部分には高負荷がかかり、架台のサイズが小さいと、架台が大きく振動してしまい、ロボット装置の制御に影響を及ぼすという課題がある。
【０００５】
特許文献１に記載のロボットは、ロボットの手先と架台に、慣性力を測定できる慣性センサをそれぞれ搭載している。これらの慣性センサから、ロボットの手先と架台の間に発生する振動量を求め、ロボットの手先と架台の間に発生する振動量を補正するように、ロボットを動作させる。こうすることで、ロボットを高速に動作させ、架台が振動したとしても、ロボットの手先と架台との相対位置を維持し、架台の振動がロボット装置の制御に影響を及ぼすことを低減することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１０４７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、特許文献１のロボットは、ロボットまたは架台の振動が発生してから、慣性センサにより振動を検知し、振動を抑制している。つまり、フィードバック制御により振動の影響を抑制する手法である。
【０００８】
しかしながら、フィードバック制御による振動抑制の場合、ロボット装置の制御帯域を考慮すると、振動の影響を十分に抑制することは難しい。ロボット装置の制御帯域の周波数より高い周波数で架台等のロボット装置が設置される部分に振動が生じてしまった場合、生じた振動に対して振動抑制のためのフィードバック制御が遅れてしまうからである。振動の抑制が十分でない場合、ロボット装置を用いた作業の失敗の原因となりうる。
【０００９】
以上の課題を鑑み、本発明では、ロボット装置が設置されている部分の振動に対応し、振動の影響を低減させることができるロボット装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明においては、所定の装置に設けられるロボット装置であって、前記ロボット装置を制御する制御装置を備え、前記制御装置は、前記所定の装置のモデルデータと、前記ロボット装置が動作する軌道データとから、前記所定の装置に生じる振動を算出し、前記振動に基づいて、前記ロボット装置を制御することを特徴とするロボット装置を採用した。
【発明の効果】
【００１１】
本発明によれば、ロボット装置が設置されている部分の振動に対応でき、振動の影響を低減することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態におけるロボット装置１００とロボットシステム１０００の概略構成を示す図である。
【図２】第１の実施形態におけるロボット装置１００のブロック図である。
【図３】第１の実施形態におけるロボット装置１００の制御ブロック図である。
【図４】第１の実施形態における補正軌道データ演算部４６１を詳しく表した制御ブロック図である。
【図５】第１の実施形態における制御フローチャートである。
【図６】第１の実施形態における補正モード１を実施した際の効果を説明するグラフである。
【図７】第１の実施形態における補正モード２を実施した際の効果を説明するグラフである。
【図８】第２の実施形態におけるロボット装置１００の制御ブロック図である。
【図９】その他の実施形態におけるロボット装置１００の概略図である。
【発明を実施するための形態】
【００１３】
以下、添付図面に示す実施形態を参照して本発明を実施するための形態を説明する。なお、以下に示す実施形態はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１４】
（第１の実施形態）
図１は、本実施形態におけるロボット装置１００を、ＸＹＺ座標系の任意の方向から見た平面図である。図１（ａ）はＸＺ平面図、図１（ｂ）はＹＺ平面図を示す。図１（ｃ）は、ロボット装置１００を架台６００に設置したロボットシステム１０００を表す図である。なお以下の図面において、図中の矢印Ｘ、Ｙ、Ｚはロボットシステム１０００全体の座標系を示す。一般に、ロボットシステムでは、ＸＹＺ３次元座標系は、設置環境全体のグローバル座標系の他に、制御の都合などによって、ロボットハンド、フィンガなどに関して適宜ローカル座標系を用いる場合がある。本実施形態ではロボットシステム１０００全体の座標系をＸＹＺ、ローカル座標系をｘｙｚで表す。
【００１５】
図１に示すように、ロボット装置１００は、多関節のロボットアーム本体２００、ロボットハンド本体３００、ロボットアーム本体２００、ロボットハンド本体３００の動作を制御する制御装置４００を備えている。
【００１６】
また、制御装置４００に教示データを送信する教示装置としての外部入力装置５００を備えている。外部入力装置５００の一例としてティーチングペンダントが挙げられ、操作者がロボットアーム本体２００やロボットハンド本体３００の動作を指定するのに用いる。
【００１７】
本実施形態では、ロボットアーム本体２００は垂直多関節である。以下、エンドエフェクタとしてロボットアーム本体２００の先端部に設けられるものが、ロボットハンドである場合について説明するが、これに限定するものではなく、ツール等であってもよい。
【００１８】
ロボットアーム本体２００の基端となるリンク２１００は、基台２０９に設けられ、天板６０３に基台２０９が埋め込まれた状態で固定されている。本実施形態ではロボットアーム本体２００の向きを鉛直下向き（−Ｚ方向）として説明するが、ユースケースによって向きを変えてもよい。
【００１９】
ロボットハンド本体３００は、部品やツール等の対象物を把持するものである。本実施形態のロボットハンド本体３００は不図示の駆動機構により２本の指部を開閉し、上記対象物の把持ないし開放を行う。対象物をロボットアーム本体２００に対して相対的に変位させないように把持できれば良い。
【００２０】
ロボットアーム本体２００は、複数の関節、例えば６つ関節（６軸）を有している。ロボットアーム本体２００は、各関節Ｊ１〜Ｊ６を各回転軸Ａ１〜Ａ６まわりにそれぞれ回転駆動させる複数（６つ）のサーボモータ２１１〜２１６を有している。
【００２１】
ロボットアーム本体２００は、複数のリンク２１００〜２１０６が各関節Ｊ１〜Ｊ６で回転可能に連結されている。ここで、ロボットアーム本体２００の基端側から先端側に向かって、リンク２１００〜２１０６が順に直列に連結されている。ロボットアーム本体２００は、可動範囲の中であれば、任意の３次元位置で任意の３方向の姿勢に、ロボットアーム本体２００のエンドエフェクタ（ロボットハンド本体３００）を向けることができる。
【００２２】
ロボットアーム本体２００の位置及び姿勢は、座標系で表現することができる。図１中の座標系Ｔｏは、ロボットアーム本体２００の基端、即ち基台２０９に固定した座標系を表し、座標系Ｔｅはロボットアーム本体２００の手先（ロボットハンド本体３００）に固定した座標系を表す。
【００２３】
ここで、ロボットアーム本体２００の手先とは、本実施形態では、ロボットハンド本体３００が物体を把持していない場合には、ロボットハンド本体３００のことである。ロボットハンド本体３００が物体を把持している場合は、ロボットハンド本体３００と把持している物体（例えば部品やツール等）とを含めてロボットアーム本体２００の手先という。つまり、ロボットハンド本体３００が物体を把持している状態であるか物体を把持していない状態であるかにかかわらず、エンドエフェクタであるロボットハンド本体３００を手先という。
【００２４】
各関節Ｊ１〜Ｊ６は、それぞれモータ２１１〜２１６と、各モータ２１１〜２１６にそれぞれ接続されたセンサ部２２１〜２２６とを有している。各センサ部２２１〜２２６は、各モータの回転軸の位置を検出する位置センサ（角度センサ）と、各関節Ｊ１〜Ｊ６で生じるトルクを検出するトルクセンサとを有している。
【００２５】
また、各関節Ｊ１〜Ｊ６は、不図示の減速機を有し、直接、又は不図示のベルトやベアリング等の伝達部材を介して各関節で駆動されるリンク２１００〜２１０６に接続されている。
【００２６】
基台２０９の内部には、各モータ２１１〜２１６の駆動を制御する駆動制御部としてのサーボ制御部２３０が配置されている。
【００２７】
サーボ制御部２３０は、入力された各関節Ｊ１〜Ｊ６に対応する各トルク指令値に基づき、各関節Ｊ１〜Ｊ６のトルクがトルク指令値に追従するよう、各モータ２１１〜２１６に電流を出力し、各モータ２１１〜２１６の駆動を制御する。
【００２８】
なお、本実施形態では、サーボ制御部２３０が１つの制御装置で構成されているものとして説明しているが、各モータ２１１〜２１６にそれぞれ対応した複数の制御装置の集合体で構成されていてもよい。また、本実施形態では、サーボ制御部２３０は、基台２０９の内部に配置されているが、制御装置４００の内部に配置されていてもよい。
【００２９】
以上の構成により、ロボットアーム本体２００のリンクの一部を折りたたんで、ロボットハンド本体３００を任意の位置に動作させ、所望の作業を行わせることができる。
【００３０】
図１（ｃ）より、ロボットシステム１０００は、ロボット装置１００と、ロボット装置１００を設置する架台６００により構成される。架台６００は、支柱６０１に天板６０３およびワークの載置台としての作業台６０２を組み付け製作される。
【００３１】
天板６０３には、ロボット装置１００が懸架されており、ロボットアーム本体２００の先端にはエンドエフェクタとしてロボットハンド本体３００が設けられている。
【００３２】
ロボットハンド本体３００により、作業台６０２に載置されているワークＷａを把持し、ワークＷｂにワークＷａを組み付けることで物品の製造を行う。
【００３３】
この際、ワークの状態を検査したり、ロボットハンド本体３００とワークＷａ、Ｗｂの相対位置を精密に測定するために撮像装置７００を用いる。
【００３４】
撮像装置７００は、ロボットアーム本体２００と同様に、天板６０３に懸架され、架台６００に固定されているものとする。
【００３５】
図２は、本実施形態におけるロボット装置１００を示すブロック図である。ロボット装置１００に接続される制御装置４００は、コンピュータで構成されており、制御部（処理部）としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１を備えている。
【００３６】
また制御装置４００は、記憶部として、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０４を備えている。また、制御装置４００は、記録ディスクドライブ４０５、各種のインタフェース４０６〜４０９を備えている。
【００３７】
ＣＰＵ４０１には、ＲＯＭ４０２、ＲＡＭ４０３、ＨＤＤ４０４、記録ディスクドライブ４０５、各種のインタフェース４０６〜４０９が、バス４１０を介して接続されている。ＲＯＭ４０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ４０３は、ＣＰＵ４０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００３８】
ＨＤＤ４０４は、ＣＰＵ４０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ４０１に、演算処理を実行させるためのプログラム４３０を記録するものである。ＣＰＵ４０１は、ＨＤＤ４０４に記録（格納）されたプログラム４３０に基づいてロボット制御方法の各工程を実行する。
【００３９】
記録ディスクドライブ４０５は、記録ディスク４３１に記録された各種データやプログラム等を読み出すことができる。
【００４０】
外部入力装置５００はインタフェース４０６に接続されている。ＣＰＵ４０１はインタフェース４０６及びバス４１０を介して外部入力装置５００からの教示データの入力を受ける。
【００４１】
サーボ制御部２３０は、インタフェース４０９に接続されている。ＣＰＵ４０１は、サーボ制御部２３０、インタフェース４０９及びバス４１０を介して各センサ部２２１〜２２６から検知結果を取得する。また、ＣＰＵ４０１は、各関節のトルク指令値のデータを所定時間間隔でバス４１０及びインタフェース４０９を介してサーボ制御部２３０に出力する。
【００４２】
インタフェース４０７には、モニタ４２１が接続されており、モニタ４２１には、ＣＰＵ４０１の制御の下、各種画像が表示される。インタフェース４０８は、書き換え可能な不揮発性メモリや外付けＨＤＤ等の記憶部である外部記憶装置４２２が接続可能に構成されている。
【００４３】
なお本実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ４０４であり、ＨＤＤ４０４にプログラム４３０が格納される場合について説明するが、これに限定するものではない。プログラム４３０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。
【００４４】
例えば、プログラム４３０を供給するための記録媒体としては、図２に示すＲＯＭ４０２、記録ディスク４３１、外部記憶装置４２２等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性メモリ、ＲＯＭ等を用いることができる。
【００４５】
図３は、本実施形態におけるロボット装置１００の制御系を示す制御ブロック図である。制御装置４００のＣＰＵ４０１（図２）は、プログラム４３０（図２）を実行することにより、ロボット装置１００が動作する。
【００４６】
図３より、位置教示データ５０１は、ロボットアーム本体２００の手先であるロボットハンド本体３００の位置の目標値であり、作業者が外部入力装置５００を用いて設定する。なお、本実施形態では、ロボットハンド本体３００の位置の目標値を外部入力装置５００により設定するが、あらかじめロボットハンド本体３００の位置の目標値を、ＲＯＭ４０２に記憶させておいても良い。
【００４７】
補正モード選択部５０２は、後述する、ロボット装置１００が動作することにより発生する架台６００の振動を低減させるようにロボット装置１００の軌道データを補正する際の補正モードの選択に関する変数である。補正モードの選択は、作業者がロボット装置１００の動作の内容に基づき、外部入力装置５００を用いて設定する。
【００４８】
なお、ロボット装置１００の動作の内容を予め、ＲＯＭ４０２に記憶させておき、ロボット装置１００の動作の内容を参照させ、比較させることで、補正モードの選択を自動で行わせても良い。
【００４９】
本実施形態において、補正モードは、架台６００そのものの振動を低減するモードと、架台６００とロボットハンド本体３００との相対的な振動を低減するモードと、が存在する。さらに架台６００の振動補正を行わないモードも存在する。
【００５０】
以上より、外部入力装置５００は、作業者の操作により、位置教示データと、補正モードとの情報を制御装置４００のＣＰＵ４０１に出力する。
【００５１】
次に、制御装置４００の、軌道データ生成部４５０と、補正軌道データ生成部４６０と、関節角度指令演算部４７０について説明する。
【００５２】
軌道データ生成部４５０は、位置教示データ５０１からロボットハンド本体３００の座標系Ｔｅにおける軌道データＰｄを生成する。軌道データＰｄの生成はＲＲＴ（Ｒａｐｉｄｌｙ−Ｅｘｐｌｏｒｉｎｇ  Ｒａｎｄｏｍ  Ｔｒｅｅｓ）といった技術を利用し行われるものとする。また、ここで言う軌道データとは、ロボットアーム本体２００の各関節Ｊ１〜Ｊ６の制御周期毎の変位値を表すものとする。
【００５３】
補正軌道データ生成部４６０は、補正軌道データ演算部４６１を有しており、軌道データ生成部４５０で生成された軌道データＰｄと、補正モード選択部５０２から補正モードの情報が入力される。
【００５４】
さらに制御装置４００には、架台６００のシミュレーションモデルデータを記憶した架台モデルデータ記憶部４８０を有している。この架台モデルデータ記憶部４８０から、架台６００のモデルデータが補正軌道データ演算部４６１に入力される。
【００５５】
補正軌道データ演算部４６１は、軌道データＰｄと、架台の６００のモデルデータとにより、選択された補正モードを用いて補正軌道データＰｃを演算する。補正軌道データ生成部４６０の詳細については後述する。
【００５６】
関節角度指令演算部４７０には、軌道データ生成部４５０で生成された軌道Ｐｄと、補正軌道データ生成部４６０で生成された補正軌道データＰｃとを加算した、目標軌道データＰｒが入力さる。
【００５７】
目標軌道データＰｒから、逆運動学計算により各関節Ｊ１〜Ｊ６の角度指令値（位置指令値）ｑｄ１〜ｑｄ６を求め、ロボットアーム本体２００に出力する。
【００５８】
ロボットアーム本体２００の各関節Ｊ１〜Ｊ６に設けられたモータ制御部２３１〜２３６は、制御装置４００から角度指令値（位置指令値）ｑｄ１〜ｑｄ６が入力され、モータ２１１〜２１６を動作させる。
【００５９】
各センサ部２２１〜２２６は、位置センサ（角度センサ）５４１〜５４６と、トルクセンサ５５１〜５５６（トルク検出手段）とを有する。位置センサ５４１〜５４６は、モータ２１１〜２１６又は関節Ｊ１〜Ｊ６の角度（位置）をそれぞれ検知するものである。
【００６０】
本実施形態では、位置センサ５４１〜５４６は、モータ２１１〜２１６の位置情報となる角度を直接検知する。なお、関節Ｊ１〜Ｊ６の角度ｑ１〜ｑ６は、不図示の減速機の減速比等に基づき、位置センサ５４１〜５４６で検出される角度から求めることができる。したがって、位置センサ５４１〜５４６は、間接的に各関節Ｊ１〜Ｊ６の角度ｑ１〜ｑ６を検知する位置検出手段として機能する。トルクセンサ５５１〜５５６は、関節Ｊ１〜Ｊ６のトルクτ１〜τ６をそれぞれ検知する。
【００６１】
センサ部２２１〜２２６で検出された、角度ｑ１〜ｑ６は角度指令値ｑｄ１〜ｑｄ６にフィードバックされる。これにより、ロボットアーム本体２００の各リンクを高精度に制御することが可能となる。
【００６２】
図４は、本実施形態における補正軌道データ生成部４６０の制御ブロック図である。補正軌道データ生成部４６０は、補正軌道データを演算する補正軌道データ演算部４６１と、補正モード選択部４０２に基づき補正モードを切り換える補正モード切換部４６２とからなる。
【００６３】
また、補正軌道データ演算部４６１は、架台モデルデータ記憶部４８０から架台６００のモデルデータが入力されている。今回は、架台６００のモデルデータとして、架台６００全体の弾性係数と、架台６００全体の粘性係数、架台６００全体の質量成分の値、そしてロボット装置１００の設置向きを記憶しているものとする。
【００６４】
なお、ブロック図中の計算式において、ｓはラプラス演算子であり、１／ｓは積分演算、ｓは微分演算を表している。補正軌道データ生成部４６０は、架台４６０の振動の影響を低減するための補正軌道データＰｃを生成する機能を有している。
【００６５】
なお、本実施形態において補正モードとしては、３つの補正モードを考える。架台６００そのものの振動を低減するモードを補正モード１とする。架台６００とロボットハンド本体３００とを相対的に振動の影響を低減するモードを補正モード２とする。そして、架台６００の振動補正を行わないモードを補正モード３とする。
【００６６】
以下、各補正モードにおける補正軌道データＰｃの生成方法の例について詳述する。
【００６７】
まず補正モード１では、ロボットアーム本体２００が動作した際に生じる、架台６００のねじれ振動を抑制するための補正軌道データＰｃを生成し、架台６００の振動そのものを低減させることを目的とする。
【００６８】
軌道データ生成部４５０により生成された軌道データＰｄより、２階微分を行い軌道データＰｄの加速度成分を演算する。
【００６９】
架台モデルデータ記憶部４８０より入力された架台６００全体の各値から比例ゲインＫｂ１を算出し、軌道データＰｄの加速度成分に乗算することにより、架台６００のねじれ振動を低減する補正軌道データＰｃを演算する。
【００７０】
補正モード２では、ロボットアーム本体２００が動作した際に生じる、架台６００の振動成分を算出し、架台６００とロボットハンド本体３００との相対位置を維持するようにロボットハンド本体３００を動作させる補正軌道データＰｃを生成する。
【００７１】
これにより、架台６００が振動したとしても、ロボットハンド本体３００と架台６００のとの相対的な位置関係を同じようにすることができ、相対的に振動の影響を抑制することを目的とする。
【００７２】
軌道データ生成部４５０により生成された軌道Ｐｄより、２階微分を行い軌道Ｐｄの加速度成分を演算する。
【００７３】
次に架台モデルデータ記憶部４８０より入力された架台６００全体の各値から比例ゲインＫｂ２を算出する。
【００７４】
そして軌道データＰｄの加速度成分と、比例ゲインＫｂ２とからなる２次系の伝達関数から、架台６００とロボットハンド本体３００との相対位置を維持するようにロボットハンド本体３００を動作させる補正軌道データＰｃを演算する。
【００７５】
補正モード３では、架台６００の振動の低減を行わないので、軌道データＰｄに乗算する値はゼロとし、補正軌道データＰｃ＝軌道データＰｄとなる。
【００７６】
以上より、補正モード選択部５０２により補正モード切換部４６２で、補正モードが選択される。そして選択された補正モードに対応した上記の補正方法で、補正軌道データＰｃを生成し、ロボットアーム本体２００に入力される。
【００７７】
次に実際にロボットシステム１００を動作させる際の制御方法について詳述する。図５は本実施形態における制御方法のフローチャートを示している。
【００７８】
図５より、まずＳ１０１で、架台６００のモデルデータを設定する。架台６００は、ロボット装置１００の動作により変形する部位を有するものとする。ここでは作業者により架台６００全体の弾性係数と、架台６００全体の粘性係数、架台６００全体の質量成分の値、ロボット装置１００の設置向きが設定される。必要に応じて、ロボットシステム１０００のシミュレーションモデルをＣＡＤ等により設定しても良い。
【００７９】
次にＳ１０２で、ロボット装置１の動作を教示する。今回は、動作の教示を外部入力装置５００により作業者がロボット装置１の動作を教示する。その際、教示している動作がワークの搬送なのか、ワークの組立てなのかも合わせて設定する。
【００８０】
なお、上述したが、ロボット装置１の動作教示は、あらかじめシミュレーションソフト等で教示データを作成しておき、制御装置４００に記憶させても良い。その際も記憶させる教示データに、ワークの搬送なのか、ワークの組立てなのかの情報を紐づけて記憶させておく。
【００８１】
次に、Ｓ１０３で教示されたロボット装置１の教示情報から、ロボットアーム本体２００の軌道データＰｄを生成する。軌道データＰｄの生成方法は上述しているためここでの説明は割愛する。
【００８２】
そしてＳ１０４で架台６００のモデルデータと、軌道データＰｄを用い、軌道データＰｄでロボットアーム本体２００を動作させた場合に架台６００で生じるであろう振動の振動量を推定する。
【００８３】
今回は振動量として、架台６００全体の変位量を設定する。軌道データＰｄから、ロボットアーム本体２００の動作により生じる加速度と速度を算出し、その加速度と速度が架台６００にかかるものとする。
【００８４】
そして、架台６００全体の弾性係数と、架台６００全体の粘性係数、架台６００全体の質量成分の値と、架台６００にかかる加速度、速度を基に、インピーダンス制御モデルを解き、架台６００で生じるであろう振動の変位を振動量として算出する。
【００８５】
次にＳ１０５で、Ｓ１０４で算出した変位が、所定の値以上かどうか比較し、軌道データＰｄの補正が必要かどうか判定する。
【００８６】
Ｓ１０４で算出した変位が、所定の値以上であれば、軌道データＰｄの補正が必要と判定し、Ｓ１０５：ＹＥＳとなりＳ１０７へ進む。逆にＳ１０４で算出した変位が、所定の値より小さければ、軌道データＰｄの補正は必要無しと判定し、Ｓ１０５：ＮＯとなりＳ１０６へ進む。
【００８７】
Ｓ１０６では、現在の軌道データＰｄでロボットアーム本体２００を動作させても問題が無いため、上述した補正モード３で軌道データＰｄを補正する。補正モード３は軌道データＰｄを補正軌道データＰｃとしてそのままロボットアーム本体２００に入力するモードなので、そのままＳ１１０へ進み、軌道データＰｄでロボットアーム本体２００を動作させ、制御フローを終了する。
【００８８】
Ｓ１０５：ＹＥＳにより軌道データＰｄの補正が必要な場合は、Ｓ１０７に進み、軌道データＰｄの動作の種類が何なのか判定する。この際、Ｓ１０２で紐づけられた動作の種類の情報（搬送なのか組立てなのか）を参照する。軌道データＰｄの動作の種類が搬送の場合は、Ｓ１０８へ進み、軌道データＰｄの動作の種類が組立ての場合は、Ｓ１０９へ進む。
【００８９】
Ｓ１０８では上述した補正モード１により軌道データＰｄを補正する。ワークの搬送動作は、ロボット装置１により把持したワークと他のワークとの相対的な位置関係を必要としないため、架台６００の絶対的な振動を低減することが求められる。
【００９０】
補正モード１は、架台６００の絶対的な振動を低減するように、軌道データＰｄを補正している。そのため、ワークを搬送後、撮像装置７００を用いてワークの検査を行う際、架台６００の振動の収束を待つことなく検査を行うことができ、サイクルタイムの向上を図ることができる。
【００９１】
Ｓ１０９では上述した補正モード２により軌道データＰｄを補正する。ワークの組立動作は、ロボット装置１により把持したワークと他のワークとの相対的な位置関係が必要とされる。そのため、把持したワークを、架台６００に載置されたワークとの相対位置を維持するように動作させ、架台６００との相対的な振動を低減する方が効果的である。
【００９２】
補正モード２は、架台６００の相対的な振動を低減するように、軌道データＰｄを補正している。そのため、組立動作を高速に行い、架台６００が振動したとしても、把持したワークと、架台６００に載置されたワークとの相対的な位置関係を維持することができるため、組立動作の精度を保証することができる。よって、高速に組立動作を実行させることができるのでサイクルタイムの向上を図ることができる。
【００９３】
以上本実施形態によれば、架台の剛性に関わらず、ロボット装置の動作により生じる架台の振動の影響を効果的に低減することができ、ロボット装置の動作の精度を向上させることができる。
【００９４】
また、あらかじめ、架台の振動が低減するように軌道データを補正し、フィードフォワード的に、架台の振動を抑制するため、フィードバックによる振動抑制より応答性を向上させることができる。
【００９５】
以下、架台６００の振動が抑制されるのかシミュレーションを行ったので、詳述する。
【００９６】
まず、補正モード１について詳述する。
【００９７】
図６（ａ）は、第１の実施形態における補正モード１により補正した補正軌道データＰｃを用いてロボット装置１００を動作させた場合のロボットハンド本体３００の位置の時間変化と、用いなかった場合の時間変化とを比較した図である。実線で表したグラフが、補正モード１を用いなかった際のグラフ、破線で表したグラフが補正モード１を用いた際のグラフである。図６（ａ）において、縦軸はロボットハンド本体３００（ロボットアーム本体２００の手先）のＸ方向における駆動量を示し、横軸は時間を表している。
【００９８】
図６（ｂ）は、第１の実施形態における補正モード１により補正した補正軌道データＰｃを用いてロボット装置１を動作させた場合の架台６００の振動量と、用いなかった場合の振動量とを比較した図である。図６（ｂ）において、縦軸は架台６００のＸ方向における振動量を示し、横軸は時間を表している。
【００９９】
図６（ａ）より、今回は、一点鎖線ＡＡが示す時間までに、Ｘ方向に１５０ｍｍ、ロボットハンド本体３００を動作させ、その後は架台６００の振動が収束するまでロボット装置１００を停止させた。一点鎖線ＡＡは横軸で言うと約０．９秒の位置である。
【０１００】
また、振動の収束判定は、振動の振幅のピーク値が±０．２５ｍｍの範囲に収まれば架台６００の振動は収束したものと判定する。
【０１０１】
図６（ｂ）より、実線で表した補正モード１を有効にしない従来制御の場合のグラフでは、ロボット装置１００を停止した後も架台６００の振動が大きく残っており、振動量のピーク値が±０．２５ｍｍに収束するまでに、動作停止後から約０．４秒かかっている。
【０１０２】
一方、破線で表した補正モード１を有効にした場合のグラフでは、動作停止後の架台６００の振動は小さく、振動量のピーク値が±０．２５ｍｍに収束するまでの整定待ちの時間は不要とすることができる。
【０１０３】
また、図６（ｂ）全体を見ても、補正モード１によるロボット装置１を動作させたほうが、従来制御の場合よりも振動量のピーク値を小さくすることができている。
【０１０４】
よって、補正モード１により、架台６００の振動そのものを低減することが可能となる。例えばロボット装置１００により搬送されるワークを撮像装置により撮像する際、撮像による画像がブレないように架台の振動が収束するのを待つ必要がなくなり、サイクルタイムを向上させることができる。
【０１０５】
次に補正モード２について詳述する。
【０１０６】
図７（ａ）は、第１の実施形態における補正モード２により補正した補正軌道データＰｃを用いてロボット装置１００を動作させた場合のロボットハンド本体３００の駆動の時間変化と、用いなかった場合の時間変化とを比較した図である。実線で表したグラフが、補正モード２を用いなかった際のグラフ、破線で表したグラフが補正モード２を用いた際のグラフである。図７（ａ）において、縦軸はロボットハンド本体３００のＸ方向における駆動量を示し、横軸は時間を表している。
【０１０７】
図７（ｂ）は、第１の実施形態における補正モード２により補正した補正軌道データＰｃを用いてロボット装置１００を動作させた場合の架台６００の振動量と、用いなかった場合の振動量とを比較した図である。図７（ｂ）において、縦軸は架台６００のＸ方向における振動量を示し、横軸は時間を表している。
【０１０８】
図７（ａ）は、ロボットハンド本体３００をＺ方向に５０ｍｍ動作させた場合のロボットハンド本体３００のＸ方向における駆動量を示している。
【０１０９】
実線で表した補正モード２を有効にしない従来制御の場合のグラフでは、ロボットハンド本体３００はＸ方向に動作していない。
【０１１０】
しかし、破線で表した補正モード２を有効にした場合のグラフでは、ロボットハンド本体３００はＸ方向に動作しており、架台６００とロボットハンド本体３００との相対位置を維持するように補正動作が行われていることが分かる。
【０１１１】
また、動作の精度として、架台６００とロボットハンド本体３００との相対的な振動量のピーク値は常に±０．１ｍｍの範囲に収まることが必要であるとする。
【０１１２】
図７（ｂ）より、破線で表した従来制御の場合のグラフでは、架台６００とロボットハンド本体３００との相対的な振動量が大きく、相対的な振動量のピーク値を±０．１ｍｍの範囲に収まっていない。
【０１１３】
ゆえに、相対的な振動量のピーク値を±０．１ｍｍの範囲に収めるためには、さらに低速でロボット装置１００を動作させることが求められる。
【０１１４】
一方、破線で表した補正モード２を有効にした場合のグラフでは、常に架台６００とロボットハンド本体３００との相対的な振動量のピーク値が±０．１ｍｍの範囲に収まっている。
【０１１５】
よって、ロボット装置１００を高速に動作させても、架台６００とロボットハンド本体３００との相対位置を維持することができ、ワーク同士の相対位置を維持できるので、動作速度を落とさずに物品の組立を行うことが可能となる。
【０１１６】
以上、本実施形態では、主に搬送されるワークの撮像、ワークの組付けにかかるロボット装置１００の動作を例に効果を述べたが、その他の動作においても精度を向上させることができる。
【０１１７】
例えば、ロボット装置１００にドライバー等のツールを持たせ、架台６００に載置されたワークのネジ締め等の作業を行う場合でも、補正モード２によりツールとワークの相対位置を維持することができるので、ネジ締め失敗を低減することができる。
【０１１８】
また、ロボット装置１００に研磨用の治工具等を持たせ、架台６００に載置されたワークの研磨等の作業を行う場合でも、補正モード２によりツールとワークの相対位置を維持することができるので、高精度な研磨を行うことができる。
【０１１９】
（第２の実施形態）
上記第１の実施形態では、補正モード１、補正モード２により、補正軌道データＰｃを生成する際、設定された架台６００のモデルデータをそのまま用いていた。しかしながら、架台６００のモデル化には限界があるため、実際の架台６００とモデルデータとに誤差が生じてしまう。
【０１２０】
本実施形態では、上記のようなモデル化誤差が生じる場合でも、精度よく架台６００の振動を効果的に抑制する方法について詳述する。
【０１２１】
以下では、第１の実施形態とは異なるハードウェアや制御系の構成の部分について図示し説明する。また、第１の実施形態と同様の部分については上記と同様の構成ならびに作用が可能であるものとし、その詳細な説明は省略するものとする。
【０１２２】
図８は、本実施形態におけるロボット装置１００の制御ブロック図を示した図である。第１の実施形態と異なる点は、センサ部２２１〜２２６におけるトルクセンサ５５１〜５５６の検出結果が、補正軌道データ演算部４６１に入力されている点である。
【０１２３】
ロボットアーム本体２００を生成した補正軌道データＰｃで動作させることにより、トルクセンサ５５１〜５５６により関節Ｊ１〜Ｊ６にかかるトルクが検出される。
【０１２４】
この際、関節軸角度指令生成部４７０に入力される各関節Ｊ１〜Ｊ６への補正軌道データＰｃから、モータ２１１〜２１６の動作により各関節に生じるトルク値を算出できる。
【０１２５】
そして算出したトルク値と、トルクセンサ５５１〜５５６にて検出されたトルク値との差分から、架台６００が振動したことにより発生した各関節Ｊ１〜Ｊ６のトルク値を演算することができる。
【０１２６】
架台６００が振動したことにより発生した各関節Ｊ１〜Ｊ６のトルク値から、ロボット装置１００のモデルを用いることで架台６００へ生じる力が求まり、その結果、架台６００の振動量を演算することができる。
【０１２７】
トルクセンサ５５１〜５５６の検出結果に基づいて算出した振動量と、架台の６００のモデルデータで算出した振動量とから、これら２つの振動量の差分が小さくなるように架台６００のモデルデータを修正する。こうすることで架台６００のモデルデータの精度を向上させることができる。
【０１２８】
これにより、モデル化誤差によるモデルデータの精度の低下を低減し、各補正モードにおける架台に生じる振動をさらに効果的に低減させることが可能となる。
【０１２９】
本実施形態では、トルクセンサの検出結果を用いて架台のモデルデータを修正したが、これに限定されるものではない。例えば位置センサや、ロボットアーム本体２００の先端に設けられ、ロボット装置１００にかかる荷重を検出する力覚センサなど、架台６００の振動を検出できる検出手段を適宜使用して良い。力覚センサは荷重検出手段の一例である。
【０１３０】
さらに、上記の検出手段のいずれか１つを用いるだけでも良いし、いずれか２つを組み合わせて用いても良いし、全てを組み合わせて用いても良い。
【０１３１】
（第３の実施形態）
上記第１の実施形態、第２の実施形態では、架台６００に振動を発生させる装置が、ロボット装置１００である場合について説明した。しかしながら、生産現場においてはロボット装置以外にも架台に振動を発生させる装置を備える場合がある。例えば、ワークを自動で搬送するベルトコンベアや、ワークの切り出しを行うパーツフィーダー等である。
【０１３２】
本実施形態では、上記のように、架台６００に振動を発生させる装置がロボット装置１００以外に架台６００に設けられる場合でも、架台６００に生じる振動を効果的に抑制する方法について詳述する。
【０１３３】
以下では、第１の実施形態、第２の実施形態とは異なるハードウェアや制御系の構成の部分について図示し説明する。また、第１の実施形態、第２の実施形態と同様の部分については上記と同様の構成ならびに作用が可能であるものとし、その詳細な説明は省略するものとする。
【０１３４】
本実施形態においては、架台６００の作業台６０２に、ベルトコンベアやパーツフィーダー等のロボット装置１００以外に、架台６００に振動を発生させる装置が設置されており、これら装置が動作することにより架台６００が振動するものとする。
【０１３５】
補正軌道データ演算部４６１において、各補正モードでは、架台６００の物理モデルから求めた架台６００の振動量をもとに補正軌道データＰｃを生成している。
【０１３６】
この際、作業台６０２に設置された装置が動作することにより発生する架台６００の振動量を、装置のモデルデータから推定する。
【０１３７】
ロボット装置１００による振動量と、作業台６０２に設置されたロボット装置１００以外の装置が動作することにより発生する架台６００の振動量とから、補正軌道データＰｃを求める。
【０１３８】
こうすることで、架台６００に振動を発生させる装置がロボット装置１００以外に架台６００に設けられる場合でも、架台６００に生じる振動を効果的に抑制することが可能となる。
【０１３９】
また、本実施形態では、作業台６０２に設置されたロボット装置１００以外の装置が動作することにより発生する架台６００の振動の影響を低減することと同様の考えで、架台６００に発生している残留振動を推定して、補正軌道データＰｃを生成してもよい。
【０１４０】
上述した種々の実施形態の処理手順は具体的には制御装置４００により実行されるものとして説明したが、上述した機能を実行可能なソフトウェアの制御プログラムおよびそのプログラムを記録した記録媒体を外部入力装置５００に搭載させて実施しても良い。
【０１４１】
従って上述した機能を実行可能なソフトウェアの制御プログラムおよびそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１４２】
また、上記実施形態では、コンピュータで読み取り可能な記録媒体がＲＯＭ或いはＲＡＭであり、ＲＯＭ或いはＲＡＭに制御プログラムが格納される場合について説明したが、本発明はこのような形態に限定されるものではない。
【０１４３】
本発明を実施するための制御プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、制御プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【０１４４】
（その他の実施形態）
上述した種々の実施形態では、ロボット装置１００が複数の関節を有する多関節ロボットアームを用いた場合を説明したが、関節の数はこれに限定されるものではない。ロボット装置の形式として、垂直多軸構成を示したが、水平多軸構成や、パラレルリンク型など異なる形式の関節においても上記と同等の構成を実施することができる。
【０１４５】
また、ロボット装置１００の構成例を各実施形態の例図により示したが、これに限定されるものではなく、当業者において任意に設計変更が可能である。また、ロボット装置１００に設けられる各モータは、上述の構成に限定されるものではなく、各関節を駆動する駆動源は例えば人工筋肉のようなデバイス等であってもよい。
【０１４６】
また、図９で示すように、ロボット装置１００が、移動可能な台車８００、例えばＡＧＶ（Ａｕｔｏｍａｔｉｃ  Ｇｕｉｄｅｄ  Ｖｅｈｉｃｌｅ）に取り付けられる場合においても適用可能である。その際、台車８００のモデルデータとして、台車全体の弾性係数と、台車８００全体の粘性係数、台車全体の質量成分の値、そしてロボット装置１００の設置向き、台車８００の速度等を記憶させておく。これにより、台車８００の動作による振動を計算することができ、上述した実施形態と同様に効果的に振動を抑制することができる。
【０１４７】
また、上述した種々の実施形態では架台６００に関して、ロボット装置を天吊りで設置する場合を例にとり説明したがこれに限られない。例えばロボット装置を天吊りとは逆向きに設置する場合の架台でも構わない。またロボット装置を壁掛けするような場合でも構わない。さらに、架台そのものが動く場合や、架台の一部が可変式となっておりその一部にロボット装置を設ける場合でも構わない。
【０１４８】
また上述した種々の実施形態は、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の動作またはこれらの複合動作を自動的に行うことができる機械に適用可能である。
【符号の説明】
【０１４９】
１００  ロボット装置
２００  ロボットアーム本体
２０９  基台
２１００、２１０１、２１０２、２１０３、２１０４、２１０５、２１０６  リンク
２１１、２１２、２１３、２１４、２１５、２１６  モータ
２２１、２２２、２２３、２２４、２２５、２２６  センサ部
３００  ロボットハンド本体
４００  制御装置
４５０  軌道データ生成部
４６０  補正軌道データ生成部
４６１  補正軌道データ演算部
４７０  関節角度指令演算部
４８０  架台モデルデータ記憶部
５０２  補正モード選択部
５００  外部入力装置
６００  架台
６０１  支柱
６０２  作業台
６０３  天板
７００  撮像装置
８００  台車
１０００  ロボットシステム
【図１】
2020097101.tif 000003
【図２】
2020097101.tif 000004
【図３】
2020097101.tif 000005
【図４】
2020097101.tif 000006
【図５】
2020097101.tif 000007
【図６】
2020097101.tif 000008
【図７】
2020097101.tif 000009
【図８】
2020097101.tif 000010
【図９】
2020097101.tif 000011