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

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

▶ リアルタイム ロボティクス, インコーポレーテッドの特許一覧

特許7450297センサーの配置を含むロボット操作環境の構成
<>
  • 特許-センサーの配置を含むロボット操作環境の構成 図1
  • 特許-センサーの配置を含むロボット操作環境の構成 図2
  • 特許-センサーの配置を含むロボット操作環境の構成 図3
  • 特許-センサーの配置を含むロボット操作環境の構成 図4
  • 特許-センサーの配置を含むロボット操作環境の構成 図5A
  • 特許-センサーの配置を含むロボット操作環境の構成 図5B
  • 特許-センサーの配置を含むロボット操作環境の構成 図6
  • 特許-センサーの配置を含むロボット操作環境の構成 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-07
(45)【発行日】2024-03-15
(54)【発明の名称】センサーの配置を含むロボット操作環境の構成
(51)【国際特許分類】
   B25J 19/04 20060101AFI20240308BHJP
【FI】
B25J19/04
【請求項の数】 31
(21)【出願番号】P 2022562247
(86)(22)【出願日】2021-04-12
(65)【公表番号】
(43)【公表日】2023-05-29
(86)【国際出願番号】 US2021026818
(87)【国際公開番号】W WO2021211420
(87)【国際公開日】2021-10-21
【審査請求日】2022-11-29
(31)【優先権主張番号】63/009,583
(32)【優先日】2020-04-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520296244
【氏名又は名称】リアルタイム ロボティクス, インコーポレーテッド
【氏名又は名称原語表記】REALTIME ROBOTICS, INC.
【住所又は居所原語表記】27 Wormwood St.,Suite #110,Boston,Massachusetts 02210 United States of America
(74)【代理人】
【識別番号】100105131
【弁理士】
【氏名又は名称】井上 満
(74)【代理人】
【識別番号】100105795
【弁理士】
【氏名又は名称】名塚 聡
(72)【発明者】
【氏名】ラム,ジェニ
(72)【発明者】
【氏名】ムルガン,アアカシュ
【審査官】牧 初
(56)【参考文献】
【文献】特開2016-099257(JP,A)
【文献】特開2010-201592(JP,A)
【文献】特表2018-505788(JP,A)
【文献】特開2018-144158(JP,A)
【文献】特開2017-136677(JP,A)
【文献】国際公開第2018/043525(WO,A1)
【文献】米国特許出願公開第2021/0303745(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
ロボット操作を容易にするためのプロセッサベースのシステムの動作方法であって、
複数の候補センサーポーズの各々について、第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップ
を有し、
前記方法は、さらに、
作業空間内の各ボクセルに対して実行される外部反復ループにおいて、
前記作業空間内の他のボクセルの各々についてそれぞれのオクルージョン値を決定するステップであって、前記オクルージョン値は、前記外部反復ループの現在の反復のボクセルが前記オクルージョン値が決定されているそれぞれの前記ボクセルを少なくとも部分的に占有するように配置されたオブジェクトによって1つ又は複数のセンサーからオクルージョンされるかどうかを表すものである、該ステップと、
前記候補センサーポーズについてのコストを集約するステップを有し、
前記外部反復ループの現在の反復の前記ボクセルについてそれぞれのオクルージョン値を決定するステップは、
内部反復ループにおいて、前記外部反復ループの現在の反復のボクセルが、すでに位置決めされた任意のセンサーに基づいてオクルージョンされているかどうかを決定するステップと、
前記内部反復ループにおいて、前記外部反復ループの現在の反復の前記ボクセルがオクルージョンされている場合、それぞれの前記ロボットポーズにおいて前記外部反復ループの現在の反復の前記ボクセルをオクルージョンしているロボットポーズのうちの1つにあるロボットの形態のオブジェクトによって占有される任意のボクセルのそれぞれのオクルージョン値をインクリメントするステップを含む、方法。
【請求項2】
前記センサーがカメラであり、前記カメラが前記候補センサーポーズの各々について操作環境のそれぞれの視野を有し、前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップが、前記オクルージョン評価に少なくとも部分的に基づいて、第1のカメラにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップを含む、請求項1に記載の方法。
【請求項3】
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記第1のロボットによって実現可能なポーズのC空間ロードマップからのいくつかのロボットポーズの各々についてオクルージョン評価を実行するステップを含む、請求項1に記載の方法。
【請求項4】
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記第1のロボットによって実行されるべきタスクに少なくとも部分的に基づいて、前記第1のロボットによって実現可能なポーズのC空間ロードマップから選択されるいくつかのロボットポーズの各々についてオクルージョン評価を実行するステップを含む、請求項1に記載の方法。
【請求項5】
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記第1のロボットによって実現可能なポーズのロードマップからサンプリングされたいくつかのロボットポーズの各々についてオクルージョン評価を実行するステップを含み、前記ロードマップは前記ロボットのC空間内のそれぞれのロボットポーズを表すノードの組と、前記ノードのペアを結合する複数のエッジであって、それぞれの前記エッジが結合する前記ノードによって表される前記それぞれのロボットポーズ間の遷移を表す、該複数のエッジを備えるグラフの形態である、請求項1に記載の方法。
【請求項6】
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を説明するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行するステップを含む、請求項1に記載の方法。
【請求項7】
前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を説明するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行するステップは、前記第1のロボットのいくつかのロボットポーズ及び前記第2のロボットのいくつかのロボットポーズを表すロボットポーズの組に基づいて前記オクルージョン評価を実行するステップを含む、請求項6に記載の方法。
【請求項8】
前記候補センサーポーズの各々について、前記候補センサーポーズのそれぞれのコスト値を決定するステップをさらに含み、前記それぞれのコスト値はオクルージョンを表す、請求項1に記載の方法。
【請求項9】
前記ボクセルについてそれぞれのオクルージョン値を決定する前に、
各候補センサーポーズについて、前記候補センサーポーズのそれぞれのコスト値を初期化するステップと、
前記外部反復ループにおいて、前記作業空間内のすべての前記ボクセルについて、前記ボクセルの前記それぞれのオクルージョン値を初期化するステップ
をさらに含む、請求項記載の方法。
【請求項10】
前記候補センサーポーズのコストを集約するステップは、
各候補センサーポーズについて、ボクセルのオクルージョンが評価されている前記外部反復ループの現在の反復の前記ボクセルと前記センサーの間の各ボクセルについて前記オクルージョン値を合計するステップと、
その合計を、それぞれの前記候補センサーポーズについてのコストの累算された合計に加算するステップ
を含む、請求項に記載の方法。
【請求項11】
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップは、前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対する前記候補センサーポーズの関連コストに基づいて、前記候補センサーポーズを選択するステップを含む、請求項1~10のいずれか1項に記載の方法。
【請求項12】
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップは、前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対して、前記候補センサーポーズの最も低い関連コストを有する前記候補センサーポーズを選択するステップを含む、請求項1~10のいずれか1項に記載の方法。
【請求項13】
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップの後に、
複数の候補センサーポーズの各々について、前記操作環境における少なくとも第1のロボットの、前記少なくとも第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を説明するオクルージョン評価を実行するステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、第2のセンサーにポーズをとらせるために候補センサーポーズのうちの1つを選択するステップ
をさらに含む、請求項1に記載の方法。
【請求項14】
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記第1のセンサーのための前記候補センサーポーズのうちの前記選択された1つによって指定されるように、位置決められ、向きづけられた前記第1のセンサーも説明するオクルージョン評価を実行するステップを含む、請求項13に記載の方法。
【請求項15】
前記センサーはカメラであり、
前記第1のセンサーのために選択されたセンサーポーズに対応する第1のポーズの前記カメラのうちの第1のものによって収集されたセンサー情報を受信するステップと、前記第2のセンサーのために選択されたセンサーポーズに対応する第2のポーズの前記カメラのうちの第2のものから収集されたセンサー情報を受信するステップと、受信されたセンサー情報に基づいて、少なくとも前記第1のロボットのための動作計画を実行するステップ
をさらに含む、請求項13に記載の方法。
【請求項16】
前記オクルージョン評価に少なくとも部分的に基づいて、第2のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップの後に、
終了条件が達成されるまで、複数の候補センサーポーズの各々について、前記操作環境における少なくとも第1のロボットの、少なくとも前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を説明するオクルージョン評価を実行することを繰り返すステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、追加のセンサーにポーズをとらせるために候補センサーポーズのうちの1つを選択するステップ
をさらに含む、請求項13に記載の方法。
【請求項17】
ロボット操作を容易にするためのプロセッサベースのシステムの動作システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
複数の候補センサーポーズの各々について、第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行させ、
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択させる
プロセッサ実行可能命令を記憶する少なくとも1つの非一時的プロセッサ可読媒体
を備え、
実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサにさらに、
作業空間内の各ボクセルに対して実行される外部反復ループにおいて、
前記作業空間内の他のボクセルの各々についてそれぞれのオクルージョン値を決定するステップであって、前記オクルージョン値は、前記外部反復ループの現在の反復のボクセルが前記オクルージョン値が決定されているそれぞれの前記ボクセルを少なくとも部分的に占有するように配置されたオブジェクトによって1つ又は複数のセンサーからオクルージョンされるかどうかを表すものである、該ステップと、
前記候補センサーポーズについてのコストを集約するステップを実行させ、
前記外部反復ループの現在の反復の前記ボクセルについてそれぞれのオクルージョン値を決定するステップは、
内部反復ループにおいて、前記外部反復ループの現在の反復のボクセルが、すでに位置決めされた任意のセンサーに基づいてオクルージョンされているかどうかを決定するステップと、
前記内部反復ループにおいて、前記外部反復ループの現在の反復の前記ボクセルがオクルージョンされている場合、それぞれの前記ロボットポーズにおいて前記外部反復ループの現在の反復の前記ボクセルをオクルージョンしているロボットポーズのうちの1つにあるロボットの形態のオブジェクトによって占有される任意のボクセルのそれぞれのオクルージョン値をインクリメントするステップを含む、システム。
【請求項18】
前記センサーはカメラであり、前記カメラは、前記候補センサーポーズの各々について操作環境のそれぞれの視野を有する、請求項17に記載のシステム。
【請求項19】
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実現可能なポーズのC空間ロードマップからのいくつかのロボットポーズの各々についてオクルージョン評価を実行させる、請求項17に記載のシステム。
【請求項20】
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実行されるべきタスクに少なくとも部分的に基づいて、前記第1のロボットによって実現可能なポーズのC空間ロードマップから選択されるいくつかのロボットポーズの各々についてオクルージョン評価を実行させる、請求項17に記載のシステム。
【請求項21】
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実現可能なポーズのロードマップからサンプリングされたいくつかのロボットポーズの各々についてオクルージョン評価を実行させ、前記ロードマップは前記ロボットのC空間内のそれぞれのロボットポーズを表すノードの組と、前記ノードのペアを結合する複数のエッジであって、それぞれの前記エッジが結合する前記ノードによって表される前記それぞれのロボットポーズ間の遷移を表す、該複数のエッジを備えるグラフの形態である、請求項17に記載のシステム。
【請求項22】
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を説明するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行させる、請求項17に記載のシステム。
【請求項23】
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットのいくつかのロボットポーズ及び前記第2のロボットのいくつかのロボットポーズを表すロボットポーズの組に基づいて前記オクルージョン評価を実行させる、請求項22に記載のシステム。
【請求項24】
実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサにさらに、
前記候補センサーポーズの各々について、前記候補センサーポーズのそれぞれのコスト値を決定させ、前記それぞれのコスト値はオクルージョンを表す、請求項17に記載のシステム。
【請求項25】
実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサにさらに、
前記ボクセルについてのそれぞれのオクルージョン値が決定される前に、
各候補センサーポーズについて、前記候補センサーポーズのそれぞれのコスト値を初期化させ、
前記外部反復ループにおいて、前記作業空間内のすべての前記ボクセルについて、前記ボクセルの前記それぞれのオクルージョン値を初期化させる、請求項17に記載のシステム。
【請求項26】
前記候補センサーポーズについてのコストを集約するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに
各候補センサーポーズについて、前記外部反復ループの現在の反復においてオクルージョンが評価されている前記外部反復ループの現在の反復の前記ボクセルと前記センサーの間の各ボクセルについて前記オクルージョン値を合計させ、
その合計を、それぞれの候補センサーポーズについてのコストの累算された合計に加算させる、
請求項17に記載のシステム。
【請求項27】
前記オクルージョン評価に少なくとも部分的に基づいて、前記候補センサーポーズのうちの1つを選択して第1のセンサーにポーズをとらせるために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、
前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対する前記候補センサーポーズの関連コストに基づいて、前記候補センサーポーズを選択させる、請求項17から26のいずれか1項に記載のシステム。
【請求項28】
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、
前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対して、前記候補センサーポーズの最も低い関連コストを有する前記候補センサーポーズを選択させる、請求項17から26のいずれか1項に記載のシステム。
【請求項29】
実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサにさらに
前記オクルージョン評価に少なくとも部分的に基づいて第1のセンサーにポーズをとらせるための前記候補センサーポーズのうちの1つの選択後に、
複数の候補センサーポーズの各々について、前記操作環境における少なくとも第1のロボットの、前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を説明するオクルージョン評価を実行させ、
前記オクルージョン評価に少なくとも部分的に基づいて第2のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択させる、
請求項17に記載のシステム。
【請求項30】
オクルージョン評価を実行するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、さらに、
前記第1のセンサーについて前記候補センサーポーズのうちの前記選択された1つによって指定されるように、位置決めされ、向きづけられた前記第1のセンサーも説明する前記オクルージョン評価を実行させる、請求項29に記載のシステム。
【請求項31】
前記センサーはカメラであり、実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサにさらに
前記第1のセンサーのために選択されたセンサーポーズに対応する第1のポーズの前記カメラのうちの第1のものによって収集されたセンサー情報を受信させ、前記第2のセンサーのために選択されたセンサーポーズに対応する第2のポーズの前記カメラのうちの第2のものから収集されたセンサー情報を受信させ、
受信されたセンサー情報に基づいて、少なくとも前記第1のロボットについて動作計画を実行させる、
請求項29に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、ロボット工学、例えば、マルチロボット操作環境又は共有作業空間に関し、特に、ロボット操作環境におけるセンサーの配置及び向き、並びに任意選択で操作環境の感知された態様に基づく動作計画及びロボット動作を含む操作環境の配置(又は、レイアウト)に関する。
【背景技術】
【0002】
関連技術の説明
様々な用途が、ロボット操作環境において1つ又は複数のロボットを使用する。ロボット操作環境は単一のロボットを含むことができ、又は共有作業空間又は共通操作環境の形態をとることができる。例えば、2つ又はそれ以上のロボットは共通の操作環境例えば、ロボットが可動域で重なり合うシャーシにボルトをねじ込む環境、において、1つ又は複数のオブジェクト(又は、物体)又はワークピースについて、又はそれと共に、タスクを実行する際に使用されてもよい。
【0003】
一般に、動作計画(又は、モーションプランニング)は、ロボット制御及びロボット工学における基本的な問題である。動作プランはロボットが開始状態からターゲット(又は、目標)状態に追従することができる経路を指定し、典型的には、操作環境内の任意の障害物と衝突することなく、又は操作環境内の任意の障害物と衝突する可能性が低減されたタスクを完了する。運動計画に対する課題は環境変化(例えば、環境内の障害物の位置又は向きの変化)を考慮しながら、速い速度で動作計画を実行する能力を含む。課題はさらに、比較的低コストの機器を使用して、比較的低エネルギー消費で、及び/又は限られた量の記憶装置(例えば、プロセッサチップ回路上の例えば、メモリ回路)を用いて、動作計画を実行することを含む。
【発明の開示】
【0004】
概要
動作計画を実行するとき、ロボット(複数可)が実行するのに効率的な動作プランを生成することが望ましい。効率は1つ又は複数のタスクを実行又は完了するための時間、1つ又は複数のタスクを完了するために必要とされる動きの総数、1つ又は複数のタスクを完了するためのエネルギーの総消費、及び/又は、例えば、別のロボットが共有の領域又は作業空間をクリアする(又は、離れる)のを待つ等、ロボットがアイドル状態にある総回数又は総時間量に関して測定され得る。動作計画を実行するとき、ロバストな動作プラン(例えば、1つ又は複数のタスクを、例えば衝突なしで首尾よく完了するために完全に実行されることが、保証されるか又は非常にありそうである動作プラン)を生成することが望ましい。動作計画を実行するとき、動作プランを迅速に生成することが望ましく、システムが操作環境の変化に迅速に適応することを可能にし、例えば、リアルタイムの変化に適応することを可能にする。動作計画を実行するとき、動作計画において使用される計算リソース(例えば、ハードウェア、計算サイクル、エネルギー使用量)を低減し、計算効率の良い方法で動作プランを生成することが望ましい。
【0005】
多くの操作環境は、1つ又は複数のロボットと、操作環境のどの領域又はボリュームが占有されているかを表す情報を含む操作環境に関する情報を収集するための知覚システムとを含む。操作環境を監視するために使用される知覚システムの1つ又は複数のセンサーのオクルージョン(又は、遮蔽/occlusion)を低減するように操作環境を設定することが望ましい。動作計画時、オクルージョンは典型的にはオクルージョンされた(又は、遮蔽された)空間内に存在する場合も存在しない場合もある障害物との衝突を防止するために、占有空間として扱われる。しかしながら、占有されていると示される空間が多いほど、ロボットが所与のタスクを実行するための効率的な動作プランを見つけることはより困難である。
【0006】
オクルージョンは例えば、ロボット又はその一部が操作環境内のセンサーと所与の位置(例えば、ボクセル)との間に位置決めされた(例えば、介在する)場合に生じ得る。そのような状況では、所与のボクセルがセンサーによってオクルージョンされている(すなわち、見えない又は検出できない)。オクルージョンは、ロボットがかなりの数のロボットポーズをとり得る場合における重大な問題を提示する可能性がある。各ロボットポーズはロボットポーズ間の遷移と同様に、オクルージョンのリスクを与える。この問題は操作環境内に複数のロボットがあり、各々が、比較的多数のロボットポーズの間を移動することができる場合、組合せ又は順列の数が急速に増加することにつれて、さらに悪化する。
【0007】
したがって、ロボットによるセンサー(複数可)のオクルージョン、並びに操作環境における他のオブジェクト(例えば、障害物)によるオクルージョンを最小限に抑えるか又は低減するように、センサーのレイアウトを最適化することが望ましい。
【0008】
1つ又は複数のロボットが動作し、1つ又は複数のセンサーがポーズをとらされた(すなわち、位置決め及び向きづけされた(oriented))操作環境のレイアウトの最適化を可能にして、動作計画自体の計算効率を向上させるために、及び/又は動作計画によって生成される動作プランの効率及び/又はロバスト性を向上させるために、オクルージョンを少なくとも低減又は最小化する操作環境のレイアウトの最適化を可能にするシステム及び方法について説明する。1つ又は複数のセンサーのそれぞれの位置及び/又は向きは、ロボット(複数可)の様々なロボットポーズ及びロボットポーズ間の遷移を考慮しながら決定されて、操作環境のセンサーのカバレージを強化し、すなわち、オクルージョンの発生が低減されたセンサーのカバレージを提供することができる。例えば、オクルージョンを表すコスト値が決定され得、候補センサーポーズ(又は、姿勢)は、コスト値又は集計コストに基づいて評価され得る。オクルージョンを低減することは、ロボットのための動作計画を著しく強化し、よりロバストな(例えば、衝突なしに解を生成するより高い確率)動作プラン、及び/又は実行するのにより効率的な(例えば、タスクを完了するのがより速い、タスクを完了するためのポーズ数がより少ない、タスクを完了するためのエネルギー消費がより少ない)動作プランを生成し、及び/又は実行可能な動作プランを生成するために動作計画を実行するのに必要な計算リソース(例えば、ハードウェア、計算サイクル、エネルギー消費)を低減することができる。任意の所与の実装形態は最適な(optimum)又は最適な(optimal)(すなわち、客観的に最も最適な)ソリューション(又は、解)をもたらさず、むしろ、最適化された又は改善されたソリューションのみをもたらし得るとしても、そのようなことは本明細書ではセンサーポーズ(すなわち、センサーの位置及び/又は向き)を最適化することとして言及される。配置されるセンサーの総数は実行前に定義されてもよく、若しくは実行前に定義されなくてもよく、又は他の方法で知られていなくてもよく、実際には終了条件に達すると、数回の反復の後にのみ決定されてもよい。多くの実施形態では、センサーの各々がセンサーの位置及び向きによって指示される操作環境の一部分を包含するそれぞれの視野を有するデジタルカメラの形態をとる。しかしながら、本明細書で説明される様々な実装形態はデジタルカメラに限定されず、むしろ、限定はされないが、レーダ、LIDAR、ソナー、受動赤外線(PIR)動き検出器等を含む、1つ又は複数のロボットが動作する操作環境における感知条件において採用され得るほぼ任意のタイプのセンサーに適用され得る。
【0009】
最適化は、静的オブジェクトによって占有されるボリューム又は領域を含む環境の知識、環境における各ロボット(例えば、各ロボットのベース)の位置及び向きの知識、運動計画ロードマップ(例えば、ロボットの構成(C空間)において表される可能なロボットポーズ及びそれらの間の遷移のグラフ)の知識、及び/又はロボット(複数可)によって実行されるべきタスクの組のうちの1つ又は複数を採用し得る。最適化は有限集合の候補センサーポーズを採用することもでき、各候補センサーポーズは、環境内のセンサーの可能な位置及び可能な向きのタプル(又は、チュープル/tuple)を表す。
【図面の簡単な説明】
【0010】
図面において、同一の参照番号(又は、番号)は、同様の要素又は作用を示す。図面における要素のサイズ及び相対位置は、必ずしも一定の縮尺で描かれてはいない。例えば、さまざまな要素の形状及び角度は一定の縮尺で描かれず、これらの要素のいくつかは、図面を見やすくするために、随時適当に拡大及び配置されている。さらに、描かれている要素の特定の形状は、特定の要素の実際の形状に関するいかなる情報も伝えることを意図しておらず、図面における認識を容易にするためにのみ選択されている。
図1図1は少なくとも1つの図示された実装形態による、複数のロボットがタスクを実行するように動作し、複数のセンサーが、操作環境を監視するように位置決めされ、向きづけされ、知覚コンピュータシステムがセンサーから情報を収集し、レイアウト最適化システムが操作環境のレイアウトを構成するための最適化を実行し、任意選択の動作プランナ(複数可)及びロボット制御システム(複数可)が動作プランを生成し、タスクを完了するようにロボットの動作を制御する、操作環境の概略図である。
図2図2は少なくとも1つの図示された実装形態による、図1のロボット、センサー、知覚コンピュータシステム、レイアウト最適化システム、並びに任意選択の動作プランナ及びロボット動作コントローラの機能ブロック図であり、様々なコンピュータシステムは、それぞれ、1つ又は複数のプロセッサと、プロセッサ実行可能命令を記憶する1つ又は複数の非一時的プロセッサ可読媒体とを含む。
図3図3は少なくとも1つの図示された実装形態による、センサーポーズ(すなわち、センサー位置及び向き)の最適化を実行し、任意選択で、操作環境における1つ又は複数のロボットの動作計画及び制御動作を実行するための、プロセッサベースのシステムの高レベル動作方法を示すフロー図である。
図4図4は、図3の方法を実行することの一部として実行することができる、少なくとも1つの図示された実装形態による、オクルージョン評価及び候補センサーポーズの選択を実行するためのプロセッサベースのシステムの動作の方法を示すフロー図である。
図5A図5Aは、図3の方法を実行することの一部として実行することができる、少なくとも1つの図示された実装形態による、オクルージョンを表すコスト値を決定するためのプロセッサベースのシステムの動作の方法を示すフロー図である。
図5B図5Bは、図5Aの方法を実行することの一部として実行することができる、少なくとも1つの図示された実装形態による、オクルージョンを表すコスト値を決定するためのプロセッサベースのシステムの動作の方法を示すフロー図である。
図6図6は、図5A及び図5Bの方法を実行することの一部として実行することができる、少なくとも1つの図示された実装形態による、ボクセルのオクルージョン値を決定するためのプロセッサベースのシステムの動作の方法を示すフロー図である。
図7図7は、図5A及び図5Bの方法を実行することの一部として実行することができる、少なくとも1つの図示された実装形態による、候補センサーポーズのコストを集約するためのプロセッサベースのシステムの動作の方法を示すフロー図である。
【発明を実施するための形態】
【0011】
詳細な説明
以下の説明では、種々の開示の実施態様が正しく理解されるように、一定の具体的な詳細を以下に説明する。但し、当業者ならば、これら具体的な細部の1つ又は複数を欠いても、又は他の方法、他の構成部材、他の材料でも実施が可能であることは容易に理解するところであろう。他の例では、実施形態の説明を不必要に曖昧にすることを避けるために、コンピュータシステム、アクチュエータシステム、及び/又は通信ネットワークに関連する周知の構造は詳細には図示されておらず、又は説明されていない。他の例では、実施形態の説明を不必要に曖昧にすることを避けるために、知覚データ及び1つ又は複数のオブジェクト等のボリュメトリック(又は、体積的)表現を生成するための周知のコンピュータビジョン方法及び技法は詳細に説明されていない。
【0012】
文脈上別段の要求がない限り、以下の明細書及び特許請求の範囲を通して、「含む(comprise)」という用語及び「含む(comprises)」及び「含む(comprising)」等のその変形は「含むが、これらに限定されない」であるとして、開放の包括的な意味であると解釈されるべきである。
【0013】
本明細書全体を通して、「1つの実装態様」又は「実装形態」又は「1つの実施形態」又は「実施形態」への言及は、実施形態に関連して記述された特定の特徴、構造又は特性が少なくとも1つの実装形態又は少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体の様々な場所における「1つの実装形態」又は「実装形態」又は「1つの実施形態において」又は「実施形態において」という表現の出現は、必ずしもすべてが同じ実装形態又は実施形態を指すわけではない。さらに、特定の特徴、構造又は特性は、1つ又は複数の実装形態又は実施形態において、任意の適切な方法で組み合わされ得る。
【0014】
本明細書及び添付の特許請求の範囲で使用されるように、単数表現「1つの(a)」、「1つの(an)」及び「その(the)」は、文脈上明確な指示がない限り、複数の存在を包含するものである。また、表現「又は」は一般に、文脈上明確な指示がない限り、「及び/又は」を包含する意味で用いられる。
【0015】
本明細書及び添付の特許請求の範囲で使用されるように、最適化する(optimizing)、最適化する(optimize)、及び最適化されたという用語は、改善された結果が準備されている、生成されている若しくは生成されている、又は準備された、生成された若しくは生成されたことを意味する。そのような用語は、それらの相対的な意味で使用され、絶対的に最適な値が準備された、生成された(generated)又は生成された(produced)ことを意味しない。
【0016】
本明細書及び添付の特許請求の範囲で使用されるように、「操作環境」又は「環境」又は「作業空間」という用語は、1つ又は複数のロボットが動作する操作環境を指すために使用される。操作環境は障害物及び/又はワークピース(すなわち、ロボットが相互作用し、作用し(act on)又は作用する(act with)アイテム)を含むことができる。
【0017】
本明細書及び添付の特許請求の範囲で使用されるように、用語「共有操作環境」又は「共有環境」又は「共有作業空間」は、2つ又はそれ以上のロボットが動作する操作環境を指すために使用され、共有作業空間の1つ又は複数の部分はロボットが互いに衝突する可能性があるボリュームであり、したがって干渉領域と呼ばれ得る。
【0018】
本明細書及び添付の特許請求の範囲で使用されるように、「タスク」という用語は、好ましくはその環境内の障害物と衝突することなく、ロボットがポーズAからポーズBに遷移するロボットタスクを指すために使用される。タスクは、おそらく、アイテムの把持又は把持解除、アイテムの移動又はドロップ(又は、投下)、アイテムの回転、又はアイテムの取り出し又は配置を含むことができる。ポーズAからポーズBへの遷移は、任意選択で、1つ又は複数の中間ポーズ間の遷移を含むことができる。
【0019】
本明細書及び添付の特許請求の範囲で使用されるように、用語「決定する」、「決定された」(determine、determining及びdetermined)は、衝突が起こるか、又は結果として生じるかの文脈で使用されるときには、所与のポーズ又はいくつかの中間ポーズを介した2つのポーズ間の移動(movement)がロボットの一部分と何らかの物体(例えば、ロボットの別の部分、持続性障害物(又は、永続的障害物/persistent obstacle)、一時的障害物(transient obstacle)又は現在ターゲットとされているオブジェクト以外の何らかのオブジェクト)との間の衝突をもたらすかどうかに関する評価又は予測が行われることを意味する。
【0020】
発明の名称及び要約は便宜上のものであり、本発明の範囲を表すものではなく、又は実施形態を意味するものでもない。
【0021】
図1は、1つの例示としての形態に従う、1つ又は複数のロボット102a、102b、102c(3つ示し、まとめて102)が動作しうる3次元操作環境100を示している。簡潔にするために、本明細書では、3次元操作環境100を環境100と呼ぶ。環境100はロボット102が動作し、移動することができる3次元空間を表す。環境100は、任意の所与のロボット102「構成空間」又は「C空間」とは異なることに留意されたい。
【0022】
環境100は、衝突の可能性がある領域を表す障害物106a~106e(まとめて106)を含めることができる。障害物(単数又は複数)106という用語は所与のロボット102の衝突のリスクを表すオブジェクト(例えば、他のロボットを含む無生物の(inanimate)オブジェクト、人及び他の動物を含む生きているオブジェクト)を示すために使用される。
【0023】
これらの障害物106a、106b、106cのいくつかは、静的な障害物又はオブジェクト(すなわち、移動(すなわち、並進、回転)しない又は関連する期間又は実行時(又は、ランタイム/runtime)の間に形状を変化させる障害物又はオブジェクト、例えば、建物、木、岩、家具、ペデスタル(又は、台座/pedestal)、サポートポスト、棚)の形態をとることもある。これらの障害物の中には、環境100において動的障害物又はオブジェクト106d、106d(すなわち、移動(すなわち、並進、回転)しない、又は関連する期間又は実行時の少なくとも一部の間に形状を変化させる障害物又はオブジェクト、例えば、他のロボット、コンテナ、車両又は車両の形式のロボット、人、動物、ローリング又はシフトするアイテム)の形態をとるものもある。例えば、ペデスタル、壁及びサポートポストの組は固定されていてもよく、又は、関連する期間(例えば、実行時)にわたって、移動又は形状変化していなくてもよく、したがって、静的障害物とみなされる。また、例えば、コンテナ、ワークピース、及び別のロボット102の組は関連する期間(例えば、実行時)の間に、移動又は形状変更(例えば、傾斜)することができ、したがって、動的障害物と見なされる。
【0024】
一部の障害物106a-106cは時間の経過とともに変化しない面積又はボリュームを占めており、例えば、ロボットの操作中又は移動中に固定されたままで又は変化しない。したがって、そのような障害物は、静的障害物又は持続性障害物と呼ばれることがある。静的又は持続性障害物(例えば、障害物106a-106c)によって占められる面積又はボリュームはモデルが決定されたり計算回路(circuitry)が構成されたりする時に知ることができ、その時は構成時(又は、構成時間/configuration time)又は実行時前と呼ばれる。
【0025】
その他の障害物106d、106eについては、障害物が占めるそれぞれの面積又はボリュームが変化し、又は例えば、ロボットの操作中又は移動中に変更される等、時間の経過とともに変化することが予想される。したがって、そのような障害物は、動的障害物又は一時的障害物と呼ばれることがある。動的又は一時的障害物(例えば、障害物106d、106e)によって占められる面積又はボリュームは、通常、構成時中には分からず、むしろロボット操作中又は実行時中に決定される。
【0026】
環境100は任意選択で、1つ又は複数のターゲットオブジェクト108a、108b(2つ示し、まとめて108)を含んでもよく、このロボット102が、例えば、ターゲットオブジェクト108を把持する、ターゲットオブジェクト108を動かす、又は、何らかの定義された仕事又は操作を実行するためにターゲットオブジェクト108をエンゲージ(又は、係合)することによって相互作用することが意図されている。ターゲットオブジェクト108は通常障害物とはみなされないが、いくつかの実施形態では例えば、一つのロボット102aが順次エンゲージする複数のターゲットオブジェクト108が存在する場合や、別のロボット102b,102cが特定のターゲットオブジェクト108を対象としないと考えられる場合等に、障害物を構成する可能性がある。いくつかの実施形態は、いかなるターゲットオブジェクトも含まない場合があり、ロボット(複数可)102は、いかなるオブジェクトと相互作用することなく、又はいかなるオブジェクトと係合することなく、様々なポーズの間で移動する。
【0027】
図1は、限られた数の障害物106及びターゲットオブジェクト108を有する代表的な環境100を示す。典型的な環境は、他のロボットであるオブジェクト、並びに様々な他の自然又は人工の静的及び動的障害物106又はターゲットオブジェクト108を含む、多くの追加の障害物106及びターゲットオブジェクト108を含み得る。環境100によっては、ターゲットオブジェクト108を完全に省略してもよく、又は動的障害物106d、106eさえ省略してもよい。本明細書で教示される概念は、図示されるものよりも混雑した環境で同様の方法で使用され得る。
【0028】
ロボット102は、多種多様な形態のいずれかをとることができる。ロボット102は、直角座標(又は、デカルト)の円筒形、デルタ、極座標、及び垂直関節(vertically articulated)のスカラロボット(SCARA)を含むが、これらに限定されない、任意のタイプのロボットであり得る。1つ又は複数のロボット102はまた、例えば、自動車、飛行機、ドローン又は自律的又は半自律的に(すなわち、少なくとも部分的に自律的に)動作し、環境100によって表される空間内を移動することができる任意の他の車両の形態で、移動可能であり得る。
【0029】
図示された実施において、ロボット102はそれぞれベース110と、リンク112a、112b(2つのみ示され、まとめて112)の組により形成された付属物(又は、付属肢/appendage)111(1つのみ示される)とジョイント114の組(1つのみ示される)を含み、ジョイント114の各々が、リンク112の各々のペアを物理的に連結している。ロボット102はまた、別のリンク112bに対して、又はベース110に対して、1つのリンク112aの動きを駆動する、1つ又は複数のアクチュエータ116(1つのみ示される)を含むことができる。アクチュエータ116は、制御信号又は駆動信号に応答してリンク機構を移動させるように結合され動作可能な、例えば、電気モータ、ステッピングモータ、ソレノイド、電磁石、空気圧アクチュエータ又は油圧アクチュエータの、多種多様な形態のいずれかをとることができる。空気圧アクチュエータは例えば、1つ又は複数のピストン、シリンダ、弁、加圧ガスのリザーバ、及び/又は圧力源(例えば、圧縮機、ブロワ)を含むことができる。油圧アクチュエータは例えば、1つ又は複数のピストン、シリンダ、弁、加圧流体(例えば、低圧縮性の油圧流体)のリザーバ、及び/又は圧力源(例えば、圧縮機、ブロワ)を含み得る。ロボット102はまた、エンドエフェクタ又はエンドオブアームツール118(図1では1つのみ示す)、例えば、環境100内のターゲットオブジェクト108に物理的に係合するための対向可能な指、フック又は真空ポートを有する把持器を含むことができる。ロボット102のうちの1つ又は複数は例えば、1つ又は複数のロボット搭載センサー(例えば、カメラ、位置又は回転エンコーダ、近接センサー、慣性センサー)を担持することができる。いくつかの実装形態では、ロボット102のうちの1つ又は複数が例えば、自律車両の形態をとり得る。
【0030】
知覚システム120は1つ又は複数の環境センサー122a、122b、122c、122d(4つ示し、まとめて122)及び任意選択の知覚コンピュータシステム123から構成されてもよい。本明細書で説明されるように、環境100内のセンサー122の位置及び向き、さらには環境100内のセンサー122の総数は、オクルージョンを低減又は排除さえするために最適化され得、それによって、1つ又は複数のタスクを完了するようにロボットを駆動するための動作計画及び動作プランを改善する。
【0031】
環境センサー122は多種多様な形態又はタイプ、例えば、1つ又は複数のデジタルカメラ122a、122b(例えば、飛行時間型デジタルカメラ、3Dカメラ)、1つ又は複数のモーションセンサー(例えば、受動赤外線モーションセンサー)又はレーダ122c、1つ又は複数のLIDARセンサー122d、1つ又は複数のマイクロフォン(図示せず)、1つ又は複数の重量センサー又はロードセル(図示せず)、1つ又は複数の光電セル(又は、電気アイ/electric eye)(例えば、IR光源及びIRセンサーを含む受動赤外線(IR)センサー)(図示せず)、1つ又は複数のエンコーダ(例えば、ポジション(positon)エンコーダ、ロータリエンコーダ、リードスイッチ)(図示せず)、1つ又は複数の温度センサー(図示せず)、湿度センサー(図示せず)、及び/又は1つ又は複数の圧力センサー(図示せず)の何れかを取り得る。センサー122は障害物、ターゲットオブジェクト、ロボット、及び/又は環境100内の他の物体の特性(例えば、位置、向き、形状、占有率、移動、速度)を含む環境100の特性を検出する。センサー122は収集されたセンサー情報又はセンサーデータを収集し、任意選択で前処理する、任意選択の知覚コンピュータシステム123に、有線で、光学的に、及び/又は無線で、信号を提供することができる。知覚情報又はデータは1つ又は複数のセンサー(例えば、カメラ、ステレオカメラ、飛行時間カメラ、LIDAR)を介して感知されるような、及び/又は、ロボット102が様々な異なるシナリオのタスクを実行するように動作する環境の表現のそれぞれの離散化を生成し得る、知覚コンピュータシステム123によって障害物のデジタル表現に変換されるような、生データであってもよい。少なくともいくつかの実装形態では、知覚データが点群の形態をとってもよい。
【0032】
オプションの知覚コンピュータシステム123は回路、例えば、1つ又は複数のプロセッサ及び/又は1つ又は複数の非一時的プロセッサ可読媒体(例えば、不揮発性メモリ、揮発性メモリ、回転(又は、スピニング)記憶媒体)を含むことができ、例えば、非一時的プロセッサ可読媒体によって記憶された、プロセッサ実行可能命令の1つ又は複数の組を実行し得る。知覚コンピュータシステム123はセンサー122のうちの1つ又は複数に通信可能に(例えば、有線で、光学的に、無線で)結合されて、直接的又は間接的のいずれかで、感知された情報、例えば、知覚データを受信することができる。知覚コンピュータシステム123は、その知覚データに少なくとも部分的に基づいて、環境100のデジタル又は仮想モデル(「環境表現」として示される)132を生成することができる。
【0033】
特に、少なくともいくつかの実装形態では、1つ又は複数のプロセッサによるプロセッサ実行可能命令の実行が知覚コンピュータシステム123に、受信されたセンサー情報の一部又はすべてを処理又は前処理させ得る。本明細書で説明されるように、知覚コンピュータシステム123は、実行時中の所与の期間に環境100内に存在する任意の障害物を含む、3次元操作環境100の1つ又は複数のデジタル表現又はモデル132を生成することができる。環境100のデジタル表現又はモデル132は本明細書で説明されるように、所与のロボット102のレイアウトの最適化及び/又は運動計画のために有利に使用され得る。デジタル表現又はモデル132は多種多様な形態、例えば、占有グリッドのいずれかをとることができる。
【0034】
レイアウトオプティマイザコンピュータシステム124は有利には環境100内のセンサー122のうちの1つ又は複数の各々について、最適化されたセンサーのポーズ(すなわち、センサーの位置及び向き)を決定し、環境100内のセンサー122の総数さえも決定し得る。特に、レイアウトオプティマイザコンピュータシステム124は少なくともセンサーの最適化されたレイアウトを決定することができ、それは、有利にはオクルージョン、例えば、ロボットが一連のロボットポーズを通って(又は、介して)移動してタスクを完了するときにロボットによって引き起こされるオクルージョンを低減又は排除さえし、それによって、1つ又は複数のタスクを完了するようにロボット102を駆動するための動作計画及び動作プランを改善する。いくつかの実装形態では、レイアウトオプティマイザコンピュータシステム124がさらに、例えば米国特許出願第62/991,487号に記載されているように、環境102内のロボット102の最適化されたレイアウト(例えば、ロボットのベースの位置及び向き)を決定することができ、それによって、1つ又は複数のタスクを完了するようにロボット102を駆動するための動作計画及び動作プランを改善する。
【0035】
レイアウトオプティマイザコンピュータシステム124は回路、例えば、1つ又は複数のプロセッサ及び/又は1つ又は複数の非一時的プロセッサ可読媒体(例えば、不揮発性メモリ、揮発性メモリ、回転記憶媒体)を含むことができ、例えば、非一時的プロセッサ可読媒体によって記憶された、プロセッサ実行可能命令の1つ又は複数の組を実行し得る。レイアウトオプティマイザコンピュータシステム124は、知覚コンピュータシステム123に通信可能に(例えば、有線で、光学的に、無線で)結合されて、環境100のデジタル又は仮想モデル(「環境表現」として示される)132を受信することができ、又は代替的に、センサー122のうちの1つ又は複数に通信可能に(例えば、有線で、光学的に、無線で)結合されて、直接的又は間接的のいずれかで、感知された情報、例えば、知覚データを受信することができる。
【0036】
最適化は、静的オブジェクトによって占有されるボリューム又は領域を含む環境の知識、環境における各ロボット(例えば、各ロボットのベース)の位置及び向きの知識、運動計画ロードマップ(例えば、ロボットのC空間において表される可能なロボットポーズ及びそれらの間の遷移のグラフ)の知識、及び/又はロボット(複数可)によって実行されるべきタスクの組のうちの1つ又は複数を採用し得る。最適化は、有限集合の候補センサーポーズを使用することもできる。各候補センサーポーズは、環境内のセンサーの可能な位置及び可能な向きのタプルを表す。例えば、候補センサーポーズは環境内の表面に対応する2次元表面にわたって、例えば、天井又は壁にわたって、複数の位置の各々において複数のポーズを含み得る。
【0037】
少なくともいくつかの実装形態では、レイアウトオプティマイザコンピュータシステム124への入力が例えば、床、壁、天井、柱、他の静的障害物等を表す、操作環境又は作業空間100を表す又は特徴付ける1つ又は複数の静的環境モデルを含み得る。操作環境又は作業空間100は1つ又は複数のモデル、例えば、操作環境内の床、壁、天井、障害物及び他のオブジェクトを表す幾何学的モデル(例えば、点群)によって表され得る。これは、例えば、デカルト座標で表すことができる。
【0038】
少なくともいくつかの実装形態では、レイアウトオプティマイザコンピュータシステム124への入力が1組の候補センサーポーズを含み得る。代替的に、プロセッサベースのシステム(複数可)は、候補センサーポーズ集団(又は、母集団/集合/population)生成器(図示せず)を含み得る。候補センサーポーズ集団生成器は提供された入力(例えば、環境又は部屋の物理的モデル)に基づいて、1組の候補センサーポーズを生成する。
【0039】
レイアウトオプティマイザコンピュータシステム124への入力は、マルチロボット操作環境で動作する複数のロボットの各々の1つ又は複数のロボットモデルを含むことができる。ロボットモデルは例えば、サイズ(又は、寸法)又は長さ、リンクの数、ジョイントの数、ジョイントの種類、リンクの数、リンクの長さ、エンドエフェクタの種類、運動の範囲、速度の制限、加速度又はジャーク(又は、加加速度/躍度/加速度の時間的変化の割合/jerk)の制限等、幾何学的形状及び運動学を指定する等、ロボット102の各々を表すか、又はそれらを特徴付けることができる。ロボット102は所与のロボット102a-102cの幾何学的モデルを、例えば、ジョイント、自由度、寸法(例えば、リンケージ(又は、リンク機構)の長さ)によって、及び/又はロボット102a-102cのそれぞれのC空間によって定義する1つ又は複数のロボット幾何学モデルによって表現されてもよい。
【0040】
レイアウトオプティマイザコンピュータシステム124への入力は例えば、ターゲット目標(例えば、ロボットの位置又は構成)として表される、実行されるべきタスクの1つ又は複数の組を含み得る。ターゲットはタスクの組を完了するために、各ロボット又はその一部が順番に又はある時間に移動しなければならない様々な位置又は構成を表すことができる。ターゲットは例えば、それぞれのロボットの構成空間(C空間)で表されてもよい。タスクは例えば、各ロボット102a~102cの終了ポーズ、終了構成又は終了状態、及び/又は中間ポーズ、中間構成又は中間状態の観点から表されることができる。ロボットのポーズ、構成、又は状態は例えば、各ロボット102a-102cのジョイントポジション及びジョイントアングル/ローテーション(例えば、ジョイントのポーズ、ジョイントの座標)の観点から定義することができる。入力は任意選択で、タスク(例えば、ネジ又はナットを締めること、オブジェクトをピッキングし、配置すること)を完了するために、ロボット又はその一部が所与のターゲットに滞留すべき時間の量を指定する1つ又は複数の滞留持続時間を含み得る。滞留持続時間は、有利にはロボットのエンドエフェクタがそれぞれのタスクを完了するために所与のターゲットに留まる必要がある予想される時間量を反映することができる。
【0041】
例えば、プロセッサベースのシステム124は、マルチロボット操作環境の1つ又は複数のモデル132を受信することができる。モデル(複数可)132は複数のロボットが動作する物理的環境を表すことができ、例えば、環境内の床、壁及び様々なオブジェクトを表す。
【0042】
タスクの組は、タスクプランとして指定することができる。タスクプランは、いくつかのロボットによって実行される必要がある番号Tのタスクを指定することができる。タスクプランはロボット毎のベクトルとしてモデル化することができ、ベクトルはそれぞれのロボットが実行すべきタスク、例えば、{タスク7、タスク2、タスク9}の順序付きリストである。タスクベクトルはまた、任意選択で、ロボット又はその一部が所与の構成又はターゲットに滞留すべき持続時間を指定する滞留持続時間を含むことができる。タスクベクトルはまた、タスクを解決することに直接関係しないホームポーズ及び/又は他の「機能的ポーズ」(例えば、「よける」(get out of the way)又は記憶(storage)ポーズ)を指定し得る。ロボットのポーズは、ロボットのC空間において指定されてもよい。
【0043】
ロボット102によるタスクの実行は典型的には動作計画を採用し、次に、衝突検出又は評価を採用する。したがって、1つ又は複数の動作プランナ又は動作計画システム126(1つのみ図示)が、衝突検出又は評価を含む動作計画を実行するために提供され得る。動作プランナ又は動作計画システム126は、知覚コンピュータシステム123又は代替的に直接センサー122に通信可能に結合(例えば、有線で、光学的に、無線で)されて、そこから情報を受信し、受信された情報に少なくとも部分的に基づいて動作プランを生成する。情報は、環境100内に存在する任意の障害物(他のロボット102を含む)を含む、環境100のデジタル表現又はモデル132(環境表現又は「ENVMT REP」として示される)を含み得る。動作プランナ又は動作計画システム126への入力は、ロボット102の運動学的モデル130と、各ロボット102によって実行されるタスク、ターゲット又は目標133の組とを含むこともできる。運動学的モデル130は例えば、階層的データ構造の形態をとることができる。階層データ構造は例えば、1つ又は複数のタイプのツリーの形態をとることができる。例えば、適切な階層データ構造は、オクツリー(又は、オクトツリー/八分木)、軸整列(axis-aligned)バウンディングボックス(AABB)のツリー、有向(oriented)(非軸整列)バウンディングボックスのツリー、球体のツリー、及び/又は他のツリータイプのデータ構造を含み得る。運動学的モデル130は例えば、非階層的データ構造(例えば、ユークリッド距離フィールド)の形態をとることができる。
【0044】
動作プランナ又は動作計画システム126はロボット102の一体(又は、肝要な/integral)部分であって、又は、ロボット102とは離れて(又は、別個で/separate)かつ別個で(distinct)あってもよい。いくつかの実装形態では、動作プランナ(複数可)又は動作計画システム(複数可)126の1つ又は複数の部分がロボット102のそれぞれに搭載されてもよく、一方、1つ又は複数の他の部分はロボット102とは離れて(すなわち、オフボード)いてもよい。動作プランナ(複数可)又は動作計画システム(複数可)126は回路、例えば、1つ又は複数のプロセッサ及び/又は1つ又は複数の非一時的プロセッサ可読媒体(例えば、不揮発性メモリ、揮発性メモリ、回転記憶媒体)を含むことができ、例えば、非一時的プロセッサ可読媒体によって記憶された、プロセッサ実行可能命令の1つ又は複数の組を実行し得る。動作プランナ(複数可)又は動作計画システム(複数可)126は、ロボット102に特定のタスク、例えば、連続する一連のポーズの間で、好ましくは障害物106と衝突せず、又は衝突の可能性を減らして移動させることを実行させるための動作プラン127を生成することができる。動作プランナ(複数可)又は動作計画システム(複数可)126は1つ又は複数のロボット制御システム138に通信可能に(例えば、有線で、光学的に、ワイヤレスで)結合されて、特定のロボット102にその動作計画に従わせる又はその動作計画を実行させるそこへの命令を提供することができる。
【0045】
動作プランナ(複数可)又は動作計画システム(複数可)126は、衝突検出システム140を含むか、又はそれにアクセスすることができる。衝突検出システム140は回路、例えば、1つ又は複数のプロセッサ及び/又は1つ又は複数の非一時的プロセッサ可読媒体(例えば、不揮発性メモリ、揮発性メモリ、回転記憶媒体)を含むことができ、例えば、非一時的プロセッサ可読媒体によって記憶された、プロセッサ実行可能命令の1つ又は複数の組を実行し得る。衝突検出システム140は有利には環境132のデジタル表現又はモデル、及び任意選択でロボットの運動学的モデル130(例えば、運動学的モデル130のデータ構造表現)を採用して、所与のロボットと環境100内の障害物106との衝突の確率を、様々なポーズで、又はポーズ間を移動する際に、決定又は検出又は評価する。これらの障害物106は、環境100内の他のロボットを含むことができる。動作プランナ(複数可)又は動作計画システム(複数可)126及び/又は衝突検出システム140は例えば、2019年8月6日に出願された国際(PCT)特許出願第PCT/US2019/045270号に記載された動作計画システム及び衝突検出システムの形態をとることができる。
【0046】
プロセッサベースのシステム(複数可)(例えば、動作プランナ(複数可)又は動作計画システム(複数可)126及び/又は衝突検出システム140)はその中のロボット102の移動を含む操作環境100をモデル化して、特定の属性、例えば、タスクを完了するのに要求される時間量、タスクを完了する際の衝突の確率又は割合、タスクを完了することの実現可能性又は実現不可能性、タスクを完了するのに必要な移動又は遷移の数、及び/又はタスクを完了する際のエネルギー消費を、決定することができる。プロセッサベースのシステム(複数可)(例えば、動作プランナ(複数可)又は動作計画システム(複数可)126及び/又は衝突検出システム140)は、そのようなことをコストの観点から反映することができ、そのコストは1つ又は複数のコスト関数を介して生成される。
【0047】
ロボット制御システム138は典型的には別個であるが、いくつかの実装形態では共通の回路基板、プロセッサ、又は他の回路内で組み合わせることができる、いくつかの構成要素を含むことができる。例えば、1組のドライバはアクチュエータ116に通信可能に結合された回路を含み、アクチュエータ116(複数可)を駆動して、ロボット102に、定義されたポーズを採用させるか、又は所定の姿勢に移動させることができる。ドライバは例えば、電動モータ、ステッパモータ、ソレノイド、電磁石、油圧ピストン、空気圧ピストン、油圧弁、空気圧弁、真空システム用のポンプ又は圧縮機、油圧システム、及び/又は空気圧システムのうちの任意の1つ又は複数を駆動するモータコントローラ及び同様の回路を含むことができる。
【0048】
図2は、少なくとも1つの例示された実施形態によるシステム200を示す。システム200は図1に示され、それに関して説明される様々な構成要素又は構造を含み又は実装し得る。
【0049】
システム200は、1つ又は複数のセンサー202、任意選択で1つ又は複数の知覚コンピュータシステム203、1つ又は複数のレイアウトオプティマイザコンピュータシステム204、1つ又は複数の動作プランナ206、及び1つ又は複数のロボット208を含むことができる。本明細書で説明されるように、センサー202の各々のそれぞれの位置及び向き、さらにはセンサー202の総数は、レイアウトオプティマイザコンピュータシステム(複数可)204の動作によって有利に決定され得る。
【0050】
1つ又は複数の知覚コンピュータシステム203は、1つ又は複数のセンサー202に通信可能に結合されて、そこから知覚情報又はデータを受信することができる。1つ又は複数の知覚コンピュータシステム203は、1つ又は複数のプロセッサ205及びメモリ207を含むことができる。メモリ207は少なくとも1つのプロセッサ205によって実行されると、少なくとも1つのプロセッサ205に、センサーから情報又はデータを収集させ、3次元操作環境のデジタル表現又はモデルを生成させる、プロセッサ実行可能命令を記憶する。1つ又は複数の知覚コンピュータシステム203は、通信可能に結合されて、3次元操作環境のデジタル表現又はモデルを、例えば、1つ又は複数のレイアウトオプティマイザコンピュータシステム204及び/又は1つ又は複数の動作プランナ206に提供することができる。1つ又は複数の動作プランナ206は、通信可能に結合されて、1つ又は複数の動作コントローラ210を介して1つ又は複数のロボット208に動作プラン127(図1)を提供することができる。
【0051】
前述したように、各ロボット208は付属物の末端にエンドオブアームツール又はエンドエフェクタを備えた、リンクとジョイントの組らなる付属物を備えることができ、及び/又は、そのジョイントを中心にそのリンクを動かすことができる1つ又は複数のアクチュエータ211a、211b、211c(図2に3つ示し、まとめて211)を備えることができる。各ロボット208は例えば、動作プランナ又は動作計画システム206から制御信号を受信し、アクチュエータ211を駆動するための駆動信号を提供する、1つ又は複数の動作コントローラ(例えば、モータコントローラ)210(1つのみ図示)を含むことができる。動作コントローラ210は、アクチュエータ211のうちの特定のものを制御するために専用であり得る。
【0052】
例示的な環境レイアウトオプティマイザコンピュータシステム204について、説明の目的で詳細に説明する。当業者は説明が例示的なものであり、説明及び図示されたレイアウトオプティマイザコンピュータシステム204に対して変形が行われ得ることを認識するであろう。
【0053】
レイアウトオプティマイザコンピュータシステム204は、1つ又は複数のプロセッサ222と、1つ又は複数の関連する非一時的なコンピュータ可読又はプロセッサ可能記憶媒体、例えばシステムメモリ224、ディスクドライブ(複数可)225、及び/又はプロセッサ222のメモリ又はレジスタ(図示せず)222を含む。非一時的なコンピュータ可読又はプロセッサ可読記憶媒体224、225は、システムバス229のような1つ又は複数の通信チャンネルを介してプロセッサ(複数可)222に通信接続されている。システムバス229は、メモリコントローラを有するメモリバス、周辺バス、及び/又はローカルバスを含む、任意の既知のバス構造又はアーキテクチャを採用することができる。このような構成要素の1つ又は複数はさらに、又はその代わりに、1つ又は複数の他の通信チャネル、例えば、1つ又は複数のパラレルケーブル、シリアルケーブル、又は高速通信可能なワイヤレスネットワークチャネル、例えば、ユニバーサルシリアルバス(「USB」)3.0、周辺構成要素相互接続エクスプレス(PCIe)を介して、又はThunderbolt(登録商標)を介して互いに通信し得る。
【0054】
レイアウトオプティマイザコンピュータシステム204はまた、例えば、ネットワークインターフェース(図示せず)を介して、レイアウトオプティマイザコンピュータシステム204の様々な構成要素に直接通信可能に結合又は間接的に通信可能に結合される、1つ又は複数のリモートコンピュータシステム212、例えば、サーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、ウルトラポータブルコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルコンピュータ、及び/又はセンサー(図2には図示せず)に通信可能に結合されてもよい。リモートコンピューティングシステム(例えば、サーバコンピュータ)を使用して、レイアウトオプティマイザコンピュータシステム204をプログラムし、構成し、制御し、又はさもなければ入力データ(例えば、ロボットモデル)を、インターフェースし又は提供することができる。このような接続は1つ又は複数の通信チャネル214、例えば、1つ又は複数のワイドエリアネットワーク(WAN)、例えば、イーサネット(登録商標)、又はインターネットプロトコルを使用するインターネットを介してもよい。いくつかの実装形態では、実行時前計算又は構成時計算(例えば、ロボットのモデリング)はレイアウトオプティマイザコンピュータシステム204とは離れたシステム(例えば、コンピュータシステム212)によって実行され得る。実行時計算は、1つ又は複数のレイアウトオプティマイザコンピュータシステム204及び/又は動作プランナ206によって実行され得る。
【0055】
先に述べたように、レイアウトオプティマイザコンピュータシステム204は1つ又は複数のプロセッサ222(すなわち、回路)、非一時的な記憶媒体224、225、及び種々のシステム構成要素を結合するシステムバス229を含み得る。プロセッサ222は、1つ又は複数の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ(PLC)等の任意の論理処理装置であってもよい。市販のコンピュータシステムの非限定的な例としては米国Intel(登録商標)社が提供するマイクロプロセッサのCeleron、Core、Core 2、Itanium及びXeonファミリー、米国アドバンストマイクロデバイス社が提供するK8、K10、Bulldozer、及びBobcatシリーズマイクロプロセッサ、米国アップルコンピュータ社が提供するA5、A6及びA7シリーズマイクロプロセッサ、米国クアルコム社が提供するSnapdragonシリーズマイクロプロセッサ、米国オラクル社が提供するSPARCシリーズマイクロプロセッサが挙げられるが、これらに限定されない。図2に示される種々の構造の構築及びオペレーションは、「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS」と題された2017年6月9日出願の国際特許出願第PCT/US2017/036880号、「SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME」と題された2016年1月5日出願の国際特許出願公開第WO2016/122840号、「APPARATUS, METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS」と題された2018年1月12日出願の米国特許出願第62/616,783号、「MOTION PLANNING FOR MULTIPLE ROBOTS IN SHARED WORKSPACE」と題された2019年6月24日出願の米国特許出願第62/865,431号、「DIGITAL REPRESENTATIONS OF ROBOT OPERATIONAL ENVIRONMENT, USEFUL IN MOTION PLANNING FOR ROBOTS」と題された2020年3月18日出願の米国特許出願第62/991,487号、及び/又は2019年8月6日出願の国際特許出願第PCT/US2019/045270号に記載された又は記載されたものに類似する構造、技法及びアルゴリズムを実装し又は採用することができる。
【0056】
システムメモリ224は、リードオンリーメモリ(「ROM」)226、ランダムアクセスメモリ(「RAM」)228、フラッシュメモリ230、EEPROM(図では示されていない)を含むことができる。ROM226の一部を形成することができる基本入出力システム(「BIOS」)232は起動中などに、レイアウトオプティマイザコンピュータシステム204内の要素間で情報を転送するのを助ける基本ルーチンを含む。
【0057】
ドライブ225は例えば、磁気ディスクからの読出し及び磁気ディスクへの書込みのためのハードディスクドライブ、ソリッドステートメモリからの読出し及びソリッドステートメモリへの書込みのためのソリッドステート(例えば、フラッシュメモリ)ドライブ、及び/又はリムーバブル光ディスクからの読出し及びリムーバブル光ディスクへの書込みのための光ディスクドライブであってもよい。レイアウトオプティマイザコンピュータシステム204はまた、様々な異なる実施形態において、そのようなドライブの任意の組み合わせを含んでもよい。ドライブ(複数可)225は、システムバス229を介してプロセッサ222と通信することができる。ドライブ(複数可)225は当業者に知られているように、そのようなドライブとシステムバス229との間に結合されたインターフェース又はコントローラ(図示せず)を含むことができる。ドライブ(複数可)225及び関連するコンピュータ可読媒体は、レイアウトオプティマイザコンピュータシステム204のためのコンピュータ可読及び/又はプロセッサ可読及び/又は実行可能命令、データ構造、プログラムモジュール、及び他のデータの不揮発性記憶装置を提供する。当業者は、WORMドライブ、RAIDドライブ、磁気カセット、デジタルビデオディスク(「DVD」)、ベルヌーイカートリッジ、RAM、ROM、スマートカード等、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体が使用され得ることを理解するであろう。
【0058】
実行可能な指示及びデータはシステムメモリ224に、例えば、オペレーティングシステム236、1つ又は複数のアプリケーションプログラム238、他のプログラム又はモジュール240及びプログラムデータ242に記憶することができる。アプリケーションプログラム238はプロセッサ222(複数可)に、センサー又は知覚データを収集又は受信すること、3次元環境132(図1)の表現又はモデルを受信又は生成すること、ロボット208の運動学的モデル130(図1)を受信すること、タスクを実行している間にロボットの移動から生じるであろうオクルージョンを含む、環境内のオブジェクトによるセンサーのオクルージョンを低減又は排除するセンサー(の)ポーズを最適化することのうちの1つ又は複数を実行させるプロセッサ実行可能命令を含み得る。環境100内のセンサーの最適化された(例えば、必ずしも最適ではない)レイアウトを決定するために、プロセッサ実行可能命令はプロセッサ222(複数可)に、最適化されたポーズ及び/又はセンサーの最適化された総数を決定するために、オクルージョンを表すコスト値を割り当て、コスト値を集約し、コスト値を分析して、複数の候補センサーポーズの各々を評価させることができる。プロセッサ実行可能命令の実行はさらに、プロセッサ(複数可)222に、その環境内のロボットのロボットポーズ(例えば、ベースの位置及び/又は向き)を最適化させることができる。そのような操作は(例えば、図3及び7を参照して)本明細書に記載され、参照により本明細書に組み込まれる参照文献に記載されるように実行することができる。アプリケーションプログラム238は、プロセッサ222に他の操作、例えば、任意選択で(センサーを介して取り込まれた)知覚データを処理させる、1つ又は複数の機械可読及び機械実行可能命令を含み得る。プロセッサ実行可能命令はプロセッサ222に、その知覚データから表現又はモデルを構築させる。いくつかの実装形態では、プロセッサ実行可能命令が米国特許出願第62/991,487号に記載されているように、所与のロボットによって占有されている領域を含むよりも多くのボリュームを含み、そのボリュームが非占有であることを示す表現又はモデルを、プロセッサ222に構築させ得る。そのようなものは、例えば、ロボットから延在する様々な構造(例えば、ケーブル)を考慮するために使用され得る。アプリケーションプログラム238は例えば、定義されたタスクを実行する際に、プロセッサ(複数可)222に、様々な軌道に沿ったロボットの動きをシミュレートさせる、1つ又は複数の機械実行可能命令をさらに含み得る。アプリケーションプログラム238はさらに、プロセッサ222に、本明細書及び参照により本明細書に組み込まれる参照文献に記載される様々な他の方法を実行させる1つ又は複数の機械実行可能命令を含むことができる。
【0059】
図2にはシステムメモリ224に記憶されているように示されているが、オペレーシングシステム236、アプリケーションプログラム238、他のアプリケーション、プログラム/モジュール240、及びプログラムデータ242は他の非一時的なコンピュータ又はプロセッサ可読媒体、例えばドライブ(複数可)225に記憶され得る。
【0060】
必須ではないが、実装の多くはコンピュータ又はプロセッサ可読媒体に記憶され、1つ又は複数のコンピュータ又はプロセッサによって実行されるプログラムアプリケーションモジュール、オブジェクト、又はマクロ等、コンピュータ実行可能命令の一般的なコンテキスト(又は、文脈)で説明される。種々の実施形態においては、オペレーションが完全にハードウェア回路で、又はシステムメモリ224等のメモリストレージに格納されたソフトウェアとして実行され、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)プロセッサ、プログラムドロジックコントローラ(PLC)、電気的プログラマブルリードオンリーメモリ(EEPROM)等の1つ又は複数のハードウェアプロセッサ222によって、又はメモリストレージに格納されたハードウェア回路及びソフトウェアの組合せとして実行されることができる。
【0061】
レイアウトオプティマイザコンピュータシステム204は任意選択で、1つ又は複数の入力/出力構成要素、例えば、モニタ又はタッチスクリーンディスプレイ244、キーパッド又はキーボード246、及び/又はコンピュータマウス248等のポインティングデバイスを含み得る。
【0062】
当業者は、例示された実装、並びに他の実装がロボット、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブルコンシューマエレクトロニクス、パーソナルコンピュータ(「PC」)、ネットワーク化されたPC、ミニコンピュータ、メインフレームコンピュータ等を含む、他のシステム構造及び配置、及び/又は他のコンピューティングシステム構造及び配置で実施され得ることを理解するであろう。実装又は実施形態又はその一部は、(例えば、構成時及び実行時に)通信ネットワークを介してリンクされたリモート処理デバイスによってタスク又はモジュールが実行される分散コンピューティング環境において実施され得る。分散コンピューティング環境では、プログラムモジュールがローカル及びリモートメモリ記憶装置又はメディアの両方に配置され得る。しかしながら、センサーのポーズのための最適化されたレイアウトを決定することを含む、動作を改善するのを助けるためには、ある種の情報がどこに、そしてどのように記憶されるかが重要であり得る。
【0063】
動作プランナ又は動作計画システム206は、1つ又は複数のプロセッサ250と、1つ又は複数の関連する非一時的コンピュータ可読又はプロセッサ可読記憶媒体、例えば、システムメモリ252、ディスクドライブ(図示せず)、及び/又はプロセッサ250のレジスタ(図示せず)とを備え得る。非一時的コンピュータ可読又はプロセッサ可読記憶媒体(例えば、システムメモリ252)は、システムバス254のような1つ又は複数の通信チャネルを介してプロセッサ250に通信可能に結合される。システムバス254は、メモリコントローラを備えたメモリバス、周辺バス、及び/又はローカルバスを含む、任意の既知のバス構造又はアーキテクチャを採用することができる。このような構成要素のうちの1つ又は複数はさらに、又は代替として、1つ又は複数の他の通信チャネル、例えば、1つ又は複数のパラレルケーブル、シリアルケーブル、又は高速通信可能なワイヤレスネットワークチャネル、例えば、ユニバーサルシリアルバス(「USB」)3.0、周辺機器構成要素相互接続エクスプレス(PCIe)を介して、又はThunderbolt(登録商標)を介して互いに通信し得る。1つ又は複数の通信ポート(図示せず)は、動作プランナ又は動作計画システム206と知覚コンピュータシステム203及び/又は動作コントローラ210との間の通信を提供することができる。動作プランナ又は動作計画システム206は任意選択で、コンピュータ又は端末(図示せず)に通信可能に結合され(例えば、有線で、光学的に、無線で)、ユーザ入力(例えば、モーションサブディビジョン粒度値(motion subdivision granularity value)又は仕様の指示)を可能にすること、ユーザ出力を提供することができる。
【0064】
動作プランナ又は動作計画システム206は、センサー202を介して収集された知覚情報を表すか、又はさもなければそれに基づく環境の表現又はモデルを受信することができる。動作プランナ又は動作計画システム206はまた、ロボットモデル、タスク、ターゲット目標、ロボットの総数に対する制限、ロボットごとのタスクに対する制限、変数又は他のパラメータに対する限度(又は、境界/bounds)又は制約、及び/又は反復に対する制限を受信し得る。
【0065】
動作プランナ又は動作計画システム206は動作プランナ又は動作計画システム206に動作計画を実行し、通常、衝突評価に依存して、ロボットがタスクを実行するための動作プランを生成させるプロセッサ実行可能命令(アプリケーション256)を実行する。動作プランナ又は動作計画システム206は例えば、衝突検出又は評価を実行することによって動作プランを構築し、衝突検出又は評価に基づいて動作計画グラフ内のエッジのコストを更新し、経路探索又は評価を実行することができる。
【0066】
いくつかの実装形態では、センサーポーズの最適化が全体的な作業空間の最適化の一態様であり得る。共有空間の最適化はまた、例えば米国特許出願第62/964,405号に記載されているように、共有空間で動作する各ロボットのそれぞれのベースの位置及び/又は向きの最適化を含むことができる。そのようなものは、例えば、候補ソリューションの集団(例えば、ロボットのベースのための候補位置及び向き)を生成すること、候補ソリューションのモデリング、モデリングに少なくとも部分的に基づいてそれぞれの候補ソリューションに関連するコストを生成又は決定すること、ロボットのそれぞれのベースの位置及び向き、ロボットのそれぞれの1つへのタスクの割当て、及びロボットのそれぞれのターゲットシーケンスのうちの2つ又はそれ以上についての2つ又はそれ以上の非同種パラメータの組にわたって共最適化(co-optimize)する最適化エンジンによって候補ソリューションの集団に対して最適化を実行すること、及び/又はマルチロボット操作環境においてロボットを位置決め及び向きづけし、そのロボットにタスクを実行させるために使用され得る出力を提供することを含み得る。
【0067】
図3は、センサーポーズの最適化を実行し、任意選択で、動作計画を実行し、操作環境における1つ又は複数のロボットの動作を制御する、ための、プロセッサベースのシステムの動作の方法300を、少なくとも1つの図示された実装形態に従って示す。プロセッサベースのシステムは、少なくとも1つのプロセッサと、データ及びプロセッサ実行可能命令のうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体と、を備えることができる。少なくとも1つのプロセッサによって実行されると、プロセッサ実行可能命令は少なくとも1つのプロセッサに、方法300の様々な動作又は行為を実行させる。
【0068】
方法300は1つ又は複数のセンサーのそれぞれの位置及び/又は向きを決定して、操作環境のカバレッジを強化するために、すなわち、オクルージョンの発生を低減させたカバレッジを提供するために実行され得る。概要セクションで前述したように、オクルージョンを低減することは、ロボットのための動作計画を著しく強化し、よりロバスト及び/又は実行するのにより効率的な動作プランを生成し、及び/又は動作計画を実行するのに必要な計算リソースを低減することができる。方法300の実行が最適な(すなわち、客観的に最も最適な)ソリューションをもたらさず、むしろ最適化された又は改善されたソリューションのみをもたらし得るとしても、そのようなことは本明細書ではセンサーポーズを最適化することとして言及される。配置されるセンサーの総数は方法の実行前に知られていてもよく、知られていなくてもよく、実際には、終了条件(例えば、指定された又は最適化されたタスク完了時間)に達したときに、何回かの方法の反復後にのみ決定されてもよい。多くの実施形態では、センサーの各々がセンサーの位置及び向きによって指示される操作環境の一部分を包含するそれぞれの視野を有するデジタルカメラの形態をとる。しかしながら、本明細書で説明される様々な実装形態はデジタルカメラに限定されず、むしろ、限定はされないが、レーダ、LIDAR、ソナー、受動赤外線(PIR)動き検出器等を含む、1つ又は複数のロボットが動作する操作環境における感知条件において採用され得るほぼ任意のタイプのセンサーに適用され得る。
【0069】
前述のように、最適化は、静的オブジェクトによって占有されるボリューム又は領域を含む、環境の知識(例えば、知覚データ又は情報)、環境内の各ロボットの位置及び向きの知識(例えば、各ロボットのベース)、各ロボットについての動作計画ロードマップの知識(例えば、ロボットのC空間において表される可能なロボットポーズ及びそれらの間の遷移のグラフ)、及び/又はロボットによって実行されるべきタスクの組のうちの1つ又は複数を採用し得る。
【0070】
最適化は、有限集合の候補センサーポーズを使用することもできる。各候補センサーポーズは、環境内のセンサーの可能な位置及び可能な向きのタプルを表す。例えば、候補センサーポーズは環境内の表面に対応する2次元表面にわたって、例えば、センサーを取り付けるのに適した天井又は壁にわたって、複数の位置の各々において複数のポーズを含むことができる。候補センサーポーズの組は、様々な方法で決定され又は生成され又は精緻化され得る。例えば、候補センサーポーズの組は、ランダムに生成されるか、又は環境100内で利用可能なすべての位置及び向きからランダムに選択され得る。例えば、候補センサーポーズの組は、環境100内のすべての利用可能な表面にわたって均一に離間されるように選択することができる。1つ又は複数のヒューリスティックを適用して、有限集合の候補センサーポーズを決定する又は生成する又は精緻化することができる。例えば、センサーを取り付けることができる及び/又は電源(例えば、電気コンセント又はジャンクションボックス)を有する位置のみが、候補センサーポーズの組に含まれてもよい。
【0071】
いくつかの実装形態では、C個の候補センサーポーズの集団に対する最適化が最適化エンジンを介して実行され得る。最適化エンジンは例えば、オクルージョン分析、例えば、1つ又は複数のロボットへのタスク割り当て及び/又は1つ又は複数のロボットのための運動計画に関して実行されるオクルージョン分析に基づいて、最適化された候補センサーポーズを選択することができる。最適化エンジンは、プロセッサ実行可能命令を実行する1つ又は複数のプロセッサとして実装されてもよい。少なくともいくつかの実装形態では、最適化エンジンが最適化を実行する際にロボット環境シミュレータと相互作用することができ、例えば、タスクを実行する際の一連のロボットポーズを通るロボット移動のシミュレーションに少なくとも部分的に基づいてオクルージョンを分析することができる。ロボット環境シミュレータは効率(例えば、タスクの完了までの時間)及びそれぞれの運動計画の衝突の確率又は割合を特徴付けることができる。例えば、いつ十分な数のセンサーがポーズをとったかを決定する等、終了条件を決定するために効率的が使用され得る。最適化エンジンは、その候補センサーポーズに関連するそれぞれのコストに少なくとも部分的に基づいて、候補センサーポーズのうちの1つを選択することができる。最適化エンジンは、最適化からの出力を提供する。特に、最適化エンジンは出力として、環境内でセンサーを位置決めし、向きづけるための位置及び向きを提供することができる。
【0072】
方法300は302において開始し、例えば、プロセッサベースのシステム又はその構成要素の電源投入、コマンドの受信、又は呼び出しルーチンからの起動(invocation)に応答して開始する。
【0073】
任意選択で、304において、プロセッサベースのシステム又はその構成要素は操作環境において動作する1つ又は複数のロボットの各々のそれぞれのベースのそれぞれの位置及び/又は向きを最適化する。米国特許出願第62/964,405号に教示されているものを含むが、これらに限定されない、ロボット(複数可)のベースの位置及び/又は向きを最適化するための様々なアプローチ及び技法を使用することができる。ロボット(複数可)のベースの位置及び/又は向きが最適化されるかどうかにかかわらず、ロボット(複数可)のベースの位置及び/又は向きの知識、並びにロボット(複数可)のそれぞれの運動計画ロードマップの知識は、タスクを実行する際にロボットが移動するために利用可能な様々なロボットポーズを考慮に入れる、センサーのポーズの最適化を容易にする。実行されるべきタスクの知識は同様に、センサーポーズ及びセンサーの総数の最適化を容易にすることができる。
【0074】
306において、プロセッサベースのシステム又はその構成要素は、候補センサーポーズカウンタIを初期化し、例えば、候補センサーポーズカウンタIをゼロに設定する。候補センサーポーズカウンタIは、プロセッサベースのシステム又はその構成要素が1つ又は複数のロボットが動作する操作環境においてセンサー(例えば、デジタルカメラ)にポーズをとらせる際に使用されるべき候補センサーポーズを評価することの一部として、複数の候補センサーポーズを通して反復することを可能にするために使用される。
【0075】
308において、プロセッサベースのシステム又はその構成要素は、候補センサーポーズカウンタIをインクリメントする。
【0076】
310において、プロセッサベースのシステム又はその構成要素は、現在の候補センサーポーズカウンタIによって示される候補センサーポーズについてオクルージョン評価を実行する。オクルージョン評価は1つ又は複数のロボットのそれぞれがそれぞれの複数のロボットポーズJを移動又は遷移するときの、操作環境内の1つ又は複数のロボットのオクルージョン効果を(もしあれば)説明(又は、考慮)する。操作環境が2つ又はそれ以上のロボットを含む場合、オクルージョン評価は、2つ又はそれ以上のロボットについてのロボットポーズの組み合わせのオクルージョン効果を説明する。例えば、オクルージョン評価は第1のロボットがロボットポーズのそれぞれの第1のものである間の複数のそれぞれのロボットポーズのそれぞれにおける第2のロボットのオクルージョン効果を評価し、次いで、第1のロボットがロボットポーズのそれぞれの第2のものである間の複数のそれぞれのロボットポーズのそれぞれにおける第2のロボットのオクルージョン効果を評価することができる。オクルージョン評価は例えば、ロボットポーズの組からロボットポーズを選択し、ロボットポーズを一度に1つずつ分析するなど、1つ又は複数のロボットに対するオクルージョン効果を評価することができる。ロボットポーズの組は、1つ、2つ又はそれ以上ロボットに対するロボットポーズを含むことができる。オクルージョン評価は、2つ又はそれ以上のロボットの各々に対するロボットポーズの様々な組合せに対するオクルージョン効果を評価することができる。代替的に、ロボットポーズの組合せのサブセットが定義されてもよく(例えば、1つ又は複数の定義されたタスクを実行する際に使用されて得るロボットポーズ)、又は評価される総数を制限するためにヒューリスティックが採用されてもよい(評価される総数を制限するために使用されるヒューリスティックであってもよい)。オクルージョン評価の例示的な実装形態は、以下に示す方法300の非限定的な例示的な実装形態において提供される。
【0077】
312において、プロセッサベースのシステム又はその構成要素は、候補センサーポーズカウンタIがNに達したかどうかを判定する。候補センサーポーズカウンタIがNに達していない場合、制御は308に戻り、候補センサーポーズカウンタIがインクリメントされる。候補センサーポーズカウンタIがNに達した場合、制御は314に進む。
【0078】
314において、プロセッサベースのシステム又はその構成要素は、オクルージョン評価に基づいてセンサーKにポーズをとらせるために、候補センサーポーズを選択する。その選択は例えば、それぞれの候補センサーポーズにおけるセンサーの位置決め及び向きづけのオクルージョン効果を表すコスト値に基づくことができる。コスト値を決定し、コストに基づいて選択する実施例は、以下に示す方法300の非限定的な例示的実装形態において提供される。選択されたセンサーポーズは候補センサーポーズの組から除去されることができ、その結果、同じセンサーポーズは後続の反復において選択されない。
【0079】
任意選択で、316において、センサーKは、選択された候補ポーズに従って位置決めされ、向きづけされる。そのようなことは、手動で達成されてもよい。代替的に、そのようなことは例えば、センサーが物理的に取り付けられるか、又はセンサーをピックアンドプレースする1つ又は複数のロボットの移動を介して、自動的に達成されてもよい。いくつかの実装形態では、センサーのポージングがすべてのセンサーについての許容可能なレイアウトが決定されるまでモデル化され得る。
【0080】
318において、プロセッサベースのシステム又はその構成要素は、終了条件に達したかどうかを決定する。終了条件に達した場合、制御は320に進む。終了条件に達していない場合、制御は306に戻り、候補センサーポーズの組のうちの候補センサーポーズが分析され、別のセンサーポーズが選択される。
【0081】
終了条件は、様々な形態のうちの任意の1つ又は複数をとり得る。例えば、1つの終了条件は定義された閾値を下回るオクルージョンの尺度(例えば、オクルージョンの量又はオクルージョンの総数)であり得る。追加的に又は代替的に、1つの終了条件は制限値に達するオクルージョンの低減の改善の尺度であり得る(例えば、各反復は、所与の用途についてさらなる改善がもはや正当化されなくなるまで、オクルージョンの低減が徐々に小さくなる)。追加的に又は代替的に、1つの終了条件は、オクルージョンのさらなる低減が動作計画のための速度を著しく改善しないか、又は計算リソースを低減しないという決定であり得る。追加的又は代替的に、1つの終了条件は、オクルージョンのさらなる低減がポーズセンサーによって収集された情報を使用して生成された動作プランのロバスト性、又はロボットによる動作プランの実行効率を著しく改善しないという決定であり得る。追加的に又は代替的に、1つの終了条件は決定されたタスク完了時間(すなわち、ロボット(複数可)が1つ又は複数のタスクを完了するための時間)に基づくことができ、例えば、決定されたタスク完了時間が指定されたしきい値内にあること、又は、いくつかのサイクルにわたる決定されたタスク完了時間の改善(例えば、低減)の量又は速度が所望の速度で収束するか、又は改善しないことである。収束は例えば、候補センサーポーズの現在の集団にわたるコストの標準偏差がイプシロン値未満である場合に発生したと見なされ得る。追加的に又は代替的に、1つの終了条件は、所与の動作プランのために利用可能である衝突のない経路の評価に基づくことができる。追加的に又は代替的に、1つの終了条件は、許容された又は利用可能なセンサーの最大数であり得る。追加的に又は代替、1つの終了条件は、許容される反復の最大数であり得る。追加的に又は代替的に、1つの終了条件は、実行又は反復時間のために許される最大時間であり得る。
【0082】
320において、プロセッサベースのシステム(例えば、知覚コンピュータシステム123)又はその構成要素は、任意選択で、それぞれのセンサーポーズにある1つ又は複数のセンサーを介して収集されたセンサー情報を受信する。例えば、デジタルカメラの形態の1つ、2つ又はそれ以上のセンサーは操作環境の画像を収集し、動作計画において使用するために画像情報をプロセッサベースのデバイスに供給することができる。カメラは、電磁スペクトルの人間の目に見える又は「白色光」部分、電磁スペクトルの赤外線部分、電磁スペクトルの紫外線部分、又はそれらの組合せで動作することができる。追加的に又は代替的に、レーダ、LIDAR、ソナー、PIR動き検出器の形態の1つ、2つ又はそれ以上のセンサーは操作環境から情報を収集し、収集された情報を、動き計画において使用するためにプロセッサベースのデバイスに供給することができる。収集された画像又は他の情報は例えば、操作環境における1つ又は複数のオブジェクトの存在、位置、形状、移動、軌道、速度又は加速度を表し得る。オブジェクトは例えば、ワークピース、障害物及びロボットを含むことができる。いくつかの実装形態では、第1のロボットが第2のロボットに対する障害物を構成し得ることに留意されたい。
【0083】
324において、プロセッサベースのシステム(例えば、動作プランナ(複数可)126)又はその構成要素は、収集されたセンサー情報に少なくとも部分的に基づいて、操作環境内の1つ又は複数のロボットのための動作計画を任意選択で実行する。動作計画は、国際(PCT)特許出願:WO2019/183141として公開されたPCT/US2019/023041、WO2016/122840として公開されたPCT/US2016/012204、WO2019/0217857として公開されたPCT/US2017/036880、WO2019/139815として公開されたPCT/US2019/012209、WO2019/156984として公開されたPCT/US2019/016700、WO2020/040979として公開されたPCT/US2019/045270及びPCT/US2019/064511及び米国特許出願:62/856548、62/865431、62/890830及び62/991487に記載されたものの少なくともいくつかの多様な形態のいずれかをとることができる。
【0084】
326において、プロセッサベースのシステム又はその構成要素(例えば、ロボット制御システム(複数可)138、動作コントローラ210)は、任意選択で、生成された動作プランに従って、操作環境内の1つ又は複数のロボットの1つ又は複数の部分の移動を引き起こす。そのようなものは、ロボットに存在するか、又はロボットに通信可能に結合された1つ又は複数の動作コントローラに動作プランを提供することを含むことができる。動作コントローラはロボットの1つ又は複数のアクチュエータ(例えば、電気モータ、ソレノイド、電磁石、ピストン及びシリンダ、関連する弁及び/又は圧縮機)を制御して、動作を引き起こす。動作プランは例えば、ロボット付属物をいくつかのロボットポーズの間で遷移させて、例えば、1つ又は複数のタスクを実行することができる。ロボットの1つ又は複数の部分の移動を引き起こすことは、国際(PCT)特許出願:WO2019/183141として公開されたPCT/US2019/023031、WO2016/122840として公開されたPCT/US2016/012204、WO2019/0217857として公開されたPCT/US2017/036880、WO2019/139815として公開されたPCT/US2019/012209、WO2019/156984として公開されたPCT/US2019/016700、WO2020/040979として公開されたPCT/US2019/045270及びPCT/US2019/064511及び米国特許出願:62/856548、62/865431、62/890830及び62/991487に記載されたものの少なくともいくつかの多様な形態のいずれかをとることができる。
【0085】
センサーによる操作環境の十分なカバレッジが達成されるか、又は何らかの他の終了条件に達すると、方法300は、再び起動するまで、328で終結又は終了する。いくつかの実装形態では、方法300が操作環境が最初にセットアップされるたびに、又は操作環境の実質的な変化、例えば、ロボットの追加、ロボットのベースの再配置、又は1つ又は複数のセンサーによる情報の収集を妨害する可能性がある固定具又は他の実質的な構造の導入等に応答して、実施される。例えば、環境100内のテーブルの追加は1つ又は複数のカメラの視野を妨害し、センサーポーズの新しい組を決定する要求をトリガすることができる。
【0086】
方法300又はその一部は、ランタイム(実行時)の前に起こり得る構成時(コンフィギュレーション時)又はプレランタイム(実行時前)に実行され得る。これは、有利なことに、応答性が特定の関心事ではないときに、最も計算集約的な作業のいくつかをランタイムの前に実行することを可能にする。方法300の一部、例えば、ロボットの動作計画及び移動は、実行時に実行されてもよい。
【0087】
方法300は順序付けられたフローに関して説明されるが、様々な行為又は動作は多くの実装形態では同時に又は並行して実行される。
【0088】
方法300の非限定的な例示的実装形態を、図4図7を参照して以下に説明する。
【0089】
センサーレイアウトの最適化は、多種多様な最適化アルゴリズム又は技法のいずれかを使用することができる。いくつかの実装形態はコスト関数を採用して、コストを候補センサーポーズに適用し、コスト評価に少なくとも部分的に基づいて様々な候補センサーポーズを評価することができる。
【0090】
例えば、プロセッサベースのシステムは、候補センサーポーズの有限集合Cから候補センサーポーズをサンプリングすることができる。プロセッサベースのシステムは、1つ又は複数のロボットの各々について、ロボットポーズの組RPからロボットポーズをサンプリングすることができる。各ロボットポーズは例えば、ロボットの動作計画ロードマップ内の頂点、又は一対の頂点を接続するエッジに沿った姿勢であってもよく、各エッジは、そのエッジが接続する頂点によって表される2つのポーズの間の有効な遷移を表す。マルチロボット環境の場合、プロセッサベースのシステムは、ロボットのそれぞれの動作計画ロードマップの各々からポーズの組合せをサンプリングすることができる。
【0091】
例示的な実装形態は、候補センサーポーズの各々についてコスト値を初期化することを含み得る。
【0092】
例示的な実装形態は次いで、外部反復ループに入ってもよく、外部反復ループは作業空間内のボクセルごとに実行される。
【0093】
外部反復ループ内で、作業空間内の各ボクセルに対するそれぞれのオクルージョン値が初期化される(例えば、ゼロに設定される)。
【0094】
外部反復ループ内で、作業空間内のすべてのボクセルに対するそれぞれのオクルージョン値が、次いで、決定又は計算される。これは、内部反復ループを実行して、すべてのロボットポーズに対応するオクルージョンをチェックすることを含むことができる。例えば、ロボットポーズの組における各ロボットポーズについて、プロセッサベースのシステムは所与のボクセル(すなわち、外部反復ループの現在の反復において評価されているボクセル)がオクルージョンされているかどうかを、既にポーズをとらされたセンサーに基づいて決定する。特に、各ボクセルは、ポーズをとらされているセンサーがまだ存在していないので、第1の反復においてオクルージョンされる。ボクセルがオクルージョンされている(すなわち、センサーから見えない、又はセンサーによって検出可能でない)と決定された場合、プロセッサベースのシステムは評価が行われる所与のポーズにおいて1つ又は複数のロボットによって占有されている作業空間内のすべてのボクセルのオクルージョン値をインクリメントし、占有されたボリュームはロボットボクセルと呼ばれる。オクルージョン値は、所与のボクセルをセンサーから隠すものの表現である。ボクセルがオクルージョンされていない場合、プロセッサベースのシステムは次のロボットポーズに対処し、最終的には、様々なロボットポーズに対してオクルージョンがチェックされると、内部反復ループから出る。
【0095】
外部反復ループ内で、プロセッサベースのシステムは、次いで、様々なセンサーポーズ候補のコストを集約することができる。例えば、その組内の各候補センサーポーズについて、プロセッサベースのシステムは、所与のボクセルに到達するための総コストを決定又は計算することができる。これは、候補センサーポーズから所与のボクセルまでの直線を想像することによって理解することができる。プロセッサベースのシステムは、その直線に沿った各ボクセルのオクルージョン値を合計する。プロセッサベースのシステムは、この合計されたコストを、所与の候補センサーポーズのコストに加算することができる。
【0096】
外部反復ループを出ると、プロセッサベースのシステムは次いで、コストに基づいて、例えば、最小の関連コストを有する候補センサーポーズを選択することによって、候補センサーポーズを選択することができる。様々な最小コストアルゴリズムを使用することができる。選択されると、センサーはそれに応じて(例えば、物理的に、仮想的に)ポーズをとらされ得る。次いで、本方法は終了条件、例えば、定義された数のセンサーがポーズをとらされること又は何らかの他の基準(例えば、タスク完了時間の収束)が達成されるまで繰り返され得る。特に、各後続の反復はより少ないオクルージョンされたボクセルを有するべきであり、より少ないロボットポーズが、これらのボクセルの各々をオクルージョンする。また、解が保証されない可能性があり、最適化されたいずれかの解が絶対的な最適解ではない可能性がある「欲張り」アルゴリズムを含む、様々なアルゴリズムが使用され得ることに留意されたい。
【0097】
図4図7は、コスト関数を採用する最適化の少なくとも1つの実装形態を表す。他の実装形態は、他のアルゴリズム及び/又はコスト関数を採用し得る。
【0098】
図4は、オクルージョン評価及び候補センサーポーズの選択を実行するための、プロセッサベースのシステムの動作の方法400を、少なくとも1つの図示された実装形態に従って示す。方法400は、方法300(図3)を実行する一部として実行されてもよい。プロセッサベースのシステムは、少なくとも1つのプロセッサと、データ及びプロセッサ実行可能命令のうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体と、を備えることができる。少なくとも1つのプロセッサによって実行されると、プロセッサ実行可能命令は少なくとも1つのプロセッサに、方法400の様々な動作又は行為を実行させる。
【0099】
402において、各候補センサーポーズについて、プロセッサベースのシステム又はその構成要素は、それぞれの候補センサーポーズに位置付けられ、向きづけされている場合、そのセンサーのオクルージョンを表すそれぞれのコスト値を決定する。
【0100】
404において、プロセッサベースのシステム又はその構成要素は、他の候補センサーポーズと比較して、最も低い関連コストを有する候補センサーポーズを選択する。
【0101】
図5Aは、オクルージョンを表すコスト値を決定するための、プロセッサベースシステムの動作の方法500aを、少なくとも1つの図示された実装形態に従って示す。方法500aは、方法300(図3)を実行する一部として実行されてもよい。プロセッサベースのシステムは、少なくとも1つのプロセッサと、データ及びプロセッサ実行可能命令のうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体と、を備えることができる。少なくとも1つのプロセッサによって実行されると、プロセッサ実行可能命令は少なくとも1つのプロセッサに、方法500aの様々な動作又は行動を実行させる。
【0102】
方法500aは502において開始し、例えば、プロセッサベースのシステム又はそのコンポーネントの電源投入、コマンドの受信、又は呼び出しルーチンからの起動に応答して開始する。
【0103】
504において、プロセッサベースのシステム又はその構成要素は、候補センサーポーズの組中の候補センサーポーズのすべてのそれぞれのコスト値を初期化する。コスト値はデータ構造内に保存されてもよく、例えば、コスト値のベクトル内又はレコード内のフィールドとして(又は、オクルージョン値のベクトル内で又はレコード内のフィールドとして)保存されてもよい。
【0104】
506において、外部反復ループのボクセルカウンタVが初期化される。ボクセルカウンタVは例えば、ゼロの値に設定されてもよい。外部反復ループは、各反復において所与のボクセルVのオクルージョンを評価するために実行され、作業空間内のボクセルの全てを反復する。
【0105】
508において、外部反復ループのボクセルカウンタVがインクリメントされる。
【0106】
510において、プロセッサベースのシステム又はその構成要素は、作業空間内のボクセルのすべてのそれぞれのオクルージョン値を初期化する。オクルージョン値は、例えば、コスト値のベクトル内(で)又はレコード内のフィールドとして、データ構造内に保存されてもよい。
【0107】
512において、プロセッサベースのシステム又はその構成要素は、作業空間内のボクセルのすべてについてそれぞれのオクルージョン値を決定する。オクルージョン値はデータ構造内に保存されてもよく、例えば、コスト値のベクトル内(で)又はレコード内のフィールドとして保存されてもよい。これは、例えば、図5Bに示され、以下で説明される方法500bを参照して説明されるように実行され得る。
【0108】
514において、プロセッサベースのシステム又はその構成要素は、候補センサーポーズのコストを集約する。集約されたコストはデータ構造内に保存されてもよく、例えば、例えば、コスト値のベクトル内(で)又はレコード内のフィールドとして保存されてもよい。
【0109】
516において、プロセッサベースのシステム又はその構成要素は例えば、ボクセルカウンタVの値を作業空間内のボクセルの総数と比較して、各ボクセルVがオクルージョンについて評価されたかどうかを決定する。評価されるべき追加のボクセルがある場合、制御は508に戻る。評価されるべき追加のボクセルがない場合、再び起動するまで、制御は方法500aが終結する518に渡る。
【0110】
図5Bは、オクルージョンを表すコスト値を決定するための、プロセッサベースのシステムの動作の方法500bを、少なくとも1つの図示された実装形態に従って示す。方法500bは方法500a(図5A)を、例えば、作業空間内の全てのボクセルに対するそれぞれのオクルージョン値を決定する(図5Aの512)ために、実行する一部として実行することができる。プロセッサベースのシステムは、少なくとも1つのプロセッサと、データ及びプロセッサ実行可能命令のうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体と、を備えることができる。少なくとも1つのプロセッサによって実行されると、プロセッサ実行可能命令は少なくとも1つのプロセッサに、方法500bの様々な動作又は行為を実行させる。
【0111】
方法500bは520において開始し、例えば、プロセッサベースのシステム又はその構成要素の電源投入、コマンドの受信、又は呼び出しルーチンからの起動に応答して開始する。
【0112】
522において、プロセッサベースのシステム又はその構成要素は、内部反復ループのためにロボットポーズカウンタRを初期化する。内部反復ループは、図5Aを参照して説明した外部反復ループに対して内部であると考えることができる。
【0113】
524において、プロセッサベースのシステム又はその構成要素は、内部反復ループのロボットポーズカウンタRをインクリメントする。
【0114】
526において、プロセッサベースのシステム又は構成要素は所与のボクセルVがオクルージョンされているかどうかを決定し、ここで所与のボクセルVは、外部反復ループの現在の反復において評価されているボクセルである。所与のボクセルVがオクルージョンされている場合、制御は528に渡り、プロセッサベースのシステム又は構成要素は現在のそれぞれのロボットポーズ(複数可)R内のロボット(複数可)によって占有されるすべてのボクセルのオクルージョン値をインクリメントする。特に、環境がn個のロボットを含み、各ロボットがp個の可能なロボットポーズを仮定することが可能である場合、内部反復ループにおいて考慮すべきロボットポーズRPの組内のロボットポーズの総数は、積n*pによって与えられ得る。所与のボクセルVがオクルージョンされていない場合、制御は直接530に渡る。
【0115】
530において、プロセッサベースのシステム又はその構成要素は各ロボットポーズがオクルージョンについて評価されたかどうかを決定し、例えば、ロボットポーズカウンタRの値をロボットが利用可能なロボットポーズの総数と比較する。評価されるべき追加のロボットポーズがある場合、制御は524に戻る。評価されるべき追加のロボットポーズがない場合、再び起動するまで、制御は方法500bが終結する532に渡る。
【0116】
図6は、ボクセルのオクルージョン値を決定するための、プロセッサベースのシステムの動作の方法600を、少なくとも1つの図示された実装形態に従って示す。方法600は、方法(複数可)500a、500b(図5A及び図5B)を実行する一部として実行されてもよい。プロセッサベースのシステムは、少なくとも1つのプロセッサと、データ及びプロセッサ実行可能命令のうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体と、を備えることができる。少なくとも1つのプロセッサによって実行されると、プロセッサ実行可能命令は少なくとも1つのプロセッサに、方法600の様々な動作又は行為を実行させる。
【0117】
602において、プロセッサベースのシステム又はその構成要素は、所与のボクセルが既にポーズをとらされた任意のセンサーに基づいて、かつ環境内で動作する1つ又は複数のロボットのためのサンプリングされたロボットポーズを含むロボットポーズRPの組に基づいて、オクルージョンされるかどうかを決定する。特に、その環境が複数のロボットを含む場合、所与のボクセルは、0、1つ、2つ又はそれ以上のロボットによってオクルージョンされてもよい。各ロボットポーズは一度に1つずつ評価することができ、例えば、ロボットポーズRPの組を通して、例えば、第1のロボットポーズから第nのロボットポーズまで反復することができ、ここで、そのロボットポーズRPの組中のロボットポーズは、1つ、2つ又はそれ以上のロボットのためのものであり得る。
【0118】
604において、ボクセルがオクルージョンされている場合、プロセッサベースのシステム又はその構成要素は、それぞれのロボットがそれぞれのロボット又はその一部が所与のボクセルをオクルージョンする特定のロボットポーズであるとき、ロボットによって占有される任意のボクセルのそれぞれのオクルージョン値をインクリメントする。上述のように、所与のピクセルは、2つ又はそれ以上のロボットポーズによって同時にオクルージョンされ得る。
【0119】
図7は、候補センサーポーズのコストを集約するための、プロセッサベースのシステムの動作の方法700を、少なくとも1つの図示された実装形態に従って示す。方法700は、方法(複数可)500a、500b(図5A及び図5B)を実行する一部として実行されてもよい。プロセッサベースのシステムは、少なくとも1つのプロセッサと、データ及びプロセッサ実行可能命令のうちの少なくとも1つを記憶する少なくとも1つの非一時的プロセッサ可読媒体と、を備えることができる。少なくとも1つのプロセッサによって実行されると、プロセッサ実行可能命令は少なくとも1つのプロセッサに、方法700の様々な動作又は行為を実行させる。
【0120】
702において、各候補センサーポーズについて、プロセッサベースのシステム又はその構成要素は、センサーとそれぞれのボクセルとの間で各ボクセルのオクルージョン値を合計する。
【0121】
704において、プロセッサベースのシステム又はその構成要素は、オクルージョン値の合計を、それぞれの候補センサーポーズのコストの累算された合計に加算する。コストの累算された合計は、例えば、オクルージョン値のベクトル内又はレコード内のフィールド(又は、オクルージョン値のベクトル内又はレコード内のフィールドとして)データ構造内に保存されてもよい。
【0122】

