(57)【要約】【課題】必要な時に、必要な情報のみを含む記録を作成することができる技術を提供する。【解決手段】ロボット制御装置は、ロボットの動作を制御する制御部と、ロボットの動作に関する異なる保存期間を有する複数の動作ログを記憶する記憶部と、特定のイベントが発生すると、複数の動作ログのうち発生したイベントの種別に対応する情報要素を選択して収集する収集部と、収集部で収集された情報要素から記録を作成する記録作成部と、記録を保存する記録保存部とを有する。【選択図】図１
2019150923.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を制御する制御部と、
前記ロボットの動作に関する、異なる保存期間を有する複数の動作ログを記憶する記憶部と、
特定のイベントが発生すると、前記複数の動作ログのうち発生したイベントの種別に対応する情報要素を選択して収集する収集部と、
前記収集部で収集された前記情報要素から記録を作成する記録作成部と、
前記記録を保存する記録保存部と、
を有するロボット制御装置。
【請求項２】
前記収集部は、発生した前記イベントの種別に応じて、前記複数の動作ログのうちいずれかの動作ログから情報要素を選択する、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記収集部は、
同じ動作ログから第１の周期で記録された情報要素と、前記第１の周期とは異なる第２の周期で記録された情報要素とを選択する、
ことを特徴とする請求項１または２に記載のロボット制御装置。
【請求項４】
前記収集部は、前記イベントが発生すると、前記ロボットを監視するカメラから供給される生画像データを前記情報要素に加える、
ことを特徴とする請求項１から３のいずれか１項に記載のロボット制御装置。
【請求項５】
前記収集部は、前記イベントが発生すると、前記ロボットを監視するセンサから供給される生データを前記情報要素に加える、
ことを特徴とする請求項１から４のいずれか１項に記載のロボット制御装置。
【請求項６】
前記収集部は、前記イベントが発生すると、前記制御部を動作させるロボット動作プログラムを前記情報要素に加える、
ことを特徴とする請求項１から５のいずれか１項に記載のロボット制御装置。
【請求項７】
前記記録作成部は、前記イベントが発生すると、前記ロボット動作プログラムにおける前記イベントの発生時に実行された行を表す指標を前記情報要素に加える、
ことを特徴とする請求項６に記載のロボット制御装置。
【請求項８】
前記制御部は、外部の装置から前記制御部に送信された指令に従って、前記ロボットの動作を制御し、
前記収集部は、前記指令に従った動作において前記イベントが発生すると、前記指令を前記情報要素に加える、
ことを特徴とする請求項１から７のいずれか１項に記載のロボット制御装置。
【請求項９】
前記記録保存部は、前記記録を圧縮して保存する、
ことを特徴とする請求項１から８のいずれか１項に記載のロボット制御装置。
【請求項１０】
特定のイベントが発生すると、ロボットの動作に関する、異なる保存期間を有する複数の動作ログを記憶する記憶部から、前記複数の動作ログのうち発生したイベントの種別に対応する情報要素を選択し、
選択された前記情報要素を収集し、
収集された前記情報要素から記録を作成し、
前記記録を保存する、
ことを特徴とする記録の作成方法。
【請求項１１】
コンピュータに、
特定のイベントが発生すると、ロボットの動作に関する、異なる保存期間を有する複数の動作ログを記憶する記憶部から、前記複数の動作ログのうち発生したイベントの種別に対応する情報要素を選択する機能と、
選択された前記情報要素を収集する機能と、
収集された前記情報要素から記録を作成する機能と、
前記記録を保存する機能と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、記録の作成方法およびプログラムに関する。
【背景技術】
【０００２】
工場の生産ラインで使われるロボットは、生産ライン停止等のトラブル発生時に、その原因を解析するために動作履歴またはエラー履歴をログファイルに保存したり、専用のデータサーバに送ったりしている。特許文献１は、複数のロボットの各々からリアルタイムでデータを収集し、収集したデータを伝送する技術を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１０００２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の技術では、ロボットの各々からリアルタイムでデータを収集するため、データ保存量が大きい。一方、保存されるデータ量が少なすぎると、エラーの発生原因を十分に解析することができない。
【０００５】
そこで、本発明は、必要な時に、必要な情報のみを含む記録を作成することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のある態様に係るロボット制御装置は、ロボットの動作を制御する制御部と、前記ロボットの動作に関する、異なる保存期間を有する複数の動作ログを記憶する記憶部と、特定のイベントが発生すると、前記複数の動作ログのうち発生したイベントの種別に対応する情報要素を選択して収集する収集部と、前記収集部で収集された前記情報要素から記録を作成する記録作成部と、前記記録を保存する記録保存部と、を有する。
【発明の効果】
【０００７】
本発明においては、複数の動作ログのうちイベントの種別に対応する情報要素を選択して収集することにより、発生したイベントに関連する情報のみを含む記録を作成することができる。この記録は、既に記憶されている複数の動作ログとは別に保存することができ、イベントに関連する情報の解析に役立てることができる。また、この記録は、発生したイベントに関連する情報のみを含むので、保存されるデータの量を節減することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るロボット制御装置の構成を示すブロック図。
【図２】ロボット制御装置で使用されるエラー動作テーブルの内容の例を示す概略図。
【図３】図２の続きである、エラー動作テーブルの内容の例を示す概略図。
【図４】ロボット制御装置で使用されるエラー動作テーブルの内容の他の例を示す概略図。
【図５】本発明の実施形態に係るロボット制御装置における記録の作成方法を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付の図面を参照しながら本発明の実施形態を説明する。
＜ロボット制御装置の構成＞
図１は、本発明の実施形態に係るロボット制御装置であるコントローラ１の構成を示すブロック図である。本実施形態において、コントローラ１は、ロボット２を制御および監視する。ロボット２は、工場内での製造ロボットであり、例えば多関節ロボットである。但し、ロボット２は、多関節ロボットには限られず、自動的に作業を行う数値制御工作機械、例えば、数値制御旋盤、または数値制御マシニングセンタであってもよい。また、ロボット２は、製造ロボットには限られず、搬送ロボット、自律移動ロボット、その他のロボットであってもよい。
【００１０】
コントローラ１は、プロセッサ４とメモリ（記憶部）６を有する。プロセッサ４は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｉｎｇ  Ｕｎｉｔ）であり、メモリ６に記憶された各種のプログラムを実行することで各種の機能動作を実行する。メモリ６は、例えば、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、プロセッサ４に使用されるプログラムおよび各種のデータを格納する。
【００１１】
コントローラ１は、ロボット２に搭載されていてもよいし、ロボット２に搭載されたプロセッサと別個に設けられ、ロボット２に搭載されたプロセッサと有線または無線で通信してもよい。また、コントローラ１は、ロボット２に搭載されたプロセッサ４と、ロボット２の外部に設けられたメモリ６を有してもよい。
【００１２】
コントローラ１には、各種のセンサ８が接続されている。図１は、１つのセンサ８のみを示すが、複数のセンサ８がコントローラ１に接続されてよい。センサ８は、例えば、ロボット２の所定箇所に配置されたアクチュエータ（例えばモータ）に与えられた電圧を示す測定データ、アクチュエータが発揮した力またはトルクを示す測定データ、アクチュエータの角度を示す測定データ、アクチュエータの速度を示す測定データ、温度を示す測定データを、電気信号の形式で、コントローラ１に供給する。センサ８は、ロボット２の内部に配置されてもよいし、外部に配置されてもよい。
【００１３】
コントローラ１には、ロボット２を撮影するカメラ１０が接続されており、撮影で得られたロボット２の挙動を示す画像データを電気信号の形式でコントローラ１に供給する。カメラ１０は、好ましくは動画を撮影する。カメラ１０は、深度センサを有してもよく、この場合には、ロボット２の各種の部分の位置を示す深度測定データを電気信号の形式でコントローラ１に供給する。
【００１４】
メモリ６は、上記のプログラムとして、ロボット２の動作を制御するためのロボット動作プログラム１２、プロセッサ４の動作を統括的に制御するためのシステム制御プログラム、およびエラー記録作成プログラム１４を格納する。図１において、ロボット動作プログラム１２およびエラー記録作成プログラム１４を便宜的にプロセッサ４の内部に示す。
【００１５】
また、図１において、制御モジュール１６Ａ，１６Ｂ，１６Ｃを便宜的にプロセッサ４の内部に示す。制御モジュール１６Ａ，１６Ｂ，１６Ｃの各々は、システム制御プログラムの一部であるモジュールまたはサブルーチンであり、プロセッサ４で実行されるタスクを表す。より具体的には、制御モジュール１６Ａ，１６Ｂ，１６Ｃは、それぞれロボット２の動作に関する履歴を示す動作ログ１８Ａ，１８Ｂ，１８Ｃを生成し、動作ログ１８Ａ，１８Ｂ，１８Ｃをメモリ６に保存するためのタスクを表す。
【００１６】
プロセッサ４は、メモリ６からシステム制御プログラムを読み出して実行することにより、適切に動作することができる。また、プロセッサ４は、制御モジュール１６Ａ，１６Ｂ，１６Ｃに従って、動作ログ１８Ａ，１８Ｂ，１８Ｃを生成し、動作ログ１８Ａ，１８Ｂ，１８Ｃをメモリ６に保存する。
【００１７】
動作ログ１８Ａ，１８Ｂ，１８Ｃは、異なる保存期間を有する。例えば、動作ログ１８Ａは１週間の保存期間を有し、動作ログ１８Ｂは１日の保存期間を有し、動作ログ１８Ｃは２時間の保存期間を有する。プロセッサ４は、制御モジュール１６Ａ，１６Ｂ，１６Ｃに従って、逐次、動作ログ１８Ａ，１８Ｂ，１８Ｃに情報要素を追加して動作ログ１８Ａ，１８Ｂ，１８Ｃの内容を更新し、所定の保存期間が経過した情報要素を削除して動作ログ１８Ａ，１８Ｂ，１８Ｃの内容を更新する。
【００１８】
動作ログ１８Ａ，１８Ｂ，１８Ｃの情報要素は、例えば、ロボット２の所定箇所の座標、ロボット２の所定箇所に配置されたアクチュエータ（例えばモータ）に与えられた電圧、アクチュエータが発揮した力またはトルク、ロボット２の温度などである。これらの情報要素は、上記の複数のセンサ８から得られる。動作ログ１８Ａ，１８Ｂ，１８Ｃの情報要素は、人間が読んで理解できるテキスト形式である。
【００１９】
プロセッサ４は、メモリ６からロボット動作プログラム１２を読み出して実行することにより、ロボット２の動作を制御する制御部として機能し、ロボット２に所要の作業を実行させる。
【００２０】
メモリ６に保存された動作ログ１８Ａ，１８Ｂ，１８Ｃは、ロボット２の動作に関する履歴を示すので、これらの動作ログ１８Ａ，１８Ｂ，１８Ｃを用いて、動作ログ１８Ａ，１８Ｂ，１８Ｃの解析者は、ロボット２の挙動履歴を追跡し、例えば、ロボット２にエラーが発生した場合に、エラーの原因を特定することができる。しかし、動作ログ１８Ａ，１８Ｂ，１８Ｃの保存期間は有限であり、動作ログ１８Ａの記憶内容でも、エラーの発生後１週間が結果すると、エラーの発生前の情報要素を有していない。
【００２１】
そこで、本実施形態に係るプロセッサ４は、メモリ６からエラー記録作成プログラム１４を読み出して実行することにより、エラーが発生した場合に、動作ログ１８Ａ，１８Ｂ，１８Ｃとは別個に、当該エラーに関連するエラー記録２０を作成する。より具体的には、エラーが発生すると、エラー記録作成プログラム１４に従って、プロセッサ４は、動作ログ１８Ａ，１８Ｂ，１８Ｃのうち、発生したエラーの種別に対応する情報要素を選択して収集する収集部として機能する。また、エラー記録作成プログラム１４に従って、プロセッサ４は、収集部で収集された情報要素からエラー記録２０を作成する記録作成部として機能する。また、エラー記録作成プログラム１４に従って、プロセッサ（記録保存部）４は、エラー記録２０をメモリ６に保存する記録保存部として機能する。
【００２２】
メモリ６には、エラー動作テーブル２２が格納されている。エラー動作テーブル２２は、複数のエラーの種別と、エラーの種別にそれぞれ関連付けられた１種類以上の情報要素を記述する。ロボット２にエラーが発生すると、プロセッサ４は、エラーの種別を判断し、エラー動作テーブル２２を参照し、エラー動作テーブル２２に記述されたエラーの種別に応じた情報要素を選択して収集する。
【００２３】
＜エラー動作テーブルの内容＞
図２および図３は、エラー動作テーブル２２の内容の例を示す。例えば、図２に示す種別Ａ１のエラーが発生すると、プロセッサ４は、動作ログ１８Ａからロボット２の第１のツールの座標の情報要素と第１のツールを駆動するモータに与えられた電圧の情報要素を選択して収集し、これらの情報要素を有するエラー記録２０を作成する。図２に示す種別Ａ１のエラーは、第１のツールに関連すると予測される、比較的長い期間を経過して発生するエラー（例えば、ロボットの部品の摩耗または部品の締結の緩みに起因するエラー）である。
【００２４】
種別Ａ２のエラーが発生すると、プロセッサ４は、動作ログ１８Ｂからロボット２の第１のツールの座標の情報要素と第１のツールを駆動するモータに与えられた電圧の情報要素を選択して収集し、これらの情報要素を有するエラー記録２０を作成する。種別Ａ２のエラーは、第１のツールに関連すると予測される、およそ１日の期間を経過して発生するエラー（例えば、ロボットの潤滑油の減少に起因するエラー）である。
【００２５】
種別Ａ３のエラーが発生すると、プロセッサ４は、動作ログ１８Ｃからロボット２の第１のツールの座標の情報要素と第１のツールを駆動するモータに与えられた電圧の情報要素を選択して収集し、これらの情報要素を有するエラー記録２０を作成する。種別Ａ３のエラーは、第１のツールに関連すると予測される、短い期間を経過して発生するエラー（例えば、ロボットの温度変化に起因するエラー）である。
【００２６】
例えば、図２に示す種別Ａ２のエラーが発生すると、プロセッサ４は、種別Ａ１のエラーが発生した場合と同様に、動作ログ１８Ａからロボット２の第１のツールの座標の情報要素と第１のツールを駆動するモータに与えられた電圧の情報要素を選択して収集する。さらに、プロセッサ４は、当該エラーの発生の直前（例えば１００００ｍｓの期間）にセンサ８から供給された第１のツールを駆動するモータに与えられた生の電圧測定データと、当該エラーの発生の直前（例えば１００００ｍｓの期間）にカメラ１０から供給されたロボット２の動画像の生データをこれらの情報要素に加えて、これらの情報要素と生データを有するエラー記録２０を作成する。
【００２７】
図３に示す種別Ｊ２のエラーが発生すると、プロセッサ４は、種別Ｊ１のエラーが発生した場合(図２）と同様に、動作ログ１８Ａからロボット２の第２のツールの座標の情報要素と第２のツールを駆動するモータが発揮したトルクの情報要素を選択して収集する。さらに、プロセッサ４は、当該エラーの発生の直前（例えば１００００ｍｓの期間）にセンサ８から供給された第２のツールを駆動するモータが発揮した生のトルク測定データと、当該エラーの発生の直前（例えば１００００ｍｓの期間）にカメラ１０から供給されたロボット２の動画像の生データをこれらの情報要素に加えて、これらの情報要素と生データを有するエラー記録２０を作成する。
【００２８】
ここで、生のデータは、機械が読むことができるバイナリデータである。エラー記録２０が作成される元となる画像データは、上記のように、エラーの発生の直前の動画像のデータでもよいし、エラーの発生をトリガーとしてカメラ１０が撮影した静止画像（スナップショット）のデータでもよい。
【００２９】
プロセッサ４は、ロボット２のエラーの発生時にセンサ８から供給された生の温度測定データを情報要素に加えて、温度測定データを有するエラー記録２０を作成してもよい。上記の通り、温度は動作ログ１８Ａ，１８Ｂ，１８Ｃの情報要素に含まれるが、動作ログ１８Ａ，１８Ｂ，１８Ｃの情報要素から温度を除外してもよい。
【００３０】
カメラ１０が深度センサを有する場合、プロセッサ４は、ロボット２のエラーの発生時にカメラ１０から供給された生の深度測定データを情報要素に加えて、温度測定データを有するエラー記録２０を作成してもよい。
【００３１】
図４は、エラー動作テーブル２２の内容の他の例を示す。図４に示すように、プロセッサ４は、動作ログ１８Ａ，１８Ｂ，１８Ｃのいずれかから周期的に記録された情報要素を選択して収集してもよい。
【００３２】
また、同じ動作ログから第１の周期で記録された情報要素と、第１の周期とは異なる第２の周期で記録された別種の情報要素とを選択して収集してもよい。例えば、図４に示す種別Ａ１７のエラーが発生すると、プロセッサ４は、動作ログ１８Ｃ内の周期５０ｍｓで記録された第１のツールの座標、および動作ログ１８Ｃ内の周期５０ｍｓで記録された第１のツールを駆動するモータに与えられた電圧、ならびに動作ログ１８Ｃ内の周期１００ｍｓで記録された第１のツールを駆動するモータが発揮したトルクの情報要素を選択して収集し、これらの情報要素を有するエラー記録２０を作成する。種別Ａ２７のエラーが発生すると、プロセッサ４は、動作ログ１８Ｃ内の周期５０ｍｓで記録された第１のツールの座標、動作ログ１８Ｃ内の周期５０ｍｓで記録された第１のツールを駆動するモータに与えられた電圧、ならびに動作ログ１８Ｃ内の周期１００ｍｓで記録された第２のツールの座標、および動作ログ１８Ｃ内の周期１００ｍｓで記録された第２のツールを駆動するモータに与えられた電圧の情報要素を選択して収集し、これらの情報要素を有するエラー記録２０を作成する。
【００３３】
図４は生のデータを収集すべき情報要素として示さないが、このエラー動作テーブル２２を使用する場合にも、プロセッサ４は、動作ログの情報要素に加えて、生のデータを有するエラー記録２０を作成してよい。
【００３４】
プロセッサ４は、動作ログ１８Ａ，１８Ｂ，１８Ｃの各々から、エラー動作テーブル２２に指定された情報要素のうち、全保存期間にわたる情報要素を選択して収集してもよい。但し、プロセッサ４は、エラー動作テーブル２２に指定された情報要素のうち、エラーの発生時点よりも一定期間前に記録された情報要素を選択して収集してもよい。
【００３５】
＜エラー記録作成の動作＞
図５は、本発明の実施形態に係るロボット制御装置における記録の作成方法を示すフローチャートである。この方法は、エラー記録作成プログラム１４に従って、プロセッサ４によって実行される。
【００３６】
ロボット２にエラーが発生すると、ステップＳ１の判断が肯定的となり、処理はステップＳ２に進む。ステップＳ２において、プロセッサ４は、発生したエラーの種別を判断する。
【００３７】
次に、ステップＳ３において、プロセッサ４は、エラー動作テーブル２２を参照し、エラー動作テーブル２２に基づいて、ステップＳ２で判断されたエラーの種別に応じた収集すべき情報要素を把握する。上記の通り、収集すべき情報要素には、動作ログ１８Ａ，１８Ｂ，１８Ｃの少なくともいずれかに記録された情報要素と、他のデータがある。
【００３８】
次に、ステップＳ４において、プロセッサ４は、ステップＳ３で把握した情報要素を選択して収集する。そして、ステップＳ５において、プロセッサ４は、収集した情報要素から、これらの要素を有するエラー記録２０を作成する。さらに、ステップＳ６において、プロセッサ４は、エラー記録２０を圧縮して、圧縮された形式のエラー記録２０をメモリ６に保存する。この後、処理は終了する。
【００３９】
ロボット２のエラーが発生した場合には、一般的にロボット動作プログラム１２は停止しており、ステップＳ２〜Ｓ６の動作を実行しても、プロセッサ４の処理負担が大幅に上昇することはない。
【００４０】
上記の通り、本実施形態においては、複数の動作ログ１８Ａ，１８Ｂ，１８Ｃのうちエラーの種別に対応する情報要素を選択して収集することにより、発生したエラーに関連する情報のみを含むエラー記録２０を作成することができる。エラー記録２０は、既に記憶されている複数の動作ログ１８Ａ，１８Ｂ，１８Ｃとは別に保存することができ、エラーに関連する情報の解析に役立てることができる。また、エラー記録２０は、発生したエラーに関連する情報のみを含むので、保存されるデータの量を節減することができる。
【００４１】
プロセッサ４は、発生したイベントの種別に応じて、複数の動作ログ１８Ａ，１８Ｂ，１８Ｃのうちいずれかの動作ログから情報要素を選択することができる。例えば、エラーの種別に応じて、エラーに直接的に関連すると予測される短い保存期間の動作ログ１８Ｃから所要の情報要素を選択することができる。あるいは、エラーに間接的に関連すると予測される長い保存期間の動作ログ１８Ａから所要の情報要素を選択してもよい。また、短い期間を経過して発生するエラーに関しては、短い保存期間の動作ログ１８Ｃから所要の情報要素を選択することができ、長い期間を経過して発生するエラーに関しては、長い保存期間の動作ログ１８Ａから所要の情報要素を選択することができる。
【００４２】
上記の通り、プロセッサ４は、同じ動作ログから第１の周期で記録された情報要素と、第１の周期とは異なる第２の周期で記録された別種の情報要素とを選択してもよい。ロボット２のエラーには、複合的な要因により発生するものがある。異なる周期で記録された異なる種類の情報要素をエラー記録２０に記録することによって、ロボット２のエラーの解析に役立つと考えられる。
【００４３】
プロセッサ４は、イベントが発生すると、ロボット２を監視するカメラから供給される生画像データ、および／またはロボット２を監視するセンサ８から供給される生データを情報要素に加えて、記録を作成してもよい。生のデータをエラー記録２０に記録することによって、ロボット２のエラーの解析に役立つと考えられる。
【００４４】
好ましくは、プロセッサ４は、ロボット２にエラーが発生すると、ロボット動作プログラム１２を情報要素に加えてエラー記録２０を作成する。この場合、さらに好ましくは、プロセッサ４は、エラーが発生すると、ロボット動作プログラム１２におけるエラーの発生時に実行された行を表す指標（例えば、行番号）を情報要素に加えて、エラー記録２０を作成する。コントローラ１で使用されるシステム制御プログラムは、異なるコントローラ１について共通である一方、ロボット動作プログラム１２は、個々のコントローラ１専用に準備されることがあり、しかもロボット２の使用者により改変されることがある。すなわち、エラー記録２０の解析者は、システム制御プログラムを知っていても、ロボット動作プログラム１２を知らない場合がある。このような場合でも、コントローラ１で使用されているロボット動作プログラム１２、さらには、ロボット動作プログラム１２におけるエラーの発生時に実行された行を表す指標をエラー記録２０に記録することによって、エラーの発生時の状況が解明され、エラーの原因究明に役立つと考えられる。
【００４５】
例えば、ロボット２のあるツールを駆動するモータのトルクエラーが発生したと想定する。トルクエラーは、モータに過負荷がかかった時に発生する。その原因は、以下のようなものが考えられる。
ツールの動作座標がずれて、ツールが壁または機材に衝突した。
今まで置いてなかった物が存在したために、ツールがその物に衝突した。
ツールに予期しない外力が加わった（ケーブルまたは紐がツールに絡まった、誰かが無理やりツールを止めようとした等）。
モータが壊れた。
【００４６】
モータのトルクエラーを後で解析するために、以下のような詳細情報を得ることが好ましい。
どの動作プログラムの中のどの個別動作を行っていたか。
エラー発生時のロボットの先端座標。
各関節のモータ角度、エラー直前の速度、トルク値。
カメラによるロボットの画像。
モータおよびセンサに与えられた調整値。
ロボットに関する基本情報。
したがって、トルクエラーが発生すると、好ましくは、プロセッサ４は、トルクエラーに関連すると予測される、例えば短い期間の動作ログ１８Ａから、関連する１以上のツールの座標の情報要素、関連する１以上のツールを駆動するモータに与えられた電圧の情報要素、モータの角度を示す測定データ、モータの速度を示す測定データを選択して収集する。好ましくは、プロセッサ４は、当該エラーの発生の直前（例えば１００００ｍｓの期間）にセンサ８から供給された関連する１以上のツールを駆動するモータに与えられた生の電圧測定データと、当該エラーの発生の直前（例えば１００００ｍｓの期間）にカメラ１０から供給されたロボット２の動画像の生データをこれらの情報要素に加える。さらに好ましくは、プロセッサ４は、ロボット動作プログラム１２、およびエラーの発生時に実行された行を表す指標を情報要素に加えて、エラー記録２０を作成する。モータおよびセンサに与えられた調整値ならびにロボットに関する基本情報もエラー記録２０に含めてもよい。
【００４７】
また、ロボット動作プログラム１２だけでなく、コントローラ１に接続されプロセッサ４と通信可能な外部の装置（例えば、図示しない指令装置）からプロセッサ４に送信された指令に従って、プロセッサ４がロボット２に作業を実行させてもよい。この場合には、好ましくは、プロセッサ４は、当該指令に従った動作においてロボット２にエラーが発生すると、当該指令を情報要素に加えてエラー記録２０を作成する。エラー記録２０の解析者は、外部の装置からプロセッサ４に与えられた指令を知らないことが多いと考えられる。エラーの発生時にプロセッサ４が参照した指令（すなわちエラーの原因になったかもしれない指令）をエラー記録２０に記録することによって、エラーの発生時の状況が解明され、エラーの原因究明に役立つと考えられる。
【００４８】
好ましくは、プロセッサ４は、エラー記録２０を圧縮して、圧縮された形式のエラー記録２０をメモリ６に保存する。圧縮によってエラー記録２０のデータ量を削減することができる。
【００４９】
エラー記録２０は、長期間（例えば1か月間、１年間）にわたって保存される。エラー記録２０は永久に保存されてもよい。エラー記録２０の解析者は、コントローラ１が遠隔地に存在する場合でも、当該遠隔地に赴いて、エラー記録２０を用いて、ロボット２の挙動履歴を追跡し、例えば、エラーの原因を特定することができる。
【００５０】
図示しないが、コントローラ１は、ネットワーク（例えばインターネット）を介して、管理装置に接続されていてもよい。この場合、プロセッサ４は、エラー記録２０を、好ましくは圧縮された形式で、管理装置に送信してもよい。この場合には、解析者は、コントローラ１が存在する場所に赴かずに、エラー記録２０を用いて、ロボット２の挙動履歴を追跡し、例えば、エラーの原因を特定することができる。
【００５１】
＜変形例＞
以上、本発明の実施形態を説明したが、上記の説明は本発明を限定するものではなく、本発明の技術的範囲において、構成要素の削除、追加、置換を含む様々な変形例が考えられる。
【００５２】
例えば、上記の実施形態においては、ロボット２にエラーが発生した場合に、エラー記録２０が作成される。しかし、本発明は、エラー記録の作成に限定されない。すなわち、特定のイベントが発生した場合に、プロセッサ４は、複数の動作ログのうち発生したイベントの種別に対応する情報要素を選択して収集し、収集された情報要素から記録を作成して保存してよい。特定のイベントとしては、例えば、所定の時刻になったこと、使用者または解析者がコントローラ１に特定のトリガーを与えたこと、および／またはロボット２が特定の動作を達成したことであってよい。
【００５３】
上記の実施形態においては、１つのメモリ６に、システム制御プログラム、ロボット動作プログラム１２、エラー記録作成プログラム１４、動作ログ１８Ａ，１８Ｂ，１８Ｃ、エラー記録２０、およびエラー動作テーブル２２が格納される。しかし、これらは、異なるメモリに格納されてもよい。
【００５４】
システム制御プログラムの制御モジュール１６Ａ，１６Ｂ，１６Ｃの数は３に限定されず、２でも４以上でもよい。動作ログ１８Ａ，１８Ｂ，１８Ｃの数も３に限定されず、２でも４以上でもよい。
【００５５】
コントローラ１において、プロセッサ４が実行する各機能は、プロセッサの代わりに、ハードウェアで実行してもよいし、例えばFPGA（Field Programmable Gate Array）、DSP（Digital Signal Processor）等のプログラマブルロジックデバイスで実行してもよい。
【符号の説明】
【００５６】
１  コントローラ（ロボット制御装置）
２  ロボット
４  プロセッサ（制御部、収集部、記録作成部、記録保存部）
６  メモリ（記憶部）
８  センサ
１０  カメラ
１２  ロボット動作プログラム
１４  エラー記録作成プログラム
１６Ａ，１６Ｂ，１６Ｃ  制御モジュール
１８Ａ，１８Ｂ，１８Ｃ  動作ログ
２０  エラー記録
２２  エラー動作テーブル
【図１】
2019150923.tif 000003
【図２】
2019150923.tif 000004
【図３】
2019150923.tif 000005
【図４】
2019150923.tif 000006
【図５】
2019150923.tif 000007