(57)【要約】【課題】機械に関する所定情報が正しくないことを検出することが可能な機械の制御装置を提供する。【解決手段】機械の制御装置１０は、対象物に対して所定の作業を行う機械の動作を制御する制御装置であって、機械に関する所定情報を記憶する記憶部１１と、所定情報に対する誤り検出符号を求める誤り検出符号算出部１３と、記憶部１１に所定情報を記憶する際に、誤り検出符号を所定情報ごとに関連付けて記憶する誤り検出符号記憶制御部１４と、記憶部１１から所定情報を読み出すときに、所定情報に関連付けて記憶した誤り検出符号に基づいて、所定情報に誤りがあるか否かを検出する誤り検出部１５とを備える。【選択図】図２
2020098487.tif 000002
【特許請求の範囲】
【請求項１】
対象物に対して所定の作業を行う機械の動作を制御する制御装置であって、
前記機械に関する所定情報を記憶する記憶部と、
前記所定情報に対する誤り検出符号を求める誤り検出符号算出部と、
前記記憶部に所定情報を記憶する際に、前記誤り検出符号を前記所定情報ごとに関連付けて記憶する誤り検出符号記憶制御部と、
前記記憶部から前記所定情報を読み出すときに、前記所定情報に関連付けて記憶した前記誤り検出符号に基づいて、前記所定情報に誤りがあるか否かを検出する誤り検出部と、
を備える、機械の制御装置。
【請求項２】
前記所定情報は、前記機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報のうちの少なくとも１つである、請求項１に記載の機械の制御装置。
【請求項３】
前記所定情報は、前記機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報の中からユーザによって選択された情報である、請求項２に記載の機械の制御装置。
【請求項４】
前記誤り検出部は、前記機械の動作制御の前に、前記誤り検出符号に基づいて前記所定情報に誤りがあるか否かを検出する、請求項１〜３のいずれか１項に記載の機械の制御装置。
【請求項５】
前記誤り検出符号算出部は、前記誤り検出部によって読み出された所定情報が前記記憶部に記憶される際に前記誤り検出符号を計算した方法と同じ方法で誤り検出符号を再計算し、
前記誤り検出部は、再計算された誤り検出符号と、読み出した所定情報に関連付けて記憶部に記憶した前記誤り検出符号とが一致するか否かに基づいて、前記読み出した所定情報に誤りがあるか否かを検出する、
請求項１〜４のいずれか１項に記載の機械の制御装置。
【請求項６】
前記誤り検出符号記憶制御部は、前記誤り検出符号を、前記所定情報を記憶する前記記憶部、又は前記記憶部とは異なる別の記憶部に記憶する、請求項１〜５のいずれか１項に記載の機械の制御装置。
【請求項７】
前記誤り検出部によって前記所定情報に誤りがあることが検出された場合に、前記所定情報に誤りがあることを外部に報知する報知制御部を更に備える、請求項１〜６のいずれか１項に記載の機械の制御装置。
【請求項８】
前記誤り検出部によって前記所定情報に誤りがあることが検出された場合に、前記機械の動作を停止させる停止制御部を更に備える、請求項１〜７のいずれか１項に記載の機械の制御装置。
【請求項９】
前記誤り検出部によって前記所定情報に誤りがあることが検出されない場合にのみ、前記所定情報に基づく前記機械の動作制御を行う、請求項１〜８のいずれか１項に記載の機械の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット又は工作機械等の機械の動作を制御する制御装置に関する。
【背景技術】
【０００２】
例えばロボットの制御装置として、メモリ上又はファイル中に記録された位置情報又は座標情報に従って、ロボットの動作を制御する装置がある。
例えば特許文献１及び２には、メモリに予め記憶されたロボットの動作制御のための教示データ（例えば移動経路、すなわち位置情報）に基づいてロボットの動作プログラムを作成し、動作プログラムに基づく位置指令及び／又は速度指令に基づいてロボットの動作を制御するロボット制御装置が開示されている。
【０００３】
また、例えば外部の上位制御装置から、位置指令及び／又は速度指令を含む動作プログラムが入力され、この動作プログラムと、メモリに予め記憶されたロボット座標系又はツール座標系（ロボットに取り付けられたツールの座標系）の座標情報とに基づいて、ロボットの動作を制御するロボット制御装置がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−８８１７５号公報
【特許文献２】特開２０１１−１５２５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、外部からの攻撃、ソフトウェアの不具合等の要因により、メモリ上又はファイル中に記録された位置情報又は座標情報（機械に関する所定情報）が正しくない情報になることがある。すると、ロボット（機械）の動作に正しくない制御が行われ（例えば、ロボットが正しくない位置に移動し）、人又は周辺装置に危害を加えてしまうことがある。
【０００６】
本発明は、機械に関する所定情報が正しくないことを検出することが可能な機械の制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
（１）  本発明に係る機械の制御装置（例えば、後述のロボット制御装置１０）は、対象物（例えば、後述のワークＷ）に対して所定の作業を行う機械（例えば、後述のロボット２）の動作を制御する制御装置であって、前記機械に関する所定情報を記憶する記憶部（例えば、後述する記憶部１１）と、前記所定情報に対する誤り検出符号を求める誤り検出符号算出部（例えば、後述の誤り検出符号算出部１３）と、前記記憶部に所定情報を記憶する際に、前記誤り検出符号を前記所定情報ごとに関連付けて記憶する誤り検出符号記憶制御部（例えば、後述の誤り検出符号記憶制御部１４）と、前記記憶部から前記所定情報を読み出すときに、前記所定情報に関連付けて記憶した前記誤り検出符号に基づいて、前記所定情報に誤りがあるか否かを検出する誤り検出部（例えば、後述の誤り検出部１５）とを備える、機械の制御装置。
【０００８】
（２）  （１）に記載の機械の制御装置において、前記所定情報は、前記機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報のうちの少なくとも１つであってもよい。
【０００９】
（３）  （２）に記載の機械の制御装置において、前記所定情報は、前記機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報の中からユーザによって選択された情報であってもよい。
【００１０】
（４）  （１）から（３）のいずれか１項に記載の機械の制御装置において、前記誤り検出部は、前記機械の動作制御の前に、前記誤り検出符号に基づいて前記所定情報に誤りがあるか否かを検出してもよい。
【００１１】
（５）  （１）から（４）のいずれか１項に記載の機械の制御装置において、前記誤り検出符号算出部は、前記誤り検出部によって読み出された所定情報が前記記憶部に記憶される際に前記誤り検出符号を計算した方法と同じ方法で誤り検出符号を再計算してもよく、前記誤り検出部は、再計算された誤り検出符号と、読み出した所定情報に関連付けて記憶部に記憶した前記誤り検出符号とが一致するか否かに基づいて、前記読み出した所定情報に誤りがあるか否かを検出してもよい。
【００１２】
（６）  （１）から（５）のいずれか１項に記載の機械の制御装置において、前記誤り検出符号記憶制御部は、前記誤り検出符号を、前記所定情報を記憶する前記記憶部に記憶してもよいし、又は前記記憶部とは異なる別の記憶部に記憶してもよい。
【００１３】
（７）  （１）から（６）のいずれか１項に記載の機械の制御装置は、前記誤り検出部によって前記所定情報に誤りがあることが検出された場合に、前記所定情報に誤りがあることを外部に報知する報知制御部を更に備えてもよい。
【００１４】
（８）  （１）から（７）のいずれか１項に記載の機械の制御装置は、前記誤り検出部によって前記所定情報に誤りがあることが検出された場合に、前記機械の動作を停止させる停止制御部を更に備えてもよい。
【００１５】
（９）  （１）から（８）のいずれか１項に記載の機械の制御装置は、前記誤り検出部によって前記所定情報に誤りがあることが検出されない場合にのみ、前記所定情報に基づく前記機械の動作制御を行ってもよい。
【発明の効果】
【００１６】
本発明によれば、機械に関する所定情報が正しくないことを検出することが可能な機械の制御装置を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態に係るロボット制御装置を備えるロボットシステムの構成を示す図である。
【図２】本実施形態に係るロボット制御装置の構成を示す図である。
【図３】本実施形態の記憶部における記憶領域の一部を模式的に示す図であって、本実施形態の所定情報及び誤り検出符号を模式的に示す図である。
【図４】本実施形態の他の記憶部における記憶領域の一部を模式的に示す図であって、本実施形態の他の所定情報及び誤り検出符号を模式的に示す図である。
【図５】従来の記憶部における記憶領域の一部を模式的に示す図であって、従来の所定情報を模式的に示す図である。
【発明を実施するための形態】
【００１８】
以下、添付の図面を参照して本発明の実施形態の一例について説明する。なお、各図面において同一又は相当の部分に対しては同一の符号を附すこととする。
【００１９】
図１は、本実施形態に係るロボット制御装置を備えるロボットシステムの構成を示す図である。図１に示すロボットシステム１は、ロボット（機械）２とロボット制御装置１０とを備える。ロボットシステム１は、例えば、ワーク（対象物）Ｗのハンドリング又は加工などの所定の作業を行うシステムである。
【００２０】
ロボット２は、６軸垂直多関節型又は４軸垂直多関節型等の多関節型ロボットである。ロボット２のアーム３の先端部には、ハンド又はツールが取り付けられている。
ロボット２は、複数の駆動軸をそれぞれ駆動する複数のサーボモータを有する。サーボモータはロボット制御装置１０により駆動制御され、サーボモータの駆動制御によりロボット２及びアーム３の先端部の位置及び姿勢が制御される。これにより、ロボット２は、ワークＷのハンドリング又は加工などの所定の作業を行う。
【００２１】
各サーボモータにはエンコーダが設けられている。エンコーダは、サーボモータの軸回りの回転角度及び回転速度を検出することにより、ロボット２のアーム３の先端部の位置及び移動速度を検出する。検出された位置及び移動速度は位置フィードバック及び速度フィードバックとして利用される。
【００２２】
ロボット制御装置１０は、ロボット２の動作制御のためのソフトウェアを実行し、ロボット２の動作を制御する。以下、ロボット制御装置１０について詳細に説明する。
【００２３】
図２は、本実施形態に係るロボット制御装置１０の構成を示す図である。ロボット制御装置１０は、記憶部１１と、動作制御部１２と、誤り検出符号算出部１３と、誤り検出符号記憶制御部１４と、誤り検出部１５と、報知制御部１６と、停止制御部１７とを備える。
【００２４】
記憶部１１は、例えばＥＥＰＲＯＭ等の書き換え可能なメモリ、又は例えばＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）等の書き換え可能なディスクである。記憶部１１がメモリの場合、記憶部１１は、区切られた記憶領域ごとに、後述する所定情報を記憶する。記憶部１１がディスクの場合、記憶部１１は、分割されたファイルごとに、後述する所定情報を記憶する。
【００２５】
ロボット制御装置１０（記憶部１１を除く）は、例えば、ＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field‐Programmable Gate Array）等の演算プロセッサで構成される。ロボット制御装置１０の各種機能は、例えば記憶部に格納された所定のソフトウェア（プログラム、アプリケーション）を実行することで実現される。ロボット制御装置１０の各種機能は、ハードウェアとソフトウェアとの協働で実現されてもよい。
【００２６】
記憶部１１は、ロボット２に関する所定情報を記憶する。ロボット２に関する所定情報とは、ロボット２の動作制御のための位置情報、速度情報、及びロボット座標系又はツール座標系（ロボット２のアーム先端部に取り付けられたツールの座標系）の座標情報（機械座標系の座標情報）のうちの少なくとも１つである。ロボット２に関する所定情報は、例えば教示操作盤を介してユーザによって予め教示される。
【００２７】
（第１例）
第１例では、記憶部１１は、ロボット２の動作制御のための位置情報（例えば、ロボット２の移動経路、すなわち位置指令）及び速度情報（例えば、一定速度、すなわち速度指令）を記憶する。記憶部１１は、これらの情報を、例えばロボット制御装置１０のためのソフトウェアによって予め定められたアドレスに対応する記憶領域（又はファイル）ごとに記憶する。
【００２８】
（第２例）
第２例では、記憶部１１は、ロボット座標系又はルール座標系の座標情報（例えば、座標値）を記憶する。記憶部１１は、これらの情報を、例えばロボット制御装置１０のためのソフトウェアによって予め定められたアドレスに対応する記憶領域（又はファイル）ごとに記憶する。
【００２９】
動作制御部１２は、記憶部１１に記憶された所定情報に基づいてロボット２の動作を制御する。
【００３０】
（第１例）
第１例では、動作制御部１２は、例えばロボット制御装置１０のためのソフトウェアによって予め定められたアドレスに対応する記憶領域（又はファイル）に記憶された位置情報（例えば、ロボット２の移動経路）及び速度情報（例えば、一定速度）を読み出す。動作制御部１２は、読み出した位置情報及び速度情報に基づいてロボット２の動作プログラムを作成する。動作制御部１２は、作成した動作プログラムに基づく位置指令（移動経路）及び速度指令（一定速度）、ロボット２からの位置フィードバック及び速度フィードバックに基づいて、ロボット２の動作を制御する。
【００３１】
（第２例）
第２例では、動作制御部１２は、例えば外部の上位制御装置から、ロボット２の動作プログラム、すなわち位置指令及び速度指令を取得する。また、動作制御部１２は、例えばロボット制御装置１０のためのソフトウェアによって予め定められたアドレスに対応する記憶領域（又はファイル）に記憶された座標情報を読み出す。動作制御部１２は、動作プログラムに基づく位置指令及び速度指令、ロボット座標系又はツール座標系の座標情報、ロボット２からの位置フィードバック及び速度フィードバックに基づいて、ロボット２の動作を制御する。
【００３２】
ここで、外部からの攻撃、ソフトウェアの不具合等の要因により、記憶部１１に記憶された所定情報が正しくない情報になることがある。例えば、記憶部１１に記憶されている所定情報が正しくない情報になってしまう原因として、以下のことが考えられる。
（１）記憶部１１の該当する記憶領域（又はファイル）が、別のソフトウェア又はハードウェアの不良等により破壊される。
（２）ソフトウェアの不具合により、誤ったアドレスに対応する記憶領域（又はファイル）の情報を所定情報として読み込んでしまう。例えば図５に示すように、正しいアドレスに対応する記憶領域（実線領域）の所定情報ではなく、誤ったアドレスに対応する記憶領域（破線領域）の情報を読み込んでしまう。
（３）ソフトウェアの不具合により、未初期化の記憶領域（又はファイル）の情報を所定情報として読み込んでしまう。
すると、ロボット２の動作に正しくない制御が行われ（例えば、ロボット２が正しくない位置に移動し）、人又は周辺装置に危害を加えてしまうことがある。
【００３３】
そこで、本実施形態では、ロボット制御装置１０は、誤り検出符号算出部１３と、誤り検出符号記憶制御部１４と、誤り検出部１５と、報知制御部１６と、停止制御部１７とを備える。
【００３４】
誤り検出符号算出部１３は、所定情報ごとに誤り検出符号を計算する。例えば、誤り検出符号算出部１３による誤り検出符号の計算は、記憶部１１に所定情報が記憶又は更新される際に行われる。誤り検出符号の計算手法としては、ＣＲＣコード、ハッシュ値、チェックサム、又はＭＤ５などの公知の手法が用いられればよい。
【００３５】
誤り検出符号記憶制御部１４は、記憶部１１に所定情報が記憶又は更新される際、誤り検出符号算出部１３によって計算された誤り検出符号を所定情報ごとに関連付けて、記憶部１１に記憶させる。例えば、誤り検出符号記憶制御部１４は、誤り検出符号を、予め定められた方法で求められたアドレスに対応する記憶領域（又はファイル）に記憶する。誤り検出符号記憶制御部１４は、誤り検出符号を、例えば図３に示すように、所定情報を記憶した記憶領域の隣りの記憶領域に記憶してもよいし、図４に示すように、所定情報を記憶した記憶領域から一定バイトオフセットさせた記憶領域に記憶してもよい。
これにより、記憶部１１は、誤り検出符号を所定情報ごとに関連付けて記憶する。なお、誤り検出符号記憶制御部１４は、所定情報を記憶する記憶部１１とは異なる別の記憶部に記憶してもよい。
【００３６】
誤り検出部１５は、動作制御部１２が記憶部１１から所定情報を読み出すとき、この所定情報に関連付けされて記憶された誤り検出符号も合わせて読み出す。誤り検出部１５は、動作制御部１２によるロボット２の動作制御の前に（換言すれば、所定情報を使う前に）、読み出した誤り検出符号に基づいて、読み出した所定情報に誤りがあるか否かを検出する。
【００３７】
例えば、誤り検出符号算出部１３によって、読み出した所定情報に基づいて、この所定情報が記憶部１１に記憶又は更新される際に誤り検出符号を計算した方法と同じ方法で整合用誤り検出符号を再計算する。誤り検出部１５は、この整合用誤り検出符号と読み出した誤り検出符号とが一致するか否か、すなわち整合性が取れているか否か、を確認する。誤り検出部１５は、再計算した整合用誤り検出符号と読み出した誤り検出符号とが一致しない場合、すなわち整合性が取れていない場合、読み出した所定情報に誤りがあることを検出する。
【００３８】
報知制御部１６は、誤り検出部１５によって所定情報に誤りがあることが検出された場合、読み出した所定情報に誤りがあることを外部のユーザに報知する。報知制御部１６は、例えばディスプレイ等の表示装置を用いて報知を行う。
【００３９】
停止制御部１７は、誤り検出部１５によって所定情報に誤りがあることが検出された場合、動作制御部１２で用いられる所定情報が正しくないので、動作制御部１２によるロボット２の動作制御を停止させる。
【００４０】
なお、再計算した整合用誤り検出符号と読み出した誤り検出符号とが一致する場合、すなわち整合性が取れている場合、動作制御部１２で用いられる所定情報が正しいので、動作制御部１２によるロボット２の動作制御を実行する。
【００４１】
また、誤り検出を行う所定情報は、ロボット２の動作制御のための位置情報、速度情報、及びロボット座標系又はツール座標系の座標情報の中からユーザによって選択されてもよい。
【００４２】
以上説明したように、本実施形態のロボット制御装置１０によれば、ロボット２に関する所定情報を記憶部１１に記憶又は更新する際に、誤り検出符号を所定情報ごとに関連付けて記憶し（誤り検出符号記憶制御部１４）、記憶部１１から所定情報を読み出すときに、読み出した所定情報に関連付けて記憶した誤り検出符号に基づいて、読み出した所定情報に誤りがあるか否かを検出する（誤り検出部１５）。これにより、外部からの攻撃、ソフトウェアの不具合等の要因により、記憶部１１に記憶されたロボット２に関する所定情報が正しくない情報になったことを検出することができる。
【００４３】
例えば、
（１）記憶部１１の該当する記憶領域（又はファイル）が、別のソフトウェア又はハードウェアの不良等により破壊された場合、高い確率で、再計算した整合用誤り検出符号と読み出した誤り検出符号との整合性が取れず、読み出した所定情報に誤りがあることを検出することができる。
（２）ソフトウェアの不具合により、誤ったアドレスに対応する記憶領域（又はファイル）の情報を所定情報として読み込んだ場合、高い確率で、再計算した整合用誤り検出符号と読み出した誤り検出符号との整合性が取れず、読み出した所定情報に誤りがあることを検出することができる。
（３）フトウェアの不具合により、未初期化の記憶領域（又はファイル）の情報を所定情報として読み込んだ場合、高い確率で、再計算した整合用誤り検出符号と読み出した誤り検出符号との整合性が取れず、読み出した所定情報に誤りがあることを検出することができる。ただし、ここで誤りが検出できるのは未初期化の位置情報から誤り検出符号を計算して記憶していない場合に限られる。
【００４４】
ところで、同じ情報を２つ用い、これらの情報の整合性により、何れか一方の情報が誤りであることを検出する比較的に簡易な誤り検出手法が知られている（ミラーリング）。しかし、ロボット又は工作機械等の位置情報及び速度情報では、例えば「０」が連続することがある。この場合、未初期化の場合と区別できないことが予想される。この点に関し、本実施形態によれば、未初期化の場合を区別することができる。
【００４５】
なお、本実施形態のロボット制御装置１０では、公知の誤り検出訂正符号を用いることにより、誤りを検出したときに、誤り訂正を行ってもよい。
【００４６】
また、本実施形態のロボット制御装置１０によれば、誤り検出部１５によって所定情報に誤りがあることが検出された場合、読み出した所定情報に誤りがあることを外部のユーザに報知する（報知制御部１６）。これにより、本実施形態のロボット制御装置１０によれば、何らかの要因により、記憶部１１に記憶されたロボット２に関する所定情報が正しくない情報になっても、ロボット２の移動量を最小限に抑制することができる。その結果、ロボット２の動作に正しくない制御が行われること（例えば、ロボット２が正しくない位置に移動すること）を抑制することができ、人又は周辺装置に危害を加えてしまうことを抑制することができる。
【００４７】
また、本実施形態のロボット制御装置１０によれば、誤り検出部１５によって所定情報に誤りがあることが検出された場合、動作制御部１２によるロボット２の動作制御を停止させる（停止制御部１７）。或いは、誤り検出部１５によって所定情報に誤りがあることが検出されない場合にのみ、動作制御部１２による所定情報に基づくロボット２の動作制御を行うようにしてもよい。これにより、本実施形態のロボット制御装置１０によれば、何らかの要因により、記憶部１１に記憶されたロボット２に関する所定情報が正しくない情報になった場合に、ロボット２の予期しない動作を抑制することができる。その結果、人又は周辺装置に危害を加えてしまうことを抑制することができる。
【００４８】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、種々の変更及び変形が可能である。例えば、上述した実施形態では、ロボットの動作を制御するロボットシステムを例示した。しかし、本発明はこれに限定されず、対象物に対して所定の作業を行う種々の機械（ロボット、工作機械等）の動作を制御する種々の制御システムに適用可能である。
【符号の説明】
【００４９】
１  ロボットシステム
２  ロボット
３  アーム
１０  ロボット制御装置（機械の制御装置）
１１  記憶部
１２  動作制御部
１３  誤り検出符号算出部
１４  誤り検出符号記憶制御部
１５  誤り検出部
１６  報知制御部
１７  停止制御部
【図１】
2020098487.tif 000003
【図２】
2020098487.tif 000004
【図３】
2020098487.tif 000005
【図４】
2020098487.tif 000006
【図５】
2020098487.tif 000007