JP2022543997A - 制約された移動度マッピング - Google Patents

制約された移動度マッピング Download PDF

Info

Publication number
JP2022543997A
JP2022543997A JP2022502057A JP2022502057A JP2022543997A JP 2022543997 A JP2022543997 A JP 2022543997A JP 2022502057 A JP2022502057 A JP 2022502057A JP 2022502057 A JP2022502057 A JP 2022502057A JP 2022543997 A JP2022543997 A JP 2022543997A
Authority
JP
Japan
Prior art keywords
map
robot
voxel
obstacle
sensor data
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
JP2022502057A
Other languages
English (en)
Other versions
JP7425854B2 (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 JP2022543997A publication Critical patent/JP2022543997A/ja
Application granted granted Critical
Publication of JP7425854B2 publication Critical patent/JP7425854B2/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/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
    • G05D1/0251Control 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 extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • 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
    • 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
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D57/00Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
    • B62D57/02Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
    • B62D57/032Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
    • 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/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/0219Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
    • 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
    • G05D1/0253Control 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 extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • 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/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/242Means based on the reflection of waves generated by the vehicle
    • 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/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
    • G05D1/2464Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM] using an occupancy grid
    • 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/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
    • G05D1/2465Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM] using a 3D model of the environment
    • 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/40Control within particular dimensions
    • G05D1/43Control of position or course in two dimensions
    • G05D1/435Control of position or course in two dimensions resulting in a change of level, e.g. negotiating lifts or stairs
    • 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/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • G05D1/622Obstacle avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles
    • G05D2109/12Land vehicles with legs

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

【課題】 移動の流動性およびバランスを維持しながら、制約のある環境をすばやくかつ/または効率的にナビゲートすること。【解決手段】 拘束された移動度マッピングの方法は、ロボット(100)の少なくとも1つのセンサー(132)からの少なくとも1つの元のデータ(134)のセット、およびロボット(100)の周りの環境(10)からの現在のデータのセットを受信することを含む。この方法は、少なくとも1つの元のセンサーデータのセットに基づいて、複数のボクセル(212)を含むボクセルマップ(210)を生成することをさらに含む。複数のボクセルは、少なくとも1つの地面ボクセルと、少なくとも1つの障害物ボクセルと、を含む。この方法はまた、現在のセンサーデータのセットに基づいて球形深度マップ(218)を生成することと、ボクセルマップと球形深度マップとの比較に基づいて、ボクセルマップによって表される障害物に変化が生じたことを決定することと、も含む。追加の方法は、障害物の変化を反映するためにボクセルマップを更新することを含む。【選択図】図1A

Description

