(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-22
(45)【発行日】2024-01-30
(54)【発明の名称】ロボットの動作ログデータ記録装置、及び動作ログデータ記録プログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20240123BHJP
B25J 19/06 20060101ALI20240123BHJP
G05B 19/42 20060101ALI20240123BHJP
【FI】
B25J9/22 Z
B25J19/06
G05B19/42 W
(21)【出願番号】P 2019227321
(22)【出願日】2019-12-17
【審査請求日】2022-10-03
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】加藤 侑也
(72)【発明者】
【氏名】鈴木 俊孝
(72)【発明者】
【氏名】澤田 洋祐
(72)【発明者】
【氏名】マッシモ アントニーニ
(72)【発明者】
【氏名】ファビオ タンパリーニ
(72)【発明者】
【氏名】ダヴィデ ヴォルティーニ
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2005-131747(JP,A)
【文献】特開2016-112651(JP,A)
【文献】国際公開第2009/119382(WO,A1)
【文献】特開平7-299777(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
G05B 19/18 ~ 19/46
(57)【特許請求の範囲】
【請求項1】
ロボットの動作ログデータを記録可能な記録部にアクセス可能であって、
生ログデータとして一定期間毎に前記ロボットを動作させた際の前記ロボットの各軸の角度情報を取得する生ログデータ取得処理を実行可能な生ログデータ取得処理部と、
前記生ログデータ取得処理部で取得した前記生ログデータのうち、探索の基準となる動作ログデータの手先位置から予め設定された安全範囲内に手先位置があり、かつ、前記探索の基準となる動作ログデータの各軸の角度の変化量が予め設定された安全角度以下のもののうち、手先位置が前記探索の基準となる動作ログデータの手先位置から最も遠い位置にあるもの以外を記録対象から除外して残った前記動作ログデータを記録用ログデータとして特定するダウンサンプリング処理を実行可能なダウンサンプリング処理部と、
前記ダウンサンプリング処理部で特定された前記記録用ログデータを前記記録部に記録する記録処理を実行可能な記録処理部と、
を備え
、
前記安全範囲は、前記ロボットの手先に取り付けられるツールを含めて各軸の中心に対して最も細い部分を径とする領域に設定され、
前記安全角度は、前記各軸を動作させた際に手先位置の変位が最大となる姿勢において前記ツールを含めた先端位置が前記安全範囲から外れた場合の各軸における回転角度のうち最小の回転角度に設定される、
ロボットの動作ログデータ記録装置。
【請求項2】
前記生ログデータ取得処理は、取得した前記生ログデータをバッファに一時的に保管する処理を含み、
前記ダウンサンプリング処理部は、前記バッファに所定量の前記生ログデータが蓄積された場合にその所定量ごと前記ダウンサンプリング処理を実行する。
請求項
1に記載のロボットの動作ログデータ記録装置。
【請求項3】
CPUを備え、ロボットの動作ログデータを記録可能な記録部にアクセス可能な制御部に、
生ログデータとして一定期間毎に前記ロボットを動作させた際の前記ロボットの各軸の角度情報を取得する生ログデータ取得処理と、
前記生ログデータ取得処理で取得した前記生ログデータのうち、探索の基準となる動作ログデータの手先位置から予め設定された
もので前記ロボットの手先に取り付けられるツールを含めて各軸の中心に対して最も細い部分を径とする領域に設定された安全範囲内に手先位置があり、かつ、前記探索の基準となる動作ログデータの各軸の角度の変化量が予め設定された
もので前記各軸を動作させた際に手先位置の変位が最大となる姿勢において前記ツールを含めた先端位置が前記安全範囲から外れた場合の各軸における回転角度のうち最小の回転角度に設定された安全角度以下のもののうち、手先位置が前記探索の基準となる動作ログデータの手先位置から最も遠い位置にあるもの以外を記録対象から除外して残った前記動作ログデータを記録用ログデータとして特定するダウンサンプリング処理と、
前記ダウンサンプリング処理で特定された前記記録用ログデータを前記記録部に記録する記録処理と、
を実行させるロボットの動作ログデータ記録プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ロボットの動作ログデータ記録装置、及び動作ログデータ記録プログラムに関する。
【背景技術】
【0002】
ロボットを用いた設備において、自動動作中にロボットに何らかの異常が発生した場合、ロボットは異常停止する。この場合、停止前に行っていた作業に復帰させるためには、ロボットプログラムで規定されている原点位置へロボットを復帰させる原点復帰を行い、再度ロボットプログラムをスタートする必要がある。従来、ロボットが異常停止した場合の原点復帰は、ロボットの操作権限を有する現場作業者がティーチングペンダント等を用いた目視の手動操作で行われている。
【0003】
しかしながら、現場作業者の手動操作による原点復帰は、経験や慣れが必要であるため、現場作業者を育成して熟度を上げる必要がある。また、このような原点復帰は、目視による手動操作であるため、ロボットが動作し難い位置にいる場合などには周辺環境への接触を回避する必要があり、より慎重な作業を要する。そのため、手動操作による原点復帰は、完了までに時間を要し、その結果、工程が停止する期間が長くなっていた。
【0004】
これに対し、操作権限を持たない作業者でも短時間で原点復帰をできるようにするため、予め原点復帰用のプログラムを準備し、そのプログラムに従って自動で原点復帰を行うことが考えられている。しかし、原点復帰のプログラムは、予め、あらゆる状況で異常停止した場合を想定して作成しておく必要があるが、このような原点復帰のプログラムを手作業で作成しようとすると、膨大な手間と時間を要することになる。そこで、ロボットの自動動作中の動作を動作ログデータとして記録しておき、異常停止した場合にはその動作ログデータを原点位置まで逆に辿るいわゆる逆再生を行うことで、原点復帰させることも考えられている。
【0005】
しかしながら、このような逆再生を行う場合、ロボットの自動動作が長くなるほど、動作ログデータの量も膨大になり、その結果、記憶容量を圧迫したり計算処理の負荷が増大したりして処理が遅くなるなどの問題が発生する。一方で、例えば何ら考慮もせずに単純に一定間隔で動作ログデータを間引いてしまうと、その間引いた動作ログデータに基づいて逆再生した際に急激な動作や予定していない経路を通ってしまい、ロボットと周辺環境との接触等が生じてしまう可能性がある。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は上記事情を鑑みてなされたものであり、その目的は、ロボットの動作ログデータを取得し記録するものにおいて、そのデータ容量を安全に削減することができるロボットの動作ログデータ記録装置、及び動作ログデータ記録プログラムを提供することにある。
【課題を解決するための手段】
【0008】
本実施形態のロボットの動作ログデータ記録装置は、ロボットの動作ログデータを記録可能な記録部にアクセス可能である。動作ログデータ記録装置は、生ログデータとして一定期間毎に前記ロボットを動作させた際の前記ロボットの各軸の角度情報を取得する生ログデータ取得処理を実行可能な生ログデータ取得処理部と、前記生ログデータ取得処理部で取得した前記生ログデータのうち、探索の基準となる動作ログデータの手先位置から予め設定された安全範囲内に手先位置があり、かつ、前記探索の基準となる動作ログデータの各軸の角度の変化量が予め設定された安全角度以下のもののうち、手先位置が前記探索の基準となる動作ログデータの手先位置から最も遠い位置にあるもの以外を記録対象から除外して残った前記動作ログデータを記録用ログデータとして特定するダウンサンプリング処理を実行可能なダウンサンプリング処理部と、前記ダウンサンプリング処理部で特定された前記記録用ログデータを前記記録部に記録する記録処理を実行可能な記録処理部と、を備える。
【0009】
ここで、原点復帰を行う際に、動作ログデータを間引いたものに基づいて逆再生を行うと、上述したように、ロボットの自動動作中に実際に移動していない軌跡で移動する、つまり安全が確認されていない経路を通ることになる。そのため、動作ログデータを間引く際にロボットの周辺環境に対する安全を考慮していないと、ロボットが周辺環境に接触等してしまう危険性がある。
【0010】
そこで、本構成において、ダウンサンプリング処理部は、生ログデータを記録対象から除外する際に、手先位置の移動量と各軸の角度の変化量との両方を考慮する。そして、ダウンサンプリング処理部は、手先位置の移動量と各軸の角度の変化量との両方が安全である場合に、その生ログデータを記録対象から除外つまり削除する。
【0011】
これによれば、記録部に記録するログのデータ容量を削減できるとともに、例えば逆再生を行う場合の経路探索の計算に要する処理負荷も軽減することができる。更には、手先位置の移動量と各軸の角度の変化量との両方の安全を考慮しているため、ロボットと周辺環境との接触等を防止することができ、原点復帰の際の安全性を向上することができる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態について、動作ログデータ記録装置及び原点復帰経路探索装置を含むロボットシステムの構成を概念的に示す図
【
図2】一実施形態について、安全範囲及び安全角度の設定方法を説明する図(その1)
【
図3】一実施形態について、ツールを含めたロボット全体のおける最も細い部分を示すもので、
図2のX3-X3線に沿って示す図
【
図4】一実施形態について、安全範囲及び安全角度の設定方法を概念的に示す図(その2)
【
図5】一実施形態について、ツールを含めたロボット全体のおける最も細い部分を示すもので、
図4のX5-X5線に沿って示す図
【
図6】一実施形態について、生ログデータ取得処理によって取得した生ログデータに含まれる手先位置の一例を概念的に示す図
【
図7】一実施形態について、生ログデータ取得処理によって取得した生ログデータの一例を概念的に示す図
【
図8】一実施形態について、生ログデータ取得処理によって取得した生ログデータに対してダウンサンプリング処理を行う際の処理方法を概念的に示す図(その1)
【
図9】一実施形態について、生ログデータ取得処理によって取得した生ログデータに対してダウンサンプリング処理を行う際の処理方法を概念的に示す図(その2)
【
図10】一実施形態について、ダウンサンプリング処理によって記録対象から除外された状態の動作ログデータの一例を概念的に示す図(その1)
【
図11】一実施形態について、生ログデータ取得処理によって取得した生ログデータに対してダウンサンプリング処理を行う際の処理方法を概念的に示す図(その3)
【
図12】一実施形態について、生ログデータ取得処理によって取得した生ログデータに対してダウンサンプリング処理を行う際の処理方法を概念的に示す図(その4)
【
図13】一実施形態について、ダウンサンプリング処理によって記録対象から除外された状態の動作ログデータの一例を概念的に示す図(その2)
【
図14】一実施形態について、生ログデータ取得処理によって取得した生ログデータに対してダウンサンプリング処理を行う際の処理方法を概念的に示す図(その5)
【
図15】一実施形態について、ダウンサンプリング処理によって記録対象から除外された状態の動作ログデータの一例を概念的に示す図(その3)
【
図16】一実施形態について、生ログデータ取得処理によって取得した生ログデータに対してダウンサンプリング処理を行う際の処理方法を概念的に示す図(その6)
【
図17】一実施形態について、ダウンサンプリング処理によって記録対象から除外された状態の動作ログデータの一例を概念的に示す図(その4)
【
図18】一実施形態について、生ログデータ取得処理によって取得した生ログデータに対してダウンサンプリング処理を行う際の処理方法を概念的に示す図(その7)
【
図19】一実施形態について、ロボットの自動動作、生ログデータ取得処理、ダウンサンプリング処理、及び記録処理を含む一連の制御内容を示すフローチャート
【
図20】一実施形態について、ダウンサンプリング処理の制御内容を示すフローチャート
【
図21】一実施形態について、ロボットの自動動作時の動作態様を概念的に示す図
【
図22】一実施形態について、記録部に記録されている動作ログデータに含まれる手先位置の一例を示す図
【
図23】一実施形態について、復帰経路探索処理を行う際の処理方法を概念的に示す図(その1)
【
図24】一実施形態について、復帰経路探索処理を行う際の処理方法を概念的に示す図(その2)
【
図25】一実施形態について、復帰経路探索処理を行う際の処理方法を概念的に示す図(その3)
【
図26】一実施形態について、接続可能範囲の設定方法を概念的に示す図
【
図27】一実施形態について、復帰点設定処理及び復帰経路探索処理を含む一連の制御内容を示すフローチャート
【発明を実施するための形態】
【0013】
以下、一実施形態について図面を参照しながら説明する。
[全体構成]
まず、ロボットシステム1の全体構成について説明する。
図1に示すロボットシステム1は、多関節ロボット10(以下、単にロボット10と称する)と、ロボットコントローラ20と、を備えている。ロボット10は、複数のアームを有する垂直多関節ロボットであり、ロボットコントローラ20によって制御される。なお、ロボット10は、例えば水平多関節型ロボットやパラレルリンクロボット、直交ロボット等であっても良い。ロボット10とロボットコントローラ20とは、有線または無線により相互通信可能に構成される。また、ロボットコントローラ20は、パソコンや、スマートフォンなどの携帯端末など、その他の外部の装置に有線または無線により相互通信可能に接続されていても良い。
【0014】
[ロボット]
本実施形態において、ロボット10は、産業用のロボットであって、例えば6軸を有する垂直多関節ロボットで構成されている。ロボット10は、
図1に示すように、ベース11と、複数
、この場合
、6つのアーム121~126と、を有している。ロボット10が一定の場所に設置して使用するものであれば、ベース11は、設置面に固定されている。また、ロボット10が人によって持ち運び可能な程度に小型のものである場合、ベース11は、設置面に固定されていなくても良い。各アーム121~126は、ベース11上に順に設けられている。本実施形態の場合、ベース11側から順に、第1アーム121、第2アーム122、第3アーム123、第4アーム124、第5アーム125、及び第6アーム126と称する。また、各アーム121~126を特定しない場合は、各アーム121~126を総称して単にアーム12と称する。
【0015】
各アーム121~126は、それぞれ複数の軸J1~J6を介して回転可能に連結されている。この場合、ベース11側から順に、第1軸J1、第2軸J2、第3軸J3、第4軸J4、第5軸J5、及び第6軸J6と称する。なお、各軸J1~J6を特定しない場合は、各軸J1~J6を総称して単に軸Jと称する。第1軸J1は、垂直方向に延びる回転軸であり、ベース11に対して第1アーム121を水平方向に回転可能に連結する。第2軸J2は、水平方向に延びる回転軸であり、第1アーム121に対して第2アーム122を鉛直方向に回転可能に連結する。
【0016】
第3軸J3は、水平方向に延びる回転軸であり、第2アーム122に対して第3アーム123を鉛直方向に回転可能に連結する。第4軸J4は、第3アーム123の長手方向に延びる回転軸であり、第3アーム123に対して第4アーム124と回転可能に連結する。第5軸J5は、水平方向に延びる回転軸であり、第4アーム124に対して第5アーム125を鉛直方向に回転可能に連結する。そして、第6軸J6は、第5アーム125の長手方向に延びた回転軸であり、第5アーム125に対して第6アーム126を回転可能に連結する。
【0017】
本実施形態の場合、第6アーム126はロボット10の手先部分であり、例えばフランジ形状に構成されている。第6アーム126の先端部分にはツール13が着脱可能に装着される。ツール13は、例えばチャックやグリッパ、若しくは吸着ハンドなどワークを把持及び搬送するためのものや、ねじ締めや穴あけ用のドリルなどワークに対して各種の加工を施すための加工具などがある。ツール13は、ロボット10の用途に応じて適宜選択することができる。また、ロボット10は、詳細は図示しないが、各軸J1~J6を駆動するためのモータ、各軸J1~J6の回転数及び位置を検出するためのエンコーダ、及び各軸J1~J6の動作を停止させるためのブレーキ等を有している。
【0018】
ロボットコントローラ20は、制御部21、入力表示装置22、記録部23、動作ログデータ記録装置24、及び原点復帰経路探索装置25を有している。制御部21は、例えばCPU211や、ROM、RAM、及び書き換え可能なフラッシュメモリなどの記憶領域212を有するマイクロコンピュータを主体に構成されており、ロボット10全体の動作を制御する。入力表示装置22は、例えばタッチパネルや電気式又は機械式のスイッチ装置、及び液晶画面等の表示機能を有している。記録部23は、例えばロボットコントローラ20からの指示により各種情報を書き込み及び読み出すことができるいわゆるストレージ装置や、CD、DVDなどの記録媒体に書き込み可能な装置である。
【0019】
また、記録部23は、例えばロボットコントローラ20の筐体内に固定的に設置されているフラッシュメモリなどを利用した記録装置、ロボットコントローラ20に挿抜可能なUSBメモリ若しくはメモリカードなどを採用することができる。また、記録部23は、インターネットやLAN、WANを介して通信可能に接続された外部のいわゆるオンラインストレージを採用することもできる。
【0020】
制御部21の記憶領域212は、ロボット10を駆動制御するためのロボット制御プログラムを記憶している。ロボットコントローラ20は、CPU211においてロボット制御プログラムを実行することで、ロボット10の動作を制御する。また、本実施形態の場合、記憶領域212は、動作ログデータ記録プログラム及び原点復帰経路探索プログラムを記憶している。
【0021】
制御部21は、CPU211において動作ログデータ記録プログラムを実行することにより、生ログデータ取得処理部241、ダウンサンプリング処理部242、及び記録処理部243等を、ソフトウェアによって仮想的に実現する。この場合、生ログデータ取得処理部241、ダウンサンプリング処理部242、及び記録処理部243は、動作ログデータ記録装置24を構成する。すなわち、本実施形態において、ロボットコントローラ20は、動作ログデータ記録装置24を含んで構成されている。
【0022】
また、制御部21は、CPU211において原点復帰経路探索プログラムを実行することにより、復帰原点設定処理部251、及び復帰経路探索処理部252をソフトウェアによって仮想的に実現する。この場合、復帰原点設定処理部251、及び復帰経路探索処理部252は、原点復帰経路探索装置25を構成する。すなわち、本実施形態において、ロボットコントローラ20は、原点復帰経路探索装置25を含んで構成されている。
【0023】
なお、動作ログデータ記録プログラム及び原点復帰経路探索プログラムは、記録部23や、その他の外部の記録媒体に記憶されて、記録部23や外部の記録媒体から制御部21にインストールしたり直接実行したりしても良い。また、生ログデータ取得処理部241、ダウンサンプリング処理部242、及び記録処理部243は、例えば制御部21と一体の集積回路としてハードウェア的に実現しても良い。また、復帰原点設定処理部251、及び復帰経路探索処理部252も、例えば制御部21と一体の集積回路としてハードウェア的に実現しても良い。
【0024】
[動作ログデータ記録装置]
次に、動作ログデータ記録装置24について、
図2~
図20も参照しながら説明する。動作ログデータ記録装置24は、ロボット10の自動動作中の動作ログデータを取得し、取得した動作ログデータを所定の条件に基づいてダウンサンプリングつまり間引きして記録部23に記録するためのものである。動作ログデータ記録装置24は、制御部21の処理によって記録部23にアクセス可能である。動作ログデータ記録装置24は、生ログデータ取得処理部241と、ダウンサンプリング処理部242と、記録処理部243と、を含んで構成されている。
【0025】
生ログデータ取得処理部241は、生ログデータ取得処理を実行可能である。生ログデータ取得処理は、生ログデータとして一定期間毎にロボット10を動作させた際のロボット10の各軸J1~J6の角度情報を取得する処理である。以下の説明において、ロボット10の動作に関する動作ログデータを、単にログデータと称することがあり、また、動作ログデータD(N)と称することもある。動作ログデータは、例えば
図7に示すように、少なくとも各軸J1~J6の動作に関する角度情報α1(N)~α6(N)と、手先の位置情報P(N)つまりツール13の先端部又は第6アーム126の先端部の位置情報を含めることができる。この場合、各軸J1~J6の動作に関する角度情報α1(N)~α6(N)は、例えば各軸J1~J6の動作角度、角速度、角加速度などである。また、ロボット10の動作ログデータD(N)には、ツール13の先端部又は第6アーム126の先端部の速度情報や加速度情報を含めることもできる。
【0026】
また、本実施形態において、ロボット10の動作ログデータには、ツール13の装着状態、すなわちロボット10にツール13が装着されているか否か、及び装着している場合はそのツール13の種類に関する情報を含めることができる。そして、生ログデータとは、生の動作ログデータ、すなわち、ロボット10の動作ログデータD(N)について、少なくとも削除や除外等の加工を施していないものを意味する。なお、上記のNは、動作ログデータの取得順を示すものであり、連番で表すこともできるし、取得時刻で表すこともできる。
【0027】
生ログデータ取得処理部241は、ロボット10の動作中、一定間隔、例えば数m秒~数十m秒間隔でロボット10の動作ログデータを取得する。本実施形態の場合、ロボット10の動作中に生ログデータ取得処理が実行されると、生ログデータ取得処理部241は、ロボット10の動作中に取得した生ログデータを、記憶領域212のバッファに一時的に記憶させて保管する。
【0028】
ダウンサンプリング処理部242は、ダウンサンプリング処理を実行可能である。ダウンサンプリング処理は、生ログデータ取得処理部241で取得した生ログデータのうち、探索の基準となる動作ログデータの手先位置Pから予め設定された安全範囲SA内に手先位置Pがあり、かつ、探索の基準となる動作ログデータの各軸J1~J6の角度α1~α6の変化量dα1~dα6が予め設定された安全角度Sθ以下のもののうち、手先位置Pが探索の基準となる動作ログデータの手先位置Pから最も遠い位置にあるもの以外を記録対象から除外して残った動作ログデータを記録用ログデータとして特定する処理を含む。
【0029】
すなわち、ダウンサンプリング処理は、生ログデータ取得処理部241で取得した生ログデータのうち、特定の条件を満たすものについて記録対象から除外する処理を含む。この場合、特定の条件とは、探索の基準となる動作ログデータの手先位置Pから予め設定された安全範囲SA内に手先位置Pがあり、かつ、探索の基準となる動作ログデータの各軸J1~J6の角度α1~α6の変化量dα1~dα6が予め設定された安全角度Sθ以下のもののうち、手先位置Pが探索の基準となる動作ログデータの手先位置Pから最も遠い位置にあるもの以外のものであること、である。
【0030】
つまり、このダウンサンプリング処理において、探索の基準となる動作ログデータの手先位置Pから安全範囲SA内に手先位置Pがあり、かつ、各軸J1~J6の角度変化量dα1~dα6が安全角度Sθ以下のもののうち、手先位置Pが探索の基準となる動作ログデータの手先位置Pから最も遠い位置にあるものについては、記録対象から除外せずに残し、記録用ログデータとして記録される。これは、次の理由による。
【0031】
すなわち、探索の基準となる動作ログデータの手先位置Pから安全範囲SA内に手先位置Pがあり、かつ、各軸J1~J6の角度変化量dα1~dα6が安全角度Sθ以下のものを全て除外してしまうと、現在探索の基準としている動作ログデータに対して、残った次の動作ログデータは、手先位置Pが安全範囲SAの外側に位置しているものか、又は角度変化量dα1~dα6が安全角度Sθよりも大きいものとなる。そして、例えばこのようにして間引いた動作ログデータに基づいて逆再生を行うと、現在探索の基準としている動作ログデータから次の動作ログデータへ移行した際に、手先位置Pの大きな移動や、各アーム121~126の大きな姿勢変化が生じ、その結果、安全性の低下に繋がる。
【0032】
これに対し、本実施形態のダウンサンプリング処理は、探索の基準となる動作ログデータの手先位置Pから安全範囲SA内に手先位置Pがあり、かつ、各軸J1~J6の角度変化量dα1~dα6が安全角度Sθ以下のもののうち、手先位置Pが探索の基準となる動作ログデータの手先位置Pから最も遠い位置にあるもの残して次の動作ログデータとする。これによれば、現在探索の基準としている動作ログデータから次の動作ログデータへの移動において、手先位置Pの移動は安全範囲SA内でかつ各軸J1~J6の角度変化量dα1~dα6も安全角度Sθ内となるため、大きな移動や姿勢の変化が抑制され、安全性を確保することができる。このようなダウンサンプリング処理により、動作ログデータのデータ容量を安全かつ適切に削減することができる。
【0033】
この場合、生ログデータ取得処理は、取得した生ログデータD(N)を、例えば記憶領域212のうちRAMなどの揮発性メモリに設けられたバッファに一時的に保管する処理を含んでいても良い。この場合、ダウンサンプリング処理部242は、バッファに所定量の生ログデータD(N)が蓄積された場合に、その所定量ごとにダウンサンプリング処理を実行する。
【0034】
ダウンサンプリング処理の実行に際し、ダウンサンプリング処理部242は、安全範囲SA及び安全角度Sθを設定する。安全範囲SAの設定は、ユーザによって手動で行われる。また、安全角度Sθの設定は、ユーザが手動で行っても良いし、ロボットコントローラ20により自動で行われても良い。
【0035】
安全範囲SAは、ロボット10の手先つまり第6アーム126に取り付けられるツール13を含めて各軸J1~J6の中心に対して最も細い部分を径とする領域である。本実施形態の場合、ロボット10全体のうちツール13を含めた各軸J1~J6の中心に対して最も細い部分は、第6アーム126となる。そのため、安全範囲SAは、
図3に示すように、第6アーム126の外径となる。
【0036】
また、安全角度Sθは、各軸J1~J6を動作させる際に手先の変位が最大となる姿勢において、図4に示すようにツール13を含めた先端位置Pが安全範囲SAの範囲から外れるときの各軸J1~J6の回転角度のうち、最小の回転角度に設定される。すなわち、安全角度Sθを設定する際、ユーザ又はロボットコントローラ20は、まず、各軸J1~J6について、それぞれ手先の変位が最大となる姿勢を設定する。この場合、各軸J1~J6について、手先の変位つまり先端位置Pの変位が最大となるロボット10の姿勢は、対象とする軸から先端位置Pが最も遠くなる姿勢である。
【0037】
すなわち、例えば第1軸J1について見ると、第1軸J1を動作させる際にツール13を含めた先端位置Pの変位が最大となるロボット10の姿勢は、先端位置Pが第1軸J1から最も遠くなる姿勢、つまり、
図2に示すように、第2アーム122以降の各アーム122~126がそれぞれ第1軸J1に対して直角方向に伸びるような姿勢となる。この姿勢で第1軸J1を回転させると、ロボット10は第1軸J1を中心に最大径で回転する。
【0038】
また、第2軸J2について見ると、第2軸J2を動作させる際にツール13を含めた先端位置Pの変位が最大となるロボット10の姿勢は、先端位置Pが第2軸J2から最も遠くなる姿勢となる。この場合も、第1軸J1の場合と同様に、
図2に示すように、第2アーム122以降の各アーム122~126が直線状に伸びた姿勢となる。
【0039】
そして、ユーザ又はロボットコントローラ20は、各軸J1~J6について、先端位置Pの変位が最大となる姿勢で対象となる軸を動作させ、
図5に示すように、先端位置Pが安全範囲SAから出るときの対象軸の回転角度を測定する。そして、ユーザ又はロボットコントローラ20は、先端位置Pが安全範囲SAから出るときの各軸J1~J6についての回転角度のうち、最も小さい角度を安全角度Sθに設定する。例えば第1軸J1について測定された回転角度が6°であり、第2軸J2について測定された回転角度が5°である場合、ユーザ又はロボットコントローラ20は、ロボット10の安全角度を5°に設定する。
【0040】
以下の説明では、ロボット10の動作中のある時点における動作ログデータを動作ログデータD(N)とする。各動作ログデータD(N)は、各軸J1~J6の角度α1~α6、及び手先位置Pの座標P(N)が含まれている。なお、Nは生ログデータ取得処理により取得された動作ログデータの取得順を示す数値又は取得時刻である。ロボット10が例えば
図6に示すような軌道で動作している最中に生ログデータ取得処理が実行されると、生ログデータ取得処理部241は、
図7に示すように、一定間隔、例えば数m秒~数十m秒間隔でロボット10の動作ログデータD(N)を順次取得する。
【0041】
その後、ユーザからダウンサンプリング処理を実行する旨の指示入力があった場合、又は一定量の動作ログデータがバッファに蓄積された場合、ダウンサンプリング処理部242はダウンサンプリング処理を実行する。ダウンサンプリング処理部242は、ダウンサンプリング処理を開始すると、取得した全ての動作ログデータD(N)について、順次、記録対象から除外可能か否かを判定する。
【0042】
図8に示すように、ダウンサンプリング処理部242は、例えば動作ログデータD(0010)の手先位置P(0010)について、その手先位置P(0010)の安全範囲SA内にP(0010)以降の動作ログデータD(N)の手先位置P(N)が存在しているか否かを判定する。例えば
図8に示すように、動作ログデータD(0010)の手先位置P(0010)の安全範囲SA内に動作ログデータD(0010)以降の動作ログデータの手先位置が存在していない場合、ダウンサンプリング処理部242は、次の動作ログデータ、この場合、動作ログデータD(0011)について判定を行う。
【0043】
そして、ダウンサンプリング処理部242は、例えば
図9に示すように、動作ログデータD(0014)の手先位置P(0014)の安全範囲SA内に0014番目以降の動作ログデータD(N)、例えばこの場合、動作ログデータD(0015)、D(0016)の手先位置P(0015)、P(0016)が存在する場合、対象とする動作ログデータD(0014)の手先位置(0014)に対して、その手先位置P(0014)の安全範囲SA内に手先位置P(N)が存在する他の動作ログデータD(N)、この場合、動作ログデータD(0015)、D(0016)の回転角度αの差分dαつまり角度変化量dαが、安全角度Sθ内であるか否かを判定する。
【0044】
例えば
図10の例では、動作ログデータD(0014)を基準にしてこの動作ログデータD(0014)以降の動作ログデータD(N)について見た場合において、動作ログデータD(0015)、D(0016)の各手先位置P(0015)、P(0016)及び回転角度の変化量dα1~dα6が、いずれも安全範囲SA及び安全角度Sθ以下となっているとする。なお、
図10の例においては、判定を行っている動作ログデータD(0014)以降の動作ログデータのうち、上記条件を満たしている項目を網掛けで示している。すなわち、
図10の例では、動作ログデータD(0014)を基準にした場合、表の網掛け部分が上記条件を満たしているとする。
【0045】
この場合、ダウンサンプリング処理部242は、
図11に示すように、上記条件を満たす動作ログデータD(0015)、D(0016)のうち現在判定を行っている動作ログデータD(0014)の先端位置P(0014)から最も遠い位置にある先端位置P(0016)を有する動作ログデータD(0016)を残し、その動作ログデータD(0016)以外の動作ログデータ、この場合、動作ログデータD(0015)を記録対象から除外つまり削除する。
【0046】
そして、ダウンサンプリング処理部242は、
図12に示すように、次の記録対象から除外されなかった動作ログデータD(N)のうち次の動作ログデータD(0016)について判定を行う。
図12の例は、動作ログデータD(0016)を基準にしてこの動作ログデータD(0016)以降の動作ログデータについて見た場合において、動作ログデータD(0017)、D(0018)の各手先位置P(0017)、P(0018)は安全範囲SA内にあるが、動作ログデータD(0016)に対する各動作ログデータD(0017)、D(0018)の回転角度α(0017)、α(0018)の差分つまり角度の変化量dα1~dα6が、いずれも安全角度Sθから外れている、つまり安全角度Sθを越えているとする。
【0047】
なお、
図13の例においては、判定を行っている動作ログデータD(0016)以降の動作ログデータのうち、上記条件を満たしている項目を網掛けで示している。すなわち、
図13の例では、動作ログデータD(0016)を基準にした場合、動作ログデータD(0017)、D(0018)のうち網掛けで示した手先位置P(0017)、P(0018)については上記条件を満たしているが、網掛けで示されていない回転角度α1(0017)~α6(0017)、α1(0018)~α6(0018)については上記条件を満たしていない。この場合、ダウンサンプリング処理部242は、各手先位置P(0017)、P(0018)が安全範囲SA内に存在していても、変化量dαの条件を満たさないため、動作ログデータD(0017)、D(0018)を記録対象から除外せずに記録対象とする。
【0048】
更にダウンサンプリング処理部242は、
図14に示すように、次の記録対象から除外されなかった動作ログデータD(N)のうち次の動作ログデータD(0017)について判定を行う。
図14の例は、動作ログデータD(0017)を基準にしてこの動作ログデータD(0017)以降の動作ログデータについて見た場合において、動作ログデータD(0018)、D(0019)の各手先位置P(0018)、P(0018)は安全範囲SA内にあり、かつ、動作ログデータD(0017)に対する各動作ログデータD(0018)、D(0019)の回転角度α(0018)、α(0019)の差分つまり角度変化量dα1~dα6も、安全角度Sθ以下となっている。
【0049】
なお、
図15の例においては、判定を行っている動作ログデータD(0017)以降の動作ログデータのうち、上記条件を満たしている項目を網掛けで示している。すなわち、
図15の例では、動作ログデータD(0017)を基準にした場合、表の網掛け部分が上記条件を満たしているとする。
【0050】
この場合、ダウンサンプリング処理部242は、
図16及び
図17に示すように、上記条件を満たす動作ログデータD(0018)、D(0019)のうち現在判定を行っている動作ログデータD(0017)の先端位置P(0017)から最も遠い位置にある先端位置P(0019)を有する動作ログデータD(0019)を残し、その動作ログデータD(0019)以外の動作ログデータ、この場合、動作ログデータD(0018)を記録対象から除外つまり削除する。
【0051】
そして、ダウンサンプリング処理部242は、
図18に示すように、動作ログデータD(N)の終端まで判定を行い、その後、ダウンサンプリング処理を終了する。これにより、
図17に示すように、生ログデータのうち上記条件を満たす特定の動作ログデータが除外されて、ダウンサンプリングされる。このように、ダウンサンプリング処理部242は、
図17に示すように、生ログデータ取得処理部241で取得した生ログデータの中から所定の条件を満たすものを除外してダウンサンプリングした後の残った動作ログデータを、記録用ログデータとして特定する。そして、記録処理部243は、記録処理を実行し、ダウンサンプリング処理部242で特定された記録用ログデータを記録部23に記録する。
【0052】
次に、
図19及び
図20を参照して、ダウンサンプリング処理の制御フローについてロボット10の動作を含めて説明する。なお、以下の説明においては、生ログデータ取得処理部241、ダウンサンプリング処理部242、及び記録処理部243による各処理は、いずれも制御部21が主体となって行うものとして説明する。
【0053】
制御部21は、
図19のステップS11に示すようにロボット10の動作が開始すると、ステップS12に処理を移行させ、生ログデータ取得処理を開始する。その後、制御部21は、ステップS13へ処理を移行させ、ロボット10が動作中であるか否かを判断する。ロボット10が動作中でない場合、つまりロボット10の動作が異常停止した場合(ステップS13でNO)、制御部21は、ステップS14へ処理を移行させ、生ログデータ取得処理を終了し、その後、ステップS20へ処理を移行させ、
図20に示すダウンサンプリング処理を実行する。
【0054】
一方、ロボット10の動作が動作中である場合(ステップS13でYES)、制御部21は、ステップS15に処理を移行させ、動作ログデータがバッファに一定量蓄積されているか否かを判断する。動作ログデータがバッファに一定量蓄積されていない場合(ステップS15でNO)、制御部21は、ステップS13へ処理を戻し、一定量の動作ログデータが蓄積されるまでステップS13~S15を繰り返す。そして、動作ログデータがバッファに一定量蓄積されると(ステップS15でYES)、制御部21は、ステップS20へ処理を移行させ、
図20に示すダウンサンプリング処理を実行する。
【0055】
ここで、
図20のフローにおいて、Nは、動作ログデータの取得順を示す変数である。この場合、N=1は、ロボット10の動作開始時つまり生ログデータ取得処理の実行により取得した1番目の動作ログデータを示す。この場合、動作ログデータD(1)は、ロボット10の原点位置のデータとすることができる。また、Tは
図20の制御フロー内で使用する変数である。
【0056】
制御部21は、ダウンサンプリング処理を実行すると、
図20のステップS201においてまずN=1を設定し、その後、ステップS202においてT=1を設定し、変数N、Tをそれぞれ初期化する。次に、制御部21は、ステップS203へ処理を移行し、動作ログデータD(N)と動作ログデータD(N+T)とを比較する。そして、制御部21は、動作ログデータD(N)と動作ログデータD(N+T)とにおける各軸J1~J6の角度変化量dα1~dα6の全てが安全角度Sθ以下であれば(ステップS204でYES)、ステップS205へ処理を移行させる。
【0057】
次に、制御部21は、動作ログデータD(N+T)の手先位置P(N+T)が、動作ログデータD(N)を中心とする安全範囲SA内にあるか否かを判断する。動作ログデータD(N+T)の手先位置P(N+T)が、動作ログデータD(N)を中心とする安全範囲SA内にある場合(ステップS205でYES)、制御部21は、ステップS206へ処理を移行させる。制御部21は、ステップS206において、変数Tが2以上であるか否か、つまり、動作ログデータD(N)と動作ログデータD(N+T)とが隣接していないかを判断する。変数Tが2未満つまり1である場合(ステップS206でNO)、動作ログデータD(N)と動作ログデータD(N+T)とは隣接した動作ログデータであるため、制御部21は、動作ログデータD(N+T)を記録対象に残す、つまり記録対象から除外しない。
【0058】
このように、制御部21は、探索の基準となる動作ログデータD(N)の手先位置P(N)から安全範囲内SAに手先位置があり、かつ、探索の基準となる動作ログデータD(N)の各軸J1~J6の角度の変化量dα1~dα6が安全角度Sθ以下のもののうち、手先位置が探索の基準となる動作ログデータD(N)の手先位置P(N)から最も遠い位置にあるもの以外を対象から除外して残った動作ログデータを記録用ログデータとして特定する。そして、制御部21は、ステップS208においてTに1を加算した後、ステップS203へ処理を戻し、ステップS203以降の処理を繰り返す。
【0059】
一方、制御部21は、変数Tが2以上である場合(ステップS206でYES)、つまり、動作ログデータD(N)と動作ログデータD(N+T)とが隣接していない場合、制御部21は、ステップS207へ処理を移行させ、動作ログデータD(N+T)の1つ前の動作ログデータD(N+T-1)を記録対象から除外して削除する。そして、制御部21は、ステップS208においてTに1を加算し、ステップS203へ処理を戻して更に比較を続ける。
【0060】
一方、動作ログデータD(N)と動作ログデータD(N+T)との各軸J1~J6の角度変化量dα1~dα6のうち安全角度Sθを超えるものが1つでもある場合(ステップS204でNO)、制御部21は、ステップS209へ処理を移行させる。また、動作ログデータD(N+T)の手先位置P(N+T)が、動作ログデータD(N)を中心とする安全範囲SAから外れている場合(ステップS205でNO)、制御部21は、ステップS209へ処理を移行させる。そして、制御部21は、ステップS209において、動作ログデータD(N+T)を記録対象に設定する。
【0061】
次に、制御部21は、比較判断の基準を次の動作ログデータに移すため、ステップS210においてNに1を加算する。その後、制御部21は、ステップS211に処理を移行させ、比較判断を行うべき動作ログデータが終了したか否か、つまりバッファに蓄積されている動作ログデータの終端まで処理が到達したか否かを判断する。動作ログデータが終了していない場合、つまり比較判断を行うべき動作ログデータがまだ残っている場合(ステップS211でNO)、制御部21は、ステップS212へ処理を移行させ、次に比較判断の基準にしようとしている動作ログデータD(N)が記録対象から除外されているか否かを判断する。
【0062】
次に比較判断の基準にしようとしている動作ログデータD(N)が記録対象から除外されている場合(ステップS212でYES)、制御部21は、ステップS210へ処理を移行させ、比較判断の基準を更に次の動作ログデータに移すためにステップS210においてNに1を加算する。一方、ステップS212において、次に比較判断の基準にしようとしている動作ログデータD(N)が記録対象となっている場合(ステップS212でNO)、制御部21は、ステップS202に処理を戻し、ステップS202以降の処理を繰り返す。このようにして、制御部21は、生ログデータの中から除外するものとしないものとを選別し、除外しないものを残して記録用ログデータを特定する。
【0063】
そして、制御部21は、比較判断を行うべき動作ログデータが終了すると(ステップS211でYES)、そして、制御部21は、ダウンサンプリング処理を終了して
図19のフローに処理を戻し、ステップS17以降の処理を実行する。
【0064】
制御部21は、ステップS17において記録処理を実行し、ダウンサンプリング処理で特定した記録用ログデータを記録部23に記録する。そして、制御部21は、ステップS18において、生ログデータ取得処理が終了しているか否かを判断し、生ログデータ取得処理が継続して行われている場合(ステップS18でYES)、ステップS13へ処理を戻す。一方、ロボット10の動作が停止して、生ログデータ取得処理が終了している場合(ステップS18でNO)、制御部21は、全体の制御を終了する。
【0065】
以上説明したように、本実施形態によれば、記録可能な動作ログデータ記録装置24は、ロボット10の動作ログを記録可能な記録部23にアクセス可能である。動作ログデータ記録装置24は、生ログデータ取得処理部241と、ダウンサンプリング処理部242と、記録処理部243と、を有している。生ログデータ取得処理部241は、生ログデータ取得処理を実行し、これにより、生ログデータとして一定期間毎にロボット10を動作させた際のロボット10の各軸J1~J6の角度情報α1~α6を取得する。
【0066】
ダウンサンプリング処理部242は、ダウンサンプリング処理を実行可能である。ダウンサンプリング処理は、生ログデータ取得処理部241で取得した生ログデータのうち、特定の条件を満たすものについて記録対象から除外する処理を含む。このダウンサンプリング処理により、動作ログデータのデータ容量を削減することができる。
【0067】
この場合、ダウンサンプリング処理は、生ログデータ取得処理部241で取得した生ログデータのうち、探索の基準となる動作ログデータの手先位置Pから予め設定された安全範囲SA内に手先位置Pがあり、かつ、探索の基準となる動作ログデータの各軸J1~J6の角度α1~α6の変化量dα1~dα6が予め設定された安全角度Sθ以下のもののうち、手先位置Pが探索の基準となる動作ログデータの手先位置Pから最も遠い位置にあるもの以外を記録対象から除外して残った動作ログデータを記録用ログデータとして特定する処理を含む。
【0068】
ここで、原点復帰を行う際に、動作ログデータを間引いたものに基づいて逆再生を行うと、ロボット10の自動動作中に実際に移動していない軌跡で移動する、つまり安全が確認されていない経路を通ることになる。そのため、動作ログデータを間引く際にロボット10の周辺環境に対する安全を考慮していないと、ロボット10が周辺環境に接触等してしまう危険性がある。
【0069】
そこで、本実施形態のダウンサンプリング処理部242は、生ログデータを記録対象から除外する際に、手先位置Pの移動量と各軸J1~J6の角度の変化量との両方を考慮する。そして、ダウンサンプリング処理部242は、手先位置Pの移動量と各軸J1~J6の角度の変化量との両方が安全である場合に、その生ログデータを記録対象から除外つまり削除する。
【0070】
ここで、探索の基準となる動作ログデータの手先位置Pから安全範囲SA内に手先位置Pがあり、かつ、各軸J1~J6の角度変化量dα1~dα6が安全角度Sθ以下のものを全て除外してしまうと、現在探索の基準としている動作ログデータに対して、残った次の動作ログデータは、手先位置Pが安全範囲SAの外側に位置しているものか、又は角度変化量dα1~dα6が安全角度Sθよりも大きいものとなる。そして、例えばこのようにして間引いた動作ログデータに基づいて逆再生を行うと、現在探索の基準としている動作ログデータから次の動作ログデータへ移行した際に、手先位置Pの大きな移動や、各アーム121~126の大きな姿勢変化が生じ、その結果、安全性の低下に繋がる。
【0071】
これに対し、本実施形態のダウンサンプリング処理は、探索の基準となる動作ログデータの手先位置Pから安全範囲SA内に手先位置Pがあり、かつ、各軸J1~J6の角度変化量dα1~dα6が安全角度Sθ以下のもののうち、手先位置Pが探索の基準となる動作ログデータの手先位置Pから最も遠い位置にあるもの残して次の動作ログデータとする。これによれば、現在探索の基準としている動作ログデータから次の動作ログデータへの移動において、手先位置Pの移動は安全範囲SA内でかつ各軸J1~J6の角度変化量dα1~dα6も安全角度Sθ内となるため、大きな移動や姿勢の変化が抑制され、安全性を確保することができる。
【0072】
このように、本実施形態によれば、記録部23に記録するログのデータ容量を削減できるとともに、例えば逆再生を行う場合の経路探索の計算に要する処理負荷も軽減することができる。更には、手先位置Pの移動量と各軸J1~J6の角度の変化量との両方の安全を考慮しているため、ロボット10と周辺環境との接触等を防止することができ、原点復帰の際の安全性を向上することができる。
【0073】
また、安全範囲SAは、ロボット10の手先に取り付けられるツール13を含めて各軸J1~J6の中心に対して最も細い部分を径とする領域、この場合、第6アーム126が専有する領域に設定されている。すなわち、安全範囲SAは、ロボット10が専有している空間のうち最も小さい領域である。この場合、ロボット10の手先位置Pの移動が安全範囲SA内に収まっていれば、実質的に手先位置Pが移動していないとみなすことができる。
【0074】
しかし、ロボット10の動作態様としては、手先位置Pの移動を伴わずに、各軸J1~J6を大きく動かす動作態様も考えられる。この場合、手先位置Pだけで動作ログデータの除外の要否を判断すると、各軸J1~J6が大きく動いている場合に危険を伴う。そこで、本実施形態では、安全角度Sθは、各軸J1~J6を動作させた際に手先位置Pの変位が最大となる姿勢において、ツール13を含めた先端位置Pが安全範囲SAから外れた場合の各軸J1~J6における回転角度のうち最小の回転角度に設定されている。
【0075】
これによれば、ダウンサンプリング処理部242は、手先位置Pの移動を伴わずに各軸J1~J6が大きく動いた場合の動作ログデータについては、記録対象から除外せずに記録対象として残す処理を行う。そのため、これによれば、動作ログデータを削除しつつ、その動作ログデータを用いてロボット10を逆再生させる際等において、確実にロボット10と周辺環境との接触等を防ぐことができ、原点復帰の安全性を更に向上させることができる。
【0076】
また、本実施形態において、生ログデータ取得処理は、取得した生ログデータを例えば制御部21の記憶領域212に確保されたバッファに一時的に保管する処理を含む。そして、ダウンサンプリング処理部242は、バッファに所定量の生ログデータが蓄積された場合にその所定量ごとダウンサンプリング処理を実行する。すなわち、本実施形態においては、ダウンサンプリング処理部242は、ロボット10について動作開始から停止までの一連の動作ログデータを所定量ごとに分割して、その分割した単位でダウンサンプリング処理を実行する。これによれば、ロボット10の動作開始から停止までの全ての動作ログデータについて一括でダウンサンプリング処理を行う場合や、生ログデータを取得しながら遂次ダウンサンプリング処理を行う場合に比べて、計算に要する処理負荷の低減や計算時間の短縮を行うことができる。
【0077】
なお、ダウンサンプリング処理は、上述したタイミングで実行する場合に限られない。すなわち、ダウンサンプリング処理部242は、ロボット10の動作が開始してから停止するまでの一連の動作に係る動作ログデータを全て取得した後に、つまりロボット10の動作が停止した後に、ダウンサンプリング処理を実行しても良い。また、ダウンサンプリング処理部242は、生ログデータを取得しながら遂次ダウンサンプリング処理を行っても良い。
【0078】
[原点復帰経路探索装置]
次に、原点復帰経路探索装置25について、
図21~
図27も参照しながら説明する。原点復帰経路探索装置25は、ロボット10が自動動作中に停止した場合において、記録部23に記録されているロボット10の動作ログデータに基づいて、ロボット10を所定位置まで戻すための復帰経路を探索する処理を実行する。本実施形態では、上述したダウンサンプリング処理により、ロボット10の動作ログデータのデータ容量を低減している。このため、原点復帰経路探索装置25は、ダウンサンプリング処理によって削減された動作ログデータを単純に辿って逆再生するだけでも、ダウンサンプリング処理をしない場合に比べて処理負荷を低減することができる。
【0079】
しかしながら、ダウンサンプリング処理の実行によりデータ容量が削減されていても、復帰経路をダウンサンプリング処理後の動作ログデータに基づいて単純な逆再生の経路とすると、復帰のための移動に関係のない無駄な動きが含まれてしまい、復帰までに時間がかかってしまう。
【0080】
そこで、本実施形態の原点復帰経路探索装置25は、復帰原点設定処理部251と、復帰経路探索処理部252と、を有している。復帰原点設定処理部251は、復帰原点設定処理を実行可能である。復帰原点設定処理は、ロボット10の復帰の目標位置となる復帰原点を設定する処理である。
【0081】
ここで、例えば異常停止した位置によって、ロボット10の手先の状態は異なる。すなわち、例えば
図21に示すように、地点P(S0)、地点P(S1)、地点P(S
2)、地点P(
S3)の順にロボット10が移動する場合について見る。
図21の例では、原点P(S0)から地点P(S1)までは、ロボット10の手先にはツールは装着されていない。そして、ロボット10は、地点P(S1)において第6アーム126にツール13を装着する。その後、ロボット10は、地点P(S1)から地点P(S2)まで移動して地点P(S2)においてツール13でワーク90を把持する。そして、ロボット10は、ツール13でワーク90を把持した状態で、地点P(S
2)から地点P(S3)まで移動し、地点P(S3)においてワーク90の把持を解除する。
【0082】
本実施形態において、ユーザは、例えばロボット10の動作開始地点P(S0)をロボット10の実際の原点である実原点P(S0)に設定することができる。また、ユーザは、例えばロボット10の手先の状態が変化する地点P(S1)、P(S2)、P(S3)を、それぞれ仮想的な原点である仮想原点に設定することができる。この場合、地点P(S1)、P(S2)、P(S3)を、それぞれ第1仮想原点P(S1)、第2仮想原点P(S2)、第3仮想原点P(S3)とする。
【0083】
復帰原点設定処理部251は、ロボット10に対して唯一設定された実原点の他に、ユーザによって任意に設定された1つ又は複数の仮想原点を有することができる。なお、復帰原点設定処理部251は、仮想原点を有していなくても良い。そして、復帰原点設定処理部251が仮想原点を有している場合、復帰原点設定処理は、1つの実原点と、1つ又は複数の仮想原点と、の中から、ロボット10の手先の状態つまりロボット10が異常停止した位置に応じて、原点復帰動作によってロボット10が戻るべき復帰原点を設定する処理を含む。
【0084】
すなわち、例えばロボット10の手先に何も装着されていない場合、つまりロボット10が実原点P(S0)から第1仮想原点P(S1)までの間で異常停止した場合、復帰原点は、原点P(S0)に設定される。また、例えばロボット10の手先にツール13が装着されており、かつ、ツール13がワーク90を把持していない場合、つまりロボット10が第1仮想原点P(S1)から第2仮想原点P(S2)までの間で異常停止した場合、復帰原点は、第1仮想原点P(S1)に設定される。そして、例えばロボット10の手先にツール13が装着されており、かつ、ツール13がワーク90を把持している場合、つまりロボット10が第2仮想原点P(S2)から第3仮想原点P(S3)までの間で異常停止した場合、復帰原点は、第2仮想原点P(S2)に設定される。
【0085】
この場合、すなわち、復帰原点の設定は、復帰原点設定処理部251が自動で行う構成とすることができる。すなわち、この場合、復帰原点設定処理部251は、記録部23に記録されている動作ログデータに基づいてロボット10が異常停止した位置及びその位置におけるツール13の装着状態やワークの把持状態等を判断し、これにより復帰原点設定処理部251がその状況に適切な復帰原点を自動で設定する構成とすることができる。また、復帰原点の選択は、現場作業者が手動で任意に選択する構成としても良い。すなわち、現場作業者が異常停止したロボット10の停止位置や状態を見て判断し、その現場作業者が入力表示装置22を用いて復帰原点を設定する構成とすることができる。
【0086】
復帰経路探索処理部252は、復帰経路探索処理を実行可能である。復帰経路探索処理は、記録部23に記録されている動作ログデータに基づいてロボット10の復帰経路を探索する処理である。復帰経路は、ロボット10の現在位置からロボット10の軌道上に設定された復帰原点まで復帰するための経路である。そして、復帰経路探索処理は、現在位置から復帰原点までの全ての動作ログデータを辿った実経路に対し、探索対象となる動作ログデータの手先位置を基準として予め設定された接続可能範囲CA内に手先位置が存在する他の動作ログデータが存在する場合に、探索対象となる動作ログデータと他の動作ログデータとを接続してその2点間の実経路を省略した復帰経路を探索する処理を含む。
【0087】
接続可能範囲CAは、
図26に示すように、上述した安全範囲SAよりも大きくかつ2倍以下の値、この場合、安全範囲SAの1.5倍以下に設定されている。接続可能範囲CAを安全範囲SAの1.5倍以下に設定しているのは、一般的にロボット10の最も細い部分である安全範囲SAのおよそ1.5倍が、ロボット10の外装の範囲内であり動作ログデータを取得した際のロボット10の占有空間となっているからである。なお、接続可能範囲CAは、ロボット10の形状やサイズに応じてユーザが任意に設定することもできる。
【0088】
また、復帰経路探索処理は、動作ログデータ上の2点間における各軸J1~J6の角度の変化量dα1~dα6が予め設定された接続可能角度Cθ以下である場合に2点間を接続する。この場合、接続可能角度Cθは、上述した回転角度のうち最小の回転角度である安全角度Sθよりも大きくかつ2倍以下の値、この場合、安全角度Sθの1.5倍に設定されている。接続可能角度Cθを安全角度Sθの1.5倍に設定しているのも、一般的に安全角度Sθの2倍以下の範囲、特に安全角度Sθの1.5倍の角度範囲が、各軸J1~J6を動作させた際に周辺環境と干渉しない角度範囲となっているからである。なお、接続可能角度Cθも、ロボット10の形状やサイズに応じてユーザが任意に設定することができる。
【0089】
次に、復帰経路探索処理について、記録部23に記録されている動作ログデータが
図22に示すものの場合について説明する。この場合、
図22の各点P(M)~P(M+11)は、記録部23に記録されている動作ログデータの中の手先位置Pを示している。なお、Mは、記録部23に記録されている動作ログデータの順番を示す変数である。
図22は、ロボット10の手先位置が、点P(M)から点P(M+11)まで順に移動し、点P(M+11)地点で異常停止した場合の例である。この場合、点P(
M)を復帰原点とする。また、
図23の実線矢印で示すように、手先位置P(M+11)から手先位置(M)までを順に遡った経路が、動作ログデータを単純に逆再生した場合の実経路となる。
【0090】
復帰経路探索処理部252は、復帰経路探索処理を実行すると、ロボット10の停止位置つまり現在位置P(M+1)、又は復帰原点P(M)のいずれか一方、又は両方を始点として、各動作ログデータを基準とした復帰経路の探索を行う。例えば
図23~
図25の例では、ロボット10の現在位置P(M+11)を始点として経路の探索を行う場合について示している。この場合、復帰経路探索処理部252は、
図23に示すように、まずロボット10の現在位置P(M+11)を基準とし、現在位置P(M+11)に対して接続可能範囲CA内に手先位置Pを有する動作ログデータが存在しているか否かを判断する。
【0091】
図23の例において、ロボット10の現在位置P(M+11)を基準とした場合の接続可能範囲CA内には、手先位置Pを有する他の動作ログデータは存在していない。そのため、復帰経路探索処理部252は、次の探索対象、つまり位置P(M+10)に探索対象を変更する。その後、復帰経路探索処理部252は、ロボット10の動作軌跡を遡るようにして各位置Pについて探索を行う。
【0092】
そして、復帰経路探索処理部252は、例えば手先位置P(M+9)について探索を進める。この場合、手先位置P(M+9)を基準とした接続可能範囲CA内には、手先位置P(M+2)を有する動作ログデータが存在している。この場合、復帰経路探索処理部252は、手先位置P(M+9)における各軸J1~J6の角度状態から、手先位置P(M+2)における各軸J1~J6の角度状態になる際の角度の変化量dα1~dα6を算出し、その変化量dα1~dα6の全てが接続可能角度Cθ以下であれば、
図25に示すように、手先位置P(M+9)から手先位置P(M+2)の経路を繋ぎ、この2点間つまり手先位置P(M+9)と手先位置P(M+2)との間の実経路を省略する。このようにして、復帰経路探索処理部252は、実経路よりも短い最短経路を探索することができる。
【0093】
なお、復帰経路探索処理部252は、復帰経路探索処理において、ロボット10の現在位置P(M+1)と復帰原点P(M)との両側から同時に探索を開始しても良い。これによれば、復帰経路探索処理に要する処理時間を短縮することができる。
【0094】
次に、復帰経路探索処理のフローについて、
図27も参照して説明する。
図27の例では、ステップS32~S38における処理が、復帰経路探索処理となる。なお、以下の説明においては、復帰原点設定処理部251及び復帰経路探索処理部252による各処理は、いずれも制御部21が主体となって行うものとして説明する。ここで、
図27のフローにおいて、Uは、現在経路の探索対象としている動作ログデータを示す変数である。この場合、復帰原点は、例えばU=Mの動作ログデータD(M)における手先位置P(M)に設定されている。
【0095】
本実施形態において、制御部21は、探索の開始位置つまりロボット10が異常停止した位置からロボット10の復帰原点までの全ての経路を探索し、その探索した経路の中で最も距離が短いものを復帰経路として設定する。制御部21は、
図27に示すように、復帰経路探索処理を開始すると(スタート)、まずステップS31において復帰原点設定処理を実行し、ロボット10の異常停止位置に応じて復帰原点を設定する。次に、制御部21は、ステップS32へ処理を移行させ、ロボット10が異常停止したときの手先位置つまり現在の手先位置を探索対象に設定して、復帰原点へ向かって経路の探索を開始する。
【0096】
制御部21は、ステップS33において、例えば記録部23に記録されている動作ログデータD(U)の手先位置P(U)を中心とした接続可能範囲CA内に他の手先位置P(V)が存在しているか否かを判断する。探索対象の手先位置P(U)を中心とした接続可能範囲CA内に他の手先位置が存在していない場合(ステップS33でNO)、制御部21は、ステップS36へ処理を移行させる。
【0097】
一方、探索対象の手先位置P(U)を中心とした接続可能範囲CA内に他の手先位置が存在している場合(ステップS33でYES)、制御部21は、ステップS34へ処理を移行させる。そして、制御部21は、ステップS34において、探索対象となる手先位置P(U)と、その手先位置P(U)の接続可能範囲CA内に存在している他の手先位置との2点間における各軸J1~J6の回転角度の変化量dα1~dα6が、いずれも接続可能角度Cθ以下であるか否かを判断する。
【0098】
各軸J1~J6の回転角度の変化量dα1~dα6のうち1つでも接続可能角度Cθを越えているものがある場合(ステップS34でNO)、制御部21は、2点間を安全に接続することはできないと判断し、ステップS36へ処理を移行させる。一方、各軸J1~J6の回転角度の変化量dα1~dα6がいずれも接続可能角度Cθ以下である場合(ステップS34でYES)、制御部21は、2点間を安全に接続できると判断し、2点間を接続して2点間の実経路を省略した仮経路を保持する。そして、制御部21は、ステップS36へ処理を移行させ、変数Uから1を減算して、探索対象となる手先位置Pつまり動作ログデータDを次に進める。
【0099】
次に、制御部21は、現在の探索対象となっている手先位置P(U)が復帰原点であるか否か、つまり現在の探索対象となっている動作ログデータD(U)が復帰原点のものであるか否か、換言すれば、全ての動作ログデータについて探索を行ったか否かを判断する。現在の探索対象となっている手先位置P(U)が復帰原点でない場合、つまり、探索すべき動作ログデータが残っている場合(ステップS37でNO)、制御部21は、ステップS32へ処理を戻し、未だ探索を行っていない動作ログデータについて探索を行う。
【0100】
一方、現在の探索対象となっている手先位置P(U)が復帰原点である場合、つまり、全ての動作ログデータについて探索を終了した場合(ステップS37でYES)、制御部21は、ステップS38へ処理を進める。そして、制御部21は、ステップS38において、保持している仮経路のうち最も短い経路を実際の復帰経路として設定する。これにより、復帰経路探索処理に係る一連の制御が終了する。その後、ロボットコントローラ20は、ロボット10を駆動させて、復帰経路探索処理によって設定された復帰経路に従ってロボット10を復帰原点まで戻す。
【0101】
以上説明したように、原点復帰経路探索装置25は、ロボット10の動作ログデータが記録されている記録部23にアクセス可能である。原点復帰経路探索装置25は、復帰経路探索処理部252を有する。復帰経路探索処理部252は、復帰経路探索処理を実行可能である。復帰経路探索処理は、記録部23に記録されている動作ログデータに基づいてロボット10の現在位置からロボット10の軌道上に設定された復帰原点まで復帰するための経路である復帰経路を探索する処理である。復帰経路探索処理は、現在位置から復帰原点までの全ての動作ログデータを辿った実経路に対し、探索対象となる動作ログデータの手先位置Pを基準として予め設定された接続可能範囲CA内に手先位置が存在する他の動作ログデータが存在する場合に、探索対象となる動作ログデータと他の動作ログデータとを接続してその2点間の実経路を省略した復帰経路を探索する処理を含む。
【0102】
これによれば、原点復帰経路探索装置25は、記録部23に記録されているロボット10の動作ログデータに基づいて原点復帰の経路を探索することができる。そのため、ロボットコントローラ20は、ロボット10が異常停止した場合に、原点復帰経路探索装置25で復帰経路を探索し、その探索した復帰経路を辿って原点復帰させることができる。そのため、例えば現場作業者がティーチングペダント等を用いて目視で原点復帰させる必要がなくなるため、ロボット10の操作に不慣れな現場作業者であっても短時間で簡単にロボット10を原点復帰させることができる。
【0103】
そして、本実施形態によれば、ロボット10の実際の動作ログデータに基づいてロボット10の原点復帰経路を探索し設定するため、ロボット10を用いた設備を作る際に、設備製造者が、あらゆる場面での異常停止した原点復帰プログラムを準備する必要がなくなる。その結果、原点復帰プログラムを準備するために必要な膨大な手間と時間を削減することができる。
【0104】
更に、本実施形態によれば、原点復帰経路探索装置25は、記録部23に記録されている動作ログデータが所定の条件を満たす場合には、動作ログデータを単純に逆再生した場合の実経路の一部を省略した原点復帰経路を探索する。このため。本実施形態によれば、原点復帰経路探索装置25は、記録部23に記録されている動作ログデータを単純に逆再生した場合よりも短い復帰経路を探索することができる。その結果、原点復帰の際におけるロボット10の無駄な動作、つまり原点復帰に関係のない動作を省略することができるため、原点復帰に要する時間、つまり工程の停止時間を短縮することができ、ひいては製造工程の効率を向上させることができる。
【0105】
原点復帰経路探索装置25は、復帰原点設定処理部251を更に備える。復帰原点設定処理部251は、復帰原点設定処理を実行可能である。復帰原点設定処理は、一の実原点と、ユーザによって任意に設定される複数の仮想原点と、のうちロボット10の復帰位置となる復帰原点を設定する処理を含む。これによれば、復帰位置つまり復帰原点は、設備に1つだけ設定された実原点だけでなく、ロボット10のツール13の装着の有無やワークの把持などの状態に合わせた仮想原点を設定することができる。
【0106】
すなわち、これによれば、原点復帰経路探索装置25は、異常停止した際のロボット10の状況に合わせた仮想原点まで復帰するための復帰経路を探索することができる。これにより、自動動作時と原点復帰時とにおけるロボット10の状態が異なってしまうという状況を回避することができるため、原点復帰によってツール13やワーク90が周辺環境と接触したりすることを抑制することができる。また、本実施形態によれば、仮想原点まで復帰する復帰経路は、実原点まで復帰させる際の復帰経路よりも短くなる。そのため、ロボット10の原点復帰を仮想原点までとすることができるため、原点復帰の際の移動距離及び移動時間を、実原点まで移動する場合に比べて短縮することができる。
【0107】
ここで、一般的にロボット10の最も細い部分である安全範囲SAのおよそ1.5倍が、ロボット10の外装の範囲内であり動作ログデータを取得した際のロボット10の占有空間となっている。そこで、本実施形態において、接続可能範囲CAは、ロボット10のうち最も細い部分つまり安全範囲SAの1.5倍以下に設定されている。これによれば、ロボット10が原点復帰経路探索装置25によって設定された復帰経路を辿って原点復帰する際に、周辺環境に接触することをより確実に回避することができる。
【0108】
また、一般的に安全角度Sθの2倍以下の範囲、特に安全角度Sθの1.5倍の角度範囲が、各軸J1~J6を動作させた際に周辺環境と干渉しない角度範囲となっている。そこで、本実施形態において、復帰経路探索処理は、2点間における各軸J1~J6の角度の変化量が予め設定された接続可能角度Cθ以下である場合に2点間を接続する。この場合、接続可能角度Cθは、安全角度Sθの1.5倍以下に設定されている。これによれば、ロボット10が原点復帰経路探索装置25によって設定された復帰経路を辿って原点復帰する際に、手先位置はほとんど変化しないが各アーム121~126が大きく動いて周辺環境に接触してしまうような状況を確実に回避することができる。
【0109】
なお、本発明は上記し且つ図面に記載した各実施形態に限定されるものではなく、その要旨を逸脱しない範囲で任意に変形、組み合わせ、あるいは拡張することができる。
上記各実施形態で示した数値などは例示であり、それに限定されるものではない。
【0110】
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【0111】
図面中、1はロボットシステム、10はロボット、22は入力表示装置、24は動作ログデータ記録装置、241は生ログデータ取得処理部、242はダウンサンプリング処理部、243は記録処理部、25は原点復帰経路探索装置、251は復帰原点設定処理部、252は復帰経路探索処理部、を示す。