JP2022543193A - 移動ロボットのナビゲーション - Google Patents

移動ロボットのナビゲーション Download PDF

Info

Publication number
JP2022543193A
JP2022543193A JP2022502295A JP2022502295A JP2022543193A JP 2022543193 A JP2022543193 A JP 2022543193A JP 2022502295 A JP2022502295 A JP 2022502295A JP 2022502295 A JP2022502295 A JP 2022502295A JP 2022543193 A JP2022543193 A JP 2022543193A
Authority
JP
Japan
Prior art keywords
robot
scene
environment
camera
intersection
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.)
Granted
Application number
JP2022502295A
Other languages
English (en)
Other versions
JP7345042B2 (ja
Inventor
サイフェルト,サミュエル
シルバ,マルコ ダ
ライス,アレクサンダー
へプラー,リーランド
ボリーニ,マリオ
ベンツェル,クリストファー
Original Assignee
ボストン ダイナミクス,インコーポレイテッド
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 ボストン ダイナミクス,インコーポレイテッド filed Critical ボストン ダイナミクス,インコーポレイテッド
Publication of JP2022543193A publication Critical patent/JP2022543193A/ja
Application granted granted Critical
Publication of JP7345042B2 publication Critical patent/JP7345042B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • 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/0038Control 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 simple or augmented images from one or more cameras located onboard the vehicle, e.g. tele-operation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • 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/0016Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement characterised by the operator's input device
    • 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/0055Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
    • G05D1/0061Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements for transition from automatic pilot to manual pilot and vice versa
    • 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/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • 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
    • 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/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Electromagnetism (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

【課題】 簡単かつ直感的にナビゲートを可能とすることである。【解決手段】 ロボット(300)を制御するための方法(1700)は、少なくとも1つのイメージセンサ(344)から画像データ(342)を受信することを含む。画像データはロボットの周囲の環境(301)に対応する。この方法は、画像データに基づいて環境のシーン(222)を表示し、シーン内のピクセル位置(224)の選択を示す入力指示を受信するように構成されるグラフィカルユーザインタフェース(221)を実行することも含む。この方法は、ピクセル位置の選択に基づいてポインティングベクトルを決定することも含む。ポインティングベクトルは、環境内でロボットをナビゲートするための移動方向を表す。この方法は、ロボットにウェイポイントコマンドを伝送することも含む。ウェイポイントコマンドはロボットによって受信されると、標的位置までロボットをナビゲートさせる。標的位置は、ロボットのポインティングベクトルと地形推定との交点に基づく。【選択図】 図1

Description

技術分野
[0001] 本開示は移動ロボットをナビゲートすることに関する。
背景
[0002] 技術が進歩するにつれ、ユーザを支援し得る様々な機能を行うための様々な種類のロボット装置が作成されている。ロボット装置はとりわけ材料の管理、輸送、溶接、組み立て、及び供給を含む応用に使用され得る。時が経つにつれ、これらのロボットシステムが動作する方法はより知的、効率的、及び直感的になっている。現代生活の様々な側面においてロボットシステムがますます普及するにつれ、人が動作させナビゲートするのにロボットシステムが簡単であること及び直感的であることが望ましい。
概要
[0003] 本開示の一態様は、ロボットを制御するための方法を提供する。この方法は、オペレータ装置のデータ処理ハードウェアにおいて少なくとも1つのイメージセンサから画像データを受信することを含む。画像データはロボットの周囲の環境に対応する。この方法は、オペレータ装置の画面上に表示するためのグラフィカルユーザインタフェース(GUI)をデータ処理ハードウェアによって実行することも含む。GUIは、画像データに基づいてロボットの周囲の環境のシーンを表示し、ロボットの周囲の環境のシーン内のピクセル位置の選択を示す入力指示を受信するように構成される。この方法は、ピクセル位置の選択に基づいてポインティングベクトルVをデータ処理ハードウェアによって決定することも含む。ポインティングベクトルは、環境内でロボットをナビゲートするための移動方向を表す。この方法は、ロボットにウェイポイントコマンドWをデータ処理ハードウェアによって伝送することも含む。ウェイポイントコマンドWはロボットによって受信されると、標的位置Tまでロボットをナビゲートさせる。標的位置は、ロボットのポインティングベクトルVと地形推定Gとの交点に基づく。地形推定Gは地表面推定を含み得る。簡単にするために、本開示では「地形推定」を「地表面推定」と呼ぶ。
[0004] 本開示の実装形態は、以下の任意選択的特徴の1つ又は複数を含み得る。一部の実装形態では、ロボットの周囲の環境のシーンが、画像データに基づく環境の前方シーンであって、画像データはロボット上に配置される左前カメラ及び右前カメラによって捕捉される、前方シーン、画像データに基づく環境の左側シーンであって、画像データはロボット上に配置される左側カメラによって捕捉される、左側シーン、画像データに基づく環境の右側シーンであって、画像データは移動ロボット上に配置される右側カメラによって捕捉される、右側シーン、画像データに基づく環境の後方シーンであって、後方シーンはロボット上に配置される後方カメラによって捕捉される、後方シーン、又は画像データに基づくロボットの下向きシーンであって、画像データはペイロードカメラ、左前カメラ、右前カメラ、左側カメラ、右側カメラ、及び後方カメラによって捕捉される、下向きシーンのうちの何れか1つを含む。
[0005] 一部の例では、この方法は、ポインティングベクトルと地形推定との交点がロボットの前にあるかどうかをデータ処理ハードウェアによって決定すること、及びポインティングベクトルと地形推定との交点がロボットの前にある場合はその交点を標的位置としてデータ処理ハードウェアによって識別することをさらに含む。これらの例では、この方法は、ポインティングベクトルと地形推定との交点がロボットの背後にある場合、データ処理ハードウェアによって交点を反射してロボットの前の反射交点を決定すること、及びその反射交点を標的位置としてデータ処理ハードウェアによって識別することをさらに含み得る。加えて又は或いは、これらの例ではこの方法が、標的位置として交点を識別する前に、ロボットの現在位置とポインティングベクトル及び地形推定間の交点との間の第1の距離が閾値距離を満たさないことをデータ処理ハードウェアによって決定すること、及び移動済み交点を形成するためにデータ処理ハードウェアによってロボットにより近い中間位置に交点を移動することをさらに含むことができ、ロボットの現在位置と移動済み交点との間の第2の距離は閾値距離を満たす。
[0006] ロボットは、標的位置が障害物の背後にあるかどうかを決定するように構成され得る。ここでは、標的位置が障害物の背後にない場合は標的位置まで自律的にナビゲートするようにロボットが構成される。しかし標的位置が障害物の背後にある場合、障害物を回避することが可能かどうかを決定し、障害物を回避することが可能である場合は障害物を回避し標的位置までロボットを自律的にナビゲートするようにロボットが構成される。加えて、標的位置が障害物の背後にあり障害物を回避することが不可能である場合、標的位置までロボットが自律的にナビゲートされるのを妨げるようにロボットがさらに構成され得る。
[0007] 一部の実装形態では、少なくとも1つのイメージセンサが1つ又は複数の魚眼カメラ及び1つ又は複数の赤外線カメラを含む。少なくとも1つのイメージセンサはロボット上に配置することができ、オペレータ装置がネットワークによってイメージセンサと通信し得る。
[0008] 一部の例では、グラフィカルユーザインタフェースが、グラフィカルユーザインタフェース内に表示されている現在のシーンから離れる方向にロボットの周囲の環境の視野を旋回させるための旋回入力を受信し、現在のシーンから離れる方向にロボットの周囲の環境の視野を旋回させることによってプレビューシーンを表示するようにさらに構成される。グラフィカルユーザインタフェースは、ロボットによる物理的な動きを必要とすることなしにプレビューシーンを表示するように構成することができ、及び/又はグラフィカルユーザインタフェース内に表示される旋回グラフィックの選択を示す入力指示を受信することに応答して旋回入力を受信するように構成することができる。さらなる例では、現在のシーンから離れる方向にロボットの周囲の環境の視野を旋回させることが、現在のシーンから離れる方向に及びプレビューシーンの方向にロボットがターン操作を行うことをシミュレートする。
[0009] 本開示の別の態様は、ロボットを動作させるためのシステムを提供する。このシステムは、データ処理ハードウェア及びデータ処理ハードウェアと通信するメモリハードウェアを含む。メモリハードウェアは、データ処理ハードウェア上で実行されるとき、少なくとも1つのイメージセンサから画像データを受信することを含む操作をデータ処理ハードウェアに実行させる命令を記憶する。画像データはロボットの周囲の環境に対応する。この操作は、オペレータ装置の画面上で表示するためのグラフィカルユーザインタフェース(GUI)を実行することも含む。GUIは、画像データに基づいてロボットの周囲の環境のシーンを表示し、ロボットの周囲の環境のシーン内のピクセル位置の選択を示す入力指示を受信するように構成される。この操作は、ピクセル位置の選択に基づいてポインティングベクトルVを決定することも含む。ポインティングベクトルは、環境内でロボットをナビゲートするための移動方向を表す。この操作は、ロボットにウェイポイントコマンドWを伝送することも含む。ウェイポイントコマンドWはロボットによって受信されると、標的位置Tまでロボットをナビゲートさせる。標的位置は、ロボットのポインティングベクトルVと地形推定Gとの交点に基づく。
[0010] 本開示の実装形態は以下の任意選択的特徴の1つ又は複数を含み得る。一部の実装形態では、ロボットの周囲の環境のシーンが、画像データに基づく環境の前方シーンであって、画像データはロボット上に配置される左前カメラ及び右前カメラによって捕捉される、前方シーン、画像データに基づく環境の左側シーンであって、画像データはロボット上に配置される左側カメラによって捕捉される、左側シーン、画像データに基づく環境の右側シーンであって、画像データは移動ロボット上に配置される右側カメラによって捕捉される、右側シーン、画像データに基づく環境の後方シーンであって、後方シーンはロボット上に配置される後方カメラによって捕捉される、後方シーン、又は画像データに基づくロボットの下向きシーンであって、画像データはペイロードカメラ、左前カメラ、右前カメラ、左側カメラ、右側カメラ、及び後方カメラによって捕捉される、下向きシーンのうちの何れか1つを含む。
[0011] 一部の例では、この操作は、ポインティングベクトルと地形推定との交点がロボットの前にあるかどうかを決定すること、及びポインティングベクトルと地形推定との交点がロボットの前にある場合はその交点を標的位置として識別することをさらに含む。これらの例では、この操作は、ポインティングベクトルと地形推定との交点がロボットの背後にある場合、交点を反射してロボットの前の反射交点を決定すること、及びその反射交点を標的位置として識別することをさらに含み得る。加えて又は或いは、これらの例ではこの操作が、標的位置として交点を識別する前に、ロボットの現在位置とポインティングベクトル及び地形推定間の交点との間の第1の距離が閾値距離を満たさないことを決定すること、及び移動済み交点を形成するためにロボットにより近い中間位置に交点を移動することをさらに含むことができ、ロボットの現在位置と移動済み交点との間の第2の距離は閾値距離を満たす。
[0012] ロボットは、標的位置が障害物の背後にあるかどうかを決定するように構成され得る。ここでは、標的位置が障害物の背後にない場合は標的位置まで自律的にナビゲートするようにロボットが構成される。しかし標的位置が障害物の背後にある場合、障害物を回避することが可能かどうかを決定し、障害物を回避することが可能である場合は障害物を回避し標的位置までロボットを自律的にナビゲートするようにロボットが構成される。加えて、標的位置が障害物の背後にあり障害物を回避することが不可能である場合、標的位置までロボットが自律的にナビゲートされるのを妨げるようにロボットがさらに構成され得る。ロボットは四足ロボットを含み得る。
[0013] 一部の実装形態では、少なくとも1つのイメージセンサが1つ又は複数の魚眼カメラ及び1つ又は複数の赤外線カメラを含む。少なくとも1つのイメージセンサはロボット上に配置することができ、オペレータ装置がネットワークによってイメージセンサと通信し得る。
[0014] 一部の例では、グラフィカルユーザインタフェースが、グラフィカルユーザインタフェース内に表示されている現在のシーンから離れる方向にロボットの周囲の環境の視野を旋回させるための旋回入力を受信し、現在のシーンから離れる方向にロボットの周囲の環境の視野を旋回させることによってプレビューシーンを表示するようにさらに構成される。グラフィカルユーザインタフェースは、ロボットによる物理的な動きを必要とすることなしにプレビューシーンを表示するように構成することができ、及び/又はグラフィカルユーザインタフェース内に表示される旋回グラフィックの選択を示す入力指示を受信することに応答して旋回入力を受信するように構成することができる。さらなる例では、現在のシーンから離れる方向にロボットの周囲の環境の視野を旋回させることが、現在のシーンから離れる方向に及びプレビューシーンの方向にロボットがターン操作を行うことをシミュレートする。
[0015] 本開示の別の態様は、移動ロボットをナビゲートするための方法を提供する。この方法は、移動ロボット上のカメラによって捕捉されるロボット環境のシーン内のピクセル位置をデータ処理ハードウェアにおいて受信すること、及びそのピクセル位置及びカメラの較正情報からポインティングベクトルをデータ処理ハードウェアによって決定することを含む。受信されるピクセル位置は移動ロボットのオペレータによって選択される。この方法は、データ処理ハードウェアによって移動ロボットのポインティングベクトルを地形推定と組み合わせて交点を形成することをさらに含む。交点はロボット環境内の物理的位置を含む。この方法は、データ処理ハードウェアによって移動ロボットに物理的位置を伝送し、ロボット環境内の物理的位置に移動ロボットをナビゲートさせることをさらに含む。
[0016] 本開示の実装形態は以下の任意選択的特徴の1つ又は複数を含み得る。一部の実装形態では、シーンがi)移動ロボット上の左前カメラ及び右前カメラによって捕捉されるロボット環境の前方シーン、ii)移動ロボット上の左側カメラによって捕捉されるロボット環境の左側シーン、iii)移動ロボット上の右側カメラによって捕捉されるロボット環境の右側シーン、iv)移動ロボット上の後方カメラによって捕捉されるロボット環境の後方シーン、及びv)移動ロボットの上部に配置される仮想カメラによって捕捉されるロボット環境の下向きシーンの何れか1つである。
[0017] この方法の一部の例では、ポインティングベクトルを地形推定と組み合わせて交点を形成することが、移動ロボットと交点との間の距離が移動ロボットの距離閾値を上回るかどうかをデータ処理ハードウェアによって決定することを含む。この方法のこれらの例は、距離が移動ロボットの距離閾値を上回る場合、移動済み交点を形成するためにデータ処理ハードウェアによって交点を移動ロボットに近づけることをさらに含み、それにより移動ロボットと移動済み交点との間の短縮された距離が距離閾値以下になる。
[0018] この方法の他の例では、ポインティングベクトルを地形推定と組み合わせて交点を形成することは、交点が移動ロボットの背後にあるかどうかをデータ処理ハードウェアによって決定することを含む。この方法のこれらの例は、交点が移動ロボットの背後にある場合、データ処理ハードウェアによって移動ロボットの前に交点を反射して反射交点を形成することをさらに含む。ここでは、反射交点は移動ロボットのナビゲート先であるロボット環境内の別の物理的位置を含む。任意選択的に、この方法の他の一部の例は、移動ロボットと反射交点との間の距離が移動ロボットの距離閾値を上回るかどうかをデータ処理ハードウェアによって決定することをさらに含む。この方法のこれらの他の例は、距離が移動ロボットの距離閾値を上回る場合、移動済み交点を形成するためにデータ処理ハードウェアによって反射交点を移動ロボットに近づけることをさらに含み、それにより移動ロボットと移動済み交点との間の短縮された距離が移動ロボットの距離閾値以下になる。
[0019] この方法の一部の例では、ロボット環境のシーンが、移動ロボット上の第1のカメラによって捕捉されるロボット環境の第1のシーン及びロボット環境の第1のシーンと異なるロボット環境の少なくとも1つの第2のシーンを含む。移動ロボット上の少なくとも1つの第2のカメラによって捕捉されるロボット環境の少なくとも1つの第2のシーンは、移動ロボット上の第1のカメラと異なる。これらの例では、この方法が、ロボット環境の少なくとも1つの第2のシーンと共にロボット環境の第1のシーンをデータ処理ハードウェアによって表示することをさらに含む。この方法は、オペレータがロボット環境の第1のシーンとロボット環境の少なくとも1つの第2のシーンとを変更することに応じて、移動ロボットがナビゲートする方向をデータ処理ハードウェアによって変更することをさらに含む。
[0020] この方法の他の例ではシーンがロボット環境の一人称ビューであり、この方法が移動ロボットの上部に配置される仮想カメラによって捕捉されるロボット環境の下向きシーンと一緒にシーンをデータ処理ハードウェアによって表示することをさらに含む。この方法は、表示シーンの1つの中のピクセル位置の選択に応じて表示シーンの別のものの中にピクセル位置の選択をデータ処理ハードウェアによってミラーリングすることをさらに含む。
[0021] この方法の一部の例では、ロボット環境内の物理的位置を伝送することが、物理的位置を伴う位置コマンドを移動ロボットに伝送することを含む。任意選択的に、カメラは魚眼カメラ及び2つの赤外線カメラを有し得る。加えて、移動ロボットは4本の脚を有し得る。
[0022] 本開示の別の態様は、移動ロボットをナビゲートするためのシステムを提供する。このシステムは、データ処理ハードウェア及びデータ処理ハードウェアと通信するメモリハードウェアを含む。メモリハードウェアは、データ処理ハードウェア上で実行されるとき、移動ロボット上のカメラによって捕捉されるロボット環境のシーン内のピクセル位置を受信すること、及びそのピクセル位置及びカメラの較正情報からポインティングベクトルを決定することを含む操作をデータ処理ハードウェアに実行させる命令を記憶する。ピクセル位置は移動ロボットのオペレータによって選択される。データ処理ハードウェアによって実行される操作は、移動ロボットのポインティングベクトルを地形推定と組み合わせて交点を形成することをさらに含む。交点はロボット環境内の物理的位置を含む。データ処理ハードウェアによって実行される操作は、移動ロボットに物理的位置を伝送し、ロボット環境内の物理的位置に移動ロボットをナビゲートさせることをさらに含む。
[0023] 本開示の実装形態は以下の任意選択的特徴の1つ又は複数を含み得る。一部の実装形態では、シーンがi)移動ロボット上の左前カメラ及び右前カメラによって捕捉されるロボット環境の前方シーン、ii)移動ロボット上の左側カメラによって捕捉されるロボット環境の左側シーン、iii)移動ロボット上の右側カメラによって捕捉されるロボット環境の右側シーン、iv)移動ロボット上の後方カメラによって捕捉されるロボット環境の後方シーン、及びv)移動ロボットの上部に配置される仮想カメラによって捕捉されるロボット環境の下向きシーンの何れか1つである。
[0024] このシステムの一部の例では、ポインティングベクトルを地形推定と組み合わせて交点を形成する操作が、移動ロボットと交点との間の距離が移動ロボットの距離閾値を上回るかどうかを決定することを含む。この操作は、距離が移動ロボットの距離閾値を上回る場合、移動済み交点を形成するために交点を移動ロボットに近づけることをさらに含み、それにより移動ロボットと移動済み交点との間の短縮された距離が距離閾値以下になる。
[0025] このシステムの他の例では、ポインティングベクトルを地形推定と組み合わせて交点を形成する操作は、交点が移動ロボットの背後にあるかどうかを決定することを含む。この操作は、交点が移動ロボットの背後にある場合、移動ロボットの前に交点を反射して反射交点を形成することをさらに含む。ここでは、反射交点は移動ロボットのナビゲート先であるロボット環境内の別の物理的位置を含む。任意選択的に、このシステムの他の一部の例では、移動ロボットと反射交点との間の距離が移動ロボットの距離閾値を上回るかどうかを決定することをこの操作がさらに含む。この操作は、距離が移動ロボットの距離閾値を上回る場合、移動済み交点を形成するためにデータ処理ハードウェアによって反射交点を移動ロボットに近づけることをさらに含み、それにより移動ロボットと移動済み交点との間の短縮された距離が移動ロボットの距離閾値以下になる。
[0026] このシステムの一部の例では、ロボット環境のシーンが、移動ロボット上の第1のカメラによって捕捉されるロボット環境の第1のシーン及びロボット環境の第1のシーンと異なるロボット環境の少なくとも1つの第2のシーンを含む。移動ロボット上の少なくとも1つの第2のカメラによって捕捉されるロボット環境の少なくとも1つの第2のシーンは、移動ロボット上の第1のカメラと異なる。システムのこれらの例では、操作が、ロボット環境の少なくとも1つの第2のシーンと共にロボット環境の第1のシーンを表示することをさらに含む。この操作は、オペレータがロボット環境の第1のシーンとロボット環境の少なくとも1つの第2のシーンとを変更することに応じて、移動ロボットがナビゲートする方向を変更することをさらに含む。
[0027] このシステムの他の例ではシーンがロボット環境の一人称ビューであり、この操作が移動ロボットの上部に配置される仮想カメラによって捕捉されるロボット環境の下向きシーンと一緒にシーンを表示することをさらに含む。この操作は、表示シーンの1つの中のピクセル位置の選択に応じて表示シーンの別のものの中にピクセル位置の選択をミラーリングすることをさらに含む。
[0028] このシステムの一部の例では、ロボット環境内の物理的位置を伝送する操作が、物理的位置を伴う位置コマンドを移動ロボットに伝送することを含む。任意選択的に、カメラは魚眼カメラ及び2つの赤外線カメラを有し得る。加えて、移動ロボットは4本の脚を有し得る。
[0029] 本開示のさらに別の態様は、移動ロボットを「予旋回」するための方法を提供する。この方法は、移動ロボット上に配置される1つ又は複数の現実のカメラによって捕捉されるロボット環境の前方ビューの実画像をデータ処理ハードウェアにおいて受信することを含む。移動ロボットは前方の姿勢角度にあり、前方向を向いている。この方法は前方の姿勢角度から移動ロボットが右方向又は左方向を向いているターン済みの姿勢角度までターンするとき移動ロボットが旋回するプレビュー角度をデータ処理ハードウェアによって決定することをさらに含む。この方法は、仮想シーンカメラによって投射される仮想的な矩形上の点ごとに、個々の点が実画像内のピクセルに対応するかどうかをデータ処理ハードウェアによって決定すること、及び対応するピクセルを含むプレビューシーンをデータ処理ハードウェアによって表示することをさらに含む。表示されているプレビューシーンは、前方の姿勢角度からターン済みの姿勢角度まで移動ロボットが実際にターンすることなしに、右方向又は左方向にプレビュー角度の分だけターンされるロボット環境のビューである。
[0030] 本開示の実装形態は以下の任意選択的特徴の1つ又は複数を含み得る。一部の実装形態ではこの方法は、仮想的な矩形上の個々の点が実画像内のピクセルに対応する場合、対応するピクセルからの画像色を用いて個々の点にデータ処理ハードウェアによって着色することをさらに含む。この方法は、仮想的な矩形上の個々の点が実画像内の如何なるピクセルにも対応しない場合、データ処理ハードウェアによって個々の点を黒色に着色することをさらに含む。この方法は、着色済みの仮想的な矩形に基づいてプレビューシーンをデータ処理ハードウェアによってレンダリングすることをさらに含む。
[0031] この方法の他の例では、プレビュー角度を決定することが、前方の姿勢角度からターン済みの姿勢角度までターンするように移動ロボットを制御するためにオペレータによって与えられるユーザ入力に対応する仮想速度をデータ処理ハードウェアによって受信することを含む。この方法のこれらの例は、プレビュー角度を生成するためにデータ処理ハードウェアによって仮想速度を経時的に積分することをさらに含む。
[0032] この方法の一部の例は、前方の姿勢角度からターン済みの姿勢角度までターンするように移動ロボットを制御するためにユーザ入力をオペレータが与えることに応じてカウントダウンタイマをデータ処理ハードウェアによって開始することをさらに含む。この方法のこれらの例は、カウントダウンタイマがタイムアウトする前に、オペレータによって与えられるユーザ入力に基づいてロボット環境のビューをターンするプレビュー角度をデータ処理ハードウェアによって継続的に決定することをさらに含む。この方法のこれらの例は、カウントダウンタイマがタイムアウトするとき、プレビュー角度に等しい旋回角度をデータ処理ハードウェアによって移動ロボットに伝送し、前方の姿勢角度からターン済みの姿勢角度までの旋回角度の分だけ移動ロボットをターンさせることをさらに含む。
[0033] この方法の他の例では、ロボット環境の前方ビューの実画像が移動ロボット上に配置される左前カメラ及び右前カメラによって捕捉される。任意選択的に、カメラは魚眼カメラ及び2つの赤外線カメラを有し得る。加えて、移動ロボットは4本の脚を有し得る。
[0034] 本開示のまたさらに別の態様は、移動ロボットを「予旋回」するためのシステムを提供する。このシステムは、データ処理ハードウェア及びデータ処理ハードウェアと通信するメモリハードウェアを含む。メモリハードウェアは、データ処理ハードウェア上で実行されるとき、移動ロボット上に配置される1つ又は複数の現実のカメラによって捕捉されるロボット環境の前方ビューの実画像を受信することを含む操作をデータ処理ハードウェアに実行させる命令を記憶し、移動ロボットは前方の姿勢角度にあり、前方向を向いている。データ処理ハードウェアによって実行される操作は、前方の姿勢角度から移動ロボットが右方向又は左方向を向いているターン済みの姿勢角度までターンするとき移動ロボットが旋回するプレビュー角度を決定することをさらに含む。データ処理ハードウェアによって実行される操作は、仮想シーンカメラによって投射される仮想的な矩形上の点ごとに、個々の点が実画像内のピクセルに対応するかどうかを決定すること、及び対応するピクセルを含むプレビューシーンを表示することをさらに含む。プレビューシーンは、前方の姿勢角度からターン済みの姿勢角度まで移動ロボットが実際にターンすることなしに、右方向又は左方向にプレビュー角度の分だけターンされるロボット環境のビューである。
[0035] 本開示の実装形態は以下の任意選択的特徴の1つ又は複数を含み得る。一部の実装形態ではこの操作は、仮想的な矩形上の個々の点が実画像内のピクセルに対応する場合、対応するピクセルからの画像色を用いて個々の点に着色することをさらに含む。この操作は、仮想的な矩形上の個々の点が実画像内の如何なるピクセルにも対応しない場合、データ処理ハードウェアによって個々の点を黒色に着色することをさらに含む。この操作はさらに、レンダリングハードウェア、着色済みの仮想的な矩形に基づくプレビューシーン。
[0036] このシステムの他の例では、プレビュー角度を決定する操作が、前方の姿勢角度からターン済みの姿勢角度までターンするように移動ロボットを制御するためにオペレータによって与えられるユーザ入力に対応する仮想速度を受信することを含む。このシステムのこれらの例は、プレビュー角度を生成するために仮想速度を経時的に積分することをさらに含む。
[0037] このシステムの一部の例では、前方の姿勢角度からターン済みの姿勢角度までターンするように移動ロボットを制御するためにユーザ入力をオペレータが与えることに応じてカウントダウンタイマを開始することを操作がさらに含む。このシステムのこれらの例では、カウントダウンタイマがタイムアウトする前に、オペレータによって与えられるユーザ入力に基づいてロボット環境のビューをターンするプレビュー角度を継続的に決定することを操作がさらに含む。このシステムのこれらの例では、カウントダウンタイマがタイムアウトするとき、プレビュー角度に等しい旋回角度を移動ロボットに伝送し、前方の姿勢角度からターン済みの姿勢角度までの旋回角度の分だけ移動ロボットをターンさせることを操作がさらに含む。
[0038] このシステムの他の例では、ロボット環境の前方ビューの実画像が移動ロボット上に配置される左前カメラ及び右前カメラによって捕捉される。任意選択的に、カメラは魚眼カメラ及び2つの赤外線カメラを有し得る。加えて、移動ロボットは4本の脚を有し得る。
図面の説明
[0039]ロボットをナビゲートするためのシステムの一例のブロック図である。 [0040]ロボットをナビゲートするためにオペレータによって使用される携帯型装置の一例の概略図である。 [0041]本明細書に記載するシステム及び方法を使用して動作させることができるロボットの一例の概略図である。 [0041]本明細書に記載するシステム及び方法を使用して動作させることができるロボットの一例の概略図である。 [0041]本明細書に記載するシステム及び方法を使用して動作させることができるロボットの一例の概略図である。 [0041]本明細書に記載するシステム及び方法を使用して動作させることができるロボットの一例の概略図である。 [0041]本明細書に記載するシステム及び方法を使用して動作させることができるロボットの一例の概略図である。 [0042]ロボットをナビゲートするためのタッチツーゴーアプリケーションの一例のブロック図である。 [0042]ロボットをナビゲートするためのタッチツーゴーアプリケーションの一例のブロック図である。 [0043]ウェイポイントを決定するためのタッチツーゴーアプリケーションの方法の一例の図である。 [0043]ウェイポイントを決定するためのタッチツーゴーアプリケーションの方法の一例の図である。 [0043]ウェイポイントを決定するためのタッチツーゴーアプリケーションの方法の一例の図である。 [0043]ウェイポイントを決定するためのタッチツーゴーアプリケーションの方法の一例の図である。 [0043]ウェイポイントを決定するためのタッチツーゴーアプリケーションの方法の一例の図である。 [0043]ウェイポイントを決定するためのタッチツーゴーアプリケーションの方法の一例の図である。 [0043]ウェイポイントを決定するためのタッチツーゴーアプリケーションの方法の一例の図である。 [0043]ウェイポイントを決定するためのタッチツーゴーアプリケーションの方法の一例の図である。 [0044]ロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットであり、ロボットは障害物を回避する。 [0044]ロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットであり、ロボットは障害物を回避する。 [0044]ロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットであり、ロボットは障害物を回避する。 [0045]ロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットであり、ロボットは角を曲がる。 [0045]ロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットであり、ロボットは角を曲がる。 [0045]ロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットであり、ロボットは角を曲がる。 [0046]シーンを変更することによってロボットの移動方向を変更するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0046]シーンを変更することによってロボットの移動方向を変更するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0046]シーンを変更することによってロボットの移動方向を変更するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0046]シーンを変更することによってロボットの移動方向を変更するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0047]複数のシーンからあるシーンを選択することによってロボットの移動方向を変更するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0047]複数のシーンからあるシーンを選択することによってロボットの移動方向を変更するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0047]複数のシーンからあるシーンを選択することによってロボットの移動方向を変更するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0047]複数のシーンからあるシーンを選択することによってロボットの移動方向を変更するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0048]下向きシーンからロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0048]下向きシーンからロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0049]分割スクリーンを使用してロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0049]分割スクリーンを使用してロボットをナビゲートするためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0050]ロボットを「予旋回」するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0050]ロボットを「予旋回」するためにオペレータがタッチツーゴーアプリケーションの一例を使用するスクリーンショットである。 [0051]ロボットを「予旋回」するためのタッチツーゴーアプリケーションの方法の一例のブロック図である。 [0051]ロボットを「予旋回」するためのタッチツーゴーアプリケーションの方法の一例のブロック図である。 [0051]ロボットを「予旋回」するためのタッチツーゴーアプリケーションの方法の一例のブロック図である。 [0051]ロボットを「予旋回」するためのタッチツーゴーアプリケーションの方法の一例のブロック図である。 [0051]ロボットを「予旋回」するためのタッチツーゴーアプリケーションの方法の一例のブロック図である。 [0052]グラフィカルユーザインタフェース上で表示されるシーンの一例である。 [0052]予旋回プロセス中のロボット環境の一例である。 [0052]グラフィカルユーザインタフェース上で表示されるシーンの一例である。 [0052]予旋回プロセス中のロボット環境の一例である。 [0052]グラフィカルユーザインタフェース上で表示されるシーンの一例である。 [0052]予旋回プロセス中のロボット環境の一例である。 [0052]グラフィカルユーザインタフェース上で表示されるシーンの一例である。 [0052]予旋回プロセス中のロボット環境の一例である。 [0053]ロボットをナビゲートする方法に関する操作の構成例のフローチャートである。 [0054]ロボットを予旋回する方法に関する操作の構成例のフローチャートである。 [0055]ロボットを制御する方法に関する操作の構成例のフローチャートである。 [0056]本明細書に記載するシステム及び方法を実装するために使用することができるコンピューティングデバイスの一例の概略図である。
[0057] 様々な図面の中の同様の参照記号は同様の要素を示す。
詳細な説明
[0058] 図1は、ロボット300をナビゲートするためのシステム100を示し、オペレータ10は携帯型装置200を使用してロボット環境内でロボット300をナビゲートする。ロボット環境は、ロボット300が通り抜けることができる何らかの種類の地形に関連する空間領域を一般に指す。例えば地形は、建物、街路、歩道、公園、路地、階段、坂道、トンネル等を有する都市地形、道路、野原、丘、山、洞窟等を有する田園地形、洞窟、トンネル等を有する地下地形、又はその任意の組み合わせを含み得る。
[0059] ロボット300は、ロボット300を取り巻くロボット環境に関する情報並びにロボット環境内で動作することに関連する情報を集める。ロボット300は、ロボット300によって捕捉されるロボット環境の画像を含むこの情報の一部又は全てを携帯型装置200に送信する。次いで携帯型装置200は、ロボット300が動作しているロボット環境(この例では倉庫の内部)をオペレータ10が見ることができるようにオペレータ10に向けて画像を表示する。一部の例では、オペレータ10がロボット300の視点からロボット環境を見る。この「一人称」のエクスペリエンスはシステム100の一定の応用にとって有益であり得る。携帯型装置200はロボット環境301(図2)の画像をユーザインタフェース221(図2)上に表示し、オペレータ10は自身がロボット300をナビゲートしたいロボット環境301内の物理的位置(例えば標的位置T)に対応する画像内の位置の選択を示すナビゲーション入力(例えばウェイポイントコマンドW)を与えることができる。一部の例では、画像内の位置の選択を示すナビゲーション入力(例えばウェイポイントコマンドW)は、ロボット環境301のシーンがレンダリングされる元となる起源に対応する世界空間内の点として、並びにオペレータ10によって選択される画像内の位置に対応する世界空間内の方向として携帯型装置200からロボット300に送信される。例えば携帯型装置200は、携帯型装置200の画面220(図2)上でロボット環境の画像を表示するためにグラフィカルユーザインタフェース(GUI)221を実行することができ、オペレータ10は標的位置Tまでロボット300をナビゲートするために画像内の位置を触ることによってナビゲーション入力を与えることができる。さらなる例では、オペレータ10が物理的なボタン、マウス、ジョイスティック、又は他の任意の入力機構によってナビゲーション入力を与える。本明細書で使用するとき、ナビゲーション入力は標的位置T(例えば物理的位置)に対応する画像を用いた位置の入力指示の選択を指す。
[0060] ナビゲーション入力を受信することに応答し、携帯型装置200はロボット環境内の標的位置までナビゲートするようロボット300に指示する位置コマンドをロボット300に送信する。位置コマンドを受信することに応答して標的位置までナビゲートするとき、ロボット300は障害物(例えば柱)を回避する又は角を曲がる必要があり得る。ロボット300は、ロボット環境の制約を所与として標的位置までどのようにナビゲートするのかを計画することができる。一部のシナリオでは、ロボット300はオペレータ10によって選択された標的位置まで自らがナビゲートできないと決定し、その場合、携帯型装置200が(例えばGUI上で通知を表示すること及び/又は可聴警報を与えることによって)オペレータ10に知らせることができる。
[0061] ロボット300が標的位置に向けて移動するとき、ロボット300に対するロボット環境の特性が(例えば平らな地形から起伏の富んだ地形に)変化し得る。したがってロボット300は、ロボット環境内の変化を反映する更新済み画像データを含む更新済み環境情報を携帯型装置200に継続的に又は定期的に送信することができる。標的位置に向けてロボット環境を通り抜ける間のロボット300の進行状況をオペレータ10が見られるようにするために、携帯型装置200は更新済み画像データを表示することができる。
[0062] 一部の実装形態では、標的位置への到着時に標的位置にあるロボット300を示す目的地画像を表示するように携帯型装置200が構成される。次いでオペレータ10は、自身がロボット300をナビゲートしたいロボット環境内の新たな標的位置に対応する新たなナビゲーション入力を目的地画像内で与えることができる。上記の操作はオペレータ10がロボット300のナビゲーションを終える(例えばロボット300がロボット環境内の最終目的地に到着する)まで繰り返される。
[0063] ロボット300をナビゲートする際、ロボット環境内でロボット300をターンさせ、現在の姿勢角度から標的の姿勢角度へと変更する必要があり得る。オペレータ10は、自身がロボット300をロボット環境内で現在の姿勢角度から(例えば左又は右に)ターンさせたい標的方向に対応する画像内の方向をクリックする/触る。それに応答し、標的方向に対応する方向にターンされたビューの更新済み画像を携帯型装置200が表示する。これにより、ロボット300が現在の姿勢角度から標的の姿勢角度へとターンしている印象をオペレータ10に与える。標的方向に対応する方向のビューを表示する更新済み画像はロボットを現在の姿勢角度から実際にターンすること/移動させることなしに生じることができ、それによりオペレータ10が標的の姿勢角度の視点からロボット環境を更新済み画像内で見ることを可能にする。
[0064] 現実には、ロボット300は如何なるターン操作も直ちに実行せず、そのためロボット300の実際の姿勢角度はロボット環境内で現在の姿勢角度に固定されたままである。オペレータ10が方向をクリックする/触るのを止め、標的の姿勢角度において停止するまで携帯型装置200はビューを旋回し続ける。旋回角度が現在の姿勢角度と標的の姿勢角度とを分ける。
[0065] その後、携帯型装置200はロボット300に旋回コマンドを送信することができ、旋回コマンドはオペレータ10によって設定される旋回角度に基づいてロボット環境内で旋回操作を実行するようロボット300に命令する。ロボット環境についてのロボット300のビューを予旋回し、そのビューを携帯型装置200上で表示することは、ロボット300がターン操作を実行する前にロボット300をターンさせた最終結果をオペレータ10が見ることを可能にする即座のフィードバックをオペレータ10に与える。オペレータ10がコマンドを出す時点とロボット300がそのコマンドを実行する時点との間にレイテンシ又は遅延があるこの「棒と人参(stick and carrot)」の手法はシステム100の応用において有益であり得る。
[0066] 図2は、ロボット環境の方々にロボット300をナビゲートするためにオペレータ10によって使用される携帯型装置200の一例を示す。携帯型装置200は、ディスプレイ220を有するハウジング210及びディスプレイ220の周りに位置する複数のコントロール230を含む。図示のようにコントロール230はハウジング210の前端及び上端に位置し、ボタン230a、コントロールスティック230b、方向dパッド230c、及び上部ボタン230dを含む。携帯型装置200の前面にあるコントロール(例えばコントロールスティック230b)を操作するようにオペレータ10の親指が位置し、携帯型装置200の上端にあるコントロール(例えば上部ボタン230d)を操作するようにオペレータ10の人差し指が位置するように、ハウジング210はオペレータ10の両手で保持されるように形作られる。携帯型装置200は、オペレータ10の他の指で操作される位置において、携帯型装置200の裏側に位置する1つ又は複数の追加のコントロールを含むこともできる。
[0067] ディスプレイ(例えば画面)220は、ロボット300によって捕捉される画像データに基づくロボット環境の画像又はシーン222をオペレータ10に表示する。一部の例では、ディスプレイ220がシーン222をビデオフィードとして提示する。
[0068] 携帯型装置200は、処理装置240、記憶装置250(例えばメモリ装置)、及び通信インタフェース260をハウジング210内にさらに含む。図示の例では、オペレータ10が見るためのロボット環境のシーン222を提示するために、画面220上に表示するためのGUI221を処理装置240が実行する。携帯型装置200は図2に不図示の追加のコンポーネントを含み得る。処理装置240は、コンピュータ実行可能命令を実行する1つ又は複数のプロセッサ及びコンピュータ実行可能命令を記憶する関連メモリ(例えばRAM及び/又はROM)を含み得る。処理装置240が複数のプロセッサを含む実装形態では、プロセッサは分散式に又は個別式に実行することができる。処理装置240は、オペレーティングシステム242及びロボット環境内でロボット300をナビゲートするためのタッチツーゴーアプリケーション400(図4A)を実行することができる。一部の例では処理装置240が他のアプリケーション244を実行し、ウェブブラウザ等の他のアプリケーション244は携帯型装置200にとってネイティブでもネイティブでなくてもよく、その全てがコンピュータ可読命令として実装され得る。
[0069] 記憶装置250は、1つ又は複数のコンピュータ可読媒体(例えばハードディスクドライブ、ソリッドステートメモリドライブ、及び/又はフラッシュメモリドライブ)を含み得る。記憶装置250は、オペレーティングシステム242、他のアプリケーション244、及びタッチツーゴーアプリケーション400によって利用される任意の適切なデータを記憶することができる。通信インタフェース260は、ロボット環境内のロボット300と通信するように構成される1つ又は複数の装置を含む。一部の実装形態では、通信インタフェース260がネットワークによってロボット300と通信するように構成される。通信インタフェース260は有線通信又は無線通信を行うための1つ又は複数のトランシーバを含み得る。通信インタフェース260の例は、これだけに限定されないがIEEE 802.11無線規格を使用して通信を行うように構成されるトランシーバ、イーサネットポート、無線送信機、及びユニバーサルシリアルバス(USB)ポートを含み得る。
[0070] 図3A及び図3Bを参照し、ロボット300は胴部310、及びロボット環境内でロボット300を移動するために胴部310に連結されるモビリティシステム320を含む。ロボット300は、センサシステム340に通信可能に連結される制御システム330をさらに含む。制御システム330は、センサシステム340によって収集されるデータに基づいてロボット300がロボット環境内でどのように動くのかを決定する。ロボット300は、ロボット300の様々な動作を可能にするための電気的コンポーネント350、1つ又は複数の動力源360、及び1つ又は複数の通信リンク370をまたさらに含む。
[0071] ロボット300は、胴部310内に収納されるデータ処理ハードウェア312及びメモリハードウェア314も含む。データ処理ハードウェア312は、1つ又は複数の汎用プロセッサ又は専用プロセッサ(例えばデジタル信号プロセッサ、特定用途向け集積回路等)として動作することができる。データ処理ハードウェア312は、メモリハードウェア314内に記憶され、本明細書に記載のロボット300の動作をもたらすために実行可能なコンピュータ可読プログラム命令316を実行するように構成され得る。例えばプログラム命令316は制御システム330の動作をもたらすために実行可能とすることができ、制御システム330はモビリティシステム320及び電気的コンポーネント116の活性化及び非活性化を引き起こすように構成され得る。データ処理ハードウェア312はロボット300を動作させ、本明細書に記載の機能を含む様々な機能をロボット300が実行できるようにし得る。図示の例ではロボット300がデータ処理ハードウェア312及びメモリハードウェア314を実装するが、データ処理ハードウェア312及び/又はメモリはロボット300及び携帯型装置200と通信するリモートシステム190(図4B)上にあってもよい。同様に、データ処理ハードウェア312及び/又はメモリはロボット300及びリモートシステム190(図4B)にわたって分散されてもよい。
[0072] メモリハードウェア314は様々な種類の記憶媒体として存在し得る。例えばメモリハードウェア314は、データ処理ハードウェア312によって読み出し可能な又はアクセス可能な1つ又は複数のコンピュータ可読記憶媒体を含むことができ、又はかかるコンピュータ可読記憶媒体の形を取り得る。1つ又は複数のコンピュータ可読記憶媒体は、光学、磁気、有機、又は他のメモリ若しくはディスク記憶域等の揮発性及び/又は不揮発性記憶コンポーネントを含むことができ、かかる記憶コンポーネントはデータ処理ハードウェア312と完全に又は部分的に一体化され得る。一部の実装形態では、単一の物理装置(例えば1つの光学、磁気、有機、又は他のメモリ若しくはディスク記憶ユニット)を使用してメモリハードウェア314を実装することができる一方、他の実装形態では、有線通信又は無線通信によって通信し得る2つ以上の物理装置を使用してメモリハードウェア314を実装することができる。さらに、コンピュータ可読プログラム命令316に加え、メモリハードウェア314は幾つかある可能性の中で特に診断データ等の追加のデータを含み得る。
[0073] モビリティシステム320は、ロボット300が動作し物理的機能を行うことを可能にし得るロボット300のハードウェアを表す。幾つかの例として、モビリティシステム320はアクチュエータ、伸縮可能な脚(「脚」)、アーム、車輪、及び/又は他の機械的コンポーネントを含み得る。モビリティシステム320はロボット300の設計に依存し得る。さらに、モビリティシステム320はロボット300が実行するように構成される機能及び/又は作業に基づき得る。そのためロボット300の動作及び機能に応じて、ロボット300が利用するための様々なモビリティシステムが入手可能であり得る。一部の例では、モビリティシステム320のコンポーネントを追加し及び/又は除去するようにロボット300を構成することができ、それはユーザ及び/又は別のロボット装置からの支援を含み得る。例えばロボット300は最初に4本の脚で構成され、四足歩行装置として動作し得るが、4本の脚のうちの2本を取り外して2足歩行装置として動作するようにユーザ又はロボット300によって変更され得る。モビリティシステム320の他の例が含まれてもよい。
[0074] 図3Aに示す例では、モビリティシステム320のシステムが胴部310に連結される4本の脚322を含む。4本の脚322のそれぞれは、脚ジョイント328によって隔てられる上部分324及び下部分326を含む。それぞれの脚322の下部分326は足329で終わる。それぞれの脚の足329は任意選択的であり、脚322の1本又は複数本の下部分326の終端は車輪に連結され得る。ロボット300は重力方向に沿った垂直重力軸V、及びロボット300の分布質量の加重相対位置の合計がゼロになる点である質量中心CMを有する。一部の例ではZ軸Aが垂直重力軸Vと一致する。ロボット300は、ロボット300がとる特定の姿勢又はスタンスを定義するための、垂直重力軸Vg(すなわち、重力に関する固定参照フレーム)に関するCMに基づくポーズPをさらに有する。ロボット300の姿勢は、空間内のロボット300の姿勢角度又は角度位置により定義できる。脚322の胴部310に関する移動により、ロボット300のポーズP(すなわち、ロボットのCMの位置とロボット300の姿勢又は姿勢角度との組合せ)が変わる。
[0075] 幾つかの実装形態において、ロボット300は1つ又は複数の付属物をさらに含み、これは例えば胴部310上に配置され、胴部310に関して移動するように構成された関節腕である。関節腕は、5又はそれ以上の自由度を有し得る。さらに、関節腕は、マニピュレーションアーム又は単に付属物と互換的に呼ばれ得る。幾つかの例において、関節腕は、相互に対して、及び胴部にも対して回転可能な2つの部分を含む。他の例において、関節腕はそれより多いか又は少ない部分を含んでもよく、これらも本開示の範囲から逸脱しない。第一の部分は、第二の部分から関節腕ジョイントにより分離され得る。エンドエフェクタは、マニピュレータヘッドと互換的に呼ばれ得、関節腕の第二の部分の先端に連結され得、物体を握り/把持するための1つ又は複数のアクチュエータを含み得る。
[0076] モビリティシステム320及び/又はセンサシステム340間のリンク等、制御システム330はロボット300の部分間のリンクとして働く。一部の例では、制御システム330がロボット300と、ロボット300をナビゲートするためにオペレータ10によって使用される携帯型装置200(図2)等の別のコンピューティングデバイスとの間のインタフェースとして働く。従って制御システム330は、ロボット300と携帯型装置200を使用するオペレータ10との間のインタフェースとして働き得る。図3Cは、トラバーサルシステム380及び知覚システム390を含む制御システム330の一例を示す。トラバーサルシステム380は、ロボット環境の方々でロボット300を調整すること及び/又は移動させることを担う。知覚システム390はセンサシステム340(感覚システム/カメラ)から画像データ又はセンサデータ342を受信し、周囲のロボット環境内の障害物を示す1つ又は複数のマップ394を生成する。
[0077] ロボット300がロボット環境の方々を移動するとき、トラバーサルシステム380は地形を分析し、ロボット300の運動軌道を計画し、及び/又は様々な動きを行うようにロボット300に指示することができる。ロボット300又はロボット環境に対する衝突及び/又は損傷を回避しながらロボット環境を成功裏に通り抜けることを試みるために、トラバーサルシステム380はロボット300の様々なシステムを使用することができる。
[0078] 一部の実装形態では、図3Cに示すようにトラバーサルシステム380が少なくとも1つのコントローラ382、経路生成器384、ステッププランナ/ロケータ386、及び胴部プランナ388を含む。トラバーサルシステム380は、センサシステム340及び知覚システム390と通信するように構成される。
[0079] コントローラ382は、ロボット300のシステム(例えばトラバーサルシステム380、知覚システム390等)からの入力又はフィードバック並びに携帯型装置200によるオペレータ10からの入力に基づいてロボット環境の方々を通り抜けるようにロボット300の動きを制御するよう構成される。かかる動きは、ポーズ間の動き及び/又はロボット300の挙動を含み得る。例えばコントローラ382は様々な足取りパターン、脚のパターン、胴部の動きパターン、又はビジョンシステムの検知パターンを制御する。ここでは、コントローラ382はロボット300のシステム(例えばトラバーサルシステム380、知覚システム390等)から又はオペレータ10から与えられる動きを実行するためにデータ処理ハードウェア312及び/又はメモリハードウェア314と通信するように構成される。
[0080] 一部の例では、コントローラ382が複数のコントローラ382を含み、コントローラ382のそれぞれは固定された歩調を有する。固定された歩調とは、脚322を進めること又は振ることに関する固定されたタイミングを指す。例えばコントローラ382は特定の頻度(例えば250ミリ秒、350ミリ秒刻み等)で脚322を動かす(例えば歩を進める)ようにロボット300に命令する。各コントローラ382が固定された歩調を有する複数のコントローラ382により、ロボット300はコントローラ382を切り替えることによって可変のタイミングを経験し得る。一部の実装形態では、ロボット300がロボット環境を通り抜けるとき、ロボット300が固定歩調コントローラ382を継続的に切り替える/選択する(例えば3ミリ秒ごとにコントローラ382を再選択する)。
[0081] トラバーサルシステム380は、コントローラ382のためのステップ計画に基づいてコントローラ382を選択することができる。トラバーサルシステム380は、歩調(すなわち所与のコントローラに関してプログラムされる動作速度)及びロボット環境の方々でロボット300を動かすための少なくとも1つの操縦コマンドに基づいて各コントローラ382のステップ計画を生成することができる。ステップ計画とは、コントローラ382の歩調に基づきロボット環境の周囲の地形内に障害物又は衝突領域がない場合にロボット300が歩を進める場所(すなわち足329又は脚322の遠位端の配置位置)に対応する無制約の足位置のマップ(無制約マップと呼ぶ)を指す。ステップ計画を所与とし、トラバーサルシステム380はステップ計画を知覚システム390によって生成される制約付きマップ394と比較する。その比較に基づいてトラバーサルシステム380はコントローラ382を選択し、選択されるコントローラのステップ計画(すなわち制約付きマップ394を実現するために最小量の逸脱を必要とするステップ計画)は、制約付きマップ394内で識別される制約の最小量違反する。逸脱が最も少ないコントローラ382を選択することにより、トラバーサルシステム380はロボット300が障害物又は衝突領域を回避するために最も少ない調節を必要とすることを確実にし得る。
[0082] 一部の実装形態では、トラバーサルシステム380がステップ計画と制約付きマップ394との間の関係に基づいて各コントローラ382にスコアを付け、最適なスコアを有するコントローラ382を選択する。例えばトラバーサルシステム380は、制約付きマップ394を実現するための逸脱が最も少ないステップ計画を有するコントローラ382に相当する最も低いスコアを有するコントローラ382を選択する。一部の例ではスコアは、ステップ計画と制約付きマップ394との間の関係に加え、コントローラ382のためのソフト制約又は条件に基づくコスト関数に対応する。トラバーサルシステム380は、スコア付け及び/又は選択の前に特定のコントローラ382を除外する条件を用いて構成することもできる。条件の一部の例は、地形との所望の接触が振り足の位置に基づいて実現可能かどうか、又は通り抜け中に特定のステップ高が必要かどうかを含む。一部の構成ではコスト関数が様々な条件に重みを適用し、ステップ計画と制約付きマップとの間の逸脱が最重要の条件である。
[0083] 一部の例では、メモリハードウェア314がトラバーサルシステム380に関する動き又は動きの制約をロボット300上でローカルに記憶する。他の例では、これらの動き又は制約がトラバーサルシステム380によって遠隔的に記憶され及び/又はアクセスされる(図4Bに関して以下で説明する)。
[0084] 図3Cにて続けるが、経路生成器384はロボット300の水平運動を決定するように構成される。例えば水平運動は、ロボット300の並進運動及び/又はヨーを指す。経路生成器384は、センサデータ342に基づいてロボット300の周囲のロボット環境内の障害物を決定する。経路生成器384はステッププランナ/ロケータ386に障害物を伝達し、それによりステッププランナ/ロケータ386はロボット300の脚322の足取りの配置(例えば脚322の遠位端/終端を配置する位置又は足329を配置する位置)を明らかにすることができる。ステッププランナ/ロケータ386は、知覚システム390からの入力を使用して足取りの配置(すなわちロボット300が歩を進めるべき位置)を生成する。
[0085] 胴部プランナ388は、制約付きマップ394(又は地形マップ)、及びステッププランナ/ロケータ386からの足取りの配置、及び1組の制約等の入力に基づいてロボット300の高さ及びピッチを決定する。一部の実装形態では、ロボット300の高さ及びピッチを決定するために、胴部プランナ388は入力に基づく1組の制約を満たすロボット300用の最適な軌道を決定するように構成される二次計画法軌道プランナである。
[0086] 一部の例では、知覚システム390はロボット環境の周囲の地形のセンサデータ342に基づいてマップを生成するマップ生成器392を含む。生成済みのマップに基づき、知覚システム390はロボット300のための(例えばロボット300のトラバーサルシステム380が実行するための)制約付きマップ394を生成する。知覚システム390は、概して制約付きマップ394又は制約付きマップ394の一部(例えば衝突/非衝突領域)を(例えばトラバーサルシステム380のステッププランナ/ロケータ386を有する)トラバーサルシステム380に伝達する。ステッププランナ/ロケータ386は、ロボット環境を通り抜ける間の衝突を回避する運動軌道を計画するように構成されるロボット300の軌道プランナ(運動計画とも呼ぶ)を指す。
[0087] 一部の実装形態では、マップ生成器392が不完全なマップを生成し、センサデータ342の性質に基づいてセンサデータ342のギャップを埋めるように構成される。換言すれば、知覚システム390のマップ生成器392は可視的な地形について収集されるセンサデータ342から妨害地形(推論地形とも呼ぶ)に関する詳細を推論する。センサデータ342に基づき、マップ生成器392は欠落したセンサデータが平滑な地形又は平らな地形に対応すると見なすようにプログラムされる。遠くのオブジェクトに隣接する近くのオブジェクトをセンサデータ342が示す場合、マップ生成器392はその遠近コントラストがロボット環境内のセンサシステム340のオクルージョンによって生じると見なす。オクルージョンが生じたとマップ生成器392が見なす場合、センサデータ342のギャップを平らな地形としてマッピングすることによってマップ生成器392がそれらのギャップを埋める。対照的に、センサデータ342が遠近コントラストを示さない場合、マップ生成器392は欠落したセンサデータ342がセンサシステム340による不十分なビジョンに起因すると見なし、欠落したセンサデータ342を平滑な地形としてマップする。
[0088] センサシステム340は、幾つかある可能性の中で特に力覚センサ、近接センサ、運動センサ、負荷センサ、位置センサ、触覚センサ、深度センサ、超音波領域センサ、及び赤外線センサ等の1つ又は複数のセンサを含む。ロボット環境とのロボット300の適切な相互作用並びにロボット300のシステムの動作のモニタリングを可能にするために、センサシステム340はセンサデータをデータ処理ハードウェア312に与えることができる。センサデータは、ロボット300の制御システム330及び/又は計算システムによるモビリティシステム320及び電気的コンポーネント350の活性化及び非活性化のための様々な要因を評価する際に使用され得る。
[0089] センサシステム340は、ロボット300の動作を決定するために制御システム330及び/又は計算システム(例えば携帯型装置200上で実行されるタッチツーゴーアプリケーション400を使用してロボット300をナビゲートするオペレータ10)が使用するための、ロボット300のロボット環境を示す情報を提供することができる。例えばセンサシステム340は環境の地形又は付近のオブジェクトの位置に対応するデータを捕捉することができ、かかるデータは環境の認識及びナビゲーション等を支援し得る。センサシステム340はロボット環境をリアルタイムでモニタし、ロボット300の環境の障害物、地形の要素、気象条件、気温、及び/又は他のパラメータを検出することができる。
[0090] さらにロボット300は、ロボット300の様々なコンポーネントの状態をモニタすることができるセンサを含む、ロボット300の状態を示す情報を受信するように構成される他のセンサを含み得る。センサはロボット300のシステムの活動を測定し、伸縮可能な脚、アーム、又はロボット300の他の機械的特徴及び/又は電気的特徴の動作等、ロボット300の様々な特徴の動作に基づく情報を受信することができる。センサシステム340によって与えられるセンサデータは、ロボット300の制御システム330が動作の誤りを決定すること並びにロボット300のコンポーネントの全体的な機能をモニタすることを可能にし得る。
[0091] 例えば制御システム330は、幾つかある情報の中で特に、動作中のロボット300の安定性を決定するためのセンサデータ並びに出力レベル、通信活動、修理が必要なコンポーネントに関係する測定値を使用することができる。構成の一例として、ロボット300はロボット300の動作の状態に関係するセンサデータを提供するためのジャイロスコープ、加速度計、及び/又は他のあり得るセンサを含み得る。さらにセンサシステム340は、ロボット300が現在動作している可能性がある歩容等の機能の現在の状態をモニタすることもできる。加えてセンサシステム340は、ロボットの所与のロボット脚とロボットの質量中心との間の距離を測定することができる。センサシステム340の他の使用例も存在し得る。
[0092] 図3A及び図3Dに示す例では、ロボット300が5台のカメラ、つまり左前カメラ344a、右前カメラ344b、左側カメラ344c、右側カメラ344d、及び後方カメラ344eを含む。他の例では、ロボット300が6台以上(例えば7台)のカメラ又は4台以下(例えば3台)のカメラを有し得る。例えばロボット300は、ロボットに搭載される1つ又は複数のペイロードカメラ344をさらに含むことができる。一例では、ペイロードカメラがリングカメラを含む。カメラ344のそれぞれは、カメラ344の検知範囲又は検知領域を定める、「ビュー」と単純に呼ばれる対応する視野を有する。カメラ344は胴部310の周囲に配置される。
[0093] 図3Dを特に参照し、胴部310は左右の方向に横に伸びるX軸A及び前後の方向に縦に伸びるY軸Aを有する。左前カメラ344aが右前方向を指し、右前ビュー349bを捕捉するように、左前カメラ344aはY軸Aに対して斜めにあり胴部310上に配置される。例えば左前カメラ344aは胴部310の左前部分上に位置する。右前カメラ344bが左前方向を指し、左前ビュー349aを捕捉するように、右前カメラ344bはY軸Aに対して斜めにあり胴部310上に配置される。例えば左前カメラ344aは胴部310の左前部分上に位置する。左前カメラ344a及び右前カメラ344bのこの構成により、右前カメラ344bから左前ビュー349aまでの光線R及び左前カメラ344aから右前ビュー349bまでの第2の光線Rを書く場合、結果として生じる光線R及びRは図示のように互いに交差する。そのため、この構成を「交差カメラ」構成と呼ぶのが便利であり得る。
[0094] 左側カメラ344cが左方向を指し、左側ビュー349cを捕捉するように、左側カメラ344cはX軸Aに揃えられ、胴部310上に配置される。例えば左側カメラ344cは胴部310の左側に配置される。右側カメラ344dが右方向を指し、右側ビュー349dを捕捉するように、右側カメラ344dはX軸Aに揃えられ、胴部310上に配置される。例えば右側カメラ344dは胴部310の右側に配置される。後方カメラ344eが後方を指し、後方ビュー349eを捕捉するように、後方カメラ344eはY軸Aに揃えられ、胴部310上に配置される。例えば後方カメラ344eは胴部310の後部に位置する。
[0095] 一部の例では、ロボット300が個々の左前ビュー349a及び右前ビュー349bよりも大きい前方ビュー349fへと、左前ビュー349a及び右前ビュー349bを連結し又は「ステッチ」する。より広がった前方ビュー349fにより、ロボット300は障害物及び他の制約等の自らの前にあるものについてのより優れた認識を有することができ、ロボット300は大体の場合前に移動するのでかかる前方ビュー349fを作成することは特に有利である。図示のように左前ビュー349aの一部と右前ビュー349bの一部とが重複する場合があり、かかる重複はビューをステッチする際に有用であり得る。別の例では、ロボット300が左前ビュー349a、右前ビュー349b、左側ビュー349c、右側ビュー349d、後方ビュー349eを連結して、ロボット300の周囲の360度ビューにほぼ等しい周辺ビューを形成する。
[0096] 図3Aに示す例では、カメラ344のそれぞれが3台の個別のカメラを含む。参照し易いように、3台のカメラの各構成を「カメラトリプレット」と呼ぶ。カメラ344の他の例は、さらに多くの(例えば4台の)又はさらに少ない(例えば2台の)個別のカメラを含み得る。カメラトリプレット344を構成するカメラの例は、これだけに限定されないが立体カメラ、走査型光検知測距(LIDAR)センサ、走査型レーザ検出測距(LADAR)センサ、及び赤外線カメラを含む。一例として、カメラトリプレット344は1台の魚眼カメラ346及び2台の赤外線カメラ348、348a~bを含む。魚眼カメラ346は幅広の軸及び狭い軸を有し、そのレイアウトは様々なカメラトリプレットについて異なる。
[0097] 図3A及び図3Eを参照し、左側、右側、及び後方のカメラトリプレット344c~eに関して、魚眼カメラ346c~eのレイアウトはX軸A及びY軸Aに概して揃えられる水平方向の幅広の軸、及びZ軸Aに概して揃えられる垂直方向の狭い軸を有する。図3Eに示すように、このレイアウトは垂直視野(V)よりも広い水平視野(V)を有する矩形に似た視野(すなわち左側ビュー349c、右側ビュー349d、及び後方ビュー349e)をもたらす。
[0098] 左前カメラトリプレット344a及び右前カメラトリプレット344bに関して、魚眼カメラ346a、346bのレイアウトは水平方向に狭い軸を有し、垂直方向に幅広の軸を有する。図3Eに示すように、このレイアウトは垂直視野(V)よりも狭い水平視野(V)を有する矩形に似た視野(すなわち左前ビュー349a及び右前ビュー349b)をもたらす。前方ビュー349f(すなわち左前ビュー349aと右前ビュー349bとを組み合わせた結果)は正方形に似る。
[0099] 赤外線カメラ348(図3A)は赤外光を検出する。それぞれの赤外線カメラ348は、パターンを有さない場合がある面上に赤外光のパターンを放つプロジェクタを含む。放たれるパターンはオブジェクトの面に反射し、赤外線カメラ348によって検出される。このようにして、赤外線カメラ348はテクスチャを有さないオブジェクト上のテクスチャを「見る」ことができる。
[0100] センサを使って視野を(例えば右前カメラ344bを使って左前ビュー349aを)測量するとき、センサシステム340が視野に対応するセンサデータ342を生成する。一部の例では、センサデータ342が三次元体積イメージセンサによって生成される三次元体積点群に対応する画像データを含む。加えて又は或いは、ロボット300がロボット環境の方々を移動しているとき、センサシステム340は(例えば慣性測定ユニットによって測定される)慣性測定データを含むロボット300のポーズデータを集める。一部の例では、ポーズデータがロボット300に関する運動学的データ及び/又は姿勢角度データを含む。センサデータ342により、知覚システム390はロボット環境10の周囲の地形に関する制約付きマップ394等のマップを生成することができる。
[0101] ロボット環境に関係する画像データ、ポーズデータ、慣性データ、運動学的データ等、センサシステム340によって収集されるセンサデータ342はロボット300のトラバーサルシステム380(例えばデータ処理ハードウェア312及びメモリハードウェア314)に伝達することができる。一部の例では、センサシステム340がセンサデータ342を集め(例えばメモリハードウェア314又は図4Bのリモートリソース192のメモリハードウェア196内に)記憶する。他の例では、センサシステム340がセンサデータ342をリアルタイムで集め、生の(すなわち未処理の)センサデータ342を記憶することなしにセンサデータ342を処理する。さらに他の例では、トラバーサルシステム380及び/又はリモートリソース192(図4B)が処理済みのセンサデータ342及び生のセンサデータ342の両方を記憶する。
[0102] 図3Bのロボットアーキテクチャの例では、データ処理ハードウェア312及びメモリハードウェア314がロボット300の中心を成し、そのためロボット300の様々なシステムがハードウェア(例えば制御システム330、センサシステム340、トラバーサルシステム380、及び知覚システム390)を使用する際に共用することができる。一部の構成では、ロボット300の1つ又は複数のシステム(例えば制御システム330、センサシステム340、トラバーサルシステム380、及び/又は知覚システム390)が(例えばデータ処理ハードウェア312及びメモリハードウェア314と通信する)独自の専用ハードウェアを有する。
[0103] 図3Bを参照し、ロボット300はロボット300の様々なコンポーネント/システムに動力を与えるように構成される1つ又は複数の動力源360を含み得る。あり得る動力源の中で、ロボット300は油圧系統、電気系統、電池、及び/又は他の種類の動力源を含み得る。解説の一例として、ロボット300は有線接続及び/又は無線接続によってコンポーネント/システムに動力を供給するように構成される1つ又は複数の電池を含み得る。例の中で、モビリティシステム320及び電気的コンポーネント350のコンポーネントはそれぞれ異なる動力源に接続することができ、又は同じ動力源によって動力を与えられ得る。ロボット300のコンポーネントは複数の動力源に接続してもよい。
[0104] 構成例の中で、ロボット300に動力を与えるためにガソリンエンジン等の任意の種類の動力源が使用され得る。さらに動力源360は、外部動力源への有線接続、無線充電、燃焼、又は他の例等の様々な種類の充電を使用して充電することができる。他の構成も可能であり得る。加えて、ロボット300は流体動力を使用してモビリティシステム320に動力を供給するように構成される油圧系統を含むことができる。ロボット300のコンポーネントは、作動液が油圧系統の全体を通して例えば様々な油圧モータ及び油圧シリンダに送られることに基づいて動作し得る。ロボット300の油圧系統は小管、たわみ管、又はロボット300のコンポーネント間の他の接続路によって大きい力を伝えることができる。ロボット300内には他の動力源が含まれてもよい。
[0105] 電気的コンポーネント350は、例えば電荷又は電気信号を処理し、転送し、提供することができる様々なコンポーネントを含み得る。あり得る例の中で、電気的コンポーネント350はロボット300の動作を可能にするための電線、回路、及び/又は無線通信送受信機を含み得る。電気的コンポーネント350は、ロボット300が様々な動作を行えるようにするためにモビリティシステム320と相互動作することができる。電気的コンポーネント350は、動力源360からの動力を例えばモビリティシステム320のコンポーネントに与えるように構成され得る。さらにロボット300は電気モータを含むことができる。電気的コンポーネント350の他の例も存在し得る。
[0106] 一部の実装形態では、ロボット300が情報を送信及び/又は受信するように構成される通信リンク370も含み得る。通信リンク370は、ロボット300の様々なコンポーネント/システムの状態を示すデータを伝送することができる。例えばセンサシステム340によって読み込まれる情報が通信リンク370によって別個のコンピューティングデバイス(例えば図2の携帯型装置200)に伝送され得る。データ処理ハードウェア312、メモリハードウェア314、制御システム330、モビリティシステム320、動力源360、及び/又は電気的コンポーネント350の完全性又は正常性を示す他の診断情報が外部装置(例えばロボット300をナビゲートするためにオペレータ10によって使用される図2の携帯型装置200)に通信リンク370を介して伝送され得る。
[0107] 一部の実装形態では、ロボット300はデータ処理ハードウェア312によって処理される情報を通信リンク370において受信する。受信される情報は、例えばプログラム命令316の実行中にデータ処理ハードウェア312によってアクセス可能なデータを示し得る。さらに、受信される情報はモビリティシステム320又は電気的コンポーネント350の挙動に影響し得る制御システム330の側面を変更する場合がある。一部の事例では、受信される情報は特定の情報片(例えばロボット300のコンポーネント/システムの1つ又は複数の動作状態)を要求するクエリを示し、データ処理ハードウェア312は後にその特定の情報片を通信リンク370から送り返すことができる。
[0108] 通信リンク370の例は、如何なる物理的配線もなしにロボット300を外部装置(例えばロボット300をナビゲートするためにオペレータ10によって使用される図2の携帯型装置200)に接続するための無線接続を含む。無線接続の一部の例はCDMA、EVDO、GSM/GPRS、4G電気通信(WiMAX又はLTE等)、又は5G電気通信等のセルラ接続を利用することができる。或いは又は加えて、無線接続は無線ローカルエリアネットワーク(WLAN)にデータを伝送するためのWi-Fi接続を利用することができる。一部の実装形態では、無線接続が赤外線リンク、Bluetooth、又は近距離無線通信(NFC)装置上で通信することもできる。通信リンク370の他の例は、無線接続に加えて又はその代わりに有線接続を含み得る。これらの例では、ロボット300が通信リンク370を外部装置(例えばロボット300をナビゲートするためにオペレータ10によって使用される図2の携帯型装置200)にインタフェースするための1つ又は複数のポートを含み得る。
[0109] 図3A~図3Eに示すロボット300は例示目的であり、本明細書の開示の範囲から逸脱することなしにさらに多くの又は少ないコンポーネントを含み得ることに留意されたい。ロボット300の様々なコンポーネントは、有線接続又は無線接続等を含む任意のやり方で接続され得る。さらに一部の例では、ロボット300のコンポーネントが単一の物理エンティティ上ではなく複数の別個の物理エンティティ上に配置され得る。ロボット300の他の構成例も存在し得る。
[0110] 図3A~図3Eに関して上記で説明したロボット300及びその例は、本明細書に記載の動作を実行するように構成されるロボット装置の一例を表す。加えてロボット300は、自律的に、半自律的に、及び/又は(例えば携帯型装置200経由で)オペレータ10によって与えられる方向を使用して動作するように構成されてもよく、幾つかある例の中で特に人型ロボット又は四足ロボット(例えば犬)等の様々な形で存在し得る。さらにロボット300は、幾つかある呼称の中で特にロボット装置、移動ロボット、又はロボットと呼ぶこともできる。
[0111] 図4Aを参照し、携帯型装置200上で実行される(例えば処理装置240(例えば携帯型装置200のデータ処理ハードウェア240)上で実行される)タッチツーゴーアプリケーション400がロボット環境内の標的位置T(例えば物理的位置)又はオペレータ10がロボット300をナビゲートしたい場所の「ウェイポイント」を決定する。センサシステム340(図3B及び図3C)から、タッチツーゴーアプリケーション400はロボット300の画像データ342、カメラ地点/位置404、及び地形推定406を受信する。図3Dに関して上記で説明した魚眼カメラ346等のロボット300上の1つ又は複数のカメラが画像データ342を捕捉することができる。画像データ342は、カメラによって測量/捕捉される1つ又は複数の視野(例えば図3Dの前方ビュー349f)に対応する。携帯型装置200は、ディスプレイ220上に画像データ342を画像又はシーン222としてレンダリングするためにGUI221を実行し、それによりオペレータ10はロボット300の視点からロボット環境のビューを見る。オペレータ10は、自身がロボット300をナビゲートしたいロボット環境内の物理的位置又は標的位置Tに対応するシーン222内の位置を対象とするナビゲーション入力(例えば入力指示)を与える。参照し易くするために、標的位置に対応するシーン222内の位置は「ピクセル位置」224と呼ぶ場合がある。
[0112] ピクセル位置224及び入力342、404、406から、タッチツーゴーアプリケーション400がウェイポイントW(以下でより詳細に説明する)を決定し、ウェイポイントWをトラバーサルシステム380(図3C)に与える。例えばタッチツーゴーアプリケーション400は、ウェイポイントを伴う位置コマンドをロボット300に伝送する。ここでは、ウェイポイントを伴う位置コマンドがウェイポイントコマンドに対応し得る。次いでトラバーサルシステム380は、図3Cに関して上記で説明したようにセンサシステム340及び知覚システム390(図3C)からの入力と共にウェイポイントWを使用してウェイポイントWまでロボット300を制御しナビゲートする。
[0113] 図4Bを参照し、システム100はネットワークコンポーネントを含み得る。例えばトラバーサルシステム380は、ネットワーク180を介してリモートシステム190と通信する。リモートシステム190は、リモートデータ処理ハードウェア194及びリモートメモリハードウェア196等のリモートリソース192を含むサーバ又はクラウドベース環境であり得る。一部の実装形態では、リモートリソース192を使用して動き又はトラバース制約がリモートシステム190上に記憶され及び/又はリモートシステム190上で処理される。制約はネットワーク180を介してロボット300のトラバーサルシステム380に伝達される。さらに他の例では、トラバーサルシステム380に関係する様々な出力が(例えばリモートシステム190によって)遠隔的に及び(例えばメモリハードウェア314(図3B)によって)ローカルに処理され及び/又は記憶される。タッチツーゴーアプリケーション400によって決定されるウェイポイントWは、ネットワーク180によって(例えばウェイポイントコマンドとして)ロボット300に伝送され得る。
[0114] 図5A~図5Cに関して、ロボット環境内でロボット300を操縦するためにオペレータ10によるナビゲーション方向入力を決定するために、タッチツーゴーアプリケーション400がピクセル位置224の水平方向位置及び垂直方向位置を使用する(図5A)。水平方向位置及び垂直方向位置は、シーン222内のピクセル位置224の水平座標及び垂直座標にそれぞれ関連し得る。オペレータ10によって与えられるナビゲーション方向入力はポインティングベクトルVによって表すことができる(図5B及び図5C)。したがって、タッチツーゴーアプリケーションはシーン222内のピクセル位置224の選択に基づいてポインティングベクトルVを決定することができ、ポインティングベクトルVは環境301内でロボット300をナビゲートするための移動方向を表す。ポインティングベクトルVは、シーン222に対応する画像データ242を捕捉する少なくとも1台のカメラ344のカメラ位置404等の較正情報にさらに基づき得る。タッチツーゴーアプリケーション400は、ポインティングベクトルVをロボット300の地表面推定Gと組み合わせて、ポインティングベクトルVと地表面推定G(図5D)との交点I(図5D)を見つけ出す。図5Dに示すようにポインティングベクトルVと地表面推定Gとの交点Iがロボット300の前にある場合、タッチツーゴーアプリケーション400が交点Iの位置をウェイポイント(例えば標的位置)としてロボット300に送信/伝送し、そのウェイポイントまでロボット300を(例えば自律的に)ナビゲートさせる。この例では、ロボット300の現在位置と交点との間の距離が閾値距離(例えば4メートル)を満たす(例えば閾値距離以下である)場合、タッチツーゴーアプリケーション400が交点Iを標的位置として識別することができる。本明細書で使用するとき、アプリケーション400によってロボット300に送信されるウェイポイントは、ウェイポイントに関連する標的位置までナビゲートするようロボット300に命令するウェイポイントコマンドWに対応する。
[0115] 任意選択的に、交点Iに基づく実際の「ウェイポイント」を送信する代わりに、携帯型装置200上で実行されるアプリケーション400は、シーン222に対応する画像データ242を捕捉する少なくとも1台のカメラ344の起源に対応する世界空間内の点を含むウェイポイントコマンドW、及びシーン222内のピクセル位置224の選択に基づく世界空間内のポインティングベクトルVを送信する。このシナリオでは、世界空間内の点及びポインティングベクトルVを単に含むウェイポイントコマンドWを受信すると、ロボット300はそれに応答して距離閾値に達するまで又はポインティングベクトルVと交差する障害物をロボット300が検出するまでポインティングベクトルVの方向に移動する。有利には、携帯型装置200はロボット300に送信される実際の「ウェイポイント座標」を計算するための地形推定(例えば地表面推定G)を決定する必要がなく、代わりにロボット300が標的位置Tに近づくとき、ロボット300がポインティングベクトルVの方向にナビゲートしながら地形推定(例えば地表面推定)を継続的に再計算することを可能にする。
[0116] 一部のシナリオでは、ロボット300が許可される、意図される、或いは自律的にナビゲートするよう設計される閾値距離又は指定範囲(例えば4メートルの自律ナビゲーション範囲)を超える(例えば満たさない)ロボット環境301内の標的位置に対応するピクセル位置224をオペレータ10が選択する。新たなピクセル位置をオペレータ10が選択することを要求するエラーメッセージを返す代わりに、タッチツーゴーアプリケーション400は標的位置の方への移動を開始し、標的位置の手前の中間位置(例えばロボット300の開始位置から4メートルのところ)で停止するようにロボット300に命令する。ここでは、ピクセル位置224(すなわちナビゲーション方向入力)の受信時のロボット300の位置と中間位置との間の距離が、ロボット300が自律的にナビゲートすることを許可される閾値距離に対応し得る。したがって、閾値距離を満たす別のピクセル位置をオペレータ10が選択することを要求することなしにロボット300が標的位置の方向に移動できるようにすることにより、ロボット300を制御するためのオペレータ10のユーザエクスペリエンスが改善される。
[0117] 図4B、図5E、及び図5Fを参照し、ロボット300とロボット300の前にあるポインティングベクトルV及び地表面推定G間の交点Iとの間の第1の距離D1が閾値距離(例えば4メートル)を満たさない(例えば超える)場合、タッチツーゴーアプリケーション400はロボット300と移動済み交点I(図5F)との間の短縮距離D2(図5F)の分だけ交点Iの方にロボット300を移動させるウェイポイントコマンドW(図4B)をロボット300に送信する。図5Fは、第1の限界(図5E)未満である(例えば4メートルに等しい)閾値距離以下の第2の限界に等しい短縮距離D2を示す。換言すれば、交点Iとロボット300との間の距離が閾値距離を満たさない場合、結果として生じる移動済み交点Iが閾値距離を満たすように、アプリケーション400は交点Iをロボット400の近くにずらし又は移動することができる。タッチツーゴーアプリケーション400は移動済み交点Iの位置をウェイポイントコマンドWとしてロボット300に送信し、その後ロボット300がウェイポイントまで自らナビゲートする。
[0118] オペレータ10はロボット環境内の地平線よりも上の位置、つまり地上ではない位置に対応するピクセル位置224を選択することがある。警告又はエラーメッセージを返す代わりに、タッチツーゴーアプリケーション400はロボット300を遠くにナビゲートしたいが、オペレータ10が地平線よりも高い位置を誤って選択したこととしてオペレータ10の選択を解釈する。この解釈に基づき、タッチツーゴーアプリケーション400はオペレータ10が別の位置を選択する必要なしにオペレータ10が意図する方向に移動するようロボット300に命令する。
[0119] 図4B、図5G、及び図5Hを参照し、オペレータ10によって選択されるピクセル位置224が地平線よりも高い場合、オペレータ10がロボット300をナビゲートしたい方向を表すポインティングベクトルVとロボット300の地表面推定Gとの交点Iがロボット300の背後に位置する(図5G)。このシナリオでは、図5Hはタッチツーゴーアプリケーション400が交点Iを反射し、それにより反射交点Iがロボット300の前にあることを示す。ここでは、ロボット300とロボット300の背後の交点Iとの間の距離が、ロボットとロボット300の前の反射交点Iとの間の距離に等しい。このようにして、ロボット300は意図した方向と逆の方向に動くことを命令されない。ロボット300が閾値距離(例えば4メートル以下)を満たす反射交点(I)(図5H)からの距離Dであるように、タッチツーゴーアプリケーション400は反射交点Iをロボット300の近くに又は遠くに移動する。タッチツーゴーアプリケーション400は反射交点Iの位置をウェイポイントコマンドとしてロボット300に送信し、それによりロボット300を反射交点Iに関連するウェイポイントまでナビゲートさせる。
[0120] 図6A~図6C及び図7A~図7Cを参照し、一部のシナリオでは、オペレータ10が障害物O(図6A)の背後に位置する又は交差壁によって形成される角C(図7A)を曲がった所に位置するウェイポイント(例えば標的位置T)までロボット300をナビゲートすることを望む。例えば図6Aは、オペレータ10が障害物Oの背後のピクセル位置224を入力することによってナビゲーション入力を与え、障害物Oの背後の標的位置Tまでロボット300を操縦させることを示す。同様に図7Aは、オペレータ10が角Cを曲がった所のピクセル位置224を入力することによってナビゲーション入力を与え、角Cを曲がった所にある通路又は通常領域を含む標的位置Tまでロボット300を操縦させることを示す。これらの状況では、センサシステム340及び知覚システム390からの入力により、障害物Oを回避してナビゲートし標的位置Tへと操縦することによってロボット300が障害物O(図6B及び図6C)を回避するようにトラバーサルシステム380がロボット300を制御する。つまりトラバーサルシステム380は、可能な場合にロボット300が障害物を回避して通り抜けられるようにするためにナビゲーション入力をオーバライドするよう構成される。障害物を回避して通り抜けることが不可能なシナリオでは、トラバーサルシステム380は標的位置へのナビゲーション操縦の実行を停止することができる。これらのシナリオでは、標的位置Tへのナビゲーションが不可能であることをトラバーサルシステム380がアプリケーション400に知らせることができ、アプリケーション400はナビゲーション入力が実行不可能であることをオペレータ10に知らせる(視覚、触覚、及び/又は音声)メッセージを出力することができる。
[0121] 同様に図7A及び図7Bに示すように、センサシステム340及び知覚システム390からの入力により、オペレータ10によって入力されるピクセル位置224に関連するロボット環境内の標的位置に着くために、角(図7B)に近づき、角Cを避けながら動く(例えば図7Cのビューに対して右に動く)ようにトラバーサルシステム380がロボット300を制御する。有利にはオペレータ10は標的位置Tに到着するための高水準コマンドとしてピクセル位置224を与えることができ、ロボット300は標的位置Tに到着するための側方通路を突き止める作業を負う。図示の例では、標的位置に到着するために通過する角Cの周囲にある隙間を見つけるまでロボット300が壁に沿って進む。この障害物回避機能は、ロボット300を標的位置まで操縦する目的で各障害(例えば障害物O又は角C)を回避してロボット300をナビゲートするためにオペレータ10が複数の中間ナビゲーション入力を与えなければならないことを軽減する。一部の実装形態は、その全体を本明細書に援用する2018年10月12日に出願され「足取りプランのための地形及び制約計画(Terrain and Constraint Planning for Footstep Plan)」と題された米国特許出願第62/744,954号、及び2019年4月12日に出願され「階段をロボット制御で通り抜けること(Robotically Negotiating Stairs)」と題された米国特許出願第16/382,390号の中で開示される制御/トラバーサル技術を利用することができる。
[0122] 一部の実装形態では、タッチツーゴーアプリケーション400は、シーンを変更することによってロボット300が移動している方向をオペレータ10が変更することができるを可能にする。図3D及び図3Eに関して上記で説明したように、ロボット300上のカメラ344、344a~eのそれぞれがその個々の視野349、349a~f(又は単純に「ビュー」)内のロボット環境の一部を測量又は捕捉し、その視野に対応する画像データ342を与える。それを受けてタッチツーゴーアプリケーション400は画像又はシーン内に画像データ342をレンダリングし、そのためオペレータ10はシーンの変化を認める。例えば図8A及び図8Bは、ロボット300の左前カメラ344a及び右前カメラ344bによって捕捉される前方ビュー349fからレンダリングされる前方シーン222、222aを提示するGUI221を示す。前方シーン222aは、ロボット300の前のロボット環境をオペレータ10に提示する。図8C及び図8Dは、ロボット300の後方カメラ344eによって捕捉される後方ビュー349eからレンダリングされる後方シーン222、222bを提示するGUI221を示す。ロボット300の背後に何があるのかをオペレータ10が見ることができるように、後方シーン222bがオペレータ10に表示される。
[0123] 図8B及び図8Cを参照し、以下でより詳細に説明するように、アプリケーション400は、オペレータ10が様々なシーンを変更できるようにするための並びにロボット300が移動している方向を変更できるようにするためのシーンチェンジャ226グラフィカル要素(例えばボタン)をGUI221上に提示することができる。図示の例では、シーンチェンジャ226グラフィカル要素は様々なシーンを切り替えるためにオペレータ10が選択可能な4つの方向矢印を含む。例えばオペレータ10は、前方シーン222a(図8B)を見るためにシーンチェンジャ226の前方の方向矢印の選択を示す入力指示を与え、その後シーンチェンジャ226の後方の方向矢印の別の入力指示の選択を与えることによって切り替えて後方シーン222b(図8C)を見ることができる。オペレータ10は、シーンチェンジャ226の左側の方向矢印及び右側の方向矢印の選択を示す入力指示をそれぞれ与えることによって左側シーン及び右側シーンをさらに切り替えることができる(不図示)。これらのシナリオでは、シーンチェンジャ226によって受信される入力指示に基づき、方向を変更することに関連するターン操作をロボットに行わせる対応するターンコマンドをタッチツーゴーアプリケーション400が送信する前に、GUI221は左側シーン222又は右側シーン222をオペレータ10が見るために提示することができる。シーンチェンジャ226はシーンを変更するための選択肢を4つ(例えば前方、後方、左側、及び右側)しか与えないが、タッチツーゴーアプリケーション400はシーンを変更するための5つ以上の又は3つ以下の選択肢を可能にし得る。
[0124] 図8A~図8Dは、オペレータ10がロボット環境内でロボット300をナビゲートするためにタッチツーゴーアプリケーション400を使用する間のGUI221の例を示す。図8Aではオペレータ10が前方シーン222aを見ており、ロボット300のナビゲート先の標的位置Tに対応するピクセル位置224を選択することによってナビゲーション入力を与える。図5A~図5Fに関して上記で説明したように、ナビゲーション入力を受信することに応答してタッチツーゴーアプリケーション400は決定済みの標的位置Tに向けて(図8A及び図8Bのビューに対して)前進するようロボット300に命令する(例えばウェイポイントコマンドWを送信する)。次いで、ロボット300はオペレータ10によって選択されたピクセル位置224に関連する標的位置Tまでナビゲートする。ロボット300が前方シーン222a内の標的位置Tにナビゲートする際、図8Bはロボット300のナビゲート先の新たな標的位置に対応する別のピクセル位置224を選択することによってオペレータ10が別のナビゲーション入力を与えることを示す。このようにしてオペレータ10は、ロボット300が前方に進むにつれ新たなピクセル位置224を選択することによってロボットを前方向に移動させ続けることができる。
[0125] 図8Cは、後方シーン222bを見てロボット300の移動方向を後方に反転させるために、オペレータ10がシーンチェンジャ226グラフィカル要素の後方の方向矢印を選択することを示す。GUI221はシーンチェンジャ226の後方の方向矢印を選択する入力指示に応答して後方シーン222bを提示する一方、図8Dはロボット300のナビゲート先の標的位置Tに対応するピクセル位置224を選択することによってオペレータ10がナビゲーション入力を与えることを示す。後方シーン222b内のピクセル位置224に関連するナビゲーション入力を受信することに応答してタッチツーゴーアプリケーション400は標的位置Tに向けて後ろ方向に(例えば後ろに)移動するようロボット300に命令する(例えばウェイポイントコマンドWを送信する)。一部の例では、後ろに移動する代わりに、ロボット300はウェイポイントコマンドWを受信することに応答して新たな前方向として後ろ方向222bに面するようにまずターン操作を行ってほぼ180度ターンし、次いで決定済みの標的位置に向けて前進する。ロボット300は、後ろ方向に進むかどうか又はまずターン操作を行って前方向に進むかどうかを1つ又は複数の要因に基づいて決めることができる。例えば非限定的な要因は標的位置Tまでの距離、ロボット300がターン操作を行う実行可能性、ロボット環境の熟知度、カメラ位置404(図4A)、又はユーザ選択を含み得る。一部の構成では、後ろ方向に移動するようにロボット300が構成されず、それにより前方向に移動することによって標的位置Tまで移動することができるようにロボット300がターン操作をまず行うことが要求される。
[0126] 図9A~図9Dは、前方シーン222a、後方シーン222b、右側シーン222c、及び左側シーン222dの同時表示をレンダリングしているタッチツーゴーアプリケーション400のGUI221の例を示す。ここではオペレータ10はシーンを変更するためにシーンチェンジャ226を使用する必要がなく、代わりに標的位置Tを提示する利用可能なシーン222、222a~dのうちの対応するシーン内のピクセル位置224を選択することによって標的位置Tまでのナビゲーション入力を与えることができる。例えば図9Aは、ロボット300のナビゲート先の標的位置Tに対応するピクセル位置224をオペレータが前方シーン222aから選択することを示す。図5A~図5Fに関して上記で説明したように、ナビゲーション入力を受信することに応答してタッチツーゴーアプリケーション400は決定済みの標的位置Tに向けて(図9A及び図9Bのビューに対して)前進するようロボット300に命令する(例えばウェイポイントコマンドWを送信する)。
[0127] 図9Cは、ロボット300のナビゲート先の新たな標的位置Tに対応する新たなピクセル位置224をオペレータが右側シーン222cから選択することを示す。右側シーン222c内のピクセル位置224に関連するナビゲーション入力を受信することに応答し、タッチツーゴーアプリケーション400は右へのターン操作を行い、決定済みの新たな標的位置Tに向けて前進するようロボット300に命令する(例えばウェイポイントコマンドWを送信する)。図9Dは、ロボット300が右へのターン操作を行った後で新たな標的位置Tに向けて移動する間のシーン222a~dの同時表示をレンダリングするGUI221を示す。つまり、図9Dの前方シーン222aが図9Cの右側シーン222cに対応し、図9Dの右側シーン222cが図9Cの後方シーン222bに対応し、図9Dの後方シーン222bが図9Cの左側シーン222dに対応し、図9Dの左側シーン222dが図9Cの前方シーン222aに対応するように、図9Cのシーン222a~dのそれぞれに示すロボット環境のビューが90度旋回される。
[0128] 図10A及び図10Bは、ロボット300の下向きシーン222eの表示をレンダリングするタッチツーゴーアプリケーション400のGUI221の例を示す。アプリケーション400は、ロボット300上のカメラ344、344a~eの任意の組み合わせから、そのそれぞれの視野349、349a~f(又は単純に「ビュー」)内で捕捉される画像データ342を使用して下向きシーン222eを構築することができる。下向きシーン222eを構築するために使用される画像データ342は、ロボット300上に搭載されるペイロードカメラ344からさらに捕捉され得る。ロボット300を標的位置Tまでナビゲートするために、図10Aは標的位置Tに関連する下向きシーン222e内のピクセル位置224を選択することによってオペレータ10がナビゲーション入力を与えることを示す。ピクセル位置224に基づき、タッチツーゴーアプリケーション400はロボット300をナビゲートするための標的位置Tを決定することができる。したがって図5A~図5Fに関して上記で説明したように、ナビゲーション入力を受信することに応答し、図10Bは決定済みの標的位置Tに向けて(図10A及び図10Bのビューに対して)前進するようロボット300にタッチツーゴーアプリケーション400が命令すること(例えばウェイポイントコマンドWを送信すること)を示す。ロボット環境内のロボット300の現在位置を表示するために、ロボット300を示すグラフィックを下向きシーン222e上にレンダリングすることができる。例えばロボット300のグラフィックは、標的位置Tに進む間ロボット300の瞬時位置を示すように移動することができる。
[0129] さらなる例では、図11A及び図11Bは、ロボット環境の下向きシーン222e(図10A及び図10B)及びユーザ選択シーン228の両方を同時に示す分割画面229を表示するようにタッチツーゴーアプリケーション400のGUI221が構成されることを示す。本開示の範囲から逸脱することなしにシーン222e、228の向きは分割画面229の反対側に表示することができる。一部の例では、アプリケーション400はオペレータ10がGUI221上にレンダリングされるシーン22e、228の位置をカスタマイズすること、及び/又はシーン222e、228の何れかのウィンドウサイズを調節することを可能にする。図示の例では、ユーザ選択シーン228が前方シーン222aに対応する。他の例では、ユーザ選択シーン228が後方シーン222b、右側シーン222c、又は左側シーン222dの何れか1つに対応する。GUI221は、ユーザ選択シーン228としてどのシーン222a~dをGUI221内でレンダリングするのかをオペレータ10が選択できるようにするためのボタン(不図示)を提示することができる。図8A~図10Bの何れかのGUI221は、様々な異なるGUI構成をオペレータ10が選択できるようにするための1つ又は複数のボタンを同様に提示することができる。例えばオペレータ10は下向きシーン222eを使用して高レベルナビゲーション入力を与え、細粒度のナビゲーション入力が必要な場合に4つのシーン222a~dを同時にレンダリングするようGUI221に切り替えることを選ぶ場合がある。
[0130] ロボット300を標的位置Tまでナビゲートするために、図11Aは標的位置Tに関連する下向きシーン222e内のピクセル位置224、又は標的位置Tに関連するユーザ選択シーン228内のピクセル位置224を選択することによってオペレータ10がナビゲーション入力を与えることを示す。シーン222e、228それぞれの中のピクセル位置224は異なるが、タッチツーゴーアプリケーション400はオペレータ10がナビゲーション入力を与えるためにどちらのシーン222e、228を使用するのかに関係なく、ロボット300をナビゲートするための同じ標的位置Tを決定することができる。他の実装形態では、アプリケーション400はオペレータ10がシーン222e、228の1つだけにナビゲーション入力を与えることを可能にする。ピクセル位置224に基づき、タッチツーゴーアプリケーション400はロボット300をナビゲートするための標的位置Tを決定することができる。したがって図5A~図5Fに関して上記で説明したように、ナビゲーション入力を受信することに応答し、図11Bは決定済みの標的位置Tに向けて(図11A及び図11Bのビューに対して)前進するようロボット300にタッチツーゴーアプリケーション400が命令すること(例えばウェイポイントコマンドWを送信すること)を示す。ロボット環境内のロボット300の現在位置を表示するために、ロボット300を示すグラフィックを下向きシーン222e上にレンダリングすることができる。例えばロボット300のグラフィックは、標的位置Tに進む間ロボット300の瞬時位置を示すように移動することができる。
[0131] オペレータ10が一人称ビュー228内のロボット環境及び下向きシーン222eに対するロボット環境を同時に及びリアルタイムで見るように、ユーザ選択シーン228及び下向きシーン222eが同期される。さらにシーン222e、228の1つの中で標的位置Tのためのピクセル位置224を選択することは、標的位置Tの対応するピクセル位置224の選択を他方のシーン222e、228にミラーリングさせることもできる。有利には、分割画面229により、オペレータ10はロボット300をナビゲートするために所与の作業、状況、及び/又は環境に適した特定のビュー/シーンを使用する選択肢を有する。
[0132] 図12A及び図12Bを参照し、一部の実装形態では、移動するようロボット300に物理的に命令することなしにオペレータ10がロボット環境のシーン222、222P(図12B)をプレビューすることを可能にするようにタッチツーゴーアプリケーション400が構成される。例えばGUI221(図12A)上で現在のシーン222、222Cを提示する間、GUI221は第1の旋回グラフィック272及び第2の旋回グラフィック274も提示し、それらのグラフィックはオペレータ10によって選択されるとき、現在のシーン222Cから離れる第1の方向又は逆の第2の方向の一方に視野を旋回させることによるプレビューシーン222P(図12B)をGUI221に提示させる。或いは又は加えて、オペレータ10は、第1の旋回グラフィック272及び第2の旋回グラフィック274の機能を行うために、コントロールスティック230b又は方向dパッド230c等の携帯型装置200上のコントロール230を使用することができる。そのためGUI221は、旋回グラフィック272、274の何れかの選択時に現在のシーン222Cから離れて視野を旋回させる旋回入力、及び/又はコントロールスティック230b若しくは方向dパッド230cへのユーザ入力を受信することができる。
[0133] 例えばGUI221は、ロボット300が物理的に動くことなしに又はターン操作を行うことなしにロボット300による右へのターン操作を伝えるために、視野を現在のシーン222Cから離れる第1の方向に(例えば右に)旋回させるための第1の旋回グラフィック272の選択を示す旋回入力を受信することができる。一部の例では、第1の旋回グラフィック272を選択することは、第1の方向へのターン操作を実行するよう、タッチツーゴーアプリケーション400がロボット300にコマンドすることも引き起こす。これらの例では、GUI221が応答して現在のシーン222Cから離れる第1の方向に視野を旋回させて、遅れ(例えば携帯型装置200とロボット300との間の通信の遅れ、並びにターンを行うためにロボット300を物理的に制御する時間から生じる遅れ)によりロボット300が実際にターン操作を行うよりも前に、ターン操作を行っているロボット300のインスタントフィードバックをオペレータ10に与えることができる。他の例では第1の旋回グラフィック272を選択することは、ロボット300による動きを物理的に必要とすることなしにオペレータ10がプレビューシーン222Dを見られるようにするために、現在のシーン222Cから離れる第1の方向に単純に視野を旋回させる。例えばオペレータ10は、ロボット300に動くように命令する前にナビゲーションの判断をオペレータ10が行うのを支援するように、第1の方向に視野を旋回させてロボット300の右側のシーンを見ることができる。一部の例では、視野が旋回する量は第1の旋回グラフィック272が(例えば触ることによって)オペレータ10と接触する時間の長さに比例する。例えば視野はオペレータ10が第1の旋回グラフィック272との接触を離すまで第1の方向に旋回し得る。さらなる例では、第1の旋回グラフィック272が触られ離されるたびに視野がある増分だけ旋回する。アプリケーション400は、グラフィック272が選択されたときを示すために拡張(例えば第1の旋回グラフィック272の色を変更)し得る。
[0134] 同様にGUI221は、ロボット300が物理的に動くことなしに又はターン操作を行うことなしにロボット300による左へのターン操作を伝えるために、視野を現在のシーン222Cから離れる第2の方向に(例えば左に)旋回させるための第2の旋回グラフィック274の選択を示す旋回入力を受信することができる。一部の例では、第2の旋回グラフィック274を選択することは、第2の方向へのターン操作を実行するよう、タッチツーゴーアプリケーション400がロボット300にコマンドすることも引き起こす。これらの例では、GUI221が応答して現在のシーン222Cから離れる第2の方向に視野を旋回させて、遅れ(例えば携帯型装置200とロボット300との間の通信の遅れ、並びにターンを行うためにロボット300を物理的に制御する時間から生じる遅れ)によりロボット300が実際にターン操作を行うよりも前に、ターン操作を行っているロボット300のインスタントフィードバックをオペレータ10に与えることができる。他の例では第2の旋回グラフィック274を選択することは、ロボット300による動きを物理的に必要とすることなしにオペレータ10がプレビューシーン222Dを見られるようにするために、現在のシーン222Cから離れる第2の方向に単純に視野を旋回させる。例えばオペレータ10は、ロボット300に動くように命令する前にナビゲーションの判断をオペレータ10が行うのを支援するように、第2の方向に視野を旋回させてロボット300の左側のシーンを見ることができる。一部の例では、視野が旋回する量は第2の旋回グラフィック274が(例えば触ることによって)オペレータ10と接触する時間の長さに比例する。例えば、視野はオペレータ10が接触を離すまで第2の方向に旋回し得る、第2の旋回グラフィック274。さらなる例では、第2の旋回グラフィック274が触られ離されるたびに視野がある増分だけ旋回する。アプリケーション400は、グラフィック274が選択されたときを示すために拡張(例えば第2の旋回グラフィック274の色を変更)し得る。
[0135] 視野が現在のシーン222Cから離れる第1の方向に旋回されようが、又は第2の方向に旋回されようが、GUI221上で表示するためにレンダリングされる画像データ342は単純に第1の方向又は第2の方向にパン/スライドしない。むしろ第1の方向又は第2の方向に視野を旋回させることが第1の方向又は第2の方向の対応する方向へのロボット300の実際のターンをシミュレートするように、タッチツーゴーアプリケーション400はロボット300上の様々なカメラ394によって捕捉される画像データ342を編集し変形させるように構成される。画像データ342の可用性は、プレビューシーン222Pが現在のシーン222Cから離れて何れかの方向にどの程度旋回できるのかを制約し得る。したがって画像データ342が入手できなくなる場合、アプリケーション400は画像データ342が入手不能なプレビューシーン222Pの外縁を一時的に喪失し得る。
[0136] 図13Aを参照し、仮想的な矩形520を使用してシーン500(例えば現在のシーン222C)がシーンカメラ510からレンダリングされる。シーンカメラ510は、ロボット300の中心付近に位置し、仮想的な矩形520の方に前を向く仮想カメラを含む。シーンカメラ510は、シーン500をレンダリングするための画像データ342を捕捉するためにロボット300の1台又は複数台の現実のカメラ344を活用することができる。仮想的な矩形520は「ステッチ距離」と呼ばれる距離D隔ててシーンカメラ510の前に位置する。シーンカメラ510はプログラムで調節可能な視野(FOV)を有する。例えばオブジェクトを有するシーンのさらに多くの部分又は少ない部分がFOVに含まれるように、視野角と呼ばれるFOVの角度を増加又は減少させることができる。
[0137] 図13Bを参照し、シーン500(例えば現在のシーン222C)をレンダリングするために、タッチツーゴーアプリケーション400は、ロボット300上の1台又は複数台の現実のカメラ530(例えばカメラ344)上の対応するピクセルからの画像色を用いて仮想的な矩形520上の点を「着色」する。説明目的で、現実のカメラ530は知られている位置から知られている方向に実画像532を空間内に投射するプロジェクタと考えることができる。例えば図3Dを参照し、現実のカメラ530は右前カメラ344bとすることができ、実画像532は左前ビュー349aであり得る。
[0138] タッチツーゴーアプリケーション400は、仮想的な矩形520に着色するために、現実のカメラ530からの内在的及び外在的な較正情報と共にロボット300に対する仮想的な矩形520の位置を使用する。図13Aに関して上記で説明したように、ロボット300に対する仮想的な矩形520の位置はステッチ距離においてロボット300の前にあるように定められる。タッチツーゴーアプリケーション400は、ロボット300に対する現実のカメラ530の位置を外在的な較正情報から決定する。内在的な較正情報から、タッチツーゴーアプリケーション400は仮想的な矩形520上の任意の点が実画像532内で対応するピクセル(図中では正方形として示す)を決定する。
[0139] 仮想的な矩形520上の点が現実のカメラ上のピクセルに対応する場合、タッチツーゴーアプリケーション400は実画像532からの色を用いてそれらの点(図中では〇として示す)に着色する。仮想的な矩形520上の点が現実のカメラ530上のピクセルに対応しない場合、タッチツーゴーアプリケーション400は黒色又は他の色でそれらの点(図中では×として示す)に着色する。仮想的な矩形520上の全ての点が現実のカメラ530上のピクセルに対応し、点が実画像532からの色を用いて着色されるようにシーンカメラ510が十分ワイドである場合、図13Bに示すようにオペレータ10はレンダリングされたシーンから実画像532の境界を認識することができる。
[0140] 図13Cを参照し、オペレータ10がロボット300を現在の姿勢角度(図中では円として示す)からある角度隔てられた標的の姿勢角度(図中では正方形として示す)にターンさせたい場合、タッチツーゴーアプリケーション400がその角度に一致するプレビュー角度PAの分だけシーンカメラ510及び仮想的な矩形520を旋回させる。この旋回は、旋回済みのシーンカメラ510rotated及び旋回済みの仮想的な矩形520rotatedをもたらす。次いでタッチツーゴーアプリケーション400は(明瞭にするために不図示の)実画像からの色を用いて旋回済みの仮想的な矩形520rotated上の点に着色してプレビューシーン540(例えばプレビューシーン222P)をレンダリングする。
[0141] 一実装形態では、タッチツーゴーアプリケーション400は、ロボット300の旋回をコマンドするオペレータ10のユーザ入力に対応する「仮想速度」を経時的に積分する。例えば仮想速度は、オペレータ10が第1の旋回グラフィック272(図12B)又は第2の旋回グラフィック274(図12B)を選択して押下することに関係する。旋回済みのシーンカメラ510rotated及び旋回済みの仮想的な矩形520rotatedをプレビュー角度PAの分だけ旋回させるために仮想速度を使用することにより、レンダリングされるプレビューシーン540がオペレータ10のコマンドに応じたものとなり、したがってロボット300が実際にプレビュー角度PAの分だけ旋回することをシミュレートする。つまりプレビューシーン540から、オペレータ10が旋回をコマンドするときロボット300がターンするように見え、オペレータ10が旋回のコマンドを止めるときロボット300がターンを止めるように見える。このような即座の又はほぼ即座のユーザフィードバックは、移動ロボットとの通信の遅延及び/又は移動ロボットがコマンドを実行する際の遅延がある場合の移動ロボットを正確にリモート制御する課題を克服し得る。
[0142] 図13Dを参照し、ロボット300は旋回していないのでロボット300上の現実のカメラ530、530a~bは現在の視野を維持し、現実のカメラ530、530a~bからの実画像532、532a~bは現在のシーンを維持する。(明瞭にするために不図示の)シーンカメラが積極的なプレビュー角度まで旋回される場合、図中の〇として示す旋回済みの仮想的な矩形520rotatedの部分を埋めるのに十分な現実のカメラ530からのデータだけがある。×として図中に示す旋回済みの仮想的な矩形520rotatedの残りの部分は黒色(又は他の色)で埋められる。図13Eに示すように、オペレータ10はこの部分をプレビューシーン540の一番右側の喪失領域1340(又は他の着色バー/領域)として認める。
[0143] 図14A~図14Hは、オペレータ10がタッチツーゴーアプリケーション400を使用して現在の姿勢角度から標的の姿勢角度へと右にターンするようにロボット300にコマンドするときのGUI221の例(図14A、図14C、図14E、図14G)及びロボット環境301の例(図14B、図14D、図14F、図14H)を示す。携帯型装置200を使用するオペレータ10は、ロボット300を制御するためのユーザ入力を与える。タッチツーゴーアプリケーション400はロボット300を予旋回することによってオペレータ10のユーザ入力に応答し、そのためオペレータはロボット300が物理的にターンする前にロボット300が標的の姿勢角度に向けてロボット環境内でターンすることをロボット300の視点から見る。
[0144] 説明のために、予旋回プロセスを開始時点Tstart及び停止時点Tstopに関して説明する。開始時点Tstartはオペレータがロボットを制御し始める直前の時点に対応し、停止時点Tstopはオペレータがロボットの制御を止めた直後の時点に対応する。さらに、開始時点Tstartと停止時点Tstopとの間の中間時点T及びTを参照し、そのため時点の完全な順番はTstart、T、T、及びTstopである。中間時点T及びTは、オペレータ10がロボット300を制御している間にタッチツーゴーアプリケーション400がロボット300を予旋回しているときに対応する。
[0145] 携帯型装置200の画面上に表示されるGUI221内にレンダリングされるシーンは、ロボット300の視点から見たロボット環境301のビューをオペレータ10に与える。図14A及び図14Bは開始時点Tstartにおける前方シーン550を示し、図14C及び図14Dは中間時点Tにおけるプレビューシーン552を示し、図14E及び図14Fは中間時点Tにおける次のプレビューシーン554を示し、図14G及び図14HはTstopにおける右向きシーン556を示す。図13A~図13Eに関して上記で説明したように、シーンのそれぞれ(550、552、554、556)は仮想的な矩形(562、564、566)を投射するシーンカメラ560からGUI221上にレンダリングされる。例えば図14A及び図14Bを参照し、GUI221上に前方シーン550をレンダリングするために、タッチツーゴーアプリケーション400は対応するピクセルの画像色を用いて実画像570a、570b内のピクセルに対応する仮想的な矩形562上の点に着色する。実画像570a、570b内の如何なるピクセルにも対応しない仮想的な矩形562上の点については、タッチツーゴーアプリケーション400はそれらの点を黒色(又は別の色)で着色する(例えば図13Eの喪失領域1340)。実画像570a、570bはロボット300上の現実のカメラ(明瞭にするために不図示)によって捕捉される。例えば図3Dを参照し、現実のカメラは左前カメラ344a及び右前カメラ344bとすることができる。
[0146] 引き続き図14A及び図14Bを参照し、開始時点Tstartにおいてロボット300は現在の姿勢角度にあり、又は単純にするためにロボット300は前方向を向いている。ロボット300上の現実のカメラによって捕捉される実画像570a、570bは前方向のロボット環境のものであり、この例では参照し易いように「前方ビュー」と呼ぶ。タッチツーゴーアプリケーション400は、前方ビューの実画像570a及び実画像570bからの画像色を用いて仮想的な矩形562を着色することによってGUI221上に表示するための前方シーン550をレンダリングする。GUI221を見ているオペレータ10にとって、前方シーン550からロボット300は前方向を向いているように見える。
[0147] オペレータ10は、GUI221上に表示される第1の旋回グラフィック232及び第2の旋回グラフィック234を使用して、現在の姿勢角度に対して右に又は左にターンするようロボット300にコマンドする。この例ではオペレータ10が第1の旋回グラフィック232を押下して、現在の姿勢角度から標的の姿勢角度の方へロボット300を右に旋回させるためのコマンドを示すユーザ入力指示を与える。
[0148] 図14C及び図14Dを参照し、オペレータ10がロボット300を制御する間の中間時点Tにおいて、タッチツーゴーアプリケーション400はユーザ入力指示に対応する仮想速度からプレビュー角度PAを決定する。図示の例では、中間時点Tにおけるプレビュー角度PAは(円として示す)現在の姿勢角度と(正方形として示す)中間の姿勢角度との間の角度として示す。タッチツーゴーアプリケーション400はシーンカメラ560をプレビュー角度PAの分だけ旋回させ、旋回済みの仮想的な矩形564をもたらす。しかしロボット300は前方向を向いたままであり、実画像570a及び実画像570bは依然として前方ビューのものである。
[0149] 旋回済みの仮想的な矩形564を実画像570a及び実画像570bと隔てるプレビュー角度PAにおいて、図14Dは旋回済みの仮想的な矩形564上の全ての点が実画像570a又は実画像570b内のピクセルとの対応関係を見出すことを示す。タッチツーゴーアプリケーション400は、前方ビューの実画像570a及び実画像570bからの画像色を用いて旋回済みの仮想的な矩形564に着色することによってGUI221上に表示するためのプレビューシーン552をレンダリングする。GUI221を見ているオペレータ10にとって、プレビューシーン552からロボット300が自身のコマンドに応答して右にターンしているように見える。しかし、現実にはロボット300は依然として前方向(すなわちロボット300の現在の姿勢角度)を向いている。
[0150] オペレータ10は標的の姿勢角度の方へ右にターンし続けるようロボット300にコマンドするために、右矢印ボタン232を押し続け又は押下し続ける。図14E及び図14Fを参照し、オペレータ10がロボット300を制御する間の中間時点Tにおいて、タッチツーゴーアプリケーション400はユーザ入力202に対応する仮想速度から次のプレビュー角度PAnextを決定する。図示の例では、中間時点Tにおける次のプレビュー角度PAnextは(円として示す)現在の姿勢角度と(三角形として示す)次の中間の姿勢角度との間の角度として示す。タッチツーゴーアプリケーション400はシーンカメラ560を次のプレビュー角度PAnextの分だけ旋回させ、次の旋回済みの仮想的な矩形566をもたらす。しかしロボット300は前方向を向いたままであり、実画像570a及び実画像570bは依然として前方ビューのものである。
[0151] 次の旋回済みの仮想的な矩形566を実画像570a及び実画像570bと隔てる次のプレビュー角度PAnextにおいて、図14Fは次の旋回済みの仮想的な矩形566上の全ての点が実画像570a又は実画像570b内のピクセルとの対応関係を見出すわけではないことを示す。簡単に言えば、次の旋回済みの仮想的な矩形566上の全ての点に着色するのに実画像570a及び実画像570bからの情報又は画像データがないほど、ロボット300上の現実のカメラに対してシーンカメラ560が大きい又は極端な角度にある。タッチツーゴーアプリケーション400は、それらの対応するピクセルの画像色を用いて実画像570a及び実画像570b内で見つかるピクセルと一致する次の旋回済みの仮想的な矩形566上の点(図中では〇として示す)に着色することによってGUI221上に表示するための次のプレビューシーン554をレンダリングする。
[0152] 実画像570a及び実画像570b内で見つかる如何なるピクセルとも一致しない次の旋回済みの仮想的な矩形566上の点について、タッチツーゴーアプリケーション400はそれらの点(図中では×として示す)を黒色で又は別の色で着色する。携帯型装置200は、実画像570a及び実画像570bからの画像データが欠如していること又はないことを示すシーンの右側の黒色領域と共に次のプレビューシーン554をオペレータ10に表示する。オペレータ10にとって、次のプレビューシーン554からロボット300が自身のコマンドに応答して右にターンしているように見える。しかし、現実にはロボット300は依然として前方向を向いている。前の中間時点Tと異なり、中間時点Tではロボット300の視点から見たロボット環境についてのオペレータ10のビューは次の大きなプレビュー角度PAnextが原因で不完全又は部分的である。
[0153] ロボット300が標的の姿勢角度に達したことをオペレータ10が認めると、オペレータ10は右矢印ボタン232を離してユーザ入力202を与えるのを止める。停止時点Tstopにおいて、タッチツーゴーアプリケーション400はユーザ入力202の最後に対応する仮想速度から旋回角度AORを決定する。図4Aと共に図14G及び図14Fを参照し、タッチツーゴーアプリケーション400は旋回角度AORを有する旋回コマンドRをトラバーサルシステム380に与える。それを受けてトラバーサルシステム380は、センサシステム340及び/又は知覚システム390からの入力を用いて旋回コマンドRを行い、ロボット300はその現在の姿勢角度から(図中では六角形として示す)標的の姿勢角度にターンする。
[0154] ロボット300は標的の姿勢角度にターンした後でようやく右方向を向いている。ロボット300上の現実のカメラはロボット環境301の右方向の実画像572a、572bを捕捉し、それらの画像は参照し易いようにこの例では「右向きビュー」と呼ぶ。タッチツーゴーアプリケーション400はシーンカメラ560及び仮想的な矩形562をその非旋回状態に戻し或いはリセットし、それによりシーンカメラ560及び仮想的な矩形562も右方向を向く。タッチツーゴーアプリケーション400の予旋回プロセスにロボット300が旋回的に「追いついた」と言うのが簡便な場合がある。
[0155] ロボット300上の現実のカメラ及びシーンカメラ560が同じ全般的方向を向いた状態で、図14Hは仮想的な矩形562上の全ての点が右向きビューの実画像572a又は実画像572b内の対応するピクセルを有することを示す。対照的に図14Fに示す例では、シーンカメラ560が現実のカメラの右に旋回され過ぎており、そのため次の旋回済みの仮想的な矩形566上の全ての点に着色するための前方ビューの実画像570a及び実画像570bからの十分な情報がない。タッチツーゴーアプリケーション400は、右向きビューの実画像572a及び実画像572bからの画像色を用いて仮想的な矩形562に着色することによってGUI221上に表示するための右向きシーン556をレンダリングする。
[0156] 予旋回プロセスの上記の解説では、オペレータ10がロボット300の制御を止めると(すなわちオペレータ10がユーザ入力を与えなくなると)(旋回コマンドR内で)旋回角度を与えるものとしてタッチツーゴーアプリケーション400を説明した。タッチツーゴーアプリケーション400の他の実装形態は、設定した期間にわたってオペレータ10からユーザ入力を受信した後で(例えばタイマがタイムアウトした後で)旋回角度をロボット300に与える。例示目的で、タッチツーゴーアプリケーション400はユーザ入力を受信する5ミリ秒ごとに旋回角度を与える。この例ではオペレータ10が15ミリ秒にわたってユーザ入力を与え、タッチツーゴーアプリケーション400は5ミリ秒において第1の旋回角度を与え、10ミリ秒において第2の旋回角度を与え、15ミリ秒において第3の旋回角度を与えることによって応答する。タッチツーゴーアプリケーション400のかかる実装形態により、ロボット300は増分的にターンする一方、タッチツーゴーアプリケーション400はロボット300を継続的に予旋回させる。有利には、かかる実装形態はロボット300を予旋回する間にプレビューシーンをレンダリングするとき、実画像からの欠落している画像データの量を減らし得る。
[0157] 加えて予旋回プロセスの上記の解説は、タッチツーゴーアプリケーション400を離散的な瞬間(例えば中間時点T及び中間時点T)に関して説明した。予旋回プロセスの他の実装形態は連続的に行われ得る。例えばタッチツーゴーアプリケーション400は、オペレータ10によって与えられる継続的なユーザ入力に応答してロボット300を継続的に予旋回させる。このように予旋回させることは、ロボット300にコマンドが実際に送信される前にオペレータ10が自身のコマンドの最終結果を見ることを可能にする即座のフィードバックを与える。
[0158] 図15は、ロボット300をナビゲートするための方法600に関する操作の構成例のフローチャートである。操作602で、方法600はロボット300上のカメラによって捕捉されるロボット環境のシーン内のピクセル位置を得る。得られるピクセル位置はロボット300のオペレータによって選択される。操作604で、方法600はピクセル位置及びカメラの較正情報からポインティングベクトルを決定する。操作606で、方法600はロボット300のポインティングベクトルを地表面推定と組み合わせて交点を形成する。ここでは、交点はロボット環境内の物理的位置を含む。操作608で、方法600はロボット300に物理的位置を伝送し、ロボット環境内の物理的位置にロボット300をナビゲートさせる。
[0159] 図16は、ロボット300を「予旋回」する方法700に関する操作の構成例のフローチャートである。操作702で、方法700はロボット300上に配置される1台又は複数台の現実のカメラによって捕捉されるロボット環境の前方ビューの実画像を取得し、ロボット300は前方の姿勢角度にあり、前方向を向いている。操作704で、方法700は前方の姿勢角度からロボット300が右方向又は左方向を向いているターン済みの姿勢角度までターンするときロボット300が旋回するプレビュー角度を決定する。操作706で、方法700はプレビュー角度の分だけ仮想シーンカメラを旋回させる。ここでは仮想シーンカメラがロボット300の前方の姿勢角度に対して旋回している。操作708で、仮想シーンカメラによって投射される仮想的な矩形上の点ごとに、方法700は個々の点が実画像内のピクセルに対応するかどうかを決定する。操作710で、方法700は対応するピクセルを含むプレビューシーンを表示する。ここではプレビューシーンは、前方の姿勢角度からターン済みの姿勢角度まで移動ロボットが実際にターンすることなしに、右方向又は左方向にプレビュー角度の分だけターンされるロボット環境のビューである。
[0160] 図17は、ロボット300を制御する方法1700に関する操作の構成例のフローチャートである。操作1702で、方法1700はオペレータ装置200のデータ処理ハードウェア240において少なくとも1つのイメージセンサ344から画像データ342を受信することを含む。画像データ342はロボット300の周囲の環境301に対応する。
[0161] 操作1704で、方法1700はオペレータ装置200の画面220上に表示するためのグラフィカルユーザインタフェース(GUI)221をデータ処理ハードウェア240によって実行することを含む。GUI221は、画像データ342に基づいてロボット300の周囲の環境301のシーン222を表示し、ロボット300の周囲の環境301のシーン222内のピクセル位置224の選択を示す入力指示を受信するように構成される。
[0162] 操作1706で、方法1700はピクセル位置224の選択に基づいてポインティングベクトルVをデータ処理ハードウェア240によって決定することを含む。ポインティングベクトルは、環境301内でロボット300をナビゲートするための移動方向を表す。操作1708で、方法1700はロボット300にウェイポイントコマンドWをデータ処理ハードウェア240によって伝送することを含む。ウェイポイントコマンドWはロボット300によって受信されると、標的位置Tまでロボット300をナビゲートさせる。標的位置は、ロボット300のポインティングベクトルVと地形推定(例えば地表面推定)Gとの交点に基づく。
[0163] 一部の実装形態では、データ処理ハードウェア240が地形推定(例えば地表面推定)を決定し、ポインティングベクトルVと地表面推定Gとの交点に基づく実際のウェイポイントとしてウェイポイントコマンドWを送信する。他の実装形態では、交点Iに基づく実際の「ウェイポイント」を送信する代わりに、携帯型装置200上で実行されるアプリケーション400は、シーン222に対応する画像データ242を捕捉する少なくとも1台のカメラ344の起源に対応する世界空間内の点を含むウェイポイントコマンドW、及びシーン222内のピクセル位置224の選択に基づく世界空間内のポインティングベクトルVを送信する。このシナリオでは、世界空間内の点及びポインティングベクトルVを単に含むウェイポイントコマンドWを受信すると、ロボット300はそれに応答して距離閾値に達するまで又はポインティングベクトルVと交差する障害物をロボット300が検出するまでポインティングベクトルVの方向に移動する。有利には、携帯型装置200のデータ処理ハードウェア240はロボット300に送信される実際の「ウェイポイント座標」を計算するための地形推定(例えば地表面推定G)を決定する必要がなく、代わりにロボット300が標的位置Tに近づくとき、ロボット300がポインティングベクトルVの方向にナビゲートしながら地形推定(例えば地表面推定)を継続的に再計算することを可能にする。この形態は、携帯型装置200上の計算済みの/決定済みの地形推定(例えば地表面推定)が無効であるシナリオにおいてロボット300のナビゲーションを最適化し得る。
[0164] ソフトウェアアプリケーション(すなわちソフトウェアリソース)はコンピューティングデバイスに作業を行わせるコンピュータソフトウェアを指し得る。一部の例では、ソフトウェアアプリケーションを「アプリケーション」、「アプリ」、又は「プログラム」と呼ぶ場合がある。アプリケーションの例は、これだけに限定されないがシステム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、及びゲーミングアプリケーションを含む。
[0165] 図18は、本明細書に記載したシステム及び方法を実装するために使用することができるコンピューティングデバイス800の一例の概略図である。コンピューティングデバイス800は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、及び他の適切なコンピュータ等の様々な形のデジタルコンピュータを表すことを意図する。ここに示されるコンポーネント、それらの接続及び関係、並びにそれらの機能は、例に過ぎないものとし、本明細書に記載され、及び/又は特許請求される本発明の実施を限定するものではない。
[0166] コンピューティングデバイス800は、プロセッサ810、メモリ820、記憶装置830、メモリ820と高速拡張ポート850に接続される高速インタフェース/コントローラ840、及び低速バス870と記憶装置830に接続される低速インタフェース/コントローラ860を含む。コンポーネント810、820、830、840、850、及び860の各々は、各種のバスを使って相互接続され、共通のマザーボード上に、又はその他の適当な方法で実装され得る。プロセッサ810は、コンピューティングデバイス800内で実行されるための命令を処理することができ、これにはメモリ820内又は記憶装置830上に記憶される、高速インタフェース840に連結されたディスプレイ880等の外部入力/出力デバイス上にグラフィカルユーザインタフェース(GUI)のためのグラフィック情報を表示させる命令が含まれる。他の実装形態において、複数のプロセッサ及び/又は複数のバスが、複数のメモリ及びメモリタイプと共に適切に使用され得る。また、複数のコンピューティングデバイス800が接続され得て、各デバイスが必要な動作の一部を(例えば、サーババンク、ブレードサーバ群、又はマルチプロセッサシステムとして)提供する。
[0167] メモリ820は、コンピューティングデバイス800内に非一時的に情報を保存する。メモリ820は、コンピュータ可読媒体、揮発性メモリユニット、又は不揮発性メモリユニットであり得る。不揮発性メモリ820は、プログラム(例えば、命令のシーケンス)又はデータ(例えば、プログラム状態情報)をコンピューティングデバイス800により使用されるために一時的又は永久的に記憶するために使用される物理デバイスであり得る。不揮発性メモリの例には、フラッシュメモリ及びリードオンリメモリ(ROM)/プログラマブルリードオリメモリ(PROM)/イレーサブルプログラマブルリードオンリメモリ(EPROM)/エレクトロニカルイレーサブルプログラマブルリードオンリメモリ(EEPROM)(例えば、典型的に、ブートプログラム等、ファームウェアのために使用される)が含まれるが、これらに限定されない。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、及びディス又はテープが含まれるが、これらに限定されない。
[0168] 記憶装置830は、コンピューティングデバイス800のための大量記憶を提供できる。幾つかの実装形態において、記憶装置830は、コンピュータ可読媒体である。各種の異なる実装形態において、記憶装置830はフロッピディスクデバイス、ハードディスクデバイス、光ディスクデバイス、又はテープデバイス、フラッシュメモリ若しくはその他同様のソリッドステートメモリデバイス又は、記憶エリアネットワーク若しくはその他の構成のデバイスを含むデバイスのアレイであり得る。追加的な実装形態において、コンピュータプログラム製品は、情報キャリア内で有形の状態に具現化される。コンピュータプログラム製品は、実行されると、1つ又は複数の方法、例えば前述の方法を実行する命令を含む。情報キャリアは、コンピュータ又は機械可読媒体、例えばメモリ820、記憶装置830、又はプロセッサ810上のメモリである。
[0169] 高速コントローラ840は、コンピューティングデバイス800のためのバンド幅集約動作を管理し、他方で、低速コントローラ860は、よりバンド幅集約性の低い動作を管理する。このような担当作業の割り当ては例示にすぎない。一部の実装形態では、高速コントローラ840がメモリ820、ディスプレイ880(例えばグラフィックスプロセッサ又はアクセラレータ経由)、及び様々な拡張カード(不図示)を受け入れることができる高速拡張ポート850に連結される。一部の実装形態では、低速コントローラ860が記憶装置830及び低速拡張ポート890に連結される。低速拡張ポート890は、各種の通信ポート(例えば、USB、Bluetooth、イーサネット、無線イーサネット)を含み得て、1つ又は複数の入力/出力デバイス、例えばキーボード、ポインティングデバイス、スキャナ、又はスイッチや又はルータ等のネットワークデバイスに、例えばネットワークアダプタを通じて連結され得る。
[0170] 図示のように、コンピューティングデバイス800は幾つかの異なる形で実装することができる。例えばコンピューティングデバイス800は、標準サーバ800aとして若しくはかかるサーバ800aのグループ内で複数回実装されてもよく、ラップトップコンピュータ800bとして実装されてもよく、又はラックサーバシステム800cの一部として実装されてもよい。
[0171] 本明細書の記載のシステム及び技術の各種の実装形態は、デジタル電子機器及び/又は光回路構成、集積回路、特別に設計されたASIC(特定用途集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はこれらの組合せで実現できる。これらの各種の実装形態は、特定目的用でも汎用でもよい、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、そこにデータ及び命令を送信するために連結された少なくとも1つのプログラマブルプロセッサを含むプログラム可能システム上で実行可能及び/又は解釈可能な1つ又は複数のコンピュータプログラムでの実装を含むことができる。
[0172] これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとしても知られる)は、プログラム可能プロセッサのための機械命令を含み、高レベル手続き型及び/又はオブジェクト指向プログラミング言語及び/又はアセンブリ/機械言語で実装できる。本明細書で使用されるかぎり、「機械可読媒体」及び「コンピュータ可読媒体」という用語は、機械命令及び/又はデータをプログラム可能プロセッサに提供するために使用されるあらゆるコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置、及び/又はデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLDs))を指し、機械可読信号として機械命令を受け取る機械可読媒体も含まれる。「機械可読信号」という用語は、機械命令及び/又はデータをプログラム可能プロセッサに提供するために使用されるあらゆる信号を指す。
[0173] 本明細書に記載されるプロセッサ及びロジックフローは、入力データを処理し、出力を生成することによって機能を果たすために1つ又は複数のコンピュータプログラムを実行する、データ処理ハードウェアとも呼ばれる1つ又は複数のプログラム可能プロセッサにより実行可能である。プロセッサ及びロジックフローはまた、特殊用途の論理回路構成、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途集積回路)等によっても実行可能である。コンピュータプログラムの実行に適したプロセッサには、例えば汎用及び特殊用途のマイクロプロセッサ、あらゆる種類のデジタルコンピュータの1つ又は複数のプロセッサが含まれる。一般に、プロセッサはリードオンリメモリ若しくはランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの基本要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ又は複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つ又は複数の大量記憶装置、例えば磁気、磁気光ディスク、又は光ディスクを含むか、これらからデータを受信し、又はそれらにデータを送信するために動作的に連結される。しかしながら、コンピュータは、このようなデバイスを含んでいなくてもよい。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ可読媒体には、あらゆる形態の不揮発性メモリ、媒体、及びメモリデバイスが含まれ、これらには例えば、半導体メモリデバイス、例えばEPROM、EEPROM、及びフラッシュメモリデバイス、磁気ディスク、例えば内蔵ハードディスク若しくはリムーバブルディスク、磁気光ディスク、並びにCD ROM及びDVD-ROMディスクが含まれる。プロセッサとメモリは、特殊用途の論理回路構成により補足され、又はその中に組み込まれることも可能である。
[0174] ユーザとの対話を可能にするために、本開示の1つ又は複数の態様はユーザに情報を表示するための表示装置、例えばCRT(ブラウン管)、LCD(液晶ディスプレイ)モニタ、又はタッチスクリーン、及び任意選択的にユーザがコンピュータに入力を与えることができるキーボード及びポインティングデバイス、例えばマウス又はトラックボールを有するコンピュータ上で実装され得る。ユーザとの対話を可能にするために他の種類のデバイスを使用することもでき、例えばユーザに与えられるフィードバックは任意の形の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、又は触覚フィードバックとすることができ、ユーザからの入力は音響入力、音声入力、又は触覚入力を含む任意の形で受信することができる。加えてコンピュータは、ユーザによって使用されるデバイスとの間で文書を送受信することによって、例えばユーザのクライアントデバイス上のウェブブラウザから受信される要求に応じてそのウェブブラウザにウェブページを送信することによってユーザと対話することができる。
[0175] 様々な実施形態を説明した。しかしながら、本開示の主旨と範囲から逸脱することなく、各種の改良が加えられてよいと理解されたい。したがって、その他の実装形態も以下の特許請求の範囲に含まれる。

