(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025121444
(43)【公開日】2025-08-20
(54)【発明の名称】ロボット制御装置及びロボットシステム
(51)【国際特許分類】
B25J 9/18 20060101AFI20250813BHJP
【FI】
B25J9/18
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2024016814
(22)【出願日】2024-02-07
(71)【出願人】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100123788
【弁理士】
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【弁理士】
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】奥村 宏克
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707JS02
3C707LV20
(57)【要約】
【課題】ロボット制御装置で使用するファームウェアのバージョンやロボット制御装置に格納されたロボットの個体差に関するデータなどによらずに、ロボットに接続されるロボット制御装置を容易に交換できるようにする。
【解決手段】ロボットの制御に必要な一群のプログロム及びデータを必須データセットとして、ロボット制御装置の起動時に、ロボットに設けられた不揮発性メモリに既に格納されている必須データセットとロボット制御装置の不揮発性記憶部に格納されている必須データセットとを照合し(ステップ104-106)、不一致であるときにロボット側の必須データセットによってロボット制御装置に格納されている必須データセットを上書きする(ステップ121)。
【選択図】
図2
【特許請求の範囲】
【請求項1】
不揮発性の第1記憶部を備えるロボットに対して交換可能に接続されて前記ロボットを制御するロボット制御装置であって、
プロセッサと、
前記プロセッサに接続するRAMと、
前記ロボットの制御に必要な一群のプログロム及びデータである必須データセットを保持する、不揮発性メモリからなる第2記憶部と、
を有し、
起動時に、前記第1記憶部に既に格納されている前記必須データセットと前記第2記憶部に格納されている前記必須データセットとを照合する照合処理と、前記照合処理の結果、不一致であるときに、前記第1記憶部に格納されている前記必須データセットによって前記第2記憶部に格納されている前記必須データセットを上書きする上書き処理と、を実行する、ロボット制御装置。
【請求項2】
前記ロボット制御装置によってロボットの制御を行っているときに前記必須データセットに変更があったときに、変更後の前記必須データセットを前記第2記憶部に格納するとともに前記ロボットに転送して前記第1記憶部に格納する、請求項1に記載のロボット制御装置。
【請求項3】
前記必須データセットには、前記ロボット制御装置の起動時に前記第2記憶部から前記RAMに読み込まれて前記RAMに常駐するファームウェアが含まれ、
前記ファームウェアは、前記照合処理を実施し、前記照合処理の結果、不一致であるときに、前記上書き処理を行って前記ロボット制御装置を再起動する、請求項1または2に記載のロボット制御装置。
【請求項4】
前記照合処理は、前記第1記憶部に格納されている前記必須データセットに対して算出したハッシュ値と前記第2記憶部に格納されている前記必須データセットに対して算出したハッシュ値とを比較する処理である、請求項1または2に記載のロボット制御装置。
【請求項5】
前記必須データセットは複数のブロックから構成され、前記ブロックごとに前記ハッシュ値が算出して前記照合処理において使用する、請求項4に記載のロボット制御装置。
【請求項6】
前記上書き処理において、前記照合処理の結果、不一致であると判定された前記ブロックに関してのみ前記第1記憶部に格納されている前記必須データセットによって前記第2記憶部に格納されている前記必須データセットを上書きする、請求項5に記載のロボット制御装置。
【請求項7】
ロボットと、前記ロボットに対して交換可能に接続されて前記ロボットを制御するロボット制御装置とを有するロボットシステムであって、
前記ロボットは、前記ロボット制御装置からアクセス可能な不揮発性の第1記憶部を備え、
前記ロボット制御装置は、プロセッサと、前記プロセッサに接続するRAMと、前記ロボットの制御に必要な一群のプログロム及びデータである必須データセットを保持する、不揮発性メモリからなる第2記憶部と、を備え、
前記ロボット制御装置の起動時に、前記ロボット制御装置において、前記第1記憶部に既に格納されている前記必須データセットと前記第2記憶部に格納されている前記必須データセットとを照合する照合処理と、前記照合処理の結果、不一致であるときに、前記第1記憶部に格納されている前記必須データセットによって前記第2記憶部に格納されている前記必須データセットを上書きする上書き処理と、が実行される、ロボットシステム。
【請求項8】
前記ロボット制御装置によってロボットの制御を行っているときに前記必須データセットに変更があったときに、変更後の前記必須データセットが前記第2記憶部に格納されるとともに前記ロボットに転送されて前記第1記憶部に格納される、請求項7に記載のロボットシステム。
【請求項9】
前記必須データセットには、前記ロボット制御装置の起動時に前記第2記憶部から前記RAMに読み込まれて前記RAMに常駐するファームウェアが含まれ、
前記ロボット制御装置において前記ファームウェアは、前記照合処理を実施し、前記照合処理の結果、不一致であるときに、前記上書き処理を行って前記ロボット制御装置を再起動する、請求項7または8に記載のロボットシステム。
【請求項10】
必須データセットは、同一の機構のロボットであれば共通であって個体差を無視できる情報である共通構成情報と、同一の機構のロボットであっても個体差が無視できないパラメータである個体差パラメータとをさらに含む、請求項9に記載のロボットシステム。
【請求項11】
前記照合処理は、前記第1記憶部に格納されている前記必須データセットに対して算出したハッシュ値と前記第2記憶部に格納されている前記必須データセットに対して算出したハッシュ値とを比較する処理である、請求項7または8に記載のロボットシステム。
【請求項12】
前記必須データセットは複数のブロックから構成され、前記ブロックごとに前記ハッシュ値が算出して前記照合処理において使用する、請求項11に記載のロボットシステム。
【請求項13】
前記上書き処理において、前記照合処理の結果、不一致であると判定された前記ブロックに関してのみ前記第1記憶部に格納されている前記必須データセットによって前記第2記憶部に格納されている前記必須データセットを上書きする、請求項12に記載のロボットシステム。
【請求項14】
前記必須データセットを構成する前記複数のブロックの1つは、前記ロボットの教示データである、請求項13に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、産業用ロボット(以下、単に「ロボット」と呼ぶ)に関し、特に、ロボットの制御を行うロボット制御装置と、ロボットとロボット制御装置とを組み合わせて構成されるロボットシステムとに関する。
【背景技術】
【0002】
ロボットは、一般に、相互に連結されたアームとそれらの連結部を駆動するモータとからなるマニピュレータと、マニピュレータに取り付けられたハンド(ツールあるいはエンドエフェクタなどともいう)とを備えている。このようなロボットを制御するためにロボット制御装置が用いられる。ロボットとそのロボットを制御するロボット制御装置とによってロボットシステムが構成される。マニピュレータからハンドを取り外せないようなロボットにおいては、マニピュレータにハンドが含まれていると考えてもよく、その場合はロボットはマニピュレータだけで構成されていると考えてもよい。ロボット制御装置は、外部から入力する指令に応じてロボットの各軸のモータを制御する。モータの回転を制御するために、ロボットでは各軸のモータに対してその回転位置を検出するエンコーダが取り付けられており、エンコーダで取得した回転位置情報はロボット制御装置に随時送信される。
【0003】
ロボットを構成するマニピュレータ及びハンドでは、ロボットの機種ごとに、アームやハンドの数や寸法、それらの接続関係、搭載されるモータの仕様などが異なっている。これらのロボットの構成情報は、一般にロボット制御装置に予め記憶されることとなっており、そのため、ロボットの機種ごとにロボット制御装置が用意されることになる。したがってロボット制御装置は、それが対象とする機種以外の機種のロボットをそのままでは制御できない。ある機種用のロボット制御装置を用いて他の機種のロボットを制御しようとするときには、作業者によってロボットの機種を確認し、確認された機種に適合したロボット構成情報にロボット制御装置内の情報を入れ換える作業が必要である。そのため、ロボットの機種ごとにロボット制御装置が用意されることになる。さらに同一機種のロボットであってもロボットごとにどうしても個体差があり、ロボット制御装置によって制御するときは個体差に応じた制御を行なう必要がある。個体差の例として、原点位置に対するオフセット値がある。マニピュレータやハンドにはその動作の基準となる姿勢である原点位置が定められているが、原点位置となるときにモータごとのエンコーダが示す回転位置データは、モータやエンコーダの取り付け上のばらつきなどにより、マニピュレータやハンドの個体ごとに異なる値となってしまう。そこでロボットの組み立て完了時などに個体差を実測し、その後、個体差についてのデータは、ロボット制御装置の記憶部に格納される。このため、同じ機種のロボットを対象とするロボット制御装置であっても、同一機種のロボットを交換して接続する場合には精度の高い制御を行うことができなくなり、ロボット制御装置の再調整が必要となる。このため、同一機種のロボットを交換して接続することは容易ではない。
【0004】
しかしながら、ロボットを使用する場合には、ロボットを使用する作業の効率化を図るとともに、工程の変更や障害発生時などに柔軟に対応できるようにするために、同一機種のロボットに対して当該機種用のロボット制御装置を交換して接続したい、という要望がある。さらに、機種は異なっているものの、ロボット本体としての構成及び制御という観点からは同一の機種といえる、という場合がある。例えば、設置場所に応じてロボットの外装塗料が異なっているときに異なる機種としている場合がある。このような場合には、ロボットとしては異機種であっても同一のロボット制御装置を交換して接続できることが望まれる。
【0005】
ロボット制御装置に接続されるロボットを交換することを可能にする試みとして特許文献1は、ロボットの制御に必要な操作及び設定パラメータを可搬の記憶装置に格納してロボット制御装置に取り外し可能に取付けるようにすることを開示している。特許文献1に記載された技術では、ロボット制御装置に接続されるロボットを交換したときあるいはロボットの一部のアームなどを交換したときに、ロボット制御装置に取付られる記憶装置を、交換後のロボットのパラメータを格納した記憶装置に取り換える。特許文献2は、ロボットに設けられる補助記憶装置にそのロボットの幾何学的誤差データ及びID(識別情報)を格納しておき、接続されるロボットが交換されるたびにロボット制御装置がロボットから幾何学的誤差データ及びIDを読み出して照合することを開示している。ロボット制御装置は、照合の結果、ロボットの交換があったと判定したときは、読み出した幾何学的誤差データに基いて、ロボット制御装置に格納されている動作プログラム中の角度データを修正する。
【0006】
特許文献3は、ロボットに記憶されるデータ量を最小限としつつロボットに対してロボット制御装置を交換して接続することを容易にするために、同一の機構を有するロボットに対して同一ハードウェア識別子を付与した上で、ロボットにはその固有の個体差パラメータとハードウェア識別子とを格納し、ロボット制御装置にはハードウェア識別子に対応する共通構成情報とを格納することを開示している。共通構成情報とは、同一の機構のロボットであれば共通であって個体差を無視できる情報であり、一方、個体差パラメータは、同一の機構のロボットであっても個体差が無視できないパラメータのことである。ロボット制御装置は、接続されているロボットから個体差パラメータとハードウェア識別子とを読み出して、読み出したハードウェア識別子と共通構成情報に対応するハードウェア識別子とを照合し、一致する場合に、記憶している共通構成情報と読み出した個体差パラメータとに基づいてハードウェア定義情報を生成し、ハードウェア定義情報によってロボットを制御する。特許文献3に記載された技術では、個体差パラメータとハードウェア識別子とがロボットにおいて各軸のモータに付属するエンコーダ内の記憶部に格納されるので、ロボットの個体を識別する情報もその記憶部に格納することとすれば、ロボットにおけるモータの交換などを検出することもできる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特表2001-509441号公報
【特許文献2】特開2012-011494号公報
【特許文献3】特開2020-179486号公報
【特許文献4】特開2003-103482号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1-3に記載された技術によれば、ロボットから見てそのロボットに接続するロボット制御装置を容易に交換することができる。しかしながら、ロボット制御装置の交換を常に行うことができるわけではない。例えば、特許文献3に記載された技術の場合、ロボットの機種に対応した共通構成情報を備えていないロボット制御装置への交換を行うことができない。また、ロボットに実行させる作業内容などに応じてロボットの制御のためにロボット制御装置において実行されるアプリケーションソフトウェアを切り替えることもあるが、そのような場合には、所望のアプリケーションソフトウェアがインストールされていないロボット制御装置への切り替えを行うことはできない。ロボット制御装置のファームウェアは、同じ機種のロボット制御装置であってもその生産時期などに応じてバージョンが異なることがあり、ファームウェアのバージョンが異なるロボット制御装置に交換した場合に、ロボットが実行できる機能などに差が生ずるおそれがある。
【0009】
本発明の目的は、ロボット制御装置におけるファームウェアのバージョンや、ロボット制御装置に格納されているアプリケーションソフトウェア及びデータによらずに、ロボットに接続するロボット制御装置の交換を容易に行うことができるロボット制御装置と、そのようなロボット制御装置を備えたロボットシステムとを提供することにある。
【課題を解決するための手段】
【0010】
本発明の一態様のロボット制御装置は、不揮発性の第1記憶部を備えるロボットに対して交換可能に接続されてロボットを制御するロボット制御装置であって、プロセッサと、プロセッサに接続するRAMと、ロボットの制御に必要な一群のプログロム及びデータである必須データセットを保持する、不揮発性メモリからなる第2記憶部と、を有し、起動時に、第1記憶部に既に格納されている必須データセットと第2記憶部に格納されている必須データセットとを照合する照合処理と、照合処理の結果、不一致であるときに、第1記憶部に格納されている必須データセットによって第2記憶部に格納されている必須データセットを上書きする上書き処理と、を実行する。
【0011】
本発明の一態様のロボットシステムは、ロボットと、ロボットに対して交換可能に接続されてロボットを制御するロボット制御装置とを有するロボットシステムであって、ロボットは、ロボット制御装置からアクセス可能な不揮発性の第1記憶部を備え、ロボット制御装置は、プロセッサと、プロセッサに接続するRAMと、ロボットの制御に必要な一群のプログロム及びデータである必須データセットを保持する、不揮発性メモリからなる第2記憶部と、を備え、ロボット制御装置の起動時に、ロボット制御装置において、第1記憶部に既に格納されている必須データセットと第2記憶部に格納されている必須データセットとを照合する照合処理と、照合処理の結果、不一致であるときに、第1記憶部に格納されている必須データセットによって第2記憶部に格納されている必須データセットを上書きする上書き処理と、が実行される。
【発明の効果】
【0012】
本発明によれば、ロボット制御装置におけるファームウェアのバージョンや、ロボット制御装置に格納されているアプリケーションソフトウェア及びデータによらずに、ロボットに接続するロボット制御装置の交換を容易に行うことができるようになる。
【図面の簡単な説明】
【0013】
【
図1】本発明の実施の一形態のロボットシステムの構成を示すブロック図である。
【
図2】ロボット制御装置の動作を説明するフローチャートである。
【発明を実施するための形態】
【0014】
次に、本発明を実施するための形態について、図面を参照して説明する。
図1は、本発明の実施の一形態のロボットシステムを示すブロック図である。図示されるロボットシステムは、マニピュレータ及びハンドからなるロボット10と、ロボット10を制御するロボット制御装置20とを備えており、ロボット10とロボット制御装置20とは接続ケーブル30により取り外し可能に接続されている。接続ケーブル30の一端にはロボット10との接続のためのコネクタ31が取り付けられており、他端にはロボット制御装置20との接続のためのコネクタ32が取り付けられている。
【0015】
ロボット10は、複数の駆動軸を有するものであって、駆動軸ごとに、サーボモータであってその駆動軸を駆動するモータ11と、ロボット制御装置20からの指令に基づいてモータ11を駆動制御するドライバ12と、モータ11の回転軸に取り付けられてその回転軸の回転位置を検出するエンコーダ13とを備えている。図示していないが、モータ11には減速機やプーリーなども付属している。エンコーダ13の出力は、サーボ制御のためにドライバ12にフィードバックされるとともに、ロボット制御装置20にも送られる。エンコーダ13には、その電源切断時にもモータ11の回転位置などを記憶して保持できるように、電池でバックアップされる小容量のメモリが設けられていてもよい。
【0016】
各軸のドライバ12及びエンコーダ13はいずれもロボット制御装置20に接続してロボット制御装置20との間で信号の送受信を行う必要がある。このときに、ロボット10におけるドライバ12に接続する配線やエンコーダ13に接続する配線を軸ごとにばらばらにロボット制御装置20との間で接続するように構成すると、ロボット10とロボット制御装置20との間で誤接続が起こりやすい。そこでこの実施形態では、接続ケーブル30として多芯のケーブルを使用してロボット10の全ての軸のドライバ12及びエンコーダ13に接続する配線をこの接続ケーブル30内に収容するとともに、ロボット10にはインタフェース基板15を設けている。インタフェース基板15は、接続ケーブル30との電気的な接続のために、各軸のドライバ12に接続する配線と各軸のエンコーダ13に接続する配線とを集約する基板である。インタフェース基板15には、フラッシュメモリなどの大容量の不揮発性メモリからなる記憶部16が設けられている。ロボット制御装置20は、接続ケーブル30を介して記憶部16に対してアクセスしてデータの読み書きを行うことができる。記憶部16は第1記憶部に該当する。
【0017】
ロボット制御装置20は、ソフトウェアを実行することにより、外部装置50から入力する指令に応じてロボット10の軌道を決定し、この軌道に沿ってロボット10が移動するようにロボット10の制御を行う。ロボット制御装置20は、マイクロプロセッサあるいはマイクロコンピュータとして構成されたプロセッサ21と、フラッシュメモリなどの不揮発性メモリによって構成されてプロセッサ21から見て補助記憶装置として機能する不揮発性記憶部22と、プロセッサ21に接続されてプロセッサ21から直接アクセスすることができる主記憶装置として機能するRAM(ランダムアクセスメモリ)23とを備えている。不揮発性記憶部22は第2記憶部に該当する。図には示されていないが、ロボット10に対するインタフェースや外部装置50に対するインタフェースもロボット制御装置20に設けられている。外部装置50は、例えば、上位装置として設けられてロボット制御装置20に指令を出力するホスト装置であってもよいし、ロボット10の教示(ティーチング)に用いられるティーチングペンダントであってもよく、目的に応じて各種の装置が外部装置50としてロボット制御装置20に接続される。
【0018】
ロボット制御装置20はソフトウェアに基づいて動作し、ロボット10の制御を実行する。ロボット制御装置20においてプロセッサ21は、RAM23に展開されて常駐しているファームウェアを実行することにより、外部装置50からの指令とロボット10からフィードバックされた各軸のエンコーダ13からの信号とに基づいて、各軸のドライバ12に出力すべき信号(具体的には位置指令及び/または速度指令)を生成する。状況に応じては、ファームウェアの制御下で実行可能なアプリケーションソフトウェアもRAM23に読み込んで、このアプリケーションソフトウェアをプロセッサ21が実行することによってロボット10の制御が行われるようにしてもよい。ファームウェアもアプリケーションソフトウェアも不揮発性記憶部22に格納されており、ロボット制御装置20が起動または再起動したときに、不揮発性記憶部22からRAM23に転送され、その後、プロセッサ21によって実行される。
【0019】
ロボット10の制御を行うためには、ロボット10のハードウェア条件を示すパラメータ、すなわちハードウェア定義情報も必要である。ハードウェア定義情報も不揮発性記憶部22に予め格納されており、ファームウェアあるいはアプリケーションソフトウェアによってRAM23上に読み出され、プロセッサ21は、RAM23上に読み出されたハードウェア定義情報を利用してロボット10の制御に必要な演算を実行する。ロボット10のハードウェア定義情報を構成する一群のパラメータは、共通構成情報と個体差パラメータとに区分される。共通構成情報は、同一の機構のロボットであれば共通であって個体差を無視できる情報であり、例えば、ロボットにおける軸数、ロボットを構成するアームやハンドの長さ、接続関係、モータの仕様などの、ロボットの構成を記述する1組のデータである。一方、個体差パラメータは、同一の機構のロボットであっても個体差が無視できないパラメータのことであり、例えば、原点位置に対するエンコーダごとのオフセット値を含んでいる。ロボット10を教示して得たデータすなわち教示データも不揮発性記憶部22に格納され、教示データに基づいてロボット10の動きを制御するときに不揮発性記憶部22からRAM23に読み出されて、ロボット10の制御に必要な演算を行うときに使用される。
【0020】
本実施形態のロボットシステムでは、ロボット10の制御を行うためにロボット10に接続されるロボット制御装置20を交換した場合に、交換後のロボット制御装置20を用いてもロボット10を正常に制御できるようにしている。そのために、ロボット10において不揮発性メモリからなる記憶部16に、ロボット制御装置20の不揮発性記憶部22に格納されているプログラム及びデータのうち、ロボット10の制御に必要なプログラム及びデータのコピーを格納する。以下ではロボット10の制御に必要な一群のプログラム及びデータのことを必須データセットと呼ぶ。必須データセットは、例えば、ロボット制御装置20のファームウェアとロボット10のハードウェア定義情報を含んでいる。アプリケーションソフトウェアを介してロボット10の制御を行うときは、そのアプリケーションソフトウェアも必須データセットに含まれる。ロボット制御装置20を用いてロボット10の教示を行う場合には、教示によって得られた教示データも必須データセットに含まれるようにしてもよい。そして、ロボット10に接続されるロボット制御装置20が交換されたかどうかを判定する照合処理と、ロボット制御装置20の交換があったと照合処理において判定したときに、ロボット10の記憶部16に格納されている必須データセットによってその交換後のロボット制御装置20の不揮発性記憶部22に格納されている必須データセットを上書きする上書き処理とを実行し、その後、そのロボット制御装置20を再起動させる。
【0021】
交換後のロボット制御装置20では、再起動することによって、上書き処理によってロボット10から読み込まれた交換前のロボット制御装置20での必須データセットが、RAM23に読み込まれる。したがって交換後のロボット制御装置20は、ロボット10から読み込んだ交換前のロボット制御装置20での必須データセットによってロボット10を制御する。すなわち本実施形態では、交換後のロボット制御装置20が交換前のロボット制御装置20と同一のプログラム及びデータによってロボット10を制御するので、ロボット10が実行できる機能や性能などに差を生じさせることなくロボット10に接続するロボット制御装置20を交換することができる。なお、ロボット10に接続するロボット制御装置20を交換するときは、ロボット制御装置20は起動していない状態にある。
【0022】
照合処理は、ロボット10に接続するロボット制御装置20に交換があったかどうかを判定する処理であるが、実際には、ロボット制御装置20の起動時においてロボット制御装置20が主体となって実行する処理である。ロボット制御装置20は、その起動時に、自装置の不揮発性記憶部22に格納されている必須データセットとロボット10の記憶部16に格納されている必須データセットとを比較し、一致していればロボット制御装置20の交換はなかったと判断でき、一致していなければ、ロボット制御装置20の交換があって自装置は交換後のロボット制御装置である、と判断することができる。ロボット制御装置20では、起動時に不揮発性記憶部22からRAM23に読み込まれたファームウェアをプロセッサ21が実行することにより、上述した照合処理及び上書き処理が行われ、さらに再起動処理も行われる。そのため、本実施形態のロボットシステムを構成するロボット制御装置20において使用されるファームウェアは、そのバージョンによらず、照合処理から再起動までの処理を実行できるように構成されている必要がある。
【0023】
以下、
図2に示すフローチャートを利用して、本実施形態のロボットシステムの動作をさらに詳しく説明する。ここではロボット10の記憶部16には、既にそのロボット10の制御に必要な一群のプログラム及びデータすなわち必須データセットが格納されているものとする。ここで新たなロボット制御装置20をロボット10に接続してロボット制御装置20の電源を投入すると、ロボット制御装置20のプロセッサ21は、ステップ101においてそのプロセッサに関して予め定められている手順によってブートローダを起動する。ブートローダは、プロセッサ21に付属する小容量の不揮発性メモリあるいは不揮発性記憶部22の既定アドレスに格納されている。ブートローダが立ち上がると、ステップ102において、不揮発性記憶部22に格納されているファームウェアがRAM23にコピーされ、ブートローダの実行が終了する。この段階で、ファームウェアはRAM23に常駐した状態となる。続いてステップ103においてプロセッサ21は、RAM23に読み込まれて常駐しているファームウェアの実行を開始する。ブートローダがプロセッサ21内に格納されてその書き替えが不可能な場合があることと、ファームウェアの実行開始後はブートローダは実行されずにロボット10の制御にも影響を与えないこととから、ブートローダは、必須データセットには含まれていなくてもよい。
【0024】
プロセッサ21がファームウェアを実行することにより、不揮発性記憶部22に格納されている必須データセットとロボット10の記憶部16に格納されている必須データセットとが一致するかを照合する照合処理が行われる。ここでは照合処理を短時間で実行するために、必須データセットに対して算出するハッシュ値が一致するかどうかによって照合処理を実施する。ファームウェアにより、ステップ104において自装置の不揮発性記憶部22に格納されている必須データセットのハッシュ値が取得され、ステップ105においてロボット10の記憶部16に格納されている必須データセットのハッシュ値が取得され、ステップ106において両方のハッシュ値が一致するかどうかが判定される。ハッシュ値が一致すれば、不揮発性記憶部22に格納されている必須データセットとロボット10の記憶部16に格納されている必須データセットとが一致すると判断でき、照合処理が終了する。当然のことながら、不揮発性記憶部22に格納されている必須データセットのハッシュ値の算出に用いるハッシュ関数と、記憶部16に格納されている必須データセットのハッシュ値の算出に用いるハッシュ関数とは同一である必要がある。一例として、必須データセットを1つの圧縮ファイル(例えばzip形式のファイル)にまとめた上でその圧縮ファイルのハッシュ値を算出することができる。ステップ104,105においてハッシュ値を取得するときは、その都度、格納されている必須データセットに対してハッシュ関数を適用してハッシュ値を求めてもよい。あるいは、不揮発性記憶部22あるいは記憶部16に必須データセットを格納するときにハッシュ値も算出して必須データセットとともにハッシュ値を格納し、ステップ104,105においてハッシュ値を取得するときにその事前に格納したハッシュ値を読み出すようにしてもよい。
【0025】
ステップ106においてハッシュ値が一致したときは、ステップ107において、プロセッサ21は、既にRAM23に読み込まれている必須データセットを用いてロボット10の制御を実行する。このロボット10の制御を行っているときに必須データセット、すなわちロボット10の制御に必要なプログラム及びデータのいずれかが変更されることがある。例えば、ロボット10の教示を行えば教示データが変更され、ロボット10のキャリブレーションを行えば、個体差データが変更される。ファームウェアの更新やアプリケーションデータの更新あるいは置き換えが行われることもある。ロボット10の制御を実施しているときに必須データセットの変更があったときは、変更後の必須データセットが不揮発性記憶部22に書き込まれる。また、ロボット10の記憶部16に格納されている必須データセットでもこの変更が反映される必要がある。ファームウェアはそのような必須データセットの変更を監視しており、ステップ108において、ロボット制御装置20に格納されている必須データセットに変更があったかどうかを判定し、変更があった場合には、ステップ109において、不揮発性記憶部22に格納されている変更後の必須データセットをロボット10に転送して、記憶部16内に格納させ、その後、ステップ110の処理に移行する。一方、ステップ108において必須データセットの変更がなかったと判定したときは、ファームウェアは、そのままステップ110の処理に移行する。ステップ110に移行した段階ではロボット制御装置20によるロボット10の制御は続行している。ステップ110では、ロボット10の制御を終了する指示がロボット制御装置20に与えられたかどうかが判定される。ステップ110において終了の指示が入力していないと判定したときは、ロボット10の制御の続行のために、ステップ107からの処理が繰り返される。ステップ110において終了の指示が入力していると判定したときは、そのまま、ロボット制御装置20を停止させる。
【0026】
ステップ106においてハッシュ値が一致しなかったときは、ロボット制御装置20の交換が行われた場合であり、次に、上書き処理が実行される。上書き処理では、ファームウェアによって、ステップ121においてロボット10の記憶部16に格納されている必須データセットがロボット制御装置20に転送され、既に不揮発性記憶部22に格納されている必須データセットが、ロボット10から転送されてきた必須データセットによって置き換えられる。その後、ステップ122においてファームウェアによってロボット制御装置20の再起動が行われる。ロボット制御装置20が再起動されると、プロセッサ21はブートローダをまず実行するから、ステップ101からの処理が繰り返される。
【0027】
以上説明したロボットシステムでは、ロボット10を制御するために必要なプログラム及びデータである必須データセットをロボット制御装置20の不揮発性記憶部22に格納してRAM23に読み込むことができるようにするとともに、必須データセットのバックアップをロボット10内の記憶部16に保持している。そして、ロボット10に接続するロボット制御装置20が交換されたときに、交換後のロボット制御装置20の不揮発性記憶部22に対して、バックアップとしてロボット10に記憶されている必須データセットを書き戻すことにより、交換後のロボット制御装置20は、交換前のロボット制御装置20と同一の動作をするようになる。その結果、本実施形態によれば、交換後のロボット制御装置20のファームウェアのバージョンや交換後のロボット制御装置20に格納されていたアプリケーションソフトウェア及びデータによらずに、ロボット10に接続するロボット制御装置20の交換を容易に行うことができるようになる。
【0028】
以上説明した例では、照合処理を行うために必須データセットのハッシュ値を取得している。必須データセットの全体から1つのハッシュ値を算出してもよいが、必須データブロックを複数のブロックに分割してブロックごとにハッシュ値を算出し、照合処理でのハッシュ値の比較もブロックごとに行うようにしてもよい。例えば、1つの必須データセットがファームウェアとアプリケーションソフトウェアとハードウェア定義情報と教示データなどのように複数種類のプログラムやデータで構成されているときは、それらのプログラムやデータの各々をブロックとすることができる。必須データセットを複数のブロックで構成した場合、ロボット制御装置20でのハッシュ値とロボット10でのハッシュ値とが異なっているブロックに関してのみ上書き処理を行えばよいから、上書き処理のためにプログラムやデータを転送するための時間を短縮することができる。あらかじめハッシュ値を算出して不揮発性記憶部22や記憶部16に格納するときは、変更のあったブロックだけハッシュ値の再計算を行えばよいので、ハッシュ値に関する計算負荷も軽減できる。一般に教示データは頻繁に変更されるのに対しファームウェアやハードウェア定義情報の変更頻度は低いから、教示データを1つのブロックとし、他のプログラムやデータは別の1または複数のブロックとすれば、ハッシュ値の計算負荷が軽減するとともに、ロボット制御装置20の起動時にロボット10からロボット制御装置20に転送されるデータは、多くの場合は教示データだけとなり、その分、転送時間も短縮することができる。
【0029】
以上、本発明を実施するための構成について説明したが、上記の技術は、以下のような構成をとることが可能である。
【0030】
(1) 不揮発性の第1記憶部を備えるロボットに対して交換可能に接続されて前記ロボットを制御するロボット制御装置であって、
プロセッサと、
前記プロセッサに接続するRAMと、
前記ロボットの制御に必要な一群のプログロム及びデータである必須データセットを保持する、不揮発性メモリからなる第2記憶部と、
を有し、
起動時に、前記第1記憶部に既に格納されている前記必須データセットと前記第2記憶部に格納されている前記必須データセットとを照合する照合処理と、前記照合処理の結果、不一致であるときに、前記第1記憶部に格納されている前記必須データセットによって前記第2記憶部に格納されている前記必須データセットを上書きする上書き処理と、を実行する、ロボット制御装置。
【0031】
(2) 前記ロボット制御装置によってロボットの制御を行っているときに前記必須データセットに変更があったときに、変更後の前記必須データセットを前記第2記憶部に格納するとともに前記ロボットに転送して前記第1記憶部に格納する、(1)に記載のロボット制御装置。
【0032】
(3) 前記必須データセットには、前記ロボット制御装置の起動時に前記第2記憶部から前記RAMに読み込まれて前記RAMに常駐するファームウェアが含まれ、
前記ファームウェアは、前記照合処理を実施し、前記照合処理の結果、不一致であるときに、前記上書き処理を行って前記ロボット制御装置を再起動する、(1)または(2)に記載のロボット制御装置。
【0033】
(4) 前記照合処理は、前記第1記憶部に格納されている前記必須データセットに対して算出したハッシュ値と前記第2記憶部に格納されている前記必須データセットに対して算出したハッシュ値とを比較する処理である、(1)から(3)のいずれかに記載のロボット制御装置。
【0034】
(5) 前記必須データセットは複数のブロックから構成され、前記ブロックごとに前記ハッシュ値が算出して前記照合処理において使用する、(4)に記載のロボット制御装置。
【0035】
(6) 前記上書き処理において、前記照合処理の結果、不一致であると判定された前記ブロックに関してのみ前記第1記憶部に格納されている前記必須データセットによって前記第2記憶部に格納されている前記必須データセットを上書きする、(5)に記載のロボット制御装置。
【0036】
(7) ロボットと、前記ロボットに対して交換可能に接続されて前記ロボットを制御するロボット制御装置とを有するロボットシステムであって、
前記ロボットは、前記ロボット制御装置からアクセス可能な不揮発性の第1記憶部を備え、
前記ロボット制御装置は、プロセッサと、前記プロセッサに接続するRAMと、前記ロボットの制御に必要な一群のプログロム及びデータである必須データセットを保持する、不揮発性メモリからなる第2記憶部と、を備え、
前記ロボット制御装置の起動時に、前記ロボット制御装置において、前記第1記憶部に既に格納されている前記必須データセットと前記第2記憶部に格納されている前記必須データセットとを照合する照合処理と、前記照合処理の結果、不一致であるときに、前記第1記憶部に格納されている前記必須データセットによって前記第2記憶部に格納されている前記必須データセットを上書きする上書き処理と、が実行される、ロボットシステム。
【0037】
(8) 前記ロボット制御装置によってロボットの制御を行っているときに前記必須データセットに変更があったときに、変更後の前記必須データセットが前記第2記憶部に格納されるとともに前記ロボットに転送されて前記第1記憶部に格納される、(7)に記載のロボットシステム。
【0038】
(9) 前記必須データセットには、前記ロボット制御装置の起動時に前記第2記憶部から前記RAMに読み込まれて前記RAMに常駐するファームウェアが含まれ、
前記ロボット制御装置において前記ファームウェアは、前記照合処理を実施し、前記照合処理の結果、不一致であるときに、前記上書き処理を行って前記ロボット制御装置を再起動する、(7)または(8)に記載のロボットシステム。
【0039】
(10) 必須データセットは、同一の機構のロボットであれば共通であって個体差を無視できる情報である共通構成情報と、同一の機構のロボットであっても個体差が無視できないパラメータである個体差パラメータを含んでいる、(7)から(9)のいずれかに記載のロボットシステム。
【0040】
(11) 前記照合処理は、前記第1記憶部に格納されている前記必須データセットに対して算出したハッシュ値と前記第2記憶部に格納されている前記必須データセットに対して算出したハッシュ値とを比較する処理である、(7)から(10)のいずれかに記載のロボットシステム。
【0041】
(12) 前記必須データセットは複数のブロックから構成され、前記ブロックごとに前記ハッシュ値が算出して前記照合処理において使用する、(10)に記載のロボットシステム。
【0042】
(13) 前記上書き処理において、前記照合処理の結果、不一致であると判定された前記ブロックに関してのみ前記第1記憶部に格納されている前記必須データセットによって前記第2記憶部に格納されている前記必須データセットを上書きする、(12)に記載のロボットシステム。
【0043】
(14) 前記必須データセットを構成する前記複数のブロックの1つは、前記ロボットの教示データである、(13)に記載のロボットシステム。
【0044】
(1),(7)に示す構成によれば、ロボットに対して接続されるロボット制御装置の交換があったことを検出したときに、バックアップとしてロボットに格納されている必須データセットによって交換後のロボット制御装置の必須データセットを上書きするので、ロボット制御装置の動作が交換前後で同一となることを保証でき、ロボットに接続するロボット制御装置の交換を容易に行うことができる。
【0045】
(2),(8)に示す構成によれば、ロボット制御装置によってロボットの制御を行っているときに教示などによって必須データセットが変更になったときに、その変更をバックアップとしてロボットに格納されている必須データセットにも反映できるので、利用者が意図した変更が必須データセットにあったときにもロボットに接続するロボット制御装置20の交換を容易に行うことができる。
【0046】
(3),(9)に示す構成によれば、必須データセットにロボット制御装置のファームウェアが含まれる場合に、ロボットに接続されるロボット制御装置を、ファームウェアのバージョンの違いなどを意識しないで交換することが可能になる。
【0047】
(4),(11)に示す構成によれば、必須データセットに対して算出されるハッシュ値を利用することにより、必須データセットの照合処理を短時間に実施することが可能になる。
【0048】
(5),(12)に示す構成によれば、必須データセットにおいてブロックごとに更新頻度が異なる場合に、更新のなかったブロックについてはハッシュ値を再計算する必要がなくなるので、ハッシュ値の計算負荷が軽減する。
【0049】
(6),(13)に示す構成によれば、ハッシュ値の照合の結果、一致しているブロックに関してはロボット制御装置において必須データセットの上書きが行われないので、上書き処理時のデータ転送量を低減できる。
【0050】
(10)に示す構成によれば、共通構成情報と個体差パラメータとを分けて管理できるので、ロボットの制御に必要なデータの管理が容易になるとともに、構成が異なるロボットに対して用意されているロボット制御装置も交換対象とすることが可能になる。
【0051】
(14)に示す構成によれば、更新頻度が高いと想定される教示データを1つのブロックとして扱うことにより、多くの場合、教示データについてのハッシュ値の算出と教示データの転送のみを行えば十分となるので、処理負荷が軽減する。
【符号の説明】
【0052】
10…ロボット、11…モータ、12…ドライバ、13…エンコーダ、15…インタフェース基板、16…記憶部、20…ロボット制御装置、21…プロセッサ、22…不揮発性記憶部、23…RAM、50…外部装置。