IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社前川製作所の特許一覧

特開2022-161572多軸ロボット用の制御装置、ロボットシステム、および制御プログラム
<>
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図1
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図2
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図3
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図4
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図5
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図6
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図7
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図8
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図9
  • 特開-多軸ロボット用の制御装置、ロボットシステム、および制御プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022161572
(43)【公開日】2022-10-21
(54)【発明の名称】多軸ロボット用の制御装置、ロボットシステム、および制御プログラム
(51)【国際特許分類】
   B25J 19/06 20060101AFI20221014BHJP
【FI】
B25J19/06
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021066488
(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は、位置姿勢補正部22と姿勢制御部23を備える。位置姿勢補正部22は、多軸ロボット30の先端38の位置姿勢が最終位置姿勢に変化するまでに経る複数の中間位置姿勢のうち、多軸ロボット30と障害物との距離が閾値以下となる位置姿勢について、距離が閾値を超える多軸ロボット30の先端38の補正中間位置姿勢を求めるように構成される。姿勢制御部23は、多軸ロボット30の先端38の位置姿勢が、位置姿勢補正部22によって求められた補正中間位置姿勢を経て最終位置姿勢まで変化するよう、多軸ロボット30を制御するように構成される。
【選択図】図1
【特許請求の範囲】
【請求項1】
多軸ロボットの先端の位置姿勢が最終位置姿勢に変化するまでに経る複数の中間位置姿勢のうち、前記多軸ロボットと障害物との距離が閾値以下となる前記位置姿勢について、前記距離が前記閾値を超える前記多軸ロボットの前記先端の補正中間位置姿勢を求めるための位置姿勢補正部と、
前記多軸ロボットの前記先端の前記位置姿勢が、前記位置姿勢補正部によって求められた前記補正中間位置姿勢を経て前記最終位置姿勢まで変化するよう、前記多軸ロボットを制御するための位置姿勢制御部と
を備える多軸ロボット用の制御装置。
【請求項2】
前記位置姿勢補正部は、前記多軸ロボットの前記先端の前記位置姿勢を示す位置姿勢パラメータおよび前記距離を示す距離パラメータの値が許容範囲内に収まるような前記多軸ロボットの各軸状態量を探索するように構成された請求項1に記載の多軸ロボット用の制御装置。
【請求項3】
前記位置姿勢補正部は、
前記各軸状態量に対する1以上の前記位置姿勢パラメータの感度を少なくとも示す第1行列を取得するための第1行列取得部と、
前記各軸状態量に対する前記距離パラメータの感度を少なくとも示す第2行列を取得するための第2行列取得部と、
前記各軸状態量の候補値に対応する前記1以上の前記位置姿勢パラメータの目標値に対する第1偏差と、前記各軸状態量の前記候補値に対応する前記距離パラメータの目標値に対する第2偏差と、前記第1行列および前記第2行列とを用いて、前記各軸状態量の前記候補値を更新するための更新部と、
を含む請求項2に記載の多軸ロボット用の制御装置。
【請求項4】
前記更新部は、前記各軸状態量の最新の前記候補値に、式(1)によって示されるΔqを加えることによって前記候補値を更新し、
前記式(1)において、
Δx及びJの組み合わせが、前記第1偏差を要素として含む第1ベクトルおよび前記第1行列の組み合わせ、または、前記第2偏差を要素として含む第2ベクトルおよび前記第2行列の組み合わせの一方であり、
ΔxおよびJの組み合わせが、前記第1ベクトルおよび前記第1行列の組み合わせ、または、前記第2ベクトルおよび前記第2行列の組み合わせの他方である請求項3に記載の多軸ロボット用の制御装置。
Δq=JΔx+(J(I-JJ))(Δx-JΔx)・・・式(1)
【請求項5】
ΔxおよびJの組み合わせが、前記第1偏差を要素として含む前記第1ベクトルおよび前記第1行列の組み合わせであり、
ΔxおよびJの組み合わせが、複数の前記位置姿勢パラメータのうち前記1以上の前記位置姿勢パラメータを除く他の前記位置姿勢パラメータと目標値との偏差と前記第2偏差とを要素として含む前記第2ベクトルおよび前記第2行列の組み合わせである請求項4に記載の多軸ロボット用の制御装置。
【請求項6】
前記位置姿勢補正部は、前記多軸ロボットの少なくとも一部を包含するモデルを仮想的に設定し、前記モデルと前記障害物との距離を前記多軸ロボットと前記障害物との前記距離として扱い、前記各軸操作量を求める請求項1から5のいずれかに記載の多軸ロボット用の制御装置。
【請求項7】
前記モデルは、
前記多軸ロボットのリンクの軸方向に沿った円筒部と、
前記円筒部の両端に接続される2つの半球部と、
を含む請求項6に記載の多軸ロボット用の制御装置。
【請求項8】
請求項1から7のいずれかに記載の多軸ロボット用の制御装置と、
前記多軸ロボットと
を備える多軸ロボット用のロボットシステム。
【請求項9】
コンピュータに、
多軸ロボットの先端の位置姿勢が最終位置姿勢に変化するまでに経る複数の中間位置姿勢のうち、前記多軸ロボットと障害物との距離が閾値以下となる前記位置姿勢について、前記距離が前記閾値を超える前記多軸ロボットの前記先端の補正中間位置姿勢を求めるための位置姿勢補正ステップと、
前記多軸ロボットの前記先端の前記位置姿勢が、前記位置姿勢補正ステップによって求められた前記補正中間位置姿勢を経て前記最終位置姿勢まで変化するよう、前記多軸ロボットを制御するための位置姿勢制御ステップと
を実行させる多軸ロボット用の制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、多軸ロボット用の制御装置、ロボットシステム、および制御プログラムに関する。
【背景技術】
【0002】
従来、多軸ロボットの位置姿勢が目標の位置姿勢に変化できるかを判定する多軸ロボット用の制御装置が知られている。例えば、特許文献1で開示される多軸ロボット用の制御装置では、多軸ロボットの位置姿勢が変わるときにおける多軸ロボットと障害物との距離の変化を予め算出する。算出結果に基づき、多軸ロボットと障害物との衝突が発生するか判定される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008-279524号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1では、多軸ロボットが障害物との衝突を回避するための経路を特定するための構成が開示されていない。
【0005】
本開示の目的は、多軸ロボットと障害物との衝突を回避しながら多軸ロボットの位置姿勢を変えることができる多軸ロボット用の制御装置、ロボットシステム、および制御プログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の少なくとも一実施形態に係る多軸ロボット用の制御装置は、
多軸ロボットの先端の位置姿勢が最終位置姿勢に変化するまでに経る複数の中間位置姿勢のうち、前記多軸ロボットと障害物との距離が閾値以下となる前記位置姿勢について、前記距離が前記閾値を超える前記多軸ロボットの前記先端の補正中間位置姿勢を求めるための位置姿勢補正部と、
前記多軸ロボットの前記先端の前記位置姿勢が、前記位置姿勢補正部によって求められた前記補正中間位置姿勢を経て前記最終位置姿勢まで変化するよう、前記多軸ロボットを制御するための位置姿勢制御部と
を備える。
【0007】
本発明の少なくとも一実施形態に係る多軸ロボット用のロボットシステムは、
前記多軸ロボット用の制御装置と、
前記多軸ロボットと
を備える。
【0008】
本発明の少なくとも一実施形態に係る多軸ロボット用の制御プログラムは、
コンピュータに、
多軸ロボットの先端の位置姿勢が最終位置姿勢に変化するまでに経る複数の中間位置姿勢のうち、前記多軸ロボットと障害物との距離が閾値以下となる前記位置姿勢について、前記距離が前記閾値を超える前記多軸ロボットの前記先端の補正中間位置姿勢を求めるための位置姿勢補正ステップと、
前記多軸ロボットの前記先端の前記位置姿勢が、前記位置姿勢補正ステップによって求められた前記補正中間位置姿勢を経て前記最終位置姿勢まで変化するよう、前記多軸ロボットを制御するための位置姿勢制御ステップと
を実行させる。
【発明の効果】
【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つの各軸状態量q~qを要素として含む列ベクトルである。多軸ロボット30の関節軸の本数は6本に代えて、例えば、5本、または7本以上であってもよい。
【0015】
先端38の位置姿勢は、位置姿勢パラメータを要素として含む位置姿勢ベクトルpによって表される。
一実施形態では、位置姿勢パラメータは6つである。より具体的には、6つの位置姿勢パラメータは、先端38の位置を示す3つの位置パラメータ(X、Y、およびZ)と、先端38の姿勢を示す3つの姿勢パラメータ(R、R、およびR)とに分類される。一実施形態では、これらのパラメータが、任意に設定可能な基準座標系Σにおいて示される。
【0016】
多軸ロボット30の位置姿勢ベクトルpと各軸状態量ベクトルqとの関係は、以下の式(2)によって規定される。
p=fr(q) ・・・式(2)
frは関節角度から位置姿勢ベクトルへと変換する関数である。具体的に、多軸ロボット30の関節軸の個数(即ち関節の個数)をnとした場合、関数fpと用いて以下の式(2A)ようにあらわされる。
p=fp() ・・・式(2A)
は同次変換行列であり、基準座標系Σにおける座標と、多軸ロボット30の最も先端側にあるn番目の関節の座標系Σとの関係を規定する。基準座標系Σは、多軸ロボット30の用途に応じて任意に設定できる。一実施形態の基準座標系Σは、運搬装置7による運搬経路上に設定される。他の実施形態では、基準座標系Σは、例えば台座9などに設定されてもよい。上述した任意の基準座標系Σにおける座標は、ワールド座標と呼ばれることもある。
は式(3)によって規定される。
・・・n―1 ・・・・式(3)
式(3)において、は、基準座標系Σを、最も基端側にある関節の座標系Σに変換するための同次変換行列である。は、座標系Σを、基端側から2番目の関節の座標系Σに変換するための同次変換行列である。このように、式(3)の右辺で示される各々の同次変換行列は、隣り合う2つの関節の座標系の関係を規定する。
一実施形態では、式(3)の右辺で示される各々の同次変換行列は、4行4列の行列である。各同次変換行列には、3行3列の回転行列と、着目される2つの座標系の位置関係を示す1行3列の並進ベクトルが要素として含まれる。例えば、同次変換行列n―1は以下の式(4)で表される。
【数1】
式(4)において、R11、R12、R13、R21、R22、R23、R31、R32、およびR33は、座標系Σn―1を座標系Σに一致させるために座標系Σn―1を回転させる角度を示す3行3列の回転行列である。また、X、Y、およびZは、座標系Σn―1を座標系Σに一致させるために座標系Σn―1を並進させる並進ベクトルである。
上記のn―1は、n番目の関節とn-1番目の関節との位置関係、および両関節の機械的構造により定まる。つまり、式(2A)、式(3)で同次変換行列として示されるは、多軸ロボット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つの距離パラメータを含む距離ベクトルによって表される。距離ベクトルは一例として列ベクトルである。例えば、距離パラメータの個数が2つのとき、距離ベクトルの要素は、dおよびdとして表される。図1では1つの距離パラメータが符号dによって図示される。
該距離ベクトルに含まれる少なくとも1つの距離パラメータが閾値以下である場合、多軸ロボット30は障害物と衝突する可能性が高い。一実施形態の閾値は、各々の距離パラメータに対応付けて設定される0以上の値である。閾値は安全率を反映した正の値であってもよい。
【0020】
一実施形態では、上記の距離ベクトルは、各軸状態量ベクトルqに基づき特定できる。具体的には以下の通りである。
多軸ロボット30の各軸状態量ベクトルqが判れば、式(1)に基づき先端38の位置パラメータ(X、Y、およびZ)は求まる。また、同次変換行列としてのn-1が式(2)、式(2A)に適用されれば、n-1番目のリンク35の位置パラメータも求まる。同様の手法に則れば、各軸状態量ベクトルqと式(1)とに基づき、多軸ロボット30の任意の部位の位置パラメータが求まる。これにより、多軸ロボット30と障害物との距離ベクトルは求まる。
なお、多軸ロボット30Bが多軸ロボット30Aの障害物となる実施形態では、各タイムステップにおいて、多軸ロボット30A、30Bが停止していると仮定して、多軸ロボット30A、30Bの距離パラメータは求められる。
距離パラメータの算出方法の更なる詳細については後述する。
【0021】
一実施形態では、多軸ロボット30を制御するための制御装置20は、経路設定部21、位置姿勢補正部22、および位置姿勢制御部23を備える。
一実施形態の経路設定部21は、ワーク5に作業が実行される際の先端38の移動経路33を設定する。例えば、ワーク5の形状または位置に応じて、経路設定部21は先端38の移動経路33を設定する。
一実施形態の移動経路33は、始点D、複数の中間点C、および終点Gを含む。移動経路33に含まれるこれら各々の点において、先端38の位置姿勢(つまり、先端38の位置姿勢パラメータ)が設定されている。以下、各々の中間点Cにおける先端38の位置姿勢を中間位置姿勢ともいい、終点Gにおける先端38の位置姿勢を最終位置姿勢ともいう。
一実施形態では、複数の中間点Cの少なくとも1つにおいて、位置姿勢パラメータに基づき定まる距離パラメータが閾値以下になる。このような中間点Cは補正対象として扱われる。
【0022】
一実施形態の位置姿勢補正部22は、補正対象の中間点Cの中間位置姿勢について、多軸ロボット30と障害物との距離が閾値を超える先端38の補正中間位置姿勢を求めるように構成される。言い換えると、位置姿勢補正部22は、先端38の位置姿勢が最終位置姿勢に変化するまでに経る複数の中間位置姿勢のうち、補正対象とする中間位置姿勢について、補正中間位置姿勢を求めるように構成される。
一実施形態の位置姿勢補正部22は、多軸ロボット30の各軸状態量を探索することで補正中間位置姿勢を求めるように構成される。より具体的には、位置姿勢パラメータおよび距離パラメータの値が許容範囲に収まるような各軸状態量の候補値を位置姿勢補正部22は探索するように構成される。
一実施形態では、位置姿勢パラメータの値が許容範囲に収まることで、位置姿勢補正部22によって求められる補正中間位置姿勢が理想的な位置姿勢から乖離し過ぎるのを抑制できる。理想的な位置姿勢は、例えば、補正対象となっている中間点Cの初期の位置姿勢である。
一実施形態では、距離パラメータの値が許容範囲に収まることで、距離パラメータが、理想的な値(例えば閾値)から乖離し過ぎるのを抑制できる。これにより、先端38が補正中間位置姿勢を経る多軸ロボット30の動作において無駄が低減する。
【0023】
一実施形態の位置姿勢制御部23は、多軸ロボット30の先端38の位置姿勢が、位置姿勢補正部22によって求められた補正中間位置姿勢を経て最終位置姿勢まで変化するよう、多軸ロボット30を制御するように構成される。
一実施形態では、位置姿勢制御部23が多軸ロボット30を制御することで、先端38は移動経路33に沿って移動する。
【0024】
図2は、一実施形態に係る、位置姿勢補正部22によって補正される中間点Cを示す図である。図2は、運搬装置7の運搬方向に沿って見た図を例示する。一実施形態では、移動経路33の上流側から順に、複数の中間点Cの各々に番号が割り当てられる。
一実施形態では、1番目の中間点Cとi+1番目の中間点Ci+1とにおいて、距離パラメータが閾値以下であり、補正中間位置姿勢が位置姿勢補正部22によって探索される。
一実施形態では、中間点Cと中間点Ci+1のいずれにおいても、位置姿勢補正部22は、6つの位置姿勢パラメータのうちで姿勢パラメータ(R、R、またはR)の少なくともいずれかが補正された補正中間位置姿勢を探索する。
なお、他の実施形態の位置姿勢補正部22は、位置姿勢パラメータのうちで位置パラメータ(X、Y、またはZ)の少なくともいずれかが補正された補正中間位置姿勢を探索してもよいし、6つの位置姿勢パラメータが全て補正された補正中間位置姿勢を探索してもよい。
位置姿勢制御部23が多軸ロボット30を制御する場合、先端38の位置姿勢は、中間点Cと中間点Ci+1とにおいて、位置姿勢補正部22によって探索された補正中間位置姿勢に変化する。
【0025】
位置姿勢補正部22の補正対象となる位置姿勢パラメータは、補正中間位置姿勢の探索中、終始同じであるとは限らない。つまり、補正対象となる位置姿勢パラメータは、中間位置姿勢の探索状況または探索条件などに応じて、動的に切り替えることが出来る。例えば、探索回数が増えるに従い(あるいは距離パラメータが満たすべき閾値が小さくなるに従い)、補正対象となる位置姿勢パラメータが増えてもよいし、補正対象となる位置姿勢パラメータの種別が変化するが個数そのものは一定であってもよい。あるいは、これら2つの組み合わせが実行されてもよい。
より具体的な一例として、補正中間位置姿勢の探索回数が規定回数に達するまでの間はRのみが補正対象となる。探索回数が規定回数に達する前に、Rのみが補正された適正な補正中間位置姿勢(つまり、距離パラメータが閾値を超える中間位置姿勢)が特定されれば、探索は終了する。このとき、補正前の位置姿勢に極めて近い補正中間位置姿勢を特定できる。一方で、探索回数が規定回数に達しても、適正な補正中間位置姿勢(衝突回避等が可能な補正中間位置姿勢)が見つからなければ、Rに加えて(あるいはRに代えて)、例えばR及びRが補正対象として追加できる。これにより、適正な中間位置姿勢が特定できない不具合を回避できる。
以上のように、可能な限り目標位置姿勢に近い補正中間位置姿勢を探索することが出来る上、衝突回避等が可能な補正中間位置姿勢を見つける確率を上げることが出来る。
【0026】
図3は、一実施形態に係る位置姿勢補正部22が補正中間位置姿勢を探索する過程を示す概念図である。図3の例では、1番目の中間点Cの補正中間位置姿勢が求められる過程を示す。また、図3では移動経路33を一部省略して図示する。
中間点Cにおいて距離パラメータが閾値以下であれば、中間点Cの中間位置姿勢は補正対象であると判定される。
一実施形態ではこの場合、位置姿勢補正部22は、初期の中間点Cである中間点C1、1を更新して、中間点Cの候補としての中間点C1、2を求める。
中間点C1、2を候補として求める具体的な手法の一例は以下の通りである。位置姿勢補正部22は、中間点C1、1の位置姿勢パラメータに対応する対応する各軸状態量q1、1を式(5)に基づき求める。その後、中間点C1、1おける位置姿勢パラメータおよび目標値の偏差と、中間点C1、1おける距離パラメータおよび目標値との偏差とに基づき、各軸状態量の更新量であるΔq1、1を位置姿勢補正部22は求める(更新量の求め方の更なる詳細は後述する)。結果、各軸状態量q1、2(=q1、1+Δq1、1)が求まる。位置姿勢補正部22は、式(2)と各軸状態量q1、2とを用いて、中間点C1、2の位置姿勢ベクトルp(位置姿勢パラメータ)を求める。
中間点C1、2における位置姿勢パラメータまたは距離パラメータの少なくとも一方の値が許容範囲から逸脱する場合、位置姿勢補正部22は中間点C1、2をさらに更新して、新たな候補の中間点C1、3を求める。求め方は、上記と同様であり、最新の各軸状態量の候補値であるq1、2にΔq1、2が加えられることで、中間点C1、3の位置姿勢パラメータが求まる。
位置姿勢パラメータと距離パラメータのいずれの値も許容範囲に収まるまで、各軸状態量の探索は繰り返される。そして、k-1回目の更新で特定された中間点C1、kにおいて上記パラメータの値が許容範囲に収まれば、中間点C1、kが補正後の中間点Cとして設定される。つまり、中間点C1、kの中間位置姿勢が、初期の中間点Cの中間位置姿勢に代わる補正中間位置姿勢として扱われる。
この繰り返し時、補正対象となる位置姿勢パラメータ(例えばR、Rなど)を、条件によって動的に切り替えたり、追加していくことにより、軌道の補正の自由度を高めることが出来る。
詳細な図示および説明は省略するが、i+1番目の中間点Ci+1が補正対象である場合においても、同様の過程が繰り返される。例えばk-1回目の更新で特定された中間点Ci+1、kにおいて、位置姿勢パラメータと距離パラメータがいずれの値も許容範囲に収まれば、中間点Ci+1、kが補正後の中間点Ci+1として扱われる。
【0027】
図4は、一実施形態に係る位置姿勢補正部22の構成を示す図である。
位置姿勢補正部22は、第1行列を取得するための第1行列取得部11、第2行列を取得するための第2行列取得部12、および、第1行列と第2行列に基づき各軸状態量の候補値を更新するための更新部13を含む。
【0028】
一実施形態において、第1行列取得部11によって取得される第1行列は、各軸状態量に対する1以上の位置姿勢パラメータの感度を少なくとも示す。第1行列は、一例としてヤコブ行列である。
例えば、各軸状態量ベクトルqが6つの各軸状態量を含み、且つ第1行列が6つの位置姿勢パラメータ(X、Y、Z、R、R、およびR)の各軸状態量に対する感度を示す場合、第1行列(J1s)は式(6)によって表される。
【数2】
【0029】
一実施形態において、第2行列取得部12によって取得される第2行列は、各軸状態量に対する距離パラメータの感度を少なくとも示す。第2行列は、一例としてヤコブ行列である。
例えば、各軸状態量ベクトルqが6つの各軸状態量を含み、且つ第2行列が複数の距離パラメータ(d、・・・、d)の各軸状態量に対する感度を示す場合、第2行列(J2s)は式(7)によって表される。
【数3】
【0030】
一実施形態の更新部13は、上記の第1行列および第2行列の他に、第1偏差および第2偏差に基づき、各軸状態量の候補値の更新をするように構成される。
第1偏差は、各軸状態量の候補値に対応する1以上の位置姿勢パラメータの、目標値に対する偏差である。一実施形態の該目標値は、補正対象位置姿勢の位置姿勢パラメータである。
第2偏差は、各軸状態量の候補値に対応する距離パラメータの、目標値に対する偏差である。一実施形態の該目標値は、距離パラメータに対応して定められた閾値である。
一実施形態では、第1偏差で扱われる位置姿勢パラメータは、第1行列で扱われる位置姿勢パラメータと同じである。例えば、第1行列が6つの位置姿勢パラメータの各軸状態量に対する感度を示す場合、第1偏差はこれら6つのパラメータに関する偏差である。同様に、第2偏差で扱われる距離パラメータは、第2行列で扱われる距離パラメータと同じである。例えば、第2行列がm個の距離パラメータの各軸状態量に対する感度を示す場合、第2偏差は同じ距離パラメータに関する偏差である。
一実施形態では、第1偏差と第1行列が判れば、更新前の候補値に対する位置姿勢パラメータを目標値に近づけるための各軸状態量の更新量が、例えば勾配法の適用によって求まる。同様に、第2偏差と第2行列が判れば、更新前の候補値に対応する距離パラメータを目標値に近づけるための各軸状態量の更新量が求まる。
一実施形態の更新部13は、第1偏差および第1行列から求まる各軸状態量の第1更新量と、第2偏差および第2行列から求まる各軸状態量の第2更新量とに基づき、各軸状態量の最新の候補値を更新する更新量(Δq)を求める。
【0031】
より具体的な一例として、更新部13は、以下の式(8)、式(9)、および式(10)に基づき、各軸状態量の更新量(Δq)を求める。式(9)で示されるJはJの逆行列を意味する。その他の式においても、添え字として”+”が付加された行列は、添え字が付加されていない行列の疑似逆行列を意味する。
Δq=Δq+Δq ・・・式(8)
Δq=JΔx ・・・式(9)
Δq=(J(I-JJ))(Δx-JΔx) ・・・式(10)
式(8)~式(10)において、Δqが、上述した第1更新量または第2更新量のいずれか一方であり、Δqが、第1更新量または第2更新量のいずれか他方である。
一実施形態では、Δqが第1更新量であり、Δqが第2更新量である。この場合、Δxが第1偏差を要素として含む第1ベクトル(一例として列ベクトル)であり、Jが第1行列である。また、Δxが第2偏差を要素として含む第2ベクトル(一例として列ベクトル)であり、Jが第2行列である。即ち、Δx及びJの組み合わせが、第1偏差を要素として含む第1ベクトルおよび第1行列の組み合わせであり、ΔxおよびJの組み合わせが、第2偏差を要素として含む第2ベクトルおよび第2行列の組み合わせである。
別の実施形態では、Δqが第2更新量であり、Δqが第1更新量である。この場合、上記した組み合わせは逆になる。つまり、Δx及びJの組み合わせが、第2ベクトルおよび第2行列の組み合わせであり、ΔxおよびJの組み合わせが、第1ベクトルおよび第1行列の組み合わせである。
例えば、第1偏差が6つの位置姿勢パラメータの目標値に対する偏差であり、第2偏差がm個の距離パラメータの偏差であれば、式(8)~式(10)に適用される第1行列(JまたはJの一方)は、式(6)のJ1sと一致し、式(8)~式(10)に適用される第2行列(JまたはJの他方)は、式(7)のJ2sと一致する。
式(8)~式(10)では、Δxを小さくすることが、Δxを小さくなることよりも優先されるΔqが求まることを意味する。このようなΔqを求めることができる原理を詳説することに先立ち、式(8)~式(10)によって導出される式(1)を以下に示す。
Δq=JΔx+(J(I-JJ))(Δx-JΔx)・・・式(1)
【0032】
図5は、一実施形態に係る、式(1)に基づき各軸状態量の更新量Δqを求める原理を示す概念図である。図5は、ベクトルであるΔq、Δx、およびΔxを、2次元座標を用いて概念的に示す。
以下では、Δqが第1更新量であり、Δqが第2更新量であると仮定する。つまり、Δx及びJの組み合わせが、第1ベクトルおよび第1行列の組み合わせであり、ΔxおよびJの組み合わせが、第2ベクトルおよび第2行列の組み合わせであると仮定する。なお、組み合わせが逆になっても、更新量Δqを求める原理は変わらない。
さらに、式(11)、式(12)が成立すると仮定する。また、f(q)は上に凸であり、g(q)は下に凸であるとする。
x=f(q) ・・・式(11)
=g(q) ・・・式(12)
また、ベクトルxの目標値と許容範囲を各々、xtgt、xtgt-τとし、ベクトルxの目標値と許容範囲を各々、xC_tgt、xC_tgt+τとする。さらに、現在の各軸状態量の候補値をqcurとする。
【0033】
ベクトルxを許容範囲に収めるための各軸状態量の更新量であるΔqが求まる原理は以下の通りである。
curに対応するベクトルxであるxcurは、点P1の高さ位置に相当する。既述の通り、第1行列(J)は各軸状態量に対する位置姿勢パラメータの感度を示す。つまり、点P1におけるグラフの接線の傾きが第1行列に相当する。従って、第1偏差であるΔx(=xcur-xtgt)は、以下の式(13)で規定される。
Δx=JΔq ・・・式(13)
式(13)を変形することで、上述の式(9)が導かれる。これにより、Δqは、ベクトルxで扱われる位置姿勢パラメータを目標値に近づけるための更新量であり、第1偏差が反映された更新量であることが理解される。
【0034】
ベクトルxを許容範囲に収めるための各軸状態量の更新量であるΔqが求まる原理は以下の通りである。
curにおけるベクトルxであるxC_curは、点Q1の高さ位置に相当する。点Q1におけるグラフの接線が第2行列(J)を示し、xC_cur-xC_tgtが第2偏差であるΔxを示す。
Δqを特定する際には、第2偏差であるΔxではなく、Δx-JΔxで規定される偏差(第2偏差を利用した偏差)が用いられる。また、点Q1におけるグラフの接線(接線の傾きが第2行列に相当する)ではなく、J(I-JJ)で規定される傾きを有する直線が扱われる。
すなわち、ベクトルxを目標値xC_tgtに近づけるためのΔqは、式(14)によって規定される。式(14)を変形することで、上述の式(10)は求まる。
Δx-JΔx=J(I-JJ)Δq ・・・式(14)
仮に、第2偏差であるΔxと、且つ点Q1の接線とを用いた場合、式(13)と同様の式(15)によって、Δq2dが求まる。
Δx=JΔq2d ・・・式(15)
式(10)に基づき求まるΔqと、式(15)に基づき求まるΔq2dは、いずれも、ベクトルxで扱われるパラメータ(距離パラメータが含まれる)を目標値に近づけるための更新量であり、第2偏差が反映された更新量である。
【0035】
各軸状態量の更新には以上より求めたΔqとΔqが用いられ、qcur+Δq+Δqが新たなqcurとして設定される。概念的に例示する図5では、ΔqがΔq2dよりも小さく、1回目の更新結果として得られるqcur+Δq+Δqは、第2偏差よりも第1偏差を優先して小さくするための各軸状態量として理解できる。つまり、式(1)が利用されることによって、ベクトルxがベクトルxよりも優先して許容範囲に収まるようなΔq(=Δq+Δq)が求まる。
図5の例では、更新後のベクトルxを示す点P2と、更新後のベクトルxを示す点Q2がいずれも許容範囲に収まるので、各軸状態量ベクトルqの更新は終了する。
仮に、ベクトルxとベクトルxの少なくとも一方が許容範囲から逸脱すれば、各軸状態量ベクトルqの更新がさらに実行される。例えば、各軸状態量の更新によって第1偏差が0になった場合であっても、ベクトルxが許容範囲から逸脱すれば、Δqはさらに更新される。
【0036】
なお、他の実施形態では、第1行列は、6つの位置姿勢パラメータの一部の各軸状態量に対する感度を示してもよい。この場合、第1ベクトルは、6つの位置姿勢パラメータのうちの一部の位置姿勢パラメータの目標値に対する差異を扱う。
例えば第1行列で扱われる位置姿勢パラメータがX、Y、Z、Rである場合、第1行列(J1v)は式(16)によって表される。この場合、第1偏差を要素として含む第1ベクトルは、位置姿勢パラメータX、Y、Z、Rの目標値に対する偏差を示す。
【数4】
この場合、第1偏差を要素として含む第1ベクトルは、位置姿勢パラメータX、Y、Z、Rの目標値に対する偏差を示す。仮に、第1ベクトルがΔxに割り当てられれば、式(1)におけるJは、式(16)のJ1vと一致する。このような実施形態では、位置姿勢パラメータX、Y、Z、Rが許容範囲に収まることが、他のパラメータ(距離パラメータ、R、およびR)が許容範囲に収まることよりも優先されるようなΔqが求められる。
なお、上記実施形態において、Δxに第2ベクトルが割り当てられ、Δxに第1ベクトルが割り当てられてもよい。また、第1ベクトルまたは第2ベクトルが示す位置姿勢パラメータは繰り返し計算中に動的に切り替えることも出来る。例えば、位置姿勢パラメータの種類が、繰り返し計算に伴い変更(あるいは増加)してもよい。この場合、第1行列または第2行列の少なくも一方は、位置姿勢パラメータの種類の変更(あるいは増加)に応じて変更されてもよい。
第1ベクトルで扱われる位置姿勢パラメータは、X、Y、Z、およびRに限定されない。別の実施形態では、第1ベクトルは、6つの位置姿勢パラメータのいずれか2つの目標値に対する偏差のみを要素として含んでもよいし、いずれか4つの目標値に対する偏差を含んでもよい。
【0037】
図6は、一実施形態に係る多軸ロボット30A、30Bに設定されるモデル50を説明する図である。図7は、一実施形態に係る距離パラメータの算出方法を示す図である。図6図7では、6つの回転関節を含む多軸ロボット30A、30Bを例示する。また、図6ではモデル50を二点鎖線で示す一方、図7ではモデル50を実線で示す。
【0038】
一実施形態では、多軸ロボット30の少なくとも一部を包含するモデル50が仮想的に設定され、モデル50と障害物との距離が、多軸ロボット30と障害物との距離を示す距離パラメータとして扱われる。
モデル50は、多軸ロボット30の全ての部位を包含してもよいし、多軸ロボット30の一部のみを包含してもよい。例えば、多軸ロボット30のうちで障害物と衝突し得る部位が予め特定されていれば、該部位だけを包含するモデル50が設定されてもよい。これにより、距離パラメータの個数が低減し、距離を算出するための演算の効率が向上する。
【0039】
一実施形態のモデル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により形成される。
【0040】
一実施形態では、多軸ロボット30A、30Bの距離ベクトルには、モデル50Aとモデル50Cの距離を示す距離パラメータdと、モデル50Bとモデル50Cの距離を示す距離パラメータdとが含まれる。
一実施形態の距離パラメータdの求め方は、以下の通りである。多軸ロボット30Aの各軸状態量の候補値に基づきモデル50Aの基準点(図7の例なら、円筒部55の中心線57Aの両端に位置する点A1と点A2)の座標が求められる。また、多軸ロボット30Bが停止中であると仮定してモデル50Bの基準点(図7の例なら、円筒部55の中心線57Cの両端に位置する点B1と点B2)の座標が求められる。モデル50Aの基準点(2点)と、モデル50Bの基準点(2点)との間の4つの距離のうちで最短の距離が、距離パラメータdとして扱われる。
特定された距離パラメータdの値が半球部56の直径以下であれば、更新された各軸状態量の候補値ではモデル50A、50Cが互いに干渉する。つまり、多軸ロボット30Aの実際の各軸状態量が該候補値に変化すると、多軸ロボット30Aと多軸ロボット30Bとの衝突が発生し得る。従って、各軸状態量の候補値はさらに更新される。
距離パラメータdの値の求め方も上記と同様である。特定された距離パラメータdが半球部56の直径以下である場合には、各軸状態量の候補値は更新される。
なお、モデル50A~50Cの形状は図6図7で示される形状に限定されない。モデル50A~50Cは、例えば、多軸ロボット30A、30Bの少なくとも一部を包含する球状であってもよい。この場合、球状に形成されたモデルの中心位置が該モデルの基準点に該当する。さらに、モデル50A~50Cの形状は、多軸ロボット30A、30Bが実行する作業に応じて適宜変更されてもよい。
【0041】
図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によって生成された撮影画像を取得するように構成される。
【0042】
図9は、一実施形態に係るロボット制御処理を示すフローチャートである。図10は、一実施形態に係る位置姿勢補正処理を示すフローチャートである。以下、プロセッサ91によって実行される処理と、制御装置20の既述の構成要素との対応関係に言及しつつ、ロボット制御処理を説明する。
なお、以下の説明では、Δqが第1更新量であり、Δqが第2更新量である実施形態を説明する。つまり、Δx及びJの組み合わせが、第1ベクトルおよび第1行列の組み合わせであり、ΔxおよびJの組み合わせが、第2ベクトルおよび第2行列の組み合わせである実施形態を説明する。
さらに以下の説明では、ステップを「S」と略記する場合がある。
【0043】
図9に示すように、プロセッサ91は、移動経路33を設定する(S11)。S11を実行するプロセッサ91が経路設定部21として機能する。
例えば、運搬装置7によって運搬されたワーク5が撮影装置8によって撮影される。プロセッサ91は、撮影装置8によって生成された撮影画像を取得し、撮影画像に写るワーク5の形状または位置に応じて移動経路33を設定する。
一実施形態では、移動経路33に含まれる始点D、複数の中間点C、終点Gの各々における先端38の位置姿勢は、移動経路33の設定に伴い定まる。従って、複数の中間点Cのいずれにおいて距離パラメータが閾値以下になるかが、この時点で確定する。
【0044】
プロセッサ91は、複数の中間点Cのうちで、i番目の中間点Cを、許容条件(後述)を満たすかの判定対象に設定する(S13)。なお、番号iは、例えばRAM93に記憶されており、ロボット制御処理の開始時には1に設定されている。
プロセッサ91は、i番目の中間点Cの位置姿勢パラメータに基づき、中間点Cにおける各軸状態量を取得する(S15)。一例として、各軸状態量は、式(5)によって求まる。
【0045】
プロセッサ91は、中間点Cが許容条件を満たすかを判定する(S17)。許容条件は、位置姿勢パラメータと距離パラメータのいずれの値も許容範囲に収まる条件である。
一例として、位置姿勢パラメータの許容範囲は、i番目の中間点Cの初期の中間位置姿勢を基準にして設定された範囲である。また、距離パラメータの許容範囲は一例として、閾値を基準に設定される。
例えば、ロボット制御処理が開始されて1回目のS17では、中間点Cが許容条件を満たすか判定される。この場合、判定対象になっている位置姿勢パラメータと、判定基準の位置姿勢パラメータが同じであるので、中間点Cの位置姿勢パラメータの値は許容範囲に含まれる。仮に、中間点Cの距離パラメータの値が許容範囲から逸脱する場合、中間点Cは許容条件を満たさないと判定され、プロセッサ91は中間点Cを補正対象に設定する。
【0046】
中間点Cが許容条件を満たさないと設定された場合(S17:NO)、プロセッサ91は、中間点Cの更新回数kが上限値に達しているかを判定する(S19)。更新回数kは、例えばRAM93に記憶されており、ロボット制御処理の開始時には1に設定されている。
更新回数kが上限値に達していれば(S19:YES)、プロセッサ91は本制御処理を終了する。
【0047】
一方、更新回数kが上限値未満であれば(S19:NO)、プロセッサ91は、中間点Cの補正中間位置姿勢を求めるための位置姿勢補正処理を実行する(S21)。S21を実行するプロセッサ91は位置姿勢補正部22として機能する。
一実施形態の位置姿勢補正処理では、中間点Cの各軸状態量に代わる各軸状態量の候補値が探索される。例えば、中間点Cに対応する距離パラメータが閾値以下となり補正対象に設定された場合(S17:NO)、中間点Cの元々の各軸状態量に代わる各軸状態量の候補値が位置補正処理では探索される。
なお、詳細は後述するが位置姿勢補正処理が実行されるたびに、更新回数kはインクリメントされる。
【0048】
プロセッサ91は位置姿勢補正処理(S21)を実行した後、S17に戻る。この場合、位置姿勢補正処理において更新された各軸状態量に基づき、位置姿勢パラメータと距離パラメータが求められ、許容条件が充足されるか判定される(S17)。許容条件が充足されなければ(S17:NO)、プロセッサ91は、S17~S21を繰り返す。
【0049】
各軸状態量の候補値に対応する位置姿勢が許容条件を充足すると判定されると(S17:YES)、プロセッサ91は該位置姿勢をCの補正中間位置姿勢に決定する(S23)。
次いで、プロセッサ91は、中間点Cが移動経路33において最も下流側の中間点Cかを判定する(S25)。中間点Cよりも下流側に他の中間点Cがある場合(S25:NO)、プロセッサ91は、番号iをインクリメントし且つ更新回数kを1に初期化する(S27)。その後、プロセッサ91は処理をS13に戻す。
プロセッサ91がS11~S27を繰り返すと、中間点Cが最も下流側の中間点Cと一致する(S25:YES)。その後、プロセッサ91は、移動経路33に沿って先端38が移動するよう多軸ロボット30を制御する(S29)。この場合、プロセッサ91は、先端38の位置姿勢が補正中間位置姿勢を経て最終位置姿勢まで変化するよう、多軸ロボット30を制御する。S29を実行するプロセッサ91は位置姿勢制御部23として機能する。
【0050】
なお、他の実施形態に係る中間点Cを判定対象に設定する処理(S13)では、移動経路33の下流側から順に中間点Cが判定対象に設定されてもよいし、あるいはランダムに中間点Cが判定対象に設定されてもよい。
【0051】
図10を参照し、位置姿勢補正処理を説明する。本処理の開始時、中間点Cが許容条件を満たしていないとする。
【0052】
プロセッサ91は、各軸状態量の候補値であるqi、kを設定する(S51)。
例えば、中間点Cが許容条件を満たさず(S17:NO)、更新回数kが1の場合には、プロセッサ91は、各軸状態量の候補値としてq1、1を設定する(S51)。一例として、q1、1は、中間点Cの初期の中間位置姿勢における各軸状態量である。
別の実施形態では、q1、1は、中間点Cからずれた位置姿勢の各軸操作量であってもよい。例えば、q1、1は、中間点Cの近傍点における位置姿勢であってもよいし、始点Dの位置姿勢であってもよい。始点Dの位置姿勢は、中間点Cよりも1つ上流側の中間点Cとみなすことが演算処理において可能である。
【0053】
プロセッサ91は、第1偏差Δx_i、kと、第2偏差ΔxC_i、kを求める(S53)。
例えば、各軸状態量の候補値であるqi、kに対応する位置姿勢パラメータは、式(1)に基づき求まり、位置姿勢パラメータに基づき距離パラメータも求まる。プロセッサ91は、位置姿勢パラメータ、位置姿勢パラメータの目標値、距離パラメータ、および距離パラメータの目標値に基づき、第1偏差Δx_i、kと、第2偏差ΔxC_i、kを求める。
【0054】
プロセッサ91は、各軸状態量の最新の候補値であるqi、kにおける第1行列(J_i、k)を取得し(S55)、qi、kにおける第2行列(JC_i、k)を取得する(S57)。S55を実行するプロセッサ91は第1行列取得部11として機能し、S57を実行するプロセッサ91は第2行列取得部12として機能する。
【0055】
プロセッサ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)、位置姿勢補正処理を終了し、ロボット制御処理に戻る。
【0056】
なお、他の実施形態に係る位置姿勢補正処理では、Δqが第2更新量であり、Δqが第1更新量であってもよい。つまり、Δx及びJの組み合わせが、第2ベクトルおよび第2行列の組み合わせであり、ΔxおよびJの組み合わせが、第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行列であってもよい。
【0057】
以下、幾つかの実施形態に係る多軸ロボット用の制御装置20、多軸ロボット用のロボットシステム1、多軸ロボット用の制御プログラム95を説明する。
【0058】
(1)本発明の少なくとも一実施形態に係る多軸ロボット用の制御装置20は、
多軸ロボット30の先端38の位置姿勢が最終位置姿勢に変化するまでに経る複数の中間位置姿勢のうち、前記多軸ロボット30と障害物との距離が閾値以下となる前記位置姿勢について、前記距離が前記閾値を超える前記多軸ロボット30の前記先端38の補正中間位置姿勢を求めるための位置姿勢補正部22と、
前記多軸ロボット30の前記先端38の前記位置姿勢が、前記位置姿勢補正部22によって求められた前記補正中間位置姿勢を経て前記最終位置姿勢まで変化するよう、前記多軸ロボット30を制御するための位置姿勢制御部23と
を備える。
【0059】
上記(1)の構成によれば、多軸ロボット30の先端38の位置姿勢が変化する過程において多軸ロボット30と障害物との衝突が生じ得る場合には、多軸ロボット30と障害物との距離が閾値以下となる中間位置姿勢が存在する。この場合、位置姿勢補正部22が補正中間位置姿勢を求めた後、位置姿勢補正部22によって多軸ロボット30の先端38の位置姿勢は、補正中間位置姿勢を経て目標位置姿勢まで変化する。よって、多軸ロボット30と障害物との衝突を回避しながら多軸ロボット30の位置姿勢を変えることができる多軸ロボット用の制御装置20が実現する。
【0060】
(2)幾つかの実施形態では、上記(1)の構成において、
前記位置姿勢補正部22は、前記多軸ロボット30の前記先端38の前記位置姿勢を示す位置姿勢パラメータおよび前記距離を示す距離パラメータの値が許容範囲内に収まるような前記多軸ロボット30の各軸状態量を探索するように構成される。
【0061】
上記(2)の構成によれば、位置姿勢補正部22によって探索された各軸状態量に対応する位置姿勢が補正中間位置姿勢として扱われる。従って、補正中間位置姿勢の位置姿勢パラメータの値と距離パラメータの値が理想的な値から乖離し過ぎるのを抑制できる。
例えば、位置姿勢パラメータが理想的な値から乖離するほど、位置姿勢制御部23の制御に伴い移動する先端38の経路は、経路設定部21によって設定された移動経路33から外れ、ワーク5に対する作業が不適正になるおそれがある。この点、位置姿勢パラメータの値が理想的な値から乖離し過ぎることが抑制されるので、ロボットシステム1はワーク5に適正な作業を実行できる。
また、障害物との距離が大きくなる程、障害物との衝突を回避するための多軸ロボット30の動作に無駄が生じる。この点、距離が理想的な値から乖離し過ぎるのを抑制することで、多軸ロボット30の先端38の位置姿勢は無駄を少なくして変化することができる。
【0062】
(3)幾つかの実施形態では、上記(2)の構成において、
前記位置姿勢補正部22は、
前記各軸状態量に対する1以上の前記位置姿勢パラメータの感度を少なくとも示す第1行列を取得するための第1行列取得部11と、
前記各軸状態量に対する前記距離パラメータの感度を少なくとも示す第2行列を取得するための第2行列取得部12と、
前記各軸状態量の候補値に対応する前記1以上の前記位置姿勢パラメータの目標値に対する第1偏差と、前記各軸状態量の前記候補値に対応する前記距離パラメータの目標値に対する第2偏差と、前記第1行列および前記第2行列とを用いて、前記各軸状態量の前記候補値を更新するための更新部13と
を含む。
【0063】
上記(3)の構成によれば、第1偏差、第1行列、第2偏差、及び第2行列に基づき各軸状態量が更新されるので、更新される各軸状態量には、第1偏差と第2偏差がそれぞれ反映される。これにより、位置姿勢パラメータと距離パラメータの値がそれぞれ許容範囲内となる補正中間位置姿勢が求まり易い。
【0064】
(4)幾つかの実施形態では、上記(3)の構成において、
前記更新部13は、前記各軸状態量の最新の前記候補値に、式(1)によって示されるΔqを加えることによって前記候補値を更新し、
前記式(1)において、
Δx及びJの組み合わせが、前記第1偏差を要素として含む第1ベクトルおよび前記第1行列の組み合わせ、または、前記第2偏差を要素として含む第2ベクトルおよび前記第2行列の組み合わせの一方であり、
ΔxおよびJの組み合わせが、前記第1ベクトルおよび前記第1行列の組み合わせ、または、前記第2ベクトルおよび前記第2行列の組み合わせの他方である。
Δq=JΔx+(J(I-JJ))(Δx-JΔx)・・・式(1)
【0065】
上記(4)の構成によれば、第1ベクトルに含まれる位置姿勢パラメータの値または第2ベクトルに含まれる距離パラメータの値のいずれか一方が、他方よりも許容範囲に入ることが優先される。これにより、一方のパラメータと他方のパラメータの優劣をつけながら補正中間位置姿勢が求められる。従って、補正中間位置姿勢において、優先度の高い位置姿勢パラメータの値を理想的な値の近くに設定できる。
【0066】
(5)幾つかの実施形態では、上記(4)の構成において、
ΔxおよびJの組み合わせが、前記第1偏差を要素として含む前記第1ベクトルおよび前記第1行列の組み合わせであり、
ΔxおよびJの組み合わせが、複数の前記位置姿勢パラメータのうち前記1以上の前記位置姿勢パラメータを除く他の前記位置姿勢パラメータと目標値との偏差と前記第2偏差とを要素として含む前記第2ベクトルおよび前記第2行列の組み合わせである。
【0067】
上記(5)の構成によれば、第1ベクトルに含まれる位置姿勢パラメータの値が許容範囲に入ることが優先されつつ、補正中間位置姿勢が求められる。これにより、補正中間位置姿勢において、位置姿勢パラメータの値の少なくとも1つを理想的な値の近くに設定できる。
【0068】
(6)幾つかの実施形態では、上記(1)から(5)のいずれかの構成において、
前記位置姿勢補正部22は、前記多軸ロボット30の少なくとも一部を包含するモデル50を仮想的に設定し、前記モデルと前記障害物との距離を前記多軸ロボット30と前記障害物との前記距離として扱い、前記各軸操作量を求める。
【0069】
上記(6)の構成によれば、位置姿勢補正部22は、仮想的に設定されたモデル50と障害物との距離を多軸ロボット30と障害物との距離とみなすことで、多軸ロボット30と障害物との距離を計算する負荷を低減できる。
【0070】
(7)幾つかの実施形態では、上記(6)の構成において、
前記モデル50(50A~50C)は、
前記多軸ロボット30のリンク35の軸方向に沿った円筒部55と、
前記円筒部55の両端に接続される2つの半球部56と
を含む。
【0071】
上記(7)の構成によれば、多軸ロボット30のリンク35に近い範囲にモデル50が設定される。これにより、障害物との衝突を回避するための距離が過剰に大きくなることが抑制される。
【0072】
(8)本発明の少なくとも一実施形態に係る多軸ロボット用のロボットシステム1は、
上記(1)から(7)のいずれかに記載の多軸ロボット用の制御装置20と、
前記多軸ロボット30と
を備える。
【0073】
上記(8)の構成によれば、上記(1)と同様の理由によって、多軸ロボット30と障害物との衝突を回避しながら多軸ロボット30の位置姿勢を変えることができる多軸ロボット用のロボットシステム1が実現する。
【0074】
(9)本発明の少なくとも一実施形態に係る多軸ロボット用の制御プログラム95は、
コンピュータに、
多軸ロボット30の先端38の位置姿勢が最終位置姿勢に変化するまでに経る複数の中間位置姿勢のうち、前記多軸ロボット30と障害物との距離が閾値以下となる前記位置姿勢について、前記距離が前記閾値を超える前記多軸ロボット30の前記先端38の補正中間位置姿勢を求めるための位置姿勢補正ステップ(S21)と、
前記多軸ロボット30の前記先端38の前記位置姿勢が、前記位置姿勢補正ステップによって求められた前記補正中間位置姿勢を経て前記最終位置姿勢まで変化するよう、前記多軸ロボット30を制御するための位置姿勢制御ステップ(S29)と
を実行させる。
【0075】
上記(9)の構成によれば、上記(1)と同様の理由によって、多軸ロボット30と障害物との衝突を回避しながら多軸ロボット30の位置姿勢を変えることができる多軸ロボット用の制御プログラム95が実現する。
【0076】
上記説明では、図9において、S17で許容条件を満たした位置姿勢を示す点と、S23において決定される中間点Cが一致する実施形態を説明した。別の実施形態では、S17で許容条件を満たすと判定され、かつ、多軸ロボット30の修正軌道に含まれる複数の任意の中間点C(例えば5個の中間点)について、重み係数を付与し、その任意の数の中間点Cにおける位置姿勢を微調整することもできる(つまり、修正軌道を微調整することもできる)。微調整後の中間点はいずれも許容条件を満たすことが好ましい。ただし、S17で設定される許容条件を満たさないものの、当該許容条件より緩い衝突回避条件を満たす微調整後の中間点が採用されることがあってもよい。
これにより、ある中間点Cは、その中間点よりも下流側にある任意の複数の中間点Cの位置を考慮に入れた位置となり、多軸ロボット30の軌道を滑らかにできる。従って、多軸ロボット30の動作がスムーズになる。
【符号の説明】
【0077】
1 :ロボットシステム
11 :第1行列取得部
12 :第2行列取得部
13 :更新部
20 :制御装置
22 :位置姿勢補正部
23 :位置姿勢制御部
30 :多軸ロボット
35 :リンク
38 :先端
50 :モデル
55 :円筒部
56 :半球部
~d :距離パラメータ
~q :軸状態量
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10