本明細書に記載される構造及びアルゴリズムは、少なくともいくつかの実装形態において、カメラ又は他の知覚センサーなしで動作してもよい。例えば、方法300(図1)の第1の反復は、任意のセンサーが環境100(図1)内に配置され及び/又は向きづけされる前に実行することができる。少なくともいくつかの実装形態では、ロボット間の協調がロボットの幾何学的モデル、ロボットがそれぞれの動作プランを通信する能力、及び共有作業空間の幾何学的モデルに依存する。他の実装形態では、例えば、共有作業空間の一部に入ったり占めたりする可能性がある人間又は他の動的障害物を回避するために、視覚又は他の知覚を任意選択で使用することができる。
【0123】
動作プランの問題を解くために多種多様のアルゴリズムが使用される。これらのアルゴリズムの各々は典型的にはロボットの所与のポーズ又はあるポーズから別のポーズへの動きが、ロボット自体又は環境内の障害物のいずれかとの衝突をもたらすかどうかを決定することができる必要がある。仮想的な衝突の評価又は検査はアルゴリズムを実行するために、プロセッサ実行可能命令の記憶された組からプロセッサ実行可能命令を実行するプロセッサを使用して、「ソフトウェアで」実行することができる。仮想的な衝突の評価又は検査は専用ハードウェア回路(例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)内に実装された衝突検査回路)の組を使用して「ハードウェアで」実行することができる。そのような回路は例えば、2つの状態間のそれぞれのモーション又は遷移中にロボット/ロボット付属物又はその一部によって掃引されるボリューム(すなわち、掃引ボリューム)を表し得る。回路は例えば、モーションが任意の障害物と衝突するかどうかを示すブール評価を生成することができ、障害物の少なくともいくつかは、共有作業空間内で動作する他のロボットによるモーション又は遷移の実行中に掃引されるボリュームを表す。
【0124】

