(57)【要約】【課題】ロボット動作を制御する教示点データに対する読み取り（参照）、書き込み、ないし当該の教示データを用いたロボット動作、などのアクセス態様を柔軟にアクセス制御できるようにする。【解決手段】教示点データを用いてロボットアームの動作を制御するため、教示点データに対するアクセス権限を定義したアクセス権限情報を当該の教示点データに関連づけて記憶する記憶領域１５０２を設ける。ＣＰＵ２０１により実現されるプログラム実行部１２がある教示点データに対してアクセスする場合、当該の教示点データに関連づけて記憶領域１５０２に記憶されているアクセス権限情報を参照する。そして、記憶領域１５０２に記憶されているアクセス権限情報に基づき当該の教示点データに対するアクセスの可否を判断する。【選択図】図１
2016064483.tif 000002
【特許請求の範囲】
【請求項１】
複数の教示点データを用いてロボットアームの位置姿勢を制御する制御装置を備えたロボット装置において、
前記教示点データのそれぞれに対するアクセス権限を定義したアクセス権限情報を個々の教示点データ毎に関連づけて記憶する記憶手段を有し、
前記制御装置は、ある教示点データに対してアクセスする場合、当該の教示点データに関連づけて前記記憶手段に記憶されているアクセス権限情報を参照し、当該のアクセス権限情報に基づき当該の教示点データに対するアクセスの可否を判断することを特徴とするロボット装置。
【請求項２】
請求項１に記載のロボット装置において、前記アクセス権限情報は、当該のアクセス権限情報に関連づけられた教示点データの値の参照に関するアクセス権限を定義することを特徴とするロボット装置。
【請求項３】
請求項１または２に記載のロボット装置において、前記アクセス権限情報は、当該のアクセス権限情報に関連づけられた教示点データの値の書き込みに関するアクセス権限を定義することを特徴とするロボット装置。
【請求項４】
請求項１から３のいずれか１項に記載のロボット装置において、前記アクセス権限情報は、当該のアクセス権限情報に関連づけられた教示点の値を用いたロボットアームの動作に関するアクセス権限を定義することを特徴とするロボット装置。
【請求項５】
請求項１から４のいずれか１項に記載のロボット装置において、ロボットアームを単位として前記アクセス権限情報のアクセス権限が定義されることを特徴とするロボット装置。
【請求項６】
請求項１から５のいずれか１項に記載のロボット装置において、複数のロボットアームから成るグループを単位として前記アクセス権限情報のアクセス権限が定義されることを特徴とするロボット装置。
【請求項７】
請求項１から６のいずれか１項に記載のロボット装置において、前記記憶手段に記憶されているアクセス権限情報を変更する編集手段を備えたことを特徴とするロボット装置。
【請求項８】
請求項１から７のいずれか１項に記載のロボット装置において、新規に生成される場合に前記教示点データが当該の教示点データに関連づけて前記記憶手段に記憶されるアクセス権限情報の初期値が自動的に生成されることを特徴とするロボット装置。
【請求項９】
請求項８に記載のロボット装置において、前記初期値を変更する設定手段を備えたことを特徴とするロボット装置。
【請求項１０】
前記制御装置に請求項１から９のいずれか１項に記載の制御を行わせることを特徴とするロボット装置の制御プログラム。
【請求項１１】
請求項１０に記載のロボット装置の制御プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１２】
複数の教示点データを用いてロボットアームの位置姿勢を制御する制御装置と、前記教示点データのそれぞれに対するアクセス権限を定義したアクセス権限情報を個々の教示点データ毎に関連づけて記憶する記憶手段を備えたロボット装置の制御方法において、
前記制御装置が、ある教示点データに対してアクセスする場合、当該の教示点データに関連づけて前記記憶手段に記憶されているアクセス権限情報を参照する参照工程と、
前記制御装置が当該のアクセス権限情報に基づき当該の教示点データに対するアクセスの可否を判断する判定工程と、を含むことを特徴とするロボット装置の制御方法。
【請求項１３】
請求項１２に記載のロボット装置の制御方法において、前記アクセス権限情報は、当該のアクセス権限情報に関連づけられた教示点データの値の参照に関するアクセス権限を定義することを特徴とするロボット装置の制御方法。
【請求項１４】
請求項１２または１３に記載のロボット装置の制御方法において、前記アクセス権限情報は、当該のアクセス権限情報に関連づけられた教示点データの値の書き込みに関するアクセス権限を定義することを特徴とするロボット装置の制御方法。
【請求項１５】
請求項１２から１４のいずれか１項に記載のロボット装置の制御方法において、前記アクセス権限情報は、当該のアクセス権限情報に関連づけられた教示点の値を用いたロボットアームの動作に関するアクセス権限を定義することを特徴とするロボット装置の制御方法。
【請求項１６】
請求項１２から１５のいずれか１項に記載のロボット装置の制御方法において、ロボットアームを単位として前記アクセス権限情報のアクセス権限が定義されることを特徴とするロボット装置の制御方法。
【請求項１７】
請求項１２から１６のいずれか１項に記載のロボット装置の制御方法において、複数のロボットアームから成るグループを単位として前記アクセス権限情報のアクセス権限が定義されることを特徴とするロボット装置の制御方法。
【請求項１８】
請求項１２から１７のいずれか１項に記載のロボット装置の制御方法において、前記記憶手段に記憶されているアクセス権限情報を変更する編集手段を備えたことを特徴とするロボット装置の制御方法。
【請求項１９】
請求項１２から１８のいずれか１項に記載のロボット装置の制御方法において、新規に生成される場合に前記教示点データが当該の教示点データに関連づけて前記記憶手段に記憶されるアクセス権限情報の初期値が自動的に生成されることを特徴とするロボット装置の制御方法。
【請求項２０】
請求項１９に記載のロボット装置の制御方法において、前記初期値を変更する設定手段を備えたことを特徴とするロボット装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の教示点データを用いてロボットアームの位置姿勢を制御する制御装置を備えたロボット装置、およびその制御方法に関する。
【背景技術】
【０００２】
ロボットアームおよびロボット制御装置を含むロボット装置において、ロボット制御装置に接続された教示装置が用いられることがある。この教示装置は、例えばロボットアームを動作させながら、その動作をロボットアームに行わせるためのロボット制御データを教示（ティーチング）するために用いられる。このようにして作成（教示）されたロボット制御データ（教示データ）に基づき、ロボットアームを動作（プレイバック）させることができる。このようなロボット制御方式は、ティーチング・プレイバック方式と呼ばれることがある。
【０００３】
上記のような教示装置、特にロボットアームの設置現場で用いられる教示装置は、ティーチングペンダントなどと呼ばれることがある。ティーチングペンダントのような教示装置は、ロボットアームの特定の基準部位を所望の作業位置に移動させるための例えばジョグ操作やインチング操作が可能な操作手段を有する。このような教示装置を用いて、ロボットアームの基準部位を次々に所望の作業位置に移動させる操作を行うことにより、一連のロボットアームの動作を教示することができる。
【０００４】
上記のような教示（ロボットプログラミング）において、ロボットアームの基準部位を移動させる作業位置を教示点、この教示点を特定する制御データを教示点データと呼ぶことがある。この教示点データについては、単にロボット座標系における３次元座標値のみならず、例えばロボットアーム各部の姿勢に係る制御データも含む表現形式が用いられることがある。
【０００５】
例えば、教示点の表現形式の１つは、複数ある各関節軸の角度またはパルス値で構成される形式である。また、特定の３次元座標系における１点を示すための３つの軸の各座標値と、その１点に対してロボットがどのような姿勢でアプローチするかを示すための姿勢情報などで構成される表現形式も用いられることがある。従って、このような教示点により定義されるロボットアームの状態は「位置姿勢」などと呼ばれることもある。
【０００６】
教示装置によって教示されたロボット動作は、少なくとも一連の教示点データを含む何らかの形式の教示データとしてロボット制御装置の記憶手段（例えば外部記憶装置）に格納される。教示データは、例えば、特定のロボット制御用のコンピュータ言語（例えば下記の非特許文献１に記載されるようなＳＬＩＭ言語）によって記述される場合もある。このようなロボット制御言語による記述形式は、例えばコンピュータに近いハードウェア構成を有するロボット制御端末を用いて、教示データを編集し、また表示させたりする場合に利用されることがある。特定のロボットアームの位置姿勢を定義する教示点データは、この種のロボット制御言語の記述様式では、通常、「ＭＯＶＥ」のような動作命令のオペレータ（演算子）のオペランドの位置に含まれる。
【０００７】
教示点データが生成されると、ロボット制御装置は、教示点データに基づきロボットアームの各関節を動作させ、教示点データによって指示される作業位置に例えばロボットアームの基準位置を移動させることができる。この際、教示点の指定誤りなどによって、教示点データがユーザの意図した通りのものではなくなっている場合、当然、ロボットアーム（あるいはその先端に装着されたエンドエフェクタ）の動作が意図と異なるものになる可能性がある。
【０００８】
例えば、ロボットアームと、その先端にエンドエフェクタとして装着されたハンドを制御対象とし、これらアームおよびハンドの各制御対象をそれぞれ教示点データを用いて制御する構成が考えられる。このような構成において、制御対象ないし教示点データの対応を取り違え、アーム（ハンド）を制御対象として生成された教示点データをハンド（アーム）に対する制御に用いた場合、意図しない動作が起きる。この問題に鑑み、従来、複数の制御対象を含むロボット装置において、教示点情報に制御対象の識別情報を新たに付加する方法が提案されている（下記の特許文献１）。この構成によれば、複数の制御対象を有するロボット装置において、ある制御対象のために作成された教示点情報を誤って他の制御対象に用いて、意図しない動作が起きるのを防止することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平０２−１７３８０７号公報
【非特許文献】
【００１０】
【非特許文献１】日本工業規格  ＪＩＳＢ８４３９  産業用ロボット  プログラム言語  ＳＬＩＭ
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記特許文献１の構成は、１台のロボット装置のロボットアームとハンドを制御対象とする教示点情報に制御対象の識別情報を含め、特定の教示点情報が特定の制御対象に対してのみ用いられるよう制御するものである。特許文献１の技術によれば、１台のロボット装置における制御対象と教示点の対応関係を誤って使用することを防止できる。しかしながら、特許文献１の技術はいわば教示点データの用途を限定するもので、多様な教示点データに対するアクセス（利用）を許可したり禁止したりするよう構成されていない。このため、特許文献１の技術は、より複雑な教示点データの利用環境において、誤動作防止制御を実現するには充分とはいえない。
【００１２】
例えば、あるロボット動作のために作成した教示点データを基準データとして利用し、別の、例えば類似のロボット動作を行わせる教示点データを作成する場合がある。例えば、教示点データの利用方法の１つとして、実際にロボットを動作させる作業位置そのものではなく、実際に動作させる作業位置を計算等により算出するための基準位置として用いる方法がある。
【００１３】
例えば、パレットに整列させたワークを把持するための作業位置を記憶させる際、パレット上の全てのワークに対して教示点を作成すると、作業位置の変更があった際に全ての作業位置を教示し直す必要があり、膨大な作業時間がかかる。そこで、全ての作業位置を教示する代わりに、ある１つのワークに対してのみ教示点を作成してこれを基準教示点とし、他のワークに対しては基準教示点からの差分（例えばＸＹ座標系における距離の差分など）のみを教示データとして作成し、記憶させる。この差分情報は、教示点データの一形式であり、オフセット教示点などと呼ばれることがある。また、基準教示点とオフセット教示点とから実際の作業位置を計算して移動する動作は、オフセット移動などと呼ばれることがある。
【００１４】
このようなオフセット制御方式、実際のロボット動作では、作成した基準教示点と差分のデータから、ロボットアームを動作させる実際の作業位置（実教示点）を計算し、その位置にロボットアームを移動させる。このような制御方式によれば、１つのワークに対する教示操作のみ実施し、他のワークに対する差分入力は実際にロボットを動作させることなく、例えばプログラム編集のような作業で迅速に実施できる。
【００１５】
上記のような基準教示点を用いるロボット制御には、上記のオフセット制御方式のみならず種々の制御方式が考えられる。例えば、なんらかの手法により一旦作成した教示点を基準教示点として記憶させ、カメラによる撮像および画像処理などの手法に基づき微調整を行い、最終的な教示点への差分データを生成する制御方式が考えられる。
【００１６】
また、以上では、１台のロボット（アーム）の制御を前提とする考察を示したが、例えば、１つの作業空間である複数（例えば２つ）のロボットアームを協働させて、製造や加工に係るロボット動作を行わせる構成も既に実現されている。このような構成では、例えば１台のロボットアームを実働させて教示した教示データを利用して他の２台目以降のロボットアームのための教示データを生成することが考えられる。このような場合、１台のロボットアームのために生成した教示点データに対しては、上記の基準教示点と同様、一度作成した後は、誤ったアクセス（例えば書き込み）を許すべきではない。
【００１７】
いずれにしても、上記の如く、ある作成済みの基準教示点をその後の教示データ作成の基本として用いる制御方式においては、基準教示点を既に作成した後は、その基準教示点に対する誤まったアクセス、例えば書き換えなどを許すべきではない。例えば、上記のオフセット制御方式においては、例えば基準教示点の作成後、それに続くオフセット教示点の入力ないし編集操作において、誤って基準教示点を書き換えてしまうのを防止できる必要がある。
【００１８】
しかしながら、上述の特許文献１の技術は、取り違えを防止できるのは教示点に対応する制御対象だけである。これに対して、例えば上記のオフセット制御方式における基準教示点と差分データのように制御対象が共通している可能性がある。従って、特許文献１の技術は、上記のようにいったん作成した（その後書き換えるべきではない）基準教示点に対する誤ったアクセス（例えば書き込み）を防止するには役に立たない可能性が高い。
【００１９】
以上では、（基準）教示点データへの書き込みについて主に考察したが、読み取り（参照）や、当該の教示データを用いた実際のロボット動作、などといったアクセス態様も柔軟にアクセス制御すべき、と考えられる。また、ある教示点データに対するこれら各種のアクセス態様は、アクセスのタイミングや、アクセスの主体ごとに（例えば特定のロボットアームごとに）柔軟に制御できる構成が必要である、と考えられる。
【００２０】
本発明の課題は、上述の問題に鑑み、ロボット動作を制御する教示点データに対する読み取り（参照）、書き込み、ないし当該の教示データを用いたロボット動作、などのアクセス態様を柔軟にアクセス制御できるようにすることにある。
【課題を解決するための手段】
【００２１】
上記課題を解決するため、本発明においては、複数の教示点データを用いてロボットアームの位置姿勢を制御する制御装置を備えたロボット装置において、前記教示点データのそれぞれに対するアクセス権限を定義したアクセス権限情報を個々の教示点データ毎に関連づけて記憶する記憶手段を有し、前記制御装置は、ある教示点データに対してアクセスする場合、当該の教示点データに関連づけて前記記憶手段に記憶されているアクセス権限情報を参照し、当該のアクセス権限情報に基づき当該の教示点データに対するアクセスの可否を判断する構成を採用した。
【発明の効果】
【００２２】
上記構成によれば、教示点データ毎に、即ち教示点データの１つ１つについてその教示点データに対するアクセス権限を定義することができる。このため、ロボット動作を制御する教示点データに対する読み取り（参照）、書き込み、ないし当該の教示データを用いたロボット動作、などのアクセス態様を柔軟にアクセス制御することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明を実施可能なロボットシステムの全体構成の一例を示した説明図である。
【図２】図１のロボットシステムで用いられる教示点データの記憶形式の一例を示した説明図である。
【図３】図１のロボットシステムで用いられる異なる教示点データの記憶形式の一例を示した説明図である。
【図４】図１のロボットシステムで用いられる教示点データのアクセス権限情報の記憶形式の一例を示した説明図である。
【図５】図１のロボットシステムで用いられる教示点データのアクセス権限情報の初期値の一例を示した説明図である。
【図６】図１のロボットシステムにおける教示点データのアクセス権限情報に基づきロボットプログラムを解釈し、あるいはさらに実行する場合の制御手順を示したフローチャート図である。
【発明を実施するための形態】
【００２４】
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。
【実施例】
【００２５】
図１は本発明を実施可能なロボットシステムの全体構成の一例を示している。図１のロボットシステムは、ロボットアーム１０１、１０２、ロボット制御装置１、教示装置２、制御端末３、およびシステム操作端末４によって構成されている。
【００２６】
ロボットアーム１０１、１０２のハードウェア構成は任意であるが、例えばアーム先端にハンド、グリッパ、その他のツール類から成るエンドエフェクタを装着可能な６軸垂直多関節型の構成を有するものとする。ロボットアーム１０１、１０２は、ロボット制御装置１のプログラム実行部１２で実行されるプログラムに従って動作する。ロボットアーム１０１、１０２を動作させる場合、制御データとして後述のような形式を有する教示点データが用いられる。
【００２７】
また、ロボットアーム１０１、１０２の教示（ティーチング）時には、教示装置２で行われる教示操作に応じてロボット制御装置１がロボットアーム１０１、１０２を制御することによりロボットアーム１０１、１０２を動作させることができる。
【００２８】
本実施例のロボットアーム１０１、１０２は、１台のロボット制御装置１によって制御され、例えば共通の動作空間において、対象物（ワーク）の搬送、組み立て、加工などの動作を行うようプログラミングすることができる。後述の制御においては、教示点データに対する参照、書き込み、および（その教示点データを用いた動作の）実行に関するアクセス権（アクセス権限情報）を設定して、それに基づくアクセス制御を行う。本実施例では、このアクセス権限情報はロボットアームを単位として設定できるよう構成される。
【００２９】
また、このように同一の作業空間において複数のアームを協働させる場合、各ロボットアームは共通のロボット制御装置１によって制御する他、それぞれ別のロボット制御装置によって制御してもよい。そのような構成においては、例えば、いずれかのロボットアームに接続されたロボット制御装置（１）がマスタコントローラとして動作し、後述のアクセス制御を実行するよう構成することができる。その場合、各ロボット制御装置は、ネットワークなどを介して通信することにより、必要な制御情報を交換する。
【００３０】
また、例えば上記のように同一の作業空間において協働する複数のロボットアームは、１つの「グループ」として取り扱うことができる。製造、組み立て、などの現場では、このような複数アーム構成のグループをさらに並列、ないしは直列的に配設し、対象物（ワーク）の搬送、組み立て、加工などの動作を行う場合がある。このような構成においては、上記のアクセス制御で用いられるアクセス権限情報は、ロボットアーム単位のみならず、複数アーム構成の「グループ」ごとに設定することもできる。
【００３１】
なお、このような同一の作業空間において協働する複数のロボットアームの単位は、「セル」であるとか「ステーション」のような名称で呼ばれることもあるが、以下では「グループ」の呼称を用いる。
【００３２】
図１において、ロボット制御装置１は、プログラム記憶部１１、プログラム実行部１２、移動指示部１３、ロボット制御部１４、教示点情報記憶部１５を備えている。これらの機能ブロックは、実際にはロボット制御装置１の左下に図示したＣＰＵ２０１を中心とする制御装置のハードウェア、およびそれによって実行される後述の制御ソフトウェアによって構成される。ＣＰＵ２０１を中心とする制御系のハードウェアおよびソフトウェア的な構成については後で詳述する。ロボット制御装置１、および教示装置２は、通常、ロボットアーム１０１、１０２とともに製造や加工、組み立ての現場に配置される。
【００３３】
図１に破線で示したプログラム記憶部１１、および教示点情報記憶部１５は後述するように教示装置２の教示操作や制御端末３でのプログラム入力（ないし編集）作業によって生成されたロボット制御データを記憶するのに用いられる。プログラム記憶部１１にはプログラムのテキスト（あるいは中間コード形式などによる）データが格納される。
【００３４】
また、教示点情報記憶部１５には、図２あるいは図３で後述するような形式の教示点データが格納される。この教示点データは、プログラム記憶部１１のプログラムデータと関連づけられた上、教示点情報記憶部１５に格納される。なお、ロボット制御装置１がロボットプログラムをインタプリタ実行するような機能を有する処理系として構成されている場合には、教示点データがプログラム記憶部１１のプログラムテキスト中に格納する構成も考えられる。
【００３５】
本実施例の場合、教示点情報記憶部１５は、教示点データを格納する記憶領域１５０１と、後述するアクセス制御データを格納する記憶領域１５０２から構成される。
【００３６】
プログラム記憶部１１、および教示点情報記憶部１５は、例えば後述のＲＡＭ２０３や外部記憶装置２０５の記憶領域によって構成される。これら記憶部（１１、１５）がＳＳＤやＨＤＤで構成された外部記憶装置２０５である場合、教示点データ群から成る教示データやプログラムテキストは、例えば「ファイル」のようなデータ単位で格納される場合がある。
【００３７】
ロボット制御装置１のプログラム実行部１２は、プログラム記憶部１１、および教示点情報記憶部１５に格納されたロボットプログラムを解釈・実行する。このプログラム実行部１２の機能は、例えば後述するＣＰＵ２０１がロボットプログラムのプログラムテキスト（あるいはコンパイルされた中間コードやアセンブルされた実行形式コード）を解釈・実行することにより実現される。
【００３８】
移動指示部１３は、プログラム実行部１２のロボットプログラム実行に応じてロボットアーム１０１（または１０２）に与えるべき制御データを生成する。移動指示部１３の機能は、主に後述するような形式の教示点データから、ロボットアーム１０１（または１０２）の各関節の駆動手段（サーボモータなど）を制御するための制御データへの変換処理などに相当する。移動指示部１３は、例えば後述のＣＰＵ２０１が当該のデータ変換処理を記述したプログラムを実行することなどによって実現される。
【００３９】
ロボット制御部１４は、例えばロボットアーム１０１（または１０２）の各関節の駆動手段（サーボモータなど）を制御するサーボ制御回路などの駆動ハードウェア（あるいはさらにＣＰＵ２０１が実行するファームウェアなど）から構成される。移動指示部１３が生成した制御データは、ロボット制御部１４によってロボットアーム１０１（または１０２）のハードウェア構成に適合したサーボ制御データのような形式に変換され、ロボットアーム１０１（または１０２）に送信される。
【００４０】
図１の教示装置２は、例えば、いわゆるティーチングペンダント（ＴＰ）などと呼ばれる操作端末で、ロボットアーム１０１または１０２を逐次動作させる教示操作を行うよう構成される。このような教示操作で特定された動作を定義する制御データとして、後述するような教示点データが用いられる。図１では、教示装置２の構成は、機能ブロック的に表示されており、ロボット操作部２１、教示部２２から構成されている。教示装置２は、実際には、ロボット制御装置１と同様にＣＰＵ（不図示）を中心とする制御系を有し、ロボット操作部２１は例えばジョグ操作やステップ（インチング）操作の可能なキーボードから構成される。
【００４１】
教示装置２による教示操作では、操作者がロボット操作部２１のジョグ操作やステップ操作などにより、ロボットアーム１０１（１０２）の現在の位置姿勢からの移動方向を指定することでアームの動作を制御することができる。この教示操作情報はロボット制御装置１の移動指示部１３に入力される。
【００４２】
ロボット制御装置１の移動指示部１３は、ロボット制御部１４を介してロボットアーム１０１（１０２）の基準位置を指定された移動方向に動作させるようロボットアーム１０１（１０２）を制御する。アームの基準位置としては、例えばロボットアーム１０１（１０２）先端のエンドエフェクタを装着するフランジ面の中心などを用いることができる。
【００４３】
上記の教示操作に対応する教示点データは、例えば一連の教示操作の終了時に、教示部２２によって各アームの動作空間に設定されたロボット座標系におけるアームの基準位置の位置姿勢に基づき生成される。教示部２２の生成した単数ないし複数の教示点データから成る教示データは、教示装置２の操作者の指示に従ってロボット制御装置１の教示点情報記憶部１５に記憶させることができる。
【００４４】
また、本実施例の教示装置２では、ロボット操作部２１は、例えば、後述のロボット制御装置１の教示点情報記憶部１５から教示点データを１つ選択して、その教示点へロボットアーム１０１（１０２）の基準位置（の位置姿勢）を移動させることができる。このような機能は、例えば教示装置２の教示操作や制御端末３で作成された教示データを逐一チェックするために用いることを想定したものである。
【００４５】
教示装置２とロボット制御装置１の接続には、例えば所定インターフェース形式（シリアルバスやパラレルバス）による有線接続手段が考えられるが、後述の制御端末３の場合と同様に有線／無線のネットワーク通信手段を用いてもよい。
【００４６】
制御端末３は、例えばパーソナルコンピュータ（ＰＣ）のようなハードウェア構成を有し、制御端末３の操作者によりロボットの動作手順を示すプログラムを作成することができるよう構成される。制御端末３は、ロボット制御装置１と同様にＣＰＵ（不図示）を中心とする制御系と、例えばディスプレイやキーボード、マウスやトラックパッドのようなポインティングデバイスから構成されるユーザーインターフェース（ＵＩ）を有する。
【００４７】
制御端末３のプログラム作成部３１は、上記のようなＵＩハードウェアと、制御端末３のＣＰＵにより実行されるソフトウェアによって構成される。このプログラム作成部３１は、制御端末３の操作者によりロボットアーム１０１（１０２）の動作手順を示すロボットプログラムを作成するために用いられる。プログラム作成部３１は、例えば、非特許文献１に記載されるようなロボット制御言語（ＳＬＩＭ）を用いてロボットプログラムを入力、編集するようなテキストエディタ、あるいはそれをフロントエンドとする統合開発環境のような構成である。
【００４８】
制御端末３のプログラム作成部３１で作成されたロボットプログラムは、ロボット制御装置１に転送してプログラム記憶部１１ないしは教示点情報記憶部１５に記憶させることができる。その場合、制御端末３とロボット制御装置１の間でロボットプログラムを授受するための通信インターフェース（メディア）やデータ形式は任意である。例えば、制御端末３とロボット制御装置１の通信インターフェースの１つとしては、所定インターフェース形式（シリアルバスやパラレルバス）による有線接続手段が考えられる。同様にＩＥＥＥ８０３．２のような有線ネットワーク接続手段や、ＩＥＥＥ８０３．１１、同８０３．１５のような無線ネットワーク接続手段を用いてもよい。
【００４９】
また、制御端末３とロボット制御装置１の間でロボットプログラムを授受する場合、例えば後述するような書式を有する教示点データ群から成る教示データ（およびコンパイルされた中間コードなど）をデータ形式とすることができる。この場合、例えば制御端末３で上記ＳＬＩＭなどのプログラムテキストをコンパイル処理することにより中間コードや教示データが生成される。この場合は、ロボット制御装置１に転送された例えば中間コード形式のプログラムデータは、プログラム記憶部１１に、また教示点データ群から成る教示データは教示点情報記憶部１５の記憶領域１５０１に格納される。なお、この時、アクセス権データとして後述の初期（デフォルト）値を定義する構成においては、作成された個々の教示点データに関するアクセス権データを教示点情報記憶部１５の記憶領域１５０２に自動的に格納するようにしてもよい。
【００５０】
また、ロボット制御装置１がプログラムテキストをインタプリタ実行できるような構成を有する場合には、上記ＳＬＩＭなどのプログラムテキストが制御端末３からロボット制御装置１のプログラム記憶部１１に直接転送されるような構成であってもよい。この場合、例えば制御端末３またはロボット制御装置１のいずれかによって、適当なタイミングでプログラムテキストから教示点データ群から成る教示データを抽出し、ロボット制御装置１の教示点情報記憶部１５に格納することができる。
【００５１】
図１において、ロボット制御装置１のプログラム実行部１２と接続されたシステム操作端末４は、ロボットアーム１０１（１０２）、ロボット制御装置１、教示装置２などが設置される製造、組み立てなどのプラント全体（ライン）を制御する端末である。システム操作端末４の装置操作部４１の最も簡単な構成は、例えばプログラム実行部１２にプログラム記憶部１１や教示点情報記憶部１５に記憶された作成（あるいはさらに検証）済みのロボットプログラムの実行指示を発生するキーボードやスイッチである。また、システム操作端末４の装置操作部４１には、必要に応じてロボットアーム１０１（１０２）、ロボット制御装置１、教示装置２など各部の動作状態をモニタ表示する表示手段が設けられていてもよい。あるいはさらに装置操作部４１には、既に実行開始させたロボットプログラムを緊急（非常）停止させる操作手段などが設けられていてもよい。
【００５２】
図１のロボット制御装置１のブロック左下には、上記のロボット制御装置１の各機能ブロック（１２〜１４）を実現するための制御装置の構成例を概略的に示してある。この制御回路は、汎用マイクロプロセッサなどから成るＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、インターフェース２０４、外部記憶装置２０５から構成されている。ＲＯＭ２０２は、例えば後述するアクセス制御プログラムと制御データを格納するために用いることができる。なお、ＲＯＭ２０２に格納したアクセス制御プログラムと制御データを後から更新（アップデート）できるよう、そのための記憶領域はＥ（Ｅ）ＰＲＯＭなどの記憶デバイスによって構成されていてもよい。ＲＡＭ２０３は、ＤＲＡＭ素子などから構成され、ＣＰＵ２０１が各種の制御、処理を実行するためのワークエリアとして用いられる。
【００５３】
外部記憶装置２０５は、例えばＳＳＤやＨＤＤのディスク装置で構成される。外部記憶装置２０５は、ロボット制御プログラムや教示点データ、あるいは後述するアクセス制御プログラムなどをファイル形式で格納することができる。なお、外部記憶装置２０５は、着脱式の各種光ディスクのような記録媒体、あるいは、着脱式のＳＳＤやＨＤＤのディスク装置、着脱式のフラッシュメモリから構成されていてもよい。このような各種の着脱式のコンピュータ読み取り可能な記録媒体を用いる場合、例えば本発明の一部を構成するアクセス制御プログラムをＲＯＭ２０２にインストールしたりアップデートするために用いることができる。この場合、各種の着脱式のコンピュータ読み取り可能な記録媒体は、本発明を構成する制御プログラムを格納しており、記録媒体それ自体も本発明を構成することになる。
【００５４】
上述のように、ＣＰＵ２０１がＲＯＭ２０２（あるいは外部記憶装置２０５）に格納された各ロボット制御プログラム、ファームウェア、アクセス制御プログラムを実行する。これにより、上記のロボット制御装置１の各機能ブロック（特に１２〜１４）が実現される。
【００５５】
また、図１のインターフェース２０４は、ロボット制御装置１が他の装置と通信するための入出力部を１ブロックで代表して示したものである。ここで、ロボット制御装置１が通信する他の装置には、教示装置２、制御端末３、システム操作端末４、ロボットアーム１０１（１０２）、あるいはさらに他のロボット制御装置やネットワーク上のサーバなどが含まれる。インターフェース２０４には、上記の通信相手に応じて用いられる上述の有線シリアルバスやパラレルバスによる有線接続手段、有線、無線接続によるネットワーク通信手段などが含まれる。
【００５６】
なお、図１の左下に示したＣＰＵ（２０１）を中心としたハードウェアと同等の構成は、教示装置２および制御端末３（あるいはシステム操作端末４も）の制御系としても用いられる。そして、後述のアクセス制御処理を行うプログラム実行部１２や、教示部２２の機能は、実際には、教示装置２および制御端末３の制御系を構成するＣＰＵが本実施例のアクセス制御プログラムを実行することにより実現される。特に、教示装置２の教示部２２の機能を実現する本実施例のアクセス制御プログラムについては、教示装置２側の上記ＲＯＭ２０２や外部記憶装置２０５と同等の記憶媒体（不図示）に格納されるものとする。教示装置２の教示部２２の機能に相当するアクセス制御プログラムのインストールや更新に関しては、ロボット制御装置１に関して上述したものと同等の構成を用いることができる。
【００５７】
次に上述の構成におけるロボット制御、特に教示点データに係るアクセス制御に重点を置いて説明する。
【００５８】
図２は、教示点情報記憶部１５に格納される教示点データの記述形式の一例をテーブル形式で図示している。図２の教示点データは、教示点情報記憶部１５の記憶領域１５０１に格納される。図２のデータ形式は、ロボットの各関節軸の角度によって作業位置を記憶する形式である。図示の教示点データＪ１、Ｊ２、Ｊ３は、例えばロボットアーム１０１（１０２）の６つの関節軸のそれぞれの角度値の情報を格納するフィールドから構成されている。
【００５９】
図３は、教示点データの記述形式の異なる一例をテーブル形式で示している。図３の教示点データは、教示点情報記憶部１５の記憶領域１５０１に格納される。図３の教示点データＰ１、Ｐ２、Ｐ３は、ロボットアーム１０１（１０２）の例えば基準部位の位置姿勢を表現したものである。図示のように、教示点データＰ１、Ｐ２、Ｐ３は、基準部位の位置に相当する３次元座標系（ロボット座標系）における１点を示すための（Ｘ，Ｙ，Ｚ）の３つの軸の各座標値を含む。これら座標値の単位は、例えばｍｍのような単位で記述される。
【００６０】
また、図３の教示点データＰ１、Ｐ２、Ｐ３は、基準部位の当該位置における基準部位の姿勢を示す回転角度、姿勢フラグ、および多回転データを含む。角度データについては、例えば度数（ｄｅｇｒｅｅ）のような単位が用いられる。ここで姿勢フラグは、例えばアームの基準部位（フランジ面中心など）や特定の関節が上向きか下向きかなどを特定するフラグである。また、多回転データは、エンドエフェクタ（ハンドなど）の回転数などを特定するためのデータである。
【００６１】
図３は同時に前述のオフセット移動を制御する教示点データの一例としても記述してある。図３において、教示点データＰ１は、オフセット移動のための基準教示点で、例えば教示装置２の教示や制御端末３からの入力によって作成されるが、実際に動作に使用される作業位置ではない。一方、教示点データＰ２、Ｐ３はオフセット教示点であり、基準位置と演算して作業位置を特定するためのデータとなっている。図３の例では、教示点データＰ２、Ｐ３は、Ｙ座標値のみに０以外の数値が格納されており、それぞれアームの基準部位を教示点データＰ１の位置姿勢からＹ座標軸方向にＹ座標値として格納してある異なる移動量だけオフセット移動した位置を表現している。
【００６２】
ここで、図３のようなオフセット移動を定義した教示データに対して、ロボット制御装置１がプログラム記憶部１１に格納されたロボットプログラムをインタプリタ実行する場合を例に、アクセス制御が必要となる理由を説明する。ここでは、ロボット制御言語ＳＬＩＭ（上述の非特許文献１）ないしそれに類似のプログラム文法を用いるものとする。
【００６３】
ロボットプログラムをインタプリタ実行する場合、ロボット制御装置１のプログラム実行部１２は、プログラム記憶部１１から読み出したロボットプログラムに従ってロボット動作を移動指示部１３に命令する。プログラム中でオフセット移動を示す命令が現れた場合、次のように処理を行う。
【００６４】
ここで、プログラム記憶部１１から読み出したプログラムテキストに、基準教示点データである教示点データＰ１（図３）に対し、教示点データＰ２（図３）のＹ座標値を加算した位置にオフセット移動するため、以下のような２行が書かれていたとする。
Ｐ１’＝Ｐ１＋Ｐ２
ＭＯＶＥ  Ｐ１’
ここで、プログラム実行部１２は、教示点データＰ１、Ｐ２を直接プログラム記憶部１１のプログラムテキスト中から読み出すか、あるいは教示点情報記憶部１５の記憶領域１５０１から読み出すことにより抽出する。記憶領域１５０１に教示点データが格納されている場合は、前述の如く予め適当なタイミングで制御端末３またはロボット制御装置１のいずれかによって、プログラムテキストから教示点データ群が抽出され、記憶領域１５０１に格納されているものとする。
【００６５】
そして、プログラム実行部１２は、上記２行のステートメントを解釈し、教示点データＰ１、Ｐ２を用いて教示点データＰ１’を求める。即ち、教示点データＰ２の示すオフセット量の通り教示点データＰ１の位置からＹ軸方向に４０．０００ｍｍ移動した作業位置を算出し、実際の教示点データＰ１’を取得する。この結果、ステートメント実行時には、プログラム実行部１２は移動指示部１３に教示点データＰ１’への動作を命令することになる。
【００６６】
ここで、プログラム記憶部１１に格納されているロボットプログラムに上記の“ＭＯＶＥ  Ｐ１’”ではなく、
ＭＯＶＥ  Ｐ１
と誤って記載されていたとする。このような誤りは、例えば制御端末３を用いたプログラム入力ないし編集ミスにおいて容易に発生しうる。そして、“ＭＯＶＥ  Ｐ１’”のつもりで“ＭＯＶＥ  Ｐ１”と書かれてしまったコードを実行すれば、アームは本来、作業位置として用いるべきではない基準教示点に相当する教示点データＰ１の座標へ動作してしまう。即ち、直前のステートメント“Ｐ１’＝Ｐ１＋Ｐ２”とは関係なく、ロボットアーム１０１（１０２）は本来移動すべきではない基準教示点を定義した教示点データＰ１の座標へ意図せず動作してしまうことになる。
【００６７】
上記のような本来の意図とは異なるアクセス態様は、なんらかのメカニズムで適切に禁止（あるいは許可）するように制御できるのが望ましい。なお、以上では、教示点データＰ１を用いた「動作」に係る問題を考えたが、基準教示点であれば、オフセット移動制御においては、「動作」同様に基準教示点を書き換えるようなアクセスも適切に禁止（あるいは許可）できるように制御すべきである。
【００６８】
そこで、本実施例では、図４に示すようなアクセス制御データ（アクセス権の制御データ）を用いて、教示点データに対するアクセスを制御する。図４に例示するアクセス制御データは、例えば教示点情報記憶部１５の記憶領域１５０２に格納しておく。図４はこのアクセス制御データをデータテーブル形式で示している。図４のようなアクセス制御データを生成したり、編集するための構成については、後で詳述する。
【００６９】
図４のアクセス制御データは、Ｐ１〜Ｐ５の各教示点データに対する参照可否、書込可否、動作可否のアクセス権（権限、あるいはいわゆるパーミッション）データを教示点データ毎に設定できるよう構成されている。これらのアクセス権データは図４の各フィールド中に「可」また「否」の値を持つフラグとして記録しておく。各教示点データ（Ｐ１〜Ｐ５）は、図２または図３の形式で記憶領域１５０１に格納されており、記憶領域１５０１、１５０２の教示点データ、およびアクセス権データは適当なポインタデータテーブル（不図示）などを用いて関連づけられるものとする。あるいは、記憶領域１５０１の教示点データの図２または図３のテーブルに、図４のアクセス権データ中で対応するデータを特定するポインタのフィールドが設けられていてもよい。
【００７０】
また、これらの参照、書込、動作の各アクセス態様は、異なるロボット（１）およびロボット（２）ごとに独立した値を設定できるようにしてある。図４中のロボット（１）およびロボット（２）は、例えば図１の構成ではロボットアーム１０１および１０２に対応する。図４のあるロボットプログラム（あるいはその命令文）をロボット（１）ないし（２）のいずれの特定ロボットを制御対象として用いるか、に応じてそれぞれ独立したアクセスを定義できるよう構成されている。例えば、あるロボットプログラム（あるいはその命令文）をロボット（１）を動作させるために実行される場合は、図４左側のロボット（１）のために定義されたアクセス権限情報が適用される。
【００７１】
例えば、図４では、教示点データＰ４のアクセス権（パーミッション）は、ロボット（１）からは（については）参照可、書込可、動作可、であるが、ロボット（２）からは（については）参照否、書込否、動作否と設定されている。このような構成により、例えばある教示点に関する教示点データＰ４をロボット（１）を動作させながらの教示操作によって修正可能とすることができる。一方、ロボット（２）からは当該の教示点については参照も書き込みも、またそれを用いた動作もいずれも禁止する、というようにアクセス制御することができる。
【００７２】
プログラム実行部１２は、アクセス権を例えば次のように処理すべく構成する。
【００７３】
プログラム実行部１２はプログラムを処理する過程で、教示点がプログラムのステートメント中に現れた場合、図４のアクセス制御データを参照する。そして、プログラムのステートメントが制御対象となっている、あるいはステートメントの動作主体となっている特定のロボットについて、当該の教示点の参照可否が可の場合、プログラム実行部１２は当該のステートメントによる教示点情報の参照を許可する。
【００７４】
例えば、プログラム実行部１２がプログラム記憶部１１からロボット（１）で実行されるプログラムとして次のようなステートメントを読み取ったとする。この時、Ｐ１、Ｐ２の教示点データに関するアクセス権の設定は、図４の通りであるものとする。
Ｐ１’＝Ｐ１＋Ｐ２
この場合、ロボット（１）に関しては、教示点データＰ１、Ｐ２はいずれも参照可のパーミッションであり、プログラム実行部１２はこのステートメント、の実行を許可する。即ち、プログラム実行部１２は教示点データＰ１、Ｐ２から教示点データＰ１’を取得する演算を行う。
【００７５】
一方、ある教示点データについてアクセス権が「参照否」の状態になっていた場合は、教示点参照が許可とはならず、プログラム実行部１２はエラー処理を行なう。例えば、プログラムの実行をその時点で停止するとともに、教示装置２あるいはロボット制御装置１に配置したディスプレイや音声出力手段によりエラーメッセージを出力する。
【００７６】
例えば、ここで図４のアクセス権設定において、上記のステートメント
Ｐ１’＝Ｐ１＋Ｐ２
をロボット（２）用として実行しようとした場合を考える。このような誤りは、例えば教示装置２によるプログラム指定操作ミスや、制御端末３におけるプログラム入力（編集）ミスなどによって生じ得る。ここで図４のアクセス権設定によれば、ロボット（２）に関しては２つの教示点データＰ１、Ｐ２はいずれも「参照否」のパーミッションであるため、上述のようにプログラム実行部１２はプログラムをエラー停止することになる。
【００７７】
以上のように、図４のようなアクセス制御データを用いることにより、例えば教示点データごとに、あるいはさらに複数のロボットを単位として教示点データの参照可否（アクセス権）を設定することができる。これにより、ある制御局面において、あるいはロボットを制御対象とする場合は必要のない教示点データが見えないように制御することができ、誤ったプログラム演算およびそれに基づくロボット動作を防止することができる。
【００７８】
また、図４のアクセス制御データにおいて、ある教示点データが「書込可」のパーミッションであれば場合、プログラム実行部１２はプログラムを処理する過程で、教示点情報を変更することを許可する。
【００７９】
例えばここで、ロボット（１）で実行されるプログラム中に
Ｐ１＝Ｐ４
のようなステートメントが現われたとする。図４のアクセス制御データにおいては、ロボット（１）については、教示点データＰ１は「書込可」、教示点データＰ４は「参照可」のパーミッションであるため、プログラム実行部１２はこのステートメントの実行を許容する。すなわち教示点データＰ１の値を教示点データＰ４の値によって上書きする演算処理が実行される。
【００８０】
一方、上記のステートメント“Ｐ１＝Ｐ４”をロボット（２）を対象として実行しようとするプログラムの場合を考える。この場合ロボット（２）については、教示点データＰ４は「参照可」であるが、教示点データＰ１は「書込否」のパーミッションであるため、プログラム実行部１２はプログラムをエラー停止させる。
【００８１】
以上のように、図４のようなアクセス制御データを用いることにより、書込可否に関しても柔軟なアクセス制御を行うことができる。即ち、制御方式や制御対象のロボットの別によって、個々の教示点データへの書き込みをそれぞれ許可し、また禁止する、というようなアクセス制御が可能となる。このため、意図せず教示点情報が変更されて誤った動作が実行されるのを防止することができる。
【００８２】
また、動作可否のパーミッション（アクセス権）に関しても、ある教示点データに関するアクセス権が動作可であればプログラム実行部１２はプログラムが処理される過程で、ロボット動作命令を実行することを許可する。
【００８３】
例えば、ステートメント
ＭＯＶＥ  Ｐ４
の場合、ロボット（１）については、図４の教示点データＰ４のパーミッションは「動作可」である。このため、対象の教示点への動作が許可される。即ち、プログラム実行部１２は移動指示部１３へ動作を命令し、ロボットアーム（例えば１０１）を教示点データＰ４に相当する作業位置へ動作させる。
【００８４】
一方、“ＭＯＶＥ  Ｐ４”のステートメントをロボット（２）で実行しようとした場合、プログラム実行部１２はプログラムをエラー停止させる。これは、図４の設定によれば、ロボット（２）については、教示点データＰ４は教示点データＰ１は「動作否」のパーミッションであるためである。
【００８５】
以上のように、図４のようなアクセス制御データを用いることにより、特定の教示点データを用いた動作についても、柔軟なアクセス制御を行うことができる。即ち、ある制御局面において、あるいはロボットを制御対象とする場合は当該の教示点データを用いたロボット動作を許可し、また禁止するよう制御することができる。このため、例えばロボット動作命令の際に教示点の指定を誤った場合にも、意図しない動作となることを防止することができる。
【００８６】
また、図４のようなアクセス制御データを用意しておくことで、プログラム実行部１２の場合と同様に、教示装置２によるロボット操作（例えば教示操作）を制御することもできる。この場合、例えば教示装置２の操作に基づき、ロボット制御装置１の移動指示部１３〜ロボット制御部１４を介して行われるロボット操作（例えば教示操作）を制御することができる。
【００８７】
アクセス制御データを用いて意図しない動作を防ぐため、例えば教示装置２のロボット操作部２１と教示部２２は、アクセス権を以下のように処理するよう構成する。
【００８８】
ここでは、例えば、教示装置２が、（新規の）教示操作と、修正操作の２つの機能を有するものとする。ここで、上記の教示操作とは、現場でロボットアーム１０１（１０２）を実際に動作させつつ、その動作に係る教示点を記録していく操作である。また、修正操作は、教示済みの教示点データ群を用いてロボット動作を再現させ、またその過程で必要があれば特定の教示点データを修正するような操作である。この場合、教示（ないし修正）の対象となるロボット動作は、実際のロボット動作における位置姿勢に対応して次々に生成された教示点データ群である。なお、修正操作に係る教示点データは、教示装置２以外の装置、例えば制御端末３などによって予め作成されたものであってもよい。一般に、教示装置２では、ほぼ上記の教示点データ群のみを用いて教示情報を取り扱う。この教示点データ群は、例えばロボット制御装置１の教示点情報記憶部１５の記憶領域１５０１に格納されている。
【００８９】
教示装置２の機能が上記の教示操作と、修正操作である場合、例えば、図４のアクセス制御データにおいて、アクセス権のうち参照可否に関しては、教示装置２のロボット操作部２１、教示部２２は許可、禁止いずれの制御も行わなくて構わない。
【００９０】
また、新規に教示点データ群を生成しようとする（新規の）教示操作に関しては、アクセス制御データと関連づけられた教示点データが存在しない。このため、例えば教示操作に応じて生成される教示点ごとに関連づけられたアクセス権データを生成していくことになる。この場合は、新規に生成された教示点を図２ないし図３の形式で記録していくとともに、これに関連づけて例えば予め決められた初期（デフォルト）値（後述）のアクセス権データを生成して図４の形式で記録する。あるいは、１つの教示操作ごとに、後述の教示装置２におけるアクセス権データの修正（変更）と同様の入力フォームを用いて教示装置２のロボット操作部２１のＵＩを用いて当該の教示点データのアクセス権データを逐一設定する構成であってもよい。
【００９１】
一方、上記修正操作、即ち、教示済みの教示点データ群を用いてロボット動作を再現させ、またその過程で必要があれば特定の教示点データを修正するような操作に関しては、図４のアクセス制御データが重要になってくる。ここで、例えば、操作者が教示装置２を介して教示済みの教示点データ群を用いてロボット動作を再現させ、その過程で特定の教示点データを修正する動作を考える。
【００９２】
この場合、教示装置２の教示部２２は、教示点情報記憶部１５の記憶領域１５０２に記憶させたアクセス制御データ（図４）を参照して、教示点データの修正が許可されているか否かを判断することができる。即ち、教示部２２は、アクセス制御データ（図４）を参照し、当該の教示点データに関するアクセス権が「書込可」となっていれば、その教示点データを上書き変更する。この際、新たに上書きで用いられる教示点データの値は、例えばその直前に実行された教示操作で生成された教示点データの値である。
【００９３】
一方、教示部２２は、アクセス制御データ（図４）を参照して、当該の教示点データに関するアクセス権が「書込否」となっていれば、当該の教示点データを変更せず、エラー停止する。
【００９４】
教示装置２の行う動作可否に係るアクセス制御についても同様である。例えば、ここで、操作者が教示装置２を用いて、ロボット操作部２１を用いて教示済みの教示点データ中から選択した特定の教示点にロボットを移動させる動作を（例えばステップ）実行させる動作を考える。この場合も、教示部２２は、アクセス制御データ（図４）を参照し、当該の教示点データに関するアクセス権が「動作可」となっていれば、ロボット操作部２１が指定した当該教示点へのロボット動作を許可する。即ち、ロボット操作部２１が指定した教示点データを用いて移動指示部１３に動作指示が送信され、当該教示点を用いたロボットアーム１０１（１０２）の動作が実行される。
【００９５】
また、当該の教示点データに関するアクセス権が「動作否」となっていれば、教示部２２は、ロボット操作部２１が指定した教示点データを用いたロボット動作を禁止する。即ち、ロボット操作部２１から当該の教示点データを用いたロボット（教示）動作が指定されると、そのロボット動作はエラー停止させる。
【００９６】
以上では、例えば教示装置２で修正操作の対象とする教示点データが、操作しようとするロボットアームのために生成されたものであることを暗黙に前提としていた。しかしながら、図４においてはロボット（１）、（２）ごとにアクセス権データが設定されている。このため、例えば、特定のロボットアームのために生成された教示点データを用いて、異なるロボットアームを動作させようとした場合にもアクセス権データを利用すれば教示点データの書き込みおよびそれを用いた動作をしかるべく制御できる。この時のアクセス制御は、ロボット制御装置１に関して上述したのと同様である。
【００９７】
以上のようにして、図４のようなアクセス制御データを用意しておくことによって、教示装置２における教示操作についても、柔軟にアクセス制御を実行できる。即ち、教示装置２における教示操作についても、意図しない、また実行すべきではない教示点データの書き換えやそれに基づくロボット動作を禁止することができる。
【００９８】
以上に示した通り、本実施例のアクセス制御によれば、教示点データを計算用途に参照することを許しながら、例えば誤ってその教示点への移動を指示してしまった場合などにおいても、意図しないロボット動作が起きるのを確実に防止できる。また、本実施例のアクセス権（パーミッション）データはロボットアームを単位として格納できる。このため、教示装置２の誤操作や制御端末３の入力・編集ミスなどによって教示点データの利用とロボットとの対応関係が誤っている場合などにおいても意図しないロボット動作が起きるのを確実に防止できる。
【００９９】
ここで、図６に、図４に例示したようなアクセス制御データを利用したアクセス制御の一例を示す。図６のフローチャートは、例えば例えばロボット制御装置１がプログラム記憶部１１に格納されたプログラムテキストを１ステートメントずつインタプリタ実行するような動作として記述してある。図６の制御手順は、プログラム実行部１２、従ってＣＰＵ２０１が実行すべき制御プログラムとしてＲＯＭ２０２や外部記憶装置２０５に格納しておくことができる。
【０１００】
図６のステップＳ１１では、プログラム記憶部１１に格納されたプログラムテキストから、命令文を１つフェッチする。
【０１０１】
ステップＳ１２では、教示点データを特定し、抽出する。ここでは、フェッチしたステートメントを解析し、例えばオペレータ（演算子）とオペランドを分離し、通常オペランドの位置に出現する教示点データを特定する。ここでは、予め何らかの処理によって、教示点データが教示点情報記憶部１５の記憶領域１５０１に集められているものとする。この場合は、プログラムテキスト中のステートメントとの関係づけを行なうポインタデータテーブル（不図示）などが用意されているので、記憶領域１５０１中の該当する教示点データを特定し、抽出する。
【０１０２】
さらに、ステップＳ１２では、抽出した教示点データと関係づけられているアクセス制御データ（図４）を参照し、当該の教示点データのアクセス権に関するレコード（図４の行方向に相当する）を特定する。なお、この教示点データのアクセス権に関するレコード特定に必要な記憶領域１５０１の教示点データと、記憶領域１５０２のアクセス制御データを関係づけるポインタデータテーブル等は、好ましくは予め何らかの処理によって生成されているものとする。
【０１０３】
ステップＳ１３、Ｓ１４、およびＳ１５では、ステップＳ１１でフェッチしたステートメントの指定する処理がそれぞれ教示点の参照、書き込み、および動作、のいずれであるかを判定する。ここでステップＳ１３、Ｓ１４、またはＳ１５で、当該のステップが肯定された場合には、ステップＳ１６、Ｓ１７、またはＳ１８にそれぞれ分岐する。
【０１０４】
ステップＳ１６、Ｓ１７、またはＳ１８では、当該のステートメントで指定される参照、書き込み、または動作が、ステップＳ１２で参照したアクセス権に関するレコードにおいてアクセス権限を有するものか否かを判定する。ここでは、前述のように、その教示点に対する参照、書き込み、または動作のアクセス態様が「可」、「否」のいずれかのフラグを有するかが検査される。また、その際、当該のステートメントで指定されるロボット動作の主体がいずれか（図４の場合ロボット（１）、（２）のいずれであるか）によって、アクセス権に関するレコード中の該当するフィールドの値が参照され、検査される。
【０１０５】
ステップＳ１６、Ｓ１７、Ｓ１８のいずれかにおいて、アクセス態様が権限なし、即ちアクセス態様フラグが「否」であった場合には、ステップＳ１９に分岐し、上述のエラー処理（例えばロボットプログラムの実行停止とエラーメッセージの出力）を行う。一方、ステップＳ１６、Ｓ１７、Ｓ１８がいずれもアクセス態様が権限あり、即ちアクセス態様フラグが「可」であった場合には、制御はステップＳ２０まで到達する。
【０１０６】
ステップＳ２０では、ステートメント中に教示点が複数含まれる記述様式を前提とするもので、ここでは、ステップＳ１１でフェッチしたステートメント中の全ての教示点データを処理したか否かを判定する。ステートメント中に未処理の教示点データがあればステップＳ１２に戻り、上記の動作を繰り返す。また、ステートメント中の全ての教示点データを処理した場合はステップＳ２１に移行する。
【０１０７】
ステップＳ２１では、ステップＳ１１でフェッチしたステートメントを該当のロボット制御言語の文法に従い、解釈し、対応する制御を実行させる。例えば、ステートメントが“ＭＯＶＥ”のような演算子でロボット動作を指定していれば、ステートメントで指定されたロボット動作を実行させる。その場合、ステートメントの解釈の結果に応じてプログラム実行部１２が移動指示部１３に与える移動指示を生成し、移動指示部１３がロボット制御部１４を介してロボットアーム１０１（または１０２）に対応するロボット動作を実行させる。あるいは、ステートメントが“Ｐ３＝Ｐ１＋Ｐ２”のような教示点操作命令であれば、対応する教示点演算操作を実行する。
【０１０８】
ステップＳ２２では、プログラム記憶部１１にまだ未処理のステートメント（命令文）が残っているか否かを判定する。ここで、未処理のステートメント（命令文）が残っていれば、ステップＳ１１に戻り、上記の制御を繰り返し、全てのプログラムテキストを処理した場合には、制御を終了する。
【０１０９】
以上のようにして、ロボット制御装置１がプログラムテキストを１ステートメントずつインタプリタ実行する場合に、例えば図４のアクセス制御データを用いて教示点データに対するアクセス態様を柔軟に制御することができる。その場合、教示点データに対するアクセス態様は、図４のアクセス制御データを用いて上述の通り、教示点ごとに、またロボットを単位として柔軟に制御することができる。
【０１１０】
なお、図６の制御はロボット制御装置１がプログラムテキストを１ステートメントずつインタプリタ実行する例として記述している。しかしながら、図６において、ステップＳ１２〜Ｓ２０に示したループの部分は、１つの教示点データを対象とし、その教示点データに対応するアクセス権限を検査し、権限なしであればエラー処理を行う制御である。従って、図６のステップＳ１２〜Ｓ２０の部分は、教示装置２による修正操作やロボット制御装置１による教示点データのトレース実行の際に流用することができる。この場合、ステップＳ１２〜Ｓ２０に示したループの部分を、教示点情報記憶部１５の記憶領域１５０１から教示点データを１つずつ取り出してアクセス権限を検査し、権限なしであればエラー処理を行う制御として用いることができる。
【０１１１】
以下では、図４のようなアクセス制御データの生成、そのタイミング、あるいは初期（デフォルト）値の設定手法などに関する構成につき考察する。
【０１１２】
図４のようなテーブル形式で教示点情報記憶部１５の記憶領域１５０２に格納されるアクセス権データは、例えば教示装置２による教示操作に付随して入力、格納するよう構成することが考えられる。また、制御端末３のテキストエディタや統合開発環境で行われるプログラム入力・編集の際に入力し、記憶領域１５０２に格納するよう構成するようにしてもよい。
【０１１３】
例えば、教示装置２においては、１つの教示操作を行い、対応する教示点データを確定し、教示点情報記憶部１５の記憶領域１５０１に格納するタイミングでその教示点データについてのアクセス権データを入力させ、記憶領域１５０２に記録する。この場合、ユーザーインターフェースには、ロボット操作部２１のディスプレイおよびキーボードなどを用いることができる。
【０１１４】
例えば、アクセス権データは、図４の１レコード（あるいはさらに上部の凡例部分）を取り出した記述形式は、そのまま当該の教示点データに係るアクセス権データの入力フォームとしてロボット操作部２１のディスプレイに表示させることができる。このようなテーブル形式の入力フォームを介して操作者はアクセス権データの各フィールドに所望の値を指定して記憶領域１５０２に格納させることができる。
【０１１５】
また、制御端末３のテキストエディタや統合開発環境においてプログラム入力・編集の際にも、同様の入力フォーム、即ち、図４の１レコード（あるいはさらに上部の凡例部分）を取り出した記述形式を用いてアクセス権データを入力させることができる。
【０１１６】
また、教示装置２の教示操作や制御端末３のプログラム入力のみならず、教示装置２での上記の修正操作、制御端末３におけるテキストエディタや統合開発環境でのプログラム編集操作の際にも、アクセス権データを修正（変更）させることができる。例えば、教示装置２の教示操作や制御端末３でのプログラム編集操作の際に、教示点データの修正に伴い、対応するアクセス権データを修正（変更）させることができる。この場合にも、上記の図４の１レコード（あるいはさらに上部の凡例部分）を取り出した様式の入力フォームを用いてアクセス権データを修正（変更）させることができる。
【０１１７】
さらに、操作者の作業を軽減するために、全ての教示点データについて、アクセス権の初期（デフォルト）値を持つ仕様を採用してもよい。この例えば、ある教示点データについてのアクセス権の初期値は、教示装置２の教示操作や制御端末３のプログラム入力・編集操作において、教示点が作成される際に自動的に付与されるようにする。この構成は、例えば教示装置２の教示操作制御プログラム、制御端末３のテキストエディタや統合開発環境のプログラム入力・編集制御プログラムにアクセス権の初期値発生、および記憶領域１５０２への格納を行うルーチンを追加することにより実現できる。
【０１１８】
このような構成により、操作者は、初期値と異なるアクセス権付与が必要と思われる教示点についてのみアクセス権指定（あるいは編集に伴なう修正）を行えばよくなる。即ち、教示装置２および制御端末３の操作者は全てのアクセス権を入力する必要がなくなり、操作者の作業負担を大きく軽減することができる。
【０１１９】
上記のように自動的に付与するアクセス権の初期値の一例としては、例えば図５のようにロボット（１）および（２）のいずれについても、参照、書込、動作の全てのアクセス権限が「可」のフラグを有する構成が考えられる。このアクセス権設定によると、教示点の取り扱いは本実施例のようなアクセス制御が何も実装されていない従来装置における教示点の取り扱いと同じになる。
【０１２０】
なお、上記のように自動的に付与するアクセス権の初期値は、操作者の指定によって自由に変更できるよう構成することもできる。例えば、教示装置２や、制御端末３（の統合開発環境など）に、システム設定画面のようなユーザーインターフェースを配置し、このユーザーインターフェースを介してアクセス権の初期値を設定できるよう構成する。この場合もユーザーインターフェースには、上述と同様に、図４の１レコード（あるいはさらに上部の凡例部分）を取り出した如くの入力フォームを用いることができる。
【０１２１】
また、図４に例示したアクセス制御データでは、アクセス権データを例えば（１つのロボットアームに対応する）ロボット単位で格納すべく説明した。しかしながら、アクセス権データは、例えば複数のロボットアームで構成されたグループ単位で作成し、図４に類似の格納形式で格納することもできる。
【０１２２】
例えばロボット装置が配置される製造、組立や加工の現場では、１グループを構成する２ないし３以上のロボットアームを協働させて１つの工程を担当させることがある。そして、このような複数アームから成るグループを、直列的、あるいは並列的に多数配列することにより製造、組立や加工ラインを構成することも一般的である。従って、上述のロボット単位のアクセス制御のみならず、上記のような複数アームから成るグループ単位でアクセス権情報を格納し、それに基づきアクセス制御が行えれば便利である。
【０１２３】
また、複数アームから成るグループ単位でアクセス権情報を格納する構成においては、例えば、図４のロボット（１）および（２）の単位と同等の形式で、参照、書込、動作の各アクセス権限フラグを配列したグループ単位の格納領域を追加すればよい。その場合、例えばグループ（１）および（２）などといった単位で、各アクセス権限フラグを配列した格納領域を追加することができる。このような構成によって、例えば、ある教示点データに対する参照、書込、動作のアクセスを、異なるグループに属するロボットを制御対象とする教示（修正）操作、プログラム命令文の実行については禁止する、といったアクセス制御態様が可能となる。
【０１２４】
上述の本発明のアクセス制御技術は、複数の教示点データを用いてロボットアームの位置姿勢を制御する制御装置を備えた各種のロボット装置（ないしはその制御方法）において実施することができる。
【符号の説明】
【０１２５】
１…ロボット制御装置、２…教示装置、３…制御端末、４…システム操作端末、１１…プログラム記憶部、１２…プログラム実行部、１３…移動指示部、１４…ロボット制御部、１５…教示点情報記憶部、２１…ロボット操作部、２２…教示部、３１…プログラム作成部、４１…装置操作部、１０１、１０２…ロボットアーム
【図１】
2016064483.tif 000003
【図２】
2016064483.tif 000004
【図３】
2016064483.tif 000005
【図４】
2016064483.tif 000006
【図５】
2016064483.tif 000007
【図６】
2016064483.tif 000008