(57)【特許請求の範囲】
【請求項１】
減速機、及び前記減速機の出力角度を検出する角度検出器を各関節に有する多関節ロボットを、制御手段により、前記多関節ロボットの所定の部位が第１位置から第２位置に向かう第１動作を実行した後に、所定の時間、停止させてから、第２動作を実行するロボット装置の制御方法であって、
前記制御手段は、
複数の前記角度検出器により検出される角度に基づき求められる前記所定の部位の位置の振れ幅を、前記所定の部位の位置を直交座標系で表した際に、前記直交座標系の軸毎に測定可能であり、
前記所定の部位の位置の振れ幅が、前記所定の部位が前記第２位置に到達した時点から所定の範囲内に収まるまでの時間に基づき、前記所定の時間を設定し、
前記所定の範囲が、前記直交座標系の軸毎に設定可能であることを特徴とする制御方法。
【請求項２】
前記直交座標系の軸毎に設定された前記所定の範囲の少なくとも１つが、他の方向よりも大きく設定されていることを特徴とする請求項１に記載の制御方法。
【請求項３】
前記制御手段は、
前記所定の部位が前記第２位置に到達した時点から、前記複数の角度検出器により検出される角度に基づき求められる前記所定の部位の位置の振れ幅が所定の範囲内に収まるまでの時間を測定し、測定した時間を、前記所定の時間として記憶手段に記憶させることを特徴とする請求項１又は２に記載の制御方法。
【請求項４】
前記制御手段は、前記第１動作を実行する前に前記ロボット装置を動作させることで、前記所定の部位が前記第２位置に到達した時点から、前記複数の角度検出器により検出される角度に基づき求められる前記所定の部位の位置の振れ幅が所定の範囲内に収まるまでの時間を測定し、前記所定の時間として設定することを特徴とする請求項１乃至３のいずれか１項に記載の制御方法。
【請求項５】
再度、前記所定の部位が前記第２位置に到達した時点から、前記複数の角度検出器により検出される角度に基づき求められる前記所定の部位の位置の振れ幅が所定の範囲内に収まるまでの時間を測定した際、
再度求めた当該時間が前記所定の時間から一定時間以上変化していれば、前記記憶手段に記憶されている前記所定の時間を再度求めた当該時間に更新することを特徴とする請求項３に記載の制御方法。
【請求項６】
前記所定の時間が閾値以上である場合は、警告を通知することを特徴とする請求項１乃至４のいずれか１項に記載の制御方法。
【請求項７】
前記所定の部位は、前記多関節ロボットの先端であることを特徴とする請求項１乃至６のいずれか１項に記載の制御方法。
【請求項８】
前記角度検出器は、ロータリエンコーダであることを特徴とする請求項１乃至７のいずれか１項に記載の制御方法。
【請求項９】
減速機、及び前記減速機の出力角度を検出する角度検出器を各関節に有する多関節ロボットを、制御手段により、前記多関節ロボットの所定の部位が第１位置から第２位置に向かう第１動作を実行した後に、所定の時間、停止させてから、第２動作を実行するロボット装置であって、
前記制御手段は、
複数の前記角度検出器により検出される角度に基づき求められる前記所定の部位の位置の振れ幅を、前記所定の部位の位置を直交座標系で表した際に、前記直交座標系の軸毎に測定可能であり、
前記所定の部位の位置の振れ幅が、前記所定の部位が前記第２位置に到達した時点から所定の範囲内に収まるまでの時間に基づき、前記所定の時間を設定し、
前記所定の範囲が、前記直交座標系の軸毎に設定可能であることを特徴とするロボット装置。
【請求項１０】
コンピュータに、請求項１乃至８のいずれか１項に記載の制御方法を実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
減速機、及び前記減速機の出力角度を検出する角度検出器を各関節に有する多関節ロボット、並びに制御手段を有したロボット装置の前記多関節ロボットが第１部品を把持して前記多関節ロボットの所定の部位が第１位置から第２位置に向かう第１動作を行った後に、前記ロボット装置の前記多関節ロボットを所定の時間、停止させてから、第２動作にて前記第１部品を第２部品に接触させて物品を製造する物品の製造方法であって、
前記制御手段は、
複数の前記角度検出器により検出される角度に基づき求められる前記所定の部位の位置の振れ幅を、前記所定の部位の位置を直交座標系で表した際に、前記直交座標系の軸毎に測定可能であり、
前記所定の部位の位置の振れ幅が、前記所定の部位が前記第２位置に到達した時点から所定の範囲内に収まるまでの時間に基づき、前記所定の時間を設定し、
前記所定の範囲が、前記直交座標系の軸毎に設定可能であることを特徴とする物品の製造方法。
【請求項１３】
減速機、及び前記減速機の出力角度を検出する角度検出器を各関節に有する多関節ロボットを、制御手段により、前記多関節ロボットの所定の部位が第１位置から第２位置に向かう第１動作を実行した後に、所定の時間、停止させてから、第２動作を実行する駆動装置であって、
前記制御手段は、
複数の前記角度検出器により検出される角度に基づき求められる前記所定の部位の位置の振れ幅を、前記所定の部位の位置を直交座標系で表した際に、前記直交座標系の軸毎に測定可能であり、
前記所定の部位の位置の振れ幅が、前記所定の部位が前記第２位置に到達した時点から所定の範囲内に収まるまでの時間に基づき、前記所定の時間を設定し、
前記所定の範囲が、前記直交座標系の軸毎に設定可能であることを特徴とする駆動装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置の制御方法、ロボット装置、プログラム、記録媒体、物品の製造方法、及び駆動装置に関する。
【背景技術】
【０００２】
従来、工場等において、様々なロボット装置が使用されており、昨今においては、より複雑な動作を行わせるために多軸多関節のロボットを備えたロボット装置が広く普及している。生産装置として多関節ロボットを用いる場合、作業効率を高めるためには、ロボットを高速に動作させる必要がある。そのためには、一つの動作が確実に完了したことの検出、すなわち位置決め完了の検出を可能な限り速やかに行う必要がある。ロボットの位置決め完了の検出に対しては、これまで、以下のような技術が提案されている。例えば、ロボットの先端位置をサーボモータの位置、速度、トルク指令値から推定し、この値が予め設定した先端位置の許容値以内となった場合に位置決め完了と判定する方法である（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平３−２５７５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術は、ロボットアームの先端位置を、減速機入力側の値、つまりサーボモータの回転軸の回転角度を検出するエンコーダによる検出角度に基づいて、計算により推定している。即ち、検出しているのは減速機の入力側の角度である。減速機の入力側からロボットアームの先端までには、剛性が低く振動を起こしやすい減速機が介在するので、先端の振動が収束したことを減速機の入力側の値で保証することは困難である。したがって、実際にはロボットアームの先端の振動が収束していない場合もあり、組み付け作業の精度が低下する場合があった。
【０００５】
そこで、特許文献１の従来の技術に記載のように、次の動作に移る前に、単純に一定の時間、ロボットアームを停止することも考えられるが、相当の余裕をもって停止時間を設定する必要があった。そのため、同一の組み付け動作を繰り返し実施した場合に、余裕を見た分の時間（マージン）が累積され、ロボットアームによる作業効率が低下していた。
【０００６】
本発明は、不必要に長い停止時間を短縮することで多関節ロボットの作業の効率化を図ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の制御方法は、減速機、及び前記減速機の出力角度を検出する角度検出器を各関節に有する多関節ロボットを、制御手段により、前記多関節ロボットの所定の部位が第１位置から第２位置に向かう第１動作を実行した後に、所定の時間、停止させてから、第２動作を実行するロボット装置の制御方法であって、前記制御手段は、複数の前記角度検出器により検出される角度に基づき求められる前記所定の部位の位置の振れ幅を、前記所定の部位の位置を直交座標系で表した際に、前記直交座標系の軸毎に測定可能であり、前記所定の部位の位置の振れ幅が、前記所定の部位が前記第２位置に到達した時点から所定の範囲内に収まるまでの時間に基づき、前記所定の時間を設定し、前記所定の範囲が、前記直交座標系の軸毎に設定可能であることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、角度検出器の検出角度に基づき所定の部位の位置が求められ、所定の部位が所定の範囲内に収まるまでの時間に基づき所定の時間を設定している。これにより、所定の時間に亘って停止させることで、所定の部位の振動が収まるため、ロボット装置の作業精度が向上する。更に、所定の時間にマージンを多めに設ける必要がないので、従来よりも停止時間が短縮され、ロボット装置の作業効率が向上する。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１実施形態に係るロボット装置を示す斜視図である。
【図２】本発明の第１実施形態に係るロボット装置のロボットアームの１つの関節を示す部分断面図である。
【図３】本発明の第１実施形態に係るロボット装置の制御装置の構成を示すブロック図である。
【図４】本発明の第１実施形態に係るロボット装置の制御系を示す機能ブロック図である。
【図５】本発明の第１実施形態に係る制御装置が実施するロボット制御方法の各工程を示すフローチャートである。
【図６】本発明の第１実施形態に係るロボットの先端の振動状態を示すグラフである。
【図７】本発明の第２実施形態に係るロボット装置の制御系を示す機能ブロック図である。
【図８】本発明の第２実施形態に係る制御装置が実施するロボット制御方法の各工程を示すフローチャートである。
【図９】本発明の第３実施形態に係るロボット装置の制御系を示す機能ブロック図である。
【図１０】本発明の第３実施形態に係る制御装置が実施するロボット制御方法の各工程を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１１】
［第１実施形態］
以下、本発明の実施形態に係るロボット装置について説明する。図１は、本発明の第１実施形態に係るロボット装置を示す斜視図である。
【００１２】
図１に示すロボット装置５００は、産業用ロボットである。ロボット装置５００は、把持した第１部品Ｗ１を第２部品Ｗ２に組付ける組立作業を行うロボット１００と、ロボット１００を制御する制御手段としての制御装置２００と、制御装置２００に接続されたティーチングペンダント３００と、を備えている。
【００１３】
ロボット１００は、多関節ロボットであり、垂直多関節型のロボットアーム１０１と、ロボットアーム１０１の先端に接続されたエンドエフェクタであるロボットハンド１０２と、を備えている。
【００１４】
ロボット１００の先端（ロボットハンド１０２又はロボットアーム１０１の先端）には、ツールセンターポイント（ＴＣＰ）が設定されており、教示点がタスク空間で指定される場合、その教示点は、ＴＣＰの位置及び姿勢を示すパラメータで表現される。教示点がコンフィグレーション空間（関節空間）で指定される場合、その教示点は、ロボット１００の各関節の関節角度を示すパラメータで表現される。なお、コンフィグレーション空間で指定された教示点は、順運動学計算により、タスク空間に変換することができ、タスク空間で指定された教示点は、逆運動学計算により、コンフィグレーション空間に変換することができる。
【００１５】
ロボットアーム１０１は、作業台に固定されるベース部（基端リンク）１０３と、変位や力を伝達する複数のリンク１２１〜１２６と、を有している。ベース部１０３及び複数のリンク１２１〜１２６は、複数の関節Ｊ１〜Ｊ６で旋回又は回転可能に互いに連結されている。また、ロボットアーム１０１は、各関節Ｊ１〜Ｊ６に設けられた、関節を駆動する関節駆動装置１１０を備えている。各関節Ｊ１〜Ｊ６に配置された関節駆動装置１１０は、必要なトルクの大きさに合わせて適切な出力のものが用いられる。
【００１６】
ロボットハンド１０２は、部品Ｗ１を把持する複数の把持爪（フィンガ）１０４と、複数の把持爪１０４を駆動する不図示の駆動部と、駆動部の回転角度を検出する不図示のエンコーダと、回転を把持動作に変換する不図示の機構とを有している。この不図示の機構は、カム機構やリンク機構などで必要な把持動作に合わせて設計される。なお、ロボットハンド１０２に用いる駆動部に必要なトルクは、ロボットアーム１０１の関節用と異なるが、基本構成は同じである。また、ロボットハンド１０２は、把持爪１０４等に作用する応力（反力）を検出可能な不図示の力覚センサを有している。
【００１７】
ティーチングペンダント３００は、制御装置２００に接続可能に構成され、制御装置２００に接続された際に、ロボットアーム１０１やロボットハンド１０２を駆動制御する指令を制御装置２００に送信可能に構成されている。
【００１８】
以下、関節Ｊ２における関節駆動装置１１０を例に代表して説明し、他の関節Ｊ１，Ｊ３〜Ｊ６の関節駆動装置１１０については、サイズや性能が異なる場合もあるが、同様の構成であるため、説明を省略する。
【００１９】
図２は、ロボットアーム１０１の関節Ｊ２を示す部分断面図である。関節駆動装置１１０は、電動モータであるサーボモータ（以下、「モータ」という）１と、モータ１の回転軸２の回転を減速して出力する減速機１１と、を有している。
【００２０】
また、関節駆動装置１１０は、モータ１の回転軸２の回転角度（出力角度）を検出するモータ側角度検出器である入力側エンコーダ１０を有している。また、関節駆動装置１１０は、減速機１１の出力軸の回転角度（出力角度）を検出する減速機側角度検出器である出力側エンコーダ１６を有している。
【００２１】
モータ１は、例えばブラシレスＤＣサーボモータやＡＣサーボモータである。モータ１は、回転軸２とロータマグネット３とで構成された回転部４と、モータハウジング５と、回転軸２を回転自在に支持する軸受６，７と、回転部４を回転させるステータコイル８と、を備えている。軸受６，７はモータハウジング５に設けられ、ステータコイル８はモータハウジング５に取り付けられている。また、サーボモータ１はモータカバー９で囲われている。
【００２２】
入力側エンコーダ１０は、光学式或いは磁気式のロータリエンコーダであり、モータ１の回転軸２の一端側に設けられ、モータ１の回転軸２の回転に伴ってパルス信号を生成し、制御装置２００に生成したパルス信号を出力する。なお、入力側エンコーダ１０は、回転軸２に取り付けられているが、減速機１１の入力軸に取り付けてもよい。
【００２３】
出力側エンコーダ１６は、光学式或いは磁気式のロータリエンコーダであり、減速機１１の出力角度、第１実施形態では、ベース部１０３とリンク１２１、或いは隣り合う２つのリンク間の相対角度を検出する。関節Ｊ２においては、出力側エンコーダ１６は、リンク１２１とリンク１２２との間の相対角度を検出する。具体的には、出力側エンコーダ１６は、関節Ｊ２の駆動（リンク１２１とリンク１２２との相対移動）に伴ってパルス信号を生成し、制御装置２００に生成したパルス信号を出力する。
【００２４】
リンク１２１とリンク１２２とは、クロスローラベアリング１５を介して回転自在に結合されている。モータ１と入力側エンコーダ１０との間には、必要に応じて、電源オフ時にロボットアーム１０１の姿勢を保持するためのブレーキユニットを設けてもよい。
【００２５】
減速機１１は、第１実施形態では、小型軽量で減速比の大きい波動歯車減速機である。減速機１１は、モータ１の回転軸２に結合された、入力軸を有するウェブジェネレータ１２と、リンク１２２に固定された、出力軸を有するサーキュラスプライン１３と、を備えている。なお、サーキュラスプライン１３は、リンク１２２に直結されているが、リンク１２２に一体に形成されていてもよい。
【００２６】
また、減速機１１は、ウェブジェネレータ１２とサーキュラスプライン１３との間に配置され、リンク１２１に固定されたフレクスプライン１４を備えている。フレクスプライン１４は、ウェブジェネレータ１２の回転に対して減速比Ｎで減速され、サーキュラスプライン１３に対して相対的に回転する。従って、モータ１の回転軸２の回転数が減速機１１で１／Ｎに減速され、フレクスプライン１４が固定されたリンク１２１に対してサーキュラスプライン１３が固定されたリンク１２２を相対的に回転運動させ、関節Ｊ２を屈曲（回転）させる。このときの減速機１１の出力側の回転角度が、実出力角度、即ち関節Ｊ２の角度（関節角度）となる。
【００２７】
図３は、ロボット装置５００の制御装置２００の構成を示すブロック図である。制御手段としての制御装置２００は、制御部（演算部）としてのＣＰＵ（Central  ProcessingUnit）２０１を備えている。また、制御装置２００は、記憶手段として、ＲＯＭ（ReadOnly  Memory）２０２、ＲＡＭ（Random  Access  Memory）２０３、ＨＤＤ（Hard  Disk  Drive）２０４を備えている。また、制御装置２００は、記録ディスクドライブ２０５、計時手段である計時部（タイマ）２０６及び各種のインタフェース２１１〜２１６を備えている。また、制御装置２００は、インタフェース２１６に接続されたサーボ制御装置２３０を備えている。
【００２８】
ＣＰＵ２０１には、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、記録ディスクドライブ２０５、タイマ２０６及び各種のインタフェース２１１〜２１６が、バス２２０を介して接続されている。ＲＯＭ２０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００２９】
ＨＤＤ２０４は、ＣＰＵ２０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ２０１に、後述する各種演算処理を実行させるためのプログラム２４０を記録するものである。ＣＰＵ２０１は、ＨＤＤ２０４に記録（格納）されたプログラム２４０に基づいてロボット制御方法の各工程を実行する。
【００３０】
記録ディスクドライブ２０５は、記録ディスク２４１に記録された各種データやプログラム等を読み出すことができる。タイマ２０６は、ＣＰＵ２０１からの計時開始の指令と計時終了の指令に基づき時間をカウントし、その時間のデータをＣＰＵ２０１に出力する。
【００３１】
インタフェース２１１には、ユーザが操作可能なティーチングペンダント３００が接続されている。ティーチングペンダント３００は、入力された教示点のデータ（コンフィグレーション空間で指定された場合は各関節Ｊ１〜Ｊ６の目標角度）をインタフェース２１１及びバス２２０を介してＣＰＵ２０１に出力する。ＣＰＵ２０１は、ティーチングペンダント３００から入力を受けた教示点のデータをＨＤＤ２０４等の記憶部に設定する。
【００３２】
インタフェース２１２，２１３には、各種画像が表示されるモニタ３１１や書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置３１２が接続されている。
【００３３】
インタフェース２１４，２１５には、入力側エンコーダ１０及び出力側エンコーダ１６がそれぞれ接続されている。入力側エンコーダ１０及び出力側エンコーダ１６は、前述したパルス信号をインタフェース２１４，２１５及びバス２２０を介してＣＰＵ２０１に出力する。
【００３４】
インタフェース２１６には、サーボ制御装置２３０が接続されている。ＣＰＵ２０１は、教示点間を繋ぐ軌道を生成して、サーボモータ１の回転軸２の回転角度の制御量を示す駆動指令のデータを所定の時間間隔でバス２２０及びインタフェース２１６を介してサーボ制御装置２３０に出力する。
【００３５】
サーボ制御装置２３０は、ＣＰＵ２０１から入力を受けた駆動指令に基づき、フィードバック制御によるサーボモータ１への電流の出力量を演算し、サーボモータ１へ電流を供給して、ロボットアーム１０１の関節Ｊ１〜Ｊ６の関節角度制御を行う。即ち、ＣＰＵ２０１は、サーボ制御装置２３０を介して、関節Ｊ１〜Ｊ６の角度が目標角度となるように、サーボモータ１による関節Ｊ１〜Ｊ６の駆動を制御する。
【００３６】
ここで、後述する位置決め完了検出プログラムを実行する際に、ＣＰＵ２０１及びＨＤＤ２０４が有する機能について、図４を参照しながら説明する。図４は、本発明の第１実施形態に係るロボット装置５００の制御系を示す機能ブロック図である。ここで、図３に示すＣＰＵ２０１は、プログラム２４０を実行することにより、図４に示す各演算部４０１，４０２，４０４として機能する。また、記憶手段としてのＨＤＤ２０４は、各記憶部４０３，４０５として機能する。以下、各部について説明する。
【００３７】
実出力角演算部４０１は、出力側エンコーダ１６からパルス信号の入力を受け、出力角度（検出角度）θを演算する。入力側エンコーダ１０により出力側の回転角度を演算する方法と比較して、この出力角度θは減速機１１の撓み分を含んだ値となっており、よりロボットアーム１０１の先端に近い位置情報を得ることが可能となる。
【００３８】
先端位置演算部４０２は、実出力角演算部４０１の値、即ち各関節Ｊ１〜Ｊ６の関節角度とみなせる各出力側エンコーダ１６により検出された検出角度に基づき、順運動学によりロボット１００の先端（ＴＣＰ）の位置を演算する。
【００３９】
位置決め完了判定値記憶部４０３は、ロボット１００の先端の位置決めが完了したと判定するときに用いる、先端位置の許容範囲（収束範囲）を決める、位置決め完了判定値を記憶する。この値は、ユーザが事前に位置決め完了判定値記憶部４０３に記憶させておくのがよい。この判定値は、ロボットアーム１０１の動作状況に応じて、直交座標系（世界座標系）における座標ｘ、ｙ、ｚの各軸方向に個別で設定するとよい。つまり、ロボット１００の先端の位置を直交座標系で表したときに、直交座標系の各軸方向で個別に収束範囲を設定すればよい。
【００４０】
先端の位置と各関節角度の対応関係が既知であれば、関節角度の目標角度となるようにフィードバック制御してもよい。
【００４１】
例えば、高い動作精度を要求される方向のみ判定値を小さく設定すれば、最適な位置決め完了判定時間を得ることが可能となる。この値は、ユーザが事前実験や図面などから導出したものであってもよいし、より簡易的に、使用状況別に数段階の既定の値を用意し、選択して適用するようにしてもよい。
【００４２】
位置決め時間演算部４０４は、先端位置演算部４０２からの値と、位置決め完了判定値記憶部４０３からの値を基にして、ロボット１００の対象動作の位置決め時間（ロボット１００を停止させておく停止時間）を求める。
【００４３】
パラメータ記憶部４０５は、位置決め時間演算部４０４が求めた値を記憶する。記憶した値は、ロボット装置５００を連続運転させる際に、サーボ制御装置２３０を介して当該動作の位置決め完了時間（停止時間）として適用される。
【００４４】
ここで、図１に示すように、ロボット１００の先端（ＴＣＰ）を教示点Ｐ１，Ｐ２，Ｐ３の順に動作させて部品Ｗ１を部品Ｗ２に組付けて組付部品を製造する場合について説明する。図１において、教示点Ｐ１から教示点Ｐ２に向かう動作を第１動作、教示点Ｐ２から教示点Ｐ３に向かう動作を第２動作とする。制御装置２００は、ロボット１００を第１動作から次の第２動作に移行させる際に、ロボット１００の振動を収束させる目的で教示点Ｐ２の位置でロボット１００を一旦、ある停止時間だけ停止させる。
【００４５】
つまり、制御装置２００は、第１動作では、各入力側エンコーダ１０により検出された検出角度が、コンフィグレーション空間で指定された教示点Ｐ２（つまり、各関節Ｊ１〜Ｊ６の目標角度）となるようにフィードバック制御する。制御装置２００は、入力側エンコーダ１０の検出結果に基づいてフィードバック制御するので、出力側エンコーダ１６の検出結果に基づいてフィードバック制御する際よりも速く教示点Ｐ２に到達する。しかし、ロボット１００は、第１動作に伴う慣性力の影響を受け、教示点Ｐ２に到達したときにロボット１００が減速機１１の撓み等により振動する。この減速機１１による振動は、モータ１の角度（入力側エンコーダ１０による検出角度）では正確に求めることは困難である。ロボット１００の振動が収束していない状態で第２動作、即ち部品Ｗ１を部品Ｗ２に組付けて組立部品を製造する動作を行うと、組み付けが失敗することがある。よって、第１実施形態では、ロボット１００に第１動作を行わせて教示点Ｐ２に到達した時点から予め設定された停止時間だけ停止させた後に、次の第２動作を実行するようにしている。この停止時間のデータは、前述したパラメータ記憶部４０５に記憶させておく。
【００４６】
以下、この停止時間の設定動作について説明する。図５は、本発明の第１実施形態に係る制御装置２００が実施するロボット制御方法の各工程を示すフローチャートである。
【００４７】
まず、サーボ制御装置２３０は、ＣＰＵ２０１の指令により検出対象動作を実行する（Ｓ１：フィードバック制御工程）。サーボ制御装置２３０は、ＣＰＵ２０１からの指令に基づき、入力側エンコーダ１０からの位置情報をフィードバックして制御する。詳述すると、サーボ制御装置２３０は、ＣＰＵ２０１の制御の下、各入力側エンコーダ１０により検出された検出角度が、ロボット１００の先端が第１動作の位置決め完了位置に移動する目標角度となるよう、各サーボモータ１をフィードバック制御する。なお、第１動作の位置決め完了位置とは、教示点Ｐ２の位置座標ｘ、ｙ、ｚであり、以下、目標位置ともいう。
【００４８】
次に、実出力角演算部４０１は、ステップＳ１にて各関節Ｊ１〜Ｊ６の入力側エンコーダ１０の検出角度を目標角度にした時点からタイマ２０６による計時を開始させ、各関節Ｊ１〜Ｊ６の出力側エンコーダ１６の検出角度を時刻毎に取り込む。そして、実出力角演算部４０１は、各時刻における各関節Ｊ１〜Ｊ６の減速機１１の出力軸の回転角度を、エンコーダ１６からのパルス信号に基づき計算する（Ｓ２）。即ち、実出力角演算部４０１は、各出力側エンコーダ１６により検出された検出角度を取得していることになる。ここでは入力側エンコーダ１０の検出角度を目標角度にした時点を基準時点Ｔ０として計時工程を開始する構成を説明するが、ユーザは任意の基準時点を定めてもかまわない。すなわち以下説明する停止時間の設定にあたり、適切な基準時点Ｔ０が定められていることが必要である。
【００４９】
次に、先端位置演算部４０２は、ステップＳ２で求めた各関節の減速機１１の出力軸の回転角度より、ロボット１００の先端位置（ＴＣＰの位置）を求める（Ｓ３：先端位置算出工程）。この先端位置は、各関節の回転角度を順運動学で変換して得られるものである。つまり、先端位置演算部４０２は、各出力側エンコーダ１６により検出された検出角度に基づきロボット１００の先端の位置を求める。
【００５０】
図６は、ロボットの先端の振動状態を示すグラフである。横軸は時間ｔ、縦軸はロボットの先端位置ｘ、ｙ、ｚの３方向の内、１方向における先端位置を示している。ステップＳ３により、図６に示すような減衰振動するロボット先端位置のデータが時刻毎に作成される。
【００５１】
次に、位置決め時間演算部４０４は、記憶部４０３から位置決め完了判定値を読み出す（Ｓ４）。そして、位置決め時間演算部４０４は、この値を、図６に示すように、検出対象動作の到達位置における各座標ｘ、ｙ、ｚの目標位置を中心値として正負に分布させ、位置決め完了幅（収束範囲）を設定する。
【００５２】
次に、位置決め時間演算部４０４は、図６に示すようなロボット１００の先端位置の振動データから、目標位置に対し位置決め完了幅以内（収束範囲内）に収束する時間ｔ１を求める（Ｓ５：計時工程）。図６に示すように、ステップＳ１にて各入力側エンコーダ１０の検出角度を目標角度（教示点Ｐ２）にした時点を時刻Ｔ０とする。また、図６に示すように、ステップＳ３にて算出したロボット１００の先端の位置の位置決め完了位置に対する振れ幅が収束範囲内に収束する時点を時刻Ｔ１とする。位置決め時間演算部４０４は、時刻Ｔ０から時刻Ｔ１までの時間ｔ１を求める。つまり、ステップＳ５では、ステップＳ３で求めた先端位置が、ステップＳ４で読み出し設定した位置決め完了幅内に収束する時間ｔ１を確認する。
【００５３】
次に、位置決め時間演算部４０４は、ステップＳ５にて求めた時間ｔ１を、パラメータ記憶部４０５に送信し格納することで、ロボット１００の停止時間（位置決め完了時間）に設定する（Ｓ６：設定工程）。
【００５４】
以上のステップＳ１〜Ｓ６を実行して停止時間を設定した後は、組立部品の製造工程（連続運転）に移行する。つまり、ロボット１００に第１部品Ｗ１を把持させて第１動作を行い、予め設定した停止時間、ロボット１００を停止させた後に、第２動作にて第１部品Ｗ１を第２部品Ｗ２に組付けて組立部品を製造する。
【００５５】
以上のステップＳ１〜Ｓ６の処理は、実際の連続運転時（組立作業時）に行ってもよいし、連続運転とは別に連続運転に先立って、連続運転時の動作と同様の動作を行う試運転時に行ってもよい。連続運転の場合は、停止時間を設定した後の次のロットの組立時から、設定した停止時間に基づいてロボット１００を制御すればよい。
【００５６】
試運転時の場合、ロボット１００のロボットハンド１０２には、実際の部品Ｗ１または部品Ｗ１に相当する治具を把持させて上記ステップＳ１〜Ｓ６の処理を行うことで、教示点Ｐ２に動作させた場合におけるロボット１００の停止時間を設定すればよい。そして、連続運転時に設定した停止時間に基づいてロボット１００を制御すればよい。
【００５７】
このように、ロボットアーム１０１をティーチングプレイバック方式で動作させる場合、動作軌道には再現性がある。この性質を利用すると、次回以降の動作における位置決め完了幅内に収束する時間も略同一となる。よってこの時間を検出対象動作における位置決め完了時間と見なすことができる。
【００５８】
以上説明したように、第１実施形態に係るロボット装置５００によれば、ロボット先端位置を、出力側エンコーダ１６の検出角度に基づいて算出することにより、先端の振動が収束する時間ｔ１を正確に求められるようになっている。
【００５９】
そして、ティーチングプレイバック方式の動作再現性を利用することで、位置決め完了判定までの時間を短縮できる。よって、従来にあるような、減速機入力側の値を基とした方法と比較して、精度が保証される最速の位置決め完了条件を、正確に求めることが可能となる。
【００６０】
つまり、第１動作の始点となる教示点Ｐ１から終点となる教示点Ｐ２にロボット１００を動作させた時、ｔ１に設定した停止時間、ロボット１００を停止させることで、ロボット１００の先端の振動が収束する。よって、次の第２動作の始点となる教示点Ｐ２から第２動作の終点となる教示点Ｐ３へ移動するロボット１００の動作が安定する。したがって、部品Ｗ１を部品Ｗ２に組付ける組付け作業を行う際には、組み付け作業の精度が低下するのを抑制することができる。このように、設定した停止時間に亘ってロボット１００を停止させることでロボット１００の振動が収束するため、ロボット１００の作業精度が向上する。
【００６１】
更に、設定する停止時間にマージンを多めに設ける必要がないので、従来よりも停止時間が短縮され、ロボット１００の作業効率が向上する。
【００６２】
また、収束範囲を座標ｘ、ｙ、ｚの各軸方向で個別に設定することで、動作精度を要求されない方向の収束範囲を大きく設定することで、位置決め完了までの時間（振動が収束するまでの時間、つまりロボット１００の停止時間）を短縮することができる。よって、ロボット１００のより高速な動作が可能となる。
【００６３】
［第２実施形態］
次に、本発明の第２実施形態に係るロボット装置によるロボット制御方法について、図７及び図８を参照しながら説明する。図７は、本発明の第２実施形態に係るロボット装置の制御系を示す機能ブロック図である。図８は、本発明の第２実施形態に係る制御装置が実施するロボット制御方法の各工程を示すフローチャートである。なお、第２実施形態のロボット装置の全体構成は、第１実施形態のロボット装置５００と同様であるため説明を省略し、第１実施形態と異なる点を中心に説明する。第２実施形態において、第１実施形態と異なるのは、制御装置２００の機能、即ちプログラム２４０（図３参照）の内容である。
【００６４】
ロボットアーム１０１を長時間使用すると、減速機１１や不図示のタイミングベルトなど、ロボットアーム１０１を構成する各部品の経時変化の影響が現れる。この場合、予め設定しておいた、ロボット１００の停止時間（位置決め完了時間）に対して、信号が収束する時間も変化すると考えられる。仮に、ロボット１００の停止時間を初期設定のまま使用すると、経時変化した際に、動作精度を確保できないまま、次の第２動作へ移る可能性が発生する。以下、第２実施形態では、位置決め完了時間の変化に対応するための方法について述べる。
【００６５】
以下、図８における各部の説明を行うが、第１実施形態の説明で用いた図４と共通の部については、説明を省略する。図３に示すＣＰＵ２０１は、プログラム２４０を実行することにより、図７に示す各演算部４０１，４０２，４０４，４０８として機能する。また、記憶手段としてのＨＤＤ２０４は、各記憶部４０３，４０６，４０７して機能する。
【００６６】
経時変化閾値記憶部４０６は、位置決め時間演算部４０４が計算した、ロボット１００の振動が収束する時間ｔ１が、現在適用している位置決め完了時間と、どの程度乖離したら経時変化として判定するかの閾値を記憶する。この閾値については、作業内容が精密なものであれば小さく設定するのがよい。この閾値は、ユーザが予め経時変化閾値記憶部４０６に設定する。
【００６７】
経時データ記憶部４０７は、経時変化判定の為に、取得した位置決め完了時間を時系列で記憶する。位置決め完了時間の取得方法については第１実施形態で述べた通りである。
【００６８】
経時データ処理部４０８は、経時データ記憶部４０７に保存してある位置決め完了時間の経時データを処理することで、経時変化による位置決め完了時間の変化の有無を判断する。経時データの処理方法は、例えば移動平均を用いるとよい。変化を検知した場合、サーボ制御装置２３０へ停止指令を送る。
【００６９】
次に、図８に示すフローチャートに沿って制御装置２００の制御動作を説明する。まず位置決め時間演算部４０４，経時データ処理部４０８は、連続運転の前に、位置決め完了判定値および経時変化の閾値を、位置決め完了判定値記憶部４０３，経時変化閾値記憶部４０６より読み出しておく（Ｓ１１）。
【００７０】
サーボ制御装置２３０は、ＣＰＵ２０１の指令により連続運転時の対象動作を実行する（Ｓ１２：フィードバック制御工程）。詳述すると、サーボ制御装置２３０は、ＣＰＵ２０１の制御の下、各入力側エンコーダ１０により検出された検出角度が、ロボット１００の先端が第１動作の位置決め完了位置に移動する目標角度となるよう、各サーボモータ１をフィードバック制御する。
【００７１】
次に、実出力角演算部４０１は、ステップＳ１２にて各関節Ｊ１〜Ｊ６の入力側エンコーダ１０の検出角度を目標角度にした時点からタイマ２０６による計時を開始させ、各関節Ｊ１〜Ｊ６の出力側エンコーダ１６の検出角度を時刻毎に取り込む。そして、実出力角演算部４０１は、各時刻における各関節Ｊ１〜Ｊ６の減速機１１の出力軸の回転角度を、エンコーダ１６からのパルス信号に基づき計算する（Ｓ１３）。即ち、実出力角演算部４０１は、各出力側エンコーダ１６により検出された検出角度を取得していることになる。
【００７２】
次に、先端位置演算部４０２は、ステップＳ１３で求めた各関節の減速機１１の出力軸の回転角度より、ロボット１００の先端位置（ＴＣＰの位置）を求める（Ｓ１４：先端位置算出工程）。この先端位置は、各関節の回転角度を順運動学で変換して得られるものである。つまり、先端位置演算部４０２は、各出力側エンコーダ１６により検出された検出角度に基づきロボット１００の先端の位置を求める。
【００７３】
次に、位置決め時間演算部４０４は、ロボット１００の先端位置の振動データから、目標位置に対し位置決め完了幅以内（収束範囲内）に収束する時間ｔ１を求める（Ｓ１５：計時工程）。
【００７４】
以上のステップＳ１２〜Ｓ１５の処理は、上記第１実施形態で説明した図５のステップＳ１〜Ｓ５の処理と同様である。つまり、図５に示すステップＳ１〜Ｓ５の処理を、再度、実行することになる。
【００７５】
次に、位置決め時間演算部４０４は、ステップＳ１５にて求めた時間ｔ１を、経時データ記憶部４０７へと格納する（Ｓ１６）。
【００７６】
その際、位置決め時間演算部４０４は、記憶部４０５（図４参照）に記憶されている停止時間に対して、ステップＳ１５にて求めた時間ｔ１が変化していれば、記憶部４０５に記憶されている停止時間をステップＳ１５にて求めた時間ｔ１に更新する。なお、位置決め時間演算部４０４は、記憶部４０５に記憶されている停止時間に対して、Ｓ１５にて求めた時間ｔ１が一定時間以上変化していれば、記憶部４０５に記憶されている停止時間をステップＳ１５にて求めた時間ｔ１に更新するようにしてもよい。
【００７７】
いずれにしても、ロボット１００の各部品の経時変化により振動が収束する時間が変化した場合に、変化後の収束時間を停止時間に適用して動作を継続することが可能である。そのため、ロボット１００の動作を継続しながら、ロボット１００の動作精度を確保した状態を保つことが可能となる。
【００７８】
ここで、第２実施形態において、ステップＳ１６にて経時データ記憶部４０７に記憶させた時間（位置決め完了時間）ｔ１は、経時変化の確認にのみ使用されるものであって、位置決め完了判定には使用されない。時間ｔ１は、ロボット１００の経時変化により長くなるように変化する傾向にあり、時間ｔ１を閾値判定すれば、ロボット１００が経時劣化したかどうかがわかる。つまり、時間ｔ１が閾値以上であれば、ロボット１００を構成する部品（特に減速機１１やタイミングベルト）が劣化したことが分かる。
【００７９】
経時データ処理部４０８は、ステップＳ１６で経時データ記憶部４０７に格納した位置決め完了時間ｔ１の経時データの処理を行い、位置決め完了時間の変化量を計算する。経時データ処理部４０８は、こうして求めた経時変化による位置決め完了時間の変化量が、ステップＳ１１で予め読み込んである閾値以上であるか否かを判断する（Ｓ１７）。閾値以上ではない場合（Ｓ１７：Ｎｏ）、ステップＳ１２の処理に戻り、繰り返す。
【００８０】
経時データ処理部４０８は、閾値以上である場合（Ｓ１７：Ｙｅｓ）、ユーザにその旨を警告する通知を行い（Ｓ１８：通知工程）、ロボット１００の動作を停止させる（Ｓ１９）。警告通知の手段については、ティーチングペンダント３００やモニタ３１１に警告を表示するのが好ましい。ロボット１００（特に関節Ｊ１〜Ｊ６）の各部品の経時変化により位置決め完了時間が変化した場合にロボット１００を停止し、ならびに使用者への警告を発するようにしているので、精度を確保しないまま次の動作に移ることを防止可能となる。
【００８１】
なお、図８に示す処理は対象動作の連続運転中に毎回行わなければならないものではなく、ＣＰＵ２０１の能力や計算負荷を考慮して、数回毎に間引いて実行するようにしてもよい。
【００８２】
［第３実施形態］
次に、本発明の第３実施形態に係るロボット装置によるロボット制御方法について、図９及び図１０を参照しながら説明する。図９は、本発明の第３実施形態に係るロボット装置の制御系を示す機能ブロック図である。図１０は、本発明の第３実施形態に係る制御装置が実施するロボット制御方法の各工程を示すフローチャートである。なお、第３実施形態のロボット装置の全体構成は、第１実施形態のロボット装置５００と同様であるため説明を省略し、第１実施形態と異なる点を中心に説明する。第３実施形態において、第１実施形態と異なるのは、制御装置２００の機能、即ちプログラム２４０（図３参照）の内容である。
【００８３】
ロボットの動作効率を上げる目的で、第１動作の速度を上げると、位置決め完了位置でロボットの振動は大きくなり、この場合、必要精度内にロボットの振動が収束するまでの時間は長くなる。つまり、第１動作の速度を上げて短縮出来る時間と、位置決め完了位置での振動待機時間は、相反する関係となる。しかし、ロボットが最適な動作効率となるような第１動作の速度を求める場合、第１動作が開始した時間から位置決め完了までの時間を、速度を変えながら測定を繰り返し行う必要があり、ロボットを取り扱う作業者の負担が増大する。特に、生産装置内に設置されたロボットは、周囲の装置により測定器具の設置自体が困難であることが少なくない。
【００８４】
そこで、第３実施形態では、第２動作における必要精度を満たしながら、第１動作の動作開始から位置決め完了までが最短の時間になる、第１動作の速度パラメータを求める方法について述べる。
【００８５】
以下、図９における各部の説明を行うが、第１実施形態の説明で用いた図４と共通の部については、説明を省略する。図３に示すＣＰＵ２０１は、プログラム２４０を実行することにより、図９に示す各演算部４０１、４０２、４０９、４１１として機能する。また、記憶手段としてのＨＤＤ２０４は、各記憶部４０３、４０５、４１０として機能する。
【００８６】
動作時間演算部４０９は、第１動作における動作時間を演算する。ここで動作時間とは、サーボ制御装置２３０からサーボモータ１に第１動作の指令が開始された時間を起点とし、第１動作の位置決め完了が判定された時間を終点とするものである。これは、前述した基準時点より以前の時間帯で計時された第１動作の指令に対応した動作に要する時間と、基準時点以降の手先が振動している時間の和に対応する時間である。この第１動作の動作時間は、ロボット１００の動作時間と、ロボット１００の静定時間とを共に含んだ値であり、短いほど望ましい。
【００８７】
位置決め完了の判定方法については第１実施形態で述べた通りである。
【００８８】
動作パラメータリスト記憶部４１０は、第１動作の速度パラメータ（動作パラメータ）のリスト（動作パラメータリスト）を記憶する。このリストの速度パラメータをパラメータ記憶部４０５を通してサーボ制御装置２３０に送ることで第１動作を行う。
【００８９】
パラメータ演算部４１１は、動作時間演算部４０９で求めた第１動作の動作時間が最も短くなる、第１動作の速度および加速度パラメータを求め、パラメータ記憶部４０５へその値を送信する。
【００９０】
次に、図１０に示すフローチャートに沿って制御装置２００の制御動作を説明する。まず動作時間演算部４０９は、動作時間の終点を求めるための位置決め完了判定値を、位置決め完了判定値記憶部４０３より読み出しておく。またパラメータ記憶部４０５は、動作パラメータリスト記憶部４１０から、リスト中、第一の速度パラメータを読み込む。この値を、サーボ制御装置２３０に送信する（Ｓ２１）。
【００９１】
サーボ制御装置２３０は、ＣＰＵ２０１の指令により対象動作を実行する（Ｓ２２：フィードバック制御工程）。詳述すると、サーボ制御装置２３０は、ＣＰＵ２０１の制御の下、各入力側エンコーダ１０により検出された検出角度が、ロボット１００の先端が第１動作の位置決め完了位置に移動する目標角度となるよう、各サーボモータ１をフィードバック制御する。
【００９２】
次に、実出力角演算部４０１は、ステップＳ２２にてサーボ制御装置２３０が第１動作の指令を開始した時点等の適当な時点からタイマ２０６による計時を開始させる。この計時は、前述の、ロボット１００の先端の位置の位置決め完了位置に対する振れ幅が収束範囲内に収束する時点までの時間を求める際の「基準時点」より以前の時間帯で実行する。ここで計測された時間は、第１動作の指令に対応した動作を実行するのに要した時間に相当する。
【００９３】
各関節Ｊ１〜Ｊ６の出力側エンコーダ１６の検出角度を時刻毎に取り込む。そして、実出力角演算部４０１は、各時刻における各関節Ｊ１〜Ｊ６の減速機１１の出力軸の回転角度を、エンコーダ１６からのパルス信号に基づき計算する（Ｓ２３）。即ち、実出力角演算部４０１は、各出力側エンコーダ１６により検出された検出角度を取得していることになる。
【００９４】
次に、先端位置演算部４０２は、ステップＳ２３で求めた各関節の減速機１１の出力軸の回転角度より、ロボット１００の先端位置（ＴＣＰの位置）を求める（Ｓ２４：先端位置算出工程）。この先端位置は、各関節の回転角度を順運動学で変換して得られるものである。つまり、先端位置演算部４０２は、各出力側エンコーダ１６により検出された検出角度に基づきロボット１００の先端の位置を求める。したがって、前述したように、先端の位置と各関節角度の対応関係が既知であればその関節角度を以って、関節角度の目標角度となるようにサーボモータをフィードバック制御したり、先端位置算出したりしたものとしてよい。
【００９５】
次に、動作時間演算部４０９は、ロボット１００の先端位置の振動データからＳ２３にてタイマ２０６にて計時を開始した時間を始点とし、目標位置に対し位置決め完了幅以内（収束範囲内）に収束した時刻を終点とする時間ｔ２を求める（Ｓ２５：計時工程）。
【００９６】
次に、パラメータ演算部４１１は、動作パラメータリスト記憶部４１０より、リストから次の速度パラメータを読み込み、その値をサーボ制御装置２３０に送信する（Ｓ２６：動作パラメータ変更工程）。つまり、このステップＳ２６では、リストの中から未選択の速度パラメータを選択して読み込み、その値をサーボ制御装置２３０に送信する。これにより速度パラメータが変更される。
【００９７】
その際、動作パラメータリスト記憶部４１０に次の値が記憶されている場合（Ｓ２７：Ｎｏ）は、Ｓ２２に戻り、変更された速度パラメータを用いて同様の動作を繰り返す。これにより、速度パラメータが順次変更され、リストに含まれる複数の速度パラメータそれぞれに従ってロボット１００を動作させたときのそれぞれの動作時間が得られる。リスト中、次の速度パラメータが記憶されていない場合、つまり、未選択の速度パラメータがない場合（Ｓ２７：Ｙｅｓ）、前回の速度パラメータをリストの最終値と判断し、最短時間の検出に移行する。
【００９８】
パラメータ演算部４１１は、ここまでに計測した複数の動作時間の中で最短の時間ｔ２ｍｉｎと、そのときの速度パラメータを検出する（Ｓ２８：最短時間検出工程）。
【００９９】
最後に、パラメータ演算部４１１は、パラメータ記憶部４０５にＳ２８で求めた速度パラメータを記憶させ、つまりＳ２８で求めた速度パラメータを設定して（Ｓ２９：動作パラメータ設定工程）、処理を終了する。この値をサーボ制御装置２３０が読み込み動作を実行することで、第２動作における必要精度を満たしながら、第１動作の動作開始から位置決め完了までが最短の時間になる条件でロボットを動作させることが出来る。
【０１００】
なお、第３実施形態における動作パラメータは速度のパラメータのみに限定されるものではなく、ロボットが停止する際の振動を左右する加速度や加加速度のパラメータを加えてもよい。
【０１０１】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【０１０２】
例えば、上記実施形態においては、多関節ロボット１００が、垂直多関節ロボットである場合について説明したが、水平多関節ロボット（スカラロボット）、パラレルリンクロボットなどであってもよい。
【０１０３】
また、上記実施形態の各処理動作は具体的には制御装置２００のＣＰＵ２０１により実行されるものである。従って、上述した機能を実現するプログラムを記録した記録媒体を制御装置２００に供給し、制御装置２００のコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１０４】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ２０４であり、ＨＤＤ２０４にプログラム２４０が格納される場合について説明したが、これに限定するものではない。プログラム２４０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図３に示すＲＯＭ２０２、外部記憶装置３１２、記録ディスク２４１等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１０５】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１０６】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【符号の説明】
【０１０７】
１…サーボモータ、１０…入力側エンコーダ（モータ側角度検出器）、１１…減速機、１６…出力側エンコーダ（減速機側角度検出器）、１００…ロボット（多関節ロボット）、１０１…ロボットアーム、１０２…ロボットハンド、１１０…関節駆動装置、２００…制御装置（制御手段）、２０４…ＨＤＤ（記憶手段）、２４０…プログラム
【図１】
0006648913.tif 000002
【図２】
0006648913.tif 000003
【図３】
0006648913.tif 000004
【図４】
0006648913.tif 000005
【図５】
0006648913.tif 000006
【図６】
0006648913.tif 000007
【図７】
0006648913.tif 000008
【図８】
0006648913.tif 000009
【図９】
0006648913.tif 000010
【図１０】
0006648913.tif 000011