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

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

▶ オムロン株式会社の特許一覧

特許7552442ロボット姿勢決定装置、方法、及びプログラム
<>
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図1
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図2
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図3
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図4
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図5
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図6
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図7
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図8
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図9
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図10
  • 特許-ロボット姿勢決定装置、方法、及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】ロボット姿勢決定装置、方法、及びプログラム
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240910BHJP
   B25J 13/00 20060101ALI20240910BHJP
【FI】
B25J9/22 A
B25J13/00 Z
【請求項の数】 13
(21)【出願番号】P 2021033845
(22)【出願日】2021-03-03
(65)【公開番号】P2022134605
(43)【公開日】2022-09-15
【審査請求日】2024-01-16
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】藤井 春香
(72)【発明者】
【氏名】小島 岳史
(72)【発明者】
【氏名】倉谷 僚一
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2003-94363(JP,A)
【文献】特開2004-358593(JP,A)
【文献】国際公開第2017/183414(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ハンド部を有するロボットに行わせる作業に関する作業情報と、前記ハンド部と前記ハンド部により把持されるワークとの相対位置関係の複数の候補を示す把持情報と、前記ワークが取り得る姿勢の複数の候補を示すワーク姿勢情報と、前記ロボットのキネマティクス情報を含む仕様情報とを取得する取得部と、
前記作業を行うための前記ロボットの経路上の複数の対象点毎に、前記ワーク姿勢情報と、前記作業情報、前記把持情報、及び前記ワーク姿勢情報に基づいて得られる前記ワークを把持する前記ハンド部の姿勢と、前記ハンド部の姿勢及び前記キネマティクス情報に基づいて得られる、前記ハンド部の姿勢に応じた前記ロボットの姿勢との組み合わせの各々を対応させ、前記対象点間で遷移可能な前記組み合わせの系列から、前記ロボットの姿勢間における前記ロボットの動作時間に関連する指標に基づいて、前記ロボットの動作時間が最短となる前記組み合わせの系列を探索する探索部と、
を含むロボット姿勢決定装置。
【請求項2】
前記探索部は、前記組み合わせの前記ワーク姿勢情報及び前記ハンド部の姿勢に基づいて特定される把持姿勢が異なる場合、前記対象点間で遷移不可能な前記組み合わせであると判定する請求項1に記載のロボット姿勢決定装置。
【請求項3】
前記探索部は、前記組み合わせの前記ロボットの姿勢間でのロボットの動作が直線移動の場合であって、前記組み合わせの前記ロボットの姿勢の形態が異なる場合、前記対象点間で遷移不可能な前記組み合わせであると判定する請求項1又は請求項2に記載のロボット姿勢決定装置。
【請求項4】
前記探索部は、前記動作時間に関連する指標として、前記組み合わせの前記ロボットの姿勢間の差分に基づく指標を算出する請求項1~請求項3のいずれか1項に記載のロボット姿勢決定装置。
【請求項5】
前記探索部は、前記ロボットの姿勢の差分に基づく指標として、前記ロボットの各関節の回転角度の差分を、各関節の回転速度の最大値で割った値の最大値を算出する請求項4に記載のロボット姿勢決定装置。
【請求項6】
前記探索部は、前記組み合わせの各々に対応するノードと、前記対象点間で遷移可能な前記組み合わせに対応するノード間を接続するエッジとを含み、前記動作時間に関連する指標を前記エッジに付与したグラフを生成し、前記グラフを用いて、前記ロボットの動作時間が最短となる前記組み合わせの系列を探索する請求項1~請求項5のいずれか1項に記載のロボット姿勢決定装置。
【請求項7】
前記取得部は、前記ロボットが作業を行う周辺の環境を示す周辺情報と、前記ロボットのダイナミクス情報及び形状情報をさらに含む仕様情報とを取得し、
前記探索部は、前記周辺情報、前記仕様情報、及び前記ロボットの姿勢に基づいて、前記ノード間に対応する前記ロボットの姿勢間の経路で、前記周辺の環境と回避不可能な干渉が発生すると推定されるノード間を、前記対象点間で遷移不可能な前記組み合わせに対応するノード間であると判定する
請求項6に記載のロボット姿勢決定装置。
【請求項8】
前記探索部は、前記対象点において、前記周辺の環境と干渉する前記ロボットの姿勢を含む前記組み合わせに対応するノードを生成しない請求項7に記載のロボット姿勢決定装置。
【請求項9】
前記探索部は、探索した前記系列に対応する前記グラフのパスに含まれるエッジで接続されたノード間に対応する前記ロボットの姿勢間における前記ロボットの実際の動作時間を算出し、前記ノード間のエッジの重みを、算出した前記実際の動作時間で更新し、前記動作時間が最短となる前記系列の探索を、前回探索された前記系列と同一の系列が探索されるまで繰り返す請求項7又は請求項8に記載のロボット姿勢決定装置。
【請求項10】
前記探索部は、前記実際の動作時間として、前記ノード間に対応する前記ロボットの姿勢間において前記ロボットが前記周辺の環境との干渉を回避する動作であって、設定された速度又は加減速度で前記ロボットが動作する場合の動作時間を算出する請求項9に記載のロボット姿勢決定装置。
【請求項11】
前記対象点は、前記ハンド部が前記ワークを把持又は解放する作業点、及び前記ロボットの動作方向が変更される動作変更点を含む請求項1~請求項10のいずれか1項に記載のロボット姿勢決定装置。
【請求項12】
取得部が、ハンド部を有するロボットに行わせる作業に関する作業情報と、前記ハンド部と前記ハンド部により把持されるワークとの相対位置関係の複数の候補を示す把持情報と、前記ワークが取り得る姿勢の複数の候補を示すワーク姿勢情報と、前記ロボットのキネマティクス情報を含む仕様情報とを取得し、
探索部が、前記作業を行うための前記ロボットの経路上の複数の対象点毎に、前記ワーク姿勢情報と、前記作業情報、前記把持情報、及び前記ワーク姿勢情報に基づいて得られる前記ワークを把持する前記ハンド部の姿勢と、前記ハンド部の姿勢及び前記キネマティクス情報に基づいて得られる、前記ハンド部の姿勢に応じた前記ロボットの姿勢との組み合わせの各々を対応させ、前記対象点間で遷移可能な前記組み合わせの系列から、前記ロボットの姿勢間における前記ロボットの動作時間に関連する指標に基づいて、前記ロボットの動作時間が最短となる前記組み合わせの系列を探索する
ロボット姿勢決定方法。
【請求項13】
コンピュータを、
ハンド部を有するロボットに行わせる作業に関する作業情報と、前記ハンド部と前記ハンド部により把持されるワークとの相対位置関係の複数の候補を示す把持情報と、前記ワークが取り得る姿勢の複数の候補を示すワーク姿勢情報と、前記ロボットのキネマティクス情報を含む仕様情報とを取得する取得部、及び、
前記作業を行うための前記ロボットの経路上の複数の対象点毎に、前記ワーク姿勢情報と、前記作業情報、前記把持情報、及び前記ワーク姿勢情報に基づいて得られる前記ワークを把持する前記ハンド部の姿勢と、前記ハンド部の姿勢及び前記キネマティクス情報に基づいて得られる、前記ハンド部の姿勢に応じた前記ロボットの姿勢との組み合わせの各々を対応させ、前記対象点間で遷移可能な前記組み合わせの系列から、前記ロボットの姿勢間における前記ロボットの動作時間に関連する指標に基づいて、前記ロボットの動作時間が最短となる前記組み合わせの系列を探索する探索部
として機能させるためのロボット姿勢決定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット姿勢決定装置、ロボット姿勢決定方法、及びロボット姿勢決定プログラムに関する。
【背景技術】
【0002】
従来、ロボットに所定の作業を行わせるためのロボットの作業姿勢のティーチングは、ロボットの動作時間が最短となるように、熟練の作業員がカン、コツ、経験等を頼りに行っていた。しかし、ロボットで行う作業の増加や複雑化により、ロボットの動作時間が最短となるロボットの姿勢を決定することが困難化し、ロボットの姿勢の試行錯誤にかかる時間が長くなるという課題があった。そこで、ロボットの姿勢の決定を支援する技術が提案されている。
【0003】
例えば、最適な移動点毎の各関節の角度位置の組合せを短時間で演算可能な教示支援装置が提案されている(特許文献1)。特許文献1に記載の装置は、解候補の組み合わせ毎に移動点間の移動時間を全て求め、下流側の解候補に対して、移動時間が最も短い上流側の解候補の組み合わせを抽出する。また、この装置は、抽出結果に基づいて、始点から終点まで手先を移動させる全体的な移動時間が最も短くなる解候補の組み合わせを探索する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2007-203380号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、ロボットハンドでワークを把持して移動させる作業をロボットに実行させる場合を想定する。この場合、ロボットハンドによるワークの把持状態には多くのバリエーションが存在する。
【0006】
しかしながら、特許文献1に記載の技術では、ロボットの移動対象部位(手先)の移動点毎の位置及び姿勢の初期解が入力されることを前提としている。すなわち、特許文献1に記載の技術では、上記のような把持状態が予め特定されている必要があり、この把持状態に多くのバリエーションが存在することが考慮されていない。
【0007】
本発明は、上記の点に鑑みてなされたものであり、ワークに対する把持状態も含め、最適なロボットの姿勢を効率良く決定することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明に係るロボット姿勢決定装置は、ハンド部を有するロボットに行わせる作業に関する作業情報と、前記ハンド部と前記ハンド部により把持されるワークとの相対位置関係の複数の候補を示す把持情報と、前記ワークが取り得る姿勢の複数の候補を示すワーク姿勢情報と、前記ロボットのキネマティクス情報を含む仕様情報とを取得する取得部と、前記作業を行うための前記ロボットの経路上の複数の対象点毎に、前記ワーク姿勢情報と、前記作業情報、前記把持情報、及び前記ワーク姿勢情報に基づいて得られる前記ワークを把持する前記ハンド部の姿勢と、前記ハンド部の姿勢及び前記キネマティクス情報に基づいて得られる、前記ハンド部の姿勢に応じた前記ロボットの姿勢との組み合わせの各々を対応させ、前記対象点間で遷移可能な前記組み合わせの系列から、前記ロボットの姿勢間における前記ロボットの動作時間に関連する指標に基づいて、前記ロボットの動作時間が最短となる前記組み合わせの系列を探索する探索部と、を含んで構成される。
【0009】
また、前記探索部は、前記組み合わせの前記ワーク姿勢情報及び前記ハンド部の姿勢に基づいて特定される把持姿勢が異なる場合、前記対象点間で遷移不可能な前記組み合わせであると判定してよい。
【0010】
また、前記探索部は、前記組み合わせの前記ロボットの姿勢間でのロボットの動作が直線移動の場合であって、前記組み合わせの前記ロボットの姿勢の形態が異なる場合、前記対象点間で遷移不可能な前記組み合わせであると判定してよい。
【0011】
また、前記探索部は、前記動作時間に関連する指標として、前記組み合わせの前記ロボットの姿勢間の差分に基づく指標を算出してよい。
【0012】
また、前記探索部は、前記ロボットの姿勢の差分に基づく指標として、前記ロボットの各関節の回転角度の差分を、各関節の回転速度の最大値で割った値の最大値を算出してよい。
【0013】
また、前記探索部は、前記組み合わせの各々に対応するノードと、前記対象点間で遷移可能な前記組み合わせに対応するノード間を接続するエッジとを含み、前記動作時間に関連する指標を前記エッジに付与したグラフを生成し、前記グラフを用いて、前記ロボットの動作時間が最短となる前記組み合わせの系列を探索してよい。
【0014】
また、前記取得部は、前記ロボットが作業を行う周辺の環境を示す周辺情報と、前記ロボットのダイナミクス情報及び形状情報をさらに含む仕様情報とを取得し、前記探索部は、前記周辺情報、前記仕様情報、及び前記ロボットの姿勢に基づいて、前記ノード間に対応する前記ロボットの姿勢間の経路で、前記周辺の環境と回避不可能な干渉が発生すると推定されるノード間を、前記対象点間で遷移不可能な前記組み合わせに対応するノード間であると判定してよい。
【0015】
また、前記探索部は、前記対象点において、前記周辺の環境と干渉する前記ロボットの姿勢を含む前記組み合わせに対応するノードを生成しないようにしてよい。
【0016】
また、前記探索部は、探索した前記系列に対応する前記グラフのパスに含まれるエッジで接続されたノード間に対応する前記ロボット姿勢間における前記ロボットの実際の動作時間を算出し、前記ノード間のエッジの重みを、算出した前記実際の動作時間で更新し、前記動作時間が最短となる前記系列の探索を、前回探索された前記系列と同一の系列が探索されるまで繰り返すようにしてよい。
【0017】
前記探索部は、前記実際の動作時間として、前記ノード間に対応する前記ロボットの姿勢間において前記ロボットが前記周辺の環境との干渉を回避する動作であって、設定された速度又は加減速度で前記ロボットが動作する場合の動作時間を算出してよい。
【0018】
また、前記対象点は、前記ハンド部が前記ワークを把持又は解放する作業点、及び前記ロボットの動作方向が変更される動作変更点を含んでよい。
【0019】
また、本発明に係るロボット姿勢決定方法は、取得部が、ハンド部を有するロボットに行わせる作業に関する作業情報と、前記ハンド部と前記ハンド部により把持されるワークとの相対位置関係の複数の候補を示す把持情報と、前記ワークが取り得る姿勢の複数の候補を示すワーク姿勢情報と、前記ロボットのキネマティクス情報を含む仕様情報とを取得し、探索部が、前記作業を行うための前記ロボットの経路上の複数の対象点毎に、前記ワーク姿勢情報と、前記作業情報、前記把持情報、及び前記ワーク姿勢情報に基づいて得られる前記ワークを把持する前記ハンド部の姿勢と、前記ハンド部の姿勢及び前記キネマティクス情報に基づいて得られる、前記ハンド部の姿勢に応じた前記ロボットの姿勢との組み合わせの各々を対応させ、前記対象点間で遷移可能な前記組み合わせの系列から、前記ロボットの姿勢間における前記ロボットの動作時間に関連する指標に基づいて、前記ロボットの動作時間が最短となる前記組み合わせの系列を探索する方法である。
【0020】
また、本発明に係るロボット姿勢決定プログラムは、コンピュータを、ハンド部を有するロボットに行わせる作業に関する作業情報と、前記ハンド部と前記ハンド部により把持されるワークとの相対位置関係の複数の候補を示す把持情報と、前記ワークが取り得る姿勢の複数の候補を示すワーク姿勢情報と、前記ロボットのキネマティクス情報を含む仕様情報とを取得する取得部、及び、前記作業を行うための前記ロボットの経路上の複数の対象点毎に、前記ワーク姿勢情報と、前記作業情報、前記把持情報、及び前記ワーク姿勢情報に基づいて得られる前記ワークを把持する前記ハンド部の姿勢と、前記ハンド部の姿勢及び前記キネマティクス情報に基づいて得られる、前記ハンド部の姿勢に応じた前記ロボットの姿勢との組み合わせの各々を対応させ、前記対象点間で遷移可能な前記組み合わせの系列から、前記ロボットの姿勢間における前記ロボットの動作時間に関連する指標に基づいて、前記ロボットの動作時間が最短となる前記組み合わせの系列を探索する探索部として機能させるためのプログラムである。
【発明の効果】
【0021】
本発明に係るロボット姿勢決定装置、方法、及びプログラムによれば、ワークに対する把持状態も含め、最適なロボットの姿勢を効率良く決定することができる。
【図面の簡単な説明】
【0022】
図1】各実施形態の概要を説明するための図である。
図2】ロボット姿勢決定装置のハードウェア構成を示すブロック図である。
図3】ロボット姿勢決定装置の機能構成の例を示すブロック図である。
図4】把持情報を説明するための図である。
図5】ワーク姿勢情報を説明するための図である。
図6】あるハンド姿勢に対して特定されるロボット姿勢の一覧の一例を示す図である。
図7】グラフの生成及び最短経路の探索を説明するための図である。
図8】1つのノードに対応する、ワーク姿勢の候補、ハンド姿勢の候補、及びロボット姿勢の候補の組み合わせを説明するための図である。
図9】第1実施形態におけるロボット姿勢決定処理の流れを示すフローチャートである。
図10】第2実施形態における最短経路の探索を説明するための図である。
図11】第2実施形態におけるロボット姿勢決定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0024】
<各実施形態の概要>
まず、以下で詳述する各実施形態の概要について説明する。
【0025】
各実施形態に係るロボット姿勢決定装置は、図1に示すように、ロボットハンドを有するロボットにワークを取り扱う作業を行わせる場合において、ロボットの動作の各対象点におけるロボットの姿勢を決定する。なお、ロボットハンドは、開示の技術のハンド部の一例である。図1の例では、作業台Aに置かれたワークをロボットハンドで把持(ピック)し、作業台Bに載置(プレース)するピックアンドプレースの作業の一例を示している。より具体的には、作業台Aでワークを把持し、ロボットハンドを直線移動で上昇させた後、作業台Bの方向へ移動させ、ロボットハンドを直線移動で下降させて、ワークを作業台Bに載置する作業である。
【0026】
対象点には、ロボットハンドがワークを把持又は解放する作業を行う作業点(図1中の白い菱形)、及びロボットの動作方向が変更される動作変更点(図1中の網掛の菱形)が含まれる。対象点は、世界座標系における座標(x,y,z)で特定される。なお、ロボットの動作を示す経路上には、障害物との干渉を回避するため干渉回避点(図1中の黒い菱形)も設定される。ただし、下記の各実施形態では、干渉回避点におけるロボットの姿勢は、対象点間の経路を自動で決定するパスプランニングにより決定されるものとし、干渉回避点は対象点には含まれないものとする。
【0027】
以下の各実施形態に係るロボット姿勢決定装置は、上記のような対象点を経由する経路にしたがってロボットを動作させた際に、動作時間が最短となるように、各対象点におけるロボットの姿勢を決定する。
【0028】
以下の各実施形態では、ロボットが、三次元空間における動作に必要な6自由度の構成を備えた垂直多関節型のロボットである場合について説明する。より具体的には、ロボットは、複数のリンクが接続されて構成されると共に、ロボットの手先には、ロボットハンドが取り付けられる。リンク間の接続を関節(ジョイント)という。また、ロボットの手先(ロボットハンドが取り付けられる側)の基準位置をTCP(Tool Center Point)という。
【0029】
また、ロボットの姿勢は、TCPが所定の位置(x,y,z)及び姿勢(roll,pitch,yaw)にあると想定した場合の、ロボットの第1関節(ジョイントJ1)から第N関節(ジョイントJN、Nはロボットの関節数)までの各関節の値(回転角度)の系列(θJ1,θJ2,・・・,θJN)で表される。なお、以下の各実施形態では、ロボットの土台側から手先に向かって順に、J1、J2、・・・であるとする。さらに、TCPを任意の始点から終点まで動作させるときのロボットの各時刻における姿勢を時系列に並べたものが経路であり、その経路に、姿勢を変化させる速度及び加減速度の情報を加えたものが動作情報である。以下、各実施形態について詳述する。
【0030】
<第1実施形態>
図2は、第1実施形態に係るロボット姿勢決定装置10のハードウェア構成を示すブロック図である。図2に示すように、ロボット姿勢決定装置10は、CPU(Central Processing Unit)12、メモリ14、記憶装置16、入力装置18、出力装置20、記憶媒体読取装置22、及び通信I/F(Interface)24を有する。各構成は、バス26を介して相互に通信可能に接続されている。
【0031】
記憶装置16には、後述するロボット姿勢決定処理を実行するためのロボット姿勢決定プログラムが格納されている。CPU12は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU12は、記憶装置16からプログラムを読み出し、メモリ14を作業領域としてプログラムを実行する。CPU12は、記憶装置16に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0032】
メモリ14は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置16は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0033】
入力装置18は、例えば、キーボードやマウス等の、各種の入力を行うための装置である。出力装置20は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。出力装置20として、タッチパネルディスプレイを採用することにより、入力装置18として機能させてもよい。
【0034】
記憶媒体読取装置22は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。通信I/F24は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0035】
次に、第1実施形態に係るロボット姿勢決定装置10の機能構成について説明する。図3は、ロボット姿勢決定装置10の機能構成の例を示すブロック図である。図3に示すように、ロボット姿勢決定装置10は、機能構成として、取得部32と、生成部34と、探索部36とを含む。生成部34及び探索部36は、本発明の「探索部」の一例である。各機能構成は、CPU12が記憶装置16に記憶されたロボット姿勢決定プログラムを読み出し、メモリ14に展開して実行することにより実現される。また、ロボット姿勢決定装置10の所定の記憶領域には、生成部34により生成されるグラフ38が記憶される。
【0036】
取得部32は、作業情報、把持情報、ワーク姿勢情報、ロボット仕様情報、及び周辺情報を取得する。
【0037】
作業情報には、作業の種類、作業の順番、作業で使用するワーク、ロボットハンドのどの部分でワークのどの部分を把持するかを示す把持の状態等の情報が含まれる。
【0038】
把持情報は、ロボットハンドと、ロボットハンドにより把持されるワークとの相対位置関係の複数の候補を示す情報である。具体的には、把持情報は、例えば図4に示すように、ロボットハンドでワークを把持した際のTCPのワークに対する相対座標(x,y,z)及び相対姿勢(roll,pitch,yaw)(以下、「把持姿勢」という)の情報である。取得部32が取得する把持情報は、複数の把持姿勢についての把持情報がリスト化されたものである。図4の例では、3つの把持姿勢(把持姿勢1、2、3)を示しているが、リストにはより多くの把持姿勢(例えば数十パターン)の把持情報が含まれる。
【0039】
ワーク姿勢情報は、ワークが作業台等に無造作に置かれた際にワークが取り得る安定姿勢である。図5に、T字型かつパイプ状のワークのワーク姿勢の一例(ワーク姿勢1、2、3)を示す。ワーク姿勢情報は、例えば、姿勢(roll,pitch,yaw)の自由度で表される。例えば、図5に示すワーク姿勢1の場合、roll及びpitchは0°で固定、yawは回転自由というワーク姿勢情報で表される。また、回転自由な軸の回転角度を所定角度ずつ変更させた姿勢毎にワーク姿勢情報を定めておいてもよい。
【0040】
ロボット仕様情報には、リンク間の接続関係やリンクの回転軸等の構造を示すキネマティクス情報、各リンクの重さ等、リンクの動作時の速度等を特定するための情報であるダイナミクス情報、及び各リンクの形状情報が含まれる。なお、形状情報は、例えばCAD(Computer-Aided Design)データ等の三次元データとしてよい。
【0041】
周辺情報は、ロボットが作業を行う周辺の環境を示す情報であり、障害物等の配置及び形状を示す情報である。周辺情報は、例えばCADデータや、三次元データ計測装置で計測された三次元データとしてよい。
【0042】
作業情報、把持情報、ワーク姿勢情報、ロボット仕様情報、及び周辺情報は、入力装置18、記憶媒体読取装置22、又は通信I/F24を介してロボット姿勢決定装置10に入力される。取得部32は、取得した作業情報、把持情報、ワーク姿勢情報、ロボット仕様情報、及び周辺情報を、生成部34及び探索部36の各々に受け渡す。
【0043】
生成部34は、動作時間が最短となる各対象点におけるロボットの姿勢を探索するためのグラフを生成する。グラフは、各対象点に対応した複数のノードと、対象点間に対応するノード間を接続する複数のエッジと、エッジに付与される重みとで構成される。
【0044】
具体的には、生成部34は、対象点毎に、ワーク姿勢の複数の候補を特定する。ワーク姿勢の候補は、図5に示すような、ワーク姿勢情報の各々が示すワーク姿勢のいずれかである。
【0045】
また、生成部34は、対象点毎に、ハンド姿勢の複数の候補を特定する。ハンド姿勢の候補は、ワークを把持するロボットハンドの姿勢の候補である。あるワーク姿勢に対して、ロボットハンドの把持姿勢は、図4に示すように複数存在する。より具体的には、生成部34は、対象点毎に、ワーク姿勢の各々について、作業情報及び把持情報に基づいて、ワークに対するTCPの相対姿勢を特定する。そして、生成部34は、TCPの位置を対象点の位置とし、TCPの姿勢を、特定したTCPの相対姿勢を世界座標系に変換した姿勢として、ハンド姿勢を特定する。
【0046】
また、生成部34は、ロボット姿勢の複数の候補を特定する。ロボット姿勢は、ハンド姿勢及びキネマティクス情報に基づいて得られる、ワークを把持するハンド姿勢に応じたロボットの姿勢である。具体的には、生成部34は、逆運動学により、TCPの位置及び姿勢から、ロボットの姿勢、すなわち各関節の値を特定する。1つのハンド姿勢に対し、ロボット姿勢は複数存在する。図6に、あるハンド姿勢に対して特定されるロボット姿勢の一覧の一例を示す。図6に示す例では、関節J1~J3の値で4バリエーション、その中でもJ4~J6の組み合わせで6バリエーションが存在し、合計で24パターンのロボット姿勢が特定されている。J4~J6の組み合わせの6バリエーションについて、同一グループ(A又はB)内でのロボットの姿勢の見た目は同一であるが、J4~J6の値がそれぞれ異なる。図6の例では、グループAとグループBとでは、ロボットの出っ張り部分(図6中の破線部)の位置が異なる。
【0047】
生成部34は、図7の上段の図に示すように、対象点毎に特定した、ワーク姿勢の候補、ハンド姿勢の候補、及びロボット姿勢の候補の組み合わせに対応するノードを生成する。図7の例では、丸印が1つのノードに相当する。また、例えば、図8の破線部に示すように、ワーク姿勢の候補、ハンド姿勢の候補、及びロボット姿勢の候補の各々から1つずつ選択したものが1つの組み合わせであり、1つのノードに対応する。また、図7の例では、1つの対象点(図7中の白い菱形又は網掛の菱形)に対応するノード群を点線で囲んで示している。
【0048】
また、生成部34は、ロボット姿勢、周辺情報、及びロボット仕様情報に含まれるロボットの形状情報に基づいて、ロボットが周辺の環境(以下、「障害物」ともいう)と干渉するか否かを判定する。生成部34は、干渉すると判定した場合、そのロボット姿勢を含む組み合わせに対応するノードを生成しないようにする。例えば、図7の上段の図の破線で示すノードに対応する組み合わせに含まれるロボット姿勢において、ロボットが周辺の障害物と干渉する場合、生成部34は、そのノードを削除する。
【0049】
生成部34は、図7の中段の図に示すように、対象点間で遷移可能な組み合わせに対応するノード間を接続するエッジを生成する。なお、生成部34は、ロボットの動作の開始点から終了点へ向かう方向に、エッジ(図7中の実線矢印)を接続する。すなわち、エッジで接続される2つのノードのうち、開始点側の対象点に対応するノード(以下、「Fromノード」という)がエッジの始点、終了点側の対象点に対応するノード(以下、「Toノード」という)がエッジの終点となる。
【0050】
生成部34は、対象点間で遷移可能な組み合わせか否かの判定として、把持姿勢が同一か否かを判定する。把持姿勢は、組み合わせに含まれるワーク姿勢及びハンド姿勢に基づいて特定される。把持姿勢が同一ではない場合は、生成部34は、その組み合わせ間は遷移不可能であると判定し、その組み合わせに対応するノード間にはエッジを生成しない。これは、一旦ロボットハンドにより把持したワークを、ロボットの動作中に把持し直すことはないため、把持姿勢、すなわちロボットハンドによるワークのつかみ方が同一であることを、エッジ接続の制約とするものである。
【0051】
また、生成部34は、対象点間で遷移可能な組み合わせか否かの判定として、ノード間に対応するロボットの姿勢間でのロボットの動作、すなわちTCPの位置の遷移が直線移動の場合、ロボット姿勢の形態が同一か否かを判定する。例えば、生成部34は、2つのロボット姿勢の形態が同一か否かを、ジョイント値やリンク姿勢間の相対関係で判定してよい。多関節ロボットにおいて、TCPの直線移動は、ロボット姿勢が同一形態間でなければならない機構上の特性があるからである。
【0052】
また、生成部34は、対象点間で遷移可能な組み合わせか否かの判定として、周辺情報及びロボットの形状情報に基づいて、ロボット姿勢間の動作で、周辺の環境と回避不可能な干渉が発生する可能性があるか否かを判定する。例えば、生成部34は、Fromノードに対応するロボット姿勢におけるロボットの一部が障害物に近接した状態である場合に、周辺の環境と回避不可能な干渉が発生する可能性があると判定してよい。この場合、Fromノードに対応するロボット姿勢からロボット姿勢を変化させることが困難であるため、Toノードに対応するロボット姿勢へ動作させる際に、回避不可能な干渉が発生する可能性があると判定するものである。近接した状態か否かは、ロボットと障害物との最短距離が所定値以下の場合としてよい。また、ロボットの一部は、ロボットの土台側に近い部分としてよい。土台に近い部分が障害物と近接しているほど、その状態からロボット姿勢を変化させることが困難なためである。この判定は、最終的に動作時間が最短となる経路を探索するためのグラフにおいて不要なエッジを除外することを制約とするものである。なお、ここでは、パスプランニング等により対象点間の実際の経路を算出することなく、回避不可能な干渉が発生するか否かを判定している。これにより、グラフの生成時間が短縮され、結果的に動作時間が最短となる経路の探索時間も短縮される。
【0053】
なお、図7の中段の図では、上記のような制約により、ノード間にエッジが生成されない場合を、破線の矢印で示している。
【0054】
また、生成部34は、エッジで接続されたノード間に対応するロボット姿勢間におけるロボットの動作時間に関連する指標をエッジに付与する。生成部34は、動作時間に関連する指標として、パスプランニング等により実際の動作時間を算出することなく、簡易的な方法で算出可能な推定動作時間を算出する。例えば、生成部34は、ノード間に対応するロボット姿勢間の差分に基づく指標を、推定動作時間として算出する。より具体的には、生成部34は、推定動作時間として、ロボットの各関節の回転角度の差分を、各関節の回転速度の最大値で割った値の最大値を算出する。
【0055】
例えば、生成部34は、干渉回避動作は考慮せず、常に最大速度でFromノードに対応するロボット姿勢からToノードに対応するロボット姿勢へ関節補間で動作するものとみなし、下記に示すように推定動作時間を算出してよい。
【0056】
Nf:Fromノードのロボット姿勢
Nf={Jf1,Jf2,Jf3,Jf4,Jf5,Jf6
Nt:Toノードのロボット姿勢
Nt={Jt1,Jt2,Jt3,Jt4,Jt5,Jt6
Vmax:ロボットのj番目の関節の最大速度
:推定動作時間
(Nf,Nt)
=max((Jfj-Jtj)/Vmax|j=1,・・・,6)
【0057】
なお、上記の推定動作時間では、ロボットを動作させる際の加減速時間を考慮していないが、最大速度に達するまでの加速時間、及び停止速度に達するまでの減速時間を簡易的に算出して、推定動作時間の算出に含めてもよい。
【0058】
生成部34は、上記のように算出した推定動作時間を重みとして各エッジに付与する。また、生成部34は、動作の開始点に相当する対象点の前に、仮のスタートノードを生成し、スタートノードと、動作の開始点に相当する対象点に対応するノードの各々とを接続するエッジを生成する。同様に、生成部34は、動作の終了点に相当する対象点の後に、仮のゴールノードを生成し、動作の終了点に相当する対象点に対応するノードの各々と、ゴールノードとを接続するエッジを生成する。また、生成部34は、スタートノード及びゴールノードに接続するエッジの各々に、同一の重みを付与する。この重みは、経路毎の動作時間に影響を与えないように、極めて小さい値としてよい。例えば、グラフ内のエッジに付与された推定動作時間の最小値の1/10の値としてよい。生成部34は、生成したグラフ38を所定の記憶領域に記憶する。
【0059】
探索部36は、グラフ38を用いて、対象点の各々におけるロボット姿勢の系列のうち、動作時間が最短となるロボット姿勢の系列を探索する。例えば、探索部36は、グラフ38に含まれるスタートノードからゴールノードまでのパスのうち、パスに含まれるエッジに付与された推定動作時間の和が最短となるパス(以下、「最短経路」という)を探索する。このような最短経路の探索には、例えば、ダイクストラ法等を適用してよい。図7の下段の図では、探索された最短経路を太線で示している。探索部36は、探索された最短経路に含まれる各ノードに対応するロボット姿勢の系列を、動作時間が最短となるロボット姿勢の系列として出力する。
【0060】
次に、第1実施形態に係るロボット姿勢決定装置10の作用について説明する。図9は、ロボット姿勢決定装置10のCPU12により実行されるロボット姿勢決定処理の流れを示すフローチャートである。CPU12が記憶装置16からロボット姿勢決定プログラムを読み出して、メモリ14に展開して実行することにより、CPU12がロボット姿勢決定装置10の各機能構成として機能し、図9に示すロボット姿勢決定処理が実行される。
【0061】
ステップS10で、取得部32が、作業情報、把持情報、ワーク姿勢情報、ロボット仕様情報、及び周辺情報を取得し、生成部34へ受け渡す。
【0062】
次に、ステップS12で、生成部34が、対象点毎に、ワーク姿勢の複数の候補、ハンド姿勢の複数の候補、及びロボット姿勢の複数の候補を特定する。そして、生成部34が、対象点毎に特定した、ワーク姿勢の候補、ハンド姿勢の候補、及びロボット姿勢の候補の組み合わせに対応するノードを生成する。なお、生成部34は、ロボット姿勢、周辺情報、及びロボットの形状情報に基づいて、ロボットが周辺の障害物と干渉すると判定した場合、そのロボット姿勢に対応するノードを削除する。
【0063】
次に、ステップS14で、生成部34が、把持姿勢が同一、直線移動の場合はロボット姿勢の形態が同一、周辺の環境と回避不可能な干渉が発生しない等の制約の下、対象点間で遷移可能な組み合わせに対応するノード間を接続するエッジを生成する。
【0064】
次に、ステップS16で、生成部34が、エッジで接続されたノード間に対応するロボット姿勢間において、例えば、ロボットの各関節の回転角度の差分を、各関節の回転速度の最大値で割った値の最大値を、推定動作時間として算出する。そして、生成部34が、算出した推定動作時間を、そのノード間を接続するエッジの重みとして付与する。
【0065】
次に、ステップS18で、生成部34が、スタートノード及びゴールノードを生成する。また、生成部34が、スタートノードと動作の開始点に相当する対象点に対応するノードの各々とを接続するエッジ、及び動作の終了点に相当する対象点に対応するノードの各々とゴールノードとを接続するエッジを生成する。そして、生成部34が、スタートノード及びゴールノードに接続するエッジの各々に、同一かつ極めて小さい値の重みを付与する。これにより、グラフ38が生成される。
【0066】
次に、ステップS20で、探索部36が、例えば、ダイクストラ法等により、グラフ38に含まれるスタートノードからゴールノードまでのパスのうち、パスに含まれるエッジに付与された推定動作時間の和が最短となるパス、すなわち最短経路を探索する。次に、ステップS22で、探索部36が、探索された最短経路に含まれる各ノードに対応するロボット姿勢の系列を、動作時間が最短となるロボット姿勢の系列として出力し、ロボット姿勢決定処理は終了する。
【0067】
以上説明したように、第1実施形態に係るロボット姿勢決定装置は、作業情報、把持情報、ワーク姿勢情報、及びロボット仕様情報を取得する。そして、ロボット姿勢決定装置は、ワーク姿勢の候補とハンド姿勢の候補とロボット姿勢の候補との組み合わせの各々に対応するノードと、対象点間で遷移可能な組み合わせに対応するノード間を接続するエッジとを含むグラフを生成する。また、ロボット姿勢決定装置は、エッジで接続されたノード間に対応するロボット姿勢間におけるロボットの推定動作時間を重みとしてエッジに付与する。そして、ロボット姿勢決定装置は、グラフを用いて、推定動作時間が最短となる、複数の対象点の各々におけるロボット姿勢の系列を探索して出力する。このように、最短経路を探索するためのグラフのノードに、ワーク姿勢、ハンド姿勢、及びロボット姿勢の組み合わせを対応付けることにより、ワークに対する把持状態も考慮することができる。また、ノード間をエッジで接続する際に、把持姿勢やロボット姿勢の形態の同一性の制約を考慮することで、不要なエッジの生成を抑制し、生成されるグラフを簡素化することができる。また、エッジの重みとして、エッジで接続されたノード間に対応するロボット姿勢間における実際の動作時間ではなく、ロボット姿勢間の差分を用いた推定動作時間を付与することで、グラフの生成から最短経路探索までの計算時間を短縮することができる。したがって、第1実施形態に係るロボット姿勢決定装置によれば、ワークに対する把持状態も含め、最適なロボットの姿勢を効率良く決定することができる。
【0068】
また、ユーザは、カン、コツ、経験等を問わず、動作時間が最短となるロボット姿勢の系列を決定することができる。そのため、ロボットシステムの構築において、立ち上げ時間の短縮、及び熟練技術者への依存減を実現することができる。さらに、ロボットシステムの新規構築又は変更がし易くなり、生産性が向上する。
【0069】
また、第1実施形態に係るロボット姿勢決定装置は、ロボットが作業する周辺の環境を示す周辺情報を取得し、ロボットと周辺の障害物等が干渉する場合には、グラフ内の対応するノード及びエッジを生成しないようにする。これにより、不要なノード及びエッジの生成を抑制し、生成されるグラフを簡素化することができ、最短経路探索を効率的に行うことができる。
【0070】
<第2実施形態>
次に、第2実施形態について説明する。なお、第2実施形態に係るロボット姿勢決定装置において、第1実施形態に係るロボット姿勢決定装置10と同様の構成については、同一符号を付して詳細な説明を省略する。また、第1実施形態と第2実施形態とで、符号の末尾2桁が共通する機能構成において、共通する機能についての詳細な説明を省略する。さらに、第2実施形態に係るロボット姿勢決定装置のハードウェア構成は、図2に示す、第1実施形態に係るロボット姿勢決定装置10のハードウェア構成と同様であるため、説明を省略する。
【0071】
第1実施形態に係るロボット姿勢決定装置10では、グラフ内のエッジの重みとして、推定動作時間を用いる場合について説明した。第2実施形態では、エッジの重みをより正確な動作時間に更新しながら、より精度良く最短経路を探索する手法について説明する。
【0072】
第2実施形態に係るロボット姿勢決定装置210の機能構成について説明する。図3に示すように、ロボット姿勢決定装置210は、機能構成として、取得部32と、生成部34と、探索部236とを含む。各機能構成は、CPU12が記憶装置16に記憶されたロボット姿勢決定プログラムを読み出し、メモリ14に展開して実行することにより実現される。また、ロボット姿勢決定装置210の所定の記憶領域には、生成部34により生成されるグラフ38が記憶される。
【0073】
探索部236は、まず、図10の上段の図に示すように、第1実施形態に係る探索部36と同様に、生成部34により生成されたグラフから最短経路を探索する。そして、探索部236は、探索した最短経路に含まれるノード間に対応するロボット姿勢間におけるロボットの実際の動作時間(以下、「実動作時間」という)を算出し、図10の中段の図に示すように、ノード間のエッジの重みを、算出した実動作時間で更新する。図10では、二重線の矢印で示すエッジが、重みが推定動作時間から実動作時間に更新されたエッジを表している。
【0074】
探索部236は、実動作時間として、ノード間に対応するロボット姿勢間において、ロボットが周辺の環境との干渉を回避しつつ、関節補間で動作する場合の速度及び加減速度を決定し、決定した速度及び加減速度でロボットが動作する場合の動作時間を算出する。例えば、探索部236は、RRT(Rapidly-Exploring Random Tree)やPRM(Probabilistic Roadmap Method)等を利用して、ノード間に対応するロボット姿勢間の経路を計画する。そして、探索部236は、計画された経路に基づいて、動作時間を算出してよい。探索部236は、実動作時間を算出する過程において、ノード間に対応するロボット姿勢間の経路として、周辺の環境との干渉が回避可能な経路が見つからない場合には、そのノード間のエッジを削除する。図10の中段に示す図では、破線の楕円で示す部分が、エッジが削除されたことを表している。
【0075】
また、探索部236は、図10の下段に示す図のように、エッジの重みが更新されたグラフを用いて、最短経路を探索する。そして、探索部236は、実動作時間によるエッジの重みの更新、及び最短経路の探索を、前回探索された最短経路と同一の最短経路が探索されるまで繰り返す。推定動作時間は、干渉回避動作及び正確な速度及び加減速を考慮していない動作時間であり、実動作時間は、これらを考慮した時間である。そのため、必ず実動作時間≧推定動作時間が成り立つ。したがって、エッジの重みを推定動作時間から実動作時間に更新しながら、最短経路の探索を繰り返すなかで、前回探索された最短経路と同一の最短経路が探索された場合には、それ以上動作時間が短くなる最短経路は存在しないことを表す。そこで、その段階で最短経路の探索を終了するものである。探索部236は、最短経路の探索を終了した時点での最短経路に含まれる各ノードに対応するロボット姿勢の系列を、動作時間が最短となるロボット姿勢の系列として出力する。
【0076】
次に、第2実施形態に係るロボット姿勢決定装置210の作用について説明する。図11は、ロボット姿勢決定装置210のCPU12により実行されるロボット姿勢決定処理の流れを示すフローチャートである。CPU12が記憶装置16からロボット姿勢決定プログラムを読み出して、メモリ14に展開して実行することにより、CPU12がロボット姿勢決定装置210の各機能構成として機能し、図11に示すロボット姿勢決定処理が実行される。
【0077】
ステップS200で、グラフ生成処理が実行される。グラフ生成処理は、第1実施形態におけるロボット姿勢決定処理(図9)のステップS10~S18と同様である。次に、ステップS202で、探索部236が、上記ステップS200で生成されたグラフ38から最短経路P1を探索する。
【0078】
次に、ステップS204で、探索部236が、探索した最短経路P1に含まれるノード間に対応するロボット姿勢間におけるロボットの実動作時間を算出し、ノード間のエッジの重みを、推定動作時間から、算出した実動作時間に更新する。次に、ステップS206で、探索部236が、エッジの重みが更新されたグラフ38から最短経路P2を探索する。
【0079】
次に、ステップS208で、探索部236が、最短経路P1と最短経路P2とが同一か否かを判定する。P1≠P2の場合には、ステップS210へ移行し、探索部236が、上記ステップS206で探索された最短経路P2を最短経路P1とし、ステップS204に戻る。一方、P1=P2の場合には、ステップS212へ移行する。
【0080】
ステップS212では、探索部236が、最短経路P1に含まれる各ノードに対応するロボット姿勢の系列を、動作時間が最短となるロボット姿勢の系列として出力し、ロボット姿勢決定処理は終了する。
【0081】
以上説明したように、第2実施形態に係るロボット姿勢決定装置は、探索された最短経路に含まれるエッジの重みを、推定動作時間から実動作時間に更新しながら、最短経路の探索を繰り返す。これにより、エッジの重みを全て実動作時間とする場合に比べ、グラフの生成から最短経路の探索までの計算時間を短縮できる。また、エッジの重みを全て推定動作時間とする場合に比べ、より精度良く動作時間が最短となるロボット姿勢の系列を決定することができる。
【0082】
なお、上記各実施形態では、探索された最短経路に含まれるノードに対応するロボット姿勢の系列を出力する場合について説明したが、あわせて、そのノードに対応するワーク姿勢情報も出力するようにしてもよい。これにより、動作時間が最短となるロボット姿勢の系列と共に、例えば作業台にワークを配置する際のワーク姿勢も決定することができる。
【0083】
また、開示の技術は、ロボットのオフラインティーチングツール、CPS(Cyber-Physical System)等のシミュレーションツール、CAD等に適用可能である。
【0084】
また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したロボット姿勢決定処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、ロボット姿勢決定処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0085】
また、上記各実施形態では、ロボット姿勢決定プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0086】
10、210 ロボット姿勢決定装置
12 CPU
14 メモリ
16 記憶装置
18 入力装置
20 出力装置
22 記憶媒体読取装置
24 通信I/F
26 バス
32 取得部
34 生成部
36、236 探索部
38 グラフ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11