Claims (28)

  1. オペレータ装置(200)のデータ処理ハードウェア(240)において少なくとも1つのイメージセンサ(344)から画像データ(242)を受信することであって、前記画像データ(242)はロボット(300)の周囲の環境(301)に対応する、前記画像データ(242)を受信すること、
    前記オペレータ装置(200)の画面(220)上に表示するためのグラフィカルユーザインタフェース(221)を前記データ処理ハードウェア(240)によって実行することであって、前記グラフィカルユーザインタフェース(221)は
    前記画像データ(242)に基づいて前記ロボット(300)の周囲の前記環境(301)のシーン(222)を表示し、
    前記ロボット(300)の周囲の前記環境(301)の前記シーン(222)内のピクセル位置(224)の選択を示す入力指示を受信する
    ように構成される、前記グラフィカルユーザインタフェース(221)を実行すること、
    前記ピクセル位置(224)の前記選択に基づいてポインティングベクトルを前記データ処理ハードウェア(240)によって決定することであって、前記ポインティングベクトルは前記環境(301)内で前記ロボット(300)をナビゲートするための移動方向を表す、前記ポインティングベクトルを決定すること、及び
    前記ロボット(300)にウェイポイントコマンドを前記データ処理ハードウェア(240)によって伝送することであって、前記ウェイポイントコマンドは前記ロボット(300)によって受信されると、前記ロボット(300)の前記ポインティングベクトルと地形推定との交点に基づく標的位置まで前記ロボット(300)をナビゲートさせる、前記ウェイポイントコマンドを伝送すること
    を含む、方法(1700)。
  2. 前記ロボット(300)の周囲の前記環境(301)の前記シーン(222)が、
    前記画像データ(242)に基づく前記環境(301)の前方シーン(222)であって、前記画像データ(242)は前記ロボット(300)上に配置される左前カメラ(344)及び右前カメラ(344)によって捕捉される、前方シーン(222)、
    前記画像データ(242)に基づく前記環境(301)の左側シーン(222)であって、前記画像データ(242)は前記ロボット(300)上に配置される左側カメラ(344)によって捕捉される、左側シーン(222)、
    前記画像データ(242)に基づく前記環境(301)の右側シーン(222)であって、前記画像データ(242)は前記移動ロボット(300)上に配置される右側カメラ(344)によって捕捉される、右側シーン(222)、
    前記画像データ(242)に基づく前記環境(301)の後方シーン(222)であって、前記後方シーン(222)は前記ロボット(300)上に配置される後方カメラ(344)によって捕捉される、後方シーン(222)、又は
    前記画像データ(242)に基づく前記ロボット(300)の下向きシーン(222)であって、前記画像データ(242)はペイロードカメラ(344)、前記左前カメラ(344)、前記右前カメラ(344)、前記左側カメラ(344)、前記右側カメラ(344)、及び前記後方カメラ(344)によって捕捉される、下向きシーン(222)
    のうちの何れか1つを含む、請求項1に記載の方法(1700)。
  3. 前記ポインティングベクトルと前記地形推定との前記交点が前記ロボット(300)の前にあるかどうかを前記データ処理ハードウェア(240)によって決定すること、及び
    前記ポインティングベクトルと前記地形推定との前記交点が前記ロボット(300)の前にある場合は前記交点を前記標的位置として前記データ処理ハードウェア(240)によって識別すること
    をさらに含む、請求項1又は2に記載の方法(1700)。
  4. 前記ポインティングベクトルと前記地形推定との前記交点が前記ロボット(300)の背後にある場合、
    前記データ処理ハードウェア(240)によって前記交点を反射して前記ロボット(300)の前の反射交点を決定すること、及び
    前記反射交点を前記標的位置として前記データ処理ハードウェア(240)によって識別すること
    をさらに含む、請求項3に記載の方法(1700)。
  5. 前記標的位置として前記交点を識別する前に、
    前記ロボット(300)の現在位置と前記ポインティングベクトル及び前記地形推定間の前記交点との間の第1の距離が閾値距離を満たさないことを前記データ処理ハードウェア(240)によって決定すること、及び
    移動済み交点を形成するために前記データ処理ハードウェア(240)によって前記ロボット(300)により近い中間位置に前記交点を移動することであって、前記ロボット(300)の前記現在位置と前記移動済み交点との間の第2の距離は前記閾値距離を満たす、前記交点を移動すること
    をさらに含む、請求項3又は4に記載の方法(1700)。
  6. 前記ロボット(300)は、
    前記標的位置が障害物の背後にあるかどうかを決定するように構成され、及び
    前記標的位置が前記障害物の背後にない場合は前記標的位置まで自律的にナビゲートするか、又は
    前記標的位置が前記障害物の背後にある場合、
    前記障害物を回避することが可能かどうかを決定し、
    前記障害物を回避することが可能である場合は前記障害物を回避し前記標的位置まで前記ロボット(300)を自律的にナビゲートする
    うちの一方であるように構成される、請求項1乃至5の何れか一項に記載の方法(1700)。
  7. 前記ロボット(300)は、前記標的位置が前記障害物の背後にあり前記障害物を回避することが不可能である場合、前記標的位置まで前記ロボット(300)が自律的にナビゲートされるのを妨げるようにさらに構成される、請求項6に記載の方法(1700)。
  8. 前記少なくとも1つのイメージセンサ(344)が1つ又は複数の魚眼カメラ(346)及び1つ又は複数の赤外線カメラ(348)を含む、請求項1乃至7の何れか一項に記載の方法(1700)。
  9. 前記ロボット(300)が四足ロボット(300)を含む、請求項1乃至8の何れか一項に記載の方法(1700)。
  10. 前記少なくとも1つのイメージセンサ(344)が前記ロボット(300)上に配置され、
    前記オペレータ装置(200)がネットワーク(180)によって前記イメージセンサ(344)と通信する、
    請求項1乃至9の何れか一項に記載の方法(1700)。
  11. 前記グラフィカルユーザインタフェース(221)が、
    前記グラフィカルユーザインタフェース(221)内に表示されている現在のシーン(222C)から離れる方向に前記ロボット(300)の周囲の前記環境(301)の視野を旋回させるための旋回入力を受信し、
    前記現在のシーン(222C)から離れる前記方向に前記ロボット(300)の周囲の前記環境(301)の前記視野を旋回させることによってプレビューシーン(222P)を表示する
    ようにさらに構成される、請求項1乃至10の何れか一項に記載の方法(1700)。
  12. 前記グラフィカルユーザインタフェース(221)が、前記ロボット(300)による物理的な動きを必要とすることなしに前記プレビューシーン(222P)を表示するように構成される、請求項11に記載の方法(1700)。
  13. 前記グラフィカルユーザインタフェース(221)が、前記グラフィカルユーザインタフェース(221)内に表示される旋回グラフィックの選択を示す入力指示を受信することに応答して前記旋回入力を受信するように構成される、請求項11又は12に記載の方法(1700)。
  14. 前記現在のシーン(222C)から離れる前記方向に前記ロボット(300)の周囲の前記環境(301)の前記視野を前記旋回させることが、前記現在のシーン(222C)から離れる前記方向に及び前記プレビューシーン(222P)へ向かう前記方向に前記ロボット(300)がターン操作を行うことをシミュレートする、請求項11乃至13の何れか一項に記載の方法(1700)。
  15. データ処理ハードウェア(240)、及び
    前記データ処理ハードウェア(240)と通信するメモリハードウェア(250)
    を含むシステム(200)であって、前記メモリハードウェア(250)は、前記データ処理ハードウェア(240)上で実行されるとき、
    少なくとも1つのイメージセンサ(344)から画像データ(242)を受信することであって、前記画像データ(242)はロボット(300)の周囲の環境(301)に対応する、前記画像データ(242)を受信すること、
    オペレータ装置(200)の画面(220)上に表示するためのグラフィカルユーザインタフェース(221)を実行することであって、前記グラフィカルユーザインタフェース(221)は
    前記画像データ(242)に基づいて前記ロボット(300)の周囲の前記環境(301)のシーン(222)を表示し、
    前記ロボット(300)の周囲の前記環境(301)の前記シーン(222)内のピクセル位置(224)の選択を示す入力指示を受信する
    ように構成される、前記グラフィカルユーザインタフェース(221)を実行すること、
    前記ピクセル位置(224)の前記選択に基づいてポインティングベクトルを決定することであって、前記ポインティングベクトルは前記環境(301)内で前記ロボット(300)をナビゲートするための移動方向を表す、前記ポインティングベクトルを決定すること、及び
    前記ロボット(300)にウェイポイントコマンドを伝送することであって、前記ウェイポイントコマンドは前記ロボット(300)によって受信されると、前記ロボット(300)の前記ポインティングベクトルと地形推定との交点に基づく標的位置まで前記ロボット(300)をナビゲートさせる、前記ウェイポイントコマンドを伝送すること
    を含む操作を前記データ処理ハードウェア(240)に実行させる命令を記憶する、
    システム(200)。
  16. 前記ロボット(300)の周囲の前記環境(301)の前記シーン(222)が、
    前記画像データ(242)に基づく前記環境(301)の前方シーン(222)であって、前記画像データ(242)は前記ロボット(300)上に配置される左前カメラ(344)及び右前カメラ(344)によって捕捉される、前方シーン(222)、
    前記画像データ(242)に基づく前記環境(301)の左側シーン(222)であって、前記画像データ(242)は前記ロボット(300)上に配置される左側カメラ(344)によって捕捉される、左側シーン(222)、
    前記画像データ(242)に基づく前記環境(301)の右側シーン(222)であって、前記画像データ(242)は前記移動ロボット(300)上に配置される右側カメラ(344)によって捕捉される、右側シーン(222)、
    前記画像データ(242)に基づく前記環境(301)の後方シーン(222)であって、前記後方シーン(222)は前記ロボット(300)上に配置される後方カメラ(344)によって捕捉される、後方シーン(222)、又は
    前記画像データ(242)に基づく前記ロボット(300)の下向きシーン(222)であって、前記画像データ(242)はペイロードカメラ(344)、前記左前カメラ(344)、前記右前カメラ(344)、前記左側カメラ(344)、前記右側カメラ(344)、及び前記後方カメラ(344)によって捕捉される、下向きシーン(222)
    のうちの何れか1つを含む、請求項15に記載のシステム(200)。
  17. 前記操作は、
    前記ポインティングベクトルと前記地形推定との前記交点が前記ロボット(300)の前にあるかどうかを決定すること、及び
    前記ポインティングベクトルと前記地形推定との前記交点が前記ロボット(300)の前にある場合は前記交点を前記標的位置として識別すること
    をさらに含む、請求項15又は16に記載のシステム(200)。
  18. 前記操作は、
    前記ポインティングベクトルと前記地形推定との前記交点が前記ロボット(300)の背後にある場合、
    前記交点を反射して前記ロボット(300)の前の反射交点を決定すること、及び
    前記反射交点を前記標的位置として識別すること
    をさらに含む、請求項17に記載のシステム(200)。
  19. 前記操作は前記標的位置として前記交点を識別する前に、
    前記ロボット(300)の現在位置と前記ポインティングベクトル及び前記地形推定間の前記交点との間の第1の距離が閾値距離を満たさないことを決定すること、及び
    移動済み交点を形成するために前記ロボット(300)により近い中間位置に前記交点を移動することであって、前記ロボット(300)の前記現在位置と前記移動済み交点との間の第2の距離は前記閾値距離を満たす、前記交点を移動すること
    をさらに含む、請求項17又は18に記載のシステム(200)。
  20. 前記ロボット(300)は、
    前記標的位置が障害物の背後にあるかどうかを決定するように構成され、及び
    前記標的位置が前記障害物の背後にない場合は前記標的位置まで自律的にナビゲートする、又は
    前記標的位置が前記障害物の背後にある場合、
    前記障害物を回避することが可能かどうかを決定し、
    前記障害物を回避することが可能である場合は前記障害物を回避し前記標的位置まで前記ロボット(300)を自律的にナビゲートする
    うちの一方であるように構成される、
    請求項15乃至19の何れか一項に記載のシステム(200)。
  21. 前記ロボット(300)は、前記標的位置が前記障害物の背後にあり前記障害物を回避することが不可能である場合、前記標的位置まで前記ロボット(300)が自律的にナビゲートされるのを妨げるようにさらに構成される、請求項20に記載のシステム(200)。
  22. 前記少なくとも1つのイメージセンサ(344)が1つ又は複数の魚眼カメラ(346)及び1つ又は複数の赤外線カメラ(348)を含む、請求項15乃至21の何れか一項に記載のシステム(200)。
  23. 前記ロボット(300)が四足ロボット(300)を含む、請求項15乃至22の何れか一項に記載のシステム(200)。
  24. 前記少なくとも1つのイメージセンサ(344)が前記ロボット(300)上に配置され、
    前記オペレータ装置(200)がネットワーク(180)によって前記イメージセンサ(344)と通信する、
    請求項15乃至23の何れか一項に記載のシステム(200)。
  25. 前記グラフィカルユーザインタフェース(221)が、
    前記グラフィカルユーザインタフェース(221)内に表示されている現在のシーン(222C)から離れる方向に前記ロボット(300)の周囲の前記環境(301)の視野を旋回させるための旋回入力を受信し、
    前記現在のシーン(222C)から離れる前記方向に前記ロボット(300)の周囲の前記環境(301)の前記視野を旋回させることによってプレビューシーン(222P)を表示する
    ようにさらに構成される、請求項15乃至24の何れか一項に記載のシステム(200)。
  26. 前記グラフィカルユーザインタフェース(221)が、前記ロボット(300)による物理的な動きを必要とすることなしに前記プレビューシーン(222P)を表示するように構成される、請求項25に記載のシステム(200)。
  27. 前記グラフィカルユーザインタフェース(221)が、前記グラフィカルユーザインタフェース(221)内に表示される旋回グラフィックの選択を示す入力指示を受信することに応答して前記旋回入力を受信するように構成される、請求項25又は26に記載のシステム(200)。
  28. 前記現在のシーン(222C)から離れる前記方向に前記ロボット(300)の周囲の前記環境(301)の前記視野を前記旋回させることが、前記現在のシーン(222C)から離れる前記方向に及び前記プレビューシーン(222P)に向かう前記方向に前記ロボット(300)がターン操作を行うことをシミュレートする、請求項25乃至27の何れか一項に記載のシステム(200)。
