(57)【要約】【課題】本動作においてロボットアームの振動を抑制しながらも、ロボットアームの動作の高速化及び高精度化を実現する。【解決手段】生産動作等の本動作に先立って、ロボットアーム２０１の先端部の理想軌道に基づき、動作指令値を生成する。動作指令値に基づきロボットアーム２０１を本動作よりも低速で動作させ、力覚センサ２０３の検出値を取得する。ロボットアーム２０１の先端部が理想軌道を辿るときの力覚センサ２０３の理想値に対する力覚センサ２０３の検出値の偏差が小さくなるように、動作指令値を補正する。【選択図】図１
2017209762.tif 000002
【特許請求の範囲】
【請求項１】
関節部を介して互いに連結された複数のリンクを有するロボットアーム、前記ロボットアームの各関節部を駆動する駆動部、前記各関節部の動作量を検出する検出部、及び前記ロボットアームの先端部に設けられた加速度センサを有するロボットと、
前記各関節部の動作指令値に基づき前記ロボットアームを動作させる本動作の最中に、前記動作量を前記動作指令値に近づけるフィードバック制御値を、前記ロボットアームの先端部に生じた振動を抑制するよう前記加速度センサの検出値に基づいて補正して、該フィードバック制御値により前記駆動部を制御する制御部と、を備え、
前記制御部は、
前記本動作に先立って、前記ロボットアームの先端部の理想軌道に基づき、前記動作指令値を生成する指令値生成処理と、
前記動作指令値に基づき前記ロボットアームを前記本動作よりも低速で動作させ、前記加速度センサの検出値を取得する低速動作処理と、
前記ロボットアームの先端部が前記理想軌道を辿るときの前記加速度センサの理想値に対する、前記低速動作処理にて検出した前記加速度センサの検出値の偏差が小さくなるように、前記動作指令値を補正する補正処理と、を実行することを特徴とするロボット装置。
【請求項２】
前記制御部は、前記低速動作処理及び前記補正処理を、前記偏差が予め設定した閾値以内に収束するまで、繰り返し実行することを特徴とする請求項１に記載のロボット装置。
【請求項３】
前記理想値を予め記憶する理想値記憶部を備え、
前記制御部は、前記理想値記憶部から前記理想値を読み出して前記補正処理を実行することを特徴とする請求項１又は２に記載のロボット装置。
【請求項４】
前記制御部は、前記ロボットアームを前記本動作で動作させている最中に、前記加速度センサの検出値から、前記低速動作処理で取得した前記加速度センサの検出値を用いて前記ロボットアームの振動成分を抽出し、該振動成分を相殺するように前記フィードバック制御値を補正することを特徴とする請求項１又は２に記載のロボット装置。
【請求項５】
前記制御部は、前記各関節部に対応する前記フィードバック制御値のうち一部を補正することを特徴とする請求項１乃至３のいずれか１項に記載のロボット装置。
【請求項６】
前記動作指令値を記憶する指令値記憶部を備え、
前記制御部は、前記補正処理では前記指令値記憶部に記憶されている前記動作指令値を書き換え、
前記指令値記憶部から読み出した前記動作指令値に基づき前記ロボットアームを動作させることを特徴とする請求項１乃至４のいずれか１項に記載のロボット装置。
【請求項７】
前記制御部は、前記指令値生成処理では、前記ロボットのモデル情報を用いて、前記ロボットアームの逆運動学計算により、前記動作指令値を生成し、前記補正処理では、前記モデル情報を補正し、補正した前記モデル情報を用いて、前記ロボットアームの逆運動学計算により、補正した前記動作指令値を生成することを特徴とする請求項１乃至５のいずれか１項に記載のロボット装置。
【請求項８】
前記モデル情報には、リンクパラメータが含まれており、
前記制御部は、前記補正処理では、前記モデル情報として、前記リンクパラメータを補正することを特徴とする請求項７に記載のロボット装置。
【請求項９】
前記モデル情報には、前記ロボットアームの先端に掛る荷重のデータが含まれており、
前記制御部は、前記補正処理では、前記モデル情報として、前記低速動作処理で取得した前記加速度センサの検出値から前記荷重のデータを補正することを特徴とする請求項７又は８に記載のロボット装置。
【請求項１０】
前記加速度センサが、前記ロボットアームの先端部に作用する力を検出する力覚センサであることを特徴とする請求項１乃至９のいずれか１項に記載のロボット装置。
【請求項１１】
関節部を介して互いに連結された複数のリンクを有するロボットアーム、前記ロボットアームの各関節部を駆動する駆動部、前記各関節部の動作量を検出する検出部、及び前記ロボットアームの先端部に設けられた加速度センサを有するロボットを制御する制御部が、前記各関節部の動作指令値に基づき前記ロボットアームを動作させる本動作の最中に、前記動作量を前記動作指令値に近づけるフィードバック制御値を、前記ロボットアームの先端部に生じた振動を抑制するよう前記加速度センサの検出値に基づいて補正して、該フィードバック制御値により前記駆動部を制御するロボット制御方法であって、
前記制御部が、前記本動作に先立って、前記ロボットアームの先端部の理想軌道に基づき、前記動作指令値を生成する指令値生成工程と、
前記制御部が、前記動作指令値に基づき前記ロボットアームを前記本動作よりも低速で動作させ、前記加速度センサの検出値を取得する低速動作工程と、
前記制御部が、前記ロボットアームの先端部が前記理想軌道を辿るときの前記加速度センサの値を理想値に対する、前記低速動作工程にて取得した前記加速度センサの検出値の偏差が小さくなるように、前記動作指令値を補正する補正工程と、を備えたことを特徴とするロボット制御方法。
【請求項１２】
コンピュータに請求項１１に記載のロボット制御方法の各工程を実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
関節部を介して互いに連結された複数のリンクを有するロボットアーム、前記ロボットアームの各関節部を駆動する駆動部、前記各関節部の動作量を検出する検出部、及び前記ロボットアームの先端部に設けられた加速度センサを有するロボットを制御する制御部が、前記各関節部の動作指令値に基づき前記ロボットアームを動作させる生産動作の最中に、前記動作量を前記動作指令値に近づけるフィードバック制御値を、前記ロボットアームの先端部に生じた振動を抑制するよう前記加速度センサの検出値に基づいて補正して、該フィードバック制御値により前記駆動部を制御し、前記ロボットにより物品の製造をする物品の製造方法であって、
前記制御部が、前記生産動作に先立って、前記ロボットアームの先端部の理想軌道に基づき、前記動作指令値を生成する指令値生成工程と、
前記制御部が、前記動作指令値に基づき前記ロボットアームを前記生産動作よりも低速で動作させ、前記加速度センサの検出値を取得する低速動作工程と、
前記制御部が、前記ロボットアームの先端部が前記理想軌道を辿るときの前記加速度センサの理想値に対する、前記低速動作工程にて取得した前記加速度センサの検出値の偏差が小さくなるように、前記動作指令値を補正する補正工程と、を備えたことを特徴とする物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの振動を抑制する技術に関する。
【背景技術】
【０００２】
近年、生産システムにおいて、ロボットアーム及びエンドエフェクタ（例えばロボットハンド）を有するロボットと、ロボットを制御する制御装置とを備えたロボット装置が普及している。ロボット装置により、例えばロボットハンドに把持させたワークを他のワークに自動的に組み付けるような作業を行う場合には、高精度かつ高速にロボットアームを動作させることが望まれている。このため、ロボットアームの先端部に取り付けた加速度センサの計測値をフィードバックし、ロボットアームの関節部の動作量を動作指令値に近づけるフィードバック制御値を補正することで、振動を抑制する方法が提案されている（特許文献１参照）。なお、特許文献１には、フィードバック制御値は速度指令値やトルク指令値等の所定指令値として記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１０００８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ロボットアームの先端部は、ロボットアームの製作公差、組立誤差、ロボットアームの先端部に作用する荷重によるロボットアームの撓みなどの多くの外乱により、理想の軌道を辿らないことがある。このような場合、外乱が加速度センサの検出値に重畳するため、ロボットアームの先端部の振動成分を正確に抽出することはできず、ロボットアームの振動を抑制するのに処理時間が長くなり、ロボットアームの動作の高速化及び高精度化の妨げとなっていた。
【０００５】
そこで、本発明は、本動作においてロボットアームの振動を抑制しながらも、ロボットアームの動作の高速化及び高精度化を実現することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のロボット装置は、関節部を介して互いに連結された複数のリンクを有するロボットアーム、前記ロボットアームの各関節部を駆動する駆動部、前記各関節部の動作量を検出する検出部、及び前記ロボットアームの先端部に設けられた加速度センサを有するロボットと、前記各関節部の動作指令値に基づき前記ロボットアームを動作させる本動作の最中に、前記動作量を前記動作指令値に近づけるフィードバック制御値を、前記ロボットアームの先端部に生じた振動を抑制するよう前記加速度センサの検出値に基づいて補正して、該フィードバック制御値により前記駆動部を制御する制御部と、を備え、前記制御部は、前記本動作に先立って、前記ロボットアームの先端部の理想軌道に基づき、前記動作指令値を生成する指令値生成処理と、前記動作指令値に基づき前記ロボットアームを前記本動作よりも低速で動作させ、前記加速度センサの検出値を取得する低速動作処理と、前記ロボットアームの先端部が前記理想軌道を辿るときの前記加速度センサの理想値に対する、前記低速動作処理にて検出した前記加速度センサの検出値の偏差が小さくなるように、前記動作指令値を補正する補正処理と、を実行することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、本動作においてロボットアームの振動を抑制しながらも、ロボットアームの動作の高速化及び高精度化を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係るロボット装置を示す模式図である。
【図２】第１実施形態に係るロボット装置のブロック図である。
【図３】第１実施形態に係るロボット装置の記憶装置の構成を示す模式図である。
【図４】第１実施形態に係るロボット装置による物品の製造方法を示すフローチャートである。
【図５】（ａ）は、ロボットアームを動作させたときに、ＴＣＰが第１の要因及び第２の要因により理想軌道からずれた場合の理想値に対する力覚センサの検出値の偏差を示す模式図である。（ｂ）は、ロボットアームを動作させたときに、ＴＣＰが第１の要因により理想軌道からずれた場合の理想値に対する力覚センサの検出値の偏差を示す模式図である。（ｃ）は、ロボットアームを動作させたときに、ＴＣＰが第２の要因により理想軌道からずれた場合の理想値に対する力覚センサの検出値の偏差を示す模式図である。
【図６】第１制御モードで制御するときのブロック図である。
【図７】第２制御モードで制御するときのブロック図である。
【図８】事前動作における制御処理を示すフローチャートである。
【図９】生産動作における制御処理を示すフローチャートである。
【図１０】第２実施形態に係るロボット装置のブロック図である。
【図１１】第３実施形態に係るロボット装置のブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１０】
［第１実施形態］
図１は、第１実施形態に係るロボット装置を示す模式図である。ロボット装置１００は、生産ラインに設けられ、ワークＷ１をワークＷ２に組み付ける組付作業を行い、ワークＷ１とワークＷ２とが組み付けられた物品を製造する。ロボット装置１００は、ロボット２００と、ロボット２００の動作を制御する制御装置３００と、を備えている。
【００１１】
ロボット２００は、垂直多関節のロボットアーム２０１と、ロボットアーム２０１の先端部に支持された、ロボット２００の手先であるエンドエフェクタとしてのロボットハンド２０２と、を有している。
【００１２】
また、ロボット２００は、ロボットアーム２０１の先端部とロボットハンド２０２との間に配置された、加速度センサとしての力覚センサ２０３を有している。よって、ロボットハンド２０２は、ロボットアーム２０１の先端部に力覚センサ２０３を介して取り付けられることになる。
【００１３】
ロボットアーム２０１は、架台１５０に固定されるベース部（基端リンク）２１０と、変位や力を伝達する複数のリンク２１１〜２１６とが関節部Ｊ１〜Ｊ６を介して揺動（旋回）又は回転可能に互いに連結されている。架台１５０は、アンカー等で床に固定されている。なお、架台１５０には、不図示の治具やモジュールが配置されている。
【００１４】
第１実施形態では、ロボットアーム２０１は、揺動する３軸と回転する３軸の６軸の関節部Ｊ１〜Ｊ６で構成されている。ここで、揺動する関節部を揺動部、回転する関節部を回転部と呼ぶ。ロボットアーム２０１は、６つの関節部Ｊ１〜Ｊ６から構成され、関節部Ｊ１，Ｊ４，Ｊ６が回転部、関節部Ｊ２，Ｊ３，Ｊ５が揺動部である。
【００１５】
ロボットアーム２０１の各関節部Ｊ１〜Ｊ６には、駆動部が設けられている。各関節部Ｊ１〜Ｊ６の駆動部は、必要なトルクの大きさに合わせて適切な出力のものが用いられる。
【００１６】
ロボットハンド２０２は、ハンド本体と、ハンド本体に開閉可能に支持された複数のフィンガーとを有している。複数のフィンガーを閉動作させることにより、ワークや治工具を把持することができ、複数のフィンガーを開動作させることにより、ワークや治工具を把持解放することができる。
【００１７】
力覚センサ２０３は、ロボット２００の手先、つまりロボットアーム２０１の先端部にかかる力を検出する。ここで、ロボットアーム２０１の先端部とは、複数のリンク２１０〜２１６のうち、先端に位置するリンク（先端リンク）２１６のことであり、力覚センサ２０３は、リンク２１６に取り付けられている。力覚センサ２０３は、６軸力覚センサであり、ロボットアーム２０１の先端部の座標系で、Ｘ軸、Ｙ軸、Ｚ軸の３軸の力成分Ｆｘ，Ｆｙ，Ｆｚと、各軸まわりＲｘ，Ｒｙ，Ｒｚのモーメント成分Ｍｘ，Ｍｙ，Ｍｚと、を検出することができる。ここで、ロボットアーム２０１の６軸目のリンク２１６の軸方向がＺ軸、Ｚ軸を法線とする面にそれぞれＸ軸およびＹ軸がある。力覚センサ２０３は、歪ゲージ式を用いてもよいが、感度を上げるために、磁気式又は静電容量式を用いてもよい。力覚センサ２０３の出力（検出値）は、６軸とも制御装置３００にリアルタイムで送信される。
【００１８】
力覚センサ２０３は、ロボットアーム２０１とロボットハンド２０２との間に設けられているので、ロボットハンド２０２とロボットハンド２０２が把持したワーク又は治具に掛かる反力、重力及び慣性力を検出することが可能である。力覚センサ２０３に掛る重力、慣性力は、ワークや治具の重量、重心の位置により、力の大きさ及び方向が変化する。
【００１９】
制御装置３００は、制御部（演算部）であるＣＰＵ３０１と、記憶部として、ＲＯＭ３０２、ＲＡＭ３０３及びＨＤＤ３０４と、インターフェース部（Ｉ／Ｆ）３０５と、を有するコンピュータで構成されている。ＨＤＤ３０４には、後述するロボット制御方法（物品の製造方法）の各工程を実行させるプログラム３０７が格納されている。
【００２０】
なお、第１実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４であり、ＨＤＤ３０４にプログラム３０７が格納される場合について説明するが、これに限定するものではない。プログラム３０７は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム３０７を供給するための記録媒体としては、ＲＯＭ３０２や、記録ディスク、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、ＵＳＢメモリ等の不揮発性メモリ、ＲＯＭ等を用いることができる。
【００２１】
図２は、第１実施形態に係るロボット装置のブロック図である。なお、制御装置３００においては、ＣＰＵ３０１の機能をブロック化している。即ち、ＣＰＵ３０１は、プログラム３０７を実行することにより目標値演算部３１０、目標値出力部３１１、フィードバック制御部３１２ｉ、減算部３１３ｉ及びサーボ制御部３１４ｉとして機能する。また、ＣＰＵ３０１は、プログラム３０７を実行することによりアンプフィルタ３２０、第１演算部３２１、第２演算部３２２及びゲイン調整部３２４ｉとして機能する。なお、一部の機能をＣＰＵ３０１とは別の制御回路で構成してもよい。ｉは、１〜６の整数である。
【００２２】
ロボット２００は、各関節部Ｊｉを各々駆動する駆動部としてのモータ２２１ｉと、各関節部Ｊｉの動作量として、各モータ２２１ｉの回転角度を各々検出する検出部としてのエンコーダ２２２ｉと、を有している。各モータ２２１ｉは、それぞれの減速機２２３ｉを介して、互いに連結されたリンク２１０〜２１６を相対的に駆動する。
【００２３】
モータ２２１ｉは、サーボモータであり、例えばブラシレスＤＣサーボモータやＡＣサーボモータである。エンコーダ２２２ｉは、ロータリーエンコーダであり、アブソリュート型のロータリーエンコーダが望ましい。各関節部Ｊｉのエンコーダ２２２ｉの値により、ロボットアーム２０１の先端部の位置及び姿勢を計算することができる。減速機２２３ｉは、例えば波動歯車減速機である。
【００２４】
ここで、ロボットアーム２０１の先端部にはツールセンターポイント（ＴＣＰ）が設定されている。ＴＣＰは、位置を表す３つのパラメータと、姿勢を表す３つのパラメータとからなる６つのパラメータで構成され、タスク空間上では、１つの点としてみなすことができる。つまり、タスク空間は、これら６つの座標軸で規定された空間である。このＴＣＰで教示点を指定することができる。
【００２５】
なお、教示点を関節角度（コンフィグレーション）で表すこともできる。第１実施形態では、ロボットアーム２０１の関節部が６つあるので、教示点は、関節角度を表す６つのパラメータで構成されたコンフィグレーションで表され、関節空間上では、１つの点とみなすことができる。つまり、関節空間は、これら６つの座標軸で規定された空間である。
【００２６】
教示点は、タスク空間又は関節空間で指定可能であるが、第１実施形態では、タスク空間で指定されるものとする。ＣＰＵ３０１は、ロボットプログラムで指定された補間方法に従い、教示点間を補間するロボットアーム２０１の経路（補間経路）データを生成する。ここで、教示点間を補間する補間方法としては、直線補間、円弧補間、Ｓｐｌｉｎｅ補間、Ｂ−Ｓｐｌｉｎｅ補間、ベジェ曲線など、種々の方法がある。経路データとは、タスク空間におけるロボットアーム２０１のＴＣＰの軌跡である。この経路データに速度、加速度等の時間パラメータを付加したものが軌道データである。つまり、軌道データは、時刻毎のＴＣＰの位置（姿勢を含む）である位置指令値（目標位置ともいう）の順列集合で表される。ＣＰＵ３０１は、補間計算により求めた位置指令値からなる理想軌道のデータを、ＨＤＤ３０４等の記憶部に記憶させておく。
【００２７】
ＣＰＵ３０１は、ＴＣＰの位置指令値を、各関節部Ｊｉの動作量の目標値を示す動作指令値に、逆運動学計算によりロボット２００のモデル情報（メカモデル）を用いて変換する。そして、ＣＰＵ３０１は、動作指令値によりロボットアーム２０１の各関節部Ｊｉの動作を制御する。即ち、ＣＰＵ３０１は、ロボットアーム２０１の各関節部Ｊｉの動作指令値から各関節部Ｊｉをサーボ制御し、各関節部Ｊｉのモータ２２１ｉを駆動させ、各エンコーダ２２２ｉにて検出された動作量を動作指令値へと近づけるようフィードバック制御する。
【００２８】
ロボット２００のメカモデルは、リンクパラメータ、エンドエフェクタの長さ、エンコーダ２２２ｉの角度換算値、リンクやエンドエフェクタなどのロボットの各部の重量、リンク及び関節の剛性値、並びにロボットアームの先端部に掛る荷重のデータである。リンクパラメータは、リンク長、リンクのねじれ角度、リンク間距離及びリンク間角度などのデータである。
【００２９】
ここで、エンコーダ２２２ｉが検出する動作量は、モータ２２１ｉの回転角度であり、動作指令値は、モータ２２１ｉの回転角度に対応する角度指令値である。なお、エンコーダ２２２ｉが検出する動作量が減速機２２３ｉの出力角度、即ち関節部Ｊｉの角度である場合、動作指令値は、関節部Ｊｉの角度に対応する角度指令値ということになる。つまり、第１実施形態では、セミクローズドループ制御でフィードバック制御する場合について説明するが、フルクローズドループ制御でフィードバック制御する場合であってもよい。
【００３０】
図３は、第１実施形態に係るロボット装置の記憶装置の構成を示す模式図である。記憶装置としてのＨＤＤ３０４は、ロボット２００のモデル情報であるメカモデルを記憶する記憶部（モデル記憶部）３０４Ａと、ロボットアーム２０１の先端部、即ちＴＣＰの理想軌道のデータを記憶する記憶部（軌道記憶部）３０４Ｂと、を有する。また、ＨＤＤ３０４は、動作指令値を記憶する記憶部（指令値記憶部）３０４Ｃと、ロボットアーム２０１の先端部が理想軌道を辿るときの力覚センサ２０３の理想値を記憶する記憶部（理想値記憶部）３０４Ｄと、を有する。また、ＨＤＤ３０４は、各種のパラメータを記憶する記憶部（パラメータ記憶部）３０４Ｅを有する。各種のパラメータとしては、各関節部Ｊｉの最大角速度のデータ、各関節部Ｊｉの最大角加速度のデータ、後述する力の偏差の比較対象である閾値のデータ等である。これら記憶部３０４Ａ〜３０４Ｅは、それぞれ異なる記憶装置で構成されていてもよく、また、共通の記憶装置において記憶領域がそれぞれ異なるようにしてもよいが、書き換え可能な記憶部である必要がある。
【００３１】
ここで、実際のロボット２００を動作指令値に従って動作させたとしても、ロボットアーム２０１の先端部に設定したＴＣＰの実軌道が、理想軌道に対してずれることがある。この理想軌道に対する実軌道の乖離は、大別して２つの要因で発生する。第１の要因は、ロボットアーム２０１のリンク長の製作公差や組立誤差、関節部のねじれによる角度誤差、ロボットアーム２０１の先端部に作用する荷重によるロボットアーム２０１の撓みなど、理想に対する実機のメカモデルの乖離である。第２の要因は、ロボットアーム２０１の動作中の振動である。
【００３２】
図４は、第１実施形態に係るロボット装置による物品の製造方法を示すフローチャートである。第１実施形態では、生産を行う生産動作（本動作）に先立って行う事前動作と、生産を行う生産動作（本動作）の２段階に分ける。そして、事前動作で第１の要因によるＴＣＰの軌道のずれを補正し（Ｓ１）、本動作である生産動作で第２の要因によるＴＣＰの軌道のずれを補正する（Ｓ２）。なお、事前動作は、生産動作の度に逐一行う必要はなく、ロボット２００の初期起動時やメンテナンス時に適宜行えばよい。
【００３３】
上述したように、ステップＳ２の各関節部Ｊｉの動作指令値に基づきロボットアーム２０１を動作させる生産動作の最中においては、エンコーダ２２２ｉにより検出された動作量を動作指令値に近づけるフィードバック制御を行う。このフィードバック制御によるフィードバック制御値を、ロボットアーム２０１の先端部に生じた振動を抑制するよう力覚センサ２０３の検出値に基づいて補正して、補正したフィードバック制御値によりモータ２２１ｉを制御する。即ち、力覚センサ２０３の検出値に基づいて、ロボットアーム２０１の振動によるＴＣＰの軌道のずれを補正する。第１実施形態では、事前動作（ステップＳ１）では、生産動作（ステップＳ２）で用いる力覚センサ２０３を用いて、第１の要因によるＴＣＰの軌道のずれを補正する。
【００３４】
ここで、上述したように、記憶部３０４Ｄには、ロボットアーム２０１の先端部が理想軌道を辿るときの力覚センサ２０３の理想値のデータが格納されている。力覚センサ２０３の理想値は、コンピュータのシミュレーションにより求めてもよいし、基準となるロボットを実際に動作させて取得してもよい。
【００３５】
図５（ａ）は、ロボットアーム２０１を動作させたときに、ＴＣＰが第１の要因及び第２の要因により理想軌道からずれた場合の理想値に対する力覚センサ２０３の検出値の偏差を示す模式図である。図５（ｂ）は、ロボットアーム２０１を動作させたときに、ＴＣＰが第１の要因により理想軌道からずれた場合の理想値に対する力覚センサ２０３の検出値の偏差を示す模式図である。図５（ｃ）は、ロボットアーム２０１を動作させたときに、ＴＣＰが第２の要因により理想軌道からずれた場合の理想値に対する力覚センサ２０３の検出値の偏差を示す模式図である。
【００３６】
ロボットアーム２０１の先端部に設定したＴＣＰの実軌道が理想軌道からずれると、図５（ａ）に示すように、力覚センサ２０３の検出値が理想値からずれる。力覚センサ２０３の検出値は、上述した２つの要因により理想値に対してずれるため、２つの要因によるずれを生産動作中に補正すると、検出値を理想値に収束させるのに要する処理時間が増加してしまい、ロボットアーム２０１の動作の高速化の妨げとなる。
【００３７】
図５（ｂ）及び図５（ｃ）に示すように、第１の要因による力覚センサ２０３の検出値の理想値からの偏差は、第２の要因による力覚センサ２０３の検出値の理想値からの偏差と比較して大きい。また、図５（ｂ）に示す第１の要因による力覚センサ２０３の検出値の偏差は、同じ動作であれば同じ傾向として現れる。したがって、事前動作で、図５（ｂ）に示す第１の要因による力覚センサ２０３の検出値のずれにより動作指令値を補正しておけば、生産動作では、図５（ｃ）に示す第２の要因による力覚センサ２０３の検出値のずれによる動作指令値だけを補正すればよい。よって、ＣＰＵ３０１は、事前動作にて設定される第１制御モードと、生産動作にて設定される第２制御モードとを有する。ここで、ＣＰＵ３０１において、図２に示す第１演算部３２１は、第１制御モードに設定されたときに機能し、第２演算部３２２は、第２制御モードに設定されたときに機能する。
【００３８】
図６は、第１制御モードで制御するときのブロック図であり、図７は、第２制御モードで制御するときのブロック図である。まず、図６を参照しながら、第１制御モードに設定された場合について説明する。目標値演算部３１０は、予め設定されたロボットアーム２０１の先端部（ＴＣＰ）の理想軌道のデータから、逆運動学計算により、ロボット２００のメカモデルを用いて各関節部Ｊｉに対応する動作指令値θｒｅｆ（ｉ）（ｉ＝１〜６）を生成する。つまり、記憶部３０４Ｂにはメカモデルが格納され、記憶部３０４ＢにはＴＣＰの理想軌道のデータが格納されているので、目標値演算部３１０は、これら記憶部３０４Ａ，３０４Ｂからメカモデル及び理想軌道のデータを読み出して、動作指令値を計算する。
【００３９】
ロボットアーム２０１は、先端部に掛った荷重により撓んだ状態となる。したがって、目標値演算部３１０は、メカモデルからロボットアーム２０１の撓み量を演算する。具体的には、目標値演算部３１０は、リンク及び関節部の剛性値と先端部に掛った荷重のデータにより、ロボットアーム２０１の撓み量、即ちロボットアーム２０１の先端部の位置姿勢のずれ量を演算する。そして、目標値演算部３１０は、ロボットアーム２０１の撓みによる先端部の位置姿勢のずれを相殺してＴＣＰが理想軌道を辿るように、ロボットアーム２０１の撓み量のデータを用いて、各関節部Ｊｉに対応する動作指令値θｒｅｆ（ｉ）を生成する。目標値演算部３１０は、生成した動作指令値θｒｅｆ（ｉ）を、記憶部３０４Ｃに記憶させる。目標値出力部３１１は、動作指令値θｒｅｆ（ｉ）を、記憶部３０４Ｃから読み出し、各フィードバック制御部３１２ｉに出力する。
【００４０】
フィードバック制御部３１２ｉは、動作量θ（ｉ）と動作指令値θｒｅｆ（ｉ）との差分値（θｒｅｆ（ｉ）−θ（ｉ））に、ゲインＫｐを掛けて、動作量θ（ｉ）を動作指令値θｒｅｆ（ｉ）に近づけるフィードバック制御値Ｖｒｅｆ（ｉ）を演算する。第１実施形態では、フィードバック制御値Ｖｒｅｆ（ｉ）は、速度指令値である。サーボ制御部３１４ｉは、入力した速度指令値であるフィードバック制御値Ｖｒｅｆ（ｉ）に基づいてモータ２２１ｉを駆動する。
【００４１】
アンプフィルタ３２０は、力覚センサ２０３の検出信号を増幅及び濾波する。演算部３２１は、力覚センサ２０３の検出値に基づいて、メカモデルを補正、つまり記憶部３０４Ａに格納されているメカモデルを書き換える。
【００４２】
したがって、目標値演算部３１０は、記憶部３０４Ａのメカモデルが書き換えられたら、再び、補正したメカモデルを用いて各関節部Ｊｉに対応する補正した動作指令値θｒｅｆ（ｉ）を逆運動学計算により生成する。以上の制御ループを、ロボットアーム２０１のＴＣＰの実軌道が理想軌道に近づくように、即ち力覚センサ２０３の検出値が理想値に近づくように繰り返し実行する。このようにして記憶部３０４Ｃには、補正された動作指令値θｒｅｆ（ｉ）が格納される。ここで、記憶部３０４Ａに記憶されている初期（補正前）のメカモデルは、設計値であり、以上の制御ループにより、順次書き換えられていくことになる。
【００４３】
次に、図７を参照しながら、第２制御モードに設定された場合について説明する。目標値出力部３１１は、動作指令値θｒｅｆ（ｉ）を、記憶部３０４Ｃから読み出し、各フィードバック制御部３１２ｉに出力する。
【００４４】
フィードバック制御部３１２ｉは、動作量θ（ｉ）と動作指令値θｒｅｆ（ｉ）との差分値（θｒｅｆ（ｉ）−θ（ｉ））に、ゲインＫｐを掛けて、動作量θ（ｉ）を動作指令値θｒｅｆ（ｉ）に近づけるフィードバック制御値Ｖｒｅｆ（ｉ）を演算する。
【００４５】
一方、アンプフィルタ３２０は、力覚センサ２０３の検出信号を増幅及び濾波する。演算部３２２は、力覚センサ２０３の検出値に基づいて、各軸方向の加速度成分α１を算出する。また、記憶部３０４Ａに記憶されているロボットアーム２０１の先端部に掛る荷重のデータに基づき、各軸方向の加速度成分α０を算出し、加速度成分α１から加速度成分α０を除去（減算）し、加速度成分αを得る。なお、記憶部３０４Ａに記憶されているロボットアーム２０１の先端部に掛る荷重のデータの代わりに、記憶部３０４Ｄに記憶されている力覚センサ２０３の理想値のデータを用いてもよいが、前者の方が後者の方よりも正確である。
【００４６】
これにより、力覚センサ２０３の検出値から重力成分や慣性力成分が除去され、振動成分のみが抽出される。そして、演算部３２２は、ロボットアーム２０１の構造で決まるヤコビ行列Ｊの転置行列ＪＴを用いて、振動成分である補償成分αθ（ｉ）（＝ＪＴα）を算出する。
【００４７】
ゲイン調整部３２４ｉは、補償成分αθ（ｉ）にゲインＫα（ｉ）を乗じ、減算部３１３ｉは、その値をフィードバック制御値Ｖｒｅｆ（ｉ）から減算して、新たなフィードバック制御値Ｖｒｅｆ１（ｉ）を生成する。即ちロボットアーム２０１に生産動作させている最中に、力覚センサ２０３の検出値から、事前動作で取得した力覚センサ２０３の検出値を用いてロボットアーム２０１の振動成分を抽出し、この振動成分を相殺するようにフィードバック制御値を補正する。サーボ制御部３１４ｉは、入力したフィードバック制御値Ｖｒｅｆ１（ｉ）に基づいてモータ２２１ｉを駆動する。
【００４８】
次に、事前動作における制御フローについて説明する。図８は、事前動作における制御処理を示すフローチャートである。ここで、ＣＰＵ３０１は、予め、記憶部３０４Ｄから理想値のデータ、及び記憶部３０４Ｅから閾値のデータをそれぞれ読み出しておき、ＲＡＭ３０３等の一時記憶領域に予め設定しておく。
【００４９】
ＣＰＵ３０１は、ロボットアーム２０１の先端部の理想軌道に基づき、ロボットアーム２０１の逆運動学計算により、メカモデルを用いて動作指令値θｒｅｆ（ｉ）を生成する（Ｓ１１：指令値生成処理、指令値生成工程）。ＣＰＵ３０１は、生成した動作指令値θｒｅｆ（ｉ）を記憶部３０４Ｃに記憶させる。
【００５０】
次に、ＣＰＵ３０１は、動作指令値θｒｅｆ（ｉ）に基づきロボットアーム２０１を生産動作よりも低速（例えば生産動作の１／１０の速度）で動作させ（Ｓ１２）、力覚センサ２０３の検出値を取得（荷重計測）する（Ｓ１３：低速動作処理、低速動作工程）。
【００５１】
次に、ＣＰＵ３０１は、ロボットアーム２０１の動作が終了したか否かを判断し（Ｓ１４）、動作が終了していなければ（Ｓ１４：Ｎｏ）、ステップＳ１２に戻り、低速動作を継続する。
【００５２】
ＣＰＵ３０１は、ロボットアーム２０１の動作が終了した場合（Ｓ１４：Ｙｅｓ）、記憶部３０４Ｄから読み出した理想値に対する力覚センサ２０３の検出値の偏差を求め、偏差が記憶部３０４Ｅから読み出した閾値以内であるか否かを判断する（Ｓ１５）。
【００５３】
即ち、リンク長の製作公差や組立誤差、関節部の角度誤差によるロボットアーム２０１の姿勢の変化、及びロボットアーム２０１の先端部に掛る荷重によるロボットアーム２０１の撓みにより、力覚センサ２０３の検出値が理想値に対してずれる。このずれ量を示す偏差が閾値以下であれば、ＴＣＰは理想軌道を辿るものとみなせる。ＣＰＵ３０１は、この力覚センサ２０３の検出値をロボットアーム２０１の先端部に掛る荷重として記憶部３０４Ａに記憶させる。
【００５４】
ＣＰＵ３０１は、偏差が閾値を超える場合（Ｓ１５：Ｎｏ）、メカモデル、具体的にはリンクパラメータと、ロボットアーム２０１の先端部に掛る荷重のデータを補正、つまり記憶部３０４Ａに記憶されているメカモデルを書き換える（Ｓ１６）。
【００５５】
そして、ＣＰＵ３０１は、補正したメカモデルを用いて、ロボットアーム２０１の逆運動学計算により、動作指令値θｒｅｆ（ｉ）を生成し（Ｓ１７）、記憶部３０４Ｃに記憶されている動作指令値θｒｅｆ（ｉ）のデータを書き換える。つまり、書き換えられたメカモデルを用いてロボットアーム２０１の撓み量を推定して、ロボットアーム２０１の撓みによる姿勢の変化を解消するように補正した動作指令値θｒｅｆ（ｉ）を生成する。そして、ステップＳ１２に戻り、補正された動作指令値θｒｅｆ（ｉ）に基づきロボットアーム２０１を低速で動作させる。このように、ＣＰＵ３０１は、ステップＳ１６，Ｓ１７の補正処理（補正工程）により、偏差が小さくなるように動作指令値を補正する。
【００５６】
ＣＰＵ３０１は、この補正処理を１回のみ行うようにしてもよいが、第１実施形態では、ステップＳ１２〜Ｓ１７（低速動作処理及び補正処理）を、偏差が閾値以内に収束するまで、繰り返し実行する。ＣＰＵ３０１は、ステップＳ１５において、偏差が閾値以内に収束したと判断した場合には、事前動作を終了する。
【００５７】
以上のように生成された動作指令値θｒｅｆ（ｉ）に基づきロボットアーム２０１を動作させたとき、ロボットアーム２０１の振動がなければ、ＴＣＰはほぼ理想軌道を辿ることになる。
【００５８】
次に、生産動作における制御フローについて説明する。図９は、生産動作における制御処理を示すフローチャートである。
【００５９】
ＣＰＵ３０１は、記憶部３０４Ｃから読み出した動作指令値θｒｅｆ（ｉ）に基づきロボットアーム２０１を既定の速度で動作させ（Ｓ２１）、力覚センサ２０３の検出値を取得（荷重計測）する（Ｓ２２）。そして、ＣＰＵ３０１は、上述したように、力覚センサ２０３の検出値に基づき補償成分αθ（ｉ）を演算して、この補償成分αθ（ｉ）でフィードバック制御値Ｖｒｅｆ（ｉ）を補正し（Ｓ２３）、ロボットアーム２０１の位置制御を行う。この補償成分αθ（ｉ）は、事前動作で取得済みのロボットアーム２０１の先端部の荷重データで補正しているので、重力や慣性力を除去した振動成分のみとなっている。したがって、振動エネルギーを相殺する逆位相の加速度がロボットアーム２０１の先端部に付与されることになる。
【００６０】
ＣＰＵ３０１は、ロボットアーム２０１の動作が終了したか否かを判断し（Ｓ２４）、終了していなければ（Ｓ２４：Ｎｏ）ステップＳ２１に戻り、終了していれば（Ｓ２４：Ｙｅｓ）、処理を終了する。
【００６１】
以上、生産動作では、予め事前動作により第１の要因による軌道のずれが補正されている状態で、第２の要因である振動による軌道のずれのみを補正できるので、処理が簡単であり、計算負荷を削減できる。よって、生産中の計算負荷を大幅に削減することができ、振動を抑制する処理時間を大幅に短縮することができるので、ロボットアーム２０１の振動を抑制しつつ、ロボットアーム２０１を高精度かつ高速に動作させることができる。このため、ロボットハンド２０２の位置を高精度に制御できるため、組付作業を、高速かつ高精度に行うことができる。
【００６２】
［第２実施形態］
次に、本発明の第２実施形態に係るロボット装置について説明する。図１０は、第２実施形態に係るロボット装置のブロック図である。第２実施形態では、事前動作は上記第１実施形態と同様であり、生産動作の処理が上記第１実施形態と異なる。具体的には、図１０中、第２演算部３２２、ゲイン調整部３２４ｉ及び減算部３１３ｉの機能が第１実施形態と異なる。
【００６３】
図１中、Ｙ方向およびＺ方向の振動が大きい場合、図１に示した関節部Ｊ３，Ｊ５のみ、第２演算部３２２、ゲイン調整部３２４ｉ及び減算部３１３ｉにてフィードバック制御で補正しすればよい。これにより、生産中の計算負荷がより削減することができ、全関節部をフィードバック制御するよりも、一部の関節部のみにフィードバックループ制御を絞ったことで、より高速でかつ高精度な生産を行うことができる。
【００６４】
［第３実施形態］
次に、本発明の第３実施形態に係るロボット装置について説明する。図１１は、第３実施形態に係るロボット装置のブロック図である。第３実施形態では、事前動作は上記第１実施形態と同様であり、生産動作の処理が上記第１実施形態と異なる。具体的には、図１１中、第２演算部３２２、ゲイン調整部３２４ｉ及び減算部３１３ｉの機能が第１実施形態と異なる。
【００６５】
図１中、Ｘ方向、Ｙ方向およびＺ方向の振動が大きい場合、図１に示した関節部Ｊ１，Ｊ３，Ｊ５のみ、第２演算部３２２、ゲイン調整部３２４ｉ及び減算部３１３ｉにてフィードバック制御で補正しすればよい。これにより、生産中の計算負荷がより削減することができ、全関節部をフィードバック制御するよりも、一部の関節部のみにフィードバックループ制御を絞ったことで、より高速でかつ高精度な生産を行うことができる。
【００６６】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【００６７】
上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６８】
また、上述の実施形態では、ロボットアーム２０１が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
【００６９】
また、上述の実施形態では、力覚センサ２０３を用いる場合について説明したが、加速度を検出する加速度センサを用いてもよい。
【符号の説明】
【００７０】
１００…ロボット装置、２０１…ロボットアーム、２０２…ロボットハンド、２０３…力覚センサ（加速度センサ）、２２１ｉ…モータ（駆動部）、２２２ｉ…エンコーダ（検出部）、３０１…ＣＰＵ（制御部）
【図１】
2017209762.tif 000003
【図２】
2017209762.tif 000004
【図３】
2017209762.tif 000005
【図４】
2017209762.tif 000006
【図５】
2017209762.tif 000007
【図６】
2017209762.tif 000008
【図７】
2017209762.tif 000009
【図８】
2017209762.tif 000010
【図９】
2017209762.tif 000011
【図１０】
2017209762.tif 000012
【図１１】
2017209762.tif 000013