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

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

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

特許7124947プランニングシステム、プランニング方法、およびプランニングプログラム
<>
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図1
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図2
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図3
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図4
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図5
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図6
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図7
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図8
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図9
  • 特許-プランニングシステム、プランニング方法、およびプランニングプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-08-16
(45)【発行日】2022-08-24
(54)【発明の名称】プランニングシステム、プランニング方法、およびプランニングプログラム
(51)【国際特許分類】
   B25J 9/10 20060101AFI20220817BHJP
【FI】
B25J9/10 A
【請求項の数】 22
(21)【出願番号】P 2021181872
(22)【出願日】2021-11-08
【審査請求日】2021-12-08
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100144440
【弁理士】
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】株丹 亮
(72)【発明者】
【氏名】高橋 誠
(72)【発明者】
【氏名】渡邉 航
(72)【発明者】
【氏名】米原 敬祐
(72)【発明者】
【氏名】角谷 拓也
【審査官】木原 裕二
(56)【参考文献】
【文献】国際公開第2018/143003(WO,A1)
【文献】特開2009-125920(JP,A)
【文献】特開2019-135076(JP,A)
【文献】特開2008-269021(JP,A)
【文献】特開2015-160277(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10
(57)【特許請求の範囲】
【請求項1】
ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定して、複数の前記候補位置を設定する探索部と、
前記複数の補位置から前記目標位置を選択する選択部と、
を備え、
前記探索部は、
前記複数の候補位置のうちの一つである前記設定された候補位置について、前記シミュレーションによって評価値を算出する評価部と、
前記候補位置および前記評価値の関係を示す計算モデルを回帰分析によって生成する推定部と、
前記計算モデルに基づいて、前記複数の候補位置のうちの別の一つである新たな候補位置を設定する設定部と、
を備える、
プランニングシステム。
【請求項2】
前記ロボットのモーションは、前記ロボットの開始位置から前記目標位置への移動を含み、
前記探索部は、前記開始位置からの経路を前記シミュレーションによって探索して、前記候補位置を設定する、
請求項1に記載のプランニングシステム。
【請求項3】
前記ロボットのモーションは、前記目標位置に移動した前記ロボットの次の開始位置から次の目標位置への移動を更に含み、
前記探索部は、前記次の開始位置からの経路を探索する前記シミュレーションによって、前記次の目標位置の候補である次の候補位置を繰り返し設定する、
請求項2に記載のプランニングシステム。
【請求項4】
前記ロボットは、それぞれが少なくとも一つの作業位置を含む複数の作業領域が設定されたワークを処理し、
前記複数の作業領域は、第1作業領域と、該第1作業領域の次に処理される第2作業領域との少なくとも一つのペアを含み、
前記探索部は、前記少なくとも一つのペアのそれぞれについて、
前記第1作業領域において前記次の開始位置を設定し、
前記第2作業領域において最初に処理される前記作業位置での前記ロボットと前記ワークとの相対的な位置関係に基づいて、前記次の候補位置を設定する、
請求項3に記載のプランニングシステム。
【請求項5】
前記評価部は、前記開始位置から前記候補位置までの前記経路での前記ロボットの移動に関する物理量に基づいて前記評価値を算出する、
請求項2~4のいずれか一項に記載のプランニングシステム。
【請求項6】
前記探索部は、前記ロボットが前記開始位置から前記候補位置に到達する前に他の物体と干渉するか否かを判定する干渉チェックを含む前記シミュレーションによって、前記候補位置を設定する、
請求項2~5のいずれか一項に記載のプランニングシステム。
【請求項7】
前記探索部は更に、前記候補位置における前記ロボットの姿勢である候補姿勢を前記シミュレーションによって繰り返し設定し、
前記選択部は更に、複数の前記候補姿勢から、前記目標位置における前記ロボットの姿勢である目標姿勢を選択する、
請求項2~6のいずれか一項に記載のプランニングシステム。
【請求項8】
前記探索部は、
前記ロボットと協働してワークを処理する相手装置のモーションを前記シミュレーションによって更に探索し、
前記ロボットと前記相手装置とが協働処理する位置を前記候補位置として設定する、
請求項2~7のいずれか一項に記載のプランニングシステム。
【請求項9】
前記探索部は、前記協働処理における前記ロボットと前記相手装置との相対的な位置関係に基づいて、前記候補位置を設定する、
請求項8に記載のプランニングシステム。
【請求項10】
前記評価部は、前記設定された候補位置までの前記ロボットの移動に関する物理量と、前記設定された候補位置までの前記相手装置の移動に関する物理量とに基づいて前記評価値を算出する、
請求項8または9に記載のプランニングシステム。
【請求項11】
前記探索部は、前記複数の候補位置のそれぞれにおいて、前記ロボットの候補姿勢と、前記相手装置の候補姿勢との相対的な姿勢関係を探索する、
請求項8~10のいずれか一項に記載のプランニングシステム。
【請求項12】
前記評価部は、
初期の候補位置について、第1方策に基づく前記シミュレーションによって前記評価値を算出する第1評価部と、
前記設定された候補位置について、前記第1方策より精度が高い第2方策に基づく前記シミュレーションによって前記評価値を算出する第2評価部と、
を備え、
前記探索部は、
前記第1評価部によって算出された評価値に基づいて、複数の前記初期の候補位置を設定し、
前記複数の初期の候補位置を用いて、前記第2評価部によって算出された評価値に基づいて前記新たな候補位置を設定する、
請求項1~11のいずれか一項に記載のプランニングシステム。
【請求項13】
前記第1評価部は、前記ロボットの開始位置から直線経路で前記候補位置に到達することを前記第1方策として設定して、前記評価値を算出し、
前記第2評価部は、前記開始位置から他の物体と干渉することなく前記候補位置に到達するという制約を含む前記第2方策を設定して、前記評価値を算出する、
請求項12に記載のプランニングシステム。
【請求項14】
前記推定部は、前記回帰分析としてガウス過程回帰を用いて、前記計算モデルを生成する、
請求項1~13のいずれか一項に記載のプランニングシステム。
【請求項15】
前記推定部は、前記関係の不確実性を含む前記計算モデルを生成し、
前記設定部は、前記関係の少なくとも一部において前記不確実性が減少するように、前記新たな候補位置を設定する、
請求項1~14のいずれか一項に記載のプランニングシステム。
【請求項16】
現実空間において前記選択された目標位置に前記ロボットを位置させるための動作プログラムを生成するプログラム生成部を更に備える請求項1~15のいずれか一項に記載のプランニングシステム。
【請求項17】
前記ロボットのモーションは、前記ロボットのエンドエフェクタの開始位置から前記目標位置への移動を含み、
前記探索部は、前記開始位置からの経路を前記シミュレーションによって探索して、該エンドエフェクタについての前記候補位置を設定する、
請求項1~16のいずれか一項に記載のプランニングシステム。
【請求項18】
前記探索部は、前記エンドエフェクタについての前記経路を前記ロボットの少なくとも一つの関節の動きに基づいて探索する、
請求項17に記載のプランニングシステム。
【請求項19】
前記ロボットのモーションは、前記ロボットを支持する無人搬送車についての開始位置から前記目標位置への移動を含み、
前記探索部は、前記開始位置からの経路を前記シミュレーションによって探索して、該無人搬送車についての前記候補位置を設定する、
請求項1~18のいずれか一項に記載のプランニングシステム。
【請求項20】
少なくとも一つのプロセッサを備えるプランニングシステムによって実行されるプランニング方法であって、
ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定して、複数の前記候補位置を設定する探索ステップと、
前記複数の補位置から前記目標位置を選択する選択ステップと、
を含み、
前記探索ステップは、
前記複数の候補位置のうちの一つである前記設定された候補位置について、前記シミュレーションによって評価値を算出する評価ステップと、
前記候補位置および前記評価値の関係を示す計算モデルを回帰分析によって生成する推定ステップと、
前記計算モデルに基づいて、前記複数の候補位置のうちの別の一つである新たな候補位置を設定する設定ステップと、
を含む、
プランニング方法。
【請求項21】
ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定して、複数の前記候補位置を設定する探索ステップと、
前記複数の補位置から前記目標位置を選択する選択ステップと、
をコンピュータに実行させ、
前記探索ステップは、
前記複数の候補位置のうちの一つである前記設定された候補位置について、前記シミュレーションによって評価値を算出する評価ステップと、
前記候補位置および前記評価値の関係を示す計算モデルを回帰分析によって生成する推定ステップと、
前記計算モデルに基づいて、前記複数の候補位置のうちの別の一つである新たな候補位置を設定する設定ステップと、
を含む、
プランニングプログラム。
【請求項22】
目標値の候補である候補値をシミュレーションによって繰り返し設定する探索部と、
複数の前記候補値から前記目標値を選択する選択部と、
を備え、
前記探索部は、
初期の候補値について、第1方策に基づく前記シミュレーションによって評価値を算出し、
前記初期の候補値および前記評価値の関係を示す第1計算モデルを回帰分析によって生成し、
前記第1計算モデルに基づいて複数の初期の候補値を設定し、
前記複数の初期の候補値を用いて設定された候補値について、前記第1方策より精度が高い第2方策に基づく前記シミュレーションによって第2評価値を算出し、
前記設定された候補値および前記第2評価値の関係を示す第2計算モデルを前記回帰分析によって生成し、
前記第2計算モデルに基づいて新たな候補値を設定する、
プランニングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面はプランニングシステム、プランニング方法、およびプランニングプログラムに関する。
【背景技術】
【0002】
特許文献1には、ロボットを制御する制御装置が記載されている。この制御装置は、ベイズ最適化を使用してロボットの動作に関する動作パラメータを決定する決定部と、決定された動作パラメータを使用してロボットを制御する制御部とを備える。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-111604号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
目標値の設定を含むプランニングの効率化が望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係るプランニングシステムは、ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定する探索部と、複数の候補位置から目標位置を選択する選択部とを備える。前記探索部は、設定された候補位置について、シミュレーションによって評価値を算出する評価部と、候補位置および評価値の関係を示す計算モデルを回帰分析によって生成する推定部と、計算モデルに基づいて新たな候補位置を設定する設定部とを備える。
【0006】
本開示の一側面に係るプランニング方法は、少なくとも一つのプロセッサを備えるプランニングシステムによって実行される。このプランニング方法は、ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定する探索ステップと、複数の候補位置から目標位置を選択する選択ステップとを含む。探索ステップは、設定された候補位置について、シミュレーションによって評価値を算出する評価ステップと、候補位置および評価値の関係を示す計算モデルを回帰分析によって生成する推定ステップと、計算モデルに基づいて新たな候補位置を設定する設定ステップとを含む。
【0007】
本開示の一側面に係るプランニングプログラムは、ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定する探索ステップと、複数の候補位置から目標位置を選択する選択ステップとをコンピュータに実行させる。探索ステップは、設定された候補位置について、シミュレーションによって評価値を算出する評価ステップと、候補位置および評価値の関係を示す計算モデルを回帰分析によって生成する推定ステップと、計算モデルに基づいて新たな候補位置を設定する設定ステップとを含む。
【発明の効果】
【0008】
本開示の一側面によれば、目標値の設定を含むプランニングを効率化できる。
【図面の簡単な説明】
【0009】
図1】ロボットシステムの構成の一例を示す図である。
図2】目標位置の一例を示す図である。
図3】プログラミング支援装置のハードウェア構成の一例を示す図である。
図4】プログラミング支援装置の機能構成の一例を示す図である。
図5】プログラミング支援装置での処理の一例を示すフローチャートである。
図6】候補位置の設定の一例を示すフローチャートである。
図7】ベイズ最適化の概念を例示するグラフである。
図8】目標位置の探索の一例を示す図である。
図9】複数の作業位置を有するワークの一例を示す図である。
図10】複数の目標位置を順次設定する例を示す図である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0011】
[ロボットシステム]
本実施形態では、本開示に係るプランニングシステムをロボットシステム1のプログラミング支援装置4に適用する。本開示において、プランニングシステムとは少なくとも一つのロボットのモーションを決定するためのコンピュータシステムをいう。ロボットシステム1は、所与のモーションをロボットに実行させることにより、加工、組立などの様々な作業を自動化するシステムである。図1はロボットシステム1の構成の一例を示す図である。一例では、ロボットシステム1は、1以上のロボット2と、1以上のロボット2に対応する1以上のロボットコントローラ3と、プログラミング支援装置4とを備える。図1は3台のロボット2および3台のロボットコントローラ3を示し、一つのロボットコントローラ3に一つのロボット2が接続される構成を示す。しかし、各装置の台数も接続方法も図1の例に限定されない。例えば、一つのロボットコントローラ3に複数台のロボット2が接続されてもよい。
【0012】
一例では、ロボット2は多軸のシリアルリンク型の垂直多関節ロボットである。ロボット2の先端部にはエンドエフェクタ5が取り付けられ、ロボット2はこのエンドエフェクタ5を用いて様々な処理を実行できる。エンドエフェクタ5はツールともいわれる。ロボット2は、所定の範囲内においてエンドエフェクタ5の位置および姿勢を自在に変更し得る。ロボット2は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。一例では、複数台のロボット2は、或る一つのワークに対していずれのロボット2によっても同一の処理を実行し得るように配置される。
【0013】
ロボットコントローラ3は、予め生成された動作プログラムに従ってロボット2を制御する装置である。一例では、動作プログラムはロボット2を制御するためのデータを含み、例えば、ロボット2の軌道を示す経路を含む。ロボット2の軌道とは、ロボット2またはその構成要素の動きの経路をいう。例えば、ロボット2の軌道は先端部またはエンドエフェクタ5の軌道であり得る。一例では、ロボットコントローラ3は、動作プログラムで示される目標値に先端部またはエンドエフェクタ5の位置および姿勢を一致させるための関節角度目標値(ロボット2の各関節の角度目標値)を算出し、その角度目標値に従ってロボット2を制御する。
【0014】
ロボットコントローラ3の制御によって、少なくとも一つのロボット2は一連の処理を実行する。本開示ではその一連の処理をジョブともいう。少なくとも一つのロボット2がジョブを実行することで、ロボットシステム1のユーザが望む結果が得られる。ジョブを構成する最小単位の処理をタスクという。したがって、ジョブは1以上のタスクを含む。それぞれのロボット2は「部品を取る」、「部品を置く」、「部品をワークに嵌合する」、「待機姿勢を取る」などの様々なタスクを実行し得る。一つのタスクは、該タスクにおけるロボット2の軌道である一つの経路を含み得る。
【0015】
一例では、ジョブは1以上の作業タスクと1以上のつなぎタスクとを含む。作業タスクとはユーザによって予め定義されたタスクをいう。つなぎタスクとは、ロボット2を次の作業タスクに案内するためのタスクをいう。一例では、つなぎタスクは、隣り合う作業タスク間、ロボット2の初期位置と最初の作業タスクとの間、および最後の作業タスクとロボット2の終了位置との間に位置する。つなぎタスクはプログラミング支援装置4によって自動的に挿入される。
【0016】
本開示では、作業タスク内の経路を「作業パス」といい、つなぎタスク内の経路を「エアカットパス」という。作業パスは、作業タスクを生成する際にユーザによって予め定義される。エアカットパスは、先行する作業タスクにおける作業パスの終点と、後続の作業タスクにおける作業パスの始点とを結ぶ。
【0017】
一例では、ロボット2は自走可能な移動ロボットであってもよい。例えば、ロボット2は無人搬送車(AGV)により支持されるロボットでもよい。自走可能なロボット2は、処理の開始に先立って、またはジョブの少なくとも一部として、動作プログラムに従って作業空間内を移動して所与の位置に移動し得る。例えば、ロボット2は他の物体を避けながら自走することが可能である。このロボット2は、動作プログラムで示される配置において、該動作プログラムで示されるジョブ、すなわち、少なくとも一つのタスクを繰り返し実行し得る。
【0018】
プログラミング支援装置4は、動作プログラムの生成を支援する装置である。例えば、プログラミング支援装置4は1以上のロボット2のそれぞれについてモーションを決定する。あるいは、プログラミング支援装置4はそのモーションを示す動作プログラムを生成してもよい。一例では、プログラミング支援装置4は、ロボット2のモーションをシミュレーションによって設定し、そのモーションを示す動作プログラムを生成する。シミュレーションとは動作プログラムの少なくとも一部を仮想的に実行する処理をいう。より詳しく言うと、シミュレーションは、ロボット2を実際に作動させることなく動作プログラムの少なくとも一部をコンピュータ上で模擬的に実行することをいう。一例では、シミュレーションは、ロボット2および他の物体が配置された仮想空間上で動作プログラムの少なくとも一部を仮想的に実行する処理である。他の物体とは、ロボット2の周辺に配置された物体であり、例えば、他のロボット2、ワーク、他の製造装置などであり得る。
【0019】
一例では、プログラミング支援装置4は動作プログラムの生成において、ロボット2のモーションに関する目標位置を決定する。ロボット2のモーションはAGVの移動を含んでもよいし、エンドエフェクタ5の移動を含んでもよい。目標位置とは、ロボットがモーションを実行することで該ロボットが到達する位置である。一例では、ロボット2のモーションはロボット2の開始位置から目標位置への移動を含む。この場合、プログラミング支援装置4は開始位置からの経路をシミュレーションによって探索して目標位置を設定する。ロボット2の開始位置から目標位置への移動は、AGVについての開始位置から目標位置への移動でもよいし、エンドエフェクタ5の開始位置から目標位置への移動でもよい。開始位置はジョブまたはタスクの初期位置に限定されず、ジョブまたはタスクの途中の位置であってもよい。同様に、目標位置はジョブまたはタスクの終了位置に限定されず、ジョブまたはタスクの途中の位置であってもよい。
【0020】
一例では、プログラミング支援装置4は、ロボット2と協働してワークを処理する相手装置のモーションに関する目標位置をシミュレーションによって更に探索する。そして、プログラミング支援装置4は、ロボット2と相手装置とが協働処理するための、該ロボット2および該相手装置のそれぞれの目標位置を決定する。相手装置はロボットでもよいし、コンベヤなどのようなロボット以外の装置でもよい。協働処理の例として、スポット溶接、嵌合、ワークの受け渡しなどが挙げられる。
【0021】
図2は目標位置の一例を示す図である。この例では、ロボット21およびロボット22が協働してスポット溶接を実行する。ロボット21は溶接ガンをエンドエフェクタ21aとして備え、ロボット22はワークWを支持するハンドをエンドエフェクタ22aとして備える。ロボット21はロボット22にとって相手装置であり、ロボット22はロボット21にとって相手装置である。状況91はエンドエフェクタ21a,22aのそれぞれの開始位置を示す。状況92はエンドエフェクタ21a,22aのそれぞれの目標位置を示す。プログラミング支援装置4はエンドエフェクタ21a,22aのそれぞれについて、開始位置を受け付け、その開始位置からの経路をシミュレーションによって探索して目標位置を決定する。状況92で示される目標位置は、ロボット21,22が相互作用する位置ともいえるし、ロボット21,22が協働処理を実行する位置であるともいえる。本開示ではこのような位置を「合流位置」ともいう。
【0022】
一例では、プログラミング支援装置4は協働処理におけるロボット21,22の相対的な位置関係に基づいて目標位置を決定する。「相対的な位置関係に基づいて位置を決定する」とは、タスクが実行される絶対位置が与えられない状況下で、ロボット2の開始位置からの経路を探索して目標位置を決定することをいう。したがって、ロボット2の目標位置が決定されて初めて、タスクが実行される位置が得られる。状況92で示されるスポット溶接の位置は、エンドエフェクタ21a,22aの目標位置が決定されて初めて得られる。目標位置が自動的に決定されるので、タスクが実行される位置を予め与えることなくロボット2のモーションを自動的に生成できる。目標位置についてのティーチングが不要になるので、ロボットシステム1のユーザにとっては、考慮すべき制約条件が減り、プランニングがより簡単になる。
【0023】
[プログラミング支援装置]
プログラミング支援装置4は任意の種類のコンピュータによって実現され得る。そのコンピュータは、パーソナルコンピュータ、業務用サーバなどの汎用コンピュータでもよいし、特定の処理を実行する専用装置に組み込まれてもよい。プログラミング支援装置4は一つのコンピュータによって実現されてもよいし、複数のコンピュータを有する分散システムによって実現されてもよい。
【0024】
図3はプログラミング支援装置4のハードウェア構成の一例を示す図である。一例では、プログラミング支援装置4は本体10、モニタ20、および入力デバイス30を備える。
【0025】
本体10は少なくとも一つのコンピュータにより構成される。本体10は回路160を有し、回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164とを有する。ストレージ163は、本体10の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスクなどの、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果などを一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで、各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じ、モニタ20、入力デバイス30、およびロボットコントローラ3の間で電気信号の入出力を行う。
【0026】
モニタ20は、本体10から出力された情報を表示するための装置である。モニタ20は、グラフィック表示が可能であればいかなるものであってもよく、その例としては液晶パネルが挙げられる。入力デバイス30は、本体10に情報を入力するための装置である。入力デバイス30は、所望の情報を入力可能であればいかなるものであってもよく、その例としてはキーパッド、マウスなどが挙げられる。
【0027】
モニタ20および入力デバイス30はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体10、モニタ20、および入力デバイス30が一体化されていてもよい。
【0028】
プログラミング支援装置4の各機能モジュールは、プロセッサ161またはメモリ162の上にプランニングプログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。プランニングプログラムは、プログラミング支援装置4の各機能モジュールを実現するためのコードを含む。プロセッサ161はプランニングプログラムに従って入出力ポート164を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。
【0029】
プランニングプログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、プランニングプログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0030】
図4はプログラミング支援装置4の機能構成の一例を示す図である。一例では、プログラミング支援装置4は機能モジュールとして受付部11、探索部12、選択部13、およびプログラム生成部14を備える。
【0031】
受付部11は、ロボット2のモーションを決定するために必要な入力データを受け付ける機能モジュールである。
【0032】
探索部12は、ロボット2のモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定する機能モジュールである。すなわち、探索部12は一つの目標位置を決定するために複数の候補位置を設定する。一例では、探索部12は設定部121、評価部122、および推定部123を備える。設定部121は候補位置を設定する機能モジュールである。評価部122は設定された候補位置について、シミュレーションによって評価値を算出する機能モジュールである。評価値とは、候補位置が目標位置として適切であるか否かの程度を示す指数である。推定部123は、候補位置および評価値の関係を示す計算モデルを回帰分析によって生成する機能モジュールである。設定部121はその計算モデルに基づいて新たな候補位置を設定する。設定部121、評価部122,および推定部123によって実行される一連の処理は、候補位置をシミュレーションによって設定することを意味する。一例では、評価部122は第1評価部124および第2評価部125を備える。第1評価部124と第2評価部125とでは、シミュレーションで用いられる方策が異なる。この方策の違いについては後述する。
【0033】
選択部13は複数の候補位置から目標位置を選択する機能モジュールである。すなわち、選択部13は目標位置を決定する。
【0034】
プログラム生成部14はその目標位置に基づいて動作プログラムを生成する機能モジュールである。この動作プログラムは現実空間において目標位置にロボット2を位置させるために用いられる。例えば、動作プログラムは現実空間において目標位置にロボット2を移動させるために用いられる。
【0035】
[プランニング方法]
本開示に係るプランニング方法の一例として、図5および図6を参照しながら、プログラミング支援装置4により実行される処理手順の一例を説明する。図5はプログラミング支援装置4での処理の一例を処理フローS1として示すフローチャートである。すなわち、プログラミング支援装置4は処理フローS1を実行する。図6は候補位置の設定の一例を示すフローチャートである。上述したように、ロボット2の目標位置、候補位置、移動、および経路は、エンドエフェクタ5の目標位置、候補位置、移動、および経路であり得るし、AGVの目標位置、候補位置、移動、および経路であり得る。相手装置がエンドエフェクタ5およびAGVの少なくとも一方を備える場合についても同じことがいえる。以下では、特に断わらない限り、ロボット2および相手装置のそれぞれについての目標位置、候補位置、移動、および経路は、エンドエフェクタ5およびAGVのそれぞれの場合を含む概念を意味する。
【0036】
ステップS11では、受付部11が、ロボット2のモーションを決定するために必要な入力データを受け付ける。この入力データは、少なくとも一つのロボット2にジョブを実行させるために必要な情報を含む電子データである。相手装置のモーションも決定する場合には、入力データは、その相手装置にジョブを実行させるために必要な情報を更に含む。一例では、入力データはロボット2または相手装置についての1以上の作業タスクと、ロボット2または相手装置のモーションに関する制約とを示す。制約の例として、ロボット2または相手装置の配置と、複数の作業タスクの実行順序と、ロボット2または相手装置と作業タスクとの対応関係が挙げられる。入力データは、ロボット2および相手装置のそれぞれについて個別に設定される事項と、ロボット2および相手装置について共通に設定される事項とのうちの少なくとも一つを含んでよい。入力データを取得するために様々な手法が用いられてよい。例えば、受付部11はユーザにより入力された入力データを受け付けてもよいし、ユーザ入力に基づいて所与の記憶装置から入力データを読み出してもよいし、他のコンピュータから送られてきた入力データを受信してもよい。
【0037】
ステップS12では、探索部12が、ロボット2の一つの目標位置を決定するための複数の候補位置をシミュレーションによって設定する。例えば、探索部12は開始位置からの経路をシミュレーションによって探索して複数の候補位置を設定する。一例では、探索部12はロボット2と相手装置とが協働処理する位置を候補位置として設定する処理を繰り返す。エンドエフェクタ5の候補位置を設定する場合には、探索部12はロボット2の少なくとも一つの関節の動きに基づいてエンドエフェクタ5の経路を探索してもよい。例えば、探索部12は、ロボット2の関節角度の変化量を計算して、すなわち、関節空間に基づく演算を実行して、エンドエフェクタ5の経路を探索してもよい。図6を参照しながら探索部12の処理の一例を説明する。
【0038】
ステップS121では、第1評価部124が、初期の候補位置について、第1方策に基づくシミュレーションによって評価値を算出する。本開示ではこの評価値を「第1評価値」ともいう。初期の候補位置とは、第1方策に基づくシミュレーションによって評価される候補位置である。初期の候補位置は、目標位置として選択され得る候補位置をより効率的に設定するために用意される。一例では、設定部121が初期の候補位置をランダムに設定し、第1評価部124はその候補位置について第1評価値を算出する。
【0039】
第1方策は、初期の候補位置を評価するためのシミュレーションで用いられる拘束条件または前提条件である。一例では、第1評価部124は、ロボット2の開始位置から直線経路で候補位置に到達するという制約を含む第1方策を設定し、その第1方策に基づくシミュレーションによって、初期の候補位置について第1評価値を算出する。第1評価部124は、ロボット2が候補位置に到達するまでに他の物体と干渉するか否かを判定する処理である干渉チェックを実行することなく、その第1方策に基づくシミュレーションによって第1評価値を算出してもよい。この場合には、設定部121によって設定された初期の候補位置は、その直線経路上でロボット2が他の物体に干渉するような候補位置であり得る。相手装置との協働処理をシミュレーションする場合には、探索部12は第1方策に基づくシミュレーションを相手装置についても実行する。干渉とは物体同士が接触または衝突することをいい、例えば、予定していない他の物体にロボット2または相手装置が接触または衝突することをいう。
【0040】
一例では、第1評価部124は初期の候補位置について、ロボット2の開始位置から該初期の候補位置までの経路でのロボット2の移動に関する物理量に基づいて第1評価値を算出する。第1評価部124は、候補位置への移動に関する物理量の例として、開始位置からその候補位置までの距離、その距離を移動するための所要時間(いわゆるプレイバック時間)、および電流消費量のうちの少なくとも一つを算出してもよい。エンドエフェクタ5の初期の候補位置について第1評価値を算出する場合には、第1評価部124はロボット2の1以上の関節角度の変化量の合計値を、移動に関する物理量として算出し、この物理量に基づいて第1評価値を算出してもよい。協働処理のシミュレーションの一例では、第1評価部124は、ロボット2および相手装置のそれぞれについて、候補位置まで直線で移動した場合の物理量を算出し、これらの物理量に基づいて第1評価値を算出する。例えば、第1評価部124はロボット2の移動に関する物理量と、相手装置の移動に関する物理量とのうちの最大値を選択し、その最大値に基づいて第1評価値を算出してもよい。あるいは、第1評価部124はその二つの物理量のうちの最小値を選択し、その最小値に基づいて第1評価値を算出してもよい。
【0041】
ステップS122では、推定部123が、初期の候補位置および第1評価値の関係を示す計算モデルを回帰分析によって生成する。本開示ではこの計算モデルを「第1計算モデル」ともいう。回帰分析とは、入力と出力との関係を求める処理をいう。出力は連続値でも離散値でもよい。推定部123はこれまでに得られているすべての初期の候補位置について、初期の候補位置と第1評価値との1以上のペアを取得する。そして、推定部123はそれらのペアに基づいて、初期の候補位置と第1評価値との関係を示す第1計算モデルを生成する。第1計算モデルは、ブラックボックスであるその関係を推定するためのモデルであるといえる。
【0042】
推定部123は1以上のペアに基づく回帰分析を実行して、初期の候補位置と第1評価値との関係を示す関数を推定し、その関数を含む第1計算モデルを生成してもよい。推定部123は、初期の候補位置を入力値とし第1評価値を出力値とする関数を推定する。例えば、推定部123は回帰分析としてガウス過程回帰を用いてその関数を推定し、該関数を含む第1計算モデルを生成する。あるいは、推定部123は回帰分析としてカーネル密度推定または深層ニューラルネットワークを用いてその関数を推定し、該関数を含む第1計算モデルを生成してもよい。深層ニューラルネットワークによって生成される学習済みモデルは、関数の一例である。
【0043】
推定部123は初期の候補位置と第1評価値との関係の不確実性を含む第1計算モデルを生成してもよい。この不確実性は、その関係がどれくらい確からしいかを示す情報である。例えば、推定部123はその不確実性を示す分散を算出し、その分散を含む第1計算モデルを生成してもよい。ガウス過程回帰、カーネル密度推定、および深層ニューラルネットワークのいずれを用いた場合にも、推定部123は分散を含む第1計算モデルを生成し得る。例えば、推定部123は、初期の候補位置と第1評価値との関係を示す関数について、分散などの不確実性を算出してもよい。
【0044】
ステップS123では、設定部121が、生成された第1計算モデルに基づいて新たな初期の候補位置を設定する。例えば、設定部121は関数を用いて新たな候補位置を設定してもよい。
【0045】
ステップS124では、第1評価部124がその新たな初期の候補位置について、第1方策に基づくシミュレーションによって第1評価値を算出する。第1評価部124はステップS121と同じ手法により第1評価値を算出する。
【0046】
ステップS125では、探索部12が、初期の候補位置の設定を終了するか否かを所与の終了条件に基づいて判定する。終了条件は、所与の個数の初期の候補位置を設定したことでもよいし、所与の計算時間が経過したことでもよい。
【0047】
終了条件が満たされない場合、すなわち、初期の候補位置を更に設定する場合には(ステップS125においてNO)、処理はステップS122に戻る。この場合には、ステップS122~S125の処理が繰り返される。初期の候補位置と第1評価値とのペアの個数が増えるので、繰り返されるステップS122において生成される第1計算モデルは、一般に、前回のステップS122において生成された第1計算モデルから変化する。すなわち、繰り返されるステップS122では、推定部123は第1計算モデルを更新する。
【0048】
一方、終了条件が満たされた場合には(ステップS125においてYES)、処理はステップS126に進む。ステップS126では、探索部12がN個の初期の候補位置を選択する。一例では、探索部12はステップS125までにおいて設定された複数の初期の候補位置から、第1評価値が上位N位以内であるN個の初期の候補位置を選択する。この処理は、目標位置として適切である見込みが相対的に高い上位N個の初期の候補位置を選択することであるといえる。N個の初期の候補位置は、目標位置として選択され得る複数の候補位置の一部であり、したがって、以下では単に「候補位置」ともいう。
【0049】
ステップS127では、第2評価部125が、選択されたN個の初期の候補位置について、第1方策とは異なる第2方策に基づくシミュレーションによって評価値を算出する。本開示ではこの評価値を「第2評価値」ともいう。第2方策は、新たな候補位置を評価するためのシミュレーションで用いられる拘束条件または前提条件である。
【0050】
一例では、第2方策は第1方策よりも精度が高い方策である、例えば、第1方策に基づくシミュレーションに基づいて得られる候補位置よりも、第2方策に基づくシミュレーションに基づいて得られる候補位置の方が、目標位置として選択される見込みが高いのであれば、第2方策は第1方策よりも精度が高い。一方、第2方策よりも精度が低い第1方策は、計算コストが第2方策よりも低いので第1評価値を高速に算出でき、その結果、初期の候補位置を得るための計算時間も短縮できる。このように、最適解(目標位置)が近くに位置すると見込まれる初期の候補位置を第1方策を用いて高速に探索し、続いて、精度の高い第2方策を用いて候補位置を探索することで、その最適解(目標位置)を効率的に設定できる。例えば、第1方策および第2方策をこの順に用いることで、計算時間を節約しつつ、解がばらつかないように目標位置を安定的に得ることが可能になる。
【0051】
例えば、第2評価部125は、開始位置から他の物体と干渉することなく候補位置に到達するという制約を含む第2方策を設定し、その第2方策に基づくシミュレーションによって、N個の初期の候補位置について第2評価値を算出する。すなわち、第2評価部125は、ロボット2が開始位置から候補位置に到達する前に他の物体と干渉するか否かを判定する干渉チェックを含むシミュレーションによって、第2評価値を算出してもよい。例えば、第2評価部125は或る一つの経路を設定するために、開始位置と該候補位置との間で、ロボット2と他の物体との干渉を回避するための1以上の経由点を生成する。そして、第2評価部125はその1以上の経由点を順に通るように経路を生成する。第2評価部125は一つの経路を生成するために、経由点の設定と干渉の回避の確認とを含む一連の処理を繰り返し実行し得る。このような生成手法の詳細は、例えば特許第4103057号公報に記載されている。相手装置との協働処理をシミュレーションする場合には、第2評価部125は第2方策に基づくシミュレーションを相手装置についても実行する。
【0052】
一例では、第2評価部125は、設定された候補位置について、ロボット2の開始位置から該候補位置までの経路でのロボット2の移動に関する物理量に基づいて第2評価値を算出する。第2評価部125は、候補位置への移動に関する物理量の例として、開始位置からその候補位置までの距離、その距離を移動するための所要時間(いわゆるプレイバック時間)、および電流消費量のうちの少なくとも一つを算出してもよい。エンドエフェクタ5の候補位置について第2評価値を算出する場合には、第2評価部125はロボット2の1以上の関節角度の変化量の合計値を、移動に関する物理量として算出し、この物理量に基づいて第2評価値を算出してもよい。協働処理のシミュレーションの一例では、第2評価部125は、ロボット2および相手装置のそれぞれについて、干渉することなく候補位置に到達する経路を生成する。そして、第2評価部125は、ロボット2および相手装置のそれぞれについて、生成された経路に沿った移動に関する物理量を算出し、これらの移動量に基づいて第2評価値を算出する。例えば、第2評価部125はロボット2の移動に関する物理量と、相手装置の移動に関する物理量とのうちの最大値を選択し、その最大値に基づいて第2評価値を算出してもよい。あるいは、第2評価部125はその二つの物理量のうちの最小値を選択し、その最小値に基づいて第2評価値を算出してもよい。
【0053】
上述したように、初期の候補位置は、ロボット2が他の物体に干渉するようなモーションによって設定され得る。この場合には、第2評価部125はそのような初期の候補位置が目標値として選択されないような第2評価値を設定する。例えば、第2評価部125は、候補位置への移動に関する物理量に基づく評価値の計算からは得られないような特別な値を、干渉が発生する場合の第2評価値として用いてもよい。そのような特別な値の例として、所与の最大値または最小値が挙げられる。
【0054】
一例では、第2評価値を算出するために用いられる物理量は、第1評価値を算出するために用いられる物理量とは異なる。例えば、第1評価部124は関節角度の変化量の合計値に基づいて第1評価値を算出する一方で、第2評価部125はプレイバック時間に基づいて第2評価値を算出する。
【0055】
ステップS128では、推定部123が、候補位置および第2評価値の関係を示す計算モデルを回帰分析によって生成する。本開示ではこの計算モデルを「第2計算モデル」ともいう。推定部123はステップS126以降において得られているすべての候補位置について、候補位置と第2評価値との1以上のペアを取得する。そして、推定部123はそれらのペアに基づいて、候補位置と第2評価値との関係を示す第2計算モデルを生成する。第2計算モデルは、ブラックボックスであるその関係を推定するためのモデルであるといえる。
【0056】
推定部123は1以上のペアに基づく回帰分析を実行して、候補位置と第2評価値との関係を示す関数を推定し、その関数を含む第2計算モデルを生成してもよい。推定部123は、候補位置を入力値とし第2評価値を出力値とする関数を推定する。例えば、推定部123は回帰分析としてガウス過程回帰を用いてその関数を推定し、該関数を含む第2計算モデルを生成する。あるいは、推定部123は回帰分析としてカーネル密度推定または深層ニューラルネットワークを用いてその関数を推定し、該関数を含む第2計算モデルを生成してもよい。
【0057】
推定部123は候補位置と第2評価値との関係の不確実性を含む第2計算モデルを生成してもよい。例えば、推定部123はその不確実性を示す分散を算出し、その分散を含む第2計算モデルを生成してもよい。ガウス過程回帰、カーネル密度推定、および深層ニューラルネットワークのいずれを用いた場合にも、推定部123は分散を含む第2計算モデルを生成し得る。例えば、推定部123は、候補位置と第2評価値との関係を示す関数について、分散などの不確実性を算出してもよい。
【0058】
ステップS129では、設定部121が、生成された第2計算モデルに基づいて新たな候補位置を設定する。例えば、設定部121は関数を用いて新たな候補位置を設定してもよい。
【0059】
ステップS130では、第2評価部125がその新たな候補位置について、第2方策に基づくシミュレーションによって第2評価値を算出する。第2評価部125はステップS127と同じ手法により第2評価値を算出する。
【0060】
ステップS131では、探索部12が、目標位置になり得る候補位置の設定を終了するか否かを所与の終了条件に基づいて判定する。終了条件は、所与の個数の候補位置を設定したことでもよいし、所与の計算時間が経過したことでもよい。あるいは、終了条件は、前回得られた第2評価値と今回得られた第2評価値との差が所与の閾値以下になったこと、すなわち、第2評価値が停留または収束したことでもよい。あるいは、終了条件は、所与の基準を満たす第2評価値が得られたことでもよい。あるいは、終了条件は、候補位置と第2評価値との関係の全体における不確実性(例えば分散)が所与の閾値以下になったことでもよい。
【0061】
終了条件が満たされない場合、すなわち、新たな候補位置の設定を続ける場合には(ステップS131においてNO)、処理はステップS128に戻る。この場合には、ステップS128~S131の処理が繰り返される。候補位置と第2評価値とのペアの個数が増えているので、繰り返されるステップS128において生成される第2計算モデルは、一般に、前回のステップS128において生成された第2計算モデルから変化する。すなわち、繰り返されるステップS128では、推定部123は第2計算モデルを更新する。一例では、ステップS128~S131の処理が繰り返されることで第2計算モデルの精度が上がっていく。別の例では、その繰返し処理によって、第2計算モデルの不確実性が減少していく。すなわち、第2計算モデルが、より確からしいバージョンに更新されていく。このような繰返し処理は、最小化問題、最大化問題などのような最適化問題の解を探索する処理であるといえる。
【0062】
一方、終了条件が満たされた場合には(ステップS131においてYES)、探索部12はステップS12を終了する。
【0063】
一例では、探索部12はステップS12において、計算モデルの生成と新たな候補位置の設定とをベイズ最適化によって実行する。すなわち、探索部12はステップS122,S123の組合せと、ステップS128,S129の組合せとを、ベイズ最適化によって実行してもよい。ベイズ最適化に関する以下の説明は、第1計算モデルおよび第2計算モデルの双方に共通であり、新たな初期の候補位置と、目標位置になり得る新たな候補位置との双方にも共通である。推定部123はガウス過程回帰を用いて、候補位置と評価値との関係を示す関数を推定し、その関数の不確実性を示す分散を算出する。推定部123はそのガウス過程回帰の結果に基づく所与の獲得関数を計算する。設定部121はその獲得関数が最大になる候補位置を新たな候補位置として設定する。獲得関数は任意の方策に基づいてよい。一例では、獲得関数は関数の平均μおよび分散σを用いてμ+κσと表される。平均μは既知の情報の活用(exploitation)を意味し、分散σは探索(exploration)を意味する。係数κは、その活用と探索とのバランスを表すパラメータである。
【0064】
図7はベイズ最適化の概念を例示するグラフである。グラフの横軸は、入力である候補位置xを示す。縦軸は、出力である評価値Eを示す。ガウス過程回帰によって推定される関数をfとすると、E=f(x)である。曲線210はガウス過程回帰によって得られた関数fを示し、これは平均μに対応する。領域220はその関数(関係)の不確実性を示す分散を表す。曲線210上の複数の点は、候補位置と評価値との既知の対応を示す複数のペアを表す。このグラフは、獲得関数の結果を示す曲線230も示す。この例では、設定部121は獲得関数が最大になる候補位置xnewを新たな候補位置として設定する。評価値Epredは、この新たな候補位置に対応する、評価値の予測値である。
【0065】
図5に戻って、ステップS13では、選択部13が複数の候補位置から目標位置を選択する。これは、複数の候補位置のうちの一つが目標位置として決定されることを意味する。例えば、選択部13は複数の候補位置の中で最良の第2評価値を有する候補位置を目標位置として選択する。一例では、選択部13はロボット2および相手装置のそれぞれについて、対応する複数の候補位置から目標位置を選択する。
【0066】
ステップS14に示すように、プログラミング支援装置4はすべての目標位置について処理する。ロボット2のモーションは、目標位置に移動したロボット2の次の開始位置から次の目標位置への移動を更に含み得る。この場合、探索部12は次の開始位置からの経路を探索するシミュレーションによって、次の目標位置の候補である次の候補位置を繰り返し設定する。選択部13は複数の次の候補位置から次の目標位置を選択する。
【0067】
未決定の目標位置が存在する場合には(ステップS14においてNO)、処理はステップS12に戻る。ステップS12では探索部12が、次の目標位置について複数の候補位置をシミュレーションによって設定する。ステップS13では、選択部13が複数の候補位置からその目標位置を選択する。
【0068】
すべての目標位置が決定された場合には(ステップS14においてYES)、処理はステップS15に進む。ステップS15では、プログラム生成部14が、決定された1以上の目標位置にロボット2を位置させるための動作プログラムを生成する。複数の目標位置が決定された場合には、プログラム生成部14はロボット2を個々の目標位置に順に位置させるための動作プログラムを生成する。一例では、プログラム生成部14はロボット2に特化した動作プログラムと、相手装置に特化した動作プログラムとを生成する。
【0069】
ステップS16では、プログラム生成部14が生成された動作プログラムを出力する。例えば、プログラム生成部14は動作プログラムを、ストレージ163などの記憶部に格納してもよいし、ロボットコントローラ3などの他のコンピュータに送信してもよい。あるいは、プログラム生成部14はテキスト、コンピュータグラフィック(CG)による動画または静止画などの形式で動作プログラムをモニタ20上に表示してもよい。プログラミング支援装置4は出力された動作プログラムに対して、更なる干渉チェックなどの追加の処理を実行してもよい。一例では、プログラム生成部14は少なくとも一つの動作プログラムを少なくとも一つのロボットコントローラ3に出力し、それぞれのロボットコントローラ3はその動作プログラムに基づいてロボット2または相手装置を動作させる。
【0070】
図8は目標位置の探索の一例を示す図である。この例では、プログラミング支援装置4は、複数の障害物309を含む作業空間300において、ロボット2および相手装置の合流位置を目標位置として探索する。ロボット2が開始位置310に位置し、相手装置が開始位置320に位置するものとする。図8では、説明を簡単にするために作業空間300を2次元空間として表すが、プログラミング支援装置4は3次元空間における目標位置も同様に探索できることに留意されたい。図8は、作業空間300を表す地図301と、第2方策に基づくシミュレーションによって得られる作業空間300内の第2評価値の分布を表すヒートマップ302とを示す。このヒートマップは、候補位置の第2評価値が低いほど、候補位置が目的位置としてより適切であることを示す。
【0071】
この例では、第1評価部124は、開始位置から直線経路で候補位置に到達するという制約を含む第1方策に基づくシミュレーションによって、初期の候補位置について第1評価値を算出する。第1評価部124は干渉チェックを実行することなくこのシミュレーションを行う。その後、探索部12はN個の初期の候補位置を選択する。地図301は、選択された初期の候補位置の少なくとも一部として、初期の候補位置331,332を示す。初期の候補位置331は障害物309上に設定され、開始位置310,320のそれぞれから該候補位置331までの経路も障害物309と干渉している。開始位置320から初期の候補位置332までの経路も障害物309と干渉している。第2評価部125はそれらの干渉に基づいて初期の候補位置331,332について高い第2評価値を設定するので、ヒートマップ302に示すように、これらの候補位置周辺では第2評価値が高い。図8には示していないが、干渉チェックを実行しない場合にも、干渉が発生しない初期の候補位置が設定され得ることに留意されたい。
【0072】
第2評価部125は、開始位置から他の物体と干渉することなく候補位置に到達するという制約を含む第2方策に基づくシミュレーションによって、新たな候補位置について第2評価値を算出する。地図301はそのシミュレーションによって評価された新たな候補位置341~344を示す。ヒートマップ302は、候補位置341の第2評価値が相対的に高く、候補位置342~344の第2評価値が相対的に低いことを示す。
【0073】
ヒートマップ302内の点群で示すように、探索部12は上記の候補位置に加えて更にいくつかの候補位置を設定し得る。ヒートマップ302は、候補位置342および343の周囲と、候補位置344の周囲とにおいて第2評価値が低いことを示す。図8の例では、選択部13は設定された候補位置の群から候補位置343を目標位置として選択する。更に、選択部13は開始位置310から候補位置343までの経路をロボット2の経路として選択し、開始位置320から候補位置343までの経路を相手装置の経路として選択する。
【0074】
図8に示すように、一例では、探索部12は協働処理におけるロボット2と相手装置との相対的な位置関係に基づいて候補位置を決定する。タスクが実行される絶対位置が与えられない状況下で、探索部12はロボット2と相手装置とが協働処理する位置を候補位置として設定し、複数の候補位置から目標位置を選択する。図8の例では、タスクが実行される位置は動的に目標位置343に決定される。
【0075】
上述したように、プログラミング支援装置4は複数の目標位置を順次決定し得る。例えば、ロボット2がワークの複数の箇所を処理する場合に、プログラミング支援装置4はその決定処理を実行する。図9および図10を参照しながらこの決定処理について説明する。
【0076】
図9は複数の作業位置を有するワークの一例を示す図である。この例では、ワークWは複数の作業位置400を有する。図9は個々の作業位置400をピンのようなマークで表現する。複数の作業位置400は複数の作業領域401~408によってグループ分けされ、したがって、それぞれの作業領域は少なくとも一つの作業位置を含む。一例では、個々の作業領域は個々の作業タスクに対応する。複数の作業領域401~408は、第1作業領域と、該第1作業領域の次に処理される第2作業領域との少なくとも一つのペアを含む。複数の作業領域401~408がこの順に処理される場合には、第1作業領域である作業領域401と、第2作業領域である作業領域402とのペアが存在する。また、作業領域402(第1作業領域)および作業領域403(第2作業領域)のペアも存在する。ワークWでの最後のペアは、作業領域407(第1作業領域)および作業領域408(第2作業領域)のペアである。
【0077】
図9の例でも、エンドエフェクタ21aを有するロボット21と、エンドエフェクタ22aを有するロボット22とがワークWを協働処理する。プログラミング支援装置4は、図10に示すようにその協働処理のための目標位置を決定する。図10は複数の目標位置を順次設定する例を示す図である。
【0078】
探索部12はロボット21およびロボット22のそれぞれについて、初期位置を開始位置として設定する。そして、探索部12は、最初の作業領域401において最初に処理される作業位置でのロボット21およびワークWの相対的な位置関係に基づいて複数の候補位置を設定する。ワークWはエンドエフェクタ22aによって支持されるので、その処理は、ロボット21およびロボット22の相対的な位置関係に基づいて複数の候補位置を設定することであるともいえる。選択部13は作業領域401での作業タスクを開始するための目標位置を複数の候補位置から選択する。この結果、ロボット21,22のそれぞれについて、初期位置からその目標位置までのエアカットパスが得られる。この目標位置は、作業領域401での作業タスクの開始位置である。プログラミング支援装置4はその作業タスクに対応する作業パスを設定する。例えば、プログラミング支援装置4は受付部11によって取得された入力データに基づいて作業パスを設定する。
【0079】
続いて、探索部12はロボット21およびロボット22のそれぞれについて、作業領域401での作業パスの終了位置を次の開始位置として設定する。そして、探索部12は、次の作業領域402において最初に処理される作業位置でのロボット21およびワークWの相対的な位置関係に基づいて複数の候補位置を設定する。選択部13は作業領域402での作業タスクを開始するための次の目標位置を複数の候補位置から選択する。この結果、ロボット21,22のそれぞれについて、作業領域401での終了位置から、作業領域402での作業タスクの開始位置までのエアカットパスが得られる。プログラミング支援装置4はその作業タスクに対応する作業パスを設定する。
【0080】
続いて、探索部12はロボット21およびロボット22のそれぞれについて、作業領域402での作業パスの終了位置を次の開始位置として設定する。そして、探索部12は、次の作業領域403において最初に処理される作業位置でのロボット21およびワークWの相対的な位置関係に基づいて複数の候補位置を設定する。選択部13は作業領域403での作業タスクを開始するための次の目標位置を複数の候補位置から選択する。この結果、ロボット21,22のそれぞれについて、作業領域402での終了位置から、作業領域403での作業タスクの開始位置までのエアカットパスが得られる。プログラミング支援装置4はその作業タスクに対応する作業パスを設定する。
【0081】
その後、プログラミング支援装置4は最後の作業領域408についての処理を終えるまで、隣接する二つの作業領域間のエアカットパスを設定する。そして、プログラミング支援装置4はロボット21,22のそれぞれについて、ワークWを協働処理するための動作プログラムを生成する。
【0082】
このように、一例では、探索部12は、第1作業領域と第2作業領域との少なくとも一つのペアのそれぞれについて、第1作業領域において次の開始位置を設定し、第2作業領域において最初に処理される作業位置でのロボットとワークとの相対的な位置関係に基づいて、複数の次の候補位置を設定する、選択部13はそれぞれのペアについて、複数の次の候補位置から次の目標位置を選択する。
【0083】
プログラミング支援装置4は目標姿勢に加えて、その目標位置におけるロボット2の姿勢である目標位置を決定してもよい。探索部12は複数の候補位置のそれぞれにおいて、該候補位置におけるロボット2の姿勢である候補姿勢をシミュレーションによって繰り返し設定する。この探索において、設定部121は、初期の候補位置に対応する初期の候補姿勢を設定する。第1評価部124は、設定された初期の候補位置および初期の候補姿勢について第1評価値を算出する。推定部123は初期の候補位置および初期の候補姿勢の組合せと第1評価値との関係を示す第1計算モデルを回帰分析によって生成する。その後、探索部12は初期の候補位置および初期の候補姿勢のN個の組合せを選択する。第2評価部125は候補位置および候補姿勢の組合せについて第2評価値を算出する。推定部123は候補位置および候補姿勢の組合せと第2評価値との関係を示す第2計算モデルを回帰分析によって生成する。設定部121はその計算モデルに基づいて、新たな候補位置に対応する新たな候補姿勢を設定する。選択部13は複数の候補姿勢から目標姿勢を選択する。協働処理のシミュレーションにおいては、探索部12は、複数の候補位置のそれぞれにおいて、ロボット2の候補姿勢と相手装置の候補姿勢との相対的な姿勢関係を探索し、その姿勢関係に基づいてそれぞれの候補姿勢を設定してもよい。
【0084】
[効果]
以上説明したように、本開示の一側面に係るプランニングシステムは、ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定する探索部と、複数の候補位置から目標位置を選択する選択部とを備える。前記探索部は、設定された候補位置について、シミュレーションによって評価値を算出する評価部と、候補位置および評価値の関係を示す計算モデルを回帰分析によって生成する推定部と、計算モデルに基づいて新たな候補位置を設定する設定部とを備える。
【0085】
本開示の一側面に係るプランニング方法は、少なくとも一つのプロセッサを備えるプランニングシステムによって実行される。このプランニング方法は、ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定する探索ステップと、複数の候補位置から目標位置を選択する選択ステップとを含む。探索ステップは、設定された候補位置について、シミュレーションによって評価値を算出する評価ステップと、候補位置および評価値の関係を示す計算モデルを回帰分析によって生成する推定ステップと、計算モデルに基づいて新たな候補位置を設定する設定ステップとを含む。
【0086】
本開示の一側面に係るプランニングプログラムは、ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定する探索ステップと、複数の候補位置から目標位置を選択する選択ステップとをコンピュータに実行させる。探索ステップは、設定された候補位置について、シミュレーションによって評価値を算出する評価ステップと、候補位置および評価値の関係を示す計算モデルを回帰分析によって生成する推定ステップと、計算モデルに基づいて新たな候補位置を設定する設定ステップとを含む。
【0087】
このような側面においては、ロボットのモーションの目標位置がシミュレーションおよび回帰分析によって自動的に得られるので、人手による目標位置のティーチングが不要になる。したがって、ロボットのモーションに関するプランニングが効率化される。
【0088】
他の側面に係るプランニングシステムでは、ロボットのモーションは、ロボットの開始位置から目標位置への移動を含み、探索部は、開始位置からの経路をシミュレーションによって探索して、候補位置を設定してもよい。ロボットの経路もシミュレーションによって探索されるので、目標位置だけでなく該目標位置までの移動も考慮したプランニングを効率的に実行できる。
【0089】
他の側面に係るプランニングシステムでは、ロボットのモーションは、目標位置に移動したロボットの次の開始位置から次の目標位置への移動を更に含み、探索部は、次の開始位置からの経路を探索するシミュレーションによって、次の目標位置の候補である次の候補位置を繰り返し設定してもよい。ロボットが順に辿るべき複数の目標位置が自動的に得られるので、ロボットの複雑なモーションに関するプランニングが効率化される。
【0090】
他の側面に係るプランニングシステムでは、ロボットは、それぞれが少なくとも一つの作業位置を含む複数の作業領域が設定されたワークを処理し、複数の作業領域は、第1作業領域と、該第1作業領域の次に処理される第2作業領域との少なくとも一つのペアを含み、探索部は、少なくとも一つのペアのそれぞれについて、第1作業領域において次の開始位置を設定し、第2作業領域において最初に処理される作業位置でのロボットとワークとの相対的な位置関係に基づいて、次の候補位置を設定してもよい。この場合には、作業領域間のロボットの移動が、該ロボットとワークとの相対的な位置関係に基づいて決定される。したがって、余計な拘束条件を導入せずにロボットおよびワークの位置を柔軟に設定しつつ、ロボットのモーションに関するプランニングを効率的に実行できる。
【0091】
他の側面に係るプランニングシステムでは、評価部は、開始位置から候補位置までの経路でのロボットの移動に関する物理量に基づいて評価値を算出してもよい。その物理量に基づいてそれぞれの候補位置が評価されるので、ロボットを効率的に動作させるための目標位置を決定できる。
【0092】
他の側面に係るプランニングシステムでは、探索部は、ロボットが開始位置から候補位置に到達する前に他の物体と干渉するか否かを判定する干渉チェックを含むシミュレーションによって、候補位置を設定してもよい。干渉チェックを導入することで、他の物体と干渉することなくロボットを動作させることが可能になる。
【0093】
他の側面に係るプランニングシステムでは、探索部は更に、候補位置におけるロボットの姿勢である候補姿勢をシミュレーションによって繰り返し設定し、選択部は更に、複数の候補姿勢から、目標位置におけるロボットの姿勢である目標姿勢を選択してもよい。目標位置におけるロボットの姿勢もシミュレーションによって自動的に得られるので、目標姿勢のティーチングも不要になる。したがって、ロボットのモーションに関するプランニングを更に効率化できる。
【0094】
他の側面に係るプランニングシステムでは、探索部は、ロボットと協働してワークを処理する相手装置のモーションをシミュレーションによって更に探索し、ロボットと相手装置とが協働処理する位置を候補位置として設定してもよい。ロボットおよび相手装置の双方のモーションが探索されて、双方が合流する位置が候補位置として設定される。その合流位置のティーチングが不要になるので、協働処理に関するプランニングを効率的に実行できる。
【0095】
他の側面に係るプランニングシステムでは、探索部は、協働処理におけるロボットと相手装置との相対的な位置関係に基づいて、候補位置を設定してもよい。この場合には、その相対的な位置関係に基づいて合流位置が決定される。したがって、余計な拘束条件を導入せずにロボットおよび相手装置の位置を柔軟に設定しつつ、協働処理に関するプランニングを効率的に実行できる。
【0096】
他の側面に係るプランニングシステムでは、評価部は、設定された候補位置までのロボットの移動に関する物理量と、設定された候補位置までの相手装置の移動に関する物理量とについて評価値を算出してもよい。ロボットおよび相手装置の双方の移動に関する物理量によってそれぞれの候補位置が評価されるので、これら二つの機器を効率的に動作させるための目標位置を決定できる。
【0097】
他の側面に係るプランニングシステムでは、探索部は、複数の候補位置のそれぞれにおいて、ロボットの候補姿勢と、相手装置の候補姿勢との相対的な姿勢関係を決定してもよい。ロボットおよび相手装置が協働処理する際の双方の適切な姿勢が自動的に得られるので、これらの姿勢のティーチングも不要になる。したがって、ロボットのモーションに関するプランニングを更に効率化できる。
【0098】
他の側面に係るプランニングシステムでは、評価部は、初期の候補位置について、第1方策に基づくシミュレーションによって評価値を算出する第1評価部と、設定された候補位置について、第1方策より精度が高い第2方策に基づくシミュレーションによって評価値を算出する第2評価部とを備え、探索部は、第1評価部によって算出された評価値に基づいて、複数の初期の候補位置を設定し、複数の初期の候補位置を用いて、第2評価部によって算出された評価値に基づいて新たな候補位置を設定してもよい。初期の候補位置と新たな候補位置とでは、設定される状況が互いに異なる。このような事情を考慮して、評価値を算出するための方策をそれら二つの場面で変えることで、複数の候補位置を効率的に設定できる。
【0099】
他の側面に係るプランニングシステムでは、第1評価部は、ロボットの開始位置から直線経路で候補位置に到達することを第1方策として設定して、評価値を算出し、第2評価部は、開始位置から他の物体と干渉することなく候補位置に到達するという制約を含む第2方策を設定して、評価値を算出してもよい。初期の候補位置についての評価値の算出では、直線経路でその候補位置に到達するという単純な方策を用いることで、その算出に要する時間を短縮できる。加えて、複数の候補位置が特定の領域の範囲に収束していくように、すなわち、解がばらつかないように、新たな候補位置を設定できる。
【0100】
他の側面に係るプランニングシステムでは、推定部は、回帰分析としてガウス過程回帰を用いて、計算モデルを生成してもよい。ガウス過程回帰を用いることで、回帰の計算コストが下がり、また、計算モデルの精度を高めることができる。
【0101】
他の側面に係るプランニングシステムでは、推定部は、関係の不確実性を含む計算モデルを生成し、設定部は、関係の少なくとも一部において不確実性が減少するように、新たな候補位置を設定してもよい。この場合には、候補位置と評価値との関係をより確からしく更新しつつ新たな候補位置が設定されるので、適切であると見込まれる目標位置を得ることができる。
【0102】
他の側面に係るプランニングシステムは、現実空間において選択された目標位置にロボットを位置させるための動作プログラムを生成するプログラム生成部を更に備えてもよい。この場合には、ロボットを目標位置へと動作させるための動作プログラムを効率的に生成できる。
【0103】
他の側面に係るプランニングシステムでは、ロボットのモーションは、ロボットのエンドエフェクタの開始位置から目標位置への移動を含み、探索部は、開始位置からの経路をシミュレーションによって探索して、該エンドエフェクタについての候補位置を設定してもよい。複雑な動作をすることが多いエンドエフェクタの目標位置のティーチングが不要になるので、ロボットの移動に関するプランニングが効率化される。
【0104】
他の側面に係るプランニングシステムでは、探索部は、エンドエフェクタについての経路をロボットの少なくとも一つの関節の動きに基づいて探索してもよい。いわゆる関節空間の観点からエンドエフェクタの経路が探索されるので、ロボットが実際に実行可能な経路を効率的に探索できる。
【0105】
他の側面に係るプランニングシステムでは、ロボットのモーションは、ロボットを支持する無人搬送車についての開始位置から目標位置への移動を含み、探索部は、開始位置からの経路をシミュレーションによって探索して、該無人搬送車についての候補位置を設定してもよい。AGVの目標位置のティーチングが不要になるので、ロボットの移動に関するプランニングが効率化される。
【0106】
本開示の一側面に係るプランニングシステムは、目標値の候補である候補値をシミュレーションによって繰り返し設定する探索部と、複数の候補値から目標値を選択する選択部とを備える。探索部は、初期の候補値について、第1方策に基づくシミュレーションによって評価値を算出し、初期の候補値および評価値の関係を示す第1計算モデルを回帰分析によって生成し、第1計算モデルに基づいて複数の初期の候補値を設定し、複数の初期の候補値を用いて設定された候補値について、第1方策より精度が高い第2方策に基づくシミュレーションによって第2評価値を算出し、設定された候補値および第2評価値の関係を示す第2計算モデルを回帰分析によって生成し、第2計算モデルに基づいて新たな候補値を設定する。
【0107】
このような側面においては、目標値がシミュレーションおよび回帰分析によって自動的に得られるので、人手による目標値のティーチングが不要になる。その自動処理において、初期の候補値と新たな候補値とでは、設定される状況が互いに異なる。このような事情を考慮して、評価値を算出するための方策をそれら二つの場面で変えることで、複数の候補値を効率的に設定できる。これらの結果、目標値の設定を含むプランニングが効率化される。
【0108】
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上記の例に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0109】
本開示に係るプランニングシステムは、ロボットのモーションに関する目標位置以外の目標値を設定するために用いられてもよい。プランニングシステムは、上記の例と同様の手法により、目標値の候補である候補値をシミュレーションによって繰り返し設定し、複数の候補値から目標値を選択してよい。一例では、プランニングシステムは、任意の装置の制御に関する目標値の候補である候補値をシミュレーションによって繰り返し設定し、複数の候補値からその目標値を選択する。上記の例における目標位置および候補位置はそれぞれ、目標値および候補値の一例である。ロボットのモーションは装置の制御の一例である。
【0110】
プランニングシステムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上述した機能モジュール群の少なくとも一部は、その機能に特化した論理回路により構成されていてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
【0111】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップまたは処理の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0112】
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。
【符号の説明】
【0113】
1…ロボットシステム、2…ロボット、3…ロボットコントローラ、4…プログラミング支援装置、5…エンドエフェクタ、11…受付部、12…探索部、13…選択部、14…プログラム生成部、21,22…ロボット、21a,22a…エンドエフェクタ、121…設定部、122…評価部、123…推定部、124…第1評価部、125…第2評価部、310,320…開始位置、331,332,341~344…候補位置、343…目標位置、400…作業位置、401~408…作業領域、W…ワーク。
【要約】
【課題】目標値の設定を含むプランニングの効率化。
【解決手段】一例に係るプランニングシステムは、ロボットのモーションに関する目標位置の候補である候補位置をシミュレーションによって繰り返し設定する探索部と、複数の候補位置から目標位置を選択する選択部とを備える。前記探索部は、設定された候補位置について、シミュレーションによって評価値を算出する評価部と、候補位置および評価値の関係を示す計算モデルを回帰分析によって生成する推定部と、計算モデルに基づいて新たな候補位置を設定する設定部とを備える。
【選択図】図4
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10