JP2022502295A 2019-08-07 2019-10-23 移動ロボットのナビゲーション Active JP7345042B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962883643P 2019-08-07 2019-08-07
US62/883,643 2019-08-07
PCT/US2019/057586 WO2021025715A1 (en) 2019-08-07 2019-10-23 Navigating a mobile robot
US16/661,062 US11340620B2 (en) 2019-08-07 2019-10-23 Navigating a mobile robot
US16/661,062 2019-10-23

Publications (2)

Publication Number Publication Date
JP2022543193A true JP2022543193A (ja) 2022-10-11
JP7345042B2 JP7345042B2 (ja) 2023-09-14

Family

ID=74498863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022502295A Active JP7345042B2 (ja) 2019-08-07 2019-10-23 移動ロボットのナビゲーション

Country Status (6)

Country Link
US (2) US11340620B2 (ja)
EP (1) EP4010771A1 (ja)
JP (1) JP7345042B2 (ja)
KR (1) KR20220082805A (ja)
CN (1) CN114503042A (ja)
WO (1) WO2021025715A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11835343B1 (en) * 2004-08-06 2023-12-05 AI Incorporated Method for constructing a map while performing work
US20210356957A1 (en) * 2018-01-12 2021-11-18 Superior Marine Products Llc Gesturing for control input for a vehicle
CN113211438B (zh) * 2021-05-08 2023-06-16 东方红卫星移动通信有限公司 基于预瞄距离自适应的轮式机器人控制方法及控制系统
US20220382282A1 (en) * 2021-05-25 2022-12-01 Ubtech North America Research And Development Center Corp Mobility aid robot navigating method and mobility aid robot using the same
CN117769484A (zh) * 2021-06-04 2024-03-26 波士顿动力公司 指向移动机器人的自主和远程操作传感器
CN114454162B (zh) * 2022-01-10 2023-05-26 广东技术师范大学 一种移动机器人复杂路口防碰撞方法及系统
CN114905506A (zh) * 2022-04-15 2022-08-16 北京航空航天大学杭州创新研究院 一种基于视觉感知和空间认知神经机制的机器人导航系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003136455A (ja) * 2001-11-07 2003-05-14 Sony Corp ロボットシステム、遠隔操作装置及び遠隔操作方法並びにロボット装置及びその制御方法
JP2003532218A (ja) * 2000-05-01 2003-10-28 アイロボット コーポレーション 移動ロボットを遠隔操作するための方法およびシステム
JP2014087892A (ja) * 2012-10-30 2014-05-15 Toshiba Corp 多脚ロボットの脚操作制御装置及び方法
US20150190925A1 (en) * 2014-01-07 2015-07-09 Irobot Corporation Remotely Operating a Mobile Robot
US20170203446A1 (en) * 2016-01-15 2017-07-20 Irobot Corporation Autonomous monitoring robot systems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073564B2 (en) * 2006-07-05 2011-12-06 Battelle Energy Alliance, Llc Multi-robot control interface
GB2494081B (en) * 2010-05-20 2015-11-11 Irobot Corp Mobile human interface robot
CN107265355A (zh) * 2017-07-06 2017-10-20 青岛海通胜行智能科技有限公司 一种基于智能穿戴和自然环境导航的智能拣选叉车系统
CN107515606A (zh) * 2017-07-20 2017-12-26 北京格灵深瞳信息技术有限公司 机器人实现方法、控制方法及机器人、电子设备
US10816994B2 (en) * 2018-10-10 2020-10-27 Midea Group Co., Ltd. Method and system for providing remote robotic control
CN109682381B (zh) * 2019-02-22 2020-09-25 山东大学 基于全向视觉的大视场场景感知方法、系统、介质及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003532218A (ja) * 2000-05-01 2003-10-28 アイロボット コーポレーション 移動ロボットを遠隔操作するための方法およびシステム
JP2003136455A (ja) * 2001-11-07 2003-05-14 Sony Corp ロボットシステム、遠隔操作装置及び遠隔操作方法並びにロボット装置及びその制御方法
JP2014087892A (ja) * 2012-10-30 2014-05-15 Toshiba Corp 多脚ロボットの脚操作制御装置及び方法
US20150190925A1 (en) * 2014-01-07 2015-07-09 Irobot Corporation Remotely Operating a Mobile Robot
US20170203446A1 (en) * 2016-01-15 2017-07-20 Irobot Corporation Autonomous monitoring robot systems