本開示は、制約された移動度マッピングに関する。
ロボットデバイスは、様々なタスクまたは機能を実施するために、制約された環境、または別様に雑然とした環境においてますます使用されている。これらのロボットデバイスは、障害物を踏む、または障害物にぶつかることなく、これらの制約された環境内をナビゲートすることが必要となり得る。これらのロボットデバイスが普及するにつれて、バランスおよびスピードを維持しながら障害物との接触を回避するリアルタイムなナビゲーションおよびステッププランニングが必要となる。
本開示の一態様は、制約された移動度マッピングの方法を提供する。本方法は、データ処理ハードウェアにおいて、ロボットの少なくとも1つのセンサーから、少なくとも1つの元のセンサーデータのセットおよび現在のセンサーデータのセットを受信することを含む。ここで、少なくとも1つの元のセンサーデータのセットおよび現在のセンサーデータのセットの各々は、ロボットがボディを含むロボットの周りの環境に対応する。本方法は、データ処理ハードウェアによって、少なくとも1つの元のセンサーデータのセットに基づいて複数のボクセルを含むボクセルマップを生成することをさらに含む。複数のボクセルは、少なくとも1つの地面ボクセルおよび少なくとも1つの障害物ボクセルを含む。本方法はまた、データ処理ハードウェアによって、現在のセンサーデータのセットに基づいて球形深度マップを生成することと、データ処理ハードウェアによって、ボクセルマップと球形深度マップとの間の比較に基づいて、ボクセルマップによって表される障害物に変化が発生したことを決定することと、も含む。追加の方法は、データ処理ハードウェアによって、環境内の障害物の変化を反映するためにボクセルマップを更新することを含む。
本開示の実装形態は、以下の任意選択の特徴のうちの1つ以上を含み得る。いくつかの実装例では、ロボットは四足動物を画定する4つの脚を含む。いくつかの例では、ボクセルマップを生成することは、ロボットの周りの空間の3次元単位が占有されているかどうかを決定することと、占有されている各3次元単位について、それぞれの単位を地面、障害物、または地面でも障害物でもないもののうちの1つとして分類することと、を含む。いくつかの構成では、球形深度マップは、現在のセンサーデータのセットの球形表現を含み、球形表現は、現在のセンサーデータのセットを捕捉する少なくとも1つのセンサーからの距離および高さにおけるセンサーデータの点によって画定される矩形構造体を含む。いくつかの実装例では、環境内の障害物の変化を反映するためにボクセルマップを更新することは、変化に関連付けられている障害物に対応するボクセルマップから1つ以上のボクセルを削除することを含む。ここで、1つ以上のボクセルを削除するには、ヒューリスティックを使用して、環境による物体の変化に関連付けられている近くのボクセルを識別することと、識別された近くのボクセルを削除することと、を含み得る。
いくつかの例では、ボクセルマップは3次元(3D)グリッドを含み、本方法は、ボクセルマップの3Dグリッドの各セルに対して、データ処理ハードウェアによって、それぞれの垂直方向の列の連続したボクセルを統合して、セグメントを形成することをさらに含む。ここで、セグメントは、高さおよび点重みを含み、点重みは、少なくとも1つの元のセンサーデータのセットに基づいて、セグメントを形成する1つ以上のボクセルが占有されている確実性の程度を示す。これらの例では、本方法は、データ処理ハードウェアによって、それぞれのセグメントの点重みを、現在のセンサーデータのセットがそれぞれのセグメントを定義するセンサーデータを含まないときには、減少させることをさらに含み得る。追加的または代替的に、これらの例では、本方法はまた、データ処理ハードウェアによって、ボクセルマップ内の位置におけるセグメントの高さを、球形深度マップ内のそれぞれの位置における列からの高さの範囲と比較することも含み得、セグメントの位置および列のそれぞれの位置は、ロボットに対して同じ位置に対応する。これらの例では、環境内の障害物の変化を反映するためにボクセルマップを更新することは、変化に関連付けられている障害物に対応するセグメントを切り取ることを含む。
本開示の別の態様はまた、制約された移動度マッピングの方法も提供する。本方法は、データ処理ハードウェアにおいて、ロボットがボディを含むロボットの少なくとも1つのセンサーから、ロボットに関する環境に対応するセンサーデータを受信することを含む。本方法は、データ処理ハードウェアによって、センサーデータに基づいて複数のボクセルを含むボクセルマップを生成することをさらに含む。ここで、複数のボクセルは、少なくとも1つの地面ボクセルおよび少なくとも1つの障害物ボクセルを含む。本方法はまた、ボクセルマップに基づいて、データ処理ハードウェアによって、ロボットのボディが環境内の障害物との干渉を伴わずに移動することができる環境内の位置を示すように構成されたボディ障害物マップを生成することも含む。複数のセルが最も近い障害物境界の指示を含み、最も近い障害物境界がボクセルマップの少なくとも1つの障害物ボクセルから導出される、セルに分割されたボディ障害物マップ。本方法は、ボディ障害物マップを、ロボットを環境の周りで移動させるように構成された制御システムに通信することをさらに含む。
本態様は、以下の任意選択の機能のうちの1つ以上を含んでもよい。いくつかの実装例では、指示は、最も近い障害物境界までの距離の推定値と、最も近い障害物境界への方向と、を含む。ここで、ボディ障害物マップを生成することは、複数のベクトルを含むベクトルフィールドを生成することを含み得、複数のベクトルの各ベクトルは、障害物回避の方向を示し、各ベクトルは、最も近い障害物境界への方向とは反対のベクトル方向を含む。いくつかの例では、制御システムは、ボディ障害物マップを使用して、ロボットのボディの水平方向の運動およびロボットのボディのヨー回転を制御するように構成される。複数のセルは、障害物の境界に対応しなくてもよい。
いくつかの構成では、本方法はまた、データ処理ハードウェアによって、複数のボクセルの各ボクセルに関連付けられている点重みに基づいて、ボクセルマップの複数のボクセルをフィルタリングすることも含み得る。ここで、点重みは、センサーデータに基づいて、それぞれのボクセルが占有されている確実性の程度を示す。これらの構成では、ボクセルマップに基づいてボディ障害物マップを生成することは、点重み閾値を満たし、かつ障害物ボクセルに対応するフィルタリングされた複数のボクセルをボディ障害物マップに変換することを含む。
本開示の第3の態様はまた、制約された移動度マッピングの方法を提供する。本方法は、データ処理ハードウェアにおいて、ロボットがボディと各脚が遠位端を含む脚とを含むロボットの少なくとも1つのセンサーから、ロボットの周りの環境に対応するセンサーデータを受信することを含む。本方法は、データ処理ハードウェアによって、センサーデータに基づいて、複数のセグメントを含むボクセルマップを生成することをさらに含み、複数のセグメントの各セグメントは、1つ以上のボクセルによって画定される垂直方向の列に対応する。ここで、複数のセグメントは、少なくとも1つの地面セグメントおよび少なくとも1つの障害物セグメントを含む。ボクセルマップに基づいて、本方法はまた、データ処理ハードウェアによって、ロボットが環境の周りで移動しているときにロボットのそれぞれの脚の遠位端を配置するための高さを示すように構成された地面高さマップを生成することも含む。地面高さマップはセルに分割され、少なくとも1つのセルがそれぞれの地面セグメントに対応し、それぞれの地面セグメントに基づくそれぞれの高さを含む。本方法は、データ処理ハードウェアによって、地面高さマップを制御システムに通信し、制御システムは、地面高さマップに基づいて、それぞれの脚の遠位端を環境内の配置位置に移動させるように構成されている、通信することと、をさらに含む。
本態様は、以下の任意選択の機能のうちの1つ以上を含んでもよい。いくつかの実装例では、地面高さマップを生成することは、それぞれの地面セグメントの1つ以上のボクセルの点重みが、センサーデータに基づいて、それぞれのボクセルが占有されている確実性の程度を示す高さ精度閾値を満たすことを決定することを含む。ここで、高さ精度閾値は、それぞれの地面セグメントによって表される所与の物体の高さ精度のレベルを示す。これらの実装例では、それぞれの地面セグメントの1つ以上のボクセルの点重みが高さ精度閾値を満たすことを決定することが、それぞれの地面セグメントを画定する1つ以上のボクセルを、それぞれの地面セグメントの最大高さから、それぞれの地面セグメントの最小高さまで昇降することを含む。
いくつかの例では、本方法は、以下も含む。データ処理ハードウェアによって、地面高さマップの1つ以上のセルが欠落している地形に対応することを識別することと、データ処理ハードウェアによって、欠落している地形がセンサーデータの妨害に対応するかどうかを決定することと、欠落した地形がセンサーデータの妨害に対応するとき、データ処理ハードウェアによって、欠落している地形を平坦な地形に置き換えること。欠落している地形がセンサーデータの妨害に対応しないときには、本方法は、データ処理ハードウェアによって、欠落している地形を平滑な地形に置き換えることをさらに含み得る。ここで、平滑な地形では、本方法は、地面高さマップの後続の反復中に地面高さマップの平滑な地形を持続させなくてもよい。いくつかの構成では、新しいセンサーデータが平坦な地形に対応する実際の地形を識別するまで、平坦な地形は地面高さマップ内で持続する。
本開示の第4の態様はまた、制約された移動度マッピングの方法を提供する。本方法は、データ処理ハードウェアにおいて、ロボットがボディと各脚が遠位端を含む脚とを含むロボットの少なくとも1つのセンサーから、ロボットの周りの環境に対応するセンサーデータを受信することを含む。本方法は、データ処理ハードウェアによって、センサーデータに基づいて、複数のセグメントを含むボクセルマップを生成することをさらに含み、複数のセグメントの各セグメントは、1つ以上のボクセルによって画定される垂直方向の列に対応する。ここで、複数のセグメントは、少なくとも1つの地面セグメントおよび少なくとも1つの障害物セグメントを含む。ボクセルマップに基づいて、本方法はまた、データ処理ハードウェアによって、ロボットが環境の周りで移動しているときにロボットのそれぞれの脚の遠位端を配置するための高さを示すように構成された地面高さマップを生成することも含む。地面高さマップに基づいて、本方法は、データ処理ハードウェアによって、1つ以上のステップなし領域を含むステップなしマップを生成することをさらに含み、各ステップなし領域は、ロボットが環境の周りで移動しているときに、ロボットのそれぞれの脚の遠位端を配置しない領域を示すように構成される。ここで、ステップなしマップはセルに分割され、各セルは距離値と方向ベクトルとを含む。距離値は、セルに最も近い障害物の境界までの距離を示す。方向ベクトルは、セルに最も近い障害物の境界への方向を示す。本方法は、データ処理ハードウェアによって、ステップなしマップを、ステップなしマップに基づいて、環境内の配置位置にそれぞれの脚の遠位端を移動するように構成された制御システムに通信することをさらに含む。
本態様は、以下の任意選択の機能のうちの1つ以上を含んでもよい。最も近い障害物の境界までの距離は、セルが最も近い障害物の内側にあるか、または最も近い障害物の外側にあるかを識別する符号を含み得る。1つ以上のステップ領域のうちの少なくとも1つのステップなし領域は、ロボットの現在の姿勢に基づいてロボットにアクセス可能でないエリアを識別し、ロボットにアクセス可能なエリアは、現在の姿勢とは異なる代替の姿勢である。いくつかの例では、ステップなしマップを生成することは、ロボットの特定の脚のステップなしマップを生成することも含む。いくつかの実装例では、本方法はまた、データ処理ハードウェアによって、ボクセルマップの少なくとも1つの障害物セグメントに基づいて、それぞれのセルに最も近い障害物を決定することも含み得る。
いくつかの構成では、本方法は、データ処理ハードウェアによって、以下の動作による潜在的な脛衝突に対応する第1のステップなし領域を決定することをさらに含む:指令されたスピードを達成するための脚の最小勾配を決定することと、最小勾配に基づいて、脛衝突高さを識別することと、ステップなしマップの各セル対して、脛衝突高さをそれぞれのセルの地面高さと比較することであって、それぞれのセルの地面高さマップから受信される、比較すること。これらの構成では、本方法はまた、データ処理ハードウェアによって、それぞれのセルの脛衝突高さと地面高さとの間の差が脛衝突閾値を満たすことを決定することも含み得る。
本開示の1つ以上の実装例の詳細が、添付図面および以下の説明において記述される。他の態様、特徴、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
ロボット環境内の例示的なロボットの概略図である。 図1Aのロボットのシステムの例示的なシステムの概略図である。 図1Aのロボットのボクセルマップの例示的な投影の斜視図である。 図1Aのロボットのボクセルマップの例示的な投影の斜視図である。 図1Aのロボットの例示的なボクセルマップの斜視図である。 ボクセル分類の例の概略図である。 ボクセル分類の例の概略図である。 図1Aのロボットの位置に基づくボクセル分類の例の斜視図である。 図1Aのロボットの位置に基づくボクセル分類の例の斜視図である。 負のセグメントを有する例示的なボクセルマップの斜視図である。 ボクセルマップの光線追跡の例の斜視図である。 ボクセルマップの光線追跡の例の斜視図である。 ボクセルマップの光線追跡の例の斜視図である。 ボクセルマップの光線追跡の例の斜視図である。 図1Aのロボットによって生成された例示的なボディ障害物マップの概略図である。 図1Aのロボットによって生成された例示的なボディ障害物マップの概略図である。 図1Aのロボットによって生成された例示的なボディ障害物マップの概略図である。 図1Aのロボットによって生成された例示的なボディ障害物マップの概略図である。 図1Aのロボットによって生成された例示的なボディ障害物マップの概略図である。 図1Aのロボットによって生成された例示的なボディ障害物マップの概略図である。 図1Aのロボットによるボディ障害物マップ生成のための例示的な処理技術の概略図である。 図1Aのロボットによるボディ障害物マップ生成のための例示的な処理技術の概略図である。 図1Aのロボットによるボディ障害物マップ生成のための例示的な処理技術の概略図である。 図1Aのロボットによるボディ障害物マップ生成のための例示的な処理技術の概略図である。 図1Aのロボットによるボディ障害物マップ生成のための例示的な処理技術の概略図である。 図1Aのロボットによるボディ障害物マップ生成のための例示的な処理技術の概略図である。 図1Aのロボットによる地面高さマップ生成の例の概略図である。 図1Aのロボットによって生成された地面高さマップの例の斜視図である。 図1Aのロボットによって生成された例示的なステップなしマップの概略図である。 図1Aのロボットによって生成された例示的なステップなしマップの概略図である。 図1Aのロボットによって生成された例示的なステップなしマップの概略図である。 脛衝突のリスクに基づく例示的なステップなしマップなしの斜視図である。 図1Aのロボットによって生成された例示的なステップなしマップの概略図である。 図1Aのロボットの1つ以上の足に基づくステップなしマップの例の斜視図である。 図1Aのロボットの1つ以上の足に基づくステップなしマップの例の斜視図である。 図1Aのロボットによって生成されたステップなしマップの例の概略図である。 図1Aのロボットによって生成されたステップなしマップの例の概略図である。 ロボットがロボットの周りの環境を昇降するためのマップを生成するための動作例示的な構成である。 ロボットがロボットの周りの環境を昇降するためのマップを生成するための動作例示的な構成である。 ロボットがロボットの周りの環境を昇降するためのマップを生成するための動作例示的な構成である。 ロボットがロボットの周りの環境を昇降するためのマップを生成するための動作例示的な構成である。 本明細書に記載のシステムおよび方法を実施するために使用され得る例示的なコンピューティングデバイスの概略図である。
様々な図面中の同様の参照記号は、同様の要素を示す。
脚型ロボットデバイス(「ロボット」とも称される)が普及するにつれて、多くの点で制約されている環境内をロボットがナビゲートする必要性が高まっている。例えば、ロボットは、床に大小の物体が散らばっている雑然とした部屋を昇降するか、または階段を昇らなければならない場合がある。典型的には、このような種類の環境をナビゲートすることは、遅くて骨の折れるプロセスであり、脚型ロボットが頻繁に停止する、物体と衝突する、および/またはバランスを崩す結果となる。例えば、物体との衝突のリスクを回避することでさえ、ロボットのバランスを崩す可能性がある。これらの欠点のいくつかに対処するために、ロボットは、障害物を有する環境でのロボットの移動をガイドし、および/または管理するのに役立つロボットに関するセンサーに基づくマップを構築する。これらのマップを使用すると、ロボットはリアルタイムで移動の制約を考慮しながら地形を昇降できるため、脚型ロボットデバイスは、移動の流動性およびバランスを維持しながら、制約のある環境をすばやくかつ/または効率的にナビゲートすることができる。
図1Aを参照すると、ロボット100は、ロボット100がロボット環境10の周りで移動することを可能にするボディ110に結合された脚120a~dなどの歩行運動ベースの構造体を備えたボディ110を含む。いくつかの例では、各脚120は、1つ以上の関節Jが脚120の部材122が移動することを可能にするような関節運動可能な構造である。例えば、各脚120は、脚120の上側部材122、122をボディ110に結合する股関節Jと、脚120の上側部材122を脚120の下側部材122に結合する膝関節Jと、を含む。図1Aは、4つの脚120a~dを有する四足ロボットを示すが、ロボット100は、環境10内の地形を昇降するための手段を提供する任意の数の脚または歩行運動ベースの構造体(例えば、2つの脚を有する二足歩行もしくはヒト型ロボット)を含み得る。
地形を昇降するために、各脚120は、地形の表面に接触している遠位端124を有する。言い換えれば、脚120の遠位端124は、ロボット100の移動中に枢動、据え付け、または概して静止摩擦を提供するためにロボット100によって使用される脚120の端部である。例えば、脚120の遠位端124は、ロボット100の足に対応する。図示されていないが、いくつかの例では、脚120の遠位端124は、遠位端124が脚120の下側部材122に対して関節運動可能であるように、足首関節Jを含む。
ロボット100は、重力の方向に沿った垂直方向の軸(例えば、Z方向の軸Aとして示される)と、ロボット100の分布質量の重み付けされた相対位置が合計してゼロとなる点である質量の中心CMと、を有する。さらに、ロボット100は、垂直方向の重力軸A(すなわち、重力に対して固定された基準フレーム)に対するCMに基づいたポーズPを有し、ロボット100によって採られる特定の姿勢またはスタンスを定義する。ロボット100の姿勢は、空間におけるロボット100の配向または角度位置によって画定され得る。ボディ110に対する脚部120による動きにより、ロボット100のポーズP(すなわち、ロボットのCMの位置とロボット100の姿勢または配向の組み合わせ)が変更される。ここで、高さは一般的にz方向に沿った距離を指す。ロボット100の矢状平面は、y方向の軸Aおよびz方向の軸Aの方向に延びるY-Z平面に対応する。矢状平面に略垂直であるように、x方向の軸Aおよびy方向の軸Aの方向に延びるX-Y平面上には、地面平面(横断平面とも称される)が設けられている。地面平面は、ロボット100の脚120の遠位端124が、ロボット100が環境10の周りで移動するのを助けるために牽引力を生成することができる地面平面12を指す。
環境10の周りで動くために、ロボット100は、1つ以上のセンサー132、132a~n(例えば、第1のセンサー132、132aおよび第2のセンサー132、132bとして示される)を備えたセンサーシステム130を含む。センサー132は、視覚/画像センサー、慣性センサー(例えば、慣性測定ユニット(IMU))、力センサー、および/または運動学的センサーを含み得る。センサー132のいくつかの例としては、ステレオカメラなどのカメラ、走査光検出と測距(LIDAR)センサー、または走査レーザー検出と測距(LADAR)センサーが挙げられる。いくつかの実施例では、センサー132は、センサー132に対応する感知範囲または領域を画定する、対応する視野Fを有する。例えば、図1Aは、ロボット100の視野Fを示す。各センサー132は、センサー132が、例えば、1つ以上の軸(例えば、グランドプレーンに関するx軸、y軸、またはz軸)周りの視野Fを変更し得るように、枢動可能および/または回転可能であり得る。
センサー132を用いて視野Fを調査するときに、センサーシステム130は、視野Fに対応するセンサーデータ134(画像データとも称される)を生成する。いくつかの例では、センサーデータ134は、3次元体積センサー132によって生成された3次元体積点群に対応する画像データである。追加的または代替的に、ロボット100が環境10の周りで動いているとき、センサーシステム130は、慣性測定データ(例えば、IMUによって測定された)を含む、ロボット100についてのポーズデータを収集する。いくつかの実施例では、ポーズデータは、ロボット100に関する運動学的データおよび/または向きデータを含む。センサーデータ134を用いて、ロボット100の知覚システム200は、環境10に関する地形のマップ210、220、230、240を生成し得る。
ロボット100が環境10の周りで動くとき、センサーシステム130は、環境10の地形に関連するセンサーデータ134を収集する。例えば、図1Aは、ロボット100の環境10としての空間に関するセンサーデータ134を収集しているセンサーシステム130を示している。センサーシステム130がセンサーデータ134を収集すると、コンピューティングシステム140は、センサーデータ134を格納し、処理し、および/またはロボット100の様々なシステム(例えば、知覚システム200、または制御システム170)に通信するように構成される。センサーデータ134に関連するコンピューティングタスクを実行するために、ロボット100のコンピューティングシステム140は、データ処理ハードウェア142と、メモリハードウェア144と、を含む。データ処理ハードウェア142は、メモリハードウェア144に格納された命令を実行して、ロボット100の活動(例えば、移動および/または移動ベースの活動)に関連するコンピューティングタスクを実行するように構成される。一般的に言えば、コンピューティングシステム140は、データ処理ハードウェア142および/またはメモリハードウェア144の1つ以上の位置を指す。いくつかの例では、コンピューティングシステム140は、ロボット100上に位置しているローカルシステムである。ロボット100上に位置しているとき、コンピューティングシステム140は、集中型(すなわち、ロボット100上の単一の位置/エリア、例えば、ロボット100のボディ110内にある)、分散型(すなわち、ロボット100の周りの様々な位置に配置される)、または両方のハイブリッドな組み合わせ(例えば、大多数の集中型ハードウェアおよび少数の分散型ハードウェアが存在する)であり得る。いくつかの違いを説明するために、分散型コンピューティングシステム140は、活動位置(例えば、脚120の関節を移動させるモーター)における処理が発生することを可能にし得る一方で、集中型コンピューティングシステム140は、ロボット100の様々な位置に位置しているシステムに通信する(例えば、脚120の関節を移動させるモーターに通信する)中央処理ハブを可能にし得る。追加的または代替的に、コンピューティングシステム140は、ロボット100から離れて位置しているコンピューティングリソースを含む。例えば、コンピューティングシステム140は、ネットワーク150を介してリモートシステム160(例えば、リモートサーバーまたはクラウドに基づく環境)と通信する。コンピューティングシステム140と同様に、リモートシステム160は、リモートデータ処理ハードウェア162およびリモートメモリハードウェア164などのリモートコンピューティングリソースを含む。ここで、センサーデータ134または他の処理されたデータ(例えば、コンピューティングシステム140によるローカルでのデータ処理)は、リモートシステム160に格納され得、コンピューティングシステム140にアクセス可能であり得る。いくつかの例では、コンピューティングシステム140は、コンピューティングシステム140のリソースがリモートシステム160のリソース上に存在し得るように、コンピューティングリソース142、144の拡張としてリモートリソース162、164を利用するように構成される。
いくつかの実装例では、図1Aおよび1Bに示されるように、ロボット100は、制御システム170と、知覚システム200と、を含む。知覚システム200は、センサーシステム130からセンサーデータ134を受信し、センサーデータ134をマップ210、220、230、240に処理するように構成される。知覚システム200によって生成されたマップ210、220、230、240を用いて、知覚システム200は、ロボット100を環境10の周りで移動させることなど、ロボット100に対して制御されたアクションを実行するために、マップ210、220、230、240を制御システム170に通信し得る。いくつかの例では、知覚システム200を制御システム170から分離し、ただし制御システム170と通信させることによって、制御システム170のための処理は、ロボット100の制御することに集中し、一方、知覚システム200のための処理は、センサーシステム130によって収集されたセンサーデータ134を解釈することに集中してもよい。例えば、これらのシステム200、170は、それらの処理を並行して実行して、環境10におけるロボット100の正確で流動的な移動を確実にする。
いくつかの例では、制御システム170は、少なくとも1つのコントローラ172と、パスジェネレータ174と、ステップロケータ176と、ボディプランナ178と、を含む。制御システム170は、少なくとも1つのセンサーシステム130および知覚システム200と通信するように構成される。制御システム170は、ハードウェア140を使用して動作および他の機能を実行する。コントローラ172は、ロボット100のシステム(例えば、制御システム170、および/または知覚システム200)からの入力またはフィードバックに基づいて、環境10の周りを昇降するようにロボット100の移動を制御するように構成される。これは、ロボット100のポーズおよび/または挙動の間の動きを含み得る。例えば、コントローラ172は、異なった足跡パターン、脚パターン、ボディ動きパターン、または視覚システム感知パターンを制御する。
いくつかの実施例では、コントローラ172は、コントローラ172の各々が固定ケイデンスを有する複数のコントローラ172を含む。固定ケイデンスは、脚120のステップまたは遊脚相の固定タイミングを指す。例えば、コントローラ172は、ロボット100に、特定の周波数(例えば、250ミリ秒、350ミリ秒ごとのステップなど)で脚120を動かす(例えば、ステップを踏む)ように命令する。各コントローラ172が固定ケイデンスを有する複数のコントローラ172を用いて、ロボット100は、コントローラ172間で切り替えることによって可変タイミングを経験することができる。いくつかの実装例では、ロボット100は、ロボット100が環境10を昇降するときに、固定ケイデンスコントローラ172を連続的に切り替え/選択する(例えば、3ミリ秒ごとにコントローラ170を再選択する)。
図1Bを参照すると、パスジェネレータ174は、ロボット100の水平方向の動きを決定するように構成される。例えば、水平方向の運動とは、ロボット100の並進(すなわち、X-Y平面内の移動)および/またはヨー(すなわち、Z方向の軸Aの周りの回転)を指す。パスジェネレータ174は、センサーデータ134に基づいて、ロボット100に関する環境10内の障害物を決定する。パスジェネレータ174は、その最適化の開始点として、名目上の無衝突パスをステップロケータ176に提供する。ステップロケータ176はまた、ステップロケータ176がロボット100の脚120のための足配置(例えば、ロボット100の脚120の遠位端124を配置する位置)を識別し得るように、障害物に関する情報も受信する。ステップロケータ176は、知覚システム200からの入力(例えば、マップ210、220、230、240)を使用して、足配置(すなわち、ロボット100がステップするべき位置)を生成する。ボディプランナ178は、ステップロケータ176と同様に、知覚システム200からの入力を受信する(例えば、マップ210、220、230、240)。一般的に言えば、ボディプランナ178は、ロボット100のボディ110の動態(例えば、ピッチもしくはヨー、および/またはCOMの高さなどの回転)を調整して、環境10の周りで首尾よく移動するように構成される。
知覚システム200は、ロボット100が様々な障害物のある地形においてより正確に移動するのを助けるロボットのシステムである。センサー132は、ロボット100の周りの空間(すなわち、ロボットの環境10)のセンサーデータ134を収集すると、知覚システム200は、センサーデータ134を使用して、環境10の1つ以上のマップ210、220、230、240を形成する。知覚システム200がマップ210、220、230、240を生成すると、知覚システム200はまた、地図210、220、230、240に情報を追加するように(例えば、既存のマップにセンサーデータ134を投影することによって)、および/またはマップ210、220、230、240から情報を削除する(例えば、現在のセンサーデータ134に基づいて既存のマップを光線追跡することによって)ようにも構成される。マップ210、220、230、240は、本明細書では別々に説明されているが、それにもかかわらず、知覚システム200は、各マップに対して説明された情報および特徴を伝達するために任意の数のマップを生成することができる。
図2A~2Lを参照すると、いくつかの実装例では、知覚システム200は、ボクセルマップ210を生成する。知覚システム200は、ロボット100の世界基準フレームとロボット100に関する局所基準フレームとの組み合わせに基づいてボクセルマップ210を生成する。ここで、知覚システム200は、世界基準フレームを表すために、ロボット100の位置を(例えば、ロボット100のボディ110の位置および/または速度によって)定義するロボット100のオドメトリ情報を受信し、局所基準フレームを表すロボット100の近傍のエリアとして、センサー132の範囲内のエリアを定義するセンサーデータ134を受信する。オドメトリ情報およびセンサーデータ134を使用して、知覚システム200は、ロボット100の周りの3次元空間を表すためにボクセルマップ210を生成する。いくつかの実装例では、ロボット100のシステムは、ロボット100の現在のオドメトリ情報を維持するために、ロボットの相対運動を経時的に追跡し得る(例えば、同時位置特定およびマッピング(SLAM)を使用する)。いくつかの例では、ボクセルマップ210は、ボクセルマップ210がある期間にわたる複数のセンサーデータ134のセットを含むように、知覚システム200によるセンサーデータ134の履歴収集を表すデータ構造である。
ボクセルマップ210は、一般に、3次元空間をボクセル212(すなわち、ピクセルの3次元表現に対応するグラフィック単位)として表す。例えば、図2Aは、ボクセル212、2121-iの3次元(3D)グリッドを示している。いくつかの例では、ボクセルマップ210の各ボクセル212は、3センチメートルの立方体エリアを表している。いくつかの構成では、ボクセルマップ210は、ボクセル212をセグメント214、2141-iとして表している(例えば、図2Bに示されるように)。セグメント214は、ボクセル212を垂直方向の列に統合することを指す。言い換えれば、知覚システム200は、3Dグリッドの同じ垂直方向の列内のボクセル212を組み合わせて、少なくとも1つのセグメント214を形成する。例えば、図2Cは、第1のセグメント214、214aと第2のセグメント214、214bとを備えたセルの3Dグリッドを示している。ボクセル212をセグメント214として表すことによって、知覚システム200は、ロボット100の環境10内の様々な障害物または物体の分類を単純化し得る。言い換えれば、知覚システム200は、垂直方向の統合に起因して、数千のボクセル212ではなく、数百のセグメント214でボクセルマップ210を処理する。
いくつかの実装例では、知覚システム200は、セグメント214を形成するときにギャップ閾値で構成される。言い換えれば、ギャップGpまたはボクセル212の非連続的な垂直方向の列は、知覚システム200に、ギャップGpの前のボクセル212の垂直方向の列の連続した部分を表す第1のセグメント214を終了させ、ギャップGpの後のボクセル212の垂直方向の列の第2の連続した部分を第2のセグメント214として表させることができる。例えば、図2Cは、第2のセグメント214bを単一のセグメント214として示しているが(例えば、同じ灰色の影で指定されている)、知覚システム200は、図2Cに示されるギャップGpがギャップ閾値を満たすのに十分な大きさである場合、第2のセグメント214bを別のセグメント214に分割するであろう。したがって、ボクセル212の垂直方向の列は、列内のギャップのサイズがギャップ閾値を満たす(例えば、超える)かどうかに応じて、複数のセグメント214を含むことができる。一方、ギャップGpの大きさが閾値を満たすことができない場合(例えば、図2Cに示されるように)、知覚システム200は、ギャップGpを無視し、ギャップGpを有するボクセル212の垂直方向の列全体を単一のセグメント214として解釈するように構成される。いくつかの例では、ギャップ閾値は30センチメートルであり、30センチメートルを超える任意の垂直方向のギャップは、ギャップGpの一方の側においてセグメント214を終了し、ギャップGpの他方の側において新しいセグメント214の形成を引き起こすようになっている。ギャップGpにおいてセグメント214を分離することによって、知覚システム200は、同じセグメント214内のすべてのボクセルが同じ下にある物体に対応することを推測するように構成され得る。
引き続き図2Cを参照すると、知覚システム200は、ボクセルマップ210を分類して(例えば、セグメント214を分類して)、地面(すなわち、ロボット100が踏むことができることを知覚システム200が解釈する幾何学的エリア)、障害物(すなわち、ロボット100の移動に干渉する可能性があることを知覚システム200が解釈する幾何学的エリア)、または地面でも障害物でもないもの(例えば、無視され得るロボット100の上にあるもの)に対応する部分を識別するように構成される。いくつかの構成では、ボクセルマップ210は、列の密な2次元グリッドを含み、列は、2次元グリッドの各特定のエリア(すなわち、セル)内のいくつかのセグメント214の数値表現である。さらに、各列は、列がその列に存在するボクセル212の数のカウントを含むように、ボクセル212の疎らなリストを含み得る。列は2次元グリッドのセルにおける垂直方向のセグメント214に対応し得るので、各セルは0個以上のセグメント214を有し得る。知覚システム200がボクセル212を1つ以上のセグメント214にグループ化するとき、知覚システム200は、各セグメント214(またはボクセル212)を、地面214、214、地面下214、214UG、障害物214、214OB、または頭上214、214OHなどの、対応する分類に分類するように構成される。セグメント214を地面214として分類することによって、知覚システム200は、ロボット100がセグメント214の上部を踏む可能性があることを示している。知覚システム200がセグメント214を地下214として分類すると、この地下の分類は、知覚システム200またはロボット100の他のシステムのさらなる処理のために無視され得るセグメント214を示している。障害物214OBとして分類されたセグメント214は、ロボット100が衝突する可能性があり、踏むことができない物体を指す。ここで、頭上214OHとして分類されたセグメント214は、ロボット100が下を昇降することができると知覚システム200が識別したセグメント214を指す。
一般的に言えば、本明細書の言語は、「地面」を指す一方で、時に地面12(または地面平面)にも言及する。地面12とは、世界環境10の特徴部を指す。対照的に、地面Gは、ロボット100が踏み得るエリア(例えば、ボクセル212またはセグメント214)の知覚システム200による指定を指す。同様に、物体14は、世界環境10における物理的な構造体または特徴部であり、一方、「障害物O」は、知覚システム200による物体14の指定(例えば、占有されたボクセル212または障害物セグメント214OB)である。言い換えれば、センサーシステム130は、環境10においてロボット100の近くにある物体14に関するセンサーデータ134を収集するが、その物体14は、物体14がロボット100の移動を妨げるかまたは防ぐ可能性があるエリアであるため、知覚システム200が障害物Oとして解釈(すなわち、知覚)するものである。
いくつかの実装例では、知覚システム200は、凸性の仮定に基づいて分類を実行するように構成される。凸性の仮定は、ロボット100が方向を変えずに中心から略外側に移動することを想定している。知覚システム200に関して、凸性の仮定は、知覚システム200に、ロボット100に最も近いその分類プロセスを開始し、外側に分類するように指示する。凸性の仮定に基づく知覚システム200による分類中に、知覚システム200は、連想的な方法でセル(またはセグメント214)を分類し得る。言い換えれば、セルの分類は、知覚システム200がロボット100とセルとの間で知覚したセルに基づいている。
ロボット100が感知する物体を分類するとき、知覚システム200は、様々な問題に遭遇する可能性がある。例えば、知覚システム200が分類のために1.5次元(1.5D)分析(すなわち、その1D線上の各点に対する高さ関数を有する1次元の線)を使用する場合、知覚システム200は、ロボット100が数回連続して上方に昇降し、おそらくある程度の期間、その上方への昇降を継続するべきではないかどうかを識別する問題に遭遇するリスクを冒す。言い換えれば、ロボット100は、地形を登っている可能性があり、必ずしも環境10の最も低い真の表面に沿って相対的に昇降しているとは限らない。1.5D分析の別の潜在的な問題は、一連のセル(例えば、隣接するセル)の全体的な勾配を定量化することが困難である可能性があり、その結果、ロボット100は、あまりにも急な勾配のセルを昇降しようとする。
これらの欠点に対処するための潜在的なアプローチは、知覚システム200が許容高さプロセスを使用することである。許容高さ方法では、知覚システム200は、ロボット100が踏むことができない各セルの近傍の(例えば、隣接する)空間領域を定義する。知覚システム200によって知覚されたすべてのセルまたはセルのいくつかのクラスタに対して、ロボット100が踏むことができない空間エリアで、知覚システム200は、ロボット100が踏むことができる位置を、ロボット100が踏むことができないエリアとして指定されていない空間領域の交点として分類する(すなわち、地面分類)。このアプローチは、1.5D分類アプローチのいくつかの欠陥を修正することができるが、環境10によっては、この方法は、知覚システム200が、ロボット100が踏むことができる地面として十分なセルを分類しないような、あまりにも制限的なものになる可能性がある。
図2Dなどのいくつかの実装例では、知覚システム200がセグメント214を効率的および/または正確に分類することができるように許容高さプロセスをより堅牢にするために、知覚システム200は、その特定のセル以降の許容高さの追跡でセルの分類プロセスを開始する。ここで、追跡とは、ロボット100が1つのセルから隣接するセルに踏み出すことができる高さの許容範囲を指す(例えば、凸性の仮定を考慮に入れる場合)。例えば、図2Dおよび2Eは、5つのセグメント214、214a~eおよびそれぞれの開始セルの位置(灰色で示されている)を参照する追跡線216を示している。知覚システム200が分類中にセルを昇降するとき、追跡線216はシフトし(例えば、図2Dから図2Eに)、追跡の終わりに許容範囲の高さを追加することを継続する。シフト後、知覚システム200は、追跡に対する現在の許容範囲の高さを処理し、小さな外乱(例えば、高さの外乱)を削除し、許容高さ範囲を単調になるように整形する。いくつかの例では、シフト後の処理により、分類中にセグメント214に対して加算と減算との両方が発生する。図2Dおよび2Eは、1次元アプローチに関してこの追跡分類プロセスを示しているが、知覚システム200は、他の次元(例えば、2次元または3次元)で類似のプロセスを実行し得る。
いくつかの例では、知覚システム200による分類は、状況に依存する。言い換えれば、図2Fおよび2Gに示されるように、ロボット100が障害物に対して第1の姿勢P、Pにあるとき、階段などの物体14は、ロボット100にとって障害物である可能性がある。しかし、別の姿勢P、例えば図2Gに示されるように、階段の前の第2の姿勢Pでは、物体14はロボット100にとって障害物ではなく、むしろロボット100が昇降することができる地面と考えるべきである。したがって、セグメント214を分類するとき、知覚システム200は、物体14に対するロボット100の位置および/または姿勢Pを説明する。
いくつかの構成では、ボクセル占有の厳密なマップに対応するのではなく、ボクセルマップ210は、ボクセルマップ210内の各ボクセル212の視覚的確実性に対応する。例えば、知覚システム200は、ボクセルマップ210内の各ボクセル212に対して点重みW(例えば、図2Cに示されるように)を含み、点重みWは、知覚システム200がセンサーデータ134に基づいて特定のボクセル212の占有を知覚した(すなわち、受信/処理した)回数を表す。より具体的には、知覚システム200は、特定の頻度でセンサーデータ134を受信する。これらの例では、知覚システム200が、知覚システム200によって以前に占有されていると識別されたボクセル212のセンサーデータ134を受信すると、知覚システム200は、以前に識別されたボクセル212の占有におけるより大きなレベルの信頼性を伝達するために、点重みWを調整する。いくつかの例では、点重みWはまた、ボクセル占有を識別するセンサー132のタイプの係数も含む。例えば、LIDARセンサー132は、ステレオカメラセンサー132よりも高い精度を有する。ここで、知覚システム200は、点重みWを調整して、センサーデータ134を収集するセンサー132の精度を表す(例えば、LIDARセンサー132は、ステレオカメラセンサー132よりも正確である)。別の例では、点重みWは、識別されたボクセル212の距離に基づいて、センサー132のタイプを説明する。例えば、物体14からさらに離れると、ステレオカメラの精度が低下する(例えば、より非空位点重みを受信することになる)。対照的に、LIDARセンサー132は、より遠い距離では正確であるが、物体14がLIDARセンサー132に近い場合、点群密度が増加するため、はるかに正確ではない。したがって、ボクセル212の点重みWは、ボクセル識別の精度に影響を与える1つ以上の要因(例えば、以前の識別、距離、センサー132のタイプ、またはそれらの任意の組み合わせ)を説明し得る。
いくつかの例では、ボクセルの点重みWは、占有閾値に基づいて存在する(すなわち、知覚システム200によって割り当てられる)。占有閾値は、知覚システム200が、センサーデータ134に基づいてボクセル212が占有されているという特定の信頼性を有することを示す。例えば、占有閾値は、ボクセル212がセンサーデータ134に基づいて占有されていると知覚された回数のカウント値に設定される。言い換えれば、占有閾値が10という値に設定されている場合、知覚システム200がボクセル212の占有を示すセンサーデータ134に10回遭遇すると、そのボクセル212には、その存在を指定する点重みWが与えられる。いくつかの実装例では、知覚システム200は、センサーデータ134に関する特性(例えば、距離、センサー132のタイプなど)に基づいて、ボクセル212の存在を指定する点重みWを割り引く。
図2Cに戻って参照すると、いくつかの実装例では、ボクセルマップ210は、ボクセル高さ212hを含む(例えば、第3のセグメント214cのボクセル212は、ボクセル高さ212hにおいて濃い灰色にシェーディングされて示されている)。ボクセル高さ212hは、知覚システム200がセンサーデータ134に基づいて物体の存在を識別するボクセル212内の点の平均高さを指す。各ボクセル212に対してボクセル高さ212hを含めることによって、知覚システム200のボクセルマップ210は、物体がボクセル212全体を占有すると仮定するよりも高いレベルの精度を含む。例えば、ボクセル212が3立方センチメートルである場合、ボクセルマップ210は、3立方センチメートルを超える解像度でボクセル212内の物体の高さを識別する。これにより、知覚システム200は、ボクセル212のサイズによって離散化されるのではなく、物体の高さ(例えば、地面高さ)の実際の値を反映することができる。いくつかの例では、ボクセルマップ210がボクセル高さ212hを含む場合、知覚システム200は、各ボクセル212の高さ212hの分散を経時的に追跡する。
ボクセル212に対するボクセル高さ212hおよび点重みWは、一般的に別々に考察されてきたが、知覚システム200は、これらの特性の1つまたはいくつかの組み合わせを含むボクセルマップ210を生成し得る。さらに、ボクセルマップ210の特性に関係なく、知覚システム200は、特定の基準に基づいてセンサーデータ134を不適格とするように構成され得る。基準のいくつかの例は、センサーデータ134が、明るすぎる、暗すぎる、感知された物体に近すぎるセンサー132からのものである、感知された物体から遠すぎるセンサー132からのものである、またはロボット100の構造体(例えば、腕または脚120)に近すぎるものであることを含む。例えば、ステレオカメラセンサー132は、このセンサー132の状態がこの基準を満たすとき(例えば、明るすぎる、暗すぎる、近すぎる、または遠すぎる)、制限された精度を有し得る。不正確になる傾向があるセンサーデータ134を不適格にすることによって、知覚システム200は、環境10の周りで移動し、環境10内で活動を実行するために、ロボット100による制御システム170によって使用され得る正確なボクセルマップ210を保証する。そのような精度がなければ、ロボット100は、環境10におけるその操縦中に、衝突、他のタイプの干渉、または不必要な回避のリスクを冒す可能性がある。
知覚システム200は、ボクセルマップ210がロボット100のセンサー132によって捕捉された環境10のいくつかまたはすべての部分にまたがるように、経時的にボクセルマップ210を蓄積し得る。ボクセルマップ210は非常に大きくなる可能性があるため、ロボット100のすぐ周囲を中心とするエリアは、センサーシステム130によって以前に感知され、知覚システム200によって知覚されたエリアよりも精度が高くなる可能性がある。これは、ロボット100がボクセルマップ210の特定のエリアから長期間離れている場合に特に当てはまる可能性がある。
いくつかの実装例では、ボクセルマップ210内のボクセル212の点重みWは、経時的に徐々に減衰する。段階的減衰により、物体(すなわち、占有されたボクセル212)は、最近見られた物体が、ずっと前に見られた物体よりもボクセルマップ210に対してより重要であるような時間的成分を有することができる。例えば、知覚システム200は、現在のセンサーデータ134内に現れていない、または正確に現れていない(例えば、不適格ではない)ボクセル212に対して、緩やかな減衰頻度に基づいて点重みW(すなわち、点重みWの値)を減少させる(例えば、3秒ごとにポイント重みWを何らかの係数(例えば、何らかの割合)で減少させる)。段階的減衰は、占有されたボクセル212の点重みWが特定の閾値未満に減少することができないように構成され得る。ここで、この点重み閾値は、占有閾値の別の形式またはそれ自体の独立した閾値であり得る。点重み閾値を使用することによって、知覚システム200は、ボクセル212に対応する空間が占有されているが、最近(すなわち、所与の期間に)センサーデータ134に現れていないことを認識する。
いくつかの例では、ボクセルマップ210の部分は、ロボット100のコンピューティングシステム140内、および/またはコンピューティングシステム140と通信するリモートシステム160内に格納される。例えば、知覚システム200は、特定の点重みW(例えば、点重み記憶閾値に基づく)を有するボクセルマップ210の部分をストレージに転送して、知覚システム200の潜在的な処理を減少する。他の例では、知覚システム200は、点重み削除閾値などの特定の点重Wを満たすボクセルマップ210の部分を、(例えば、点重み削除閾値を下回ように)削除または排除する。例えば、知覚システム200がボクセル212の点重みWをほぼゼロ(または本質的にゼロ)に減少すると、知覚システム200はボクセルマップ210からボクセル212を排除する。
各ボクセル212の点重みWを使用して、知覚システム200は、点重みWに基づいてセグメント214を生成し得る。言い換えれば、いくつかの構成では、知覚システム200は、セグメント生成中にセグメント生成閾値を下回る点重みWを有するボクセル212を無視することを示すセグメント生成閾値を含む。したがって、知覚システム200は、セグメント生成閾値を下回る点重みWを有するボクセル212においてセグメント214を生成しない。
図2Hを参照すると、いくつかの例では、知覚システム200は、負のセグメント214、214(例えば、第1の負のセグメント214aおよび第2の負のセグメント214b)を生成するように構成される。負のセグメント214、214は、ボクセルマップ210内の既知の空きスペースであるエリアの表現である。負のセグメント214は、ボクセルマップ210において、何もないことが確認されているエリアと、何もないことがわからないエリアとを区別することができる。言い換えれば、負のセグメント214は、知覚システム200が、ロボット100が見た場所と見なかった場所とを区別することを可能にする(例えば、センサーシステム130を用いて)。いくつかの例では、負のセグメント214がボクセル212にさらに分割(すなわち、処理)されないため、負のセグメント214は知覚システム200の処理リソースを保存する。これは、知覚システム200が既知の空の空間の任意のさらなる処理に専念することを防ぐ。いくつかの実装例では、知覚システム200によって生成された負のセグメント214は、ロボット100が負のセグメント214に関連付けられている位置から離れる方向に移動するにつれて縮小される(例えば、減衰に類似している)。ここで、知覚システム200が負のセグメント214を縮小する速度は、ロボット100の推定オドメトリドリフト(すなわち、オドメトリ情報によって証明される位置の変化)に基づいてもよい。
負のセグメント214は、知覚されていない位置に地面が存在し得る位置の推定値を提供することによって、セグメントを地面と障害物とに分類する際に、知覚システム200を助けることができる。例えば、知覚システム200が地面を識別していない(例えば、地面を分類した)が、知覚システム200がボクセルマップ210の特定の範囲に負のセグメント214が存在することを識別したとき、知覚システム200は、センサーシステム130が負のセグメント範囲の下のエリアを見ていない(すなわち、感知していない)にもかかわらず、地面が負のセグメント範囲の下のどこかに存在すると仮定することができる。別の言い方をすると、知覚システム200は、見えないエリアの上側境界の上に負のセグメント214(すなわち、既知の空の空間)を生成し得るので、負のセグメント214は、ボクセルマップ210の見えないエリアに上側境界を配置し得る。例えば、知覚システム200が、第1の負のセグメント214aと第2の負のセグメント214bの両方を感知したが、各負のセグメント214a~bの下の地面セグメント214を感知しなかった場合。次に、知覚システム200は、地面セグメント214Gが知覚された負のセグメント214a~b下に存在することを仮定し得る。追加的または代替的に、負のセグメント214により、知覚システム200が、知覚システム200によって生成された近傍のマップ220のための目に見えない地形の高さを推定することができる。
いくつかの例では、知覚システム200は、光線追跡の概念を利用して、ボクセルマップ210からデータを削除する。従来、光線追跡とは、センサーデータ134(例えば、点群)とセンサー132との間の線を追跡してセンサーデータ132を生成する技術を指す。この技術に基づいて、センサー132がある距離で物体を感知するとき、物体とセンサー132との間の線は妨げられていないと推定され得る。したがって、物体とセンサー132との間の線を追跡することによって、光線追跡技術は、その線上に何かが存在するかどうかをチェックする。物体がロボット100の環境10内を物理的に動き回ることができるので、光線追跡は有利であり得る。物理的に移動している物体では、知覚システム200は、移動している物体が現在占有していない空間を占有しているボクセルマップ210を生成する可能性があり、したがって、ロボット100に誤った障害物をもたらす可能性がある。光線追跡に基づく技術を使用することによって、知覚システム200は、一般的に、センサーシステム130が、以前に知覚システム200が物体(例えば、1つ以上のボクセル212)を知覚した環境10の一部分を現在見通すことができる(例えば、点群が所与の空間に対する元の点群の範囲を超えて現在延びている)場合、以前に知覚された物体に対応するボクセルマップ210の元の部分を削除するか、または少なくとも部分的に修正するべきである処理戦略を適用する。言い換えれば、現在のセンサーデータのセット134(例えば、画像データ)は、以前のセンサーデータのセット134(例えば、元のセンサーデータ134)から知覚された物体が、ボクセルマップ210によってもはや正確に描写されていないことを示す。追加的または代替的に、光線追跡に基づく技術は、オドメトリドリフトが存在するとき、またはセンサーノイズに起因してボクセルマップ210に誤った物体が現れる場合にも役立つ可能性がある。
図2I~2Lを参照すると、いくつかの例では、知覚システム200は、光線追跡への修正されたアプローチを実行するように構成される。センサー132とセンサーデータ134との間の線を追跡する代わりに、知覚システム200は、センサーデータ134(例えば、知覚システム200が受信する最新のセンサーデータ134のセット)の球形深度マップ218を構築する。センサーデータ134の球形深度マップ218を使用して、知覚システム200は、球形深度マップ218を、知覚システム200がこれまでに生成したボクセルマップ210と比較する。いくつかの例では、知覚システム200は、知覚システム200がボクセルマップ210の既存のセグメント214を球形深度マップ218と比較するように、セグメントレベルで比較を実行する。球形深度マップ218をボクセルマップ210と比較することによって、知覚システム200の処理は、従来の光線追跡アプローチよりも計算効率が高い。以下の式(1)および(2)は、式(1)の従来の光線追跡技術と式(2)の修正光線追跡アプローチとの間の計算コストを示している。
Figure 2022543997000002
式中、0(f(N))は、環境10内のN個の物体のセットである。ここで、式(1)に示すような従来の光線追跡の計算コストは、点の数N(すなわち、センサーデータ134に対応する点)をRでスケーリングした係数であり、Rは、光線(すなわち、追跡線)が平均して通過するボクセル212の数を表す。対照的に、式(2)に示されるように、修正された光線追跡アプローチの計算コストは、比較に関与する点の数Nとセグメント214の数Nとの合計の係数である。従来の光線追跡の計算コストは、セグメントの数Nを含む合計ではなく、Rによってスケーリングされるので、従来の光線追跡は、一般的に、修正された光線追跡アプローチよりも計算コストが数倍高くなる。
いくつかの実装例では、知覚システム200は、列間の比較を実行することによって、既存のボクセルマップ210を球形深度マップ218と比較する。言い換えれば、ボクセルマップ210の各列(すなわち、垂直方向の平面またはz平面)は、球形深度マップ218の列に対応する。列内の各セグメント214に対して、知覚システム200は、球形深度マップ218の対応する列の高さ範囲をチェックして、球形深度マップ218を形成するセンサーデータ134がセグメント214よりもさらに感知したかどうかを決定する。言い換えれば、知覚システム200が、球形深度マップ218内の同じ位置にある列からの高さ範囲と一致するボクセルマップ210からの列内のセグメント214に遭遇したとき、知覚システム200は、セグメント214を削除することによってボクセルマップ210を更新しない(すなわち、球形深度マップ218を形成するセンサーデータ134は、ボクセルマップ210におけるセグメント214の存在を検証する)。一方、知覚システム200が、ボクセルマップ210からの列の中で、球形深度マップ218の同じ位置にある列からの高さ範囲と一致しないセグメント214に遭遇したとき、知覚システム200は、セグメント214を削除することによってボクセルマップ210を更新する(すなわち、球形深度マップ218を形成するセンサーデータ134は、ボクセルマップ210内のセグメント214がもはや存在しないことを検証する)。いくつかの例では、高さ範囲が変化したとき(例えば、下にある物体がわずかに移動するとき)、知覚システム200は、ボクセルマップ210の対応するセグメント214を完全に削除するのではなく修正する。ボクセルの観点から、比較プロセスは、球形深度マップ218を形成するセンサーデータ134を使用して、ボクセル212が、知覚システム200がセグメント214を削除または修正した位置をもはや占有していないことを確認する。ここで、球形深度マップ218を形成するセンサーデータ134は、ボクセルマップ210を形成する元のセンサーデータ134の後に得られる現在のセンサーデータ134(例えば、画像データ)のセットを含む。
図2Iおよび2Jに示されるように、いくつかの構成では、球形深度マップ218は、センサーデータ134の球形表現である。球形表現として、知覚システム200は、ロボット100に関するセンサーデータ134を生成する各センサー132からの距離(例えば、x-y平面内)および高さ(例えば、z平面内)に矩形構造体を形成することによって、球形深度マップ218を構築してもよい。例えば、図2Iは、センサーデータ134の点によって画定される矩形構造体を示している。図2Jは、センサーデータ134(図2Iに示される)およびボクセルマップ210の現在のセグメント2141-iに重ねられた球形深度マップ218を示している。ここで、物体14(例えば、人物の下部)は、ロボット100の近傍に障害物セグメント214OBとして示されている。別の言い方をすれば、ロボット100は、センサー132の範囲に基づいて半径方向に延びる球(または3次元形状)の中心にある。いくつかの例では、ロボット100(例えば、知覚システム200)は、この球をくさび形またはピラミッド形のセクションに分割し、セクションの頂点はロボット100に対応する。セクションのサイズは、知覚システム200の構成に応じて変化し得る。いくつかの例では、この断面アプローチでは、ピラミッド形の断面のベースが、球形深度マップ218の矩形構造体を形成する。
図2Kおよび2Lを参照すると、環境10内のロボット100および物体14(例えば、図2Iおよび2Jに示される人物)の両方が移動するときに、変化する視野Fとの相互作用が存在する。例えば、センサーシステム130は、ロボット100が人物から特定の距離にあるときに、ある位置にいる人物全体を見ることができる。例えば、図2Kのセグメント214は、人物に対応する。しかし、図2Lに示されるようにロボット100が人物に近づくとき、センサーシステム130は、人物全体よりも少ない人物を感知する(例えば、センサーデータ134は、膝から腰まで人物を捕捉する)。これらのシナリオでは、人物がその位置から離れる方向に移動すると、知覚システム200は、修正光線追跡に基づいて、膝から腰までの人物がもはや存在しないことを知覚するが、膝の下と腰の上の人物に対応した他のセグメント214(例えば、第2のセグメント214bおよび第3のセグメント214cとして示される)ももはや存在しないことを関連付けることができない場合がある。言い換えれば、ロボット100は、知覚システム200による削除または修正中にセグメント214を関連付ける方法を欠いており、これは、人物のアーティファクトがボクセルマップ210に不正確に存在する原因となる。この問題に対処するために、知覚システム200が修正された光線追跡アプローチによってボクセル212および/またはセグメント214を削除するとき、知覚システム200はヒューリスティックを使用して、同じ下にある物体の一部である可能性が高い近くの曖昧なボクセル212amを識別し、削除する。
いくつかの例では、ボクセルマップ210は、ボクセル212および/またはセグメント214の色の視覚化を含む。例えば、知覚システム200は、色の視覚化を伴うボクセルマップ210をロボット100のデバッグプログラムに通信して、オペレータがロボット100の地形の問題を視覚的に理解できるようにすることができる。別の例では、知覚システム200は、視覚化を伴うボクセルマップ210を、ロボット100の移動を制御しているロボット100のオペレータに伝達して、オペレータがロボット100の周囲を理解できるようにする。手動オペレータは、特にロボット100がオペレータから一定の距離にあり、オペレータがロボット100の周囲のいくつかまたはすべてを視覚化する場合に、視覚化を好む場合がある。
図3A~3Lを参照すると、ボクセルマップ210に基づいて、知覚システム200は、1つ以上のボディ障害物マップ220を生成するように構成される。ボディ障害物マップ220は、一般に、ロボット100のボディ110が、ロボット100に関してX-Y平面内の位置と重なることができるかどうかを決定する。言い換えれば、ボディ障害物マップ220は、ロボット100の障害物を識別して、ロボット100が環境10内のある位置で重なることによって、同じ位置の近傍または同じ位置にある障害物との衝突または潜在的な損傷のリスクを冒すかどうかを示す。ロボット100のボディ110の障害物のマップとして、ロボット100のシステム(例えば、制御システム170)は、ボディ障害物マップ220を使用して、ロボット100に隣接する、またはロボット100に最も近い境界を識別するとともに、障害物を回避するためにロボット100を移動させる方向(例えば、最適な方向)を識別してもよい。いくつかの例では、他のマップ210、230、240と同様に、知覚システム200は、セル222のグリッド(例えば、X-Y平面のグリッド)に従って、ボディ障害物マップ220を生成する。ここで、ボディ障害物マップ220内の各セル222は、障害物からの距離dと、障害物(すなわち、障害物の境界)である最も近いセル222を指すベクトルvとを、含む。例えば、ボディ障害物マップ220全体は、セル222(例えば、3センチセルの128×128グリッド)に分割され得るが、図3Aでは、各々がベクトルvと、障害物の最も近い境界までの距離dと、を含む6つのセル222、222a~fを示している。
図3Aおよび3Bを参照すると、いくつかの例では、知覚システム200は、ボクセルマップ210から2つのボディ障害物マップ220a、220b、第1のボディ障害物マップ220、220a、および第2のボディ障害物マップ220、220bを導出する。図3Aに示されるように、知覚システム200によって生成された第1のボディ障害物マップ220a(標準の障害物マップ220aとも称される)は、制御システム170のステップロケータ176がロボット100の足の配置位置を識別するステッププランを生成することを可能にする。図3Bでは、知覚システム200によって生成された第2のボディ障害物マップ220b(拡張された障害物マップ220bとも称される)により、制御システム170のボディパスジェネレータ174が、ロボット100のボディ110の粗い軌道(例えば、ボディ110の並進などの水平方向の運動、およびヨー回転)を定義することができる。一般的に言えば、標準の障害物マップ220aは、拡張された障害物マップ220bよりも処理の少ないマップ220であり、したがって、環境10内の実際の物理的障害物のより正確な表現と考えることができる。より多く処理されたマップ220として、拡張された障害物マップ220bは、環境10内の障害物の潜在的フィールド表現を含む。
図3Aおよび3Bを引き続き参照すると、各マップ220は、ボディ障害物領域224(例えば、黒で示される)を含み、ボディ障害物領域226(例えば、斜めの斜線パターンとして示される)を含まない。ボディ障害物領域224は、知覚システム200がボクセルマップ210に基づいて障害物を識別するボディ障害物マップ220のエリア(例えば、1つ以上のセル222)を指す。例えば、ボディ障害物領域224は、物体の境界上に位置しているセル222(すなわち、物体の境界を空間的に表すセル)に対応し、知覚システム200は、ボクセル/セグメント分類中に障害物として指定される。これに対して、ボディ障害物領域226は、知覚システム200がボクセルマップ210に基づいて障害物を識別しないボディ障害物マップ220のエリア(例えば、1つ以上のセル222)を指す。いくつかの実装例では、これらの領域224、226は、知覚システム200によってさらに処理され得る(例えば、領域224、226を修正するために)。例えば、知覚システム200は、図3Aの標準のボディ障害物マップ220aと比較したとき、図3Bの拡張されたボディ障害物マップ220bにおいて、ロボット100の進行方向Dのボディ障害物領域224をより狭くなるように修正した。
いくつかの構成では、最初に、知覚システム200は、同様の処理方法で両方のボディ障害物マップ220a~bを生成する。ボクセルマップ210は、障害物がボクセルマップ210の特定の位置(例えば、ボクセルマップ210のセル)に存在するかまたは存在しないかの分類を含むので、知覚システム200は、この障害物/障害物なしの指定を、ボディ障害物マップ220の各対応する位置に変換する。障害物または障害物の欠如がボディ障害物マップ220内に(例えば、領域224、226として)表されると、知覚システム200は、各ボディ障害物マップ220をフィルタリングして、低重みの(例えば、不十分なセンサーデータ134)小さなエリアを削除する。いくつかの例では、知覚システム200によるフィルタリングプロセスは、拡張、低重みエリアの浸食、および/または減少によって、ボクセルマップ210から変換された情報を修正する。ここで、低重みエリアとは、ボクセルマップ210によって識別される、セグメント214の高さとそのセグメント214の点重みとの何らかの組み合わせを有するエリアを指す。言い換えれば、フィルタリング中に、知覚システム200は、ボディ障害物マップ220a~bのエリアからセグメント214をいつ削除するかを指定するために、セグメント214の高さおよび/またはセグメント214の点重みの1つ以上の閾値を含み得る。この削除は、実際の物理的物体の表現を維持しながら、センサーノイズ(すなわち、不十分なセンサーデータ)を排除することを目的としている。追加的または代替的に、ボディ障害物マップ220を形成するとき、知覚システム200は、ロボットの現在の姿勢Pの下にあるエリアをマークし、そのエリアに新しい障害物がマークされるのを防ぐ。
図3Cおよび3Dを参照すると、いくつかの構成では、知覚システム200は、障害物の影を含むように標準のボディマップ220aをさらに処理する。障害物の影は、障害物(例えば、ボディ障害物領域224)の拡大であり、これにより、ステップロケータ176は、制約抽出をより効果的に実行することができる。障害物の影がないと、ステップロケータ176は、ボディ障害物マップ220によって表される壁などの薄い障害物の制約抽出が困難になる可能性がある。例えば、図3Cは、図3Dが厚くなった特徴(すなわち、より大きなボディ障害物領域224)で示すように、知覚システム200がボディ障害物領域224を障害物の影を含むように拡大する前に、ボディ障害物マップ220内のボディ障害物領域224の薄い特徴(例えば、薄い壁)を示している。ここで、厚くなった特徴は、知覚システム200が、ボディ障害物領域224のセルに隣接する1つ以上のセルを、同じボディ障害物領域224の一部として指定することによって発生する。いくつかの例では、障害物の影が障害物の背後のエリアをマップの端まで塗りつぶす。このアプローチは、壁がその正面(すなわち、ロボット100に面する)においてロボット100までの真の距離を有するが、その裏側(すなわち、ロボット100に面しない側)では障害物の影が厚くなるだけであるように、影を指向的に生成する。
図3E~3Lを参照すると、拡張されたボディ障害物マップ220bは、ユーザ定義領域228UR(図3E~3G)、ギャップ充填領域228GF(図3H)、および/またはベクトルフィールド228VF(図3I~3L)など、1つ以上の障害物に基づく特徴部228を含む。いくつかの例では、ロボット100のオペレータは、拡張されたボディ障害物マップ220bにユーザ定義領域228URを含む。ユーザ定義領域228URは、オペレータが障害物(すなわち、ボディ障害物領域224を形成および/または修正する仮想障害物)を生成するために拡張されたボディ障害物マップ220bに挿入する形状(例えば、多角形)を指す。例えば、オペレータは、ロボット100がコースから外れることができる距離を制限する。オペレータは、インターフェース(例えば、アプリケーションプログラミングインターフェース(API))と対話して、拡張されたボディ障害物マップ220bに挿入する形状を描画または選択することができる。例えば、インターフェースはコントローラ(例えば、リモコン)またはあるタイプの端末(例えば、コンピュータのディスプレイ)である。いくつかの実装例では、オペレータによって生成されたユーザ定義領域228URに基づいて、知覚システム200は、ユーザ定義領域228URを、拡張されたボディ障害物マップ220b上のボディ障害物領域224に変換する。これらのユーザ定義領域228URは、拡張されたボディ障害物マップ220bの部分として、ロボット100の進行パスに対するさらなる制限をもたらす可能性がある。例えば、図3Eは、第1のユーザ定義領域228URaの正方形形状に基づいて、図3Fに示されたボディ障害物領域224を修正する2つのユーザ定義領域228UR、228URa~bを示している。ここで、ユーザ定義領域228URaは、知覚システム200が、ボディ障害物領域224と交差するユーザ定義領域228URaの一部分をボディ障害物領域224に統合するような仮想障害物を示すように構成される。ユーザ定義領域228URは、ボディ障害物(例えば、1つ以上のボディ障害物領域224と統合する)または障害物ではない(例えば、1つ以上のボディ障害物領域226と統合する)と指定され得る。ユーザ定義領域228URは、ロボット100のボディ軌道に影響を与える可能性があるが、ステップロケータ176が誤った障害物(すなわち、仮想オブジェクト)に反応することを避けるために、ユーザ定義領域228URは、ステップロケータ176に入力されない。
図3Gおよび3Hを参照すると、いくつかの構成では、拡張されたボディ障害物マップ220bは、ギャップ充填領域228GF形成するギャップフィラーを含む。ギャップ充填は、狭いギャップを充填することによってギャップ充填領域228GFを形成する知覚システム200のギャップフィラーによる処理技術である。例えば、知覚システム200は、ロボット100の幅と同等またはほぼ同等の狭いギャップを充填することによって、ギャップ充填領域228GFを形成する。ギャップフィラーを使用して、知覚システム200は、ロボット100がどのようなサイズの通路を通過できるかに関して明確に区別するために、ギャップ充填領域228GFを形成するように構成される。いくつかの例では、ギャップフィラーは、各セル222に含まれる最も近い障害物境界までの距離dおよびベクトルvに応じて、セルごとにギャップ充填領域228GFを形成する。所与のセル222に対して、ギャップフィラーは、セルの最も近い障害物境界および少なくとも2つの隣接するセルの最も近い障害物境界を識別する。識別された3つの障害物境界のうちの2つが、距離充填閾値(例えば、事前決定された距離範囲)を満たす距離だけ分離されているとき、ギャップフィラーは、ギャップ充填領域228GFを形成する、距離をまたぐセルを充填する(すなわち、ギャップを充填する)。ギャップ充填によって、ギャップフィラーは、ロボット100がそれ自体を狭く、潜在的に通行不能な通路に押し込むことを回避することを確実にする。これは、特に、ボクセルマップ210および拡張されたボディ障害物マップ220が、センサーシステム130(例えば、センサーデータ134の絶え間ない受信)に基づいて変更または更新される可能性があるとき、ロボット100が狭い通路内で立往生するかまたは詰まるのを防止しようとするものである。ユーザ定義領域228URと同様に、知覚システム200は、ギャップ充填領域228GFをステップロケータ176に通信しない。ステップロケータ176(例えば、滑りまたはつまずきから)バランスを維持するために、ギャップ充填領域228GFを利用する必要があり得る。
例えば、図3Gは、各領域224の間にギャップを有する2つのボディ障害物領域224a~bを示している。示されるように、知覚システム200は、セル222(ラベルされたA、B、およびC)を識別し、各セル222の最も近い障害物境界を決定する(例えば、ベクトルv1~3として示される)。ここで、知覚システム200(例えば、ギャップフィラーによる)は、セルAおよびセルBが異なる最も近い障害物境界を識別し、これらの識別された最も近い障害物境界間の距離が距離充填閾値よりも小さいことを決定する。この決定に基づいて、ギャップフィラーは、図3Hに示されるように、斜線のセル222を充填し、斜線のセルにまたがるギャップ充填領域224GFを形成する。図3Hは、このプロセスが2つのボディ障害物領域224a、224b(図3G)をブリッジして、ギャップ充填領域228GFを含む単一のボディ障害物領域224を形成することを示している。
図3I~3Lを参照すると、いくつかの例では、拡張されたボディ障害物マップ220bは、障害物に基づく特徴部228としてベクトルフィールド228VFを含む。ベクトルフィールド228VFを使用して、拡張されたボディ障害物マップ220bは、潜在的フィールに基づく障害物回避を可能にし得る。言い換えれば、制御システム170(例えば、ボディ軌道生成中)は、潜在的フィールドを形成するベクトルv、v1-iの方向に従うことによって障害物を回避することができる。ここで、ベクトルフィールド228VFのベクトルvの方向は、ボディ障害物マップ220の各セル222に含まれる最も近い障害物境界への方向を逆にすることによって、各セル222について定義される。残念ながら、ベクトルフィールド228VFのフィールド方向(すなわち、集合方向)をさらに処理しなければ、最も近い境界ベクトルvから得られる生のフィールド方向は平滑ではなく、制御システムが軌道のチャタリングに悩まされることが多いため、ベクトルvの方向はセル222からセル222(例えば、隣接するセル)へと急激に変化する可能性がある。この状態のままにすると、フィールドの方向によって、フィールドベースの障害物の回避が妨げられる可能性がある(例えば、突然の制御操作によって)。例えば、図3Iは、急激な方向変化を伴う生のベクトルフィールド228VFを示しており、全体的なベクトルフィールド228VFがギザギザに見え、したがって、全体的な破壊的な潜在的フィールドをもたらす。
図3Jに示されるように、潜在的フィールドに基づく障害物回避への混乱を防ぐために、知覚システム200は、意味のあるベクトルフィールド228VFをロボット100のボディ軌道に使用できるように、生のベクトルフィールド228VFを平滑化するさらなる処理を実行する。いくつかの例では、知覚システム200は、平滑化カーネルによって生のベクトルフィールド228VFを平滑化する。例えば、平滑化カーネルは、セル222の正方形のエリアにわたる平均化フィルタである。平滑化カーネルは、生のベクトル形式でベクトルvを正規化できる画像処理技術である。拡張されたボディ障害物マップ220bでは、平滑化は、複数の障害物が重なる影響領域を有するときに特に重要である可能性があり、これは、近くの障害物が互いのベクトルフィールド228VFに影響を与える可能性があることを意味する。図3Kおよび3Lを参照すると、2つの近くのL字形の障害物は、第1のボディ障害物領域224aおよび第2のボディ障害物領域224bによって表される。各ボディ障害物領域224a、224bは、第1のボディ障害物領域224aに関連付けられている第1のベクトルフィールド228VFaと、第2のボディ障害物領域224bに関連付けられている第2のベクトルフィールド228VFbとによって示されるように、生のベクトルフィールド228VFに寄与する。これらの障害物の隣接に起因して、図3Kは、障害物の生の潜在的フィールドが、生のベクトルフィールド228VFに鋭い谷を形成する重なった影響領域を含むことを示している。ロボット100の制御システム170が、この生の潜在的フィールド228VFの鋭い谷間で潜在的フィールドに基づく障害物回避を動作させることを試みた場合、ロボット100は、生の潜在的フィールドのベクトルvの方向と大きさに基づいて、多くの左右のチャタリング(例えば、前後に跳ね返ること)に遭遇することになる。ここで、知覚システム200による平滑化という処理技術は、図3Lに示されるように、ベクトルフィールド228VFによるベクトルvの大きさを、ロボット100の昇降可能なパスPに調整する。言い換えれば、平滑化は、この2つの障害物の中間には、各障害物の潜在的フィールド228VFが重なって相殺されることで形成される昇降可能なパスPがあることを識別する。
いくつかの例では、知覚システム200による平滑化技術は、ベクトルvの方向を最も近い境界における変化を引き起こす。例示すると、狭いギャップの場合、平滑化技術は、ロボット100が狭いギャップに入るのを防ぐか、またはロボット100を狭いギャップの端から押し出す潜在的フィールドを有するベクトルフィールド228VFを形成し得る。最も近い境界へのベクトルvの方向の変化を修正するために、知覚システム200は、平滑化後のベクトルv間の距離を再スケーリングする。ベクトルv間の距離を再スケーリングするために、知覚システムは、平滑化技術によってベクトルの方向が大幅に変更された位置(例えば、セル222)を識別する。例えば、知覚システム200は、平滑化技術の前のベクトルフィールド228VF(例えば、最も近い境界へのベクトルに基づく生のフィールドベクトル)を格納し、これらのベクトルフィールド228VFを、特にベクトルフィールド228VFのベクトルvの方向に関して、平滑化技術によって形成されたベクトルフィールド228VFと比較する。この比較に基づいて、知覚システム200は、平滑化技術からの新しい方向に基づいて障害物までの距離を再評価し、再評価された距離に従って新しい方向のベクトルvの大きさを調整する。例えば、平滑化技術からの新しい方向に沿って障害物がない場合、知覚システム200は、ベクトルvの大きさをゼロにスケーリングする。いくつかの例では、平滑化技術の前後のベクトルフィールド228VF間の比較は、知覚システム200が再評価するベクトルvの数を減少させるために、特定の方向変化閾値を満たすベクトルvを識別する。
図4Aおよび4Bを参照すると、知覚システム200は、ボクセルマップ210に基づいて地面高さマップ230を生成する。いくつかの実装例では、地面高さマップ230は、各X-Y位置(例えば、地面高さマップ230のセルとして指定される)において、地面高さマップ230が高さ232を指定するように機能する。言い換えれば、地面高さマップ230は、水平方向の平面内の特定のX-Y位置において、ロボット100がある特定の高さで踏む必要があることを伝達する。例えば、地面高さマップ230は、2.5次元(2.5D)マップである。実用的な説明のために、テーブルの一部分および地面の一部分がX-Y位置に存在する場合、地面高さマップ230は、テーブルを無視しながら、地面高さ232(すなわち、ロボット100が踏むべき位置)を通信する。
いくつかの例では、知覚システム200は、ボクセルマップ220において地面Gに分類されたセグメント214(すなわち、地面セグメント214)を地面高さマップ230に変換することにより、地面高さマップ230を形成する。例えば、地面高さマップ230およびボクセルマップ210は、同じグリッドシステムを使用して、ボクセルマップ210内の特定の位置における地面分類を、地面高さマップ230内の同じ位置に直接転送することができる。いくつかの実装例では、ボクセルマップ210が地面として分類されたセグメントを含まないセルにおいて、知覚システム200は、地面高さマップ230において、障害物として分類されたセグメント(すなわち、障害物セグメント214OB)を生成する。
地面として分類されたボクセルマップ210の各セグメント214の高さを地面高さマップ230に変換するとき、知覚システム200は、セグメント214の高さの正確な表現を通信して、地面の精度を保証することを試みる。精度を保証するために、いくつかの例では、地面として分類された各セグメント214に対して、知覚システム200は、セグメント214の上部(すなわち、セグメント214上の最も高いz点)から始まって、セグメント214に沿って(例えば、セグメント214に対応するボクセル212に沿って)下降するようにセグメント214を分析する。例えば図4Aは、地面セグメント214を、地面のセグメント214の最高のz高さにある各ボクセル212a~nに対する分析の開始を示す矢印とともに示している。この分析中に、知覚システム200は、特定の点重みWに相当する点が高さ精度の閾値232TH満たすかどうかを決定する。ここで、高さ精度閾値232THは、物体の高さ232における精度のレベルを示す。点重みWは、点重みWが大きいほど、ボクセルの表現および/またはセグメントの表現が、下にある物体の存在に関してより確信するように構成されているので、高さ精度閾値232THは、ボクセルマップ210が、地面として分類されたセグメント214に対して、正確な高さ232を地面高さマップ230に変換するという信頼性を保証するのに役立つ。いくつかの例では、知覚システム200が、十分な点重みW相当の点が高さ精度閾値232THを満たす(例えば、高さ精度閾値を超える)ことを決定すると、知覚システム200は、ポイントの平均高さを、分類された地面セグメント214の高さ232として地面高さマップ230に通信する。高さ精度閾値232THでこのトップダウンアプローチを使用することによって、高さ232は、セグメント214が大量のデータを含むか、または疎らなデータ134を含むかにかかわらず、概して正確である。いくつかの実装例では、点重みを使用する技術ほど正確ではないが、知覚システム200は、地面として分類されたセグメント214の上部に対応する高さを地面高さマップ230に通信する。このアプローチは、地面高さマップ230の精度が許容されない場合に使用することができる。
いくつかの例では、知覚システム200は、ボクセルマップ210からのセグメント214が地面(すなわち、地面セグメント214)または障害物(すなわち、障害物セグメント214OB)として分類されなかったとき、地面高さマップ230内の欠落している地形に対する推論234を(例えば、ギャップを充填することによって)生成するように構成される。一般に、知覚システム200は、2つの主要な戦略を使用して、推論234、妨害に基づくアプローチおよび/または平滑化に基づくアプローチを生成する。知覚システム200が地面高さマップ230を生成するとき、知覚システム200は、センサーデータ134(例えば、深度センサーデータ134)の不連続性を識別する。不連続性とは、センサーデータ134が遠方の物体に隣接する近傍の物体を示している場合を指す。知覚システム200が不連続性に遭遇すると、知覚システム200は、環境10内のセンサーシステム130の妨害234(図4B)に起因して、この近遠コントラストが発生すると仮定する。知覚システム200が妨害234が発生したと仮定するとき、知覚システム200は、センサーデータ134のギャップを充填するために、これらのギャップを平坦な地形234FTとしてマッピングする。例えば、図4Bは、センサーデータ134に基づいて、階段の蹴上げに妨害を伴う階段を昇降するロボット100を示している。これらの妨害に基づいて、図4Bは、階段の踏面部分の間の妨害234が、第1の階段の踏面の後方部分と第1の階段の上の第2の階段の踏面の前方部分とをブリッジする平坦な地形234FTとして、知覚システム200によって充填されていることを示している。ここでは、ブリッジは、画像空間では隣接しているが、3次元の世界では遠く離れている2つの点を接続する線分として示されている。
対照的に、センサーデータ134が近遠コントラストを示さない(すなわち、妨害)とき、知覚システム200は、欠落したセンサーデータ134がセンサーシステム130による視覚不良によるものであると仮定し、欠落したセンサーデータ134を平滑な地形234STとしてマッピングする。言い換えれば、知覚システム200は、センサーデータ134が欠落しており、センサーデータ134が近遠のコントラストを示さないときに平滑化技術を使用する。いくつかの例では、知覚システム200によって使用される平滑化技術は、反復的な平均化フラッドフィルアルゴリズムである。ここで、このアルゴリズムは、実際のセンサーデータ134および妨害234からのデータを補間および/または外挿するように構成されてもよい。いくつかの実装例では、知覚システム200は、負のセグメント214が知覚システム200による推論234(すなわち、平滑な地形234STの知覚をもたらす推論234)のための境界を提供するように、負のセグメント214を考慮して平滑化技術を実行する。いくつかの構成では、知覚システム200はギャップを充填することに関係しているので、知覚システム200は、それが補間および外挿の両方であるとしても、外挿された部分を削除する。
知覚システム200によってなされた推論234に応じて、知覚システム200は、推論された地形(例えば、平坦な地形234FTまたは平滑な地形234ST)を持続させる(すなわち、保持する)か、または削除する。例えば、知覚システム200は、特定の周波数(例えば、センサー132がセンサーデータ134を生成する頻度または頻度のいくつかの間隔)でセンサーデータ134を解釈するように構成される。言い換えれば、知覚システム200は、設定された時間間隔で受信されたセンサーデータ134を使用して反復処理を実行することができる。図4Aに戻って参照すると、知覚システム200が新しいセンサーデータ134を受信したとき、知覚システム200は、推論234を持続させるかどうかを決定する。知覚システム200による事前の処理反復がセンサーデータ134を妨害234(すなわち、平坦な地形234FTをもたらす)として解釈した場合、センサーシステム130が実際に妨害されたエリアに対するセンサーデータ134を知覚システム200に提供しない限り、知覚システム200によるセンサーデータ134の後続の処理反復は、事前の平坦な地形の推論234FTを保持する。対照的に、知覚システム200による事前の処理反復が、欠落しているセンサーデータ134を平滑な地形234STとして推論した場合、知覚システム200は、センサーデータ134の後続の処理反復の間に推論234をクリア(すなわち、削除)する。より具体的には、知覚システム200は、知覚システム200の反復ごとにこれらのタイプの推論234(すなわち、非妨害)を再計算するように構成される。したがって、推論234が持続するかどうかは、ロボット100のコンテキストに基づく。例えば、妨害234は、ロボット100に対する特定の姿勢のみで視認可能であり、他の姿勢では視認可能でない場合があるため、妨害234が持続しなかった場合、後に妨害234が知覚されないリスクがある。したがって、知覚システム200は、妨害234を持続させる。対照的に、平滑な地形234STは、ロボット100の状態に依存せず、むしろマッピングされた状態に依存する。言い換えれば、平滑な地形234STには追加の状態情報が含まれていないため、平滑な地形234STを削除しても、ロボット100にいかなるリスクも存在しない。したがって、知覚システム200は、次の反復で平滑な地形234STを単純に再構築することができる。
いくつかの実装例では、後続の反復の間に、知覚システム200は、妨害に基づく推論234がまだ実際のセンサーデータ134に隣接しているかどうかを評価する(例えば、センサーデータ134の実際の点を平坦な地形234FTとともにブリッジする)。ここで、知覚システム200の一般的なルールが妨害に基づく推論234を保持することであるにもかかわらず、妨害に基づく推論234の評価が、妨害に基づく推論234がもはやいかなる現在のセンサーデータ134にも隣接していないことを識別するとき、知覚システム200は、これらの隣接していない妨害に基づく推論234を削除する。
地面高さマップ230の作成中に、知覚システム200は、センサーデータ134内に発生する狭いまたは小さなピット236(図4B)を充填するように構成され得る。一般に、ピット236は、センサーデータ134内の空隙(例えば、孔または空洞)を指す。これらのピット236が発生するとき、これらのピット236は、実際の地形の不規則性ではなく、センサーデータ134の不良に関連している可能性が高い。いくつかの構成では、知覚システム200は、ロボット100の脚120の遠位端124(例えば、足)よりも小さいピット236を充填するように構成される。言い換えれば、知覚システム200は、ロボット100の足の地面係合表面積よりも小さい値に設定されたピット充填閾値を含み得る。ロボット100が多脚型であり、足の地面係合表面積が脚120ごとに異なる場合、ピット充填閾値は、ロボット100のすべての感触の中で最小の地面係合表面積に設定され得る。いくつかの例では、知覚システム200は、形態学的拡張とそれに続く形態学的侵食を使用してピット236を充填し、知覚システム200は、ブール値の代わりに実際の値を使用する。
いくつかの実装例では、知覚システム200は、障害物Oを広げる(例えば、障害物のサイズを大きくする)ためのさらなる処理を伴う地面高さマップ230を生成する。障害物Oを広げることによって、地面高さマップ230は、ロボット100のために(例えば、環境10の周りで操縦している間のロボット100の遊脚脚120のために)地形回避を支援する。言い換えれば、障害物Oを広げることによって、知覚システム200は、マップ230上の障害物Oの位置と障害物Oの実際の位置との間に緩衝物を有することを地面高さマップ230に可能にする。この緩衝物は、ロボット100の膝、足、または他の関節Jなどのロボット100の構成要素が、ロボット100の一部分が実際の障害物Oに衝突する前の移動誤差のためのマージンが存在するように、さらに制約されることを可能にする。例えば、地面高さマップ230内の壁は、物体回避のための緩衝物を提供するために、壁に隣接する空間に約6センチメートル広げて(例えば、オフセットして)もよい。
いくつかの例では、地面高さマップ230は、マップ230の各セルに対して、地面高さ推定値232estと地面高さ精度推定値232Accとの両方を含む。ここで、知覚システム200は、地面高さ232の精度を示すために、地面高さ精度推定値232Accを生成する。いくつかの実装例では、地面高さ精度232Accは、知覚システム200がセンサーデータ134およびロボット100のオドメトリドリフトから地面をどれだけ最近知覚したかを説明する。例えば、知覚システム200が、特定のセルの地面Gを視覚化するセンサーデータ134を約3秒で受信しておらず、ロボット100のオドメトリが毎秒約1センチメートルドリフトしている場合、知覚システム200は、地面高さ232に±3センチメートルの地面高さ精度232Accを関連付ける(例えば、既存の地面の高さ精度232Accを修正するか、または地面高さ232を含むように追記する)。このアプローチは、ロボットの制御システム170がどのような状況で地面高さ推定値232estを信頼するか(例えば、与えられた地面の高さの推定値232estに従って動作するか)を決定するために使用され得る。
図5A~5Iを参照すると、いくつかの実装例では、知覚システム200は、ステップなしマップ240を生成するように構成される。ステップなしマップ240は、一般に、ロボット100が特定の水平方向の位置(すなわち、X-Y平面内の位置)で踏むことができるときにロボット100にアドバイスするために、ロボット100が踏むことを許可されない領域を定義するマップを指す。いくつかの例では、ボディ障害物マップ220および地面高さマップ230と同様に、ステップなしマップ240は、各セル242がロボット100の周りの環境10内の特定のエリアを表すセル242、2421-iのグリッドに分割される。例えば、各セル242は3センチメートルの正方形である。説明を容易にするために、各セル242は、環境10内のX-Y平面内に存在する。知覚システム200がステップなしマップ240を生成するとき、知覚システム200は、例えば、図5Aに示すようなブール値マップを生成し得、ブール値マップは、ステップなし領域244(例えば、灰色セルとして示される)およびステップ領域246(例えば、白色のセルとして示される)を識別する。ステップなし領域244は、障害物Oが存在する1つ以上のセル242の領域を指し、一方、ステップ領域246は、障害物Oが存在すると認識されない1つ以上のセル242の領域を指す。
図5Bおよび5Cなどのいくつかの構成では、知覚システム200は、ステップなしマップ240が符号付き距離フィールドを含むように、ブール値マップをさらに処理する。ここで、ステップなしマップ240の符号付き距離フィールドは、障害物Oの境界までの距離d(例えば、ステップなし領域244の境界までの距離d)と、障害物Oの境界までのベクトルv(例えば、ステップなし領域244の境界までの最も近い距離を定義する)と、を含む。符号付き距離フィールドは、セル242が障害物Oの境界までの距離dおよびベクトルvの両方を含むように組み合わされてもよいが、図5Bおよび5Cは、説明を容易にするために各構成要素を別々に表している(すなわち、図5Bは距離dを示し、図5Cはベクトルvを示している)。符号付き距離フィールドでは、値の符号は、セル242が障害物Oの境界内にある(例えば、距離の符号が負である)か、または障害物Oの境界外にある(例えば、距離の符号が正である)かを示す。言い換えれば、セル242が境界から離れるほど、セル242の距離値が大きくなる(例えば、境界の内側か外側か)。いくつかの例では、ステップなしマップ240は、特定のセル242に対する障害物Oの境界までの距離dを、特定のセル242と障害物Oの境界との間のセル242の数のカウントとして表す。他の例では、ステップなしマップ240は、ステップなしマップ240がロボット100が環境10の周りで動くための物体14に対する、より大きな粒度(例えば、セルカウントよりも)、したがって精度を提供するように、障害物Oの境界までの距離dを実際の距離として表す。例えば、セル242が障害物Oの境界上にあるとき、知覚システム200は、距離dを符号を伴わずにゼロとして表す。障害物Oの境界までの距離d、および障害物Oの最も近い境界までのベクトルvを使用して、ステップなしマップ240は、踏む場所と踏まない場所だけでなく、踏む可能性のある場所(例えば、ステップ領域246内)も(例えば、ロボット100の制御システム170に)通信することができる。説明のために、ロボット100の通常の歩行パターンは、ロボット100の足がステップなし領域244に配置されるであろうことを示し得る。制御システム170は、ステップなしマップ240を利用するので、この例では、制御システム170は、元々計画されたようにステップなし領域244に足を配置すべきではなく、代わりに制御システム170がステップ領域246内(例えば、元々計画された足配置に最も近いセル242のグループ)に足を配置すべきであることを識別することができる。いくつかの例では、ステップなしマップ240内のセル242のベクトルvおよび距離dを解釈することによって、制御システム170は、ロボット100の歩行パターンへの混乱を最小化することができる(例えば、バランスを維持するための歩行調整中に滑ることなくステップを助ける)。
ステップなしマップ240を生成するとき、知覚システム200は、いくつかの異なる理由のために、ステップなし領域244および/またはステップ領域246を識別し得る。理由のいくつかは、領域内の勾配、領域内の脛衝突の潜在的なリスク、領域内のピットの存在、領域内の遊脚なし影の存在、および/または領域内のロボット100の自己衝突の可能性を含み得る。いくつかの例では、知覚システム200は、センサーデータ134に対して2つの異なるスケールフィルタ(例えば、ソーベルフィルタ)を使用することによって、領域内の勾配を計算する。2つの異なるスケールでは、第1のフィルタが小規模な勾配を検出し、第2のフィルタが大規模な勾配を検出し得る。知覚システム200は、小スケールの勾配が高い(すなわち、第1の条件)、かつ小規模な勾配が大スケールの勾配よりも大きい(すなわち、第2の条件)とき、エリアをステップなし領域244として指定する。例えば、知覚システム200は、小スケールの勾配の値が勾配閾値を満たす(例えば、勾配閾値よりも大きい)とき、知覚システム200が小スケールの勾配を高いと指定する(すなわち、第1の条件を満たす)ような勾配閾値を有するように構成される。同じ勾配閾値または別の勾配閾値を構成して、小スケールの勾配の値と大スケールの勾配の値との間の閾値の差を示すように構成され得る。ここで、小スケールの勾配値と大スケールの勾配値との差が閾値差を満たす(例えば、閾値差を超える)とき、知覚システム200は、小スケールの勾配が大スケールの勾配よりも大きい(すなわち、第2の条件を満たす)と識別する。所与の領域について第1の条件と第2の条件との両方が満たされるとき、知覚システム200は、その領域をステップなし領域244として指定する。言い換えれば、丘はロボット100によってナビゲート可能である(例えば、小スケールの勾配と大スケールの勾配との両方が大きいため)一方で、階段の端がナビゲート不可能である(例えば、小スケールの勾配が高く、大スケールの勾配が小スケールの勾配よりも小さいため)場合がある。より一般的には、知覚システム200は、勾配が周囲のエリアよりも急であり、また十分に急である(例えば、ロボット100が移動中にバランスを維持するために問題になるような急な)エリアを識別しようとしている。
図5Dを参照すると、前述したように、知覚システム200は、脛衝突を回避するために、領域をステップなし領域244として識別し得る。一般に、ロボット100の脚120の構造に基づいて、脚120の脛122は、地面12に対して特定の傾斜sを有する。いくつかの実装例では、ロボット100の1つ以上の脚120は、脚120をボディ110に接続する関節(すなわち、股関節J)が、ロボット100のボディ110の矢状平面において、膝関節Jよりも前方にあるように構成される。ここで、膝関節Jとは、脚120の上側部材122、122と、遠位端124を含む脚部120の下側部材122、122(すなわち、脛)とを接続する関節を指す。この構成に基づいて、ロボット100が高速で移動するとき、遠位端124が股関節Jからさらに踏み(すなわち、矢状平面においてさらに前方に踏む)、その結果、脚120の下側部材122(すなわち、脛)は、低いスピード(または静止)よりも速いスピードで、地面12に対してより水平になる。ここで、ロボット100が(例えば、制御システム170から)特定のスピードのための移動コマンドを実行する場合、指令されたスピードは、下側部材122と地面12との間の最小の勾配(すなわち、最小の脛勾配)を必要とする。ロボット100のこのような構造的解剖学的特徴により、知覚システム200は、ロボット100が所望のスピードで環境10を移動する際に、地面高さマップ230の地面高さ232が下側部材122と衝突するかどうかを決定する。知覚システム200が、セル242の地面高さ232が衝突を引き起こす可能性が高いと決定したとき、知覚システム200は、そのセル242をステップなし領域244として指定する。例えば、脚120の解剖学的構造(すなわち、脚120の既知の寸法)、およびロボット100の運動中の最小の脛勾配sに基づいて、知覚システム200は、ロボット100の脚120の衝突高さhを決定し、この衝突高さhを地面高さマップ230の地面高さ232と比較する。いくつかの構成では、衝突高さhと地面高さ232とを比較するとき、知覚システム200は、衝突高さh以上の地面高さ232を有する任意のセルを、ステップなしマップ240のステップなし領域244として識別する。
いくつかの例では、各セル242に対して、知覚システム200は、下側部材122の方向に沿って、近くのまたは隣接するセル242をサンプリングする。言い換えれば、知覚システム200は、ロボット100の足が位置する、または理論的に位置することになる(例えば、ロボット100の固定ヨーに基づく)セル242(ここでは足踏みセルと称される)に基づいて、下側部材122の下にあるであろうセル242を識別する。識別されたセル242を使用して、知覚システム200は、衝突高さhcを、脚120の大股歩きの過程における下側部材122の予想される最低の高さ(すなわち、最小脛部傾斜s)として決定し、最小脛勾配sと干渉するであろうこれらのセル242(すなわち、脚120の下にあるであろうセル)のいずれかを識別する。セル242のいずれかが干渉を引き起こすとき、知覚システム200は、足踏みセルを不法なステップの配置(すなわち、ステップなしセル/領域)として識別する。
ロボット100のスピードが変化すると最小脛勾配sが変化する可能性があるので、知覚システム200は、制御システム170がロボット100(例えば、ロボット100の脚120)に対するスピードを実行または修正するたびに、または制御システム170による速度入力に続くいくつかの頻度間隔で、ステップなしマップ240を調整してもよい。いくつかの例では、知覚システム200は、ロボット100の脚120に対して衝突が発生するかどうかを決定するときに、ロボット100のボディ110の現在のヨー(すなわち、z軸を中心とした回転)および/またはロボット100の運動方向を追加的に考慮する。言い換えれば、ロボット100の側方にある壁は、ロボット100が壁と平行に移動するときにはロボット100との衝突のリスクをもたらさないが、ロボット100が壁に垂直に移動するときには壁が衝突のリスクをもたらすことになる。
階段(例えば、図5Hおよび5Iに示される)などの特定の地形では、知覚システム200が脛衝突回避と勾配回避とを組み合わせてステップなしマップ240を生成するとき、知覚システム200は、ステップなしマップ240のステップなし領域244を指定するときに包括的になりすぎるリスクを冒す。知覚システム200が包括的になりすぎて、それによってロボット100が階段を昇降するのを防ぐために、いくつかの実装例では、知覚システム200は、検出された階段の各階段にステップ領域246(例えば、少なくとも1セル幅のステップ領域246)があることを保証するように構成される。いくつかの例では、知覚システム200は、最もリスクの低いステップなしの状態を決定することによって、各階段上にステップ領域246を形成する。いくつかの実装例では、階段の場合、最もリスクの低いステップなしの条件は脛衝突である。これらの実装例では、知覚システム200は、地面高さマップ230の階段エリア内の潜在的な脛衝突を無視する。例えば、知覚システム200は、脛衝突閾値を満たさない潜在的な脛衝突を無視する。ここで、脛衝突閾値は、脛衝衝突の高リスク(例えば、壁)と脛衝突の低リスク(例えば、階段の立ち上がり)とを示すべき脛衝突高さhと地面高さ232との間の差を定義する。階段ごとに少なくとも1セル幅のステップ領域246を保証するために、脛衝突閾値は、階段の標準寸法を構築することに基づいて構成され得る。いくつかの例では、脛衝突は、仮定される角度に基づいているため、最も危険度の低いステップなし衝突であるが、それでも、制御システム170は、ロボット100の脚120に対するロボット100のボディ110を変更することによって、脛の角度を調整してもよい。
任意選択的に、知覚システム200は、ステップなしマップ240を生成するときに、狭いピット236または溝をステップなし領域244として示すセンサーデータ134のエリアを指定するように構成される。一般的に言えば、知覚システム200は、地面高さマップ230を生成するときに、狭いピット236を削除または充填するべきである。いくつかの例では、知覚システム200は、地面高さマップ230に基づいてステップなしマップ240を生成するので、残りの狭いピット236は、ロボット100にとって問題となる可能性がある。これらの例では、知覚システム200は、狭いピット236をステップなし領域244として指定することによって、ステップなしマップ240を生成するときに知覚される狭いピット236を回避する。知覚システム200は、地面高さマップ230の生成時に狭いピット236を充填する(すなわち、処理技術によってこれらのピット236を削除する)ように構成されているが、狭いピット236をステップなし領域244として指定することによって、ステップなしマップ240は、ロボット100が環境10の周りで移動しているときに、潜在的な不良データエリアがロボット100に問題を起こさないことを保証する。
図5Eのようないくつかの例では、知覚システム200は、ステップなしマップ240内に遊脚なし領域248および遊脚なし影248を含む。遊脚なし領域248とは、ロボット100が進行できない障害物(すなわち、ボディ障害物)を有するエリアを指す。例えば、環境10内には、地面12上に物体14(例えば、丸太-図示していないが)があるが、ロボット100は、1つ以上の脚120を物体の上および/または周りに移す(例えば、その脚120を物体14を昇降するのに十分な高さで持ち上げる)ことができない。物体14の反対側に平坦な地面があったとしても、ロボット100の現在の位置に基づいて、ロボット100が反対側に踏む方法はない。ここで、知覚システム200は、ロボット100が物体14の反対側のエリアに入ることができないため、物体14を遊脚なし領域248と識別し、物体14の反対側を遊脚なし影248と識別する。言い換えれば、遊脚なし影248は、障害物による現在の位置および/または回転(例えば、ヨー)に基づいて、ロボット100が物理的に入ることができないエリア(すなわち、ロボット100の現在の姿勢Pに基づいてロボット100がアクセスできないが、異なる姿勢Pではロボット100がアクセスできるエリア)を指定する。例えば、図5Eは、ロボット100が別の脚120を通じて1つの脚120を移動させる必要があるため、ロボット100の後脚120c~dに隣接するエリアは、遊脚なし領域248および遊脚なし影248を含まないことを示している。ここで、図5Eの着色されたパターンは、ステップ領域246が白色または斜線の白色(例えば、階段上)であり、ステップなし領域244(すなわち、ステップなしまたは遊脚なし影であること以外の理由でステップなしである領域)が薄い灰色であり、遊脚なし領域248が濃い灰色であり、遊脚なし影248が斜線の白線を有する黒色であることを示している。いくつかの実装例では、知覚システム200は、ロボット100の脚120の遠位端124の凸包で発せられるフラッドフィルアルゴリズムを用いて遊脚なし影248を形成する。
図5Fおよび5Gを参照すると、追加的または代替的に、知覚システム200は、ロボット100の現在のステップ位置で、ロボット100の1つ以上の個々の脚120に対して、ステップなしマップ240を生成する。通常、ステップなしマップ240は、ロボット100のすべての脚120に対して一般的に有効である。例えば、図5Fは、3つのステップ領域246、246a~cを示す斜線の白いエリアを有する、すべての脚120のステップなしマップ240を示している。より具体的には、第1のステップ領域246、246aは、脚120が階段の前の床の広いエリアを踏むことができることを示している。それでも、制御システム170が脚120間の衝突(自己衝突とも称される)に関して懸念するいくつかの構成があり得る。図5Fを図5Gと比較すると、図5Gは、特にロボット100の右前脚120に対するステップなしマップ240を示している。この特定のステップなしマップ240において、知覚システム200は、ロボット100の右前脚120がそのエリアを踏んだ場合に、このエリアへの右前脚120の移動が脚120同士の衝突を引き起こすエリアをさらに識別するために、ステップなし領域244(黒で示される)を生成する。例えば、知覚システム200は、左前脚120の近傍および左前脚120の左側に、第1のステップなし領域244、244aを生成する。いくつかの実装例では、知覚システム200は、遊脚なし影248と同様の技術を使用して、これらのステップなし領域244を生成する。いくつかの構成では、知覚システム200は、遊脚なし影248と同様の技術よりも計算が速い事前定義された形状を使用して、これらのステップなし領域244を生成する。
図5Hおよび5Iを参照すると、いくつかの実装例では、知覚システム200は、ステップなしマップ240をさらに処理して、ロボット100が移動できる位置とロボット100が移動できない位置との間の区別を示している。より具体的には、ステップなしマップ240は、ロボット100がマップ240のステップ領域246に移動するために踏み越えなければならない可能性があるステップなし領域244を示している。例えば、図5Hは、ロボット100の脚120が、脚120の遠位端124をステップ領域246(例えば、黒と白の斜めのパターン化されたエリアとして示されている)に配置するために、これらのステップなし領域244を踏み越えるような、各階段の部分がステップなし領域244(例えば、白いエリアとして示されている)を有する階段を昇降するロボット100を示している。これらのステップなし領域244が、制御システム170によっていくつかの機能(例えば、移動計画)のために使用されることがあるとしても、ロボット100および/または制御システム170の他の態様は、このような粒度を必要としないことがある。言い換えれば、制御システム170の1つ以上のコントローラは、マップ240のセクションがロボット100によってナビゲート可能であるかどうかをより一般的に知ることを好むことがある。したがって、いくつかの例では、知覚システム200は、マップ240のエリアが、そのエリアの部分がステップなし領域244を有する場合があっても、ナビゲート可能であるかどうかを示す大領域ステップなしマップ240、240を生成する。大領域ステップなしマップ240を生成するために、知覚システム200は、まず、ステップなしマップ240に対して形態学的侵食を実行し、続いて形態学的拡張を実行する。一般的に言えば、侵食技術は、領域の境界を除去し(例えば、小さなステップなし領域244を削除し)、次に、拡張技術は、より支配的なステップ領域246を拡大し、その結果、あるエリアがロボット100にとってナビゲート可能であるかどうかのより一般的な区別が得られる(例えば、図5Iに示されるように)。言い換えれば、この技術は、大きな領域を変更せずに小さな領域を削除しようとする。いくつかの構成では、ロボット100は、大領域ステップなしマップ240を他のマップ210、220、230と組み合わせて使用し、制御システム170の一部に異なる情報を伝達する。
図6は、ボクセルマップ210を生成する方法600の例である。動作602において、方法600は、少なくとも1つの元のセンサーデータのセット134と、現在のセンサーデータのセット134と、を受信する。少なくとも1つの元のセンサーデータのセット134および現在のセンサーデータのセット134の各々は、少なくとも1つのセンサー132からのロボット100の周りの環境10に対応する。ここで、ロボット100は、ボディ110と、脚120と、を含む。動作604において、方法600は、少なくとも1つの元のセンサーデータ134のセットに基づいて、複数のボクセル212を含むボクセルマップ210を生成することを含む。複数のボクセル212は、少なくとも1つの地面ボクセル212と、少なくとも1つの障害物ボクセル212と、を含む。動作606において、方法600は、現在のセンサーデータ134のセットに基づいて球形の深度マップを生成する。動作608において、方法600は、ボクセルマップ210と球形深度マップとの間の比較に基づいて、ボクセルマップ210によって表される障害物に変化が発生したことを決定することを含む。動作610において、方法600は、環境10内の障害物の変化を反映するためにボクセルマップ210を更新することを含む。
図7は、ボディ障害物マップ220を生成する方法700の例である。動作702において、方法700は、少なくとも1つのセンサー132から、ロボット100の周りの環境10に対応するセンサーデータ134を受信する。ここで、ロボット100は、ボディ110と、脚120と、を含む。動作704において、方法700は、センサーデータ134に基づいて、複数のボクセル212を含むボクセルマップ210を生成し、複数のボクセル212は、少なくとも1つの地面ボクセル212と、少なくとも1つの障害物ボクセル212OBと、を含む。動作706において、ボクセルマップ210に基づいて、方法700は、ロボット100のボディ110が環境10内の障害物との干渉を伴わずに移動することができる環境10内の位置を示すように構成されたボディ障害物マップ220を生成する。ボディ障害物マップ220はセル222に分割され、複数のセル222は最も近い障害物Oの指示を含む。ここで、最も近い障害物Oはボクセルマップ210の少なくとも1つの障害物Oから導出される。動作708において、方法700は、ボディ障害物マップ220をロボット100の制御システム170に通信する。制御システム170は、ロボット100を環境10の周りで移動させように構成される。
図8は、地面高さマップ230を生成する方法800の例である。動作802において、方法800は、少なくとも1つのセンサー132から、ロボット100の周りの環境10に対応するセンサーデータ134を受信する。ここで、ロボット100は、ボディ110と、脚120と、を含み、各脚120は、遠位端124を含む。動作804において、方法800は、センサーデータ134に基づいて、複数のセグメント214を含むボクセルマップ210を生成し、複数のセグメント214は、少なくとも1つの地面セグメント214と、少なくとも1つの障害物セグメント214OB、とを含む。複数のセグメント214の各セグメント214は、1つ以上のボクセル212によって画定される垂直方向の列に対応する。動作806において、ボクセルマップ210に基づいて、方法800は、ロボット100が環境10の周りで移動しているときに、ロボット100のそれぞれの脚120の遠位端124を配置する高さを示すように構成された地面高さマップ230を生成する。ここで、地面高さマップ230は、少なくとも1つのセルがそれぞれの地面セグメント214に対応し、それぞれの地面セグメント214に基づくそれぞれの高さ232を含むセルに分割される。動作808において、方法800は、地面高さマップ230をロボット100の制御システム170に通信し、制御システム170は、地面高さマップ230に基づいて、それぞれの脚120の遠位端124を環境10内の配置位置に移動させるように構成される。
図9は、ステップなしマップ240を生成する方法900の例である。動作902において、方法900は、少なくとも1つのセンサー132から、ロボット100の周りの環境10に対応するセンサーデータ134を受信する。各脚120が遠位端124を含む、ボディ110および脚120を含むロボット。動作904において、方法900は、センサーデータ134に基づいて、複数のセグメント214を含むボクセルマップ210を生成し、複数のセグメント214は、少なくとも1つの地面セグメント214と、少なくとも1つの障害物セグメント214OB、とを含む。複数のセグメント214の各セグメント214は、1つ以上のボクセル212によって画定される垂直方向の列に対応する。動作906において、ボクセルマップ210に基づいて、方法900は、ロボット100が環境10の周りで移動しているときに、ロボット100のそれぞれの脚120の遠位端124を配置する高さを示すように構成された地面高さマップ230を生成する。動作908において、地面高さマップ230に基づいて、方法900は、1つ以上のステップなし領域244を含むステップなしマップ240を生成する。ロボット100が環境10の周りで移動しているときに、ロボット100のそれぞれの脚部120の遠位端124を配置しない領域を示すように構成された各ステップなし領域244。ここで、ステップなしマップはセル242に分割され、各セル242は距離値および方向ベクトルvを含む。セル242に最も近い障害物の境界までの距離を示す距離値と、セル242に最も近い障害物の境界への方向を示す方向ベクトルv。動作910において、方法900は、ステップなしマップ240を制御システム170に通信し、制御システム170は、ステップなしマップ240に基づいて、それぞれの脚部120の遠位端124を環境10内の配置位置に移動するように構成される。
図10は、本書に記載されているシステム(例えば、センサーシステム130、制御システム170、知覚システム200など)および方法(例えば、方法600、700、800、900)を実装するために使用され得る例示的なコンピューティングデバイス1000の概略図である。コンピューティングデバイス1000は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことが意図される。本明細書に示されている構成要素、それらの接続および関係、ならびにそれらの機能は、例示のみを意図しており、本明細書で説明および/または特許請求されている本発明の実装を限定することを意味するものではない。
コンピューティングデバイス1000は、プロセッサ1010(例えば、データ処理ハードウェア142、162)、メモリ1020(例えば、メモリハードウェア144、164)、ストレージデバイス1030、メモリ1020および高速拡張ポート1050に接続される高速インターフェース/コントローラ1040、ならびに低速バス1070およびストレージデバイス1030に接続される低速インターフェース/コントローラ1060を含む。構成要素1010、1020、1030、1040、1050、および1060の各々は、様々なバスを使用して相互接続されており、共通のマザーボードに、または必要に応じて他の方法で取り付けられることができる。プロセッサ1010は、グラフィカルユーザーインターフェース(GUI)のためのグラフィカル情報を、高速インターフェース1040に結合されたディスプレイ1080などの外部入出力デバイス上に表示するために、メモリ1020内またはストレージデバイス1030上に記憶された命令を含む、コンピューティングデバイス1000内で実行するための命令を処理することができる。他の実装形態では、必要に応じて、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに使用されてもよい。また、複数のコンピューティングデバイス1000が、各デバイスが必要な動作の一部を提供する状態で(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)、接続されることができる。
メモリ1020は、コンピューティングデバイス1000内に非一時的に情報を格納する。メモリ1020は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであり得る。非一時的メモリ1020は、コンピューティングデバイス1000による使用のために、一時的にまたは永続的にプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を格納するために使用される物理的なデバイスでもよい。不揮発性メモリの例は、以下に限定されるものではないが、フラッシュメモリおよび読み取り専用メモリ(ROM)/プログラム可能な読み取り専用メモリ(PROM)/消去可能なプログラム可能な読み取り専用メモリ(EPROM)/電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)(例えば、通常、ブートプログラムなどのファームウェアに使用される)を含む。揮発性メモリの例は、以下に限定されないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、ならびにディスクまたはテープを含む。
ストレージデバイス1030は、コンピューティングデバイス1000に大容量記憶装置を提供し得る。いくつかの実装例では、ストレージデバイス1030は、コンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス1030は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成のデバイスを含むデバイスのアレイとすることができる。追加の実装形態では、コンピュータプログラム製品は、情報担体内に実体的に具体化される。コンピュータプログラム製品は、実行されると、上で説明したもののような1つ以上の方法を実行する命令を含む。情報担体は、メモリ1020、ストレージデバイス1030、またはプロセッサ1010上のメモリなどの、コンピュータ可読媒体または機械可読媒体である。
高速コントローラ1040は、コンピューティングデバイス1000の帯域幅集中動作を管理する一方で、低速コントローラ1060は、より低い帯域幅集中動作を管理する。そのようなデューティの割り当ては、例示にすぎない。いくつかの実装形態では、高速コントローラ1040は、メモリ1020と、ディスプレイ1080(例えば、グラフィックプロセッサまたはアクセラレータを介して)と、様々な拡張カード(図示せず)を受容する高速拡張ポート1050と、に結合されている。いくつかの実装例では、低速コントローラ1060は、ストレージデバイス1030と、低速拡張ポート1090と、に結合されている。様々な通信ポート(例えば、USB、Bluetooth、イーサネット、ワイヤレスイーサネット)を含むことができる低速拡張ポート1090は、キーボード、ポインティングデバイス、スキャナーなどの1つ以上の入出力デバイスに、または、例えば、ネットワークアダプタを介して、スイッチもしくはルータなどのネットワーキングデバイスに結合されることができる。
コンピューティングデバイス1000は、図に示すように、いくつかの異なる形態で実装されることができる。例えば、これは、標準のサーバ1000aとして、もしくはそのようなサーバ1000aのグループ内に複数回、ラップトップコンピューター1000bとして、ラックサーバシステム500cの一部として、またはロボット100の一部として実装され得る。
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子および/もしくは光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはそれらの組み合わせで実現され得る。これらの様々な実装は、データおよび命令をストレージシステムから受信するため、かつデータおよび命令をストレージシステムに送信するために結合された、専用または汎用であってもよい、少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスと、を含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラム内での実装を含み得る。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサ用の機械命令を含み、高レベル手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ言語/機械語で実装され得る。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械命令を機械可読信号として受け取る機械可読媒体を含む。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
本明細書で説明されるプロセスおよびロジックフローは、入力データを処理して出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行され得る。プロセスおよびロジックフローはまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によっても実行され得る。コンピュータプログラムの実行に好適なプロセッサには、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータのうちの任意の1つ以上のプロセッサが含まれる。概して、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令および/またはデータを受信することになる。コンピュータの必須要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを格納するための1つ以上のメモリデバイスである。概して、コンピュータはまた、データを格納するための1つ以上の大容量ストレージデバイス、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、または大容量ストレージデバイスからデータを受信、もしくはデータを転送、もしくはその両方を行うように動作可能に結合される。しかし、コンピュータは必ずしもそのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを格納するための好適なコンピュータ可読媒体には、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスが含まれ、例としては、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内蔵ハードディスクまたは取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクが挙げられる。プロセッサおよびメモリは、専用論理回路によって補足されるか、または専用論理回路に組み込まれ得る。
ユーザとの相互作用を提供するために、本開示の1つ以上の態様は、ユーザに情報を表示するための、例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、もしくはタッチスクリーンなどの表示デバイス、ならびに任意選択的に、ユーザがコンピュータに入力を提供できるキーボード、および、例えば、マウスもしくはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装され得る。他の種類のデバイスを使用して、ユーザとの相互作用を提供することもでき、例えば、ユーザに提供されるフィードバックは、例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形態の感覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、デバイスからドキュメントを受信することによって、例えば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
多数の実装例が説明されてきた。それでもなお、本発明の趣旨および範囲から逸脱することなく、様々な修正が行われ得ることが理解されよう。

