(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025027463
(43)【公開日】2025-02-27
(54)【発明の名称】リアルタイム自律経路計画のためのコンピュータシステムおよび方法、ならびにロボットデバイスおよびその部分の動作を計画するためのシステムおよび方法
(51)【国際特許分類】
B25J 9/10 20060101AFI20250219BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024134941
(22)【出願日】2024-08-13
(31)【優先権主張番号】63/519,416
(32)【優先日】2023-08-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】524183223
【氏名又は名称】マクドナルド・デトワイラー・アンド・アソシエイツ・インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ロバート・マグナー
(72)【発明者】
【氏名】アダム・フィリップ
(72)【発明者】
【氏名】ロバート・ルーカス
(72)【発明者】
【氏名】バハレ・ゴトビ
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS13
3C707JS02
3C707KS02
3C707KS03
3C707KS04
3C707KS12
3C707KS16
3C707KS22
3C707KS23
3C707KT01
3C707KT06
3C707KV11
3C707KX19
3C707LS15
3C707LS20
3C707MS08
3C707MT06
(57)【要約】 (修正有)
【課題】許容可能な経路を効率的に計算することができるリアルタイム自律経路計画のためのシステム、方法、およびデバイスを提供する。
【解決手段】方法は、3次元作業空間内でロボットデバイスに関するデータを受信するステップと、ロボットデバイス、目標物、および障害物を含むロボットデバイスの環境内の物体をシミュレートされたロボット空間内にカプセル化するステップと、仮想引力、仮想斥力、および仮想斥力に関して少なくとも部分的に垂直に作用する仮想接線力を含む、3つの仮想力に従ってロボットデバイスの動く方向を計算するステップと、3次元作業空間内の各仮想力を、各関節におけるシミュレートされたロボット空間内のトルクベクトルにマッピングするステップと、トルクベクトルの総和を目標物に到達するための経路を定義するロボットデバイスのためのコマンドに変換するステップと、コマンドをロボットデバイスに送信するステップとを含む。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ロボットデバイスに対するリアルタイム自律経路計画の方法であって、
通信インターフェースデバイスによって、3次元作業空間内の、複数の関節を含む前記ロボットデバイスに関する遠隔測定データを受信するステップと、
1つまたは複数のプロセッサによって、前記ロボットデバイス、目標物、および1つまたは複数の障害物を含む前記ロボットデバイスの環境内の物体を、複数の次元を有するシミュレートされたロボット空間内にカプセル化するステップと、
前記1つまたは複数のプロセッサによって、前記ロボットデバイスと前記目標物とを一緒に動かすように作用する仮想引力、前記ロボットデバイスと前記1つまたは複数の障害物とを互いから離れる方向に動かすように作用する仮想斥力、および前記仮想斥力に関して少なくとも部分的に垂直に作用する仮想接線力を含む、3つの仮想力による前記ロボットデバイスの動く方向を計算するステップと、
前記1つまたは複数のプロセッサによって、前記3次元作業空間内の各仮想力を、各関節における前記シミュレートされたロボット空間内のトルクベクトルにマッピングするステップと、
前記1つまたは複数のプロセッサによって、前記トルクベクトルの総和を前記ロボットデバイスのための1つまたは複数のコマンドに変換するステップであって、前記1つまたは複数のコマンドは、前記目標物に到達するための経路を定義する、ステップと、
前記通信インターフェースデバイスによって、前記1つまたは複数のコマンドを前記ロボットデバイスに送信するステップと
を含む、方法。
【請求項2】
前記ロボットデバイスが、前記1つまたは複数のコマンドによって定義された前記経路に沿って動いて前記目標物に到達するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の障害物および前記目標物は、前記ロボットデバイスに関して動的に動いている、請求項1に記載の方法。
【請求項4】
前記ロボットデバイスは、7個の関節を含み、前記シミュレートされたロボット空間は、7次元を有する、請求項1に記載の方法。
【請求項5】
前記ロボットデバイスは、3つの並進次元および3つの回転次元で動くように構成されたエンドエフェクタを含む、請求項1に記載の方法。
【請求項6】
宇宙船は、前記エンドエフェクタに対する前記目標物であり、前記ロボットデバイスの少なくとも1つの他の部分に対する障害物である、請求項5に記載の方法。
【請求項7】
前記方法は、前記ロボットデバイスにおいてローカルに実行される請求項1に記載の方法。
【請求項8】
前記経路は、前記ロボットデバイスが前記障害物と相互作用することなく前記目標物に到達するのに十分な最適化されていない経路である、請求項1に記載の方法。
【請求項9】
前記3次元作業空間内の各仮想力を、各関節における前記7次元のシミュレートされたロボット空間内の前記トルクベクトルにマッピングするステップは、転置ヤコビ行列を使用する、請求項4に記載の方法。
【請求項10】
前記マッピングは、ポテンシャル場を使用して前記遠隔測定データを前記仮想力に変換することによって行われる、請求項1に記載の方法。
【請求項11】
前記ロボットデバイスの動きは、前記経路が再評価されるとともにリアルタイムで連続的である、請求項1に記載の方法。
【請求項12】
前記仮想引力および前記仮想斥力の各々を計算するステップは、前記ロボットデバイスに作用して前記ロボットデバイスがそれぞれ前記目標物に向かって動くこと、または前記1つまたは複数の障害物から離れる方向に動くことを引き起こす、人工ポテンシャル場に対応する、二次ポテンシャルの導関数を計算するステップであって、前記人工ポテンシャル場は、明示的に計算されない、ステップをさらに含む、請求項1に記載の方法。
【請求項13】
前記ロボットデバイスが前記経路の極小点に入ったときに、前記1つまたは複数のコマンドは、前記ロボットデバイスを前記極小点から外へ動かすためのコマンドを含む、請求項1に記載の方法。
【請求項14】
前記ロボットデバイスを前記目標物に接近させるステップをさらに含み、接近させる前記ステップは、前記目標物の角速度および/または直線的な速度に一致するように前記ロボットデバイスの前記角速度および/または直線的な速度をそれぞれ変化させるステップを含む、請求項1に記載の方法。
【請求項15】
前記ロボットデバイスを用いて前記目標物を捕捉するステップをさらに含む、請求項1に記載の方法。
【請求項16】
ロボットデバイスに対するリアルタイム自律経路計画のためのシステムであって、
3次元作業空間において、複数の関節を含む前記ロボットデバイスに関する遠隔測定データを受信し、または記録し、前記ロボットデバイスに1つまたは複数のコマンドを送信するための通信インターフェースデバイスと、
1つまたは複数のプロセッサ、およびコンピュータ実行可能命令が記憶されている非一時的コンピュータ可読媒体とを備えるコンピューティングデバイスであって、前記コンピュータ実行可能命令は、前記1つまたは複数のプロセッサによって実行されたときに、
前記ロボットデバイス、目標物、および1つまたは複数の障害物を含む前記ロボットデバイスの環境内の物体を、複数の次元を有するシミュレートされたロボット空間内にカプセル化することと、
前記ロボットデバイスと前記目標物とを一緒に動かすように作用する仮想引力、前記ロボットデバイスと前記1つまたは複数の障害物とを互いから離れる方向に動かすように作用する仮想斥力、および前記仮想斥力に関して少なくとも部分的に垂直に作用する仮想接線力を含む、3つの仮想力による前記ロボットデバイスの動く方向を計算することと、
前記3次元作業空間内の各仮想力を、各関節における前記シミュレートされたロボット空間内のトルクベクトルにマッピングすることと、
前記トルクベクトルの総和を前記ロボットデバイスのための前記1つまたは複数のコマンドに変換することであって、前記1つまたは複数のコマンドは、前記目標物に到達するための経路を定義する、前記変換することと
を含む動作が実行されることを引き起こす、コンピューティングデバイスと
を備える、システム。
【請求項17】
前記ロボットデバイスが前記1つまたは複数のコマンドによって定義された前記経路に沿って動いて前記目標物に到達することをさらに含む、請求項16に記載のシステム。
【請求項18】
前記ロボットデバイスは、7個の関節を備え、前記シミュレートされたロボット空間は、7つの次元を有し、前記ロボットデバイスは、3つの並進次元および3つの回転次元で動くように構成されたエンドエフェクタを含み、前記経路は、前記ロボットデバイスが前記障害物と相互作用することなく前記目標物に到達するのに十分な最適化されていない経路であり、前記仮想引力および前記仮想斥力の各々を計算することは、前記ロボットデバイスに作用して前記ロボットデバイスがそれぞれ前記目標物に向かって動くこと、または前記1つまたは複数の障害物から離れる方向に動くことを引き起こす、人工ポテンシャル場に対応する、二次ポテンシャルの導関数を計算することであって、前記人工ポテンシャル場は、明示的に計算されない、前記計算することをさらに含む、請求項16に記載のシステム。
【請求項19】
ロボットデバイスに対するリアルタイム自律経路計画のための非一時的コンピュータ可読媒体であって、前記非一時的コンピュータ可読媒体は、命令をエンコードしており、前記命令は、プロセッサによって実行されたときに、前記プロセッサに、
通信インターフェースデバイスによって、3次元作業空間内の、複数の関節を含む前記ロボットデバイスに関する遠隔測定データを受信することと、
1つまたは複数のプロセッサによって、前記ロボットデバイス、目標物、および1つまたは複数の障害物を含む前記ロボットデバイスの環境内の物体を、複数の次元を有するシミュレートされたロボット空間内にカプセル化することと、
前記1つまたは複数のプロセッサによって、前記ロボットデバイスと前記目標物とを一緒に動かすように作用する仮想引力、前記ロボットデバイスと前記1つまたは複数の障害物とを互いから離れる方向に動かすように作用する仮想斥力、および前記仮想斥力に関して少なくとも部分的に垂直に作用する仮想接線力を含む、3つの仮想力による前記ロボットデバイスの動く方向を計算することと、
前記1つまたは複数のプロセッサによって、前記3次元作業空間内の各仮想力を、各関節における前記シミュレートされたロボット空間内のトルクベクトルにマッピングすることと、
前記1つまたは複数のプロセッサによって、前記トルクベクトルの総和を前記ロボットデバイスのための1つまたは複数のコマンドに変換することであって、前記1つまたは複数のコマンドは、前記目標物に到達するための経路を定義する、前記変換することと、
前記通信インターフェースデバイスによって、前記1つまたは複数のコマンドを前記ロボットデバイスに送信することと、
を含む動作を実行することを引き起こす、非一時的コンピュータ可読媒体。
【請求項20】
前記動作は、前記ロボットデバイスが前記コマンドによって定義された前記経路に沿って動いて前記目標物に到達することをさらに含む、請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
以下は、一般に、ロボットデバイスのための経路計画アルゴリズムに関し、より具体的には、動的環境において使用するためのより高次元の経路計画アルゴリズムに関する。
【背景技術】
【0002】
低次元環境における経路計画のためのアルゴリズムは、ロボットアーム、ロボット車両、またはマニピュレータなどのロボットまたはその一部が低次元環境内を辿るための、または動くための経路を計画するために使用される。多くの場合に、そのような従来のアルゴリズムの目的は、低次元環境を通る最適な経路、すなわち、任意の障害物または危険物を回避し、最適な方法で1つまたは複数の目標物を探索するルートを計算することである。
【0003】
経路計画、特に低次元環境における最適経路計画のためのそのようなアルゴリズムは、最適経路を計算するために莫大な計算リソースを必要とし、多くの場合において非効率的である。
【0004】
そのようなアルゴリズムは、ロボットまたはその一部が進路を補正するために、または動きを変更するために利用可能な自由度(「DoF」)が少ない低次元環境に適合されている。利用可能なDoFが少ないため、効率を犠牲にした最適性がこのようなアルゴリズムの特徴である。
【0005】
そのようなアルゴリズムは、回避されるべき障害物または危険物および探索されるべき目標物がロボットまたはその一部に関して典型的には動かない静的環境にさらに適合される。したがって、最適経路は、計算された後に、そのようなアルゴリズムによって再計算されることはありそうもない。したがって、そのようなアルゴリズムは、計算された経路をリアルタイムで更新することができない場合がある。
【0006】
軌道環境および宇宙空間では、重いコンポーネントを打ち上げること、ならびに困難な熱および放射線環境内に航空電子工学機器を配備することに関連する困難さおよびコストに起因して、経路計画のためのアルゴリズムの実装に利用可能な計算リソースが制限され得るプロセッサ制約状況があり得る。
【発明の概要】
【発明が解決しようとする課題】
【0007】
したがって、許容可能な経路を効率的に計算することができるリアルタイム自律経路計画(real-time autonomous path planning)のためのシステム、方法、およびデバイスが望まれている。
【0008】
したがって、既存のシステムおよび方法にある欠点の少なくともいくつかを克服する、リアルタイム自律経路計画のための改善されたシステムおよび方法、ならびにロボットデバイスおよびその部分の動作を計画するための改善されたシステムおよび方法が必要とされている。
【0009】
さらに、そのようなリアルタイム自律経路計画は、許容可能な経路を効率的に計算するために、ロボットまたはその部分に利用可能なより高い次元性(より高いDoF)を利用し得る。
【0010】
さらに、そのようなリアルタイム自律経路計画は、回避されるべき障害物および危険物、ならびに探索されるべき目標物がロボットに関して動くことができ、および動く動的環境内で行われ得る。しかしながら、そのようなリアルタイム自律経路計画は、静的環境においても行われ得る。
【0011】
さらに、そのようなリアルタイム自律経路計画は、さらなる障害物、危険物、および目標物、またはそれらの予期しない動きが生じたことに応答して計画された経路を更新することが行われるという意味でリアルタイムで行われ得る。
【課題を解決するための手段】
【0012】
ロボットデバイスに対するリアルタイム自律経路計画の方法が提供される。方法は、通信インターフェースデバイスを介して、3次元作業空間内の、複数の関節を備える、ロボットデバイスに関する遠隔測定データを受信するステップを含む。方法は、1つまたは複数のプロセッサを介して、ロボットデバイス、目標物、および1つまたは複数の障害物を含むロボットデバイスの環境内の物体を、複数の次元を有するシミュレートされたロボット空間内にカプセル化するステップをさらに含む。方法は、1つまたは複数のプロセッサを介して、ロボットデバイスと目標物とを一緒に動かすように作用する仮想引力、ロボットデバイスと1つまたは複数の障害物とを互いから離れる方向に動かすように作用する仮想斥力、および仮想斥力に関して少なくとも部分的に垂直に作用する仮想接線力を含む、3つの仮想力によるロボットデバイスの動く方向を計算するステップをさらに含む。方法は、1つまたは複数のプロセッサを介して、3次元作業空間内の各仮想力を、各関節におけるシミュレートされたロボット空間内のトルクベクトルにマッピングするステップをさらに含む。方法は、1つまたは複数のプロセッサを介して、トルクベクトルの総和をロボットデバイスのための1つまたは複数のコマンドに変換するステップであて、1つまたは複数のコマンドは、目標物に到達するための経路を定義する、ステップをさらに含む。方法は、通信インターフェースデバイスを介して、1つまたは複数のコマンドをロボットデバイスに送信するステップをさらに含む。
【0013】
方法は、ロボットデバイスが1つまたは複数のコマンドによって定義された経路に沿って動いて目標物に到達するステップをさらに含み得る。
【0014】
1つまたは複数の障害物および目標物は、ロボットデバイスに関して動的に動いてよい。
【0015】
ロボットデバイスは、7つの関節を備え得る。シミュレートされたロボット空間は、7次元を有し得る。
【0016】
ロボットデバイスは、3つの並進次元および3つの回転次元で動くように構成されたエンドエフェクタを備え得る。
【0017】
宇宙船は、エンドエフェクタに対する目標物であり、ロボットデバイスの少なくとも1つの他の部分に対する障害物であり得る。
【0018】
方法は、ロボットデバイスにおいてローカルに実行され得る。
【0019】
この経路は、ロボットデバイスが障害物と相互作用することなく目標物に到達するのに十分な最適化されていない経路であってもよい。
【0020】
3次元作業空間内の各仮想力を、各関節における7次元のシミュレートされたロボット空間内のトルクベクトルにマッピングする際に、転置ヤコビ行列を使用してもよい。
【0021】
このマッピングは、ポテンシャル場を使用して遠隔測定データを仮想力に変換することによって行われ得る。
【0022】
ロボットデバイスの動きは、経路が再評価されるとともにリアルタイムで連続的であり得る。
【0023】
仮想引力および仮想斥力の各々を計算するステップは、ロボットデバイスに作用してロボットデバイスがそれぞれ目標物に向かって動かすことまたは1つもしくは複数の障害物から離れる方向に動かすことを引き起こす、人工ポテンシャル場に対応する、二次ポテンシャルの導関数を計算するステップをさらに含み得る。人工ポテンシャル場は、明示的に計算されなくてもよい。
【0024】
ロボットデバイスが経路の極小点に入ると、1つまたは複数のコマンドは、ロボットデバイスを極小点から外へ動かすためのコマンドを含み得る。
【0025】
方法は、ロボットデバイスを目標物に接近させるステップをさらに含み得る。接近させるステップは、目標物の角速度および/または直線的な速度に一致するようにロボットデバイスの角速度および/または直線的な速度をそれぞれ変化させるステップを含み得る。
【0026】
方法は、ロボットデバイスにより目標物を捕捉するステップを含み得る。
【0027】
ロボットデバイスに対するリアルタイム自律経路計画のためのシステムが提供される。システムは、3次元作業空間において、複数の関節を備えるロボットデバイスに関する遠隔測定データを受信し、または記録し、ロボットデバイスに1つまたは複数のコマンドを送信するための通信インターフェースデバイスを備える。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されたときに、以下の動作が実行されることを引き起こすコンピュータ実行可能命令が記憶されている非一時的コンピュータ可読媒体とを備えるコンピューティングデバイスをさらに備える。動作は、ロボットデバイス、目標物、および1つまたは複数の障害物を含むロボットデバイスの環境内の物体を、複数の次元を有するシミュレートされたロボット空間内にカプセル化することを含む。動作は、ロボットデバイスと目標物とを一緒に動かすように作用する仮想引力、ロボットデバイスと1つまたは複数の障害物とを互いから離れる方向に動かすように作用する仮想斥力、および仮想斥力に関して少なくとも部分的に垂直に作用する仮想接線力を含む、3つの仮想力によるロボットデバイスの動きの方向を計算することを含む。動作は、3次元作業空間内の各仮想力を、各関節におけるシミュレートされたロボット空間内のトルクベクトルにマッピングすることを含む。動作は、トルクベクトルの総和をロボットデバイスのための1つまたは複数のコマンドに変換することを含み、これら1つまたは複数のコマンドは、目標物に到達するための経路を定義する。
【0028】
方法は、ロボットデバイスが1つまたは複数のコマンドによって定義された経路に沿って動いて目標物に到達するステップをさらに含み得る。
【0029】
ロボットデバイスは、7つの関節を備え得る。シミュレートされたロボット空間は、7個の次元を有し得る。ロボットデバイスは、3つの並進次元および3つの回転次元で動くように構成されたエンドエフェクタを備え得る。この経路は、ロボットデバイスが障害物と相互作用することなく目標物に到達するのに十分な最適化されていない経路であり得る。仮想引力および仮想斥力の各々を計算することは、ロボットデバイスに作用してロボットデバイスがそれぞれ目標物に向かって動くことまたは1つもしくは複数の障害物から離れる方向に動くことを引き起こす、人工ポテンシャル場に対応する、二次ポテンシャルの導関数を計算することをさらに含み得る。人工ポテンシャル場は、明示的に計算されなくてもよい。
【0030】
ロボットデバイスに対するリアルタイム自律経路計画のための非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は、命令をエンコードしており、命令は、プロセッサによって実行されたときに、プロセッサが、以下の動作を実行することを引き起こす。動作は、通信インターフェースデバイスを介して、3次元作業空間内の、複数の関節を備えるロボットデバイスに関する遠隔測定データを受信することを含む。これらの動作は、1つまたは複数のプロセッサを介して、ロボットデバイス、目標物、および1つまたは複数の障害物を含むロボットデバイスの環境内の物体を、複数の次元を有するシミュレートされたロボット空間内にカプセル化することを含む。動作は、1つまたは複数のプロセッサを介して、ロボットデバイスと目標物とを一緒に動かすように作用する仮想引力、ロボットデバイスと1つまたは複数の障害物とを互いから離れる方向に動かすように作用する仮想斥力、および仮想斥力に関して少なくとも部分的に垂直に作用する仮想接線力を含む、3つの仮想力によるロボットデバイスの動く方向を計算することを含む。動作は、1つまたは複数のプロセッサを介して、3次元作業空間内の各仮想力を、各関節におけるシミュレートされたロボット空間内のトルクベクトルにマッピングすることを含む。動作は、1つまたは複数のプロセッサを介して、トルクベクトルの総和をロボットデバイスのための1つまたは複数のコマンドに変換することを含み、1つまたは複数のコマンドは目標物に到達するための経路を定義する。動作は、通信インターフェースデバイスを介して、1つまたは複数のコマンドをロボットデバイスに送信することを含む。
【0031】
動作は、ロボットデバイスがコマンドによって定義された経路に沿って動いて目標物に到達することをさらに含み得る。
【0032】
他の態様および特徴は、いくつかの例示的な実施形態の次の説明を検討すれば、当業者に明らかになるであろう。
【0033】
本願に含まれる図面は、本明細書の物品、方法、および装置の様々な例を例示するためのものである。図面の説明を以下に示す。
【図面の簡単な説明】
【0034】
【
図1】一実施形態による、リアルタイム自律経路計画のためのシステムを例示するブロック図である。
【
図2】一実施形態による、自律経路計画のためのコンピュータシステムのブロック図である。
【
図3】一実施形態による、ロボットデバイスの自律経路計画の方法の図である。
【
図4】一実施形態による、障害物および危険物を回避し、目標物を探索するためにロボットデバイスが動く経路を計算する方法の図である。
【
図5】一実施形態による、ロボットデバイスの周りに配置された物体のカプセル化およびロボットデバイス自体の例示的なグラフィック表現である。
【発明を実施するための形態】
【0035】
特許請求の範囲に記載の各実施形態の一例を提供するために、以下で様々な装置またはプロセスが説明される。以下に説明される実施形態は、いっさい、特許請求の範囲に記載の実施形態を限定せず、特許請求の範囲に記載の実施形態は、いずれも、以下で説明されるものと異なるプロセスまたは装置を対象とし得る。特許請求の範囲に記載の実施形態は、以下で説明されるいずれか1つの装置またはプロセスの特徴のすべてを有する装置またはプロセスに、または以下で説明される装置の複数またはすべてに共通する特徴に限定されない。
【0036】
本明細書において説明されている1つまたは複数のシステムは、プログラム可能なコンピュータ上で実行されるコンピュータプログラムで実装されてよく、各コンピュータは少なくとも1つのプロセッサ、データ記憶システム(揮発性および不揮発性メモリならびに/または記憶素子を含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを備える。たとえば、限定することなく、プログラム可能なコンピュータは、プログラマブルロジックユニット、マイクロコントローラおよび組み込みプロセッサ、メインフレームコンピュータ、サーバ、ならびにパーソナルコンピュータ、クラウドベースのプログラムもしくはシステム、ラップトップ、携帯情報端末、携帯電話、スマートフォン、またはタブレットデバイスであってもよい。
【0037】
各プログラムは、コンピュータシステムと通信するために、好ましくは高水準の手続き型もしくはオブジェクト指向プログラミング言語および/またはスクリプト言語で実装される。しかしながら、プログラムは、望ましい場合に、アセンブリ言語または機械語で実装され得る。いずれの場合も、言語は、コンパイラ型でもインタープリタ型言語でもよい。このような各コンピュータプログラムは、好ましくは記憶媒体またはデバイスがコンピュータによって読み取られ本明細書において説明されている手順を実行するときに、コンピュータを構成し、動作させるために汎用もしく専用のプログラム可能なコンピュータによって可読である記憶媒体またはデバイスに記憶される。
【0038】
互いに通信するいくつかのコンポーネントを有する一実施形態の説明は、すべてのそのようなコンポーネントが必要であることを意味するわけではない。それどころか、様々な任意選択のコンポーネントが、本発明の多種多様な可能な実施形態を例示するために説明されている。
【0039】
さらに、プロセスステップ、方法ステップ、アルゴリズム、または同様のものは、逐次的順序で(本開示および/または請求項において)説明され得るが、そのようなプロセス、方法、およびアルゴリズムは、代替の順序で動作するように構成され得る。言い換えれば、説明され得るステップの任意のシーケンスまたは順序は、必ずしもステップがその順序で実行されることの要件であることを示すものではない。本明細書において説明されているプロセスのステップは、実用される任意の順序で実行され得る。さらに、いくつかのステップは、同時に実行され得る。
【0040】
単一のデバイスまたは物品が本明細書において説明されているときに、複数のデバイス/物品(それらが連携しているかどうかに関わらず)が単一のデバイス/物品の代わりに使用されてもよいことは容易に明らかであろう。同様に、本明細書において複数のデバイスまたは物品(それらが連携するかどうかに関わらない)が説明されている場合、単一のデバイス/物品が複数のデバイスまたは物品の代わりに使用されてもよいことは容易に明らかであろう。
【0041】
本開示の実施形態は、ロボットに対する経路計画を参照しつつ説明されているが、本開示には多くの用途があることは、当業者には理解されるであろう。たとえば、本開示は、準備されたまたは準備されていない衛星の整備、デブリの除去における用途、宇宙での組み立てにおける用途、および他の宇宙ロボット工学における用途を有する。たとえば、本開示は、人工知能および機械およびロボットの自律性における用途を有する。たとえば、本開示は、内科および外科(たとえば、手術室内を動く外科医との接触を動的に回避するためにロボットがその動作を計画することを可能にする)における用途を有する。たとえば、本開示は、動的目標物(たとえば、コンベヤベルト上のランダムに配置された物体)に向かって動く産業用ロボットあるいは動いている人間または他のロボットを回避するように動く産業用ロボットなどの、産業および製造における用途を有する。たとえば、本開示は、入る流れ(たとえば、ベルトコンベヤ)から商品を各々ピッキングすることができる複数のロボットなどの、倉庫管理および保管における用途を有する。本開示は、人工知能または機械学習による実装を通して機能強化され得ることが明示的に企図される。
【0042】
提供されるのは、動的な障害物および目標物の存在下でロボットアームの動作をリアルタイムで計画するアルゴリズムを実装するシステム、方法、およびデバイスである。効率的なコンフィギュレーション空間マッピングは、ロボットアーム、障害物、および目標物が存在する3次元(3D)作業空間が、計算コストを低く抑えて関節軌道が計画される7次元(7D)ロボット空間または関節空間(7個のロボット関節を仮定する)内に投影されることを可能にする。本開示は、より低次元の計画空間(たとえば、6つのロボット関節に対する6次元計画空間など)を使用して、7個より少ない関節を有するロボットに対しても動作可能である。ロボットアーム上のエンドエフェクタ(7DoFのロボットアームを仮定する)の6次元先端空間は、さらに、エンドエフェクタの動きを追跡するかまたは計画するために計算されるかまたは表現され得る。この6次元先端空間は、3つの並進次元と3つの回転次元とを含む。
【0043】
前述の空間は、非直交であってもよく、冗長であってもよい。たとえば、エンドエフェクタの先端位置(6次元先端空間内の第1の点として表される)は、7次元ロボット空間内の複数の点に数学的にマッピングされ得る(すなわち、ロボット空間内のロボットアームの関節の関節軌道の複数のセットが結果として先端空間内に同じ先端位置をもたらし得る)。ロボットアームによって解決されるべきいくつかの問題は、ある空間、空間内の点、または空間内の点に対応するロボットアームもしくはエンドエフェクタのコンフィギュレーションでは、それぞれ他の空間、点、またはコンフィギュレーションに比べて容易に解決され得る。一実施形態において、アルゴリズムは、有利には、問題をより容易に解決するために異なる空間に変換し、前の空間に逆変換する。一実施形態において、アルゴリズムは、有利には、問題をより容易に解決するために異なる空間に変換し、異なる空間に変換されたままにする。
【0044】
先端空間は、エンドエフェクタを3次元作業空間内のどこかに動く動作に対応するか、または表すものであってよく、たとえば、作業空間内のエンドエフェクタの動きを計画するための先端空間動作プランナーであってよい。各作業空間は、ロボットアームおよび/またはエンドエフェクタによって実行されるべき特定のタスクに固有であり得る。先端空間は、より一般的には任意の作業空間内のデカルト座標運動を表すものとしてよい。本開示は、プロセッサ制限アプリケーションの一部として好適である。本開示は、1つまたは複数のプロセッサ制限アプリケーションによってサポートされ得る。
【0045】
従来の経路計画アルゴリズムでは、コンフィギュレーション空間は、3次元作業空間からそれらの関節角度で広がる7次元ロボット空間への遠隔測定情報のマッピングに関係し得る。不都合なことに、従来の経路計画アルゴリズムでは、3次元作業空間は、関節および/またはロボットデバイスの動作を計画する際に使用するためにさらなる7次元コンフィギュレーション空間への対応する小塊(blob)に明示的にマッピングされる。本発明のシステムおよび方法は、有利には、代わりにポテンシャル力を計算し、それらの力と関節空間トルクとの間のかなり低いコストのマッピングを使用することによって、デカルト座標空間量のこの明示的なマッピングを取り除き、計算コストを低減し、計算効率を高め得る。
【0046】
本明細書で説明されているような目標物は、さらに、たとえば、捕捉されるべき物体または到達すべき物理空間内の位置などの目的物として理解され得る。たとえば、目標物は衛星であってもよく、衛星の付属物は障害物であり得る。この目標物は、ロボットアームのエンドエフェクタに対する目標物とみなされ、さらに、ロボットアームの他の部分に対する障害物とみなされ得る(たとえば、エンドエフェクタは目標物をしっかり掴もうとするが、ロボットアームの他の部分は目標物との接触を回避しようとするので、アルゴリズムは他の部分に関して目標物を障害物として扱う)。
【0047】
一実施形態において、能動的デブリ除去の場合、提供されるのは、その可動付属物との衝突を回避しながら、制御されずに回転する宇宙船を捕捉するように構成されたロボットアームである。そのようなロボットアームは、アームが動的環境または障害物の存在下で動作する宇宙および地上環境(たとえば、アームが人間または他のロボットが動き回る中で動作する環境)におけるさらなる用途を有し得る。
【0048】
本出願全体を通して、「静的環境」は、ロボットデバイス、たとえばそのロボットアームの動作の実行中に、障害物がロボットデバイスに関して動かない環境を指す(たとえば、ロボットデバイスのベースが宇宙ステーションに取り付けられ、宇宙ステーションの構造がベースに対して不動である、ほとんどの宇宙ステーションの動作)。本出願全体を通して、「動的環境」は、少なくとも1つの障害物がロボットデバイスのベースに関する動作を有する環境(少なくとも1つの「動的障害物」)を指す。本出願全体を通して、「動的目標物」は、ロボットデバイスのベースに関する動作を有する目標物を意味する。スイングする付属物を有する制御不能の衛星を捕捉することは、動的障害物(スイングする付属物)および動的目標物(制御不能の衛星)を有する動的環境の一例である。
【0049】
一実施形態において、本開示のロボットアームは、静的環境において提供され、たとえば宇宙ステーションにおいてロボットアームを動かす。ロボットアームは、地上でソフトウェアを使用する運用チームから計画およびコマンドを受信するように構成されてもよく、計画およびコマンドはアームにアップロードされるかまたはアップリンクされる。ロボットアームは、自律的に進行するように構成され、たとえば、それ自体の動作を計画し、実行し得る。ロボットアームは、計画およびコマンドを、提供されるときには受信するが、そのような計画およびコマンドが提供されないときには自律的に進行するように構成され得る。ロボットアームは、さらなるコマンドが提供されたとき、または提供されるまで、自律的に進行するように構成され得る。ロボットアームは、計画およびコマンドを受信するが、ロボットアームに対して自律的に、内部的に、またはローカルで行われる決定、測定、および/または計算に従って計画およびコマンドを修正し、補足し、または無視することを許されるように構成され得る。
【0050】
計画のためにより高次元の空間(たとえば、7DoFに対して7つの次元)が利用可能であるので、経路計画アルゴリズムを実装する本開示のロボットアームは、有利には、低い計算コストで、十分な、または「十分に良い」経路を計画するかまたは決定し得る。ロボットアームが動作する、より疎なより高次元の環境、たとえば、宇宙空間によってもたらされる複雑さは低いので、この計算コストは、有利には、遠隔(たとえば、宇宙空間)に配備された、ロボットアームが効率的な方式で自律的にその経路を計画することができるように十分に下げられ得る。特に、ロボットアームは、そうでなければ高い複雑度のより低次元の環境において最適な経路を探索するより複雑な従来の経路計画アルゴリズムを実装するのに必要とされるであろう大型のまたは高価なハードウェアを収容することなく実施し得る。本開示のアルゴリズムは、3次元(「3D」)作業空間(たとえば、宇宙空間)と7次元(「7D」)ロボット空間との間の効率的なマッピングに従って進行する。このマッピングは、有利には、作業空間内の力とロボット空間内のトルクとの間のマッピングを行うために現在のロボット関節角度において比較的ごくわずかな計算を伴う転置ヤコビ行列だけあればよいので、関節角度に関して衝突がどこで発生するかを見ようとすると一般的に各時間ステップで多くの姿勢の点毎のサンプリング(十分な分解能を得るためにステップ毎に数百または数千のサンプリングもあり得る)を必要とすることになるであろう明示的なロボット空間マップの必要性を回避する。
【0051】
計画された経路は、辿るべき特定の経路または進路ではなくむしろ運動の方向として理解され得る。
【0052】
本開示の経路計画アルゴリズムおよび関連付けられたシステム、方法、および装置は、7DoFのような、高DoFロボットに対してリアルタイムで経路を見つけるための(すなわち、サイクル毎に環境の変化に適応するように構成された)軽量で十分であるが非最適なアプローチを提供する。そのようなリアルタイムの能力は、たとえば、通信遅延に起因して、人間のオペレータが変化する環境に対してリアルタイムで反応できない場合に、さらなる利点を提供し得る。したがって、本明細書において提供されるのは、低コストのリアルタイム計画作成のための高DoFコンフィギュレーション空間マッピングを行うためのシステム、方法、およびデバイスを提供する。
【0053】
一実施形態において、ロボットアームは、動くロボット構造(たとえば、動いている宇宙船)に装着され、目標物もまた動いている。本開示のアルゴリズムによる計算は動的であり、リアルタイムで実行されるので、アルゴリズムのすべての時間ステップは、ロボットアームおよび目標物の周りの環境に関するロボットアーム(および場合によっては動いているロボット構造全体)の位置を再評価し、次の時間ステップに対する動作を計画することを含む。各時間ステップは、約0.01秒間持続し得る。各時間ステップは等しい長さであってもよい。
【0054】
計画された経路の計算は、単純であり、または基本的であり得る。そのような計算は、人工ポテンシャル場を計算すること、またはたとえばロボット空間内の、シミュレーションでのロボットアームの周りにそれを構築することを含む。そのような計算は、進路、方向、速度などの変更がない場合に、ロボットアームが目標物に向かって動くことを引き起こすようにロボットアームを駆動するか、推進するか、または他の何らかの形で作用する引力として二次ポテンシャルの導関数を計算することをさらに含む。そのような計算は、進路、方向、速度などの変更がない場合に、ロボットアームが障害物または危険物から離れる方向に動くことを引き起こすようにロボットアームに反発するか、または他の何らかの形で作用する斥力として二次ポテンシャルの導関数を計算することをさらに含む。引力および斥力は、ポテンシャル場の勾配(すなわち、導関数)を表す。有利には、対応する場は、それ自体明示的に計算されない。有利には、アルゴリズムは、ポテンシャル場に関連付けられた仮想力を効果的に計算する。そのような計算は、進路、方向、速度などの変化がない場合に、ロボットアームが目標物から離れる方向に動くか、または目標物によって反発されることを引き起こすようにロボットアームを駆動するか、推進するか、または他の何らかの形でロボットアームに作用する力を計算することをさらに含む。そのような計算は、ロボットアームが少なくとも部分的に目標物に垂直な方向に動くことを引き起こすようにロボットアームを駆動するか、推進するか、または他の何らかの形で作用する第3の接線力、すなわち、ロボットアームと目標物との間の最短直線経路を定義する軸に垂直な軸への投影が非ゼロである接線力を計算することをさらに含む。そのような接線力は、ロボットアームが第1の運動方向に関しては目標物に向かって、または目標物から離れる方向に動くが、第1の運動方向に垂直な第2の運動方向に関しては、それぞれ、目標物から離れる方向に、または目標物に向かって動くことを引き起こすようにロボットアームを駆動するか、推進するか、または他の何らかの形で作用する力を含み得る。引力、斥力、および接線力の各々の複合効果は、指令されたまたは決定された変更がない場合のロボットアームの現在の進路、方向、速度などを決定するためにアルゴリズムの各ステップで計算される。そのような計算は、引力、斥力、および接線力の各々に関連付けられたベクトルを総和すると理解され得る。引力および斥力が大きさおよび方向に関して等しい場合、接線力のみが物体に効果的に作用する。
【0055】
本開示全体を通して、単一の引力、斥力、および接線力への言及は、仮想引力、仮想斥力、および仮想接線力のいずれか1つまたは複数のうち多数がある実施形態を包含することは理解されるであろう。仮想力は、アルゴリズムを通じてロボットに人為的に加えられ、動作コマンドを生成する。接線力は、極小点を回避するように斥力に関して接線方向に印加される。正味の仮想力(すなわち、仮想引力、仮想斥力、仮想接線力の正味)は、ロボットアームのガイダンスとして働く。仮想力は、アームが追随する基準軌道を生成するために使用される。基準軌道は、ロボットアームのコントローラに提供され、これにより取り付けられているアクチュエータ(たとえば、ロボットアームの関節のところにある、またはロボットアームの関節を制御する)に、アーム(たとえば、その関節)を作動させ、アームを所望の経路上に、または所望の経路に沿って動くことを指令する。
【0056】
本開示によるアルゴリズム、ならびにアルゴリズムを実施するシステム、方法、およびデバイスは、アルゴリズムまたはロボットデバイス自体が極小点に「トラップされる」ことを有利に防止し得る。計画された経路がロボットアームを行き止まりに入らせるような経路であれば、アルゴリズムは、行き止まりから抜け出し、目標物に向かってさまよい続けるようにロボットアームに継続的な動作をさせ得る。たとえば、アルゴリズムは、障害物を回避するために、ロボットデバイスが障害物に対して接線方向に動くことを考慮するように構成され得る。極小点は、目標物への引力が障害物からの等しい反対斥力であるとき(すなわち、正味の仮想引力と正味の仮想斥力とが大きさおよび方向ともに等しいとき)、たとえば、目標物は、仮想引力がロボットアームを前方に引っ張るようにまっすぐ進むが、障害物は、仮想斥力がロボットアームをまっすぐ後方に押すようにロボットアーム(たとえば、そのエンドエフェクタ)と目標物との間に配置されているときに出現する。不都合なことに、本開示によるアルゴリズムの恩恵を受けなければ、このような状況におけるロボットアームは、正味の仮想引力と正味の仮想斥力との間で身動きが取れなくなる。有利には、正味接線力は、正味仮想引力および正味仮想斥力に対して少なくとも部分的に接線方向の動きを提供する。そのような少なくとも部分的な接線方向の動きは、ロボットアーム(またはその少なくとも一部)が障害物を迂回して、目標物に向かう遮られていない経路(たとえば、ロボットアームと目標物との間に配置されたさらなる障害物がない経路)を見つけることを可能にし得る。したがって、アルゴリズムは、より高いレベルで大域的誘導を予想するように構成される。
【0057】
ロボットデバイスが目標物に成功裏に接近すると、ロボットデバイスは、その角速度および/または直線的な速度を、目標物の角速度および/または直線的な速度に一致させるための変化を生じさせ得る。ロボットデバイスが目標物に成功裏に接近すると、ロボットデバイスのロボットアームは、目標物の捕捉を達成し得る。
【0058】
次に
図1を参照すると、
図1に示されているのは、一実施形態による、リアルタイム自律経路計画のためのシステム10を例示するブロック図である。システム10は、ネットワーク20を介して複数のセンシングデバイス14、複数のコマンドデバイス16、および複数のロボットデバイス18(一般的にロボットデバイス18と称される)と通信するサーバプラットフォーム12を含む。サーバプラットフォーム12は、リアルタイム自律経路計画を処理し提供するための特別設計の専用機であってもよい。
【0059】
サーバプラットフォーム12は、センシングデバイス14から遠隔測定データを受信する。サーバプラットフォーム12は、さらに、ロボットデバイス18から遠隔測定データを受信し得る。そのような遠隔測定データは、ある時点におけるロボットデバイス18、目標物、および/または障害物の位置、速度、加速度、急な動き、および他の運動学的または物理的特性を表し得る(たとえば、カメラ遠隔測定は、動く目標物を追跡するために使用され、カメラおよび/またはライダー遠隔測定は、動く障害物を追跡するために使用され得る)。そのような遠隔測定データは、センシングデバイス14によって感知されたデータとは無関係にロボットデバイス18によって測定され、および/または計算され得る。そのような遠隔測定データは、ロボットデバイス18によるいかなる測定または計算とも無関係に、センシングデバイス14によって測定されるかまたは計算され得る。そのような遠隔測定データは、少なくとも一部は、センシングデバイス14およびロボットデバイス18による協働を通して測定され、計算され得る。遠隔測定データの一部または全部は、協働しているかどうかに関わらず、センシングデバイス14およびロボットデバイス18によって提供される測定値および/または計算値に基づきサーバプラットフォーム12によって計算され得る。遠隔測定データの一部または全部は、システム10の漸進的変化の数学的モデルに基づき提供され得る。遠隔測定データの一部または全部は、システム10の性能を改善するために状態推定器に提供され得る。
【0060】
センシングデバイス14は、カメラ、撮像デバイス、赤外線センサー、ライダーデバイス、および加速度計のうちのいずれか1つまたは複数であってよい。センシングデバイス14は、数学的モデルを備え得る。
【0061】
コマンドデバイス16は、ロボットデバイス18に関する人間のユーザまたはオペレータからの入力を受信するように構成される。コマンドデバイス16は、さらに、ロボットデバイス18に出力を提供するようにさらに構成される。コマンドデバイス16は、ロボットデバイス18から入力を受信し、人間のユーザまたはオペレータに出力を提供することなどにより、人間のユーザまたはオペレータとロボットデバイス18との間の情報伝達を円滑にするようにさらに構成され得る。コマンドデバイス16は、他のコンピュータ、サーバ、またはデバイス、たとえば、サーバプラットフォーム12とコマンドデバイス16との間の通信を仲介し、円滑にする一連のコンピュータから入力を受信し、および/または出力を提供するように構成され得る。出力は、ロボットデバイス18(図示せず)によって捕捉されるかまたは係合されるべき特定の目標物(たとえば、捕捉されるべきデブリ片またはロボットデバイス18が接続するための衛星などの、捕捉されるべき資産)の識別、または回避されるべき障害物(たとえば、デブリ)の識別を含み得る。出力は、特定の目標物を探索するか、または特定の障害物を回避するためのコマンドを含み得る。コマンドデバイス16は、さらに、ロボットデバイス18の健康状態または性能を分析するために使用されてもよく、たとえば、ロボットデバイス18に遠隔測定を捕捉するように指令し、健康状態または性能が分析され得るようにする。
【0062】
一実施形態において、ロボットデバイス18は、ロボットアームである。ロボットアームは、機械構造またはロボット構造または宇宙船の一部である。ロボットアームは、ロボットアームを作動させるかまたは動かすための多くのDoFを提供するために、多数のまたは十分な数の機械的関節を有し得る。ロボットデバイス18は、ロボットマニピュレータであってもよい。マニピュレータは、移動ベース上にあってもよい。
【0063】
一実施形態において、ロボットデバイス18は、ロボットである。ロボットは、任意の他の機械構造またはロボット構造または宇宙船から完全に別個のもの、すなわち、他のコンポーネントの一部でなくてもよい。ロボットは、ロボットを作動させるかまたは動かすための多くのDoFを提供するために、多数の機械的関節を有し得る。
【0064】
一実施形態において、DoFの数は2よりも大きい。一実施形態において、DoFの数は3である。一実施形態において、DoFの数は3よりも大きい。一実施形態において、DoFの数は4である。一実施形態において、DoFの数は4よりも大きい。一実施形態において、DoFの数は5である。一実施形態において、DoFの数は5よりも大きい。一実施形態において、DoFの数は6である。一実施形態において、DoFの数は6よりも大きい。一実施形態において、DoFの数は7である。一実施形態において、DoFの数は7よりも大きい。
【0065】
サーバプラットフォーム12、センシングデバイス14、コマンドデバイス16、およびロボットデバイス18は、サーバコンピュータ、デスクトップコンピュータ、ノートブックコンピュータ、タブレット、PDA、スマートフォン、または別のコンピューティングデバイスであってもよい。サーバプラットフォームおよびデバイス12、14、16、18は、インターネットへの有線またはワイヤレス接続などのネットワーク20との接続を含み得る。いくつかの場合において、ネットワーク20は、他のタイプのコンピュータまたは電気通信ネットワークを含み得る。サーバプラットフォームおよびデバイス12、14、16、18は、メモリ、二次記憶デバイス、プロセッサ、入力デバイス、表示デバイス、および出力デバイスのうちの1つまたは複数を含み得る。メモリは、ランダムアクセスメモリ(RAM)または類似のタイプのメモリを含み得る。また、メモリは、プロセッサによる実行のために1つまたは複数のアプリケーションを記憶し得る。アプリケーションは、以下で説明されている機能に対する処理を実行するためのコンピュータ実行可能命令を含むソフトウェアモジュールに対応し得る。二次記憶デバイスは、ハードディスクドライブ、フロッピーディスクドライブ、CDドライブ、DVDドライブ、ブルーレイドライブ、または他のタイプの不揮発性データ記憶装置を含み得る。プロセッサは、アプリケーション、コンピュータ可読命令、またはプログラムを実行し得る。アプリケーション、コンピュータ可読命令、またはプログラムは、メモリまたは二次記憶装置に記憶され得るか、またはインターネットもしくは他のネットワーク20から受信され得る。入力デバイスは、サーバプラットフォームおよび装置12、14、16、18に情報を入力するための任意のデバイスを含み得る。たとえば、入力デバイスは、キーボード、キーパッド、カーソル制御デバイス、タッチスクリーン、カメラ、またはマイクロフォンであってもよい。表示デバイスは、視覚情報を提示するための任意のタイプのデバイスを含み得る。たとえば、表示デバイスは、コンピュータモニタ、フラットスクリーンディスプレイ、プロジェクター、またはディスプレイパネルであってよい。出力デバイスは、たとえばプリンタなど、情報のハードコピーを提示するための任意のタイプのデバイスを含み得る。出力デバイスは、たとえば、スピーカーなどの他のタイプの出力デバイスも含み得る。いくつかの場合において、サーバプラットフォームおよびデバイス12、14、16、18は、プロセッサ、アプリケーション、ソフトウェアモジュール、二次記憶デバイス、ネットワーク接続、入力デバイス、出力デバイス、および表示デバイスのうちの任意の1つまたは複数のデバイスのうちの複数を含み得る。
【0066】
サーバプラットフォームおよびデバイス12、14、16、18は、様々なコンポーネントとともに説明されているが、当業者であれば、サーバプラットフォームおよびデバイス12、14、16、18は、いくつかの場合において、より少ないコンポーネント、追加のコンポーネント、または異なるコンポーネントを含み得ることを理解するであろう。それに加えて、サーバプラットフォームおよびデバイス12、14、16、18の実装形態の態様は、メモリに記憶されるものとして説明され得るが、当業者であれば、これらの態様は、ハードディスク、フロッピーディスク、CD、もしくはDVDを含む二次記憶デバイス、インターネットもしくは他のネットワークからの搬送波、または他の形態のRAMもしくはROMなどの、他のタイプのコンピュータプログラム製品もしくはコンピュータ可読媒体に記憶されるか、またはそこから読み出され得ることを理解するであろう。コンピュータ可読媒体は、特定の方法を実行するためにサーバプラットフォームおよびデバイス12、14、16、18および/またはプロセッサを制御するための命令を含み得る。
【0067】
以下の説明では、サーバプラットフォーム12、センシングデバイス14、コマンドデバイス16、およびロボットデバイス18などのデバイスが特定の活動を行うものとして説明されている。これらのデバイスのいずれか1つまたは複数が、自動的に、またはそのデバイスのユーザによるインタラクティブなやり取りに応答して、活動を実行し得ることが理解されるであろう。すなわち、デバイスのユーザは、1つまたは複数の入力デバイス(たとえば、タッチスクリーン、マウス、またはボタン)を操作して、説明された活動をデバイスが実行することを引き起こし得る。多くの場合において、この態様は、以下に説明されないこともあるが、理解されるであろう。
【0068】
一例として、デバイス14、16、18がサーバプラットフォーム12に情報を送信し得ることが以下で説明される。たとえば、コマンドデバイス16を使用するユーザは、1つまたは複数の入力デバイス(たとえば、マウスおよびキーボード)を操作して、コマンドデバイス16のディスプレイ上に表示されたユーザインターフェースをインタラクティブに操作して、たとえば、ロボットデバイス18の1つまたは複数を制御し得る。一般的に、コマンドデバイス16は、ネットワーク20から(たとえば、ウェブページの形態で)ユーザインターフェースを受信し得る。代替的に、またはそれに加えて、ユーザインターフェースは、ローカルにはコマンドデバイス(たとえば、ウェブページまたはモバイルアプリケーションのキャッシュ)に保存され得る。
【0069】
サーバプラットフォーム12は、複数のセンシングデバイス14、コマンドデバイス16、およびロボットデバイス18の各々から、複数の情報を受信するように構成され得る。一般的に、情報は、ロボットデバイス18を識別する少なくも1つの識別子を含み得る。たとえば、情報は、ネットワーク20上のロボットデバイス18のアドレスを含み得る。
【0070】
情報を受信したことに応答して、サーバプラットフォーム12は、情報をストレージデータベースに記憶し得る。ストレージデータベースは、サーバプラットフォーム12またはデバイス14、16、18の二次記憶装置に対応し得る。一般的に、ストレージデータベースは、ハードディスクドライブ、ソリッドステートドライブ、メモリカード、またはディスク(たとえば、CD、DVD、ブルーレイ)などの任意の好適なストレージデバイスであってもよい。また、ストレージデータベースは、サーバプラットフォーム12とローカルで接続され得る。いくつかの場合において、ストレージデータベースは、サーバプラットフォーム12からリモートに配置され、たとえばネットワーク越しにサーバプラットフォーム12にアクセス可能であり得る。いくつかの場合において、ストレージデータベースは、ネットワーク接続クラウドストレージプロバイダに配置される1つまたは複数のストレージデバイスを含み得る。
【0071】
各コマンドデバイス16は、オペレータアカウントと関連付けられ得る。各コマンドデバイス16をアカウントに関連付けるための任意の好適なメカニズムが明示的に企図される。いくつかの場合において、コマンドデバイス16は、資格情報(たとえば、クッキー、ログイン、パスワード)をサーバプラットフォーム12に送信することによってアカウントに関連付けられ得る。サーバプラットフォーム12は、資格情報を検証し得る(たとえば、受信されたパスワードがアカウントに関連付けられたパスワードと一致すると決定し得る)。コマンドデバイス16がアカウントに関連付けられる場合、サーバプラットフォーム12は、そのコマンドデバイス16によるさらなる活動がそのアカウントに関連付けられるとみなし得る。
【0072】
システム10のコンポーネントのすべてが、ロボットデバイス18のリアルタイムの自律経路計画に必要なわけでないことは、当業者には理解されるであろう。一実施形態において、専用サーバ12は存在せず、ロボットデバイス18のリアルタイム自律経路計画に関するすべての処理および提供機能は、ロボットデバイス18に対して自律的に、内部的に、ローカルで実行される。
【0073】
一実施形態において、センシングデバイス14は、ロボットデバイス18の内部にある。一実施形態において、センシングデバイス14は、コマンドデバイス16の内部にある。一実施形態において、センシングデバイス14は、専用のセンシングデバイス14として、ロボットデバイス18、コマンドデバイス16、および/または他の場所に存在する。
【0074】
次に
図2を参照すると、
図2に示されているのは、一実施形態による、自律経路計画のためのコンピュータシステム300のブロック図である。コンピュータシステム300は、
図1のシステム10の1つまたは複数のデバイスで実装され得る。たとえば、コンピュータシステム300のコンポーネントのいくつかまたはすべては、サーバプラットフォーム12、コマンドデバイス16、およびロボットデバイス18のいずれか1つまたは複数によって実装され得る。
【0075】
システム300は、ソフトウェアモデルおよびモジュールを実行するためのプロセッサ302を備える。
【0076】
システム300は、プロセッサ302からの出力データを含む、データを記憶するためのメモリ304をさらに備える。
【0077】
システム300は、ネットワーク接続(たとえば、
図1のネットワーク20)を介してデータを受信し、送信することなどを通して、他のデバイスと通信するための通信インターフェース306をさらに備える。
【0078】
システム300は、目標物または目的物を追跡するための視覚システム(図示せず)を含み得る。視覚システムは、画像データを取得するためのカメラまたは撮像デバイスを含み得る。画像データは、メモリ304に記憶される。視覚システムは、収集された画像データを処理し、目標物または目的物の追跡操作を実行するために、プロセッサ302によって実行可能な1つまたは複数のソフトウェアコンポーネントをさらに含み得る。いくつかの場合において、視覚システムの1つまたは複数のコンポーネントは、システム300の外部にあり、通信インターフェース306を介してシステム300と通信し得る(たとえば、システム300は、通信インターフェース306を介して、カメラに撮像命令を伝達し、カメラから画像データを受信し得る)。
【0079】
システム300は、コンピュータシステム300によって生成された様々なデータを人間が読み取り可能な形式で表示するためのディスプレイ308をさらに備える。たとえば、ディスプレイは、ロボットデバイス18に関して捕捉された遠隔測定データ318を表示するように構成され得る。たとえば、ディスプレイは、メモリ304により出力として生成された計画経路を表示するように構成され得る。
【0080】
プロセッサ302は、計算モジュール310を含む。計算モジュール310は、たとえば、
図1のシステム10の複数のセンシングデバイス14から遠隔測定データ318を受信する。
【0081】
計算モジュール310は、ロボットデバイス18の周りに配置された、または複数のセンシングデバイス14によって感知された物体(図示せず)をカプセル化データ320としてカプセル化するためのカプセル化モジュール312を含む。カプセル化データ320は、メモリ304に記憶される。カプセル化データ320は、ロボットデバイス18のカプセル化を含む。物体は、環境内に存在し、回避されるべきである1つもしくは複数の障害物または危険物を含み得る。物体は、捕捉されるべき、または他の方法で係合される1つもしくは複数の目標物または資産を含み得る。
【0082】
カプセル化は、メモリに記憶されているロボット空間328内の物体およびロボットデバイス18を記録するかまたはシミュレートすることとして理解され得る。ロボット空間328は、ロボットデバイス18が占有する領域、および/または複数のセンシングデバイス14によって感知されるさらなる領域を含む、ロボットデバイス18の周りの領域の内部表現である。ロボット空間328は、ロボットデバイス18のDoFの各々を表現するために多次元である。たとえば、ロボットデバイス18が7つのDoFを有する実施形態では、ロボット空間328は7次元である。一実施形態において、ロボット空間328は、ロボットデバイス18のDoFの数に等しい次元の数を有する。ロボットデバイス18の1つまたは複数の関節がロックされる(たとえば、その動作が望まれていないか、またはその望まれている動作がすべてすでになされている)場合、ロボット空間328は、それに対応して次元を減らされ、たとえば、7DoFを有する7関節ロボットデバイス18の第1の関節が、ロックされる場合、第1の関節がロックされている間、ロボット空間328は、6次元に下げられ得る。追加のDoFが経路計画に含まれるようにロボットデバイス18に提供される場合(たとえば、追加の関節を付ける、エンドエフェクタに並進機構を付ける)、ロボット空間は、それに対応して次元を増やされ、たとえば、7DoFを有する7関節ロボットデバイスのエンドエフェクタに並進メカニズムが付けられる場合、並進メカニズムが付けられている間、ロボット空間328は8次元に増やされ得る。
【0083】
計算モジュール310は、ロボットデバイス18の動く方向を計算するための方向モジュール314を含む。動く方向は、方向データ321としてメモリ304に記憶される。一実施形態において、方向データ321は、ロボットデバイス18が現在動いている移動方向の計算によって取得されるデータを含む。そのようなデータは、進路補正が行われない場合、および/またはロボットデバイス18が移動させるまたは作動させるコマンドを受信しない場合に、ロボットデバイス18の位置、方向、速度、加速度、急な動き(jerk)などを表すものとして理解され得る。一実施形態において、方向データ321は、ロボットデバイス18が現在動いていない移動方向の計算によって取得されるデータを含む。そのようなデータは、進路補正が行われる場合、および/またはロボットデバイス18が、たとえば異なる経路に沿って移動させるまたは作動させるコマンドを受信した場合に、ロボットデバイス18の位置、方向、速度、加速度、急な動きなどを表すものとして理解され得る。
【0084】
方向モジュール314は、ロボットデバイス18と目標物との間の計算された仮想引力データ322、カプセル化データ320にカプセル化されているような他の物体からの(すなわち、ロボットデバイス18と他の物体との間の)計算された仮想斥力データ324、およびメモリ304内に記憶されているような仮想接線力データ326に従って、方向データ321を計算する。仮想引力データ322、仮想斥力データ324、および仮想接線力データ326の各々は、動作コマンドを生成するためのアルゴリズムの文脈においてロボットに人為的に課される。仮想引力データ322、仮想斥力データ324、および仮想接線力データ326によってそれぞれ測定される仮想吸引力、仮想斥力、および仮想接線力は、ポテンシャル場の勾配として現実の力に類似している。仮想力データ322、324、326は、3次元作業空間内の目標物および障害物の位置に基づき計算され、ロボットデバイス(たとえば、ロボットデバイス18)の関節に送出するコマンドに変換される。指令された運動は、その結果、あたかも真の引力、斥力、および接線力が作用していたかのように、ロボットデバイスを各ポテンシャル場に沿って動かす。仮想引力は、ロボットデバイスのエンドエフェクタの先端を目標物に引き寄せる磁力に対応する。仮想斥力は、ロボットデバイスを押して障害物から遠ざける力に対応する。ロボットデバイスに対する経路は、これらの仮想力の影響下で7次元ロボット空間328において計算され、このような力が実際には存在しないが、ロボットデバイス、目標物、障害物が存在する現実の3次元作業空間に適用される。
【0085】
計算モジュール310は、ロボットデバイス18が動いて障害物および危険物を回避し、目標物を探索する際に沿う経路を計算するためのマッピングモジュール316を含む。計算された経路は、計画経路データ330としてメモリ304に記憶される。
【0086】
計画経路データ330の計算は、ロボットデバイス18を目標物に向かわせる、ポテンシャルが二次ポテンシャルの導関数である、引力としての人工ポテンシャル場を計算することによって進行し得る。そのような計算は、進路、方向、速度などの変更がない場合に、ロボットデバイス18が障害物または危険物から離れる方向に動くことを引き起こすようにロボットデバイス18に反発するか、または他の何らかの形で作用する斥力として二次ポテンシャルの導関数を計算することをさらに含む。引力、斥力、および接線力の各々の影響は、ロボットデバイス18がさらなる移動または作動がない場合に辿ることになる経路を決定し、計画経路データ330として異なる望ましい経路があればそれを決定するために、計算において結合され得る。引力、斥力、および接線力の結合は、3つの力が方向データ321にどのように影響するかを決定するために、3つの力を総和することを含み得る。3つの力を総和することは、3つの力をベクトルとして表し(すなわち、各力を大きさおよび方向の両方を有するものとして表し)、それぞれの大きさおよび方向に従ってベクトルを総和することを含み得る。
【0087】
計画経路データ330は、ロボットデバイス18によって実行されるときに、ロボットデバイス18に対する経路であって、ロボットデバイス18の周りおよびその経路に沿った領域内の障害物または危険物との衝突を回避する、経路を提供する。この利点は、たとえばセンシングデバイス14を介して、領域の特性が知られているとき、およびそのような障害物がロボットデバイス18よりも速く動かないときに、得られる。計画経路データ330は、さらに、ロボットデバイス18が目標物に到達するための経路を提供する。計画経路データ330を作成するロボットデバイス18は、ポテンシャル経路の値関数に関する極小点によって特徴付けられるような行き詰まりから有利に押し出され、目標物に進むものとしてよい。たとえば、ロボットデバイスが目標に向かって直接的に動こうとするが、障害物が最も直接的なルートを遮る場合である。単に極小点を計算し、その極小点に従うだけでは、ロボットデバイスは障害物に関して「立ち往生」することになるが、それは、極小点のみによる、最も効率的な経路は、障害物に向かうことになり、障害物の周りのすべての経路は、局所的効率が低いとみなされるからである。
【0088】
前述の利点によれば、協働的でない目標物、たとえば、通信システムまたはナビゲーションシステムが、コマンドに応答できないか、または予測不可能な動きをするような損傷を受けている衛星を捕捉する際に、より高いレベルでの大域的誘導が、ロボットデバイス18に提供され得る。そのような状況では、ロボットデバイス18は、高レベルのソフトウェアエージェント(図示せず)が捕捉の開始時期をロボットデバイス18に指示するまで、協働的でない目標物に接近してその動きを観察し得る。そのような指示が受信された後、本開示によるリアルタイム自律経路計画のためのシステムおよび方法ならびにロボットデバイスおよびその部分の動作を計画するためのシステムおよび方法は、協働的でない目標物に接近し、ロボットデバイス18と協働的でない目標物またはその部分(たとえば、ロボットデバイス18のエンドエフェクタによってしっかり掴まれることを意図していない協働的でない目標物の太陽電池パネル)との間の衝突を防止するための経路を計画する。
【0089】
前述の実施形態は、自動化された方式でコンピュータシステム300によって実行されるが、たとえば、コマンドデバイス16を介して、人間による監視が依然として組み込まれ得る。
【0090】
計画経路データ330に従った異なる経路の前述の決定は、有利には、ロボットデバイス18が障害物および危険物との衝突を回避しながら目標に到達するのに十分な経路をもたらし得る。しかしながら、決定された経路は、計算リソースを節約するために次善最適であり得る。言い換えると、経路は、目標物に到達し、衝突を回避するために「十分に良い」とみなされ得る。
【0091】
異なる経路の決定および前述の計算は、ロボットが動くにつれて(たとえば、0.01秒毎に)規則正しい時間ステップでロボットデバイス18の経路を更新するために実行される。人間の観察者の観点からは、異なる経路の決定および/または前述の計算(たとえば、毎秒約100回の)における新しい情報の取り込みは、本質的にリアルタイムで連続しているように見える。
【0092】
一実施形態において、リアルタイム自律経路計画のためのシステムおよび方法、ならびにロボットデバイスおよびその部分の動作を計画するためのシステムおよび方法は、ロボットデバイスと目標物との間の距離に関係なく目標物の前方を見る。障害物は、ロボットデバイスが障害物に接近し、障害物がロボットデバイスの所定の距離内にあるときに、異なる経路の決定および前述の計算において考慮される。
【0093】
一実施形態において、前述のシステムおよび方法は、少なくとも毎秒100回更新される。
【0094】
一実施形態において、各更新の間に、システムは、3次元作業空間内のロボットデバイス、目標物、および/または障害物の現在の位置を考慮する(すなわち、ロボットデバイス、目標物、および/または障害物の将来の位置の予測に依存しない)。この実施形態では、前述のシステムおよび方法は、その後の更新の間にロボットデバイス、目標物、および/または障害物の位置の変化を考慮し得る。
【0095】
一実施形態において、前述のシステムおよび方法は、ロボットデバイス、目標物、および/または障害物の将来の位置をさらに予測する。
【0096】
次に
図3を参照すると、
図3に示されているのは、一実施形態による、ロボットデバイスの自律経路計画の方法400である。ロボットデバイスは、
図1のシステム10のロボットデバイス18であってもよい。任意選択で、方法400は、視覚システムを用いて目標物または目的物を追跡することを含み得る。
【0097】
402において、方法400は、遠隔測定データ、たとえば
図1のシステム10の複数のセンシングデバイス14から受信された遠隔測定データ318を受信することを含む。
【0098】
404において、方法400は、ロボットデバイスの周りに配置された物体をカプセル化することを含む。物体をカプセル化することは、物体の位置を表すために、
図5において示されているような周、境界、または外殻を用いてロボット空間328内の物体を表すことを含む。視覚システムを通して視覚化されるような現実の物体に関して計算を実行するよりも、
図5の外殻に関して計算を実行する方が、計算的に単純であるかまたは効率的であり得る。物体は、ロボットデバイス18に関する作業空間内にあると考えられ得る。物体は、ロボットデバイス18の周りに配置され得るか、または複数のセンシングデバイス14によって感知され得る。物体をカプセル化する出力は、カプセル化データ320として記憶されてもよい。カプセル化データ320は、ロボットデバイス18をカプセル化することを含む。物体は、回避されるべき1つまたは複数の障害物または危険物を含み得る。物体は、ロボットデバイスによって捕捉されるかまたは係合されるべき1つまたは複数の目標物を含み得る。
【0099】
図5に示されているように、一実施形態において、カプセル化データ320は、物体に関する錠剤形カプセルを含む。カプセル化データ320は、複雑な現実の形状(たとえば、ロボットデバイス18)を、複雑な現実の形状を完全に覆うように1つまたは複数の錠剤形カプセルに変換した結果である。結果として得られるカプセル化データ320は、2つのカプセル間の距離が2本の直線の間の距離と等しく、2つの複雑な一般化形状の間の距離を決定するよりも計算がかなり単純な問題であるので、カプセル内の下にある物体が衝突しないことを確実にしながら、衝突計算の単純化を可能にする。
【0100】
406において、方法400は、ロボットデバイスの動く方向を計算することを含む。動く方向は、方向データ321としてメモリ304に記憶され得る。方向データ321は、ロボットデバイス18が現在動いている移動方向の計算によって取得されるデータを含み得る。そのようなデータは、進路補正が行われない場合、および/またはロボットデバイス18が移動させるまたは作動させるコマンドを受信しない場合に、ロボットデバイス18の位置、方向、速度、加速度、急な動きなどを表すものとして理解され得る。方向データ321は、ロボットデバイス18が現在動いていない移動方向の計算によって取得されるデータを含み得る。そのようなデータは、進路補正が行われる場合、および/またはロボットデバイス18が移動させるまたは作動させるコマンドを受信する場合に、ロボットデバイス18の位置、方向、速度、加速度、急な動きなどを表すものとして理解され得る。
【0101】
方向モジュール314は、ロボットデバイス18と目標物との間の重力または他の引力の引力データ322、カプセル化データ320にカプセル化されているようなロボットデバイスと他の物体との間の斥力の斥力データ324、および接線力データ326に従って、方向データ321を計算する。
【0102】
408において、方法400は、人工ポテンシャル場およびそれによって誘発される力の影響下で動くことによって障害物および危険物を回避し、目標物を探索するためにロボットデバイス18が動き得る経路を計算することを含み、これは、引力目的物成分(すなわち、仮想引力)、斥力成分(すなわち、仮想斥力成分)、および障害物の周りを動くのを助け、単にそこから離れるのを助けるのではない斥力に対する接線成分(すなわち、仮想接線力)を含む。計算された経路は、計画経路データ330としてメモリ304に記憶され得る。
【0103】
ロボットを動かすために、コマンドがロボットの各関節に送出される(たとえば、関節の回転速度に関して、関節角度に関して)。3次元作業空間に関する遠隔測定情報が記憶され、3次元作業空間を7次元ロボット空間328にマッピングすることが、遠隔測定情報に基づき各関節のコマンドを導出することを可能にする。マッピングは、ポテンシャル場を使用して遠隔測定データを人工的な力に変換し、人工的な力を関節空間トルクに変換し、関節空間トルクをコマンドに変換することによって行われる。
【0104】
次に
図4を参照すると、
図4には、一実施形態による、障害物および危険物を回避し、目標物を探索するためにロボットデバイスが動く経路を計算する方法500が示されている。方法500は、
図3の方法400の408に対応する。ロボットデバイスは、
図1のシステム10のロボットデバイス18であってもよい。
【0105】
502において、方法500は、第1の人工ポテンシャル場に対応する引力ベクトルであって、第1のポテンシャルはロボットデバイスを目標物に向かわせる二次ポテンシャルの導関数である、引力ベクトルと、第2の人工ポテンシャル場に対応する斥力ベクトルであって、第2のポテンシャルはロボットデバイスを1つまたは複数の障害物から離れる方向に動かす二次ポテンシャルの導関数である、斥力ベクトルとを計算することを含む。
【0106】
504において、方法500は、502における計算において、引力、斥力、および接線力の各々の影響を結合することによって、さらなる移動または作動がない場合にロボットデバイスが辿ることになる現在の経路を決定することを含む。
【0107】
506において、方法500は、引力、斥力、および接線力の各々の影響を502における計算において結合することによって、504において決定された経路とは異なる望ましい経路がもしあればそれを決定することを含む。経路は計画経路データとして表される。計画経路データは、計画経路データ330であってもよい。
【0108】
504または506における引力、斥力、および接線力の結合は、3つの力が方向データ321などの方向データにどのように影響するかを決定するために、3つの力を総和することを含み得る。3つの力を総和することは、3つの力をベクトルとして表し(すなわち、各力を大きさおよび方向の両方を有するものとして表し)、それぞれの大きさおよび方向に従ってベクトルを総和することを含み得る。
【0109】
次に
図5を参照すると、
図5に示されているのは、一実施形態による、ロボットデバイスの周りに配置された物体の例示的なカプセル化600およびロボットデバイス自体のグラフィック表現である。物体は、グリッド601上にグラフィックで表されている。ロボットデバイスは、
図1のシステム10のロボットデバイス18であってもよい。カプセル化600は、
図3の方法400の404に対応し得る。カプセル化600は、
図2のシステム300のカプセル化データ320であってもよい。
【0110】
カプセル化600は、カプセル化されたロボットデバイス602、カプセル化された障害物604、カプセル化された危険物606、およびカプセル化された目標物608を含む。一般的に、障害物604および危険物606を回避しながら、ロボットデバイスが目標物608を捕捉するかまたは係合することを可能にするロボットデバイスに対する経路が望まれる。
【0111】
カプセル化600は、カプセル化された目標物608を探索するためにカプセル化された障害物604およびカプセル化された危険物606を回避するようにカプセル化されたロボットデバイス602が作動するかもしくは移動する、または作動されるかもしくは移動されることを有利に可能にし得る。
【0112】
カプセル化600は、ロボットデバイス18、様々な障害物および危険物、ならびに捕捉されるかまたは係合されるべき目標物の現実の位置に対応するので、カプセル化600におけるカプセル化されたロボットデバイス602の作動または移動に対する解決方法は、ロボットデバイスが障害物および危険物を回避し、目標物を探索するために辿り得る現実の計画経路に対応する。
【0113】
カプセル化600は、複数の側面、頂点、および角度を有する複雑な物体が、代わりにカプセル(たとえば、カプセル化されたロボットデバイス602で示されている錠剤形カプセル)として表され、計算を単純化し得るという点で、計算効率を高める。したがって、任意の潜在的な衝突は、二次方程式を通して解くことができる有限線分間距離計算により計算され得る。
【0114】
2つのカプセル(たとえば、カプセル化されたロボットデバイス602とカプセル化された目標物608)の間の最接近を識別した後、その間の最も近い力が生成され、
【0115】
【0116】
を介して所望のレートに変換され、これはすべての力を合わせてトルクにする。このトルクは、関節がしかるべく作動するように速度コマンドに直接変換される。
【0117】
したがって、前述の計算の実行は、解を求める反復が有利には必要とされない場合があるので、有利には、常に、実行するのに同じ時間を要し得る。
【0118】
カプセル化600のすべてのカプセル化されたコンポーネント(たとえば、カプセル化されたロボットデバイス602、カプセル化された障害物604、カプセル化された危険物606、およびカプセル化された目標物608)は、相互に反発する。
【0119】
ロボットデバイスは、前述のシステムおよび方法により、ガイダンス(たとえば、軌道)によって規定されるか、またはガイダンスを受信し、ガイダンスはロボットデバイスの関節のアクチュエータにコマンドを送信することによって実行するロボットデバイスのコントローラに対する参照として提供される。
【0120】
上記の説明は、1つまたは複数の装置、方法、またはシステムの例を挙げているが、他の装置、方法、またはシステムが、当業者によって解釈されるように請求項の範囲内あり得ることは理解されるであろう。
【符号の説明】
【0121】
10 システム
12 サーバプラットフォーム
14 センシングデバイス
16 コマンドデバイス
18 ロボットデバイス
20 ネットワーク
300 コンピュータシステム
302 プロセッサ
304 メモリ
306 通信インターフェース
308 ディスプレイ
310 計算モジュール
312 カプセル化モジュール
314 方向モジュール
316 マッピングモジュール
318 遠隔測定データ
320 カプセル化データ
321 方向データ
322 仮想引力データ
324 仮想斥力データ
326 仮想接線力データ
328 7次元ロボット空間
330 計画経路データ
400 方法
500 方法
600 カプセル化
601 グリッド
602 カプセル化されたロボットデバイス
604 カプセル化された障害物
606 カプセル化された危険物
608 カプセル化された目標物
【外国語明細書】