Also Published As

Publication number Publication date
EP4010771A1 (en) 2022-06-15
KR20220082805A (ko) 2022-06-17
US20220260998A1 (en) 2022-08-18
WO2021025715A1 (en) 2021-02-11
JP7345042B2 (ja) 2023-09-14
US11340620B2 (en) 2022-05-24
US20210041878A1 (en) 2021-02-11
CN114503042A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
JP7345042B2 (ja) 移動ロボットのナビゲーション
US9789612B2 (en) Remotely operating a mobile robot
JP5246672B2 (ja) ロボットシステム
US8989876B2 (en) Situational awareness for teleoperation of a remote vehicle
Lan et al. XPose: Reinventing User Interaction with Flying Cameras.
US20230321830A1 (en) Construction constrained motion primitives from robot maps
WO2022062442A1 (zh) Ar场景下的引导方法、装置、计算机设备及存储介质
EP3288828B1 (en) Unmanned aerial vehicle system and method for controlling an unmanned aerial vehicle
Li et al. StarHopper: A touch interface for remote object-centric drone navigation
Allspaw et al. Implementing Virtual Reality for Teleoperation of a Humanoid Robot
US11797016B2 (en) Online authoring of robot autonomy applications
Fournier et al. Immersive virtual environment for mobile platform remote operation and exploration
CN115655261B (zh) 地图生成方法、装置、机器人以及存储介质
Niroui et al. A graphical user interface for multi-robot control in urban search and rescue applications
Fiala A robot control and augmented reality interface for multiple robots
US11927961B2 (en) Constrained robot autonomy language
US20230297118A1 (en) Systems and methods for recording robot missions
Zhang et al. A rate-based drone control with adaptive origin update in telexistence
CN117191001A (zh) 一种搜救机器人的搜救方法、上位机和下位机
Rudzinska et al. An interactive system for mobile robot navigation
Schwarz et al. Supervised Autonomy for Exploration and Mobile Manipulation in Rough Terrain

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230814

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230904

R150 Certificate of patent or registration of utility model

Ref document number: 7345042

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150