Claims (28)

  1. 方法(600)であって、
    データ処理ハードウェア(142)において、ロボット(100)の少なくとも1つのセンサー(132)から、少なくとも1つの元のセンサーデータ(134)のセットおよび現在のセンサーデータ(134)のセットを受信することであって、前記少なくとも1つの元のセンサーデータ(134)のセットおよび前記現在のセンサーデータ(134)のセットの各々が、前記ロボット(100)の周りの環境(10)に対応し、前記ロボット(100)がボディ(110)を備える、前記少なくとも1つの元のセンサーデータ(134)のセットおよび前記現在のセンサーデータ(134)のセットを受信することと、
    前記データ処理ハードウェア(142)によって、前記少なくとも1つの元のセンサーデータ(134)のセットに基づいて、複数のボクセル(212)を含むボクセルマップ(210)を生成することであって、前記複数のボクセル(212)が、少なくとも1つの地面ボクセル(212)および少なくとも1つの障害物ボクセル(212)を含む、前記ボクセルマップ(210)を生成することと、
    前記データ処理ハードウェア(142)によって、前記現在のセンサーデータ(134)のセットに基づいて球形深度マップ(218)を生成することと、
    前記データ処理ハードウェア(142)によって、前記ボクセルマップ(210)と前記球形深度マップ(218)との間の比較に基づいて、前記ボクセルマップ(210)によって障害物として表される物体(14)に変化が発生したことを決定することと、
    前記データ処理ハードウェア(142)によって、前記環境(10)内の前記物体(14)の前記変化を反映するために前記ボクセルマップ(210)を更新することと、を含む、方法(600)。
  2. 前記ロボット(100)が四足動物を画定する4つの脚(120)を備える、請求項1に記載の方法(600)。
  3. 前記ボクセルマップ(210)を生成することが、
    前記ロボット(100)の周りの空間の3次元単位が占有されているかどうかを決定することと、
    占有されている各3次元単位について、それぞれの単位を地面、障害物、または地面でも障害物でもないもののうちの1つとして分類することと、を含む、請求項1または2に記載の方法(600)。
  4. 前記ボクセルマップ(210)が、3次元(3D)グリッドを含み、前記方法(600)が、前記ボクセルマップ(210)の前記3Dグリッドの各セルに対して、前記データ処理ハードウェア(142)によって、それぞれの垂直方向の列の連続したボクセル(212)を統合して、セグメント(214)を形成することをさらに含み、前記セグメント(214)が、高さおよび点重みWを含み、前記点重みWが、前記セグメント(214)を形成する1つ以上のボクセル(212)が前記少なくとも1つの元のセンサーデータ(134)のセットに基づいて占有されていることの確実性の程度を示す、請求項1~3のいずれか一項に記載の方法(600)。
  5. 前記データ処理ハードウェア(142)によって、それぞれのセグメント(214)の前記点重みWを、前記現在のセンサーデータ(134)のセットが、前記それぞれのセグメント(214)を定義するセンサーデータ(134)を含まないときには、減少させることをさらに含む、請求項4に記載の方法(600)。
  6. 前記データ処理ハードウェア(142)によって、前記ボクセルマップ(210)内の位置における前記セグメント(214)の前記高さを、前記球形深度マップ(218)内のそれぞれの位置における列からの高さの範囲と比較することであって、前記セグメント(214)の前記位置および前記列の前記それぞれの位置が、前記ロボット(100)に対して同じ位置に対応する、前記データ処理ハードウェア(142)によって比較することと、
    前記データ処理ハードウェア(142)によって、前記セグメント(214)の前記高さと前記列からの前記高さの範囲とが一致しないことを決定することと、をさらに含む、請求項4または5に記載の方法(600)。
  7. 前記球形深度マップ(218)が、前記現在のセンサーデータ(134)のセットの球形表現を含み、前記球形表現が、前記現在のセンサーデータ(134)のセットを捕捉する前記少なくとも1つのセンサー(132)からの距離および高さにおける前記センサーデータ(134)の点によって画定される矩形構造体を含む、請求項1~6のいずれか一項に記載の方法(600)。
  8. 前記環境(10)内の前記物体(14)の前記変化を反映するために前記ボクセルマップ(210)を更新することが、前記変化に関連付けられている前記障害物に対応する前記ボクセルマップ(210)から1つ以上のボクセル(212)を削除することを含む、請求項1~7のいずれか一項に記載の方法(600)。
  9. 前記1つ以上のボクセル(212)を削除することが、
    ヒューリスティックを使用して、前記環境(10)による前記物体(14)の前記変化に関連付けられている近くのボクセル(212)を識別することと、
    前記識別された近くのボクセル(212)を削除することと、を含む、請求項8に記載の方法(600)。
  10. 前記環境(10)内の前記物体(14)の前記変化を反映するために前記ボクセルマップ(210)を更新することが、前記変化に関連付けられている前記障害物(214OB)に対応する前記セグメント(214)を切り取ることを含む、請求項4~6のいずれか一項に記載の方法(600)。
  11. 方法(700)であって、
    データ処理ハードウェア(142)において、ロボット(100)の周りの環境(10)に対応するセンサーデータ(134)を、前記ロボット(100)の少なくとも1つのセンサー(132)から受信することであって、前記ロボット(100)が、ボディ(110)を備える、前記センサーデータ(134)を受信することと、
    前記データ処理ハードウェア(142)によって、前記センサーデータ(134)に基づいて、複数のボクセル(212)を含むボクセルマップ(210)を生成することであって、前記複数のボクセル(212)が、少なくとも1つの地面ボクセル(212)および少なくとも1つの障害物ボクセル(212)を含む、前記ボクセルマップ(210)を生成することと、
    前記ボクセルマップ(210)に基づいて、前記データ処理ハードウェア(142)によって、前記ロボット(100)の前記ボディ(110)が障害物の前記環境(10)との干渉を伴わずに移動することができる前記環境(10)内の位置を示すように構成されたボディ障害物マップ(220)を生成することであって、前記ボディ障害物マップ(220)が、セル(222)に分割され、複数の前記セル(222)が、最も近い障害物境界の指示を含み、前記最も近い障害物境界が、前記ボクセルマップ(210)の前記少なくとも1つの障害物ボクセル(212)から導出される、前記ボディ障害物マップ(220)を生成することと、
    前記データ処理ハードウェア(142)によって、前記ボディ障害物マップ(220)を、制御システム(170)に通信することであって、前記制御システム(170)が、前記環境(10)の周りで前記ロボット(100)を移動させるように構成されている、前記ボディ障害物マップ(220)を通信することと、を含む、方法(700)。
  12. 前記指示が、前記最も近い障害物境界までの距離の推定値と、前記最も近い障害物境界への方向と、を含む、請求項11に記載の方法(700)。
  13. 前記ボディ障害物マップ(220)を生成することが、複数のベクトルを含むベクトルフィールド(228VF)を生成することを含み、前記複数のベクトルの各ベクトルが、障害物回避の方向を示し、各ベクトルが、前記最も近い障害物境界への前記方向とは反対のベクトル方向を含む、請求項12に記載の方法(700)。
  14. 前記制御システム(170)が、前記ボディ障害物マップ(220)を使用して、前記ロボット(100)の前記ボディ(110)の水平方向の運動および前記ロボット(100)の前記ボディ(110)のヨー回転を制御するように構成されている、請求項11~13のいずれか一項に記載の方法(700)。
  15. 前記データ処理ハードウェア(142)によって、前記複数のボクセル(212)の各ボクセル(212)に関連付けられている点重みに基づいて、前記ボクセルマップ(210)の前記複数のボクセル(212)をフィルタリングすることをさらに含み、前記点重みが、前記センサーデータ(134)に基づいて、それぞれのボクセル(212)が占有されている確実性の程度を示す、前記複数のボクセル(212)をフィルタリングすることを含み、
    前記ボクセルマップ(210)に基づいて前記ボディ障害物マップ(220)を生成することが、点重み閾値を満たし、かつ障害物ボクセル(212)に対応する前記フィルタリングされた複数のボクセル(212)を前記ボディ障害物マップ(220)に変換することを含む、請求項11~14のいずれか一項に記載の方法(700)。
  16. 方法(800)であって、
    データ処理ハードウェア(142)において、ロボット(100)の周りの環境(10)に対応するセンサーデータ(134)を、前記ロボット(100)の少なくとも1つのセンサー(132)から受信することであって、前記ロボット(100)が、ボディ(110)と、脚(120)と、を備え、各脚(120)が、遠位端(124)を備える、前記センサーデータ(134)を受信することと、
    前記データ処理ハードウェア(142)によって、前記センサーデータ(134)に基づいて、複数のセグメント(214)を含むボクセルマップ(210)を生成することであって、前記複数のセグメント(214)の各セグメント(214)が、1つ以上のボクセル(212)によって画定される垂直方向の列に対応し、前記複数のセグメント(214)が、少なくとも1つの地面セグメント(214)と、少なくとも1つの障害物セグメント(214OB)と、を含む、前記ボクセルマップ(210)を生成することと、
    前記ボクセルマップ(210)に基づいて、前記データ処理ハードウェア(142)によって、前記ロボット(100)が前記環境(10)の周りで移動しているときに前記ロボット(100)のそれぞれの脚(120)の前記遠位端(124)を配置するための高さを示すように構成された地面高さマップ(230)を生成することであって、前記地面高さマップ(230)が、セルに分割され、少なくとも1つのセルが、それぞれの地面セグメント(214G)に対応し、かつ前記それぞれの地面セグメント(214G)に基づくそれぞれの高さ(232)を含む、前記地面高さマップ(230)を生成することと、
    前記データ処理ハードウェア(142)によって、前記地面高さマップ(230)を制御システム(170)に通信することであって、前記制御システム(170)が、前記地面高さマップ(230)に基づいて、前記それぞれの脚(120)の前記遠位端(124)を前記環境(10)内の配置位置に移動させるように構成されている、前記地面高さマップ(230)を通信することと、を含む、方法(800)。
  17. 前記地面高さマップ(230)を生成することが、前記それぞれの地面セグメント(214)の1つ以上のボクセル(212)の点重みWが高さ精度閾値(232TH)を満たすことを決定することを含み、前記点重みWが、センサーデータ(134)に基づいて、それぞれのボクセル(212)が占有されていることの確実性の程度を示し、前記高さ精度閾値(232TH)が、前記それぞれの地面セグメント(214)によって表される所与の物体(14)の高さ(232)の精度のレベルを示す、請求項16に記載の方法(800)。
  18. 前記それぞれの地面セグメント(214)の1つ以上のボクセル(212)の前記点重みWが高さ精度閾値(232TH)を満たすことを決定することが、前記それぞれの地面セグメント(214)を画定する前記1つ以上のボクセル(212)を、前記それぞれの地面セグメント(214)の最大高さ(232)から、前記それぞれの地面セグメント(214)の最小高さ(232)まで昇降することを含む、請求項17に記載の方法(800)。
  19. 前記データ処理ハードウェア(142)によって、前記地面高さマップ(230)の1つ以上のセルが欠落している地形に対応することを識別することと、
    前記データ処理ハードウェア(142)によって、前記欠落している地形が前記センサーデータ(134)の妨害(234)に対応するかどうかを決定することと、
    前記欠落した地形が前記センサーデータ(134)の前記妨害(234)に対応するとき、前記データ処理ハードウェア(142)によって、前記欠落している地形を平坦な地形(234FT)で置き換えることと、をさらに含む、請求項16~18のいずれか一項に記載の方法(800)。
  20. 前記欠落している地形が前記センサーデータ(134)の前記妨害(234)に対応しないときには、前記データ処理ハードウェア(142)によって、前記欠落している地形を平滑な地形(234ST)で置き換えることをさらに含む、請求項19に記載の方法(800)。
  21. 新しいセンサーデータ(134)が前記平坦な地形(234FT)に対応する実際の地形を識別するまで、前記平坦な地形(234FT)が前記地面高さマップ(230)内に持続する、請求項19または20に記載の方法(800)。
  22. 前記平滑な地形(234ST)が、前記地面高さマップ(230)の後続の反復中に、前記地面高さマップ(230)に対して持続しない、請求項20に記載の方法(800)。
  23. 方法(900)であって、
    データ処理ハードウェア(142)において、ロボット(100)の周りの環境(10)に対応するセンサーデータ(134)を、前記ロボット(100)の少なくとも1つのセンサー(132)から受信することであって、前記ロボット(100)が、ボディ(110)と、脚(120)と、を備え、各脚(120)が、遠位端(124)を備える、前記センサーデータ(134)を受信することと、
    前記データ処理ハードウェア(142)によって、前記センサーデータ(134)に基づいて、複数のセグメント(214)を含むボクセルマップ(210)を生成することであって、前記複数のセグメント(214)の各セグメント(214)が、1つ以上のボクセル(212)によって画定される垂直方向の列に対応し、前記複数のセグメント(214)が、少なくとも1つの地面セグメント(214)と、少なくとも1つの障害物セグメント(214OB)と、を含む、前記ボクセルマップ(210)を生成することと、
    前記ボクセルマップ(210)に基づいて、前記データ処理ハードウェア(140)(142)によって、前記ロボット(100)が前記環境(10)の周りで移動しているときに前記ロボット(100)のそれぞれの脚(120)の前記遠位端(124)を配置するための高さを示すように構成された地面高さマップ(230)を生成することと、
    前記地面高さマップ(230)に基づいて、前記データ処理ハードウェア(142)によって、1つ以上のステップなし領域(244)を含むステップなしマップ(240)を生成することであって、各ステップなし領域(244)が、前記ロボット(100)が前記環境(10)の周りで移動しているときに前記ロボット(100)のそれぞれの脚(120)の前記遠位端(124)を配置しない領域を示すように構成されており、前記ステップなしマップ(240)が、セル(242)に分割されており、各セル(242)が、距離値と、方向ベクトルと、を含み、前記距離値が、セル(242)に最も近い障害物(O)の境界までの距離を示し、前記方向ベクトルが、前記セル(242)に前記最も近い障害物(O)の前記境界への方向を示す、前記ステップなしマップ(240)を生成することと、
    前記データ処理ハードウェア(142)によって、前記ステップなしマップ(240)を制御システム(170)に通信することであって、前記制御システム(170)が、前記ステップなしマップ(240)に基づいて、前記それぞれの脚(120)の前記遠位端(124)を前記環境(10)内の配置位置に移動させるように構成されている、前記ステップなしマップ(240)を通信することと、を含む、方法(900)。
  24. 前記最も近い障害物(O)の前記境界までの前記距離は、前記セル(242)が前記最も近い障害物(O)の内側にあるか、または前記最も近い障害物(O)の外側にあるかを識別する符号を含む、請求項23に記載の方法(900)。
  25. 前記データ処理ハードウェア(142)によって、
    指令されたスピードを達成するための脚(120)の最小勾配を決定することと、
    前記最小勾配に基づいて、脛衝突高さ(h)を識別することと、
    前記ステップなしマップ(240)の各セル(242)に対して、前記脛衝突高さ(h)をそれぞれのセル(242)の地面高さ(232)と比較することであって、前記それぞれのセル(242)の前記地面高さ(232)が前記地面高さマップ(230)から受信される、前記脛衝突高さ(h)をそれぞれのセル(242)の地面高さ(232)と比較することと、
    によって潜在的な脛衝突に対応する第1のステップなし領域(244)を決定することをさらに含む、請求項23または24に記載の方法(900)。
  26. 前記データ処理ハードウェア(142)によって、前記脛衝突高さ(h)と前記それぞれのセル(242)の前記地面高さ(232)との間の差が、脛衝突閾値を満たすことを決定することをさらに含む、請求項25に記載の方法(900)。
  27. 前記1つ以上のステップなし領域(244)のうちの少なくとも1つのステップなし領域(244)が、前記ロボット(100)の現在の姿勢に基づいて前記ロボット(100)にアクセス可能でないエリアを識別し、前記ロボット(100)にアクセス可能な前記エリアが、前記現在の姿勢とは異なる代替の姿勢である、請求項23~26のいずれか一項である方法(900)。
  28. 前記ステップなしマップ(240)を生成することが、前記ロボット(100)の特定の脚(120)の前記ステップなしマップ(240)を生成することを含む、請求項23~27のいずれか一項に記載の方法(900)。
