(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024005159
(43)【公開日】2024-01-17
(54)【発明の名称】ロボット制御装置、及び、ロボット制御方法
(51)【国際特許分類】
B25J 9/10 20060101AFI20240110BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022105227
(22)【出願日】2022-06-30
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】松井 雄太郎
(72)【発明者】
【氏名】田原 鉄也
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707HS27
3C707KS35
3C707KW05
3C707LT11
3C707LU08
3C707LV04
3C707LW03
(57)【要約】
【課題】従来に対し、力制御を行うロボットアームが有する機構部品の寿命を延長可能とする。
【解決手段】ロボットアーム1に対して力制御を行う区間の軌道を生成する力制御軌道生成部201と、ロボットアーム1に対して位置制御を行う区間の軌道を生成する位置制御軌道生成部202と、力制御軌道生成部201により生成された軌道、及び、位置制御軌道生成部202により生成された軌道により、ロボットアーム1の関節にかかる負荷の時系列を算出する負荷算出部203と、負荷算出部203により算出された負荷に基づいて、力制御軌道生成部201により生成された軌道、及び、位置制御軌道生成部202により生成された軌道により、ロボットアーム1の関節にかかる平均負荷を算出する平均負荷算出部204と、平均負荷算出部204により算出された平均負荷が規定値以下であるかを判定する判定部205とを備え、位置制御軌道生成部202は、判定部205により平均負荷が規定値より大きいと判定された場合に、位置制御を行う区間の軌道を修正する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
多関節ロボットアームに対して力制御を行う区間の軌道を生成する力制御軌道生成部と、
前記多関節ロボットアームに対して位置制御を行う区間の軌道を生成する位置制御軌道生成部と、
前記力制御軌道生成部により生成された軌道、及び、前記位置制御軌道生成部により生成された軌道により、前記多関節ロボットアームの関節にかかる負荷の時系列を算出する負荷算出部と、
前記負荷算出部により算出された負荷に基づいて、前記力制御軌道生成部により生成された軌道、及び、前記位置制御軌道生成部により生成された軌道により、前記多関節ロボットアームの関節にかかる平均負荷を算出する平均負荷算出部と、
前記平均負荷算出部により算出された平均負荷が規定値以下であるかを判定する判定部とを備え、
前記位置制御軌道生成部は、前記判定部により平均負荷が規定値より大きいと判定された場合に、位置制御を行う区間の軌道を修正する
ことを特徴とするロボット制御装置。
【請求項2】
前記力制御軌道生成部により生成された軌道、及び、前記位置制御軌道生成部により生成された軌道における効率に関する指標を算出する効率指標算出部を備え、
前記判定部は、前記平均負荷算出部により算出された平均負荷が規定値以下であり、且つ、前記効率指標算出部により算出された効率に関する指標の改善が可能であるかを判定し、
前記位置制御軌道生成部は、前記判定部により平均負荷が規定値より大きいと判定された場合、又は、前記判定部により効率に関する指標の改善が可能であると判定された場合に、位置制御を行う区間の軌道を修正する
ことを特徴とする請求項1記載のロボット制御装置。
【請求項3】
力制御軌道生成部が、多関節ロボットアームに対して力制御を行う区間の軌道を生成するステップと、
位置制御軌道生成部が、前記多関節ロボットアームに対して位置制御を行う区間の軌道を生成するステップと、
負荷算出部が、前記力制御軌道生成部により生成された軌道、及び、前記位置制御軌道生成部により生成された軌道により、前記多関節ロボットアームの関節にかかる負荷の時系列を算出するステップと、
平均負荷算出部が、前記負荷算出部により算出された負荷に基づいて、前記力制御軌道生成部により生成された軌道、及び、前記位置制御軌道生成部により生成された軌道により、前記多関節ロボットアームの関節にかかる平均負荷を算出するステップと、
判定部が、前記平均負荷算出部により算出された平均負荷が規定値以下であるかを判定するステップとを有し、
前記位置制御軌道生成部は、前記判定部により平均負荷が規定値より大きいと判定された場合に、位置制御を行う区間の軌道を修正する
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、多関節ロボットアームを制御するロボット制御装置、及び、ロボット制御方法に関する。
【背景技術】
【0002】
多関節ロボットアームであるロボットアームが有する機構部品の残り寿命は、関節負荷(トルク、アキシャル荷重、又は、ラジアル荷重等)、関節角速度、及び、動作時間等に影響を受ける。
上記機構部品のうち、特に、ロボットアームの関節に装着される減速機は、関節にかかる負荷トルクが所定の上限を超えると摩耗が大きくなるため、寿命を縮めることがわかっている。
【0003】
これに対し、減速機にかかる平均負荷トルク及び平均速度から求められる減速機の寿命が、ロボットアームの製品寿命を超えないように、加減速度を自動決定する手法が開示されている(例えば特許文献1参照)。
この特許文献1に開示されたような手法を用いれば、減速機等の機構部品の寿命をより長くすることができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示された手法は、ロボットアームが力制御による作業を行う場合には、適用が困難であるという課題がある。
力制御による作業では、ロボットアームに取り付けられた加工ツールを、作業対象であるワークに押し付けて加工しながら移動するといった動作が行われる。この動作は、加工の目的によって、軌道、速度、及び、押付け力がほぼ決まる。そのため、特許文献1のように加減速度を変えることで関節への負荷を調整及び低減することは、加工品質への影響があるため難しい。また、軌道、及び、押し付け力の変更についても、上記と同様に難しい。
【0006】
本開示は、上記のような課題を解決するためになされたもので、従来に対し、力制御を行う多関節ロボットアームが有する機構部品の寿命を延長可能となるロボット制御装置を提供することを目的としている。
【課題を解決するための手段】
【0007】
本開示に係るロボット制御装置は、多関節ロボットアームに対して力制御を行う区間の軌道を生成する力制御軌道生成部と、多関節ロボットアームに対して位置制御を行う区間の軌道を生成する位置制御軌道生成部と、力制御軌道生成部により生成された軌道、及び、位置制御軌道生成部により生成された軌道により、多関節ロボットアームの関節にかかる負荷の時系列を算出する負荷算出部と、負荷算出部により算出された負荷に基づいて、力制御軌道生成部により生成された軌道、及び、位置制御軌道生成部により生成された軌道により、多関節ロボットアームの関節にかかる平均負荷を算出する平均負荷算出部と、平均負荷算出部により算出された平均負荷が規定値以下であるかを判定する判定部とを備え、位置制御軌道生成部は、判定部により平均負荷が規定値より大きいと判定された場合に、位置制御を行う区間の軌道を修正することを特徴とする。
【発明の効果】
【0008】
本開示によれば、上記のように構成したので、従来に対し、力制御を行う多関節ロボットアームが有する機構部品の寿命を延長可能となる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1に係るロボット制御装置を有するロボットシステムの構成例を示す図である。
【
図2】実施の形態1に係るロボット制御装置の動作例を示すフローチャートである。
【
図3】実施の形態1に係るロボットアームの動作例を示す図である。
【
図4】実施の形態1における位置制御軌道生成部による軌道の修正例を示す図である。
【
図5】
図5A、
図5Bは、実施の形態1に係るロボット制御装置の動作例を示す図であって、
図5AはRRT等のように乱数に基づいた手法を用いた場合での平均負荷の減少例を示す図であり、
図5Bは勾配法等のように毎回平均負荷が小さくなる手法を用いた場合での平均負荷の減少例を示す図である。
【
図6】実施の形態2に係るロボット制御装置を有するロボットシステムの構成例を示す図である。
【
図7】実施の形態2に係るロボット制御装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係るロボットシステムの構成例を示す図である。
ロボットシステムは、
図1に示すように、ロボットアーム1、及び、ロボット制御装置2を備えている。
【0011】
ロボットアーム1は、複数の関節を有する多関節ロボットアームである。
このロボットアーム1は、
図1に示すように、駆動系101、及び、負荷測定部102を備えている。
【0012】
駆動系101は、ロボットアーム1を駆動するための機構部品である。この駆動系101としては、例えばモータが挙げられる。
この駆動系101は、ロボット制御装置2による制御に従って、動作する。
【0013】
負荷測定部102は、ロボットアーム1の関節にかかる負荷に関する値を測定するセンサである。ロボットアーム1の関節にかかる負荷に関する値としては、例えば、関節の角度、関節の速度、駆動電流、又は、関節にかかるトルクが挙げられる。この負荷測定部102としては、例えばトルクセンサが挙げられる。
この負荷測定部102により測定された関節にかかる負荷に関する値を示す情報は、ロボット制御装置2に送られる。
【0014】
ロボット制御装置2は、ロボットアーム1を制御する。より具体的には、このロボット制御装置2は、ロボットアーム1に対して位置制御及び力制御を行う。実施の形態1に係るロボット制御装置2では、特に、力制御を行うロボットアーム1が有する機構部品(減速機、モータ、又は、その他の機構部品)にかかる負荷を低減する軌道を生成し、当該機構部品の寿命の延長を提供する。
このロボット制御装置2は、
図1に示すように、力制御軌道生成部201、位置制御軌道生成部202、負荷算出部203、平均負荷算出部204、判定部205、及び、ロボット駆動制御部206を備えている。
【0015】
なお、ロボット制御装置2は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。
【0016】
力制御軌道生成部201は、力制御動作区間の軌道を生成する。力制御動作区間は、ロボットアーム1に対して力制御を行う区間である。この力制御動作区間の軌道には、ロボットアーム1の先端の軌跡の他、例えば、ロボットアーム1の関節の角度、速度、又は、加速度等が含まれる。
この際、力制御軌道生成部201は、必要な力制御の作業に要求される軌跡から、力制御動作区間の軌道を生成する。
【0017】
位置制御軌道生成部202は、位置制御動作区間の軌道を生成する。位置制御動作区間は、ロボットアーム1に対して位置制御を行う区間である。位置制御動作区間の軌道は、2つの力制御動作区間の軌道の間を繋ぐ軌道である。この位置制御動作区間の軌道には、ロボットアーム1の先端の軌跡の他、例えば、ロボットアーム1の関節の角度、速度、又は、加速度等が含まれる。
【0018】
また、位置制御軌道生成部202は、判定部205により平均負荷が規定値より大きいと判定された場合に、位置制御動作区間の軌道を修正する。
【0019】
負荷算出部203は、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道により、ロボットアーム1の関節にかかる負荷の時系列を算出する。すなわち、負荷算出部203は、ロボットアーム1が上記力制御動作区間の軌道及び上記位置制御動作区間の軌道で駆動することで、当該ロボットアーム1の関節にかかる負荷の時系列を算出する。このロボットアーム1の関節にかかる負荷の時系列は、ロボットアーム1が有する機構部品にかかる負荷の時系列に相当する。
【0020】
この際、例えば、まず、負荷算出部203は、ロボット駆動制御部206を用いてロボットアーム1を上記力制御動作区間の軌道及び上記位置制御動作区間の軌道で1サイクル駆動させる。そして、負荷算出部203は、上記ロボットアーム1の駆動において負荷測定部102により測定された関節にかかる負荷に関する値を取得することで、当該関節にかかる負荷に関する値から当該関節にかかる負荷の時系列の算出を行う。
また、例えば、負荷算出部203は、実測値を用いた負荷の算出ではなく、シミュレーションによって負荷の算出を行ってもよい。
【0021】
また、負荷算出部203は、位置制御軌道生成部202により位置制御動作区間の軌道が修正された場合には、当該修正後の位置制御動作区間の軌道を用いて、上記負荷の算出を再度行う。
【0022】
平均負荷算出部204は、負荷算出部203により算出された負荷に基づいて、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道により、ロボットアーム1の関節にかかる平均負荷を算出する。すなわち、平均負荷算出部204は、ロボットアーム1が上記力制御動作区間の軌道及び上記位置制御動作区間の軌道で駆動することで、当該ロボットアーム1の関節にかかる平均の負荷を算出する。このロボットアーム1の関節にかかる平均の負荷は、ロボットアーム1が有する機構部品にかかる平均の負荷に相当する。
【0023】
判定部205は、平均負荷算出部204により算出された平均負荷が規定値以下であるかを判定する。
【0024】
ロボット駆動制御部206は、判定部205により平均負荷が規定値以下であると判定された場合に、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道に沿って、ロボットアーム1を制御する。
【0025】
なお、
図1では、ロボット駆動制御部206がロボット制御装置2の内部に設けられた場合を示した。しかしながら、これに限らず、ロボット駆動制御部206はロボット制御装置2の外部に設けられていてもよい。
【0026】
次に、
図1に示す実施の形態1に係るロボット制御装置2の動作例について、
図2を参照しながら説明する。
また、ここで想定するロボットアーム1の作業の一例を
図3に示す。
図3において、P0は、ロボットアーム1の先端の初期位置を示している。また、符号3は、ロボットアーム1により押し付け等の力制御の作業が行われる加工対象物を示している。そして、ロボット制御装置2は、ロボットアーム1をP0からP1に位置制御で移動させる。これにより、ロボットアーム1が加工対象物3に接触する。そして、ロボット制御装置2は、ロボットアーム1をP1からP2に力制御で押し付け等の作業を行いながら移動させる。そして、ロボット制御装置2は、ロボットアーム1をP2からP0に位置制御で移動させる。
図3において、実線の矢印は力制御動作区間を示し、破線の矢印は位置制御動作区間を示している。
【0027】
図1に示す実施の形態1に係るロボット制御装置2の動作例では、
図2に示すように、まず、力制御軌道生成部201は、力制御動作区間の軌道を生成する(ステップST201)。
この際、力制御軌道生成部201は、必要な力制御の作業に要求される軌跡から、力制御動作区間の軌道を生成する。
【0028】
図3の例では、力制御軌道生成部201は、P1からP2への軌道を生成する。
力制御の作業の場合、ロボットアーム1の先端に求められる軌跡は、要求されており通常変更できないので、予め与えられていると想定する。そして、力制御軌道生成部201が、上記要求された軌跡から、力制御動作区間の軌道を生成するための手法は一般に知られている手法を使うものとする。また、ロボットアーム1が6軸垂直多関節ロボットアームである場合においては、目的の軌跡に対して各関節の角度は一意に定まり変更できない。
【0029】
また、位置制御軌道生成部202は、位置制御動作区間の軌道を生成する(ステップST202)。
【0030】
図3の例では、位置制御軌道生成部202は、P0からP1への軌道、及び、P2からP0への軌道を生成する。
位置制御軌道生成部202は、位置制御動作区間の軌道を最初に生成する際には、例えば、2点間を結ぶ直線補間軌道を生成してもよいし、例えば非特許文献1に開示されるようなRRT(Rapidly-exploring random tree)に基づく軌道を生成してもよい。
【非特許文献1】LaValle, S.M. (1998). Rapidly-exploring random trees : a new tool for path planning. The annual research report.
【0031】
なお、
図2では、ロボット制御装置2が、力制御軌道生成部201による力制御動作区間の軌道の生成を行った後に、位置制御軌道生成部202による位置制御動作区間の軌道の生成を行った場合を示した。しかしながら、これに限らず、ロボット制御装置2は、位置制御軌道生成部202による位置制御動作区間の軌道の生成を行った後に、力制御軌道生成部201による力制御動作区間の軌道の生成を行ってもよい。また、ロボット制御装置2は、力制御軌道生成部201による力制御動作区間の軌道の生成、及び、位置制御軌道生成部202による位置制御動作区間の軌道の生成を、並行して行ってもよい。
【0032】
次いで、負荷算出部203は、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道により、ロボットアーム1の関節にかかる負荷の時系列を算出する(ステップST203)。すなわち、負荷算出部203は、ロボットアーム1が上記力制御動作区間の軌道及び上記位置制御動作区間の軌道で駆動することで、当該ロボットアーム1の関節にかかる負荷の時系列を算出する。このロボットアーム1の関節にかかる負荷の時系列は、ロボットアーム1が有する機構部品にかかる負荷の時系列に相当する。
【0033】
この際、例えば、まず、負荷算出部203は、ロボット駆動制御部206を用いてロボットアーム1を上記力制御動作区間の軌道及び上記位置制御動作区間の軌道で1サイクル駆動させる。そして、負荷算出部203は、上記ロボットアーム1の駆動において負荷測定部102により測定された関節にかかる負荷に関する値を取得することで、当該関節にかかる負荷に関する値から当該関節にかかる負荷の時系列の算出を行う。
また、例えば、負荷算出部203は、実測値を用いた負荷の算出ではなく、シミュレーションによって負荷の算出を行ってもよい。
【0034】
次いで、平均負荷算出部204は、負荷算出部203により算出された負荷に基づいて、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道により、ロボットアーム1の関節にかかる平均負荷を算出する(ステップST204)。すなわち、平均負荷算出部204は、ロボットアーム1が上記力制御動作区間の軌道及び上記位置制御動作区間の軌道で駆動することで、当該ロボットアーム1の関節にかかる平均の負荷を算出する。このロボットアーム1の関節にかかる平均の負荷は、ロボットアーム1が有する機構部品にかかる平均の負荷に相当する。
【0035】
この際、平均負荷算出部204は、公知の平均負荷計算手法を用いて平均負荷の算出を行う。なお、平均負荷の上限はロボットアーム1が有する機構部品毎に定められており、また、この平均負荷の合計により機構部品の寿命が定められている。
また、平均負荷算出部204により算出される平均負荷は、力制御動作区間の軌道及び位置制御動作区間の軌道を合わせた全区間にわたる平均を計算したものである必要がある。
【0036】
平均負荷の算出式としては、例えば、下式(1)に示す減速機の平均負荷トルクの計算式が挙げられる。この式(1)において、T
mは平均負荷トルクであり、T
nはトルクであり、n
nは角速度であり、t
nは時間である。この式(1)は、各区間でのトルクに対して関節回転量(n
n×t
n:角速度×時間)で荷重平均をとったものである。
【0037】
なお、上記では、負荷がトルクである場合を例に挙げた場合を示した。しかしながら、これに限らず、負荷がトルク以外の負荷である場合、例えば、ラジアル荷重、又は、アキシャル荷重等の場合についても上記と同様に適応可能である。
【0038】
なお、この平均負荷の活用例として、例えば特許文献2ではロボットが有する機構部品である減速機の残り寿命を算出しており、この平均負荷は公知で妥当性があるものである。
【特許文献2】特開平07-107767号公報
【0039】
次いで、判定部205は、平均負荷算出部204により算出された平均負荷が規定値以下であるかを判定する(ステップST205)。
【0040】
ここで、判定部205が用いる上記規定値は、ロボットアーム1が有する機構部品自体に定められた平均負荷の上限値でもよいし、目標寿命を達成するのに必要な平均負荷の上限値でもよい。
【0041】
このステップST205において、判定部205が平均負荷が規定値以下であると判定した場合、シーケンスは終了する。すなわち、ロボット制御装置2は、今回生成した目標軌道(力制御動作区間の軌道及び位置制御動作区間の軌道)を最終的な目標軌道として決定する。
その後、ロボット駆動制御部206は、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道に沿って、ロボットアーム1を制御する。
【0042】
一方、ステップST205において、判定部205が平均負荷が規定値より大きいと判定した場合、位置制御軌道生成部202は、位置制御動作区間の軌道を修正する(ステップST206)。
【0043】
この際、例えば、位置制御軌道生成部202は、ステップST202で例示したRRTを用いて再度軌道を生成してもよい。
なお、この方法はランダムに軌道を生成する方法であるため、前回までに生成された軌道よりも平均負荷が小さくなるとは限らない。よって、位置制御軌道生成部202は、平均負荷が規定値以下となる軌道が得られるまで、何度も軌道を修正する必要が生じる場合がある。
【0044】
また、例えば、位置制御軌道生成部202は、ステップST202において位置制御動作区間の軌道として2点間を結ぶ直線補間軌道を生成した場合には、例えば
図4に示すように、軌道の途中に経由点を設け、その経由点をランダムに変化させることで軌道を修正してもよい。なお、
図4において、破線の軌道は修正前の軌道であり、実線の軌道は修正後の軌道である。
この場合、位置制御軌道生成部202は、始点(
図4中のP0)、経由点(
図4中のPk)、及び、終点(
図4中のP1)を放物線で結ぶ軌道を生成したり、スプライン曲線で補間した軌道を生成したりするとよい。また、経由点は、1つに限らず、複数であってもよい。
なお、この方法についても、前回までに生成された軌道よりも平均負荷が小さくなるとは限らない。よって、位置制御軌道生成部202は、平均負荷が規定値以下となる軌道が得られるまで、何度も軌道を修正する必要が生じる場合がある。
【0045】
また、例えば、位置制御軌道生成部202は、上記の経由点を勾配法によって、平均負荷が小さくなる方向に少しずつ動かし、軌道を修正してもよい。ここで、平均負荷をJとし、経由点であるPkの座標を(Xk,Yk,Zk)とすると、下式(2)のように経由点の座標を修正可能である。なお、式(2)において、gradJ(Xk,Yk,Zk)は、平均負荷であるJの(Xk,Yk,Zk)における勾配である。また、αは、修正幅を決める幅で、通常は微小な正の数である。
【0046】
この勾配法を使う利点としては、前回までに生成された軌道よりも平均負荷が小さくなる軌道が得られる点がある。但し、この方法では、局所最小に陥ることで最適な軌道に収束しない場合があるため、注意を要する。なお、勾配法については多くの文献があり、広く公知の技術であるため、ここではこれ以上は説明しない。
【0047】
また、例えば、位置制御軌道生成部202は、例えば非特許文献2及び非特許文献3に開示されるような発見的手法又はニューラルネットワーク等を用いて、位置制御動作区間の軌道を修正してもよい。
【非特許文献2】発見と学習を用いたロボットマニピュレータの動作最適化http://da.ms.t.kanazawa-u.ac.jp/rdlab/manipulator-heuristic-neural-network/
【非特許文献3】林 道大, 立矢 宏, 浅川 直紀, 発見的手法を用いた多自由度マニピュレータの軌道決定 : 鋼板搬送用マニピュレータの動的トルク抑制の実現, 日本機械学会論文集 C編, 2009, 75 巻, 750 号, p. 262-269, 公開日 2017/06/09, Online ISSN 1884-8354, Print ISSN 0387-5024, https://doi.org/10.1299/kikaic.75.262, https://www.jstage.jst.go.jp/article/kikaic1979/75/750/75_KJ00005360489/_article/-char/ja
【0048】
その後、シーケンスはステップST203に戻る。すなわち、負荷算出部203は、位置制御軌道生成部202により位置制御動作区間の軌道が修正された場合には、当該修正後の位置制御動作区間の軌道を用いて、上記負荷の算出を再度行う。
【0049】
なお、繰り返し演算を継続しても、平均負荷が規定値以下となる軌道が得られない場合がある。
【0050】
例えば、
図5Aは、位置制御軌道生成部202でRRT等のような乱数を用いて位置制御動作区間の軌道を修正した場合の一例を示している。この
図5Aにおいて、横軸は繰り返し演算回数を示している。また、
図5Aにおいて、縦軸は、これまでの繰り返し演算によって得られた平均負荷の最小値を示し、n回演算された場合には1回目からn回目に生成されたそれぞれの軌道で計算された平均負荷の中の最小値を示している。すなわち、平均負荷の最小値は、繰り返し演算回数に対して非増加である。
図5Aの場合では、例えば、ロボット制御装置2は、平均負荷の最小値が繰り返し演算によって更新されなかった回数が、前もって決めた回数に達した場合に、これ以上の改善は難しいと判定して、繰り返し演算を打ち切る。
【0051】
また、例えば、
図5Bは、位置制御軌道生成部202で勾配法等のように演算を繰り返す度に平均負荷が小さくなることが保証されている手法を用いて位置制御動作区間の軌道を修正した場合の一例を示している。この
図5Bにおいて、横軸は繰り返し演算回数を示している。また、
図5Bにおいて、縦軸は、これまでの繰り返し演算によって得られた平均負荷の最小値を示し、n回演算された場合には1回目からn回目に生成されたそれぞれの軌道で計算された平均負荷の中の最小値を示している。すなわち、平均負荷の最小値は、繰り返し演算回数に対して非増加である。
図5Bの場合では、例えば、ロボット制御装置2は、繰り返し演算回数に対する平均負荷の減少率が、所定の値を前もって決めた回数を超えて下回った場合に、これ以上の改善は難しいと判定して、繰り返し演算を打ち切る。
【0052】
なお、位置制御軌道生成部202は、上記の繰り返し演算の打ち切り後に、経由点を変えて最初からやり直すことも可能である。
【0053】
以上のように、ロボット制御装置2は、繰り返し演算を継続しても平均負荷が規定値以下となる軌道を得ることができなかった場合は、機構部品の寿命を延長する軌道は無いとして、目標軌道の生成を断念する。
この場合、ロボット制御装置2は、繰り返し演算の中で得られた軌道の中で最も平均負荷が小さい軌道を目標軌道として選ぶことも可能である。
【0054】
このように、ロボットアーム1が有する駆動系101の機構部品では、トルク等の負荷の上限値が定められている。これらの負荷の上限値としては、全体を通して超えてはいけない最大負荷の他に平均負荷の上限値も含まれる。そのため、この上限値を超えないようにすることで,駆動系101の機構部品の寿命を長くすることができる。
【0055】
また、一般的に、ロボットアーム1の力制御を用いたアプリケーションで使用される軌道は、加工対象物3に力を印加する力制御動作区間と、力制御動作区間と力制御動作区間との間を移動する位置制御動作区間に分けることができる。
ここで、力制御動作区間では、ロボットアーム1が取るべき経路と姿勢が加工対象物3の位置姿勢によって予め要求されており、特にロボットアーム1が6軸垂直多関節ロボットアームである場合には、軌道の変更の余地が無い場合が多い。従って軌道の変更での機構部品の負荷低減は難しい。
一方、位置制御動作区間では、開始位置と目標位置のみが決められていることが多く、障害物回避の必要はあるが軌道は自由に計画できる。
【0056】
そこで、実施の形態1では、位置制御軌道生成部202により、判定部205が力制御動作区間の軌道と位置制御動作区間の軌道とを通じた平均負荷が規定値以下であると判定するまで、位置制御動作区間の軌道を繰り返し修正する。そして、平均負荷は力制御動作区間と位置制御動作区間を通した区間で計算されるため、位置制御動作区間での負荷を低減すれば、全区間での平均負荷を規定値以下に抑えることが可能になる。これにより、実施の形態1に係るロボット制御装置2は、従来に対し、力制御動作区間の軌道は所与の条件を満たしつつ、全区間での平均負荷を規定値以下に抑えることが可能となり、ロボットアーム1が有する機構部品の寿命を長くすることが可能となる。
【0057】
なお、ロボット制御装置2は、平均負荷が規定値に対して余裕がある場合、平均負荷が規定値より大きくならない程度に加速度等を上げる等の調整を行ってもよく、これにより、サイクルタイムの短縮化が期待できる。
【0058】
以上のように、この実施の形態1によれば、ロボット制御装置2は、ロボットアーム1に対して力制御を行う区間の軌道を生成する力制御軌道生成部201と、ロボットアーム1に対して位置制御を行う区間の軌道を生成する位置制御軌道生成部202と、力制御軌道生成部201により生成された軌道、及び、位置制御軌道生成部202により生成された軌道により、ロボットアーム1の関節にかかる負荷の時系列を算出する負荷算出部203と、負荷算出部203により算出された負荷に基づいて、力制御軌道生成部201により生成された軌道、及び、位置制御軌道生成部202により生成された軌道により、ロボットアーム1の関節にかかる平均負荷を算出する平均負荷算出部204と、平均負荷算出部204により算出された平均負荷が規定値以下であるかを判定する判定部205とを備え、位置制御軌道生成部202は、判定部205により平均負荷が規定値より大きいと判定された場合に、位置制御を行う区間の軌道を修正する。これにより、実施の形態1に係るロボット制御装置2は、従来に対し、力制御を行うロボットアーム1が有する機構部品の寿命が延長可能となる。
【0059】
実施の形態2.
実施の形態1に係るロボット制御装置2では、機構部品の寿命の延長を目的とした場合を示した。これに対し、実施の形態2に係るロボット制御装置2では、機構部品の寿命を延長しつつ、効率に関する指標を最適化することを目的とする。
効率に関する指標としては例えばサイクルタイムが挙げられ、この場合、当該効率に関する指標の最適化はサイクルタイムの最小化を指す。なお、実施の形態2では、平均負荷が規定値以下となる軌道が存在することを前提とする。
【0060】
図6は実施の形態2に係るロボット制御装置2の構成例を示す図である。この
図6に示す実施の形態2に係るロボット制御装置2では、
図1に示す実施の形態1に係るロボット制御装置2に対し、効率指標算出部207が追加されている。
図6に示す実施の形態2に係るロボット制御装置2におけるその他の構成例は、
図1に示す実施の形態1に係るロボット制御装置2と同様であり、同一の符号を付して異なる部分についてのみ説明を行う。
【0061】
効率指標算出部207は、力制御軌道生成部201により生成された軌道、及び、位置制御軌道生成部202により生成された軌道における効率に関する指標を算出する。
【0062】
また、実施の形態2における判定部205は、平均負荷算出部204により算出された平均負荷が規定値以下であり、且つ、効率指標算出部207により算出された効率に関する指標の改善が可能であるかを判定する。
【0063】
また、実施の形態2における位置制御軌道生成部202は、判定部205により平均負荷が規定値より大きいと判定された場合、又は、効率に関する指標の改善が可能であると判定された場合に、位置制御動作区間の軌道を修正する。
【0064】
また、実施の形態2におけるロボット駆動制御部206は、判定部205により平均負荷が規定値以下であると判定された場合であって効率に関する指標の改善が困難であると判定された場合に、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道に沿って、ロボットアーム1を制御する。
【0065】
次に、
図6に示す実施の形態2に係るロボット制御装置2の動作例について、
図7を参照しながら説明する。
【0066】
図6に示す実施の形態2に係るロボット制御装置2の動作例では、
図7に示すように、まず、力制御軌道生成部201は、力制御動作区間の軌道を生成する(ステップST201)。
【0067】
また、位置制御軌道生成部202は、位置制御動作区間の軌道を生成する(ステップST202)。
【0068】
なお、
図7では、ロボット制御装置2が、力制御軌道生成部201による力制御動作区間の軌道の生成を行った後に、位置制御軌道生成部202による位置制御動作区間の軌道の生成を行った場合を示した。しかしながら、これに限らず、ロボット制御装置2は、位置制御軌道生成部202による位置制御動作区間の軌道の生成を行った後に、力制御軌道生成部201による力制御動作区間の軌道の生成を行ってもよい。また、ロボット制御装置2は、力制御軌道生成部201による力制御動作区間の軌道の生成、及び、位置制御軌道生成部202による位置制御動作区間の軌道の生成を、並行して行ってもよい。
【0069】
次いで、負荷算出部203は、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道により、ロボットアーム1の関節にかかる負荷の時系列を算出する(ステップST203)。
【0070】
次いで、平均負荷算出部204は、負荷算出部203により算出された負荷に基づいて、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道により、ロボットアーム1の関節にかかる平均負荷を算出する(ステップST204)。
【0071】
また、効率指標算出部207は、力制御軌道生成部201により生成された軌道、及び、位置制御軌道生成部202により生成された軌道における効率に関する指標を算出する(ステップST701)。この効率に関する指標としては例えばサイクルタイムが挙げられる。
【0072】
次いで、判定部205は、平均負荷算出部204により算出された平均負荷が規定値以下であるかを判定する(ステップST205)。
【0073】
このステップST205において、判定部205が平均負荷が規定値以下であると判定した場合、判定部205は、効率指標算出部207により算出された効率に関する指標の改善が可能であるかを判定する(ステップST702)。例えば、効率指標算出部207が効率に関する指標としてサイクルタイムを算出した場合、判定部205は、当該サイクルタイムを更に最小化可能であるかを判定する。
【0074】
なお、判定部205は、平均負荷が規定値以下となる軌道が初めて得られた場合は、その軌道を目標軌道として仮に設定する。
一方、判定部205は、平均負荷が規定値以下となる軌道が既に存在する場合は、仮の目標軌道の効率に関する指標と、新たに得られた軌道の効率に関する指標とを比較し、新たに得られた軌道の方が効率に関する指標が良ければ、その軌道を新しい目標軌道として仮に設定する。
【0075】
このステップST702において、判定部205は、効率指標算出部207により算出された効率に関する指標の改善が困難であると判定した場合、シーケンスは終了する。すなわち、ロボット制御装置2は、判定部205が効率に関する指標の改善がこれ以上難しいと判定した場合に、その時点での仮の目標軌道(力制御動作区間の軌道及び位置制御動作区間の軌道)を最終的な目標軌道として決定する。
なお、判定部205による繰り返し演算によって効率に関する指標の改善が難しいかどうかの判定は、平均負荷がより小さい軌道が得られるかどうかを判定する際と同様の方法で行うことができる。また、判定部205は、繰り返し回数に制限を設け、繰り返し回数が制限に達したら繰り返し演算を止めて、その時点での仮の目標軌道を最終的な目標軌道として決定してもよい。
その後、ロボット駆動制御部206は、力制御軌道生成部201により生成された力制御動作区間の軌道、及び、位置制御軌道生成部202により生成された位置制御動作区間の軌道に沿って、ロボットアーム1を制御する。
【0076】
一方、ステップST205において、判定部205が平均負荷が規定値より大きいと判定した場合、位置制御軌道生成部202は、位置制御動作区間の軌道を修正する(ステップST206)。
【0077】
その後、シーケンスはステップST203に戻る。すなわち、負荷算出部203は、位置制御軌道生成部202により位置制御動作区間の軌道が修正された場合には、当該修正後の位置制御動作区間の軌道に基づいて、上記負荷の算出を再度行う。
【0078】
なお、繰り返し演算を継続しても、平均負荷が規定値以下となる軌道が得られない場合がある。
そのため、ロボット制御装置2は、繰り返し演算を継続しても平均負荷が規定値以下となる軌道を得ることができなかった場合は、機構部品の寿命を延長する軌道は無いとして、目標軌道の生成を断念する。
この場合、ロボット制御装置2は、繰り返し演算の中で得られた軌道の中で最も平均負荷が小さい軌道を目標軌道として選ぶことも可能である。
【0079】
また、ステップST702において、判定部205が効率に関する指標の改善が可能であると判定した場合についても、位置制御軌道生成部202は、位置制御動作区間の軌道を修正する(ステップST206)。
【0080】
この際、位置制御軌道生成部202は、平均負荷が規定値以下であり、且つ、効率に関する指標がよりよくなるように、位置制御動作区間の軌道を修正する。
【0081】
例えば、位置制御軌道生成部202は、ステップST202で例示したRRTを用いて再度軌道を生成してもよい。
なお、この方法はランダムに軌道を生成する方法であるため、前回までに生成された軌道よりも効率に関する指標が改善するとは限らないし、平均負荷が規定値以下になるとも限らない。よって、位置制御軌道生成部202は、効率に関する指標を改善させるために、何度も軌道を修正する必要が生じる場合がある。また、始点と終点の間に経由点を設け、経由点をランダムに変えて軌道を修正する方法についても同様である。
また、例えば、実施の形態1で説明したのと同様に、位置制御軌道生成部202は、経由点を勾配法によって少しずつ動かしていく方法を用いてもよい。なお、実施の形態1では平均負荷が小さくなる方向へと経由点を少しずつ修正したが、実施の形態2では作業効率の改善が目的であるため、効率に関する指標が改善する方向に経由点を少しずつ修正する。なお、この場合には、式(2)のJが平均負荷から効率に関する指標に変わるだけで、基本的には同じである。
【0082】
その後、シーケンスはステップST203に戻る。すなわち、負荷算出部203は、位置制御軌道生成部202により位置制御動作区間の軌道が修正された場合には、当該修正後の位置制御動作区間の軌道を用いて、上記負荷の算出を再度行う。
【0083】
なお、ステップST206において、位置制御軌道生成部202が、勾配法等を用い、効率に関する指標が改善するよう軌道を少しずつ修正していくと、繰り返し演算の途中で平均負荷が規定値より大きくなる場合がある。その場合は、修正前の軌道が、平均負荷が規定値となる範囲では効率に関する指標が最もよかったということになるため、ロボット制御装置2は、その修正前の軌道を目標軌道として、繰り返し演算を終了する。また、修正前の軌道と修正後の軌道の間に、平均負荷が規定値以下であり且つ効率に関する指標がよりよい軌道が存在するので、ロボット制御装置2は、軌道の修正幅を小さくして繰り返し演算をやり直してもよい。その他、ロボット制御装置2は、経由点の取り方又は経由点の数を変えて、繰り返し演算を再度実行してもよい。
【0084】
このように、実施の形態2に係るロボット制御装置2では、判定部205が力制御動作区間の軌道と位置制御動作区間の軌道とを通じた平均負荷が規定値以下であると判定する軌道の中から、効率に関する指標がよりよい軌道がされるよう、繰り返し軌道を修正する。これにより、実施の形態2に係るロボット制御装置2では、実施の形態1に係るロボット制御装置2に対し、駆動系101の機構部品の寿命を保ちつつサイクルタイムを短縮するといった、駆動系101の機構部品の寿命と作業効率の両立が可能になる。
【0085】
なお、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0086】
1 ロボットアーム
2 ロボット制御装置
3 加工対象物
101 駆動系
102 負荷測定部
201 力制御軌道生成部
202 位置制御軌道生成部
203 負荷算出部
204 平均負荷算出部
205 判定部
206 ロボット駆動制御部
207 効率指標算出部