JP2019071046A - ロボット仮想境界線 - Google Patents

ロボット仮想境界線 Download PDF

Info

Publication number
JP2019071046A
JP2019071046A JP2018161535A JP2018161535A JP2019071046A JP 2019071046 A JP2019071046 A JP 2019071046A JP 2018161535 A JP2018161535 A JP 2018161535A JP 2018161535 A JP2018161535 A JP 2018161535A JP 2019071046 A JP2019071046 A JP 2019071046A
Authority
JP
Japan
Prior art keywords
robot
virtual boundary
virtual
boundary
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018161535A
Other languages
English (en)
Inventor
クマール スワルナ サラス
Kumar Suvarna Sarath
クマール スワルナ サラス
ポン ブライアント
Pong Bryant
ポン ブライアント
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neato Robotics Inc
Original Assignee
Neato Robotics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Neato Robotics Inc filed Critical Neato Robotics Inc
Publication of JP2019071046A publication Critical patent/JP2019071046A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • B25J11/0085Cleaning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0044Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0259Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means
    • G05D1/0263Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means using magnetic strips
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40478Graphic display of work area of robot, forbidden, permitted zone
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device
    • Y10S901/47Optical

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Electromagnetism (AREA)
  • General Engineering & Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Electric Vacuum Cleaner (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Navigation (AREA)
  • Instructional Devices (AREA)

Abstract

【課題】ユーザーがロボット掃除エリアの地図上に線を引いてロボットが横断しない線を指示することを可能にすることによって仮想境界線を生成する、改善された仮想境界線システムを提供する。【解決手段】エリア地図のグローバル座標で仮想境界線が提供され、複数の部分地図に対応する複数の線分に変換される。トレーニング/地図作成運転のときに物理的境界標識が使われ、エリア地図に位置が追加され、物理的境界標識は後ほど移動される。仮想境界線は、掃除エリアを変更したり、ゲートとして機能したり、関連掃除モードを変更したりするために、時間の経過にともない変化する。境界線を有する仮想エリアがユーザーによって選択される。【選択図】図1

Description

関連出願の相互参照
[0001]本願は2017年8月31日に提出された通し番号62/552,790表題「ロボット仮想境界線」の非仮特許出願であり、その開示はその全体が本明細書に組み込まれる。
[0002]本発明は、ロボットが行ける場所を制限する境界線を設定することに関し、特に、仮想境界線を有する掃除ロボットに関する。
[0003]Neatoロボットには磁場を検出してロボットが行動決定を下すことを可能にできる磁気センサーが装備されている。ユーザーは床に沿って磁気ストリップを配置して、ロボットが磁気ストリップを横断するのを防ぐことができる。iRobotはそのRoombaロボット掃除機のためのLighthouseを提供しており、Lighthouseは、ユーザーによるLighthouseの配置に応じて出入口やその他の場所で円錐形の赤外線(IR)ビームを放射することによってVirtual Wall(登録商標)境界線を提供する。Lighthouseは、境界線の片側のエリアが掃除された後にロボットの通過を許すゲートとして働くこともできる。Ecovacs Deebot R95は、ユーザーがロボット掃除エリアの地図上に線を引いてロボットが横断しない線を指示することを可能にすることによって仮想境界線を提供する。改善された仮想境界線システムを提供することが望まれる。
[0004]一実施形態において、ユーザーは、ロボットの地図生成運転のときに、1つ以上の場所に、磁気ストリップ、IRトランスポンダ、または他の境界標識を置く。ロボットは、エリア内の場所が地図化されるときに、地図と併せて境界情報を記録する。ユーザーは同じ地図生成運転のときに境界標識を除去でき、あるいはこれを別の場所に移すことができる。その後、ロボットは記録された境界位置に対応する仮想境界線を特定でき、物理的な境界標識を残す必要はない。あるいは、ユーザーは部屋の側柱にラベルを置いて仮想境界線を指示できる。ラベルは、バーコード、QRコード(登録商標)、IRによって検出可能なブラックラベル、カラーストリップ、パターン、または他の何らかのラベルであってよい。ラベルは、エリアを回避すること、エリアを掃除するだけで地図化しないこと、特別な掃除モードを使用することなどを、ロボットに指示できる。
[0005]一実施形態において、仮想境界線は時間の経過にともない変化する。例えば、仮想境界線は1回おきの掃除作業のときに人通りの多いエリアにロボットを閉じ込めるように設定できる。別の一例において、仮想境界線はゲートとして機能でき、あるエリアが掃除されるまでロボットを当該エリアに閉じ込め、その後境界線を開放することによってロボットは別のエリアを掃除するか、またはホームベースへ戻る。別の一例において、境界線によって指示されたエリアについて特定の掃除モードに異なる時間を結び付けることができ、例えばスケジュール上のある時には経度方向に掃除し、別の時には緯度方向に掃除する。
[0006]一実施形態において、ユーザーは特定のロボットのためにエリア地図上で仮想境界線を指示する。その後ロボットは境界線を自動的に訂正し、ディスプレイで訂正案をユーザーに提示できる。一例において、ロボットは、仮想境界線が壁に届いておらず、ロボットが線の周りを進む余地があるため実際には境界線になっていないと判断する。ロボットは境界線を最寄りの壁まで延長することを提案できる。別の一例において、ロボットは障害物の周りに境界線があること、また、ロボットが境界線より障害物に接近できることを、検出できる。そこでロボットは境界線を調節して障害物に近づける。あるいは、ロボットは、仮想境界線が物体に近すぎ、ロボットが物体に衝突するか物体に絡まると判断できる。そこでロボットは仮想境界線を物体から遠ざけて問題を回避できる。
[0007]一実施形態において、ロボットは独自の仮想境界線を生成し、あるいはユーザーに仮想境界線を提案する。ロボットは、落差(例えば階段)を検出する場合、絡まりが生じる可能性のある障害物(例えば配線)を検出する場合、あるいは立ち往生した場合に、境界線を提案できる。ロボットは、例えば障害物が沢山あって進むのに長い時間を要するエリアを回避するために、独自の仮想境界線を設定でき、そのエリアを掃除するにあたって十分なバッテリ寿命を有する場合は仮想境界線を解除する。
[0008]一実施形態において、ロボットはユーザーが所望の仮想境界線をマークできるようになる前に地図を生成する必要がある。ロボットがエリアを地図化して地図をユーザーに提示するにはトレーニングセッションが必要となり得る。長い遅延を回避するため、ロボットは幅広のレーンを使ってエリアを地図化できる。ロボットは、通常の掃除モードのように床の隅から隅までカバーする代わりに、そのLIDARまたはその他マッピングセンサーの範囲内にあるエリアをカバーする。例えば、これはLIDARの場合は6フィートのレーンと、任意に壁沿いに動くことを意味し得る。画像ベースのSLAMアルゴリズムの場合は1回の部屋通過で十分な場合がある。
[0009]一実施形態において、ユーザーは特定のロボットのためにエリア地図上で仮想境界線を指示する。仮想境界線はエリア地図のグローバル座標でリモートサーバーに提供される。仮想境界線はその後ロボットにダウンロードされる。ロボットは、仮想境界線を複数の部分地図に対応する複数の線分に分割することによってグローバル座標の仮想境界線を変換する。線分は部分地図のローカル座標に変換される。部分地図エリアに入ったロボットは、線分を部分地図に比較して部分地図の仮想境界線を判断する。
[0010]一実施形態において、仮想境界線を含む地図にはエリアを追加できる。当初の座標エリアの外にある新たなエリアを計上するため(例えば0、0座標の左)、地図の座標は調節される。新たな座標系を反映するため、仮想境界線の座標もその後調節される。
[0011]一実施形態において、仮想境界線は、回避すべきエリアや掃除すべきエリアなど、エリアを指示する。ユーザーはロボットの広域地図上で複数のマークされたエリアのいずれか1つを指示することによって境界エリアを選択できる。
一実施形態によるLIDARタレットを有する掃除ロボットの図である。 一実施形態による掃除ロボットと充電器の図である。 一実施形態による掃除ロボットの下面の図である。 一実施形態による掃除ロボットのためのスマートフォン制御アプリケーション表示の図である。 一実施形態による掃除ロボットのためのスマートウォッチ制御アプリケーション表示の図である。 一実施形態による掃除ロボットのための電子システムの図である。 本発明のいくつかの実施形態の実装に使える代表的なコンピューティングシステムとクライアントコンピューティングシステムの簡略化されたブロック図である。 一実施形態による掃除ロボットのためにユーザーが描いた仮想境界線を含むロボットの広域地図の図である。 一実施形態による部分地図の仮想境界線分を生成するプロセスの流れ図である。 地図座標系を更新する一実施形態を示す図である。
[0022]全体的なアーキテクチャ
図1は一実施形態によるLIDARタレットを有する掃除ロボットの図である。掃除ロボット102は回転レーザービーム106を放射するLIDAR(光検出・測距)タレット104を有する。物体からのレーザービームの検出された反射は、物体までの距離と掃除ロボットの位置を計算するために使われる。距離計算の一実施形態は米国特許第8,996,172号「距離センサーシステムおよび方法」に記載されており、その開示は参照により本明細書に組み込まれる。あるいは、VSLAM(画像センサーを使用するビジュアルSLAM)または他の位置特定方法を使用できる。収集されたデータはSLAM(同時位置特定・地図作成)アルゴリズムを使った地図作成にも使われる。SLAMアルゴリズムの一実施形態は米国特許第8,903,589号「移動ロボット環境の同時位置特定および地図作成のための方法および装置」に記載されており、その開示は参照により本明細書に組み込まれる。
[0023]図2は一実施形態による掃除ロボットと充電器の図である。タレット104を有する掃除ロボット102が示されている。カバー204も示されており、カバー204はごみ回収袋とブラシ上面にアクセスするため開けることができる。ボタン202は、掃除作業開始など、ロボット掃除機の基本的作業を可能にする。ディスプレイ205はユーザーに情報を提供する。掃除ロボット102は充電器206とドッキングでき、充電接点208を通じて電気を受け取ることができる。
[0024]図3は一実施形態による掃除ロボットの下面の図である。ホイール302は掃除ロボットを動かし、ブラシ304はごみをごみ袋に吸い込むのを助ける。
[0025]図4は一実施形態による掃除ロボットのためのスマートフォン制御アプリケーション表示の図である。スマートフォン402は掃除ロボットを制御するためにダウンロードされるアプリケーションを有する。使いやすいインターフェースは掃除を開始する開始ボタン404を有する。
[0026]図5は一実施形態による掃除ロボットのためのスマートウォッチ制御アプリケーション表示の図である。表示例が示されている。表示502は使いやすい開始ボタンを提供する。表示504は複数の掃除ロボットを制御する能力を提供する。表示506は、掃除ロボットが終了したことを伝えるメッセージなど、ユーザーにフィードバックを提供する。
[0027]図6は一実施形態による掃除ロボットのための電子システムの高水準図である。掃除ロボット602はメモリー606にダウンロードされたプログラムを操作するプロセッサ604を含む。プロセッサはバス634や他の電気接続を用いて他のコンポーネントと通信する。掃除モードでホイールモーター608は、ロボットを動かし操縦するため、ホイールを独立制御する。ブラシ・真空モーター610は床を掃除し、ハイパワー集中掃除モードやノーマルパワーモードなど、様々なモードで作動できる。
[0028]LIDARモジュール616はレーザー620とフォトテクタ618とを含む。あるいは、VSLAM操作に画像センサーを使用できる。タレットモーター622はレーザーと検出器を動かし、掃除ロボットの周囲360度まで物体を検出する。毎秒約5回転など、1秒当たりに複数の回転数がある。物体との接触を指示する衝突センサー624、物体への接近を指示する近接センサー626、掃除ロボットの落下(例えば階段)や(例えば障害物を乗り越えるときの)傾きを指示する加速度計・傾斜センサー628など、様々なセンサーがプロセッサ604に入力を提供する。掃除ロボットのナビゲーションやその他制御のためのかかるセンサーの使用例は米国特許第8,855,914号「ロボット表面処理装置により床張りエリアのコーナーを横断する方法および装置」に記載されており、その開示は参照により本明細書に組み込まれる。吸い込まれるごみの量を検出するごみセンサー、何かに絡まって過負荷になったモーターを検出するモーター電流センサー、床のタイプを検出する床センサー、環境や物体の画像を提供する画像センサー(カメラ)など、他の実施形態には他のセンサーを含めてよい。
[0029]バッテリ614は電力接続(図示せず)を通じて残りの電子機器に電力を提供する。バッテリ充電回路612は掃除ロボットが図2の充電器206とドッキングされているときにバッテリ614に充電電流を提供する。入力ボタン623は、ディスプレイ630とともにロボット掃除機602の制御を直接的に可能にする。あるいは、掃除ロボット602は遠隔的に制御することもでき、トランシーバ632を通じて遠隔地へデータを送信できる。
[0030]掃除ロボットはインターネット636および/または他のネットワークを通じて制御でき、遠隔地のユーザーに情報を送り返すことができる。リモートサーバー638はコマンドを提供でき、掃除ロボットからアップロードされたデータを処理できる。ハンドヘルドスマートフォンまたはウォッチ640はユーザーによって操作されて(Bluetooth(登録商標)、ダイレクトRF、WiFi LANなどを通じて)コマンドを掃除ロボット602へ直接送信でき、あるいは接続を通じてインターネット636へコマンドを送信できる。コマンドはさらなる処理のためサーバー638へ送信でき、その後改変された形でインターネット636を介して掃除ロボット602へ転送できる。
[0031]メディアプラットフォームとクライアントシステムのためのコンピュータシステム
ここで説明する様々な操作はコンピュータシステムで実装できる。図7は、本発明のいくつかの実施形態の実装に使える代表的なコンピューティングシステム702とクライアントコンピューティングシステム704の簡略化されたブロック図を示している。様々な実施形態において、コンピューティングシステム702または同様のシステムは、掃除ロボットプロセッサシステム、リモートサーバー、またはここで説明する他の何らかのコンピューティングシステムまたはその部分を実装してよい。クライアントコンピューティングシステム704または同様のシステムは、ロボット掃除機アプリケーションを有するスマートフォンまたはウォッチなどのユーザーデバイスを実装してよい。
[0032]コンピューティングシステム702は、プロセッサおよびメモリー、ハンドヘルドポータブルデバイス(例えばiPhone(登録商標)携帯電話機、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えばGoogle Glass(登録商標)ヘッドマウントディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバーラック、または他の何らかのデータ処理システムを含む、様々なタイプのいずれか1つであってよい。
[0033]コンピューティングシステム702は処理サブシステム710を含んでよい。処理サブシステム710はバスサブシステム770を通じていくつかの周辺システムと通信できる。これらの周辺システムは、I/Oサブシステム730と、ストレージサブシステム768と、通信サブシステム740とを含んでよい。
[0034]バスサブシステム770はサーバーコンピューティングシステム702の様々なコンポーネントやサブシステムが互いに意図したとおりに通信するためのメカニズムを提供する。バスサブシステム770は1本のバスとして概略的に図示されているが、バスサブシステムの代替実施形態では複数のバスを利用してよい。バスサブシステム770は、サーバーコンピューティングシステム702の処理サブシステム710と他のコンポーネントの通信をサポートするローカルエリアネットワークを形成してよい。バスサブシステム770は、サーバーラック、ハブ、ルーターなどを含む様々な技術を用いて実装されてよい。バスサブシステム770は、メモリーバスまたはメモリーコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、数種類のバス構造のいずれかであってよい。例えば、かかるアーキテクチャは、インダストリースタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造されるメザニンバスとして実装されてよいペリフェラルコンポーネントインターコネクト(PCI)バスなどを含み得る。
[0035]I/Oサブシステム730は、コンピューティングシステム702に情報を入力するための、および/またはコンピューティングシステム702から、またはコンピューティングシステム702を経由して、情報を出力するための、デバイスおよびメカニズムを含んでよい。通常、用語「入力デバイス」の使用は、コンピューティングシステム702に情報を入力するあらゆるタイプのデバイスおよびメカニズムを含むことを意図する。ユーザーインターフェース入力デバイスは、例えばキーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを有するオーディオ入力デバイス、マイクロフォン、および他種入力デバイスを含み得る。ユーザーが入力デバイスを操作し入力デバイスとやり取りすることを可能にするMicrosoft Kinect(登録商標)モーションセンサー、Microsoft Xbox(登録商標)360ゲームコントローラ、ジェスチャと音声コマンドを使って入力を受け取るインターフェースを提供するデバイスなど、ユーザーインターフェース入力デバイスはモーション感知および/またはジェスチャ認識デバイスをも含み得る。ユーザーインターフェース入力デバイスはGoogle Glass(登録商標)ブリンク検出器などの眼ジェスチャ認識デバイスをも含み得て、Google Glass(登録商標)ブリンク検出器はユーザーの眼の活動(例えば写真を撮影しているとき、および/またはメニューを選択しているときの「瞬き」)を検出し、眼ジェスチャを入力デバイス(例えばGoogle Glass(登録商標))への入力として変換する。加えて、ユーザーインターフェース入力デバイスは、ユーザーが音声コマンドを通じて音声認識システム(例えばSiri(登録商標)ナビゲータ)とやり取りすることを可能にする音声認識感知デバイスを含み得る。
[0036]ユーザーインターフェース入力デバイスの他の例は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカー、デジタルカメラ、デジタルカムコーダー、ポータブルメディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダー3Dスキャナ、3Dプリンタ、レーザーレンジファインダー、および視線検出デバイスなどのオーディオ/ビジュアルデバイスを含み、ただしこれらに限定されない。加えて、ユーザーインターフェース入力デバイスは、例えばコンピュータ断層撮影法、磁気共鳴映像法、ポジトロン断層撮影法、医用超音波検査デバイスなどの医用画像入力デバイスを含み得る。ユーザーインターフェース入力デバイスは、例えばMIDIキーボード、デジタル楽器などのオーディオ入力デバイスをも含み得る。
[0037]ユーザーインターフェース出力デバイスは、ディスプレイサブシステム、表示灯、またはオーディオ出力デバイスなどの非視覚的デバイスを含み得る。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってよい。通常、用語「出力デバイス」の使用は、コンピューティングシステム702からユーザーまたは他のコンピュータへ情報を出力するあらゆるタイプのデバイスおよびメカニズムを含むことを意図する。例えば、ユーザーインターフェース出力デバイスは、モニター、プリンタ、スピーカー、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムなど、テキスト、グラフィック、および/またはオーディオ/ビデオ情報を伝える様々なデバイスを含み得て、ただしこれらに限定されない。
[0038]処理サブシステム710はコンピューティングシステム702の動作を制御し、1つ以上の処理ユニット712、714などを備えてよい。処理ユニットは、シングルコアプロセッサまたはマルチコアプロセッサを含む、1つ以上のプロセッサ、プロセッサの1つ以上のコア、またはこれらの組み合わせを含んでよい。いくつかの実施形態において、処理サブシステム710は、グラフィックプロセッサ、デジタル信号プロセッサ(DSP)など、1つ以上の専用コプロセッサを含んでよい。いくつかの実施形態において、処理サブシステム710の処理ユニットの一部または全部は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレー(FPGA)などのカスタム回路を用いて実装されてよい。いくつかの実施形態において、かかる集積回路は回路そのものに格納された命令を実行する。他の実施形態において、処理ユニットは、ローカルストレージに格納された、例えばローカルストレージ722、724に格納された、命令を実行してよい。処理ユニット712、714には、あらゆるタイプのプロセッサを任意に組み合わせて含めてよい。
[0039]いくつかの実施形態において、処理サブシステム710は、いくつものモジュール(例えばブレードサーバー実装のブレード)を組み込むモジュール設計で実装されてよい。それぞれのモジュールは処理ユニットとローカルストレージを含んでよい。例えば、処理サブシステム710は、処理ユニット712と対応するローカルストレージ722、ならびに処理ユニット714と対応するローカルストレージ724を含んでよい。
[0040]ローカルストレージ722、724は、揮発性ストレージ媒体(例えば従来のDRAM、SRAM、SDRAMなど)、および/または不揮発性ストレージ媒体(例えば磁気または光ディスク、フラッシュメモリーなど)を含み得る。ローカルストレージ722、724に組み込まれるストレージ媒体は、固定、取り外し可能、または必要に応じアップグレード可能であってよい。ローカルストレージ722、724は、システムメモリー、ROM、およびパーマネントストレージデバイスなど、様々なサブユニットに物理的にか論理的に分割されてよい。システムメモリーは読み取り書き込みメモリーデバイスであってよく、あるいはダイナミックランダムアクセスメモリーなどの揮発性読み取り書き込みメモリーであってもよい。システムメモリーは処理ユニット712、714が実行時に必要とする命令およびデータの一部または全部を格納してよい。ROMは処理ユニット712、714が必要とする静的データと命令を格納してよい。パーマネントストレージデバイスは、1つ以上の処理ユニット712、714とローカルストレージ722、724とを含むモジュールの電源が切れているときでも命令とデータを格納できる不揮発性読み取り書き込みメモリーデバイスであってよい。ここで使われる用語「ストレージ媒体」はデータを無制限に格納できる媒体を含み(上書き、電気妨害、停電などによる)、無線または有線接続で伝播する搬送波や一時的な電気信号は含まない。
[0041]いくつかの実施形態において、UPPシステム102の機能などの様々なサーバー機能を、またはUPPシステム102に関連する他の何らかのサーバーを、実装するオペレーティングシステムおよび/またはプログラムなど、ローカルストレージ722、724は処理ユニット712、714によって実行される1つ以上のソフトウェアプログラムを格納してよい。「ソフトウェア」は一連の命令を通常指し、これが処理ユニット712、714によって実行されるとコンピューティングシステム702(またはその部分)が様々な操作を遂行し、ソフトウェアプログラムの操作を実行し遂行する1つ以上の具体的なマシン実装を規定する。命令は、読み取り専用メモリーに存在するファームウェアとして格納されてよく、および/または不揮発性ストレージ媒体に格納されるプログラムコードであってよく、プログラムコードは揮発性作業メモリーに読み込まれて処理ユニット712、714によって実行される。いくつかの実施形態において、命令はストレージサブシステム768(例えばコンピュータ可読ストレージ媒体)によって格納されてよい。様々な実施形態において、処理ユニットは様々なプログラムまたはコード命令を実行でき、複数の同時実行プログラムまたはプロセスを維持できる。任意の所与の時間において、実行されるべきプログラムコードの一部または全部は、ローカルストレージ722、724に存在してよく、および/または1つ以上のストレージデバイスを潜在的に含むストレージサブシステムに存在してよい。ソフトウェアは、単一のプログラムとして、または独立したプログラムからなる集まりとして、または必要に応じて相互に作用するプログラムモジュールとして、実装されてよい。処理ユニット712、714は、上述した様々な操作を実行するため、実行するプログラム命令と処理するデータとをローカルストレージ722、724(または後述する非ローカルストレージ)から引き出す。
[0042]ストレージサブシステム768は、コンピューティングシステム702によって使用される情報を格納するレポジトリまたはデータストアを提供する。ストレージサブシステム768は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納する有形で非一時的なコンピュータ可読ストレージ媒体を提供する。処理サブシステム710によって実行されたときに上述した機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム768に格納されてよい。ソフトウェアは処理サブシステム710の1つ以上の処理ユニットによって実行されてよい。ストレージサブシステム768はまた、本発明に従って使用されるデータを格納するレポジトリを提供してよい。
[0043]ストレージサブシステム768は、揮発性および不揮発性メモリーデバイスを含む、1つ以上の非一時的メモリーデバイスを含んでよい。図7に示されているように、ストレージサブシステム768はシステムメモリー760とコンピュータ可読ストレージ媒体752とを含む。システムメモリー760は、プログラムの実行中に命令とデータを格納する揮発性メインRAMと、固定命令が格納される不揮発性ROMまたはフラッシュメモリーとを含む、いくつかのメモリーを含んでよい。いくつかの実施形態において、起動時などにコンピューティングシステム702内のエレメント間で情報を伝送するのに役立つ基本的ルーチンを含む基本入出力システム(BIOS)は通常、ROMに格納されてよい。RAMは通常、処理サブシステム710によって現在操作され実行されているデータおよび/またはプログラムモジュールを収容する。いくつかの実装において、システムメモリー760は、スタティックランダムアクセスメモリー(SRAM)やダイナミックランダムアクセスメモリー(DRAM)など、複数タイプのメモリーを含んでよい。ストレージサブシステム768は、磁気、光、半導体、または他のデータストレージ媒体に基づいてよい。ダイレクトアタッチドストレージ、ストレージエリアネットワーク、ネットワークアタッチドストレージなどを使用してよい。サービスまたはサーバーによって生成、消費、または維持されるものとしてここで説明されるデータストアまたは他のデータ集合は、ストレージサブシステム768に格納されてよい。
[0044]制限ではなく一例として、図7に描かれているように、システムメモリー760は、クライアントアプリケーション、ウェブブラウザ、ミッドティアアプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得るアプリケーションプログラム762と、プログラムデータ764と、1つ以上のオペレーティングシステム766とを格納してよい。一例として、オペレーティングシステムの例は、種々バージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、および/またはLinux(登録商標)オペレーティングシステム、様々な市販UNIX(登録商標)またはUNIX(登録商標)系オペレーティングシステム(様々なGNU/Linux(登録商標)オペレーティングシステム、Google Chrome(登録商標)OSなどを含み、ただしこれらに限定されない)、および/またはiOS、Windows(登録商標)Phone、Android(登録商標)OS、BlackBerry(登録商標)10 OS、Palm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含み得る。
[0045]コンピュータ可読ストレージ媒体752はいくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納してよい。処理サブシステム710のプロセッサによって実行されたときに上述した機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム768に格納されてよい。一例として、コンピュータ可読ストレージ媒体752は、ハードディスクドライブ、磁気ディスクドライブ、CD ROM、DVD、Blu−Ray(登録商標)ディスク、または他の光学式媒体などの光ディスクドライブなど、不揮発性メモリーを含み得る。コンピュータ可読ストレージ媒体752は、Zip(登録商標)ドライブ、フラッシュメモリーカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得て、ただしこれらに限定されない。コンピュータ可読ストレージ媒体752はまた、フラッシュメモリーベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリーに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリーベースのSSDとの組み合わせを使用するハイブリッドSSDなどの揮発性メモリーに基づくSSDを含み得る。コンピュータ可読媒体752は、コンピュータ可読命令、データ構造、プログラムモジュール、ならびにコンピューティングシステム702のためのその他データのストレージを提供してよい。
[0046]いくつかの実施形態において、ストレージサブシステム768はまたコンピュータ可読ストレージ媒体リーダー750を含んでよく、コンピュータ可読ストレージ媒体リーダー750はコンピュータ可読ストレージ媒体752にさらに接続されてよい。ともに、そして任意に、システムメモリー760との組み合わせで、コンピュータ可読ストレージ媒体752は総合的に、リモート、ローカル、固定、および/または取り外し可能ストレージデバイスに、ならびにコンピュータ可読情報を格納するストレージ媒体に、相当し得る。
[0047]いくつかの実施形態において、コンピューティングシステム702は1つ以上の仮想マシンを実行するためのサポートを提供してよい。コンピューティングシステム702は、仮想マシンの構成と管理を促進するハイパーバイザなどのプログラムを実行してよい。それぞれの仮想マシンには、メモリー、計算(例えばプロセッサ、コア)、I/O、およびネットワーキングリソースが割り当てられてよい。それぞれの仮想マシンは自身のオペレーティングシステムを通常実行し、このオペレーティングシステムは、コンピューティングシステム702によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じである場合と異なる場合とがある。したがって、コンピューティングシステム702によって複数のオペレーティングシステムが同時に実行される可能性がある。それぞれの仮想マシンは通常、他の仮想マシンから独立して実行する。
[0048]通信サブシステム740は他のコンピュータシステムおよびネットワークへ至るインターフェースを提供する。通信サブシステム740はインターフェースとして機能し、他のシステムからデータを受信し、コンピューティングシステム702から他のシステムへデータを送信する。例えば、通信サブシステム740は、クライアントコンピューティングデバイスへ情報を送信しクライアントコンピューティングデバイスから情報を受信するため、コンピューティングシステム702がインターネットを経由して1つ以上のクライアントコンピューティングデバイスへ至る通信チャネルを確立することを可能にしてよい。
[0049]通信サブシステム740は有線および/または無線通信プロトコルをサポートしてよい。例えば、いくつかの実施形態において、通信サブシステム740は、無線音声および/またはデータネットワーク(例えば携帯電話技術、3G、4G、またはEDGE(グローバルエボリューションのための改良データ転送速度)などの先進データネットワーク技術を使用)、WiFi(IEEE 802.11系規格、または他の移動通信技術、またはこれらの組み合わせ)、全地球測位システム(GPS)受信コンポーネント、および/または他のコンポーネントにアクセスする無線周波(RF)トランシーバコンポーネントを含んでよい。いくつかの実施形態において、通信サブシステム740は、無線インターフェースに加えて、あるいは無線インターフェースの代わりに、有線ネットワーク接続(例えばEthernet)を提供してよい。
[0050]通信サブシステム740は様々な形でデータを送受してよい。例えば、いくつかの実施形態において、通信サブシステム740は構造化および/または非構造化データフィード、イベントストリーム、イベントアップデートなどの形で入力通信を受信してよい。例えば、通信サブシステム740は、Twitter(登録商標)フィード、Facebook(登録商標)アップデート、Rich Site Summary(RSS)フィードなどのウェブフィード、および/または1つ以上のサードパーティ情報源からのリアルタイムアップデートなど、ソーシャルメディアネットワークおよび/または他の通信サービスのユーザーからデータフィードをリアルタイムで受信(または送信)するように構成されてよい。
[0051]いくつかの実施形態において、通信サブシステム740は連続データストリームの形でデータを受信するよう構成されてよく、連続データストリームは、途切れなく、または際限なく、明確な終わりがなくてよい、リアルタイムイベントおよび/またはイベントアップデートのイベントストリームを含み得る。連続データを生成するアプリケーションの例は、例えばセンサーデータアプリケーション、フィナンシャルティッカー、ネットワーク性能測定ツール(例えばネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などを含み得る。
[0052]通信サブシステム740はまた、コンピューティングシステム702に結合された1つ以上のストリーミングデータソースコンピュータと通信できる1つ以上のデータベースに構造化および/または非構造化データフィード、イベントストリーム、イベントアップデートなどを出力するように構成されてよい。
[0053]通信サブシステム740は通信インターフェース742を提供してよく、例えばローカルエリアネットワーク(バスサブシステム770)とインターネットなどのより大きいネットワークとの間でデータ通信能力を提供できるWANインターフェースを提供してよい。有線(例えばEthernet、IEEE 802.3規格)および/または無線技術(例えばWi−Fi、IEEE 802.11規格)を含む、従来の通信技術やその他の通信技術を使用してよい。
[0054]コンピューティングシステム702は通信インターフェース742を通じて受信した要求に応じて作動してよい。さらに、いくつかの実施形態において、通信インターフェース742はコンピューティングシステム702を互いに接続してよく、大量のアクティビティを管理できるスケーラブルなシステムを提供する。動的リソース割り当ておよび再割り当てを含む、サーバーシステムとサーバーファーム(協働するサーバーシステムの集合)を管理する従来の手法や他の手法を使用してよい。
[0055]コンピューティングシステム702は、インターネットなどのワイドエリアネットワークを通じて、ユーザーが所有する、またはユーザーが操作する、様々なデバイスとやり取りできる。図7ではユーザーが操作するデバイスの一例がクライアントコンピューティングシステム704として示されている。クライアントコンピューティングシステム704は、例えばスマートフォン、他の携帯電話機、タブレットコンピュータ、ウェアラブルコンピューティングデバイス(例えばスマートウォッチ、アイグラス)、デスクトップコンピュータ、ラップトップコンピュータなどのコンシューマデバイスとして実装されてよい。
[0056]例えば、クライアントコンピューティングシステム704は通信インターフェース742を通じてコンピューティングシステム702と通信できる。クライアントコンピューティングシステム704は、処理ユニット782、ストレージデバイス784、ネットワークインターフェース780、ユーザー入力デバイス786、およびユーザー出力デバイス788など、従来のコンピュータコンポーネントを含んでよい。クライアントコンピューティングシステム704は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、他のモバイルコンピューティングデバイス、ウェアラブルコンピューティングデバイスなど、様々なフォームファクタで実装されるコンピューティングデバイスであってよい。
[0057]処理ユニット782とストレージデバイス784は上述した処理ユニット712、714およびローカルストレージ722、724と同様であってよい。クライアントコンピューティングシステム704に課せられる要求に応じて適切なデバイスを選択してよく、例えばクライアントコンピューティングシステム704は処理能力に限りがある「シン」クライアントとして実装されてよく、あるいはハイパワーコンピューティングデバイスとして実装されてもよい。メッセージへのアクセス、メッセージに対する操作の遂行、ならびに上述した他の相互作用など、コンピューティングシステム702との間でメッセージ管理サービスの様々な相互作用を可能にするため、クライアントコンピューティングシステム704には処理ユニット782によって実行されるプログラムコードを用意してよい。一部のクライアントコンピューティングシステム704はメッセージ管理サービスから独立してメッセージングサービスと相互作用してもよい。
[0058]ネットワークインターフェース780はワイドエリアネットワーク(例えばインターネット)へ至る接続を提供でき、ワイドエリアネットワークにはコンピューティングシステム702の通信インターフェース742も接続される。様々な実施形態において、ネットワークインターフェース780は有線インターフェース(例えばEthernet)を含んでよく、および/またはWi−Fi、Bluetooth(登録商標)、またはセルラーデータネットワーク規格(例えば3G、4G、LTEなど)などの様々なRFデータ通信規格を実装する無線インターフェースを含んでよい。
[0059]ユーザー入力デバイス786はユーザーがクライアントコンピューティングシステム704に信号を提供するための何らかのデバイス(または複数のデバイス)を含み得て、クライアントコンピューティングシステム704は、特定のユーザー要求または情報を意味するものとして信号を解釈してよい。様々な実施形態において、ユーザー入力デバイス786は、キーボード、タッチパッド、タッチスクリーン、マウスまたはその他ポインティングデバイス、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、マイクロフォンなどのいずれかまたは全てを含み得る。
[0060]ユーザー出力デバイス788はクライアントコンピューティングシステム704がユーザーに情報を提供できる何らかのデバイスを含み得る。例えば、ユーザー出力デバイス788は、クライアントコンピューティングシステム704によって生成された画像を、またはクライアントコンピューティングシステム704へ引き渡された画像を、表示するディスプレイを含み得る。ディスプレイには、様々な画像生成技術を、例えば液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)を含む発光ダイオード(LED)、投影システム、ブラウン管(CRT)などと、支援電子機器(例えばデジタル・アナログまたはアナログ・デジタル変換器、信号処理器など)を、採用できる。いくつかの実施形態は、入力デバイスと出力デバイスの両方として機能するタッチスクリーンなどのデバイスを含み得る。いくつかの実施形態では、ディスプレイに加えて、またはディスプレイの代わりに、他のユーザー出力デバイス788が提供されてよい。例は、表示灯、スピーカー、触覚「ディスプレイ」デバイス、プリンタなどを含む。
[0061]いくつかの実施形態は、マイクロプロセッサなどの電子コンポーネント、コンピュータ可読ストレージ媒体にコンピュータプログラム命令を格納するストレージおよびメモリーを含む。本明細書に記載された特徴の多くは、コンピュータ可読ストレージ媒体で符号化された1組のプログラム命令として指定されるプロセスとして実装されてよい。これらのプログラム命令が1つ以上の処理ユニットによって実行されると、処理ユニットはプログラム命令の中で指示される様々な操作を遂行する。プログラム命令またはコンピュータコードの例は、例えばコンパイラによって生成されるマシンコード、ならびにインタープリタを用いてコンピュータ、電子コンポーネント、またはマイクロプロセッサによって実行される高水準コードを含むファイルを含む。適切なプログラミングにより、処理ユニット712、714、および782は、本明細書でサーバーまたはクライアントによって遂行されると説明されている機能のいずれか、またはメッセージ管理サービスに関連する他の機能を含む様々な機能を、コンピューティングシステム702とクライアントコンピューティングシステム704に提供できる。
[0062]コンピューティングシステム702とクライアントコンピューティングシステム704が説明のためのものであり、変更や修正が可能であることは理解されよう。本発明の実施形態との関係で使われるコンピュータシステムは、本明細書で具体的に説明されていない他の能力を有する場合がある。さらに、コンピューティングシステム702とクライアントコンピューティングシステム704は特定のブロックを参照して説明されているが、これらのブロックが説明を簡便にするためのものであり、構成品の特定の物理的配置を示唆するものではないことを理解されたい。例えば、様々なブロックが同じ施設内、同じサーバーラック内、または同じマザーボード上に配置されてもよいが、必ずしもそうである必要はない。さらに、ブロックは必ずしも物理的に別個のコンポーネントに相当しない。ブロックは、例えばプロセッサをプログラムすることにより、あるいは適当な制御回路を設けることにより、様々な操作を遂行するように構成されてよく、様々なブロックは、最初の構成がどのように得られるかに応じて、再構成可能であり得るか、または再構成可能であり得ない。本発明の実施形態は、回路とソフトウェアとの組み合わせを用いて実装される電子デバイスを含む様々な装置で実現できる。
[0063]仮想境界線
一実施形態において、ユーザーは最初にロボットを「トレーニング」モードで始動する。ロボットはこのモードで間取りをたどって探査し、地図を作る。ユーザーはユーザーデバイスのロボットアプリケーションでトレーニングのアイコンかソフトキーを選択できる。ユーザーは扉を開け、ロボットが全ての所望のエリアにアクセスできるようにする。この手順が完了した後に、ロボットは探査したエリアを示す有効範囲地図を生成し、これをリモートサーバーへアップロードする。その後サーバーは、モバイルアプリなどのユーザーデバイスのユーザーアプリケーションへ有効範囲地図をダウンロードする。ユーザーはここで、この地図を保存して仮想境界線に使用するか、あるいはキャンセルして探査をやり直すかを選ぶ。探査地図に満足したユーザーはモバイルアプリを使って仮想境界線を引く。アプリは境界線の挿入と削除をサポートする。望ましい境界線が保存された後にユーザーは掃除運転を開始でき、ロボットは掃除運転でこれらの仮想境界線を順守する。掃除中の仮想境界線順守は前の掃除/トレーニング運転で生成された有効範囲地図におけるロボットの位置に左右される。
[0064]一実施形態において、ユーザーはタッチスクリーンで指を使って地図上に仮想境界線を引く。あるいは、スタイラスや、マウスやサムホイールといった他の線引きエレメントを使用できる。あるいは、地図の部分にラベルを付けることができ、ユーザーはロボットによって回避されるべき部分を指示でき、アプリケーションは、ロボットに対してかかるエリアを閉ざすため、仮想境界線をどこに引くべきかを判断する。ユーザーはドロップダウンリストで部分を選択でき、電話で部分にタッチして部分を選択でき、ラベルをタイピングして部分を選択でき、ラベルを言って部分を選択できる(音声認識使用)。一例において、ユーザーは、エリアをタップすることにより、指定エリアの掃除と指定エリアの立入禁止を切り替えることができる。タップのたびに立入可能と立入禁止の設定が切り替わる。地図上では様々な部屋を色分けして表示でき、色やその他の視覚的標識で掃除するべきエリアと回避するべきエリアを指示できる。例えば、地図上の回避すべきエリアには網掛けを重ねることができる。ユーザーは任意のデバイスで仮想境界線を指示でき、仮想境界線を別のデバイスへ転送できる。例えば、ユーザーは大型のデスクトップコンピュータディスプレイで境界線を指定でき、その後マークされた地図をロボットとのさらなるやり取りのためスマートフォンに転送できる。
[0065]図8は、一実施形態による掃除ロボットのためにユーザーが引いた仮想境界線804および806を含むロボットの広域地図800の図である。ベースステーション802にあるロボットの位置が示されている。見てとれるように、仮想境界線804および806はロボットがいる部屋の部分808にロボットを制限し、ロボットが部分810や他の部屋へ行くことを阻止する。ユーザーは境界線アイコン808にタッチし、ユーザーの指で線804および806を引くことによって境界線引きを開始できる。あるいは、アイコン808は所望のスポットまでドラッグでき、拡張、縮小、および回転して所望の場所に置くことができる。
[0066]境界線延長
一実施形態において、ユーザーは地図800上で仮想境界線812を指示する。ロボットは境界線の末端と壁814との間に隙間があることに気づき、この隙間によってロボットは通過でき、境界線は無意味になる。ロボットは境界線を自動的に訂正でき、仮想境界線を最寄りの壁814まで延長する点線816の訂正案をディスプレイでユーザーに提示できる。ユーザーが訂正を承諾すると境界線が延長される。一実施形態では、ユーザーに訂正を提示せずに、またはユーザーが応答しない状況で、境界線をおかまいなしに延長できる。
[0067]境界線修正
一実施形態において、ロボットは障害物の周りに境界線があり、ロボットが境界線より障害物に接近できることを検出できる。そこでロボットは境界線を調節して障害物に近づける。例えば、障害物820の周りに仮想境界線818を引くことができる。ロボットは障害物に問題なく接近できると判断でき、新たな仮想境界線822を提案する。上述した境界線延長の例のように、ユーザーが訂正を承諾すると境界線が調節される。一実施形態では、ユーザーに訂正を提示せずに、またはユーザーが応答しない状況で、境界線をおかまいなしに調節できる。あるいは、ロボットは、仮想境界線が物体に近すぎ、ロボットが物体に衝突するか物体に絡まると判断できる。そこでロボットは仮想境界線を物体から遠ざけて問題を回避できる。
[0068]一実施形態において、ロボットは独自の仮想境界線を生成し、あるいはユーザーに仮想境界線を提案する。ロボットは、落差(例えば階段)を検出する場合、絡まりが生じる可能性のある障害物(例えば配線)を検出する場合、あるいは立ち往生した場合に、境界線を提案できる。ロボットは、例えば障害物が沢山あって進むのに長い時間を要するエリアを回避するために、独自の仮想境界線を設定でき、そのエリアを掃除するにあたって十分なバッテリ寿命を有する場合は仮想境界線を解除する。ロボットは仮想境界線の後ろにある物体の写真を撮影でき、これを仮想境界線の確認に役立てるためユーザーに送ることができ、あるいは単にユーザーに物体を動かすことを促すことができる。
[0069]一実施形態において、ロボットは物体を感知し、リモートサーバーかロボットによって物体認識が遂行される。物体は、カメラ撮影、IR、超音波、またはその他センサーにより、あるいは衝突または接触センサーとの物理的接触により、感知できる。テレビの配線の絡みや床に置かれた水が入ったペットのお椀といった危険なエリアを回避するため、ロボットアプリは仮想境界線を自動的に引くことができる。その後ユーザーは境界線を承諾でき、あるいは危険物を動かすよう促されることができる。
[0070]一実施形態において、ロボットは、回避すべきエリアばかりでなく、様々なタイプの掃除エリアを指定するために仮想境界線を使用できる。例えば、木の床やタイルの床のエリアは、異なるブラシ高さ、アタッチメント、または異なるロボットが必要なエリアとして指示できる。落差は速度を落として用心して進むエリアとして指示できる。
[0071]バッテリ最適化境界線
一実施形態において、ロボットは、厳しい操縦が要求されるため掃除に長い時間がかかる物体やエリアの周りに一時的な仮想境界線を引くことができる。その後ロボットは簡単なエリアを掃除でき、時間がかかるエリアに対処するにあたって十分なバッテリ充電が残っている場合は仮想境界線を解除できる。
[0072]一実施形態において、ロボットは、バッテリ寿命を最適化するため、一時的な仮想境界線を引くことができる。例えば、ロボットは大きい間取りを掃除するために数回の充電サイクルを要する場合がある。通常のロボット充電サイクルではバッテリが10%未満まで低下した後に約80%まで再充電する。充電は80%より上でより長い時間を要するため、これは合計掃除時間(掃除+充電時間)を最適化する。ロボットは、例えば、間取りの最後の部分(例えば20%)を遮る仮想境界線を引くことにより、その後60%までしか再充電しないことにより、またはその最後の部分の掃除に必要な量を再充電することにより、より速い合計掃除時間を達成すると判断できる。これは、最後の5%と仮想境界線の後ろの追加量に少ない充電で十分である場合に、5%以外の全てを掃除した後に80%まで再び充電するまで待つより効率的であり得る。
[0073]トレーニング運転
一実施形態において、ロボットはユーザーが所望の仮想境界線をマークできるようになる前に地図を生成する必要がある。ロボットがエリアを地図化して地図をユーザーに提示するにはトレーニングセッションが必要となり得る。長い遅延を回避するため、ロボットは幅広のレーンを使ってエリアを地図化できる。ロボットは、床の隅から隅までカバーする代わりに、そのLIDARまたはその他マッピングセンサーの範囲内にあるエリアをカバーする。例えば、これはLIDARの場合は6フィートのレーンと、任意に壁沿いに動くことを意味し得る。画像ベースのSLAMアルゴリズムの場合は1回の部屋通過で十分な場合がある。あるいは、ユーザーはリモコンを使って掃除すべきエリアの境界の周りでロボットを手作業で誘導できる。それらの境界の外にある物は検出でき、地図化でき、仮想境界線でマークできる。
[0074]一実施形態において、プロセスはユーザーにとって可能な限りシームレスになる。ユーザーはただロボットを置いて「掃除開始」ボタンをクリックするだけでよい。一実施形態において、ディスプレイはその後、何もかも掃除するか、あるいはトレーニング運転を行ってエリアを地図化し、仮想境界線をマークするため地図をユーザーに提示するかを、ユーザーに促すことができる。あるいは、ロボットはただトレーニング運転を開始し、準備ができたら地図と境界線案をユーザーに提示し、その一方で、ユーザーによって境界線案が却下されるか追加されるまで、仮想境界線案を使って完全掃除運転を開始する。地図は、例えばスマートフォン、タブレット、またはコンピュータなどのユーザーデバイスへ伝送するローカルWiFiネットワーク、Bluetooth(登録商標)、または他の何らかの伝送技術を用いて、ユーザーに直接提供できる。あるいは、地図はリモートサーバーへ送信でき、その後ユーザーデバイスにダウンロードできる。
[0075]部分地図から広域地図
図9は一実施形態による部分地図の仮想境界線分を生成するプロセスの流れ図である。ロボットはトレーニング運転のときに自身の環境を地図化する(902)。任意に選べることとして、ロボットはトレーニング運転のときに掃除することもできる。ロボットはそのセンサーとSLAM(同時位置特定・地図作成)アルゴリズムを使ってエリアを地図化し、地図上の物体(壁、障害物、その他)の座標を生成する(904)。ロボットは格納された座標から地図のポータブルネットワークグラフィックス(PNG)画像を生成する(906)。PNG地図はその後リモートサーバーへアップロードされる(908)。デバッグの目的で地図のポータブルグレーマップフォーマット(PGM)画像も生成される。
[0076]サーバーは、インターネットまたはその他ネットワークまたは通信チャネルを通じて、ユーザーデバイスで実行しているアプリケーションにPNG地図を提供する(910)。ユーザーは、先に図8に関して示したように、地図上で仮想境界線を指示する(912)。ユーザーアプリは、地図の外にある境界線部分を削除する(914)。線が壁に届いていない場合、またはエリアの障壁として機能していない場合、アプリは線を延長することをユーザーに促すことができ、あるいは線を自動的に延長できる。ユーザーアプリは仮想境界線のグローバル座標を計算し、それらをサーバーへ送信する(916)。サーバーは仮想境界線のグローバル座標をロボットに提供する(918)。ロボットは仮想境界線をロボットのメモリーに格納された部分地図に対応する線分に分割し、グローバル座標を部分地図のローカル座標に変換する。部分地図はLIDARまたはロボット上の他の位置特定システムの所望範囲に対応し得る。ある1つの部分地図から別の部分地図へ移動するときの位置追跡能力と完全なカバレッジを確保するため、部分地図は重なり合うことができる。一実施形態において、部分地図は5x5メートルのエリアであり、あるいは断面10メートル未満の別の寸法である。
[0077]ロボットは掃除運転を実行しているときに、必要に応じてそれぞれの部分地図にアクセスし、その部分地図の仮想境界線分のローカル座標にもアクセスする。ロボットプロセッサはLIDARまたは他のメカニズムを用いて自身の現在位置を絶えず検出し、その座標を仮想境界線分の座標に比較する。境界線分に達するとロボットは方向を変える。ロボットは、ロボットがターンし、掃除されていない近接部分まで移動し、その後方向を反転して掃除を継続できるようにするため、ロボットの先端が境界線に十分近づいていることを検出する。
[0078]座標訂正
図10は座標系を更新する一実施形態を示している。図示されているように、ロボットは部屋1002、1004、および1006を含む最初の地図を描いた。座標系は点1008にて0、0で始まるよう設定された。その後ユーザーは地図上で仮想境界線1010を引いた。エリア1012は以前、閉じた扉、仮想境界線、または物理的境界線、またはその他によって遮断されていた。エリア1012がその後開放される場合は、これを地図に加える必要があり、0、0点を点1014に変更して座標は変更される。これは、仮想境界線1010を構成する点を含む、地図上の他の点の座標の変更を要する。新しい座標空間のため、点1008および1014間の差を地図上の各点に加えることができる。
[0079]除去可能な物理的境界標識
一実施形態において、ユーザーは、ロボットの地図生成運転のときに、1つ以上の場所に、磁気ストリップ、IRトランスポンダ、または他の境界標識を置く。ロボットは、エリア内の場所が地図化されるときに、地図と併せて境界情報を記録する。ユーザーは同じ地図生成運転のときに境界標識を除去でき、あるいはこれを別の場所に移すことができる。例えば、ユーザーはロボットが遭遇する次の扉や玄関入口へ境界標識を移すことができる。その後、ロボットは記録された境界位置に対応する仮想境界線を特定でき、物理的な境界標識を残す必要はない。したがって、ユーザーが地図上で境界線を作る代わりに、ロボットは地図とそれぞれの部分地図を生成しているときに境界線を生成する。上述したように、ロボットは壁に届いていない境界線を延長でき、あるいは境界線を物体に近づけることができる。部分地図ごとにロボットのローカルメモリーに境界線分が格納される。地図化が完了すると、ロボットは地図上に描かれた仮想境界線を含む地図のPNG画像を生成する。仮想境界線を含むPNG画像はその後サーバーへアップロードされ、その後ユーザーデバイスのアプリにダウンロードされる。
[0080]一実施形態において、その後ユーザーは境界線と地図を確認でき、あるいはこれを修正できる。例えば、ユーザーは境界線が正しい位置にないことに気づく場合があり、そのためロボットは、例えば扉から1インチまでは掃除するが、扉の縁までのエリアや扉の下は掃除しない。
[0081]一実施形態において、仮想境界線は時間の経過にともない変化する。例えば、仮想境界線は1回おきの掃除作業のときに人通りの多いエリアにロボットを閉じ込めるように設定できる。ユーザーは上述したメカニズムのいずれかにより、または他の何らかのメカニズムにより、地図上で仮想境界線を指示できる。次にユーザーは、例えば毎週火曜日の午後といったスケジュールを地図に結び付けることができる。次にユーザーはマークされていない地図の別のコピーを引き出し、別個の1組の仮想境界線を指示し、あるいは仮想境界線を指示しない。次にユーザーは、例えば隔週土曜日の午後5時といったスケジュール上の別の時間を、マークされた地図に結び付けることができる。次にアプリはスケジュールとグローバル座標の複数の線分をサーバーへアップロードする。次にサーバーはスケジュールと仮想境界線をロボットへダウンロードする。ロボットは上述したように第1のスケジュールの仮想境界線を部分地図の線分に変換する。境界線とスケジュール時間は適切な部分地図を参照して格納される。2番目以降の仮想境界線分とスケジュール時間にもメモリー内の同じ部分地図が使われる。より遅いロボット掃除機速度および/または高真空力、またはロボット掃除機作業の他の動作修正など、スケジュールはある特定のエリアを集中的に掃除することを指示できる。集中的掃除または他の動作修正は非スケジュールモードであってもよい。例えば、ユーザーはアプリの地図上でターボまたはジェントルモードで掃除するセクションを描くことができ、その後直ちにロボットをそのセクションへ行かせることができる。したがって、ユーザーは、スケジュールされた作業で、またはスケジュールされてない作業で、仮想境界線を、または異なる処置が行われるエリアの指示を、指示できる。緊急作業の場合、ユーザー指示は作業後に破棄でき、あるいは作業を保存することを、または仮想境界線により作業をスケジュールすることを、ユーザーに促すことができる。
[0082]別の一例において、仮想境界線はゲートとして機能でき、あるエリアが掃除されるまでロボットを当該エリアに閉じ込め、その後境界線を開放することによってロボットは別のエリアを掃除するか、またはホームベースへ戻る。ロボットのメモリーに格納されたプログラムは、壁、障害物、および仮想境界線で完全に囲まれた全てのエリアが掃除されたことを認識する。その後ロボットは仮想境界線へ進むよう命令されるが、座標が仮想境界線に一致したときに停止するコマンドは阻止される。その後ロボットは次の囲まれたエリアを掃除し、あるいは既にきれいなら、ホームへ進むことができる。
[0083]別の一例において、境界線によって指示されたエリアについて特定の掃除モードに異なる時間を結び付けることができ、例えばスケジュール上のある時には経度方向に掃除し、別の時には緯度方向に掃除する。これは時間の経過にともなうより周到な掃除を提供でき、1回の掃除運転で複数方向での複数通行は不要であるため、1回の掃除運転の時間を制限する。
[0084]一実施形態においては、仮想境界線を含む地図のプレビューが承諾を得るためユーザーに提供される。掃除時間を最適化するため、仮想境界線を踏まえたベースステーションの移動案など、ロボットアプリは仮想境界線とスケジュールとに基づいて提案を行うことができる。
[0085]一実施形態においては、ロボットが異なるフロアへ動かされる場合などに、複数の広域地図が提供される。それぞれのフロアは独自の地図と独自の仮想境界線およびスケジュールを有する。
[0086]一実施形態において、ロボットはロボットが仮想境界線に遭遇したことをユーザーに示す1つ以上のインジケータを有する。インジケータは境界線に達したときに赤く点滅する照明であってよい。これはロボットが向きを変える理由が仮想境界線であることをユーザーに知らせる。インジケータはロボットから両方の方向に投射されて仮想境界線の範囲を示す可視光線であってもよい。光は点滅してよく、異なる色であってよく、あるいはこのスケジュール時間のためだけの仮想境界線に対して永続的な仮想境界線を指示してよい。これは、例えば滅多に使わない部屋でユーザーがパーティを行った場合など、状況が変化した場合に、仮想境界線をリセットすることをユーザーに促すことができる。フィードバックは可聴であってもよく、ロボットから直接到来してよく、あるいはユーザーデバイス上のアプリによって指示されてよい。一実施形態において、ユーザーデバイスでアプリが開いている場合は、ユーザーデバイスでフィードバックが提供される。アプリが閉じている場合は、ロボットそのものからフィードバックが提供される。
[0087]一実施形態において、ユーザーはリモコンなどのモバイルデバイス上のロボットアプリを使って仮想境界線を設定できる。ユーザーは立入禁止の部屋に接近するロボットを見たときに、アプリの仮想境界線ボタンを押すことができる。すると直接的に(IR、Bluetooth(登録商標)、ローカルWiFiなどを使用)、またはサーバーを通じて(その後インターネットを介し、その後ローカルエリアネットワークを介し、ロボットへ)、ロボットへ信号が送信される。ロボットは、出入口を認識する場合に、線の一部として点を認識し、点の両側の壁に点を自動的に外挿する。
[0088]複数のロボット
一実施形態においては、複数の掃除ロボットが使用される。これは様々な利点を提供する。最初の使用では、ある1台のロボットを、エリアを地図化して仮想境界線を提案するトレーニングロボットに指定できる。第2(第3、第4など)のロボットは後ろに続くことができ、通常の掃除を行い、それぞれの部屋またはスペースでより多くの時間を費やす。トレーニングロボットは生成された各部屋の地図を第2のロボットへ送信できるため、第2のロボットは地図を作成する必要がなく、地図作成に必要な処理を含める必要はない。この送信はユーザーデバイスによって直接行われてよく、あるいはリモートサーバーへアップロードし、リモートサーバーが第2のロボットへダウンロードすることによって行われてもよい。一実施形態において、新しいロボットは代替ロボットであってよい。複数のフロアの、または間取りの、複数の地図を共有できる。例えば、通常2階にいる第2のロボットは、1階に移されたことを検出し、1階の地図に切り替えることができる。
[0089]仮想線は、ロボットのタイプに基づいて、あるいは単に任務の区分に基づいて、引くことができる。複数のロボットがある場合は、それぞれのロボットに掃除すべきエリアの部分を割り当てることができ、他のロボットによって処理されるエリアは仮想境界線で遮断される。したがって、それぞれのロボットに異なる仮想境界線が提供される。堅木張りの床など、掃除が簡単なエリアには廉価なロボットを使用できる。あるいは、異なるロボットは異なる最適化されたバッテリストレージを有することができる。例えば、トレーニングまたは地図作成用ロボットは地図作成および画像撮影能力のみを有してよく、掃除装置は有さず、短いトレーニング運転のため限られたバッテリ電力を有する。したがって、トレーニングロボットはかなり小型で廉価であってよい。掃除ロボットは長時間の掃除運転のためかなり多くのバッテリ電力を有する。
[0090]ユーザーインタラクション
一実施形態において、ロボットはカメラを有し、仮想境界線エリアを示すため、ユーザーに画像またはビデオを提供できる。ユーザーは、より良いエリアの視野を得るため、リモコンを使ってカメラの視点を誘導できる。また、仮想境界線を生成するユーザーコマンドは、表示された地図上で指やスタイラスを使ってただ線を引くだけでなく、何らかの方法によるものであってよい。例えば、画像認識により(食器洗い機はそれがキッチンであることを意味する)、あるいは地図および/または画像からエリアに印を付けることをユーザーに促すことにより、ロボットはエリアを地図化し、それらを特定できる。そしてユーザーは、例えば「キッチンは掃除するな」と言うだけでよく、ロボットはキッチンの入口に仮想境界線を引く。あるいは、地図上で物体またはエリアを特定でき、ユーザーはそれらをタップして立入禁止を設定でき、ダブルタップして仮想境界線を除去できる(あるいは逆も可能)。ロボットはその後、指示された物体またはエリアの周りに仮想境界線を引く。あるいは、タップの後に、ドロップダウンメニューを、または他の何らかのGUIインターフェースを、使用できる。
[0091]一実施形態において、ユーザーは回避すべきエリアまたは物体の写真を撮影でき、ロボット上のプログラム(またはユーザーデバイスまたはリモートサーバー内のプログラム)は、ビジュアルSLAMマッピング内の画像に、またはLIDAR SLAMマッピング、または他の何らかの方法にリンクされた画像に、それらを照合できる。その後、画像内の物体またはエリアの周りに仮想境界線を引くことができる。ロボットが物体に難なく接近できることに気づいたときに、ロボットが引かれた仮想境界線を当該物体に近づけることができる場合のように、人工知能を使って画像を自動的に切り取ることができる。
[0092]特定の実施形態に関して本発明を説明してきたが、当業者なら多数の修正が可能であることを認識するであろう。本発明の実施形態は、本明細書で説明されている具体例を含みただしこれらに限定されない様々なコンピュータシステムおよび通信技術を用いて実現できる。例えば、本発明の実施形態は掃除ロボットに応用できるばかりでなく、他のロボットにも、例えば芝刈りロボットにも、応用できる(ある種のエリアはより頻繁に刈る必要があり得て、あるいは花は仮想境界線で回避する必要があり得る)。仮想境界線は、セキュリティロボットによって監視する必要がないエリアを、あるいは頻繁にチェックする必要がないエリアを、指示できる。温度、空気の質、その他機能を測定するロボットは仮想境界線を同様に使用できる。
[0093]本発明の実施形態は、専用コンポーネントおよび/またはプログラム可能プロセッサおよび/またはその他プログラム可能デバイスの任意の組み合わせを用いて実現できる。本明細書で説明されている様々なプロセスは、同じプロセッサで、または任意の組み合わせによる異なるプロセッサで、実装できる。コンポーネントが何らかの操作を遂行するように構成されると説明されている場合、かかる構成は、例えば操作を遂行する電子回路を設計することにより、操作を遂行するプログラム可能電子回路(マイクロプロセッサなど)をプログラムすることにより、またはこれらの組み合わせにより、達成できる。さらに、上述した実施形態は特定のハードウェアおよびソフトウェアの組み合わせを参照し得るが、当業者なら、ハードウェアおよび/またはソフトウェアコンポーネントの異なる組み合わせを使用することもできること、また、ハードウェアで実装されると説明されている特定の操作をソフトウェアでも実装できること、あるはその逆も可能であることを、理解するであろう。
[0094]本発明の様々な特徴を取り入れたコンピュータプログラムは符号化でき、様々なコンピュータ可読ストレージ媒体に格納でき、適当な媒体は、磁気ディスクまたはテープ、コンパクトディスク(CD)やDVD(デジタル多用途ディスク)などの光ストレージ媒体、フラッシュメモリー、および他の非一時的媒体を含む。プログラムコードにより符号化されたコンピュータ可読媒体は適合電子デバイスとともにパッケージされてよく、あるいはプログラムコードは電子デバイスとは別に提供されてよい(例えばインターネットダウンロードにより、または別々にパッケージされたコンピュータ可読ストレージ媒体として)。
[0095]したがって、特定の実施形態に関して本発明を説明してきたが、本発明が以降の請求項の範囲内にある全ての修正および同等のものをカバーすることは理解されるであろう。

Claims (19)

  1. ロボットを操作する方法であって、
    前記ロボット上のセンサーを用いて物理的境界標識を検出するステップと、
    前記ロボットのためのエリア地図上で前記物理的境界標識の位置に対応する仮想境界線を指示するステップと、
    前記物理的境界標識が後ほど除去される場合に前記仮想境界線を維持するステップと、
    前記ロボットにより、前記仮想境界線を越えたエリアを回避するステップとを含む、方法。
  2. 物理的境界線または仮想境界線と近接する壁との間の隙間を検出するステップと、
    前記仮想境界線を前記近接する壁まで延長するステップとをさらに含む、
    請求項1に記載の方法。
  3. 前記ロボットが、仮想境界線の後ろにある物体からの前記仮想境界線とは異なる距離を移動できると判断するステップと、
    前記物体からの異なる距離になるように前記仮想境界線を調節するステップとをさらに含む、
    請求項1に記載の方法。
  4. ユーザーから前記エリア地図上の仮想境界線についての指示を受け取るステップをさらに含む、
    請求項1に記載の方法。
  5. 前記ロボットのトレーニング運転のときに前記エリア地図を作成するステップと、仮想境界線についての前記指示を受け取る前に前記エリア地図をユーザーに提供するステップとをさらに含む、
    請求項4に記載の方法。
  6. 前記トレーニング運転のときに、前記エリア地図上に指示された前記エリアの掃除に必要な全距離およびパターンを移動せず、前記エリア地図を生成するにあたって十分な距離およびパターンを移動するステップをさらに含む、
    請求項5に記載の方法。
  7. 前記仮想境界線を前記エリア地図のグローバル座標でリモートサーバーに提供するステップと、
    前記ロボットへ前記仮想境界線をダウンロードするステップと、
    前記ロボットにより、前記仮想境界線を複数の部分地図に対応する複数の線分に分割することによって、前記グローバル座標における前記仮想境界線を線分に変換するステップと、
    現在の部分地図のための前記仮想境界線を決定するため、前記ロボットにより、前記線分を前記現在の部分地図と比較するステップとをさらに含む、
    請求項1に記載の方法。
  8. 前記物理的境界標識は、磁気ストリップ、IRビーム、バーコード、QRコード(登録商標)、カラーストリップ、IR検出可能ラベル、または視覚的パターンのいずれか1つである、請求項1に記載の方法。
  9. ロボットのエリア地図上の仮想境界線の指示を受け取るステップと、
    物体からの距離を変更するため、または前記仮想境界線を近接する壁まで延長するため、前記仮想境界線を調節するステップと、
    前記ロボットにより、前記仮想境界線を越えたエリアを回避するステップとを含む、方法。
  10. 前記ロボット上のセンサーを用いて物理的境界標識を検出するステップと、
    前記ロボットのためのエリア地図上で前記物理的境界標識の位置に対応する仮想境界線を指示するステップと、
    前記物理的境界標識が後ほど除去される場合に前記仮想境界線を維持するステップと、
    前記ロボットにより、前記仮想境界線を越えたエリアを回避するステップとを含む、
    請求項9に記載の方法。
  11. 前記ロボットのトレーニング運転のときに前記エリア地図を作成するステップと、前記エリア地図をユーザーに提供するステップと、
    前記ユーザーから前記エリア地図上の仮想境界線についての指示を受け取るステップとをさらに含む、
    請求項9に記載の方法。
  12. 命令を含み、ロボットに取り付けられる、非一時的コンピュータ可読媒体であって、前記命令がコンピュータによって実行されると、前記コンピュータは、
    前記ロボット上のセンサーを用いて物理的境界標識を検出し、
    前記ロボットのためのエリア地図上で前記物理的境界標識の位置に対応する仮想境界線を指示し、
    前記物理的境界標識が後ほど除去される場合に前記仮想境界線を維持し、なおかつ
    前記ロボットにより、前記仮想境界線を越えたエリアを回避する、非一時的コンピュータ可読媒体。
  13. 物理的境界線または仮想境界線と近接する壁との間の隙間を検出し、なおかつ
    前記仮想境界線を前記近接する壁まで延長する命令をさらに含む、
    請求項12に記載の非一時的コンピュータ可読媒体。
  14. 前記ロボットが、仮想境界線の後ろにある物体からの前記仮想境界線とは異なる距離を移動できると判断し、なおかつ
    前記物体からの異なる距離になるように前記仮想境界線を調節する命令をさらに含む、
    請求項12に記載の非一時的コンピュータ可読媒体。
  15. 前記ロボットのトレーニング運転のときに前記エリア地図を作成し、前記エリア地図をユーザーに提供し、なおかつ
    前記ユーザーから前記エリア地図上の仮想境界線についての指示を受け取る命令をさらに含む、
    請求項12に記載の非一時的コンピュータ可読媒体。
  16. 床横断ロボットと、
    前記床横断ロボットのロボットハウジングと、
    前記ハウジング内に取り付けられて前記床横断ロボットを動かすモーターと、
    前記モーターに電力を提供するために接続されるバッテリと、
    前記ロボット内に取り付けられて周囲のものを検出するセンサーと、
    前記ロボット内に取り付けられるプロセッサと、
    前記ロボット内のメモリーと、
    前記ロボット内の位置特定モジュールと、
    命令を有する前記メモリー内の非一時的コンピュータ可読コードとを含み、前記命令は、
    前記ロボット上のセンサーを用いて物理的境界標識を検出し、
    前記ロボットのためのエリア地図上で前記物理的境界標識の位置に対応する仮想境界線を指示し、
    前記物理的境界標識が後ほど除去される場合に前記仮想境界線を維持し、なおかつ
    前記ロボットにより、前記仮想境界線を越えたエリアを回避する、掃除ロボット。
  17. 前記メモリー内の前記非一時的コンピュータ可読コードは、
    物理的境界線または仮想境界線と近接する壁との間の隙間を検出し、なおかつ
    前記仮想境界線を前記近接する壁まで延長するさらなる命令を有する、請求項16に記載の掃除ロボット。
  18. 前記メモリー内の前記非一時的コンピュータ可読コードは、
    前記仮想境界線を前記エリア地図のグローバル座標でリモートサーバーに提供し、
    前記ロボットへ前記仮想境界線をダウンロードし、
    前記ロボットにより、前記仮想境界線を複数の部分地図に対応する複数の線分に分割することによって、前記グローバル座標の前記仮想境界線を線分に変換し、なおかつ
    現在の部分地図のための前記仮想境界線を決定するため、前記ロボットにより、前記線分を前記現在の部分地図と比較するさらなる命令を有する、請求項16に記載の掃除ロボット。
  19. 前記メモリー内の前記非一時的コンピュータ可読コードは、
    前記ロボットのトレーニング運転のときに前記エリア地図を作成し、前記エリア地図をユーザーに提供し、なおかつ
    前記ユーザーから前記エリア地図上の仮想境界線についての指示を受け取るさらなる命令を有する、請求項16に記載の掃除ロボット。
JP2018161535A 2017-08-31 2018-08-30 ロボット仮想境界線 Pending JP2019071046A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762552790P 2017-08-31 2017-08-31
US62/552,790 2017-08-31
US15/996,290 2018-06-01
US15/996,290 US10583561B2 (en) 2017-08-31 2018-06-01 Robotic virtual boundaries

Publications (1)

Publication Number Publication Date
JP2019071046A true JP2019071046A (ja) 2019-05-09

Family

ID=65436506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018161535A Pending JP2019071046A (ja) 2017-08-31 2018-08-30 ロボット仮想境界線

Country Status (3)

Country Link
US (1) US10583561B2 (ja)
JP (1) JP2019071046A (ja)
CN (1) CN109421067A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021105535A1 (de) 2020-03-12 2021-09-16 Honda Motor Co., Ltd. Information-Verarbeitungsvorrichtung, Information-Bereitstellungssystem und Information-Verarbeitungsverfahren
WO2022149715A1 (ko) * 2021-01-11 2022-07-14 삼성전자주식회사 청소 로봇 및 그 제어 방법
JP2022542006A (ja) * 2019-07-23 2022-09-29 珠海一微半導体股▲ふん▼有限公司 ロボットが仮想壁に衝突したか否かを判断する方法及びチップ、並びにスマートロボット
JP2022549572A (ja) * 2019-09-30 2022-11-28 アイロボット・コーポレーション 自律モバイルロボットのための画像捕捉デバイス、ならびに関連するシステムおよび方法
JP2023004888A (ja) * 2021-06-25 2023-01-17 安克▲創▼新科技股▲フン▼有限公司 マップデータ伝送方法、清掃ロボット及び記憶媒体
US12042108B2 (en) 2019-07-23 2024-07-23 Amicro Semiconductor Co., Ltd. Method for robot to judging whether the robot collides with virtual wall, chip and intelligent robot

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3428885A4 (en) * 2016-03-09 2019-08-14 Guangzhou Airob Robot Technology Co., Ltd. CARD CONSTRUCTION METHOD, AND CORRECTION METHOD AND APPARATUS
KR20180082264A (ko) * 2017-01-10 2018-07-18 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102021834B1 (ko) * 2017-07-12 2019-09-17 엘지전자 주식회사 이동 로봇 시스템 및 그 제어방법
US11240854B2 (en) * 2017-08-22 2022-02-01 AI Incorporated Methods and systems for pairing mobile robotic device docking stations with a wireless router and cloud service
CN107553497B (zh) * 2017-10-20 2023-12-22 苏州瑞得恩光能科技有限公司 太阳能面板清扫机器人的边缘定位装置及其定位方法
CN107566743B (zh) * 2017-10-30 2019-10-11 珠海市一微半导体有限公司 移动机器人的视频监控方法
US10878294B2 (en) * 2018-01-05 2020-12-29 Irobot Corporation Mobile cleaning robot artificial intelligence for situational awareness
EP3835907A4 (en) * 2018-08-08 2022-04-20 Positec Power Tools (Suzhou) Co., Ltd SELF-MOBILE DEVICE, AUTOMATIC OPERATING SYSTEM AND CONTROL METHOD THEREOF
US10835096B2 (en) * 2018-08-30 2020-11-17 Irobot Corporation Map based training and interface for mobile robots
KR102629036B1 (ko) * 2018-08-30 2024-01-25 삼성전자주식회사 로봇 및 그의 제어 방법
US11007644B2 (en) * 2018-09-04 2021-05-18 Irobot Corporation Mapping interface for mobile robots
US10831212B2 (en) * 2018-09-19 2020-11-10 International Business Machines Corporation Autonomous roving vehicle management using laser barriers
US20200100639A1 (en) * 2018-10-01 2020-04-02 International Business Machines Corporation Robotic vacuum cleaners
US11191407B2 (en) 2019-01-31 2021-12-07 Irobot Corporation Cleaning of pet areas by autonomous cleaning robots
US10463217B1 (en) * 2019-01-31 2019-11-05 Irobot Corporation Cleaning of pet areas by autonomous cleaning robots
CN110081885B (zh) * 2019-04-02 2021-10-26 北京云迹科技有限公司 运行区域划分方法及装置
CN110251000A (zh) * 2019-05-20 2019-09-20 广东宝乐机器人股份有限公司 一种提高扫地机器人清洁效率的方法
CN110347152B (zh) * 2019-06-11 2022-08-16 深圳拓邦股份有限公司 虚拟墙设置方法、系统及装置
CN110450152A (zh) * 2019-06-24 2019-11-15 广东宝乐机器人股份有限公司 区域识别方法、机器人和存储介质
KR102224637B1 (ko) 2019-07-05 2021-03-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102275300B1 (ko) 2019-07-05 2021-07-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102361130B1 (ko) 2019-07-11 2022-02-09 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102297496B1 (ko) * 2019-07-11 2021-09-02 엘지전자 주식회사 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
KR102305206B1 (ko) * 2019-07-11 2021-09-28 엘지전자 주식회사 인공 지능을 통해 바닥 상황을 고려하여 청소하는 로봇 청소기 및 그 방법
CN110909585B (zh) * 2019-08-15 2022-09-06 纳恩博(常州)科技有限公司 一种路线确定方法、可行进设备、和存储介质
CN112631267B (zh) * 2019-10-09 2023-01-24 苏州宝时得电动工具有限公司 自动行走设备控制方法及自动行走设备
CN112684785A (zh) * 2019-10-18 2021-04-20 南京德朔实业有限公司 自行走割草系统和户外行走设备
CN112799389B (zh) * 2019-11-12 2022-05-13 苏州宝时得电动工具有限公司 自动行走区域路径规划方法及自动行走设备
CN113064409A (zh) * 2019-12-13 2021-07-02 深圳拓邦股份有限公司 一种动态分区方法、系统及清洁设备
CN113128747B (zh) * 2019-12-30 2024-03-19 南京泉峰科技有限公司 智能割草系统及其自主建图方法
CN111399502A (zh) * 2020-03-09 2020-07-10 惠州拓邦电气技术有限公司 移动机器人的建图方法、装置及移动机器人
CN111489362B (zh) * 2020-04-03 2023-12-05 北京小狗吸尘器集团股份有限公司 一种空间划分方法、装置、可读介质及电子设备
US11730328B2 (en) * 2020-08-14 2023-08-22 Irobot Corporation Visual fiducial for behavior control zone
EP3958086A1 (en) * 2020-08-19 2022-02-23 Carnegie Robotics, LLC A method and a system of improving a map for a robot
CN111930131B (zh) * 2020-09-30 2021-01-12 四川中水成勘院工程物探检测有限公司 一种适用于复杂环境的获取图形的装置和应用方法
CN114468845B (zh) * 2020-10-23 2023-01-20 好样科技有限公司 自行走装置及其控制方法
DE102020134400A1 (de) * 2020-12-21 2022-06-23 Vorwerk & Co. Interholding Gesellschaft mit beschränkter Haftung Verfahren zum Betrieb eines sich selbsttätig fortbewegenden Bodenbearbeitungsgerätes
CN113465588A (zh) * 2021-06-09 2021-10-01 丰疆智能科技股份有限公司 导航虚拟墙的自动生成方法、装置、电子设备及存储介质
US11953908B2 (en) 2021-10-12 2024-04-09 Google Llc Deployable safety fence for mobile robots
US11940808B2 (en) * 2021-11-09 2024-03-26 Irobot Corporation Seasonal cleaning zones for mobile cleaning robot
CN114545938A (zh) * 2022-02-17 2022-05-27 上海擎朗智能科技有限公司 一种路径规划方法、装置、机器人及存储介质
EP4386503A1 (en) * 2022-12-16 2024-06-19 Husqvarna AB Improved definition of boundary for a robotic work tool

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0168189B1 (ko) * 1995-12-01 1999-02-01 김광호 로보트의 환경인식장치 및 그 제어방법
CN1055772C (zh) * 1995-12-01 2000-08-23 三星电子株式会社 机器人的环境识别装置及其控制方法
GB9827779D0 (en) 1998-12-18 1999-02-10 Notetry Ltd Improvements in or relating to appliances
JP5054010B2 (ja) 2005-09-02 2012-10-24 ニート ロボティックス,インコーポレイティド ロボットのナビゲーション及びロボットの位置を決定するための方法と装置
US8634960B2 (en) 2006-03-17 2014-01-21 Irobot Corporation Lawn care robot
US8996172B2 (en) 2006-09-01 2015-03-31 Neato Robotics, Inc. Distance sensor system and method
AU2010286429B2 (en) 2009-08-31 2013-11-28 Vorwerk & Co. Interholding Gmbh Method and apparatus for simultaneous localization and mapping of mobile robot environment
US9072218B2 (en) 2012-07-09 2015-07-07 Deere & Company Boundary sensor assembly for a robotic lawn mower, robotic lawn mower and robotic lawn mower system
US8855914B1 (en) 2012-08-31 2014-10-07 Neato Robotics, Inc. Method and apparatus for traversing corners of a floored area with a robotic surface treatment apparatus
US9233472B2 (en) * 2013-01-18 2016-01-12 Irobot Corporation Mobile robot providing environmental mapping for household environmental control
US9868211B2 (en) * 2015-04-09 2018-01-16 Irobot Corporation Restricting movement of a mobile robot

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022542006A (ja) * 2019-07-23 2022-09-29 珠海一微半導体股▲ふん▼有限公司 ロボットが仮想壁に衝突したか否かを判断する方法及びチップ、並びにスマートロボット
JP7326578B2 (ja) 2019-07-23 2023-08-15 珠海一微半導体股▲ふん▼有限公司 ロボットが仮想壁に衝突したか否かを判断する方法及びチップ、並びにスマートロボット
US12042108B2 (en) 2019-07-23 2024-07-23 Amicro Semiconductor Co., Ltd. Method for robot to judging whether the robot collides with virtual wall, chip and intelligent robot
JP2022549572A (ja) * 2019-09-30 2022-11-28 アイロボット・コーポレーション 自律モバイルロボットのための画像捕捉デバイス、ならびに関連するシステムおよび方法
JP7416916B2 (ja) 2019-09-30 2024-01-17 アイロボット・コーポレーション 自律モバイルロボットのための画像捕捉デバイス、ならびに関連するシステムおよび方法
DE102021105535A1 (de) 2020-03-12 2021-09-16 Honda Motor Co., Ltd. Information-Verarbeitungsvorrichtung, Information-Bereitstellungssystem und Information-Verarbeitungsverfahren
US11538226B2 (en) 2020-03-12 2022-12-27 Honda Motor Co., Ltd. Information processing device, information providing system, and information processing method
WO2022149715A1 (ko) * 2021-01-11 2022-07-14 삼성전자주식회사 청소 로봇 및 그 제어 방법
JP2023004888A (ja) * 2021-06-25 2023-01-17 安克▲創▼新科技股▲フン▼有限公司 マップデータ伝送方法、清掃ロボット及び記憶媒体
JP7350938B2 (ja) 2021-06-25 2023-09-26 安克▲創▼新科技股▲フン▼有限公司 マップデータ伝送方法、清掃ロボット及び記憶媒体

Also Published As

Publication number Publication date
CN109421067A (zh) 2019-03-05
US10583561B2 (en) 2020-03-10
US20190061157A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
US10583561B2 (en) Robotic virtual boundaries
US11272823B2 (en) Zone cleaning apparatus and method
GB2567944A (en) Robotic virtual boundaries
US11132000B2 (en) Robot with automatic styles
CN110060207B (zh) 提供平面布置图的方法、系统
US20230280743A1 (en) Mobile Robot Cleaning System
US20210224579A1 (en) Mobile Cleaning Robot Artificial Intelligence for Situational Awareness
US20180348783A1 (en) Asynchronous image classification
US10265858B2 (en) Auto-cleaning system, cleaning robot and method of controlling the cleaning robot
US11157016B2 (en) Automatic recognition of multiple floorplans by cleaning robot
WO2021103987A1 (zh) 扫地机器人控制方法、扫地机器人及存储介质
KR102068216B1 (ko) 이동형 원격현전 로봇과의 인터페이싱
US20180299899A1 (en) Localized collection of ambient data
US20130024025A1 (en) Autonomous Robot and A Positioning Method Thereof
JP5213183B2 (ja) ロボット制御システム及びロボット制御プログラム
TW201826993A (zh) 具有基於環境之操作速度變化的機器人清潔裝置
KR20220062400A (ko) 투사 방법 및 시스템
CN111338330B (zh) 作业位置确定方法、自移动设备及存储介质
WO2018165915A1 (zh) 无人飞行器航点规划方法、系统、电子设备和存储介质
US11797016B2 (en) Online authoring of robot autonomy applications
US11076137B1 (en) Modifying projected images
EP4261793A1 (en) Obstacle avoidance using fused depth and intensity for nnt training
US20240025040A1 (en) Apparatus and method for simulating a mobile robot at a work site
US20220104675A1 (en) User feedback on potential obstacles and error conditions detected by autonomous mobile robots
CN117970837A (zh) 割草机器人的遥控沿边方法、电子设备及可读存储介质