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

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

▶ 三菱電機株式会社の特許一覧

特許7612101相補性制約を使用して衝突を回避する物体操作
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-26
(45)【発行日】2025-01-10
(54)【発明の名称】相補性制約を使用して衝突を回避する物体操作
(51)【国際特許分類】
   B25J 13/00 20060101AFI20241227BHJP
   B25J 19/06 20060101ALI20241227BHJP
【FI】
B25J13/00 Z
B25J19/06
【請求項の数】 13
(21)【出願番号】P 2024513569
(86)(22)【出願日】2022-02-25
(65)【公表番号】
(43)【公表日】2024-04-19
(86)【国際出願番号】 JP2022011154
(87)【国際公開番号】W WO2022249649
(87)【国際公開日】2022-12-01
【審査請求日】2023-11-08
(31)【優先権主張番号】17/333,530
(32)【優先日】2021-05-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ラフナサン,アルビンド
(72)【発明者】
【氏名】ジャー,デベシュ
(72)【発明者】
【氏名】ロメレス,ディエゴ
【審査官】杉山 悟史
(56)【参考文献】
【文献】米国特許出願公開第2020/0086487(US,A1)
【文献】特開2019-025621(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
物体が障害物と衝突することを回避しつつ、前記物体の状態を開始状態から終了状態まで変化させるタスクを実行する前記物体の運動を制御するためのコントローラであって、前記コントローラは、少なくとも1つのプロセッサと、命令が格納されたメモリとを備え、前記命令は、前記少なくとも1つのプロセッサによって実行されると、前記コントローラに、
前記物体および前記障害物の力学ならびに前記物体および前記障害物の幾何学的形状を示すデータを取得することを、実行させ、前記物体の幾何学的形状は、前記物体の実際の形状を取り囲む凸形状を含み、前記障害物の幾何学的形状は、前記障害物の実際の形状を取り囲む凸形状を含み、前記物体の凸形状および前記障害物の凸形状の各々は、頂点のセットによって定義されるポリトープであり、前記物体のポリトープ内の点は、前記物体のポリトープの頂点の重み付けされた組み合わせとして定義され、前記障害物のポリトープ内の点は、前記障害物のポリトープの頂点の重み付けされた組み合わせとして定義され、さらに、
相補性制約を用いて前記物体の凸形状と前記障害物の凸形状との間の最小距離をモデル化する一次停留条件の下で前記タスクを実行するための最適軌道を生成する前記物体の力学の最適化問題を解くこと、を実行させ、前記相補性制約は、前記物体と前記障害物との間の前記最小距離を実現するために、前記物体のポリトープの頂点の重みおよび前記障害物のポリトープの頂点の重みに対して課され、さらに、
前記最適軌道に従って前記物体の運動を制御することとを、実行させる、コントローラ。
【請求項2】
前記物体の力学に対応するデータは、前記物体のアクチュエータの1つ以上の力の適用に応じた前記物体の状態の変化を記述する方程式のセットを含み、前記障害物の力学に対応するデータは、時間の関数として前記障害物の状態を定義する前記障害物の軌道を含み、前記相補性制約によって支配される重みは、前記物体の状態および前記障害物の状態とは無関係であり、前記最適化問題は、前記物体および前記障害物の前記ポリトープの頂点の位置をそれらの対応する状態に従って変化させることにより、前記最小距離をモデル化する、請求項に記載のコントローラ。
【請求項3】
前記コントローラは、前記最適化問題を、相補性制約付き数理計画(MPCC)として解くように構成され、前記最適化問題の解は、最小時間問題、物体操作問題、または目的関数の数学的構造のうちの1つ以上を定義する目的関数を最適化する、請求項1に記載のコントローラ。
【請求項4】
前記コントローラはさらに、前記最小距離での衝突回避に関する制約を受け取るように構成され、前記衝突回避に関する制約は、前記物体の経路制約ならびに前記物体および前記障害物の距離制約のうちの1つまたは組み合わせを含む、請求項1に記載のコントローラ。
【請求項5】
前記物体の運動を制御するために、前記コントローラはさらに、前記最適軌道を辿るように前記物体を移動させるよう少なくとも1つのアクチュエータに指示する制御コマンドを生成するように構成される、請求項1に記載のコントローラ。
【請求項6】
前記コントローラはさらに、前記アクチュエータに最適軌道力を生成させるように構成される、請求項に記載のコントローラ。
【請求項7】
前記相補性制約は、前記物体のマルチボディ相互作用に相当する制約を含む、請求項1に記載のコントローラ。
【請求項8】
前記物体の運動を制御して自動組立のタスクを達成することは、相補性条件として表現される前記相補性制約を使用して前記物体の環境への前記物体の所望の接触状態を制御することによって行われ、前記物体の環境との望ましくない衝突は、前記相補性条件として表される最小距離関数をモデル化することによって回避される、請求項1に記載のコントローラ。
【請求項9】
前記物体の凸包と前記障害物の凸包との間の最小距離は、
【数1】

として定義され、Oi(t)は、時点tにおける前記物体の凸形状をモデル化するポリトープに対応し、Oj(t)は、時点tにおける前記障害物の凸形状をモデル化するポリトープに対応する、請求項1に記載のコントローラ。
【請求項10】
物体が障害物と衝突することを回避しつつ、前記物体の状態を開始状態から終了状態まで変化させるタスクを実行する前記物体の運動を制御するための方法であって、前記方法は、前記方法を実現する格納された命令と結合されたプロセッサを使用し、前記命令は、前記プロセッサによって実行されると、前記方法のステップを実行し、前記方法のステップは、
前記物体および前記障害物の力学ならびに前記物体および前記障害物の幾何学的形状を示すデータを取得するステップを含み、前記物体の幾何学的形状は、前記物体の実際の形状を取り囲む凸形状を含み、前記障害物の幾何学的形状は、前記障害物の実際の形状を取り囲む凸形状を含み、前記物体の凸形状および前記障害物の凸形状の各々は、前記物体の凸包内の点を定義する不等式のセットと、前記障害物の凸包内の点を定義する不等式のセットとによって定義される凸包であり、さらに、前記方法のステップは、
相補性制約を用いて前記物体の凸形状と前記障害物の凸形状との間の最小距離をモデル化する一次停留条件の下で前記タスクを実行するための最適軌道を生成する前記物体の力学の最適化問題を解くステップを含み前記相補性制約は、前記物体と前記障害物との間の前記最小距離を実現するために、前記物体の不等式のセットおよび前記障害物の不等式のセットに課され、さらに、前記方法のステップは、
前記最適軌道に従って前記物体の運動を制御するステップを含む、方法。
【請求項11】
前記物体の力学に対応するデータは、前記物体のアクチュエータの1つ以上の力の適用に応じた前記物体の状態の変化を記述する方程式のセットを含み、前記障害物の力学に対応するデータは、時間の関数として前記障害物の状態を定義する前記障害物の軌道を含み、前記相補性制約によって支配される重みは、前記物体の状態および前記障害物の状態とは無関係であり、前記最適化問題は、前記物体および前記障害物のポリトープの頂点の位置をそれらの対応する状態に従って変化させることにより、前記最小距離をモデル化する、請求項10に記載の方法。
【請求項12】
前記相補性制約は、前記物体のマルチボディ相互作用に相当する制約を含む、請求項10に記載の方法。
【請求項13】
物体が障害物と衝突することを回避しつつ、前記物体の状態を開始状態から終了状態まで変化させるタスクを実行する前記物体の運動を制御するための方法を実行するための、プロセッサによって実行可能なプログラムが実装された非一時的なコンピュータ読取可能記憶媒体であって、前記方法は、
前記物体および前記障害物の力学ならびに前記物体および前記障害物の幾何学的形状を示すデータを取得するステップを含み、前記物体の幾何学的形状は、前記物体の実際の形状を取り囲む凸形状を含み、前記障害物の幾何学的形状は、前記障害物の実際の形状を取り囲む凸形状を含み、前記物体の凸形状および前記障害物の凸形状の各々は、頂点のセットによって定義されるポリトープであり、前記物体のポリトープ内の点は、前記物体のポリトープの頂点の重み付けされた組み合わせとして定義され、前記障害物のポリトープ内の点は、前記障害物のポリトープの頂点の重み付けされた組み合わせとして定義され、さらに、前記方法は、
相補性制約を用いて前記物体の凸形状と前記障害物の凸形状との間の最小距離をモデル化する一次停留条件の下で前記タスクを実行するための最適軌道を生成する前記物体の力学の最適化問題を解くステップを含み、前記相補性制約は、前記物体と前記障害物との間の前記最小距離を実現するために、前記物体のポリトープの頂点の重みおよび前記障害物のポリトープの頂点の重みに対して課され、さらに、前記方法は、
前記最適軌道に従って前記物体の運動を制御するステップを含む、非一時的なコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、軌道に沿って所望のタスクを実行する物体の制御および最適化のためのシステムおよび方法に関し、より具体的には相補性制約を使用して衝突を回避する物体操作のためのシステムおよび方法に関する。
【背景技術】
【0002】
多くの実用的用途において、機械および物体は、障害物が散乱していることが多くそのために衝突が起こりやすい環境で動作する。そのような環境は、制約のある環境とみなされる。障害物は、他の物体、機械、生物などの場合がある。動作条件次第で、そのような制約のある環境で動作するシステムは、静止および/または動的障害物を包含する可能性がある。そのようなシステムは、動的システムとみなすことができ、非線形微分代数方程式(DAE:Differential Algebraic Equation)を使用して記述することができる。そのようなシステムにおいて、物体が通ることになる軌道は、異なる動作シナリオに適合するように最適化される必要がある。そのようなシステムの一例は、ロボット操作のためのシステムである。
【0003】
ロボットシステムは、ロボットアーム(マニピュレータとも呼ばれる)を含むロボット装置を制御するように構成することができる。たとえば、ロボットシステムは、入力信号を受けて制御信号を生成するコントローラを含み得るものであり、ロボットアームは、コントローラにフィードバック信号を提供し得るものである。そのようなシステムの一例は、他のロボットおよびそれらの作業環境との衝突を回避しつつ、製品を組み立てるためにロボットマニピュレータが使用される、産業用組立タスクである。
【0004】
マニピュレータの最適軌道の計画は、所望のタスクを実行する時間を最小にしつつ障害物を回避することを含み、一般的には難しい最適化問題である。どの軌道最適化アルゴリズムも、マニピュレータの力学の制約および衝突回避に起因する制約を満たしつつ、タスクを実行するために必要とされる時間を最小にしなければならない。障害物を回避するという要件は、一組の非平滑・非凸制約につながり、一組の非平滑制約に対する連続時間動的システムの最適化は、解決するのが困難な問題である。障害物回避に起因する非平滑・非凸制約は、軌道生成および最適化中に実施される必要がある。また、最適化問題は非凸であるため、複数の極小値が存在することがわかるが、最適化アルゴリズムは最小値の発見を保証されない。結果として、そのようなアルゴリズムから返される解が実際に障害物を回避するという保証はない。そのような障害物回避制約の一例は、衝突回避が所望される2つの物体間の距離である。障害物回避の問題を最適化するために、物体間の距離は常に非ゼロであることが望ましい。いくつかの従来の方法は、障害物回避を伴う軌道計画を最適化問題としても定式化する。たとえば、米国特許第7,248,952に記載されている方法は、最適化問題として定式化された物体間の距離制約を伴う混合整数線形計画問題として軌道計画を定式化する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
そのような定式化の欠点は、距離制約が、良くても一度微分可能、または、全く微分可能でない点である。たとえば、従来の軌道計画アルゴリズムは、制約が少なくとも一度連続微分可能であると仮定する、非線形計画アルゴリズムを使用する。これは、コンピューティング制御のための最適化問題が微分不能になるという状況につながる。そのため、障害物回避制約の賢明な定式化が、その定式化が非線形計画アルゴリズムに従うために、必要である。
【0006】
したがって、少なくとも1つの障害物を回避しつつ物体の軌道を最適化することが必要であり、この最適化は平滑制約を受ける。
【課題を解決するための手段】
【0007】
いくつかの実施形態は、物体が障害物に衝突することを回避しつつ、開始状態から終了状態まで物体の状態を変化させるタスクを実行する物体の運動を制御するためのシステムおよび方法を提供することに向けられている。開始状態から終了状態までの物体の状態の変化は、一連の状態を通る軌道を包含し得る。それに加えてまたはその代わりとして、いくつかの実施形態の目的は、タスクを実行する物体の状態の軌道を最適化することにより、全体としてタスクの性能を最適化することである。そのような被制御物体の例は、ロボットマニピュレータ、自動運転車、ドローンなどを含む。
【0008】
いくつかの実施形態は、軌道最適化アルゴリズムがシステムのいくつかの制約を満たす必要がある、という認識に基づいている。これらの制約は、システムの力学モデルやシステムの状態および制御範囲に起因して、または障害物回避制約に起因して、生じる可能性がある。DAEは、平滑力学システムを表すには十分である。残念ながら、いくつかのシステムについての力学は、常に平滑であるとは限らないため、DAEによって全体を表現することはできない。しかしながら、いくつかの実施形態は、いくつかの非平滑力学を、ある状態変数に対する相補性条件を使用することによって表すことができる、という認識に基づいている。非平滑力学を表現するために相補性条件が使用されるシステムのいくつかの例は、摩擦相互作用を伴うシステムであり、この摩擦相互作用は相補性条件として表される。いくつかの実施形態は、相補性条件を使用して非平滑力学を定式化することが、非線形計画アルゴリズムで解くことができる最適化問題の作成を可能にする、という認識に基づいている。
【0009】
いくつかの実施形態の例は、凸最適化問題としての障害物回避制約の定式化に基づく。いくつかの実施形態の例は、障害物回避を、十分な平滑度を伴う最適化における制約として定式化しなければならない、という理解に基づいている。そのような定式化は、実現可能ないかなる軌道も障害物を回避すること、および、制約の平滑度が非線形計画アルゴリズムの採用を可能にすることを、確実にする。さらに、最適化の定式化のいかなる極小値も障害物の回避を充足し、それにより、最小値を得る必要性を回避する。
【0010】
いくつかの実施形態は、制御問題についてのそのような定式化において、タスクを実行するための制御は主制御問題とみなすことができ、衝突回避は従属制御問題である、という理解に基づいている。この主制御問題は最適化問題である。しかしながら、衝突回避問題も最適化問題である、なぜなら、さまざまな形状の異なる物体の2点間の衝突を調べるためにはこれらの物体間の最も近い点を見つける必要があり、最も近い点の探索は、2つの物体のさまざまな点のすべての間の距離の最適化、すなわち最小化の問題であるためである。そのため、衝突を回避する最適な物体制御は、ネスト化された最適化問題を、すなわち、基準軌道の最適化および衝突回避に必要な最適化を解くことを含む。
【0011】
ネスト化された最適化を解くことは、それ自体が難しい問題であるが、衝突回避アプリケーションの文脈においては一層難しい問題である。その理由は、衝突回避に必要な最適化が不良設定問題(ill-posed problem)であることにある。結局のところ、異なる物体の複数対の点は、同一距離を有し得る。最小距離を有するすべての対の点について衝突を回避することが望ましいが、この曖昧さが衝突回避最適化を微分不能にし、このことが、ネスト化された最適化が主制御目的を達成することを妨げる場合がある。
【0012】
したがって、いくつかの実施形態の目的は、衝突を回避する最適な制御アプリケーションのネスト化された最適化の計算上の問題に対処することである。いくつかの実施形態は、衝突回避最適化は主制御問題に従属するので、その解を主制御問題の解に対するテストに置き換えることができる、という認識に基づいている。このテストの特性は、このテストが充足される場合、主制御最適化の解が、異なる物体のすべての異なる対の点について衝突なしである、というような特性である。加えて、さまざまな微分可能技術によって制御対象物の状態の変化の最適化を制御するという文脈において、そのようなテストは、物体の状態に対して微分可能な態様で依存していなければならない。そのようなテストは相補性制約の助けを借りて定義できることがさらに認識された。
【0013】
いくつかの実施形態は、物体の点間の距離が、その点すべての間の差の距離関数として表される場合、物体間の最小距離は、この関数の停留点に対応する、という認識に基づいている。本明細書で使用される、距離のような1つの変数の微分可能関数の停留点は、この関数の導関数が実現可能な運動方向に沿って非負である関数のグラフ上の点である。そのような距離関数のすべての一次停留点はミニマイザであり、距離関数の曖昧さは、そのような関数が複数の停留点を有し得ることを示唆する。いずれにしても、そのような定式化に従うと、最適最小化問題は、そのような距離関数の一次停留条件の解によって置き換えることができる。有利なことに、そのような解は、微分可能な態様で発見することができ、さまざまな非線形計画アルゴリズムの適用可能性を保証する。
【0014】
いくつかの実施形態は、制御下の物体の形状および衝突を引き起こし得る障害物の形状を凸包として表すことができ、そのため、これらの物体内の各点は、対応する包の頂点の非負の重みのベクトルであるという、別の認識に基づいている。有利なことに、そのような表現は、物体の状態からこれらのベクトルの重みを分離することを可能にする。具体的には、凸包によって表される物体の位置は状態に依存するが、包内の異なる点を定義する重み自体は状態とは無関係である。そのような表現は、物体の点および障害物の点の間の距離の定式化を、重みが単体上にあることが要求される凸問題にする。単体は、その要素、重みが非負であり、合計が1である凸集合である。最小距離最適化の凸性は、相補性制約を受ける一次停留条件を使用して再定式化することを可能にする。
【0015】
このようにして、いくつかの実施形態は、ネスト化された最適化問題を、相補性制約を使用して物体の凸包と障害物の凸包との間の最小距離をモデル化する一次停留条件の解に対する制約を受ける単一の最適化問題に、変換する。最小距離に対する制約を一次停留条件の解として表現することで、このような表現を微分可能にする。
【0016】
ネスト化された最適化問題を単一の最適化問題に変換することは、より少ない反復を必要とし、よって、ネスト化された問題によって消費されたであろうものと比較して、より少ないリソースを消費する。そのため、いくつかの実施形態の例は、より高速な最適化プロセスにつながり、このプロセスについて実現されるいくつかの有益な態様は、プロセスを実行するときの全体的なリソース消費、CPU時間、およびクロックサイクルの著しい改善を含む。そのような技術的利益は、最適化問題が、自動運転、ロボット、ドローンなどのようなリソース不足の用途の一部として実現されるときに、さらに拡大され、より実用的な利益に変換される。
【0017】
さらに、いくつかの実施形態の例は、制約に導入される平滑さのために、この問題の根底にある変換が、多くの仮定または近似を行う必要がないので、精度の点で一層最適化された軌道をもたらす。その理由は、制約を相補性条件として表現することにより、従来の最適化アルゴリズムを使用してロバストに解くことを可能にし、したがって、より高い品質の解をもたらす、調整された緩和を使用することが可能になることにある。
【0018】
いくつかの実施形態は、衝突を回避する制御最適化が、自動運転車の組立、駐車または制御を実行するロボット、ドローンの自律運動等の、多くの制御用途に役立ち得る、という理解に基づいている。特に、いくつかの実施形態は、相補性制約を用いて衝突回避問題を定式化することは、ロボット用途において特に有益となり得る、という認識に基づいている。ほとんどのロボット用途は、コンタクトリッチ(contact-rich)マルチボディ相互作用を引き起こす、片側接触、摩擦接触、衝撃、および変形のような、根底にある難しい現象に対処しつつ、制約のある環境の存在によって特徴付けられる。これらのコンタクトリッチマルチボディ摩擦相互作用システムは、一般的に、相補性条件を使用して表すことができる非平滑力学によって説明される。したがって、衝突回避も相補性制約によって定式化される場合、そのような定式化は、接触および衝突回避を統一的に扱うことを可能にする。
【0019】
いくつかの有益な態様は、実現された多くの有益な態様の中でもとりわけ、本開示の実施形態が、衝突確認/回避モジュールを明確に必要とすることなく、または実現可能な初期解を与えることなく、剛体のための連続時間無衝突動的軌道を生成できることである。
【0020】
本明細書に記載される本開示の実施形態のいくつかの特徴は、自動車産業、航空宇宙産業、非線形制御システム、およびプロセスエンジニアリングにおいて使用することができる。また、本開示の実施形態のいくつかの特徴は、半導体ウェハ処理システムにおける用途に適した複数のエンドエフェクタを有する材料ハンドリングロボットに使用することが可能である。たとえば、上記動作を利用して、ウェハまたは基板をオフセットステーションから持ち上げ/設置することができる。1つのエンドエフェクタによる持ち上げ動作と、それに続く、別のエンドエフェクタによる設置動作とのシーケンスは、オフセットステーションにおいてウェハ/基板を迅速に交換するために使用することができる(迅速交換動作)。ロボット駆動ユニットは、ロボットアームの鉛直方向の高さを制御するための1つ以上の垂直リフト機構を含み得るものであり、この機構は、異なる高さのステーションにアクセスし、ロボットアームのエンドエフェクタ間の鉛直方向の距離を補償し、材料の持ち上げ/設置動作を容易にするために、使用することができる。意図されているのは、ロボット装置が、モータ駆動ボールねじを利用できること、または、リードねじ、リニアモータ、リンク機構、はさみ機構、油圧アクチュエータ、空気圧アクチュエータ、およびそれらの組み合わせを含むがそれらに限定されない、任意の他の適切な作動機構を利用できること、である。2つ以上のロボットアームの場合、構成は、一方のアームの場所が他方のアームと同一面または異なる面のいずれかにある、上側アームと下側アームとを含み得ることに、注意されたい。
【0021】
したがって、一実施形態は、物体が障害物と衝突することを回避しつつ、物体の状態を開始状態から終了状態まで変化させるタスクを実行する物体の運動を制御するためのコントローラを開示し、コントローラは、少なくとも1つのプロセッサと、命令が格納されたメモリとを備え、命令は、少なくとも1つのプロセッサによって実行されると、コントローラに、物体および障害物の力学ならびに物体および障害物の幾何学的形状を示すデータを取得することを、実行させ、物体の幾何学的形状は、物体の実際の形状を取り囲む凸形状を含み、障害物の幾何学的形状は、障害物の実際の形状を取り囲む凸形状を含み、さらに、相補性制約を用いて物体の凸形状と障害物の凸形状との間の最小距離をモデル化する一次停留条件の解に対する制約の下でタスクを実行するための最適軌道を生成する物体の力学の最適化問題を解くことと、最適軌道に従って物体の運動を制御することとを、実行させる。
【0022】
別の実施形態は、物体が障害物と衝突することを回避しつつ、物体の状態を開始状態から終了状態まで変化させるタスクを実行する物体の運動を制御するための方法を開示し、方法は、この方法を実現する格納された命令と結合されたプロセッサを使用し、命令は、プロセッサによって実行されると、方法のステップを実行し、方法のステップは、物体および障害物の力学ならびに物体および障害物の幾何学的形状を示すデータを取得するステップを含み、物体の幾何学的形状は、物体の実際の形状を取り囲む凸形状を含み、障害物の幾何学的形状は、障害物の実際の形状を取り囲む凸形状を含み、さらに、相補性制約を用いて物体の凸形状と障害物の凸形状との間の最小距離をモデル化する一次停留条件の解に対する制約の下でタスクを実行するための最適軌道を生成する物体の力学の最適化問題を解くステップと、最適軌道に従って物体の運動を制御するステップとを含む。
【0023】
さらに別の実施形態は、物体が障害物と衝突することを回避しつつ、物体の状態を開始状態から終了状態まで変化させるタスクを実行する物体の運動を制御するための方法を実行するための、プロセッサによって実行可能なプログラムが実装された非一時的なコンピュータ読取可能記憶媒体を開示し、この方法は、物体および障害物の力学ならびに物体および障害物の幾何学的形状を示すデータを取得するステップを含み、物体の幾何学的形状は、物体の実際の形状を取り囲む凸形状を含み、障害物の幾何学的形状は、障害物の実際の形状を取り囲む凸形状を含み、さらに、相補性制約を用いて物体の凸形状と障害物の凸形状との間の最小距離をモデル化する一次停留条件の解に対する制約の下でタスクを実行するための最適軌道を生成する物体の力学の最適化問題を解くステップと、最適軌道に従って物体の運動を制御するステップとを含む。
【0024】
ここに開示される実施形態について添付の図面を参照しつつさらに説明する。示される図面は必ずしも正しい縮尺ではなく、代わりに、一般的にここに開示される実施形態の原理の説明に対して強調が加えられる。
【図面の簡単な説明】
【0025】
図1A】いくつかの実施形態に係る、軌道最適化問題の概要を示す図である。
図1B】いくつかの実施形態の原理を使用して平面内で軌道を計画するための例を示す概略図である。
図2A】いくつかの実施形態に係る、物体が障害物に衝突することを回避しつつ、物体の状態を開始状態から終了状態まで変化させるタスクを実行する物体の運動を制御するための方法のブロック図を示す。
図2B】一実施形態に係る、最適化を解くための最適化ソルバの逐次ワークフローを示す図である。
図3A】いくつかの実施形態に係る、物体と障害物との間の最小距離に対して相補性制約を課すための原理の概略図を示す。
図3B】いくつかの実施形態に係る、図3Aの原理を使用して物体の制御を実行するための原理の概略図を示す。
図3C】いくつかの実施形態に係る、図3Aの原理を使用して物体の制御を実行するための原理の概略図を示す。
図4】ポリトープを使用して物体および障害物をパラメータ化する1つの例を示す図である。
図5A】いくつかの実施形態に係る、ポリトープの頂点に関して物体の任意の点をパラメータ化する1つの例を示す図である。
図5B】いくつかの実施形態に係る、ポリトープの頂点に関して物体の任意の点をパラメータ化する1つの例を示す図である。
図5C】いくつかの実施形態に係る、ポリトープの頂点に関して物体の任意の点をパラメータ化する1つの例を示す図である。
図5D】いくつかの実施形態に係る、ポリトープの頂点に関して物体の任意の点をパラメータ化する1つの例を示す図である。
図6】ネスト化された最適化問題を凸/二次計画に変換し、相補性制約を受ける一次最適条件を識別することを説明する図である。
図7A】いくつかの実施形態に係る、ロボット操作のシナリオの例の概略図を示す。
図7B】いくつかの実施形態に係る、スライダ-プッシャシステムが障害物の存在下で機能するシナリオの例を示す図である。
図7C】いくつかの実施形態に係る、衝突回避問題の定式化の概略図を示す。
図7D】いくつかの実施形態の例に係る、ロボットを使用して物体を制御するための方法の例を示す図である。
図8A】本開示のいくつかの実施形態に係る、ロボット装置に関連付けられるいくつかの方法を実現するために使用されるいくつかのステップを示すフロー図である。
図8B】いくつかの実施形態に従って動作するロボットマニピュレータを含むホロノミックカートを示す図である。
図9】本開示のいくつかの実施形態に係る、いくつかの方法を実現するために使用されるデータ処理システムのいくつかの構成要素を示すブロック図である。
図10】いくつかの実施形態に係る、ロボット装置に関連付けられる軌道コントローラを実現するために使用されるいくつかのモジュールのフロー図である。
図11】本開示のいくつかの実施形態に係る、いくつかの方法を実現するために使用されるいくつかの構成要素を示すブロック図である。
図12】いくつかの実施形態に係る、ロボットアームを使用する制御システムの一例を示す図である。
図13】一実施形態に係るシステムの概略図を示す。
【発明を実施するための形態】
【0026】
本明細書に記載される実施形態の例は、衝突が起こり易い軌道において移動するように構成された物体の制御および最適化のためのシステムおよび方法に向けられている。日常的な物体に関連するいくつかのタスクの自動化は、時間の経過に伴って何倍にも増加しており、今日の自動化システムは、日々の生活に非常に多く浸透しているので、至る所で人間とほぼ共存している。多くの場合、ある種の自動化システムは、タスクを実行することが周囲環境の理解によって大きく制約される、非常に混乱した環境で動作する。特に、そのような環境は、多くの場合、多数の障害物を含み、タスクは、障害物の存在下において、障害物との接触を回避しつつ、実行される必要がある。そのため、タスクを実行する目的は、所望のタスク目的を同時に達成しつつ、障害物と衝突することなくタスクを実行することに、変換される。さらに、衝突回避を保証しつつ障害物を通り抜けるためには所望のタスクを実行するための最適軌道の生成が必要とされるシナリオが発生する。これらのタスクの例は、ロボット操作タスク(自動化された組立、ロボットキッティングなど)、車両の自動駐車、無人航空機による自動監視および配達などを含む。
【0027】
ロボット操作タスクという文脈において、1つ以上のロボットが、そのような混乱した環境で操作タスクを実行する。ロボットシステムは、物体の把持、ピックアップ、または移動を含む用途に使用されるエンドエフェクタまたはグリッパを含む、ロボットアームを含み得る。例として、ロボット装置は、タスクまたは一連のタスクを完了するために使用することができる。そのようなタスクは、ロボットシステムが、環境内のどこに物体が位置するかについての所与の知識に基づいて物体を持ち上げるよう、ロボットアームに指示できるようにして、物体を移動させることを含み得る。一般的に、マニピュレータのアームに対する制御入力は、初期姿勢から所望の姿勢に移るためにロボットが関節の各々に与えなければならないモータトルクである。
【0028】
操作問題は、ロボットが操作対象の物体の所望の構成を実現するために外部環境との所望の接触シーケンスを計画し制御しなければならない問題である。これらのタスクの計画は、環境内の障害物を回避しつつ、接触による軌道最適化を必要とする。いくつかの実施形態の例は、接触力学に従い衝突を回避する軌道を計算するための新たな方法を開示する。特に、いくつかの実施形態の例は、相補性制約を使用して接触および障害物回避の両方をモデル化する。これは、統合されたフレームワークにおいてロボット操作タスクを計画することを可能にする。軽微な修正を伴う同様のアプローチを、自動駐車、UAVの自動飛行等の他の用途分野に適用することができる。
【0029】
いくつかの実施形態の例は、従来の手法の欠点を取り除き、最適軌道の計算において行われる仮定の量を低減することにより、制御対象と障害物との間および障害物または制御対象間の衝突回避をより効率的に扱うことができる。いくつかの実施形態の例は、全次元障害物および制御対象の物体を、楕円体またはポリトープのような任意の凸状体としてモデルし得る、という認識に基づいている。加えて、いくつかの実施形態の例は、平滑であり汎用非線形計画法(NLP:nonlinear programming)アルゴリズムを使用して扱うことができる手法に基づく。
【0030】
本明細書に開示される実施形態の例は、接触および障害物の存在下で物体制御タスクを計画するという問題に関する。複数の物体間の摩擦接触のモデル化は、接触している物体の摩擦および剛性が原因で、非平滑力学につながる。これらの非平滑現象は、相補性制約を使用して数学的に表すことができる。障害物の存在下での摩擦相互作用を伴う物体の制御は困難である。衝突回避問題は、相補性制約を使用してモデル化される。実施形態の例のいくつかの有益な態様のうちのいくつかは、衝突回避問題の定式化が微分可能になることを含み、NLPソルバの使用を可能にし、処理は、物体と静止障害物との間、および物体と物体との間の衝突回避について同一である。物体という用語は、複数形で使用される場合、静止障害物を意味する場合もある。以下の部分において、上記およびいくつかの他の態様について、特に図面を参照しながらより詳細に説明する。
【0031】
図1Aは、いくつかの実施形態に係る、軌道最適化問題の概要を示す図である。物体10は、たとえばロボットマニピュレータ20によって制御される。物体制御は、物体10の軌道30が、物体10の環境にも存在し得る1つ以上の障害物40との接触/衝突を回避するように、計画されなければならない。物体10の軌道はいくつかの状態(C,C,C,C)を含み得るものであって、これらの状態の各々は、物体10の特定の位置、向き、および形態を指定する。この点に関して、物体10の軌道30は、2つ以上の状態間を遷移する物体10が辿る経路を定めることができる。軌道30はまた、ロボットマニピュレータ20に関連付けられたコントローラのようなコントローラが物体10に対して実行する制御のセットに対応し得る。1つ以上の障害物40は、物体10の環境内の他の物体、たとえば物体10が通ることが制限され得る、物体、生物、または空間であってもよい。軌道30のような軌道を最適化するために、コントローラは、システムのすべての制約を考慮しながら、所望の目的関数を最適化する状態および入力のシーケンスを生成する。障害物を回避するという要件は、非凸制約のセットをもたらし、非凸制約のセットに対する連続時間動的システムの最適化は、解くのが難しい問題をもたらす。障害物回避に起因する非凸制約は、軌道最適化中に実施される必要がある。
【0032】
物体を移動させるように構成されたマニピュレータのモーションプランニングは、多くのロボットプロセスにおいて反復性要素である。たとえば、いくつかのモーションプランニング実行は、マニピュレータが、完全問題を運動学的計画および軌道追跡という2つのステップに分解することによって開始状態から目標状態に到達するためのものである。しかしながら、問題を2つのステップに分けることは、最適性という点で、得ることができる解の品質を制限する。特に、この問題が同時に解決されるとき、最適化アルゴリズムは、ロボットシステム上でアクティブなすべての制約を考慮しながら労力を最小限に抑える解を発見することを強いられる。多くの有益な態様のうち、最小限の労力は、処理要件の大幅な低減をもたらし、ひいてはプロセス全体をより少ないリソース消費にする。そうすると、プロセスを、低コストでリソースが少ないプロセッサで実行することが可能になり、それにより、オンボードリソース可用性が常に希少である自動運転、自動駐車、ドローンなどのような分野にプロセスを適用する可能性を高める。
【0033】
いくつかの実施形態の例は、軌道最適化が、システムのすべての制約を考慮しつつ、所望の目的関数を最適化する状態および入力のシーケンスを生成する手順である、という認識に基づいている。1つの実験は、問題を、動的計画が後に続く運動学的計画に分解することを使用するように軌道計画を構成した軌道最適化のための軌道計画アプローチを含んでいた。運動学的計画は、環境に存在する障害物との衝突の可能性を確認しつつ、ロボットの構成空間内に経路を配置するように設定された。しかしながら、実験中のいくつかのテストは、多くの場合、実行不可能な軌道、または、準最適であり後に力学にとって実行不可能であると認識された軌道をもたらした。得られたまたは学習されたものは、運動学的計画モジュールは力学を考慮しておらずその結果として計画モジュールがシステムの力学および制御飽和限界を認識していなかった、ということであった。これは、システムの制御限界を飽和させる軌道をもたらした、または、望ましくないことが証明された動的非平滑性をもたらした(すなわちロボットは多くの場合移動中に非常に高い加速度を経験した)。このように、本開示のある認識は、幾何学的制約と状態および入力制約とを取り入れることにより、ロボットシステムのための衝突のない最適な軌道を自動的に生成することが、非常に望ましいということである。この認識はさらに、最適化中の制約として実施されるので、ロボットと障害物との間の衝突確認を必要とすることなく、軌道最適化を可能にした。
【0034】
いくつかの実施形態の例は、状態および制御制約の存在下でのほとんどの軌道最適化問題を、非線形最適化技術を使用して解くことができる、という認識に基づいている。しかしながら、環境内の障害物の存在下でのマニピュレータのアームの移動が原因で課される幾何学的制約は、結果として非凸かつ微分不能な制約をもたらし、その理由は、一般的に最小関数が数学的微分不能であることにある。障害物との衝突を回避するために、最適化アルゴリズムは、すべての障害物からのリンクの各々の最小距離がリンクの運動中に常に正であることを保証する必要がある。
【0035】
したがって、いくつかの実施形態は、非線形制約130を受けて最小化される非線形目的関数120によって定義される汎用非線形計画(NLP)110を使用して、最適化問題を解くことにより、動作軌道を決定し、決定変数は、指定された間隔またはセット140内にある。最適な決定変数は、非線形制約130を受ける目的関数120を最小化することにより、指定範囲140内で得られる。いくつかの実施形態の目的は、NLP110に対する微分解を提供することである。
【0036】
図1Bは、いくつかの実施形態の原理を使用して平面内で軌道を計画するための例を示す概略図である。たとえば、一方の方向(たとえばy方向)の物体の運動が固定され、直交する他方の方向(たとえばx方向)の動きを最適化する必要があると仮定することにより、最適化問題を解くことが可能である。そのような仮定は、より多くの時間およびリソースを消費し、ミッションクリティカルであるアプリケーションには適さない、反復プロセスにつながる。たとえば、図1Bの例に示されるように、位置106のx運動は、障害物回避制約を満たさなければならないので、x方向における位置の運動は、位置106を通過し2つの障害物104および105の間で境界が定められる短い水平セグメント121に限定される。
【0037】
【数1】
【0038】
しかしながら、本明細書に開示される実施形態の例は、代わりに、両方の軸に沿った物体の移動を同時に考慮する最小距離制約を利用する。そのような距離制約は、軌道最適化問題に、微分不可能な制約を導入する。いくつかのシナリオにおいて、最小距離制約は、ミニマイザが固有である場合にも最大で1回微分可能となり得る。しかしながら、物体がポリトープとしてモデル化される場合、ミニマイザの固有性を保証することはできない。たとえば、図1Bに示されるように、2つの障害物104と105との間の距離(両矢印として示される)は、障害物を質点として考慮するのではなく障害物の正確な幾何学的形状を考慮する場合、固有ではない。同様の理由から、操作対象の物体の軌跡103が2つの障害物104と105との間を通る場合、物体と障害物104、105のうちのいずれかとの間の距離は、必ずしも固有ではない。
【0039】
このように、最小距離制約を使用して定義される軌道問題を解くためのNLPソルバ110の有用性は、これらの制約が微分不能であること、および、これらの制約のミニマイザの固有性が保証されないことが原因で、問題となる。いくつかの実施形態の例は、微分不可能な制約ベースの問題を、固有のミニマイザを有する、微分可能で相補性条件ベースの最適化問題に変換する。
【0040】
いくつかの実施形態は、物体の点間の距離が、その点すべての間の差の距離関数として表される場合、物体間の最小距離は、この関数の停留点に対応する、という認識に基づいている。本明細書で使用される、距離のような1つの変数の微分可能関数の停留点は、この関数の導関数が実現可能な運動方向に沿って非負である関数のグラフ上の点である。そのような距離関数のすべての一次停留点はミニマイザであり、距離関数の曖昧さは、そのような関数が複数の停留点を有し得ることを示唆する。いずれにしても、そのような定式化に従うと、最適最小化問題は、そのような距離関数の一次停留条件の解によって置き換えることができる。有利なことに、そのような解は、微分可能な態様で発見することができ、さまざまな非線形計画アルゴリズムの適用可能性を保証する。
【0041】
いくつかの実施形態は、制御下の物体の形状および衝突を引き起こし得る障害物の形状を凸包として表すことができ、そのため、これらの物体内の各点は、対応する包の頂点の非負の重みのベクトルであるという、別の認識に基づいている。有利なことに、そのような表現は、物体の状態からこれらのベクトルの重みを分離することを可能にする。具体的には、凸包によって表される物体の位置は状態に依存するが、包内の異なる点を定義する重み自体は状態とは無関係である。そのような表現は、物体の点および障害物の点の間の距離の定式化を、重みが単体上にあることが要求される凸問題にする。単体は、その要素、重みが非負であり、合計が1である凸集合である。最小距離最適化の凸性は、相補性制約を受ける一次停留条件を使用して再定式化することを可能にする。
【0042】
このようにして、いくつかの実施形態は、NLPのネスト化された最適化問題110を、相補性制約を使用して物体の凸包と障害物の凸包との間の最小距離をモデル化する一次停留条件の解に対する制約を受ける単一の最適化問題115に、変換する。最小距離に対する制約を一次停留条件の解として表現することが、このような表現を微分可能にするが、最適化問題115の解を相補性制約付き数理計画(MPCC:Mathematical Program with Complementarity Constraints)として定式化することを必要とする場合がある。
【0043】
言い換えると、相補性制約付きのNLPはMPCCである。相補性制約は、g(x)=0またはh(x)=0のいずれかを必要とするスカラーのセットにマッピングする関数g(x)≧0,h(x)≧0間の数学的関係である。これはg(x)≧0⊥h(x)≧0としてコンパクトに表される。関数g(x)、h(x)が等次元のベクトル関数である場合、表記g(x)≧0⊥h(x)≧0は、i番目の成分g(x)≧0⊥h(x)≧0の各々について成り立つと理解される。
【0044】
図2Aは、いくつかの実施形態に係る、物体が障害物に衝突することを回避しつつ、物体の状態を開始状態から終了状態まで変化させるタスクを実行する物体の運動を制御するための方法200のブロック図を示す。この方法は、この方法を実現する格納された命令と結合されたプロセッサを使用するコントローラによって実行され、命令はプロセッサによって実行されるとこの方法のステップを実行する。
【0045】
この方法は、物体および障害物の力学および幾何学的形状を示すデータを取得するステップ201を含む。データ201は、当技術分野で利用可能な有線または無線通信を介して受信することができる。たとえば、物体の力学は、物体のアクチュエータの1つ以上の力の適用に応じた物体の状態の変化を記述する方程式のセットを含み得る。これらの力学は、モータまたはロボットアームのマニピュレータ等のアクチュエータによって作動させる物体の運動を計画することを可能にする。
【0046】
さまざまな実施形態において、障害物は静止または移動している可能性がある。静止障害物の力学は、この障害物の固定された姿勢を示す。静止障害物の力学は、障害物の状態を時間の関数として定義する障害物の軌道を示す。このようにして、物体の最適軌道を計画する際に、最適化ソルバによって障害物の力学を考慮することができる。
【0047】
物体および障害物の幾何学的形状は、物体および障害物の凸包を示す。凸包は、幾何学的形状の一部として受ける、または幾何学的形状に基づいて計算することができる。いくつかの実施形態において、幾何学的形状は3次元(3D)情報を含む。凸包の形状の一例は、ポリトープを含む。物体および障害物の幾何学的形状の表現を凸包として有することは、物体の凸包の頂点と障害物の凸包の頂点との重み付けされた組み合わせとして凸包内の点を定義することを可能にする。そのような表現は、物体および障害物の凸包の頂点に対する重みに対して相補性制約を課すことを可能にし、それにより、物体および障害物の状態から切り離された方法で最小距離を実現する。
【0048】
次に、この方法は、相補性制約を使用して物体の凸包と障害物の凸包との間の最小距離をモデル化する一次停留条件の解に対する制約を受けるタスクを実行するための最適軌道を生成する物体の力学の最適化問題を解く(202)。いくつかの実装形態において、相補性制約によって支配される重みは、物体の状態および障害物の状態から独立しているので、最適化問題は、物体および障害物の凸包の頂点の位置をそれらの対応する状態に従って変化させることにより、最小距離をモデル化する。
【0049】
異なる実施形態において、最適化問題の解は、最小時間問題、物体操作問題、または目的関数の数学的構造のうちの1つ以上を定義する目的関数を最適化する。これらの実施形態において、NLPソルバ110は、ネスト化された最適化問題を回避するために、相補性制約に起因して、MPCC115に変換される。
【0050】
次に、この方法は、最適軌道に従って物体の運動を制御する(203)。たとえば、物体の運動を制御するために、コントローラは、最適な軌道を辿るように物体を移動させるようアクチュエータに指示する制御コマンドを生成するように構成される。加えて、コントローラをさらに、アクチュエータに最適軌道力を生成させるように構成することができる。
【0051】
ネスト化された最適化問題を単一の最適化問題に変換することは、より少ない反復を必要とし、よって、ネスト化された問題によって消費されたであろうものと比較して、より少ないリソースを消費する。そのため、いくつかの実施形態の例は、より高速な最適化プロセスにつながり、このプロセスについて実現されるいくつかの有益な態様は、プロセスを実行するときの全体的なリソース消費、CPU時間、およびクロックサイクルの著しい改善を含む。そのような技術的利益は、最適化問題が、自動運転、ロボット、ドローンなどのようなリソース不足の用途の一部として実現されるときに、さらに拡大され、より実用的な利益に変換される。
【0052】
図2Bは、一実施形態に係る、最適化を解く(202)ための最適化ソルバの逐次ワークフローを示す。この実施形態において、コントローラ50は、物体および障害物がポリトープとしてモデル化される場合であっても、NLPソルバ210などのNLPソルバを使用して軌道最適化問題を解く。コントローラ50は、物体に対するタスクを実行するまたは物体を使用するマシンの一部であってもよい。たとえば、コントローラ50は、物体に対してロボット操作を実行するロボットに常駐していてもよい。代わりに、コントローラ50は、自動駐車を行う車両に、または自動監視、配送等を行うUAVに常駐していてもよい。そのような用途の例の各々において、コントローラ50は、物体に対する制御を実行し、たとえば、場合によっては、この制御はロボットマニピュレータの場合のように接触ベースの操作であってもよく、車両の場合のように物体の運動の非接触ベースの制御であってもよい。よって、物体の制御は所望のタスクの実行に向けられるとみなすことができる。そのようなタスクの各々は、1つ以上の目的関数に関連付けられている場合がある。
【0053】
NLPソルバ210は、コントローラ50に関連付けられたメモリ内に常駐していてもよく、コントローラ50によってオンデマンドで呼び出されてもよい。この点に関して、図2は、コントローラ50のNLPソルバの逐次ワークフローを示す。
【0054】
NLPソルバ210は、(いくつかのうちでも特に)入力として、物体の力学の記述220と、相補性変数230と、衝突変数240と、所望のタスクまたは目的関数の定義250とを取得する。力学の記述220は、1つ以上の力を受けたときに物体がどのように移動するかを記述する方程式のセットを定義することができる。すなわち、力学の記述は、物体の動的挙動を定義することができる。コントローラ50は、インターフェイスを介してユーザから力学の記述を受けることができる。代わりに、コントローラ50は、そのような情報を格納するデータベースから力学の記述を取得してもよい。
【0055】
目的関数250は、タスクに関連付けられるエンドユーザの目標を定義する。たとえば、目的関数は、タスクに関連付けられる最小時間問題、物体の目的地、または場合によっては追加的に目的関数の構造(二次または非線形)を定義することができる。非線形最適化計画ソルバによって提供される出力は、最適軌道、すなわち、物体の状態のシーケンス、および操作される物体に加えられるまたは適用される力またはトルク260を含み得る、制御入力である。これにより、コントローラ50は、障害物104、105との衝突を回避しつつ、生成した最適軌道力260の値を用いて物体(この場合は物体の運動)を制御することができる。
【0056】
図3Aは、いくつかの実施形態に係る、物体と障害物との間の最小距離に相補性制約を課すための原理の概略図を示す。いくつかの実施形態は、物体および/または障害物の実際の形状を定義する幾何学的形状330が凸状であってもなくてもよい、という認識に基づいている。形状が凸状である場合、結果として生じる最適化問題が凸ではない可能性もあり、非凸最適化を解くことは難しい。
【0057】
そのために、いくつかの実施形態は、物体および障害物の実際の形状を凸形状で取り囲み(340)、それらの凸形状に対する最小距離を実現する相補性制約350を定義するが、必ずしも物体および障害物の実際の形状ではない。このように、相補性制約を受ける、いくつかの実施形態によって解かれる、結果として得られた最適化問題は、凸である。
【0058】
図3Bおよび図3Cは、いくつかの実施形態に係る、図3Aの原理を使用して物体の制御を実行するための原理の概略図を示す。たとえば、図3Bの実施形態において、物体および障害物の凸形状の各々は、物体の凸包内の点を定義する不等式のセットと、障害物の凸包内の点を定義する不等式のセットとによって定義される凸包であり、相補性制約は、物体と障害物との間の最小距離を実現するために、物体と障害物との不等式のセットに課される。
【0059】
【数2】
【0060】
【数3】
【0061】
(6)に対する最適解q*ij,iおよびq*ij,jは、それぞれ、物体間の最短距離を与える物体i;jにおける点である。(6)の最適化問題は凸問題である。(6)のすべての一次停留点はミニマイザである。
【0062】
【数4】
【0063】
【数5】
【0064】
【数6】
【0065】
図3Cは、別の実施形態に係る、コントローラ50によって採用される物体の制御を行うための原理の概略図を示す。この実施形態において、物体および障害物の凸形状の各々は、頂点のセットによって定義されるポリトープであり、物体のポリトープ内の点は、物体のポリトープの頂点の重み付けされた組み合わせとして定義され、障害物のポリトープ内の点は、障害物のポリトープの頂点の重み付けされた組み合わせとして定義され、相補性制約は、物体と障害物との間の最小距離を実現するために物体および障害物のポリトープの頂点の重みに課される。このことは、任意の物体に対して凸状ポリトープを発見することは計算効率が良いタスクなので、有利である。
【0066】
302において、コントローラ50は、封入ポリトープを使用して関心空間内の各物体の物体範囲をモデル化する。この点に関して、コントローラ50は、任意の適切な撮像および関連する画像処理技術を使用して、ポリトープを境界ポリトープとして定義してもよい。すなわち、コントローラ50は、関心空間内の各エンティティに対する封入ポリトープのそのような実現を提供する1つ以上の適切な装置(撮像装置など)に通信可能に結合される。関心空間内の各エンティティは、別個の封入ポリトープを使用してモデル化されてもよい。
【0067】
図4は、ポリトープを使用して物体および障害物をパラメータ化する1つの例を示す。物体または障害物の内側のすべての点は、物体または障害物を取り囲むポリトープの頂点に関して表すことができる。この説明のために、物体および障害物は同様に扱うことができ、したがって、物体に関する説明は、障害物にも等しく適用可能であるものとする。x軸に沿う第1の寸法を2lとし、y軸に沿う第2の寸法を2wとする矩形の物体を考慮し、中心がxy平面内において座標(x,y)を有すると仮定する。そのような場合、物体の頂点は、xy平面の4象限においてそれぞれ座標(x+l,y+w),(x-l,y+w),(x-l,y-w),および(x+l,y-w)を有する。したがって、物体の内側の点は、封入ポリトープの頂点に関して表現することができ、物体は、質点として近似するのではなく、連続質体としてモデル化することができる。
【0068】
【数7】
【0069】
nvi∈Rnviはすべて1のベクトルであり、α∈Rnviは頂点の凸包を生成する非負ベクトルである。座標の頂点の、物体の位置、向きに対する依存性は、x(t)、y(t)に対するViの関数依存性によってモデル化される。静止障害物の頂点座標は、x(t)、y(t)とは無関係であることに注意されたい。ここでは物体の処理と静止障害物の処理との間に差異がある。
【0070】
【数8】
【0071】
【数9】
【0072】
【数10】
【0073】
【数11】
【0074】
【数12】
【0075】
【数13】
【0076】
【数14】
【0077】
このようにして、ポリトープ内のすべての点を、物体を取り囲むポリトープの頂点の凸組み合わせとしてパラメータ化することができる。
【0078】
【数15】
【0079】
【数16】
【0080】
上記定式は、(1)のミニマイザが固有である場合、最大で1回微分可能である。しかしながら、物体が上記のようにポリトープとしてモデル化される場合は固有性を保証できない。結果として、(2)における定式化をNLPソルバに直接提供することができない。
【0081】
【数17】
【0082】
式中、αij;iおよびαij;jは、物体i、jの境界を定めるポリトープの頂点の凸組み合わせを示す変数である。(3)に対する最適解α*ij;iおよびα*ij;jにおいて、点V(x(t),y(t))α*ij;iおよびV(x(t),y(t))α*ij;jは、それぞれ、物体間の最短距離を与える物体i;j内の点である。(3)における最適化問題は凸問題である。(3)のすべての一次停留点がミニマイザである。
【0083】
【数18】
【0084】
【数19】
【0085】
【数20】
【0086】
310において、コントローラは、(4a)~(4e)において定義された制約を利用し、これらの制約を「制御を決定するための最適化問題」に追加して、微分可能な定式を得る。平滑問題は、コントローラ50に関連付けられるメモリに格納されたNLPソルバに与えることができ、したがって、物体を操作するために必要な軌道力の値を求めることができる。このようにして、実施形態の例は、問題の複雑さを低減することにより、処理速度に関する利点を提供する。力の値を計算するのに要する時間は、衝突回避問題の平滑化によりかなり短縮される。計算時間の短縮は、物体を制御するためのプロセス全体に対して広範囲に及ぶ影響を有する。したがって、実施形態の例は、ロボットマニピュレータ等の自動化装置の著しい改善をもたらす。
【0087】
図6は、ネスト化された最適化問題を凸/二次計画に変換し、相補性制約を受ける一次最適条件を識別することを説明する図である。この例において、物体610と620との間の距離630は、内部最適化640から相補性制約650に変換される(660)。このようにして、ネスト化された最適化問題が回避される。
【0088】
ネスト化された最適化問題を単一の最適化問題に変換することは、より少ない反復を必要とし、よって、ネスト化された問題によって消費されたであろうものと比較して、より少ないリソースを消費する。そのため、いくつかの実施形態の例は、より高速な最適化プロセスにつながり、このプロセスについて実現されるいくつかの有益な態様は、プロセスを実行するときの全体的なリソース消費、CPU時間、およびクロックサイクルの著しい改善を含む。そのような技術的利益は、最適化問題が、自動運転、ロボット、ドローンなどのようなリソース不足の用途の一部として実現されるときに、さらに拡大され、より実用的な利益に変換される。
【0089】
さらに、いくつかの実施形態の例は、制約に導入される平滑さのために、この問題の根底にある変換が、多くの仮定または近似を行う必要がないので、精度の点で一層最適化された軌道をもたらす。その理由は、制約を相補性条件として表現することにより、従来の最適化アルゴリズムを使用してロバストに解くことを可能にし、したがって、より高い品質の解をもたらす、調整された緩和を使用することが可能になることにある。
【0090】
いくつかの実施形態は、衝突を回避する制御最適化が、自動運転車の組立、駐車または制御を実行するロボット、ドローンの自律運動等の、多くの制御用途に役立ち得る、という理解に基づいている。特に、いくつかの実施形態は、相補性制約を用いて衝突回避問題を定式化することは、ロボット用途において特に有益となり得る、という認識に基づいている。ほとんどのロボット用途は、コンタクトリッチマルチボディ相互作用を引き起こす、片側接触、摩擦接触、衝撃、および変形のような、根底にある難しい現象に対処しつつ、制約のある環境の存在によって特徴付けられる。これらのコンタクトリッチマルチボディ摩擦相互作用システムは、一般的に、相補性条件を使用して表すことができる非平滑力学によって説明される。したがって、衝突回避も相補性制約によって定式化される場合、そのような定式化は、接触および衝突回避を統一的に扱うことを可能にする。
【0091】
【数21】
【0092】
相補性変数230は、接触または任意の他の不連続性のような現象に起因して生じ得る物体の力学を記述するのに役立つパラメータを定義することができる。これらの変数間の関係は相補性制約である。これらの相補性制約は、プログラムされたインターフェイスを使用するユーザによってコントローラに提供される必要がある。衝突変数240は、物体の環境に存在し得る障害物の頂点である。これらは、物体の環境をマッピングすることができるカメラまたはライダ(lidar)のようないくつかのセンサを介してユーザに提供される。
【0093】
図7Bは、いくつかの実施形態に係る、スライダプッシャシステムが障害物760bおよび770bの存在下で機能するシナリオの例を示す。この概略図は、プッシャ720bの状態730bのシーケンスを含む可能な最適軌道740bを示す。軌道740bとは別に、オプティマイザが、スライダ710bの表面上の制御力およびプッシャ速度の最適なシーケンスも見出す。
【0094】
図7Cは、いくつかの実施形態に係る、衝突回避問題の定式化の概略図を示す。衝突回避問題の目的は、最適な衝突のない軌道710cを生成することである。本開示で提示される定式化は、物体750cおよび障害物740cのポリトープ表現770cを考慮する。最小距離関数730cは、障害物および物体のポリトープ表現を使用して二次計画として定式化することができる。一次停留条件を使用する再定式化720cは、相補性条件をもたらし、次に、相補性条件を、本開示において説明される最適化問題によってロバストに解くことができる。
【0095】
図7Dは、いくつかの実施形態の例に係る、ロボットを使用して物体を制御するための方法の例を示す。702dにおいて、方法は、ロボット状態、操作対象の物体の姿勢、環境内の障害物の位置、および操作対象の物体の目標姿勢の値を含むデータを受けるステップを含む。これらのデータのうちのいくつか、たとえば、操作対象の物体の姿勢、障害物の位置は、物体およびその周囲の3次元情報として取得されてもよい。物体の目標姿勢は、目的関数とともに、たとえばユーザによって提供されてもよく、またはデータベースにおいて事前に定義されてもよい。
【0096】
704dにおいて、方法は、障害物の形状および頂点の知識を使用して障害物をポリトープとしてモデル化するステップを含む。702dで受け入れられたデータを使用して、障害物を、図5A図5Dを参照して説明した例示方式に従ってモデル化することができる。それに応じて、各ポリトープ内のすべての点の状態の行列を定義することができる。
【0097】
706dにおいて、方法は、障害物の存在下における操作対象の物体とその環境との相互作用の力学モデル、および摩擦のような他のパラメータを受けることを含む。上述のように、操作対象の物体の力学の記述は、ユーザによって提供されてもよく、またはロボットマニピュレータによってデータベースから取り出されてもよい。
【0098】
708dにおいて、衝突回避制約は、線形相補性制約として受けることができる。たとえば、式(1)および(2)を衝突回避制約として決定してもよい。710dにおいて、接触ベースのシステムに関する記述は、線形相補性制約を使用して受けることができる。すなわち、最小化問題は、ポリトープの頂点のパラメータ化を考慮する定式化(3)として再度提示されてもよい。
【0099】
712dにおいて、方法は、適切な目的関数を使用するシステムの所望の挙動の指定と、ロボットおよび操作対象の物体の対応する状態および制御制約とを受けることを含む。目的関数は、タスクに関連付けられる最小時間問題、物体の目的地、または場合によっては追加的に目的関数の構造(二次または非線形)を定義することができる。
【0100】
714dにおいて、方法は、ロボットの状態および制御のシーケンスを取得するために、提案された数理計画法(図3参照)を使用して衝突回避のための最適化問題を解くことを含む。非平滑最適化問題を、一次停留条件を使用して変換し、次に、式(5)に従って解くことにより、ロボットの状態および制御のシーケンスのための値を得る。
【0101】
716dにおいて、方法は、取得された制御コマンドをロボットシステム(ロボットマニピュレータ)に対して実施することにより、いかなる障害物とも衝突せずに物体を操作することを含む。
【0102】
図8Aは、本開示のいくつかの実施形態に係る、ロボット装置に関連付けられるいくつかの方法を実現するために使用されるいくつかのステップを示すフロー図である。
【0103】
【数22】
【0104】
図8Bは、いくつかの実施形態に従って動作するロボットマニピュレータを含む具体例としてのホロノミックカートを示す。いくつかの実施形態において、可動カート832を有するロボット802は、カート832に搭載された、リンク823、825を有するロボットアーム822と、グリッパ827とを有する。グリッパ827は、環境内の物体を把持することができる。カート832は、2つの自由度で動作するホロノミックホイールであってもよい1つ以上のホイール811、812を含み得る。さらに他の実施形態において、巻き付けられたフロントコンベヤベルト813がホロノミックカート832上に含まれてもよい。いくつかの例において、巻き付けられたフロントコンベヤベルト813は、ロボット802がトラックコンテナまたはパレット(図示せず)から箱を荷下ろしまたは積み込むときに、そのグリッパ827を左または右に回転させる必要をなくすことができる。機械システムは、ロボットアーム822、グリッパ827、コンベヤベルト813、(可動またはホロノミック)カート832、および1つ以上のホイール811、812を含む、構成要素を含み得る。感知システムは、ロボットアーム822が移動するときに環境に関する情報を感知する2Dセンサおよび/または3D深度センサ(図示せず)のような、ロボットアーム822に取り付けられた1つ以上のセンサを有することができる。さらに、ライト837を、カート832またはグリッパ827の前方、側方、後方、下方、またはどこにでも配置することができる。
【0105】
図9は、本開示のいくつかの実施形態に係る、いくつかの方法を実現するために使用されるデータ処理システムのいくつかの構成要素を示すブロック図である。
【0106】
たとえば、データ処理システム900は、環境973のデータを含むデータを収集する、センサ972または複数のセンサと通信するハードウェアプロセッサ971を含み得る。センサデータは、ロボット、車両、機械などに関連するデータ、および同様のタイプのデータ、または非線形制約を有する動的システムのための軌道最適化技術に関連付けられたデータを含み得る。さらに、センサ972は、ビデオまたはカメラ入力を信号データに変換することができる。ハードウェアプロセッサ971は、メモリ979が、ハードウェアプロセッサ971によって実現され得るアルゴリズム、命令、および他のデータを含む、格納されたデータを含むように、コンピュータ記憶メモリ、すなわち、メモリ979と通信することができる。たとえば、メモリに格納されているものは、マルチリンク動的モデル、非線形計画、および目的関数を含み得る。
【0107】
引続き図9を参照すると、有線接続または無線接続を介して環境内の少なくとも1つのセンサから取得することができるセンサデータをメモリ979に格納することができ、センサデータは、データを出力しデータを受信するように構成されたトランシーバを介してメモリに格納され、その結果、各時間間隔の後に、センサデータは少なくとも1つのセンサによって更新される。また、メモリに格納されるものは、ロボットアーム情報を含み得る車両および機械の動作および力学データを含み得るものであり、ロボットアーム情報は、ロボットアームの動作のシミュレーションを可能にするロボットアームのモデルを、ロボットアームの各関節を動かすためにロボットドライブを介してモータから加えられるトルク等の動作制御入力とともに、含み得る。マルチリンク動的モデル、非線形計画、または目的関数等のソフトウェア997をメモリ979に格納することが可能である。格納されるデータは、ロボット、車両、機械など、または同様のタイプのデータ、または非線形制約付きの動的システムのための軌道最適化技術に関連するデータを含み得る。
【0108】
任意で、ハードウェアプロセッサ971は、データソース983、コンピュータ装置984、携帯電話装置985、および記憶装置986と通信する、ネットワーク977に接続することができる。また、任意で、ハードウェアプロセッサ971は、ネットワーク977を介して、クライアントデバイス(図示せず)に接続されたネットワーク対応サーバ(図示せず)に接続することができる。ハードウェアプロセッサ971は、任意で、外部メモリデバイス991、送信機992、およびコントローラ994に接続することができる。トランシーバ996を、拡張バスインターフェイス995を介してハードウェアプロセッサ971に接続することができる。トランシーバ996によって受信されたいくつかの種類の出力は、モニタまたは画面等のユーザの1つ以上の表示装置に表示するおよび/またはさらに他の分析などのために他のコンピュータ関連装置に入力することが可能な、(本開示の方法から得られた)経路に沿う計算された軌道に関する要求(トランシーバ996によって受信される)への応答を受信することに関心がある、ユーザの意図に、関連する可能性がある。
【0109】
引続き図9を参照すると、ハードウェアプロセッサ971は、特定の用途の要件に応じて、2つ以上のハードウェアプロセッサを含み得るものであり、プロセッサは内部または外部のいずれかであり得ることが、意図されている。当然、他の構成要素が組み込まれてもよい。
【0110】
ネットワーク977は、非限定的な例として、1つ以上のローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)を含むことが可能である。ネットワーキング環境は、企業規模のコンピュータネットワーク、イントラネットおよびインターネットと同様であってもよい。上記構成要素のすべてについて、本開示のシステム内で使用される任意の数のクライアントデバイス、記憶装置構成要素、およびデータソースが存在し得ることが意図されている。各々は、分散環境において協働する単一の装置または複数の装置を含み得る。さらに、データソース983は、ネットワークを訓練するためのデータリソースを含み得る。たとえば、ある実施形態において、訓練データは記憶装置986に格納することができる。訓練データは、他の環境の信号を含むこともできる。データソース983はまた、ネットワークを訓練するためのデータリソースを含み得る。データソース983によって提供されるデータは、環境、ロボットアームなどに対応する他のセンサ関連データ等の、他のデータを含み得る。
【0111】
引続き図9を参照すると、データソース983内のいくつかのデータは、1つ以上のフィードバックループによって提供することができる。データソースの他の例は、限定ではなく例として、ストリーミングビデオ、ウェブクエリ、モバイルデバイスカメラまたは他の情報、ウェブカムフィード、スマートグラスおよびスマートウォッチフィード、顧客ケアシステム、セキュリティカメラフィード、ウェブドキュメント、カタログ、ユーザフィード、SMSログ、インスタントメッセージングログ、話し言葉トランスクリプト、ゲームシステムユーザ対話、たとえば音声コマンドまたはデータを含む、さまざまなソースを含み得る(たとえば、データは、ロボット、車両、環境などのタイプのデータ、または非線形制約付き動的システムのための軌道最適化技法に関連付けられたデータを含み得る)。使用される特定のデータソース983は、データが特定のクラスのデータ(たとえば、ロボット、車両、環境などに関連付けられるしきい値、性能、安全性などに関連するデータ、または、非線形制約付きの動的システムのための軌道最適化技法に関連付けられたデータ)であるか、または本質的に汎用(非クラス固有)であるかを含む、アプリケーションに基づいて決定されてもよい。
【0112】
第三者装置984、985は、コンピュータデバイス984またはモバイルデバイス985を含む任意のタイプのコンピューティングデバイスからなるものであってもよい。ユーザデバイスが、携帯情報端末(PDA)、スマートフォンなどのモバイルデバイス、スマートウォッチ、スマートグラス(または他のウェアラブルスマートデバイス)、拡張現実ヘッドセット、仮想現実ヘッドセットとして具体化されることが、意図されている。さらに、ユーザ装置は、タブレット、リモートコントロール、エンターテイメントシステム、車両コンピュータシステム、組み込みシステムコントローラ、アプライアンス、ホームコンピュータシステム、セキュリティシステム、消費者電子装置、または他の同様の電子装置等のラップトップであり得る。一実施形態では、クライアント装置は、本開示の方法およびシステムによって使用可能なオーディオおよび情報などの入力データを受信することが可能である。たとえば、第三者装置は、データ、すなわち、ロボット、車両、環境などに関連するデータ、または同様のタイプのデータ、または非線形制約付きの動的システムのための軌道最適化技術に関連付けられるデータ、オーディオ情報を受信するためのマイクロフォンまたはラインイン、ビデオまたは画像情報を受信するためのカメラ、または、インターネットもしくはデータソース等の別のソースからそのような情報を受信するための通信構成要素(たとえばWi-Fi(登録商標)機能)であってもよい。
【0113】
引続き図9を参照すると、記憶装置986は、データ、コンピュータ命令(たとえばソフトウェアプログラム命令、ルーチン、またはサービス)、および/または本明細書に記載される技術の実施形態で使用されるモデルを含む、情報を格納することができる。たとえば、記憶装置986は、1つ以上のデータソース983からのデータ、1つ以上のディープニューラルネットワークモデル、ディープニューラルネットワークモデルを生成および訓練するための情報、ならびに1つ以上のディープニューラルネットワークモデルによって出力されたコンピュータ使用可能情報を格納することができる。
【0114】
【数23】
【0115】
【数24】
【0116】
図11は、本開示のいくつかの実施形態に係る、いくつかの方法を実現するために使用されるいくつかの構成要素を示すブロック図である。本開示の実施形態に従うと、ロボット装置1150は、機械システム1160、センサ1170、制御システム1180、ネットワーク1193、および電源1195からなる。機械システム1160は、ロボットアーム1161、グリッパ1163、およびグリッパ用ベース1165からなる。センサは、環境センサ1171、位置センサ1173、および速度センサ1174からなるものであってもよい。制御システムは、データ処理システム1181からなる。
【0117】
図12は、いくつかの実施形態に係る、ロボットアームを使用する制御システムの一例を示す図である。以下、制御システムを、ロボットシステム1200に適用される例として説明するが、制御システムおよびコンピュータにより実現される方法は、ロボットシステムに限定されないことに注意されたい。ロボットアーム1202は、システム1260に外部から供給されてもよいコマンドまたはタスクを受信するロボット制御システム1200を使用して制御される。コマンドまたはタスクの例は、ロボットアーム1202のグリッパ1212を使用して物体1211に触れることまたは把持することであってもよい。ロボット制御システム1260は、制御信号1270をマニピュレータに送信する。制御信号1270は、ロボットアームの関節1214、1216、1218の各々に加えられるトルク、およびグリッパ1212の開閉とすることができる。ロボットシステム1215の状態は、センサを使用して導出される。これらのセンサは、ロボット1214、1216、1218の関節におけるエンコーダと、ロボットの環境を観察することができるカメラ1210と、グリッパ1212のフィンガに取り付けることができる触覚センサとを含み得る。センサ1215からの状態測定値は、センサから受信したデータを格納するデータ入/出力ユニット1220に送られる。ロボット制御システム1260は、何らかのタスクまたはコマンドを達成するためのポリシーを実行すると言われている。プログラム1240は、データ入出力ユニット420からの入力を取り込み、コントローラ更新システム450を使用して制御ポリシーへの更新を判断する。次に、コントローラ更新システム450は、更新されたポリシー430をロボット制御システム460に送信する。ポリシー430およびロボット制御システム460はまた、グリッパフィンガ330および340の開閉の量を制御することもできる。閉じる量または把持の強さは、制御ポリシー430によって決定することができる。好ましい実施形態において把持強度はセンサ415からの状態測定値の一部である触覚センサ360の信号から求められる。
【0118】
好ましい実施形態において、カメラ1210は、RGBカラー画像および深度画像の両方を供給することができるRGBDカメラである。RGBDカメラからの内部情報は、深さを3D点群に変換するために使用することができる。別の実施形態において、カメラは、深さおよび3D点群を計算することができる2つのカラーカメラからなるステレオカメラとすることができる。さらに別の実施形態では、カメラは、単一のRGBカメラであってもよく、3D点群は、機械学習を使用して直接推定されることができる。別の実施形態では、複数のカメラ1210があってもよい。最後に、別の実施形態では、カメラ1210は、ロボットアーム1202またはグリッパ1212上のある点に装着することができる。
【0119】
図13は、一実施形態に係るシステムの概略図を示す。システムは、自動駐車1350を実行するように構成されたプロセッサ1302を含む車両1301を含む。車両はまた、LIDAR1310および/またはカメラ1320等の少なくとも1つのセンサを含む。LIDARセンサ1310は低分解能の第1のセンサであり、カメラ1320は高分解能の第2のセンサである。センサ1310および/または1320は、プロセッサ1302に動作可能に接続され、駐車スペースの少なくとも一部の幾何学的形状を示す情報1315および1325を感知するように構成される。この情報を使用して、プロセッサ1302は、駐車スペースの地図1330を決定および/または更新する。そのために、プロセッサ1302は、マップ1330を使用して自動駐車1350を実行する。
【0120】
本開示の上記実施形態は、非常に多くのやり方のうちのいずれかのやり方で実現することができる。たとえば、実施形態は、ハードウェア、ソフトウェア、またはその組み合わせを用いて実現してもよい。ソフトウェアで実現する場合、ソフトウェアコードは、任意の適切なプロセッサ上で、または、1つのコンピュータに設けられていても複数のコンピュータに分散されていてもよいプロセッサの集合体上で、実行することができる。このようなプロセッサは、1つ以上のプロセッサが集積回路構成要素内にある集積回路として実現されてもよい。とはいえ、プロセッサは、任意の適切なフォーマットの回路を用いて実現されてもよい。
【0121】
また、本明細書で概要を述べた各種方法またはプロセスは、さまざまなオペレーティングシステムまたはプラットフォームのうちのいずれか1つを採用した1つ以上のプロセッサ上で実行可能なソフトウェアとして符号化されてもよい。加えて、このようなソフトウェアは、複数の適切なプログラミング言語および/またはプログラミングもしくはスクリプトツールのうちのいずれかを用いて記述されてもよく、また、フレームワークもしくは仮想マシン上で実行される、実行可能な機械言語コードまたは中間符号としてコンパイルされてもよい。典型的に、プログラムモジュールの機能は、各種実施形態において所望される通りに組み合わせても分散させてもよい。さらに、請求項において、ある請求項の要素を修飾する「第1」、「第2」のような順序を表す用語は、それ自体が、請求項のある要素の、別の要素に対する優位、先行、もしくは順序、または、方法の動作を実行する時間的順序を内包している訳ではなく、単に、請求項の要素を区別するために、(順序を表す用語が使用されていない場合に)特定の名称を有する請求項のある要素を同じ名称を有する別の要素と区別するためのラベルとして使用されているにすぎない。
【0122】
また、本開示の実施形態は方法として実施されてもよく、その一例が提供されている。この方法の一部として実行される動作の順序は任意の適切なやり方で決定されてもよい。したがって、実施形態は、例示されている順序と異なる順序で動作が実行されるように構成されてもよく、これは、いくつかの動作を、例示の実施形態では一連の動作として示されているが、同時に実行することを含み得る。さらに、請求項の要素を修正するための請求項における第1、第2などの序数の用語の使用は、それ自体では、ある請求項の要素が別の請求項の要素よりも優先するか、優先するか、または順序するか、あるいは方法の動作が実行される時間的な順序を意味するものではない。しかし、単に、ある名前を有するある請求項の要素を、請求項の要素を区別するために同じ名前を有する(ただし序数の用語を使用するための)別の要素から区別するためのラベルとして使用される。
【0123】
本開示をいくつかの好ましい実施形態を参照しながら説明してきたが、本開示の精神および範囲の中でその他さまざまな適合化および修正が可能であることが理解されるはずである。したがって、添付の請求項の目的は、本発明の真の精神および範囲に含まれるこのような変形および修正すべてをカバーすることである。
図1A
図1B
図2A
図2B
図3A
図3B
図3C
図4
図5A
図5B
図5C
図5D
図6
図7A
図7B
図7C
図7D
図8A
図8B
図9
図10
図11
図12
図13