(57)【要約】【課題】ロボット、自社運用のコンピューティングデバイス、及びクラウドサービスシステムを含むロボットシステムが開示されている。【解決手段】自社運用のコンピューティングデバイスは、プロセッサと、機械可読命令を格納する非一時的記憶装置を有し、プロセッサによって実行されると、機械可読命令は、プロセッサに、ロボットから未処理のセンサデータを受信させ、センサデータを前処理して、センサデータから不要な情報を除去して、前処理されたデータを取得させ、前処理されたデータをクラウドサービスシステムに送信させ、クラウドサービスシステムから、前処理されたデータに対応する対象物の対象のタイプ、対象のポーズ、及び対象場所を受信させ、対象物の対象のタイプ、対象のポーズ、及び対象場所のうちの少なくとも１つに基づいて、ロボットに信号を送信させる。【選択図】図８
2019082999.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、機械可読命令を格納する非一時的記憶装置を備える自社運用のコンピューティングデバイスであって、前記プロセッサによって実行されると、前記機械可読命令は、前記プロセッサに、
ロボットから未処理のセンサデータを受信させ、
前記未処理のセンサデータを前処理して、前記未処理のセンサデータから不要な情報を除去し、前処理されたデータを取得させ、
前記前処理されたデータをクラウドサービスシステムに送信させ、
前記クラウドサービスシステムから、前記前処理されたデータに対応する対象物の対象物タイプ、対象物ポーズ、及び対象物場所を受信させ、
前記対象物の前記対象物タイプ、前記対象物ポーズ、及び前記対象物場所のうちの少なくとも１つに基づいて、前記ロボットに信号を送信させる、自社運用のコンピューティングデバイス。
【請求項２】
前記プロセッサに前記信号を前記ロボットに送信させる前記機械可読命令は、前記プロセッサに、更に、前記対象物を操作するための命令を前記ロボットに提供させる、請求項１に記載の自社運用のコンピューティングデバイス。
【請求項３】
プロセッサと、機械可読命令を格納する非一時的記憶装置を備えるクラウドサービスシステムであって、前記プロセッサによって実行されると、前記機械可読命令は、前記プロセッサに、
自社運用のコンピューティングデバイスから前処理されたデータを受信させ、前記前処理されたデータは、ロボットから発生した未処理のセンサデータから前記自社運用のコンピューティングデバイスによって抽出されたデータであり、
前記前処理されたデータから対象物の対象物タイプ、対象物ポーズ、及び対象物場所を決定させ、
前記対象物タイプ、前記対象物ポーズ、及び前記対象物場所を前記自社運用のコンピューティングデバイスに送信させる、クラウドサービスシステム。
【請求項４】
前記前処理されたデータは画像データであり、前記対象物タイプ及び前記対象物ポーズは、対象物認識アルゴリズムを前記画像データに適用することによって決定される、請求項３に記載のクラウドサービスシステム。
【請求項５】
前記機械可読命令は、前記プロセッサに、更に、対象物の複数の履歴測定を評価する重複排除プロセスを実行させ、現在の対象物が、前記複数の履歴測定の１つ以上の履歴測定と同じ対象物であるか、又は、前記対象物と異なる第２の対象物であるかを決定する、請求項３または４に記載のクラウドサービスシステム。
【請求項６】
前記機械可読命令は、前記プロセッサに、更に、
ロボット経路計画を生成させ、
前記ロボット経路計画を、前記自社運用のコンピューティングデバイスに送信させる、請求項３から５の何れか一項に記載のクラウドサービスシステム。
【請求項７】
前記機械可読命令は、前記プロセッサに、更に、
前記ロボットに前記対象物を操作させるための命令を生成させ、
前記命令を、前記自社運用のコンピューティングデバイスに送信させる、請求項３から６の何れか一項に記載のクラウドサービスシステム。
【請求項８】
ロボットを制御する方法であって、
自社運用のコンピューティングデバイスで、前記ロボットから未処理のセンサデータを受信するステップと、
前記自社運用のコンピューティングデバイスによって、処理されたセンサデータを生成するために、前記未処理のセンサデータのサイズを小さくするステップと、
前記自社運用のコンピューティングデバイスによって、前記処理されたセンサデータをクラウドサービスシステムに送信するステップと、
前記自社運用のコンピューティングデバイスによって、前記クラウドサービスシステムから対象物タイプ、対象物ポーズ、及び対象物場所を受信するステップであって、前記対象物タイプ、前記対象物ポーズ、及び前記対象物場所は、前記処理されたセンサデータから前記クラウドサービスシステムによって決定される、ステップと、
前記自社運用のコンピューティングデバイスによって、対象物の前記対象物タイプ、前記対象物ポーズ、及び前記対象物場所のうちの少なくとも１つに基づいて、前記ロボットに信号を送信するステップと、を含む、方法。
【請求項９】
前記対象物タイプ、前記対象物ポーズ、及び前記対象物場所を受信するステップは、現在の対象物が、複数の履歴測定の１つ以上の履歴測定と同じ対象物であるか、又は異なる対象物であるかを決定するために、前記対象物の前記複数の履歴測定を評価する重複排除プロセスの結果として生成された前記対象物に関する情報を受信するステップを含む、請求項８に記載の方法。
【請求項１０】
前記ロボットから前記未処理のセンサデータを受信する前に、ユーザインタフェースを介してコマンドを受け取るステップを更に含み、前記コマンドは、前記ロボットがタスクを実行するための命令に相当する、請求項８または９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本出願は、「クラウドサービスシステムを組み込んだロボットシステム」と題された２０１７年９月２６日に出願された米国仮特許出願第６２／５６３４２４号明細書に対する優先権を主張し、参照によりその全体が本明細書に援用される。
【０００２】
本明細書で記載される実施形態は、概ね、ロボットに関し、より詳細には、対象物認識を使用して、環境内の人間を支援するロボットに関する。
【背景技術】
【０００３】
ロボットは、人間の仕事を支援するために、環境に配備されてもよい。例えば、毎日の仕事において、障害者、病人、又は高齢者を支援するために、医療ロボットを配備してもよい。ロボットは、特定の仕事をこなすために、ユーザから指示を受けてもよい。例えば、ユーザは、特定の対象物を回収するよう、ロボットに依頼することができる。ロボットは、コンピュータビジョンを使用して、対象物を検索し、環境をナビゲートし、対象物をユーザにもたらしても良い。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現在、ロボットは、ロボット内に配置されたローカル処理装置を使用して、受信された入力を処理し、センサ等から得られたデータを処理する。上記のタスクを実行するために必要な処理能力の量は、ロボットの機能性にとって有害であり得る、何故なら、処理能力の量は、バッテリを急速に消耗したり、ロボットの応答時間等を遅くしたりするからである。このように、ロボットによって完了される処理能力の量を最小限にする必要性が存在する。
【課題を解決するための手段】
【０００５】
一実施形態では、自社運用のコンピューティングデバイスは、プロセッサと、機械可読命令を格納する非一時的記憶装置を含み、プロセッサによって実行されると、機械可読命令は、プロセッサにロボットから未処理のセンサデータを受信させ、センサデータを前処理してセンサデータから不要な情報を除去して前処理されたデータを取得させ、前処理されたデータをクラウドサービスシステムに送信させ、クラウドサービスシステムから、前処理されたデータに対応する対象物の対象のタイプ、対象のポーズ、及び対象場所を受信させ、対象物の対象のタイプ、対象のポーズ、及び対象場所のうちの少なくとも１つに基づいて、ロボットに信号を送信させる。
【０００６】
別の実施形態では、クラウドサービスシステムは、プロセッサと、機械可読命令を格納する非一時的記憶装置を含み、プロセッサによって実行されると、機械可読命令は、プロセッサに、自社運用のコンピューティングデバイスから前処理されたデータを受信させ、前処理されたデータから対象物の対象のタイプ、対象のポーズ、及び対象場所を決定させ、対象のタイプ、対象のポーズ、及び対象場所を自社運用のコンピューティングデバイスに送信させる。前処理されたデータは、ロボットから発生した未処理のセンサデータから自社運用のコンピューティングデバイスによって抽出されたデータである。
【０００７】
さらに別の実施形態では、ロボットを制御する方法は、自社運用のコンピューティングデバイスで、ロボットから未処理のセンサデータを受信することと、自社運用のコンピューティングデバイスによって、センサデータのサイズを縮小して、処理されたセンサデータを生成することと、自社運用のコンピューティングデバイスによって、処理されたセンサデータをクラウドサービスシステムに送信することと、自社運用のコンピューティングデバイスによって、クラウドサービスシステムから対象のタイプ、対象のポーズ、及び対象場所を受信することと、及び、対象物の対象のタイプ、対象のポーズ、及び対象場所のうちの少なくとも１つに基づいて、自社運用のコンピューティングデバイスによって、ロボットに信号を送信することを含む。対象のタイプ、対象のポーズ、及び対象場所は、処理されたセンサデータからクラウドサービスシステムによって決定される。
【０００８】
本開示の実施形態によって提供されるこれら及び追加の特徴は、図面と併せて以下の詳細な説明を考慮してより完全に理解されるであろう。
【図面の簡単な説明】
【０００９】
図面に記載された実施形態は、本質的に説明的で、例示的なものであり、本開示を限定するものではない。例示的な実施形態の以下の詳細な説明は、同様の構造が同様の参照番号で示され、以下の図面と併せて読まれると理解することができる：
【図１】図１は、本明細書に記載され図示された１つ又は複数の実施形態による、環境で動作する例示的なロボットシステムを概略的に示す。
【図２】図２は、本明細書に記載され図示された１つ又は複数の実施形態による、ロボットシステムの例示的な構成要素を概略的に示す。
【図３】図３は、本明細書に記載され図示された１つ又は複数の実施形態による、ロボット、自社運用のコンピューティングデバイス、及びクラウドサービスシステム間のワークフローの例示的プロセスのフローチャートを図式的に示す。
【図４】図４は、本明細書に記載され図示された１つ又は複数の実施形態による、ポイントクラウド環境内の例示的な対象物、及び対象物の位置のグラフィック表現を概略的に示す。
【図５】図５は、本明細書に記載され図示された１つ又は複数の実施形態による、ロボットによって検出される対象物の例示的な測定を概略的に示す。
【図６】図６は、本明細書に記載され図示された１つ又は複数の実施形態による、領域検出バブルによって囲まれた例示的な対象物を概略的に示す。
【図７】図７は、本明細書に記載され図示された１つ又は複数の実施形態による、ロボットの例示的な構成要素を概略的に示す。
【図８】図８は、本明細書に記載され図示された１つ又は複数の実施形態による、自社運用のコンピューティングデバイスの例示的な構成要素を概略的に示す。
【発明を実施するための形態】
【００１０】
本明細書で開示される実施形態は、例えば、リモートコンピューティングデバイスにおいて、対象物認識、及び位置などのロボットサービスを実行するように構成されたロボットシステムに関し、ロボットの処理要求が軽減され、ロボットの集団グループから得られた情報は、ロボットシステム内の他のロボットによって共有され、利用されてもよい。ロボットの集団グループによって検出された情報を単一の遠隔地に格納することは、機械学習を向上させることを可能にし、それによりロボットの特徴が強化される。換言すれば、本明細書に記載のロボットシステムを使用するロボットは、ロボットが互いに学ぶことを可能にすることができる。さらに、ロボットからの対象物認識のような計算上高価なタスクをオフロードすることにより、ロボットは、電力需要を軽減することができ、単一のバッテリ充電で、より長く動作することができる。本明細書で記載される実施形態は、これに限定されないが、対象物の重複排除、把握計画軌道、対象物の特性（例えば、対象物の寸法）、ユーザ認証、対象物の場所、ユーザの自然な音声処理、行動の開発等の様々な遠隔ロボットサービスのための処理タスクを提供する。
【００１１】
以下でより詳細に記載されるように、いくつかの実施形態において、ロボットシステムは、対象物認識などのいくつかの計算タスクを実行する自社運用のコンピューティングデバイスに通信可能に結合されたロボットを含み、それにより、ロボットの計算タスクを軽減する。自社運用のコンピューティングデバイスは、更に、リモートクラウドサービスシステムに通信可能に結合されており、リモートクラウドサービスシステムは、更に、計算タスクを実行し、自社運用のコンピューティングデバイスを介して、データをロボットに提供するように構成されている。
【００１２】
特に、様々な仕事で人間を支援するために、ロボットが配備されてもよい。一例では、工場のロボットは、商品の製造において、繰り返し作業を行うために工場に配備される。別の例として、ロボットは、家庭、特別介護施設、病院などの人間の占有する空間に配備されてもよい。これらのロボットは、一般的な援助や仲間のような目的のために、人々と同じ空間を共有することができる。例えば、ロボットは、高齢者、身体障害者、又は負傷者のような、身体的援助を必要とする人の家に配備されてもよい。ロボットは、移動可能であり、例えば、人物のために対象物を取り出すことができるアクチュエータを有することができる。そのようなロボットは、人物により独立していると感じさせることができる、何故なら、彼又は彼女はサポートのために他の人にあまり依存しないからである。
【００１３】
図１を参照すると、実施形態による例示的なロボット１００は、家１０のような人間の占有する空間に配備されてもよい。ロボット１００は、概ね、ロボット１００を家１０の全体にわたって動かすことができる１つ以上の電動式の車輪１０６に支持された本体１０１を有する（又はプロペラ、翼、スキー、連続軌道等の他の移動構成要素）。ロボット１００は、更に、それぞれが対象物を操作することができるエンドエフェクタを有する１つ以上のアーム１０４を有する（例えば、グリッパ、ロボットハンド等）。さらに、ロボット１００は、対象物を検出し、対象物を操作し、及び／又は環境をナビゲートする際に、ロボット１００を支援するセンサデータを生成することができる複数のセンサ１０２を有する。複数のセンサ１０２は、カメラ（例えば、ＣＣＤカメラ）、赤外線センサ、深度センサ、近接センサ、触覚センサ、ライダーセンサ、レーダセンサ、飛行時間センサ等を含んでもよいが、これらに限定されない。図１に示すロボット１００は、説明の目的でのみ提供されており、ロボットの構成は本開示に限定されないことが理解されるべきである。
【００１４】
上述のように、ロボット１００は、例えば、家１０に住むユーザを支援するように構成されてもよい。すなわち、ユーザは、対象物を検索する、ユーザに対象物を持ってくる、対象物を別の場所に移動する、対象物の位置を変更する等の特定の仕事を実行するように、ロボット１００に指示することができる。ユーザは、様々な方法でロボット１００に指示することができる。一例では、ユーザは、「ロボット、ティッシュボックスを見つけてそれを私に持ってきてください」と言い、その音声は、ロボット１００に関連付けられたマイクロフォンによって受信される。別の例において、ユーザは、パーソナルコンピュータ、タブレット、スマートフォン、特定用途向けコンピューティングデバイス等のコンピューティングデバイスを使用して、ロボットを制御してもよい。例えば、コンピューティングデバイスは、家１０の部屋１３０内の対象物を示すディスプレイを有してもよく、ユーザは、対象物のグラフィック表現を選択することができ、対象物をユーザに持ってくるようロボット１００に依頼する等のタスクを選択することもできる。別の例として、コンピューティングデバイスのディスプレイは、ユーザが環境内のロボット１００の動きを制御することができるよう、ロボット１００に関連するどの撮像装置が感知するかを図式的に示してもよく、ディスプレイは、ロボット１００によって撮像されたときの対象物の位置を示す。ユーザは、１つ以上の対象物を選択して、１つ以上のタスクの完了を要求することができる。
【００１５】
さらに図１を参照すると、環境内に多くの対象物が存在する。図示された例では、テーブル１３３上に、窓１３１、ドア１３２、テーブル１３３、ソーダ缶１３４、及びキー１３５のセットがあり、家１０の床上にティッシュボックス１３６がある。本明細書に記載のロボットシステム２０は、各対象物のタイプ、各対象物の位置、及び、各対象物の姿勢を検出することができる。このようにして、ロボット１００は、各対象物が家１０内のどこに位置しているかに関する情報を有し、要求を受信したときに、対象物を取り出したり、対象物の操作を行うことができる。
【００１６】
したがって、ロボット１００は、１つ以上のセンサ１０２によって提供されるデータを使用して、対象物認識を行うことができる。例えば、ロボットシステム２０は、１つ以上の対象物検出アルゴリズムを使用して、特定の対象物のタイプ、姿勢、及び、位置を決定することができる。既知の、又はまだ開発されていない任意の対象物認識アルゴリズムを利用することができる。非限定的な対象物認識アルゴリズムは、エッジ検出アルゴリズム、コーナー検出アルゴリズム、ブロブ検出アルゴリズム、特徴記述アルゴリズム等を含む。対象物のタイプ及び姿勢を検出する任意のコンピュータビジョン法を利用してもよい。
【００１７】
ロボット１００は、ロボット自身、他のロボット、及び／又は環境内のセンサの位置に関する情報を有するので（例えば、図１に示す家１０）、ロボットシステム２０は、センサ１０２からのデータを使用して、環境内の特定の対象物の位置を決定することができる。例えば、深さ情報、及び、特定のセンサが目標とする方向に関する情報を利用して、特定の対象物の位置を決定することができる。
【００１８】
いくつかの実施形態において、１つ以上の追加のセンサが環境内に配備されてもよく、そのような追加のセンサは、ロボット１００に物理的に取り付けられない。そのような追加のセンサは、例えば、ロボットシステム２０に、追加のセンサデータを提供することができる。図１を参照すると、第１の追加センサ１１７Ａが、第１の壁１１８Ａに設けられ、第２の追加センサ１１７Ｂが、第２の壁１１８Ｂに設けられる。任意の数の追加のセンサを設けることができ、追加のセンサは、追加のデータをロボットシステム２０に提供することができる任意のタイプのセンサであってもよいことが理解されるべきである。例えば、追加のセンサは、画像取込装置、ライダーシステム、動き検出装置、光検出装置等であってもよいが、これらに限定されない。
【００１９】
上述のようにロボット１００が要求されたタスクを完了するために必要とされる様々なコンピューティングプロセスは、計算上高価である。結果として、そのようなタスクは、かなりの量の計算能力、及び／又は、かなりの量の電気エネルギーを必要とする。したがって、これらのコンピューティングプロセスは、ロボット１００の１つ以上のバッテリ内に格納された電気エネルギーを急速に激減させ、これにより、ロボット１００は、頻繁に、電気コンセントに再充電又は拘束される必要があり、これはロボット１００の移動性を著しく低下させる。
【００２０】
本明細書で記載される様々な実施形態は、ロボット１００から、ロボットシステム２０内の他の構成要素に、これらのコンピューティングプロセスの一部をオフロードする。更に図１を参照すると、例示的なロボットシステム２０は、家１０内のロボット１００に通信可能に結合された少なくとも１つの自社運用のコンピューティングデバイス１２０を含む（又は、場合によっては複数のロボット）。自社運用のコンピューティングデバイス１２０は、ロボット１００と自社運用のコンピューティングデバイス１２０との間の第１の通信接続Ａによって示されるように、有線、又は無線接続によって、ロボット１００と通信することができる。本明細書で使用される場合、「自社運用の」という用語は、コンピューティングデバイスがロボット１００の一般的な近傍内に配置されていることを意味する（すなわち、ロボット１００は同じ場所に配置されたロボットである）。例えば、自社運用のコンピューティングデバイス１２０は、同じ部屋１３０、同じ建物内、同じ総合ビル、同じ事務所、特定の距離内に配置されてもよい（例えば、１００フィート（３０４８メートル）、１００ヤード（９１４４メートル）等以内）。「自社運用の」は、具体的には、ロボット１００と同じ近傍にないリモートサーバを除外することを理解するべきである。
【００２１】
図示の実施形態において、自社運用のコンピューティングデバイス１２０は、例えば、インターネット、イントラネット、仮想プライベートネットワーク等の通信ネットワーク１４０を介して、遠隔クラウドサービスシステム１５０と通信する。自社運用のコンピューティングデバイス１２０は、セルラーネットワーク、又は、インターネットサービスプロバイダなどの任意の方法を介して、通信ネットワーク１４０と通信することができる。自社運用のコンピューティングデバイス１２０と、遠隔クラウドサービスシステム１５０との間の通信は、自社運用のコンピューティングデバイス１２０と、通信ネットワーク１４０との間の第２の通信接続Ｂ、及び、通信ネットワーク１４０と、遠隔クラウドサービスシステム１５０との間の第３の通信接続Ｃによって示される。
【００２２】
自社運用のコンピューティングデバイス１２０は、電気グリッドなどの外部電源に電気的に結合されている。例えば、図１に示すように、自社運用のコンピューティングデバイス１２０は、電力を受け取るために、ＡＣコンセント１２２に差し込む電気コード１２１を有する。したがって、自社運用のコンピューティングデバイス１２０は、バッテリ駆動ではないので、再充電する必要がない。したがって、自社運用のコンピューティングデバイス１２０は、送電網、又は他の何らかの外部電力源から電力を引き出すことによって、集中的なグラフィック処理を実行することができる。
【００２３】
いくつかの実施形態において、要求されたタスクを実行するためにロボット１００の制御を生じさせるために実行されるコンピューティングプロセスは、（例えば、対象物等を検索する）ロボット１００、自社運用のコンピューティングデバイス１２０、及び、遠隔クラウドサービスシステム１５０の間で分散されてもよい。コンピューティングプロセスの何れかは、ロボット１００、自社運用のコンピューティングデバイス１２０、及び／又は遠隔クラウドサービスシステム１５０上で実行されてもよいことを理解すべきである。いくつかの実施形態において、ロボット１００、自社運用のコンピューティングデバイス１２０、及び、遠隔クラウドサービスシステム１５０の各利用可能性に基づいて、プロセスを処理するために、コンピューティングプロセスを、ロボット１００、自社運用のコンピューティングデバイス１２０、及び／又は遠隔クラウドサービスシステム１５０のうちの１つ以上に割り当てることができる。すなわち、ロボット１００、自社運用のコンピューティングデバイス１２０、及び遠隔クラウドサービスシステム１５０のうちの１つ以上がオーバーロード状態にあるか、さもなければ、特定のプロセスを処理できない場合、そのようなプロセスは、必要に応じて、ロボット１００、自社運用のコンピューティングデバイス１２０、及び遠隔クラウドサービスシステム１５０のうちの別の１つにオフロードされる。このように、ロボット１００、自社運用のコンピューティングデバイス１２０、及び遠隔クラウドサービスシステム１５０は、必要に応じて、処理能力を共有する。
【００２４】
図２も参照すると、ロボットシステム２０の例示的な遠隔クラウドサービスシステム１５０の追加の構成要素が、概略的に示されている。環境内の１つ以上のロボット１００は（例えば、家１０）、自社運用のコンピューティングデバイス１２０に通信可能に結合されている。自社運用のコンピューティングデバイス１２０は、図２に示すようにブラウザ１２９によって構成されてもよいし、そうでなければ、局所的に制御されてもよい。自社運用のコンピューティングデバイス１２０は、特定のコンピュータプログラムなどの他の手段によって局所的に制御されてもよいことを理解されたい。
【００２５】
本明細書に記載の通り、自社運用のコンピューティングデバイス１２０は、通信ネットワーク１４０に通信可能に結合されている。通信ネットワーク１４０は、自社運用のコンピューティングデバイス１２０を、遠隔クラウドサービスシステム１５０に通信可能に接続する。遠隔クラウドサービスシステム１５０は、自社運用のコンピューティングデバイス１２０から未加工データを受信する１つ以上のデータベース１５２を含んでもよい。例えば、対象物データベース、対象物検索、顔認識、人物識別、行動構築、軌道計画、対象物認識、対象物トラッキング及び対象物の重複排除などの１つ以上のクラウドロボットサービスを提供するために、上記の様々なコンピューティングプロセスを実行するために、遠隔クラウドサービスシステム１５０は、１つ以のデータベース１５２内の未加工データにアクセスできる１つ以上のコンピューティングデバイス１５４を含むことができる。いくつかの実施形態において、機械知能１５６及び／又はシミュレーション１５８のプロセスを利用して、本明細書に記載の機能及びコンピューティングプロセスの１つ以上を実行することができる。いくつかの実施形態において、クラウドロボットサービスコンピューティングデバイス１５４は、１つ以上のブラウザ１６０、特定のコンピュータプログラム、アプリケーションプログラミングインターフェイス等によって管理、又はアクセスされてもよい。
【００２６】
一例では、ロボット１００は、未処理のセンサデータを複数のセンサ１０２から自社運用のコンピューティングデバイス１２０に通信する。１つ以上の追加のセンサからの未処理のセンサデータもまた、（例えば、図１に示す第１の追加センサ１１７Ａ、及び第２の追加センサ１１７Ｂ）自社運用のコンピューティングデバイス１２０に提供されてもよい。この例において、自社運用のコンピューティングデバイス１２０は、対象物認識、ポーズ認識、及び、対象物の位置検出に関連するコンピューティングプロセスの大部分を実行する。例えば、未処理のセンサデータは、自社運用のコンピューティングデバイス１２０が、対象物のタイプ、対象物の姿勢、及び、環境内の対象物の位置を検出するなど、所望の機能を実行するために処理する複数の画像を含むことができる。対象物のタイプ、対象物の姿勢、及び、対象物の位置が決定された後、この情報は遠隔クラウドサービスシステム１５０に送られる。機械学習及び／又は検証目的などの処理のために、未処理のセンサデータの少なくとも一部は、遠隔クラウドサービスシステム１５０に送信されてもよい。自社運用のコンピューティングデバイス１２０は、本明細書でより詳細に記載する重複排除プロセスのような追加のロボットサービスを実行することもできる。
【００２７】
別の例において、コンピューティングプロセスの大部分は、自社運用のコンピューティングデバイス１２０ではなく、遠隔クラウドサービスシステム１５０によって実行される。さらに別の例において、コンピューティングプロセスは、自社運用のコンピューティングデバイス１２０と、遠隔クラウドサービスシステム１５０との間で、等しく共有される。
【００２８】
図３は、ロボットシステム２０（図１）の様々な構成要素のうちの１つ以上によって完了され得るデータ通信、及び計算タスクの非限定的な例のワークフローを図式的に示す。図１及び図３を参照すると、ロボット１００の複数のセンサ１０２、及び／又は、１つ以上の追加のセンサは、（例えば、図１に示す第１の追加センサ１１７Ａ、及び第２の追加センサ１１７Ｂ）ブロック２０２で、未処理のセンサデータを得る。例えば、センサは、画像、深さ情報等の情報を受信するように起動されてもよい。ブロック２０４において、自社運用のコンピューティングデバイス１２０は、ロボット１００の複数のセンサ１０２、及び／又は１つ以上の追加のセンサから未処理のセンサデータを受信する。自社運用のコンピューティングデバイス１２０は、ブロック２０８で、前処理されたデータを遠隔クラウドサービスシステム１５０に送信する前に、ブロック２０６で前処理されたデータを得るために未処理のセンサデータを前処理することができる（以下にさらに説明する）。例えば、自社運用のコンピューティングデバイス１２０は、前処理されたデータを生成する際に、未処理のセンサデータから不要な情報を除去することができる。すなわち、不必要に大きなデータ伝送を回避、遠隔クラウドサービスシステム１５０の過負荷の回避等のために、データを遠隔クラウドサービスシステム１５０に送信する前に、自社運用のコンピューティングデバイス１２０は、未処理のセンサデータの量を減らしてもよい。非限定的な例においてロボット１００のカメラは、例えば、人の顔のような対象物の複数の画像を記録することができる。いくつかの画像では、人の顔は、少なくとも一部が視界を外れているように不明瞭になることがある（例えば、人の目）。自社運用のコンピューティングデバイス１２０は、人の目を示す画像、又はフレームのみを選択し、遠隔クラウドサービスシステム１５０に送信される画像は、顔認識アルゴリズムにとって満足できる画像である。残りの画像は、局所的に記憶されてもよいし、廃棄されてもよい。このようにして、自社運用のコンピューティングデバイス１２０は、遠隔クラウドサービスシステム１５０にアップロードされるデータの量を軽減することができる。さらに、高品質のデータ（すなわち、本明細書で記載する機能を実行するために最も使用される可能性が高いデータ）のみが、処理のために、遠隔クラウドサービスシステム１５０にアップロードされる。
【００２９】
ブロック２０８において、自社運用のコンピューティングデバイス１２０は、処理されたセンサデータを遠隔クラウドサービスシステム１５０に送信する。例えば、自社運用のコンピューティングデバイス１２０は、通信ネットワーク１４０を介して、第２の通信接続Ｂ、及び、第３の通信接続Ｃを使用して、遠隔クラウドサービスシステム１５０にデータを送信する。ブロック２１０において、自社運用のコンピューティングデバイス１２０からデータを受信した後、遠隔クラウドサービスシステム１５０は、対象物認識、重複排除等のような、本明細書に記載の様々なコンピューティングプロセスを実行することができる。対象物のタイプ、対象物のポーズ、及び対象物の場所のような情報は、ブロック２１２で決定され、この情報は、ブロック２１４で自社運用のコンピューティングデバイス１２０に提供される。ブロック２１６で、自社運用のコンピューティングデバイス１２０によって、オブジェクト情報は、ロボット１００に提供される。したがって、計算上要求の多いプロセスの大部分は、ロボット１００ではなく、遠隔クラウドサービスシステム１５０によって実行される。実施形態は、図３に示すコンピューティング分布に限定されず、ロボット１００と、自社運用のコンピューティングデバイス１２０と、及び遠隔クラウドサービスシステム１５０との間の他のコンピューティング分布が考えられることが理解されるべきである。
【００３０】
コンピューティング分布に関わらず、遠隔クラウドサービスシステム１５０は、ロボットシステム２０内のロボット１００によって参照され得るオブジェクトライブラリを開発し、格納するように構成されている。遠隔クラウドサービスシステム１５０は、画像のセットから、１つ以上のデータソースから、画像データを受け取ることができる。例えば、遠隔クラウドサービスシステム１５０は、対象物のタイプを分類するためのトレーニングデータとして、任意のソース（例えば、インターネット上のソースから）からの何百万もの対象物の画像にアクセスすることができる。遠隔クラウドサービスシステム１５０は、教師付き学習、又は教師なし学習を行って、対象物のライブラリを開発することができる。さらに、対象物のライブラリを開発するために、自社運用のコンピューティングデバイス１２０によって提供されるデータは、遠隔クラウドサービスシステム１５０によって使用されてもよい。
【００３１】
対象物のライブラリ内の各対象物は、それらに関連付けられた複数の属性を有する。例示的な属性は、それらに限定されないが、寸法情報（すなわち、長さ、幅、及び高さ）、重心、テクスチャ、特徴（例えば、穴、エッジ、突起など）、三次元メッシュ、最適把持パターン等を含み、それらは対象物のライブラリ内の各対象物に対して格納されてもよい。したがって、ロボットシステム２０内のロボット１００の全ては、遠隔クラウドサービスシステム１５０によって提供される対象物のライブラリを使用してもよい。ロボット１００が、環境内の対象物に遭遇した場合、遠隔クラウドサービスシステム１５０及び／又は自社運用のコンピューティングデバイス１２０は、対象物に関して得られたデータを、ライブラリデータと比較することによって、対象物をライブラリに保存された対象物として決定する。ライブラリ内の保存された対象物の様々な属性が、検出された対象物に適用されてもよい。寸法属性等のこれらの記憶された属性を適用することにより、検出された対象物に関する感知されたデータのノイズ及びエラーの量を低減することができる。結果として、ロボット１００は、ロボット１００が、より正確に、対象物が有する可能性のある様々な属性を決定することを可能にする追加の情報を有していてもよい。
【００３２】
ロボット１００が、図１に示す家１０などの環境を横切ると、ロボット１００、自社運用のコンピューティングデバイス１２０、及び遠隔クラウドサービスシステム１５０は協力して、環境内に存在する様々な対象物の位置、及び姿勢を決定する。このようにして、対象物の検索要求に対応するユーザからの入力を受け付けると、ロボット１００は、対象物の位置を特定するためのプログラミングを利用し、最適な把持パターンを実行し、対象物の姿勢に基づいて、対象物を把持する。いくつかの実施形態において、特定の対象物の位置は、遠隔クラウドサービスシステム１５０によって記憶されてもよい。したがって、ロボット１００は、自社運用のコンピューティングデバイス１２０を介して、対象物の位置を遠隔クラウドサービスシステム１５０から受信することができる。そのような対象物は、環境内で追跡される。
【００３３】
いくつかの実施形態において、ユーザによって操作されるコンピューティングデバイスは、環境内の対象物の姿勢だけでなく、対象物が配置される場所の感知された位置のグラフィック表現を表示することができる。図４は、ロボット１００（図１）によって決定される環境内の様々な対象物、及びそれらのそれぞれの位置の例示的なグラフィック表現を示す。いくつかの実施形態において、対象物のグラフィック表現は、環境の画像の上に重ねられることができる。図１を参照しながら、図４の例では、点線３０２は、１つ以上のライダーセンサによって決定される点群を表す。点群は、環境内の様々な対象物、特徴等を表すことができる。１つ以上のグラフィック表現３０４は、ロボット１００、自社運用のコンピューティングデバイス１２０、及び遠隔クラウドサービスシステム１５０によって決定された対象物の位置を示す。グラフィック表現３０４は、色分けされた一般的は形状であってもよいし、実際の対象物に近似した形状であってもよい。いくつかの実施形態において、グラフィック表現３０４は、実際の対象物を表すアイコンを含んでもよい。更に、対象物のタイプ、対象物の特性、対象物の名称等、対象物の詳細を記載するラベル３０６も表示されてよい。対象物の最後の測定が行われた時間、対象物の姿勢の説明、及び／又は関連性があり得るその他の情報など、他の情報が表示されてもよい。ユーザは、対象物をクリックするか、さもなければ、選択して、対象物のさらなる情報を表示して、対象物等に対して実行され得る操作のメニューを表示できる。例示的な操作は、それに限定されないが、対象物の検索、及び対象物のユーザへの配信、現在の場所から別の場所への対象物の移動、対象物の再配置、対象物に近い動き等を含む。
【００３４】
本明細書で述べるように、遠隔クラウドサービスシステム１５０は、複数のロボットサービスを提供する。１つの例示的な非限定的なロボットサービスは、ロボット１００によって検出される対象物の重複排除である。特定のセンサは、１００パーセント（１００％）正確でない場合があり、対象物の検出された位置が時間とともにシフトする可能性がある。例えば、カメラセンサを使用して、対象物の位置に対応する第１の測定は、第１の位置にあるが、対象物自体が動かなかったにもかかわらず、第２の測定は、第１の位置に対してわすかにシフトされた第２の位置にある。これにより、ロボット１００は、２つの類似の対象物が互いに近接していると誤って判断することがある。又は、ロボット１００は対象物の数が１つだけであると判断してもよいが、ロボット１００が首尾よく対象物を把持するためのコマンドを提供することができないよう、移動した位置は不正確である。したがって、本開示の実施形態は、そのような状況における対象物の重複排除のためのシステム及び方法に関する。
【００３５】
重複排除プロセスの１つの非限定的な例において、対象物の履歴測定を使用して、信頼値とともに、対象物の位置、及び姿勢を決定すし、相対的に最近の測定は、相対的に古い測定よりも大きな重みが与えられる。ロボット１００が、最初に対象物に遭遇すると、対象物の画像データ（及び、他のデータ）が、相対的に低い信頼値で記憶される。非限定的な例として、信頼値が１から１００までの尺度上の数字である場合、初期信頼値は約１であってもよい。第１の測定の間、対象物の寸法が決定される。例えば、図１及び図５を参照すると、ティッシュボックス１３６などの対象物の長さＬ、幅Ｗ、及び高さＨを決定することができる。対象物の測定は、ライブラリ内に格納された複数の対象物と比較することができる。例えば、検出された対象物のボリュームは、ライブラリ内に格納された対象物のボリュームと比較されてもよい。検出された対象物に最も密接に一致するライブラリに格納された対象物のボリュームを、対象物として選択することができる。図５において、対象物のライブラリ内のティッシュボックスの描写１３６´は、ロボット１００のセンサによって検出されるように、ティッシュボックス１３６の描写に密接に一致する。寸法が全く一致しない場合もあるが、ティッシュボックスの描写１３６´を選択することができる、何故なら、ティッシュボックスの描写１３６´は、最も密接に、ライブラリに格納された他の対象物と相関するからである。限定ではなく一例として、ボリューム間の比較は、最近点法によって行うことができる。上述のように、ロボット１００が、最初に対象物に遭遇する場合、低い信頼値が割り当てられる。
【００３６】
対象物との第２の遭遇の間に、オブジェクトライブラリ内に格納された対象物を決定するために、同様の分析が実行される。第１の遭遇の対象物と、第２の遭遇の対象物が同じであり、それらの位置が異なる場合、システムは、２つの位置の平均を決定し、最新の測定の信頼値を増加させる。対象物との第３の遭遇の間に、第３の位置測定が、タイブレーカーとして使用され、最初の２つの読み取り値のうちのどちらが正しい可能性が高いかを決定する。第３の測定の信頼値は、前の２つの測定値よりも増える。対象物は、時間とともにわずかに動くことがあるため（例えば、人々が家を歩くことによって引き起こされる振動のために）、最新の測定が最も正しいと思われる。したがって、以前の測定は、時間とともに劣化する。非限定的な例として、現在の読み取り値に、１の値が割り当てられている間に、以前の測定は、値（例えば、０９）でドッキングされてもよい。いくつかの実施形態において、測定された対象物の姿勢も、以前の読み取り値と比較され、対象物の姿勢を検証する。したがって、１つ以上のセンサ１０２によって観察される少量のジッタがあったとしても、ロボット１００は、対象物の数は１つだけと判断することができる。ロボット１００が部屋１３０全体を移動するとき、ロボット１００による対象物の測定は、対象物の周りの様々な点から行われる（例えば、ロボット１００が別の対象物に向かって移動する間に得られる）。したがって、対象物の位置が変更されているように見えることがある。しかしながら、位置／姿勢のわずかな変化は、対象物の動きを示すものではなく、別の対象物がわずかに異なる位置に配置されている。
【００３７】
測定された対象物の現在の位置と、以前に測定された位置との間の差が相対的に大きい場合（例えば、幅の半分よりも大きいか、又は対象物のサイズの半分よりも大きい）、ロボットシステム２０は、対象物の保存されたすべての角度、及び対象物の様々な姿勢にアクセスする。これは、検出された対象物が、以前に検出された対象物の隣に座っている第２の対象物である可能性があるかを決定するために実行される。現在測定されている対象物が、対象物に関連付けられたボリューム、又は他の特性に基づいて、現在測定されている対象物の隣にある第２の対象物に適合できない場合、システムは、測定の内の１つが不正確であると判断する。以前の測定の信頼値が低下し、最新の測定の信頼値が増加する。しかしながら、両方の測定が保存される。後続の測定も対象物に対して行われ、単一の対象物であり、すべてが同じボリュームを占めるので対象物を複製しないという信頼性を高める。
【００３８】
場合によっては、ロボットシステム２０は、そのようなアイテムのうちの１つしか存在し得ない環境内に固有のアイテムが存在することを認識することができる。例えば、１組のユーザの鍵のみが存在してもよい。すなわち、２つの異なる場所に、ユーザの鍵の２つの異なるインスタンスが存在しない。さらに、ユーザの鍵は、他の人の鍵とは異なる。そのようなインスタンスにおいて、ユーザは、対象物を、固有の対象物としてタグ付けし、ロボットシステム２０は、対象物が一意であると認識するようにプログラムすることができる。遠隔クラウドサービスシステム１５０は、固有のアイテムのインスタンスが１つしか存在しないようにプログラムすることができる。固有のアイテムの場合、ロボットシステム２０（例えば、遠隔クラウドサービスシステム１５０及び／又は自社運用のコンピューティングデバイス１２０）は、上述のボリュームチェックステップを実行しなくてもよい。むしろ、固有の対象物の最新の位置測定が、正しい位置とみなされる。いくつかの実施形態において、いくつかの以前の測定の平均位置を決定することができる。以前の測定と大幅に異なる位置測定がある場合、最新の位置測定は、真であり、古い位置測定は無効である。したがって、最新の位置測定は、最も高いスコアを有することになる。いくつかの実施形態において、全ての履歴測定を、長期的な処理のために保存してもよい。
【００３９】
本開示の実施形態は、検出された対象物の周囲の領域検出バブルを提供することができる。これらの領域検出バブルは、遠隔クラウドサービスシステム１５０、自社運用のコンピューティングデバイス１２０、及び／又は、局所的に、ロボット１００自体によって決定されてもよい。領域検出バブルは、ロボット１００のセンサ１０２によって引き起こされる誤差の量を説明することができる。したがって、ロボット１００が領域検出バブル内に対象物を正確に配置できない場合であっても、ロボット１００は、領域検出バブル内に、たとえインスタンス内にも対象物が存在することを認識するようにプログラムすることができる。
【００４０】
ロボット１００の複数のセンサ１０２からの１つ以上の出力は、本質的にノイズが多い。例えば、特にロボット１００が動いており、ロボット１００の動きによってセンサ１０２が振動している場合に、ロボット１００の頭部に配置されたセンサ１０２は、特定のレベルの精度でノイズの多い出力又は信頼性の低い出力を提供することが知られている。このように、センサ１０２が出力を提供する前に、複数のセンサ１０２の精度は、決定されてもよい。一例として、特定のセンサ１０２は、特定の深さ（例えば、１メートルの精度）で、特定の距離内で正確であることが知られている。特定のセンサ１０２を使用してその深さで対象物が検出されると、正確な距離の半径ｒを有する球体を、対象物の測定された中心の周りに配置することができる。領域検出バブルは、球体によって定義されてもよい。したがって、ロボット１００は、球体内に対象物が存在することを認識するようにプログラムされてもよい。
【００４１】
図６を参照すると、ティッシュボックス１３６は、特定の精度を有するセンサ１０２によって検出される。センサ１０２は、距離ｄ以内で正確である。したがって、ロボットシステム２０は、距離ｄに等しい半径ｒを有する領域検出バブル１３９を画定する球体を位置決めする。
【００４２】
図１を再び参照すると、遠隔クラウドサービスシステム１５０は、様々な他の機能を実行してもよい。非限定的な例として、自社運用のコンピューティングデバイス１２０は、ユーザの口頭コマンドを表す音声データを、遠隔クラウドサービスシステム１５０に送信することができる。遠隔クラウドサービスシステム１５０は、１つ以上の音声認識及び／又は自然言語処理アルゴリズムを使用して、音声データをコンピュータ可読命令に変換することができる。遠隔クラウドサービスシステム１５０は、コンピュータ可読命令に従い、その動作の結果を、自社運用のコンピューティングデバイス１２０を介してロボット１００に配信することができる。
【００４３】
さらに、経路計画は、遠隔クラウドサービスシステム１５０によって実行されてもよい。例えば、ユーザは、遠隔クラウドサービスシステム１５０に送信される指示をロボット１００に提供してもよい。決定されたタスクを実行する目的のためのパス及び把持パターンを生成するモデリング又は他の方法に基づいて、遠隔クラウドサービスシステム１５０は、指示を受信し、ロボット１００によって完了されるタスクを決定し、経路計画、及び把握パターン計画などのタスクを実行することができる。経路計画及び／又は把持パターンに対応する指示は、自社運用のコンピューティングデバイス１２０を介して、ロボット１００に送信される。いくつかの実施形態において、自社運用のコンピューティングデバイス１２０は、経路計画と、把握パターン計画の両方を実行する。いくつかの実施形態において、自社運用のコンピューティングデバイス１２０、及び遠隔クラウドサービスシステム１５０は、まとめて、経路計画、及び把握パターン計画を実行することができる。
【００４４】
いくつかの実施形態において、遠隔クラウドサービスシステム１５０に送信される情報は、プライバシー上の理由により制限されることがある。例えば、実際の画像が、遠隔クラウドサービスシステム１５０に送信されることはない。むしろ、画像を表すデータのみが、遠隔クラウドサービスシステム１５０に送信される。自社運用のコンピューティングデバイス１２０によって実行される画像処理の一部として、画像データが送信されない様、個人情報を除去することができる。一例として、遠隔クラウドサービスシステム１５０は、家庭内の特定の場所に、ソーダ缶の証拠に関するデータを含んでもよいが、データには、ソーダ缶の実際の画像、又はソーダ缶の周囲の領域がない。
【００４５】
さらに、ロボットシステム２０は、３Ｄ位置情報に基づいて、ユーザを認証することができる。したがって、概ね、ユーザがロボット１００のすぐ近くに立っている場合に、ユーザは、遠隔クラウドサービスシステム１５０、及びロボットシステム２０の機能にアクセスできるのみである。近接は、例えば、ロボット１００からの特定の距離内、ロボット１００と同じ部屋１３０内、ロボット１００と同じ建物内等であってもよい。別の例において、リモートユーザは、家１０内の既知の対象物をロボットシステム２０に記述することができる。例えば、ユーザは、「テーブルの左隅にソーダ缶があります」と言ってもよい。ロボット１００は、これが真であることを確認するために情報を取得し、次いで、家１０についての追加情報を提供することができる、何故なら、ユーザは、家１０に関する具体的な何かを知っていることを証明しただけであるためである。この使用は、例えば、モバイル装置、及びインターネットを使用してロボットシステム２０に遠隔からアクセスすることができる。
【００４６】
いくつかの実施形態において、ユーザは、ロボット１００を訓練するために何らかの報酬を支払われても提供されてもよい。例えば、ユーザは、ロボット１００に「これはマグカップである」と伝え、その後、ユーザが様々なポーズで家１０内に所有するマグカップの全てをロボット１００に示すことに同意することができる。更に、ユーザは、環境内の対象物をタグ付けすることができる。例えば、ユーザは、「これらは私の鍵です」又は「これは私のコンピュータです」と言ってもよい。ロボットシステム２０は、タグを、タグ付き対象物に対応するセンサデータに関連付けでもよい。ロボットシステム２０は、タグ付けされる対象物から背景画像を抜き出すように構成されてもよい。例えば、ロボットシステム２０は、ユーザの手、及び腕から一組のキーを抜き出すことができる。
【００４７】
図７を参照すると、本明細書に記載の機能を実行することができる例示的なロボット１００の構成要素が概略的に示されている。ロボット１００は、図７に示されるより多くの構成要素を含んでもよく、図７は、説明の目的のために提供されることを理解すべきである。例示的なロボット１００は、概ね、プロセッサ１１０、通信経路１１１、ネットワークインターフェースハードウェア１１２、複数のセンサ１０２、１つ以上のメモリモジュール１１４、複数の入力及び出力デバイス１１５、複数のアクチュエータ１１６、及び位置センサ１１３を含む。
【００４８】
通信経路１１１は、例えば、導電性ワイヤ、導電性トレース、光導波路等の信号を送信できる任意の媒体から形成することができる。また、通信経路１１１は、信号を伝送可能な媒体の組み合わせから形成されてもよい。一実施形態において、通信経路１１１は、導電性トレース、導電性ワイヤ、コネクタ、及びバスの組み合わせを含み、それらは、プロセッサ、メモリ、センサ、入力デバイス、出力デバイス、及び本明細書に記載の様々な構成要素を含む通信デバイスなどの構成要素への電気データ信号の送信を可能にするために協働する。したがって、いくつかの実施形態において、通信経路１１１は、バスであってもよい。さらに、「信号」という用語は、媒体を通って移動することができる、直流、交流、正弦波、三角波、方形波、振動等の波形（例えば、電気的、光学的、磁気的、機械的、又は電磁的な）を意味することに留意されたい。通信経路１１１は、ロボット１００の様々な構成要素を通信可能に結合する。本明細書で使用される場合、「通信可能に結合」という用語は、結合コンポーネントが、例えば、導電性媒体を介する電気信号、空気を介する電磁信号、光導波路を介する光信号等、相互にデータ信号を交換することができることを意味する。
【００４９】
ロボット１００のプロセッサ１１０は、本明細書に記載の様々な機能を実行するための機械可読命令のような、機械可読命令を実行することができる任意のデバイスであってもよい。したがって、プロセッサ１１０は、コントローラ、集積回路、マイクロチップ、コンピュータ、又は任意の他のコンピューティングデバイスであってもよい。プロセッサ１１０は、通信経路１１１によって、ロボット１００の他の構成要素に通信可能に結合される。したがって、通信経路１１１は、任意の数のプロセッサを互いに通信可能に接続し、通信経路１１１に結合された構成要素を分散コンピューティング環境で動作させることができる。具体的には、各構成要素は、データを送信及び／又は受信することができるノードとして動作することができる。図７に示す実施形態は、単一のプロセッサ１１０を含み、他の実施形態は、２つ以上のプロセッサを含むことができることを理解されたい。
【００５０】
ネットワークインターフェースハードウェア１１２は、通信経路１１１に結合され、プロセッサ１１０に通信可能に結合される。ネットワークインターフェースハードウェア１１２は、通信ネットワーク１４０を介して、データを送信及び／又は受信することができる任意のデバイスであってもよい。したがって、ネットワークインターフェースハードウェア１１２は、任意の有線、又は無線通信を送信及び／又は受信するための通信トランシーバとして構成された無線通信モジュールを含むことができる。例えば、ネットワークインターフェースハードウェア１１２は、アンテナ、モデム、ＬＡＮポート、Ｗｉ−Ｆｉカード、ＷｉＭａｘカード、移動通信ハードウェア、近距離通信ハードウェア、衛星通信ハードウェア及び／又は、他のネットワークと通信するための有線、又は無線ハードウェア、及び／又はデバイスを含んでもよい。一実施形態において、ネットワークインターフェースハードウェア１１２は、ブルートゥース、ジグビー、Ｚ波、８０２１１標準等の無線通信プロトコルに従って動作するように構成されたハードウェアを含む。別の実施形態において、ネットワークインターフェースハードウェア１１２は、携帯型電子デバイスとの間でブルートゥース通信を送受信するためのブルートゥース送受信モジュールを含むことができる。ネットワークインターフェースハードウェア１１２は、ＲＦＩＤタグに問い合わせて、読み取るように構成された無線周波数識別（「ＲＦＩＤ」）リーダーを含むことができる。ネットワークインターフェースハードウェア１１２は、自社運用のコンピューティングデバイス１２０と通信するために使用される。
【００５１】
複数のセンサ１０２は、プロセッサ１１０に通信可能に結合されていてもよい。本明細書で以前に記載されたように、複数のセンサ１０２は、環境に関する情報をロボット１００に提供することができる任意のタイプのセンサを含むことができる。複数のセンサ１０２は、それらに限定されないが、カメラ（例えば、ＣＣＤカメラ）、赤外線センサ、深度センサ、近接センサ、触覚センサ、ライダーセンサ、レーダセンサ、飛行時間センサ、慣性測定ユニット（例えば、１つ以上の加速度計、及びジャイロスコープ）等を含んでもよい。本明細書に記載の通り、センサデータは、自社運用のコンピューティングデバイス１２０と通信される。
【００５２】
ロボット１００のメモリモジュール１１４は、通信経路１１１に結合され、プロセッサ１１０に通信可能に結合される。メモリモジュール１１４は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ハードドライブ、又は機械可読命令を格納することができる任意の非一時的記憶装置を含むことができ、機械可読命令が、プロセッサ１１０によってアクセスされ、実行され得る。機械可読命令は、任意の世代の任意のプログラミング言語（例えば、１ＧＬ、２ＧＬ、３ＧＬ、４ＧＬ、又は５ＧＬ）で記述された論理、又はアルゴリズムを含むことができ、例えば、プロセッサによって直接実行され得る機械語、アセンブリ言語、オブジェクト指向プログラミング（ＯＯＰ）、スクリプト言語、マイクロコード等があり、これらは、機械可読命令にコンパイル、又は組み立てられ、メモリモジュール１１４に格納されてもよい。あるいは、機械可読命令は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）構成、特定用途向け集積回路（ＡＳＩＣ）、又はそれらの等価物のいずれかを介して実施される論理などのハードウェア記述言語（ＨＤＬ）で書かれてもよい。したがって、本明細書に記載の機能性は、事前にプログラムされたハードウェア要素として、又はハードウェアコンポーネントとソフトウェアコンポーネントの組み合わせとして、任意の従来のコンピュータプログラミング言語で実装されてもよい。図７に示す実施形態は、単一のメモリモジュール１１４を含むが、他の実施形態は、２つ以上のメモリモジュールを含み得ることを理解されたい。メモリモジュール１１４は、本明細書に記載されるようなセンサデータを格納することができる。
【００５３】
入力及び出力デバイス１１５は、任意の数の入力デバイス及び出力デバイスを含むことができる。例示的な入力デバイスは、これらに限定されないが、キーボード、ボタン、スイッチ、ノブ、タッチパッド、タッチスクリーン、マイクロフォン、赤外線ジェスチャセンサ、マウスデバイス等を含む。例示的な出力デバイスは、これらに限定されないが、スピーカ、電子ディスプレイ、ライト、発光ダイオード、ブザー、触覚ディスプレイ等を含む。
【００５４】
複数のアクチュエータ１１６は、ロボット１００が空間をナビゲートして対象物を操作することを可能にする任意の機械的アクチュエータを含んでもよい。アクチュエータは、ロボット１００を空間内で移動させる電動車輪アセンブリを含んでもよい。アクチュエータは、ロボット１００のアーム及びエンドエフェクタを移動させて対象物を把持及び操作するように制御されるモータを含むことができる。そのようなアクチュエータ１１６は、概ね理解されており、本明細書では詳細には説明しない。
【００５５】
位置センサ１１３は、通信経路１１１に結合されており、したがって、プロセッサ１１０に通信可能に結合されている。位置センサ１１３は、位置を示す出力を生成することができる任意のデバイスであってもよい。いくつかの実施形態において、位置センサ１１３は、全地球測位システム（ＧＰＳ）センサを含むが、実施形態はこれに限定されない。いくつかの実施形態において、位置座標を提供する目的で、位置センサ１１３は、８０２１１標準、ブルートゥース等の無線プロトコルを利用することができる。ロボット１００がロボット１００の位置を決定しない実施形態、又は、位置が他の方法で決定される実施形態（例えば、他の機器から受信した情報に基づいて）など、いくつかの実施形態は、位置センサ１１３を含まなくてもよい。位置センサ１１３は、１つ以上の無線信号アンテナから受信された無線信号によって、ロボット１００の位置とユーザとを三角測量することができる無線信号センサとして構成されてもよい。
【００５６】
ロボット１００は、図７に示されていない他の構成要素を含んでもよいことを理解されたい。例えば、ロボット１００はバッテリによって電力を供給されてもよい。バッテリは、ロボット１００によって後で使用するために電気エネルギーを蓄積することができる任意のデバイスであってもよい。いくつかの実施形態において、電池は、例えば、リチウムイオン電池、又はニッケル−カドミウム電池などの再充電可能な電池である。バッテリが再充電可能なバッテリである実施形態では、ロボット１００は、バッテリを充電するために使用される充電ポートを含むことができる。
【００５７】
図８を参照すると、自社運用のコンピューティングデバイス１２０の構成要素が、概略的に示されている。自社運用のコンピューティングデバイス１２０は、図８に示される構成要素より多くの構成要素を含んでもよく、図８は、説明の目的のみのために提供されていることを理解されたい。例示的な自社運用のコンピューティングデバイス１２０は、概ね、プロセッサ１２３、通信経路１２８、グラフィックス処理ユニット１２４、ネットワークインターフェースハードウェア１２５、１つ以上のメモリモジュール１２６、及び複数の入力及び出力デバイス１２７を含む。
【００５８】
通信経路１２８は、例えば、導電性ワイヤ、導電性トレース、光導波路等の信号を送信できる任意の媒体から形成されてもよい。また、通信経路１２８は、信号を伝送可能な媒体の組み合わせから形成されてもよい。一実施形態において、通信経路１２８は、導電性トレース、導電性ワイヤ、コネクタ、及びバスの組み合わせを含み、それらは、プロセッサ、メモリ、センサ、入力デバイス、出力デバイス、及び、本明細書に記載の様々な構成要素を含む通信デバイスなどの構成要素への電気データ信号の送信を可能にするように協働する。したがって、いくつかの実施形態において、通信経路１２８は、バスであってもよい。さらに、「信号」という用語は、直流、交流、正弦波、三角波、方形波、振動等、媒体を通って移動することができる波形（例えば、電気的、光学的、磁気的、機械的、又は電磁的な）を意味することに留意されたい。通信経路１２８は、ロボット１００の様々な構成要素を通信可能に結合する。本明細書で使用される場合、「通信可能に結合」という用語は、例えば、導電性媒体を介する電気信号、空気を介する電磁信号、光導波路を介する光信号等、結合コンポーネントが相互にデータ信号を交換することができることを意味する。
【００５９】
プロセッサ１２３は、本明細書に記載の様々な機能を実行するための機械可読命令を実行することができる任意のデバイスであってもよい。したがって、プロセッサ１２３は、コントローラ、集積回路、マイクロチップ、コンピュータ、又は任意の他のコンピューティングデバイスであってもよい。プロセッサ１２３は、通信経路１２８によって、自社運用のコンピューティングデバイス１２０の他の構成要素に通信可能に結合されている。したがって、通信経路１２８は、任意の数のプロセッサを互いに通信可能に接続し、通信経路１２８に結合された構成要素が分散コンピューティング環境で動作することを可能にする。具体的には、各構成要素は、データを送信及び／又は受信することができるノードとして動作してもよい。図８に示す実施形態は、単一のプロセッサ１２３を含むが、他の実施形態は、２つ以上のプロセッサ１２３を含んでもよいことを理解されたい。
【００６０】
グラフィックス処理ユニット１２４は、機械可読命令を実行することが可能であり、具体的には、対象物認識などの画像処理タスクを実行するように構成された任意のデバイスである。グラフィックス処理ユニット１２４は、コントローラ、集積回路、マイクロチップ、コンピュータ、又は任意の他のコンピューティングデバイスであってもよい。任意の既知の、又はまだ開発されていないグラフィックス処理ユニットを利用してもよい。いくつかの実施形態において、グラフィックス処理ユニット１２４が利用されていない。むしろ、プロセッサ１２３は、必要に応じて、画像処理計算、ならびに他の計算を処理する。
【００６１】
ネットワークインターフェースハードウェア１２５は、通信経路１２８に結合されており、プロセッサ１２３に通信可能に結合されている。ネットワークインターフェースハードウェア１２５は、通信ネットワーク１４０を介して、データを送信及び／又は受信することができる任意のデバイスであってもよい。したがって、ネットワークインターフェースハードウェア１２５は、任意の有線、又は無線通信を送信及び／又は受信するための通信トランシーバとして構成された無線通信モジュールを含むことができる。例えば、ネットワークインターフェースハードウェア１２５は、アンテナ、モデム、ＬＡＮポート、Ｗｉ−Ｆｉカード、ＷｉＭａｘカード、移動通信ハードウェア、近距離通信ハードウェア、衛星通信ハードウェア及び／又は、他のネットワークと通信するための有線、又は無線ハードウェア、及び／又はデバイスを含んでもよい。一実施形態において、ネットワークインターフェースハードウェア１２５は、ブルートゥース、ジグビー、Ｚ波、８０２１１標準等の無線通信プロトコルに従って動作するように構成されたハードウェアを含む。別の実施形態において、ネットワークインターフェースハードウェア１２５は、携帯型電子デバイスとの間でブルートゥース通信を送受信するブルートゥース送受信モジュールを含むことができる。ネットワークインターフェースハードウェア１２５は、ＲＦＩＤタグに問い合わせて読み取るように構成された無線周波数識別（「ＲＦＩＤ」）リーダーを含むことができる。ネットワークインターフェースハードウェア１２５は、ロボット１００と、遠隔クラウドサービスシステム１５０と通信するために使用される。
【００６２】
自社運用のコンピューティングデバイス１２０のメモリモジュール１２６は、通信経路１２８に結合され、プロセッサ１２３に通信可能に結合される。メモリモジュール１２６は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ハードドライブ、又は機械可読命令を格納することができる任意の非一時的記憶装置を含んでもよく、機械可読命令は、プロセッサ１２３によってアクセスされ、実行され得る。機械可読命令は、任意の世代の任意のプログラミング言語（例えば、１ＧＬ、２ＧＬ、３ＧＬ、４ＧＬ、又は５ＧＬ）で記述された論理、又はアルゴリズムを含むことができ、例えば、プロセッサ１２３によって直接実行され得る機械語、アセンブリ言語、オブジェクト指向プログラミング（ＯＯＰ）、スクリプト言語、マイクロコード等があり、それらは、機械可読命令にコンパイル、又は組み立てられ、メモリモジュール１２６に格納されてもよい。あるいは、機械可読命令は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）構成、特定用途向け集積回路（ＡＳＩＣ）、又はそれらの等価物のいずれかを介して実施される論理などのハードウェア記述言語（ＨＤＬ）で書かれてもよい。したがって、本明細書に記載の機能性は、事前にプログラムされたハードウェア要素、又はハードウェアコンポーネントとソフトウェアコンポーネントの組み合わせとして、任意の従来のコンピュータプログラミング言語で実装される。図８に示す実施形態は、単一のメモリモジュール１２６を含むが、任意の数のメモリモジュールが提供されてよいことを理解されたい。メモリモジュール１２６は、本明細書に記載のセンサデータを格納する。
【００６３】
入力及び出力デバイス１２７は、任意の数の入力デバイス及び出力デバイスを含んでもよい。例示的な入力デバイスは、これらに限定されないが、キーボード、ボタン、スイッチ、ノブ、タッチパッド、タッチスクリーン、マイクロフォン、赤外線ジェスチャセンサ、マウスデバイス等を含む。例示的な出力デバイスは、これらに限定されないが、スピーカ、電子ディスプレイ、ライト、発光ダイオード、ブザー、触覚ディスプレイ等を含む。
【００６４】
自社運用のコンピューティングデバイス１２０は、ローカルロボット及びヒューマンインタフェースを提供することに加えて、環境内の他のシステムのハブとしても機能し、クラウドに測定データを継続的に送信できる常時電源式の（バッテリ駆動ではなく）Ｗｅｂサーバーを提供し、ローカルのグラフィカルユーザーインターフェイスを提供し、ロボット上でのコンピューティングとストレージの削減を可能にする。多くのインテリジェンスタスクは、電力集約的なグラフィックス処理ユニット（ＧＰＵ）処理を必要とすることがある。更に、自社運用のコンピューティングデバイス１２０は、クラウドにアップロードする前に、画像処理、及び様々な他のタスクを提供することができるロボット１００へのハイスループットパイプであってもよい。クラウドサービスシステム１５０のニーズに基づいて、データは、ロボット１００から、自社運用のコンピューティングデバイス１２０に、選択的に送信されてもよい（例えば、ストリーミング）。クラウドサービスシステム１５０は、また、機械インテリジェンスサービスや様々なデータストレージサービスなどの特定のサービスへのフローを制御することもできる。
【００６５】
いくつかの実施形態において、ロボット操作システム（ＲＯＳ）は、ロボット上に提供される。すなわち、ロボットは、自社運用のコンピューティングデバイス１２０を発見するように構成されたソフトウェアを有し、ロボットは、限定ではないが、マルチキャストドメインネームシステム（ＭＤＮＳ）発見、及びＧＲＰＣ登録を使用して、自社運用のコンピューティングデバイス１２０に登録することができる。登録が行われると、自社運用のコンピューティングデバイスは、ロボット内で動作するＲＯＳマスタのクライアントになることがある（例えば、ウェブソケット（ブリッジがある場合はＧＲＰＣ）を介して）。自社運用のコンピューティングデバイス１２０は、利用可能なサービス、挙動及びトピックを発見し、そのような利用可能なサービス、挙動、及びトピックを、自社運用のサービスグラフィカルユーザインタフェース上に提示し、及び／又はその情報をクラウドサービスシステム１５０にプッシュすることができる（例えば、ＧＲＰＣを介して）。
【００６６】
クラウドサービスシステム１５０は、要求されたトピックの収集を要求することができ、自社運用のコンピューティングデバイス１２０は、限定されないが、キネシスストリームにデータをストリーミングし始めることができる。ストリーミングされたデータは、多くのデバイスによって処理され、データはストレージデバイスの集合に記録されることができる。
【００６７】
本明細書で記載される実施形態は、ロボット、ロボットと通信する自社運用のコンピューティングデバイス、及び自社運用のコンピューティングデバイスと通信するクラウドサービスシステムを含むロボットシステムに関することが理解されるべきである。自社運用のコンピューティングデバイス、及びクラウドサービスシステムは、ロボットからの処理要求をオフロードし、ロボットはより効率的に機能し、より少ない電気エネルギーを消費し、単一のバッテリ充電でより長い時間動作することができる。自社運用のコンピューティングデバイスは、センサデータをロボットから受信し、選択されたセンサデータをクラウドサービスシステムに提供してもよい。クラウドサービスシステムは、エネルギー集約的な対象物認識、及び他のプロセスを実行することができる。これらのプロセスの結果は、クラウドサービスシステムから、自社運用のコンピューティングデバイスに送信され、次にロボットに送信される。クラウドサービスシステムは、対象物の重複排除、経路計画、シミュレーション、モデリング、機械学習等の追加のサービスを提供してもよい。
【００６８】
したがって、実施形態は、ロボットがデータをクラウド内に送信及び格納することによって互いに学ぶことを可能にする。たとえば、ロボットは自己生成モデルの周りにコンテキストを構築することができる。これらのモデルは、プッシュ、索引付け、及び公開されることがある。テレメトリー、イメージ、オーディオなどの他のデータも、クラウドを活用して機械学習及び／又は人工知能機能を適用できる単一の集団にプッシュすることができる。この学習により、ロボット上で適用可能なモデルが作成され、自社運用のインタラクションでより効率的でインテリジェントなものになる。さらに、顔、音声、対象物認識などのサービスは、クラウドで利用可能な計算能力を使用することができる。
【００６９】
特定の実施形態が本明細書に図示され説明されたが、特許請求される主題の精神及び範囲から逸脱することなく、様々な他の変更及び修正を行うことができることを理解されたい。さらに、特許請求される主題の様々な態様が本明細書に記載されているが、そのような態様を組み合わせて利用する必要はない。したがって、添付の特許請求の範囲は、特許請求される主題の範囲内にあるそのようなすべての変更及び修正を含むことが意図されている。
【００７０】
例１
プロセッサと、機械可読命令を格納する非一時的記憶装置を備える自社運用のコンピューティングデバイスであって、前記プロセッサによって実行されると、前記機械可読命令は、前記プロセッサに、
ロボットから未処理のセンサデータを受信させ、
前記未処理のセンサデータを前処理して、前記未処理のセンサデータから不要な情報を除去し、前処理されたデータを取得させ、
前記前処理されたデータをクラウドサービスシステムに送信させ、
前記クラウドサービスシステムから、対象物のタイプ、対象物のポーズ、及び前記前処理されたデータに対応する対象物の場所を受信させ、
前記対象物のタイプ、前記対象物のポーズ、及び前記対象物の前記対象物の場所のうちの少なくとも１つに基づいて、前記ロボットに信号を送信させる自社運用のコンピューティングデバイス。
例２
前記前処理されたデータのサイズは、前記未処理のセンサデータのサイズより小さい例１に記載の自社運用のコンピューティングデバイス。
例３
前記機械可読命令は、前記プロセッサに、前記クラウドサービスシステムからの経路計画命令を受け取らせ、前記経路計画命令を前記ロボットに送信させる例１に記載の自社運用のコンピューティングデバイス。
例４
前記プロセッサに前記ロボットから前記未処理のセンサデータを受信させる前記機械可読命令は、更に、前記プロセッサに、共同配置されたロボットから前記未処理のセンサデータを受信させる例１に記載の自社運用のコンピューティングデバイス。
例５
前記機械可読命令は、前記プロセッサに、前記ロボットから前記未処理のセンサデータを受信する前に、ユーザインタフェースを介してコマンドを受信させ、前記コマンドは、前記ロボットがタスクを実行するための命令に相当する例１に記載の自社運用のコンピューティングデバイス。
例６
前記プロセッサに前記信号を前記ロボットに送信させる前記機械可読命令は、前記プロセッサに、前記対象物を操作するための命令を前記ロボットに提供させる例１に記載の自社運用のコンピューティングデバイス。
例７
前記未処理のセンサデータは、前記対象物に対応するデータと、前記対象物の周囲の領域検出バブルとを備える例１に記載の自社運用のコンピューティングデバイス。
例８
前記機械可読命令は、前記プロセッサに、前記ロボットから前記未処理のセンサデータを受信する前に、ユーザを認証させ、前記ロボットに隣接する領域内の既知の対象物に対応する前記ユーザからの入力を、前記既知の対象物に関する記憶された情報と比較することによって、前記ユーザは認証される例１に記載の自社運用のコンピューティングデバイス。
例９
前記対象物のタイプは、以前にユーザによってタグ付けされた対象物に対応するグ付き対象物データから導出される例１に記載の自社運用のコンピューティングデバイス。
例１０
プロセッサと、機械可読命令を格納する非一時的記憶装置を備えるクラウドサービスシステムであって、前記プロセッサによって実行されると、前記機械可読命令は、前記プロセッサに、
自社運用のコンピューティングデバイスから、前処理されたデータを受信させ、前記前処理されたデータは、ロボットから発生した未処理のセンサデータから前記自社運用のコンピューティングデバイスによって抽出されたデータであり、
前記前処理されたデータから対象物の対象のタイプ、対象のポーズ、及び対象場所を決定させ
前記対象のタイプ、前記対象のポーズ、及び前記対象場所を前記自社運用のコンピューティングデバイスに送信させるクラウドサービスシステム。
例１１
前記前処理されたデータは画像データであり、前記対象物のタイプ、及び前記対象物のポーズは、対象物認識アルゴリズムを前記画像データに適用することによって決定される例１０に記載のクラウドサービスシステム。
例１２
前記機械可読命令は、更に、前記プロセッサに、対象物の複数の履歴測定を評価する重複排除プロセスを実行させ、現在の対象物が、前記複数の履歴測定の１つ以上の履歴測定と同じ対象物であるか、又は、前記対象物と異なる第２の対象物であるかを決定する例１０に記載のクラウドサービスシステム。
例１３
前記機械可読命令は、更に、前記プロセッサに、ロボット経路計画を生成させ、前記ロボット経路計画を、前記自社運用のコンピューティングデバイスに送信させる例１０に記載のクラウドサービスシステム。
例１４
前記機械可読命令は、更に、前記プロセッサに、前記ロボットに前記対象物を操作させるための命令を生成させ、前記命令を、前記自社運用のコンピューティングデバイスに送信させる例１０に記載のクラウドサービスシステム。
例１５
前記機械可読命令は、更に、前記プロセッサに、前記前処理されたデータを、前記自社運用のコンピューティングデバイスから受信する前に、ユーザを認証させ、前記ロボットに隣接する領域内の既知の対象物に対応する前記ユーザからの入力を、前記既知の対象物に関する記憶された情報と比較することによって、前記ユーザは認証される例１０に記載のクラウドサービスシステム。
例１６
前記対象物のタイプは、以前にユーザによってタグ付けされた対象物に対応するタグ付き対象物データから決定される例１０に記載のクラウドサービスシステム。
例１７
自社運用のコンピューティングデバイスで、ロボットから未処理のセンサデータを受信することと、
前記自社運用のコンピューティングデバイスによって、処理されたセンサデータを生成するために、前記未処理のセンサデータのサイズを小さくすることと、
前記自社運用のコンピューティングデバイスによって、前記処理されたセンサデータをクラウドサービスシステムに送信することと、
前記対象物のタイプ、前記対象物のポーズ、及び前記対象物の場所は、前記処理されたセンサデータから前記クラウドサービスシステムによって決定され、前記クラウドサービスシステムから対象物のタイプ、対象物のポーズ、及び対象物の場所を、前記自社運用のコンピューティングデバイスによって、受信することと、
前記対象物のタイプ、前記対象物のポーズ、及び前記対象物の前記対象物の場所のうちの少なくとも１つに基づいて、前記自社運用のコンピューティングデバイスによって、前記ロボットに信号を送信することとを含むロボットを制御する方法。
例１８
前記対象物のタイプ、及び前記対象物のポーズは、対象物認識アルゴリズムによって決定される例１７に記載の方法。
例１９
前記対象物のタイプ、前記対象物のポーズ、及び前記対象物の場所を受け取ることは、現在の対象物が、複数の履歴測定の１つ以上の履歴測定と同じ対象物であるか、又は異なる対象物であるかを決定するために、前記対象物の前記複数の履歴測定を評価する重複排除プロセスの結果として生成された前記対象物に関する情報を受信することを備える例１７に記載の方法。
例２０
前記ロボットから前記未処理のセンサデータを受信する前に、ユーザインタフェースを介して、コマンドを受け取ることであって、前記コマンドは、前記ロボットがタスクを実行するための命令に相当する、受け取ることを更に含む例１７に記載の方法。
【図１】
2019082999.tif 000003
【図２】
2019082999.tif 000004
【図３】
2019082999.tif 000005
【図４】
2019082999.tif 000006
【図５】
2019082999.tif 000007
【図６】
2019082999.tif 000008
【図７】
2019082999.tif 000009
【図８】
2019082999.tif 000010
【外国語明細書】
2019082999000001.pdf