(57)【要約】【課題】ロボットシステムにおいて、転送、あるいは記録すべき稼働情報（ログ）のデータ量を低減し、低負荷で稼働情報（ログ）を転送、あるいは記録できるようにする。【解決手段】ロボット装置１００のロボットアーム１１の動作を制御する制御装置２００を備え、ロボットアーム１１の動作に関するログを管理端末３００に転送する。制御装置２００は、ロボットアーム１１を動作させつつ、当該の動作に関するログデータを生成し短期保存ログ記録部２６（一時記憶装置）に格納する（ログデータ生成工程）。ログ転送タイミングが到来すると、ロボットアーム１１の動作に応じて、短期保存ログ記録部２６（一時記憶装置）に格納されているログデータの一部を抽出してログ保存装置にログとして転送する（ログ転送工程）。【選択図】図１
2017007036.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームと、前記ロボットアームの動作を制御する制御装置を備え、前記ロボットアームの動作に関するログをログ保存装置に転送するロボットシステムの制御方法において、
前記制御装置が、前記ロボットアームを動作させつつ、当該の動作に関するログデータを生成し一時記憶装置に格納するログデータ生成工程と、
前記制御装置が、ログ転送タイミングが到来した時、前記ロボットアームの動作に応じて、前記一時記憶装置に格納されている前記ログデータの一部を抽出して前記ログ保存装置にログとして転送するログ転送工程と、
を含むことを特徴とするロボットシステムの制御方法。
【請求項２】
請求項１に記載のロボットシステムの制御方法において、前記ログ転送工程において、前記制御装置が、前記一時記憶装置に格納されている生成されたログデータから、少なくとも前記動作で用いられた前記ロボットアームの特定部位に関するログデータを抽出して前記ログ保存装置にログとして転送することを特徴とするロボットシステムの制御方法。
【請求項３】
請求項２に記載のロボットシステムの制御方法において、前記特定部位が、前記ロボットアームに装着されたエンドエフェクタまたは工具であることを特徴とするロボットシステムの制御方法。
【請求項４】
請求項２または３に記載のロボットシステムの制御方法において、前記制御装置が、前記ログ転送工程において抽出し、前記ログ保存装置にログとして転送すべきログデータに係る特定部位を設定するログ対象部位設定工程を含むことを特徴とするロボットシステムの制御方法。
【請求項５】
請求項１から４のいずれか１項に記載のロボットシステムの制御方法において、前記ログデータ生成工程において、前記制御装置が、前記ロボットアームの制御値、ないし前記ロボットアームに設けられたセンサから出力されるセンサ情報から前記ログデータを生成することを特徴とするロボットシステムの制御方法。
【請求項６】
請求項１から５のいずれか１項に記載のロボットシステムの制御方法において、前記ログ保存装置が外部記憶装置であるか、またはネットワーク接続された外部の管理端末であることを特徴とするロボットシステムの制御方法。
【請求項７】
請求項１から６のいずれか１項に記載のロボットシステムの制御方法において、前記一時記憶装置は短期的にログデータを格納し、前記ログ保存装置は長期的にログデータを格納することを特徴とするロボットシステムの制御方法。
【請求項８】
請求項１から７のいずれか１項に記載のロボットシステムの制御方法において、前記ログ転送工程において、前記制御装置が、特定の時間幅の範囲のログデータを抽出して、前記ログ保存装置にログとして転送することを特徴とするロボットシステムの制御方法。
【請求項９】
請求項８に記載のロボットシステムの制御方法において、前記特定の時間幅を設定するログ時間幅設定工程を含むことを特徴とするロボットシステムの制御方法。
【請求項１０】
請求項１から９のいずれか１項に記載のロボットシステムの制御方法において、抽出した前記ログデータをデータ圧縮し、圧縮後のログデータが前記ログ保存装置にログとして転送されることを特徴とするロボットシステムの制御方法。
【請求項１１】
請求項１から１０のいずれか１項に記載の前記ログデータ生成工程と、前記ログ転送工程を前記制御装置に実行させるためのロボット制御プログラム。
【請求項１２】
請求項１１に記載のロボット制御プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１３】
請求項１から８のいずれか１項に記載のロボットシステムの制御方法により前記制御装置が前記ロボットアームを動作させて物品を製造することを特徴とする物品の製造方法。
【請求項１４】
ロボットアームと、前記ロボットアームの動作を制御する制御装置を備え、前記ロボットアームの動作に関するログをログ保存装置に転送するロボットシステムにおいて、
前記制御装置は、前記ロボットアームを動作させつつ、当該の動作に関するログデータを生成し一時記憶装置に格納し、ログ転送タイミングが到来した時、前記ロボットアームの動作に応じて、前記一時記憶装置に格納されている前記ログデータの一部を抽出して前記ログ保存装置にログとして転送することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームと、前記ロボットアームの動作を制御する制御装置を備え、前記ロボットアームの動作に関するログをログ保存装置に転送するロボットシステムの制御方法、およびロボットシステムに関する。
【背景技術】
【０００２】
近年、工場製造ラインでは大量生産向きのライン生産方式システムに代わり、消費者のニーズに柔軟に対応する多品種／少量生産を実現するセル生産システムが増加しつつある。セル生産システムでは、1人の作業者が生産用のセルと呼ばれる作業場所で複数の作業工程を処理して１つの製品（または製品の一部）を生産する。また、セル生産システムにおいて、作業者によるワークへの部品組付け作業をロボットセルに代替させ、ロボットセルによってセル生産システムを構成することも行われている。
【０００３】
ロボットセルでは、作業者が行っていた精密で複雑な難易度の高い組付け作業をロボットで代替する必要がある。このため、ロボットに力覚センサを配置し力覚制御を行いながらワークを組付けたり、組付けるワークによって工具を持ち替えて作業したりするロボット制御が用いられることがある。
【０００４】
ロボットセルのようなロボットシステムでは、障害発生時の解析作業のために、稼働情報をできるだけ長期間保存したいという需要がある。ここで、稼働情報とは、ロボットアームの関節やエンドエフェクタの制御情報、各種工具の制御情報の他、関節などの各部位に配置されたエンコーダや力覚センサ出力のようなセンサ情報を指す。このような稼働情報のデータファイルやデータストリームは一般に「ログ」などと呼ばれ、また、稼働情報の転送や記録処理のことを「ロギング」などと呼ぶことがある。稼働情報のロギングは、ロボットの制御装置に配置したディスク装置やフラッシュメモリなどの記憶装置に対して行うか、あるいはネットワークを介してロボット装置外部の管理端末に対して転送して保存させる。
【０００５】
この稼働情報のデータ量は、組付け作業の複雑化に伴い増大し、また、システムの稼働期間が長くなればそれだけ増大し、ロギングのためにロボット制御装置やネットワークないし外部の管理端末の負荷も増大する。この点に鑑み、例えば、ロボットの稼働情報のサイズが一定量に達した場合、もしくは一定時間が経過した場合の少なくともいずれかの場合に通信ネットワーク部を介して外部の管理端末へ送信する構成が提案されている（例えば下記の特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１０３４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の特許文献１の構成によると、間欠的に管理端末へのログ転送を行うため、ログ転送を行わない他の期間ではロギングに関する負荷を低減できると考えられる。しかしながら、特許文献１では発生したログを全て転送する構成を基本としている。このため、作業の複雑さや稼働期間の増大によって大量のログが発生するロボットシステムでは、ログ転送期間の負荷が過大となり、他の通常動作期間に影響を及ぼす可能性がある。また、ログ転送期間の長さに制限がある場合はログ全体を転送しきれなくなる可能性もある。
【０００８】
本発明の課題は、上記の問題を解決し、ロボットシステムにおいて、転送、あるいは記録すべき稼働情報（ログ）のデータ量を低減し、低負荷で稼働情報（ログ）を転送、あるいは記録できるようにすることにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明では、ロボットアームと、前記ロボットアームの動作を制御する制御装置を備え、前記ロボットアームの動作に関するログをログ保存装置に転送するロボットシステムの制御方法においては、前記制御装置が、前記ロボットアームを動作させつつ、当該の動作に関するログデータを生成し一時記憶装置に格納するログデータ生成工程と、前記制御装置が、ログ転送タイミングが到来した時、前記ロボットアームの動作に応じて、前記一時記憶装置に格納されている前記ログデータの一部を抽出して前記ログ保存装置にログとして転送するログ転送工程と、を含む構成を採用した。
【発明の効果】
【００１０】
上記構成によれば、ロボットアームの動作に応じて、一時記憶装置に格納されているログデータの一部を抽出してログ保存装置にログとして転送することができる。これにより、ロボットシステムにおいて、転送、あるいは記録すべき稼働情報（ログ）のデータ量を低減し、低負荷で稼働情報（ログ）を転送、あるいは記録することができる、という優れた効果がある。
【図面の簡単な説明】
【００１１】
【図１】本発明を実施可能なロボットシステムの機能構成を示したブロック図である。
【図２】本発明の実施例１として、図１のロボットシステムの具体的な構成を示したブロック図である。
【図３】図２のロボットシステムにおいて、ログ制御部によるログ制御手順を示したフローチャート図である。
【図４】図２のロボットシステムにおいて、長期保存ログ選択部によるログ選択手順を示したフローチャート図である。
【図５】図２のロボットシステムにおいて、長期保存ログ選択部によるログ選択の様子を模式的に示した説明図である。
【図６】本発明の実施例２として、図１のロボットシステムの具体的な構成を示したブロック図である。
【図７】図６のロボットシステムにおいて、ログ制御部によるログ制御手順を示したフローチャート図である。
【図８】図６のロボットシステムにおいて、長期保存ログ選択部によるログ選択手順を示したフローチャート図である。
【図９】図６のロボットシステムにおいて、長期保存ログ選択部によるログ選択の様子を模式的に示した説明図である。
【図１０】本発明の実施例１により処理可能なロボット装置のログを示し、（ａ）はロボットアーム動作ログの説明図、（ｂ）はエンドエフェクタ動作ログの説明図である。
【図１１】本発明の実施例２により処理可能なロボット装置のログを示し、（ａ）は力覚センサログの説明図、（ｂ）は工具動作ログの説明図である。
【図１２】本発明により処理可能なロボット装置のイベントログを示した説明図である。
【図１３】本発明を実施可能なロボットシステムの外観を示した説明図である。
【図１４】図２または図６のロボットシステムにおいて、長期保存ログの抽出対象となる特定部位および抽出時間幅の設定手順の一例を示したフローチャート図である。
【発明を実施するための形態】
【００１２】
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１３】
図１は、本発明を実施可能なロボットシステムの機能構成を示している。本発明の実施例１に係るロボット装置の概略構成を示す説明図である。ロボットシステム４００は、ロボット装置１００、制御装置２００、および管理端末３００を備えている。
【００１４】
ロボット装置１００は、例えば図１３に示すような組立作業等の作業を行う多関節のロボットである。ロボット装置１００は、垂直多関節型のロボットアーム１１と、このロボットアーム１１の先端に取り付けられたエンドエフェクタ１２を含む。図１３のロボットアーム１１は、基台１２１０上に、順次、関節Ｊ１〜Ｊ６で相互に可動支持されたリンク１２１１〜１２１６を有する、６軸垂直多関節の構成である。なお、各関節Ｊ１〜Ｊ６の内部には、関節Ｊ２に関して破線で示すような駆動機構１２３０が設けられる。この関節の駆動機構は、例えばモータのような回転駆動源と波動歯車機構などを用いた減速機を用いて構成される。
【００１５】
図１３の場合、制御装置２００には操作装置４０１が接続されている。操作装置４０１は、例えば関節Ｊ１〜Ｊ６の動作を制御するキーボードおよび各種情報表示用のディスプレイなどを有し、ロボット装置１００の設置現場でロボットアーム１１の動作を教示するために用いられる。このような操作装置４０１は、例えばティーチングペンダントなどと呼ばれる。
【００１６】
エンドエフェクタ１２は、例えばロボットアーム１１の先端のリンク１２１６に着脱可能なハンドやグリッパなどである。図１３では、エンドエフェクタ１２がフィンガ１２２０を有するハンド（あるいはグリッパ）のような把持機構から成る構成を例示している。制御装置２００により、エンドエフェクタ１２をロボットアーム１１に連動して制御することにより、例えばワークＷ１を把持してワークＷ２に組み付けすることにより、ロボットアーム１１に特定の物品を製造する操作を行わせることができる。
【００１７】
また、図１３に括弧書きで示すように、エンドエフェクタ１２はワークＷ１のみならず、例えば電動ドライバのような工具Ｔ１を把持して、この工具Ｔ１によってワーク（部品）の加工や組み立て操作を行うことができる。なお、この種の工具Ｔ１は、以下の説明ではエンドエフェクタ１２で例えば把持して用いられる仕様を前提とする。しかしながら、ロボットシステムの仕様によっては、エンドエフェクタ１２の１つとして直接ロボットアーム１１の先端のリンク１２１６に装着する場合も考えられる。
【００１８】
図１において、ロボットアーム１１には、精密な組み立てに必要な力覚制御を行えるよう力覚センサ１３を配置する場合がある。力覚センサ１３は、例えば歪みゲージなどを利用したトルクセンサなどによって構成される。力覚センサ１３は、例えばエンドエフェクタ１２のリンク１２１６に対する装着面近傍に配置される。力覚センサ１３は、ワークＷ１あるいは工具Ｔ１を操作した時に、例えばエンドエフェクタ１２の装着面に垂直な方向に働く反力や、エンドエフェクタ１２の中心軸廻りに働くトルクなどを検出する。ロボットアーム１１、エンドエフェクタ１２、あるいは工具Ｔ１は制御装置２００から所定のデータ形式を有する制御値を受信し、制御値に応じた動作を行うとともに、制御結果を制御装置２００に送信する。また、ロボットアーム１１、エンドエフェクタ１２、あるいは工具Ｔ１の動作中、力覚センサ１３は、例えば検出した力覚値を随時、制御装置２００に送信する。
【００１９】
また、ロボットアーム１１の各関節Ｊ１〜Ｊ６の駆動機構１２３０は、制御装置２００から送信される所定のデータ形式を有する制御値を受信し、制御値に応じた動作を行う。制御装置２００は、例えば後述のロボットプログラム解釈部２２によって、予め用意されたロボットプログラムを解釈し、ロボットアーム１１の先端などの所定の部位が所定の教示点に対応する位置姿勢を取るよう各関節Ｊ１〜Ｊ６の制御値を決定する。各関節Ｊ１〜Ｊ６の駆動機構１２３０の内部、例えば減速機の入力軸と出力軸には、これら各軸の回転位置を検出するエンコーダ（角度センサないし位置検出器）がそれぞれ配置される。ロボットアーム１１に関して配置されたセンサ類の出力も、上記の力覚センサ１３の場合と同様に、ロボットアーム１１の動作中、制御装置２００に逐次送信される。同様の角度センサないし位置検出器のようなエンコーダが、エンドエフェクタ１２や工具Ｔ１に関して配置されている場合には、それらの出力も動作中、制御装置２００に転送される。
【００２０】
図１において、制御装置２００は、制御部（演算部）としてＣＰＵ２０１を有する。ＣＰＵ２０１は、ロボットプログラム記録部に記録されているロボットプログラムに従って制御対象であるロボット装置１００の動作を制御する。図１の２０１のブロック内に示した小ブロックは、ＣＰＵ２０１が制御プログラムを実行することによって実現される制御機能を示している。
【００２１】
これらの機能ブロックには、ロボットプログラム記録部２１に格納されたロボットプログラムを解釈するロボットプログラム解釈部２２が含まれる。ロボット制御部２８は、ロボットプログラム解釈部２２の処理結果に応じてロボット装置１００に対する制御コマンドを送信するとともに、上記のようにロボット装置１００から送信される力覚センサ１３、エンコーダなどのセンサ類の出力を取得する。
【００２２】
本実施例のロボットシステム４００では、ロボット装置１００の稼働情報（稼働データ）としてのログの生成および保存処理を行う。このためのＣＰＵ２０１の機能ブロックは、ログ制御部２５、動作ログ生成部２７、長期保存ログ選択部２４に相当する。
【００２３】
動作ログ生成部２７は、ロボット制御部２８が入出力するロボットアーム１１の制御値や、ロボット装置１００から送信される力覚センサ１３、エンコーダなどのセンサ類の出力からロボットアーム１１の動作に関するログデータを生成する。このログデータは、例えば後述の図１０（ａ）、（ｂ）などに示すようにタイムスタンプ（日時データ）と、これに関連づけられたイベント内容から成る。タイムスタンプ（日時データ）と、関連づけられたイベント内容は、図示のように例えばロボットアーム１１の制御値とロボットアーム１１に設けられたセンサから得られた実際値であるセンサ情報の数値データである。また、このログデータは、可読文字（のみ）によって構成されたテキストデータや、あるいは特定のデータ幅を有するバイナリデータなどの形式で表現される。
【００２４】
動作ログ生成部２７が生成するログデータは、例えばＲＡＭ２０３のような一時記憶装置により構成された短期保存ログ記録部２６に格納される。ただし、動作ログ生成部２７は、後述の制御手順に示すように、ロボットアーム１１の全ての動作に関するログデータを生成するのではなく、ロボットアーム１１の動作内容に応じて必要なログデータのみを生成する。この動作ログ生成部２７の選択的なログデータ生成は、ログ制御部２５の制御に応じて行われる。
【００２５】
即ち、動作ログ生成部２７は、制御装置２００が、ロボットアーム１１を動作させつつ、当該の動作に関するログデータを生成し短期保存ログ記録部２６（一時記憶装置）に格納するログデータ生成工程を実行する機能ブロックに相当する。
【００２６】
短期保存ログ記録部２６に収集されたログデータは、適当なログ転送タイミングにおいて、長期保存ログ選択部２４によって特定の一部が抽出され、ネットワーク通信部２３を介してログ保存装置に相当する外部の管理端末３００に転送する。長期保存ログ選択部２４は、例えばログ転送タイミング（例えばその直前）において実行されていたロボットアームの動作に応じて、短期保存ログ記録部２６に収集されたログデータの特定の一部を抽出する。
【００２７】
即ち、長期保存ログ選択部２４は、ログ転送タイミングが到来した時、制御装置２００が、ロボットアーム１１の動作に応じて、短期保存ログ記録部２６（一時記憶装置）上のログデータの一部を抽出する機能ブロックに相当する。この機能ブロックは、さらに上記のように抽出したログデータを管理端末３００（ログ保存装置）にログとして転送する。これらの長期保存ログ選択部２４によるログデータの抽出、および転送によって、ログ転送工程が構成される。
【００２８】
なお、管理端末３００は、例えばロボットシステムの稼働情報を管理するためのサーバコンピュータのような形態で実装することができる。また、管理端末３００には、ＮＡＳのようなネットワーク記憶装置を用いることも考えられる。本実施例の管理端末３００は、制御装置２００のネットワーク通信部２３と通信可能なネットワーク通信部３１、および制御装置２００側から受信したログ（長期保存ログ）を記憶する長期保存ログ記録部３２を含む。長期保存ログ記録部３２は、例えばＨＤＤや光ディスク装置のような大量のデータを長期に渡り安定して保存可能な外部記憶装置から構成する。
【００２９】
なお、長期保存ログ選択部２４が抽出し、管理端末３００に転送するログのファイル、あるいはログのストリームは、所定のデータ圧縮方式によって圧縮して転送してもよい。あるいは、管理端末３００側で、受信した非圧縮のログのファイルまたはストリームをデータ圧縮した上で、圧縮後のログデータを長期保存ログ記録部３２に格納するようにしてもよい。これらのデータ圧縮方式としては、当然ながらテキストデータや、あるいはバイナリデータなどの形式で表現されたログを効率よく圧縮できるデータ圧縮方式を選択することができる。
【００３０】
なお、上記の一時記憶装置（ＲＡＭ２０３）は短期的にログデータを格納し、一方、ログ保存装置（管理端末３００）は長期的にログデータを格納する。
【００３１】
また、制御装置２００と管理端末３００の間のネットワーク構成によっては、保安上、ログを暗号化して送信する方式を取ってもよい。このようなログの暗号化方式には、各種の公知の公開鍵暗号方式などを利用することができる。制御装置２００と管理端末３００の間のネットワークは、有線接続のネットワークの他、無線接続のネットワークによって構成することもできる。
【００３２】
なお、以下では、ログ保存装置として、上記のような例えばサーバコンピュータのような形態の管理端末３００を用いるものとして説明する。しかしながら、長期保存ログ選択部２４が抽出したログの転送先は、（ネットワーク（リモート）接続ではない）ローカル接続のログ保存装置であってもよい。例えば、このようなローカル接続のログ保存装置としては、制御装置２００に内蔵された、あるいは外付けされたＨＤＤや光ディスク装置のような外部記憶装置が考えられる。このようなローカル接続のログ保存装置は、制御装置２００の内部またはロボット装置１００ないし制御装置２００の近傍に配置され、（ネットワーク（リモート）接続ではない）ローカル接続のインターフェースを介して制御装置２００と接続される。
【００３３】
以上のように、制御装置２００は、ロボットアーム１１を動作させつつ、当該の動作に関するログデータを生成し一時記憶装置に格納する（ログデータ生成工程）。そして、ログ転送タイミングが到来した時、制御装置２００が、ロボットアーム１１の動作に応じて、短期保存ログ記録部２６（一時記憶装置）上のログデータの一部を抽出し、管理端末３００（ログ保存装置）にログとして転送する（ログ転送工程）。
【００３４】
これにより、例えば、ロボットアーム１１の動作に応じて、短期保存ログ記録部２６（一時記憶装置）上のログデータのうち、必要な部分のログデータのみを抽出して、逐次、管理端末３００（ログ保存装置）にログとして転送し、保存させることができる。このため、ログ保存装置（管理端末３００）に保存すべきロボット稼働情報としてのログの容量を大きく削減し、ログ保存装置がネットワーク接続である場合には、ログの転送に必要な帯域幅を大きく縮減することができる。
【００３５】
長期保存ログ選択部２４が行うログデータ抽出の基準は、例えば、ログ転送タイミング（例えばその直前）において実行されていたロボットアーム動作に応じて、後の動作解析などに必要な部分がログ保存装置（管理端末３００）に残るように定める。例えば、ログ転送タイミング（例えばその直前）において実行されていたロボットアーム１１の特定の動作において用いられていたロボットアーム１１の特定部位に関するログデータを抽出する。
【００３６】
このように短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位は、任意のロボットアーム１１の部位であってよい。例えば、ロボットアーム１１の関節（の角度の制御値とエンコーダから得られた実際値）に関するログデータを短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送するような制御を行うことが考えられる。この関節（の角度の制御値とエンコーダから得られた実際値）に関するログデータは、例えばアームに関するログデータである。
【００３７】
また、ロボットアーム１１が、物品の組み立てに用いられる用途では、ログ転送タイミングが来た時に動作している特に手先の部位で実行している特定動作（に関するログデータ）は、後のログ解析時に特に重要である、と考えられる。このような見地では、短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送すべきログデータに係るロボットアーム１１の特定部位としては、ロボットアーム１１に装着されたエンドエフェクタ１２または工具Ｔ１が考えられる。
【００３８】
また、ログ転送タイミングは、ロボットプログラムの特定の単位の終了タイミングに取ることが考えられる。例えば、以下の実施例１および２では、設定されたロボットプログラムの１ライン（１ステップ）のような制御単位において、予め設定された特定部位に関する短期保存のログデータを抽出し、ログ保存装置に長期保存ログとして転送している。
【００３９】
また、ログ転送タイミングは、例えばＣＰＵ２０１のソフトウェア割り込みなどの機能を利用して生成することができる。また、ＲＴＣ（リアルタイムクロック）のような計時デバイスを用いて、一定のインターバルで間欠的にログ転送が行われるように制御しても良い。
【００４０】
さらに、これらのログ転送タイミングに加え、ロボットアーム１１の非常停止が行われた時にログ転送タイミングを発生させるような制御を行ってもよい。一般に、この種のロボットシステム４００は、ロボットアーム１１の非常停止は、例えば操作装置４０１に設けられた非常停止ボタン（詳細不図示）の操作を介してユーザの判断により行えるよう構成される。また、力覚センサ１３の力覚値や各関節Ｊ１〜Ｊ６のエンコーダの位置情報が異常な値を示した場合に制御装置２００のエラー判定によりロボットアーム１１の非常停止を行う場合も考えられる。また、ロボットアーム１１に加速度センサのようなセンサ類が設けられている場合は、例えばアームに加わる加速度（衝撃）に応じてロボットアーム１１の非常停止を行う制御も考えられる。ログ転送タイミングは、以上のような非常停止のいずれの場合にも発生させることができる。
【００４１】
また、ログデータを抽出する場合、例えば長期保存ログ選択部２４に特定の時間幅の範囲のログデータを抽出させ、ログ保存装置にログとして転送する制御を行う。これにより、ログ保存装置の記憶容量の削減、あるいはログ転送に必要なネットワークの帯域幅をさらに削減できる。なお、ログデータを抽出させる時間幅の範囲としては、例えば、上記特定部位の動作区間を含む、１秒〜数秒〜数１０秒程度の範囲が考えられる。この時間幅は、下記のように任意の値を設定できるようにしてもよい。
【００４２】
ここで、長期保存ログに対して、後に行われるログ解析の意図は様々に変化する可能性がある。このため、本実施例では、図１４に示すような設定手順により、ログ保存装置に長期保存ログとして転送すべきログデータに係るロボットアーム１１の特定部位を設定できるようにしておくとよい。図１４の設定手順では、長期保存ログ選択部２４がログデータを抽出する時間幅もユーザ（管理者）が設定できるようにしてある。図１４の手順は、例えば制御装置２００のＣＰＵ２０１によって実行される制御プログラムとして予めＲＯＭ２０２などに格納しておくことができる。
【００４３】
図１４のステップＳ５０１では、ロボットアーム１１（各関節）、エンドエフェクタ１２、工具Ｔ１のような短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位をユーザ（管理者）に設定させる。このような設定ユーザーインターフェースは、例えば操作装置４０１のキーボードおよびディスプレイか、管理端末３００のキーボードおよびディスプレイ（いずれも詳細不図示）を用いて構成することができる。このステップＳ５０１は、制御装置が、ログ転送工程において短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位を設定するログ対象部位設定工程に相当する。
【００４４】
また、図１４のステップＳ５０２では、長期保存ログ選択部２４がログデータを抽出する時間幅をユーザ（管理者）に設定させる。このユーザーインターフェースは、ステップＳ５０１と同様、操作装置４０１や管理端末３００のキーボードおよびディスプレイを用いて構成することができる。このステップＳ５０２は、長期保存ログ選択部２４がログデータを抽出して、ログ保存装置にログとして転送する特定の時間幅を設定するログ時間幅設定工程に相当する。
【００４５】
図１４のような設定手順により、予めロボットアーム１１（各関節）、エンドエフェクタ１２、工具Ｔ１のような短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位を設定することができる。また、長期保存ログ選択部２４がログデータを抽出して、ログ保存装置にログとして転送する特定の時間幅を設定することができる。
【００４６】
なお、後述の実施例１、２では、ログデータの抽出および転送に係るものとして設定されたロボットアーム１１の特定部位の動作開始時刻の前端から一定の時間（１１ａ）を減算して、抽出すべき時間的なログ抽出範囲（１３ａ）を求めている。あるいはさらに、後述の実施例１、２では、ロボットアーム１１のログや力覚センサ１３のログを含めて抽出、転送するために、さらに抽出範囲をログ抽出範囲（２３ａ）まで前方に延長している（図５、図９）。図１４のステップＳ５０２では、少なくともログデータの抽出および転送に係るものとして設定されたロボットアーム１１の特定部位のログデータを含む特定の時間幅を設定できればよい。例えば、図１４のステップＳ５０２では、上記のように、特定部位の動作開始時刻の前端から減算すべき一定の時間（１１ａ）や、それに応じて定まるログ抽出範囲（１３ａ：図５、図９）の全体の時間幅（の上限）を設定できるようにしておくことが考えられる。あるいはさらに、図１４のステップＳ５０２では、ロボットアーム１１のログや力覚センサ１３のログを含める場合に延長されるログ抽出範囲（２３ａ）の全体の時間幅（の上限）を設定できるようにしておくことが考えられる。
【００４７】
ここで、以下の実施例１および２では、それぞれエンドエフェクタ１２、工具Ｔ１（のいずれか）が短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位として選択されている。しかしながら、図１４のような設定手順により、複数の特定部位を、短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位として設定することもできる（下記の実施例２）。その場合には、設定された各特定部位に関する短期保存ログから抽出し、ログ保存装置に長期保存ログとして転送することになる。
【００４８】
例えば、図１４のような設定手順により、エンドエフェクタ（１２）が、ログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位として設定されている場合は、下記の実施例１のような制御が行われる。また、図１４のような設定手順により、例えばエンドエフェクタ（１２）および工具（Ｔ１）が、ログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位として設定されている場合は、下記の実施例２のような制御が行われる。
【００４９】
なお、下記の実施例１および２では、ロボットアーム１１（各関節）に関するログデータは、殊更にログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位として設定されていないものとする。ただし、下記の実施例１および２では、エンドエフェクタ１２または工具Ｔ１の動作に関連する稼働ログとしてロボットアーム１１（各関節）に関するログデータも併せて抽出できるようにしてある。
【実施例１】
【００５０】
図２は、本発明の実施例１に係るロボットシステム４００の制御系の構成を、制御装置２００の具体的な構成とともに示したものである。図２では、ログ転送タイミングが到来した時、例えばエンドエフェクタ１２が動作していた場合の制御に係る部材を中心に図示してある。
【００５１】
図２において、制御装置２００は、上述のように、コンピュータの中枢となる、制御対象であるロボット装置１００の動作を制御する制御部（演算部）としてのＣＰＵ２０１を備えている。さらに、制御装置２００は、記憶部として、ＲＯＭ２０２、ＲＡＭ２０３、およびＨＤＤ２０４（あるいはＳＳＤなど）を備えている。また、制御装置２００は、ロボット装置１００と通信するためのインターフェース２１１、および管理端末３００と通信するためのインターフェース２１２を備えている。インターフェース２１１は例えば各種のシリアル／パラレルバス方式のインターフェース、あるいはネットワークインターフェースなどから構成される。インターフェース２１２は、各種の有線ないし無線接続のネットワークインターフェース（ＩＥＥＥ８０２．ｘ）などから構成される。
【００５２】
ＣＰＵ２０１には、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４およびインターフェース２１１〜２１２が、バス２１０を介して接続されている。
【００５３】
ＲＯＭ２０２には、ＢＩＯＳやブートローダなどの起動プログラムと、ロボット制御に必要なファームウェア、各種制御定数などのデータが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１の演算処理結果等、各種データおよびロボット短期保存ログを一時的に記憶する記憶装置である。例えば、ＣＰＵ２０１が、ＲＡＭ２０３をワークエリアとして、ＲＯＭ２０２やＨＤＤ２０４に格納されたプログラム（２３０、２３１）を実行することにより、図１の各機能ブロック（２１〜２８）が構成されることになる。
【００５４】
ＨＤＤ２０４には、制御プログラム２３１、およびロボットプログラム２３０を格納することができる。ただし、制御データ類や各種プログラムの格納先は、本実施例において例示する記憶媒体には特定されない。
【００５５】
例えば、ＨＤＤ２０４には、ロボット制御プログラムや教示点データ、あるいは後述するログ関連の制御プログラムなどをファイル形式で格納することができる。また、ＨＤＤ２０４には、着脱式の各種光ディスクのような記録媒体、あるいは、着脱式のＳＳＤやＨＤＤのディスク装置、着脱式のフラッシュメモリに置換することもできる。このような各種の着脱式のコンピュータ読み取り可能な記録媒体は、例えば、本発明の一部を構成するアクセス制御プログラムを例えばＲＯＭ２０２の（Ｅ（Ｅ）ＰＲＯＭ領域）にインストールしたりアップデートしたりするのに利用できる。この場合、各種の着脱式のコンピュータ読み取り可能な記録媒体は、本発明を構成する制御プログラムを格納しており、これらの記録媒体それ自体も本発明を構成することになる。
【００５６】
制御プログラム２３１は、ＲＯＭ２０２に格納されたブートローダなどによってＲＡＭ２０３に読み込まれる基本ソフトウェアであり、例えばＯＳ（オペレーティングシステム）のレイヤに相当する。ロボットプログラム２３０は、この制御プログラム２３１のシステム上で動作する。ロボットプログラム２３０は、ロボットアーム１１に物品の組み立てなどの特定の動作を行わせるべく、ユーザ（管理者）（あるいはロボット装置１００のベンダ）などにより用意される。あるいは、ロボットプログラム２３０は、操作装置４０１によって、ロボットアーム１１の所定部位の取るべき位置姿勢に相当する教示点を順次指定することなどによっても作成することができる。
【００５７】
インターフェース２１１には、ロボット装置１００が接続されている。ＣＰＵ２０１は、バス２１０およびインターフェース２１１を介して、ロボットアーム１１およびエンドエフェクタ１２の各関節の駆動部に角度指令値（位置指令値）を出力し、ロボット装置１００の動作を制御する。また、制御装置２００は力覚センサ１３から出力される力覚値を受信し、ロボットアーム１１およびエンドエフェクタ１２の制御に使用する。インターフェース２１２には、管理端末３００が接続されている。このインターフェース２１２は、図１に示すネットワーク通信部２３として機能する。
【００５８】
本実施例の制御装置２００は、図２に示すように構成されている。そして、ＣＰＵ２０１がロボットプログラム２３０ないし制御プログラム２３１を実行することによりロボットプログラム解釈部２２、長期保存ログ選択部２４、ログ制御部２５、動作ログ生成部２７およびロボット制御部２８などの機能が実現される。
【００５９】
ＲＡＭ２０３は、例えば一時記憶装置であり、図１の短期保存ログ記録部２６として機能する。また、図２の構成では、図１のロボットプログラム記録部２１は、ＨＤＤ２０４によって実現されている。インターフェース２１２は、ネットワーク通信部２３として機能する。
【００６０】
本実施例では、ロボットアーム１１は制御装置２００のロボット制御部２８から受信した動作指示に基づき動作し、制御結果（例えば各関節Ｊ１〜Ｊ６のエンコーダ値）をロボット制御部２８に返送する。エンドエフェクタ１２は、制御装置２００のロボット制御部２８から受信した動作指示に基づき動作し、制御結果をロボット制御部２８に送信する。ロボットアーム１１の所定部位、例えばエンドエフェクタ１２の装着部位近傍などに配置された力覚センサ１３で検出された力覚値は制御装置２００のロボット制御部２８に対して送信される。
【００６１】
ここで、上記図２の構成を踏まえ、図１の各ブロックの機能につき説明する。ロボットプログラム記録部２１（ＨＤＤ２０４）には、制御装置２００でロボット装置１００を制御して、どのように動作させるかを記述したロボットプログラムが記録される。
【００６２】
例えば、図１２は、ロボットイベントログ（ＲＥ１〜ＲＥ４）の形式で、ロボットプログラムのステートメント（１００１、１００１…）と、各ステートメントに対応する教示点の位置姿勢（１０１０、１０１１、１０１２）の対応を示している。ここで、教示点は、ロボットアーム１１の基準位置（例えばエンドエフェクタの装着面中心など）の取るべき３次元（ｘ、ｙ、ｚ）座標と、各軸廻りの回転位置（ｔＸ、ｔＹ、ｔＺ）に相当する。
【００６３】
ロボットイベントログＲＥ１の制御は、制御装置２００が、ロボットアーム１１の基準位置の制御値（教示点）に対応する位置姿勢に移動（ＡＲＭ−ＭＯＶＥ）させるコマンドを送信（ＳＥＮＤ）する制御である。ロボットイベントログＲＥ２には、ロボットイベントログＲＥ１の動作指令に応じてロボット装置１００側から返送（ＲＥＣＶ）された内容で、ロボットアーム１１の基準位置の位置姿勢の実際値と、エラーレベルの値が含まれている（１０１０）。
【００６４】
ロボットイベントログＲＥ３とＲＥ４のハンドシェイクは、エンドエフェクタの動作（ＴＯＯＬ−ＭＯＶＥ）指令（１０１１）と、ロボット装置１００側から返送（ＲＥＣＶ）された実際値（１０１２）の各イベントになっている。この例では、エンドエフェクタの動作（ＴＯＯＬ−ＭＯＶＥ）指令（１０１１）には、エンドエフェクタの制御値として、目標の力覚値（Ｆｏｒｃｅ）とその制限値（Ｌｉｍｉｔ）の値が含まれている。また、ロボット装置１００側から返送（ＲＥＣＶ）された実際値（１０１２）には、エンドエフェクタの位置情報（Ｐｏｓ）とエラーレベルの値が含まれている。
【００６５】
図１２の例えばロボットアーム１１の制御値、および実際値は、いわゆる教示点表現で、特定のロボットアーム１１の基準位置の位置姿勢であり、この形式のアーム動作ログを後述のアーム動作ログで記録することもできる。また、図１２のロボットイベントログＲＥ１〜ＲＥ４のうち、ロボットプログラムのステートメントのロギングについては後述の制御では取り扱わないが、タイムスタンプと関連づけてロボットプログラムのステートメントをログデータとして保存してもよい。あるいは、後述のアーム動作ログの一部として、図１２の教示点形式のアーム動作ログと、ロボットプログラムのステートメントのログデータを、後述する特定部位に関するログデータとともに抽出して、ログ保存装置（管理端末３００）に転送してもよい。特にロボットプログラムのステートメントが、特定部位に関するログデータとともに抽出され、ログ保存装置（管理端末３００）に長期保存されていれば、後の解析が非常に容易になる、と考えられる。
【００６６】
ロボットプログラム解釈部２２は、ロボットプログラム記録部２１に保存されているロボットプログラムを読み出し、読みだしたロボットプログラムからロボットの制御ができる動作指示に変換し、ロボット制御部２８に指示する。ロボット制御部２８は、ロボットプログラム解釈部２２から受信した動作指示に応じてロボット装置１００を動作させる。
【００６７】
ロボットプログラム解釈部２２、ロボット制御部２８の機能分担は、これらを実現するＣＰＵ２０１の制御プログラムの実装方式により任意である。例えば、ロボットプログラム解釈部２２およびロボット制御部２８により、ロボットプログラム中のロボットアーム１１の基準位置の位置姿勢を記述した教示点表現から、直接、アームの各関節Ｊ１〜Ｊ６を制御できるより具体的な制御データを生成する。例えば、ロボットプログラム解釈部２２およびロボット制御部２８は、ロボットプログラム中に記述されたロボットアーム１１の基準位置の位置姿勢を実現する各関節Ｊ１〜Ｊ６の角度情報などの形式のデータを生成する。
【００６８】
また、ロボットプログラム解釈部２２の動作指示情報は、ログ制御部２５にも出力される。ログ制御部２５は、ロボットプログラム解釈部２２の動作指示情報に応じて例えば、ロボットアーム１１がその時点で実行している動作に応じてログデータを生成（図３）する。ロボットプログラム解釈部２２からログ制御部２５に与えられる動作指示情報は、例えば後述のログデータ生成（図３）が行える程度の指示情報であればよく、必ずしもロボット制御部２８に出力される動作指示情報と同じである必要はない。
【００６９】
また、ロボット装置１００から受信した制御結果やセンサ値を動作ログ生成部２７に送信する。ログ制御部２５は、ロボットプログラム解釈部２２から受信した動作指示を元に動作ログ生成部２７にログ保存指示を送信する。また長期保存ログ選択部に長期保存ログ作成指示を送信する。動作ログ生成部２７は、ロボット制御部２８から受信したロボット装置１００の制御結果や力覚センサ値をログ形式に変換し短期保存ログ記録部２６に送信する。ここで生成するログはログ制御部２５から受信したログ保存指示をもとに判断する。短期保存ログ記録部２６は、動作ログ生成部２７から受信したログ形式に変換されたデータを短期保存ログとして保存し、長期保存ログ選択部２４からログの読み出し要求があった場合には指定範囲のログを読み出して送信する。
【００７０】
長期保存ログ選択部２４は、ログ制御部２５からログ保存を指示された際に、短期保存ログ記録部２６に保存されているログから長期保存するべきログを抽出し、ネットワーク通信部２３に送信する。ネットワーク通信部２３は、管理端末３００と通信する。
【００７１】
図１の管理端末３００のネットワーク通信部３１は制御装置２００から長期保存ログを受信し、長期保存ログ記録部３２に格納する。長期保存ログ記録部３２は、例えばＨＤＤや各種光ディスク装置などから構成され、受信した長期保存ログを保存する。
【００７２】
次に、上記構成におけるロボット制御につき説明する。ここでは、上述の図１４のような設定手順により、エンドエフェクタ１２がログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位として設定されていた場合のログデータ抽出および転送制御につき説明する。
【００７３】
図３は、本実施例における制御装置２００のログ制御部２５によるログデータ生成工程を示している。この図３のログデータ生成工程は、１ライン（１ステップ）のロボットプログラムの実行を単位として記載されており、ロボットプログラムに応じてロボットアーム１１が動作する期間の間、実行される。図４は、図３の１ライン（１ステップ）のロボットプログラムの実行終了時、即ち、ログ転送タイミングが到来した時に実行されるログデータ抽出と転送制御を示している。
【００７４】
図３のステップＳ１０１において、ログ制御部２５は、短期記録すべきログを決定し動作ログ生成部２７に生成を指示する。ステップＳ１０２ではロボットプログラム解釈部２２から動作指令を受信するまで待機し、１行分の動作指令を受信した場合、当該のロボットアーム１１の動作を開始させる。
【００７５】
ステップＳ１０３〜Ｓ１０６はロボットプログラム解釈部２２より受信した動作指令によって分岐する。ステップＳ１０３においては受信した動作指令がアーム動作開始かどうかを判断し、アーム動作開始であった場合には動作ログ生成部２７に対してアーム動作ログの生成開始を指示する（Ｓ１０７）。
【００７６】
またステップＳ１０５において動作指令がアーム動作終了かどうかを判断し、アーム動作終了であった場合には動作ログ生成部２７に対してアーム動作ログの生成停止を指示する（Ｓ１０９）。同様にステップＳ１０４およびＳ１０８でエンドエフェクタのログ生成開始を指示し、ステップＳ１０６およびＳ１１０でエンドエフェクタのログ生成停止を指示する。
【００７７】
以上のようにして、ロボットアーム１１の動作に同期して、作動している部位に応じて、ロボットアーム１１の動作ログ、およびエンドエフェクタ１２の動作ログが生成されていく。生成されたこれらの動作ログ（ログデータ）は、短期保存ログとして短期保存ログ記録部２６（ＲＡＭ２０３）上に格納される。
【００７８】
図１０（ａ）は上述のようにして生成されたロボットアーム１１の動作ログの一例を示している。同図のロボットアーム１１の動作ログは、図示のようにイベントのタイムスタンプ１００１（日付および時刻）、各関節Ｊ１〜Ｊ６（図中の１軸〜６軸に相当）の目標位置（制御値）１００２、各関節Ｊ１〜Ｊ６（１軸〜６軸）の現在位置１００３から構成される。目標位置（制御値）１００２は、例えばロボット制御部２８を介してロボットアームに送信される制御値である。また、現在位置１００３は、ロボット制御部２８を介して取得される各関節Ｊ１〜Ｊ６（１軸〜６軸）のエンコーダ出力（位置情報）を用いて生成される。これら、目標位置（制御値）１００２、現在位置１００３は例えば制御クロックのパルス数によって表現される。
【００７９】
また、図１０（ｂ）は、上述のようにして生成されたエンドエフェクタ１２の動作ログの一例を示している。同図のエンドエフェクタ１２の動作ログは、タイムスタンプ１００１（日付および時刻）、目標位置（制御値）１００４、現在位置１００５から構成されており、各ログの数値の単位は例えば上記同様にパルス数である。
【００８０】
また、図１１（ａ）は、力覚センサ１３の出力値を記録した力覚センサログの構成を示している。力覚センサ１３については、例えばＲＡＭ２０３上に配置され、循環的に使用される力覚センサログ領域に逐次記録されるものとする。図１１（ａ）に示すように力覚センサログもタイムスタンプ１００１（日付および時刻）と、測定された力覚値（１００６、１００７）から構成されている。力覚値（１００６、１００７）は、力覚センサ１３の配置や構成によって異なるデータ表現で記録される。同図の例では、力覚値１００６は、例えば（エンドエフェクタ装着面中心を原点とする）３次元座標軸に沿った力（ＦＸ、ＦＹ、ＦＺ）で、単位はＮである。また、力覚値１００６７、例えば同３次元座標軸廻りのトルク（ＭＸ、ＭＹ、ＭＺ）で、単位はＮｍである。
【００８１】
なお、図１０〜図１１に例示したログデータのタイムスタンプ１００１において、時刻は「：」で分割された時：分：秒データである。特に秒データに関しては、ロボット制御やログ解析に必要な精度条件に併せて例えば小数点以下６桁、即ちマイクロ秒単位で記録されている。このような日時データは、不図示のＲＴＣのような計時デバイスを用いて生成することができる。なお、タイムスタンプ１００１は理解を容易にするため日付と時：分：秒データにより示してあるが、短期保存ログ記録部２６（ＲＡＭ２０３）上での記録形式は任意である。例えば、日時データは、ＲＡＭ２０３では過去の特定日時からの経過秒数などの形式で記録することができる。
【００８２】
図４は、本発明の実施例１に係る制御装置２００の長期保存ログ選択部２４による長期保存ログの抽出および転送工程を示したフローチャート図である。
【００８３】
図４の処理は、図３のステップＳ１１０の実行後にログ制御部２５から開始指示される。図４のステップＳ２０１では、図３のステップＳ１１０で終了したエンドエフェクタ動作に対応するエンドエフェクタ動作ログの開始時刻を検索する。
【００８４】
続いて、ステップＳ２０２では、ステップＳ２０１で検索した開始時刻から、特定時間幅を減算した時刻までの時間幅をログデータ抽出範囲とする。この特定時間幅は、上記のログデータ抽出の時間幅であり、例えば図１４のステップＳ５０２で予め設定済みであるものとする。
【００８５】
ステップＳ２０３ではステップＳ２０２で定めたログデータ抽出範囲のエンドエフェクタ動作ログを図１の短期保存ログ記録部２６から抽出する。ＣＰＵ２０１は、短期保存ログ記録部２６（ＲＡＭ２０３）上のログデータのタイムスタンプ１００１（図１０（ａ）、（ｂ））を参照することにより、ログデータ抽出範囲の特定時間幅に相当するログデータか否かを判定することができる。
【００８６】
ステップＳ２０３で抽出されたエンドエフェクタ動作ログは、ステップＳ２０４において図１のネットワーク通信部２３を介して管理端末３００に長期保存ログとして転送する。管理端末３００では、受信したログを長期保存ログ記録部３２に記録する。
【００８７】
次に、ステップＳ２０５にてステップＳ２０２で定義したログ抽出範囲にアーム動作ログが保存されていないかを検索する。ここでアーム動作ログが保存されている場合には、ステップＳ２０６にて対応するアーム動作ログを図１の短期保存ログ記録部２６から抽出する。抽出されたアーム動作ログは、ステップＳ２０７において図１のネットワーク通信部２３を介して管理端末３００に長期保存ログとして送信され、長期保存ログ記録部３２に記録される。
【００８８】
アーム動作ログを長期保存した場合には、ステップＳ２０２で定義したログ抽出範囲をアーム動作ログの区切りの良い記憶範囲まで拡張する（ステップＳ２０８）。ステップＳ２０９ではステップＳ２０２で定義もしくはステップＳ２０８で再定義されたログ記憶範囲に基づいて力覚センサログを抽出する。力覚センサログは、ステップＳ２１０において図１のネットワーク通信部２３を介して管理端末３００に長期保存ログとして送信され長期保存ログ記録部３２に記録される。ステップＳ２１０が終了すると、図３のＢに戻りステップＳ１０２にてロボットプログラム解釈部２２から次の動作指令を受信するまで待機する。
【００８９】
図５は、本実施例における長期保存ログ選択部２４によるログ選択態様を模式的に表したものである。図中のブロック状の表示は各ログデータの範囲を示し、エンドエフェクタ１２のログデータは同じ参照符号により示されている。また、図５の横方向は例えば時間軸に相当する。
【００９０】
図５において、図４に示した長期保存ログの抽出制御に関して、エンドエフェクタ動作の開始時間を検索し一定値の時間（１１ａ）を減算した時刻をログ抽出範囲１３ａとして定義する（ステップＳ２０１および２０２）。ログ抽出範囲１３ａの中から保存すべきエンドエフェクタ１２の動作ログを抽出し長期保存ログ記録部３２に記録する（ステップＳ２０３およびＳ２０４）。ログ抽出範囲１３ａにアーム動作ログが含まれる場合には、区切りの良い部分までアーム動作ログ２２ａを抽出し、長期保存ログ記録部３２に記録する（ステップ２０５〜２０７）。
【００９１】
即ち、アーム動作ログが存在した場合には、ログ抽出範囲１３ａをアーム動作ログ２２ａの記録範囲を考慮したログ抽出範囲２３ａまで遡って延長されることになる（ステップＳ２０８）。この時のログ抽出範囲２３ａの延長の基準としては、例えばログ抽出範囲１３ａが後端に掛っているアーム動作ログ（２２）の前端まで延長する、といった基準でよい。なお、アーム動作ログ２１ａはログ抽出範囲２３ａに含まれず、長期保存ログとしては転送されない。
【００９２】
また、力覚センサログ３１ａについては、ＲＡＭ２０３上に配置され、循環的に使用される力覚センサログ領域に逐次記録されている。この力覚センサログ３１ａに関しては、例えば上記のようにアーム動作ログ（２２）に関して延長されたログ抽出範囲２３ａの力覚センサのログデータを抽出して転送すればよい。
【００９３】
以上のようにして、本実施例によれば、ログ保存装置（管理端末３００）に長期保存ログとして転送すべきログデータに係る特定部位として指定し、その特定部位に関するログを抽出して、転送することができる。このため、稼動情報として必要なロボット装置１００のログの長期保存を維持しつつ、不要なログを削減することができ、制御装置２００の負荷低減および転送に必要な転送帯域を縮減できる。従来では、詳細なロボット動作ログを取得しようとした場合、人手でログから必要な部分を抽出するなどの手動編集作業が必要であったが、本実施例によれば、自動的に解析作業上、必要（重要）なロボットアームの部位に係るログのみを抽出することができる。
【００９４】
また、本実施例１では、エンドエフェクタを長期保存ログとして転送すべきログデータに係る特定部位として指定している。そして、エンドエフェクタに関するログのみならず、エンドエフェクタ動作に連動して、ロボットアーム、および力覚センサのログを抽出、転送することができる。例えば、ロボットセルのような稼働環境において、障害発生時などの解析で重要な稼動情報は、ワークの供給動作および組付け動作である。そして、このワークの供給動作および組付け動作は、ワークを直接、取り扱うエンドエフェクタによって実行される。従って、ワークの供給動作および組付け動作をロボットで実施する場合、解析作業上、エンドエフェクタ動作に紐付いた直前のロボット動作である、と考えられる。
【００９５】
そして、本実施例によれば、例えば上述の各ログ転送タイミングが到来した時に、エンドエフェクタに関するログを抽出し、転送することができる。また、エンドエフェクタ動作に連動して、ロボットアーム、および力覚センサのログを抽出し、転送することができる。このため、障害発生時などの解析で重要なエンドエフェクタに関するログ、およびロボットアーム、および力覚センサのログデータ（の部分のみ）を抽出し、ログ保存装置に転送することができる。従って、ワークの供給動作および組付け動作などの解析に特に重要なログを抽出し、他のそれ程重要度のないログデータの部位を転送しないで済むため、極めて効率よくロボット装置のログを転送し、長期保存することができる。本実施例によれば、ログの長期保存容量と転送帯域を縮減可能であるにも拘らず、解析に必要なログデータの部位は確実に保存されるため、後のログ解析作業を的確に行うことができる。
【００９６】
なお、図１４に示した抽出すべきログデータに係る特定部位や、抽出時間幅の設定は、ユーザ（管理者）の設定操作によって行うものとした。しかしながら、例えばロボットプログラムの言語仕様に特定部位や、抽出時間幅の設定を行えるコマンドやステートメントを用意してもよい。即ち、本実施例における特定部位を設定するログ対象部位設定工程や、ログ時間幅設定工程は、ユーザ設定操作により実現する他、ロボットプログラムのコマンドやステートメント記述によっても実現することができる。これにより、特定の組み立て動作を行わせるロボットプログラムを記述する場合、例えばコマンドやステートメントを利用してその特定の組み立て動作で特有の抽出すべきログデータに係る特定部位や、抽出時間幅の設定を行うことができる。従って、特定の組み立て動作ごとに、例えば自動的に異なるロボット動作ログの抽出態様を制御することができ、ユーザ（管理者）の負担を軽減することができる。
【実施例２】
【００９７】
本実施例では、上述の図１４のような設定手順により、エンドエフェクタ（１２）に加え、工具（Ｔ１）がログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位として設定されていた場合のログデータ抽出および転送制御につき説明する。
【００９８】
図６は上記実施例１の図２に対応し、一部、本実施例に係る部位を明示的に示したブロック図である。図６において図２と異なる部分は、ロボット装置１００内にさらに工具１４（上述のＴ１）が明示されている点である。その他の構成は、図２と同じであり、ここでは詳細な説明を省略する。図１３のアームの具体的な構成、図１の機能的なブロック構成などは、本実施例でも同様であるものとする。
【００９９】
本実施例の図７および図８は、上記実施例１の図３および図４にそれぞれ対応する。図７は本実施例における制御装置２００のログ制御部２５によるログデータ生成工程を示している。この図７のログデータ生成工程は、１ライン（１ステップ）のロボットプログラムの実行を単位として記載されており、ロボットプログラムに応じてロボットアーム１１が動作する期間の間、実行される。
【０１００】
図８は、図７の１ライン（１ステップ）のロボットプログラムの実行終了時、即ち、ログ転送タイミングが到来した時に実行される主に工具１４（Ｔ１）に関するログデータ抽出と転送制御を示している。なお、図７のエンドエフェクタ動作終了時（図７のステップＳ３０７、Ｓ３１３）時には、図４に示したエンドエフェクタに関するログデータ抽出と転送制御が行われる。
【０１０１】
実施例２では、図６のように、工具１４（Ｔ１）が存在していることが実施例１と異なる。ロボットセルでは多能工を実現するために、組立工程において作業に適した工具をエンドエフェクタ１２が把持して用いることがある。この種の工具には、例えばネジ締めを行う（電動）ドライバや、微小部品を把持するためのピンセットを装着した電動チャックなどがある。
【０１０２】
本実施例で実行されるロボットプログラム（図７）は、エンドエフェクタ１２が工具１４（Ｔ１）を把持して、工具１４（Ｔ１）による組み立て動作（例えばビスの締め付けなど）を行うように記述されているものとする。以下、図７および図８の制御手順につき説明するが、図３および図４と重複する部分については、ステップ番号の対応のみ示し、上記実施例１で説明済みのステップの内容の詳細については説明を省略するものとする。
【０１０３】
図７のロボット制御（ログデータ生成工程を含む）の全体の流れは図３と同様であり、ステップＳ３０１では、ログ制御部２５が短期記録すべきログを決定し動作ログ生成部２７に生成を指示する。ステップＳ３０２ではロボットプログラム解釈部２２から動作指令を受信するまで待機し、１行分の動作指令を受信した場合、当該のロボットアーム１１の動作を開始させる。
【０１０４】
図７のステップＳ３０２〜Ｓ３１４のループの構成は、図３のステップＳ１０２〜Ｓ１１０として示したループの構成に、工具関係のステップが追加されたものとなっている。この図７の（図３にはない）工具関係のステップは、ステップＳ３０５、Ｓ３１１、Ｓ３０８、Ｓ３１４である。その他のステップは図３と同様で、ステップ番号の対応は以下のようになっている。
【０１０５】
図７のステップＳ３０３、Ｓ３０９は、図３のステップＳ１０３、Ｓ１０７に対応し、アーム動作に応じてアーム動作ログを短期保存ログデータとして生成開始するステップである。図７のステップＳ３０４、Ｓ３１０は、図３のステップＳ１０４、Ｓ１０８に対応し、エンドエフェクタ動作に応じてエンドエフェクタ動作ログを短期保存ログデータとして生成開始するステップである。
【０１０６】
また、図７のステップＳ３０６、Ｓ３１２は、図３のステップＳ１０５、Ｓ１０９に対応し、アーム動作終了に応じてアーム動作ログの生成を停止するステップである。また、図７のステップＳ３０７、Ｓ３１３は、図３のステップＳ１０６、Ｓ１１０に対応し、エンドエフェクタ動作終了に応じてエンドエフェクタ動作ログの生成を停止するステップである。
【０１０７】
なお、エンドエフェクタ動作終了に応じてエンドエフェクタ動作ログの生成を停止（ステップＳ３１３）した場合は、図４のステップＳ２０１に分岐する。そして、図４の制御により、上記実施例１と同様の（主に）エンドエフェクタに関するログデータの抽出、およびログ保存装置（管理端末３００）への転送処理を行う。
【０１０８】
一方、工具１４（Ｔ１）に関係する動作判定と、ログデータの生成開始、生成停止も、上記同様に行われる。まず、図７のステップＳ３０５では、受信した動作指令が工具動作開始かどうかを判断し、工具動作開始であった場合には、ステップＳ３１１において動作ログ生成部２７に対して工具動作ログの生成開始を指示する。また、ステップＳ３０８において動作指令が工具動作終了かどうかを判断し、工具動作終了であった場合にはステップＳ３１４において動作ログ生成部２７に対して工具動作ログの生成停止を指示する。
【０１０９】
そして、工具動作終了に応じて工具動作ログの生成を停止（ステップＳ３１４）した場合は、図８のステップＳ４０１に分岐し、主に工具に関するログデータの抽出、およびログ保存装置（管理端末３００）への転送処理を行う。
【０１１０】
図８の工具に関するログデータの抽出、およびログ保存装置（管理端末３００）への転送処理は、図４のエンドエフェクタに関するログデータの抽出、およびログ保存装置（管理端末３００）への転送処理とほぼ同様の流れになっている。図４の２００番台のステップ番号に（ほぼ）相当するステップは図８では４００番台のステップ番号により示してある。図８では、ステップＳ４０１〜４０４が工具動作を起点としたログ保存フローとなっている点が異なる。しかしながら、ステップＳ４０５以降のアームログおよび力覚センサログのログデータを抽出し、ログ保存装置（管理端末３００）へ転送する処理は前述の実施例１とほぼ同じである。
【０１１１】
ステップＳ４０１では、図７のステップＳ３１４で終了した工具１４（Ｔ１）の動作に対応する工具動作ログの開始時刻を検索する。
【０１１２】
続いて、ステップＳ４０２では、ステップＳ４０１で検索した開始時刻から、特定時間幅を減算した時刻までの時間幅をログデータ抽出範囲とする。この特定時間幅は、上記のログデータ抽出の時間幅であり、例えば図１４のステップＳ５０２で予め設定済みであるものとする。
【０１１３】
ステップＳ４０３ではステップＳ４０２で定めたログデータ抽出範囲の工具動作ログを図１の短期保存ログ記録部２６から抽出する。ＣＰＵ２０１は、短期保存ログ記録部２６（ＲＡＭ２０３）上のログデータのタイムスタンプ１００１（図１１（ｂ））を参照することにより、ログデータ抽出範囲の特定時間幅に相当するログデータか否かを判定することができる。
【０１１４】
ステップＳ４０３で抽出された工具動作ログは、ステップＳ４０４において図１のネットワーク通信部２３を介して管理端末３００に長期保存ログとして転送する。管理端末３００では、受信したログを長期保存ログ記録部３２に記録する。
【０１１５】
図９は上記実施例１の図５に相当し、本実施例に係る長期保存ログ選択部によるログ選択方法を模式的に示している。図９中のブロック状の表示は各ログデータの範囲を示し、工具１４のログデータは同じ参照符号により示されている。また、図５の横方向は例えば時間軸に相当する。
【０１１６】
上記の実施例１ではログ抽出範囲２３ａをエンドエフェクタ動作を起点として算出しているのに対し、図９では工具動作（１４）を起点として算出している点が異なっているが、その他の態様については図５と同様である。なお、図９ではエンドエフェクタ動作ログの図示が空白となっているが、エンドエフェクタ動作ログについては、上記のステップＳ３１３から図４の制御への分岐によって、図５と同様の態様でログデータ抽出、および転送が行われることになる。
【０１１７】
以上のように、本実施例２に示した通り、エンドエフェクタ（１２）に加え、工具（１４、Ｔ１）もログ保存装置に長期保存ログとして転送すべきログデータに係る特定部位として設定しておくことができる。これにより、エンドエフェクタ動作のみならず工具動作にも連動してこれらの特定部位に関するログデータを短期保存ログを一時記憶装置（ＲＡＭ２０３）から抽出し、ログ保存装置（管理端末３００）に転送することができる。また、ロボットアームと力覚センサのログも関連づけて抽出し、ログ保存装置（管理端末３００）に転送することができる。多工程を実現するロボットセルのような用途では、１種類のエンドエフェクタで組付け作業を行うことは困難であり、必要に応じて工具をエンドエフェクタが把持して作業を行うことになる。本実施例によれば、このような用途においても、エンドエフェクタのみならず、工具に関するログを確実に抽出して、長期保存ログとして転送することができるため、障害発生時の解析作業に必要なデータを取りこぼすことなく記録することができる。長期保存ログの長期保存容量と転送帯域の縮減効果などの効果は、本実施例でも上記の実施例１とほぼ同様である。
【０１１８】
なお、上記の実施例１および実施例２では、ログデータを抽出し、ログ保存装置に長期保存ログとして転送すべきログ転送タイミングは、ロボットプログラムの特定の単位の終了タイミングに取っている。より具体的には、上記実施例１および２では、設定されたロボットプログラムの１ライン（１ステップ）のような制御単位において、予め設定された特定部位に関する短期保存のログデータを抽出し、ログ保存装置に長期保存ログとして転送している。これに対して、上述の定期的なタイマ割り込みや、非常停止によって、ログデータを抽出し、長期保存ログとして転送するログ転送タイミングを発生する場合にも上述の制御を利用できる。例えば、定期的なタイマ割り込みや、非常停止などの事象が生じた時に、タイマ割り込みや例外処理（ソフトウェア割込みなど）に応じて、直ちに図４や図８に示したログデータの抽出および転送処理に分岐するよう制御することができる。その場合、図３や図７の短期ログデータの生成処理は、上述同様にロボットアーム１１の通常動作に応じて実行させるのはもちろんである。
【０１１９】
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２０】
１１…ロボットアーム、１２…エンドエフェクタ、１３…力覚センサ、２６…短期保存ログ記録部、１００…ロボット装置、２００…制御装置、２０１…ＣＰＵ（制御部）、２０３…ＲＡＭ（一時記憶装置）、２０４…ＨＤＤ（外部記憶装置）、２３０…ロボットプログラム、２３１…制御プログラム、３００…管理端末（ログ保存装置）、４００…ロボットシステム。
【図１】
2017007036.tif 000003
【図２】
2017007036.tif 000004
【図３】
2017007036.tif 000005
【図４】
2017007036.tif 000006
【図５】
2017007036.tif 000007
【図６】
2017007036.tif 000008
【図７】
2017007036.tif 000009
【図８】
2017007036.tif 000010
【図９】
2017007036.tif 000011
【図１０】
2017007036.tif 000012
【図１１】
2017007036.tif 000013
【図１２】
2017007036.tif 000014
【図１３】
2017007036.tif 000015
【図１４】
2017007036.tif 000016