(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022042972
(43)【公開日】2022-03-15
(54)【発明の名称】オンラインロボット動作計画のフレームワーク
(51)【国際特許分類】
B25J 9/22 20060101AFI20220308BHJP
【FI】
B25J9/22 A
【審査請求】未請求
【請求項の数】22
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021133921
(22)【出願日】2021-08-19
(31)【優先権主張番号】17/011,428
(32)【優先日】2020-09-03
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【弁理士】
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】シェン-チュン リン
(72)【発明者】
【氏名】加藤 哲朗
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS01
3C707BS10
3C707KS03
3C707KS04
3C707KT01
3C707KT06
3C707LS15
3C707NS02
(57)【要約】
【課題】ロボット制御器と通信する外部コンピュータを使用したロボットの動作計画技術を提供する。
【解決手段】カメラ又はセンサシステムはスタート及びゴール地点、並びに障害物データを含む入力シーン情報をコンピュータに提供する。コンピュータはロボットのツールの動作をスタート及びゴール地点、並びに障害物環境に基づいて計画し、ロボット動作はサンプリングベース及び最適化ベースの計画アルゴリズムの直列又は並列組合せを使用し計画される。直列組合せでは、サンプリング法で実行可能な経路が見いだされ、最適化方法が経路の品質を向上させる。並列組合せでは、サンプリング及び最適化の両方が使用され、計算時間、経路の品質等の要因に基づいて経路が選択される。コンピュータはロボット制御器へ転送するために計画された密集経由地点をまばらな命令地点へと変換し、制御器はロボット運動学及び補間地点を計算しロボットの動作を制御する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ツールの経路のスタート地点及びゴール地点、並びに回避するべき障害物のデータを含むロボット上の前記ツールの前記経路を計画するための入力情報を提供することと、
サンプリングベースの動作計画方法及び最適化ベースの動作計画方法の並列組み合わせ又は直列組み合わせの一方を使用して計画経路を計算し選択することを含む、プロセッサとメモリを有するコンピュータにより前記入力情報に基づいて経由地点のセットを備えた前記計画経路を計算し選択することと、
前記コンピュータと通信するロボット制御器により前記ロボット上の前記ツールが前記計画経路に追従するようロボットの関節の動作を計算することと、
を含む、産業用ロボットの動作計画方法。
【請求項2】
入力情報の提供は、作業空間を描写するカメラ画像又はセンサデータを提供することと、前記スタート地点及び前記ゴール地点を前記カメラ画像又はセンサデータから決定することと、を含み、前記スタート地点及び前記ゴール地点はそれぞれ3次元(3D)における位置及び方向を含む、請求項1に記載の方法。
【請求項3】
前記障害物を定義する前記データは前記カメラ画像又はセンサデータのいずれかにより決定されるか、又は別の情報源より3Dモデルデータとして提供される、請求項2に記載の方法。
【請求項4】
前記サンプリングベースの動作計画方法は、提案された経由地点のランダムツリー構造を構築し、最終的に前記スタート地点及び前記ゴール地点を衝突せず接続する経由地点を選択することにより前記計画経路上の前記経由地点を決定する、請求項1に記載の方法。
【請求項5】
前記最適化ベースの動作計画方法は、前記スタート地点から前記ゴール地点までの前記経由地点を経路の品質のために目的関数を使用し、また衝突回避のために拘束関数を使用して反復計算することにより、前記計画経路上の前記経由地点を決定する、請求項1に記載の方法。
【請求項6】
計画経路の計算と選択は前記サンプリングベースの方法と前記最適化ベースの方法の直列組み合わせを使用することを含み、前記サンプリングベースの方法は前記入力情報に基づいて初期経路を計算し、前記最適化ベースの方法は前記入力情報に基づいて、また前記初期経路を初期参照経路として使用して前記計画経路を計算する、請求項1に記載の方法。
【請求項7】
処理のリセットが起こっていない場合における、後に続くロボットタスクにおいては、前記初期参照経路を提供するために初期参照生成処理が前記サンプリングベースの方法の代わりに使用される、請求項6に記載の方法。
【請求項8】
前記初期参照生成処理は、過去に計算された経路のリポジトリから経路候補を選択し、前記経路候補を転置及び拡縮して第一の地点と最後の地点が前記スタート地点及び前記ゴール地点にそれぞれ一致するような前記初期参照経路を生成することを含む、請求項7に記載の方法。
【請求項9】
計画経路の計算と選択は、前記サンプリングベースの方法と最適化ベースの方法の並列組み合わせを使用することを含み、前記サンプリングベースの方法及び前記最適化ベースの方法はそれぞれ前記入力情報に基づいて提案経路を計算し、前記サンプリングベースの方法と前記最適化ベースの方法の両方が提案経路を提供後、前記計画経路はより高い品質を持つ前記提案経路として選択され、品質は少なくとも経路長と経路の滑らかさとして決定される、請求項1に記載の方法。
【請求項10】
待ち時間の閾値に達したときは前記サンプリングベースの方法又は前記最適化ベースの方法のうち一方のみが提案経路を提供し、前記提案経路の前記品質が予め定義された品質指標値を下回らない限り、提供される前記提案経路は前記計画経路として指定される、請求項9に記載の方法。
【請求項11】
前記コンピュータにより前記計画経路を表す命令地点の削減されたセットを計算することと、ここで前記計画経路中の経由地点の数は命令地点の数よりも大きく、
前記命令地点のセットを前記ロボット制御器に転送し前記命令地点に基づいて前記ロボットの関節動作を計算することと、ここで前記命令地点の削減されたセットの計算は前記計画経路の前記経由地点をフィットさせるためにスプライン曲線関数を計算することを含み、ここで0から1の範囲の値を持つアーク長パラメーターは前記スプライン曲線関数上の位置を定義し、
前記アーク長パラメーター及び前記命令地点の数に基づいて前記スプライン曲線関数を前記各命令地点で評価することと、を更に含む、請求項1に記載の方法。
【請求項12】
ロボットの関節動作の計算は逆運動学計算のタイプを選択することと、前記逆運動学計算を実行することと、前記命令地点間の補間地点を計算することと、を含む、請求項1に記載の方法。
【請求項13】
前記補間地点に関連するロボットツール動作命令を定義すること、関節動作命令及び前記ツール動作命令を前記ロボットへ提供することと、を更に含む、請求項12に記載の方法。
【請求項14】
サンプリングベースの動作計画方法及び最適化ベースの動作計画方法の並列組み合わせ又は直列組み合わせの一方を使用して計画経路を計算し選択することを含み、プロセッサとメモリを有するコンピュータにより、前記計画経路のスタート地点及びゴール地点及び回避すべき障害物を定義するデータを含む入力情報に基づいて経由地点のセットを含む前記計画経路を計算し選択することと、
前記計画経路を示す削減された命令地点のセットを前記コンピュータにより計算することと、
前記削減された命令地点のセットをロボット制御器へ転送することと、
前記ロボット制御器により前記命令地点に基づいて、ロボット上のツールが前記計画経路に追従するようロボット関節動作を計算することと、
を含む、産業用ロボットの動作計画方法。
【請求項15】
ツールの経路のスタート地点及びゴール地点、並びに回避するべき障害物のデータを含む作業空間を描写する入力情報を提供する手段と、
サンプリングベースの動作計画方法と最適化ベースの動作計画方法の組み合わせを使用することを含む、前記入力情報に基づき経由地点のセットを備える計画経路を計算及び選択し、及び、前記計画経路における経由地点の数は命令地点の数より大きい、前記計画経路を表現する削減された数の命令地点のセットを計算するように構成されたプロセッサ及びメモリを有する、入力情報の提供を行うための前記手段と通信するコンピュータと、
前記コンピュータより受信した前記命令地点の削減されたセットに基づいてロボット上の前記ツールが前記計画経路を追従するようなロボット関節動作を計算するために構成されている前記コンピュータと前記ロボットと通信するロボット制御器と、
を備える、産業用ロボットのための経路計画システム。
【請求項16】
前記入力情報を提供する手段は前記作業空間を描写するカメラ画像を提供するカメラ又はセンサデータを提供するセンサを含み、前記スタート地点及び前記ゴール地点を前記カメラ画像又はセンサデータから決定し、前記障害物を定義する前記データは前記カメラ画像又はセンサデータから決定されるか、又は別の情報源から3Dモデルデータとして提供される、請求項15に記載のシステム。
【請求項17】
計画経路の計算及び選択は前記サンプリングベース及び最適化ベースの方法の直列組み合わせを使用することを含み、前記サンプリングベースの方法は初期経路を前記入力情報に基づいて計算し、前記最適化ベースの方法は前記計画経路を前記入力情報に基づいて、また前記初期経路を初期参照経路として使用して計算する、請求項15に記載のシステム。
【請求項18】
処理のリセットが起こっていない場合に後に続くロボットタスクにおいては、前記初期参照経路を提供するために初期参照生成処理が前記サンプリングベースの方法の代わりに用いられ、前記初期参照生成処理は経路候補を過去に計算された経路のリポジトリから選択し、前記経路候補を転置及び拡縮することにより最初の地点及び最後の地点が前記スタート地点及び前記ゴール地点にそれぞれ一致する前記初期参照経路を生成することを含む、請求項17に記載のシステム。
【請求項19】
計画経路を計算し選択することは前記サンプリングベース及び最適化ベースの方法の並列組み合わせを使用し、前記サンプリングベースの方法及び前記最適化ベースの方法はそれぞれ前記入力情報に基づいて提案経路を計算し、前記サンプリングベースの方法及び前記最適化ベースの方法の双方により提案経路を提供されると、前記提案経路のうちより高い品質を持つものが前記計画経路として選択され、品質は少なくとも経路長及び経路の滑らかさに基づいて決定される、請求項15に記載のシステム。
【請求項20】
待ち時間の閾値に達したときに前記サンプリングベースの方法又は前記最適化ベースの方法のうち一方のみが提案経路を提供した時は、前記提案経路の前記品質が予め定義された品質指標値を下回らない限り、前記提案経路は前記計画経路として指定される、請求項19に記載のシステム。
【請求項21】
前記計画経路を表す命令地点の削減されたセットの計算は前記計画経路の前記経由地点をフィットさせるためのスプライン曲線関数を計算することと、ここで0から1の範囲の値を持つアーク長パラメーターは前記スプライン曲線関数上の位置を定義し、前記アーク長パラメーター及び前記命令地点の数に基づいて前記各命令地点において前記スプライン関数を評価することと、を含む、請求項15に記載のシステム。
【請求項22】
前記ロボット制御器によるロボットの関節動作の計算は、逆運動学計算のタイプを選択することと、前記逆運動学計算を実行することと、前記命令地点の間の補間地点を計算することと、を含み、前記ロボット制御器が前記補間地点に関連したロボットツール動作命令を更に定義し、関節動作命令及び前記ツール動作命令を前記ロボットに提供する、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般的に産業用ロボットの動作制御の分野に関し、より具体的には、スタート及びゴール地点並びに障害物環境に基づいたロボット動作を計画するためにロボット制御器から分離されたコンピュータを使用するロボットの動作制御技術に関する。ここでロボット動作計画はサンプリングベース及び最適化ベースの計画アルゴリズムの直列又は並列組み合わせを使用し、ロボット制御器へ転送するために計画された密集した経由地点をまばらな命令地点へと変換することにより行われる。
【背景技術】
【0002】
産業用ロボットの用途として、様々な製造、組み立て、材料運搬の実行が広く知られている。あるロボット応用では、全てのロボットタスクに応じて、スタート及び/又はゴール地点が変化する。例えば、ロボットのタスクが入庫コンベヤーから部品を取り上げ、その部品を輸送コンテナ中の空いた場所に置くことである場合などが該当する。このような応用では、各タスクに対して新しいロボット動作経路をリアルタイムで計算しなければならない。更に、多くのロボットの作業空間環境では、障害物が存在し、ロボットの動作経路上に位置し得る。障害物は機械や備品といった恒久的な構造物であるかもしれず、又は障害物は一時的又は可動性であるかもしれない。ロボットとあらゆる障害物の衝突は絶対に避けられなければならない。
【0003】
スタート及びゴール地点、並びに障害物環境に基づいてロボットのツール経路動作を計画する様々な技術が当分野で知られている。ある一般的に使用される技術はサンプリングベースの方法であり、ランダムなサンプルの経由地点が定義され、スタート地点からゴール地点が接続されるまで、衝突の起こらない経由地点のツリーを延ばしていく。別の既知の技術は最適化ベースの方法であり、衝突しない経路が得られるまで、スタート地点からゴール地点までの経路に沿った経由地点を最適化目的及び拘束関数を使用して繰り返し修正していく。サンプリングベースの方法の変形例を含むその他の技術も存在する。
【0004】
動作計画計算をロボット制御器とは分離されたコンピュータ上で行うことがロボットの動作計画における最近のトレンドである。衝突しない経路を見出すためのサンプリングベースの動作計画を実行し、次にロボットツール軌道を作り出すために補間地点を計算し、そして軌道をロボット制御器へ転送しロボットが実行するタイプのシステムが知られている。しかしながら、これらのシステムは集中的な通信帯域の要求を生じさせ、ロボット制御器のロボット動作計画計算機能の利点を享受することに失敗し、所望の品質の経路計画を提供できないことがある。
【0005】
前述の状況を鑑み、高品質な経路計画を提供し、ロボットの動作中にリアルタイムで実行するために充分高速で、ロボット制御器固有の計算性能の利点を享受できるロボット動作計画技術が必要とされている。
【発明の概要】
【0006】
本開示の教示に従い、ロボット制御器と通信する外部コンピュータを使用したロボットの動作計画技術が開示される。カメラ又はセンサシステムはスタート及びゴール地点、並びに障害物データを含む入力シーン情報を外部コンピュータに提供する。コンピュータはロボットのツールの動作をスタート及びゴール地点、並びに障害物環境に基づいて計画し、ここでロボット動作はサンプリングベース及び最適化ベースの計画アルゴリズムの直列又は並列組み合わせを使用して計画される。直列組み合わせでは、まずサンプリング法において実行可能な経路が見いだされ、最適化方法が経路の品質を向上させる。並列組み合わせでは、サンプリング及び最適化法の両方が使用され、計算時間、経路の品質及びその他の要因に基づいて経路が選択される。コンピュータはロボット制御器へ転送するために計画された密集した経由地点をまばらな経路地点へと変換し、制御器はロボット運動学及び補間地点を計算し、これらを使用してロボットの動作を制御する。
【0007】
開示される装置及び方法の追加の特徴は、添付の図面と併せて考慮した以下の説明及び添付された請求項から明らかになろう。
【図面の簡単な説明】
【0008】
【
図1】
図1は、各加工対象物を動かすたびに新たな経路を計算しなければならなく、作業空間が回避すべき1つ以上の障害物を含む環境にて、取り上げ、移動、そして置く動作を行っている産業用ロボットの図である。
【
図2】
図2は既知の従来の技術におけるロボット制御器と通信する外部コンピュータを使用したロボット動作経路計画システムのブロック図である。
【
図3】
図3は本開示の実施形態における、ロボット制御器と通信する外部コンピュータを使用したロボット動作経路計画システムのブロック図である。
【
図4】
図4は
図3の本開示の実施形態における最適化及びサンプリング動作計画方法の組み合わせを使用したシステムの動作計画モジュールのブロック図である。
【
図5】
図5は本開示の実施形態による
図4の動作計画モジュールにてサンプリング及び最適化動作計画の直列組み合わせを用いる経路選択方法のフローチャートである。
【
図6】
図6は本開示の実施形態による
図4の動作計画モジュールにてサンプリング及び最適化動作計画の並列組み合わせを用いる経路選択方法のフローチャートである。
【
図7】
図7は本開示の実施形態による
図4の動作計画モジュールにて使用される経路関数フィッティングモジュールのブロック図である。
【発明を実施するための形態】
【0009】
本開示の実施形態に関する、最適化とサンプリング法の組み合わせ及び経路関数フィッティングを使用したロボットの動作計画技術に向けられた以下の議論は単に例示的な性質のものであり、開示された装置及び技術、又は応用や用途を限定することを決して意図していない。
【0010】
産業用ロボットを様々な製造、組み立て、材料運搬の動作に使用することは広く知られている。これらの動作には、ロボットが、ある動作と次の動作で異なるスタート地点及び/又は目的(ゴール)地点を有する経路に沿って動くようプログラムされなければならないものがある。例えば、移動、取り上げ、及び置く動作では、コンベヤーに乗って入庫する部品はロボットによって毎回異なる位置から取り上げられるかもしれず、ロボットによって輸送コンテナに置かれる部品は、輸送コンテナ内で各々異なる指定された場所に置かれるであろう。或いは、部品で一杯の容器からロボットによって部品が取り上げられ、出庫コンベヤーに載せられてもよい。他にもロボットの各独立したタスク又は動作に対して新たな経路を計算しなければならない多くの応用例が存在する。
【0011】
更に、多くのロボット作業空間環境では、障害物が存在し、それはロボットの動作経路上に存在し得る。それは、1つ以上の障害物がスタート及びゴール地点の間、もっと一般的に言えば、ロボットの現在位置とロボットの目的位置の間に位置しているかもしれない。障害物は機械や備品といった恒久的な構造物であるかもしれず、又は障害物は一時的又は可動性であるかもしれない。
【0012】
図1は、作業空間の環境が回避すべき1つ以上の障害物を含み、各加工対象物を動かす度に新たな経路を計算しなければならないという上述したタイプのシナリオにおいて、取り上げ、移動、及び置く動作を行っている産業用ロボットの図である。ロボット100はグリッパー102を有し、作業空間104内にて動作する。ロボット100の動作は、典型的にはロボット100とケーブル112を介して通信する制御器110により制御される。当技術分野で既知のように、制御器110はロボット100に関節の動作命令を提供し、ロボット100の関節のエンコーダーから関節の位置データを受け取る。制御器110はまたグリッパー102の動作を制御するために命令を提供する。
図1の取り上げ、移動、及び置くシナリオは、説明及び例示のみを目的とする。本開示の最適化動作計画技術は任意のタイプのロボット動作に応用可能であり、グリッパー102は任意のタイプのロボットツールに置き換えられてもよい。
【0013】
ロボットのツール経路を以下に議論する方法で計算するためにコンピュータ120が使用される。カメラ122はコンピュータ120と通信し、作業空間104の画像を提供する。ロボット100により操作する加工対象物の位置及び方向、及び/又はロボット100により加工対象物が置かれる場所、及び作業空間104内の移動中又は一時的な障害物を特定するために、カメラ122からの画像を使用してもよい。カメラ122は加工対象物のスタート及びゴール地点(位置と方向)に適した任意のその他のタイプのセンサに置き換えられ、又はその他のタイプのセンサを補強するために使用されてもよい。
【0014】
加工対象物130は作業空間104へ、コンベヤー140に乗って入ってくる。ロボット100のタスクは、コンベヤー140から加工対象物130を取り上げ、加工対象物130を移動し、コンテナ150(輸送コンテナなど)の内部に置くことである。スタート地点160の位置及び方向はコンベヤー140上の加工対象物130の位置及びコンベヤー140の速度に関する情報に基づいて定義される。グリッパー102の方向を決定するためにスタート地点160における加工対象物130の方向が必要である。同様に、コンテナ150内で次に利用可能な区画又は位置についての情報に基づいて、ゴール地点162の位置及び方向が定義される。
図1に、スタート地点160とゴール地点162の間の位置にある、1つの中間地点164が示されている。実際のロボットの動作計画計算では、全ての経路の制約を満たすために複数の途中の経路地点が計算され、そして複数の経路地点を通る滑らかなツール経路が計算される。繰り返しになるがこれは多様なスタート及びゴール地点の単なる一例であり、他の多くの例が想定され得る。例えば、加工対象物130が部品で一杯の容器から取り上げられ、コンベヤー140に特定の姿勢で置かれるといった、逆の順で動作が行われてもよい。
【0015】
スタート地点160とゴール地点162の間に、壁として示されている障害物170が存在している。コンテナ150の側面がロボット100により回避され経路計画にて考慮されるべき障害物を表すことが理解されよう。他の障害物も存在し得る。
【0016】
コンベヤー140に乗って到着する各加工対象物130に対して、ロボット100がスタート地点160にて加工対象物130を取り上げるためにホーム又はアプローチ位置から経路区分180に沿ってグリッパー102を動かし、加工対象物130をゴール地点162に向かって経路182に沿い障害物170を避けながら移動し、次の加工対象物130に備えてグリッパー102をホーム又はアプローチ位置へ戻す新しい経路を、制御器110及びコンピュータ120は計算しなければならない。ロボット110が1つの加工対象物130を移動し次の加工対象物を取り上げるために戻ることと同じくらい速く、経路計算をリアルタイムで行われなければならないため、新しい経路は制御器110及びコンピュータ120により非常に速く計算されなければならない。
【0017】
図2はロボット制御器110と通信するコンピュータ120を使用したロボット動作経路計画の既知の従来技術のシステムのブロック図である。入力シーンの描写を提供するために、センサ処理及びタスク管理モジュール210はカメラ122から画像を、又は異なるタイプのセンサからデータを受け取る。簡潔に言えば、モジュール210は、コンベヤーに乗って入ってくる部品又は容器から取り出す特定の部品、並びに関連する目的位置及び姿勢(例えばコンベヤー上の、又はコンテナ内の)を識別することにより、今後のロボットタスクのためのスタート及びゴール地点を決定する。特に動く障害物が存在する、又は存在する可能性がある場合には、作業空間の障害物の位置もモジュール210により提供されてもよい。
【0018】
動作計画モジュール220はモジュール210からのデータに基づいてツール経路を計算する。スタート及びゴール地点、並びに障害物環境に基づいてロボットのツール経路動作を計画する様々な技術が当分野で知られている。ある一般的に使用される技術はサンプリングベースの方法であり、ランダムなサンプルの経由地点が定義及び評価され、衝突の起こらない経由地点のツリーをスタート地点からゴール地点が接続されるまで延ばしていく。ある特定のサンプリングベースの技術はrapidly-exploring random tree(RRT)メソッドと称される。RRTでは、初期構成から最終構成まで、衝突しない経路を発見するまでランダムに空間を埋めるノードのツリーを迅速に構築する。障害物を表現する面/空間又は点群のデータ、並びに初期及び最終の加工対象物構成(スタート及びゴール地点並びに姿勢)が与えられれば、動作シーケンスが存在するならばそれを求める場合にRRTを使用することができる。RRT動作計画の各ノードは、有効又は実現可能な経由地点として含めるために、衝突しないように評価され決定されなければならない。また、各候補経由地点はランダムに配置されるため、初期条件及び境界条件が同一であってもRRTは毎回異なる解を求め得る。更に、RRTにより定義された経路は本質的に屈曲しており(ジグザグ形)、各ステップにおける「最良の」候補経由地点は通例理想的な方向から外れている。従って、RRTに基づいた動作計画技術はある用途において役に立たないと認められてきた。
【0019】
軌道生成モジュール230は動作計画モジュール220からツール経路動作計画を受け取り、全体の軌道を計算する。
図2の従来の技術のシステムでは軌道生成モジュール230は全ての軌道補間地点を計算し、ロボットツール動作のための密集した点群を生成する。軌道補間地点はコンピュータ120からロボット制御器110へ転送され、補間モジュール260が受け取る。軌道補間地点はコンピュータ120上の軌道生成モジュール230により既に計算されているため、制御器110上の補間モジュール260は軌道補間地点を受け取り、ロボット100の関節モーターを既知の方法で駆動するサーボ―モーター制御モジュール270へ受け渡すだけである。
【0020】
図2に示されるようなタイプのシステムが有効であることは実証されている。しかしながら、これらのシステムには幾つかの不利益がある。
図2のシステムはロボット制御器110のソフトウエア機能をバイパスし、制御器110を充分に活用しないばかりかコンピュータ120に余分な計算負荷をかける。制御器110の計算機能をバイパスすることで、制御器110自身が運動学及び補間計算をより多く行えた場合に比べてロボット動作が遅くなり、より滑らかでなくなり得る。また、データ交換(各補間期間における多数の地点のリアルタイムデータストリーミング)によりさらに負荷がかかり、データパケットロスによりロボット動作が不連続になってしまう。そして、
図2の従来のシステムは典型的にサンプリングベースの動作計画に依存しており、不要にジグザグな動作及びランダムな動作パターンを生み出すという短所を持っている。
【0021】
本開示は従来技術のシステムの幾つかの短所を克服するシステム及び方法を説明する。これらの技術は以下に詳細に議論される。
【0022】
図3は本開示の実施形態における、ロボット制御器と通信する外部コンピュータを使用したロボット動作経路計画システムのブロック図である。
図3のシステムは
図1に示すように制御器110と通信するコンピュータ120を使用する。しかし、
図3のシステムはコンピュータ120と制御器110両方において
図2のシステムとは異なるプログラミング構成を含む。具体的には、コンピュータ120は割り当てられたサイクル時間内で可能な限り最も良い品質の経路を計画するよう構成されていて、制御器110は滑らかで合理的なツール動作を提供するためにその機能の全てをロボット運動学及び補間地点の計算に使用する。
【0023】
図3にて、センサ処理及びタスク管理モジュール210は
図2に対して上述のように動作する。言い換えれば、モジュール210はカメラ画像又はセンサデータを受信し、今後のロボットタスクのために障害物データと共にスタート及びゴール地点を提供する。スタート及びゴール地点並びに障害物データは動作計画モジュール320へ提供される。
図3の動作計画モジュール320は
図2の動作計画モジュール220と大きく異なる。動作計画モジュール320の詳細は
図4、
図5、及び
図6を参照して以下に議論する。
【0024】
動作計画モジュール320はロボット制御器110の最上位プログラム実行モジュール340へ計画経路地点のまばらなシーケンスを提供する。プログラム実行モジュール340はオペレーティングシステムとの相互作用、ユーザーインターフェース、データインターフェース、及びその他のソフトウエアモジュールの制御のようなハイレベルな機能を取り扱う。プログラム実行モジュール340は計画モジュール350へまばらな計画経路地点を提供する。計画モジュール350はまばらな計画経路地点の解釈、使用するべき逆運動学計算の決定(全ての関節を同時に計算するか、又は最初の3つの関節を最後の3つの関節から独立して最初に計算するか、等)を含む幾つかの機能を実行する。計画モジュール350はまたロボットに取り付けられたツール、例えばグリッパーに対しては掴む又は放す命令、若しくは溶接作業においてトーチをオン/オフする命令のトリガポイントを定義する。
【0025】
計画モジュール350は、
図2の同様の番号のモジュールと同じ補間モジュール260へロボット動作及び制御命令を提供する。しかしながらこの場合に補間モジュール260は、前述したようにロボット100の関節モーターを駆動するサーボモーター制御モジュール270の動作命令の完全なセットを定義するために補間地点を追加する。
【0026】
コンピュータ120からプログラム実行モジュール340へまばらな地点のシーケンスを提供することにより、ロボット制御器110の本質的な性能を全て使用することができ、結果として、ロボット100が動作計画モジュール320によって計算された経路に沿って迷うことなく滑らかに動くようなロボット運動学の計算、補間地点、及び動作命令が提供される。
【0027】
図4は
図3のシステムにおける、本開示の実施形態における最適化及びサンプリング動作計画方法の組み合わせを使用する動作計画モジュール320のブロック図である。上述の通り、動作計画モジュール320はコンピュータ120上で実行されるソフトウエアであり、スタート及びゴール地点並びに障害物環境データをセンサモジュール210から受け取る。
【0028】
動作計画モジュール320は最適化法計算モジュール410及びサンプリング法計算モジュール420の双方を含む。最適化モジュール410とサンプリングモジュール420の双方はスタート及びゴール地点並びに障害物データを受け取り、モジュール410及び420は独立して動作してもよい。最適化法計算モジュール410はスタート地点からゴール地点への直線であってもよい初期参照経路又は他の初期参照(後述)からスタートし、目的関数及び拘束関数を含む最適化ルーチンを実行する。最適化ルーチンは拘束を満たし目的関数が最小になるまで計算を繰り返し、結果として最小距離及び最高の経路品質(滑らかさ、曲率等)の衝突しない経路が得られる。サンプリング法計算モジュール420は前述の方法でスタート地点からゴール地点までの衝突しない経路が得られるまでランダムツリー育成計画法を実行する。最適化モジュール410及びサンプリングモジュール420からの出力は
図4の点線の矢印で示され以下に論じられるように幾つかの異なる方法で使用され組み合わされてもよい。
【0029】
図4に示される図は2次元であるが、今回開示される技術における全ての計算は適用可能なアイテムに対しては3次元であり6つの自由度(DOF)を含むことが理解されよう。スタート及びゴール地点は位置(3つの座標)及び姿勢(3つの角度方向)を含む。障害物はCADの面又は立体モデル、又はセンサモジュール120からの点群又は表面データとして3次元オブジェクトで定義される。計算されたツール経路は3次元空間上に存在し、ツール中心点の位置のみでなく方向(6DOF)も含む。加えて、ロボットツールと障害物の間だけでなくロボットの全ての部品/アームと障害物の間の衝突回避計算が行われる。
【0030】
動作計画モジュール320は、ロボットの各サイクルに対して最適化モジュール410及び/又はサンプリングモジュール420からの候補計画経路から使用すべき最良の経路を選択する経路選択モジュール430を含む。経路選択モジュール430は最適化及びサンプリング経路の直列組み合わせ又は並列組み合わせの異なる二通りの中から一通りの方法で構成されてもよい。経路選択モジュール430の二通りの構成(それぞれ430A及び430Bとして特定される)は
図5及び
図6を参照して以下に議論される。最適化及びサンプリングアルゴリズムの組み合わせを用いることで、経路選択モジュール430は可能な限り最高な計画ツール経路を得るために両方の方法の長所を利用することができ、各方法の短所を避けることができる。
【0031】
経路選択モジュール430は経路関数フィッティングモジュール440へ計画ツール経路を提供する。経路選択モジュール430からの計画ツール経路は経由地点の間で衝突が起こらないことを補償するために必要な経由地点のかなり密集したシーケンスを含む。ロボット制御器110へ転送するために、経路関数フィッティングモジュール440は経由地点の密集したシーケンスを命令地点のまばらなシーケンスへと変換する。経路関数フィッティングモジュール440により提供される地点のまばらなシーケンスはロボット制御器によって経路選択モジュール430による元の経由地点の密集したシーケンスに合致するように補間地点を計算することが可能なように計算される。経路関数フィッティングモジュール440(後述)は命令地点のまばらなシーケンスをツール動作インターフェースモジュール450へ提供し、ツール経路動作インターフェースモジュール450は前述のようにまばらな命令地点をロボット制御器110上の最上位プログラム実行モジュール340へ転送する。
【0032】
図5は本開示の実施形態における
図4の動作計画モジュールにてサンプリング及び最適化動作計画の直列組み合わせを用いる経路選択方法500のフローチャートである。(
図4の)動作計画モジュール320のブロック図が参照のために
図5の左側に示される。フローチャート
図500は動作計画モジュール320の経路選択モジュール430Aにてエンコードされる経路選択器のある実施形態(直列組み合わせ)を示す。
【0033】
ロボット動作のサイクルはロボットがスタート地点で加工対象物を取り上げて一時停止し、加工対象物をゴール地点まで動かし、置いて一時停止し、別の加工対象物を取り上げるために準備位置まで戻ることを含む。動作計画モジュール320における計算、ひいてはフローチャート
図500における計算は各ロボット動作サイクルに対して行われる。
【0034】
入力線502において、現在のロボットサイクル(又はタスク)のためのデータがカメラ又はセンサモジュール210から受信される。データはスタート及びゴール地点、部品動作における姿勢、及び障害物データを含む。そして、現在のロボットタスクが、前回のタスクと似た動作パターン(開始地点及び/又はゴール地点が若干異なるのみ)になると予想されるかどうかにより、処理が分岐する。判断を行うひし形510にて、処理のリセットが起こったかどうかを判断する。処理のリセットとは、例えば、取り上げるための部品が入った新しい容器の提供(これは前の部品とはかなり異なるスタート地点になる)、あるいは部品を入れるための新しい出荷コンテナの提供(これは前の部品とはかなり異なるゴール地点になる)といったイベントであり得る。可能なロボットツール動作に影響し得る移動式障害物が作業空間に入ってきた場合のような障害物データのあらゆる変更は処理のリセットとなる。フローチャート
図500を初めて通る場合も、処理のリセットに対する答えはYESとなる。
【0035】
判断を行うひし形510における処理のリセットに対する答えがYESである場合、すなわち現在のロボットタスクが以前のタスクと似た動作とならないかもしれない場合、処理はサンプリング法ボックス420へと移行する。サンプリング法ボックス420にて、RRTのようなサンプリング法を用いてスタート地点からゴール地点までの衝突しない経路が計算される。前述のように、サンプリング法はジグザグのような望ましくない特性を持つ経路を計算し得る。従って
図5の直列組み合わせ法は、計画経路の形を改善するためにサンプリング経路計画の結果を入力として使用する最適化経路計画ステップが後に加えられている。
【0036】
最適化法ボックス410はスタート及びゴール地点並びに障害物データと共にサンプリング法ボックス420により計算された初期経路を受信し、初期経路を最適化計算の初期参照として使用する。最適化法は目的関数及び拘束関数を含む反復最適化計算を行い、最適な経路品質特性を持つスタート地点からゴール地点までの衝突しない経路を求める。反復計算には初回の反復で使用する初期参照経路が必要である。初期参照経路はスタート地点からゴール地点までの原始的な直線であってもよいが、最適化計算に過大な回数が必要となるかもしれず、また解に到達しないこともあり得る。サンプリングベースの初期経路は衝突が回避されていてスタート及びゴール地点が接続されているため、サンプリングベースの経路は最適化法計算の際にとても良い初期参照となる。ボックス410の最適化法計算は望ましくない動きやジグザグ形状を取り除き経路の品質を改善する。
【0037】
ボックス520にて最適化法ボックス410の経路の品質を評価する。品質はツール経路の移動距離、経路の曲率、経路実行時間、経路の滑らかさ、及び/又は他の要因の組み合わせにより判断されてもよい。目的関数は典型的にこれらのパラメーターを含むため本質的に滑らかで良く形作られた経路を提供し、経路の品質は最適化計算の結果であるため通常はとても良いはずである。最適化計算が時間切れになり収束せず、サンプリングベースの初期経路がボックス520に提供された場合のみ、不充分な経路品質になる可能性が高い。ボックス520にて経路品質が不充分である(滑らかさを欠いている、ぎくしゃく動作する箇所がある)場合、システム障害が宣言され、ロボットにより部品は持ち上げられない。
【0038】
ボックス520にて経路品質が充分な場合、最適化法ボックス410からの経路が出力線530にて提供される。出力線530にて計画経路が提供される時、計画経路は経路関数フィッティングモジュール440(前述され後に更に議論される)へ送信され、最終のまばらな命令地点のセットがツール経路動作インターフェースモジュール450へ提供され、まばらな命令地点はロボット制御器110へ転送される。
【0039】
ボックス520より計画経路が線530にて出力されるとき、処理はまた532にてループバックし、次のロボットサイクルのために計算を開始する。ボックス540にて、線530にて出力されたばかりの経路は、後述のように後に初期参照経路生成に使用するためにデータリポジトリに格納される。そして処理はフローチャートの先頭へ、入力線502へと戻る。
【0040】
ロボットが計画されたばかりの経路により取り上げ動作を実行した後、カメラ/センサモジュール210から入力線502へ新たなシーンデータが提供される。重要な処理のリセットがない場合(入力部品の新たな容器、又は新しい出力出荷コンテナ、又は新たな障害物)、判断を行うひし形510の答えはNOとなる。そして処理は初期参照生成のためにボックス550へ移る。初期参照生成は最適化動作計算のために初期参照経路を提供することを含み、ここで初期参照経路は過去の計画経路の形に基づいて、今回計算中の経路にスタート及びゴール地点が合うように微調整(拡縮及び移動)されているものである。ボックス550に使用することに適した初期参照生成技術は2020年4月3日に出願され本発明の譲受人に譲渡された「ロボットの最適化動作計画における初期参照生成」と題された米国特許出願第16/839720号明細書に記載されており、その内容を参照により本書に援用される。
【0041】
計算中の経路は過去に計算された経路のものと非常に類似している(同様の障害物環境、類似したスタート及びゴール地点)ため、ボックス550における初期参照生成は現在計算中の経路の非常に良い近似である初期参照経路を迅速に提供できる。従って最適化法ボックス410が最適化された経路に素早く収束し、計画経路をボックス520へ提供する。このように各計画経路は線530にて出力され、ロボットにより実行され、その後計画経路を格納するループバックがあり、そして新しい経路を計算するために新たな入力シーンデータを受信するという形で処理が継続する。
【0042】
上述したサンプリングベースの及び最適化ベースの動作計画の直列組み合わせは、ロボット動作計算におけるユニークな利点の数々を提供する。サンプリングベースと最適化ベースの並列組み合わせを用いるその他のアプローチを以下に議論する。
【0043】
図6は本開示の実施形態における
図4の動作計画モジュールにてサンプリング及び最適化動作計画の並列組み合わせを用いた経路選択法のフローチャートである。(
図4の)動作計画モジュール320のブロック図が再度参照のために
図6の左に示される。フローチャート
図600は動作計画モジュール320の経路選択モジュール430Bにてエンコードされる経路選択器のある実施形態(並列組み合わせ)を示す。以前と同様に、動作計画モジュール320における計算、ひいてはフローチャート
図600における計算は各ロボット動作サイクル又はタスクに対して行われる。
【0044】
入力線602及び604にて、候補計画経路は最適化モジュール410及びサンプリングモジュール420から受信される。最適化モジュール410及びサンプリングモジュール420はカメラ又はセンサモジュール210からのデータ(スタート及びゴール地点、並びに障害物データ)に基づいて経路候補をそれぞれ独立して計算する。最適化モジュール410は線602にて入力を提供してもよく、サンプリングモジュール420は線604にて入力を提供してもよく、又はその逆でもよい。判断を行うひし形610及び620にて、候補計画経路がそれぞれの入力線にて受信されたかどうかを判断する。もし受信されていなければ、判断を行うひし形は経路候補を受信するまで待ち/ループを継続する。判断を行うひし形610と620のどちらかで経路候補を受信すれば、経路はボックス630に渡される。ボックス630にて受信された経路候補の数が定期的に評価される。2つの経路候補が受信されていたら(最適化モジュール410とサンプリングモジュール420からそれぞれ1つずつ)、2つの経路候補はボックス630からボックス650へ渡される。
【0045】
ボックス650にて、使用する1つの経路を選択するために経路候補の品質が評価される。品質はロボット関節経路の移動距離、経路の曲率、経路実行時間、経路の滑らかさ、及び/又は他の要因の組み合わせとして決定されてもよい。最も高い品質スコアを持つ経路が選択され線660にて出力され、経路関数フィッティングモジュール440へ提供され、最終的にロボット制御器110へ転送されてロボット100により実行される。
【0046】
ボックス630にて、1つの経路候補のみが受信されていたら(最適化モジュール410又はサンプリングモジュール420から)経路候補はボックス630から判断を行うひし形640へ渡される。判断を行うひし形640にて、待ち時間の閾値を超えたかどうかを判断する。待ち時間の閾値はロボットのサイクル時間に基づいて予め定義され、言い換えれば、判断を行うひし形640において待つことが許された最大の時間であるロボットの理想的なサイクル時間に基づいて決定されてもよい。待ち時間の閾値を超えていなければ、いくつの経路候補を受信したかを再度周期的にチェックするために処理は判断を行うひし形640からボックス630へループバックする。2つ目の経路候補を受信し双方の経路がボックス650へ提供されるか、判断を行うひし形640にてやがて待ち時間の閾値に達し、ボックス650へ1つの経路候補が提供される。
【0047】
判断を行うひし形が待ち時間の閾値に達し、1つのみの経路候補がボックス650に提供される場合、ボックス650は1つの経路候補の品質をもう1つに対して比較することを行わない。この場合、ボックス650は上の議論と同じ基準に基づいて、1つの経路候補の品質を評価する。経路の品質が適切である場合、経路は出力線660に提供される。経路の品質が適切ではない場合(例えば極端なジグザグ形、又はあまりにも長い経路長)、出力線660には経路は提供されず、システム障害が宣言される(今サイクルでは部品が取り上げられない)。
【0048】
出力線660にて計画経路が提供される時、経路は経路関数フィッティングモジュール440(前述され後に更に議論される)へ送信され、最終のまばらな命令地点のセットがツール経路動作インターフェースモジュール450へ提供され、まばらな命令地点はロボット制御器110へ転送される。ロボットの次のサイクルとしての処理がフローチャート
図600の最初から再びスタートし、準備ができたときに入力線602及び604にてセンサデータが最適化モジュール410及びサンプリングモジュール420に提供され、計算された経路候補が提供される。
【0049】
図4の動作計画モジュール320に戻り、経路選択モジュール430に対して直列組み合わせモジュール430A及び並列組み合わせモジュール430Bという2つの実施形態が上に議論された。どちらの場合でも、適切な品質の経路が後述の経路関数フィッティングモジュール440に提供される。
【0050】
図7は本開示の実施形態による
図4の動作計画モジュール320にて使用される経路関数フィッティングモジュール440のブロック
図700である。経路関数フィッティングモジュール440の目的は、ロボット制御器110へ提供するための計画経路のまばらな命令地点のセットを提供することである。
【0051】
経路選択モジュール430にて、障害物との衝突を回避しながら部品をスタート地点からゴール地点に移動するといった現在のロボットタスクのために経路が計画される。経路計画は上に詳しく述べたように、経路選択モジュール430A(サンプリング及び最適化法の直列組み合わせ)又は経路選択モジュール430B(サンプリング及び最適化法の並列組み合わせ)を使用して行ってもよい。
【0052】
経路選択モジュール430は経路全体において衝突が起こらないことを保証するために必要なため経由地点の密集したシーケンスを提供する。それは計画された経由地点がまばらであり間が空いていると、経由地点の間に衝突が存在し、検出されない可能性があるからである。通信帯域要求、ロボット制御器110がロボット運動学と補間地点の計算を行う要求を含む以前に議論した理由により、ロボット制御器110に経由地点の密集したシーケンスを送信することは要求されない。
【0053】
442に示される経路関数フィッティングモジュール440は最初に計画経路地点(q0、...、qT)に基づいてスプライン関数sを計算する。スプライン関数sは一連の計画経路地点を区分的三次多項式でフィットさせるなど任意の適切な技術を用いて計算してもよい。スプライン関数sはスプラインsに沿った距離を示すアーク長パラメーターaを持つ連続した実体として表されてもよい。それはスタート地点q0のa=0、そしてゴール地点qTのa=1である。
【0054】
444に示される経路関数フィッティングモジュール440の次の計算は、スプラインsから経路地点のまばらなセットを計算することである。ロボットタスクと経路の性質に基づき、ロボット制御器110に転送する命令地点の数Nが選択される。三次元曲線形状で定義される取り上げ、移動そして置く動作の代表例では、ロボット制御器110に10個の命令地点を送信することが要求され得る(一方計画経路には30個のようなはるかに多い数の経由地点が含まれていた)。従って、この例では、Nの値は10である。次に10個の経路地点P[1]、・・・、P[10]はアーク長パラメーターaの適切な値をP[1](a=0)からP[10](a=1)に入力することで計算される。
【0055】
経路関数フィッティングモジュール440は次にツール経路命令地点P[i]のまばらなシーケンスをツール経路動作インターフェースモジュール450へ提供し、ツール経路動作インターフェースモジュール450は前述のようにまばらな命令地点をロボット制御器110上の最上位プログラム実行モジュール340へ転送する。ロボット制御器110は次に関節運動学計算及び補間地点計算といった本質的な能力を用いて、タスクを実行するための滑らかで効果的なロボット動作を計算する。ロボット制御器のスプライン関数フィッティング及び補間地点計算アルゴリズムの知識は、制御器110が命令地点P[i]をロボット動作命令に変換する際に経路関数フィッティングモジュール440におけるスプライン計算により望ましい結果を得ることを保証するのに役立ち得る。
【0056】
前述の議論を通して、様々なコンピュータ及び制御器を説明し暗示した。これらのコンピュータ及び制御器のソフトウエアアプリケーション及びモジュールはプロセッサ及びメモリモジュールを有する1つ以上のコンピュータ装置上で実行されることが理解されよう。特に、これには、上述の
図1及び
図3のロボット制御器110及びコンピュータ120内のプロセッサが含まれる。特に、コンピュータ120のプロセッサはサンプリングベース及び最適化ベースの方法の組み合わせを使用して経路を計画及び選択することと経路関数フィッティングを行うことを含む動作計画モジュール320の計算とを行うよう構成されている。ロボット制御器110のプロセッサは前に議論したプログラム実行、動作管理及び計画、補間/フィッティング、及びサーボモーター制御機能、を実行するよう構成されている。
【0057】
上に概説したように、開示したロボット動作計画のための最適化及びサンプリング法の組み合わせ、及び経路関数フィッティングを使用した技術により、ロボットの経路計画の速度と品質を向上させる。最適化及びサンプリング経路計画法の組み合わせは、割り当てられたサイクル時間内で最も良い品質の経路を提供し、経路関数フィッティングにより、ロボット制御器はロボットのツール動作の滑らかで速い実行を可能にするロボットの関節動作及び補間地点の計算に本質的な性能を使用することができる。
【0058】
ロボットの動作計画技術のいくつもの態様例や実施形態を上に議論したが、当業者は、修正、置換、追加、及び部分的組み合わせを認識するであろう。従って次に添付される請求項及び次に紹介する請求項では、それらの修正、置換、追加、及び部分的組み合わせを、真の精神及び範囲内であるものとして全て含むこととして解釈されることが意図される。
【外国語明細書】