(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022161544
(43)【公開日】2022-10-21
(54)【発明の名称】多軸ロボット用の制御装置、ロボットシステム、および制御プログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20221014BHJP
【FI】
B25J13/00 Z
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021066449
(22)【出願日】2021-04-09
(71)【出願人】
【識別番号】000148357
【氏名又は名称】株式会社前川製作所
(74)【代理人】
【識別番号】110000785
【氏名又は名称】SSIP弁理士法人
(72)【発明者】
【氏名】木村 憲一郎
(72)【発明者】
【氏名】嶋田 圭太郎
(72)【発明者】
【氏名】並木 明夫
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707KS36
3C707KT01
3C707KT06
3C707LS15
3C707MS08
3C707MS14
3C707MS15
3C707NS02
3C707NS26
(57)【要約】
【課題】多軸ロボットの先端が目標位置姿勢に変化するための制御を柔軟に実行できる多軸ロボット用の制御装置、ロボットシステム、および制御プログラムを提供する。
【解決手段】多軸ロボット用の制御装置20は、多軸ロボット30の各軸状態量に対する、多軸ロボット30の先端38の位置姿勢を示す複数の位置姿勢パラメータの一部である第1パラメータの感度を少なくとも示す第1行列を取得する。また制御装置20は、各軸状態量に対する、第2パラメータの感度を少なくとも示す第2行列を取得する。さらに、制御装置20は、各軸状態量の候補値に対応する第1パラメータの目標位置姿勢を基準とした偏差を含む第1偏差と、各軸状態量の候補値に対応する第2パラメータの目標位置姿勢を基準とした偏差を含む第2偏差と、第1行列および第2行列とを用いて、各軸状態量の候補値を更新する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
多軸ロボットの先端の目標位置姿勢に代替する補正位置姿勢を求めるための位置姿勢補正部を備え、
前記位置姿勢補正部は、
前記多軸ロボットの各軸状態量に対する、前記多軸ロボットの前記先端の位置姿勢を示す複数の位置姿勢パラメータの一部である第1パラメータの感度を少なくとも示す第1行列を取得するための第1行列取得部と、
前記各軸状態量に対する、前記位置姿勢パラメータとは異なる第2パラメータの感度を少なくとも示す第2行列を取得するための第2行列取得部と、
前記各軸状態量の候補値に対応する前記第1パラメータの前記目標位置姿勢を基準とした偏差を含む第1偏差と、前記各軸状態量の前記候補値に対応する前記第2パラメータの目標値を基準とした偏差を含む第2偏差と、前記第1行列および前記第2行列とを用いて、前記各軸状態量の前記候補値を更新するための更新部と
を含む多軸ロボット用の制御装置。
【請求項2】
前記更新部は、前記各軸状態量の最新の前記候補値に、式(1)によって示されるΔqを加えることによって前記候補値を更新するように構成され、
前記式(1)において、
Δx及びJの組み合わせが、前記第1偏差を要素として含む第1ベクトルおよび前記第1行列の組み合わせ、または、前記第2偏差を要素として含む第2ベクトルおよび前記第2行列の組み合わせの一方であり、
ΔxCおよびJCの組み合わせが、前記第1ベクトルおよび前記第1行列の組み合わせ、または、前記第2ベクトルおよび前記第2行列の組み合わせの他方である請求項1に記載の多軸ロボット用の制御装置。
Δq=J+Δx+(JC(I-J+J))+(ΔxC-JCJ+Δx)・・・式(1)
【請求項3】
前記更新部によって更新された前記各軸状態量の最新の前記候補値に対応する前記位置姿勢パラメータを少なくとも含む判定対象パラメータが許容範囲に収まるかを判定するための判定部を備え、
前記更新部は、前記判定対象パラメータが前記許容範囲に収まると判定されたことに応じて、前記各軸状態量の前記候補値の更新を止めるように構成された請求項1または2に記載の多軸ロボット用の制御装置。
【請求項4】
前記判定部は、前記多軸ロボットの前記先端の位置姿勢が最終位置姿勢に変化するまでに経る複数の前記目標位置姿勢の少なくとも1つについて、前記判定対象パラメータが前記許容範囲に含まれるかを判定するように構成された請求項3に記載の多軸ロボット用の制御装置。
【請求項5】
前記第2パラメータを少なくとも含む判定対象パラメータの値が許容範囲に収まるかを判定するための判定部を備え、
前記更新部は、前記判定対象パラメータの値が前記許容範囲から逸脱すると前記判定部によって判定されたことに応じて、前記目標位置姿勢を示す前記各軸状態量である初期の前記候補値を更新する請求項1から4のいずれかに記載の多軸ロボット用の制御装置。
【請求項6】
前記第1行列取得部は、前記各軸状態量の最新の前記候補値における、前記各軸状態量に対する前記第1パラメータの感度を示す前記第1行列を取得するように構成され、
前記第2行列取得部は、前記各軸状態量の最新の前記候補値における、前記各軸状態量に対する前記第2パラメータの感度を示す前記第2行列を取得するように構成された請求項1から5のいずれかに記載の多軸ロボット用の制御装置。
【請求項7】
請求項1から6のいずれかに記載の多軸ロボット用の制御装置と、
前記多軸ロボットと
を備える多軸ロボットシステム。
【請求項8】
コンピュータに、
多軸ロボットの先端の目標位置姿勢に代替する補正位置姿勢を求めるための位置姿勢補正ステップを実行させ、
前記位置姿勢補正ステップは、
前記多軸ロボットの各軸状態量に対する、前記多軸ロボットの前記先端の位置姿勢を示す複数の位置姿勢パラメータの一部である第1パラメータの感度を少なくとも示す第1行列を取得するための第1行列取得ステップと、
前記各軸状態量に対する、前記位置姿勢パラメータとは異なる第2パラメータの感度を少なくとも示す第2行列を取得するための第2行列取得ステップと、
前記各軸状態量の候補値に対応する前記第1パラメータの前記目標位置姿勢を基準とした偏差を含む第1偏差と、前記各軸状態量の前記候補値に対応する前記第2パラメータの目標値を基準とした偏差を含む第2偏差と、前記第1行列および前記第2行列とを用いて、前記各軸状態量の前記候補値を更新するための更新ステップと
を含む多軸ロボット用の制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、多軸ロボット用の制御装置、ロボットシステム、および制御プログラムに関する。
【背景技術】
【0002】
従来、多軸ロボットの位置姿勢が目標の位置姿勢に変化できるかを判定する多軸ロボット用の制御装置が知られている。例えば、特許文献1で開示される多軸ロボット用の制御装置では、多軸ロボットの位置姿勢が変わるときにおける多軸ロボットと障害物との距離の変化を予め算出する。算出結果に基づき、多軸ロボットと障害物との衝突が発生するか判定される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1には、多軸ロボットの位置姿勢を目標の位置姿勢に厳密な精度で一致させる制御が実行困難である場合に、目標の位置姿勢を別の位置姿勢に変更するための構成が開示されていない。
【0005】
本開示の目的は、多軸ロボットの先端が目標位置姿勢に変化するための制御を柔軟に実行できる多軸ロボット用の制御装置、ロボットシステム、および制御プログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の少なくとも一実施形態に係る多軸ロボット用の制御装置は、
多軸ロボットの先端の目標位置姿勢に代替する補正位置姿勢を求めるための位置姿勢補正部を備え、
前記位置姿勢補正部は、
前記多軸ロボットの各軸状態量に対する、前記多軸ロボットの前記先端の位置姿勢を示す複数の位置姿勢パラメータの一部である第1パラメータの感度を少なくとも示す第1行列を取得するための第1行列取得部と、
前記各軸状態量に対する、前記位置姿勢パラメータとは異なる第2パラメータの感度を少なくとも示す第2行列を取得するための第2行列取得部と、
前記各軸状態量の候補値に対応する前記第1パラメータの前記目標位置姿勢を基準とした偏差を含む第1偏差と、前記各軸状態量の前記候補値に対応する前記第2パラメータの目標値を基準とした偏差を含む第2偏差と、前記第1行列および前記第2行列とを用いて、前記各軸状態量の前記候補値を更新するための更新部と
を含む。
【0007】
本発明の少なくとも一実施形態に係る多軸ロボット用のロボットシステムは、
前記多軸ロボット用の制御装置と、
前記多軸ロボットと
を備える。
【0008】
本発明の少なくとも一実施形態に係る多軸ロボット用の制御プログラムは、
コンピュータに、
多軸ロボットの先端の目標位置姿勢に代替する補正位置姿勢を求めるための位置姿勢補正ステップを実行させ、
前記位置姿勢補正ステップは、
前記多軸ロボットの各軸状態量に対する、前記多軸ロボットの前記先端の位置姿勢を示す複数の位置姿勢パラメータの一部である第1パラメータの感度を少なくとも示す第1行列を取得するための第1行列取得ステップと、
前記各軸状態量に対する、前記位置姿勢パラメータとは異なる第2パラメータの感度を少なくとも示す第2行列を取得するための第2行列取得ステップと、
前記各軸状態量の候補値に対応する前記第1パラメータの前記目標位置姿勢を基準とした偏差を含む第1偏差と、前記各軸状態量の前記候補値に対応する前記第2パラメータの目標値を基準とした偏差を含む第2偏差と、前記第1行列および前記第2行列とを用いて、前記各軸状態量の前記候補値を更新するための更新ステップと
を含む。
【発明の効果】
【0009】
本開示によれば、多軸ロボットの先端が目標位置姿勢に変化するための制御を柔軟に実行できる多軸ロボット用の制御装置、ロボットシステム、および制御プログラムを提供できる。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係るロボットシステム1を示す説明図である。
【
図2】一実施形態に係る、位置姿勢補正部22によって補正される中間点Cを示す図である。
【
図3】一実施形態に係る位置姿勢補正部22の構成を示す図である。
【
図4】一実施形態に係る位置姿勢補正部22が目標位置姿勢に代替する補正位置姿勢を求める過程を示す図である。
【
図5】一実施形態に係る、式(1)に基づき各軸状態量の更新量Δqを求める原理を示す概念図である。
【
図6】一実施形態に係る多軸ロボット30A、30Bに設定されるモデル50を説明する図である。
【
図7】一実施形態に係る距離パラメータの算出方法を示す図である。
【
図8】一実施形態に係るロボットシステム1の電気的構成を示すブロック図である。
【
図9】一実施形態に係るロボット制御処理を示すフローチャートである。
【
図10】一実施形態に係る位置姿勢補正処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して本発明の幾つかの実施形態について説明する。ただし、実施形態として記載され又は図面に示されている構成部品の寸法、材質、形状、その相対的配置等は、本発明の範囲をこれに限定する趣旨ではなく、単なる説明例にすぎない。
例えば、「ある方向に」、「ある方向に沿って」、「平行」、「直交」、「中心」、「同心」或いは「同軸」等の相対的或いは絶対的な配置を表す表現は、厳密にそのような配置を表すのみならず、公差、若しくは、同じ機能が得られる程度の角度や距離をもって相対的に変位している状態も表すものとする。
例えば、「同一」、「等しい」及び「均質」等の物事が等しい状態であることを表す表現は、厳密に等しい状態を表すのみならず、公差、若しくは、同じ機能が得られる程度の差が存在している状態も表すものとする。
例えば、四角形状や円筒形状等の形状を表す表現は、幾何学的に厳密な意味での四角形状や円筒形状等の形状を表すのみならず、同じ効果が得られる範囲で、凹凸部や面取り部等を含む形状も表すものとする。
一方、一つの構成要素を「備える」、「具える」、「具備する」、「含む」、又は「有する」という表現は、他の構成要素の存在を除外する排他的な表現ではない。
【0012】
図1は、一実施形態に係る多軸ロボット用のロボットシステム1(以下、単に、「ロボットシステム1」ともいう)を示す図である。
【0013】
一実施形態のロボットシステム1は、多軸ロボット30と、多軸ロボット用の制御装置20(以下、単に「制御装置20」ともいう)とを備える。一実施形態では、制御装置20が多軸ロボット30の先端38の位置姿勢を制御することで、多軸ロボット30に装着されたツール39は目標の移動経路33に沿って移動する。これにより、多軸ロボット30はツール39を用いてワーク5に作業を実行する。ワーク5に実行される作業は一例として、切断、把持、持ち上げ、押圧、穴あけ、撮影、送風、吸引、または放水などである。
一実施形態のワーク5は、例えばベルトコンベアなどの運搬装置7によって搬送される。運搬されたワーク5は撮影装置8によって撮影され、撮影装置8の撮影画像に基づき、移動経路33は設定される。他の実施形態では、ワーク5が人によって運搬されてもよい。また、撮影装置8は設けられなくてもよい。
ワーク5は、作業が実行される物体であれば何であってもよい。例えば、ワーク5は、食品、日用品、工業製品の部品、または化学材料である。一実施形態のワーク5は、農産物、畜産物、または水産物などの食品である。
図1で例示されるワーク5は生鮮肉である(
図2も同様)。
なお、一実施形態の制御装置20は、ロボットコントローラおよびパーソナルコンピュータを構成要素として含む。制御装置20は、パーソナルコンピュータを含まなくてもよい。
【0014】
一実施形態の多軸ロボット30は複数の関節軸を備える。各々の関節軸は、1自由度を有する回転関節または直動関節である。一実施形態では、各々の関節軸の状態量である各軸状態量(関節変数)は、関節軸の角度または軸方向位置によって表される。これらの各軸状態量が変化することで、多軸ロボット30の先端38の位置姿勢は変化する。先端38は、最も先端側にある多軸ロボット30のリンク35の先端であってもよいし、該リンク35に装着されたツール39の先端であってもよい。
上記の各軸状態量は、各々の関節軸の状態量を要素として含む軸状態量ベクトルqによって表される。例えば、多軸ロボット30が有する関節軸が6本である場合、各軸状態量ベクトルqは6つの各軸状態量q1~q6を要素として含む列ベクトルである。多軸ロボット30の関節軸の本数は6本に代えて、例えば、5本、または7本以上であってもよい。
【0015】
先端38の位置姿勢は、位置姿勢パラメータを要素として含む位置姿勢ベクトルpによって表される。
一実施形態では、位置姿勢パラメータは6つである。より具体的には、6つの位置姿勢パラメータは、先端38の位置を示す3つの位置パラメータ(X、Y、およびZ)と、先端38の姿勢を示す3つの姿勢パラメータ(RX、RY、およびRZ)とに分類される。一実施形態では、これらのパラメータが、任意に設定可能な基準座標系Σ0において示される。
【0016】
多軸ロボット30の位置姿勢ベクトルpと各軸状態量ベクトルqとの関係は、以下の式(2)によって規定される。
p=fr(q) ・・・式(2)
frは関節角度から位置姿勢ベクトルへと変換する関数である。具体的に、多軸ロボット30の関節軸の個数(即ち関節の個数)をnとした場合、関数fpと用いて以下のようにあらわされる。
p=fp(
0T
n) ・・・式(2A)
0T
nは同次変換行列であり、基準座標系Σ
0における座標と、多軸ロボット30の最も先端側にあるn番目の関節の座標系Σ
nとの関係を規定する。基準座標系Σ
0は、多軸ロボット30の用途に応じて任意に設定できる。一実施形態の基準座標系Σ
0は、運搬装置7による運搬経路上に設定される。他の実施形態では、基準座標系Σ
0は、例えば台座9などに設定されてもよい。上述した任意の基準座標系Σ
0における座標は、ワールド座標と呼ばれることもある。
0T
nは式(3)によって規定される。
0T
n=
0T
1
1T
2・・・
n―1T
n ・・・・式(3)
式(3)において、
0T
1は、基準座標系Σ
0を、最も基端側にある関節の座標系Σ
1に変換するための同次変換行列である。
1T
2は、座標系Σ
1を、基端側から2番目の関節の座標系Σ
2に変換するための同次変換行列である。このように、式(3)の右辺で示される各々の同次変換行列は、隣り合う2つの関節の座標系の関係を規定する。
一実施形態では、式(3)の右辺で示される各々の同次変換行列は、4行4列の行列である。各同次変換行列には、3行3列の回転行列と、着目される2つの座標系の位置関係を示す1行3列の並進ベクトルが要素として含まれる。例えば、同次変換行列
n―1T
nは以下の式(4)で表される。
【数1】
式(4)において、R
11、R
12、R
13、R
21、R
22、R
23、R
31、R
32、およびR
33は、座標系Σ
n―1を座標系Σ
nに一致させるために座標系Σ
n―1を回転させる角度を示す3行3列の回転行列である。また、X、Y、およびZは、座標系Σ
n―1を座標系Σ
nに一致させるために座標系Σ
n―1を並進させる並進ベクトルである。
上記の
n―1T
nは、n番目の関節とn-1番目の関節との位置関係、および両関節の機械的構造により定まる。つまり、式(2A)、式(3)で同次変換行列として示される
0T
nは、多軸ロボット30の機械的構造によって定まる行列であり、予め特定することができる行列である。従って、各軸状態量ベクトルqが判れば、式(2)に基づき先端38の位置姿勢ベクトルpは特定できる。反対に、先端38の位置姿勢ベクトルpが判れば、式(2)の変形式である以下の式(5)に基づき、多軸ロボット30の各軸状態量ベクトルqは特定できる。
q= fr
-1(p) ・・・式(5)
【0017】
一実施形態の多軸ロボット30は、多軸ロボット30A、30Bを含む。多軸ロボット30Aに装着されるツール39Aはナイフである。多軸ロボット30Bに装着されるツール39Bはクランパである。一実施形態では、制御装置20の制御によって多軸ロボット30A、30Bが互いに同期して作動することにより、ワーク5は把持されて切断される。一実施形態では、多軸ロボット30A、30Bは互いに同期せずに作動する。他の実施形態では、多軸ロボット30A、30Bは互いに同期して作動してもよい。
【0018】
一実施形態では、多軸ロボット30A、30Bの可動領域の各々には障害物が含まれる。従って、多軸ロボット30A、30Bの各々の先端38の位置姿勢は、多軸ロボット30A、30Bと障害物との衝突を回避しながら変化する必要がある。
一実施形態において、多軸ロボット30A、30Bの可動領域は互いに重複する。従って、多軸ロボット30Bは多軸ロボット30Aの障害物である。
なお、他の実施形態では、運搬装置7などのロボットシステム1の構成要素が多軸ロボット30の障害物であってもよいし、その他の物体が障害物であってもよい。
【0019】
一実施形態に係る多軸ロボット30と障害物との距離は、少なくとも1つの距離パラメータを含む距離ベクトルによって表される。距離ベクトルは一例として列ベクトルである。例えば、距離パラメータの個数が3つのとき、距離ベクトルの要素は、d
1およびd
2として表される。
図1では1つの距離パラメータが符号d
mによって図示される。
該距離ベクトルに含まれる少なくとも1つの距離パラメータが閾値以下である場合、多軸ロボット30は障害物と衝突する可能性が高い。一実施形態の閾値は、各々の距離パラメータに対応付けて設定される0以上の値である。閾値は安全率を反映した正の値であってもよい。
【0020】
一実施形態では、上記の距離ベクトルは各軸状態量ベクトルqに基づき特定できる。具体的には以下の通りである。
多軸ロボット30の各軸状態量ベクトルqが判れば、式(2)に基づき先端38の位置パラメータ(X、Y、およびZ)は求まる。また、同次変換行列としての0Tn-1を式(2)、式(2A)に適用すれば、n-1番目のリンク35の位置パラメータも求まる。同様の手法に則れば、各軸状態量ベクトルqと式(1)とに基づき、多軸ロボット30の任意の部位の位置パラメータが求まる。これにより、多軸ロボット30と障害物との距離ベクトルは求まる。
なお、多軸ロボット30Bが多軸ロボット30Aの障害物となる実施形態では、各タイムステップにおいて、多軸ロボット30A、30Bが停止していると仮定して、多軸ロボット30A、30Bの距離パラメータは求められる。
距離パラメータの算出方法の更なる詳細については後述する。
【0021】
一実施形態では、多軸ロボット30を制御するための制御装置20は、経路設定部21、位置姿勢補正部22、判定部24、および位置姿勢制御部23を備える。
【0022】
一実施形態の経路設定部21は、ワーク5に作業が実行される際の先端38の移動経路33を設定する。例えば、ワーク5の形状または位置に応じて、経路設定部21は先端38の移動経路33を設定する。
一実施形態の移動経路33は、始点D、複数の中間点C、および終点Gを含む。移動経路33に含まれるこれら各々の点において、先端38の位置姿勢(つまり、先端38の位置姿勢パラメータ)が設定されている。以下、各々の中間点Cにおける先端38の位置姿勢を目標位置姿勢ともいい、終点Gにおける先端38の位置姿勢を最終位置姿勢ともいう。各々の中間点Cの目標位置姿勢は、多軸ロボット30の先端38の位置姿勢が最終位置姿勢まで変化する際の経由対象となる位置姿勢である。
【0023】
一実施形態の判定部24は、複数の中間点Cの各々について、補正対象に設定されるべきかを判定するように構成される。具体的な一例として、判定部24は、複数の中間点Cの各々について、判定対象パラメータの値が許容範囲に収まるかを判定する。判定対象パラメータは、一例として、距離パラメータを少なくとも含む。距離パラメータは、目標位置姿勢を示す各軸状態量に関連するパラメータであり、且つ位置姿勢パラメータとは別のパラメータである。一実施形態では、複数の中間点Cの少なくとも1つにおいて、距離パラメータの値が許容範囲を逸脱する。判定部24はこのような中間点Cを補正対象であると判定する。
なお、他の実施形態では、距離パラメータの代わりに各軸状態量(関節パラメータ)が、判定対象パラメータに採用されてもよい。例えば、多軸ロボット30の可動範囲が上記許容範囲として設定されてもよい。この実施形態においても、複数の中間点Cの少なくとも1つにおいて、目標位置姿勢に対応する各軸状態量が許容範囲を逸脱し、このような中間点Cは補正対象として扱われる。
【0024】
一実施形態の位置姿勢補正部22は、補正対象の中間点Cの目標位置姿勢について、目標位置姿勢に代替する補正位置姿勢を求める(探索する)ように構成される。言い換えると、位置姿勢補正部22は、多軸ロボット30の先端38の目標位置姿勢に代替する補正位置姿勢を求めるように構成される。
一実施形態の位置姿勢補正部22は、目標位置姿勢に対応する距離パラメータの値が許容範囲から逸脱すると判定部24によって判定されたことに応じて、補正位置姿勢を求めるように構成される。他の実施形態では、位置姿勢補正部22は、目標位置姿勢に対応する各軸状態量(関節パラメータ)が許容範囲を逸脱したと判定部24によって判定されたことに応じて目標位置姿勢を求めるように構成されてもよい。
【0025】
一実施形態に係る位置姿勢補正部22は、補正対象として扱われる中間点Cの位置姿勢パラメータに基づき定まる各軸状態量を更新することで、補正位置姿勢を求める。更新対象となる各軸状態量の候補値については、該候補値に対応する距離パラメータと位置姿勢パラメータのいずれの値も許容範囲に収まることが求められる。
各軸状態量の候補値に対応するこれらのパラメータの少なくとも1つの値が許容範囲から逸脱すれば、各軸状態量の候補値の更新は再度実行される。
一方、各軸状態量に対応するこれらのパラメータの値が許容範囲に収まれば、各軸状態量の候補値に基づき定まる位置姿勢が補正位置姿勢に決定される。位置姿勢パラメータの値が許容範囲に収まることで、補正位置姿勢が理想的な位置姿勢から乖離し過ぎるのを抑制できる。理想的な位置姿勢は、例えば、補正対象に設定された中間点Cの初期の位置姿勢である。また、距離パラメータの値が許容範囲に収まることで、距離パラメータが理想的な値(例えば閾値)から乖離し過ぎるのを抑制できる。これにより、先端38が補正位置姿勢を経る多軸ロボット30の動作において無駄が低減する。なお、位置姿勢パラメータの許容範囲は、例えば目標位置姿勢を基準に設定される。また、該許容範囲は、各々の位置姿勢パラメータに応じて定められてもよい。一実施形態の距離パラメータは例えば閾値を基準に設定される。
【0026】
一実施形態では、既述の判定部24が、上記パラメータの値が許容範囲に収まるかを判定する。つまり、既述の判定対象パラメータは、距離パラメータの他に、位置姿勢パラメータを含む。従って、一実施形態の判定部24は、更新された各軸状態量の最新の候補値に対応する位置姿勢パラメータと距離パラメータを含む判定対象パラメータの値が許容範囲に含まれるかを判定するように構成される。
一実施形態では、移動経路33には複数の中間点Cが含まれる。つまり、判定部24は、多軸ロボット30の先端38の位置姿勢が最終位置姿勢に変化するまでに経る複数の目標位置姿勢の少なくとも1つについて、判定対象パラメータの値が許容範囲に含まれるかを判定するように構成される。
なお、中間点Cが補正対象に設定されるべきかを判定するための上述の処理では一例として、距離パラメータの値が許容範囲に収まるか否かが判定基準であり、位置姿勢パラメータの値が許容範囲に収まるか否かは判定基準ではない。しかし、判定対象パラメータが距離パラメータの他に位置姿勢パラメータを含んでも、上述の処理は実質的には変わらない。中間点Cの位置姿勢パラメータは、判定基準の位置姿勢パラメータと一致するため、許容範囲から逸脱しないからである。
【0027】
一実施形態の位置姿勢制御部23は多軸ロボット30を制御するように構成される。
一実施形態では、位置姿勢制御部23が多軸ロボット30を制御することで、先端38の位置姿勢は、位置姿勢補正部22により求められた補正位置姿勢を経て最終位置姿勢まで変化する。
一実施形態では、位置姿勢制御部23が多軸ロボット30を制御することで、先端38は移動経路33に沿って移動する。
【0028】
図2は、一実施形態に係る、位置姿勢補正部22によって補正される中間点Cを示す図である。
図2は、運搬装置7の運搬方向に沿って見た図を例示する。一実施形態では、移動経路33の上流側から順に、複数の中間点Cの各々に番号が割り当てられる。
一実施形態では、1番目の中間点C
1とi+1番目の中間点C
i+1とにおいて、判定対象パラメータに含まれる距離パラメータが閾値以下である。この場合、中間点C
1と中間点C
i+1の各々が示す目標位置姿勢に多軸ロボット30の先端38が変化すると、多軸ロボット30と障害物との衝突が発生し得る。従って、中間点C
1と中間点C
i+1の各々が示す目標位置姿勢に先端38の位置姿勢を厳密な精度で一致させることは困難である。この場合、中間点C
1と中間点C
i+1の各々について、目標位置姿勢に代替する補正位置姿勢が位置姿勢補正部22によって求められる(探索される)。
一実施形態では、中間点C
1の目標位置姿勢に対応する各軸状態量が、各軸状態量の候補値に設定される。位置姿勢補正部22は、該各軸状態量の候補値を更新することで、中間点C
1における補正位置姿勢を求める(探索する)。中間点C
i+1においても同様の手法によって、中間点C
iにおける補正位置姿勢が求められる。一実施形態では、補正位置姿勢における判定対象パラメータの値は許容範囲に収まるので、補正位置姿勢が目標位置姿勢から乖離し過ぎることは抑制される。
図2で例示される補正後の中間点C
1と中間点C
i+1とにおいては、6つの位置姿勢パラメータのうちで姿勢パラメータ(R
X、R
Y、またはR
Z)の少なくともいずれかが補正される。なお、他の実施形態では、位置パラメータ(X、Y、またはZ)の少なくともいずれかが補正されてもよいし、6つの位置姿勢パラメータが全て補正されてもよい。
このように、先端38の位置姿勢を目標位置姿勢に厳密な精度で一致させることが困難である場合、目標位置姿勢を示す6つの位置姿勢パラメータのうち少なくとも1つが変更された補正位置姿勢が求められる。この場合、先端38が目標位置姿勢に変化するための制御が実行されることで、先端38の位置姿勢は補正位置姿勢に変化する。
【0029】
位置姿勢補正部22の補正対象となる位置姿勢パラメータは、補正位置姿勢の探索中、終始同じであるとは限らない。つまり、補正対象となる位置姿勢パラメータは、中間位置姿勢の探索状況または探索条件などに応じて、動的に切り替えることが出来る。例えば、探索回数が増えるに従い(あるいは距離パラメータが満たすべき閾値が小さくなるに従い)、補正対象となる位置姿勢パラメータが増えてもよいし、補正対象となる位置姿勢パラメータの種別が変化するが個数そのものは一定であってもよい。あるいは、これら2つの組み合わせが実行されてもよい。
より具体的な一例として、補正位置姿勢の探索回数が規定回数に達するまでの間はRxのみが補正対象となる。探索回数が規定回数に達する前に、Rxのみが補正された適正な補正位置姿勢(つまり、距離パラメータが閾値を超える中間位置姿勢)が特定されれば、探索は終了する。このとき、補正前の位置姿勢に極めて近い補正位置姿勢を特定できる。一方で、探索回数が規定回数に達しても、適正な補正位置姿勢(衝突回避等が可能な補正位置姿勢)が見つからなければ、Rxに加えて(あるいはRxに代えて)、例えばRY及びRZが補正対象として追加できる。これにより、適正な中間位置姿勢が特定できない不具合を回避できる。
以上のように、可能な限り目標位置姿勢に近い補正中間位置姿勢を求める(探索する)ことが出来る上、衝突回避等が可能な補正位置姿勢を見つける確率を上げることが出来る。
【0030】
図3は、一実施形態に係る位置姿勢補正部22の構成を示す図である。
位置姿勢補正部22は、第1行列を取得するための第1行列取得部11、第2行列を取得するための第2行列取得部12、および、第1行列と第2行列に基づき各軸状態量の候補値を更新するための更新部13を含む。各軸状態量の候補値が更新部13によって更新されることで、位置姿勢補正部22は補正位置姿勢を求める。
【0031】
一実施形態では、第1行列取得部11によって取得される第1行列は、多軸ロボット30各軸状態量に対する第1パラメータの感度を少なくとも示す。第1パラメータは、位置姿勢パラメータの一部のパラメータである。一例として第1パラメータは、3つの位置パラメータ(X、Y、およびZ)と、1つの姿勢パラメータ(R
Z)を含む。この場合、各軸状態量ベクトルqがq
1~q
6の6個の要素を含む実施形態では、第1行列は、以下の式(6)のJ
1sによって規定される。
【数2】
【0032】
一実施形態では、第2行列によって取得される第2行列は、多軸ロボット30の各軸状態量に対する第2パラメータの感度を少なくとも示す。第2パラメータは、各軸状態量に応じて変化するパラメータであり、且つ、位置姿勢パラメータとは異なるパラメータである。第2パラメータは、一例として、距離パラメータである。一実施形態の第2行列は、m個の距離パラメータの各軸状態量に対する感度を示す。この場合、各軸状態量ベクトルqがq
1~q
6の6個の要素を含む実施形態では、第2行列は、以下の式(7)のJ
2sによって規定される。
【数3】
【0033】
一実施形態の更新部13は、各軸状態量の候補値の更新するように構成される。より具体的な一例として、更新部13は、目標位置姿勢における距離パラメータを含む判定対象パラメータの値が許容範囲から逸脱すると判定部24によって判定されたことに応じて、目標位置姿勢を示す各軸状態量である初期の各軸状態量の候補値を更新するように構成される。また、一実施形態の更新部13は、位置姿勢パラメータと距離パラメータを含む判定対象パラメータの値が許容範囲に収まると判定部24によって判定されたことに応じて、各軸状態量の候補値を止めるように構成される。
【0034】
更新部13による各軸状態量の更新方法について説明する。
一実施形態の更新部13は、第1行列と第2行列の他に、第1偏差と第2偏差を用いて各軸状態量の候補値を更新するように構成される。
第1偏差は、各軸状態量の候補値に対応する第1パラメータの目標位置姿勢を基準とした偏差を含む。一実施形態では、第1偏差で扱われる位置姿勢パラメータは、第1行列で扱われる第1パラメータと同じである。例えば、第1行列で扱われる第1パラメータがX、Y、Z、およびRZである場合、各軸状態量の候補値におけるこれら4つのパラメータと、目標位置姿勢におけるこれら4つのパラメータとが比較されて、第1偏差は求められる。
第2偏差は、各軸状態量の候補値に対応する第2パラメータの目標値を基準とした偏差を含む。
【0035】
一実施形態では、第1偏差と第1行列が判れば、更新前の各軸状態量の候補値に対応する第1パラメータを目標値に近づけるための各軸状態量の更新量(第1更新量)が、例えば勾配法の適用により求まる。上記目標値は、一例として、目標位置姿勢における第1パラメータである。
同様に、第2偏差および第2行列が判れば、更新前の候補値に対応する第2パラメータ(一例として距離パラメータ)を目標値に近づけるための各軸状態量の更新量(第2更新量)が求まる。
一実施形態の更新部13は、第1更新量と第2更新量に基づき、各軸状態量の最新の候補値を更新する更新量を求める。該更新量が最新の各軸状態量の候補値に加えられることで、候補値は更新される。
【0036】
図4は、一実施形態に係る位置姿勢補正部22が目標位置姿勢に代替する補正位置姿勢を求める過程を示す図である。
図3の例では、1番目の中間点C
1の補正位置姿勢が求められる過程を示す。また、
図4では移動経路33を一部省略して図示する。
一実施形態では、中間点C
1において距離パラメータを含む判定対象パラメータの値が許容範囲から逸脱すると判定部24(
図1参照)によって判定されると、中間点C
1の目標位置姿勢は補正対象として扱われる。
【0037】
一実施形態ではこの場合、位置姿勢補正部22は、初期の中間点C1である中間点C1、1を更新して、中間点C1の候補としての中間点C1、2を求める。
中間点C1、2を候補として求める具体的な手法の一例は以下の通りである。中間点C1、1における位置姿勢ベクトルp(即ち中間点C1の目標位置姿勢を示す位置姿勢パラメータ)が式(5)に代入されることで、中間点C1、1における各軸状態量q1、1が求められる。一実施形態では、各軸状態量q1、1は各軸状態量の最新の候補値である。また、中間点C1、1における第1偏差および第2偏差が求められる。さらに、第1行列取得部11は各軸状態量q1、1における第1行列を取得し、第2行列取得部12は各軸状態量q1、1における第2行列を取得する。第1偏差、第2偏差、第1行列、および第2行列に基づき、上述した第1更新量と第2更新量が求められる。これにより、各軸状態量の更新量であるΔq1、1が求められる(更新量の求め方の更なる詳細については後述する)。各軸状態量の最新の候補値である各軸状態量q1、1は、各軸状態量q1、2(=q1、1+Δq1、1)に更新される。各軸状態量q1、2が式(2)に代入されることにより、中間点C1、2の位置姿勢パラメータは求まる。
中間点C1、2において、位置姿勢パラメータと距離パラメータを含む判定対象パラメータの少なくともいずれかの値が許容範囲から逸脱する場合、各軸状態量q1、2はさらに更新される。より具体的には、最新の各軸状態量の候補値である各軸状態量q1、2に、Δq1、2が加算されることで、各軸状態量q1、2は各軸状態量q1、3に更新される。これにより、中間点C1、3が求まる。判定対象パラメータの値が許容範囲に収まるまで、各軸状態量の更新は繰り返される。
そして、k-1回目の更新で特定された中間点C1、kにおいて判定対象パラメータの値がいずれも許容範囲に収まれば、中間点C1、kの位置姿勢が、中間点C1の目標位置姿勢に代替する補正位置姿勢に設定される。
この繰り返し時、補正対象となる位置姿勢パラメータ(例えばRx,Ryなど)を、条件によって動的に切り替えたり、追加していくことにより、軌道の補正の自由度を高めることが出来る。
詳細な図示および説明は省略するが、i+1番目の中間点Ci+1が補正対象である場合においても、同様の過程が繰り返される。例えばk-1回目の更新で特定された中間点Ci+1、kにおいて、判定対象パラメータの値がいずれも許容範囲に収まれば、中間点Ci+1、kの位置姿勢が、中間点Ci+1の目標位置姿勢に代替する補正位置姿勢に設定される。
【0038】
一実施形態に係る、第1更新量と第2更新量に基づき各軸状態量の更新量(Δq)を求める過程を説明する。
各軸状態量の更新量(Δq)は、以下の式(8)、式(9)、および式(10)によって規定される。
Δq=Δq1+Δq2 ・・・式(8)
Δq1=J+Δx ・・・式(9)
Δq2=(JC(I-J+J))+(ΔxC-JCJ+Δx) ・・・式(10)
式(8)~式(10)において、Δq1が、上述した第1更新量または第2更新量のいずれか一方であり、Δq2が、第1更新量または第2更新量のいずれか他方である。
一実施形態では、Δq1が第1更新量であり、Δq2が第2更新量である。この場合、Δxが第1偏差を要素として含む第1ベクトル(一例として列ベクトル)であり、Jが第1行列である。また、ΔxCが第2偏差を要素として含む第2ベクトル(一例として列ベクトル)であり、JCが第2行列である。即ち、Δx及びJの組み合わせが、第1偏差を要素として含む第1ベクトルおよび第1行列の組み合わせである。そして、ΔxCおよびJCの組み合わせが、第2偏差を要素として含む第2ベクトルおよび第2行列の組み合わせである。
別の実施形態では、Δq1が第2更新量であり、Δq2が第1更新量である。この場合、上記した組み合わせは逆になる。つまり、Δx及びJの組み合わせが、第2ベクトルおよび第2行列の組み合わせであり、ΔxCおよびJCの組み合わせが、第1ベクトルおよび第1行列の組み合わせである。
式(8)~式(10)では、Δxを小さくすることが、ΔxCを小さくなることよりも優先されるΔqが求まることを意味する。このようなΔqを求めることができる原理を詳説することに先立ち、式(8)~式(10)によって導出される式(1)を以下に示す。
Δq=J+Δx+(JC(I-J+J))+(ΔxC-JCJ+Δx)・・・式(1)
【0039】
図5は、一実施形態に係る、式(1)に基づき各軸状態量の更新量Δqを求める原理を示す概念図である。
図5は、ベクトルであるΔq、Δx、およびΔx
Cを、2次元座標を用いて概念的に示す。
以下では、Δq
1が第1更新量であり、Δq
2が第2更新量であると仮定する。つまり、Δx及びJの組み合わせが、第1ベクトルおよび第1行列の組み合わせであり、Δx
CおよびJ
Cの組み合わせが、第2ベクトルおよび第2行列の組み合わせであると仮定する。なお、組み合わせが逆になっても、更新量Δqを求める原理は変わらない。
さらに、式(11)、式(12)が成立すると仮定する。また、f(q)は上に凸であり、g(q)は下に凸であるとする。
x=f(q) ・・・式(11)
x
C=g(q) ・・・式(12)
また、ベクトルxの目標値と許容範囲を各々、x
tgt、x
tgt-τとし、ベクトルx
Cの目標値と許容範囲を各々、x
C_tgt、x
C_tgt+τ
Cとする。さらに、現在の各軸状態量の候補値をq
curとする。
【0040】
ベクトルxを許容範囲に収めるための各軸状態量の更新量であるΔq1が求まる原理は以下の通りである。
qcurに対応するベクトルxであるxcurは、点P1の高さ位置に相当する。既述の通り、第1行列(J)は各軸状態量に対する第1パラメータの感度を示す。つまり、点P1におけるグラフの接線の傾きが第1行列に相当する。従って、第1偏差であるΔx(=xcur-xtgt)は、以下の式(13)で規定される。
Δx=JΔq1 ・・・式(13)
式(13)を変形することで、上述の式(9)が導かれる。これにより、Δq1は、第1パラメータを目標値に近づけるための更新量であり、第1偏差が反映された更新量であることが理解される。
【0041】
ベクトルxCを許容範囲に収めるための各軸状態量の更新量であるΔq2が求まる原理は以下の通りである。
qcurにおけるベクトルxCであるxC_curは、点Q1の高さ位置に相当する。点Q1におけるグラフの接線が第2行列(JC)を示し、xC_cur-xC_tgtが第2偏差であるΔxCを示す。
Δq2を特定する際には、第2偏差であるΔxCではなく、ΔxC-JCJ+Δxで規定される偏差(第2偏差を利用した偏差)が用いられる。また、点Q1におけるグラフの接線(接線の傾きが第2行列に相当する)ではなく、JC(I-J+J)で規定される傾きを有する直線が扱われる。
すなわち、ベクトルxCを目標値xC_tgtに近づけるためのΔq2は、式(14)によって規定される。式(14)を変形することで、上述の式(10)は求まる。
ΔxC-JCJ+Δx=JC(I-J+J)Δq2 ・・・式(14)
仮に、第2偏差であるΔxCと、且つ点Q1の接線とを用いた場合、式(13)と同様の式(15)によって、Δq2dが求まる。
ΔxC=JCΔq2d ・・・式(15)
式(10)に基づき求まるΔq2と、式(15)に基づき求まるΔq2dは、いずれも、ベクトルxCで扱われる第2パラメータと距離パラメータを目標値に近づけるための更新量であり、第2偏差が反映された更新量である。
【0042】
各軸状態量の更新には以上より求めたΔq
1とΔq
2が用いられ、q
cur+Δq
1+Δq
2が新たなq
curとして設定される。概念的に例示する
図5では、Δq
2がΔq
2dよりも小さいので、1回目の更新結果として得られるq
cur+Δq
1+Δq
2は、第2偏差よりも第1偏差を優先して小さくするための各軸状態量として理解できる。つまり、式(1)が利用されることによって、ベクトルxがベクトルx
Cよりも優先して許容範囲に収まるようなΔq(=Δq
1+Δq
2)が求まる。
図5の例では、更新後のベクトルxを示す点P2と、更新後のベクトルx
Cを示す点Q2がいずれも許容範囲に収まるので、各軸状態量ベクトルqの更新は終了する。
仮に、ベクトルxとベクトルx
Cの少なくとも一方が許容範囲から逸脱すれば、各軸状態量ベクトルqの更新がさらに実行される。例えば、各軸状態量の更新によって第1偏差が0になった場合であっても、ベクトルx
Cが許容範囲から逸脱すれば、Δqはさらに更新される。
なお、上述したように、第1偏差で扱われる第1パラメータは、位置姿勢パラメータの一部のパラメータである。第1偏差を要素として含む第1ベクトルが式(1)のΔxに該当する場合、位置姿勢パラメータのうちで第1パラメータが許容範囲に含まれることが優先され、第1パラメータ以外の位置姿勢パラメータが許容範囲に含まれることの優先度は、式(1)が用いられることで自動的に下がる。
【0043】
一実施形態では、ベクトルxに対応するパラメータの許容範囲は、ベクトルxCに対応するパラメータの許容範囲よりも狭く(厳しく)設定されてもよい。これにより、目標位置姿勢に代替する補正位置姿勢が設定される際、ベクトルxに対応するパラメータの補正量を低減できる。例えば、ワーク5に対する作業品質に比較的大きな影響を与えうるパラメータがベクトルxのパラメータに設定される。これにより、補正位置姿勢が設定された場合であっても、ワーク5に対する作業品質の低下が抑制される。
一実施形態では、X、Y、Z、およびRZを含む第1パラメータがベクトルxに対応するパラメータに設定され、距離パラメータを含む第2パラメータがベクトルxCに設定される。
なお、許容範囲の広狭は、該許容範囲で先端38の位置姿勢が変化したときの最も先端側のリンク35(又はツール39)の変動領域の大きさで判定することが可能である。
また、第1ベクトルが示す位置姿勢パラメータは繰り返し計算中に動的に切り替えることも出来る。例えば、位置姿勢パラメータの種類が、繰り返し計算に伴い変更(あるいは増加)してもよい。この場合、第1行列は、位置姿勢パラメータの種類の変更(あるいは増加)に応じて変更されてもよい。
【0044】
図6は、一実施形態に係る多軸ロボット30A、30Bに設定されるモデル50を説明する図である。
図7は、一実施形態に係る距離パラメータの算出方法を示す図である。
図6、
図7では、6つの回転関節を含む多軸ロボット30A、30Bを例示する。また、
図6ではモデル50を二点鎖線で示す一方、
図7ではモデル50を実線で示す。
【0045】
一実施形態では、多軸ロボット30の少なくとも一部を包含するモデル50が仮想的に設定され、モデル50と障害物との距離が、多軸ロボット30と障害物との距離を示す距離パラメータとして扱われる。
モデル50は、多軸ロボット30の全ての部位を包含してもよいし、多軸ロボット30の一部のみを包含してもよい。例えば、多軸ロボット30のうちで障害物と衝突し得る部位が予め特定されていれば、該部位だけを包含するモデル50が設定されてもよい。これにより、距離パラメータの個数が低減し、距離を算出するための演算の効率が向上する。
【0046】
一実施形態のモデル50は、多軸ロボット30Aの最も先端側のリンク35に設定されたモデル50Aと、先端側から2番目のリンク35に設定されたモデル50Bとを含む。モデル50Aは一例としてツール39Aの全部位を包含する。
一実施形態では、多軸ロボット30Aの障害物に対してモデル50が設定されてもよい。該モデル50は、多軸ロボット30に設定されるモデル50と同一形状でなくてもよく、例えば障害物に応じた形状であってよい。
一実施形態では、多軸ロボット30Aの障害物である多軸ロボット30Bに対してもモデル50が設定される。より具体的な一例として、モデル50は、多軸ロボット30Bの最も先端側のリンク35に設定されたモデル50Cを含む。
一実施形態では、モデル50A~50Cは、各々、リンク35の軸方向に沿った円筒部55、および円筒部55の両端に接続される2つの半球部56により形成される。
【0047】
一実施形態では、多軸ロボット30A、30Bの距離ベクトルには、モデル50Aとモデル50Cの距離を示す距離パラメータd
1と、モデル50Bとモデル50Cの距離を示す距離パラメータd
2とが含まれる。
一実施形態の距離パラメータd
1の求め方は、以下の通りである。多軸ロボット30Aの各軸状態量の候補値に基づきモデル50Aの基準点(
図7の例なら、円筒部55の中心線57Aの両端に位置する点A1と点A2)の座標が求められる。また、多軸ロボット30Bが停止中であると仮定してモデル50Bの基準点(
図7の例なら、円筒部55の中心線57Cの両端に位置する点B1と点B2)の座標が求められる。モデル50Aの基準点(2点)と、モデル50Bの基準点(2点)との間の4つの距離のうちで最短の距離が、距離パラメータd
1として扱われる。
特定された距離パラメータd
1の値が半球部56の直径以下であれば、更新された各軸状態量の候補値ではモデル50A、50Cが互いに干渉する。つまり、多軸ロボット30Aの実際の各軸状態量が該候補値に変化すると、多軸ロボット30Aと多軸ロボット30Bとの衝突が発生し得る。従って、各軸状態量の候補値はさらに更新される。
距離パラメータd
2の値の求め方も上記と同様である。特定された距離パラメータd
2が半球部56の直径以下である場合には、各軸状態量の候補値は更新される。
なお、モデル50A~50Cの形状は
図6、
図7で示される形状に限定されない。モデル50A~50Cは、例えば、多軸ロボット30A、30Bの少なくとも一部を包含する球状であってもよい。この場合、球状に形成されたモデルの中心位置が該モデルの基準点に該当する。さらに、モデル50A~50Cの形状は、多軸ロボット30A、30Bが実行する作業に応じて適宜変更されてもよい。
【0048】
図8は、一実施形態に係るロボットシステム1の電気的構成を示すブロック図である。ロボットシステム1の制御装置20は、ロボットシステム1の制御を司るプロセッサ91を含む。
プロセッサ91は、ROM92に記憶される制御プログラム95を読み出してRAM93にロードし、ロードした制御プログラム95に含まれる命令を実行するように構成される。プロセッサ91は、CPU、GPU、MPU、DSP、これら以外の各種演算装置、又はこれらの組み合わせである。プロセッサ91は、PLD、ASIC、FPGA、およびMCU等の集積回路により実現されてもよい。ROM92は記憶装置の一例である。
制御装置20の構成要素であるメモリ94は、制御プログラム95の実行に伴い処理される各種のデータが一時的又は非一時的に記憶される。メモリ94は例えばフラッシュメモリである。一例として、ロボットシステム1の電源がオフになった場合に、RAM93に記憶されていた情報がメモリ94に非一時的に記憶される。制御装置20は、ROM92、RAM93、またはメモリ94の少なくとも1つを備えていればよい。
プロセッサ91は、多軸ロボット30、運搬装置7、および撮影装置8に電気的に接続される。
一実施形態では、プロセッサ91は、多軸ロボット30の複数の駆動部を制御するように構成される。複数の駆動部の各々は、モータまたはエアシリンダなどである。一実施形態では、各々の駆動部はモータである。この場合、モータに含まれるエンコーダの出力結果をプロセッサ91は取得することで、各軸状態量ベクトルqを取得する。
プロセッサ91は運搬装置7の駆動部を制御するように構成される。プロセッサ91は、撮影装置8に対して撮影指示信号を送信し、撮影装置8によって生成された撮影画像を取得するように構成される。
【0049】
図9は、一実施形態に係るロボット制御処理を示すフローチャートである。
図10は、一実施形態に係る位置姿勢補正処理を示すフローチャートである。以下、プロセッサ91によって実行される処理と、制御装置20の既述の構成要素との対応関係に言及しつつ、ロボット制御処理を説明する。
なお、以下の説明では、Δq
1が第1更新量であり、Δq
2が第2更新量である実施形態を説明する。つまり、Δx及びJの組み合わせが、第1ベクトルおよび第1行列の組み合わせであり、Δx
CおよびJ
Cの組み合わせが、第2ベクトルおよび第2行列の組み合わせである実施形態を説明する。
さらに以下の説明では、ステップを「S」と略記する場合がある。
【0050】
図9に示すように、プロセッサ91は、移動経路33を設定する(S11)。S11を実行するプロセッサ91が経路設定部21として機能する。
例えば、運搬装置7によって運搬されたワーク5が撮影装置8によって撮影される。プロセッサ91は、撮影装置8によって生成された撮影画像を取得し、撮影画像に写るワーク5の形状または位置に応じて移動経路33を設定する。
一実施形態では、移動経路33に含まれる始点D、複数の中間点C、終点Gの各々における先端38の位置姿勢は、移動経路33の設定に伴い定まる。従って、複数の中間点Cのいずれにおいて距離パラメータが閾値以下になるかが、この時点で確定する。
【0051】
プロセッサ91は、複数の中間点Cのうちで、i番目の中間点Ciを、許容条件(後述)を満たすかの判定対象に設定する(S13)。なお、番号iは、例えばRAM93に記憶されており、ロボット制御処理の開始時には1に設定されている。
プロセッサ91は、i番目の中間点Ciの位置姿勢パラメータに基づき、中間点Ciにおける各軸状態量を取得する(S15)。一例として、各軸状態量は、式(5)によって求まる。
【0052】
プロセッサ91は、中間点Ciが許容条件を満たすかを判定する(S17)。許容条件は、位置姿勢パラメータと距離パラメータを含む判定対象パラメータがいずれも許容範囲に収まる条件である。S17を実行するプロセッサ91は判定部24として機能する。
一例として、位置姿勢パラメータの許容範囲は、i番目の中間点Ciの初期の目標位置姿勢を基準にして設定された範囲である。また、距離パラメータの許容範囲は一例として、閾値を基準に設定される。
例えば、ロボット制御処理が開始されて1回目のS17では、中間点C1が許容条件を満たすか判定される。この場合、判定対象になっている位置姿勢パラメータと、判定基準の位置姿勢パラメータが同じであるので、中間点C1の位置姿勢パラメータは許容範囲に含まれる。仮に、中間点C1の距離パラメータが許容範囲から逸脱する場合、中間点C1は許容条件を満たさないと判定され、プロセッサ91は中間点C1を補正対象に設定する。
【0053】
中間点Ciが許容条件を満たさないと設定された場合(S17:NO)、プロセッサ91は、中間点Ciの更新回数kが上限値に達しているかを判定する(S19)。更新回数kは、例えばRAM93に記憶されており、ロボット制御処理の開始時には1に設定されている。更新回数kは、既述の探索回数と同義である。
更新回数kが上限値に達していれば(S19:YES)、プロセッサ91は本制御処理を終了する。
【0054】
一方、更新回数kが上限値未満であれば(S19:NO)、プロセッサ91は、中間点Ciの補正位置姿勢を求めるための位置姿勢補正処理を実行する(S21)。S21を実行するプロセッサ91は位置姿勢補正部22として機能する。
一実施形態の位置姿勢補正処理では、判定対象になっている中間点Ciについて、各軸状態量の候補値が更新される。例えば、中間点Ciに対応する距離パラメータが閾値以下となり補正対象に設定された場合(S17:NO)、中間点C1の元々の各軸状態量は更新される。
なお、詳細は後述するが位置姿勢補正処理が実行されるたびに、更新回数kはインクリメントされる。
【0055】
プロセッサ91は位置姿勢補正処理(S21)を実行した後、S17に戻る。この場合、位置姿勢補正処理において更新された最新の各軸状態量の候補値に基づき、位置姿勢パラメータと距離パラメータを含む判定対象パラメータが求められ、許容条件が充足されるか判定される(S17)。充足条件が充足されなければ(S17:NO)、プロセッサ91は、S17~S21を繰り返す。
【0056】
各軸状態量の候補値に対応する位置姿勢が許容条件を充足すると判定されると(S17:YES)、プロセッサ91は該位置姿勢をCiの補正位置姿勢に決定する(S23)。
次いで、プロセッサ91は、中間点Ciが移動経路33において最も下流側の中間点Cかを判定する(S25)。中間点Ciよりも下流側に他の中間点Cがある場合(S25:NO)、プロセッサ91は、番号iをインクリメントし且つ更新回数kを1に初期化する(S27)。その後、プロセッサ91は処理をS13に戻す。
プロセッサ91がS11~S27を繰り返すと、中間点Ciが最も下流側の中間点Cと一致する(S25:YES)。その後、プロセッサ91は、補正された移動経路33に沿って先端38が移動するよう多軸ロボット30を制御する(S29)。この場合、プロセッサ91は、先端38の位置姿勢が補正位置姿勢を経て最終位置姿勢まで変化するよう、多軸ロボット30を制御する。S29を実行するプロセッサ91は位置姿勢制御部23として機能する。
【0057】
なお、他の実施形態に係る中間点Cを判定対象に設定する処理(S13)では、移動経路33の下流側から順に中間点Cが判定対象に設定されてもよいし、あるいはランダムに中間点Cが判定対象に設定されてもよい。
【0058】
図10を参照し、位置姿勢補正処理を説明する。本処理の開始時、中間点C
iが許容条件を満たしていないとする。
【0059】
プロセッサ91は、各軸状態量の候補値であるqi、kを設定する(S51)。
例えば、中間点C1が許容条件を満たさず(S17:NO)、更新回数kが1の場合には、プロセッサ91は、各軸状態量の候補値としてq1、1を設定する(S51)。一例として、q1、1は、中間点C1の初期の目標位置姿勢における各軸状態量である。
別の実施形態では、q1、1は、中間点C1からずれた位置姿勢の各軸操作量であってもよい。例えば、q1、1は、中間点C1の近傍点における位置姿勢であってもよいし、始点Dの位置姿勢であってもよい。始点Dの位置姿勢は、中間点C1よりも1つ上流側の中間点Cとみなすことが演算処理において可能である。
【0060】
プロセッサ91は、第1偏差Δx_i、kと、第2偏差ΔxC_i、kを求める(S53)。
例えば、各軸状態量の候補値であるqi、kに対応する位置姿勢パラメータは、式(1)に基づき求まる。また、位置姿勢パラメータに含まれる位置パラメータが求まることで距離パラメータが求まる。
プロセッサ91は、位置姿勢パラメータ、位置姿勢パラメータの目標値、距離パラメータ、距離パラメータの目標値に基づき、第1偏差Δx_i、kと、第2偏差ΔxC_i、kを求める。
【0061】
プロセッサ91は、各軸状態量の最新の候補値であるqi、kにおける第1行列(J_i、k)を取得し(S55)、qi、kにおける第2行列(JC_i、k)を取得する(S57)。S55を実行するプロセッサ91は第1行列取得部11として機能し、S57を実行するプロセッサ91は第2行列取得部12として機能する。
【0062】
プロセッサ91は、各軸状態量の更新量であるΔqi、kを式(1)を用いて取得する(S59)。式(1)には、S51で取得されたqi、k、式53で取得された第1偏差Δx_i、kおよび第2偏差ΔxC_i、k、S55で取得されたJ_i、k、並びにS57で取得されたJc_i、kが代入される。
プロセッサ91は、S59で取得されたΔqi、kを、最新のqi、kに加算することで、qi、kを更新する(S61)。S61を実行するプロセッサ91が更新部13として機能する。
プロセッサ91は、更新回数kをインクリメントして(S63)、位置姿勢補正処理を終了し、ロボット制御処理に戻る。
【0063】
なお、他の実施形態に係る位置姿勢補正処理では、Δq1が第2更新量であり、Δq2が第1更新量であってもよい。つまり、Δx及びJの組み合わせが、第2ベクトルおよび第2行列の組み合わせであり、ΔxCおよびJCの組み合わせが、第1ベクトルおよび第1行列の組み合わせであってもよい。
この場合、S55では、第1偏差がΔxc_i、kとして扱われ、第2偏差がΔx_i、kとして扱われる。さらに、S55で取得される第1行列がJc_i、kとして扱われ、S57で取得される第2行列がJ_i、kとして扱われる。
また、S55で取得される第1行列(J_i、k)は、各軸状態量の最新の候補値における第1行列である代わりに、該候補値からずれた各軸状態量に基づく第1行列であってもよい。同様に、S57で取得される第2行列(JC_i、k)は、各軸状態量の最新の候補値における第2行列である代わりに、該候補値からずれた各軸状態量に基づく第2行列であってもよい。
【0064】
以下、幾つかの実施形態に係る多軸ロボット用の制御装置20、多軸ロボット用のロボットシステム1、多軸ロボット用の制御プログラム95を説明する。
【0065】
(1)本発明の少なくとも一実施形態に係る多軸ロボット用の制御装置20は、
多軸ロボット30の先端38の目標位置姿勢に代替する補正位置姿勢を求めるための位置姿勢補正部22を備え、
前記位置姿勢補正部22は、
前記多軸ロボット30の各軸状態量に対する、前記多軸ロボット30の前記先端38の位置姿勢を示す複数の位置姿勢パラメータの一部である第1パラメータの感度を少なくとも示す第1行列を取得するための第1行列取得部11と、
前記各軸状態量に対する、前記位置姿勢パラメータとは異なる第2パラメータの感度を少なくとも示す第2行列を取得するための第2行列取得部12と、
前記各軸状態量の候補値に対応する前記第1パラメータの前記目標位置姿勢を基準とした偏差を含む第1偏差と、前記各軸状態量の前記候補値に対応する前記第2パラメータの目標値を基準とした偏差を含む第2偏差と、前記第1行列および前記第2行列とを用いて、前記各軸状態量の前記候補値を更新するための更新部13と
を含む。
【0066】
上記(1)の構成によれば、更新部13によって更新された各軸状態量に対応する位置姿勢を、位置姿勢補正部22は補正位置姿勢として扱う。更新部13が第1偏差、第2偏差、第1行列、および第2行列を用いて各軸状態量の候補値を更新する。これにより、第1偏差および第2偏差が反映された更新後の候補値が求まる。従って、第1偏差と第2偏差に応じた補正位置姿勢を位置姿勢補正部22は求めることができる。よって、多軸ロボット30の先端38が目標位置姿勢に変化するための制御を柔軟に実行できる多軸ロボット用の制御装置20が実現する。
例えば、位置姿勢制御部23による制御により多軸ロボット30の先端38の位置姿勢が目標位置姿勢に代替する補正位置姿勢に変化することで、先端38が目標位置姿勢に変化するための制御が柔軟に実行される。
なお、更新部13が用いる各軸状態量に対する感度を示す行列は、第1行列と第2行列のみであることに幾つかの実施形態では限定されない。第1行列と第2行列に加えて、さらに別の行列(各軸状態量に対する感度を示す行列)が用いられてもよい。
【0067】
(2)幾つかの実施形態では、上記(1)の構成において、
前記更新部13は、前記各軸状態量の最新の前記候補値に、式(1)によって示されるΔqを加えることによって前記候補値を更新するように構成され、
前記式(1)において、
Δx及びJの組み合わせが、前記第1偏差を要素として含む第1ベクトルおよび前記第1行列の組み合わせ、または、前記第2偏差を要素として含む第2ベクトルおよび前記第2行列の組み合わせの一方であり、
ΔxCおよびJCの組み合わせが、前記第1ベクトルおよび前記第1行列の組み合わせ、または、前記第2ベクトルおよび前記第2行列の組み合わせの他方である。
Δq=J+Δx+(JC(I-J+J))+(ΔxC-JCJ+Δx)・・・式(1)
【0068】
上記(2)の構成によれば、第1パラメータの値または第2パラメータの値のいずれか一方が他方よりも許容範囲に入ることが優先される。第1パラメータまたは第2パラメータの一方を他方よりも優先しながら補正位置姿勢が求められる。従って、補正位置姿勢において、優先度の高いパラメータの値を理想的な値の近くに設定できる。
また、第1パラメータおよび第2パラメータのうち優先度の高いパラメータについては、優先度の劣るパラメータよりも許容範囲を狭く(厳しく)設定することが可能である。これにより、補正位置姿勢の位置姿勢パラメータのうち優先度の高いパラメータについては、目標位置姿勢の位置姿勢パラメータの近くに設定される。よって、ツール39がワーク5に対して行う作業品質の低下が抑制される。
【0069】
(3)幾つかの実施形態では、上記(1)または(2)の構成において、
前記更新部13によって更新された前記各軸状態量の最新の前記候補値に対応する前記位置姿勢パラメータを少なくとも含む判定対象パラメータの値が許容範囲に収まるかを判定するための判定部24を備え、
前記更新部13は、前記判定対象パラメータの値が前記許容範囲に収まると判定されたことに応じて、前記各軸状態量の前記候補値の更新を止めるように構成される。
【0070】
上記(3)の構成によれば、判定部24の判定結果に応じて、更新部13は各軸状態量の候補値の更新を行うことができる。これにより更新部13は、余分な更新を実行することがなくなるので、補正位置姿勢を求める処理の効率は向上する。
【0071】
(4)幾つかの実施形態では、上記(3)の構成において、
前記判定部24は、前記多軸ロボット30の前記先端38の位置姿勢が最終位置姿勢に変化するまでに経る複数の前記目標位置姿勢の少なくとも1つについて、前記判定対象パラメータが前記許容範囲に含まれるかを判定するように構成される。
【0072】
上記(4)の構成によれば、多軸ロボット30の先端38の位置姿勢の経由対象となる複数の目標位置姿勢が設定される。これにより、先端38の位置姿勢の変化に伴い先端38が辿る経路(移動経路33)は柔軟に設定される。よって、多軸ロボット30の先端38の位置姿勢が柔軟に変化する制御を制御装置20は実行できる。
【0073】
(5)幾つかの実施形態では、上記(1)から(4)のいずれかの構成において、
前記目標位置姿勢を示す前記各軸状態量に関連する、前記位置姿勢パラメータとは別のパラメータを少なくとも含む判定対象パラメータが許容範囲に収まるかを判定するための判定部24を備え、
前記更新部13は、前記判定対象パラメータが前記許容範囲から逸脱すると前記判定部24によって判定されたことに応じて、前記目標位置姿勢を示す前記各軸状態量である初期の前記候補値を更新する。
【0074】
上記(5)の構成によれば、判定対象パラメータが許容範囲から逸脱する目標位置姿勢について、位置姿勢補正部22は補正位置姿勢を求める。従って、位置姿勢補正部22が補正位置姿勢を求めるための処理の効率は向上する。
【0075】
(6)幾つかの実施形態では、上記(1)から(5)のいずれかの構成において、
前記第1行列取得部11は、前記各軸状態量の最新の前記候補値における、前記各軸状態量に対する前記第1パラメータの感度を示す前記第1行列を取得するように構成され、
前記第2行列取得部12は、前記各軸状態量の最新の前記候補値における、前記各軸状態量に対する前記第2パラメータの感度を示す前記第2行列を取得するように構成される。
【0076】
上記(6)の構成によれば、更新部13による候補値の更新の際には、更新対象となっている各軸状態量の候補値における第1偏差と第2偏差が強く反映される。これにより、更新された各軸状態量に対応する第1パラメータと第2パラメータが目標位置姿勢の位置姿勢パラメータから乖離し過ぎることが抑制される。従って、ロボット制御処理における更新回数kは低減し、判定対象パラメータの値が許容範囲に収まる補正位置姿勢を求めるための処理の効率が向上する。
【0077】
(7)本発明の少なくとも一実施形態に係る多軸ロボット用のロボットシステム1は、
上記(1)から(6)のいずれかに記載の多軸ロボット用の制御装置20と、
前記多軸ロボット30と
を備える。
【0078】
上記(7)の構成によれば、上記(1)と同様の理由により、多軸ロボット30の先端38が目標位置姿勢に変化するための制御を柔軟に実行できる多軸ロボット用のロボットシステム1が実現する。
【0079】
(8)本発明の少なくとも一実施形態に係る多軸ロボット用の制御プログラム95は、
コンピュータに、
多軸ロボット30の先端38の目標位置姿勢に代替する補正位置姿勢を求めるための位置姿勢補正ステップを実行させ、
前記位置姿勢補正ステップは、
前記多軸ロボット30の各軸状態量に対する、前記多軸ロボット30の前記先端38の位置姿勢を示す複数の位置姿勢パラメータのうち第1パラメータの感度を少なくとも示す第1行列を取得するための第1行列取得ステップと、
前記各軸状態量に対する、前記位置姿勢パラメータとは異なる第2パラメータの感度を少なくとも示す第2行列を取得するための第2行列取得ステップと、
前記各軸状態量の候補値に対応する前記第1パラメータの前記目標位置姿勢を基準とした偏差を含む第1偏差と、前記各軸状態量の前記候補値に対応する前記第2パラメータの目標値を基準とした偏差を含む第2偏差と、前記第1行列および前記第2行列とを用いて、前記各軸状態量の前記候補値を更新するための更新ステップとを含む。
【0080】
上記(8)の構成によれば、上記(1)と同様の理由により、多軸ロボット30の先端38が目標位置姿勢に変化するための制御を柔軟に実行できる多軸ロボット用の制御プログラム95が実現する。
【0081】
上記説明では、
図9において、S17で許容条件を満たした位置姿勢を示す点と、S23において決定される中間点C
iが一致する実施形態を説明した。別の実施形態では、S17で許容条件を満たすと判定され、かつ、多軸ロボット30の修正軌道に含まれる複数の任意の中間点C
i(例えば5個の中間点)について、重み係数を付与し、その任意の数の中間点C
iにおける位置姿勢を微調整することもできる(つまり、修正軌道を微調整することもできる)。微調整後の中間点はいずれも許容条件を満たすことが好ましい。ただし、S17で設定される許容条件を満たさないものの、当該許容条件より緩い衝突回避条件を満たす微調整後の中間点が採用されることがあってもよい。
これにより、ある中間点C
iは、その中間点よりも下流側にある任意の複数の中間点C
iの位置を考慮に入れた位置となり、多軸ロボット30の軌道を滑らかにできる。従って、多軸ロボット30の動作がスムーズになる。
【符号の説明】
【0082】
1 :ロボットシステム
11 :第1行列取得部
12 :第2行列取得部
13 :更新部
20 :制御装置
22 :位置姿勢補正部
24 :判定部
30 :多軸ロボット
38 :先端
95 :制御プログラム
q1~q6 :軸状態量