(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】機械の制御装置
(51)【国際特許分類】
G05B 19/042 20060101AFI20231003BHJP
B25J 19/06 20060101ALI20231003BHJP
【FI】
G05B19/042
B25J19/06
(21)【出願番号】P 2018236561
(22)【出願日】2018-12-18
【審査請求日】2021-10-20
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】並木 勇太
(72)【発明者】
【氏名】藁科 文和
【審査官】大古 健一
(56)【参考文献】
【文献】特開平8-237801(JP,A)
【文献】特開2017-167704(JP,A)
【文献】特開2016-18292(JP,A)
【文献】特開2013-211049(JP,A)
【文献】特開2016-192172(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04 -19/05
B25J 19/06
(57)【特許請求の範囲】
【請求項1】
対象物に対して所定の作業を行う機械の動作を制御する制御装置であって、
前記機械に関する所定情報を記憶する記憶部と、
前記記憶部に所定情報を記憶する際に、前記所定情報に対する誤り検出符号を求める誤り検出符号算出部と、
前記記憶部に所定情報を記憶する際に、前記誤り検出符号を前記所定情報ごとに関連付けて記憶する誤り検出符号記憶制御部と、
前記記憶部から前記所定情報を読み出すときに、前記所定情報に関連付けて記憶した前記誤り検出符号に基づいて、前記所定情報に誤りがあるか否かを検出する誤り検出部と、
を備え、
前記所定情報は、前記機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報のうちの少なくとも1つであり、
前記記憶部は、前記所定情報を、区切られた記憶領域ごとに記憶し、
前記誤り検出符号記憶制御部は、前記誤り検出符号を、前記所定情報を記憶した記憶領域とは異なる他の記憶領域に記憶
し、
前記誤り検出符号算出部は、前記誤り検出部によって読み出された所定情報が前記記憶部に記憶される際に前記誤り検出符号を計算した方法と同じ方法で誤り検出符号を再計算し、
前記誤り検出部は、再計算された誤り検出符号と、読み出した所定情報に関連付けて前記記憶部に記憶した前記誤り検出符号とが一致するか否かに基づいて、前記読み出した所定情報に誤りがあるか否かを検出する、
機械の制御装置。
【請求項2】
前記所定情報は、前記機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報の中からユーザによって選択された情報である、請求項1に記載の機械の制御装置。
【請求項3】
前記誤り検出部は、前記機械の動作制御の前に、前記誤り検出符号に基づいて前記所定情報に誤りがあるか否かを検出する、請求項1又は2に記載の機械の制御装置。
【請求項4】
前記誤り検出符号記憶制御部は、前記誤り検出符号を、前記所定情報を記憶する前記記憶部、又は前記記憶部とは異なる別の記憶部に記憶する、請求項1~
3のいずれか1項に記載の機械の制御装置。
【請求項5】
前記誤り検出部によって前記所定情報に誤りがあることが検出された場合に、前記所定情報に誤りがあることを外部に報知する報知制御部を更に備える、請求項1~
4のいずれか1項に記載の機械の制御装置。
【請求項6】
前記誤り検出部によって前記所定情報に誤りがあることが検出された場合に、前記機械の動作を停止させる停止制御部を更に備える、請求項1~
5のいずれか1項に記載の機械の制御装置。
【請求項7】
前記誤り検出部によって前記所定情報に誤りがあることが検出されない場合にのみ、前記所定情報に基づく前記機械の動作制御を行う、請求項1~
6のいずれか1項に記載の機械の制御装置。
【請求項8】
少なくとも1つのメモリに所定情報を記憶する方法であって、
前記少なくとも1つのメモリに所定情報を記憶する際に、前記所定情報に対する誤り検出符号を取得するステップと、
前記誤り検出符号を前記所定情報と関連付けて前記少なくとも1つのメモリに記憶するステップと、
前記所定情報を読み出すときに、前記所定情報に関連付けて記憶した前記誤り検出符号に基づいて、前記所定情報に誤りがあるか否かを検出するステップと、を備え、
前記所定情報は、機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報のうちの少なくとも1つであり、
前記記憶するステップは、前記誤り検出符号を、前記所定情報を記憶した記憶領域とは異なる他の記憶領域に記憶
し、
前記検出するステップは、
読み出された所定情報が記憶される際に前記誤り検出符号を計算した方法と同じ方法で誤り検出符号を再計算し、
再計算された誤り検出符号と、読み出した所定情報に関連付けて記憶した前記誤り検出符号とが一致するか否かに基づいて、前記読み出した所定情報に誤りがあるか否かを検出する、
方法。
【請求項9】
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、請求項
8に記載の方法を実行する制御装置。
【請求項10】
請求項
8に記載の方法を少なくとも1つのプロセッサに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット又は工作機械等の機械の動作を制御する制御装置に関する。
【背景技術】
【0002】
例えばロボットの制御装置として、メモリ上又はファイル中に記録された位置情報又は座標情報に従って、ロボットの動作を制御する装置がある。
例えば特許文献1及び2には、メモリに予め記憶されたロボットの動作制御のための教示データ(例えば移動経路、すなわち位置情報)に基づいてロボットの動作プログラムを作成し、動作プログラムに基づく位置指令及び/又は速度指令に基づいてロボットの動作を制御するロボット制御装置が開示されている。
【0003】
また、例えば外部の上位制御装置から、位置指令及び/又は速度指令を含む動作プログラムが入力され、この動作プログラムと、メモリに予め記憶されたロボット座標系又はツール座標系(ロボットに取り付けられたツールの座標系)の座標情報とに基づいて、ロボットの動作を制御するロボット制御装置がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2011-88175号公報
【文献】特開2011-152582号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、外部からの攻撃、ソフトウェアの不具合等の要因により、メモリ上又はファイル中に記録された位置情報又は座標情報(機械に関する所定情報)が正しくない情報になることがある。すると、ロボット(機械)の動作に正しくない制御が行われ(例えば、ロボットが正しくない位置に移動し)、人又は周辺装置に危害を加えてしまうことがある。
【0006】
本発明は、機械に関する所定情報が正しくないことを検出することが可能な機械の制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
(1) 本発明に係る機械の制御装置(例えば、後述のロボット制御装置10)は、対象物(例えば、後述のワークW)に対して所定の作業を行う機械(例えば、後述のロボット2)の動作を制御する制御装置であって、前記機械に関する所定情報を記憶する記憶部(例えば、後述する記憶部11)と、前記所定情報に対する誤り検出符号を求める誤り検出符号算出部(例えば、後述の誤り検出符号算出部13)と、前記記憶部に所定情報を記憶する際に、前記誤り検出符号を前記所定情報ごとに関連付けて記憶する誤り検出符号記憶制御部(例えば、後述の誤り検出符号記憶制御部14)と、前記記憶部から前記所定情報を読み出すときに、前記所定情報に関連付けて記憶した前記誤り検出符号に基づいて、前記所定情報に誤りがあるか否かを検出する誤り検出部(例えば、後述の誤り検出部15)とを備える、機械の制御装置。
【0008】
(2) (1)に記載の機械の制御装置において、前記所定情報は、前記機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報のうちの少なくとも1つであってもよい。
【0009】
(3) (2)に記載の機械の制御装置において、前記所定情報は、前記機械の動作制御のための位置情報、速度情報、及び機械座標系の座標情報の中からユーザによって選択された情報であってもよい。
【0010】
(4) (1)から(3)のいずれか1項に記載の機械の制御装置において、前記誤り検出部は、前記機械の動作制御の前に、前記誤り検出符号に基づいて前記所定情報に誤りがあるか否かを検出してもよい。
【0011】
(5) (1)から(4)のいずれか1項に記載の機械の制御装置において、前記誤り検出符号算出部は、前記誤り検出部によって読み出された所定情報が前記記憶部に記憶される際に前記誤り検出符号を計算した方法と同じ方法で誤り検出符号を再計算してもよく、前記誤り検出部は、再計算された誤り検出符号と、読み出した所定情報に関連付けて記憶部に記憶した前記誤り検出符号とが一致するか否かに基づいて、前記読み出した所定情報に誤りがあるか否かを検出してもよい。
【0012】
(6) (1)から(5)のいずれか1項に記載の機械の制御装置において、前記誤り検出符号記憶制御部は、前記誤り検出符号を、前記所定情報を記憶する前記記憶部に記憶してもよいし、又は前記記憶部とは異なる別の記憶部に記憶してもよい。
【0013】
(7) (1)から(6)のいずれか1項に記載の機械の制御装置は、前記誤り検出部によって前記所定情報に誤りがあることが検出された場合に、前記所定情報に誤りがあることを外部に報知する報知制御部を更に備えてもよい。
【0014】
(8) (1)から(7)のいずれか1項に記載の機械の制御装置は、前記誤り検出部によって前記所定情報に誤りがあることが検出された場合に、前記機械の動作を停止させる停止制御部を更に備えてもよい。
【0015】
(9) (1)から(8)のいずれか1項に記載の機械の制御装置は、前記誤り検出部によって前記所定情報に誤りがあることが検出されない場合にのみ、前記所定情報に基づく前記機械の動作制御を行ってもよい。
【発明の効果】
【0016】
本発明によれば、機械に関する所定情報が正しくないことを検出することが可能な機械の制御装置を提供することができる。
【図面の簡単な説明】
【0017】
【
図1】本実施形態に係るロボット制御装置を備えるロボットシステムの構成を示す図である。
【
図2】本実施形態に係るロボット制御装置の構成を示す図である。
【
図3】本実施形態の記憶部における記憶領域の一部を模式的に示す図であって、本実施形態の所定情報及び誤り検出符号を模式的に示す図である。
【
図4】本実施形態の他の記憶部における記憶領域の一部を模式的に示す図であって、本実施形態の他の所定情報及び誤り検出符号を模式的に示す図である。
【
図5】従来の記憶部における記憶領域の一部を模式的に示す図であって、従来の所定情報を模式的に示す図である。
【発明を実施するための形態】
【0018】
以下、添付の図面を参照して本発明の実施形態の一例について説明する。なお、各図面において同一又は相当の部分に対しては同一の符号を附すこととする。
【0019】
図1は、本実施形態に係るロボット制御装置を備えるロボットシステムの構成を示す図である。
図1に示すロボットシステム1は、ロボット(機械)2とロボット制御装置10とを備える。ロボットシステム1は、例えば、ワーク(対象物)Wのハンドリング又は加工などの所定の作業を行うシステムである。
【0020】
ロボット2は、6軸垂直多関節型又は4軸垂直多関節型等の多関節型ロボットである。ロボット2のアーム3の先端部には、ハンド又はツールが取り付けられている。
ロボット2は、複数の駆動軸をそれぞれ駆動する複数のサーボモータを有する。サーボモータはロボット制御装置10により駆動制御され、サーボモータの駆動制御によりロボット2及びアーム3の先端部の位置及び姿勢が制御される。これにより、ロボット2は、ワークWのハンドリング又は加工などの所定の作業を行う。
【0021】
各サーボモータにはエンコーダが設けられている。エンコーダは、サーボモータの軸回りの回転角度及び回転速度を検出することにより、ロボット2のアーム3の先端部の位置及び移動速度を検出する。検出された位置及び移動速度は位置フィードバック及び速度フィードバックとして利用される。
【0022】
ロボット制御装置10は、ロボット2の動作制御のためのソフトウェアを実行し、ロボット2の動作を制御する。以下、ロボット制御装置10について詳細に説明する。
【0023】
図2は、本実施形態に係るロボット制御装置10の構成を示す図である。ロボット制御装置10は、記憶部11と、動作制御部12と、誤り検出符号算出部13と、誤り検出符号記憶制御部14と、誤り検出部15と、報知制御部16と、停止制御部17とを備える。
【0024】
記憶部11は、例えばEEPROM等の書き換え可能なメモリ、又は例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)等の書き換え可能なディスクである。記憶部11がメモリの場合、記憶部11は、区切られた記憶領域ごとに、後述する所定情報を記憶する。記憶部11がディスクの場合、記憶部11は、分割されたファイルごとに、後述する所定情報を記憶する。
【0025】
ロボット制御装置10(記憶部11を除く)は、例えば、DSP(Digital Signal Processor)、FPGA(Field‐Programmable Gate Array)等の演算プロセッサで構成される。ロボット制御装置10の各種機能は、例えば記憶部に格納された所定のソフトウェア(プログラム、アプリケーション)を実行することで実現される。ロボット制御装置10の各種機能は、ハードウェアとソフトウェアとの協働で実現されてもよい。
【0026】
記憶部11は、ロボット2に関する所定情報を記憶する。ロボット2に関する所定情報とは、ロボット2の動作制御のための位置情報、速度情報、及びロボット座標系又はツール座標系(ロボット2のアーム先端部に取り付けられたツールの座標系)の座標情報(機械座標系の座標情報)のうちの少なくとも1つである。ロボット2に関する所定情報は、例えば教示操作盤を介してユーザによって予め教示される。
【0027】
(第1例)
第1例では、記憶部11は、ロボット2の動作制御のための位置情報(例えば、ロボット2の移動経路、すなわち位置指令)及び速度情報(例えば、一定速度、すなわち速度指令)を記憶する。記憶部11は、これらの情報を、例えばロボット制御装置10のためのソフトウェアによって予め定められたアドレスに対応する記憶領域(又はファイル)ごとに記憶する。
【0028】
(第2例)
第2例では、記憶部11は、ロボット座標系又はルール座標系の座標情報(例えば、座標値)を記憶する。記憶部11は、これらの情報を、例えばロボット制御装置10のためのソフトウェアによって予め定められたアドレスに対応する記憶領域(又はファイル)ごとに記憶する。
【0029】
動作制御部12は、記憶部11に記憶された所定情報に基づいてロボット2の動作を制御する。
【0030】
(第1例)
第1例では、動作制御部12は、例えばロボット制御装置10のためのソフトウェアによって予め定められたアドレスに対応する記憶領域(又はファイル)に記憶された位置情報(例えば、ロボット2の移動経路)及び速度情報(例えば、一定速度)を読み出す。動作制御部12は、読み出した位置情報及び速度情報に基づいてロボット2の動作プログラムを作成する。動作制御部12は、作成した動作プログラムに基づく位置指令(移動経路)及び速度指令(一定速度)、ロボット2からの位置フィードバック及び速度フィードバックに基づいて、ロボット2の動作を制御する。
【0031】
(第2例)
第2例では、動作制御部12は、例えば外部の上位制御装置から、ロボット2の動作プログラム、すなわち位置指令及び速度指令を取得する。また、動作制御部12は、例えばロボット制御装置10のためのソフトウェアによって予め定められたアドレスに対応する記憶領域(又はファイル)に記憶された座標情報を読み出す。動作制御部12は、動作プログラムに基づく位置指令及び速度指令、ロボット座標系又はツール座標系の座標情報、ロボット2からの位置フィードバック及び速度フィードバックに基づいて、ロボット2の動作を制御する。
【0032】
ここで、外部からの攻撃、ソフトウェアの不具合等の要因により、記憶部11に記憶された所定情報が正しくない情報になることがある。例えば、記憶部11に記憶されている所定情報が正しくない情報になってしまう原因として、以下のことが考えられる。
(1)記憶部11の該当する記憶領域(又はファイル)が、別のソフトウェア又はハードウェアの不良等により破壊される。
(2)ソフトウェアの不具合により、誤ったアドレスに対応する記憶領域(又はファイル)の情報を所定情報として読み込んでしまう。例えば
図5に示すように、正しいアドレスに対応する記憶領域(実線領域)の所定情報ではなく、誤ったアドレスに対応する記憶領域(破線領域)の情報を読み込んでしまう。
(3)ソフトウェアの不具合により、未初期化の記憶領域(又はファイル)の情報を所定情報として読み込んでしまう。
すると、ロボット2の動作に正しくない制御が行われ(例えば、ロボット2が正しくない位置に移動し)、人又は周辺装置に危害を加えてしまうことがある。
【0033】
そこで、本実施形態では、ロボット制御装置10は、誤り検出符号算出部13と、誤り検出符号記憶制御部14と、誤り検出部15と、報知制御部16と、停止制御部17とを備える。
【0034】
誤り検出符号算出部13は、所定情報ごとに誤り検出符号を計算する。例えば、誤り検出符号算出部13による誤り検出符号の計算は、記憶部11に所定情報が記憶又は更新される際に行われる。誤り検出符号の計算手法としては、CRCコード、ハッシュ値、チェックサム、又はMD5などの公知の手法が用いられればよい。
【0035】
誤り検出符号記憶制御部14は、記憶部11に所定情報が記憶又は更新される際、誤り検出符号算出部13によって計算された誤り検出符号を所定情報ごとに関連付けて、記憶部11に記憶させる。例えば、誤り検出符号記憶制御部14は、誤り検出符号を、予め定められた方法で求められたアドレスに対応する記憶領域(又はファイル)に記憶する。誤り検出符号記憶制御部14は、誤り検出符号を、例えば
図3に示すように、所定情報を記憶した記憶領域の隣りの記憶領域に記憶してもよいし、
図4に示すように、所定情報を記憶した記憶領域から一定バイトオフセットさせた記憶領域に記憶してもよい。
これにより、記憶部11は、誤り検出符号を所定情報ごとに関連付けて記憶する。なお、誤り検出符号記憶制御部14は、所定情報を記憶する記憶部11とは異なる別の記憶部に記憶してもよい。
【0036】
誤り検出部15は、動作制御部12が記憶部11から所定情報を読み出すとき、この所定情報に関連付けされて記憶された誤り検出符号も合わせて読み出す。誤り検出部15は、動作制御部12によるロボット2の動作制御の前に(換言すれば、所定情報を使う前に)、読み出した誤り検出符号に基づいて、読み出した所定情報に誤りがあるか否かを検出する。
【0037】
例えば、誤り検出符号算出部13によって、読み出した所定情報に基づいて、この所定情報が記憶部11に記憶又は更新される際に誤り検出符号を計算した方法と同じ方法で整合用誤り検出符号を再計算する。誤り検出部15は、この整合用誤り検出符号と読み出した誤り検出符号とが一致するか否か、すなわち整合性が取れているか否か、を確認する。誤り検出部15は、再計算した整合用誤り検出符号と読み出した誤り検出符号とが一致しない場合、すなわち整合性が取れていない場合、読み出した所定情報に誤りがあることを検出する。
【0038】
報知制御部16は、誤り検出部15によって所定情報に誤りがあることが検出された場合、読み出した所定情報に誤りがあることを外部のユーザに報知する。報知制御部16は、例えばディスプレイ等の表示装置を用いて報知を行う。
【0039】
停止制御部17は、誤り検出部15によって所定情報に誤りがあることが検出された場合、動作制御部12で用いられる所定情報が正しくないので、動作制御部12によるロボット2の動作制御を停止させる。
【0040】
なお、再計算した整合用誤り検出符号と読み出した誤り検出符号とが一致する場合、すなわち整合性が取れている場合、動作制御部12で用いられる所定情報が正しいので、動作制御部12によるロボット2の動作制御を実行する。
【0041】
また、誤り検出を行う所定情報は、ロボット2の動作制御のための位置情報、速度情報、及びロボット座標系又はツール座標系の座標情報の中からユーザによって選択されてもよい。
【0042】
以上説明したように、本実施形態のロボット制御装置10によれば、ロボット2に関する所定情報を記憶部11に記憶又は更新する際に、誤り検出符号を所定情報ごとに関連付けて記憶し(誤り検出符号記憶制御部14)、記憶部11から所定情報を読み出すときに、読み出した所定情報に関連付けて記憶した誤り検出符号に基づいて、読み出した所定情報に誤りがあるか否かを検出する(誤り検出部15)。これにより、外部からの攻撃、ソフトウェアの不具合等の要因により、記憶部11に記憶されたロボット2に関する所定情報が正しくない情報になったことを検出することができる。
【0043】
例えば、
(1)記憶部11の該当する記憶領域(又はファイル)が、別のソフトウェア又はハードウェアの不良等により破壊された場合、高い確率で、再計算した整合用誤り検出符号と読み出した誤り検出符号との整合性が取れず、読み出した所定情報に誤りがあることを検出することができる。
(2)ソフトウェアの不具合により、誤ったアドレスに対応する記憶領域(又はファイル)の情報を所定情報として読み込んだ場合、高い確率で、再計算した整合用誤り検出符号と読み出した誤り検出符号との整合性が取れず、読み出した所定情報に誤りがあることを検出することができる。
(3)フトウェアの不具合により、未初期化の記憶領域(又はファイル)の情報を所定情報として読み込んだ場合、高い確率で、再計算した整合用誤り検出符号と読み出した誤り検出符号との整合性が取れず、読み出した所定情報に誤りがあることを検出することができる。ただし、ここで誤りが検出できるのは未初期化の位置情報から誤り検出符号を計算して記憶していない場合に限られる。
【0044】
ところで、同じ情報を2つ用い、これらの情報の整合性により、何れか一方の情報が誤りであることを検出する比較的に簡易な誤り検出手法が知られている(ミラーリング)。しかし、ロボット又は工作機械等の位置情報及び速度情報では、例えば「0」が連続することがある。この場合、未初期化の場合と区別できないことが予想される。この点に関し、本実施形態によれば、未初期化の場合を区別することができる。
【0045】
なお、本実施形態のロボット制御装置10では、公知の誤り検出訂正符号を用いることにより、誤りを検出したときに、誤り訂正を行ってもよい。
【0046】
また、本実施形態のロボット制御装置10によれば、誤り検出部15によって所定情報に誤りがあることが検出された場合、読み出した所定情報に誤りがあることを外部のユーザに報知する(報知制御部16)。これにより、本実施形態のロボット制御装置10によれば、何らかの要因により、記憶部11に記憶されたロボット2に関する所定情報が正しくない情報になっても、ロボット2の移動量を最小限に抑制することができる。その結果、ロボット2の動作に正しくない制御が行われること(例えば、ロボット2が正しくない位置に移動すること)を抑制することができ、人又は周辺装置に危害を加えてしまうことを抑制することができる。
【0047】
また、本実施形態のロボット制御装置10によれば、誤り検出部15によって所定情報に誤りがあることが検出された場合、動作制御部12によるロボット2の動作制御を停止させる(停止制御部17)。或いは、誤り検出部15によって所定情報に誤りがあることが検出されない場合にのみ、動作制御部12による所定情報に基づくロボット2の動作制御を行うようにしてもよい。これにより、本実施形態のロボット制御装置10によれば、何らかの要因により、記憶部11に記憶されたロボット2に関する所定情報が正しくない情報になった場合に、ロボット2の予期しない動作を抑制することができる。その結果、人又は周辺装置に危害を加えてしまうことを抑制することができる。
【0048】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、種々の変更及び変形が可能である。例えば、上述した実施形態では、ロボットの動作を制御するロボットシステムを例示した。しかし、本発明はこれに限定されず、対象物に対して所定の作業を行う種々の機械(ロボット、工作機械等)の動作を制御する種々の制御システムに適用可能である。
【符号の説明】
【0049】
1 ロボットシステム
2 ロボット
3 アーム
10 ロボット制御装置(機械の制御装置)
11 記憶部
12 動作制御部
13 誤り検出符号算出部
14 誤り検出符号記憶制御部
15 誤り検出部
16 報知制御部
17 停止制御部