(57)【特許請求の範囲】
【請求項１】
予めコンピュータシミュレーションにより作成された教示点のパラメータ値と、前記教示点に対して付与された教示点名、及び前記教示点を複数の階層でツリー構造に分類して前記教示点名に対して上位階層に付与された識別名を含む名称と、を記憶する記憶部と、
前記記憶部に記憶された前記教示点のパラメータ値に従って多関節のロボットの動作を制御する動作モードと、教示作業者の指示に従って前記ロボットを動作させ、かつ教示作業者の指示に従って前記教示点のパラメータ値の設定を行う教示モードとにより前記ロボットを制御する制御装置と、
前記制御装置に教示作業者の指示を入力する為に、前記制御装置と通信可能に接続された教示装置と、を備え、
前記教示装置により、前記制御装置が前記教示モードに設定されたときに、
前記制御装置は、
前記上位階層における前記識別名の一覧を前記教示装置の表示部に表示させる第１の表示処理と、
前記表示部に表示させた前記識別名の一覧の中から教示作業者による識別名の選択を受け付ける第１の受付処理と、
前記第１の受付処理にて当該識別名が選択されたとき、選択を受けた当該識別名の下位階層における、パラメータ値の変更を許可されている教示点の教示点名の一覧を展開して前記表示部に表示させ、パラメータ値の変更を許可されていない教示点の教示点名は前記表示部に表示させない第２の表示処理と、
前記表示部に表示させた前記教示点名の一覧の中から教示作業者による教示点名の選択を受け付ける第２の受付処理と、
前記第２の受付処理で選択された当該教示点名に対応する教示点に、前記ロボットを動作させる第１のロボット動作処理と、
前記教示装置を用いた教示作業者の指示により、前記ロボットを所定の位置に動作させる第２のロボット動作処理と、
前記所定の位置における、前記ロボットの位置及び姿勢のパラメータ値を、前記第２の受付処理にて選択された当該教示点名に対応する教示点のパラメータ値に上書きして当該パラメータ値を変更するパラメータ変更処理と、
を実行することを特徴とするロボットシステム。
【請求項２】
前記記憶部は、前記教示点に対応付けて前記教示点のパラメータ値の変更を許可するか否かを示す許可／不許可の情報を記憶しており、
前記制御装置は、前記第２の表示処理として、パラメータ値の変更を許可されている教示点の教示点名の一覧を前記表示部に表示させる際に、前記許可／不許可の情報に基づいて、前記表示部に表示させることを特徴とする請求項１に記載のロボットシステム。
【請求項３】
前記制御装置は、前記パラメータ変更処理として、選択を受けた教示点名に対応する教示点について、パラメータ値の変更を許可されている教示点のみ、当該教示点についてパラメータ値の変更を受け付けることを特徴とする請求項２に記載のロボットシステム。
【請求項４】
前記記憶部は、前記教示点に対応付けて、前記動作モードにおける前記ロボットの動作順の情報を記憶しており、
前記制御装置は、前記第２の表示処理として、前記教示点名の一覧として、前記ロボットの動作順に教示点名を前記表示部に整列して表示させることを特徴とする請求項１乃至３のいずれか１項に記載のロボットシステム。
【請求項５】
前記識別名が、前記ロボットの一連の動作に固有の動作名であることを特徴とする請求項１乃至４のいずれか１項に記載のロボットシステム。
【請求項６】
予めコンピュータシミュレーションにより作成された教示点のパラメータ値に従って多関節のロボットを動作させる動作モードと、教示作業者の指示に従って前記教示点のパラメータ値の変更を行う教示モードとで前記ロボットを制御する制御装置と、
前記教示点のパラメータ値と、前記教示点に対して付与された教示点名、及び前記教示点を複数の階層でツリー構造に分類して前記教示点名に対して上位階層に付与された識別名を含む名称と、を記憶する記憶部と、
前記制御装置に教示作業者の指示を入力する為に、前記制御装置と通信可能に接続された教示装置と、を有するロボットシステムの制御方法であって、
前記制御装置が、前記教示モードに設定されたとき、前記上位階層における前記識別名の一覧を前記教示装置の表示部に表示させる第１の表示工程と、
前記制御装置が、前記表示部に表示させた識別名の一覧の中から教示作業者による識別名の選択を受け付ける第１の受付工程と、
前記制御装置が、前記第１の受付工程にて当該識別名が選択されたとき、選択を受けた当該識別名の下位階層における、パラメータ値の変更を許可されている教示点の教示点名の一覧を展開して前記表示部に表示させ、パラメータ値の変更を許可されていない教示点の教示点名は前記表示部に表示させない第２の表示工程と、
前記制御装置が、前記表示部に表示させた前記教示点名の一覧の中から教示作業者による教示点名の選択を受け付ける第２の受付工程と、
前記制御装置が、前記第２の受付工程で選択された当該教示点名に対応する教示点に、前記ロボットを動作させる第１のロボット動作工程と、
前記制御装置が、前記教示装置を用いた教示作業者の指示により、前記ロボットを所定の位置に動作させる第２のロボット動作工程と、
前記制御装置が、前記所定の位置における、前記ロボットの位置及び姿勢のパラメータ値を、前記第２の受付工程にて選択された当該教示点名に対応する教示点のパラメータ値に上書きして当該パラメータ値を変更するパラメータ変更工程と、
を備えたことを特徴とするロボットシステムの制御方法。
【請求項７】
表示部と、
教示装置全体を制御する制御部と、
予めコンピュータシミュレーションにより作成された教示点のパラメータ値と、前記教示点に対して付与された教示点名、及び複数の階層でツリー構造に分類される前記教示点名に対して上位階層に付与された識別名を含む名称と、を記憶する記憶部と、
前記教示点のパラメータ値に従って多関節のロボットの動作を制御する動作モードと、教示作業者の指示に従って前記ロボットを動作させ、かつ教示作業者の指示に従って前記教示点のパラメータ値の設定を行う教示モードとで動作可能な前記ロボットの制御装置と通信可能に接続された教示装置であって、
前記制御部は、
前記教示モードで動作しているときに、前記上位階層における前記識別名の一覧を前記教示装置の表示部に表示する第１の表示処理と、
前記表示部に表示された前記識別名の一覧の中から識別名の選択を受け付ける第１の受付処理と、
前記第１の受付処理にて選択を受けた前記識別名の下位階層における、パラメータ値の変更を許可されている教示点の教示点名の名称の一覧を展開して前記表示部に表示させ、パラメータ値の変更を許可されていない教示点の教示点名は前記表示部に表示させない第２の表示処理と、
前記制御部からの指示により、前記表示部に表示させた前記教示点名の一覧の中から教示作業者による教示点名の選択を受け付ける第２の受付処理と、
前記制御部からの指示により、前記第２の受付処理で選択された当該教示点名に対応する教示点に、前記ロボットを動作させる第１のロボット動作処理と、
教示作業者の指示を前記制御部に入力し、前記ロボットを所定の位置に動作させる第２のロボット動作処理と、
前記所定の位置における、前記ロボットの位置及び姿勢のパラメータ値を、前記第２の受付処理にて選択された当該教示点名に対応する教示点のパラメータ値に上書きして当該パラメータ値を変更するよう、前記制御部に指令を入力するパラメータ変更処理と、
を実行することを特徴とする教示装置。
【請求項８】
表示部と、
教示装置全体を制御する制御部と、
予めコンピュータシミュレーションにより作成された教示点のパラメータ値と、前記教示点に対して付与された教示点名、及び複数の階層でツリー構造に分類される前記教示点名に対して上位階層に付与された識別名を含む名称と、を記憶する記憶部と、
前記教示点のパラメータ値に従って多関節のロボットの動作を制御する動作モードと、教示作業者の指示に従って前記ロボットを動作させ、かつ教示作業者の指示に従って前記教示点のパラメータ値の設定を行う教示モードとで動作可能な前記ロボットの制御装置と通信可能に接続された教示装置の制御方法であって、
前記制御部は、
前記教示モードで動作しているときに、前記上位階層における前記識別名の一覧を前記教示装置の表示部に表示する第１の表示工程と、
前記表示部に表示された前記識別名の一覧の中から識別名の選択を受け付ける第１の受付工程と、
前記第１の受付工程にて選択を受けた前記識別名の下位階層における、パラメータ値の変更を許可されている教示点の教示点名の名称の一覧を展開して前記表示部に表示させ、パラメータ値の変更を許可されていない教示点の教示点名は前記表示部に表示させない第２の表示工程と、
前記制御部からの指示により、前記表示部に表示させた前記教示点名の一覧の中から教示作業者による教示点名の選択を受け付ける第２の受付工程と、
前記制御部からの指示により、前記第２の受付工程で選択された当該教示点名に対応する教示点に、前記ロボットを動作させる第１のロボット動作工程と、
教示作業者の指示を前記制御部に入力し、前記ロボットを所定の位置に動作させる第２のロボット動作工程と、
前記所定の位置における、前記ロボットの位置及び姿勢のパラメータ値を、前記第２の受付工程にて選択された当該教示点名に対応する教示点のパラメータ値に上書きして当該パラメータ値を変更するよう、前記制御部に指令を入力するパラメータ変更工程と、
を実行することを特徴とする教示装置の制御方法。
【請求項９】
コンピュータに、請求項６または請求項８に記載の制御方法の各工程を実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム、ロボットシステムの制御方法、教示装置、教示装置の制御方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ロボットに組立作業等の作業を行わせる際には、与えられた教示点に基づいてロボットの軌道を生成する必要がある。ロボットの軌道は、ロボット動作設計者によってロボット言語を用いて作成されたロボットプログラムに基づき、コンピュータによって生成される。
【０００３】
教示点は、ロボットの各関節の角度を示す（θ１，θ２，θ３，θ４，θ５，θ６）等のパラメータ値や、ロボットの手先の位置及び姿勢を示す（Ｘ，Ｙ，Ｚ，ｔＸ，ｔＹ，ｔＺ）等のパラメータ値で設定される。ロボットプログラムには、教示点として、パラメータ値を直接記述するほか、「Ｐ１」，「Ｐ２」等、教示点に割り振られたデータ名で記述することができる。
【０００４】
教示点のパラメータ値（位置データ）は、ロボット動作設計者が、コンピュータシミュレーション等を行って予め作成するものである。しかし、実際のロボットでは、ロボットの撓み等でシミュレーションの動作からずれた動作をすることがあるため、実機を用いてパラメータ値の調整を行う、教示作業が行われている。
【０００５】
従来のロボットの教示方法は、教示作業者がロボットプログラムを１行ずつ表示装置に表示させ、表示させた情報を参照しつつ、教示装置を操作してロボットを所定の位置へ動作させ、教示点のパラメータ値を登録するものである。
【０００６】
ここで、ロボットプログラム中の教示点は（Ｘ，Ｙ，Ｚ，ｔＸ，ｔＹ，ｔＺ）等のパラメータ値や「Ｐ１」等のデータ名で記述されるので、教示作業者は現在教示している教示点を直感的に理解し難く、教示作業に時間を要していた。
【０００７】
これに対し、特許文献１では、ロボットプログラム中に、教示点（データ名）に対して例えば「作業待機位置」や「組付位置」等の教示点名を付与し、教示作業者が教示点を直感的に理解できるようにしていた。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−５９８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ロボットの作業数が増加するに連れてロボットプログラムの規模、即ち教示点数が増加する。教示作業者は、多数ある教示点の中から教示対象の教示点を選ばなければならず、教示点名のみでは、どの教示点を教示対象としているのか理解するのが困難であり、教示作業が負担となっていた。
【００１０】
そこで、本発明は、教示作業者による教示作業の負担を軽減することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のロボットシステムは、予めコンピュータシミュレーションにより作成された教示点のパラメータ値と、前記教示点に対して付与された教示点名、及び前記教示点を複数の階層でツリー構造に分類して前記教示点名に対して上位階層に付与された識別名を含む名称と、を記憶する記憶部と、前記記憶部に記憶された前記教示点のパラメータ値に従って多関節のロボットの動作を制御する動作モードと、教示作業者の指示に従って前記ロボットを動作させ、かつ教示作業者の指示に従って前記教示点のパラメータ値の設定を行う教示モードとにより前記ロボットを制御する制御装置と、前記制御装置に教示作業者の指示を入力する為に、前記制御装置と通信可能に接続された教示装置と、を備え、前記教示装置により、前記制御装置が前記教示モードに設定されたときに、前記制御装置は、前記上位階層における前記識別名の一覧を前記教示装置の表示部に表示させる第１の表示処理と、前記表示部に表示させた前記識別名の一覧の中から教示作業者による識別名の選択を受け付ける第１の受付処理と、前記第１の受付処理にて当該識別名が選択されたとき、選択を受けた当該識別名の下位階層における、パラメータ値の変更を許可されている教示点の教示点名の一覧を展開して前記表示部に表示させ、パラメータ値の変更を許可されていない教示点の教示点名は前記表示部に表示させない第２の表示処理と、前記表示部に表示させた前記教示点名の一覧の中から教示作業者による教示点名の選択を受け付ける第２の受付処理と、前記第２の受付処理で選択された当該教示点名に対応する教示点に、前記ロボットを動作させる第１のロボット動作処理と、前記教示装置を用いた教示作業者の指示により、前記ロボットを所定の位置に動作させる第２のロボット動作処理と、前記所定の位置における、前記ロボットの位置及び姿勢のパラメータ値を、前記第２の受付処理にて選択された当該教示点名に対応する教示点のパラメータ値に上書きして当該パラメータ値を変更するパラメータ変更処理と、を実行することを特徴とする。
【発明の効果】
【００１２】
本発明は、教示点の一覧性が向上するので、教示対象とする教示点が教示作業者にとって分かりやすくなり、教示作業者による教示作業の負担が軽減される。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係るロボット装置の概略構成を示す説明図である。
【図２】本発明の第１実施形態に係るロボット制御装置の構成を示すブロック図である。
【図３】本発明の第１実施形態に係るロボット制御装置の記憶部に記憶されたロボット動作データを示す説明図である。
【図４】本発明の第１実施形態に係るロボット制御装置の制御部によるロボット制御方法の各工程を示すフローチャートである。
【図５】本発明の第１実施形態に係るロボット制御装置の制御部による表示処理を説明するための図である。
【図６】本発明の第１実施形態に係るロボット制御装置の制御部による展開表示処理を説明するための図である。
【図７】本発明の第１実施形態の表示部において、教示作業者に選択された教示点名に対応付けられている教示点のパラメータ値が表示された状態を示す図である。
【図８】教示点名を表示部に表示させる別の例を示す図である。
【図９】本発明の第２実施形態に係るロボット制御装置の記憶部に記憶されたロボット動作データを示す説明図である。
【図１０】本発明の第２実施形態に係るロボット制御装置の制御部による展開表示処理を説明するための図である。
【図１１】本発明の第３実施形態に係るロボット装置の概略構成を示す説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１５】
［第１実施形態］
図１は、本発明の第１実施形態に係るロボット装置の概略構成を示す説明図である。ロボット装置５００は、ロボット１００、ロボット制御装置２００、教示装置３００及びロボット動作作成装置４００を備えている。
【００１６】
ロボット１００は、組立作業等の作業を行う多関節（例えば６関節）のロボットである。第１実施形態では、ロボット１００は、垂直多関節型のロボットアームと、ロボットアームの先端に取り付けられたエンドエフェクタとしてのロボットハンドとを有している。
【００１７】
ロボット制御装置２００は、ロボットプログラムに従って、制御対象であるロボット１００の動作を制御する。ロボット制御装置２００は、制御部（演算部）であるＣＰＵ（Central  Processing  Unit）２０１を有している。ＣＰＵ２０１は、教示点のパラメータ値（位置データ）に従ってロボット１００の動作を制御する動作モードと、教示作業者の指示に従ってロボット１００を動作させ、かつ教示作業者の指示に従って教示点のパラメータ値の変更を行う教示モードとを有する。
【００１８】
教示装置３００は、いわゆるティーチングペンダントであり、教示作業者の操作によってロボット制御装置２００に指示するものである。教示装置３００は、表示部３３、ＣＰＵで構成されたプログラム教示部３１及び動作指示部３４を有する。なお、第１実施形態では、表示部３３は、タッチパネルディスプレイであり、教示作業者による操作を受け付ける操作部でもある。また、教示装置３００は、ロボット制御装置２００との通信インタフェースとなるデータ通信部３２，３５を有する。
【００１９】
教示装置３００は、教示作業者の操作が動作指示を示す場合、ロボット１００が動作するようにロボット制御装置２００に動作指示の信号を送信する。ロボット制御装置２００のＣＰＵ２０１は、教示モードに設定されている場合には、入力を受けた動作指示の信号に従ってロボット１００を動作させる。また、教示装置３００は、教示作業者の操作が教示指示を示す場合、教示点のパラメータ値（位置データ）を登録（変更）する教示指示の信号をロボット制御装置２００に送信する。ロボット制御装置２００のＣＰＵ２０１は、教示モードに設定されている場合には、教示指示の信号を受けたときに、教示点のパラメータ値の設定（記憶）を行う。
【００２０】
ロボット動作作成装置４００は、パーソナルコンピュータやワークステーションなどのコンピュータで実現される。ロボット動作作成装置４００は、ロボット動作設計者の操作により、ロボット制御装置２００で使用されるロボットプログラム及びロボット動作データを作成する。
【００２１】
以下、ロボット動作設計者は、教示作業者とは別人である場合について説明するが、同一人物であっても構わない。
【００２２】
なお、図１では、ロボット制御装置２００とロボット動作作成装置４００を有線接続しているが、無線で接続してもよいし、ＵＳＢメモリなどの可搬メディアを用いてデータ通信してもよい。
【００２３】
図２は、本発明の第１実施形態に係るロボット装置５００のロボット制御装置２００の構成を示すブロック図である。図２に示すように、ロボット制御装置２００は、コンピュータで構成されている。ロボット制御装置２００は、上述したように、コンピュータの中枢となる、制御対象であるロボット１００の動作を制御する制御部（演算部）としてのＣＰＵ２０１を備えている。また、ロボット制御装置２００は、記憶部として、ＲＯＭ（Read  Only  Memory）２０２、ＲＡＭ（Random  Access  Memory）２０３、及びＨＤＤ（Hard  Disk  Drive）２０４を備えている。また、ロボット制御装置２００は、記録ディスクドライブ２０５及び各種のインタフェース２１１〜２１４を備えている。
【００２４】
ＣＰＵ２０１には、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、記録ディスクドライブ２０５及びインタフェース２１１〜２１４が、バス２１０を介して接続されている。
【００２５】
ＲＯＭ２０２には、ＢＩＯＳ等の起動プログラムが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。ＨＤＤ２０４には、プログラム２２２が格納（記録）される。そして、ＣＰＵ２０１がプログラム２２２を読み出して実行することにより、図１に示す各部２２，２６，２８，２９として機能し、後述するロボット制御方法の各工程を実行する。
【００２６】
なお、ＨＤＤ２０４には、ロボット動作設計者により作成されたロボットプログラム２２０が格納される。また、ＨＤＤ２０４には、ロボット動作設計者により作成されたロボット動作データ２２１が格納されている。第１実施形態では、ＨＤＤ２０４が、図１に示すプログラム記憶部２４及びロボット動作データ記憶部２５として機能する。
【００２７】
記録ディスクドライブ２０５は、記録ディスク２２３に記録された各種データやプログラム等を読み出すことができる。
【００２８】
インタフェース２１１には、ロボット１００が接続されている。ＣＰＵ２０１は、バス２１０及びインタフェース２１１を介して、ロボット１００の各関節の駆動部（不図示）に角度指令値（位置指令値）を出力し、ロボット１００の動作を制御する。
【００２９】
インタフェース２１２には、教示装置３００が接続されている。第１実施形態では、インタフェース２１２は、図１に示すデータ通信部２１，２７として機能する。
【００３０】
インタフェース２１３には、ロボット動作作成装置４００が接続されている。第１実施形態では、インタフェース２１３は、図１に示すデータ通信部２３として機能する。
【００３１】
インタフェース２１４には、ＵＳＢメモリ等の書き換え可能な不揮発性メモリ、或いは外付けＨＤＤ等の外部記憶装置８００が接続される。
【００３２】
以上、ロボット制御装置２００は、図２に示すように構成されており、ＣＰＵ２０１は、プログラム実行部２２、教示設定データ変換部２６、動作指示実行部２８及びロボット制御部２９として機能する。ＨＤＤ２０４は、プログラム記憶部２４及びロボット動作データ記憶部２５として機能する。インタフェース２１２は、データ通信部２１及びデータ通信部２７として機能する。インタフェース２１３は、データ通信部２３として機能する。
【００３３】
図１に示すロボット制御装置２００の各部の機能について説明する。データ通信部２１は、教示装置３００と通信する。プログラム実行部２２は、動作モードにてロボット１００を動作させるロボットプログラム２２０を実行する。データ通信部２３は、ロボット動作作成装置４００と通信する。プログラム記憶部２４は、ロボットプログラム２２０を記憶する。ロボット動作データ記憶部２５は、教示装置３００で教示を行う際のロボット動作データ２２１を記憶する。教示設定データ変換部２６は、ロボット動作データ記憶部２５に記憶されているロボット動作データ２２１を教示装置３００で使用する形式に変換する。データ通信部２７は、教示装置３００と通信する。動作指示実行部２８は、教示作業時にロボット制御部２９にロボット１００を動作させる動作指示（動作指令）を送る。ロボット制御部２９は、動作指示に応じてロボット１００を動作させる制御をする。
【００３４】
図１に示す教示装置３００の各部の機能について説明する。プログラム教示部３１は、位置データの教示を行う。データ通信部３２は、ロボット制御装置２００と通信する。表示部３３は、プログラムやデータを表示する。動作指示部３４は、ロボット１００の動作指示を行う。データ通信部３５は、ロボット制御装置２００と通信する。
【００３５】
ロボット動作設計者は、ロボット動作作成装置４００を用いてロボットプログラム２２０及びロボット動作データ２２１を作成し、ロボット制御装置２００の記憶部としてのＨＤＤ２０４に記憶させる。換言すると、ロボットプログラム２２０はプログラム記憶部２４に記憶され、ロボット動作データ２２１はロボット動作データ記憶部２５に記憶される。
【００３６】
図３は、記憶部としてのＨＤＤ２０４（ロボット動作データ記憶部２５）に記憶されたロボット動作データ２２１を示す説明図である。
【００３７】
ＨＤＤ２０４は、ロボット動作データ２２１として、識別名としての動作名２３１、教示点名２３２、データ名２３３、教示点のパラメータ値としての位置データ２３４、教示許可／不許可の情報２３５からなるテーブルデータを記憶する。
【００３８】
即ち、ＨＤＤ２０４は、複数の教示点のそれぞれに対応して、複数の位置データ（パラメータ値）２３４を記憶している。各教示点の位置データ２３４は、ロボット１００の６軸の各関節の角度を示す（θ１，θ２，θ３，θ４，θ５，θ６）のパラメータ値や、ロボット１００の手先の位置及び姿勢を示す（Ｘ，Ｙ，Ｚ，ｔＸ，ｔＹ，ｔＺ）のパラメータ値で設定される。第１実施形態では、位置データ２３４は、（Ｘ，Ｙ，Ｚ，ｔＸ，ｔＹ，ｔＺ）のパラメータ値で設定されているものとして説明する。例えば、ある教示点の位置データ２３４は、（０，０，１００，０，０，０）で設定される。
【００３９】
ここで、ロボット動作作成装置４００を用いて作成される位置データ２３４は、コンピュータシミュレーション（オフライン）によるものであり、実際のロボット１００が関節の撓み等によりロボット動作設計者の意図する位置及び姿勢に動作するとは限らない。そのため、複数の教示点の中には、実際のロボット１００を動作させて教示作業（位置データ２３４の調整）を行う必要があるものがある。
【００４０】
各教示点には、他の教示点と識別するために、また、ロボットプログラム２２０中で使用するために、固有のデータ名２３３、例えば、「Ｐ１０」，「Ｐ１３」，「Ｐ１１」，「Ｐ１２」，「Ｐ１４」・・・等が、ロボット動作設計者により付与される。データ名２３３は、ロボット動作設計者が自由に設定できる。データ名２３３は、ロボットプログラム２２０中で指定される。ＣＰＵ２０１は、ロボットプログラム２２０からロボット１００の軌道を生成する際に、対応する位置データ２３４をロボット動作データ記憶部２５から読み出す。例えば、ロボットプログラム２２０中に「Ｐ１０」が記述されている場合には、ＣＰＵ２０１は、ロボットプログラム２２０から軌道を生成する際に、ロボット動作データ２２１から教示点のパラメータ値（０，０，１００，０，０，０）を読み出す。
【００４１】
また、ＨＤＤ２０４は、各教示点に対応する動作名２３１及び教示点名２３２からなる名称２３０を記憶している。つまり、教示点を複数の階層で階層化したとき、各階層に対して名称２３０が付与されている。
【００４２】
教示点名２３２は、各教示点に対して付与された固有の名称であり、例えば「上空点」、「組付終了点」、「減速開始点」、「減速終了点」、「組付後退避点」・・・等が、ロボット動作設計者により付与される。動作名２３１は、ロボット１００の一連の動作に固有の名称であり、例えば「ワーク組付」、「ワーク供給」等が、ロボット動作設計者により付与される。教示点名２３２及び動作名２３１は、ロボット動作設計者が自由に設定できるが、教示作業者がロボット１００の動作を理解しやすい名を付与すればよい。
【００４３】
各教示点は、複数の階層（第１実施形態では、２階層）でツリー構造に分類されており、教示点名２３２が最下位層である。動作名２３１は、教示点名２３２の階層に対して上位階層に付与された識別名である。
【００４４】
例えば、教示点名２３２に対して上位階層には、「ワーク組付」及び「ワーク供給」の２つの名称（動作名２３１）がある。「ワーク組付」の下位階層には、「上空点」、「組付終了点」、「減速開始点」、「減速終了点」及び「組付後退避点」の５つの名称（教示点名２３２）が対応付けられている。「ワーク供給」の下位階層には、「上空点」及び「ワーク取得点」の２つの名称（教示点名２３２）が対応付けられている。このように、ロボット動作データ２２１により、識別名の下位階層には１以上の識別名又は教示点名が対応付けられて、複数の階層からなるツリー構造が形成されている。
【００４５】
また、ＨＤＤ２０４は、各教示点に対応付けて各教示点の位置データ２３４の変更を許可するか否かを示す教示許可／不許可２３５を記憶している。教示点の位置データ２３４の変更を許可する場合には「○」のデータ、不許可の場合には「×」のデータが記憶される。複数の教示点の中には、オフラインで作成したパラメータ値のままでよいものもあり、このような場合、教示作業（パラメータ値の調整）は不要となる。この許可／不許可の判断は、ロボット動作設計者が行ってもよいし、ロボット動作作成装置４００で自動的に（アルゴリズムに従って）行ってもよい。
【００４６】
なお、コンピュータが許可／不許可を識別できれば、どのようなフラグデータであってもよく、「○」、「×」のデータに限定するものではない。例えば、「０」、「１」で識別してもよい。
【００４７】
前述したように、ＣＰＵ２０１は、動作モードと教示モードとを有しており、いずれかのモードに設定される。これらのモードは、作業者が教示装置３００を操作することによって設定される。以下、ＣＰＵ２０１が教示モードに設定された場合について説明する。
【００４８】
図４は、本発明の第１実施形態に係るロボット制御装置２００のＣＰＵ２０１によるロボット制御方法の各工程を示すフローチャートである。教示作業者は教示装置３００を用いて教示作業を行う。教示作業者が教示作業を実施する場合、教示作業者の操作により、教示装置３００からロボット制御装置２００に対して以下の（式１）の教示指示が送信される。
SELECT  DISTINCT  “動作名”  （式１）
【００４９】
ＣＰＵ２０１（教示設定データ変換部２６）は、（式１）を受信し、ロボット動作データ２２１から（式１）に合致する条件を抽出して、表示部３３に合致した条件の一覧を表示させる（Ｓ１０１：表示処理、表示工程）。具体的には、ＣＰＵ２０１は、教示点名２３２に対して相対的に上位階層（第１実施形態では最上位階層）の識別名、つまり動作名２３１の一覧を表示部３３に表示させる信号を教示装置３００に送信する。
【００５０】
ここで「SELECT」句はデータの選択を意味し、「DISTINCT」句は重複行の削除を意味する。「SELECT」句によってロボット動作データ２２１から以下の動作名２３１の列のみが選択される。
ワーク組付
ワーク組付
ワーク組付
ワーク組付
ワーク組付
ワーク供給
ワーク供給
：
【００５１】
また「DISTINCT」句で重複行の削除を指定しているため、以下のように重複行が削除される。
ワーク組付
ワーク供給
：
【００５２】
図５は、ＣＰＵ２０１による表示処理を説明するための図である。図５（ａ）はＣＰＵ２０１により抽出された動作名２３１の一覧を示す図であり、図５（ｂ）は動作名２３１の一覧が表示された表示部３３を示す図である。
【００５３】
（式１）の処理作業の結果として、ＣＰＵ２０１（教示設定データ変換部２６）は、図５（ａ）に示す動作名２３１の一覧表を生成する。ＣＰＵ２０１（教示設定データ変換部２６）は、抽出した動作名２３１の一覧のデータを、教示装置３００に送信し、表示部３３に、図５（ｂ）に示すように、動作名２３１の一覧を表示させる。
【００５４】
なお、図５（ｂ）においては受信した動作名２３１の一覧を、階層構造的に表示（ツリー表示）しているが、受信したデータにある「ワーク組付」及び「ワーク供給」という要素のみを表示してもよい。
【００５５】
次に、ＣＰＵ２０１は、表示部３３に表示させた名称（動作名２３１）の一覧の中から教示作業者による名称（動作名２３１）の選択を受け付ける（Ｓ１０２：受付処理，受付工程）。ステップＳ１０２では、動作名２３１の選択の待ち受け状態であるので、教示作業者は、複数の動作名２３１の中から１つの動作名２３１を選択することとなる。例えば、「ワーク組付」及び「ワーク供給」の中から１つを選択する。
【００５６】
次に、ＣＰＵ２０１は、ステップＳ１０２にて１つの動作名２３１が選択されたとき、選択を受けた動作名２３１に関連付けられた下位階層における名称（教示点名２３２）の一覧を展開して表示部３３に表示させる（Ｓ１０３：展開表示処理、展開表示工程）。例えば、「ワーク組付」が選択された場合、「ワーク組付」に関連付けられている下位階層の教示点名「上空点」、「組付終了点」、「減速開始点」、「減速終了点」及び「組付後退避点」のうち、教示が許可されているものを表示部３３に表示させる。
【００５７】
具体的に説明すると、表示部３３に表示されている状態で教示作業者により「ワーク組付」を選択された場合、教示装置３００からロボット制御装置２００に対して以下の（式２）が送信される。
SELECT  DISTINCT  “動作名”  “教示点名”  WHERE
“動作名”  ＝  “ワーク組付”  AND“教示許可”  ＝  “○”  （式２）
【００５８】
ここで「SELECT」句、「DISTINCT」句は（式１）と同様にデータの選択と、重複行の削除を意味する。また「WHERE」句は条件を意味する。「WHERE」句の前までの式で以下の行が選択される。
ワーク組付、上空点
ワーク組付、組付終了点
ワーク組付、減速開始点
ワーク組付、減速終了点
ワーク組付、組付後退避点
ワーク供給、上空点
ワーク供給、ワーク取得点
：
【００５９】
次に「WHERE」句の「“動作名”  ＝  “ワーク組付”」の条件により、動作名が「ワーク組付」のものだけが選択される。
ワーク組付、上空点
ワーク組付、組付終了点
ワーク組付、減速開始点
ワーク組付、減速終了点
ワーク組付、組付後退避点
【００６０】
次に「AND」句は論理積を示し継続する「“教示許可”  ＝  “○”」が並列条件になるため、選択結果は以下のようになる。
ワーク組付、上空点
ワーク組付、組付終了点
ワーク組付、減速終了点
ワーク組付、組付後退避点
【００６１】
図６は、ＣＰＵ２０１による展開表示処理を説明するための図である。図６（ａ）はＣＰＵ２０１により展開された教示点名２３２の一覧を示す図であり、図６（ｂ）は教示点名２３２の一覧が表示された表示部３３を示す図である。
【００６２】
（式２）の処理作業の結果として、ＣＰＵ２０１（教示設定データ変換部２６）は、図６（ａ）に示す教示点名２３２の一覧表を生成する。ＣＰＵ２０１（教示設定データ変換部２６）は、抽出した図６（ａ）に示す教示点名の一覧のデータを教示装置３００に送信し、表示部３３に、図６（ｂ）に示すように、教示点名２３２の一覧を表示させる。
【００６３】
なお、図６（ｂ）においては受信した教示点名２３２の一覧を、階層構造的に表示（ツリー表示）しているが、受信したデータにある「上空点」、「組付終了点」、「減速終了点」及び「組付後退避点」という要素のみを表示してもよい。
【００６４】
このように、ＣＰＵ２０１は、ステップＳ１０３で、教示点名２３２の一覧を表示部３３に表示させる際に、教示許可／不許可２３５が、位置データ２３４の変更を許可することを示す「○」である教示点に対する教示点名のみ、表示部３３に表示させる。
【００６５】
次に、ＣＰＵ２０１は、表示部３３に表示させた名称（教示点名２３２）の一覧の中から教示作業者による名称（教示点名２３２）の選択を受け付ける（Ｓ１０４：受付処理，受付工程）。ステップＳ１０４では、教示点名２３２の選択の待ち受け状態であるので、教示作業者は、複数の教示点名２３２の中から１つの教示点名２３２を選択することとなる。例えば、教示作業者は「上空点」、「組付終了点」、「減速終了点」及び「組付後退避点」の中から１つを選択する。
【００６６】
次に、ＣＰＵ２０１は、ステップＳ１０４にて１つの教示点名２３２が選択されたとき、選択を受けた教示点名２３２に対応付けられた教示点の位置データ（パラメータ値）２３４の変更を受け付ける（Ｓ１０５：教示処理，教示工程）。
【００６７】
図６（ｂ）に示すように、表示部３３に教示点名の一覧が表示されている状態で教示作業者が例えば「上空点」を選択した場合、教示装置３００からロボット制御装置２００に対して以下の（式３）が送信される。
SELECT  DISTINCT  “動作名”  “教示点名”  “データ名”  “位置データ”
WHERE“動作名”  ＝  “ワーク組付”  AND  “教示点名”  ＝  “上空点”  （式３）
【００６８】
ここで「SELECT」句及び「DISTINCT」句は（式１）及び（式２）と同様にデータの選択と、重複行の削除を意味する。また「WHERE」句及び「AND」句も（式２）と同様に「動作名がワーク組付」かつ「教示点名が上空点」の行だけを抽出するという条件文である。
【００６９】
この指示を教示設定データ変換部２６が受信し（式３）に合致するものを抽出した結果が以下である。
ワーク組付、上空点、Ｐ１０、’０、０、１００、０、０、０’
【００７０】
結果中の「’」は列の区切り記号である「、」と同じ記号が列中に出現した場合に、データと区別するために用いられる。ＣＰＵ２０１は、この結果を教示装置３００に送信する。
【００７１】
図７は、選択された教示点名２３２に対応付けられている教示点のパラメータ値が表示された表示部３３を示す図である。
【００７２】
ＣＰＵ２０１は、ステップＳ１０５では、教示作業者による選択の結果、表示部３３に選択を受けた教示点名に対応する教示点のパラメータ値を表示させて、表示させた教示点のパラメータ値の変更を受け付ける。
【００７３】
ここで教示作業者が教示装置３００を用いてジョグ操作により動作指示すると、動作指示部３４からロボット制御装置２００に動作指示の信号が送信される。動作指示実行部２８は動作指示を解釈し、ロボット制御部２９は動作指示に従ってロボット１００を動作させる。
【００７４】
教示作業者の所望する位置にロボット１００を動作させたとき、教示装置３００のプログラム教示部３１からロボット制御装置２００に対して教示指示の信号が送信される。ＣＰＵ２０１は、ロボット１００の現在の位置及び姿勢のデータを、図３の位置データ２３４に対して上書きする。
【００７５】
以上、第１実施形態によれば、図５（ｂ）及び図６（ｂ）に示すように、教示点の一覧性が向上するので、教示対象とする教示点が教示作業者にとって分かりやすくなる。これにより、教示作業者による教示作業が楽になり、教示作業の負担が軽減される。
【００７６】
また、第１実施形態によれば、教示作業者がロボットプログラム２２０を一行ずつ理解したり、ロボットプログラム２２０中の教示不要なパラメータ値を教示作業者が理解したりする必要がない。また、組み立て動作ごとに教示点名が階層的に表示されるため、教示作業者がロボット１００の組み立て動作と教示点名の関係性を直感的に理解しやすい。さらに、教示作業者が教示を行いたい教示点を容易に選択できるため、教示対象の教示点の位置データ２３４の選択時間が短縮される。このため、ロボットプログラム２２０に不慣れな教示作業者であっても、教示作業時にどのような位置を教示すればよいかが明確になり、教示作業に要する時間の短縮を図れる。
【００７７】
なお、第１実施形態では、教示許可／不許可２３５が教示許可を示す教示点に対応する教示点名２３２のみ、表示部３３に表示させる場合について説明したが、これに限定するものではない。図８は、教示点名を表示部３３に表示させる別の例を示す図である。図８に示すように、教示許可／不許可に関わらず、選択を受けた動作名２３１（例えば「ワーク組付」）に関連付けられた全ての教示点名２３２を表示部３３に表示してもよい。その際、ＣＰＵ２０１は、ステップＳ１０５の処理として、選択を受けた教示点名２３２に対応する教示点について教示許可のとき（許可／不許可の情報が変更を許可することを示すとき）のみ、該教示点についてパラメータ値の変更を受け付ければよい。これにより、教示点の変更が許可されたもののみ、教示点のパラメータ値の変更が可能となる。なお、教示点を表示させると同時に、教示点のパラメータ値の変更が許可されているか否かの情報を表示部３３に表示させてもよい。
【００７８】
［第２実施形態］
次に、本発明の第２実施形態に係るロボット制御装置によるロボット制御方法について説明する。図９は、本発明の第２実施形態に係るロボット制御装置の記憶部に記憶されたロボット動作データを示す説明図である。なお、第２実施形態におけるロボット装置の構成については、上記第１実施形態のロボット装置５００と同様であり説明を省略する。また、教示の手順についても、図４に示すステップＳ１０３において表示部３３に表示させる教示点名の一覧の並び順が、上記第１実施形態と異なるだけであり、その他のステップは、上記第１実施形態と同様である。
【００７９】
第２実施形態では、記憶部であるＨＤＤ２０４に記憶されるロボット動作データが上記第１実施形態のロボット動作データ２２１と異なる。ロボット動作データは、２つのテーブルデータ２２１１，２２１２からなる。図９（ａ）は第１のテーブルデータ２２１１、図９（ｂ）は第２のテーブルデータ２２１２を示している。テーブルデータ２２１１は、動作名２３１及び教示点名２３２からなる名称２３０、データ名２３３、並びに教示許可／不許可２３５を一覧表にしたものである。テーブルデータ２２１２は、データ名２３３、位置データ２３４を一覧表にしたものである。
【００８０】
ロボット動作設計者はロボット動作作成装置４００を用いてロボットプログラム２２０及び２つのテーブルデータ２２１１，２２１２からなるロボット動作データを作成する。作成した２つのテーブルデータ２２１１，２２１２からなるロボット動作データはロボット動作作成装置４００からロボットプログラム２２０と共にロボット制御装置２００に送信される。送信されたロボットプログラム２２０はプログラム記憶部２４に記憶され、２つのテーブルデータ２２１１，２２１２からなるロボット動作データはロボット動作データ記憶部２５に記憶される。
【００８１】
第２実施形態では、テーブルデータ２２１１には、各教示点に対応付けられた、動作モードにおけるロボット１００の動作順２３６の情報が含まれている。ＣＰＵ２０１は、ステップＳ１０３（展開表示処理）では、教示点名２３２の一覧として、ロボット１００の動作順２３６に教示点名２３２を表示部３３に整列して表示させる。
【００８２】
図１０は、ＣＰＵ２０１による展開表示処理を説明するための図である。図１０（ａ）はＣＰＵ２０１により展開された教示点名２３２の一覧を示す図であり、図１０（ｂ）は教示点名２３２の一覧が表示された表示部３３を示す図である。
【００８３】
例えば、上記第１実施形態で説明した操作手順で図５（ｂ）が表示部３３に表示されている状態で教示作業者が「ワーク組付」を選択した場合、教示装置３００からロボット制御装置２００に対して以下の（式４）が送信される。
SELECT  “動作名”  “教示点名”  WHERE
“動作名”  ＝  “ワーク組付”  AND  “教示許可”  ＝  “○”
ORDER  BY  “動作順”      （式４）
【００８４】
ここで「SELECT」句は（式１）と同様にデータの選択を意味する。また「WHERE」句、「AND」句も（式２）と同様に「動作名がワーク組付」かつ「教示許可が○」の行だけを抽出するという条件文である。「ORDER  BY」句は並び替えを示し、継続する「“動作順”」によって行を並び替える事を意味するため、選択結果は以下のようになる。
ワーク組付、上空点
ワーク組付、組付終了点
ワーク組付、減速終了点
ワーク組付、上空点
ワーク組付、組付後退避点
【００８５】
この結果として、ＣＰＵ２０１（教示設定データ変換部２６）は、図１０（ａ）の一覧表を生成する。ＣＰＵ２０１（教示設定データ変換部２６）は、抽出した図１０（ａ）に示すデータを、図１０（ｂ）に示すように教示装置３００の表示部３３に表示させる。
【００８６】
図１０（ｂ）においては、受信した教示点名の一覧を、ロボット１００の動作順に上下に並び変えて表示部３３に表示している。よって、表示部３３に表示されている教示点名を上から選択して順次教示していけば、実際のロボット動作と同じ順番で動作を確かめながら教示作業を実施することができる。
【００８７】
以上、第２実施形態によれば、教示作業者がロボットプログラム２２０を一行ずつ理解したり、ロボットプログラム２２０中の教示不要な変数を教示作業者が理解したりする必要がない。さらに、組み立て手順に沿ったロボット１００の動作順に教示点名が表示されるため、更に教示作業に要する時間の短縮化が図れる。
【００８８】
［第３実施形態］
次に、本発明の第３実施形態に係るロボット装置について説明する。図１１は、本発明の第３実施形態に係るロボット装置の概略構成を示す説明図である。なお、上記第１実施形態と同様の構成については、同一符号を付して説明を省略する。
【００８９】
ロボット装置５００Ａは、上記第１実施形態と同様の構成のロボット１００及びロボット制御装置２００と、教示装置３００Ａとを備えている。
【００９０】
教示装置３００Ａは、上記第１実施形態で説明した教示装置３００に、ロボット動作作成装置４００の機能を付加したものである。これにより、ロボット装置５００Ａでは、ロボット動作作成装置４００を省略することが可能となる。
【００９１】
教示装置３００Ａは、上記第１実施形態の教示装置３００の構成に加え、ロボット制御装置２００に対してロボットプログラム２２０を作成し登録するプログラム作成部３６の機能を備える。プログラム作成部３６は、ロボットプログラム２２０の新規作成、編集、削除が可能である。
【００９２】
さらに、教示装置３００Ａは、ロボット制御装置２００に対してロボット動作データ２２１を作成し登録するロボット動作データ作成部３７の機能を備える。ロボット動作データ作成部３７はロボット動作データ２２１の新規作成、編集、削除が可能である。
【００９３】
ロボット動作設計者は、教示装置３００Ａを用いてロボットプログラム２２０及びロボット動作データ２２１を作成する。作成したロボット動作データ２２１は教示装置３００Ａからロボットプログラム２２０と共にロボット制御装置２００に送信される。
【００９４】
送信されたロボットプログラム２２０はプログラム記憶部２４に記憶され、ロボット動作データ２２１はロボット動作データ記憶部２５に記憶される。同様にロボットプログラム２２０及びロボット動作データ２２１の編集及び削除も可能である。
【００９５】
第３実施形態においては、教示装置３００Ａにロボットプログラム２２０及びロボット動作データ２２１の作成機能が付加されている。このため、図１に示すロボット動作作成装置４００が必須で無くなるため、より簡便な構成となる。さらに、ロボット制御装置２００とロボット動作作成装置４００の通信を行うための通信路も不要になる。よってコンピュータと通信路の設置が不要になりコスト削減に寄与する。
【００９６】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
【００９７】
上記実施形態では、教示点を２段階に階層化した場合について説明したが、これに限定するものではなく、３段階以上に階層化してもよい。この場合であっても、最下位階層は、教示点名であり、教示点名の階層に対して複数の上位階層の各階層には、識別名として、動作名を付与してもよい。また、このように階層化した場合、各階層において、動作名と教示点名とが混在する場合があっても本発明は適用可能である。
【００９８】
上記実施形態の各処理動作は具体的にはＣＰＵ２０１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体をロボット制御装置に供給し、ロボット制御装置を構成するコンピュータが記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【００９９】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ２０４であり、ＨＤＤ２０４にプログラム２２２が格納される場合について説明したが、これに限定するものではない。プログラム２２２は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図２に示すＲＯＭ２０２、記録ディスク２２３、外部記憶装置８００等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。
【０１００】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１０１】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１０２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【０１０３】
また、上記実施形態では、コンピュータがＨＤＤ等の記録媒体に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【符号の説明】
【０１０４】
１００…ロボット、２００…ロボット制御装置、２０１…ＣＰＵ（制御部）、２０４…ＨＤＤ（記憶部）、２２０…ロボットプログラム、２２１…ロボット動作データ、２３０…名称、２３１…動作名（識別名）、２３２…教示点名、２３４…位置データ（パラメータ値）、５００…ロボット装置
【図１】
0006460692.tif 000002
【図２】
0006460692.tif 000003
【図３】
0006460692.tif 000004
【図４】
0006460692.tif 000005
【図５】
0006460692.tif 000006
【図６】
0006460692.tif 000007
【図７】
0006460692.tif 000008
【図８】
0006460692.tif 000009
【図９】
0006460692.tif 000010
【図１０】
0006460692.tif 000011
【図１１】
0006460692.tif 000012