JP2022502057A 2019-08-06 2019-09-17 制約された移動度マッピング Active JP7425854B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962883310P 2019-08-06 2019-08-06
US62/883,310 2019-08-06
US16/573,284 US11416003B2 (en) 2019-08-06 2019-09-17 Constrained mobility mapping
US16/573,284 2019-09-17
PCT/US2019/051511 WO2021025708A1 (en) 2019-08-06 2019-09-17 Constrained mobility mapping

Publications (2)

Publication Number Publication Date
JP2022543997A true JP2022543997A (ja) 2022-10-17
JP7425854B2 JP7425854B2 (ja) 2024-01-31

Family

ID=74498868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022502057A Active JP7425854B2 (ja) 2019-08-06 2019-09-17 制約された移動度マッピング

Country Status (6)

Country Link
US (2) US11416003B2 (ja)
EP (1) EP4010773B1 (ja)
JP (1) JP7425854B2 (ja)
KR (1) KR20220083666A (ja)
CN (1) CN114503043A (ja)
WO (1) WO2021025708A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US11599128B2 (en) 2020-04-22 2023-03-07 Boston Dynamics, Inc. Perception and fitting for a stair tracker
US11548151B2 (en) * 2019-04-12 2023-01-10 Boston Dynamics, Inc. Robotically negotiating stairs
FR3099753B1 (fr) * 2019-08-07 2021-09-03 Safran Aircraft Engines Procede de surveillance, produit programme d’ordinateur, systeme de surveillance et aeronef associes
AU2020366385A1 (en) * 2019-10-15 2022-05-12 Alarm.Com Incorporated Navigation using selected visual landmarks
US11597089B2 (en) * 2020-11-06 2023-03-07 Bear Robotics, Inc. Method, system, and non-transitory computer-readable recording medium for controlling a destination of a robot
KR102543745B1 (ko) * 2021-06-09 2023-06-14 주식회사 버넥트 현장 운전상황 및 설비 정보 수집 방법 및 그 시스템
US11753045B2 (en) * 2021-06-22 2023-09-12 Waymo Llc Modeling positional uncertainty of moving objects using precomputed polygons
WO2023085183A1 (ja) * 2021-11-10 2023-05-19 ソニーグループ株式会社 情報処理装置、情報処理方法および移動体
DE102021131129A1 (de) 2021-11-26 2023-06-01 Navvis Gmbh Mobile vorrichtung und verfahren zum erfassen eines objektraums
CN115709471B (zh) * 2023-01-10 2023-05-30 深圳鹏行智能研究有限公司 机器人状态值调整方法及机器人
KR102524995B1 (ko) * 2023-02-02 2023-04-25 국방과학연구소 전자 장치의 지도 생성 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02127180A (ja) * 1988-11-07 1990-05-15 Agency Of Ind Science & Technol 歩行機械の歩行脚制御装置
JP2007041656A (ja) * 2005-07-29 2007-02-15 Sony Corp 移動体制御方法および移動体
JP2009271513A (ja) * 2008-04-30 2009-11-19 Samsung Electronics Co Ltd ロボット及びその地図作成方法
WO2018231616A1 (en) * 2017-06-14 2018-12-20 Zoox, Inc. Voxel based ground plane estimation and object segmentation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0616688D0 (en) * 2006-08-23 2006-10-04 Qinetiq Ltd Target orientation
KR101210498B1 (ko) * 2010-08-27 2012-12-10 한국과학기술원 이족보행 로봇을 위한 발걸음 계획 방법
CA2928262C (en) * 2010-12-30 2018-06-26 Irobot Corporation Mobile robot system
US10081098B1 (en) * 2014-08-25 2018-09-25 Boston Dynamics, Inc. Generalized coordinate surrogates for integrated estimation and control
US9704043B2 (en) * 2014-12-16 2017-07-11 Irobot Corporation Systems and methods for capturing images and annotating the captured images with information
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
US10269257B1 (en) 2015-08-11 2019-04-23 Gopro, Inc. Systems and methods for vehicle guidance
CN105652873B (zh) * 2016-03-04 2018-10-09 中山大学 一种基于Kinect的移动机器人避障方法
GB2550347A (en) * 2016-05-13 2017-11-22 The Imp College Of Science Tech & Medicine Real-Time Height Mapping
US9996944B2 (en) * 2016-07-06 2018-06-12 Qualcomm Incorporated Systems and methods for mapping an environment
CN107515606A (zh) * 2017-07-20 2017-12-26 北京格灵深瞳信息技术有限公司 机器人实现方法、控制方法及机器人、电子设备
CA3000134C (en) * 2017-11-27 2019-07-02 Cae Inc. Method and system for simulating a radar image
US10572775B2 (en) * 2017-12-05 2020-02-25 X Development Llc Learning and applying empirical knowledge of environments by robots
US11237572B2 (en) * 2018-12-27 2022-02-01 Intel Corporation Collision avoidance system, depth imaging system, vehicle, map generator and methods thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02127180A (ja) * 1988-11-07 1990-05-15 Agency Of Ind Science & Technol 歩行機械の歩行脚制御装置
JP2007041656A (ja) * 2005-07-29 2007-02-15 Sony Corp 移動体制御方法および移動体
JP2009271513A (ja) * 2008-04-30 2009-11-19 Samsung Electronics Co Ltd ロボット及びその地図作成方法
WO2018231616A1 (en) * 2017-06-14 2018-12-20 Zoox, Inc. Voxel based ground plane estimation and object segmentation

