(57)【要約】【課題】ロボット本体に対してロボットコントローラや付属品を交換して接続することが容易であり、かつ、ロボット本体や付属品側に保持するデータを最小限のものとすることができるロボットシステムを提供する。【解決手段】ロボットコントローラによる制御の対象として同一の機構を有する対象ロボットには同一のハードウェア識別子を付与する。対象ロボットには、そのハードウェア識別子とその固有の個体差パラメータとを格納する第１記憶部を設ける。ロボットコントローラには、ハードウェア識別子に対応する共通構成情報を記憶する第２記憶部と、共通構成情報に対応するハードウェア識別子と対象ロボットのハードウェア識別子とを照合し、一致する場合に共通構成情報と対象ロボットの個体差パラメータとに基づいてハードウェア定義情報を生成し、ハードウェア定義情報によって対象ロボットを制御する制御部と、を設ける。【選択図】図１
2020179486.tif 000002
【特許請求の範囲】
【請求項１】
ロボットコントローラと、前記ロボットコントローラによる制御の対象である対象ロボットと、を有するロボットシステムであって、
前記対象ロボットは、前記対象ロボットのハードウェア識別子と、前記対象ロボットを個体として識別する個体識別データと、当該対象ロボットに固有の個体差パラメータとを含む装置固有データを格納する第１記憶部を備え、
ロボットコントローラによる制御の対象として同一の機構を有する前記対象ロボットには同一のハードウェア識別子が付与されており、
前記ロボットコントローラは、
前記ハードウェア識別子に対応する共通構成情報と、当該ロボットコントローラに接続されている対象ロボットの前記個体識別データ及び前記個体差パラメータとを格納する第２記憶部と、
前記第２記憶部に格納されている前記共通構成情報に対応する前記ハードウェア識別子と前記対象ロボットに付与されている前記ハードウェア識別子とを照合して一致する場合に、前記第２記憶部に格納されている前記共通構成情報と前記第１記憶部から読み込んだ前記個体差パラメータとに基づいて前記対象ロボットのハードウェア定義情報を生成し、前記ハードウェア定義情報によって前記対象ロボットを制御する制御部と、
を有する、ロボットシステム。
【請求項２】
複数のハードウェア識別子の各々の前記共通構成情報を格納するテンプレート格納部を備え、前記制御部は、前記ハードウェア識別子の照合の結果、一致しない場合に、前記対象ロボットに付与されている前記ハードウェア識別子に対応する前記共通構成情報を前記テンプレート格納部から読み込んで前記第２記憶部内の前記共通構成情報を更新し、更新後の前記共通構成情報を用いて前記対象ロボットの前記ハードウェア定義情報を生成する、請求項１に記載のロボットシステム。
【請求項３】
前記テンプレート格納部は、前記ロボットコントローラが接続する上位装置に設けられている、請求項２に記載のロボットシステム。
【請求項４】
前記制御部は、前記第１記憶部から読み込んだ前記個体識別データと前記第２記憶部に既に格納されている前記個体識別データとを照合し、照合の結果が一致しているときは、新たに前記ハードウェア定義情報を作成することなく既に作成されている前記ハードウェア定義情報によって前記対象ロボットを制御する、請求項１乃至３のいずれか１項に記載のロボットシステム。
【請求項５】
前記対象ロボットは、少なくともマニピュレータを含むロボット本体と、前記ロボット本体からは分離した付属品と、を有し、
前記ロボット本体と前記付属品には異なる前記ハードウェア識別子が付与され、
前記制御部は、前記ロボット本体と前記付属品の各々について前記ハードウェア識別子の照合を行う、請求項１乃至４のいずれか１項に記載のロボットシステム。
【請求項６】
前記ロボット本体と前記付属品の各々に前記第１記憶部が設けられ、前記ロボット本体の前記第１記憶部には当該ロボット本体の前記個体識別データと前記個体差パラメータが格納され、前記付属品の前記第１記憶部には当該付属品の前記個体識別データと前記個体差パラメータが格納される、請求項５に記載のロボットシステム。
【請求項７】
前記ロボット本体の前記個体識別データには当該ロボット本体の機種に関するデータが含まれ、
前記付属品の前記個体識別データには当該付属品の機種に関するデータが含まれ、
前記ロボットコントローラは、前記ロボット本体の機種と前記付属品の機種との許容される組み合わせを記述する機種構成テーブルを備え、
前記制御部は、前記ロボットコントローラに接続された前記ロボット本体及び前記付属品の組み合わせが前記機種構成テーブルに記述されていないときに警告を発する、請求項５または６に記載のロボットシステム。
【請求項８】
前記ロボット本体は前記マニピュレータとハンドとを有し、前記マニピュレータと前記ハンドには異なる前記ハードウェア識別子が付与され、前記制御部は、前記マニピュレータと前記ハンドの各々について前記ハードウェア識別子の照合を行う、請求項５または６に記載のロボットシステム。
【請求項９】
前記マニピュレータと前記ハンドの各々に前記第１記憶部が設けられ、前記マニピュレータの前記第１記憶部には当該マニピュレータの前記個体識別データと前記個体差パラメータが格納され、前記ハンドの前記第１記憶部には当該ハンドの前記個体識別データと前記個体差パラメータが格納される、請求項８に記載のロボットシステム。
【請求項１０】
前記マニピュレータの前記個体識別データには当該マニピュレータの機種に関するデータが含まれ、
前記ハンドの前記個体識別データには当該ハンドの機種に関するデータが含まれ、
前記付属品の前記個体識別データには当該付属品の機種に関するデータが含まれ、
前記ロボットコントローラは、前記マニピュレータの機種と前記ハンドの機種と前記付属品の機種との許容される組み合わせを記述する機種構成テーブルを備え、
前記制御部は、前記ロボットコントローラに接続された前記マニピュレータ、前記ハンド及び前記付属品の組み合わせが前記機種構成テーブルに記述されていないときに警告を発する、請求項８または９に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくともロボット本体とこのロボット本体を制御するロボットコントローラとを備えるロボットシステムに関する。
【背景技術】
【０００２】
ロボットシステムは、一般に、相互に連結されたアームとそれらの連結部を駆動するモータとからなるマニピュレータと、マニピュレータに取り付けられたハンドあるいはツールと、マニピュレータ及びハンドを制御するロボットコントローラとから構成されている。マニピュレータ及びハンドによってロボット本体が構成されている。マニピュレータからハンドを取り外せないようなロボットにおいては、マニピュレータにハンドが含まれていると考えてもよく、その場合はロボット本体はマニピュレータだけで構成されていると考えてもよい。ロボット本体内の各モータの回転をロボットコントローラによって制御するために、モータにはその回転位置を検出するエンコーダが取り付けられており、エンコーダで取得した回転位置情報はロボットコントローラに随時送信される。場合によっては、ロボットシステムには、ロボット本体とは独立した付属品が設けられることがある。ロボット本体の処理対象となるワークの姿勢を変更するアライナーなども付属品である。付属品もロボットコントローラによる制御の対象となる。
【０００３】
ロボット本体であるマニピュレータ及びハンドでは、ロボットの機種ごとに、アームやハンドの数や寸法、それらの接続関係、搭載されるモータの仕様などが異なっている。これらのロボットの構成情報は、一般にロボットコントローラに予め記憶されることとなっており、そのため、ロボットの機種ごとにロボットコントローラが用意されることになる。ロボットコントローラは、それが対象とする機種以外の機種のロボットをそのままでは制御できない。ある機種用のロボットコントローラを用いて他の機種のロボットを制御しようとするときには、作業者によってロボットの機種を確認し、確認された機種に適合したロボット構成情報にロボットコントローラ内の情報を入れ換える作業が必要である。そのため、ロボットの機種ごとにロボットコントローラが用意されることになる。さらに同一機種のロボットであってもロボット本体ごとにどうしても個体差があり、ロボットコントローラによって制御するときは個体差に応じた制御を行なう必要がある。個体差の例として、原点位置に対するオフセット値がある。マニピュレータやハンドにはその動作の基準となる姿勢である原点位置が定められているが、原点位置となるときにモータごとのエンコーダが示す回転位置データは、モータやエンコーダの取り付け上のばらつきなどにより、マニピュレータやハンドの個体ごとに異なる値となってしまう。モータを有する付属品についても同様である。そこでロボットの組み立て完了時などに個体差を実測し、その後、個体差についてのデータは、ロボットコントローラの記憶部に格納される。このため、同じ機種のロボット本体を対象とするロボットコントローラであっても、同一機種のロボット本体を交換して接続する場合には精度の高い制御を行うことができなくなり、ロボットコントローラの再調整が必要となる。このため、同一機種のロボット本体を交換して接続することは容易ではない。
【０００４】
しかしながら、ロボットを使用する場合には、ロボットを使用する作業の効率化を図るとともに、工程の変更や障害発生時などに柔軟に対応できるようにするために、同一機種のロボット本体に対して当該機種用のロボットコントローラを交換して接続したい、という要望がある。さらに、機種は異なっているものの、ロボット本体としての構成及び制御という観点からは同一の機種といえる、という場合がある。例えば、ロボット本体に対して付属品であるアライナーが付属しているか否かで別の機種としていることがある。アライナーを用いない作業をロボット本体に実行させるのであれば、機種が異なっていても同一のロボットコントローラを用いて作業を実施できることが期待される。さらには、機構は全く同一であるがマニピュレータの外装の塗装に用いる塗料としてクリーンルーム内での使用を前提としてエポキシ塗料を用いたロボット本体と、クリーンルーム内での使用を考慮せずに一般的な塗料を用いたロボット本体とを異なる機種としている場合もある。このような場合には、ロボット本体としては異機種であっても同一のロボットコントローラを交換して接続できることが望まれる。
【０００５】
ロボットコントローラに接続されるロボット本体を交換することを可能にする試みとして、特許文献１は、ロボット本体内の内蔵ボードを取り替えたときであってもロボットコントローラによって制御可能なロボットシステムを開示している。特許文献２は、ロボット機構部あるいは機構ユニットの交換後に諸データ変更の作業を自動化するために、交換を検出したらロボット機構部あるいは機構ユニットから読み込んだデータによってロボットコントローラ内のデータを書き換えることを開示している。ロボット機構部あるいは機構ユニットから読み込まれるデータには、アーム長などのロボットの軸構成に関するデータも含まれている。特許文献３は、ロボットに設けられるセンサー類に関する情報に関し、ロボット本体の交換後にロボット本体からロボットコントローラに読み込むことを開示している。特許文献４は、これまで使用していたロボットコントローラから新たなロボットコントローラへのロボット動作用データの移行を適切かつ簡便に行うために、交換用のメモリを使用することを開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２４２９２２号公報
【特許文献２】特開２００４−１４８４３３号公報
【特許文献３】特開２０１６−１３７５２６号公報
【特許文献４】特開２０１３−５６３７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ある機種のロボット本体に接続されるロボットコントローラをその機種用の他のロボットコントローラに交換する、あるいはロボットコントローラに接続されるロボット本体を同一機種の範囲内で交換することは、同一機種内でロボット本体とロボットコンローラとの組み合わせを変更することに他ならない。ロボットコントローラに接続されるロボット本体の変更を可能にする特許文献１〜４に開示される技術は、同一機種内でロボット本体とロボットコンローラとの組み合わせを変更するという観点からすると、必ずしも最適化された技術であるとは言えない。特許文献４に示す技術では、ロボットコントローラの変更の際に結局は個体差に関するパラメータをバックアップする必要があり、手順として煩雑なものとなる。さらには、異なる機種であるが機構としては同一であるロボット本体とロボットコントローラとの組み合わせを変更することについては、特許文献１〜４には開示されていない。
【０００８】
本発明の目的は、ロボット本体に対してロボットコントローラや付属品を交換して接続することが容易であり、かつ、ロボット本体や付属品側に保持するデータを最小限のものとすることができるロボットシステムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のロボットシステムは、ロボットコントローラと、ロボットコントローラによる制御の対象である対象ロボットと、を有するロボットシステムであって、対象ロボットは、対象ロボットのハードウェア識別子と、対象ロボットを個体として識別する個体識別データと、その対象ロボットに固有の個体差パラメータとを含む装置固有データを格納する第１記憶部を備え、ロボットコントローラによる制御の対象として同一の機構を有する対象ロボットには同一のハードウェア識別子が付与されており、ロボットコントローラは、ハードウェア識別子に対応する共通構成情報と、そのロボットコントローラに接続されている対象ロボットの個体識別データ及び個体差パラメータとを格納する第２記憶部と、第２記憶部に格納されている共通構成情報に対応するハードウェア識別子と対象ロボットに付与されているハードウェア識別子とを照合して一致する場合に、第２記憶部に格納されている共通構成情報と第１記憶部から読み込んだ個体差パラメータとに基づいて対象ロボットのハードウェア定義情報を生成し、ハードウェア定義情報によって対象ロボットを制御する制御部と、を有する。
【００１０】
本発明によれば、ロボットコントローラによる制御の対象として同一の機構を有する対象ロボットには同一のハードウェア識別子を付与するので、機種が異なっていても機構としては同一であるロボットには同じハードウェア識別子が付与される。その結果、対象ロボットに接続されるロボットコントローラとして、同一機種用の別のロボットコントローラだけでなく、ハードウェア識別子が同一であれば異なる機種用のロボットコントローラも使用することが可能になる。また、対象ロボットの第１記憶部に格納された個体差パラメータを使用してハードウェア定義情報を生成するので、ロボットコントローラは、対象ロボットの個体差を考慮して、実際に接続されている対象ロボットに適した制御を行うことができるようになる。
【００１１】
本発明のロボットシステムでは、複数のハードウェア識別子のそれぞれの共通構成情報を格納するテンプレート格納部を備えた上で、ロボットコントローラの制御部が、ハードウェア識別子の照合の結果、一致しない場合に、対象ロボットに付与されているハードウェア識別子に対応する共通構成情報をテンプレート格納部から読み込んで第２記憶部内の共通構成情報を更新し、更新後の共通構成情報を用いて対象ロボットのハードウェア定義情報を生成することができる。複数のハードウェア識別子のそれぞれの共通構成情報をあらかじめ用意した上で、ハードウェア識別子の照合において一致しなかった場合に、ロボット側のハードウェア識別子に対応する共通構成情報を読み込んでハードウェア定義情報を作成することにより、ロボットコントローラの能力の範囲内で、機構が異なるロボットを交換して同一のロボットコントローラによって適切に制御することが可能になる。この場合、ロボットコントローラが接続する上位装置にテンプレート格納部を設けることが好ましい。上位装置にテンプレート格納部を設けることによって、既存のものとは機構が異なる新機種のロボットに対しても、上位装置側において共通構成情報を準備することにより、その上位装置に接続する多数のロボットコントローラが新機種用の共通構成情報を利用できるようになる。
【００１２】
本発明のロボットシステムにおいて制御部は、第１記憶部から読み込んだ個体識別データと第２記憶部に既に格納されている個体識別データとを照合し、照合の結果が一致しているときは、新たにハードウェア定義情報を作成することなく既に作成されているハードウェア定義情報によって対象ロボットを制御することができる。これにより、ロボットの交換が行われていないときは従前のハードウェア定義情報をそのまま使用することとなるので、重複してハードウェア定義情報を作成することを防ぐことができる。
【００１３】
本発明のロボットシステムにおいて、対象ロボットは、少なくともマニピュレータを含むロボット本体と、ロボット本体からは分離した付属品と、を有し、ロボット本体と付属品には異なるハードウェア識別子が付与され、制御部が、ロボット本体と付属品の各々についてハードウェア識別子の照合を行ってもよい。このように構成することにより、ロボット本体と付属品との組み合わせを柔軟に変更しつつロボットを適切に制御することができるようになる。このとき、ロボット本体の第１記憶部にはそのロボット本体の個体識別データと個体差パラメータを格納し、付属品の第１記憶部にはその付属品の個体識別データと個体差パラメータを格納するように、ロボット本体と付属品の各々に第１記憶部を設けてもよい。このようにロボット本体と付属品の各々に第１記憶部を設けることによって、ロボット本体と付属品とのすべての組み合わせを想定して自由な交換や切り替えを行うことができるようになる。
【００１４】
本発明のロボットシステムにおいては、ロボット本体と付属品とに別々にハードウェア識別子を付与する場合に、ロボット本体の個体識別データにはそのロボット本体の機種に関するデータが含まれ、付属品の個体識別データにはその付属品の機種に関するデータが含まれるようにし、ロボット本体の機種と付属品の機種との許容される組み合わせを記述する機種構成テーブルをロボットコントローラが備えるようにし、その上で、ロボットコントローラに接続されたロボット本体及び付属品の組み合わせが機種構成テーブルに記述されていないときに警告を発するようにしてもよい。そのように構成することによって、意図しない機種の組み合わせがあったときに、警告によりロボットを動作させないようにすることができる。
【００１５】
本発明のロボットシステムにおいて、ロボット本体はマニピュレータとハンドとを有し、マニピュレータとハンドには異なるハードウェア識別子が付与され、制御部が、マニピュレータとハンドの各々についてハードウェア識別子の照合を行うようにしてもよい。このように構成することにより、マニピュレータとハンドとの組み合わせを柔軟に変更しつつロボットを適切に制御することができるようになる。このとき、マニピュレータの第１記憶部にはそのマニピュレータの個体識別データと個体差パラメータが格納され、ハンドの第１記憶部にはそのハンドの個体識別データと個体差パラメータが格納されるように、マニピュレータとハンドの各々に第１記憶部を設けてもよい。このようにマニピュレータとハンドの各々に第１記憶部を設けることによって、マニピュレータとハンドとのすべての組み合わせを想定して自由な交換や切り替えを行うことができるようになる。なお、ハンドに第１記憶部を設けることができない場合には、マニピュレータの第１記憶部にハンドの個体識別データ及び個体差パラメータを格納してもよい。
【００１６】
本発明のロボットシステムにおいては、マニピュレータとハンドと付属品とに別々にハードウェア識別子を付与する場合に、マニピュレータの個体識別データにはそのマニピュレータの機種に関するデータが含まれ、ハンドの個体識別データにはそのハンドの機種に関するデータが含まれ、付属品の個体識別データにはその付属品の機種に関するデータが含まれるようにし、マニピュレータの機種とハンドの機種と付属品の機種との許容される組み合わせを記述する機種構成テーブルをロボットコントローラが備えるようにし、その上で、ロボットコントローラに接続されたマニピュレータ、ハンド及び付属品の組み合わせが機種構成テーブルに記述されていないときに警告を発するようにしてもよい。そのように構成することによって、意図しない機種の組み合わせがあったときに、警告によりロボットを動作させないようにすることができる。
【発明の効果】
【００１７】
本発明によれば、ロボット本体に対してロボットコントローラや付属品を交換して接続することが容易であり、かつ、ロボット本体や付属品側に保持するデータを最小限のものとすることができるロボットシステムが得られる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態のロボットシステムの構成を示すブロック図である。
【図２】エンコーダごとに記憶される装置固有データの形式を示す図である。
【図３】図１に示すロボットシステムの動作を示すフローチャートである。
【図４】図１に示すロボットシステムの動作を示すフローチャートである。
【図５】図１に示すロボットシステムの動作を示す状態遷移図である。
【図６】第２の実施形態のロボットシステムの構成を示すブロック図である。
【図７】ロボットコントローラへのハードウェア定義情報ＨｗＤｅｆの読み込みを説明する図である。
【図８】図６に示すロボットシステムの動作を示すフローチャートである。
【図９】図６に示すロボットシステムの動作を示す状態遷移図である。
【図１０】機種構成テーブルの構成の一例を示す図である。
【発明を実施するための形態】
【００１９】
［第１の実施形態］
次に本発明の好ましい実施の形態について、図面を参照して説明する。図１は本発明の第１の実施形態のロボットシステムを示している。このロボットシステムは、マニピュレータ及びハンドからなるロボット本体１と、ロボット本体１を制御するロボットコントローラ２とを備えている。ロボット本体１とロボットコントローラ２とは接続ケーブル３により取り外し可能に接続されている。接続ケーブル３の一端にはロボット本体１との接続のためのコネクタ３１が取り付けられており、他端にはロボットコントローラ２との接続のためのコネクタ３２が取り付けられている。図１では破線で示しているが、ロボットシステムには、付属品として、ワークの姿勢を変更するアライナー４が設けられていてもよく、その場合、アライナー４もロボットコントローラ２に接続されてロボットコントローラ２によって制御される。アライナー４以外の付属品が設けられていてもよい。ロボットコントローラ２による制御の対象となるものを総称して対象ロボットと呼ぶこととする。ここで示す例で言えば、対象ロボットにはロボット本体１とアライナー４とが含まれる。
【００２０】
ロボット本体１は、複数の駆動軸を有するものであって、駆動軸ごとに、サーボモータであってその駆動軸を駆動するモータ１１と、ロボットコントローラ２からの指令に基づいてモータ１１を駆動制御するドライバ１２と、モータ１１の回転軸に取り付けられてその回転軸の回転位置を検出するエンコーダ１３とを備えている。図示していないが、モータ１１には減速機やプーリーなども付属している。エンコーダ１３には、そのエンコーダ１３の動作パラメータを格納する不揮発性の記憶部１４が設けられている。記憶部１４は、典型的にはＥＥＰＲＯＭ（電気的消去可能・プログラム可能読出し専用メモリ）によって構成される。ロボットシステムにアライナー４が設けられる場合、アライナー４は、１軸のロボット、すなわちモータ１１、ドライバ１２及びエンコーダ１３を１つずつ有するものとして扱われる。アライナーのエンコーダ１３にも不揮発性の記憶部１４が設けられる。
【００２１】
ロボットコントローラ２は、予め定められた軌道でロボット本体１が移動するように、各軸のエンコーダ１３から読み出される回転位置に基づいて各軸のモータ１１に対する指令を生成する制御部２１と、制御部２１での演算に必要なパラメータ類を格納する不揮発性の記憶部２２と、を備えている。記憶部２２に格納されるパラメータには、接続するロボット本体１やアライナー４の制御のために、ロボット本体１やアライナー４のハードウェア条件を示す情報が含まれる。以下の説明において、ロボットごとにハードウェア条件を示す情報をハードウェア定義情報ＨｗＤｅｆと呼ぶ。ハードウェア定義情報ＨｗＤｅｆは、共通構成情報と個体差パラメータとによって構成されている。制御部２１は、ハードウェア定義情報ＨｗＤｅｆを用いてロボット本体１やアライナー４を制御する。共通構成情報は、同一の機構のロボットであれば共通であって個体差を無視できる情報であり、例えば、ロボット本体１を構成するアームやハンドの長さ、接続関係、各モータ１１の仕様などの、ロボットの構成を記述する１組のデータである。共通構成情報はあらかじめ、記憶部２２に格納されている。個体差パラメータは、同一の機構のロボットであっても個体差が無視できないパラメータのことであり、例えば、原点位置に対するエンコーダ１３ごとのオフセット値を含んでいる。
【００２２】
同一の機構のロボットであるが例えば外装の塗料が異なっているから別機種として扱われるロボットであっても、ロボットコントローラ２からロボット本体１を制御するときはこれらの別機種と扱われているロボットを同じものとして制御できるから、同一の機構のロボットに関しては１種類の共通構成情報しか記憶部２２に格納されない。そこで本実施形態では、同一の機構であるか否かを識別するために、ＨＷグループＩＤと呼ぶハードウェア識別子を使用する。ＨＷグループＩＤと共通構成情報とは１対１に対応する。同一の機構のロボットであれば機種が異なっていても同じＨＷグループＩＤが付与され、後述するように同一の共通構成情報が使用される。反対に、ロボットコントローラから制御するという観点において同一の機構であるとはみなされないロボットには、異なるＨＷグループＩＤが付与される。ロボット本体１と付属品であるアライナー４とに対しては、それらが組み合わせた状態で販売されるものであるとの理由から同一の機種名が与えられていたとしても、ロボットコントローラ２からは別個のパラメータを用いて制御されるものであるから、異なるＨＷグループＩＤを付与する。マニピュレータに対してハンドを交換して使用することを前提とするのであれば、マニピュレータとは別個にハンドに対して異なるＨＷグループＩＤを付与してもよい。
【００２３】
このように同一のＨＷグループＩＤのロボットであれば個体差を無視して共通であるとみなせる情報のことを共通構成情報と呼ぶ。さらに、同一機種あるいは同一のＨＷグループＩＤのロボットであっても個体差が無視できないパラメータ、例えば、原点位置に対するエンコーダ１３ごとのオフセット値も記憶部２２に格納される。ロボットごとの個体差に対応するパラメータのことを個体差パラメータと呼ぶ。アライナー４が設けられる場合には、アライナー４についてのオフセット値も記憶部２２に格納される。制御部２１がロボット本体１やアライナー４を制御するときには、記憶部２２に格納された共通構成情報と個体差パラメータとの両方を利用する。
【００２４】
本実施形態のロボットシステムでは、ある機種のロボット本体１に接続されるロボットコントローラをその機種用の他のロボットコントローラまたはその機種と同一のＨＷグループＩＤの機種用のロボットコントローラに交換する、あるいはロボットコントローラ２に接続されるロボット本体を同一のＨＷグループＩＤの機種の範囲内で交換することを可能にする。このどちらの種類の交換も、結局は、同一のＨＷグループＩＤの機種の範囲内でのロボット本体１とロボットコントローラ２の組み合わせでの交換であり、これらの交換のことを以下の説明では「ロボットコントローラの交換」と呼ぶことにする。例えば予備品として用意されたロボットコントローラと交換することもロボットコントローラの交換である。本実施形態では、ロボットコントローラの交換を可能にするために、エンコーダ１３の不揮発性の記憶部１４に装置固有データを書き込んでおき、ロボットシステムの起動時に各エンコーダ１３から装置固有データをロボットコントローラ２に読み込む。読み込んだ結果、ロボットコントローラの交換があったと判断されるときは、ロボットコントローラ２の制御部２１は、エンコーダ１３から読み込んだ装置固有データを用いて必要な処理を行なう。なお、ハンドに対して別個にＨＷグループＩＤを付与する場合に、ハンドにはモータ１１が取り付けられておらず、そのためエンコーダ１３もなく記憶部１４がないことも考えられる。ハンドに記憶部１４が存在しない場合には、ハンドについての装置固有情報データを、そのハンドが取り付けられるマニピュレータのいずれかの軸の記憶部１４に格納するようにしてもよい。以下の説明では、特記しない限り、マニピュレータとハンドとに対してまとめてロボット本体１としてのＨＷグループＩＤが付与されているものとする。
【００２５】
図２は、エンコーダ１３ごとにその記憶部１４に記憶される装置固有データの形式の一例を示している。装置固有データは、ハードウェア識別子であるＨＷグループＩＤと、ロボットタイプ（機種）を示すデータと、ロボット本体１やアライナー４を個体として識別するためのデータと、個体差パラメータとして同一構成のロボット本体１やアライナー４の中で変化し得るパラメータ（例えば原点位置に対するオフセット値）とを含む固定長のデータである。ロボット本体１やアライナー４を個体として識別するデータを個体識別データと呼ぶ。本実施形態では、シリアル番号を個体識別データとするが、他のデータを個体識別データとして用いてもよい。図示されるように、装置固有データは、アドレス順に、ヘッダ情報とデータ部とから構成されている。アライナー４の記憶部１４にも同様の装置固有データが格納される。ヘッダ情報には、装置固有データの形式を特定するフォーマットバージョンのフィールド、書き込み状態のフィールド、予約領域、及び、ヘッダ部についてのチェックサムのフィールドが含まれる。書き込み状態のフィールドには、その装置固有データが初期状態のものなのか、書き込みが完了したものなのか、あるいは書き込み途中であって書き込みが未完了のものなのか、を示すデータが書き込まれる。ヘッダ部のチェックサムのフィールドは、フォーマットバージョンのフィールド、書き込み状態のフィールド及びヘッダ部の予約領域に対するチェックサムを格納するフィールドである。
【００２６】
データ部は、データ部全体に対するチェックサムを格納するデータ部のチェックサムの領域と、ＨＷグループＩＤが格納されるフィールドと、ロボットの機種を示すデータであるロボットタイプのフィールドと、シリアル番号のフィールドと、原点位置に対するオフセット値のフィールドと、物理軸番号のフィールドと、ロボットタスク番号のフィールドと、予約領域とからなっている。本実施形態では、装置固有データとしてエンコーダ１３ごとに記憶される個体差パラメータは、ロボット本体１の全体に関するものではなく、そのエンコーダ１３に関するものに限定されている。したがって、原点位置に関するオフセット値としては、ロボット本体１が原点位置にあるときにその装置固有データを格納するエンコーダ１３の回転位置についてのオフセット値が格納される。アライナー４の記憶部１４に格納される個体差パラメータは、アライナー４のエンコーダ１３に関するものに限定される。物理軸番号のフィールドは、ロボット本体１に複数の駆動軸があってそれらの駆動軸に一意に物理軸番号が付与されているとして、その装置固有データを格納するエンコーダ１３がどの物理軸のものであるかを示している。ロボットタスク番号は、その装置固有データを格納するエンコーダ１３がロボット本体１のものなのかアライナー４などの付属品のものかを示す番号である。複数の付属品を使用する場合には、異なるロボットタスク番号を付与するようにする。通常は、ロボットタスク番号が１であるときにロボット本体１を示し、ロボットタスク番号が２，３，…と増加するにつれてそのロボットタスク番号は、１番目の付属品、２番目の付属品、…などを示す。シリアル番号は個体識別データを構成し、物理軸番号及びロボットタスク番号の各々は、対象ロボットの構成に関する情報の１つである。
【００２７】
エンコーダ１３をモータ１１から取り外すことは一般には行なわれないから、ロボット本体１やアライナー４においてモータ１１を交換するときはエンコーダ１３と一緒に交換することになる。したがって、エンコーダ１３の記憶部１４に格納されている装置固有データは、モータ１１に紐付けられているデータであるといえる。モータ１１を交換したときは、そのときのモータ１１の組み付けのばらつきなどにより、原点位置に対するオフセット値も変化するから、再度、オフセット値を決定する調整作業を行なう必要がある。そこで本実施形態では、コントローラの交換は認めるものの、ロボット本体１やアライナー４におけるモータ１１単体の交換は認めずにエラーとすることにする。同様の理由により、エンコーダ１３に記憶される物理軸番号は、実際にそのエンコーダ１３に関連する駆動軸の物理軸番号と一致していなければならない。また、同一のロボット本体１に含まれるエンコーダ１３では装置固有データのシリアル番号が全て同じであるものとする。もちろん、他のロボット本体１に含まれるエンコーダ１３とは装置固有データのシリアル番号が異なるものとする。ロボット本体１と同時に使用されるアライナー４については、ロボット本体１側の装置固有データにおけるシリアル番号とアライナー４側の装置固有データにおけるシリアル番号とは同じであっても異なっていてもよい。
【００２８】
装置固有データのデータ構成について図２を用いて説明したが、装置固有データに格納される個体差パラメータとして、原点位置に対するオフセット値以外のものを用いてもよく、複数種類のパラメータを用いてもよい。さらに、不適切な交換などの検出のために、ロボットを個体として識別する情報として、シリアル番号以外の情報を用いてもよく、あるいは、シリアル番号に加えて他の情報を用いてもよい。
【００２９】
次に、ロボットコントローラ２を交換した際のロボットシステムにおける処理について説明する。本実施形態ではロボットコントローラ２は、機種ごとではなく制御対象のロボットのハードウェア識別子すなわちＨＷグループＩＤごとに用意されれば十分であるので、ロボットコントローラ２の記憶部２２には、ＨＷグループＩＤを示すデータと、そのＨＷグループＩＤの機種のロボットに共通な寸法や仕様を示す共通構成情報と、現在接続されているか直近に接続されていたロボット本体１（さらにはアライナー４）の個体識別データ及び個体差パラメータとが格納される。現在接続されているか直近に接続されていたロボット本体１（さらにはアライナー４）の個体識別データ及び個体差パラメータの代わりに初期値が格納されていてもよく、さらには、ロボットコントローラ２におけるコマンド操作によって個体識別データ及び個体差パラメータの部分を初期値にクリアできるようになっていてもよい。
【００３０】
図３及び図４は、ロボットシステムで実行される処理を示すフローチャートである。ここで示す処理は、電源投入時などにロボットコントローラ２がロボットシステムを起動する処理である。以下の説明において、ロボット本体１のみがロボットコントローラ２に接続されているときはロボット本体１の各駆動軸を有効軸と呼び、ロボット本体１とアライナー４の両方が接続されているときはロボット本体１とアライナー４の各駆動軸を有効軸と呼ぶ。ロボット本体１が接続されさらに必要に応じてアライナー４が接続された状態でこのロボットシステムの電源を投入すると、ロボットコントローラ２の制御部２１は、ステップ１０１において、各有効軸のエンコーダ１３から、そのエンコーダ１３の記憶部（ＥＥＰＲＯＭ）１４に格納されている装置固有データを読み込み、ステップ１０２において、全ての有効軸についてデータの読み込みが正常に終了したかどうかを判定する。正常に終了していない場合には、リアルタイムエラーが発生したものとして、制御部２１はロボットシステムの動作が終了させる。全有効軸のデータの読み込みが正常に終了した場合には、制御部２１は、ステップ１０３において、エンコーダ１３から読み込んだデータの中のロボットタスク番号が同じである軸の装置固有データにおいてシリアル番号が同一かどうかを判定する。シリアル番号が同一でない装置固有データがあることはモータ１１が交換されたことを意味するから、モータ交換エラーが発生したものとして、制御部２１はロボットシステムの動作が終了させる。
【００３１】
ステップ１０３においてモータ交換エラーが発生しなかった場合には、制御部２１は、ステップ１０４において、全ての有効軸において有効軸ごとにエンコーダ１３から読出されたＨＷグループＩＤが記憶部２２に予め記憶されているＨＷグループＩＤと一致するかどうかを判定する。一致しない場合には、ロボットコントローラ２が対象とするＨＷグループＩＤの機種以外のロボット本体１あるいはアライナー４がロボットコントローラ２に接続されていることになるので、機種不一致エラーが発生したものとして、制御部２１はロボットシステムの動作が終了させる。ステップ１０４においてＨＷグループＩＤが一致したときは、制御部２１は、ステップ１１１において、全有効軸について、エンコーダ１３から読み込んだ物理軸番号及びロボットタスク番号が、記憶部２２に予め記憶されている物理軸番号及びロボットタスク番号に一致しているかを判定する。ロボットコントローラ２が複数のエンコーダ１３から装置固有データを読み込むときは、予め定められた順番によってエンコーダ１３の一つずつからデータを読み込むが、このとき、モータ配線の誤接続などによって本来の順番とは異なる順番でデータを読み込んでしまうことがあり、この場合、物理軸番号あるいはロボットタスク番号の不一致が生じる。複数のエンコーダ１３から並列にデータを読み込む場合であっても、配線の誤接続があれば、物理軸番号あるいはロボットタスク番号の不一致が生じる。そこで物理軸番号あるいはロボットタスク番号の不一致が生じたときは、構成不一致エラーが発生したものとして、制御部２１はロボットシステムの動作が終了させる。
【００３２】
ステップ１１１において全ての有効軸について物理軸番号及びロボットタスク番号が一致したときは、制御部２１は、ステップ１１２において、全有効軸について、エンコーダ１３から読み込んだシリアル番号と記憶部２２に記憶されたシリアル番号とが一致するかどうかを判定する。ここで一致している場合には、ロボットコントローラ２もアライナー４も交換されていない場合であるので、次に制御部２１は、ステップ１１３において、全ての有効軸について記憶部２２に記憶されているオフセット値とエンコーダ１３から読み込んだオフセット値とが一致するかを判定する。ここで全ての有効軸に関してオフセット値が一致するときは、ロボットコントローラ２の記憶部２２に格納されているオフセット値すなわち個体差パラメータは適切なものであると判断できるので、制御部２１は、ステップ１１４において、ロボットシステムを正常起動して、システム起動の処理を終了する。システム起動の処理が終了すれば、ロボットコントローラ２は、既に作成されて記憶部２２に格納されているハードウェア定義情報ＨｗＤｅｆを用いてロボット本体１やアライナー４の制御を実行する。
【００３３】
ステップ１１３においてロボットコントローラ２の記憶部２２に予め格納されたオフセット値とエンコーダ１３から読み込んでオフセット値とが一致しないのは、モータ１１の再調整などを行ったがその結果がロボットコントローラ２側に反映されていない場合である。そこで制御部２１は、ステップ１１５において、エンコーダ１３から読み込んだオフセット値によって記憶部２２に格納されているオフセット値を書き換え、書き換え後のオフセット値に基づいてハードウェア定義情報ＨｗＤｅｆを生成して記憶部２２に格納し、処理を終了する。こののち、電源投入を再度行えば、そのときはステップ１０１からステップ１１２までの処理が実行され、引き続いてステップ１１３、ステップ１１４と処理が進行するので、書き換え後のオフセット値に基づいてロボットシステムが正常起動し、記憶部２２に格納されているハードウェア定義情報ＨｗＤｅｆに基づいてロボットが制御されることになる。
【００３４】
ステップ１１２においてシリアル番号が一致しないのは、ロボットコントローラ２の交換があったか、アライナー４の交換があったかのいずれかの場合である。そこで制御部２１は、ステップ１１２においてシリアル番号の不一致があったときに、ステップ１１６において、ロボットタスク番号から判別されるアライナー４の軸でのみシリアル番号の不一致となっているかどうかを判定する。アライナー４の軸でのみシリアル番号の不一致となっているときはアライナー４の交換と判断できるので、制御部２１は、ステップ１１７において、アライナー４の軸に関し、エンコーダ１３から読み込んだオフセット値によって記憶部２２に格納されているオフセット値を書き換え、共通構成情報と書き換え後のオフセット値とを用いてハードウェア定義情報ＨｗＤｅｆを生成して記憶部２２に格納し、処理を終了する。こののち、電源投入を再度行えば、書き換え後のオフセット値に基づいてロボットシステムが正常起動し、記憶部２２に格納されているハードウェア定義情報ＨｗＤｅｆによってアライナー４の制御が行われることになる。
【００３５】
ステップ１１６においてアライナー４の軸以外でもシリアル番号の不一致がある場合には、ロボットコントローラ２の交換があったと判断できるので、制御部２１は、ステップ１１８において、全有効軸に関し、エンコーダ１３から読み込んだシリアル番号及びオフセット値によって記憶部２２に格納されているシリアル番号及びオフセット値を書き換え、共通構成情報と書き換え後のオフセット値とを用いてハードウェア定義情報ＨｗＤｅｆを生成して記憶部２２に格納し、処理を終了する。電源投入を再度行えば、書き換え後のシリアル番号及びオフセット値に基づいてロボットシステムが正常起動し、記憶部２２に格納されているハードウェア定義情報ＨｗＤｅｆによってロボット本体１の制御が行われることになる。ロボット本体１（及びアライナー４）のエンコーダ１３から読み込んだシリアル番号（すなわち個体識別データ）とオフセット値（すなわち個体差パラメータ）とによって、ロボットコントローラ２の記憶部２２に格納されているシリアル番号とオフセット値とを書き換えることにより、ロボットコントローラ２は、書き換え後のオフセット値に基づいてハードウェア定義情報ＨｗＤｅｆを生成して記憶するので、その接続されるロボット本体１やアライナー４が交換された場合に交換後のロボット本体１やアライナー４に適合するものとなる。また、予備品であってその記憶部２２において個体識別データ（シリアル番号）と個体差パラメータ（オフセット値）に初期値が格納されている予備品のロボットコントローラ２についても、ここで示す処理を実行することによって、そのロボットコントローラ２に接続しているロボット本体１やアライナー４の制御に適したものとなる。
【００３６】
図５は、ここで説明した処理を説明する状態遷移図である。ロボットコントローラ２がその接続しているロボット本体１とアライナー４などの付属品とを制御するのに適した状態であることを正常状態と呼ぶ。正常状態においてロボットコントローラ２の交換が行われたときは、ロボットコントローラ２の交換が行われたことを示すイベントが起動時に上記のステップ１１８に示すように発生し、個体差パラメータがエンコーダ１３側からロボットコントローラ２の記憶部２２に自動的にコピーされ、正常状態に戻ることになる。その後、電源投入の動作を行えば正常状態に自動復帰することになる。同様に、アライナー４などの付属品を交換したときは、付属品交換が行われたことを示すイベントが起動時に上記のステップ１１７に示すように発生し、個体差パラメータがエンコーダ１３側からロボットコントローラ２の記憶部２２に自動的にコピーされ、正常状態に戻ることになる。これに対してモータ交換が行われた場合には、ステップ１０３に示すようにモータ交換エラーとなってロボットシステムの起動処理が異常終了し、ロボットシステムの起動が不可となる。モータ交換エラーから正常状態に復帰するためには、交換されたモータに対応する軸の再調整作業などのメンテナンス作業を実施する必要がある。ステップ１０４で判定される機種不一致エラーやステップ１０５で判定される構成不一致エラーは、いずれも、ロボット本体１やアライナー４さらにはロボットコントローラ２に記憶されている装置固有データにおけるパラメータ異常に分類されるものであり、パラメータ異常と判定された場合には、ロボットシステムの起動処理が異常終了し、ロボットシステムの起動が不可となる。パラメータ異常から正常状態に復帰するためには、正しい機種のロボットコントローラ２を使用する、誤配線を修正するなどを行って、正しいパラメータ設定となるようにする必要がある。
【００３７】
［第１の実施形態の効果］
第１の実施形態によれば、電源投入時などに、対象ロボット（ロボット本体１及びアライナー４）のエンコーダ１３に格納されている装置固有データを読み出してロボットコントローラ２に格納されている装置固有データを照合し、ロボットコントローラ２の交換が検出されたときには最新の個体差パラメータを対象ロボット側からロボットコントローラ２に読み込むので、同じ機種用のロボットコントローラ２、さらにはハードウェア識別子すなわちＨＷグループＩＤが同一である範囲内の異なる機種用のロボットコントローラを交換して使用することが可能になり、交換後のロボットコントローラ２を用いてその接続している対象ロボットに適した制御を実行できるようになる。また機種の不一致や構成の不一致が生じたとき、モータ交換が検出されたときには起動不可とすることによって、不適切な状態でロボット本体やアライナーが動作することを防ぐことができる。
【００３８】
［第２の実施形態］
上述した第１の実施形態では、ロボットコントローラ２には、共通構成情報として、特定の単一のＨＷグループＩＤに対するもののみが格納されているので、ＨＷグループＩＤごとにロボットコントローラ２を用意する必要がある。そうでなければ、図３に示すフローチャートのステップ１０４において、機種不一致エラーが発生することにある。しかしながら、ロボットの軸数や使用するモータの定格値に大きな違いなければ、ＨＷグループＩＤが異なる機種のロボットであっても同一のロボットコントローラ２によって制御できる可能性がある。そこで第２の実施形態のロボットシステムでは、ロボットコントローラ２における物理的制約の範囲内で、例えばロボットコントローラ２が制御できる最大の軸数や制御できるモータの最大定格の範囲内で、ロボットコントローラ２が２種類以上のＨＷグループＩＤの各機種のロボットを制御できるようにしている。図６は、第２の実施形態のロボットシステムの構成を示すブロック図である。
【００３９】
図６に示す第２の実施形態のロボットシステムは、図１に示すロボットシステムにおいて、異なるＨＷグループＩＤの機種のロボット本体１を同一のロボットコントローラ２が制御できるように、ロボットコントローラ２が接続するホスト装置５を備えている。ホスト装置５は、ロボットコントローラ２に対する上位装置である。ここではホスト装置５に対して１つのロボットコントローラ２が接続しているが、ホスト装置５には複数のロボットコントローラ２が接続してよい。特に、ネットワークを介してホスト装置５に対し複数のロボットコントローラ２が接続するように構成することにより、例えば工場内の全てのロボットコントローラ２に関してそのロボットコントローラ２が接続するロボットの機種を任意に変更できるようにすることができる。ロボット本体１やアライナー４については、第１の実施形態で説明したものと同じものが使用され、特に、記憶部１４に記憶される装置固有データは第１の実施形態のものと同一である。
【００４０】
ホスト装置５は、ロボットコントローラ２で使用するプログラム類を一括して管理するものであって一般的にはサーバ装置として構成されており、ホスト制御部５１とテンプレート格納部５２とを備えている。ホスト制御部５１は、ホスト装置５の全体を制御するものであって例えばオペレーティングシステムなどによって実現するものである。テンプレート格納部５２は、ロボットコントローラ２からの要求に応じてロボットコントローラ２に送信されるプログラムやデータを格納するものであるが、特に本実施形態では、複数のＨＷグループＩＤのそれぞれごとの汎用ハードウェア定義情報ＧＨｗＤｅｆを格納している。ホスト装置５に接続される可能性があるロボットコントローラ２に関し、それらのロボットコントローラ２ができるだけ多くの機種のロボットに対応できるように、ホスト装置５にはできるだけ多数のＨＷグループＩＤの各々の汎用ハードウェア定義情報ＧＨｗＤｅｆが用意されるようにする。汎用ハードウェア定義情報ＧＨｗＤｅｆは、ロボットコントローラ２においてハードウェア定義情報ＨｗＤｅｆを生成するときのテンプレートとなるものであり、ＨＷグループＩＤに対応する共通構成情報と個体差パラメータとを含むものである。ただし、テンプレート格納部５２に格納されるハードウェア定義情報ＨｗＤｅｆでは、ＨＷグループＩＤごとの共通構成情報と個体差パラメータとが別個に管理されており、個体差パラメータとして記憶される情報は、個体差パラメータの初期値であっても、バックアップのために特定のロボットコントローラ２から送られてきた個体差パラメータであってもよい。
【００４１】
図７は、第２の実施形態において、共通構成情報及び個体差パラメータがどこからロボットコントローラ２に読み込まれるかを示している。図７（ａ）は、ロボットコントローラ２に接続してるロボット本体１やアライナー４に変更がなかった場合を示している。このときは、ロボットコントローラ２の記憶部２２に既に読み込まれているハードウェア定義情報ＨｗＤｅｆによってロボットコントローラ２は動作する。図７（ｂ）は、ロボット本体１に接続するロボットコントローラを同一のＨＷグループＩＤ用のロボットコントローラに交換した場合を示している。このときは、ロボットコントローラ２では、新たに接続されたロボット本体１やアライナー４から個体差パラメータのみを読み込んで、記憶部２２内に格納されているハードウエア定義情報ＨｗＤｅｆの個体差パラメータを更新する。図７（ｃ）は、ロボット本体１に接続するロボットコントローラ２を他のＨＷグループＩＤ用のロボットコントローラ２と交換した場合を説明している。これは、ロボットコントローラ２に対し、異なるＨＷグループＩＤのロボット本体１を接続した場合と等価である。この場合は、ロボットコントローラ２は、新たに接続されたロボット本体１やアライナー４についての共通構成情報をホスト装置から読み込み、個体差パラメータについてはそのロボット本体１やアライナー４のエンコーダ１３から読み込む。そして、ロボットコントローラ２では、読み込んだ装置構成情報及び個体差パラメータによって記憶部２２内のハードウェア定義情報ＨｗＤｅｆすなわち共通構成情報及び個体差パラメータが更新される。
【００４２】
次に、ロボットコントローラ２を交換した際のロボットシステムにおける処理について説明する。ロボットコントローラ２の記憶部２２には、ハードウェア定義情報ＨｗＤｅｆが格納されるが、そのハードウェア定義情報ＨｗＤｅｆは、ロボットコントローラ２が現在対応しているＨＷグループＩＤに基づいて生成されたものであって、現在接続されているか直近に接続されていたロボット本体１についてのものである。さらに、ロボットコントローラ２の記憶部２２には、その格納するハードウェア定義情報ＨｗＤｅｆがどのロボットに対応するものかを示すために個体識別データも格納している。記憶部２２には、現在接続されているか直近に接続されていたロボット本体１（さらにはアライナー４）の個体識別データ及び個体差パラメータの代わりに初期値が格納されていてもよい。さらには、ロボットコントローラ２におけるコマンド操作によって個体識別データ及び個体差パラメータの部分を初期値にクリアできるようになっていてもよい。初期値としては、接続されたロボット本体１あるいはアライナー４のＨＷグループＩＤに基づいて、ホスト装置５の汎用ハードウェア定義情報ＧＨｗＤｅｆに含まれる個体差パラメータを用いてもよい。
【００４３】
図８は、電源投入時などにロボットコントローラ２がロボットシステムを起動する処理であって、第２の実施形態のロボットシステムで実行される処理を示すフローチャートである。図８におけるステップ１０１〜１０３，１１１の処理は、図３でのステップ１０１〜１０３，１１１の処理と同一であるから説明を省略する。また、ステップ１１１において構成不一致エラーとならなかった場合の処理として、図４のステップ１１２からの処理が実行される。ステップ１１２以降の処理も第１の実施形態の場合と同一であるから説明を省略する。
【００４４】
ステップ１０３においてモータ交換エラーとならなかった場合、ステップ１０４において、制御部２１は、全ての有効軸において有効軸ごとにエンコーダ１３から読出されたＨＷグループＩＤが記憶部２２に予め記憶されているＨＷグループＩＤと一致するかどうかを判定する。一致する場合には、第１の実施形態の場合と同様に、ステップ１１１に進む。ＨＷグループＩＤが一致しない場合は、第１の実施形態では機種不一致エラーとしていたが、この第２の実施形態では、ステップ１２１においてロボットコントローラ２は、操作者に対して機種不一致の旨を表示し、ステップ１２２において、操作者からのＡＬＬ  ＮＥＷコマンドの入力を待ち受ける。ＡＬＬ  ＮＥＷコマンドの入力があったら、制御部２１は、ステップ１２３において、エンコーダ１３側から取得したＨＷグループＩＤに基づいて、そのＨＷグループＩＤに対応する汎用ハードウェア定義情報ＧＨｗＤｅｆ、特にその汎用ハードウェア定義情報ＧＨｗＤｅｆに含まれる共通構成情報をホスト装置５からダウンロードして記憶部２２に格納し、ステップ１２４においてロボットシステムを再起動する。あるいは制御部２１は、操作者からの入力を待ち受けることなく自動的にＡＬＬ  ＮＥＷコマンドを実行し、その後、ロボットシステムを自動的に再起動してもよい。
【００４５】
ＡＬＬ  ＮＥＷコマンドの実行とシステムの再起動とにより、ロボットコントローラ２は、エンコーダ１３側から取得したＨＷグループＩＤの機種に適合したロボットコントローラとして機能することになる。その後、ロボットコントローラ２の制御部２１は、ステップ１０１からの処理を再度実行する。ステップ１０１からの処理を再度実行したときには、ステップ１０４において、エンコーダ１３側とロボットコントローラ２側のＨＷグループＩＤは一致するはずであるので、続いてステップ１１１の処理が実行され、同一のＨＷグループＩＤ用のロボットコントローラ２が交換された場合と同じ処理が実行されることになる。このようにして本実施形態では、ロボット本体１に対して異なるＨＷグループＩＤ用のロボットコントローラ２を接続することを可能にし、ＨＷグループＩＤに縛られないでロボットコンローラ２を交換することを可能にしている。逆に言えば、ロボットコントローラ２の物理的な制約の範囲内で、かつ、ホスト装置５において汎用ハードウェア定義情報ＧＨｗＤｅｆが用意されている限り、ロボットコントローラ２に対して異なるＨＷグループＩＤのロボット本体１やアライナー４を接続してそれらのロボット本体１やアライナー４を制御できることになる。
【００４６】
図９は、第２の実施形態に関してここで説明した処理を説明する状態遷移図である。ロボットコントローラ２がその接続しているロボット本体１とアライナー４などの付属品とを制御するのに適した状態であることを正常状態と呼ぶ。正常状態において、同一のＨＷグループＩＤ用のロボットコントローラ２の交換が行われたときは、ロボットコントローラ２の交換が行われたことを示すイベントが起動時に上記のステップ１１８に示すように発生し、個体差パラメータを含む装置固有データがエンコーダ１３側からロボットコントローラ２の記憶部２２に自動的にコピーされ、個体差パラメータによってハードウェア定義情報ＨｗＤｅｆが更新される。その後、電源投入の動作を行えば正常状態に自動復帰することになる。正常状態において、異なるＨＷグループＩＤ用のロボットコントローラ２の交換が行なわれたときは、そのことを示すイベントが起動時に上記のステップ１０４に示すように発生し、ＡＬＬ  ＮＥＷコマンドの入力によって、対応するＨＷグループＩＤ用の共通構成情報がロボットコントローラ２の記憶部２２に読み込まれる。その後、システムの再起動によって、同一機種のロボットコントローラが交換された状態に移行し、上述と同様に、装置固有データがロボットコントローラ２の記憶部２２に自動的にコピーされ、正常状態に復帰することになる。
【００４７】
アライナー４などの付属品を交換したときは、付属品交換が行われたことを示すイベントが起動時に上記のステップ１１７に示すように発生し、個体差パラメータがエンコーダ１３側からロボットコントローラ２の記憶部２２に自動的にコピーされ、正常状態に戻ることになる。これに対してモータ交換が行われた場合には、ステップ１０３に示すようにモータ交換エラーとなってロボットシステムの起動処理が異常終了し、ロボットシステムの起動が不可となる。モータ交換エラーから正常状態に復帰するためには、交換されたモータに対応する軸の再調整作業などのメンテナンス作業を実施する必要がある。ステップ１０５で判定される構成不一致エラーは、ロボット本体１やアライナー４さらにはロボットコントローラ２に記憶されている装置固有データにおけるパラメータ異常に分類されるものであり、パラメータ異常と判定された場合には、ロボットシステムの起動処理が異常終了し、ロボットシステムの起動が不可となる。パラメータ異常から正常状態に復帰するためには、誤配線を修正するなどして、正しいパラメータ設定となるようにする必要がある。
【００４８】
以上説明した第２の実施形態では、ステップ１０４において機種不一致となった場合に、ロボットコントローラ２は、テンプレート格納部５２を有するホスト装置５から、該当するＨＷグループＩＤ用の共通構成情報あるいは汎用ハードウェア定義情報ＧＨｗＤｅｆを読み込んでいる。しかしながら、ロボットコントローラ２にテンプレート格納部を設け、あらかじめ複数のＨＷグループＩＤのそれぞれに対応した共通構成情報や汎用ハードウェア定義情報ＧＨｗＤｅｆをこのテンプレート格納部に記憶させておき、機種不一致となった場合にロボットコントローラ２内のテンプレート格納部から共通構成情報あるいは汎用ハードウェア定義情報ＧＨｗＤｅｆを読み込む構成とすることも可能である。しかしながら、既存のロボットとは構成が異なり、したがって新規のＨＷグループＩＤが付与されるような新機種のロボットに対してロボットコントローラ２を対応させるためには、ホスト装置５を設けてホスト装置５からロボットコントローラ２に共通構成情報あるいは汎用ハードウェア定義情報ＧＨｗＤｅｆをダウンロードさせる構成の方が好ましい。
【００４９】
第２の実施形態では、ロボット本体１とアライナー４などの付属品とにそれぞれＨＷグループＩＤを独立して割り当てている。ＨＷグループＩＤの個数によっては、ロボット本体１と付属品（アライナー４など）との可能な組み合わせの数が膨大なものとなりうる。また、ロボット本体１にＨＷグループＩＤを割り当てるのではなく、マニピュレータとハンドとに別々にＨＷグループＩＤを割り当てることも可能であるが、そのような場合にはさらに組み合わせの数が爆発的に増大する。そのような組み合わせの中には、好ましくない、あるいは想定されない組み合わせもあり得る。例えば、クリーンルーム内で使用することを想定したロボット本体１と、悪環境下での重量物用であって発塵やオイルミストの発生の防止機構を備えてないアライナー４との組み合わせは、通常は考えられない。言い換えれば、同一の機構の複数機種のロボット本体１と同一の機構の複数機種のアライナー４との間の組み合わせにおいて、好ましくない機種の組み合わせが存在することになる。さらには、ロボット本体１のＨＷグループＩＤとアライナー４のＨＷグループＩＤとの組み合わせで好ましくない組み合わせが存在することがある。たとえば、ロボット本体１のハンドの到達範囲の関係で、ある特定のＨＷグループＩＤのアライナー４を使用できない場合がある。そこで本実施形態では、許される機種の組み合わせ、許されるＨＷグループＩＤを記述した機種構成テーブルをロボットコントローラ２の記憶部２２に格納し、機種構成テーブルに組み合わせとなる場合には、ロボットコントローラ２から警告を発してその組み合わせではロボットシステムを動作させないようにすることができる。
【００５０】
図１０は、機種構成テーブルの構成の一例を示している。上述したようにロボット本体１のタスク番号が１であり、付属品であるアライナー４のタスク番号が２であって、タスクごとにＨＷグループＩＤが付与されることが分かる。この機種構成テーブルには、追加の付属品も考慮して、タスク番号が３以降であるエントリも設けられている。ここに示す例では、ロボット本体１については、マニピュレータとハンドとは同一のＨＷグループＩＤで管理するものの、ロボットタイプ（機種）はマニピュレータとハンドとに別々に定められている。一番左の列のロボットタイプは、出荷時に付与されるロボットタイプであって便宜上記載されている。出荷時のロボットタイプは、ロボット本体１においてもアライナー４においても記憶部１４には格納されていないものであり、したがって、機種構成テーブルを用いた組み合わせの良否判断には使用されないものである。すなわち、図に示す機種構成テーブルにおいて、太線で囲まれた部分の各行に記載があれば、マニピュレータとハンドとの組み合わせも含めてロボット本体１とアライナー４との組み合わせが好ましい組み合わせとして判断されることになる。このように機種構成テーブルを用いて機種単位で組み合わせを管理することによって、ロボット本体１とアライナー４とが好ましくない組み合わせて使用されることを防ぐことができる。
【００５１】
［第２の実施形態の効果］
本実施形態によれば、上述した第１の実施形態の効果に加え、異なるＨＷグループＩＤのロボットコントローラの交換が検出されたときに、ロボットコントローラ２が、対応する共通構成情報をホスト装置５から読み込むことによって、あるいは既に記憶しているそのＨＷグループＩＤ用の共通構成情報を利用することによって、そのロボットコントローラ２を現在接続している対象ロボットの機種に適合するものとすることができる、という効果がある。その後、同一のＨＷグループＩＤ用のロボットコントローラの交換が検出されたときと同じ処理を実行するので、異なるハードウェア識別子用の、すなわち異なるＨＷグループＩＤ用のロボットコントローラを交換して使用することも可能になる。結局、本実施形態によれば、ホスト装置あるいはロボットコントローラ２に共通構成情報が格納されているＨＷグループＩＤの機種のロボットについては、機種ごとあるいは同一機構ごとという制約にとらわれずに任意のロボットに対して同じロボットコントローラを接続することが可能となる。
【符号の説明】
【００５２】
１…ロボット本体、２…ロボットコントローラ、４…アライナー、１１…モータ、１２…ドライバ、１３…エンコーダ、１４，２２…記憶部、２１…制御部，５…ホスト装置，５１…ホスト制御部，５２…テンプレート格納部。
【図１】
2020179486.tif 000003
【図２】
2020179486.tif 000004
【図３】
2020179486.tif 000005
【図４】
2020179486.tif 000006
【図５】
2020179486.tif 000007
【図６】
2020179486.tif 000008
【図７】
2020179486.tif 000009
【図８】
2020179486.tif 000010
【図９】
2020179486.tif 000011
【図１０】
2020179486.tif 000012