(57)【要約】      （修正有）【課題】レーザセンサのセンシング結果に基づいて作業ツールを移動させる制御において、センシング結果に応じた情報をメモリに蓄積できない事態が生じないようにすることができるロボット制御装置等を提供する。【解決手段】ロボット制御装置１は、メモリ１３と、ロボット２の作業ツール４の作業に先行して作業対象物６の形状を検出するレーザセンサ５によるセンシング結果を受け付け、センシング結果に応じた情報をメモリ１３に蓄積する受付部１２と、メモリ１３の空き容量がなくなる場合に、メモリ１３の情報を削除するメモリ管理部１４と、教示データに基づいて作業ツール４を移動させると共に、メモリ１３で記憶されているセンシング結果に応じた情報によって作業ツール４の移動を補正する制御部１５とを備える。このようにして、センシング結果に応じた情報をメモリ１３に蓄積できない事態が生じないようにすることができる。【選択図】図１
2020203349.tif 000002
【特許請求の範囲】
【請求項１】
教示データが記憶される記憶部と、
メモリと、
作業ツール及び当該作業ツールの作業に先行して作業対象物の形状を検出するレーザセンサを備えたロボットから、前記レーザセンサによるセンシング結果を受け付け、当該センシング結果に応じた情報を前記メモリに蓄積する受付部と、
前記メモリの空き容量がなくなる場合に、前記メモリに記憶されているセンシング結果に応じた情報を削除するメモリ管理部と、
前記教示データに基づいて前記作業ツールを移動させると共に、前記メモリで記憶されているセンシング結果に応じた情報によって前記作業ツールの移動を補正する制御部と、を備えたロボット制御装置。
【請求項２】
前記メモリ管理部は、前記メモリの空き容量がなくなる場合に、前記メモリに記憶されているセンシング結果に応じた情報を削減すると共に、前記センシング結果に応じた情報が前記メモリに蓄積される周期を長くする、請求項１記載のロボット制御装置。
【請求項３】
前記メモリ管理部は、前記メモリの空き容量がなくなる場合に、前記メモリに記憶されているセンシング結果に応じた情報を１／２に削減すると共に、前記センシング結果に応じた情報が前記メモリに蓄積される周期を２倍にする、請求項２記載のロボット制御装置。
【請求項４】
前記受付部は、前記センシング結果に基づいて推定された前記作業対象物の形状と、当該センシング結果との差分のばらつきの程度を示す散布度を、当該センシング結果に応じた情報に対応付けて前記メモリに蓄積し、
前記メモリ管理部は、前記メモリの空き容量がなくなる場合に、前記メモリに記憶されているセンシング結果に応じた情報のうち、最大の散布度に対応付けられているセンシング結果に応じた情報を削除する、請求項１記載のロボット制御装置。
【請求項５】
請求項１から請求項４のいずれか記載のロボット制御装置と、
当該ロボット制御装置によって制御される前記ロボットと、を備えたロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レーザセンサのセンシング結果に基づいて作業ツールを移動させるロボット制御装置等に関する。
【背景技術】
【０００２】
ロボットによる溶接中、ワークの熱歪みによって狙い位置がずれ、溶接欠陥が発生することがある。そこで、レーザセンサによって継手の位置を検出し、ロボットによる狙い位置補正（溶接線倣い）を行うことによって、位置ずれを解消している（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−０４２１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
溶接線倣いなどの倣い作業を行う場合には、レーザセンサによる高周期のセンシングに応じた情報をメモリで保持し、そのメモリで保持している情報を用いて、倣い作業を行うことになる。メモリの情報は、作業ツールがその情報に応じた位置に到達するまで保持されている必要がある。そのため、メモリへの情報の蓄積の周期を調整することによって、メモリの容量が不足しないようにする必要があるが、そのような調整を手作業で行うと、非常に煩雑な作業になるという問題があった。一方、そのような調整を行わなかった場合には、センシングに応じた情報を蓄積する際に、メモリに空き容量がなく、情報を蓄積できない事態が生じてしまうという問題がある。
【０００５】
本発明は、上記課題を解決するためになされたものであり、レーザセンサのセンシング結果に基づいて作業ツールを移動させる制御において、センシング結果に応じた情報をメモリに蓄積できない事態が生じないようにすることができるロボット制御装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明によるロボット制御装置は、教示データが記憶される記憶部と、メモリと、作業ツール及び作業ツールの作業に先行して作業対象物の形状を検出するレーザセンサを備えたロボットから、レーザセンサによるセンシング結果を受け付け、センシング結果に応じた情報をメモリに蓄積する受付部と、メモリの空き容量がなくなる場合に、メモリに記憶されているセンシング結果に応じた情報を削除するメモリ管理部と、教示データに基づいて作業ツールを移動させると共に、メモリで記憶されているセンシング結果に応じた情報によって作業ツールの移動を補正する制御部と、を備えたものである。
このような構成により、適宜、メモリで記憶されているセンシング結果に応じた情報を削除することによって、センシング結果に応じた情報をメモリに蓄積できない事態が生じないようにすることができる。また、メモリの容量が不足しないようにするため、メモリへの情報の蓄積の周期について手作業で調整する必要もなく、その調整のための煩雑な作業を行わなくてよくなるというメリットもある。
【０００７】
また、本発明によるロボット制御装置では、メモリ管理部は、メモリの空き容量がなくなる場合に、メモリに記憶されているセンシング結果に応じた情報を削減すると共に、センシング結果に応じた情報がメモリに蓄積される周期を長くしてもよい。
このような構成により、センシング結果に応じた情報をメモリに蓄積できない事態が生じないようにすることができると共に、メモリへの情報の蓄積の周期を自動的に変更することによって、メモリの容量が不足する事態が生じないようにすることもできる。
【０００８】
また、本発明によるロボット制御装置では、メモリ管理部は、メモリの空き容量がなくなる場合に、メモリに記憶されているセンシング結果に応じた情報を１／２に削減すると共に、センシング結果に応じた情報がメモリに蓄積される周期を２倍にしてもよい。
このような構成により、情報の削減後において、メモリで記憶されている情報の周期と、メモリに新たに蓄積される情報の周期とを合わせることができる。
【０００９】
また、本発明によるロボット制御装置では、受付部は、センシング結果に基づいて推定された作業対象物の形状と、センシング結果との差分のばらつきの程度を示す散布度を、センシング結果に応じた情報に対応付けてメモリに蓄積し、メモリ管理部は、メモリの空き容量がなくなる場合に、メモリに記憶されているセンシング結果に応じた情報のうち、最大の散布度に対応付けられているセンシング結果に応じた情報を削除してもよい。
このような構成により、メモリから削除する情報を、信頼性の低い情報にすることができる。したがって、メモリの情報を削除することによって、倣い作業の精度が低下しないようにすることができる。
【００１０】
また、本発明によるロボット制御システムは、ロボット制御装置と、ロボット制御装置によって制御されるロボットと、を備えたものである。
【発明の効果】
【００１１】
本発明によるロボット制御装置等によれば、センシング結果に応じた情報をメモリに蓄積できない事態が生じないようにすることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態によるロボット制御装置の構成を示す模式図
【図２】同実施の形態によるロボット制御装置の動作を示すフローチャート
【図３】同実施の形態におけるメモリの情報の削除処理の一例を示すフローチャート
【図４】同実施の形態におけるメモリの情報の削除処理の一例を説明するための図
【図５】同実施の形態におけるメモリの情報の削除処理の一例を示すフローチャート
【図６】同実施の形態における散布度について説明するための図
【図７】同実施の形態におけるメモリの情報の削除処理の一例を説明するための図
【発明を実施するための形態】
【００１３】
以下、本発明によるロボット制御システム、及びロボット制御装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態によるロボット制御装置は、センシング結果に応じた情報が蓄積されるメモリの空き容量がなくなる場合に、メモリの情報を削除するものである。
【００１４】
図１は、本実施の形態によるロボット制御システム１００の構成を示すブロック図である。本実施の形態によるロボット制御システム１００は、ロボット制御装置１と、ロボット２と、溶接電源３とを備える。
【００１５】
ロボット制御装置１は、ロボット２及び溶接電源３を制御する。ロボット２は、モータによって駆動される関節によって連結された複数のアームを有するマニピュレータを有しており、そのマニピュレータの先端に、作業ツール４と、作業ツール４の作業に先行して作業対象物（ワーク）６の形状を検出するレーザセンサ５とを有している。ロボット２は、特に限定されるものではないが、例えば、垂直多関節ロボットであってもよい。レーザセンサ５は、作業対象物６にライン状のレーザ光を照射し、そのレーザ光を撮像することによって作業対象物６までの複数のサンプリング点の距離を測定するレーザセンサであってもよい。また、レーザセンサ５は、ライン状に走査を行うことによって作業対象物６までの複数のサンプリング点の距離を測定する走査型のレーザセンサであってもよい。レーザセンサ５によって、例えば、開先などの溶接箇所の形状を取得することができる。なお、本実施の形態では、作業ツール４が溶接トーチであり、作業ツール４によって行われる作業が溶接である場合について主に説明する。また、作業ツール４やレーザセンサ５を備えたロボット２の構成はすでに公知であり、その詳細な説明を省略する。
【００１６】
溶接電源３は、溶接で用いられる高電圧を作業ツール（溶接トーチ）４とワーク６とに供給する。また、溶接に溶接ワイヤが用いられる場合には、溶接電源３は、溶接ワイヤの送給に関する制御を行ってもよい。なお、溶接電源３の構成はすでに公知であり、その詳細な説明を省略する。
【００１７】
ロボット制御装置１は、レーザセンサ５によるセンシング結果に基づいて、倣い作業を行うようにロボット２を制御するものであり、図１で示されるように、記憶部１１と、受付部１２と、メモリ１３と、メモリ管理部１４と、制御部１５とを備える。
【００１８】
記憶部１１には、教示データが記憶される。教示データによって、ロボット２の作業ツール４の移動経路（例えば、位置や姿勢等）が示されるものとする。なお、教示データには、溶接の開始点や終了点、溶接電流や溶接電圧等の溶接条件に関する情報が含まれていてもよい。
【００１９】
記憶部１１に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が記憶部１１で記憶されるようになってもよく、通信回線等を介して送信された情報が記憶部１１で記憶されるようになってもよく、または、入力デバイスを介して入力された情報が記憶部１１で記憶されるようになってもよい。例えば、ロボット制御装置１に接続されたティーチングペンダント等を用いて入力された教示データが記憶部１１で記憶されてもよい。記憶部１１での記憶は、ＲＡＭ等における一時的な記憶でもよく、または、長期的な記憶でもよい。記憶部１１は、所定の記録媒体（例えば、半導体メモリや磁気ディスクなど）によって実現されうる。
【００２０】
受付部１２は、ロボット２から、レーザセンサ５によるセンシング結果を受け付け、そのセンシング結果に応じた情報をメモリ１３に蓄積する。メモリ１３に蓄積される情報は、所定の周期ごとの情報であってもよい。レーザセンサ５によるセンシング結果は、例えば、作業対象物６に照射されたレーザ光の複数の点に関する高さ方向の距離（例えば、レーザセンサ５から作業対象物６までの距離）であってもよい。センシング結果は、２次元または３次元の撮像センサ（例えば、ＣＣＤアレイ等）によって取得されてもよい。センシング結果は、通常、作業対象物６の形状を示す複数のサンプリング点の情報であるため、受付部１２は、そのようなセンシング結果から、作業対象物６の形状を作成し、その作成した形状を用いて、作業ツール４によって作業が行われる位置、例えば、作業線（溶接線）の位置を取得してもよい。その位置を、以下、特徴点の位置と呼ぶこともある。例えば、重ね継手の溶接を行う場合には、センシング結果によって示される段差の位置が特徴点の位置となる。また、例えば、突き合わせ継手の溶接を行う場合には、センシング結果によって示される開先の位置が特徴点の位置となる。
【００２１】
また、センシング結果は、レーザセンサ５の座標系における位置を示すものであるため、受付部１２は、その座標系における位置を、所定の基準座標系における位置に変換してもよい。その基準座標系は、例えば、ロボット２の座標系であってもよい。そのため、受付部１２は、制御部１５から作業ツール４の基準座標系における位置及び姿勢を受け取り、その受け取った位置及び姿勢とセンシング結果とを用いて、基準座標系における特徴点の位置を取得してもよい。メモリ１３に蓄積される、センシング結果に応じた情報は、例えば、この基準座標系における特徴点の位置を示す情報であってもよく、センシング結果そのものであってもよく、センシング結果に応じたその他の情報であってもよい。本実施の形態では、センシング結果に応じた情報が、基準座標系における特徴点の位置を示す情報である場合について主に説明する。
【００２２】
センシング結果は、例えば、所定の周期ごとにレーザセンサ５によって取得された情報であってもよい。また、メモリ１３に蓄積される情報の周期は、そのセンシング結果の取得される周期と同じであってもよく、または、異なっていてもよい。後者の場合には、受付部１２は、例えば、レーザセンサ５からセンシング結果を受け付けてから、そのセンシング結果に応じた情報をメモリ１３に蓄積するまでに、情報を間引く処理（ダウンサンプリング）を行ってもよい。例えば、レーザセンサ５から受け付けるセンシング結果が２０（ｍｓ）ごとの情報であり、また、メモリ１３に蓄積する情報の周期が４０（ｍｓ）である場合には、受付部１２は、レーザセンサ５から受け付けたセンシング結果を半分に間引いてから基準座標系における特徴点の位置を示す情報を取得し、メモリ１３に蓄積してもよい。
【００２３】
また、後述するように、受付部１２は、センシング結果に基づいて推定された作業対象物６の形状と、そのセンシング結果との差分のばらつきの程度を示す散布度を、そのセンシング結果に応じた情報に対応付けてメモリ１３に蓄積してもよい。散布度は、特に限定されるものではないが、例えば、分散や標準偏差等であってもよい。散布度や、その散布度の取得方法等については後述する。
【００２４】
メモリ１３では、倣い作業で用いられる情報が一時記憶される。具体的には、メモリ１３には、前述のように、センシング結果に応じた情報が記憶される。また、前述のように、メモリ１３には、センシング結果に応じた情報に対応付けられた散布度も記憶されてもよい。
【００２５】
メモリ管理部１４は、メモリ１３の空き容量がなくなる場合に、メモリ１３に記憶されているセンシング結果に応じた情報を削除する。この情報の削除は、通常、メモリ１３で記憶されている一部の情報の削除である。本実施の形態では、その削除の方法として、（１）メモリ管理部１４が、メモリ１３に記憶されているセンシング結果に応じた情報を削減すると共に、センシング結果に応じた情報がメモリ１３に蓄積される周期を長くする方法と、（２）メモリ管理部１４が、メモリ１３に記憶されているセンシング結果に応じた情報のうち、最大の散布度に対応付けられているセンシング結果に応じた情報を削除する方法とについて後述するが、メモリ管理部１４は、それら以外の方法によってメモリ１３の情報を削除してもよい。
【００２６】
なお、メモリ管理部１４が、メモリ１３の情報を削除するタイミングは問わない。例えば、メモリ１３の空き容量がなくなった場合に、メモリ管理部１４は、メモリ１３の情報を削除してもよい。また、メモリ１３の空き容量があらかじめ決められた閾値より少なくなった場合に、メモリ管理部１４は、メモリ１３の情報を削除してもよい。本実施の形態では、メモリ１３の空き容量がなくなったことに応じて、メモリ管理部１４が、メモリ１３の情報を削除する場合について主に説明する。
【００２７】
また、メモリ管理部１４が１回に削除する情報の量は問わない。例えば、メモリ管理部１４は、メモリ１３の空き容量がなくなる場合に、センシング結果に応じた１個の情報（すなわち、１個の特徴点に関する情報）を削除してもよく、センシング結果に応じた２個以上の情報（すなわち、２個以上の特徴点に関する情報）を削除してもよい。
【００２８】
制御部１５は、記憶部１１で記憶されている教示データに基づいて作業ツール４を移動させると共に、メモリ１３で記憶されているセンシング結果に応じた情報によって作業ツール４の移動を補正する。このようにして、いわゆる倣い補正が行われることになる。より具体的には、制御部１５は、作業ツール４の移動に先行して、教示データに基づいて、作業ツール４の目標位置及び目標姿勢を算出する。その目標位置及び目標姿勢の算出は、例えば、教示データに含まれる教示位置や教示姿勢を補間することによって行われてもよい。この算出された目標位置や目標姿勢によって、作業ツール４の移動に関する情報、すなわち作業ツール４の位置及び姿勢の時間変化が示されることになる。また、制御部１５は、例えば、ロボット２のマニピュレータのエンコーダ等から読み出された各関節の角度に基づいて、作業ツール４の現在の位置及び姿勢を算出する。この情報は、上記のように、受付部１２に渡されてもよい。また、制御部１５は、メモリ１３からセンシング結果に応じた情報を読み出し、その読み出した情報に応じて、作業ツール４の目標位置及び目標姿勢を算出し、教示データから算出した目標位置及び目標姿勢を、センシング結果に応じた情報から算出した目標位置及び目標姿勢に置き換えてもよい。なお、現在の位置及び姿勢から、センシング結果に応じた情報に基づいて算出された目標位置及び目標姿勢まで移動させることが困難な場合（例えば、位置や姿勢の変化があらかじめ決められた閾値以上の変化となる場合など）には、教示データに基づいて算出された目標位置及び目標姿勢と、センシング結果に応じた情報に基づいて算出された目標位置及び目標姿勢との間の目標位置及び目標姿勢が新たに生成され、教示データに基づいて算出された目標位置及び目標姿勢が、その新たに生成された情報に置き換えられてもよい。また、制御部１５は、作業ツール４の現在の位置及び姿勢と、目標位置及び目標姿勢とを用いて、作業ツール４が目標位置及び目標姿勢となるようにロボット２を制御してもよい。このようにして、倣い補正が行われる。なお、結果として、センシング結果に基づいて倣い補正が行われるのであれば、上記した以外の方法によって倣い補正が行われてもよい。また、倣い補正についてはすでに公知であるため、その詳細な説明を省略する。また、制御部１５は、センシング結果に応じた情報をメモリ１３から読み出した場合に、その情報をメモリ１３から削除してもよい。その情報に対応付けられて散布度も記憶されている場合には、制御部１５は、散布度も一緒にメモリ１３から削除してもよい。また、制御部１５は、教示データに基づいて、溶接の開始や終了を溶接電源３に指示してもよく、また、溶接条件を溶接電源３に出力してもよい。
【００２９】
なお、記憶部１１と、メモリ１３とは、通常、異なる記録媒体によって実現されるが、そうでなくてもよい。例えば、記録媒体におけるある領域が記憶部１１として用いられ、他の領域がメモリ１３として用いられてもよい。その場合であっても、本実施の形態のようにメモリ管理部１４による管理が行われることによって、センシング結果に応じた情報をメモリ１３の領域に蓄積できない事態が生じないように制御することができる。
【００３０】
次に、ロボット制御装置１の動作について図２のフローチャートを用いて説明する。
（ステップＳ１０１）受付部１２は、センシング結果を受け付けるかどうか判断する。そして、センシング結果を受け付ける場合には、レーザセンサ５からのセンシング結果を受け付けてステップＳ１０２に進み、そうでない場合には、ステップＳ１０６に進む。例えば、上記（１）の方法によってメモリ１３の情報の削除が行われる場合には、受付部１２は、メモリ１３に蓄積する情報の周期ごとに、センシング結果を受け付けると判断してもよい。また、例えば、上記（２）の方法によってメモリ１３の情報の削除が行われる場合には、受付部１２は、レーザセンサ５によってセンシング結果が取得される周期ごとに、センシング結果を受け付けると判断してもよい。
【００３１】
（ステップＳ１０２）受付部１２は、レーザセンサ５から受け付けたセンシング結果に応じた情報を取得する。この情報は、例えば、基準座標系における特徴点の位置を示す情報であってもよい。また、上記（２）の方法によってメモリ１３の情報の削除が行われる場合には、受付部１２は、センシング結果に応じた散布度を取得してもよい。その散布度の取得の処理については後述する。
【００３２】
（ステップＳ１０３）メモリ管理部１４は、新しい情報を蓄積することができるだけの空き容量がメモリ１３にあるかどうか判断する。そして、メモリ１３に空き容量がある場合には、ステップＳ１０５に進み、そうでない場合には、ステップＳ１０４に進む。
【００３３】
（ステップＳ１０４）メモリ管理部１４は、メモリ１３で記憶されている情報を削除することによって、メモリ１３の空き容量を増加させ、蓄積対象の情報をメモリ１３に蓄積できるようにする。そして、ステップＳ１０５に進む。なお、この処理の詳細については後述する。
【００３４】
（ステップＳ１０５）受付部１２は、ステップＳ１０２で取得した情報をメモリ１３に蓄積する。そして、ステップＳ１０１に戻る。なお、ステップＳ１０２において、センシング結果に応じた散布度も取得した場合には、受付部１２は、センシング結果に応じた情報に対応付けて、その散布度をメモリ１３に蓄積してもよい。
【００３５】
（ステップＳ１０６）制御部１５は、作業ツール４を移動させるかどうか判断する。そして、作業ツール４を移動させる場合には、ステップＳ１０７に進み、そうでない場合には、ステップＳ１０１に戻る。なお、制御部１５は、例えば、作業ツール４を移動させると定期的に判断してもよい。
【００３６】
（ステップＳ１０７）制御部１５は、記憶部１１で記憶されている教示データ、及びメモリ１３で記憶されているセンシング結果に応じた情報に基づいて、作業ツール４の移動の制御を行う。この制御に応じて、ロボット２の作業ツール４が、目的位置及び目的姿勢に移動されることになる。また、制御部１５は、作業ツール４の作業に関する制御を行ってもよい。具体的には、制御部１５は、溶接電源３を制御することによって、溶接の開始や終了、溶接電圧や溶接電流等を制御してもよい。そして、ステップＳ１０１に戻る。ステップＳ１０６，Ｓ１０７の処理が繰り返されることによって、作業対象物６に対する一連の作業が行われることになる。
【００３７】
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。例えば、作業ツール４による一連の作業が終了した際には、図２のフローチャートにおける処理は終了してもよい。
【００３８】
次に、図２のフローチャートにおける情報の削除の処理（ステップＳ１０４）の詳細について、（１）メモリ管理部１４が、メモリ１３に記憶されているセンシング結果に応じた情報を削減すると共に、センシング結果に応じた情報がメモリ１３に蓄積される周期を長くする場合と、（２）メモリ管理部１４が、メモリ１３に記憶されているセンシング結果に応じた情報のうち、最大の散布度に対応付けられているセンシング結果に応じた情報を削除する場合とに分けて説明する。
【００３９】
（１）メモリ１３の情報の削除と、蓄積される情報の周期の延長とを行う場合
この場合には、メモリ管理部１４は、メモリ１３に記憶されているセンシング結果に応じた情報を削減すると共に、センシング結果に応じた情報がメモリ１３に蓄積される周期を長くする。メモリ１３からの情報の削除は、メモリ１３に空き容量を増やすために行われるため、削除対象となるセンシング結果に応じた情報の個数は問わない。少なくとも、センシング結果に応じた情報が１個以上、削除されればよいことになる。また、レーザセンサ５においては、通常、最短の撮像周期が決まっている。したがって、メモリ１３に蓄積される情報の周期を、撮像周期よりも短い単位で増やしたとしても、増加後の周期でセンシングすることはできないため、結果として、増加後の周期の情報をメモリ１３に蓄積することはできないことになる。したがって、メモリ管理部１４は、メモリ１３に蓄積される情報の周期を、撮像周期の単位で増やしてもよい。例えば、レーザセンサ５の撮像周期が２０（ｍｓ）である場合には、メモリ管理部１４は、メモリ１３に蓄積される情報の周期の増加分が、Ｍ×２０（ｍｓ）となるようにしてもよい。ただし、Ｍは、１以上の整数である。このような処理により、メモリ１３の空き容量を増やすことができると共に、メモリ１３への情報の蓄積の周期を長くすることができる。なお、この処理の後に、メモリ１３の空き容量がなくなった場合には、再度、この処理が行われてもよい。このようにして、メモリ１３の空き容量を増加させると共に、メモリ１３に蓄積される情報の周期を長くする処理が繰り返されることによって、最終的に、メモリ１３への情報の蓄積と読み出しのバランスがとれるようになり、メモリ１３の空き容量が不足する事態が起きないようにすることができる。
【００４０】
なお、メモリ管理部１４は、例えば、メモリ１３で記憶されている、センシング結果に応じた情報を１／Ｎに削減すると共に、その情報の削減に応じて、メモリ１３に蓄積される情報の周期を、Ｎ倍にしてもよい。ここで、Ｎは、２以上の整数である。例えば、Ｎ＝２であれば、メモリ管理部１４は、メモリ１３の空き容量がなくなる場合に、メモリ１３に記憶されているセンシング結果に応じた情報を１／２に削減すると共に、センシング結果に応じた情報がメモリ１３に蓄積される周期を２倍にしてもよい。このように、メモリ１３の情報を１／Ｎに削減すると共に、蓄積の周期をＮ倍にすることで、メモリ１３で記憶されている削減後の情報の周期を、メモリ１３に蓄積される情報の新たな周期に合わせることができるようになる。したがって、メモリ管理部１４は、両方の周期が合うように、メモリ１３における情報の削除を行ってもよい。メモリ管理部１４は、例えば、メモリ１３で記憶されている情報を時系列に沿って並べた場合に、Ｎ個ごとに１個の情報が残るように情報の削減を行ってもよい。このようにすることで、メモリ１３で記憶されている情報が、実質的にダウンサンプリングを行った結果と同様になる。例えば、Ｎ＝２であれば、メモリ１３で記憶されている情報を時系列に沿って並べた場合に、１個おきに情報が削除されてもよい。
【００４１】
次に、図２のフローチャートにおける情報の削除の処理（ステップＳ１０４）の詳細について、図３のフローチャートを用いて説明する。
（ステップＳ２０１）メモリ管理部１４は、メモリ１３で記憶されている、センシング結果に応じた情報を削除する。この削除は、例えば、メモリ１３で記憶されている、センシング結果に応じた情報を１／Ｎにするように行われてもよい。
【００４２】
（ステップＳ２０２）メモリ管理部１４は、メモリ１３で記憶されている情報の整列を行う。この処理については後述する。
【００４３】
（ステップＳ２０３）メモリ管理部１４は、蓄積対象のセンシング結果に応じた情報の周期が、現在の周期よりも長くなるように変更する。そして、図２のフローチャートに戻る。この変更は、例えば、蓄積対象の情報の周期を、Ｎ倍にすることであってもよい。なお、変更後の周期は、受付部１２に渡されてもよい。そして、受付部１２は、その新たな周期に応じた情報の蓄積を行ってもよい。
【００４４】
図３のフローチャートで示されるセンシング結果に応じた情報の削除の処理について、図４を参照して具体的に説明する。この具体例では、メモリ１３の空き容量がなくなる場合に、メモリ管理部１４が、メモリ１３に記憶されているセンシング結果に応じた情報を１／２に削減すると共に、センシング結果に応じた情報がメモリ１３に蓄積される周期を２倍にするものとする。図４は、メモリ１３での情報の記憶状態を示す図である。ここでは、説明の便宜上、メモリ１３に、センシング結果に応じた情報を１０個、保存できるものとしている。また、メモリ１３において、情報が格納されていない領域を内部が白の四角形の図形で示しており、情報が格納されている領域を黒塗りの四角形の図形で示している。
【００４５】
状態１は、ロボット制御装置１における倣い作業が開始される前のメモリ１３の状態である。この場合には、メモリ１３の各領域に情報が格納されておらず、保存可能な情報の個数は１０個である。
【００４６】
次に、レーザセンサ５によるセンシングが開始され、受付部１２によって順次、センシング結果に応じた情報がメモリ１３に蓄積されたとする。状態２は、そのようにして、１０個の情報がメモリ１３に格納された状態である。この場合には、メモリ１３の保存可能な情報の個数は０個である。
【００４７】
その後、メモリ１３の情報が制御部１５によって読み出されて削除される前に、新たなセンシング結果の受け付けと、そのセンシング結果に応じた情報の取得とが行われると（ステップＳ１０１，Ｓ１０２）、メモリ管理部１４は、メモリ１３に空き容量がないと判断し（ステップＳ１０３）、センシング結果に応じた情報を削除する処理を行う（ステップＳ１０４）。
【００４８】
具体的には、メモリ管理部１４は、まず、状態３で示されるように、メモリ１３で記憶されている、センシング結果に応じた情報を１／２に削減する（ステップＳ２０１）。その削減において、メモリ管理部１４は、残った情報の周期が２倍になるように、１個おきに情報を削除するものとする。その結果、保存可能な情報の個数が５個に増える。なお、図４では、時系列に沿って、左から順番に情報が格納されているものとする。
【００４９】
その後、メモリ管理部１４は、状態４で示されるように、メモリ１３で記憶されている情報がひとまとまりになるように情報を整列させる（ステップＳ２０２）。また、メモリ管理部１４は、その時点における、蓄積対象のセンシング結果に応じた情報の周期を２倍に変更して、その変更後の周期を受付部１２に渡す（ステップＳ２０３）。このようにして、メモリ１３に空き容量が作られたため、受付部１２は、蓄積対象の情報を、図４の状態５で示されるように、メモリ１３に蓄積することができる（ステップＳ１０５）。
【００５０】
なお、再度、メモリ１３の空き容量がなくなった場合には、メモリ１３における情報の削減と、蓄積対象の情報の周期の延長とが行われることになる。このようにして、最終的に、メモリ１３の容量不足が発生しなくなるまで、メモリ１３における情報の削減と、蓄積対象の情報の周期の延長とが繰り返される。なお、一連の倣い作業が終了した後に、メモリ１３への情報の蓄積の周期はリセットされてもよい。
【００５１】
（２）最大の散布度に対応付けられている情報の削除を行う場合
この場合には、メモリ管理部１４は、メモリ１３において記憶されているセンシング結果に応じた情報のうち、最大の散布度に対応付けられているセンシング結果に応じた情報を削除する。ここではまず、散布度の取得について説明する。
【００５２】
散布度は、レーザセンサ５のセンシング結果に基づいて推定された作業対象物６の形状と、そのセンシング結果との差分のばらつきの程度を示す情報である。図６は、作業対象物６が重ね継手である場合におけるセンシング結果と、センシング結果に基づいて推定された形状とを示す図である。図６において、レーザセンサ５によるレーザの走査範囲内におけるセンシング結果を黒丸で示しており、センシング結果に基づいて推定された形状を、近似直線で示している。図６（ａ）は、散布度が小さい場合におけるセンシング結果を示しており、図６（ｂ）は、散布度が大きい場合におけるセンシング結果を示している。
【００５３】
図６（ａ）、図６（ｂ）等で示されるセンシング結果を受け付けると、受付部１２は、まず、センシング結果に基づいて近似直線を推定し、その推定した近似直線と、各センシング結果との差分をそれぞれ取得する。その差分は、センシング結果である黒丸から、近似直線までの距離であってもよい。すなわち、差分は残差であってもよい。なお、差分は０以上の実数であるとする。その後、受付部１２は、その差分のばらつきの程度を示す散布度を取得する。具体的には、受付部１２は、その差分の分散である散布度を取得してもよく、その差分の標準偏差である散布度を取得してもよく、または、その差分のばらつきの程度を示す他の散布度を取得してもよい。このようにして、受付部１２は、センシング結果に応じた散布度を取得することができる。図６（ａ）では、センシング結果のばらつきが小さく、散布度が小さい値となる。また、センシング結果に応じた情報の精度がより高いと考えられる。一方、図６（ｂ）では、スパッタ等の影響によってセンシング結果のばらつきが大きく、散布度が大きい値となる。また、作業対象物６の形状を適切に推定できていないため、センシング結果に応じた情報の精度がより低いと考えられる。したがって、メモリ１３で記憶されている情報を削除する際に、散布度が最大である情報を削除することによって、精度の低い情報を削除すると共に、精度の高い情報を保持できることになる。
【００５４】
次に、図２のフローチャートにおける情報の削除の処理（ステップＳ１０４）の詳細について、図５のフローチャートを用いて説明する。なお、この場合には、図２のフローチャートのステップＳ１０２において、センシング結果に応じた情報と共に、センシング結果に関する散布度も算出され、ステップＳ１０５において、センシング結果に応じた情報と、散布度とが対応付けられて蓄積されているものとする。
【００５５】
（ステップＳ３０１）メモリ管理部１４は、メモリ１３で記憶されている、センシング結果に応じた情報のうち、散布度が最大である情報を削除する。より具体的には、メモリ管理部１４は、メモリ１３で記憶されている最大の散布度を特定し、その特定した散布度に対応付けられているセンシング結果に応じた情報を削除する。
【００５６】
（ステップＳ３０２）メモリ管理部１４は、メモリ１３で記憶されている情報の整列を行う。そして、図２のフローチャートに戻る。
【００５７】
図５のフローチャートで示されるセンシング結果に応じた情報の削除の処理について、図７を参照して具体的に説明する。図７においてメモリの状態を示す方法は、図４と同様であるとする。
【００５８】
状態１は、ロボット制御装置１における倣い作業が開始される前のメモリ１３の状態である。この場合には、メモリ１３の各領域に情報が格納されておらず、保存可能な情報の個数は１０個である。
【００５９】
次に、レーザセンサ５によるセンシングが開始され、受付部１２によって順次、センシング結果に応じた情報がメモリ１３に蓄積されたとする。状態２は、そのようにして、１０個の情報がメモリ１３に格納された状態である。この場合には、メモリ１３の保存可能な情報の個数は０個である。また、格納されている情報（黒塗りの四角形の図形）の下に表示されている数値は、各情報に対応付けられている散布度である。したがって、状態２においては、左から５番目の情報の散布度が最も高いことになる。
【００６０】
その後、メモリ１３の情報が制御部１５によって読み出されて削除される前に、新たなセンシング結果の受け付けと、そのセンシング結果に応じた情報の取得とが行われると（ステップＳ１０１，Ｓ１０２）、メモリ管理部１４は、メモリ１３に空き容量がないと判断し（ステップＳ１０３）、センシング結果に応じた情報を削除する処理を行う（ステップＳ１０４）。
【００６１】
具体的には、メモリ管理部１４は、状態２において、最大の散布度「９９」を特定し、その最大の散布度に対応付けられている情報を削除する（ステップＳ３０１）。なお、情報の削除と一緒に、散布度も削除されるものとする。その結果、メモリ１３は、状態３で示されるようになり、保存可能な情報の個数が１個増える。
【００６２】
その後、メモリ管理部１４は、状態４で示されるように、メモリ１３で記憶されている情報がひとまとまりになるように情報を整列させる（ステップＳ３０２）。このようにして、メモリ１３に空き容量が作られたため、受付部１２は、蓄積対象の情報を、図７の状態５で示されるように、メモリ１３に蓄積することができる（ステップＳ１０５）。なお、再度、メモリ１３の空き容量がなくなった場合には、メモリ１３において、最大の散布度に対応する情報の削除が行われることになる。
【００６３】
以上のように、本実施の形態によるロボット制御装置１によれば、メモリ１３で記憶されているセンシング結果に応じた情報を削除することによって、センシング結果に応じた情報をメモリ１３に蓄積できない事態が生じないようにすることができる。また、メモリ１３の情報を削除すると共に、センシング結果に応じた情報がメモリ１３に蓄積される周期を長くすることによって、メモリ１３への情報の蓄積と、メモリ１３からの情報の読み出しとのバランスを取るようにすることもでき、メモリ１３の容量が不足する原因を取り除くこともできるようになる。また、センシング結果に応じた情報に対応付けて散布度が蓄積されている場合には、その散布度が大きい情報を削除することによって、精度の低い情報を削除することができる。したがって、メモリ１３から情報を削除しても、精度の高い情報を残すことができ、倣い作業の精度が低下することを防止することができるようになる。また、場合によっては、精度の低い情報を削除することによって、倣い作業の精度が向上することもあり得ると考えられる。
【００６４】
なお、上記実施の形態では、レーザセンサ５の撮像周期と、受付部１２が情報をメモリ１３に蓄積する周期とが異なる場合に、受付部１２が、レーザセンサ５から受け付けたセンシング結果についてダウンサンプリングを行うと説明したが、そうでなくてもよい。撮像周期を変更できる場合には、レーザセンサ５は、情報がメモリ１３に蓄積される周期でのセンシングを行ってもよい。その場合には、受付部１２は、レーザセンサ５から受け付けたセンシング結果を、ダウンサンプリングを行うことなくそのまま用いてもよい。
【００６５】
また、上記実施の形態では、倣い作業が溶接である場合について説明したが、倣い作業は、溶接以外の作業であってもよい。溶接以外の倣い作業は特に限定されるものではないが、例えば、シーリングやバリ取りなどの線倣い作業を挙げることができる。倣い作業がシーリングである場合には、作業ツールは、シーリングガン（コーキングガン）等であってもよい。また、倣い作業がバリ取りである場合には、作業ツールは、バリ取りユニット等であってもよい。なお、倣い作業が溶接でない場合には、ロボット制御システム１００は、溶接電源３を備えていなくてもよい。
【００６６】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【００６７】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う２個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う２個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【００６８】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。
【００６９】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【００７０】
また、上記実施の形態において、ロボット制御装置１に含まれる２以上の構成要素が通信デバイスや入力デバイス等を有する場合に、２以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
【００７１】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【００７２】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【００７３】
以上より、本発明によるロボット制御装置等によれば、倣い作業において、センシング結果に応じた情報をメモリに蓄積できない事態が生じないようにすることができるという効果が得られ、倣い作業に関する制御を行うロボット制御装置等として有用である。
【符号の説明】
【００７４】
１  ロボット制御装置、２  ロボット、４  作業ツール、５  レーザセンサ、６  作業対象物（ワーク）、１１  記憶部、１２  受付部、１３  メモリ、１４  メモリ管理部、１５  制御部、１００  ロボット制御システム
【図１】
2020203349.tif 000003
【図２】
2020203349.tif 000004
【図３】
2020203349.tif 000005
【図４】
2020203349.tif 000006
【図５】
2020203349.tif 000007
【図６】
2020203349.tif 000008
【図７】
2020203349.tif 000009