Also Published As

Publication number Publication date
JP7425854B2 (ja) 2024-01-31
WO2021025708A1 (en) 2021-02-11
EP4010773B1 (en) 2024-05-29
US11416003B2 (en) 2022-08-16
CN114503043A (zh) 2022-05-13
US20220374024A1 (en) 2022-11-24
US20210041887A1 (en) 2021-02-11
KR20220083666A (ko) 2022-06-20
EP4010773A1 (en) 2022-06-15

Similar Documents

Publication Publication Date Title
JP7425854B2 (ja) 制約された移動度マッピング
US11660752B2 (en) Perception and fitting for a stair tracker
JP7219812B2 (ja) 地形を意識したステッププランニングシステム
US20240174310A1 (en) Stair Tracking for Modeled and Perceived Terrain
US7912583B2 (en) Environment map building method, environment map building apparatus and mobile robot apparatus
JP5023186B2 (ja) 3dワーピング手法と固有対象物運動(pom)の検出の組み合わせに基づく対象物の動き検出システム
US11073842B1 (en) Perception and fitting for a stair tracker
EP4139193A1 (en) Identifying stairs from footfalls
Castejón et al. Compact modeling technique for outdoor navigation

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: 20230222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231127

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: 20231222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240119

R150 Certificate of patent or registration of utility model

Ref document number: 7425854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150