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

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

▶ 株式会社安川電機の特許一覧

特開2025-99475制御支援システム、制御支援方法、および制御支援プログラム
<>
  • 特開-制御支援システム、制御支援方法、および制御支援プログラム 図1
  • 特開-制御支援システム、制御支援方法、および制御支援プログラム 図2
  • 特開-制御支援システム、制御支援方法、および制御支援プログラム 図3
  • 特開-制御支援システム、制御支援方法、および制御支援プログラム 図4
  • 特開-制御支援システム、制御支援方法、および制御支援プログラム 図5
  • 特開-制御支援システム、制御支援方法、および制御支援プログラム 図6
  • 特開-制御支援システム、制御支援方法、および制御支援プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025099475
(43)【公開日】2025-07-03
(54)【発明の名称】制御支援システム、制御支援方法、および制御支援プログラム
(51)【国際特許分類】
   B25J 9/22 20060101AFI20250626BHJP
【FI】
B25J9/22 A
【審査請求】有
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023216158
(22)【出願日】2023-12-21
(71)【出願人】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100144440
【弁理士】
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】株丹 亮
(72)【発明者】
【氏名】高橋 誠
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS11
3C707BS12
3C707BS13
3C707CS08
3C707DS01
3C707JS03
3C707LS15
3C707LS20
3C707LV01
3C707LV14
3C707LW08
3C707WA11
(57)【要約】
【課題】ワークを効率良く処理するためのロボット動作のプランニングを容易にすること。
【解決手段】制御支援システムは、複数の作業領域が設定されたワークとロボットとの間の相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置されたロボットのエンドエフェクタによる少なくとも一つの作業領域での所定の処理を、ワークの複数の作業領域を示すワークモデルと、エンドエフェクタを有するロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、複数の候補位置関係のそれぞれについて、シミュレーションにおいて該候補位置関係の下で処理された1以上の作業領域の集合を作業領域セットとして特定する特定部と、複数の候補位置関係のそれぞれの作業領域セットに基づいて、複数の候補位置関係から相対位置関係を決定する決定部とを備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する制御支援システムであって、
複数の作業領域が設定された前記ワークと前記ロボットとの間の前記相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置された前記ロボットのエンドエフェクタによる少なくとも一つの前記作業領域での所定の処理を、前記ワークの前記複数の作業領域を示すワークモデルと、前記エンドエフェクタを有する前記ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、
前記複数の候補位置関係のそれぞれについて、前記シミュレーションにおいて該候補位置関係の下で処理された1以上の前記作業領域の集合を作業領域セットとして特定する特定部と、
前記複数の候補位置関係のそれぞれの前記作業領域セットに基づいて、前記複数の候補位置関係から前記相対位置関係を決定する決定部と、
を備える制御支援システム。
【請求項2】
前記シミュレーション部は、前記シミュレーションに基づいて特定される前記作業領域セットを構成する前記作業領域の個数を最適化する最適化手法によって、前記候補位置関係を設定する、
請求項1に記載の制御支援システム。
【請求項3】
前記決定部は、前記複数の候補位置関係のそれぞれにおける、前記作業領域セットを構成する前記作業領域の個数に基づいて、前記相対位置関係を決定する、
請求項1または2に記載の制御支援システム。
【請求項4】
前記特定部は、前記複数の作業領域のそれぞれについて、前記シミュレーションにおいて前記エンドエフェクタによって該作業領域が処理された回数を、被処理回数として特定し、
前記決定部は、前記複数の作業領域のそれぞれの前記被処理回数に基づいて、前記相対位置関係を決定する、
請求項1または2に記載の制御支援システム。
【請求項5】
前記決定部は、
前記被処理回数が所定の基準を満たす1以上の前記作業領域によって構成される前記作業領域セットを選択し、
前記選択された作業領域セットに対応する前記候補位置関係を前記相対位置関係として決定する、
請求項4に記載の制御支援システム。
【請求項6】
1以上の前記相対位置関係では前記ロボットによって処理されない1以上の前記作業領域である1以上の残り作業領域が存在する場合に、前記シミュレーション部、前記特定部、および前記決定部に、該1以上の残り作業領域のための繰り返し処理を実行させる繰り返し制御部を更に備え、
前記シミュレーション部は前記繰り返し処理において、前記ワークに対する前記ロボットの新たな相対位置関係の候補である複数の新たな候補位置関係のそれぞれについて、前記1以上の残り作業領域のうちの少なくとも一つでの前記所定の処理を、前記シミュレーションによって仮想的に実行し、
前記特定部は前記繰り返し処理において、前記複数の新たな候補位置関係のそれぞれについて前記作業領域セットを特定し、
前記決定部は前記繰り返し処理において、前記複数の新たな候補位置関係のそれぞれの前記作業領域セットに基づいて、前記複数の新たな候補位置関係から前記新たな相対位置関係を決定する、
請求項1または2に記載の制御支援システム。
【請求項7】
前記決定された相対位置関係に対応する前記作業領域セットを、前記相対位置関係における前記ロボットによって処理される1以上の前記作業領域のグループである作業領域グループとして設定するグルーピング部と、
前記作業領域グループと前記相対位置関係との対応関係を所定の記憶部に記録する記録部と、
を更に備える請求項1または2に記載の制御支援システム。
【請求項8】
前記複数の作業領域のすべてがいずれかの前記作業領域グループに属するまで、前記シミュレーション部、前記特定部、前記決定部、および前記グルーピング部のそれぞれに、対応する処理を実行させる繰り返し制御部を更に備える、
請求項7に記載の制御支援システム。
【請求項9】
前記決定された相対位置関係を初期値として用いる最適化処理によって、該決定された相対位置関係を調整する調整部を更に備える請求項1または2に記載の制御支援システム。
【請求項10】
前記決定された相対位置関係に対応する現実の作業空間での停止位置まで移動して、該停止位置において1以上の前記作業領域で前記ワークを処理するように、該現実の作業空間に配置された前記ロボットを制御するロボット制御部を更に備える請求項1または2に記載の制御支援システム。
【請求項11】
ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する制御支援システムであって、
複数の作業領域が設定された前記ワークと前記ロボットとの間の前記相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置された前記ロボットのエンドエフェクタによる少なくとも一つの前記作業領域での所定の処理を、前記ワークの前記複数の作業領域を示すワークモデルと、前記エンドエフェクタを有する前記ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、
前記複数の候補位置関係のそれぞれについて、前記シミュレーションにおいて該候補位置関係の下で処理された1以上の前記作業領域の集合を作業領域セットとして特定する特定部と、
複数の前記作業領域セットのうちの一つを、前記相対位置関係における前記ロボットによって処理される1以上の前記作業領域のグループである作業領域グループとして設定するグルーピング部と、
を備える制御支援システム。
【請求項12】
ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援し、少なくとも一つのプロセッサを備える制御支援システムにより実行される制御支援方法であって、
複数の作業領域が設定された前記ワークと前記ロボットとの間の前記相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置された前記ロボットのエンドエフェクタによる少なくとも一つの前記作業領域での所定の処理を、前記ワークの前記複数の作業領域を示すワークモデルと、前記エンドエフェクタを有する前記ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、
前記複数の候補位置関係のそれぞれについて、前記シミュレーションにおいて該候補位置関係の下で処理された1以上の前記作業領域の集合を作業領域セットとして特定するステップと、
前記複数の候補位置関係のそれぞれの前記作業領域セットに基づいて、前記複数の候補位置関係から前記相対位置関係を決定するステップと、
を含む制御支援方法。
【請求項13】
ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する制御支援システムとしてコンピュータを機能させるための制御支援プログラムであって、
複数の作業領域が設定された前記ワークと前記ロボットとの間の前記相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置された前記ロボットのエンドエフェクタによる少なくとも一つの前記作業領域での所定の処理を、前記ワークの前記複数の作業領域を示すワークモデルと、前記エンドエフェクタを有する前記ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、
前記複数の候補位置関係のそれぞれについて、前記シミュレーションにおいて該候補位置関係の下で処理された1以上の前記作業領域の集合を作業領域セットとして特定するステップと、
前記複数の候補位置関係のそれぞれの前記作業領域セットに基づいて、前記複数の候補位置関係から前記相対位置関係を決定するステップと、
を前記コンピュータに実行させる制御支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面は制御支援システム、制御支援方法、および制御支援プログラムに関する。
【背景技術】
【0002】
引用文献1には、ロボットを使用して物体群から一つの物体をピックアップするためのロボットシステムが記載されている。このシステムは、物体の画像を与えるカメラと、物体のセグメント化画像を生成するディープラーニングニュートラルネットワークと、セグメント化画像を使用して物体をピックアップするための場所を識別するための手段と、セグメント化画像の中の物体の方向を使用して物体を回転するための手段とを備える。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-181174号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ワークを効率良く処理するためのロボット動作のプランニングを容易にすることが望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係る制御支援システムは、ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する。この制御支援システムは、複数の作業領域が設定されたワークとロボットとの間の相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置されたロボットのエンドエフェクタによる少なくとも一つの作業領域での所定の処理を、ワークの複数の作業領域を示すワークモデルと、エンドエフェクタを有するロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、複数の候補位置関係のそれぞれについて、シミュレーションにおいて該候補位置関係の下で処理された1以上の作業領域の集合を作業領域セットとして特定する特定部と、複数の候補位置関係のそれぞれの作業領域セットに基づいて、複数の候補位置関係から相対位置関係を決定する決定部とを備える。
【0006】
本開示の一側面に係る制御支援方法は、ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援し、少なくとも一つのプロセッサを備える制御支援システムにより実行される制御支援方法であって、複数の作業領域が設定されたワークとロボットとの間の相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置されたロボットのエンドエフェクタによる少なくとも一つの作業領域での所定の処理を、ワークの複数の作業領域を示すワークモデルと、エンドエフェクタを有するロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、複数の候補位置関係のそれぞれについて、シミュレーションにおいて該候補位置関係の下で処理された1以上の作業領域の集合を作業領域セットとして特定するステップと、複数の候補位置関係のそれぞれの作業領域セットに基づいて、複数の候補位置関係から相対位置関係を決定するステップとを含む。
【0007】
本開示の一側面に係る制御支援プログラムは、ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する制御支援システムとしてコンピュータを機能させるための制御支援プログラムであって、複数の作業領域が設定されたワークとロボットとの間の相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置されたロボットのエンドエフェクタによる少なくとも一つの作業領域での所定の処理を、ワークの複数の作業領域を示すワークモデルと、エンドエフェクタを有するロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、複数の候補位置関係のそれぞれについて、シミュレーションにおいて該候補位置関係の下で処理された1以上の作業領域の集合を作業領域セットとして特定するステップと、複数の候補位置関係のそれぞれの作業領域セットに基づいて、複数の候補位置関係から相対位置関係を決定するステップとをコンピュータに実行させる。
【0008】
本開示の一側面に係る制御支援システムは、ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する制御支援システムであって、複数の作業領域が設定されたワークとロボットとの間の相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置されたロボットのエンドエフェクタによる少なくとも一つの作業領域での所定の処理を、ワークの複数の作業領域を示すワークモデルと、エンドエフェクタを有するロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、複数の候補位置関係のそれぞれについて、シミュレーションにおいて該候補位置関係の下で処理された1以上の作業領域の集合を作業領域セットとして特定する特定部と、複数の作業領域セットのうちの一つを、相対位置関係におけるロボットによって処理される1以上の作業領域のグループである作業領域グループとして設定するグルーピング部とを備える。
【発明の効果】
【0009】
本開示の一側面によれば、ワークを効率良く処理するためのロボット動作のプランニングを容易にすることができる。
【図面の簡単な説明】
【0010】
図1】制御支援システムの適用の例を示す図である。
図2】システムより決定される相対位置関係の例を示す図である。
図3】制御支援システムの機能構成の例を示す図である。
図4】制御支援システムのために用いられるコンピュータのハードウェア構成の例を示す図である。
図5】制御支援システムにより実行される処理の例を示すフローチャートである。
図6】相対位置関係を決定する方法の例を示す図である。
図7】相対位置関係の決定と作業領域グループの設定とについての繰り返し処理の例を示す図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら本開示での様々な例を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0012】
[システムの概要]
本開示に係る制御支援システムは、複数の作業領域が設定されたワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援するコンピュータシステムである。ワークとロボットとの間の相対位置関係とは、ワークおよびロボットの一方の位置を基準として他方の位置が定まる位置関係をいう。作業領域とはロボットによって処理されるワーク上の一部分をいう。それぞれの作業領域は、点、線、または面によって定義される領域であり得る。
【0013】
制御支援システムは、相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置されたロボットによるワークの処理をシミュレーションによって仮想的に実行する。制御支援システムは複数の候補位置関係のそれぞれについて、シミュレーション結果に基づいて、該候補位置関係の下で処理されたワーク上の1以上の作業領域の集合を作業領域セットとして特定する。作業領域セットとは、ワークおよびロボットが或る一つの相対位置関係に拘束された状態で該ロボットにより処理された1以上の作業領域の集合をいう。一例では、制御支援システムは複数の候補位置関係のそれぞれの作業領域セットに基づいて、複数の候補位置関係から相対位置関係を決定する。別の例では、制御支援システムは、複数の作業領域セットのうちの一つを、相対位置関係におけるロボットによって処理されるワーク上の1以上の作業領域のグループである作業領域グループとして設定する。したがって、個々の作業領域セットは作業領域グループの候補であるとも言える。制御支援システムは相対位置関係の決定と作業領域グループの設定との双方を実行してもよい。
【0014】
ワーク上に複数の作業領域が設定される場合には、それらの作業領域をいくつかのグループに分け、そのグループごとにワークとロボットとの相対位置関係を決めることで、ロボットにワークを効率良く処理させることができる。しかし、そのような作業領域のグルーピングと相対位置関係の決定とを人手で行うことは困難である。制御支援システムは、複数の候補位置関係のそれぞれについてシミュレーションを実行し、そのシミュレーションの結果に基づいて、作業領域のグルーピングと相対位置関係の決定との少なくとも一方を実行する。このような自動化により、ワークを効率良く処理するためのロボット動作のプランニングが容易になると期待できる。
【0015】
一例では、制御支援システムは相対位置関係に基づいて、現実の作業空間に配置されたロボットが、該相対位置関係に対応する現実の位置においてワークを処理するように、該ロボットを制御する。あるいは、制御支援システムは相対位置関係および作業領域グループに基づいて、現実の作業空間に配置されたロボットが、該相対位置関係に対応する現実の位置においてワークの現実の作業領域グループを処理するように、該ロボットを制御する。例えば、制御支援システムは相対位置関係(および作業領域グループ)に基づいて動作プログラムを生成し、その動作プログラムに基づいて現実のロボットを制御する。制御支援システムを用いることで、ワークを効率良く処理するためのロボット動作を容易に生成できる。
【0016】
[システムの構成]
図1は制御支援システムの適用の例を示す図である。この例に示す制御支援システム1は、現実の作業空間9における現実のロボット2と、複数の作業領域80が設定された現実のワーク8との相対位置関係を決定する。制御支援システム1は、ロボット2を制御するロボットコントローラ3と通信ネットワークを介して接続する。通信ネットワークは、有線ネットワークでも無線ネットワークでもよい。通信ネットワークはインターネットおよびイントラネットの少なくとも一方を含んで構成されてもよい。あるいは、通信ネットワークは単純に1本の通信ケーブルによって実現されてもよい。
【0017】
図1の例では、ワーク8はH鋼であり、ロボット2はH鋼上の複数の作業領域80において溶接を行う。ロボット2はH鋼に沿って延びるように設けられたレール上で移動できる。ロボット2は自律走行ロボット(AMR)でもよいし、無人搬送車(AGV)により支持されてもよい。ロボット2は、ワーク8を保持するポジショナと協調して動作してもよい。
【0018】
ロボット2は、動力を受けて目的に応じた所定の動作を行って、有用な仕事を実行する装置である。一例では、ロボット2は複数の関節と、アームと、アームの先端に取り付けられたエンドエフェクタ2aとを備える。ロボット2はエンドエフェクタ2aを用いてワークを処理する。エンドエフェクタ2aの例として、溶接ガン、ねじ締め装置などが挙げられる。複数の関節のそれぞれには関節軸が設定される。アーム、旋回部などのようなロボット2のいくつかの構成要素は関節軸を中心に回転し、この結果、ロボット2は所定の範囲内においてエンドエフェクタ2aの位置および姿勢を変更し得る。一例では、ロボット2は多軸のシリアルリンク型の垂直多関節ロボットである。ロボット2は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。上述したように、ロボット2は自走可能な移動ロボットでもよく、例えば、自律走行ロボット(AMR)でもよいし、無人搬送車(AGV)により支持されるロボットでもよい。あるいは、ロボット2は所定の場所に固定された据置型ロボットでもよい。
【0019】
ロボットコントローラ3は、予め生成された動作プログラムに従ってロボット2を制御する装置である。一例では、ロボットコントローラ3は、動作プログラムで示される目標値にエンドエフェクタ2aの位置および姿勢を一致させるための関節角度目標値(ロボット2の各関節の角度目標値)を算出し、その角度目標値に従ってロボット2を制御する。
【0020】
図2は制御支援システム1より決定される相対位置関係の例を示す図である。状態ST1ではロボット2は初期位置201に配置されている。従来手法210では、位置211に移動して3個の点状の作業領域81を処理し(状態ST11)、次いで位置212に移動して1個の線状の作業領域82を処理する(状態ST12)ように、ワーク8に対するロボット2の位置が決定され得る。一方、制御支援システム1による手法220では、位置221に移動して3個の作業領域81を処理し(状態ST11)、その位置221で更に作業領域82を処理する(状態ST22)ように、ワーク8とロボット2との相対位置関係を決定し得る。この決定により、状態ST21から状態ST22の間にロボット2の位置が移動しないので、制御支援システム1による手法220は従来手法210よりもワーク8を効率よく処理し得る。
【0021】
図3は制御支援システム1の機能構成の例を示す図である。この例では、制御支援システム1は機能的構成要素としてモデル取得部11、シミュレーション部12、セット特定部13、位置/グループ決定部14、対応記憶部15、繰り返し制御部16、調整部17、およびロボット制御部18を備える。
【0022】
モデル取得部11はシミュレーションのために用いられるモデルデータを取得する機能モジュールである。シミュレーション部12は、複数の候補位置関係のそれぞれについて、該候補位置関係に基づいて配置されたロボット2がワークに対して行う所定の処理を、シミュレーションによって仮想的に実行する機能モジュールである。シミュレーションは、作業空間9に配置されたロボット2を実際に作動させるのではなく、ロボット2の動作をコンピュータ上で模擬的に表現する処理である。セット特定部13は、複数の候補位置関係のそれぞれについて、シミュレーションの結果に基づいて、該候補位置関係の下で処理された1以上の作業領域の集合を作業領域セットとして特定する機能モジュールである。位置/グループ決定部14は、複数の候補位置関係のそれぞれの作業領域セットに基づいて、複数の候補位置関係から相対位置関係を決定し、該相対位置関係に対応する作業領域セットを作業領域グループとして設定する機能モジュールである。位置/グループ決定部14は、相対位置関係と作業領域グループとの組合せを示す対応関係データを対応記憶部15に格納する。したがって、位置/グループ決定部14は本開示における決定部、グルーピング部、および記録部に対応する。対応記憶部15は対応関係データを記憶する機能モジュールである。繰り返し制御部16はシミュレーション部12、セット特定部13、および位置/グループ決定部14の処理の繰り返しを制御する機能モジュールである。調整部17は、相対位置関係を初期値として用いる最適化処理によって、該相対位置関係を調整する機能モジュールである。ロボット制御部18は、調整された相対位置関係と作業領域グループとに基づいてロボット2を制御する機能モジュールである。
【0023】
制御支援システム1は任意の種類のコンピュータによって実現され得る。そのコンピュータは、パーソナルコンピュータ、業務用サーバなどの汎用コンピュータでもよいし、特定の処理を実行する専用装置に組み込まれてもよい。
【0024】
図4は、制御支援システム1のために用いられるコンピュータ100のハードウェア構成の一例を示す図である。この例では、コンピュータ100は本体110、モニタ120、および入力デバイス130を備える。
【0025】
本体110は回路160を有する装置である。回路160は、プロセッサ161、メモリ162、ストレージ163、入出力ポート164、および通信ポート165を有する。それぞれのハードウェア構成要素の個数は1でも2以上でもよい。ストレージ163は、本体110の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスクなどの、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果などを一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じて、モニタ120または入力デバイス130との間で電気信号の入出力を行う。通信ポート165は、プロセッサ161からの指令に従って、ロボットコントローラ3などの他の装置との間で通信ネットワークNを介してデータ通信を行う。
【0026】
モニタ120は、本体110から出力された情報を表示するための装置である。例えばモニタ120は、液晶パネルのような、グラフィック表示が可能な装置である。
【0027】
入力デバイス130は、本体110に情報を入力するための装置である。入力デバイス130の例として、キーパッド、マウス、操作コントローラなどの操作インタフェースが挙げられる。
【0028】
モニタ120および入力デバイス130はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体110、モニタ120、および入力デバイス130が一体化されていてもよい。
【0029】
制御支援システム1の各機能モジュールは、プロセッサ161またはメモリ162の上に制御支援プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。制御支援プログラムは、制御支援システム1の各機能モジュールを実現するためのコードを含む。プロセッサ161は制御支援プログラムに従って入出力ポート164および通信ポート165を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。
【0030】
制御支援プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に記録された上で提供されてもよい。あるいは、制御支援プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0031】
[制御支援方法]
本開示に係る制御支援方法の例として、図5を参照しながら、制御支援システム1により実行される処理の例を説明する。図5はその例を処理フローS1として示すフローチャートである。すなわち、制御支援システム1は処理フローS1を実行する。
【0032】
ステップS11では、モデル取得部11がモデルデータを取得する。一例では、モデル取得部11は、ワーク8を示すワークモデルと、エンドエフェクタ2aを有するロボット2を示すロボットモデルとを含むモデルデータを取得する。これらのモデルはいずれも電子データにより表現される。ワークモデルはワーク8上の複数の作業領域を少なくとも示し、該複数の作業領域の処理順序と、形状、寸法などのようなワーク8の他の属性とを更に示してもよい。ロボットモデルは、ロボット2およびエンドエフェクタ2aに関する仕様を示す。その仕様は、形状、寸法などのような、ロボット2およびエンドエフェクタ2aの構造に関するパラメータ群と、各関節の可動範囲、エンドエフェクタ2aの性能などのような、ロボット2およびエンドエフェクタ2aの機能に関するパラメータ群とを含み得る。
【0033】
一例では、モデル取得部11は制御支援システム1のユーザによって指定されたモデルデータを取得する。モデル取得部11はユーザ指示に対応するモデルデータをストレージ163などの所定の記憶装置から読み出してもよいし、入力デバイス130を介してユーザにより入力されたモデルデータを受け付けてもよい。いずれにしても、モデル取得部11は、ユーザによってワークおよびロボットが指定された場合に、その指定に対応するモデルデータを取得する。例えば、ロボット2が複数種類のワーク8を処理することができる場合には、ユーザはワーク8の種類を変更しながら、複数種類のワーク8をロボット2に処理させ得る。この場合には、次に処理させようとするワーク8をユーザが指定した場合に、モデル取得部11は指定されたワーク8のワークモデルを取得する。
【0034】
ステップS12では、シミュレーション部12がワーク8とロボット2との一つの候補位置関係を設定し、この候補位置関係とモデルデータとに基づいてシミュレーションを実行する。
【0035】
シミュレーション部12は現実の作業空間9に対応する仮想空間を生成し、ワークモデルに基づいて仮想のワーク8を生成し、ロボットモデルに基づいて仮想のロボット2を生成する。シミュレーション部12は仮想のワーク8および仮想のロボット2の一方の位置を基準として他方の位置を設定して、候補位置関係を設定する。一例では、シミュレーション部12は、ワーク8上の複数の作業領域の配置と、作業領域グループに未だ属していない1以上の作業領域の配置とに基づいて、候補位置関係を設定する。本開示では、作業領域グループに未だ属していない作業領域を「残り作業領域」ともいう。シミュレーション部12は、1以上の残り作業領域のうち最初に処理されるべき作業領域を少なくともロボット2が処理するように、候補位置関係を設定してもよい。
【0036】
一例では、シミュレーション部12は、シミュレーションに基づいて特定される作業領域セットを構成する作業領域の個数を最適化する最適化手法によって、候補位置関係を設定する。シミュレーション部12はその最適化手法としてベイズ最適化を用いてもよい。シミュレーション部12はガウス過程回帰を用いて、候補位置関係と評価値との関係を示す関数を推定し、その関数の不確実性を示す分散を算出する。シミュレーション部12は作業領域の個数を評価値として用いる。シミュレーション部12はガウス過程回帰の結果に基づく所定の獲得関数を計算する。シミュレーション部12は獲得関数が最大になる候補位置関係を新たな候補位置関係として設定する。別の例として、シミュレーション部12は所定の間隔ごとに候補位置関係を設定してもよいし、ランダムに候補位置関係を設定してもよい。
【0037】
シミュレーション部12は設定された候補位置関係に基づいて仮想空間内にロボット2およびワーク8を配置する。そして、シミュレーション部12はその候補位置関係に配置されたロボット2のエンドエフェクタ2aによる少なくとも一つの作業領域での所定の処理を、所定の制約条件に従うシミュレーションによって仮想的に実行する。所定の処理の例として、溶接およびねじ締めのような、ワーク8を別のワークに固定する処理が挙げられる。制約条件の例として、ロボット2が所定の処理において正常な姿勢を取り続けること(すなわち、正常に動作する)ことと、干渉が検出されないこととが挙げられる。干渉とは、或る物体が別の物体に接触または衝突する現象をいう。ロボットが或る一つのワークを処理しようとする場合において、そのロボットとそのワークとの接触は干渉ではないことに留意されたい。シミュレーションにおいて、ロボット2はエンドエフェクタ2aによって一つの作業領域のみを処理するかもしれないし、2以上の作業領域を処理するかもしれない。ロボット2によって処理される作業領域の個数は、候補位置関係に配置されたロボット2のエンドエフェクタ2aが作業可能である範囲と、ワーク8上の1以上の作業領域の位置とによって決まり得る。
【0038】
ステップS13では、セット特定部13がシミュレーションの結果に基づいて作業領域セットを特定する。セット特定部13はシミュレーションの結果を取得し、該シミュレーションにおいて候補位置関係の下で処理された1以上の作業領域の集合を作業領域セットとして特定する。セット特定部13は候補位置関係と作業領域セットとのペアを一時的に記憶する。
【0039】
一例では、セット特定部13は、複数の作業領域(1以上の残り作業領域)のそれぞれについて、シミュレーションにおいてエンドエフェクタ2aによって該作業領域が処理された回数を被処理回数として記録する。セット特定部13は1回のシミュレーションにおいて処理された各作業領域に対応する被処理回数を1だけインクリメントする。
【0040】
ステップS14では、繰り返し制御部16が、シミュレーションと作業領域セットの特定とを含む探索を終了するか否かを所定の終了条件に基づいて判定する。終了条件は、所定の個数の候補位置関係を設定したことでもよいし、所定の計算時間が経過したことでもよい。最適化手法によって候補位置関係を設定する場合に、終了条件は、前回得られた評価値と今回得られた評価値との差が所定の閾値以下になったこと、すなわち、評価値が停留または収束したことでもよい。あるいは、終了条件は、所定の基準を満たす評価値が得られたことでもよい。あるいは、終了条件は、候補位置関係と評価値との関係の全体における不確実性(例えば分散)が所定の閾値以下になったことでもよい。
【0041】
探索を続ける場合には(ステップS14においてNO)、処理はステップS12に戻る。繰り返されるステップS12では、シミュレーション部12が新たな一つの候補位置関係を設定し、この候補位置関係とモデルデータとに基づいてシミュレーションを実行する。繰り返されるステップS13では、セット特定部13がそのシミュレーションの結果に基づいて作業領域セットを特定し、候補位置関係と作業領域セットとの新たなペアを記憶する。セット特定部13は、そのシミュレーションにおいて処理された各作業領域に対応する被処理回数を1だけインクリメントする。
【0042】
探索を終了する場合には(ステップS14においてYES)、処理はステップS15に進む。ステップS15では、位置/グループ決定部14が、複数の候補位置関係のそれぞれの作業領域セットに基づいて、複数の候補位置関係から相対位置関係を決定する。
【0043】
位置/グループ決定部14は、複数の候補位置関係のそれぞれにおける、作業領域セットを構成する作業領域の個数nwに基づいて、相対位置関係を決定してもよい。例えば、位置/グループ決定部14はその個数nwが最も多い作業領域セットが得られた候補位置関係を相対位置関係として決定してもよい。個数nwが最も多い2以上の作業領域セットに対応する2以上の候補位置関係が得られた場合には、位置/グループ決定部14は、ロボット2の動作に関する物理量に基づいて該2以上の作業領域セットのうちの一つを相対位置関係として決定してもよい。その物理量の例として、動作に要する距離または時間(いわゆるプレイバック時間)が挙げられる。
【0044】
位置/グループ決定部14は、複数の作業領域のそれぞれの被処理回数に基づいて相対位置関係を決定してもよい。図6を参照しながらこの処理について説明する。図6は被処理回数に基づいて相対位置関係を決定する方法の例を示す図である。
【0045】
図6の例では、9個の作業領域A1~A9がこの順に処理されることを前提とする。シミュレーション部12は複数の候補位置関係のそれぞれについてシミュレーションを実行する。セット特定部13はそれぞれのシミュレーションにおいて、作業領域セットを特定し、少なくとも一つの作業領域について被処理回数を1だけインクリメントする。
【0046】
探索を終了すると繰り返し制御部16が判定した時点で、9個の作業領域のそれぞれの被処理回数がグラフ300に示すように得られたとする。位置/グループ決定部14は、被処理回数が所定の基準を満たす1以上の作業領域によって構成される作業領域セットを選択し、該選択された作業領域セットに対応する候補位置関係を相対位置関係として決定してもよい。例えば、位置/グループ決定部14は作業領域の処理順序に従って被処理回数の推移を参照し、被処理回数の減少度が所定の閾値Td未満である1以上の作業領域の集合を作業領域セットとして特定してもよい。閾値Tdは、第1作業領域での被処理回数に対する、該第1作業領域の次に位置する第2作業領域での被処理回数の割合によって規定されてもよい。図6の例において閾値Tdが1/2であるとすると、作業領域A1から作業領域A2における被処理回数の減少度は1/2未満であり、作業領域A2から作業領域A3における被処理回数の減少度も1/2未満である。しかし、作業領域A3から作業領域A4における被処理回数の減少度は1/2以上である。したがって、位置/グループ決定部14は3個の作業領域A1~A3によって構成される作業領域セットを選択し、この作業領域セットに対応する候補位置関係を相対位置関係R1として決定する。作業領域A1~A3によって構成される作業領域セットに対応する2以上の候補位置関係が得られた場合には、位置/グループ決定部14はロボット2の動作に関する物理量に基づいて該2以上の作業領域セットのうちの一つを相対位置関係R1として決定してもよい。その物理量の例として、動作に要する距離または時間(プレイバック時間)が挙げられる。
【0047】
図5に戻って、ステップS16では、位置/グループ決定部14が、複数の作業領域セットのうち、決定された相対位置関係に対応する作業領域セットを、作業領域グループとして設定する。図6の例では、位置/グループ決定部14は、相対位置関係R1に対応する3個の作業領域A1~A3によって構成される作業領域グループG1を設定する。位置/グループ決定部14は、作業領域グループと相対位置関係との組合せを示す対応関係データを対応記憶部15に記録する。
【0048】
ステップS17では、繰り返し制御部16がすべての作業領域を処理したか否かを判定する。ここでの「すべての作業領域を処理した」とは、ワーク8の複数の作業領域のそれぞれに作業領域グループが設定されたことをいう。
【0049】
これまでに決定された1以上の相対位置関係ではロボットによって処理されない1以上の残り作業領域が存在する場合には(ステップS17においてNO)、繰り返し制御部16はシミュレーション部12、セット特定部13、および位置/グループ決定部14に、該残り作業領域のための繰り返し処理を実行させる。この場合には処理はステップS12に戻る。繰り返されるステップS12~S14では、シミュレーション部12は、ワーク8に対するロボット2の新たな相対位置関係の候補である複数の新たな候補位置関係のそれぞれについて、1以上の残り作業領域のうちの少なくとも一つでの所定の処理をシミュレーションによって仮想的に実行する。セット特定部13は複数の新たな候補位置関係のそれぞれについて作業領域セットを特定する。セット特定部13は1以上の残り作業領域のそれぞれについて被処理回数を記録し得る。繰り返されるステップS15,S16では、位置/グループ決定部14は複数の新たな候補位置関係のそれぞれの作業領域セットに基づいて、複数の新たな候補位置関係から一つの新たな相対位置関係を決定する。また、位置/グループ決定部14はその新たな相対位置関係に対応する作業領域セットを新たな作業領域グループとして設定する。位置/グループ決定部14は、新たな作業領域グループと新たな相対位置関係との組合せを示す対応関係データを対応記憶部15に記録する。
【0050】
繰り返し制御部16は、複数の作業領域のすべてがいずれかの作業領域グループに属するまで、シミュレーション部12、セット特定部13、および位置/グループ決定部14のそれぞれに、対応する処理を実行させる。図7は相対位置関係の決定と作業領域グループの設定とについての繰り返し処理の例を示す図である。この例でも、9個の作業領域A1~A9がこの順に処理されることを前提とする。S12~S16の1回目のループ処理では、制御支援システム1は4個の作業領域A1~A4によって構成される作業領域セットに対応する候補位置関係を相対位置関係R1として決定し、該作業領域セットを作業領域グループG1として設定する。制御支援システム1は、残り作業領域A5~A9に対して、S12~S16の2回目のループ処理を実行する。このループ処理では、制御支援システム1は3個の作業領域A5~A7によって構成される作業領域セットに対応する候補位置関係を相対位置関係R2として決定し、該作業領域セットを作業領域グループG2として設定する。制御支援システム1は、残り作業領域A8,A9に対して、S12~S16の3回目のループ処理を実行する。このループ処理では、制御支援システム1は2個の作業領域A8,A9によって構成される作業領域セットに対応する候補位置関係を相対位置関係R3として決定し、該作業領域セットを作業領域グループG3として設定する。
【0051】
図5に戻って、すべての作業領域が処理された場合には(ステップS17においてYES)、処理はステップS18に進む。ステップS18では、調整部17が決定された相対位置関係を調整する。一例では、調整部17は1以上の相対位置関係のそれぞれについて、該相対位置関係を初期値として用いる最適化処理によって、該相対位置関係に対応する1以上の作業領域を処理するためのワークとロボットとの位置関係を調整する。調整部17はその最適化手法としてベイズ最適化を用いてもよい。調整部17はガウス過程回帰を用いて、位置関係と評価値との関係を示す関数を推定し、その関数の不確実性を示す分散を算出する。調整部17はロボット2の動作に関する物理量を評価値として用いてもよい。その物理量の例として、動作に要する距離または時間(プレイバック時間)が挙げられる。調整部17はガウス過程回帰の結果に基づく所定の獲得関数を計算する。調整部17は獲得関数が最大になる位置関係を特定し、決定された相対位置関係を、特定された位置関係に置き換える。この置換は相対位置関係の調整の一例である。
【0052】
ステップS19では、ロボット制御部18が相対位置関係および作業領域グループに基づいて現実のロボット2を制御する。
【0053】
ロボット制御部18は、現実のロボット2を制御ための動作プログラムを、調整された相対位置関係と作業領域グループとに基づいて生成する。ロボット制御部18は、1以上の相対位置関係のそれぞれにおいて、該相対位置関係に対応する作業領域グループをロボット2に処理させる動作プログラムを生成する。一例では、ロボット制御部18は、ロボット2に、相対位置関係に対応する作業空間9での停止位置まで移動させて、該停止位置において対応するワーク8の作業領域グループを処理させる動作プログラムを生成する。動作プログラムはロボット2を制御するためのデータを含み、例えば、ロボット2の軌道を示すパスを含む。ロボット2の軌道とは、ロボット2またはその構成要素の動きの経路をいう。例えば、ロボット2の軌道は先端部またはエンドエフェクタ2aの軌道であり得る。
【0054】
ロボット制御部18は動作プログラムに基づいて現実のロボット2を制御する。ロボット制御部18は、1以上の相対位置関係に対応する現実の作業空間9での1以上の現実の位置関係においてワーク8を処理させるように、該作業空間9に配置されたロボット2を制御する。例えば、ロボット制御部18は、相対位置関係に対応する現実の作業空間9での停止位置まで移動して、該停止位置において1以上の作業領域でワーク8を処理するように、現実のロボット2を制御する。ロボット制御部18は動作プログラムをロボットコントローラ3に出力して、ロボットコントローラ3にロボット2を制御させる。ロボットコントローラ3は動作プログラムに基づいてロボット2を動作させる。
【0055】
[変形例]
以上、本開示に係る技術をその様々な例に基づいて詳細に説明した。しかし、本開示は上記の例に限定されるものではない。本開示に係る技術については、その要旨を逸脱しない範囲で様々な変形が可能である。
【0056】
制御支援システムは決定された相対位置関係を調整しなくてもよい。あるいは、制御支援システムは、ロボット制御システムのような別のコンピュータシステムに相対位置関係を出力し、該別のコンピュータシステムがその相対位置関係に基づいて現実のロボットを制御してもよい。すなわち、制御支援システムは調整部17およびロボット制御部18のうちの少なくとも一つに相当する機能モジュールを備えなくてもよい。
【0057】
上記の例では制御支援システム1が相対位置関係および作業領域グループの双方を決定するが、制御支援システムは相対位置関係および作業領域グループのいずれか一方を決定しなくてもよい。
【0058】
システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上述した機能モジュール群の少なくとも一部が、その機能に特化した論理回路により構成されてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
【0059】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップまたは処理の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の複数のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0060】
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。
【0061】
[付記]
上記の様々な例から把握されるとおり、本開示は以下に示す態様を含む。
(付記1)
ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する制御支援システムであって、
複数の作業領域が設定された前記ワークと前記ロボットとの間の前記相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置された前記ロボットのエンドエフェクタによる少なくとも一つの前記作業領域での所定の処理を、前記ワークの前記複数の作業領域を示すワークモデルと、前記エンドエフェクタを有する前記ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、
前記複数の候補位置関係のそれぞれについて、前記シミュレーションにおいて該候補位置関係の下で処理された1以上の前記作業領域の集合を作業領域セットとして特定する特定部と、
前記複数の候補位置関係のそれぞれの前記作業領域セットに基づいて、前記複数の候補位置関係から前記相対位置関係を決定する決定部と、
を備える制御支援システム。
(付記2)
前記シミュレーション部は、前記シミュレーションに基づいて特定される前記作業領域セットを構成する前記作業領域の個数を最適化する最適化手法によって、前記候補位置関係を設定する、
付記1に記載の制御支援システム。
(付記3)
前記決定部は、前記複数の候補位置関係のそれぞれにおける、前記作業領域セットを構成する前記作業領域の個数に基づいて、前記相対位置関係を決定する、
付記1または2に記載の制御支援システム。
(付記4)
前記特定部は、前記複数の作業領域のそれぞれについて、前記シミュレーションにおいて前記エンドエフェクタによって該作業領域が処理された回数を、被処理回数として特定し、
前記決定部は、前記複数の作業領域のそれぞれの前記被処理回数に基づいて、前記相対位置関係を決定する、
付記1~3のいずれか一つに記載の制御支援システム。
(付記5)
前記決定部は、
前記被処理回数が所定の基準を満たす1以上の前記作業領域によって構成される前記作業領域セットを選択し、
前記選択された作業領域セットに対応する前記候補位置関係を前記相対位置関係として決定する、
付記4に記載の制御支援システム。
(付記6)
1以上の前記相対位置関係では前記ロボットによって処理されない1以上の前記作業領域である1以上の残り作業領域が存在する場合に、前記シミュレーション部、前記特定部、および前記決定部に、該1以上の残り作業領域のための繰り返し処理を実行させる繰り返し制御部を更に備え、
前記シミュレーション部は前記繰り返し処理において、前記ワークに対する前記ロボットの新たな相対位置関係の候補である複数の新たな候補位置関係のそれぞれについて、前記1以上の残り作業領域のうちの少なくとも一つでの前記所定の処理を、前記シミュレーションによって仮想的に実行し、
前記特定部は前記繰り返し処理において、前記複数の新たな候補位置関係のそれぞれについて前記作業領域セットを特定し、
前記決定部は前記繰り返し処理において、前記複数の新たな候補位置関係のそれぞれの前記作業領域セットに基づいて、前記複数の新たな候補位置関係から前記新たな相対位置関係を決定する、
付記1~5のいずれか一つに記載の制御支援システム。
(付記7)
前記決定された相対位置関係に対応する前記作業領域セットを、前記相対位置関係における前記ロボットによって処理される1以上の前記作業領域のグループである作業領域グループとして設定するグルーピング部と、
前記作業領域グループと前記相対位置関係との対応関係を所定の記憶部に記録する記録部と、
を更に備える付記1~6のいずれか一つに記載の制御支援システム。
(付記8)
前記複数の作業領域のすべてがいずれかの前記作業領域グループに属するまで、前記シミュレーション部、前記特定部、前記決定部、および前記グルーピング部のそれぞれに、対応する処理を実行させる繰り返し制御部を更に備える、
付記7に記載の制御支援システム。
(付記9)
前記決定された相対位置関係を初期値として用いる最適化処理によって、該決定された相対位置関係を調整する調整部を更に備える付記1~8のいずれか一つに記載の制御支援システム。
(付記10)
前記決定された相対位置関係に対応する現実の作業空間での停止位置まで移動して、該停止位置において1以上の前記作業領域で前記ワークを処理するように、該現実の作業空間に配置された前記ロボットを制御するロボット制御部を更に備える付記1~9のいずれか一つに記載の制御支援システム。
(付記11)
ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する制御支援システムであって、
複数の作業領域が設定された前記ワークと前記ロボットとの間の前記相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置された前記ロボットのエンドエフェクタによる少なくとも一つの前記作業領域での所定の処理を、前記ワークの前記複数の作業領域を示すワークモデルと、前記エンドエフェクタを有する前記ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、
前記複数の候補位置関係のそれぞれについて、前記シミュレーションにおいて該候補位置関係の下で処理された1以上の前記作業領域の集合を作業領域セットとして特定する特定部と、
複数の前記作業領域セットのうちの一つを、前記相対位置関係における前記ロボットによって処理される1以上の前記作業領域のグループである作業領域グループとして設定するグルーピング部と、
を備える制御支援システム。
(付記12)
ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援し、少なくとも一つのプロセッサを備える制御支援システムにより実行される制御支援方法であって、
複数の作業領域が設定された前記ワークと前記ロボットとの間の前記相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置された前記ロボットのエンドエフェクタによる少なくとも一つの前記作業領域での所定の処理を、前記ワークの前記複数の作業領域を示すワークモデルと、前記エンドエフェクタを有する前記ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、
前記複数の候補位置関係のそれぞれについて、前記シミュレーションにおいて該候補位置関係の下で処理された1以上の前記作業領域の集合を作業領域セットとして特定するステップと、
前記複数の候補位置関係のそれぞれの前記作業領域セットに基づいて、前記複数の候補位置関係から前記相対位置関係を決定するステップと、
を含む制御支援方法。
(付記13)
ワークと、該ワークを処理するロボットとの間の相対位置関係を変更することが可能なロボットの制御を支援する制御支援システムとしてコンピュータを機能させるための制御支援プログラムであって、
複数の作業領域が設定された前記ワークと前記ロボットとの間の前記相対位置関係の候補である複数の候補位置関係のそれぞれについて、該候補位置関係に配置された前記ロボットのエンドエフェクタによる少なくとも一つの前記作業領域での所定の処理を、前記ワークの前記複数の作業領域を示すワークモデルと、前記エンドエフェクタを有する前記ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、
前記複数の候補位置関係のそれぞれについて、前記シミュレーションにおいて該候補位置関係の下で処理された1以上の前記作業領域の集合を作業領域セットとして特定するステップと、
前記複数の候補位置関係のそれぞれの前記作業領域セットに基づいて、前記複数の候補位置関係から前記相対位置関係を決定するステップと、
を前記コンピュータに実行させる制御支援プログラム。
【0062】
付記1,12,13によれば、複数の候補位置関係のそれぞれについて、ロボットによるワークの処理がシミュレーションによって仮想的に実行され、該候補位置関係の下で処理された作業領域の集合(作業領域セット)が特定される。すなわち、各候補位置関係で何個の作業領域が処理されるかが、各作業領域セットとして特定される。これらの作業領域セットに基づいて相対位置関係が決定されるので、ワークを効率良く処理するためのロボット動作のプランニングを容易にすることができる。
【0063】
付記2によれば、候補位置関係が最適化手法によって得られるので、ワークを効率良く処理できると見込まれる候補位置関係を自動的かつ効率的に設定できる。その結果、相対位置関係を決定するための時間を短縮できる。
【0064】
一つの位置で処理できる作業領域の個数は、ワーク全体に対する処理の効率性に密接に関係し得る。付記3によれば、その個数に着目して相対位置関係を決定することで、ワークを効率良く処理できると見込まれるロボットの位置を自動的に決定できる。
【0065】
付記4によれば、候補位置関係を変更しながらシミュレーションを繰り返すことによって得られる作業領域ごとの被処理回数を考慮して相対位置関係が決定される。被処理回数は、一つの位置で処理されることが望ましい作業領域の集合を判断する上で有用であり得る。この被処理回数を考慮することで、ワークを効率良く処理できるとより確実に見込まれるロボットの位置を決定できる。
【0066】
被処理回数が所定の基準を満たす作業領域セットは、ワークの効率的な処理に寄与すると見込まれる。付記5によれば、そのような作業領域セットに対応する候補位置関係を相対位置関係として決定することで、ワークを効率良く処理できるとより確実に見込まれるロボットの位置を決定できる。
【0067】
付記6によれば、ワークに対するロボットの複数の相対位置関係が決定される。したがって、ロボットが複数の箇所に移動しながら処理する必要があるワークについても、効率的な処理が期待できる複数の相対位置関係を決定できる。例えば、一箇所におけるロボットの可動範囲よりも広い範囲にわたって作業領域が散在するワーク、形状が複雑であるために一箇所ではすべての作業領域を処理できないワークなどについても、相対位置関係を決定できる。
【0068】
付記7によれば、相対位置関係の下で処理される1以上の作業領域がグルーピングされるので、相対位置関係と処理される1以上の作業領域との対応を管理できる。このような作業領域の管理も、ワークを効率良く処理するためのロボット動作に寄与し得る。また、人では発想することが難しい、処理効率の高い作業領域グループを自動的に決定できる。
【0069】
付記8によれば、複数の作業領域のそれぞれについて作業領域グループが設定される。したがって、ロボットが複数の箇所に移動しながら処理する必要があるワークについても、効率的な処理が期待できる複数の作業領域グループを設定できる。例えば、一箇所におけるロボットの可動範囲よりも広い範囲にわたって作業領域が散在するワーク、形状が複雑であるために一箇所ではすべての作業領域を処理できないワークなどについても、作業領域グループを決定できる。また、人では発想することが難しい、処理効率の高い複数の作業領域グループの組合せを自動的に決定できる。
【0070】
付記9によれば、シミュレーションによって得られる相対位置関係をそのまま採用するのではなく、そのシミュレーション結果を利用した最適化処理によってワークとロボットとの相対位置関係が最終的に得られる。この処理は、より適切なロボット制御の実現に寄与し得る。
【0071】
付記10によれば、決定された相対位置関係に基づいて、現実のロボットによって現実のワークをより効率良く処理させることが可能になる。
【0072】
付記11によれば、複数の候補位置関係のそれぞれについて、ロボットによるワークの処理がシミュレーションによって仮想的に実行され、該候補位置関係の下で処理された作業領域の集合(作業領域セット)が特定される。すなわち、各候補位置関係で何個の作業領域が処理されるかが、各作業領域セットとして特定される。これらの作業領域セットのうちの一つが作業領域グループとして自動的に設定されるので、ワークを効率良く処理するためのロボット動作のプランニングを容易にすることができる。
【符号の説明】
【0073】
1…制御支援システム、2…ロボット、2a…エンドエフェクタ、3…ロボットコントローラ、8…ワーク、9…作業空間、11…モデル取得部、12…シミュレーション部、13…セット特定部、14…グループ決定部、15…対応記憶部、16…繰り返し制御部、17…調整部、18…ロボット制御部、80~82…作業領域。
図1
図2
図3
図4
図5
図6
図7