(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025099474
(43)【公開日】2025-07-03
(54)【発明の名称】制御支援システム、制御支援方法、および制御支援プログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20250626BHJP
【FI】
B25J9/22 A
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023216157
(22)【出願日】2023-12-21
(71)【出願人】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100144440
【弁理士】
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】株丹 亮
(72)【発明者】
【氏名】高橋 誠
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS05
3C707AS06
3C707AS11
3C707BS12
3C707BS13
3C707CS08
3C707DS01
3C707JS03
3C707KS31
3C707LS09
3C707LS15
3C707LS20
3C707LV02
3C707LV07
3C707MS08
3C707NS02
3C707WA11
(57)【要約】
【課題】ロボットの効率的な動作に寄与するワークの保持位置を決定すること。
【解決手段】制御支援システムは、ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、シミュレーションにおいてピック処理および後処理を完了できる少なくとも一つの候補位置のうちの一つを保持位置として決定する決定部とを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、
前記シミュレーションにおいて前記ピック処理および前記後処理を完了できる少なくとも一つの前記候補位置のうちの一つを前記保持位置として決定する決定部と、
を備える制御支援システム。
【請求項2】
前記後処理が、前記ロボットが前記保持されたワークを指定位置に配置するプレイス処理と、該指定位置において該ロボットにより保持された状態にある該ワークに対する追加処理とを含み、
前記シミュレーション部は、前記ピック処理、前記プレイス処理、および前記追加処理を仮想的に実行する、
請求項1に記載の制御支援システム。
【請求項3】
前記シミュレーション部は、前記ロボットとは異なる別装置を示す装置モデルに更に基づく前記シミュレーションにより、前記候補位置で保持された前記ワークに対して前記ロボットおよび該別装置が協働して実行する処理を前記後処理として仮想的に実行し、
前記決定部は、前記ロボットおよび前記別装置の双方について干渉を検出することなく前記ピック処理および前記後処理を完了できる前記少なくとも一つの候補位置を特定する、
請求項1に記載の制御支援システム。
【請求項4】
前記別装置が別ロボットであり、
前記シミュレーション部は、前記ロボットが前記保持されたワークを指定位置に配置するプレイス処理と、該指定位置において該ロボットにより保持された状態にある該ワークに対して前記別ロボットが作業する協働処理とを含む前記後処理を仮想的に実行する、
請求項3に記載の制御支援システム。
【請求項5】
前記シミュレーション部は、前記協働処理において、前記別ロボットによる前記ワーク上の複数の作業領域での作業を仮想的に実行する、
請求項4に記載の制御支援システム。
【請求項6】
前記シミュレーション部は、
前記ロボットが前記保持されたワークを別ワーク上の前記指定位置に配置する処理を、前記プレイス処理として仮想的に実行し、
前記別ロボットが前記ワークを前記別ワーク上に固定する処理を、前記協働処理として仮想的に実行する、
請求項5に記載の制御支援システム。
【請求項7】
現実の作業空間に存在する前記ワークを前記保持位置で前記エンドエフェクタにより保持する現実のピック処理を実行するように、該現実の作業空間に配置されたロボットを制御するロボット制御部を更に備える請求項1~6のいずれか一項に記載の制御支援システム。
【請求項8】
前記エンドエフェクタにより保持される前記ワークが指定された場合に、該指定されたワークの前記ワークモデルを取得する取得部と、
前記取得されたワークモデルに基づいて前記2以上の候補位置を設定する設定部と、
を更に備える請求項1~6のいずれか一項に記載の制御支援システム。
【請求項9】
前記設定部は、
前記ワークモデルに基づいて、前記ワーク上に複数の前記候補位置を仮に設定し、
前記複数の候補位置のそれぞれと、前記ワークに接触可能な前記エンドエフェクタの接触面の形状とに基づいて、前記複数の候補位置から前記2以上の候補位置を選択し、
該選択された2以上の候補位置を前記シミュレーションのために設定する、
請求項8に記載の制御支援システム。
【請求項10】
前記設定部は、
前記複数の候補位置のそれぞれについて、前記ワークに接触した前記接触面の中心を該候補位置に位置付けた場合における、前記接触面と前記ワークとの接触度を算出し、
前記複数の候補位置のそれぞれの前記接触度に基づいて、前記複数の候補位置から前記2以上の候補位置を選択する、
請求項9に記載の制御支援システム。
【請求項11】
前記設定部は、前記複数の候補位置のそれぞれについて、
前記接触面上に複数のサンプル点を生成し、
前記複数のサンプル点のそれぞれについて、該サンプル点から前記ワークの表面までの距離を算出し、
前記複数のサンプル点のそれぞれの前記距離に基づいて前記接触度を算出する、
請求項10に記載の制御支援システム。
【請求項12】
前記決定部は、
前記シミュレーションにおいて前記後処理を完了できる前記少なくとも一つの候補位置をユーザの表示装置上に表示し、
前記少なくとも一つの候補位置から前記ユーザによって選択された一つの候補位置を前記保持位置として決定する、
請求項1~6のいずれか一項に記載の制御支援システム。
【請求項13】
少なくとも一つのプロセッサを備える制御支援システムによって実行される制御支援方法であって、
ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、
前記シミュレーションにおいて前記ピック処理および前記後処理を完了できる少なくとも一つの前記候補位置のうちの一つを前記保持位置として決定するステップと、
を含む制御支援方法。
【請求項14】
ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、
前記シミュレーションにおいて前記ピック処理および前記後処理を完了できる少なくとも一つの前記候補位置のうちの一つを前記保持位置として決定するステップと、
をコンピュータに実行させる制御支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面は制御支援システム、制御支援方法、および制御支援プログラムに関する。
【背景技術】
【0002】
引用文献1には、ロボットを使用して物体群から一つの物体をピックアップするためのロボットシステムが記載されている。このシステムは、物体の画像を与えるカメラと、物体のセグメント化画像を生成するディープラーニングニュートラルネットワークと、セグメント化画像を使用して物体をピックアップするための場所を識別するための手段と、セグメント化画像の中の物体の方向を使用して物体を回転するための手段とを備える。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボットの効率的な動作に寄与するワークの保持位置を決定できる仕組みが望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係る制御支援システムは、ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、シミュレーションにおいてピック処理および後処理を完了できる少なくとも一つの候補位置のうちの一つを保持位置として決定する決定部とを備える。
【0006】
本開示の一側面に係る制御支援方法は、少なくとも一つのプロセッサを備える制御支援システムによって実行される制御支援方法であって、ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、シミュレーションにおいてピック処理および後処理を完了できる少なくとも一つの候補位置のうちの一つを保持位置として決定するステップとを含む。
【0007】
本開示の一側面に係る制御支援プログラムは、ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、シミュレーションにおいてピック処理および後処理を完了できる少なくとも一つの候補位置のうちの一つを保持位置として決定するステップとをコンピュータに実行させる。
【発明の効果】
【0008】
本開示の一側面によれば、ロボットの効率的な動作に寄与するワークの保持位置を決定できる。
【図面の簡単な説明】
【0009】
【
図1】制御支援システムの適用の例を示す図である。
【
図2】制御支援システムの機能構成の例を示す図である。
【
図3】制御支援システムのために用いられるコンピュータのハードウェア構成の例を示す図である。
【
図4】制御支援システムにより実行される処理の例を示すフローチャートである。
【
図5】候補位置の設定の例を詳細に示すフローチャートである。
【
図6】仮に設定された候補位置の例を示す図である。
【
図8】保持位置を決定するための一連の処理の例を示す図である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら本開示での様々な例を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0011】
[システムの概要]
本開示に係る制御支援システムは、ロボットのエンドエフェクタにより保持されるワーク上の保持位置を決定するためのコンピュータシステムである。制御支援システムは、保持位置の候補である2以上の候補位置を設定する。そして、制御支援システムは2以上の候補位置のそれぞれについて、ロボットによる該候補位置でのワークの保持を伴う処理をシミュレーションによって仮想的に実行する。制御支援システムはそのシミュレーションの結果に基づいて、2以上の候補位置のうちの一つを保持位置として決定する。本開示では、ロボットがエンドエフェクタによってワークを保持することを単に「ロボットがワークを保持する」ともいう。保持は、把持、吸着などの様々な手法によって実現されてよい。
【0012】
従来は、ワーク上の保持位置は人手により決定される。保持位置を決定するためには、保持されている間のワークの安定性、保持後に行われる処理などの様々な要因を考慮する必要がある。保持後の処理に関しては、ロボットが該処理のために動作できること、ロボットが障害物と干渉しないことなどの制約を満たす必要がある。加えて、保持位置は個々の種類のワークごとに決められる必要がある。或る一つのワークについても、保持後の処理、ワークが処理される実際の周辺環境などの諸要因によって、保持位置が変わり得る。このように様々な要因を考慮する必要があるので、保持位置の決定は困難な作業である。
【0013】
制御支援システムは、ワークの保持だけではなく保持後の処理も考慮して保持位置を決定する。保持後の処理も考慮された保持位置を採用することで、ワークの保持から後続処理を完了するまでの間に保持位置を変更する必要がなくなる。すなわち、制御支援システムは、ロボットの効率的な動作に寄与するワークの保持位置を決定できる。
【0014】
一例では、制御支援システムは決定された保持位置に基づいて、現実の作業空間に配置されたロボットが該保持位置でワークを保持するように、該ロボットを制御する。例えば、制御支援システムはその保持位置に基づいて動作プログラムを生成し、その動作プログラムに基づいて現実のロボットを制御する。このように、制御支援システムは、ワークの保持を伴うロボットの一連の動作を生成してもよい。制御支援システムを用いることで、ピック処理と該ピック処理に続く後処理とを含む一連のロボット動作を容易に生成できる。
【0015】
[システムの構成]
図1は制御支援システムの適用の例を示す図である。この例に示す制御支援システム1は、現実の作業空間9において現実のロボットによって保持される現実のワークの保持位置を決定する。
図1の例では、第1ロボット21および第2ロボット22が作業空間9に配置され、これらのロボットが協働して第1ワーク81を第2ワーク82上に固定する。第2ワーク82は第1ワーク81とは別のワークである。以下では、第1ロボット21が第1ワーク81を保持することを前提とする。したがって、制御支援システム1は第1ロボットにより保持される第1ワーク81上の保持位置を決定する。第2ロボット22は、第1ロボット21とは異なる別装置の例である。第2ロボット22のような別装置は、ワークを保持するロボット(例えば第1ロボット21)と共に該ワークの処理に貢献する。制御支援システム1は、少なくとも第1ロボット21を制御するロボットコントローラ3と通信ネットワークを介して接続する。通信ネットワークは、有線ネットワークでも無線ネットワークでもよい。通信ネットワークはインターネットおよびイントラネットの少なくとも一方を含んで構成されてもよい。あるいは、通信ネットワークは単純に1本の通信ケーブルによって実現されてもよい。
【0016】
図1の例では、第2ワーク82はH鋼であり、第1ワーク81はそのH鋼に溶接される略T字状の鋼材(T字状鋼材)である。第1ロボット21は、T字状鋼材に対するピックアンドプレイス処理によって該T字状鋼材をH鋼に嵌め、溶接が終わるまでそのT字状鋼材を保持し続ける。第2ロボット22は、H鋼に嵌められたT字状鋼材を溶接して該T字状鋼材をH鋼に固定する。第1ロボット21および第2ロボット22の少なくとも一方は、H鋼に沿って延びるように設けられたレール上で移動してもよい。あるいは、第1ロボット21および第2ロボット22の少なくとも一方は、自律走行ロボット(AMR)でもよいし、無人搬送車(AGV)により支持されてもよい。第1ロボット21および第2ロボット22は、ワークを保持するポジショナと協調して動作してもよい。
【0017】
第1ロボット21は、動力を受けて目的に応じた所定の動作を行って、有用な仕事を実行する装置である。一例では、第1ロボット21は複数の関節と、アームと、アームの先端に取り付けられた第1エンドエフェクタ21aとを備える。第1ロボット21は第1エンドエフェクタ21aを用いてワークを保持する。第1エンドエフェクタ21aの例として、グリッパ、吸着ハンド、磁力ハンドなどが挙げられる。複数の関節のそれぞれには関節軸が設定される。アーム、旋回部などのような第1ロボット21のいくつかの構成要素は関節軸を中心に回転し、この結果、第1ロボット21は所定の範囲内において第1エンドエフェクタ21aの位置および姿勢を変更し得る。一例では、第1ロボット21は多軸のシリアルリンク型の垂直多関節ロボットである。第1ロボット21は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。上述したように、第1ロボット21は自走可能な移動ロボットでもよく、例えば、自律走行ロボット(AMR)でもよいし、無人搬送車(AGV)により支持されるロボットでもよい。あるいは、第1ロボット21は所定の場所に固定された据置型ロボットでもよい。
【0018】
一例では、第2ロボット22は第1ロボット21と同様の構成を備える。第2ロボット22の第2エンドエフェクタ22aは、第1ワーク81を第2ワーク82に固定するための機能を有する。第2エンドエフェクタ22aの例として、溶接ガン、ねじ締め装置などが挙げられる。
【0019】
ロボットコントローラ3は、予め生成された動作プログラムに従って少なくとも第1ロボット21を制御する装置である。一例では、ロボットコントローラ3は、動作プログラムで示される目標値にエンドエフェクタの位置および姿勢を一致させるための関節角度目標値(第1ロボット21の各関節の角度目標値)を算出し、その角度目標値に従って第1ロボット21を制御する。
【0020】
図2は制御支援システム1の機能構成の例を示す図である。この例では、制御支援システム1は機能的構成要素としてモデル取得部11、候補設定部12、シミュレーション部13、位置決定部14、およびロボット制御部15を備える。モデル取得部11はシミュレーションのために用いられるモデルデータを取得する機能モジュールである。候補設定部12は第1ワーク81の保持位置の候補である2以上の候補位置を設定する機能モジュールである。シミュレーション部13は、2以上の候補位置のそれぞれについて、該候補位置に基づいて第1ロボット21および第2ロボット22により実行される処理をシミュレーションによって仮想的に実行する機能モジュールである。シミュレーションは、作業空間9に配置された第1ロボット21および第2ロボット22を実際に作動させるのではなく、これらのロボットの動作をコンピュータ上で模擬的に表現する処理である。位置決定部14は、シミュレーションの結果に基づいて、2以上の候補位置のうちの一つを保持位置として決定する機能モジュールである。ロボット制御部15は保持位置に基づいて少なくとも第1ロボット21を制御する機能モジュールである。
【0021】
制御支援システム1は任意の種類のコンピュータによって実現され得る。そのコンピュータは、パーソナルコンピュータ、業務用サーバなどの汎用コンピュータでもよいし、特定の処理を実行する専用装置に組み込まれてもよい。
【0022】
図3は、制御支援システム1のために用いられるコンピュータ100のハードウェア構成の一例を示す図である。この例では、コンピュータ100は本体110、モニタ120、および入力デバイス130を備える。
【0023】
本体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を介してデータ通信を行う。
【0024】
モニタ120は、本体110から出力された情報を表示するための装置である。例えばモニタ120は、液晶パネルのような、グラフィック表示が可能な装置である。
【0025】
入力デバイス130は、本体110に情報を入力するための装置である。入力デバイス130の例として、キーパッド、マウス、操作コントローラなどの操作インタフェースが挙げられる。
【0026】
モニタ120および入力デバイス130はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体110、モニタ120、および入力デバイス130が一体化されていてもよい。
【0027】
制御支援システム1の各機能モジュールは、プロセッサ161またはメモリ162の上に制御支援プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。制御支援プログラムは、制御支援システム1の各機能モジュールを実現するためのコードを含む。プロセッサ161は制御支援プログラムに従って入出力ポート164および通信ポート165を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。
【0028】
制御支援プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に記録された上で提供されてもよい。あるいは、制御支援プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0029】
[制御支援方法]
本開示に係る制御支援方法の例として、
図4を参照しながら、制御支援システム1により実行される処理の例を説明する。
図4はその例を処理フローS1として示すフローチャートである。すなわち、制御支援システム1は処理フローS1を実行する。
【0030】
ステップS11では、モデル取得部11がモデルデータを取得する。一例では、モデル取得部11は、第1ワーク81を示す第1ワークモデルと、第1エンドエフェクタ21aを有する第1ロボット21を示す第1ロボットモデルとを含むモデルデータを取得する。モデル取得部11は、第2ワーク82を示す第2ワークモデルと、第2エンドエフェクタ22aを有する第2ロボットを示す第2ロボットモデルとを更に含むモデルデータを取得してもよい。これらのモデルはいずれも電子データにより表現される。第2ロボットモデルは、第1ロボット21とは異なる別装置を示す装置モデルの一例である。第1ワークモデルおよび第2ワークモデルのようなワークモデルは、ワークの形状を少なくとも示し、寸法などのようなワークの他の属性を更に示してもよい。第1ロボットモデルおよび第2ロボットモデルのようなロボットモデルは、ロボットおよびエンドエフェクタに関する仕様を示す。その仕様は、形状、寸法などのような、ロボットおよびエンドエフェクタの構造に関するパラメータ群と、各関節の可動範囲、エンドエフェクタの性能などのような、ロボットおよびエンドエフェクタの機能に関するパラメータ群とを含み得る。
【0031】
一例では、モデル取得部11は制御支援システム1のユーザによって指定されたモデルデータを取得する。モデル取得部11はユーザ指示に対応するモデルデータをストレージ163などの所定の記憶装置から読み出してもよいし、入力デバイス130を介してユーザにより入力されたモデルデータを受け付けてもよい。いずれにしても、モデル取得部11は、ユーザによってワークおよびロボットが指定された場合に、その指定に対応するモデルデータを取得する。例えば、第1ロボット21および第2ロボット22が複数種類の第1ワーク81を処理することができる場合には、ユーザは第1ワーク81の種類を変更しながら、複数種類の第1ワーク81をこれらのロボットに処理させ得る。この場合には、次に処理させようとする第1ワーク81をユーザが指定した場合に、モデル取得部11は指定された第1ワーク81の第1ワークモデルを取得する。
【0032】
ステップS12では、候補設定部12が第1ワークモデルに基づいて第1ワーク81上に2以上の候補位置を設定する。この処理は、第1ワークモデルを用いた演算によって第1ワーク81の仮想的な形状を生成し、この仮想的な形状上に候補位置を設定することをいう。
図5を参照しながらこの処理の一例を詳細に説明する。
図5は候補位置の設定の例を示すフローチャートである。
【0033】
ステップS121では、候補設定部12が第1ワーク81上に複数の候補位置を仮に設定する。例えば、候補設定部12は、3次元形状である第1ワーク81の各面上に候補位置を設定する。候補設定部12は複数の候補位置を、ランダムに設定してもよいし、格子状などの規則的なパターンに従って設定してもよい。
図6は仮に設定された候補位置の例を示す図である。この例では、候補設定部12は第1ワーク81上にランダムに候補位置300を設定する。
【0034】
ステップS122では、候補設定部12が複数の候補位置から一つを選択する。
【0035】
ステップS123では、候補設定部12が、選択された候補位置について、第1ワーク81と第1エンドエフェクタ21aの接触面との接触度を算出する。接触面とは、エンドエフェクタがワークを保持する際に該ワークと接触する可能性がある、該エンドエフェクタの面をいう。接触面は平坦な面でもよいし、曲面を含んでもよいし、より複雑な形状を呈してもよい。接触度とは、エンドエフェクタの接触面のうちどれくらい多くの部分がワークに接触するかを示す指数である。エンドエフェクタの接触面のより多くの部分がワークに接触するほど、接触度は高くなる。候補設定部12は第1ロボットモデルに基づいて仮想の接触面を生成し、仮想の接触面と仮想の第1ワーク81との接触度を算出する。候補設定部12は、現実のエンドエフェクタの接触面の形状に忠実であるように仮想の接触面を生成してもよいし、現実の形状を抽象化した態様で仮想の接触面を生成してもよい。
【0036】
図7は接触度の計算方法の例を示す図である。この例では、候補設定部12は、第1ワーク81に接触する接触面200の中心201を、選択された候補位置301に位置付ける。そして、候補設定部12はそのように位置付けられた接触面200と第1ワーク81との接触度を算出する。候補設定部12は第1エンドエフェクタ21aの接触面200上に複数のサンプル点210を生成する。候補設定部12は格子状、放射状などの規則的なパターンに従って複数のサンプル点210を生成してもよいし、複数のサンプル点210をランダムに生成してもよい。
【0037】
続いて、候補設定部12は接触面200の法線方向に沿って接触面200を第1ワーク81に近づけて接触面200を第1ワーク81に仮想的に接触させる。候補設定部12はその接触状態での複数のサンプル点210のそれぞれについて、該サンプル点210から第1ワーク81の表面81aまでの距離を算出する。この距離を測定するために、候補設定部12は複数のサンプル点210のそれぞれについて、該サンプル点210から接触面200の法線方向に向かって第1ワーク81の表面81aに至る仮想線であるRay220を用いる。候補設定部12は第1ワーク81に接触した接触面200の複数のサンプル点210のそれぞれについて、該サンプル点から第1ワーク81の表面81aまでの距離を算出する。この距離はRay220の長さである。表面81aに接触しているサンプル点210での距離は0であり、Ray220が表面81aに到達しないサンプル点210の長さは無限大である。
【0038】
候補設定部12は複数のサンプル点のそれぞれの距離に基づいて接触度を算出する。候補設定部12は複数のサンプル点210の距離の統計値(例えば平均)に基づいて接触度を算出してもよい。候補設定部12は、無限大である距離を所定の値に置き換えた上で接触度を算出してもよい。候補設定部12はその統計値が小さいほど接触度が大きくなる関数を用いて接触度を算出する。あるいは、候補設定部12は、Ray220が表面81aと交差したサンプル点210の割合である交差割合に基づいて接触度を算出してもよい。候補設定部12はその交差割合が大きいほど接触度が大きくなる関数を用いて接触度を算出する。Ray220が表面81aと交差するか否かは距離に基づいて特定されるので、交差割合に基づく接触度の算出も、距離に基づく接触度の算出の一例である。あるいは、候補設定部12は、距離の統計値および交差割合の双方に基づいて接触度を算出してもよい。更に別の例として、候補設定部12は、距離の統計値および交差割合の少なくとも一方と、選択されている候補位置から第1ワーク81の重心までの距離とに基づいて接触度を算出してもよい。例えば、候補設定部12は、重心までの距離が小さいほど接触度が大きくなる関数を更に用いて接触度を算出する。
【0039】
図5に戻る。ステップS124で示すように、候補設定部12は仮に設定された複数の候補位置のそれぞれについて接触度を算出する。未処理の候補位置が存在する場合には(ステップS124においてNO)、処理はステップS122に戻る。繰り返されるステップS122では、候補設定部12は次の候補位置を選択する。繰り返されるステップS123では、候補設定部12はその候補位置について第1ワーク81と第1エンドエフェクタ21aの接触面との接触度を算出する。
【0040】
すべての候補位置が処理された場合には(ステップS124においてYES)、処理はステップS125に進む。ステップS125では、候補設定部12が複数の候補位置のそれぞれの接触度に基づいて、該複数の候補位置から2以上の候補位置を選択する。候補設定部12は接触度が所定の閾値以上である2以上の候補位置を選択してもよい。あるいは、候補設定部12は接触度の降順に候補位置をソートした上で、先頭からn個の候補位置を選択してもよい(ただし、n>1)。このような選択処理は、仮に設定された複数の候補位置を、第1エンドエフェクタ21aが第1ワーク81を確実に保持できると見込まれる候補位置、すなわち安定した保持が見込まれる候補位置に絞り込む処理であると言える。候補設定部12は、選択された2以上の候補位置をシミュレーションのために設定する。
【0041】
図5を参照しながら説明したように、候補設定部12は、第1ワークモデルに基づいて第1ワーク81上に複数の候補位置を仮に設定する。そして、候補設定部12は、複数の候補位置のそれぞれと、第1エンドエフェクタ21aの接触面の形状とに基づいて、複数の候補位置から2以上の候補位置を選択する。候補設定部12は選択された2以上の候補位置をシミュレーションのために設定する。
【0042】
図4に戻って、ステップS13では、シミュレーション部13が絞り込まれた2以上の候補位置から一つを選択する。
【0043】
ステップS14では、シミュレーション部13が、選択された候補位置に基づいてシミュレーションを実行する。シミュレーション部13は、第1ワークモデルおよび第1ロボットモデルに少なくとも基づいてシミュレーションを実行する。シミュレーション部13は第2ワークモデルおよび第2ロボットモデルのうちの少なくとも一方に更に基づいてシミュレーションを実行してもよい。シミュレーション部13はモデルデータを用いて、現実の作業空間9に対応する仮想空間を生成し、その仮想空間でのシミュレーションを実行する。
【0044】
シミュレーション部13は、第1ロボット21が第1エンドエフェクタ21aを用いて、選択された候補位置で第1ワーク81を保持するピック処理と、該候補位置で保持された第1ワーク81に対する後処理とを、シミュレーションによって仮想的に実行する。
【0045】
シミュレーション部13は、第1ロボット21が第1エンドエフェクタ21aによって保持された第1ワーク81を指定位置に配置するプレイス処理を、後処理の少なくとも一部として実行してもよい。この場合には、シミュレーション部13はピック処理およびプレイス処理を仮想的に実行する。ピック処理およびプレイス処理の組合せは、ピックアンドプレイス処理ともいわれる。シミュレーション部13は、第1エンドエフェクタ21aにより保持された第1ワーク81を第1ロボット21が第2ワーク82上の指定位置に配置する処理を、プレイス処理として実行してもよい。あるいは、シミュレーション部13はその第1ワーク81を、作業台、ラックなどのような、第2ワーク82とは別の物体上の指定位置に配置する処理を、プレイス処理として実行してもよい。
【0046】
シミュレーション部13は、プレイス処理と、指定位置において第1ロボット21により保持された状態にある第1ワーク81に対する追加処理とを、後処理の少なくとも一部として実行してもよい。この場合には、シミュレーション部13はピック処理、プレイス処理、および追加処理を仮想的に実行する。追加処理は、第2ロボット22を用いることなく第1ロボット21によって行われる処理でもよいし、第1ロボット21および第2ロボット22が協働して実行する処理であってもよい。例えば、シミュレーション部13は、指定位置において第1ロボット21により保持された状態にある第1ワーク81に対して第2ロボット22が作業する協働処理を追加処理として実行してもよい。シミュレーション部13は、第2ロボット22が第1ワーク81を第2ワーク82上に溶接、ねじ締めなどの手法により固定する処理を協働処理(追加処理)として実行してもよい。シミュレーション部13は、第1ロボット21が空中に設定された指定位置に第1ワーク81を位置させる処理をプレイス処理として実行し、その指定位置で第2ロボット22が第1ロボット21から第1ワーク81を受け取る処理を協働処理(追加処理)として実行してもよい。シミュレーション部13は協働処理(追加処理)において、第2ロボット22による第1ワーク81上の複数の作業領域での作業を仮想的に実行してもよい。作業領域とはロボットによって処理されるワーク上の一部分をいう。それぞれの作業領域は、点、線、または面によって定義される領域であり得る。
【0047】
上記のようにシミュレーション部13は様々な種類の後処理を実行し得る。後処理はプレイス処理を含み得る。あるいは、後処理はプレイス処理および追加処理を含み得る。追加処理は協働処理であり得るので、後処理はプレイス処理および協働処理を含み得る。
【0048】
いずれにしても、シミュレーション部13は選択された候補位置に対応するピック処理および後処理を仮想的に実行する。このシミュレーションにおいて、ピック処理および後処理を完了できるかもしないし、完了できないかもしれない。本開示において「ピック処理および後処理を完了できる」とは、ピック処理および後処理の双方において、ロボットが正常な姿勢を取り続けることができ(すなわち、正常に動作し)、干渉が検出されず、その結果、ピック処理から後処理の完了までの一連の作業が成功することをいう。干渉とは、或る物体が別の物体に接触または衝突する現象をいう。ロボットまたは別装置が或る一つのワークを処理しようとする場合において、そのロボットまたは別装置とそのワークとの接触は干渉ではないことに留意されたい。別装置が動作する場合には、ピック処理および後処理の双方において該別装置が正常な姿勢を取り続けることができることも、ピック処理および後処理を完了できる条件である。
【0049】
シミュレーション部13は、シミュレーションの結果をメモリ162、ストレージ163などの所定の記憶装置に格納する。例えば、シミュレーション部13は選択された候補位置と、ピック処理および後処理を完了できたか否かを示すフラグ情報とのペアを含む結果データを格納してもよい。
【0050】
ステップS15で示すように、シミュレーション部13は絞り込まれた2以上の候補位置のそれぞれについてシミュレーションを実行する。未処理の候補位置が存在する場合には(ステップS15においてNO)、処理はステップS13に戻る。繰り返されるステップS13では、シミュレーション部13は次の候補位置を選択する。繰り返されるステップS14では、シミュレーション部13はその候補位置についてピック処理および後処理をシミュレーションによって仮想的に実行する。
【0051】
2以上の候補位置のすべてが処理された場合には(ステップS15においてYES)、処理はステップS16に進む。ステップS16では、位置決定部14が、シミュレーションにおいてピック処理および後処理を完了できる少なくとも一つの候補位置のうちの一つを保持位置として決定する。すなわち、位置決定部14はシミュレーションにおいて成功した少なくとも一つの候補位置のうちの一つを保持位置として決定する。
【0052】
位置決定部14はシミュレーションの結果データを参照して、ピック処理および後処理を完了できる少なくとも一つの候補位置を特定する。例えば、位置決定部14は、ピック処理および後処理の双方において第1ロボット21が正常に動作し且つ干渉が検出されない少なくとも一つの候補位置を特定し得る。あるいは、位置決定部14は、ピック処理および後処理の双方において、第1ロボット21および第2ロボット22の双方が正常に動作し、且つ、これら二つのロボットの双方について干渉が検出されない少なくとも一つの候補位置を特定し得る。
【0053】
位置決定部14は制御支援システム1のユーザによって選択された候補位置を保持位置として決定してもよい。一例では、位置決定部14は特定された少なくとも一つの候補位置をユーザの表示装置(例えばモニタ120)上に表示する。そして、位置決定部14は、該少なくとも一つの候補位置からユーザによって選択された一つの候補位置を保持位置として決定する。
【0054】
あるいは、位置決定部14は特定された少なくとも一つの候補位置のうちの一つを保持位置として自動的に決定してもよい。例えば、位置決定部14は該少なくとも一つの候補位置のうち接触度が最も高い候補位置を保持位置として決定する。
【0055】
図8は、保持位置を決定するための一連の処理の例を仮想の第1ワーク81を参照しながら示す図である。状態ST1で示すように、候補設定部12は第1ワーク81上に複数の候補位置300を設定する(ステップS121)。候補設定部12は複数の候補位置300のそれぞれについて接触度を算出する(ステップS122~S124)。状態ST2で示すように、接触度の大きさは、各候補位置に描画された棒の色の濃さで可視化され得る。この例では、接触度が大きくなるほど色が濃くなる。状態ST3で示すように、候補設定部12はその接触度に基づいて複数の候補位置300から2以上の候補位置300を選択する(ステップS125)。この例では、候補設定部12は接触度が所定の閾値より大きい候補位置300を選択している。状態ST4で示すように、シミュレーション部13は選択された各候補位置に基づいてシミュレーションを実行し、位置決定部14はそのシミュレーションの結果に基づいて、ピック処理および後処理を完了できる少なくとも一つの候補位置300を特定する(ステップS13~S16)。状態ST5で示すように、位置決定部14は、ユーザの選択に基づいて、または自動的に、特定された少なくとも一つの候補位置300のうちの一つを保持位置320として決定する(ステップS16)。
【0056】
図4に戻って、ステップS17では、ロボット制御部15が保持位置に基づいて現実のロボットを制御する。
【0057】
ロボット制御部15は、現実のロボットを制御するための動作プログラムを保持位置に基づいて生成する。ロボット制御部15は、保持位置で第1ワーク81を保持するピック処理と、その保持位置で保持された第1ワーク81に対する後処理とを第1ロボット21に行わせるための第1動作プログラムを生成する。一例では、ロボット制御部15は保持位置に対応するシミュレーション結果に基づいて第1動作プログラムを生成してもよい。
【0058】
動作プログラムはロボットを制御するためのデータを含み、例えば、ロボットの軌道を示すパスを含む。ロボットの軌道とは、ロボットまたはその構成要素の動きの経路をいう。例えば、ロボットの軌道は先端部またはエンドエフェクタの軌道であり得る。第1動作プログラムは、現実の第1ロボット21に、決定された保持位置で第1ワーク81を保持させるためのコードを少なくとも含む。第1動作プログラムは、後処理の少なくとも一部を現実の第1ロボット21に実行させるためのコードを更に含んでもよい。
【0059】
ロボット制御部15は、現実の第2ロボット22を制御するための第2動作プログラムを生成してもよい。第2動作プログラムは、後処理の少なくとも一部を現実の第2ロボット22に実行させるためのコードを更に含んでもよい。
【0060】
ロボット制御部15は動作プログラムに基づいて現実のロボットを制御する。ロボット制御部15は、作業空間9に存在する第1ワーク81を保持位置で第1エンドエフェクタ21aにより保持する現実のピック処理を実行するように、該作業空間9に配置された第1ロボット21を制御する。ロボット制御部15は第1動作プログラムをロボットコントローラ3に出力して、ロボットコントローラ3に第1ロボット21を制御させる。ロボットコントローラ3は第1動作プログラムに基づいて第1ロボット21を動作させる。ロボット制御部15は第2動作プログラムをロボットコントローラ3に出力して、ロボットコントローラ3に第2ロボット22を制御させてもよい。ロボットコントローラ3は第2動作プログラムに基づいて第2ロボット22を動作させ得る。
【0061】
[変形例]
以上、本開示に係る技術をその様々な例に基づいて詳細に説明した。しかし、本開示は上記の例に限定されるものではない。本開示に係る技術については、その要旨を逸脱しない範囲で様々な変形が可能である。
【0062】
制御支援システムは、複数の候補位置が予め設定されたワークを示すワークモデルを取得してもよい。あるいは、制御支援システムは、ロボット制御システムのような別のコンピュータシステムに保持位置を出力し、該別のコンピュータシステムがその保持位置に基づいて現実のロボットを制御してもよい。すなわち、制御支援システムは候補設定部12およびロボット制御部15の少なくとも一方に相当する機能モジュールを備えなくてもよい。
【0063】
上記の例では別装置が第2ロボット22であるが、別装置は、コンベヤ、自動ラックなどのような、ロボット以外の装置でもよい。
【0064】
制御支援システムは、第2ロボット22のような別装置が存在しない環境でのピック処理および後処理をシミュレーションによって仮想的に実行して、保持位置を決定してもよい。例えば、第1ロボット21のようなロボットが単独で行う後処理をシミュレーションしてもよい。
【0065】
システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上述した機能モジュール群の少なくとも一部が、その機能に特化した論理回路により構成されてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
【0066】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップまたは処理の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0067】
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。
【0068】
[付記]
上記の様々な例から把握されるとおり、本開示は以下に示す態様を含む。
(付記1)
ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するシミュレーション部と、
前記シミュレーションにおいて前記ピック処理および前記後処理を完了できる少なくとも一つの前記候補位置のうちの一つを前記保持位置として決定する決定部と、
を備える制御支援システム。
(付記2)
前記後処理が、前記ロボットが前記保持されたワークを指定位置に配置するプレイス処理と、該指定位置において該ロボットにより保持された状態にある該ワークに対する追加処理とを含み、
前記シミュレーション部は、前記ピック処理、前記プレイス処理、および前記追加処理を仮想的に実行する、
付記1に記載の制御支援システム。
(付記3)
前記シミュレーション部は、前記ロボットとは異なる別装置を示す装置モデルに更に基づく前記シミュレーションにより、前記候補位置で保持された前記ワークに対して前記ロボットおよび該別装置が協働して実行する処理を前記後処理として仮想的に実行し、
前記決定部は、前記ロボットおよび前記別装置の双方について干渉を検出することなく前記ピック処理および前記後処理を完了できる前記少なくとも一つの候補位置を特定する、
付記1または2に記載の制御支援システム。
(付記4)
前記別装置が別ロボットであり、
前記シミュレーション部は、前記ロボットが前記保持されたワークを指定位置に配置するプレイス処理と、該指定位置において該ロボットにより保持された状態にある該ワークに対して前記別ロボットが作業する協働処理とを含む前記後処理を仮想的に実行する、
付記3に記載の制御支援システム。
(付記5)
前記シミュレーション部は、前記協働処理において、前記別ロボットによる前記ワーク上の複数の作業領域での作業を仮想的に実行する、
付記4に記載の制御支援システム。
(付記6)
前記シミュレーション部は、
前記ロボットが前記保持されたワークを別ワーク上の前記指定位置に配置する処理を、前記プレイス処理として仮想的に実行し、
前記別ロボットが前記ワークを前記別ワーク上に固定する処理を、前記協働処理として仮想的に実行する、
付記4または5に記載の制御支援システム。
(付記7)
現実の作業空間に存在する前記ワークを前記保持位置で前記エンドエフェクタにより保持する現実のピック処理を実行するように、該現実の作業空間に配置されたロボットを制御するロボット制御部を更に備える付記1~6のいずれか一つに記載の制御支援システム。
(付記8)
前記エンドエフェクタにより保持される前記ワークが指定された場合に、該指定されたワークの前記ワークモデルを取得する取得部と、
前記取得されたワークモデルに基づいて前記2以上の候補位置を設定する設定部と、
を更に備える付記1~7のいずれか一つに記載の制御支援システム。
(付記9)
前記設定部は、
前記ワークモデルに基づいて、前記ワーク上に複数の前記候補位置を仮に設定し、
前記複数の候補位置のそれぞれと、前記ワークに接触可能な前記エンドエフェクタの接触面の形状とに基づいて、前記複数の候補位置から前記2以上の候補位置を選択し、
該選択された2以上の候補位置を前記シミュレーションのために設定する、
付記8に記載の制御支援システム。
(付記10)
前記設定部は、
前記複数の候補位置のそれぞれについて、前記ワークに接触した前記接触面の中心を該候補位置に位置付けた場合における、前記接触面と前記ワークとの接触度を算出し、
前記複数の候補位置のそれぞれの前記接触度に基づいて、前記複数の候補位置から前記2以上の候補位置を選択する、
付記9に記載の制御支援システム。
(付記11)
前記設定部は、前記複数の候補位置のそれぞれについて、
前記接触面上に複数のサンプル点を生成し、
前記複数のサンプル点のそれぞれについて、該サンプル点から前記ワークの表面までの距離を算出し、
前記複数のサンプル点のそれぞれの前記距離に基づいて前記接触度を算出する、
付記10に記載の制御支援システム。
(付記12)
前記決定部は、
前記シミュレーションにおいて前記後処理を完了できる前記少なくとも一つの候補位置をユーザの表示装置上に表示し、
前記少なくとも一つの候補位置から前記ユーザによって選択された一つの候補位置を前記保持位置として決定する、
付記1~11のいずれか一つに記載の制御支援システム。
(付記13)
少なくとも一つのプロセッサを備える制御支援システムによって実行される制御支援方法であって、
ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、
前記シミュレーションにおいて前記ピック処理および前記後処理を完了できる少なくとも一つの前記候補位置のうちの一つを前記保持位置として決定するステップと、
を含む制御支援方法。
(付記14)
ロボットのエンドエフェクタにより保持されるワーク上の保持位置の2以上の候補である2以上の候補位置のそれぞれについて、該エンドエフェクタが該候補位置で該ワークを保持するピック処理と、該候補位置で保持されたワークに対する後処理とを、該ワークの形状を示すワークモデルと、該エンドエフェクタを有する該ロボットを示すロボットモデルとに基づくシミュレーションによって仮想的に実行するステップと、
前記シミュレーションにおいて前記ピック処理および前記後処理を完了できる少なくとも一つの前記候補位置のうちの一つを前記保持位置として決定するステップと、
をコンピュータに実行させる制御支援プログラム。
【0069】
付記1,13,14によれば、2以上の候補位置のそれぞれについて、ピック処理だけでなくその後の処理も仮想的に実行された上で、これら双方の処理を完了できる候補位置が保持位置として決定される。ピック処理でのみ有効な保持位置ではなく、その後の処理でも有効な保持位置が決定されるので、この二つの処理の間に保持位置を変更する必要がなくなる。すなわち、この仕組みによって、ロボットの効率的な動作に寄与するワークの保持位置を決定できる。
【0070】
付記2によれば、2以上の候補位置のそれぞれについて、ピックアンドプレイス処理だけでなくその後の処理も仮想的に実行された上で、これら双方の処理を完了できる候補位置が保持位置として決定される。ワークを指定位置に配置する処理でのみ有効な保持位置ではなく、その後の処理でも有効な保持位置が決定されるので、この一連の処理の間に保持位置を変更する必要がなくなる。すなわち、この仕組みによって、ロボットの効率的な動作に寄与するワークの保持位置を決定できる。
【0071】
付記3によれば、ピック処理を実行するロボットと協働する別装置の動作も含めてシミュレーションが実行されて、ピック処理および後処理を完了できる保持位置が最終的に決定される。この仕組みにより、複数の装置による処理においてワークを保持すべき位置を決定できる。
【0072】
複数のロボットによる処理は複雑になり得るので、この処理における保持位置を人手で決めることは容易ではない。付記4によれば、ピックアンドプレイス処理を実行するロボットと協働する別ロボットの動作も含めてシミュレーションが実行されて、ピックアンドプレイス処理および協働処理を完了できる保持位置が最終的に決定される。この仕組みを用いることで、複数のロボットによる一連の複雑な作業を実現でき、また、その複雑な作業においてロボットの効率的な動作に寄与するワークの保持位置を決定できる。
【0073】
複数のロボットがワーク上の複数の作業領域を処理する場面では、単一のロボットまたは単一の作業領域に関する処理よりも多くの要因を考慮する必要がある。付記5によれば、複数のロボットが協働してワーク上の複数の作業領域を処理するための保持位置が最終的に決定される。したがって、そのような複雑な場面でも、ロボットの効率的な動作に寄与するワークの保持位置を決定できる。
【0074】
付記6によれば、複数のロボットが協働してワークを別ワークに固定する複雑な場面についても、ロボットの効率的な動作に寄与するワークの保持位置を決定できる。
【0075】
付記7によれば、エンドエフェクタによりワークを保持すべき位置を容易に決定できるので、その分だけ、現実のロボットをより効率良く制御させるための労力を軽減できる。
【0076】
付記8によれば、ワークが指定されたことに応じて該ワークのワークモデルが取得され、そのワークモデルに基づいて2以上の候補位置が設定される。この仕組みにより、ロボットが様々なワークを処理する場面でも、該ロボットが効率的に動作できる保持位置を各ワークについて決定できる。
【0077】
付記9によれば、まず複数の候補位置が仮に設定された上で、その候補位置の個数がエンドエフェクタの接触面の形状に基づいて絞り込まれ、残った候補位置によってシミュレーションが実行される。シミュレーションされる候補位置の個数を絞ることで、シミュレーションの総実行時間を短縮でき、したがって、保持位置をより高速に決定できる。
【0078】
付記10によれば、エンドエフェクタの接触面とワークとの接触度が考慮されるので、エンドエフェクタによりワークを確実に保持できると期待される候補位置、すなわち、少なくともピック処理を確実に実行できると期待される候補位置を選択できる。したがって、2以上の候補位置についてのシミュレーションを効率良く実行して、保持位置をより高速に決定できる。
【0079】
付記11によれば、ワークに接触した接触面上の各サンプル点から該ワークの表面までの距離を考慮することで、接触面とワークとの接触度をより正確に算出できる。
【0080】
付記12によれば、保持位置の最終的な決定をユーザに委ねる仕組みを用意することで、該ユーザの知識および経験も反映したかたちで保持位置を決定できる。ワークを保持して後処理を確実に実行できる候補位置だけがユーザに提示されるので、保持位置を決定するユーザの労力を軽減できる。
【符号の説明】
【0081】
1…制御支援システム、3…ロボットコントローラ、9…作業空間、11…モデル取得部、12…候補設定部、13…シミュレーション部、14…位置決定部、15…ロボット制御部、21…第1ロボット、21a…第1エンドエフェクタ、22…第2ロボット(別装置)、22a…第2エンドエフェクタ、81…第1ワーク、82…第2ワーク(別ワーク)、200…接触面、210…サンプル点、300…候補位置、320…保持位置。