実施例1. ロボット操作を容易にするためのプロセッサベースのシステムの動作方法であって、
複数の候補センサーポーズの各々について、第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明する(又は、考慮する/account for)オクルージョン評価を実行するステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために候補センサーポーズのうちの1つを選択するステップ(又は、前記オクルージョン評価に少なくとも部分的に基づいて、候補センサーポーズのうちの1つを選択して第1のセンサーにポーズをとらせるステップ)
を有する、方法。
【0125】
実施例2. 前記センサーがカメラであり、前記カメラが前記候補センサーポーズの各々に対する操作環境のそれぞれの視野を有し、前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップが、前記オクルージョン評価に少なくとも部分的に基づいて、第1のカメラにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップを含む、実施例1に記載の方法。
【0126】
実施例3. 前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を考慮するオクルージョン評価を実行するステップは、前記第1のロボットによって実現可能なポーズのC空間ロードマップからのいくつかのロボットポーズの各々についてオクルージョン評価を実行するステップを含む、実施例1に記載の方法。
【0127】
実施例4. 前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を考慮するオクルージョン評価を実行するステップは、前記第1のロボットによって実行されるべきタスクに少なくとも部分的に基づいて、前記第1のロボットによって実現可能なポーズのC空間ロードマップから選択されるいくつかのロボットポーズの各々についてオクルージョン評価を実行するステップを含む、実施例1に記載の方法。
【0128】
実施例5. 前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を考慮するオクルージョン評価を実行するステップは、前記第1のロボットによって実現可能なポーズのロードマップからサンプリングされたロボットポーズの数の各々についてオクルージョン評価を実行するステップを含み、前記ロードマップは前記ロボットのC空間内のそれぞれのロボットポーズを表すノードの組と、前記ノードのペアを結合し、前記それぞれのエッジが結合する前記ノードによって表される前記それぞれのロボットポーズ間の遷移を表す複数のエッジを備えるグラフの形態である、実施例1に記載の方法。
【0129】
実施例6. 前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を考慮するオクルージョン評価を実行するステップは、前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を考慮するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行するステップを含む、実施例1に記載の方法。評価を実行するステップ
【0130】
実施例7. 前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を考慮するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行するステップは、前記第1のロボットのいくつかのロボットポーズ及び前記第2のロボットのいくつかのロボットポーズを表すロボットポーズの組に基づいて前記オクルージョン評価を実行するステップを含む、実施例6に記載の方法。
【0131】
実施例8. 候補センサーポーズの各々について、前記候補センサーポーズのそれぞれのコスト値を決定するステップをさらに含み、前記それぞれのコスト値はオクルージョンを表す、実施例1に記載の方法。
【0132】
実施例9. 作業空間内の各ボクセルに対して実行される外部反復ループにおいて、
前記作業空間内の少なくとも他のボクセルに対するそれぞれのオクルージョン値を決定するステップであって、前記オクルージョン値は、前記外部反復ループの現在の反復のボクセルが前記オクルージョン値が決定されている前記それぞれのボクセルを少なくとも部分的に占有するように配置されたオブジェクトによって1つ又は複数のセンサーからオクルージョンされるかどうかを表すものである、該ステップと、
前記候補センサーポーズについてのコストを集約するステップ
をさらに含む、実施例請求項1に記載の方法。
【0133】
実施例10. 前記ボクセルに対するそれぞれのオクルージョン値を決定する前に、
各候補センサーポーズに対して、前記候補センサーポーズのそれぞれのコスト値を初期化するステップと、
前記外部反復ループにおいて、作業空間内のすべての前記ボクセルについて、前記ボクセルの前記それぞれのオクルージョン値を初期化するステップ
さらに含む、実施例9に記載の方法。
【0134】
実施例11. 前記外部反復ループの現在の反復の前記ボクセルに対する前記それぞれのオクルージョン値を決定するステップは、
内部反復ループにおいて、前記外部反復ループの現在の反復のボクセルが、すでに位置決めされた任意のセンサーに基づいてオクルージョンされているかどうかを決定するステップと、
前記内部反復ループにおいて、前記外部反復ループの現在の反復の前記ボクセルがオクルージョンされている場合、それぞれのロボットポーズにおいて前記外部反復ループの現在の反復の前記ボクセルをオクルージョンしているロボットポーズのうちの1つにおける、ロボットの形態でオブジェクトによって占有される任意のボクセルのそれぞれのオクルージョン値をインクリメントするステップ
を含む、実施例9に記載の方法。
【0135】
実施例12. 前記センサーポーズ候補のコストを集約するステップは、
各候補センサーポーズについて、前記センサーと、ボクセルオクルージョンが評価されている前記外部反復ループの現在の反復の前記ボクセルとの間の各ボクセルについて前記オクルージョン値を合計するステップと、
その合計を、それぞれの候補センサーポーズについてのコストの累積された合計に加算するステップ
を含む、実施例9に記載の方法。
【0136】
実施例13. 前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップは、前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対する前記候補センサーポーズの関連コストに基づいて、前記候補センサーポーズを選択するステップを含む、実施例1~12のいずれか1項に記載の方法。
【0137】
実施例14. 前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップは、前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対して、前記候補センサーポーズの最も低い関連コストを有する前記候補センサーポーズを選択するステップを含む、実施例1~12のいずれか1項に記載の方法。
【0138】
実施例15. 前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップの後に、
複数の候補センサーポーズの各々について、前記操作環境における少なくとも第1のロボットの、少なくとも前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を考慮するオクルージョン評価を実行するステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、第2のセンサーにポーズをとらせる候補センサーポーズのうちの1つを選択するステップ
をさらに含む、実施例1に記載の方法。
【0139】
実施例16. 前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を考慮するオクルージョン評価を実行するステップは、前記第1のセンサーのための前記候補センサーポーズのうちの前記選択された1つによって指定されるように、位置決めされ、向きづけられた前記第1のセンサーも考慮するオクルージョン評価を実行するステップを含む、実施例15に記載の方法。
【0140】
実施例17. 前記センサーはカメラであり、
前記第1のセンサーのために選択されたセンサーポーズに対応する第1のポーズでカメラのうちの第1のそれによって収集されたセンサー情報を受信するステップと、前記第2のセンサーのために選択されたセンサーポーズに対応する第2のポーズで前記カメラのうちの第2のそれから収集されたセンサー情報を受信するステップと、受信されたセンサー情報に基づいて、少なくとも前記第1のロボットのための動作計画を実行するステップ
をさらに含む、実施例15に記載の方法。
【0141】
実施例18.前記オクルージョン評価に少なくとも部分的に基づいて、第2のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップの後に、
終了条件が達成されるまで、複数の候補センサーポーズの各々について、/前記操作環境における少なくとも第1のロボットの、少なくとも第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を考慮するオクルージョン評価を実行することを繰り返すステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、追加のセンサーにポーズをとらせるために候補センサーポーズのうちの1つを選択するステップ
をさらに含む、実施例15に記載の方法。
【0142】
実施例19. ロボット操作を容易にするためのプロセッサベースのシステムの動作システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、 複数の候補センサーポーズの各々について、第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を考慮するオクルージョン評価を実行させ、
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために候補センサーポーズのうちの1つを選択させる
プロセッサ実行可能命令を記憶する少なくとも1つの非一時的プロセッサ可読媒体
を備える、システム。
【0143】
実施例20. 前記センサーはカメラであり、前記カメラは、前記候補センサーポーズの各々に対する操作環境のそれぞれの視野を有する、実施例19に記載のシステム。
【0144】
実施例21. オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実現可能なポーズのC空間ロードマップからのいくつかのロボットポーズの各々についてオクルージョン評価を実行させる、実施例19に記載のシステム。
【0145】
実施例22. オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実行されるべきタスクに少なくとも部分的に基づいて、前記第1のロボットによって実現可能なポーズのC空間ロードマップから選択されるいくつかのロボットポーズの各々についてオクルージョン評価を実行させる、実施例19に記載のシステム。
【0146】
実施例23. オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実現可能なポーズのロードマップからサンプリングされたいくつかのロボットポーズの各々についてオクルージョン評価を実行させ、前記ロードマップは前記ロボットのC空間内のそれぞれのロボットポーズを表すノードの組と、前記ノードのペアを結合し、前記それぞれのエッジが結合する前記ノードによって表される前記それぞれのロボットポーズ間の遷移を表す複数のエッジを備えるグラフの形態である、実施例19に記載のシステム。
【0147】
実施例24. オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を考慮するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行させる、実施例19に記載のシステム。
【0148】
実施例25. オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットのいくつかのロボットポーズ及び前記第2のロボットのいくつかのロボットポーズを表すロボットポーズの組に基づいて前記オクルージョン評価を実行させる、実施例24に記載のシステム。
【0149】
実施例26. 実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサにさらに
前記候補センサーポーズの各々について、前記候補センサーポーズのそれぞれのコスト値を決定させ、前記それぞれのコスト値はオクルージョンを表す、実施例19に記載のシステム。
【0150】
実施例27. 実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサにさらに
作業空間内の各ボクセルに対して実行される外部反復ループにおいて、前記作業空間内の少なくとも他のボクセルについてそれぞれのオクルージョン値を決定させ、ここで、前記オクルージョン値は、前記外部反復ループの現在の反復のボクセルが前記オクルージョン値が決定されているそれぞれのボクセルを少なくとも部分的に占有するように位置決めされたオブジェクトによって1つ又は複数のセンサーからオクルージョンされるかどうかを表し、前記候補センサーポーズのコストを集約させる、
実施例19に記載のシステム。
【0151】
実施例28. 実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサにさらに
前記ボクセルについてのそれぞれのオクルージョン値が決定される前に、各候補センサーポーズについて、前記候補センサーポーズのそれぞれのコスト値を初期化させ、
前記外部反復ループにおいて、前記作業空間内のすべての前記ボクセルについて、前記ボクセルの前記それぞれのオクルージョン値を初期化させる、実施例27に記載のシステム。
【0152】
実施例29. 前記外部反復ループの現在の反復の前記ボクセルに対するそれぞれのオクルージョン値を決定するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに
内部反復ループにおいて、前記外部反復ループの現在の反復のボクセルが、すでに位置決めされた任意のセンサーに基づいてオクルージョンされているかどうかを決定させ、
前記内部反復ループにおいて、前記外部反復ループの現在の反復の前記ボクセルがオクルージョンされている場合、それぞれのロボットポーズにおいて前記外部反復ループの現在の反復の前記ボクセルをオクルージョンしているロボットポーズの1つにおける、ロボットの形態でオブジェクトによって占有される任意のボクセルのそれぞれのオクルージョン値をインクリメントさせる、
実施例28に記載のシステム。
【0153】
実施例30. 前記候補センサーポーズに対するコストを集約するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに
各候補センサーポーズについて、前記センサーと、前記外部反復ループの現在の反復においてオクルージョンが評価されている前記外部反復ループの現在の反復の前記ボクセルとの間の各ボクセルについて前記オクルージョン値を合計させ、
その合計を、それぞれの候補センサーポーズについてのコストの累積された合計に加算させる、
実施例27に記載のシステム。
【0154】
実施例31. 前記オクルージョン評価に少なくとも部分的に基づいて、前記候補センサーポーズのうちの1つを選択して第1のセンサーにポーズをとらせるために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対する前記候補センサーポーズの関連コストに基づいて、前記候補センサーポーズを選択させる、実施例19から30のいずれか1項に記載のシステム。
【0155】
実施例32. 前記オクルージョン評価に少なくとも部分的に基づいて、前記候補センサーポーズのうちの1つを選択して第1のセンサーにポーズをとらせるために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対して、前記候補センサーポーズの最も低い関連コストを有する前記候補センサーポーズを選択させる、実施例19から30のいずれか1項に記載のシステム。
【0156】
実施例33. 実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサにさらに
前記オクルージョン評価に少なくとも部分的に基づいて第1のセンサーにポーズをとらせるための前記候補センサーポーズのうちの1つの選択後に、
複数の候補センサーポーズの各々について、候補センサーポーズのうちの1つを選択し、前記操作環境における少なくとも第1のロボットの、第1のロボットが第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を考慮するオクルージョン評価を実行させ、
前記オクルージョン評価に少なくとも部分的に基づいて第2のセンサーにポーズをとらせるために候補センサーポーズのうちの1つを選択させる、
実施例19に記載のシステム。
【0157】
実施例34. オクルージョン評価を実行するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、さらに、
前記第1のセンサーについて前記候補センサーポーズのうちの前記選択された1つによって指定されるように、位置決めされ向きづけられた前記第1のセンサーも考慮して前記オクルージョン評価を実行させる、
実施例33に記載のシステム。
【0158】
実施例35. 前記センサーはカメラであり、実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサにさらに
前記第1のセンサーのために選択されたセンサーポーズに対応する第1のポーズで前記カメラのうちの第1のそれによって収集されたセンサー情報を受信させ、前記第2のセンサーのために選択されたセンサーポーズに対応する第2のポーズで前記カメラのうちの第2のそれから収集されたセンサー情報を受信させ、
受信されたセンサー情報に基づいて、少なくとも前記第1のロボットについて動作計画を実行させる、
実施例33に記載のシステム。
【0159】
結論
上記の詳細説明においては、ブロック図、模式図及び実施例を用いて、多様な装置及び/又は方法の実施形態について記載している。これらのブロック図、概略図及び実施例は1つ又は複数の機能及び/又は動作を含んでいるが、当業者には明らかなように、これらのブロック図、流れ図及び実施例におけるそれぞれの機能及び/又は動作は個々に及び/又は一括して、多様なハードウェア、ソフトウェア、ファームウェア、又は事実上任意のこれらの組み合わせによって実装することができる。一実施形態では、本主題がブール回路、特定用途向け集積回路(ASIC)及び/又はFPGAを介して実装され得る。しかしながら、本明細書に開示された実施形態は全体的に又は部分的に、標準的な集積回路における様々な異なる実装形態において、1つ又は複数のコンピュータ上で実行される1つ又は複数のコンピュータプログラムとして(例えば、1つ又は複数のコンピュータシステム上で実行される1つ又は複数のプログラムとして)、1つ又は複数のプロセッサ(例えば、マイクロプロセッサ)上で実行される1つ又は複数のプログラムとして、ファームウェアとして、又はそれらの実質的に任意の組合せとして、実装されることができ、回路を設計すること及び/又は、ソフトウェア及び/又はファームウェアのためのコードを書くことは、本開示に照らして、十分に当業者の技術の範囲内であることを認識されたい。
【0160】
当業者は本明細書に記載された方法又はアルゴリズムの多くが、追加の行為を採用してもよく、いくつかの行為を省略してもよく、及び/又は指定されたものとは異なる順序で行為を実行してもよいことを認識するであろう。
【0161】
さらに、当業者は、本明細書で教示される機構がハードウェア、例えば、1つ又は複数のFPGA又はASICにおいて実装されることが可能であることを理解するであろう。
【0162】
上記の種々の実施形態は、更なる実施形態を提供するように組み合わされることが可能である。2017年6月9日に出願された「MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS」と題された国際特許出願第PCT/US2017/036880号、2016年1月5日に出願された「SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USING SAME」と題された国際特許出願第WO2016/122840号、2018年1月12日に出願された「APPARATUS, METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMIC OBJECTS」と題された米国特許出願第62/616,783号、2018年2月6日に出願された「MOTION PLANNING OF A ROBOT STORING A DISCRETIZED ENVIRONMENT ON ONE OR MORE PROCESSORS AND IMPROVED OPERATION OF SAME」と題された米国特許出願第62/626,939号、2019年6月3日に出願された「APPARATUS, METHODS AND ARTICLES TO FACILITATE MOTION PLANNING IN ENVIRONMENTS HAVING DYNAMIC OBSTACLES」と題された米国特許出願第62/856,548号、2019年6月24日に出願された「MOTION PLANNING FOR MULTIPLE ROBOTS IN SHARED WORKSPACE」と題された米国特許出願第62/865,431号、2020年1月22日に出願された「CONFIGURATION OF ROBOTS IN MULTI-ROBOT OPERATIONAL ENVIRONMENT」と題された米国特許出願第62/964,405号、及び2020年4月14日に出願された「CONFIGURATION OF ROBOT OPERATIONAL ENVIRONMENT INCLUDING LAYOUT OF SENSORS」と題された米国特許出願第63/009,583号を含むが、これらに限定されない、本明細書で参照された及び/又はアプリケーションデータシートに列挙された、本出願人に譲渡された米国特許出願公開、米国特許出願、外国特許及び外国特許出願のすべてはその全体が参照により本明細書に組み込まれる。上記の詳細説明に照らして、上記の及び他の変形がそれらの実施形態に対して行われることが可能である。一般に、以下の特許請求の範囲において、使用される用語は特許請求の範囲を、明細書及び特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではなく、そのような特許請求の範囲が権利を有する均等物の全範囲とともに、すべての可能な実施形態を含むように解釈されるべきである。したがって、特許請求の範囲は、本開示によって限定されない。
下記は、本願の出願当初に記載の発明である。
<請求項1>
ロボット操作を容易にするためのプロセッサベースのシステムの動作方法であって、
複数の候補センサーポーズの各々について、第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップ
を有する、方法。
<請求項2>
前記センサーがカメラであり、前記カメラが前記候補センサーポーズの各々について操作環境のそれぞれの視野を有し、前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップが、前記オクルージョン評価に少なくとも部分的に基づいて、第1のカメラにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップを含む、請求項1に記載の方法。
<請求項3>
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記第1のロボットによって実現可能なポーズのC空間ロードマップからのいくつかのロボットポーズの各々についてオクルージョン評価を実行するステップを含む、請求項1に記載の方法。
<請求項4>
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記第1のロボットによって実行されるべきタスクに少なくとも部分的に基づいて、前記第1のロボットによって実現可能なポーズのC空間ロードマップから選択されるいくつかのロボットポーズの各々についてオクルージョン評価を実行するステップを含む、請求項1に記載の方法。
<請求項5>
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記第1のロボットによって実現可能なポーズのロードマップからサンプリングされたいくつかのロボットポーズの各々についてオクルージョン評価を実行するステップを含み、前記ロードマップは前記ロボットのC空間内のそれぞれのロボットポーズを表すノードの組と、前記ノードのペアを結合する複数のエッジであって、それぞれの前記エッジが結合する前記ノードによって表される前記それぞれのロボットポーズ間の遷移を表す、該複数のエッジを備えるグラフの形態である、請求項1に記載の方法。
<請求項6>
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を説明するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行するステップを含む、請求項1に記載の方法。
<請求項7>
前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を説明するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行するステップは、前記第1のロボットのいくつかのロボットポーズ及び前記第2のロボットのいくつかのロボットポーズを表すロボットポーズの組に基づいて前記オクルージョン評価を実行するステップを含む、請求項6に記載の方法。
<請求項8>
前記候補センサーポーズの各々について、前記候補センサーポーズのそれぞれのコスト値を決定するステップをさらに含み、前記それぞれのコスト値はオクルージョンを表す、請求項1に記載の方法。
<請求項9>
作業空間内の各ボクセルに対して実行される外部反復ループにおいて、
前記作業空間内の他のボクセルの各々についてそれぞれのオクルージョン値を決定するステップであって、前記オクルージョン値は、前記外部反復ループの現在の反復のボクセルが前記オクルージョン値が決定されているそれぞれの前記ボクセルを少なくとも部分的に占有するように配置されたオブジェクトによって1つ又は複数のセンサーからオクルージョンされるかどうかを表すものである、該ステップと、
前記候補センサーポーズについてのコストを集約するステップ
をさらに含む、請求項1に記載の方法。
<請求項10>
前記ボクセルについてそれぞれのオクルージョン値を決定する前に、
各候補センサーポーズについて、前記候補センサーポーズのそれぞれのコスト値を初期化するステップと、
前記外部反復ループにおいて、前記作業空間内のすべての前記ボクセルについて、前記ボクセルの前記それぞれのオクルージョン値を初期化するステップ
をさらに含む、請求項9記載の方法。
<請求項11>
前記外部反復ループの現在の反復の前記ボクセルについてそれぞれのオクルージョン値を決定するステップは、
内部反復ループにおいて、前記外部反復ループの現在の反復のボクセルが、すでに位置決めされた任意のセンサーに基づいてオクルージョンされているかどうかを決定するステップと、
前記内部反復ループにおいて、前記外部反復ループの現在の反復の前記ボクセルがオクルージョンされている場合、それぞれの前記ロボットポーズにおいて前記外部反復ループの現在の反復の前記ボクセルをオクルージョンしているロボットポーズのうちの1つにあるロボットの形態のオブジェクトによって占有される任意のボクセルのそれぞれのオクルージョン値をインクリメントするステップ
を含む、請求項9に記載の方法。
<請求項12>
前記候補センサーポーズのコストを集約するステップは、
各候補センサーポーズについて、ボクセルのオクルージョンが評価されている前記外部反復ループの現在の反復の前記ボクセルと前記センサーの間の各ボクセルについて前記オクルージョン値を合計するステップと、
その合計を、それぞれの前記候補センサーポーズについてのコストの累算された合計に加算するステップ
を含む、請求項9に記載の方法。
<請求項13>
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップは、前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対する前記候補センサーポーズの関連コストに基づいて、前記候補センサーポーズを選択するステップを含む、請求項1~12のいずれか1項に記載の方法。
<請求項14>
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップは、前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対して、前記候補センサーポーズの最も低い関連コストを有する前記候補センサーポーズを選択するステップを含む、請求項1~12のいずれか1項に記載の方法。
<請求項15>
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップの後に、
複数の候補センサーポーズの各々について、前記操作環境における少なくとも第1のロボットの、前記少なくとも第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を説明するオクルージョン評価を実行するステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、第2のセンサーにポーズをとらせるために候補センサーポーズのうちの1つを選択するステップ
をさらに含む、請求項1に記載の方法。
<請求項16>
前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行するステップは、前記第1のセンサーのための前記候補センサーポーズのうちの前記選択された1つによって指定されるように、位置決められ、向きづけられた前記第1のセンサーも説明するオクルージョン評価を実行するステップを含む、請求項15に記載の方法。
<請求項17>
前記センサーはカメラであり、
前記第1のセンサーのために選択されたセンサーポーズに対応する第1のポーズの前記カメラのうちの第1のものによって収集されたセンサー情報を受信するステップと、前記第2のセンサーのために選択されたセンサーポーズに対応する第2のポーズの前記カメラのうちの第2のものから収集されたセンサー情報を受信するステップと、受信されたセンサー情報に基づいて、少なくとも前記第1のロボットのための動作計画を実行するステップ
をさらに含む、請求項15に記載の方法。
<請求項18>
前記オクルージョン評価に少なくとも部分的に基づいて、第2のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するステップの後に、
終了条件が達成されるまで、複数の候補センサーポーズの各々について、前記操作環境における少なくとも第1のロボットの、少なくとも前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を説明するオクルージョン評価を実行することを繰り返すステップと、
前記オクルージョン評価に少なくとも部分的に基づいて、追加のセンサーにポーズをとらせるために候補センサーポーズのうちの1つを選択するステップ
をさらに含む、請求項15に記載の方法。
<請求項19>
ロボット操作を容易にするためのプロセッサベースのシステムの動作システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
複数の候補センサーポーズの各々について、第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときに、前記操作環境における少なくとも第1のロボットのオクルージョン効果を説明するオクルージョン評価を実行させ、
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択させる
プロセッサ実行可能命令を記憶する少なくとも1つの非一時的プロセッサ可読媒体
を備える、システム。
<請求項20>
前記センサーはカメラであり、前記カメラは、前記候補センサーポーズの各々について操作環境のそれぞれの視野を有する、請求項19に記載のシステム。
<請求項21>
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実現可能なポーズのC空間ロードマップからのいくつかのロボットポーズの各々についてオクルージョン評価を実行させる、請求項19に記載のシステム。
<請求項22>
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実行されるべきタスクに少なくとも部分的に基づいて、前記第1のロボットによって実現可能なポーズのC空間ロードマップから選択されるいくつかのロボットポーズの各々についてオクルージョン評価を実行させる、請求項19に記載のシステム。
<請求項23>
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットによって実現可能なポーズのロードマップからサンプリングされたいくつかのロボットポーズの各々についてオクルージョン評価を実行させ、前記ロードマップは前記ロボットのC空間内のそれぞれのロボットポーズを表すノードの組と、前記ノードのペアを結合する複数のエッジであって、それぞれの前記エッジが結合する前記ノードによって表される前記それぞれのロボットポーズ間の遷移を表す、該複数のエッジを備えるグラフの形態である、請求項19に記載のシステム。
<請求項24>
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記操作環境における前記第1のロボット及び少なくとも第2のロボットのオクルージョン効果を説明するオクルージョン評価を、前記第1及び前記第2のロボットが前記第1及び前記第2のロボットのそれぞれの複数のロボットポーズの各々を通って移動するときに実行させる、請求項19に記載のシステム。
<請求項25>
オクルージョン評価を実行するために、実行されると、前記命令は前記少なくとも1つのプロセッサに、前記第1のロボットのいくつかのロボットポーズ及び前記第2のロボットのいくつかのロボットポーズを表すロボットポーズの組に基づいて前記オクルージョン評価を実行させる、請求項24に記載のシステム。
<請求項26>
実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサにさらに、
前記候補センサーポーズの各々について、前記候補センサーポーズのそれぞれのコスト値を決定させ、前記それぞれのコスト値はオクルージョンを表す、請求項19に記載のシステム。
<請求項27>
実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサにさらに、
作業空間内の各ボクセルについて実行される外部反復ループにおいて、
前記作業空間内の少なくとも他のボクセルについてそれぞれのオクルージョン値を決定させ、前記オクルージョン値は、前記外部反復ループの現在の反復のボクセルが前記オクルージョン値が決定されているそれぞれの前記ボクセルを少なくとも部分的に占有するように配置されたオブジェクトによって1つ又は複数のセンサーからオクルージョンされるかどうかを表し、
さらに、前記候補センサーポーズのコストを集約させる、請求項19に記載のシステム。
<請求項28>
実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサにさらに、
前記ボクセルについてのそれぞれのオクルージョン値が決定される前に、
各候補センサーポーズについて、前記候補センサーポーズのそれぞれのコスト値を初期化させ、
前記外部反復ループにおいて、前記作業空間内のすべての前記ボクセルについて、前記ボクセルの前記それぞれのオクルージョン値を初期化させる、請求項27に記載のシステム。
<請求項29>
前記外部反復ループの現在の反復の前記ボクセルについてそれぞれのオクルージョン値を決定するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに
内部反復ループにおいて、前記外部反復ループの現在の反復のボクセルが、すでに位置決めされた任意のセンサーに基づいてオクルージョンされているかどうかを決定させ、
前記内部反復ループにおいて、前記外部反復ループの現在の反復の前記ボクセルがオクルージョンされている場合、それぞれの前記ロボットポーズにおいて前記外部反復ループの現在の反復の前記ボクセルをオクルージョンしているロボットポーズのうちの1つにあるロボットの形態のオブジェクトによって占有される任意のボクセルのそれぞれのオクルージョン値をインクリメントさせる、請求項28に記載のシステム。
<請求項30>
前記候補センサーポーズについてのコストを集約するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに
各候補センサーポーズについて、前記外部反復ループの現在の反復においてオクルージョンが評価されている前記外部反復ループの現在の反復の前記ボクセルと前記センサーの間の各ボクセルについて前記オクルージョン値を合計させ、
その合計を、それぞれの候補センサーポーズについてのコストの累算された合計に加算させる、
請求項27に記載のシステム。
<請求項31>
前記オクルージョン評価に少なくとも部分的に基づいて、前記候補センサーポーズのうちの1つを選択して第1のセンサーにポーズをとらせるために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、
前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対する前記候補センサーポーズの関連コストに基づいて、前記候補センサーポーズを選択させる、請求項19から30のいずれか1項に記載のシステム。
<請求項32>
前記オクルージョン評価に少なくとも部分的に基づいて、第1のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、
前記候補センサーポーズのうちの他のセンサーポーズの関連コストに対して、前記候補センサーポーズの最も低い関連コストを有する前記候補センサーポーズを選択させる、請求項19から30のいずれか1項に記載のシステム。
<請求項33>
実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサにさらに
前記オクルージョン評価に少なくとも部分的に基づいて第1のセンサーにポーズをとらせるための前記候補センサーポーズのうちの1つの選択後に、
複数の候補センサーポーズの各々について、前記操作環境における少なくとも第1のロボットの、前記第1のロボットが前記第1のロボットの複数のロボットポーズの各々を通って移動するときの、オクルージョン効果を説明するオクルージョン評価を実行させ、
前記オクルージョン評価に少なくとも部分的に基づいて第2のセンサーにポーズをとらせるために前記候補センサーポーズのうちの1つを選択させる、
請求項19に記載のシステム。
<請求項34>
オクルージョン評価を実行するために、実行されると、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、さらに、
前記第1のセンサーについて前記候補センサーポーズのうちの前記選択された1つによって指定されるように、位置決めされ、向きづけられた前記第1のセンサーも説明する前記オクルージョン評価を実行させる、請求項33に記載のシステム。
<請求項35>
前記センサーはカメラであり、実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサにさらに
前記第1のセンサーのために選択されたセンサーポーズに対応する第1のポーズの前記カメラのうちの第1のものによって収集されたセンサー情報を受信させ、前記第2のセンサーのために選択されたセンサーポーズに対応する第2のポーズの前記カメラのうちの第2のものから収集されたセンサー情報を受信させ、
受信されたセンサー情報に基づいて、少なくとも前記第1のロボットについて動作計画を実行させる、
請求項33に記載のシステム。

図1
図2
図3
図4
図5A
図5B
図6
図7