(58)【調査した分野】(Int.Cl.,DB名)
前記アフィン変換は、前記初期位置に関連している回転と、前記初期位置に関連している並進と、前記初期位置に関連している鏡映と、1つ以上の回転、並進、および鏡映の合成とのうちの少なくとも1つを含む、請求項3に記載の方法。
前記アフィン変換は、前記初期位置に関連している回転と、前記初期位置に関連している並進と、前記初期位置に関連している鏡映と、1つ以上の回転、並進、および鏡映の合成とのうちの少なくとも1つを含む、請求項11に記載のコンピューティング装置。
位置についての前記1つ以上の変換は、変換後の位置への初期位置のアフィン変換を含み、前記アフィン変換は、前記初期位置に関連している回転と、前記初期位置に関連している並進と、前記初期位置に関連している鏡映と、1つ以上の回転、並進、および鏡映の合成とのうちの少なくとも1つを含む、請求項17に記載の非一時的なコンピュータ読み取り可能な媒体。
【発明を実施するための形態】
【0011】
概要
[0027] 一部のシナリオでは、ロボットは、空間の一部分が変化し、空間の他の部分がそのままの状態を保つ空間内で動作し得る。たとえば、ロボットで運転された倉庫空間で、トラックは、倉庫の積み込みドックに到着し、積み込みドックと一直線に揃えられ、荷下ろしのため後部ドアを開くことができるので、空間的余裕(トラックの内部)を倉庫の積み込みドックに効率的に付け加える。その後、このトラックは離れ、積み込みドックで異なるトラックと置き換えられ得るので、倉庫の積み込みドックに付け加えられた空間的余裕を効率的に変化させる。たとえば、積み込みドックを追加するもしくは閉じる、内部空間の使用を変更する、倉庫内部のラックおよび/または壁を追加、除去、もしくは変更するなどのその他の変化が倉庫に加えられ得る。倉庫の内側では、たとえば、パレット、ラック、および設備などの様々な(大型)物体が移動可能であり、これらも倉庫の空間を変化させる。他の事例では、ロボットが、たとえば、上記倉庫を取り囲む駐車場、または、周囲の敷地と共に建物を有するキャンパス環境などの屋外または屋内/屋外混合環境の地図を作成するために使用され得る。
【0012】
[0028] 空間Sは、環境、たとえば、1つ以上の建物の1つ以上の部分、街区、公園などの屋内および/または屋外領域である。空間Sは、「フィーチャー」、すなわち、ドア、壁、コーナー、設備、などの明確に識別され得る物体を含み得る。一部の実施例では、フィーチャーは、特に、バーコードのようにロボットナビゲーションのため設置される可能性がある。空間Sの「地図」は、ピクチャ、チャート、ダイアグラム、および/または、空間S内のフィーチャーの一部または全部を含めて空間Sを描写および説明するその他の情報でもよい。一部の実施形態では、地図は、コンピュータ/ロボット読み取り可能なフォーマットになり得る。地図は、「セマンティックラベル」、すなわち、空間S内のフィーチャー、他の物体、および/または他の位置の情報を提供する注釈を含むことがあり、各セマンティックラベルは、空間Sの地図の内部の対応する「セマンティック位置」にある可能性がある。
【0013】
[0029] セマンティックラベルは、地図に関係した情報を提供し得る。この地図に関係した情報は、限定されることなく、以下の情報を含み得る。
・地図の内部の物体およびエリアに関する情報、たとえば、「コピー機」、「外部ネットワークアクセスポイント」、「会議室123B」、「CEOの執務室」、「I−80への出口95」、「第4会議室―午後6時まで予約済み」、「椅子または他の物体がここまでの通路を妨げているのは何がきっかけですか?」など。
・地図の占有者および/または訪問者に関する情報、たとえば、「ロボット番号123が2015年8月7日12時34分56秒に最後に訪問した通路432」、「George Washingtonが泊まった場所」、「会議室123−A.Smithが使用中」など。
・地図に関係した交通規則、たとえば、「この車線からの右折可」、「一方通行ここから」、「午前8時から午前12時の間、下りのみ通行可」、「混雑時渋滞」など。
・地図に関係した環境特性、たとえば、「眺めの良い展望」、「ここSSID Warehouse473に対する信号−30dbm」、「2014年における温度範囲:華氏−16度から91度」など。
・地図自体に関する情報、たとえば、「2015年4月1日に最後に地図化された領域」、「このエリアは、広域地図における領域G−6に対応する」など。
【0014】
[0030] 地図生成中に、フィーチャーの座標と、おそらく地図の付加的な物体/ラベルの座標とが測定され得る。地図内のフィーチャー位置、セマンティック位置、およびその他の位置は、地図座標、たとえば、2次元または3次元座標を単位として指定され得る。空間、地図、フィーチャー、セマンティックラベル、およびセマンティック位置のその他の実施例も考えられる。
【0015】
[0031] ロボットは、周期的に、および/または、空間の一部もしくは全部における変化を検出した後に空間を再地図化し得る。地図再作成後、ロボットまたは別のコンピューティング装置は、フィーチャーの相対的な姿勢(位置および方向)を計算するために、旧(当初に地図化された)メトリック地図と新(再地図化された)メトリック地図との両方に存在するフィーチャーを比較し得る。地図フィーチャーに対する座標は、たとえば、全地球測位システム(GPS)衛星などの外部源から、地図作成プロセスの一部として、判定され得るか、および/または、別のやり方で判定され得る。次に、相対姿勢を使用して、旧地図座標および新地図座標を使用する位置同士の対応が判定され得る。その上、複数の(隣接する)フィーチャーの座標を使用することにより、誤判定、すなわち、旧地図と新地図との間の誤った対応を推定することができる。対応に基づいて、旧地図座標を新地図座標に関連付ける1つ以上の変換を判定することができ、各変換は、空間の局所近傍(領域)の内部のフィーチャーの座標を関連付ける。一部の事例では、異なる位置は、旧地図座標と新地図座標との間に異なる変換を持つ可能性がある。
【0016】
[0032] セマンティックラベルは、旧地図座標と新地図座標との間の上記変換を使用して自動的に再地図化され得る。たとえば、セマンティックラベルおよびセマンティック位置は、旧地図に対して、対応する旧地図座標の単位で最初に決定され得る。旧地図座標と新地図座標との間の変換(群)は、新地図座標の単位で新(変換された)セマンティック位置を判定するためにセマンティック位置に適用され得る。セマンティックラベルは、次に、新セマンティック位置で新地図に追加され得る。セマンティックラベルの自動地図化は、旧地図から新地図への手動によるセマンティックラベルの配置/複製に比べると、新地図を更新するために要する時間および努力を削減することができる。さらに、自動地図再作成は、セマンティックラベルの新地図への手動による配置より正確になる可能性があり−手動ではなく、自動による地図再作成が使用されたとき、ラベルがどこかに消える、改変される、混同されるなどの可能性が低い。
【0017】
[0033] 地図再作成後にセマンティック位置データを関連付けるシステムおよび手法
図1は、例示的な実施形態による地図再作成シナリオ100を表している。地図再作成シナリオは、たとえば、少なくとも
図9Aとの関連で後述され、おそらく移動ロボット装置として構成されるコンピューティング装置900などのコンピューティング装置によって実行され得る。
図1の上部では、廊下144aによって接続された領域140aおよび142aを含む空間102aの例示的な旧地
図110aが表されている。地
図110aは、空間102aのあらゆる場所に移動し、コンピューティング装置のセンサを使用して空間102aに対するセンサデータを取得し、空間102aの地
図110aを生成するために、たとえば、限定されることなく、SLAMアルゴリズムのような地図作成アルゴリズムを利用するコンピューティング装置によって生成され得る。
【0018】
[0034] 領域140aは、3つのフィーチャー:領域140aの上部中央にあるフィーチャー120aと、中央左にあるフィーチャー122a、および下部右にあるフィーチャー124aを含む。領域140aは、3つのセマンティックラベル(SL):領域140aの上部左にある「会議室」に対するセマンティックラベル130aと、中央右にある「正面ロビー」に対するセマンティックラベル132aと、下部左にある「Kevinの事務室」に対するセマンティックラベル134aとをさらに含む。領域142aは、領域142aの下部左にあるフィーチャー126aと、上部右にあるフィーチャー128aと、「コーヒーメーカー」の位置を指し示すセマンティックラベル136aとを含む。
【0019】
[0035] シナリオの後半で、空間102aは、
図1の下部に描かれた空間102bになるように変更される。具体的には、空間102bは、領域140aと140bとが実質的には同一であり、領域142aは、領域142bになるように時計回り方向に回転させられ、廊下144aは、領域140bと142bとを接続する廊下144bになるように適合させられていることを表している。
【0020】
[0036] 空間102bが形成された後、空間は、廊下144bによって接続された領域140bおよび142bを含む新地
図110bを作成するために再地図化される。空間102bは、空間102bのあらゆる場所に移動し、コンピューティング装置のセンサを使用して空間102bに対するセンサデータを取得し、空間102bの地
図110bを生成するために、たとえば、限定されることなく、SLAMアルゴリズムなどの地図作成アルゴリズムを利用するコンピューティング装置によって、地
図110bを生成するために再地図化され得る。
【0021】
[0037] 領域140aと同様に、領域140bは、3つのフィーチャー:領域140bの上部中央にあるフィーチャー120bと、中央左にあるフィーチャー122bと、下部右にあるフィーチャー124bとを含む。領域140aと同様に、領域140bは、3つのセマンティックラベル:領域140bの上部左にある「会議室」に対するセマンティックラベル130bと、中央右にある「正面ロビー」に対するセマンティックラベル132bと、下部左にある「Kevinの事務室」に対するセマンティックラベル134bとを含む。領域142aと同様に、領域142bは、領域142bの下部左にあるフィーチャー126bと、上部右にあるフィーチャー128bと、「コーヒーメーカー」の位置を指し示すセマンティックラベル136bとを含む。各フィーチャーおよびセマンティックラベルは、たとえば、地図座標、空間の座標、および/または、フィーチャーもしくはセマンティックラベルの位置を表現する他のデータなどの座標の単位で表現(または指定)され得る位置に関連付けられ得る。
【0022】
[0038] コンピューティング装置は、旧地
図110aと110bとの間の対応を生成し得る。たとえば、コンピューティング装置は、旧地
図110a内のフィーチャー122aの位置を対応するフィーチャー、すなわち、新地
図110b内のフィーチャー122bの位置と関連させるフィーチャー対応(FC)122cを生成し得る。同様のフィーチャー対応126cは、旧地
図110a内のフィーチャー126aと新地
図110b内の対応するフィーチャー126bとに対して表されている。
【0023】
[0039] コンピューティング装置は、変換、すなわち、フィーチャーの移動を表現する関数を開発するために対応を使用し得る。たとえば、コンピューティング装置は、新地
図110b内の領域140bおよび142bの少なくとも1つの領域が地図再作成中に旧地
図110aの領域140aおよび142aに対してと相対的に移動したことを指し示すためにフィーチャー対応122cおよび126cを計算し得る。フィーチャー対応122cと、フィーチャー120aおよび120bの位置の間の対応と、フィーチャー124aおよび124bの位置の間の対応との調査は、領域140aが領域140bとして再地図化されている間に位置を変えなかったことを示すので、領域140bは、領域140aが旧地
図110a内に地図化されてから、位置を変えなかったことを示唆することができる。従って、コンピューティング装置は、領域140a内のセマンティックラベルが領域140bとしての地図再作成中に変わらなかったと仮定することができる。その結果、コンピューティング装置は、旧地
図110a内のそれぞれのセマンティックラベル130a、132a、および134aのセマンティック位置を新地
図110b内のそれぞれのセマンティックラベル130b、132b、および134bのセマンティック位置として利用することによって領域140a内のセマンティックラベルを領域140bに再地図化できる。すなわち、旧地図と新地図との間で変化しない領域に対して、コンピューティング装置は、旧地図からセマンティックラベルを複製し、これらのセマンティックラベルを新地図の内部の同じセマンティック位置に置くことによって旧地図から新地図にセマンティックラベルを再地図化することができる。
【0024】
[0040] その上、フィーチャー対応126cと、フィーチャー128aおよび128bの位置の間の対応との調査は、領域142aが旧地
図110a内に地図化されたときから、新地
図110bの領域142bが回転させられていることをコンピューティング装置に示すことができる。
【0025】
[0041] コンピューティング装置は、フィーチャーおよび/またはセマンティック位置の様々な移動をモデル化するために、たとえば、1つ以上のアフィン変換、剛体変換、および/またはその他の変換などの変換(群)を判定することができ、本実施例では、旧地
図110a内のセマンティックラベル136aに対するセマンティック位置の回転変換は、新地
図110b内のセマンティックラベル136bに対するセマンティック位置を判定するために位置変換136cとして使用され得る。次に、コンピューティング装置は、手動による新地
図102bへのセマンティックラベル136bの再配置ではなく、セマンティックラベル134bに対するセマンティック位置を判定するために位置変換136cを使用できる。
【0026】
[0042] コンピューティング装置が構造物およびセマンティックラベルの全てを新地
図110bに設置した時点で、シナリオ100を終わらせることができる。一部の実施形態では、コンピューティング装置は、新地
図110b(および/または旧地
図110a)を出力および/または保存することができ、たとえば、地
図110bを表示、地
図110bを印刷、地
図110bを伝送することができる。他の実施形態では、コンピューティング装置は、たとえば、コンピューティング装置(群)/ロボット装置(群)が新地
図110bによって地図化された環境を走行できるように、コンピューティング装置(群)/ロボット装置(群)が新地
図110bによって地図化された環境の内部でフィーチャー、物体、および位置を測位、取得、地図化、操作、および/または、そうでなければ相互に作用するのに役立つように、1台以上のコンピューティング装置/ロボット装置による使用のため地
図110bを提供することができる。特定の実施形態では、コンピューティング装置は、1台以上のコンピューティング装置/ロボット装置のうちのあるコンピューティング装置でもよい。
【0027】
[0043]
図2は、例示的な実施形態による、地図再作成シナリオ200の2つの地図である。シナリオ200では、キャンプ場の屋内および屋外領域が2回地図化され、第1の、前の地図が生成され、そして、後で、第2の地図が生成される。キャンプ場は、第1の地図が生成されたときと第2の地図が生成されたときとの間で部分的に溢れる川に隣接している。溢れている川は、キャンプ場内のテントの一部を移動させる。第1の地図は、セマンティックラベルで注釈を付けられ、第2の地図は、最初、セマンティックラベルで注釈を付けられていない。シナリオ200は、第1の地図からのセマンティックラベルを第2の地図に地図化するプロセスを例として説明し、このプロセスは、たとえば、少なくとも
図9Aとの関連で後述され、おそらく移動ロボット装置として構成されたコンピューティング装置900などのコンピューティング装置によって行われ得る。
【0028】
[0044]
図2の上部は、コンピューティング装置によって取得され得る地
図210aの複製を表し、地
図210aは、最初にキャンプ場の地図を作成する。一部の実施形態では、コンピューティング装置は、たとえば、SLAMアルゴリズムまたは他の地図作成アルゴリズムを使用して、地
図210aの一部または全部を生成し得る。一部のシナリオでは、地
図210aは、コンピューティング装置の1台以上のセンサから取得されたセンサデータに基づいて、少なくとも部分的に生成され得る。
【0029】
[0045] 地
図210aは、川262aに隣接したキャンプ場260aを地図化する。キャンプ場260aは、建物212aおよび220aと、テント228a、232a、238a、244a、および250aとを含む。地
図210aの上部左にある建物212aは、フィーチャー214a、216a、および218aを含み、「食事エリア」位置、「劇場」位置、「クラス1」位置、および「クラス2」位置に対する4つのセマンティックラベルで注釈を付けられている。地
図210aの下部左にある建物220aは、フィーチャー222a、224a、および226aを含み、「事務室」位置および「応急処置所」位置に対応する2つのセマンティックラベルで注釈を付けられている。
図2は、建物212aの右側に、フィーチャー230aと、「ウルフ6〜9」位置および「ウルフ10〜12」位置に対するセマンティックラベルとを含むテント228aを表している。フィーチャー234aおよび236aと、「ホーク6〜9」位置および「ホーク10〜12」位置に対するセマンティックラベルとを含むテント232aは、テント228aの直ぐ下、かつ、建物212aおよび220aの右側で
図2に表されている。
【0030】
[0046] テント242aは、テント228aの右側で
図2に表され、フィーチャー240aおよび242aと、「リードウルフ」位置に対するセマンティックラベルとを含んでいる。テント242aの直ぐ下に、地
図210aは、「スケーリング壁」位置に対するセマンティックラベルを有する。フィーチャー246aおよび248aと「リードホーク」位置に対するセマンティックラベルとを有するテント244aは、「スケーリング壁」位置の下、かつ、テント232aの右側に表されている。
図2は、テント238aおよび244aの右側、かつ、川262aの左側に、フィーチャー252a、254a、256a、および258aを含み、「水上スポーツ」位置、「陸上スポーツ」位置、「アート」位置、および「キャンプ用品」位置に対するセマンティックラベルを有するテント250aを表している。
【0031】
[0047]
図2の下部は、コンピューティング装置によって取得され得る地
図210bの複製を表し、地
図210bは、1回目の後で2回目にキャンプ場を地図化する。一部の実施形態では、コンピューティング装置は、たとえば、SLAMアルゴリズムまたは他の地図作成アルゴリズムを使用して、地
図210bの一部または全部を生成することができる。一部のシナリオでは、地
図210bは、コンピューティング装置の1台以上のセンサから取得されたセンサデータに少なくとも部分的に基づいて生成され得る。
【0032】
[0048] シナリオ200では、地
図210aが生成された第1の時点と地
図210bが生成された第2の時点との間に、キャンプ場に隣接する川が川262aによって描かれた位置から川262bによって描かれた位置まで移動する。具体的には、第2の時点までに、川262bは、地
図210bの下部右に示されている通り、キャンプ場の一部分に溢れている。シナリオ200では、3張りのテントが川の氾濫が原因で移動させられる。これらのテントは、地
図210a内のテント238a、244a、および250aに対して示されたそれぞれの位置から、地
図210b内のテント238b、244b、および250bに対するそれぞれの位置まで移動させられる。具体的には、テント238aは、テント238bの位置に達するように左および僅かに上へ移動させられ、テント244aは、テント244bの位置に達するように反時計回り方向におよそ90度回転させられ、テント250aは、テント250bの位置に達するように僅かに右へ移動させられ、反時計回り方向におよそ10度回転させられる。
【0033】
[0049] 地
図210bは、川262bに隣接したキャンプ場260bを地図化し、キャンプ場260bおよび川262bは、それぞれ、地
図210aのキャンプ場260aおよび川262aに対応している。キャンプ場260bは、地
図210aの建物212aおよび220aと、テント228a、232a、238a、244a、および250aとに対応している建物212bおよび220bと、テント228b、232b、238b、244b、および250bとを含む。
【0034】
[0050] 地
図210bの上部左にある建物212bは、地
図210aのそれぞれのフィーチャー214a、216a、および218bに対応するそれぞれのフィーチャー214b、216b、および218bを含む。地
図210bの下部左にある建物220bは、地
図210aのそれぞれのフィーチャー222a、224a、および226aに対応するそれぞれのフィーチャー222b、224b、および226bを含む。
図2は、テント228bを建物212bの右側に表し、テント228bは、地
図210aのフィーチャー230aに対応するフィーチャー230bを含んでいる。テント232bは、テント228bの直ぐ下、かつ、建物212bおよび220bの右側で
図2に表され、テント232bは、地
図210aのそれぞれのフィーチャー234aおよび236aに対応するそれぞれのフィーチャー234bおよび236bを含んでいる。テント242bは、テント228bの右側で
図2に表され、地
図210aのそれぞれのフィーチャー240aおよび242aに対応するフィーチャー240bおよび242bを含んでいる。テント244bは、テント238bの下、かつ、テント232bの右側に表され、テント244bは、地
図210aのフィーチャー246aおよび248aに対応するそれぞれのフィーチャー246bおよび248bを有する。
図2は、テント238bおよび244bの右側、かつ、川260bの左側にテント250bを表し、テント250bは、地
図210aのそれぞれのフィーチャー252a、254a、256a、および258aに対応するそれぞれのフィーチャー252b、254b、256b、および258bを含んでいる。
【0035】
[0051]
図3は、例示的な実施形態による、地
図310aおよび310bを使用して、シナリオ200の地図に対する座標の割り当てを示す。
図3の上部に表された地
図310aは、(第1の時点に生成された)地
図210aに対応し、3次元(3D)座標が最初に地
図210a内にある各フィーチャーおよびセマンティックラベルに割り当てられている。
図3の下部に表された地
図310bは、(第2の時点に生成された)地
図210bに対応し、3D座標が最初に地
図210b内にある各フィーチャーに割り当てられている。地図座標は、地図作成アルゴリズムの一部として判定することができ、たとえば、建物212a/212b、および/または、建物220a/220bなどの1つ以上のランドマークと相対的に、地図帳またはその他の地図の収集物によって使用される座標が割り当てられているような外部地図に合わせて、外部源(たとえば、測位センサから取得される緯度、経度、および/または高度値)から、あるいは、座標を割り当てる他のアプローチによって、取得され得る。シナリオ200では、3D座標を地
図210b内のフィーチャーに割り当て、そして、地
図310bを取得するために使用されるのと同じアプローチが、3D座標を地
図210a内のフィーチャーおよびセマンティックラベルに割り当て、そして、地
図310aを取得するために使用される。他のシナリオでは、3D座標ではなく2D座標が地図に割り当てられ得る。
【0036】
[0052] 以下の表1は、地
図310aおよび310b内のフィーチャーに割り当てられた座標を表している。
【表1】
【0038】
[0054]
図4は、例示的な実施形態による、シナリオ200の地
図310aと地
図310bとの間の移動領域の判定を描く。地
図410aは、
図4の上部に表されている。地
図410aは、地
図310aのフィーチャーと地
図310bのフィーチャーとの比較を示し、建物412および420が地
図310aと310bとの間で変化なしであることを表している。
【0039】
[0055] コンピューティング装置は、領域Rの内部のフィーチャーF1,F2,...Fnの座標が地
図AとBとの間で「等価」であるか否か、すなわち、地
図AとBとの間のフィーチャーの座標が1つ以上の閾座標値の範囲内で等しい、または、ほぼ等しいか否かを判定することによって、2つの地
図AおよびBによって地図化された領域Rが地
図Aと地
図Bとの間で移動したか否かを判定することができる。たとえば、領域R内のフィーチャーF1,F2,...Fnの地
図A内の座標をA1,A2,...Anとし、領域R内のフィーチャーF1,F2,...Fnの地
図B内の座標をB1,B2,...Bnとする。このとき、A1がB1と等価であり、A2がB2と等価であり、...そして、AnがBnと等価である場合、領域Rは、地
図Aと地
図Bとの間で移動していない。本文書では、A1がB1と等価であることを示すために、
【数1】
が使用され、A1がB1と等価ではないことを示すために、表記
【数2】
が使用される。この表記を使用して、コンピューティング装置は、
【数3】
である場合、領域Rが地
図Aと地
図Bとの間で変化しなかったと、判定することができる。その上、
【数4】
である場合、領域Rが地
図Aと地
図Bとの間で変化した、と判定することができる。その他の手法が、領域が地図の間で移動した(または否か)を2つの地図の領域の内部のフィーチャーの座標に基づいて判定するために使用され得る。
【0040】
[0056] シナリオ200では、コンピューティング装置は、地
図310aの特定の領域内の全てのフィーチャーの座標が地
図310bの特定の領域内の対応するフィーチャーの座標と等価である、と判定することにより、地
図310aおよび310bの両方によって地図化された特定の領域において変更が行われなかった、と判定することができる。シナリオ200では、特定の領域は、地
図310aおよび310bによって地図化されたキャンプ場内の構造物−建物およびテント−によって指定され得る。すなわち、各構造物は、比較目的のための領域であると見なされ得る。他のシナリオでは、構造物以外の1つ以上の他の実体、たとえば、地図全体、地図の一部分、構造物の一部分、または地図の別の区分などが比較目的のための領域の境界を明らかにするために使用され得る。
【0041】
[0057] 地
図310aは、建物212aの地図を含み、地
図310bは、対応する建物212bの地図を含む。地
図310aでは、建物212aは、座標M1(x,y,z)、または、略して「M1」にフィーチャー214aと、座標M2にフィーチャー216aと、座標M3にフィーチャー218aとを含むが、地
図310bの建物212bは、座標D1(x,y,z)、略して「D1」にフィーチャー214bと、座標D2にフィーチャー216bと、座標D3にフィーチャー218bとを含む。
【0042】
[0058] その結果、コンピューティング装置は、建物212aのフィーチャーの座標を建物212bの対応するフィーチャーの座標と比較し、すなわち、フィーチャー214aの座標M1は、フィーチャー214bの座標D1と比較することができ、フィーチャー216bの座標M2は、フィーチャー216bの座標D2と比較することができ、フィーチャー218bの座標M3は、フィーチャー218bの座標D3と比較することができる。コンピューティング装置は、座標M1が座標D1の1つ以上の閾値の範囲内にあることを判定することによって、または、おそらく何らかの他の比較手法によって、座標M1が座標D1と等価であることを判定することによって座標M1を座標D1と比較できる。
【0043】
[0059] 座標が等価である、従って、対応する位置が等価である、と判定するために閾値を使用する実施例に対して、M1=(X
M1,Y
M1,Z
M1)およびD1=(X
D1,Y
D1,Z
D1)とする。次に、X
TがX
T>0である閾値であるとして、|X
M1−X
D1|<X
Tである場合、M1のx値とD1のx値とは等価であると見なすことができる。同様に、Y
TがY
T>0である閾値であるとして、|Y
M1−Y
D1|<Y
Tである場合、M1のy値とD1のy値とは等価であると見なすことができ、|Z
M1−Z
D1|<Z
Tである場合、M1のz値とD1のz値とは等価であると見なすことができる。M1およびD1のx値、y値、およびz値が等価であると見なされる場合、座標M1は、座標D1と等価であると見なされ得る。さらに、M1がD1と等価であり、M2がD2と等価であり、M3がD3と等価である場合、建物212bは、地
図310aの一部として地図化された建物212aと比べると、地
図310bを生成する地図再作成中に移動していない、と見なされ得る。
【0044】
[0060] シナリオ200では、M1は、表記
【数5】
によって
図4に示された通り、D1と等価である。
図4は、シナリオ200では、
【数6】
かつ、
【数7】
であることをさらに表し、コンピューティング装置は、地
図310bの建物212bが地
図310aの当初に地図化された建物212aと比べて地図再作成中に変化しなかった、と判定することができる。さらに、シナリオ200では、
【数8】
【数9】
かつ、
【数10】
であるので、地
図310bの建物220bは、地図再作成中に、地
図310aの当初に地図化された建物220aから移動していない、と見なされ得る。
図4の地
図410aは、建物212a、212bが地
図310aと比べて地
図310bによってキャンプ場の地図再作成中に変化しなかったので、両方の建物212aおよび212bを表現するために建物412を表し、建物220a、220bが地図再作成中に変化しなかったので、両方の建物220aおよび220bを表現するために、建物420を表している。
【0045】
[0061] その上、シナリオ200では、地
図310aのテント228aは、D7が地
図310bのテント228bのフィーチャー230bの座標であるとき、
【数11】
である座標M7を持つフィーチャー230aを含む。さらに、シナリオ200では、地
図310aのテント232aは、D8およびD9が地
図310bのテント228bのフィーチャー234b、236bのそれぞれの座標であるとき、
【数12】
かつ、
【数13】
であるそれぞれの座標M8、M9を有するそれぞれのフィーチャー234a、236aを含むので、テント232a、232bは、地図再作成中に変化しなかった。その結果、
図4の地
図410aは、テント228a、228bとテント232a、232bとのそれぞれのペアが地図再作成中に変化しなかったことを反映するためにそれぞれのテント428および432を含む。
【0046】
[0062] 地
図410aは、テント238aがテント238bとは異なり、テント244aがテント244bとは異なり、テント250aがテント250bとは異なることも表している。コンピューティング装置は、テント238aのフィーチャー240aの座標M10がテント238bのフィーチャー240bの座標D10とは異なること、および、テント238aのフィーチャー242aの座標M11がテント238bのフィーチャー242bの座標D11とは異なる、と判定し得る。その結果、
【数14】
かつ、
【数15】
である、と判定することにより、コンピューティング装置は、テント238aがテント238bとは異なる、と判定し得る。
【0047】
[0063] 同様に、コンピューティング装置は、テント244aのフィーチャー246aの座標M12がテント244bのフィーチャー246bの座標D12とは異なり、テント244aのフィーチャー248aの座標M13がテント244bのフィーチャー248bの座標D13とは異なる、と判定し得る。その結果、
【数16】
かつ、
【数17】
である、と判定することにより、コンピューティング装置は、テント244aがテント244bとは異なる、と判定し得る。
【0048】
[0064] その上、コンピューティング装置は、テント250aのフィーチャー252aの座標M14がテント250bのフィーチャー252bの座標D14とは異なること、テント250aのフィーチャー254aの座標M15がテント250bのフィーチャー254bの座標D15とは異なること、テント250aのフィーチャー256aの座標M16がテント250bのフィーチャー256bの座標D16とは異なること、およびテント250aのフィーチャー258aの座標M17がテント250bのフィーチャー258bの座標D17とは異なること、と判定し得る。その結果、
【数18】
【数19】
【数20】
かつ、
【数21】
である、と判定することにより、コンピューティング装置は、テント250aがテント250bとは異なる、と判定し得る。
【0049】
[0065]
図4の下部は、地
図310aと310bとの間に移動した領域438、444、および450を表す地
図410bを含む。地
図410bは、各領域438、444、および450の内部のフィーチャーの位置/座標の間の変化を示すために矢印をさらに使用する。たとえば、領域444は、地
図310a内のフィーチャー246aが地
図310b内にフィーチャー246bとして地図化されたときに左上向きに移動したことを示すために、フィーチャー246aと246bとの間に矢印446を有し、地
図310a内のフィーチャー248が地
図310b内にフィーチャー248bとして地図化されたときに右および僅かに上向きに移動したことを示すために、フィーチャー248aと248bとの間に矢印448を有する。
【0050】
[0066] 2つの地図の間で移動した領域を判定した後、コンピューティング装置は、たとえば、地
図310aなどの第1の地図内の1つ以上の移動した領域に対する座標を、たとえば、地
図310bなどの第2の地図内の1つ以上の移動した領域の座標に変換するために使用され得る1つ以上の移動した領域に対する1つ以上の変換を判定し得る。
【0051】
[0067] シナリオ200以外の他のシナリオでは、旧地図座標と新地図座標との間のマッピングは、非一様である可能性がある。たとえば、古い方の地図、たとえば、地
図210aもしくは310a、または新しい方の地図、たとえば、地
図210bもしくは310b内のマッピング誤差は、古い方の地図および新しい方の地図が異なるフィーチャー、領域、セマンティックラベルなどを持つようにさせる可能性がある。たとえば、SLAMアルゴリズムが古い方および/または新しい方の地図を生成するために使用される場合、SLAM最適化におけるループ閉合誤差または他のSLAM関連誤差は、古い方および/または新しい方の地図においてマッピング誤差(群)を生じさせる可能性がある。その上、環境の変化は、旧地図座標と新地図座標との間に非一様なマッピングを引き起こす可能性がある。たとえば、シナリオ200に関係しているシナリオでは、川260bは、テント250bが設置されている領域全体を浸水させるので、テント250bは、解体される。このとき、浸水した環境について獲得された新地図を古い方の地
図210aまたは310aと比較すると、テント250aに関係している座標は、浸水した環境についての新地図から無くなっている。別の実施例として、シナリオ100に関係している実施例では、倉庫でのトラックに対応する古い方の地図の領域は、新しい方の地図が生成される前に積み込み室を離れ(または到着する)、今度はトラックが見当たらない(または今度はトラックが出現している)ので、非一様な座標の原因となる。多くの他の実施例も考えられる。
【0052】
[0068] 一部の実施形態では、フィーチャーのグラフを作成し、誤対応を取り除き、旧地図内のフィーチャーと新地図内のフィーチャーとの間で座標マッピングを確立する大域的最適化アルゴリズムが利用され得る。セマンティックラベルに対する座標変換は、このとき、関連フィーチャーおよび/または隣接フィーチャーの一部または全部に対する座標マッピングの関数(たとえば、加重平均)として判定され得る。どのフィーチャーが特定のラベルに対する関連フィーチャーおよび/または隣接フィーチャーであるかの判定は、アルゴリズム的に判定することができ、たとえば、K>0であるKに対して、セマンティックラベルに対する最近傍K個のフィーチャーを選択し、または、ラベリングの一部として明示的に追加され、たとえば、セマンティックラベルをコーナー、壁、および/または事務室の他のフィーチャーを表現するフィーチャーに関連付けられた「事務室」に対するセマンティックラベルなどの1つ以上のフィーチャーに関連付ける。フィーチャーとセマンティックラベルとを関連付けることは、一定の用途に対する信頼性を改善することができる。たとえば、セマンティックラベル「教室1」は、教室の壁にリンクされることがある。別の実施例として、「外部ネットワークアクセスポイント」のセマンティックラベルは、たとえば、コーナーまたは外部ネットワークアクセスポイントとして機能する装置の他の(視覚的な)フィーチャーなどの地図フィーチャーにリンクされることがある。多くの他の実施例も考えられる。
【0053】
[0069]
図5Aは、例示的な実施形態による、例示的なアフィン/剛体変換500を表している。アフィン変換は、点、直線、平面、および直線上にある点間の距離の比率を保存するが、必ずしも点間の線または距離の間の角度を保存しない関数である。剛体変換は、点間の距離を保存するアフィン変換である。例示的な剛体変換は、並進、回転、および鏡映を含み、例示的なアフィン変換は、剛体変換(すなわち、並進、回転、および鏡映)と、横ずれ変換と、スケール変換と、アフィン変換の合成とを含む。他の変換も考えられる。
【0054】
[0070] 例示的な剛体(従って、アフィン)変換500が
図5Aに表されている。
図5Aの一番上で、初期状態510が廊下によって接続された三角形の左側に四角形を使って表されている。
図5Aおよび
図5Bにおいて、三角形は、三角形の左上隅に文字「A」、三角形の右下隅に文字「B」、および三角形の中心に文字「C」でラベルが付けられている。
図5Aに表された剛体変換のそれぞれは、初期状態510の初期状態に作用する。次に、剛体変換が三角形に適用された後、廊下は、変換後の最終状態に達するように、四角形と変換後の三角形との間に再接続される。
【0055】
[0071] 並進変換は、それぞれの変換後の、または並進後の点を指定された方向に一定距離だけ動かす変換となり得る。例示的な並進変換512は、変換後の(最終)状態514の三角形516として表された右方に三角形を移動させる。その上、並進後の状態514の廊下は、初期状態510の廊下と比べて延長されたものとして表されている。
【0056】
[0072] 回転変換は、それぞれの変換後の、または回転後の点を固定点の周りに動かす変換となり得る。例示的な回転変換518は、回転後の(最終)状態520の三角形522として表された位置に達するように、三角形のラベル「C」が付けられた点に関して時計回りに90度この三角形を動かす。回転後の状態520の廊下は、初期状態510の廊下と比べると同じように表されている。
【0057】
[0073] 鏡映変換は、変換後の物体の像が初期物体の鏡像であるように、それぞれの変換後の、または鏡映後の初期物体の点を固定線または軸に対して動かす変換となり得る。例示的な鏡映変換524は、鏡映後の(最終)状態526の三角形528として表された位置に達するように、点AとBとの間の三角形の斜線によって形成された軸に対して三角形を動かす。回転後の状態526の廊下は、初期状態510の廊下と比べて部分的に延長されたものとして表されている。
【0058】
[0074] 合成剛体変換は、前述の剛体変換のうちの2つ以上、すなわち、並進(群)、回転(群)、および/または鏡映(群)の合成を含み得る。例示的な合成変換530は、変換後の(最終)状態532の三角形534として表された位置に達するように、三角形を右方に移動させ、その後、点Cに対して時計回りに90度この三角形を回転させるために並進変換512とその後の回転変換518とを含む。変換後の状態532の廊下は、初期状態510の廊下と比べて延長されたものとして表されている。
【0059】
[0075]
図5Bは、例示的な実施形態による、例示的なアフィン変換540を表している。例示的なアフィン変換540は、初期状態510に基づいて
図5Bに表されている。
図5Bに表された例示的なアフィン変換のそれぞれは、初期状態510の四角形に作用する。次に、アフィン変換が四角形に適用された後、廊下は、変換後の最終状態に達するために、変換後の四角形の垂直方向の中間点と三角形の垂直方向の中間点との間の方向に再接続される。剛体変換と併せて、例示的なアフィン変換540は、横ずれ変換と、スケール変換と、アフィン変換の合成とを含む。他のアフィン変換も考えられる。
【0060】
[0076] 横ずれ変換は、固定方向と平行な線から符号付き距離に比例する量だけ固定方向に各点を動かす変換となり得る。例示的な横ずれ変換は、固定線が四角形の(X軸を表現する)下側水平線であり、符号付き距離が四角形内の点のy座標に比例する、X方向の横ずれ変換542として表されている。
図5Bに表されている通り、例示的なX方向の横ずれ変換542は、X方向の横ずれ後の四角形546を含むX方向の横ずれ状態544をもたらす。X方向の横ずれ変換542は、初期状態510の四角形からX方向の横ずれ後の四角形546の下側水平線の位置を保存し、初期状態の四角形の上側水平線を右方へ動かし、初期状態の四角形の垂直線を右上に移動し、X方向の横ずれ後の四角形456内の水平方向の辺を接続する斜線に変形させる。その上、X方向の横ずれ後の状態544の廊下は、X方向の横ずれ後の四角形546の右側斜線に合わせるために初期状態510の廊下と比べて部分的に短縮されたものとして表されている。
【0061】
[0077] 別の例示的な横ずれ変換は、固定線が四角形の(Y軸を表現する)左辺であり、符号付き距離が四角形内の点のx座標に比例する、Y方向の横ずれ変換548として表されている。
図5Bに表されている通り、例示的なY方向の横ずれ変換548は、Y方向の横ずれ後の四角形552を含んでいるY方向の横ずれ後の状態550をもたらす。Y方向の横ずれ変換548は、初期状態510の四角形からY方向の横ずれ後の四角形552の左垂直線の位置を保存し、初期状態の右垂直線を上向きに動かし、初期状態の四角形の水平辺を右上に動き、Y方向の横ずれ後の四角形552の垂直線を接続する斜線に変換させる。その上、Y方向の横ずれ後の状態550の廊下は、Y方向の横ずれ後の四角形552の垂直方向での中間点の上向き移動に合わせるために下向きおよび右向きに動いているものとして表されている。他の変換も考えられる。
【0062】
[0078] スケール変換は、所定の倍率によって1つ以上の方向に1つ以上の物体を拡大または縮小する変換である。一様なスケール変換は、全ての方向に対して1つの倍率を使用するが、非一様なスケール変換は、異なる方向に対して複数の倍率を使用する。スケール変換は、従って、1つの次元における物体に対する座標(たとえば、物体に対するx座標、y座標、z座標)を取得することと、この次元に対する倍率を座標に乗じることとを含むことがある。その結果、倍率0は、物体を点まで縮小し、0と1との間にある倍率は、物体を縮小し、倍率1は、物体のサイズを保存し、1より大きい倍率は、物体を拡大するであろう。一部の事例では、負の倍率は認められないが、他の事例では、負の倍率が認められ、(倍率が−1未満、たとえば、−2、−3...である場合)物体を鏡映し、拡大することをもたらし、(倍率が0と−1との間にある場合)物体を鏡映し、縮小することをもたらす。
【0063】
[0079] 例示的な一様なスケール変換は、およそ1.25という倍率を使用するスケール変換554として表され、初期状態510の四角形および拡大縮小後の四角形558の左下隅は、座標(0,0)に割り当てられるので、拡大縮小後の四角形558の左下隅は、スケール変換によって不変である。
図5Bに表された通り、スケール変換556は、初期状態510の四角形と比べるとx次元およびy次元の両方でおよそ25%ずつ拡大縮小後の四角形558を拡大する。その上、拡大縮小後の状態550の廊下は、拡大縮小後の四角形558の垂直方向における中間点の上向き移動に合わせるために下向きおよび右向きに動いているものとして表されている。他のスケール変換も考えられる。
【0064】
[0080] 合成アフィン変換は、前述のアフィン変換のうちの2つ以上、すなわち、並進(群)と、回転(群)と、鏡映(群)と、横ずれ変換(群)と、スケール変換(群)との合成を含む。例示的な合成変換560は、変換後の(最終)状態562の変換後の四角形564として表された位置に達するように、およそ0.75という倍率による初期状態四角形の一様なスケール変換と、拡大縮小後の四角形を右向きに1単位だけ動かす並進とを含む。変換後の状態562の廊下は、変換後の四角形564の垂直方向における中間点の下向き移動に合わせるために上向きおよび右向きに動いているものとして表されている。
【0065】
[0081]
図5Cは、例示的な実施形態による、シナリオ200におけるそれぞれの移動領域438、444、450に対し推定された剛体変換570、580、590を描く。シナリオ200では、コンピューティング装置は、地
図310aおよび310b内のフィーチャーの座標に基づいてそれぞれの移動領域438、444、450に対するそれぞれの剛体変換570、580、590を判定する。異なる地図内のフィーチャーの座標の間の変換を判定するために、コンピューティング装置は、座標の行列の特異値分解を判定するアルゴリズム、および/または、固有システム計算と、反復閉合点(ICP)アルゴリズムと、2D座標および/または3D座標を位置合わせする剛体位置合わせアルゴリズムと、2D座標および/または3D座標を位置合わせするアフィン位置合わせアルゴリズムと、2Dまたは3D剛体推定アルゴリズムと、2Dまたは3Dアフィン推定アルゴリズムと、および/または、1つ以上の他のアルゴリズムとを利用し得る。
【0066】
[0082] これらのアルゴリズムのうちの多くは、2組の点の集合の間に1つ以上の変換を見つけようとする。たとえば、1組の3D点の集合は、地
図310aからのフィーチャーの座標M1,M2...M17の一部または全部となり、別の3D点の集合は、地
図310aからのフィーチャーの座標D1,D2...D17の一部または全部となり得る。
図5Cは、たとえば、剛体位置合わせまたは3D剛体推定アルゴリズムによって判定される通り、移動領域438、444、および450内の座標間の剛体変換の実施例を表している。
図5Cに表された剛体変換は、領域推定として示され、領域推定T1 570は、点が地
図310aからの座標M10およびM11と地
図310bからの座標D10およびD11とを含むとして、領域438内の点間の変換を推定する。領域推定T1 570に対して、D
1=[D10 D11]かつM
1=[M10 M11]とする。このとき、D
1は、R
1が回転変換を表現する回転行列であり、T
1が並進ベクトルを表現する並進ベクトルであり、N
1が雑音ベクトルであるとして、D
1=R
1M
1+T
1+N
1として推定することができ、N
1=0である場合、領域推定T1 570は、無雑音推定と呼ぶことができる。
【0067】
[0083] 同様に、領域推定T2 580は、点が地
図310aからの座標M12およびM13と地
図310bからの座標D12およびD13を含むとして、領域444内の点間の変換を推定する。領域推定T2 580に対して、D
2=[D12 D13]かつM
2=[M12 M13]とする。このとき、D
2は、R
2が回転行列であり、T
2が並進ベクトルであり、N
2が雑音ベクトルであるとして、D
2=R
2M
2+T
2+N
2として推定することができる。さらに、領域推定T3 590は、点が地
図310aからの座標M14、M15、M16、およびM17と、地
図310bからの座標D14、D15、D16、およびD17とを含むとして、領域450内の点間の変換を推定する。領域推定T3 590に対して、D
3=[D14 D15 D16 D17]かつM
3=[M14 M15 M16 M17]とする。その結果、D
3は、R
3が回転行列であり、T
3が並進ベクトルであり、N
3が雑音ベクトルであるとして、D
3=R
3M
3+T
3+N
3として推定することができる。一部のシナリオでは、1つの推定が複数の領域に適用され得る。他のシナリオでは、移動領域内の点の変換(または点の位置合わせ)に対する他の推定、たとえば、アフィン変換に基づく推定、他の位置合わせ/点推定手法に基づく推定を使用することができる。
【0068】
[0084]
図6は、例示的な実施形態による、シナリオ200の第2の地図へのセマンティックラベルの割り当てを描いている。シナリオ200は、コンピューティング装置がセマンティックラベルを第2の地図、たとえば、地
図310bに設置することを続行する。第1の地図、たとえば、地
図310aと第2の地図との間で固定(不変/不動)領域に対し、コンピューティング装置は、固定領域と固定領域との間にあるセマンティックラベルが第1の地図内のセマンティックラベルのため使用された座標と同じ座標に第2の地図内で設置され得る、と判定することができる。
図6の上部は、固定領域および対応するセマンティックラベルが所定の位置にあるが、移動領域および対応するセマンティックラベルが未だ所定の位置にない第2の地図を表現する地
図610aを表している。地
図610aは、キャンプ場260bを表現する輪郭四角形および川262bの流れを有する第2の地図も表している。
【0069】
[0085] セマンティックラベルを固定領域内に設置する実施例のため、第1の地図のテント228aおよび第2の地図のテント228bのフィーチャーの座標は、変化しなかった、すなわち、テント228a(または228b)によって表現された領域は、固定領域である。従って、コンピューティング装置は、セマンティックラベル「ウルフ6〜9」が第1の地図のテント228a内の座標L7に設置されたように、セマンティックラベル「ウルフ6〜9」を地
図610aのテント228b内の座標L7に設置することができる。同様に、コンピューティング装置は、セマンティックラベル「ウルフ10〜12」がテント228aの座標L8に設置されたように、地
図610aのテント228b内の座標L8にセマンティックラベル「ウルフ10〜12」を設置することができる。
【0070】
[0086] その上、たとえば、セマンティックラベル「スケーリング壁」などの領域に関連付けられていないセマンティックラベルは、第1のマップ内で使用された座標と同じ第2の地図内の座標に設置され得る。第2のシナリオでは、セマンティックラベル「スケーリング壁」は、地
図610aに表された通り、第2の地図内の座標L12に設置される。他のシナリオでは、1つ以上の関連付けられていないセマンティックラベルは、第2の地図から省くこと、または、1つ以上の関連付けられていないセマンティックラベルを同じ座標に設置することがこれらの他のシナリオにおいて第2の地図に対して実行不可能である場合、第2の地図に手動で設置することが可能である。
【0071】
[0087] 第1の地図と第2の地図との間の移動領域に対して、コンピューティング装置は、第2の地図内の対応するセマンティックラベルに対する座標を判定するために、領域推定を第1の地図内のセマンティックラベルの座標に適用できる。たとえば、セマンティックラベル「リードウルフ」は、第1の地図のテント238aの座標L11にある。テント238aは、領域438の一部であり、この領域は、D
1が第2の地図内の1つ以上の点を表現し、M
1が第1の地図内の1つ以上の点を表現し、R
1、T
1、およびN
1が
図5Cに関連して前述された通りであるとき、D
1=R
1*M
1+T
1+N
1からなる対応する領域推定T1を有する。T1(L11)が第2の地図内の座標L11の領域推定である、すなわち、T1(L11)=R
1*L11+T
1+N
1であるとする。このとき、コンピューティング装置は、テント238b内の座標T1(L11)にセマンティックラベル「リードウルフ」を置くことができる。
【0072】
[0088]
図6の下部にある地
図610bは、移動領域および固定領域の両方と、対応するサマンティックラベルとを所定の位置に含んでいる第2の地図を表している。地
図610bは、コンピューティング装置が第2の地図のテント238bの内部の座標T1(L11)にセマンティックラベル「リードウルフ」を設置したことを表している。セマンティックラベル「リードホーク」を設置するために、コンピューティング装置は、セマンティックラベル「リードホーク」が移動領域444のテント244aの内部にある、と判定することができ、従って、領域444が対応する領域推定T2 580を有するので、テント238a内のセマンティックラベル「リードホーク」の座標L13は、T2(L13)が領域推定T2 580によって変換された通りのL13の座標を表現し、R
2、T
2、およびN
2が
図5Cに関連して前述された通りであるとき、T2(L13)=R
2*L13+T
2+N
2に対応する、と判定することができる。
【0073】
[0089] シナリオ200では、テント244aは、テント244bの位置に達するように、反時計回りにおよそ90度回転させられた。地
図610bは、セマンティックラベルが1点または座標L13の集合だけに関連付けられているので、回転されているままの「リードホーク」に対するセマンティックラベルを表していない。他のシナリオでは、セマンティックラベルは、複数の点/座標の集合に関連付けることができ、たとえば、四角形状のセマンティックラベルに対して、たとえば、セマンティックラベルの左上側隅に対する座標の第1の点/座標の集合、および、セマンティックラベルの右下側隅に対する第2の点/座標の集合などの2点を利用することができる。従って、移動領域が回転させられた場合、移動領域に適用できる対応する変換も同様に移動領域内のセマンティックラベルの点/座標の集合を回転させ、その結果、移動領域の回転に合わせてセマンティックラベルの回転を生じさせるべきである。
【0074】
[0090] テント250bの内部にセマンティックラベルを設置するために、コンピューティング装置は、テント250bが移動領域450の内部にある、および、領域450が対応する領域推定T3 590を有するので、テント250aのセマンティック領域の座標L14、L15、L16、およびL17は、テント250bに対する関連座標の領域推定T3 590による変換に対応するものである、と判定することができる。テント250a内の座標L14を有するセマンティックラベル「水上スポーツ」に対して、テント250b内のセマンティックラベル「水上スポーツ」に対する対応する座標は、T3(L14)であり、但し、T3(L14)が領域推定R3 590によって変換された通りのL14の座標を表現し、R
3、T
3、およびN
3は、
図5Cに関連して前述された通りであるとき、T3(L14)=R
3*L14+T
3+N
3である。その上、テント250a内のそれぞれの座標L15、L16、およびL17を有するそれぞれのセマンティックラベル「陸上スポーツ」、「アーツ」、および「キャンプ用品」に対して、テント250b内のそれぞれのセマンティックラベル「陸上スポーツ」、「アート」、および「キャンプ用品」に対する対応する座標は、それぞれ、T3(L15)、T3(L16)、およびT3(L17)であり、但し、T3(L15)、T3(L16)、およびT3(L17)が、領域R3 590によってそれぞれ変換された通りのL15、L16、およびL17の座標をそれぞれ表現し、R
3、T
3、およびN
3が
図5Cに関連して前述された通りであるとき、T3(L15)=R
3*L15+T
3+N
3、T3(L16)=R
3*L16+T
3+N
3、T3(L17)=R
3*L17+T
3+N
3である。
【0075】
[0091] コンピューティング装置が構造物およびセマンティックラベルの全部を地
図610bに設置した時点で、シナリオ200を終わらせることができる。一部の実施形態では、コンピューティング装置は、地
図610b(またはシナリオ200の他の地図(群))を出力および/または保存すること、たとえば、地
図610bを表示し、地
図610bを印刷し、地
図610bを伝送することができる。他の実施形態では、コンピューティング装置は、たとえば、コンピューティング装置(群)/ロボット装置(群)が地
図610bによって地図化された環境を走行できるようにするために、コンピューティング装置(群)/ロボット(群)が地
図610bによって地図化された環境の内部のフィーチャー、物体、および位置を測位、取得、地図化、操作、および/またはそうでなければ相互作用するのを支援するために、1台以上のコンピューティング装置/ロボット装置が使用するための地
図610bを提供することができる。特定の実施形態では、コンピューティング装置は、1台以上のコンピューティング装置/ロボット装置のうちのロボットとなり得る。
【0076】
[0092]例示的なロボット装置
前述のシナリオ100および/または200に関連した実施形態を含む例示的な実施形態は、倉庫環境の内部に配備されたロボット部隊に関与することがある。より具体的には、固定コンポーネントおよび移動コンポーネントの組み合わせがボックス、荷物、またはその他の種類の物体の自動処理を容易にするために環境の内部に配備されることがある。例示的なシステムは、たとえば、貯蔵コンテナへの、配送車両との間のボックスおよび/またはその他の物体の自動積み降ろしに関与することがある。一部の例示的な実施形態では、ボックスまたは物体は、自動的に整頓され、パレットに置かれることがある。実施例の範囲内で、トランクに積み降ろしする作業、および/または、倉庫の内部に貯蔵しやすくするため、および/または、倉庫との間の運搬のため物体からパレットを作成する作業の自動化は、ある程度の数の産業上およびビジネス上の利点をもたらすことがある。
【0077】
[0093] 様々な実施形態によれば、倉庫での配送トラックへの積み降ろしの作業、および/または、パレットを作成する作業の自動化は、物体を移動させる、または、他の機能を実行するために1台以上の異なる種類のロボット装置の配備を含み得る。一部の実施形態では、ロボット装置の一部は、車輪付きの台座、ホロノミックな台座(たとえば、どの方向へも移動できる台座)、または、天井、壁、もしくは床上のレールと連結することにより移動型にすることができる。さらなる実施形態では、ロボット装置の一部は、環境の内部に固定されることもある。たとえば、ロボットマニピュレータは、倉庫の内部の様々な選択された位置にある上昇した台座に配置することができる。
【0078】
[0094] 本文書において使用される通り、用語「倉庫」は、ボックスまたは物体がロボット装置によって操作され、処理され、および/または貯蔵される何らかの物理的環境を指すことがある。一部の実施例では、倉庫は、たとえば、物体のパレットを貯蔵するパレットラックなどのある種の固定コンポーネントを追加的に収容している単独の物理的建物または構造物でもよい。他の実施例では、一部の固定コンポーネントが物体の処理前または処理中に環境の内部に据え付けられる、またはそうでなければ配置されることがある。さらなる実施例では、倉庫は、複数の別個の物理的構造物を含むことがあり、および/または、物理的構造物によって占められていない物理的空間も含むことがある。
【0079】
[0095] さらに、用語「ボックス」は、パレットに置くこと、または、トラックもしくはコンテナに積み降ろしすることができる何らかの物体または物品を指すことがある。たとえば、直方体に加えて、「ボックス」は、缶、ドラム缶、タイヤまたはその他の「単純な」形をした幾何学的物品を指すことが可能である。その上、「ボックス」は、運搬または貯蔵のため1つ以上の物品を収容することがある手提げ袋、瓶、またはその他の種類の容器を指すことがある。たとえば、プラスチック製貯蔵手提げ袋、ガラス繊維製トレイ、または鋼製瓶は、倉庫の内部でロボットによって移動させられる、または、そうでなければ操作されることがある。本文書における実施例は、ボックス以外の物体にも、様々なサイズおよび形の物体にも適用されることもある。その上、「積み込み」および「荷下ろし」は、それぞれ、他方を意味するために使用され得る。たとえば、実施例がトラックに積み込む方法について説明する場合、実質的に同じ方法がトラックから荷下ろしするためにも使用できることが理解されるべきである。本文書において使用された通り、「パレットに載せる」は、ボックスをパレットに積み込み、パレット上のボックスがパレットに載ったまま貯蔵または運搬され得るようにボックスを積み重ねるもしくは配置することを指す。加えて、用語「パレットに載せる」および「パレットから降ろす」は、それぞれ、他方を意味するために使用され得る。
【0080】
[0096] 実施例の範囲内で、異種倉庫ロボット部隊は、ある程度の数の異なる用途のため使用されることがある。1つの考えられる用途は、ケースが開けられ、ケースからの個々の物品が個々の注文を満たすためにボックスの内部に梱包される(たとえば、個々の顧客のための)受注処理を含む。別の考えられる用途は、(たとえば、店舗または他の倉庫への)割り振りを含み、この用途では、店舗へ出荷すべき様々な種類の製品のグループを含んでいる混合パレットが構成されることがある。さらなる考えられる用途は、何も貯蔵することなしに出荷用コンテナ間の運搬に関与するクロスドッキングを含む(たとえば、物品は、4台の40フィート型トレーラーから移され、3台の軽量型トラクタートレーラーに積み込まれることがあり、さらにパレット化されることもあり得る)。多数の他の用途も考えられる。
【0081】
[0097]
図7Aは、例示的な実施形態による、倉庫環境の内部のロボット部隊を描いている。より具体的には、様々な種類のロボット装置が倉庫環境の内部の物品、物体、またはボックスの処理に関連したタスクを行うために協力するように制御されることがある異種ロボット部隊700を形成することがある。異なるロボット装置のある一定の例示的な種類および台数は、ここでは、例示の目的のため表されているが、ロボット部隊700は、より多数またはより少数のロボット装置を利用することがあり、ここに表されたある一定の種類を省くことがあり、明確に表されていない他の種類のロボット装置を含むこともある。その上、倉庫環境は、ここでは、ある一定の種類の固定コンポーネントおよび構造物を使って表されているが、その他の種類、個数、および配置の固定コンポーネントおよび構造物が他の実施例において使用されることもある。
【0082】
[0098] ロボット部隊700の内部に表された1つの例示的な種類のロボット装置は、倉庫の内部である場所から別の場所に個々の荷物、ケース、または手提げ袋を運搬する機能を果たすことがある相対的に小型の車輪付き移動装置でもよい無人搬送車(AGV)712である。別の例示的な種類のロボット装置は、無人フォークトラック714、すなわち、ボックスのパレットを運搬するおよび/またはボックスのパレットを持ち上げるために(たとえば、パレットを貯蔵用ラックに載せるために)使用されることがあるフォークリフト付き移動装置である。さらなる例示的な種類のロボット装置は、ロボットトラック積み込み装置/荷下ろし装置716、すなわち、ロボットマニピュレータ、および、トラックもしくは他の車両へのボックスの積み込み/荷下ろしを容易にするための光学センサなどの他のコンポーネントが付いている移動装置である。たとえば、ロボットトラック積み降ろし装置716は、ボックスを倉庫に隣接して駐車されることがある配送トラック718に積み込むために使用されることがある。一部の実施例では、(たとえば、荷物を別の倉庫へ配送するための)配送トラック718の移動は、ロボット部隊の内部のロボット装置と連動させられることもある。
【0083】
[0099] ここで例示されていない他の種類の移動装置が併せて、または、代わりに組み込まれることもある。一部の実施例では、1台以上のロボット装置は、地面に接した車輪以外に異なる運搬モードを使用することがある。たとえば、1台以上のロボット装置は、飛行部隊(たとえば、クワッドコプタ)でもよく、たとえば、物体の移動または環境のセンサデータの収集などのタスクのため使用されることがある。
【0084】
[0100] さらなる実施例では、ロボット部隊700は、倉庫の内部に配置されることがある様々な固定コンポーネントも含むことがある。一部の実施例では、1台以上の固定ロボット装置がボックスを移動させる、または、そうでなければ処理するために使用されることがある。たとえば、台座ロボット722は、倉庫の内部の1階に固定された台座上に持ち上げられたロボットアームを含むことがある。台座ロボット722は、他のロボットとの間でボックスを割り振るために、および/または、ボックスのパレットを積み重ね、そして、取り出すために制御されることがある。たとえば、台座ロボット722は、隣接するパレット740からボックスを持ち上げて移動させ、ボックスを倉庫の内部の他の場所への運搬のため個々のAGV 712に割り振る。
【0085】
[0101] さらなる実施例では、ロボット部隊700は、倉庫空間の内部に配置されたさらなる固定コンポーネントを利用することがある。たとえば、高密度貯蔵ラック724が倉庫内部にパレットおよび/または物体を貯蔵するために使用されることがある。貯蔵ラック724は、無人フォークトラック714などのロボット部隊の中の1台以上のロボット装置との相互作用を容易にするために設計され、配置されることがある。さらなる実施例では、ある一定の地上空間が、併せてまたは代わりに、パレットまたはボックスの貯蔵のため選択され、使用されることがある。たとえば、パレット730は、パレットがロボット装置のうちの1台以上によって持ち上げられ、割り振られる、またはそうでなければ処理されるようにするために、ある一定の時間に選択された場所で倉庫環境の内部に配置されることがある。
【0086】
[0102]
図7Bは、例示的な実施形態による、ロボット倉庫部隊700のコンポーネントを例として説明する機能ブロック図である。ロボット部隊700は、たとえば、AGV 712、無人フォークリフト714、ロボットトラック積み込み/荷下ろし装置716、および配送トラック718などの様々な移動コンポーネントのうちの1台以上を含むことがあり得る。ロボット部隊700は、たとえば、台座ロボット722、密集貯蔵コンテナ724、およびバッテリ交換/充電ステーション726などの倉庫の内部またはその他の環境に配置された1台以上の固定コンポーネントをさらに含むことがある。さらなる実施例では、
図7Bの中に例示されたものとは異なる台数および種類のコンポーネントが部隊の内部に組み込まれることがあり、ある一定の種類は省かれることがあり、さらなる機能および/または物理的コンポーネントが
図7Aおよび
図7Bに例示された実施例に追加されることもある。別個のコンポーネントのアクションを連動させるために、リモートクラウドベースサーバシステムなどの包括的制御システム750がシステムコンポーネントの一部もしくは全部、および/または、個々のコンポーネントの別個のローカル制御システムと(たとえば、無線通信を介して)通信することがある。
【0087】
[0103] 実施例の範囲内で、固定コンポーネント720のうちのいくつかは、ロボット部隊700の残りの部分の配備に先立って据え付けられることがある。一部の実施例では、1台以上の移動ロボットが、たとえば、台座ロボット722またはバッテリ交換ステーション726などのある一定の固定コンポーネント720の配置を判定する前に空間の地図を作成するために運び込まれることがある。地図情報が利用できるようになると、システムは、(たとえば、シミュレーションを動かすことによって)利用可能な空間の内部に固定コンポーネントをどのようにレイアウトするかを決定することがある。ある一定の事例では、レイアウトは、必要な固定コンポーネントの台数および/またはこれらのコンポーネントによって使用される空間容量を最小限に抑えるように選ばれることがある。固定コンポーネント720および移動コンポーネント710は、別々の段階で、または、全部一度に配備されることがある。さらなる実施例では、移動コンポーネント710のうちのいくつかは、特定の期間中に限り、または、特定のタスクを完了するためだけに運び込まれることがある。
【0088】
[0104] 一部の実施例では、包括的制御システム750は、部隊700の内部の異なるロボット装置にタスクを割り当てる中央計画システムを含むことがある。中央計画システムは、どの装置がどのタスクをいつの時点に完了するかを判定するために様々なスケジューリングアルゴリズムを採用することがある。たとえば、個々のロボットが異なるタスクに入札するオークション型システムが使用されることがあり、中央計画システムは、全体的なコストを最小限に抑えるためにタスクをロボットに割り当てることがある。別の実施例では、中央計画システムは、たとえば、時間、空間、またはエネルギー利用などの1つ以上の種々の資源の全域で最適化することがある。さらなる実施例では、計画またはスケジューリングシステムは、ボックスピッキング、包装、または貯蔵の特定の幾何特性および物理特性の態様も組み込むことがある。
【0089】
[0105] 計画制御は、個々のシステムコンポーネントの全域に割り振られることもある。たとえば、包括的制御システム750は、包括的システム計画に従って命令を発行することがあり、個々のシステムコンポーネントは、別個の局所的計画に従って動作することもある。その上、様々なレベルの細部が包括的計画の内部に組み込まれ、他の態様は、個々のロボット装置が局所的に計画するために残されることがある。たとえば、移動ロボット装置は、包括的プランナによって目的地を割り当てられることがあるが、これらの目的地に到達するための経路全部は、局所的に計画され、または、修正されることがある。
【0090】
[0106] さらなる実施例では、中央計画システムは、ロボット部隊700の内部のロボットの機能を連動させるために個々のロボット装置上の局所視覚と併せて使用されることがある。たとえば、中央計画システムは、ロボットが進む必要がある場所にロボットを比較的近付けるために使用されることがある。しかしながら、中央計画システムがロボットにミリメートル精度で命令することは、ロボットがレールにボルトで留められるか、または、他の被測定コンポーネントがロボット位置を精密に制御するために使用されない限り難しいことがある。個々のロボット装置に対する局所視覚および計画は、その結果、異なるロボット装置の間の融通性を可能にするために使用されることがある。全体的プランナは、ロボットを目的地に近付けるために使用されることがあり、この場所でロボットの局所視覚が引き継ぐことがある。一部の実施例では、ほとんどのロボット機能は、ロボットを目的地に比較的近付けるために位置制御されることがあり、その後、視覚およびハンドシェイクが局所制御のため必要に応じて使用されることがある。
【0091】
[0107] さらなる実施例では、視覚的ハンドシェイクは、2台のロボットがARタグまたは他の特性を用いて互いを識別し、部隊700の内部で共同作業を行えるようにする。さらなる実施例では、物品(たとえば、出荷されるべき荷物)は、併せてまたは代わりに、視覚タグが設けられることがあり、この視覚タグは、局所視覚制御を使用して物品に作業を行うためにロボット装置によって使用されることがある。具体的には、タグは、ロボット装置による物品の操作を容易にするために使用されることがある。たとえば、パレット上の特定の位置に付けられた1つ以上のタグは、どこでまたはどのようにパレットを持ち上げるかをフォークリフトに知らせるために使用されることがある。
【0092】
[0108] さらなる実施例では、固定および/または移動コンポーネントに対する配備および/または計画戦略は、時間をかけて最適化されることがある。たとえば、クラウドベースサーバシステムは、部隊の内部の個々のロボットからおよび/または外部源からデータおよび情報を組み込むことがある。戦略は、その結果、部隊がより小さい空間、より短い時間、より少ない電力、より少ない電気を使用できるように、または、他の変数の全域にわたって最適化できるように時間をかけて改良されることがある。一部の実施例では、最適化は、場合によっては、ロボット部隊を含む他の倉庫および/または従来型の倉庫を含んでいる複数の倉庫に及ぶことがある。たとえば、包括的制御システム750は、配送車両および設備間の輸送時間に関する情報を中央計画に組み込むことがある。
【0093】
[0109] 一部の実施例では、中央計画システムは、たとえば、ロボットが立ち往生したとき、または、荷物がある場所に落とされ、どこかに紛失したときなどに、時には失敗することがある。局所ロボット視覚は、それ故に、中央プランナが失敗した事例を取り扱うために冗長性を盛り込むことによりロバスト性を提供する。たとえば、自動パレットジャッキが通過し、物体を識別したとき、パレットジャッキは、情報をリモートクラウドベースサーバシステムに送り込むことがある。このような情報は、中央計画におけるエラーを修復する、ロボット装置を測位するのに役立てる、または、紛失した物体を識別するために使用されることがある。
【0094】
[0110] さらなる実施例では、中央計画システムは、ロボット部隊700とロボット装置による処理を受ける物体とを収容している物理的環境の地図を動的に更新することがある。一部の実施例では、地図は、動的物体(たとえば、移動中のロボット、およびロボットによって動かされた荷物)に関する情報を用いて継続的に更新されることがある。さらなる実施例では、動的地図は、倉庫の内部の(または複数の倉庫の全域にわたる)コンポーネントの現在の構成および配置の両方についての情報に加えて、近いうちに何が予想されるかに関する情報を含むことがあり得る。たとえば、地図は、ロボット間で活動を連動させるために使用されることがある移動中のロボットの現在の位置および将来におけるロボットの予想位置を表すことがあり得る。処理を受ける物品の現在の位置に加えて物品の予想される将来位置(たとえば、現在および物品が出荷されることが予想されるときに物品がある場所)を表すこともあり得る。
【0095】
[0111] さらなる実施例では、ロボットの一部または全部は、作業の中の異なる時点に物体上のラベルをスキャンすることがある。スキャンは、コンポーネントおよび物品の発見または追跡を容易にするために、個々のコンポーネントまたは特定の物品に貼り付けられることがある視覚タグを探すために使用されることがある。このスキャンは、物品がロボットによって操作される、または、運搬されているときに絶えず動き回っている物品の痕跡を生じさせることがある。潜在的利益は、供給者側と消費者側の両方に分かり易さが追加されることである。供給者側で、在庫の現在の位置に関する情報が過剰在庫を回避するために、および/または、需要を予想して物品もしくは物品のパレットを異なる位置もしくは倉庫に移動させるために使用されることがある。消費者側で、特定の物品の現在の位置に関する情報は、特定の荷物が配送されるときを向上した精度で判定するために使用されることがある。
【0096】
[0112] 一部の実施例では、ロボット部隊700の内部の移動コンポーネント710の一部または全部は、複数のバッテリ充電器を備えたバッテリ交換ステーション726から充電済みバッテリを定期的に受け取ることがある。具体的には、ステーション726は、移動ロボットの旧バッテリを充電済みバッテリと交換することがあり、このことは、ロボットが止まり、バッテリが充電するのを待機する必要性をなくすことがある。バッテリ交換ステーション726は、たとえば、ロボットアームなどのロボットマニピュレータを備えることがある。ロボットマニピュレータは、個々の移動ロボットからバッテリを取り外し、バッテリを利用可能なバッテリ充電器に取り付けることがある。ロボットマニピュレータは、次に、取り外されたバッテリを交換するために、ステーション726に位置している充電済みバッテリを移動ロボットに移す。たとえば、バッテリが消耗しているAGV 712は、ロボットアームがAGV 712からバッテリを取り出し、バッテリを充電器に差し込み、AGV 712に新しいバッテリを与えるバッテリ交換ステーション726へ移動するように制御されることがある。
【0097】
[0113] さらなる実施例では、バッテリ交換は、中央計画システムによって予定を立てられることがある。たとえば、個々の移動ロボットは、これらのバッテリ充電状態を監視するように構成されることがある。ロボットは、これらのバッテリの状態を示す情報を中央計画システムに定期的に送信することがある。この情報は、次に、必要に応じて、または、都合に応じて、部隊内部の個々のロボットのためのバッテリ交換を予定に入れるために中央計画システムによって使用されることがある。
【0098】
[0114] 一部の実施例では、部隊700は、様々な種類のバッテリを使用するある程度の数の様々な種類の移動コンポーネント710を含むことがある。バッテリ交換ステーション726は、それ故に、様々な種類のバッテリおよび/または移動ロボットのための様々な種類のバッテリ充電器を備えることがある。バッテリ交換ステーション726は、様々な種類のロボットのためバッテリを交換することができるロボットマニピュレータも備えることがある。一部の実施例では、移動ロボットは、複数のバッテリを収容するバッテリコンテナを有することがある。たとえば、パレットジャッキなどの無人フォークトラック714は、3台もしくは4台のバッテリ付きの鋼製バケツを有することがある。ステーション726にあるロボットアームは、バッテリのバケツ全体を取り出し、個々のバッテリをステーション726の棚に載っているバッテリ充電器に取り付けるように構成されることがある。ロボットアームは、その結果、旧バッテリを置き換えるために充電済みバッテリを見つけ、バケツをパレットジャッキに再び差し込む前にこれらのバッテリをバケツに戻すことがある。
【0099】
[0115] さらなる実施例では、包括的制御システム750および/またはバッテリ交換ステーション726の別個の制御システムは、バッテリ管理戦略を自動化することもある。たとえば、各バッテリは、システムが個々のバッテリを識別できるようにバーコードまたはその他の識別用マークを有することがある。バッテリ交換ステーション726の制御システムは、(たとえば、水または空のバッテリを完全に交換すべきときを判定するために)個々のバッテリが充電された回数を計数することがある。制御システムは、どのロボット装置内でどのバッテリが時間を経過したか、過去にステーション726においてバッテリを充電するためにどのくらい時間を要したか、および効率的なバッテリ管理のため関連性のあるその他の特性を追跡することもある。このバッテリ使用情報は、ロボットマニピュレータが特定の移動ロボットに与えるバッテリを選択するために制御システムによって使用されることがある。
【0100】
[0116] さらなる実施例では、バッテリ交換ステーション726は、一部の事例では、人間オペレータに関与することもある。たとえば、ステーション726は、人が手動によるバッテリ交換を安全に行うことができる、または、必要に応じて部隊700への配備のため新しいバッテリをステーションに届けることができる道具を含むことがあり得る。
【0101】
[0117]
図8A〜8Dは、ロボット倉庫部隊の内部に組み込まれることがあるロボット装置のいくつかの実施例を例として説明する。ここで例として説明されたロボット装置とは形に違いがあるその他のロボット装置が他の種類のロボット装置と共に組み込まれることもある。
【0102】
[0118]
図8Aは、例示的な実施形態による、ロボットトラック積み降ろし装置を例として説明する。一部の実施例では、ロボットトラック積み降ろし装置は、1台以上のセンサと、1台以上のコンピュータと、1台以上のロボットアームとを含むことがある。センサは、視覚データおよび/または3次元(3D)奥行き情報を取り込むために1つ以上の物体を含んでいる環境をスキャンすることがある。スキャンからのデータは、次に、デジタル環境再構成を行うためにより広いエリアの表現に統合されることがある。追加の実施例では、再構成された環境は、その結果、持ち上げるべき物体を識別するため、物体のピック位置を判定するため、および/または、1台以上のロボットアームおよび/または移動台座のための衝突のない軌道を計画するため使用されることがある。
【0103】
[0119] ロボットトラック積み降ろし装置800は、環境内部の物体を把持する把持コンポーネント804付きのロボットアーム802を含むことがある。ロボットアーム802は、トラックまたはその他のコンテナに積み降ろしをするために、ボックスを持ち上げて置く把持コンポーネント804を使用することがある。トラック積み降ろし装置800は、移動用の車輪814付きの移動カート812を含むこともある。車輪814は、カート812が2段階の自由度で移動することができるようにするホロノミックな車輪でもよい。その上、巻き付け型フロントコンベヤベルト810は、ホロノミックなカート812に組み込まれることがある。一部の実施例では、巻き付け型フロントコンベヤベルトは、トラック積み降ろし装置800が把持装置804を回転させる必要なしにボックスをトラックコンテナもしくはパレットから荷下ろしする、または、トラックコンテナもしくはパレットに積み込むことができるようにする。
【0104】
[0120] さらなる実施例では、ロボットトラック積み降ろし装置800の検知システムは、ロボットアーム802に取り付けられた、たとえば、センサ806およびセンサ808などの1台以上のセンサを使用することがあり、これらのセンサは、ロボットアーム802が移動しているときに環境に関する情報を検出する2次元(2D)センサおよび/または3次元奥行きセンサでもよい。検知システムは、ボックスを効率的に掴み、動かすために制御システム(たとえば、移動計画ソフトウェアを動かすコンピューティング装置)によって使用され得る環境に関する情報を判定することがある。制御システムは、装置に位置することがあり得る、または、装置とリモート通信していることがあり得る。さらなる実施例では、移動台座に固定式マウント付きの、たとえば、前方走行センサ816および後方走行センサ818などの1台以上の2Dまたは3Dセンサと、たとえば、センサ806およびセンサ808などのロボットアームに搭載された1台以上のセンサとからのスキャン結果は、側面、床、天井、および/またはトラックもしくはその他のコンテナの前方壁などの環境のデジタルモデルを構築するために統合されることがある。この情報を使用して、制御システムは、移動台座を荷下ろしもしくは積み込みのための位置に誘導することがある。
【0105】
[0121] さらなる実施例では、ロボットアーム802は、たとえば、デジタル吸引グリッド型把持装置などの把持装置804を備えることがある。このような実施形態では、把持装置は、リモートセンシング、もしくは、一点距離測定によって、および/または、吸引が達成されたか否かを判定することによって、オンまたはオフに切り替えることができる1つ以上の吸引バルブを含むことがある。さらなる実施例では、デジタル吸引グリッド把持装置は、関節型延長部を含むことがある。一部の実施形態では、レオロジー流体または粉末を用いて吸引把持装置を作動させる可能性は、高い曲率を持つ物体の追加の把持を可能にすることがある。
【0106】
[0122] トラック積み降ろし装置800は、電力で動く電気モータでもよい、または、たとえば、ガスベースの燃料もしくは太陽光発電などのある程度の数の異なるエネルギー源によって動かされてもよいモータをさらに含むことがある。その上、モータは、電源から電力を受け取るように構成されることがある。電源は、ロボットシステムの様々なコンポーネントに給電することがあり、たとえば、充電式リチウムイオンまたは鉛酸バッテリを表すことがあり得る。例示的な実施形態では、このようなバッテリの1つ以上のバンクは、電力を供給するように構成されることがあり得る。その他の電源材料および種類も考えられる。
【0107】
[0123]
図8Bは、例示的な実施形態による、台座に載せられたロボットアームを例として説明する。より具体的には、台座ロボット820は、倉庫環境などの環境内部に配置され、届く範囲内の物体を持ち上げる、動かす、および/またはそうでなければ操作することがある。一部の実施例では、台座ロボット820は、動作させるためにバッテリを必要とすることなしに重労働に特化されることがある。台座ロボット820は、ロボットトラック積み降ろし装置800に関連して説明されたロボットマニピュレータ802および把持装置804と同じ種類であり得るエンドエフェクタ搭載型把持装置824付きのロボットアーム822を含むことがある。ロボットアーム822は、たとえば、異なる移動ロボットの間で荷物を振り分けるなどのために、ロボットアーム822が隣接する荷物を容易に持ち上げ、動かすことができるようにする台座826に搭載されることがある。一部の実施例では、ロボットアーム822は、ボックスのパレットを積むおよび/または降ろすためにも動作可能である。さらなる実施例では、台座826は、制御システムがロボットアーム822の高さを変えることができるようにするためにアクチュエータを含むことがある。
【0108】
[0124] さらなる実施例では、台座ロボット820の下面は、パレット形の構造物でもよい。たとえば、下面は、倉庫内部での物体運搬または貯蔵のため使用される他のパレットとおおよそ同等である寸法および形状を有することがある。台座ロボット820の下面をパレットとして成形することにより、台座ロボット820は、パレットジャッキまたは異なる種類の無人フォークトラックによって、持ち上げられ、倉庫環境内部の異なる位置へ動かされることがある。たとえば、配送トラックが倉庫の特定のドッキングポートに到着したとき、台座ロボット820は、配送トラックとの間で行き来するボックスをより効率的に処理するために、持ち上げられ、より配送トラックに近い位置へ動かされることがある。
【0109】
[0125] さらなる実施例では、台座ロボット820は、台座ロボット820の近くの範囲にあるボックスおよび/または他のロボット装置を識別するために1台以上の視覚センサをさらに含むことがある。たとえば、台座ロボット820の制御システムまたは包括的制御システムは、台座ロボット820のロボットアーム822および把持装置824が持ち上げるまたは操作するボックスを識別するために、台座ロボット820上のセンサからのセンサデータを使用することがある。さらなる実施例では、センサデータは、個々のボックスを割り振るべき場所を判定するため移動ロボット装置を識別するためにも使用されることがある。他の種類のロボットのような固定マニピュレーションステーションも同様に異種ロボット部隊の内部で用いられることがある。
【0110】
[0126]
図8Cは、例示的実施形態による、無人搬送車(AGV)を表している。より具体的には、AGV 840は、個々のボックスまたはケースを運搬する能力がある相対的に小型の移動ロボット装置でもよい。AGV 840は、倉庫環境内部での移動を可能にするために車輪842を含むことがある。その上、AGV 840の上面844は、運搬されるボックスまたはその他の物体を置くために使用されることがある。一部の実施例では、上面844は、物体をAGV 840との間で移動させるために回転コンベヤを含むことがある。さらなる実施例では、AGV 840は、バッテリ充電ステーションで急速充電され得る、および/または、バッテリ交換ステーションで新しいバッテリと交換され得る1台以上のバッテリによって給電されることがある。さらなる実施例では、AGV 840は、ここでは具体的に特定されていない他のコンポーネント、たとえば、ナビゲーション用のセンサなどをさらに含むことがある。様々な形状およびサイズをもつAGVが、おそらく倉庫によって取り扱われる荷物の種類に依存して、ロボット倉庫部隊の内部に組み込まれることがある。
【0111】
[0127]
図8Dは、例示的な実施形態による、無人フォークトラックを表している。より具体的には、無人フォークトラック860は、ボックスのパレットまたは他のより大型の器具を持ち上げるおよび/または移動させるフォークリフト862を含むことがある。一部の実施例では、フォークリフト862は、倉庫内部の貯蔵ラックの中の種々のラック、または、他の固定貯蔵構造物に届くように上昇させられることがある。無人フォークトラック860は、倉庫内部でパレットを運搬するために移動用の車輪864をさらに含むことがある。さらなる実施例では、無人フォークトラックは、モータおよび電源に加えて、たとえば、ロボットトラック積み降ろし装置800に関連して説明された検知システムなどの検知システムを含むことがある。無人フォークトラック860は、
図8Dに例として説明されたものとサイズまたは形が異なることもある。
【0112】
[0128]コンピューティング装置アーキテクチャ
図9Aは、例示的な実施形態によるコンピューティング装置(たとえば、システム)のブロック図である。具体的には、
図9Aに表されたコンピューティング装置900は、シナリオ100のコンピューティング装置と、シナリオ200のコンピューティング装置と、ネットワーク914と、方法1000と、シナリオ100および200のうちの1つ以上の関連した1つ以上の機能とのうちの1つ以上の機能を実行するように構成することができる。コンピューティング装置900は、ユーザインターフェースモジュール901と、ネットワーク通信インターフェースモジュール902と、1台以上のプロセッサ903と、データストレージ904と、1台以上のセンサ920と、1台以上のアクチュエータ930とを含むことがあり、これらの全ては、システムバス、ネットワーク、または他の接続メカニズム905を介して互いに連結されることがある。
【0113】
[0129] ユーザインターフェースモジュール901は、外部ユーザ入力/出力装置との間でデータを送信および/または受信するために動作可能である。たとえば、ユーザインターフェースモジュール901は、キーボード、キーパッド、タッチスクリーン、コンピュータマウス、トラックボール、ジョイスティック、カメラ、音声認識モジュール、および/または、その他の同様の装置などとの間でデータを送信および/または受信するように構成することができる。ユーザインターフェースモジュール901は、たとえば、現在知られている、または、今後開発される1台以上の陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、デジタル光処理(DLP)技術を使用するディスプレイ、プリンタ、電球、および/または、その他の同様の装置などのユーザ表示装置に出力を提供するように構成することもできる。ユーザインターフェースモジュール901は、たとえば、スピーカ、スピーカジャック、オーディオ出力ポート、オーディオ出力装置、イヤホン、および/またはその他の同様の装置などのように、可聴出力(群)を生成するように構成することもできる。
【0114】
[0130] ネットワーク通信インターフェースモジュール902は、ネットワークを介して通信するように構成されている1つ以上の無線インターフェース907および/または1つ以上の有線インターフェース908を含み得る。無線インターフェース907は、1台以上の無線送信機と、受信機と、たとえば、Bluetooth送受信機、Zigbee送受信機、Wi−Fi送受信機、WiMAX送受信機、および/または、無線ネットワークを介して通信するように構成可能であるその他の同様の種類の無線送受信機などの送受信機とを含み得る。有線インターフェース908は、1台以上の有線送信機と、受信機と、および/または、たとえば、イーサネット送受信機、ユニバーサルシリアルバス(USB)送受信機、または、ツイストペア線、同軸ケーブル、光ファイバリンク、もしくは、有線ネットワークへの同様の物理的接続を介して通信するように構成可能である同様の送受信機などの送受信機とを含み得る。
【0115】
[0131] 一部の実施形態では、ネットワーク通信インターフェースモジュール902は、信頼性の高い、セキュアな、および/または認証された通信を提供するように構成することができる。本文書に記載された通信毎に、おそらくメッセージヘッダおよび/またはフッタの一部(たとえば、パケット/メッセージ優先順位付け情報、カプセル化ヘッダ(群)および/またはフッタ(群)、サイズ/時間情報、および、たとえば、CRCおよび/またはパリティチェック値などの伝送検証情報)として、信頼性の高い通信を保証する情報(すなわち、保証付きメッセージ配信)を提供することができる。通信は、たとえば、限定されることなく、DES、AES,RSA、ディヒー・ヘルマン、および/またはDSAなどの1つ以上の暗号プロトコルおよび/またはアルゴリズムを使用して、セキュアにする(たとえば、符号化もしくは暗号化する)こと、および/または、解読/復号化することができる。他の暗号プロトコルおよび/またはアルゴリズムも同様に、または、本文書に列挙されたものに加えて、通信をセキュアに(その上、解読/復号化)するために使用され得る。
【0116】
[0132] プロセッサ903は、1台以上の汎用プロセッサおよび/または1台以上の専用プロセッサ(たとえば、デジタル信号プロセッサ、グラフィックス処理ユニット、特定用途向け集積回路など)を含み得る。プロセッサ903は、データストレージ904に収容されているコンピュータ読み取り可能なプログラム命令906、および/または、本文書に記載された通りの他の命令を実行するように構成することができる。
【0117】
[0133] データストレージ904は、プロセッサ903のうちの少なくとも1台によって読み取るおよび/またはアクセスすることができる1つ以上のコンピュータ読み取り可能な記憶媒体を含み得る。1つ以上のコンピュータ読み取り可能な記憶媒体は、プロセッサ903のうちの少なくとも1台と全体的にまたは部分的に統合することができる揮発性および/または不揮発性ストレージコンポーネント、たとえば、光、磁気、有機もしくはその他のメモリ、またはディスクストレージなどを含み得る。一部の実施形態では、データストレージ904は、単一の物理的装置(たとえば、1つの光、磁気、有機もしくはその他のメモリ、またはディスクストレージユニット)を使用して実装され得るが、他の実施形態では、データストレージ904は、2台以上の物理的装置を使用して実装され得る。
【0118】
[0134] データストレージ904は、コンピュータ読み取り可能なプログラム命令906と、おそらく追加データとを含み得る。一部の実施形態では、データストレージ904は、方法および手法の少なくとも一部、および/または、装置およびネットワークの機能の少なくとも一部、たとえば、1つ以上のターゲット画像および/または1つ以上のバイナリ画像、ソースファイル(群)、ソース地図(群)、ターゲットファイル(群)、ターゲット地図(群)、転送(群)、転送リスト(群)、補助データ、グラフ(群)、および/または更新パッケージ(群)などの1つ以上の画像を実行するために必要とされるストレージをさらに含み得る。
【0119】
[0135] 一部の実施形態では、コンピューティング装置900は、1台以上のセンサを含み得る。センサ(群)920は、コンピューティング装置900のための環境の状況を測定し、環境に関するデータを提供するように構成することができる。一部の実施例では、センサ(群)920は、おそらくコンピューティング装置900の位置および/または移動を測定するために、ジャイロスコープと、加速度計と、ドップラーセンサと、ソナーセンサと、レーダー装置と、レーザー変位センサと、コンパスとのうちの1つ以上を含み得る。他の実施例では、センサ(群)920は、おそらくコンピューティング装置900の環境を示すデータを取得するために、赤外線センサ、光学センサ、光センサ、カメラ、バイオセンサ、容量センサ、タッチセンサ、温度センサ、無線センサ、電波センサ、音波センサ、および/または、煙センサのうちの1つ以上を含み得る。その上、センサ(群)920は、コンピューティング装置900の周囲に作用する力を測定するために、1台以上のセンサを含み得る。たとえば、センサ(群)920は、複数の次元で力(たとえば、慣性力および/または重力)を測定する1台以上のセンサを含み得る。さらに、センサ(群)920は、トルク、グラウンド力、摩擦、および/または、ZMPおよび/またはZMPの位置を識別するゼロモーメントポイント(ZMP)センサを測定する1台以上のセンサを含み得る。センサ(群)920のその他の実施例も考えられる。
【0120】
[0136] コンピューティング装置900は、コンピューティング装置900が移動を開始できるようにする1台以上のアクチュエータ930を含み得る。たとえば、アクチュエータ(群)930は、ロボット肢部をロボット本体に接続するロボット関節を含み得る、または、ロボット関節と合体され得る。たとえば、アクチュエータ(群)930は、ロボット脚部およびロボットアームをそれぞれロボット本体に接続するそれぞれのロボット股関節およびロボット肩関節を含み得る。さらに、アクチュエータ(群)930は、ロボット脚部のそれぞれの部分(たとえば、ロボット大腿部およびロボット脹ら脛部)を接続するそれぞれのロボット膝関節と、ロボットアームの部分(たとえば、ロボット前腕部および上腕部)を接続するロボット肘関節とを含み得る。さらに、アクチュエータ(群)930は、ロボット脚部をロボット足部に接続するそれぞれの足関節と、ロボットアームをロボットハンドに接続するそれぞれのロボット手首関節とを含み得る。その上、アクチュエータ(群)930は、ロボット脚部を動かすモータを含み得る。従って、アクチュエータ(群)930は、コンピューティング装置900の可動性を有効にする。アクチュエータ(群)930のその他の実施例も考えられる。
【0121】
[0137]クラウドベースサーバ
図9Bは、例示的な実施形態によるクラウドベースサーバシステムとして構成されたコンピューティングクラスタ909a、909b、909cのネットワーク914を描く。コンピューティングクラスタ909a、909b、909cは、クラウドベースアプリケーションおよび/またはサービスのプログラムロジックおよび/またはデータ、たとえば、シナリオ100、シナリオ200、および/または方法1000に関連して本文書に記載された機能性の一部または全部を記憶するクラウドベース装置となり得る。
【0122】
[0138] 一部の実施形態では、コンピューティングクラスタ909a、909b、909cは、単一のコンピューティングセンタに属する単一のコンピューティング装置となり得る。他の実施形態では、コンピューティングクラスタ909a、909b、909cは、単一のコンピューティングセンタの中に複数のコンピューティング装置、または、多様な地理的位置にある複数のコンピューティングセンタの中にある複数のコンピューティング装置を含み得る。たとえば、
図9Bは、異なる物理的位置に属するコンピューティングクラスタ909a、909b、909cのそれぞれを描く。
【0123】
[0139] 一部の実施形態では、コンピューティングクラスタ909a、909b、909cでのデータおよびサービスは、非一時的な有形のコンピュータ読み取り可能な媒体(またはコンピュータ読み取り可能な記憶媒体)に記憶され、他のコンピューティング装置よってアクセスできるコンピュータ読み取り可能な情報として符号化することができる。一部の実施形態では、コンピューティングクラスタ909a、909b、909cは、単一のディスクドライブまたは他の有形の記憶媒体に記憶することができ、または、1つ以上の多様な地理的位置にある複数のディスクドライブもしくは他の有形の記憶媒体上に実装することができる。
【0124】
[0140]
図9Bは、例示的な実施形態によるクラウドベースサーバシステムを描く。
図9Bでは、シナリオ200のコンピューティング装置の機能性は、3つのコンピューティングクラスタ909a、909b、および909cの間に分散させることができる。コンピューティングクラスタ909aは、ローカルクラスタネットワーク912aによって接続された1台以上のコンピューティング装置900aとクラスタストレージアレイ910aとクラスタルータ911aとを含み得る。同様に、コンピューティングクラスタ909bは、ローカルクラスタネットワーク912bによって接続された1台以上のコンピューティング装置900bとクラスタストレージアレイ910bとクラスタルータ911bとを含み得る。同様に、コンピューティングクラスタ909cは、ローカルクラスタネットワーク912cによって接続された1台以上のコンピューティング装置900cとクラスタストレージアレイ910cとクラスタルータ911cとを含み得る。
【0125】
[0141] 一部の実施形態では、コンピューティングクラスタ909a、909b、および909cのそれぞれは、同じ数のコンピューティング装置、同じ数のクラスタストレージアレイ、および同じ数のクラスタルータを有することがあり得る。しかしながら、他の実施形態では、各コンピューティングクラスタは、異なる数のコンピューティング装置、異なる数のクラスタストレージアレイ、および異なる数のクラスタルータを有することがあり得る。各コンピューティングクラスタ内のコンピューティング装置、クラスタストレージアレイ、およびクラスタルータの数は、各コンピューティングクラスタに割り当てられたコンピューティングタスクまたはタスク群に依存することがあり得る。
【0126】
[0142] コンピューティングクラスタ909aでは、たとえば、コンピューティング装置900aは、シナリオ200のコンピューティング装置の様々なコンピューティングタスクを実行するように構成することができる。一実施形態では、シナリオ200のコンピューティング装置の様々な機能性は、1台以上のコンピューティング装置900a、900b、および900cの間で分散させることができる。それぞれのコンピューティングクラスタ909bおよび909c内のコンピューティング装置900bおよび900cは、コンピューティングクラスタ909a内のコンピューティング装置900aと同様に構成することができる。一方で、一部の実施形態では、コンピューティング装置900a、900b、および900cは、異なる機能を実行するように構成することができる。
【0127】
[0143] 一部の実施形態では、シナリオ200のコンピューティング装置に関連付けられたコンピューティングタスクおよび記憶データは、シナリオ200のコンピューティング装置の処理要件と、コンピューティング装置900a、900b、および900cの処理能力と、各コンピューティングクラスタ内のコンピューティング装置の間、および、コンピューティングクラスタ自体の間のネットワークリンクのレイテンシと、および/または、システムアーキテクチャ全体のコスト、速度、耐故障性、復元性、効率性、および/またはその他の設計目標に寄与する他の要因と、に少なくとも部分的に基づいて、コンピューティング装置900a、900b、および900cの全域に分散させることができる。
【0128】
[0144] コンピューティングクラスタ909a、909b、および909cのクラスタストレージアレイ910a、910b、および910cは、ハードディスクドライブのグループへのリードアクセスおよびライトアクセスを管理するように構成されているディスクアレイコントローラを含むデータストレージアレイとなり得る。ディスクアレイコントローラは、単独で、または、これらのそれぞれのコンピューティング装置と併せて、1台以上のコンピューティング装置が1つ以上のクラスタストレージアレイにアクセスすることを妨げるディスクドライブもしくはその他のクラスタストレージアレイの故障、および/または、ネットワークの故障から保護するために、クラスタストレージアレイに記憶されたデータのバックアップおよび冗長な複製を管理するようにさらに構成することができる。
【0129】
[0145] シナリオ200のコンピューティング装置の機能がコンピューティングクラスタ909a、909b、および909cのコンピューティング装置900a、900b、および900cの全域に分散させられる方法と同様に、これらのコンポーネントの様々なアクティブ部分および/またはバックアップ部分は、クラスタストレージアレイ910a、910b、および910cの全域に分散させることができる。たとえば、一部のクラスタストレージアレイは、シナリオ200のコンピューティング装置のデータの一部分を記憶するように構成することができるが、他のクラスタストレージアレイは、シナリオ200のコンピューティング装置のデータの他の部分(群)を記憶することができる。その上、一部のクラスタストレージアレイは、他のクラスタストレージアレイに記憶されたデータのバックアップバージョンを記憶するように構成することができる。
【0130】
[0146] コンピューティングクラスタ909a、909b、および909c内のクラスタルータ911a、911b、および911cは、コンピューティングクラスタのため内部通信および外部通信を提供するように構成されているネットワーク設備を含み得る。たとえば、コンピューティングクラスタ909a内のクラスタルータ911aは、(i)ローカルクラスタネットワーク912aを介してコンピューティング装置900aとクラスタストレージアレイ910aとの間にローカルエリアネットワーク通信と、(ii)ネットワーク914へのワイドエリアネットワーク接続913aを介してコンピューティングクラスタ909aとコンピューティングクラスタ909bおよび909cとの間のワイドエリアネットワーク通信とを提供するように構成されている1台以上のインターネットスイッチングおよびルーティング装置を含み得る。クラスタルータ911bおよび911cは、クラスタルータ911aに類似したネットワーク設備を含むことができ、クラスタルータ911bおよび911cは、クラスタルータ911aがコンピューティングクラスタ909aのため実行するのと同様のコンピューティングクラスタ909bおよび909bのためのネットワーキング機能を実行できる。
【0131】
[0147] 一部の実施形態では、クラスタルータ911a、911b、および911cの構成は、コンピューティング装置およびクラスタストレージアレイのデータ通信要件と、クラスタルータ911a、911b、および911c内のネットワーク設備のデータ通信能力と、ローカルネットワーク912a、912b、912cのレイテンシおよびスループットと、ワイドエリアネットワークリンク913a、913b、および913cのレイテンシ、スループット、およびコストと、および/または、モデレーションシステムアーキテクチャのコスト、速度、耐故障性、復元性、効率性および/またはその他の設計目標に寄与する可能性があるその他の要因と、に少なくとも部分的に基づく可能性がある。
【0132】
例示的な動作方法
[0148]
図10は、例示的な実施形態による、方法1000のフローチャートである。方法1000は、コンピューティング装置で実行され得る。例示的なコンピューティング装置は、限定されることなく、コンピューティング装置900、シナリオ100のロボット装置に載せられたコンピューティング装置、シナリオ200のコンピューティング装置、ロボット装置に載せられた1台以上のコンピューティング装置、および/または、他のコンピューティング装置(群)を含む。
【0133】
[0149] 方法1000は、コンピューティング装置が環境の第1の地図を判定することができるブロック1010から始まることがあり得る。第1の地図は、対応する複数の第1の位置にある複数のフィーチャーを含むことができ、対応する複数のセマンティック位置にある複数のセマンティックラベルを含むことができ、たとえば、少なくとも
図1の地
図110a、
図2の地
図210a、および
図3の地
図310aなど、たとえば、
図1〜6との関連で前述された通りである。一部の実施形態では、環境は、たとえば、シナリオ100および200との関連で前述された通りの屋内環境を含む。
【0134】
[0150] ブロック1020で、コンピューティング装置は、環境の第2の地図を判定することができる。第2の地図は、対応する複数の第2の位置にある複数のフィーチャーのうちの少なくとも一部を含むことができ、たとえば、少なくとも
図1の地
図110b、
図2の地
図210b、および
図3の地
図310bなど、たとえば、
図1〜6との関連で前述された通りである。一部の実施形態では、コンピューティング装置は、たとえば、SLAMアルゴリズムなどの地図作成アルゴリズムを使用して地図(群)を生成することにより第1の地図および/または第2の地図を判定することができる。これらの実施形態の中で特に、コンピューティング装置は、少なくとも
図1および
図9Aとの関連において前述された通りの地図を生成するために、コンピューティング装置が環境の中を移動し、環境を観測することを可能にさせるように構成されたアクチュエータおよび/またはセンサを用いて構成することができる。
【0135】
[0151] 別の実施形態では、第2の地図を判定することは、複数のフィーチャーのうちの特定のフィーチャーの現在の位置を判定することと、特定のフィーチャーの現在の位置が特定のフィーチャーに対する第1の位置と等価であるか否かを判定することと、特定のフィーチャーの現在の位置が特定のフィーチャーに対する第1の位置と等価ではない、と判定した後、環境の第2の地図を判定することと、を含み、少なくとも
図1に関連して前述された通りである。
【0136】
[0152] さらに別の実施形態では、複数のセマンティックラベルのうちの特定のセマンティックラベルは、特定の物体に関連付けることができ、特定のセマンティックラベルは、複数のセマンティック位置のうちの特定のセマンティック位置に対応することができる。このとき、第2の地図を判定することは、特定の物体の現在の位置を判定することと、特定の物体の現在の位置が特定のセマンティック位置と等価であるか否かを判定することと、特定の物体の現在の位置が特定のセマンティックラベルと等価ではない、と判定した後、環境の第2の地図を判定することと、を含むことができ、少なくとも
図1との関連で前述された通りである。これらの実施形態以外の場合、第2の地図を判定することは、たとえば、少なくとも
図1との関連で前述された通り、時間的に周期的な間隔で第2の地図を判定することを含み得る。
【0137】
[0153] ブロック1030で、コンピューティング装置は、複数の固定フィーチャーを含む環境の第1の領域を識別することができる。複数の固定フィーチャーの中のある固定フィーチャーは、複数の第1の位置の中の対応する第1の位置にある可能性があり、複数の第2の位置の中の対応する第2の位置にある可能性があり、固定フィーチャーの対応する第1の位置は、固定フィーチャーの対応する第2の位置と等価であり、たとえば、少なくとも
図1の領域140a、140bは、これらのフィーチャーが関連付けられ、
図2および
図3の建物212a、220aおよびテント228a、232aは、これらのフィーチャーが関連付けられ、
図4の建物412、420およびテント428、432は、これらのフィーチャーが関連付けられているなど、たとえば、
図1〜
図6との関連で前述された通りである。
【0138】
[0154] ブロック1040で、コンピューティング装置は、環境の第2の領域を識別することができる。第2の領域は、複数の移動フィ−チャーを含み得る。複数の移動フィーチャーの中のある移動フィーチャーは、複数の第1の位置の中の対応する第1の位置にあり、複数の第2の位置の中の異なった対応する第2の位置にあり、移動フィーチャーの対応する第1の位置は、移動フィーチャーの異なった対応する第2の位置と等価ではなく、少なくとも
図1の領域142a、142bは、これらのフィーチャーが関連付けられ、
図2および
図3のテント238a、238b、244a、248b、250a、250bは、これらのフィーチャーが関連付けられ、
図4の領域438、444、450は、これらのフィーチャーが関連付けられているなど、たとえば、
図1〜
図6との関連で前述された通りである。
【0139】
[0155] ブロック1050で、コンピューティング装置は、第2の領域内の複数の移動フィーチャーのうちの第1の位置と第2の位置との間の変換、たとえば、少なくとも
図1のフィーチャー対応122c、126cおよび位置変換134cと、
図5Aから
図5Bの変換500、540および領域推定570、580、590となどを判定することができ、
図1〜
図6との関連で前述された通りである。
【0140】
[0156] 一部の実施形態では、たとえば、少なくとも
図5A〜
図6との関連、特に、
図5Aおよび
図5Bの変換500および540との関連で前述された通り、位置の1つ以上の変換は、変換後の位置への初期位置のアフィン変換を含み得る。特定の実施形態では、アフィン変換は、初期位置に関連している回転と、初期位置に関連している並進と、初期位置に関連している鏡映と、1つ以上の回転、並進、および鏡映の合成とのうちの少なくとも1つを含むことができ、少なくとも
図5A〜
図6との関連、特に、少なくとも
図5Aおよび
図5Bの変換500および540との関連で前述された通りである。
【0141】
[0157] ブロック1060で、コンピューティング装置は、複数のセマンティックラベルを第2の複数のセマンティック位置で第2の地図に割り当てることができる。第1の領域内のセマンティックラベルに対する第2の複数のセマンティック位置の中のセマンティック位置は、第1の複数のセマンティック位置内の対応するセマンティック位置と同一となる可能性があり、第2の領域内のセマンティックラベルに対する第2の複数のセマンティック位置の中のセマンティック位置は、1つ以上の変換に基づく可能性があり、たとえば、少なくとも
図1のセマンティックラベル「コーヒーメーカー」、
図2〜
図4、
図5C、および
図6との関連で一般に説明されたセマンティックラベル「リードウルフ」、「リードホーク」、「水上スポーツ」、「陸上スポーツ」、「アート」および「キャンプ用品」など、たとえば、少なくとも
図1および
図6との関連で、特に、
図6のとの関連で前述された通りである。
【0142】
[0158] 一部の実施形態では、環境は、第1の領域および第2の領域とは異なる少なくとも第3の領域を含むことができ、第3の領域は、1つ以上の第3のフィーチャーを含む。その結果、方法1000は、1つ以上の移動後の第3のフィーチャーのうちの1つずつの移動後の第3のフィーチャーが複数の第1の位置のうちの対応する第1の位置および複数の第2の位置のうちの異なった対応する第2の位置にある、1つ以上の第3のフィーチャーのうちの1つ以上の移動後の第3のフィーチャーを判定することと、第3の領域内のセマンティックラベルに対する第2の複数のセマンティック位置の中のセマンティック位置が第3の領域に対する第2の変換に基づいている、第2の複数の移動フィーチャーに対する第1の位置と第2の位置との間の第3の領域に対する第2の変換を判定することと、を含むことができ、たとえば、少なくともフィーチャー推定570、580、および590など、少なくとも
図5Cおよび
図6との関連で前述された通りである。
【0143】
[0159] ブロック1070で、コンピューティング装置は、第2の地図に基づいて出力を生成することができる。一部の実施形態では、コンピューティング装置は、ロボット装置の一部となることがあり得る。これらの実施形態では、第1の地図を判定することは、ロボット装置の1台以上のセンサ装置によって取得された第1のデータに基づいて第1の地図を判定することを含むことができ、第2の地図を判定することは、ロボット装置の1台以上のセンサ装置によって取得された第2のデータに基づいて第2の地図を判定することを含むことができ、出力を生成することは、第2の地図の少なくとも1つのセマンティックラベルによって提供されたガイダンスに基づいて環境の中を通ってロボット装置をナビゲートすることを含むことができ、
図1のシナリオ100および
図2〜
図6のシナリオ200の少なくともコンピューティング装置およびロボット装置(群)との関連で前述された通りである。
【0144】
[0160] 本開示は、様々な態様の実例として意図されている本出願に記載された特定の実施形態の観点から限定されることはない。多くの変更および変形は、当業者に明らかであるように、本開示の趣旨および範囲から逸脱することなく行うことができる。開示の範囲内で機能的に等価な方法および装置は、本文書において列挙された方法および装置に加えて、以上の説明から当業者に明らかであろう。このような変更および変形は、特許請求の範囲に記載された事項の範囲内にあることを意図する。
【0145】
[0161] 上記詳細な説明は、添付図面を参照して、開示されたシステム、装置、および方法の様々な特徴および機能について記載する。図中、同様の符号は、特に断らない限り、典型的に同様のコンポーネントを識別する。詳細な説明、図、および特許請求の範囲に記載された実例となる実施形態が限定的であることは意図されていない。その他の実施形態が利用される可能性があり、その他の変更が本文書に提示された主題の趣旨または範囲から逸脱することなしに行われる可能性がある。本文書に概略的に記載され、図において例として説明されている通り、本開示の態様は、多種多様の構成で構成される、代用する、組み合わせる、分離する、および設計することができることが容易に理解されるものであり、これらの全てが本文書において明確に検討されている。
【0146】
[0162] 図の中および本文書に記載された通りのラダー図、シナリオ、およびフローチャートの一部または全部に関連して、各ブロックおよび/または通信は、例示的な実施形態による情報の処理および/または情報の伝送を表現することがある。代替的な実施形態は、これらの例示的な実施形態の範囲内に含まれる。これらの代替的な実施形態では、たとえば、ブロック、伝送、通信、要求、応答、および/またはメッセージとして記載された機能は、関与している機能性に依存して、表示または説明された順番にかかわらず、実質的に並列にまたは逆の順番などで行われることがある。さらに、より多数またはより少数のブロックおよび/または機能が本文書において検討されたラダー図、シナリオ、およびフローチャートのうちのいずれかと共に使用されることがあり、これらのラダー図、シナリオ、およびフローチャートは、部分的または全体的に、互いに組み合わされることがある。
【0147】
[0163] 情報の処理を表現するブロックは、本文書に記載された方法または手法の特定の論理機能を実行するように構成することができる回路に対応することがある。代替的または付加的に、情報の処理を表現するブロックは、モジュール、セグメント、または(関連データを含んでいる)プログラムコードの一部に対応することがある。プログラムコードは、方法または手法における特定の論理機能または行動を実装するためプロセッサによって実行可能である1つ以上の命令を含むことがある。プログラムコードおよび/または関連データは、たとえば、ディスクもしくはハードドライブまたはその他の記憶媒体を含んでいる記憶装置などのどんな種類のコンピュータ読み取り可能な媒体にも記憶されることがある。
【0148】
[0164] コンピュータ読み取り可能な媒体は、レジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ(RAM)のように、たとえば、短期間データを記憶する非一時的なコンピュータ読み取り可能な媒体などの非一時的なコンピュータ読み取り可能な媒体をさらに含むことがある。コンピュータ読み取り可能な媒体は、たとえば、リードオンリーメモリ(ROM)、光もしくは磁気ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM)のように、たとえば、2次もしくは永続的長期間ストレージなどの長期間プログラムコードおよび/またはデータを記憶する非一時的なコンピュータ読み取り可能な媒体をさらに含むことがある。コンピュータ読み取り可能な媒体は、その他の揮発性または不揮発性記憶システムでもよい。コンピュータ読み取り可能な媒体は、たとえば、コンピュータ読み取り可能な記憶媒体、または有形のストレージ装置と考えられることがある。
【0149】
[0165] その上、1回以上の情報伝送を表現するブロックは、同じ物理的装置内のソフトウェアモジュールおよび/またはハードウェアモジュールの間の情報伝送に対応することがある。しかしながら、他の情報伝送は、異なる物理装置内のソフトウェアモジュールおよび/またはハードウェアモジュールの間でもよい。
【0150】
[0166] 様々な態様および実施形態が本文書に開示されているが、他の態様および実施形態が当業者に明らかであろう。本文書に開示された様々な態様および実施形態は、説明の目的で提供され、限定的であることが意図されることはなく、真の範囲は以下の特許請求の範囲によって示されている。