JP6986188B6 - 環境地図生成および位置整合のための方法ならびにシステム - Google Patents

環境地図生成および位置整合のための方法ならびにシステム Download PDF

Info

Publication number
JP6986188B6
JP6986188B6 JP2019556310A JP2019556310A JP6986188B6 JP 6986188 B6 JP6986188 B6 JP 6986188B6 JP 2019556310 A JP2019556310 A JP 2019556310A JP 2019556310 A JP2019556310 A JP 2019556310A JP 6986188 B6 JP6986188 B6 JP 6986188B6
Authority
JP
Japan
Prior art keywords
sensor
map
markers
environment
transformation
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.)
Active
Application number
JP2019556310A
Other languages
English (en)
Other versions
JP2020519987A (ja
JP6986188B2 (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 JP2020519987A publication Critical patent/JP2020519987A/ja
Publication of JP6986188B2 publication Critical patent/JP6986188B2/ja
Application granted granted Critical
Publication of JP6986188B6 publication Critical patent/JP6986188B6/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F17/00Safety devices, e.g. for limiting or indicating lifting force
    • B66F17/003Safety devices, e.g. for limiting or indicating lifting force for fork-lift trucks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/063Automatically guided
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/075Constructional features or details
    • B66F9/0755Position control; Position detectors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/383Indoor data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/16Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using electromagnetic waves other than radio waves
    • 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/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/344Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • G06T7/41Analysis of texture based on statistical description of texture
    • G06T7/44Analysis of texture based on statistical description of texture using image operators, e.g. filters, edge density metrics or local histograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Structural Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Geology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Civil Engineering (AREA)
  • Electromagnetism (AREA)
  • Probability & Statistics with Applications (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Description

関連出願の相互参照
本出願は、2017年4月21日に出願された米国特許出願第15/494,341号の優先権を主張し、その出願はその全体が参照により本明細書に援用される。
製造業者、小売業者、および輸送事業者などの商業実体は、多くの場合、倉庫を使用して原材料、部品またはコンポーネント、梱包材、および完成品などのアイテムを格納する。倉庫は、パレットと、アクセスを容易化させ、かつ処理を効率化させるように様々なアイテムを保持する多数のパレットを格納するパレットラックと、の使用によってアイテムの編成を可能にすることができる。したがって、倉庫は、倉庫内で稼働する運搬装置および他の設備による運搬のためにアイテムを保持するように構成された平坦な搬送構造物である、様々な種類のパレットを使用し得る。
通常、人間の操作者が、倉庫内の機械、運搬装置、および他の設備を操作し得る。例として、人間の操作者が、フォークリフトを操縦して、配送領域と保管庫との間でパレットを持ち上げて運搬し得る。しかしながら、センサ、計算能力、および他の技術のたゆまぬ進化とともに、企業は、人間の操作者に依存するのではなく、倉庫内で作業を行う自律型および半自律型の運搬装置への切り替えを行いつつある。
例の実装形態は、地図生成および位置整合のための方法およびシステムに関する。例の実装形態は、環境内に配置されたマーカの、センサからの測定値を使用してマーカ位置の地図を構築するコンピューティングシステムを伴い得る。コンピューティングシステムは、さらに、環境内の表面までの距離測定値を使用して、マーカの地図を環境の設計モデルと位置整合させ得る。
一態様では、例の方法が提供される。この方法は、センサから、センサに対する環境内の複数のマーカの位置を表示する第1のセンサデータを受け取ることと、第1のセンサデータに基づいて、複数のマーカの地図内のセンサのポーズを決定することと、を含み得る。この方法は、センサから、センサから環境内の表面までの距離を表示する第2のセンサデータを受け取ることと、第2のセンサデータとセンサの決定されたポーズとに基づいて、環境内の表面を表す占有格子地図を決定することと、をさらに含み得る。この方法はまた、複数のマーカの地図と環境の設計モデルとの間の、占有格子地図内の占有されたセルを設計モデルからのサンプリングされたポイントと関連付ける変換を決定することと、複数のマーカの地図と設計モデルとの間の変換を提供することと、を含み得る。
別の態様では、例のシステムが提供される。このシステムは、センサと、コンピューティングシステムと、非一過性コンピュータ可読媒体と、非一過性コンピュータ可読媒体に記憶されたプログラム命令であって、コンピュータシステムによって、センサから、センサに対する環境内の複数のマーカの位置を表示する第1のセンサデータを受け取り、第1のセンサデータに基づいて、複数のマーカの地図内のセンサのポーズを決定する、ように実行可能であるプログラム命令と、を含み得る。非一過性コンピュータ可読媒体に記憶されたプログラム命令によって、さらに、コンピューティングシステムは、センサから、センサから環境内の表面までの距離を表示する第2のセンサデータを受け取り、第2のセンサデータとセンサの決定されたポーズとに基づいて、環境内の表面を表す占有格子地図を決定し得る。非一過性コンピュータ可読媒体に記憶されたプログラム命令によって、さらに、コンピューティングシステムは、複数のマーカの地図と環境の設計モデルとの間の、占有格子地図内の占有されたセルを設計モデルからのサンプリングされたポイントと関連付ける変換を決定し、複数のマーカの地図と設計モデルとの間の変換を提供し得る。
さらなる態様では、非一過性コンピュータ可読媒体が提供される。この非一過性コンピュータ可読媒体は、コンピューティングシステムに動作を実行させるようにコンピューティングシステムによって実行可能な命令が中に記憶されている。この動作は、センサから、センサに対する環境内の複数のマーカの位置を表示する第1のセンサデータを受け取ることと、第1のセンサデータに基づいて、複数のマーカの地図内のセンサのポーズを決定することと、を含み得る。この動作は、センサから、センサから環境内の表面までの距離を表示する第2のセンサデータを受け取ることと、第2のセンサデータとセンサの決定されたポーズとに基づいて、環境内の表面を表す占有格子地図を決定することと、をさらに含み得る。この動作はまた、複数のマーカの地図と環境の設計モデルとの間の、占有格子地図内の占有されたセルを設計モデルからのサンプリングされたポイントと関連付ける変換を決定することと、複数のマーカの地図と設計モデルとの間の変換を提供することと、を含み得る。
また別の態様では、システムが提供される。このシステムは、地図生成および位置整合のための手段を含み得る。特に、このシステムは、センサから、センサに対する環境内の複数のマーカの位置を表示する第1のセンサデータを受け取る手段と、第1のセンサデータに基づいて、複数のマーカの地図内のセンサのポーズを決定する手段と、を含み得る。このシステムは、センサから、センサから環境内の表面までの距離を表示する第2のセンサデータを受け取る手段と、第2のセンサデータとセンサの決定されたポーズとに基づいて、環境内の表面を表す占有格子地図を決定する手段と、をさらに含み得る。このシステムはまた、複数のマーカの地図と環境の設計モデルとの間の、占有格子地図内の占有されたセルを設計モデルからのサンプリングされたポイントと関連付ける変換を決定する手段と、複数のマーカの地図と設計モデルとの間の変換を提供する手段と、を含み得る。
これらの態様および他の態様、利点、および代替物は、添付の図面を適宜参照して以下の詳細な説明を読むことにより、当業者に明らかになるであろう。
例の実施形態による、システムのブロック図である。 例の実施形態による、1つ以上の倉庫を動作させるシステムを描画する。 例の実施形態による、システムを例示する。 例の実施形態による、1つ以上のロボットデバイスのためのロボットデバイスアーキテクチャを例示する。 例の実施形態による、1つ以上のロボットデバイスのためのレーザスキャナアーキテクチャを例示する。 例の実施形態による、スペースの事前地図作成を行うためのデバイスを例示する。 例の実施形態による、環境内をナビゲートしているロボットを示す。 例の実施形態による、ロボットが、検出を、地図作成されたランドマークと関連付けることを示す。 例の実施形態による、ロボット制御システムのモジュールを例示する機能ブロック図である。 地図生成および位置整合のための例示の方法を示すフローチャートである。 例の実装形態による、占有格子地図を例示する。 例の実施形態による、マーカ位置の地図と設計モデルとの間の変換決定を例示する。 例の実施形態による、図12Aに描画されたマーカ位置の地図と設計モデルとの間の位置整合を例示する。
本明細書では、例の方法およびシステムが記載される。「例の」、「例として役立つ」、および「例示的な」との文言は、本明細書では、「例、実例、または例示として機能すること」を意味するように使用される。「例」である、「例として役立つ」、または「例示的」である、本明細書に記載される任意の実装形態または特徴は、必ずしも、他の実装形態または特徴よりも好ましい、または有利であると解釈されるべきではない。
本明細書に記載された例の実装形態は、限定的であることを意図されていない。本明細書に概して記載され、および図面に例示されているように、本開示の態様は、多種多様な異なる構成に編集され、置換され、組み合わされ、分離され、および設計されることが可能であり、それらの全てが本明細書で明示的に想到される。
I.概観
計算能力およびセンサ能力の進歩は、倉庫および他の種類の環境内で動作を実行するロボットデバイス(ロボット)の配備の増加に貢献することに役立ってきた。いくつかの動作は据え置き型ロボットによって実行され得るが、多くのタスクにとって、大抵の場合、ロボットが複数の位置の間を上手くナビゲートすることが必要である。したがって、タスクを完了させるために、移動型ロボットは、環境の本質的な理解を必要とし得る。
実際、様々な方法を使用して、使用する移動型ロボットが環境を効率的にナビゲートするための情報を進化させてもよい。特に、移動型ロボットが、移動型ロボットの制御システムが物理的境界の周辺で適切なナビゲーション方針を決定できるようにし得る、スペースの1つ以上の地図に依拠してもよい。
環境の地図を進化させるために、例示の方法は、環境を手作業で調査して、ロボットがナビゲーション中に使用し得る様々なランドマークの位置を決定してもよい。ランドマークは、位置および方位の基準に使用できる環境内の検出可能な特徴を表す。例えば、倉庫は、ロボットを誘導することに役立つ、特定の場所に配置された逆反射マーカ(マーカ)または他のインフラストラクチャを含んでもよい。マーカおよび他の存在し得るランドマークは、ロボットが位置を変化させる際に、マーカおよび他の存在し得るランドマークが、異なる位置および異なる角度から再観測できるため、有益である。例示の目的で、マーカを本明細書で検討される主要なランドマークとして使用するが、他の種類のランドマークも例の範囲内にあり得る。
環境の手作業の調査は、ロボットが使用できるマーカの正確な地図の作成を可能にし得るが、このプロセスは、時間がかかり、ロボットの配備を遅延させる可能性がある。さらに、この方法は、スペースの物理的特徴を指定する設計モデルと位置整合したマーカ位置の地図を作成しない可能性がある。この方法はまた、さらなるマーカを追加しなければナビゲートすることが困難であることが判明する特定の領域を特定するための、後続の試験を必要とし得る。
地図作成プロセスを高速化し、かつリアルタイムのユーザフィードバックを可能にするために、コンピューティングシステムは、センサが環境内の異なる位置からの測定値を提供する間に、センサによって提供される測定値を使用して未知の環境(例えば、倉庫)の地図を構築する同時の自己位置推定および地図作成(simultaneous localization and mapping、SLAM)プロセスを実行してもよい。SLAMは、マーカ検出、データ関連付け、ポーズ推定、およびポーズ/マーカ高精度化を伴うことが可能であり、環境のレーザスキャンなどの多様なセンサデータを使用して、2次元(2D)または3次元(3D)で実行できる。SLAMを実行中に、コンピューティングシステムは、環境に配備されたロボットまたは他の運搬装置(自律型または手動型)によって使用できる検出されたマーカの位置を指定する地図を進化させてもよい。
いくつかの例の実施形態では、コンピューティングシステムは、マーカ位置の部分的に完成された地図を、物理的特徴(例えば、壁、階段、充電ステーション、および駐車スポット)の構造および場所を指定するコンピュータ支援設計(CAD)モデルなどの環境の設計モデルと位置整合させる変換の決定もしながら、同時にSLAMを実行してもよい。変換は、ロボット制御システムが、ナビゲーション中に、マーカと物理的特徴との位置を併せて正確に使用し得るように、マーカの地図を設計モデルと位置整合させてもよい。コンピューティングシステムは、変換、設計モデル、およびマーカの地図を、安全なナビゲーションを可能にする環境に配備されたロボットの制御システムに提供してもよい。いくつかの実例では、人間の操作者が、環境内で運搬装置をナビゲートするときに、組み合わされた情報を使用してもよい。
例の実施形態では、コンピューティングシステムは、センサからの距離測定値を使用して、マーカの検出された位置を、環境のCADモデルにおける壁および他のインフラストラクチャと位置整合させてもよい。例として、コンピューティングシステムは、センサによって提供された距離測定値に基づいて、第1のマーカを階段の近くに配置させ、別のマーカをドアに関連する壁上に配置させることを決定してもよい。
いくつかの例では、コンピューティングシステムは、周囲の表面の入信するセンサ測定値に基づいて、環境内の対応する領域を表す多数のセルを含む占有格子地図を生成してもよい。特に、コンピューティングシステムは、センサの視点(point-of-view、POV)に対応する座標系を用いて占有格子地図を進化させてもよい。占有格子地図の各セルは、表される領域のステータスを表示する割り当て状態を有してもよい。例として、セルは、障害物、空きスペース、または未知の物を含んでもよい。占有格子地図は、センサのPOVからのセンサ測定値を使用して進化させてもよいため、占有格子地図は、センサ測定値に基づいて進化させたマーカの地図と同じ座標系を使用して決定されてもよい。結果として、コンピューティングシステムは、占有格子地図とCADモデルとの間の誤差を最小にすることによって、マーカの地図をCADモデルと位置整合させてもよい。
進化させた占有格子地図と環境を表すCADモデルとの誤差を最小にするために、占有格子地図内の占有されたセルを、設計モデルからのサンプリングされたポイントに関連付ける変換が使用されてもよい。例として、変形は、占有格子地図と設計モデルからのサンプリングされたポイントとの間の誤差を減少させる、水平面の回転および並進を伴ってもよい。いくつかの例では、コンピューティングシステムは、変形の決定時に、様々な2D回転および並進の値をサンプリングしてもよい。
さらなる例では、コンピューティングシステムは、マーカの地図を設計モデルに割り当てる変換の決定もしながら、同時に、環境内のマーカ位置の地図を進化させてもよい。例として、コンピューティングシステムは、環境全体にわたる一回の実施で、環境内のマーカ位置の地図を設計モデルに割り当てることができる変換最適化を、グラフベースのSLAM実装形態中に組み込んでもよい。実際的には、コンピューティングシステムは、上記のプロセスを使用して、SLAMの一回の反復後に、ロボットが環境の既存のCADモデルを活用することを可能にしてもよい。
いくつかの例では、コンピューティングシステムは、SLAM(または同様のプロセス)の動作を実行することと、マーカ位置の進化させた地図を設計モデルに割り当てる変換を更新することと、を交互に行ってもよい。例として、コンピューティングシステムは、検出されたマーカの地図に対するセンサのポーズを決定し、続いて、環境内の近くの表面の測定値を使用して、マーカ位置の地図をCADモデルに割り当ててもよい。結果として、ロボットおよび他の運搬装置は、マーカの位置と物理的特徴との両方を表示する情報を使用して環境をナビゲートしてもよい。例えば、制御システムは、マーカの位置を使用して、物理的な壁の周辺を駐車スポットまで、または環境の設計モデルにおいて表示されるような格納ラックまでナビゲートする方針を決定してもよい。
いくつかの例では、コンピューティングシステムは、マーカの地図の座標系をCADモデルの座標系と関連して設定することによって、マーカの地図をCADモデルと位置整合させてもよい。したがって、コンピューティングシステムは、マーカの地図への新たな追加内容を、自動的に、壁、ラッキング、およびCADモデルにおいて述べた他の構造物に割り当てるように構成されてもよい。加えて、コンピューティングシステムは、追加のセンサデータを使用して、マーカ位置の地図内のセンサのポーズを高精度化してもよい。コンピューティングシステムはまた、高精度化されたポーズを使用して、マーカ位置の地図を設計モデルと位置整合させる変形を調整してもよい。例えば、コンピューティングシステムは、元の変換に基づいた、より狭い範囲の候補変換をサンプリングすることによって、変換を調整してもよい。
いくつかの例の実施形態では、コンピューティングシステムは、決定された変換を他のシステム(例えば、環境内に配備されたロボットの制御システム)に提供してもよい。ロボットの制御システムは、マーカ地図、変換、および/または環境をナビゲートするための設計モデルを使用してもよい。いくつかの場合では、コンピューティングシステムは、変換と環境の設計モデル(例えば、CADモデル)とに基づいて、ロボットの制御システムに制御命令を提供してもよい。
II.ロボットデバイスのシステム設計
図1は、例の実施形態による、システム100のブロック図である。システム100は、プランニングシステム110およびロボットデバイス120を含む。プランニングシステム110は、環境内で動作している1つ以上のロボットデバイスの動きを協調させることができるオフボードプランナ112を含むことができる。オフボードプランナ112は、ロードマッププランナ114を含んでもよく、オフボードプランナ112および/またはロードマッププランナ114が、ロボットデバイス(例えば、ロボットデバイス120)が環境内で追従する1つ以上の非同期経路116を生成してもよいようになっている。
図3との関連で以下に検討するプロトタイプグラフ300などの、ロードマップグラフ、プロトタイプグラフ、環境を表す他のロードマップが、受け取られ、決定され、または他の方法でプランニングシステム110、オフボードプランナ112、および/またはロードマッププランナ114に提供され得る。非同期経路116は、ロードマップグラフ、プロトタイプグラフ、または他のロードマップのうちの1つ以上に基づいて進化させた1つ以上の経路とすることができる。例えば、ロードマップグラフ、プロトタイプグラフ、または他のロードマップが、複数の交差部を接続する複数のエッジを有する場合、非同期経路116は、複数のエッジおよび/または複数の交差部の観点から指定できる。
いくつかの例では、ロボットデバイス120は、経路に追従することが可能な任意の1つ以上の操作される運搬装置とすることができる。例えば、ロボットデバイス120は、オンボードソフトウェア130および/またはハードウェア150を含むことができる。オンボードソフトウェア130は、位置測定サブシステム132、障害物検出サブシステム134、オドメトリサブシステム136、経路追従サブシステム138、および軌跡追従サブシステム142のうちの1つ以上を含むことができる。したがって、オンボードソフトウェア130は、他の例では、追加のソフトウェアシステムを含んでもよい。
位置測定サブシステム132は、ロボットデバイスを位置測定することが可能なシステムを表す。言い換えると、位置測定サブシステム132は、環境を基準としたロボットデバイスの場所決定を可能にし得る。例として、位置測定サブシステム132は、ロボットデバイスの位置推定値、および/または、ロボットデバイスを位置測定し、ロボットデバイスが所望の経路(例えば、非同期経路116)に追従するのを支援し、および/またはロボットデバイスが軌跡(例えば、軌跡140)に追従するのを支援するのに使用できる他の物体の位置推定値を生成することができる。位置推定値が生成されると、位置測定サブシステム132は、位置推定値を経路追従サブシステム138に提供することができる。
非同期経路、または縮めて経路は、時不変プラン、またはロボットデバイス120がどのように開始ポイント(starting point、SP)から終了ポイント(ending point、EP)まで進行し得るかを表示する他の情報とする、すなわち、(非同期)経路が時間を考慮しないものとすることができる。対照的に、軌跡は、ロボットデバイス120がプランニング時間間隔の間に追従することができる操向角度の値、およびトラクションモータ速度の値を含むことができる。
プランニング時間間隔は、ロボットデバイスが経路、ルート、および/または行程に追従するように誘導または計画される継続時間とすることができる。いくつかの実施形態では、プランニング時間間隔は、例えば、5秒、1秒、0.2秒、0.1秒などの所定の時間量とすることができる。特に、所定のプランニング時間間隔は、プランニング時間間隔の値を指定するユーザ入力に基づいて決定できる。他の実施形態では、プランニング時間間隔は、つなぎ合わせた時間、均一なエッジ(経路)コストに関連付けられた時間、軌跡に沿って進行する推定時間などの1つ以上の他の値に基づいて決定できる。プランニング時間間隔およびプランニング時間間隔の値を決定するための他の技術も同様に可能である。
その場合に、1つ以上の軌跡を使用して、ロボットデバイス120がどのようにして開始ポイント(SP)から終了ポイント(EP)まで時不変に進行することができるかを記載することができるいくつかの実施形態では、軌跡はまた、プランニング時間間隔にわたって、限定されないが、ロボットデバイス120およびロボットデバイス120のアクチュエータ位置の他の動力学変数(例えば、速度および加速度)などの、操向角度およびトラクションモータ速度以外の他の変数の値に関する情報を提供することができる。
例として、場所「家」から場所「職場」まで車を運転する経路は、自律型運搬装置の人または制御デバイスなどの制御実体が、家から職場まで車を運転するために使用することができる順序付けられた街路の列挙を含んでもよい。この例では、家から職場までの軌跡は、家から職場まで車を運転するために制御実体が使用することができる速度および/または加速度を指定する1つ以上の命令を伴うことができる。いくつかの例では、軌跡は、交通、天候、および他の時間で変化する条件を考慮に入れることができ、例えば、家から職場まで向かう軌跡は、制御実体が「20MPH以下で10秒間で右折する」、「3分間で55MPHまで加速して直進する」、「30秒以内に20MPHまで減速する」、「20MPH以下で10秒間で左折する」ことを表示することができる。いくつかの実施形態では、軌跡は、例えば、障害物、経路の変化などに合わせて、道に沿って変化させることができる。
障害物検出システム134は、1つ以上の障害物がロボットデバイス120の経路および/または軌跡を阻止しているかどうかを判定することができる。障害物の例は、限定されないが、パレット、パレットから落下し得る物体、ロボットデバイス、および環境内で作業している人間の作業者を含むことができる。障害物が検出される場合に、障害物検出サブシステム134は、障害物検出を表示する1つ以上の伝達内容を経路追従サブシステム138に提供することができる。障害物検出を表示する1つ以上の伝達内容は、障害物検出サブシステム134によって検出された1つ以上の障害物の1つ以上の位置に関する場所情報、および/または障害物検出サブシステム134によって検出された1つ以上の障害物に関する識別情報を含むことができる。オドメトリサブシステム136は、サーボドライブ152からのデータなどのデータを使用して、経時的なロボットデバイス120の位置の1つ以上の変化を推定することができる。
経路追従サブシステム138および/または軌跡追従サブシステム142は、プランナが搭載されたロボットデバイス120として作用することができる。この搭載されたプランナは、位置測定サブシステム132によって提供された位置推定値に基づいて、非同期経路116などの1つ以上の経路に追従することができる。
経路追従サブシステム138は、非同期経路116、位置測定サブシステム132からの位置推定入力、障害物検出サブシステム134からの1つ以上の障害物の1つ以上の位置に関する場所情報、および/またはオドメトリサブシステム136からの位置の1つ以上の変化に関する情報を受け取り、1つ以上の軌跡140を出力として生成することができる。
ハードウェア150は、サーボドライブ152および/またはモータ154を含むことができる。サーボドライブ152は、1つ以上のサーボ機構および関連電気機器を含むことができる。いくつかの例では、サーボドライブ152は、1つ以上のサーボ機構に電力供給し、および/またはサーボ機構からのフィードバック信号を監視する、1つ以上の電子増幅器を含むことができる。サーボドライブ152は、オンボードソフトウェア130から、軌跡144などの制御信号を受け取ることができ、サーボ機構に電流を提供して、制御信号に比例する動きを作成することができる。いくつかの実施形態では、サーボドライブ152は、サーボ機構から受け取られたステータス情報を、軌跡144によって指令された予測ステータスと比較することができる。その場合に、サーボドライブ152は、受け取られたステータス情報と予測ステータスとの間の偏差を補正するために、提供される電流の、電圧周波数またはパルス幅を調整することができる。他の実施形態では、サーボドライブ152は、オンボードソフトウェア130に、フィードバック信号および/または場所関連情報などの情報を提供することができる。
1つ以上のモータ154は、サーボドライブ152のサーボ機構の一部または全部とすることができる。例えば、モータ154は、サーボドライブ152によって提供された電流を使用して、ロボットデバイス120の一部または全部を駆動する機械力を生成することができ、例えば、モータ154は、ロボットデバイス120を推進させる、および/またはロボットデバイス120の1つ以上の作動器を駆動する力を提供することができる。
倉庫、オフィスビル、または家などの屋内設定、および/または公園、駐車場、または庭などの屋外設定を含む環境などの環境内のロボットデバイスの経路プランニングは、ロボットデバイスなどのエージェントが追従し得る経路の接続グラフであるロードマップグラフを基準として実行できる。空きスペースアプローチを取らずにロードマップグラフを使用して環境内のエージェントルーティングを計画することは、合計のプランニング状態のスペースを減少させ、したがって、大規模なマルチエージェント協調を扱いやすくすることができる。さらに、ロードマップグラフの使用は、ロボットデバイスにナビゲートさせる領域を作業者が直観的に制御することを可能にし得る。
ロードマップグラフ生成は、まず、レーンの大まかな位置および進行の方向を表示するプロトタイプグラフの生成を伴い得る。いくつかの例では、プロトタイプグラフは、レーンとロボットデバイスの進行の方向とを表示する有向グラフとすることができる。他の例では、プロトタイプグラフは、環境の地図または描画に基づいて、手動で生成できる。
図2は、例の実施形態による、1つ以上の倉庫を動作させるためのシステム200を描画している。システム200は、倉庫管理システム210、プランニングシステム110、およびロボットデバイス220を含む。倉庫管理システム210は、倉庫に関連付けられた1つ以上のロジスティクス要求212、例えば、倉庫に1つ以上のアイテムを格納する要求、および/または倉庫から1つ以上のアイテムを出荷する要求を受け取ることができる。倉庫管理システム210は、ロジスティクス要求212を1つ以上のアクション214に変換することができ、アクション214は、限定されないが、1つ以上の指定エージェントを1つ以上の指定場所に移動させる「move-to」アクション、および1つ以上のアイテムを1つ以上の指定場所に搬送する「transport」アクションを含むことができる。いくつかの例では、アクション214は、フォーム{エージェントID,目的地}のgo-toコマンドを含むことができるが、「move pallet」などの他のアクションが可能である。これらは、通常、move-toコマンドに分解不能であるが、(move to pick location,move to place location)に分解可能である。
プランニングシステム110は、オフボードプランナ112およびエクスキュータ220を含む。オフボードプランナ112は、入力としてアクション214を受け取り、倉庫内で動作している1つ以上のエージェント、例えばアクション214を実行する複数のロボットデバイスについて、1つ以上の協調経路216を生成することができる。協調経路216は、倉庫内の全てのエージェントがロジスティクス要求212を遂行するための協調アクションの一部とすることができる。協調アクションは、エージェントの優先度を考慮に入れることができ、例えば、ロボットデバイスRD1およびRD2が両方ともほぼ同じ時刻にあるポイントに到達すると予測される場合に、ロボットデバイスRD2がそのポイントを通過するのをロボットデバイスRD1が待つ(またはその逆も可)など、ロボットデバイスのうちの一方が他方よりも高い優先度を有する、または他方に対して優先権を有することができる。エクスキュータ220は、協調経路216を受け取り、非衝突サブ経路222を生成して、ロボットデバイス120を協調アクションプランのうちの自己の部分の完遂に向かわせてアクション214を実行させ、ロジスティクス要求212を遂行させる。
図2において上記に例示したように、オフボードプランナ112およびエクスキュータ220を含むプランニングシステム110は、ロボットデバイス120と通信することができる。いくつかの実施形態では、ロボットデバイスは、例えば、労働安全衛生庁(Occupational Safety and Health Administration、OSHA)クラス1またはクラス3の動力付き産業トラックなどのフォークトラックとすることができる。他の実施形態では、プランニングシステム110は、「クラウド」(例えば、1つ以上のネットワークコンピューティングデバイス)に位置する、および/またはロボットデバイス120と同じ位置にある敷地のどこかに位置する1つ以上のネットワークコンピューティングデバイスを使用して実行されるソフトウェアを含むことができる。
図3は、例の実施形態による、ネットワーク318を使用して接続された、ロジスティクスインターフェース310、倉庫管理システム210、および1つ以上のロボットデバイス120を含むシステム300を例示している。ロジスティクスインターフェース310は、パレットおよび/またはロボットデバイスなどの物体の、倉庫管理システム210への移動に関して、ネットワーク318を介して倉庫管理システム210に在庫タスク命令を提供することができる。例の在庫タスクは、タイプBのアイテムを収容したパレットAを場所Cに移動させること、とすることができる。
倉庫管理システム210は、ロジスティクスインターフェース310から在庫タスク命令を受け取り、在庫タスク命令を実行するようにロボットデバイス120を制御するための、1つ以上のタスク/ミッション命令(例えば、ロボットデバイスAにパレットBを場所Cから場所Dに移動させる命令)および/またはプランを生成することができる。タスク/ミッション命令および/またはプランは、1つ以上の経路および/または1つ以上の軌跡に関する情報を含むことができ、タスク/ミッション命令、プラン、経路、および軌跡(単数)/軌跡(複数)は、図1および図2に関連して検討した技術を使用して、倉庫管理システム210のプランニングシステム110によって生成される。
例えば、倉庫管理システム210は、集中化制御サービスとすることができ、例えばサーバコンピューティングデバイスなどの1つ以上のコンピューティングデバイスを使用して、稼働し、データを記憶する。これらのタスクを実行するために、倉庫管理システム210は、WMSミドルウェアを含むことができ、ユーザインターフェースを提供して、システム300を監視および管理するためのツールへのアクセスを提供する。WMSミドルウェアおよび/または倉庫管理システム210の他の構成要素は、1つ以上のアプリケーションプログラミングインターフェース(application programming interface、API)、例えば、タスク/ミッション命令(例えば、ロボットデバイスAにパレットBを場所Cから場所Dに移動させる命令)からロボットデバイス経路、ポーズ、および/または軌跡への変換、在庫タスクとタスク/ミッション命令との間の変換、およびAPI間の変換、のためのプロトコル変換APIを使用することができる。
倉庫管理システム210によって提供されるユーザインターフェースは、システム300に、限定されないが、例えば、1つ以上のロボットデバイスの場所、バッテリステータス、充電状態などを提示することなどのロボットデバイス120の監視と、1つ以上のロボットデバイス120に対する、在庫タスク命令、タスク/ミッション命令、プラン、経路、および/または軌跡(単数)/軌跡(複数)の生成の可能化および送出と、1つ以上の倉庫地図、パレット、ネットワーク、および/またはプランニングシステム(例えば、プランニングシステム110、倉庫管理システム210、および/またはロジスティクスインターフェース310)に関連するデータの再検討、更新、消去、および/または挿入とを含む、1つ以上のユーザインターフェース機能を提供することができる。
いくつかの実施形態では、倉庫管理システム210は、ロジスティクスインターフェース310とロボットデバイス120との間と、ロボットデバイス120のうちの2つ以上と1つ以上のロボットデバイス120に搭載されたオンボードシステム320などの1つ以上のオンボードシステムとの間と、の通信をルーティングすることができる。他の実施形態では、倉庫管理システム210は、システム300に関連するデータ、例えば、限定されないが、ロボットデバイス120のうちの1つ以上によるタスク/ミッション命令の完了に関するデータ、ロボットデバイスが初期化/起動された場所を示すデータを含む、ロボットデバイス120のいくつかまたは全ての場所および/またはポーズに関するデータ、人間のアクション、事故解析、および/またはデバッギングに対する1つ以上のオーディットトレールに関連するデータ、および状態追跡についてのデータを記憶し、生成し、読み出し、書き込み、更新し、および/または消去することができる。他の実施形態では、倉庫管理システム210は、ロボットデバイス120および1つ以上のアダプタと通信する中央メッセージルータ/永続性マネージャを含むことができる。1つ以上のアダプタの各々は、倉庫管理システム210に利用可能な、システム300のデータおよび/または通信へのアクセスを提供することができ、限定されないが、上述のユーザインターフェースに対するユーザインターフェースサービスアダプタ、システム300に関する情報へのワールドワイドウェブ(World Wide Web、WWW)/インターネットアクセスを可能にするウェブコンテンツサービスアダプタ、メッセージプロキシアダプタ、るおよび/またはAPI間通信とWMSとの間の仲介手段として作用するWMSアダプタを含むことができる。
図3は、1つ以上のロボットデバイス120の各々が、オンボードシステム320、ネットワークスイッチ330、運搬装置コントローラ332、プログラマブルロジックコントローラ(programmable logic controller、PLC)334、1つ以上のデバイスセンサ338、および1つ以上のデバイス340のうちの1つ以上を含むことができる。
オンボードシステム320は、ロボットデバイス120への設置および使用のために構成された、ロボットプランニングの計算およびセンサパッケージとすることができ、オンボードシステム320は、オンボードセンサ322および1つ以上のプランニング/実行プロセッサ324を含むことができる。図3はまた、ネットワークスイッチ330を使用して、(ネットワーク318を介して)プランニングシステム110と、デバイスセンサ338と、および/またはロボットデバイス120の1つ以上のアクチュエータと少なくとも通信するように構成された、そのオンボードシステム320を示す。
オンボードシステム320は、ロボットデバイス120の位置測定、プランを実行するための、および/または倉庫管理システム210によって提供される経路および/または軌跡に沿って進行するための、ローカル軌跡の生成、ドライブ340に対する、1つ以上の(ローカル)軌跡に追従させるコマンドの生成、ロボットデバイス120のアクチュエータを制御するコマンドの生成、および倉庫管理システム210へのポーズ、ステータス、および/または他の情報の報告、のうちの1つ以上を担うことができる。
オンボードセンサ322は、オンボードシステム320をナビゲートおよび/または制御するための、1つ以上のナビゲーションレーザ、レーザスキャナ、カメラ、および/または他のセンサを含むことができる。例えば、ロボットデバイス120のロボットデバイスは、ドイツ、WaldkirchのSICK AG、日本、大阪のHOKUYO AUTOMATIC CO.LTD、および/または日本、大阪のKEYENCE CORPORATIONによって提供される1つ以上のレーザスキャナなどの、1つ以上のレーザスキャナを含むことができる。レーザスキャナは、ロボットデバイスの進行の方向に沿った、ならびにロボットデバイスの両側部、角部、および/または後部に沿った、障害物の検出および/または回避に使用できる。レーザスキャナはまた、反射器に基づく位置測定を使用してロボットデバイスを位置測定するために使用できる。いくつかの実施形態では、カメラおよび/または他のセンサは、レーザスキャナの代わりに、またはレーザスキャナとともに、障害物検出、障害物回避、および/または位置測定に使用できる。
プランニング/実行プロセッサ324は、少なくともオンボードセンサ322に接続された1つ以上のコンピュータプロセッサを含むことができる。プランニング/実行プロセッサ324は、オンボードセンサ322からのデータを読み取り、ローカル軌跡および/またはドライブ340に対する、ロボットデバイス120を移動させるコマンドを生成し、倉庫管理システム210と通信することができる。ローカル軌跡は、ロボットデバイス120が、開始ポーズで開始し、ある時点で終了ポーズに至る軌跡とすることができる。いくつかの例では、開始ポーズは、暗黙的に指定でき、例えば、開始ポーズはロボットデバイス120の現在のポーズとすることができ、したがって、ローカル軌跡は、ロボットデバイス120の開始ポーズがロボットデバイス120の現在のポーズであるという仮定に基づいている。
プランニング/実行プロセッサ324は、コンポーネントフレームワークを利用することができる。コンポーネントフレームワークは、Virginia、Onancockのboost.orgによって提供される「boost::asio」および「boost::signals2」ソフトウェアライブラリなどの、ロボットデバイス120の一貫した非同期モデルを提供するように構成された、入出力(input/output、I/O)およびシグナリングに対するソフトウェアライブラリ上に構築されたマルチスレッドのジョブスケジューリングおよびメッセージ回送システムとすることができる。コンポーネントフレームワークは、ソフトウェアコンポーネントがスレッドセーフな態様で並列に実行できるように、ソフトウェアコンポーネント(またはモジュール)間の通信を可能にすることができる。
コンポーネントフレームワークは、状態機械コンポーネント、位置測定コンポーネント、プランニングコンポーネント、および軌跡追従コンポーネントのうちの1つ以上を含むことができる。状態機械コンポーネントは、運搬装置初期化、運搬装置通信、および障害処置についての、ロボットデバイス120の状態を管理することができる。状態機械コンポーネントは、決定論的有限オートマトンまたは他の状態機械を使用してロボットデバイスの状態を管理することができる。
位置測定コンポーネントは、運搬装置からのデータを読み取り、ロボットデバイス120の以前の状態情報を統合してロボットデバイス120のポーズを決定することができる。運搬装置センサデータは、運搬装置センサによって検出された、対象となる1つ以上のランドマーク/ポイントを表示してもよい。これに代えて、運搬装置センサからのデータは、位置測定コンポーネントが、運搬装置センサデータに基づいて対象となる1つ以上のランドマーク/ポイントを検出するような処理を必要としてもよい。ポーズは、パレットまたは他の物体などの、対象となる1つ以上の検出されたランドマーク/ポイントに対して決定できる。プランニングコンポーネントは、倉庫管理システム210から1つ以上の目標を受け取り、それらの目標を達成するようにロボットデバイス120に対するローカル軌跡を決定することができる。いくつかの実施形態では、ローカル軌跡は、ロボットデバイス120が、所定の時間量、例えば、100ミリ秒、200ミリ秒、500ミリ秒、1秒、5秒の間、追従すべき、短期間の軌跡とすることができる。軌跡追従コンポーネントは、プランニングコンポーネントによって生成されたローカル軌跡を受け取り、ローカル軌跡に沿って進行させる駆動制御命令を生成することができる。駆動制御命令は、次いで、ロボットデバイス120のトラクションモータおよび他のアクチュエータを制御するドライブ340に中継される。
ネットワークスイッチ330は、ロボットデバイス120の通信を可能にすることができる。これらの通信は、限定されないが、オンボードシステム320とロボットデバイス120の残りの部分、例えばデバイスセンサ338およびドライブ340との間の通信と、ネットワーク318を介した倉庫管理システム210との通信と、を含むことができる。例えば、ネットワークスイッチ330は、Ethernetおよび/または有線ネットワークに対する他の有線通信インターフェースを介した、および/またはWi-Fi(商標)および/または無線ネットワークに対する他の無線通信インターフェースを介した、伝送制御プロトコル/インターネットプロトコル(Transmission Control Protocol/Internet Protocol、TCP/IP)ベースの通信を可能にすることができ、台湾、New Taipei CityのPLANET Technology CorporationによるPLANET Ethernet Switchなどである。
いくつかの実施形態では、ロボットデバイス120とプランニングシステム110との間の通信は、遠隔手続呼び出し(remote procedure calls、RPC)を含むことができる。遠隔手続呼び出しは、プランニングシステム110のソフトウェアによって、ロボットデバイス120のうちの1つ以上に常駐するソフトウェア手続き、方法、および/または機能の呼び出しを可能にすることができ、その逆も可能である。遠隔手続呼び出しは、TCP/IP、HTTP1.0および/またはHTTP2.0などのハイパーテキストトランスファープロトコル(HyperText Transfer Protocol、HTTP)、および/または別の通信プロトコルといった通信プロトコルに基づくことができる。遠隔手続呼び出しのいくつかまたは全ては、暗号化されたデータを含むことができ、このようなデータは、セキュアソケットレイヤ(Secure Sockets Layer、SSL)、トランスポートレイヤセキュリティ(Transport Layer Security、TLS)、および/または、1つ以上の他の暗号アルゴリズムおよび/またはプロトコルを使用して暗号化されてもよい。暗号化されたデータが使用される実施形態では、プライベート認証局などの1つ以上の認証局が、暗号化および/または暗号化されたデータの復号に使用される1つ以上の証明書を認証することができる。認証局は、アクセス制御リスト(access control list、ACL)を使用して、1つ以上の証明書へのアクセスを制御することができる。遠隔手続き呼び出しは、RPC関連通信のための、要求/応答プロトコルおよび/または双方向ストリーミングプロトコルを使用することができる。RPC関連通信に双方向ストリーミングプロトコルが使用される実施形態では、単一の持続するRPCを使用して、双方向ストリーミングプロトコルを実装することができる。
運搬装置332および/またはプログラマブルロジックコントローラ334は、ロボットデバイス120の電気的およびセンサ管理機能性を提供することができる。電気的およびセンサ管理機能性は、限定されないが、電気負荷制御、照明制御、センサおよび/またはスイッチ信号処理、および電源管理の機能性を含むことができる。運搬装置マスタ336は、ロボットデバイス320の、リフトデバイスなどの1つ以上のアクチュエータを制御するための機能性を提供することができる。
デバイスセンサ338は、ロボットデバイス120を制御することおよび/または動作させることに関連するデータを提供することができる1つ以上のセンサを含むことができる。このデータは、限定されないが、位置測定情報、位置推定値、および地図作成データなどの、ロボットデバイス120の周囲の環境に関する情報を提供することができる。例えば、デバイスセンサ338は、1つ以上のレーザ(例えば、2次元(2D)レーザ、安全レーザ、レーザスキャナ)、カメラ(例えば、飛行時間(Time-of-Flight、ToF)カメラ、赤緑青(RGB)カメラ、温度カメラ)、電気センサ、近接センサ、ナビゲーションデバイス、および場所センサを含むことができる。
ドライブ340は、ロボットデバイス120を移動させるための機能性を提供する、1つ以上のドライブコントローラおよび/またはアクチュエータを含むことができる。ドライブコントローラは、ドライブアクチュエータに、ロボットデバイス120の動きを制御するように指示することができる。ドライブアクチュエータは、1つ以上のトラクションモータ、電気ドライブ、油圧ドライブ、および圧縮空気ドライブを含むことができる。
図4は、例の実施形態による、ロボットデバイス120のロボットデバイスアーキテクチャ400を例示している。ロボットデバイス120のロボットデバイスアーキテクチャ400は、ソフトウェアを含むことができる。このソフトウェアは、位置測定用ソフトウェア410、パレットポーズ推定器用ソフトウェア412、状態機械に関連するソフトウェア414、プランナ追従器用ソフトウェア416、コンポーネントフレームワーク用ソフトウェア420、およびオペレーティングシステム430を含むことができる。このソフトウェアは、1つ以上のハードウェアプランニング/実行プロセッサ324によって実行できる。ロボットデバイス120と他のデバイスとの間の通信は、ネットワークゲートウェイ440および/またはネットワークスイッチ330を使用して実行できる。例えば、ネットワークゲートウェイ440は、ロボットデバイス120のロボットデバイスとの、およびロボットデバイス内での無線通信に使用でき、ネットワークスイッチ330は、ロボットデバイス120のロボットデバイスとの、およびロボットデバイス内での有線通信に使用できる。ロボットデバイスアーキテクチャ400はまた、図3に関連して上述したデバイスセンサ338およびドライブ340などの追加のハードウェアを含む。いくつかの実施形態では、ロボットデバイスアーキテクチャ400は、限定されないが、ToFカメラ450およびRGBカメラ452を含む1つ以上のカメラを含むことができ、1つ以上のカメラは、1つ以上のスチルカメラおよび/または1つ以上のビデオカメラを含むことができる。
図5は、例の実施形態による、ロボットデバイス120のレーザスキャナアーキテクチャ500を例示している。いくつかの実施形態では、デバイスセンサ338のうちのいくつかまたは全ては、レーザスキャナアーキテクチャ500によって例示されるレーザおよびレーザスキャナとすることができる。
レーザスキャナアーキテクチャ500は、レーザ510、512、520、522、レーザスキャナ524、プロトコル変換器526、ネットワークスイッチ330、およびオンボードシステム320を含むことができる。レーザ510、512、520、および522は、ロボットデバイス120の一定位置に位置させることができ、例えば、レーザ510は、ロボットデバイスの前部に位置させることができ、レーザ512は、ロボットデバイスの後部に位置させることができ、レーザ520は、ロボットデバイスの左前角部に位置させることができ、レーザ522は、ロボットデバイスの右前角部に位置させることができる。レーザ510、512、520、522および/またはレーザスキャナ524は、環境内でロボットデバイスを位置測定するための情報を提供することができる。いくつかの実施形態では、レーザ510、512、520、522および/またはレーザスキャナ524は、1つ以上の反射器の反射される光を放出することができ、反射光は、1つ以上のレーザセンサによって検出でき、ロボットデバイスは、反射光を検出するためにかかる時間の長さに基づいて、環境内で位置測定できる。これらの実施形態のうちの特定のものでは、レーザ510、512、520、522および/またはレーザスキャナ524のうちのいくつかまたは全ては、反射されたレーザ光を検出する1つ以上のレーザセンサを含むことができる。その場合に、レーザ510、512、520、522および/またはレーザスキャナ524は、限定されないが、レーザに関連するデータ(例えば、レーザの保守データ)、レーザによって放出された光に関連するデータ、および反射されたレーザ光をレーザセンサによって検出するのにかかる時間の1つ以上の長さに関連するデータを含むデータを生成することができる。
図5に例示するように、レーザ520、522などのいくつかのレーザ、およびレーザスキャナ524は、ネットワークスイッチ330に直接接続できる一方、レーザ510、512などの他のレーザは、プロトコル変換器526を介してネットワークスイッチ330に接続できる。プロトコル変換器526は、レーザ510および/または512などのレーザによって使用される通信プロトコルを、ネットワークスイッチ330によって使用される通信プロトコルに変換することができ、例えば、RS-422に基づく通信プロトコルからEthernetに基づく通信プロトコルに変換することができる。その場合に、レーザ510、512、520、522および/またはレーザスキャナ524は、ネットワークスイッチ330および場合によってはプロトコル変換器526を介して、オンボードシステム320にデータを送り、オンボードシステム320からコマンドを受け取ることができる。
いくつかの実施形態では、ロボットデバイス120は、1つ以上の障害条件を受け得る。それらの障害条件の例および関連復旧方針が以下の表1に記載されている。
Figure 0006986188000001
Figure 0006986188000002
III.例の、環境の事前地図作成
図6は、例の実施形態による、スペースの事前地図作成を行うための例のデバイスを示す。より詳細には、デバイスは、1つ以上のロボットが後に配備され得る環境を表すセンサデータを収集するように構成されたセンサ602を含む。いくつかの例では、センサ602は、環境内の表面および検出されたマーカの場所までの距離測定値を作成することが可能な、2次元ナビゲーションレーザセンサであってもよい。特に、センサ602は、レーザ光ビーム604を投射し、反射されたビームを測定してもよい。センサ602は、ロボットの検出能力を複製するために、スペース内に配備されるロボット上のセンサと同じ高さに設置されてもよい。例として、センサ602は、環境内の水平面内に配置された逆反射反射器を検出する高さに配置されてもよい。他の例では、センサ602は、距離または輪郭の測定値を作成するのみの2次元レーザスキャナであってもよい。さらなる例では、センサ602は、立体カメラなどの別の種類のセンサであってもよい。
デバイスは、加えて、センサ602からのデータを処理するコンピューティングユニット606を含む。特に、コンピューティングユニット606は、本明細書に記載された種類の地図作成機能の任意のものを実行して、スペースの地図を生成し、および/または生成された地図を使用するように構成されてもよい。デバイスは、加えて、センサ602およびコンピューティングユニット606の両方に電源供給するバッテリパック608を含む。デバイスは、1つ以上のロボットを配備することに先立って、デバイスをスペース中に容易に移動させる可動ベース610をさらに含む。例として、可動ベース610は、図6に示すように、ホイール上の三脚であってもよい。電源および/または電源供給されない可動ベースを含む、他の種類の可動ベースが使用されてもよい。
例の範囲内で、自動誘導運搬装置(automated guided vehicle、AGV)の用途と倉庫(AGVを有する、または有さない)の最適化とは、環境に関する正確な幾何学的情報(例えば、正確な地図)を必要としてもよい。正確な設備地図は、手動および自動の運搬装置環境(例えば、2つの動力産業トラックを通過させるには互いに接近しすぎているラック)の両方において、設備/ワークフローの非効率さの特定をもたらし得る。設備レイアウト(例えば、CADモデル)は、建築設計および建設プロセスを誘導するために使用され、必ずしも現実世界を反映するように更新されなくてもよい。したがって、設備レイアウトは、多くの場合、不正確さを包含し、信頼できるとみなされなくてもよい(例えば、CADは、適切かつ正確な壁を包含し得る一方、後で追加されるラックおよび他のインフラストラクチャは、かなりの量、例えば30センチメートルだけずれ得る)。いくつかの例では、図6に示すような事前地図作成デバイスを使用して、最適化されたAGVおよび/または手動のフォークトラック配備を可能にする正確な設備地図を生成することに役立ててもよい。
事前地図作成システムは、多数の異なる用途に使用されてもよい。いくつかの例では、倉庫の地図(例えば、壁およびラックなどの他のインフラストラクチャを包含する幾何学的地図)が生成され、スペースの既存のCADモデルと比較されてもよい。このプロセスは、CADモデルが現実世界を厳密に反映しないことを明らかにし得る。設備地図は、その後、事実に合ったレイアウトに更新されてもよい。さらなる例では、倉庫地図作成が、倉庫がどのようにして、ロボットAGVを使用して自動化され得るか、および/または手動駆動される原動機付き産業トラックを使用して最適化されるかを例証する状況において、ロボットシステムを配備するために使用されてもよい。
追加の例では、倉庫スペースが事前地図作成されて、地図に基づいて設定されるマーカ(反射器)のプランニング(環境内で反射器を配置する場所)を支援してもよい。このようなプロセスを用いて、AGV配備のプランニング段階を高速化してもよい。
さらなる例では、倉庫地図および反射器設定は、運搬装置をその場所へ送る前に(または時間を節約するために運搬装置が出荷される間に)、AGVロールアウトプロセスにおいて早期に決定されてもよい。運搬装置が到着すると、運搬装置は、地図をアップロードし、駆動を開始して、または地図を使用して、運搬装置を用いる後続の地図作成実施を初期化および起動してもよい。
いくつかの例では、正確な地図作成を使用して、新世代の手動トラックが、既存の設備において動作することが可能であるかどうか、または設備が変更を必要とするかどうかを判定することもできる。追加の例では、正確な地図はまた、ワークフローおよび進行距離に対するラッキング、充電ステーション、または駐車ステーションのような手動設備の非効率さを特定することを可能にすることができる。この情報を使用して、より最適な設備レイアウトについての提案を提供してもよい。
述べたように、コンピューティングユニット606は、センサ602によって収集されたセンサデータに基づいて、様々な地図作成機能性を実施するように構成されてもよい。いくつかの例では、地図作成機能性は、倉庫地図および反射器地図の両方を構築するための、階層構造のポーズグラフSLAMおよびバンドル調整を含んでもよい。この機能性は、部分的な反射器設定のみを伴って、または反射器設定を全く伴わずに倉庫の地図を作成するために、輪郭/距離測定とマーカ検出とを切り替えることによって両方の地図を作成してもよい。地図作成機能性は、加えて、生成された地図を倉庫のCADモデルと自動的に位置整合させることを含んでもよい。地図作成機能性は、加えて、以前に構築された地図を用いて地図作成プロセスを起動することを含んでもよい(例えば、新たな地図は、以前の地図から起動された反射器位置を用いて、CADモデルおよび以前の地図の両方と自動的に位置整合されてもよい)。
例のプロセスは、記憶、可視化などを含めて、図6に例示されたデバイスを使用して地図作成実施の結果を取り出すことを含んでもよい。取り出された結果は、次いで、ナビゲーションのため運搬装置にアップロードすること、新たな地図作成実施(以前の実施に由来する結果を用いて起動される)のために運搬装置にアップロードすること、シミュレーションによるシステムの配備を示すコンポーネント内に結果をインポートすること、生成された地図を既存のCADモデルと比較するコンポーネント内に結果をインポートすること、および/または自動化された反射器プランニングを支援するコンポーネント内に結果をインポートすることを含む、様々な機能に適用されてもよい。
IV.環境におけるロボットの、例の位置測定
図7は、例の実施形態による、環境内でナビゲートしているロボットを示す。環境に対するロボット700の場所および方位が推定され、ロボットがそれに従って環境中をナビゲートすることを可能にしてもよい。特に、ポーズは、環境内のロボットの場所および方位を表示してもよい。
コンピューティングシステムは、1つ以上のセンサ702からの受け取られた信号706に基づいて、ロボット700のポーズを決定してもよい。センサ702によって提供される信号706は、倉庫内の様々な場所に配置された逆反射マーカによって反射されてもよい。例として、ロボットは、ロボットの周囲の領域に光を放出する光検出および測距(light ranging and detection、LIDAR)ユニットを使用してもよく、ロボットの周囲の領域に配置されたマーカは、ロボットのセンサによって検出のために光を戻るように反射してもよい。
センサ702で反射された信号706は、ロボットに対するマーカの場所を表示してもよい。コンピューティングシステムが、これらの決定されたマーカの場所を使用して、マーカの地図を進化させてもよい。いくつかの場合には、コンピューティングシステムは、検出されたマーカを使用して、既に生成されたマーカ位置の地図を補充してもよい。例として、コンピューティングシステムは、新たな測定値を使用して地図内の1つ以上のマーカの位置を修正してもよい。
コンピューティングシステムがまた、ロボットがマーカの地図を使用してナビゲートする際に、ロボットのポーズを決定してもよい。コンピューティングシステムは、検出されたマーカを地図内のマーカと整合させて、ロボットの位置および方位を決定してもよい。環境内の障害物710に関連するマーカの場所が予め定められてもよい。例えば、障害物の場所がまた、地図に表されてもよい。ロボットは、推定されたポーズと障害物の予め定められた場所とに基づいて、障害物を避けながら環境内をナビゲートするように移動708してもよい。
図8は、例の実施形態による、検出結果を地図作成されたランドマークと関連付けているロボットを示す。候補ランドマーク812から検出された信号806は、ロボット800の1つ以上のセンサ802によって受け取られてもよい。この信号は、ロボットに関連する候補ランドマークの場所を表示してもよい。候補ランドマークは、地図作成されたランドマーク804に位置整合するように変換されてもよい。関連付け814は、候補ランドマークと地図作成されたランドマークとの間で形成されてもよく、関連付け814は、変換された候補ランドマークと地図作成されたランドマークとの間の最小距離をもたらす。例えば、関連付け814は、少なくとも、反復最近接点(iterative closest point、ICP)法などの二乗平均を使用して形成されてもよい。候補ランドマークは、候補ランドマークと地図作成されたランドマークとの間の関連付け814に基づいて、変換および回転されてもよい。ロボットのポーズは、ロボットを同様に変換および回転することによって推測されてもよい。
図9は、例の実施形態による、ロボット制御システムのモジュールを例示する機能ブロック図である。ロボット制御システムは、オンボード検知モジュール900の一部としての1つ以上のセンサを含んでもよい。センサは、ロボットのホイールオドメトリ908を表示するデータを提供してもよい。センサはまた、ナビゲーションスキャナ910を含んでもよい。ナビゲーションスキャナ910は、ロボットの環境内の候補ランドマークから信号を受け取るように構成されてもよい。
ロボット制御システムのポーズ推定モジュール902は、環境内の地図作成されたランドマークを基準としたロボットの場所および方位を表示してもよい。ポーズ推定モジュール902は、オンボード検知モジュール900からの入力に基づいて機能を実行するソフトウェアを含んでもよい。例えば、ナビゲーションスキャナ910がスキャンを実行する各時点で、オンボード検知モジュールからのセンサデータは、ポーズ推定モジュール902によって処理されて、環境におけるロボットの現在の場所および方位を決定してもよい。ポーズ推定モジュール902のポーズ追跡/高精度化ブロック912およびグローバル位置測定ブロック914は、処理ステップを表す一方、ポーズブロック916、信頼度/精度ブロック918、および初期ポーズ推定ブロック920は、処理ブロック912および914の出力を表す。
ポーズ推定モジュール902は、2つのモードで動作してもよい。第1のモードでは、ポーズ推定モジュール902は、ロボットの初期ポーズ推定値920を有してもよく、ポーズ追跡/高精度化ブロック912は初期ポーズ推定値920を更新してもよい。ポーズ追跡/高精度化ブロック912は、初期ポーズ推定値920と合わせてホイールオドメトリ908とナビゲーションスキャナ910からのデータとを利用して、候補ランドマークに関連するロボットの場所を特定してもよい。ポーズ追跡/高精度化ブロック912は、候補ランドマークを、初期ポーズ推定値920に近い特定の地図作成されたランドマークと関連付けてもよい。ポーズ推定モジュール902は、関連付けに基づくポーズ推定値916と、ポーズ推定値の信頼度/精度918と、をさらに提供してもよい。ポーズ推定値の信頼度/精度918は、初期ポーズ推定値が適度であること、または初期ポーズ推定値がさらなる高精度化を必要とすることを表示してもよい。また、第1のモードでは、ポーズ追跡/高精度化ブロック912によって決定されたポーズ916および信頼度/精度918を後処理モジュール904で使用して、ロボットの高精度化されたポーズ推定値を決定してもよい。一方、グローバル位置測定ブロック914は省略されてもよい。さらに、ポーズ追跡/高精度化912中に得られたポーズ推定値916は、以後のポーズ推定値に使用するために、ロボットの初期ポーズ推定値920として扱われてもよい。
第2のモードでは、ポーズ推定モジュール902は、ロボットが環境内のどこに存在するかの初期表示を有さなくてもよい。言い換えると、初期ポーズ推定値920は、まだ決定されていなくてもよい。第2のモードでは、ポーズ推定モジュール902は、ポーズ追跡/高精度化912ではなくグローバル位置測定914を利用して、ロボットのポーズを決定してもよい。グローバル位置測定ブロック914は、ロボットの環境全体にわたって、候補ランドマークと地図作成されたランドマークとの間の関連付けをテストしてもよい。グローバル位置測定ブロック914はまた、ポーズ推定値916および信頼度/精度918を出力してもよい。また、第2のモードでは、グローバル位置測定ブロック914によって決定されたポーズ916および信頼度/精度918を、後処理モジュール904で使用して、ロボットの高精度化されたポーズ推定値を決定してもよい。さらに、グローバル位置測定914中に得られたポーズ推定値916は、以後のポーズ推定値に使用するために、ロボットの初期ポーズ推定値920として扱われてもよい。
後処理モジュール904を使用して、ポーズ追跡/高精度化またはグローバル位置測定から得られたポーズ推定値を高精度化してもよい。後処理モジュールは、位置測定モジュールのポーズ推定値および信頼度/精度と、オンボード検知モジュールのホイールオドメトリと、の融合外挿922を実行してもよい。融合外挿中、高精度化されたポーズ推定値は、高信頼度/精度が存在する場合に、位置測定モジュールによって提供される推定されたポーズに、より依拠してもよい。逆に、高精度化されたポーズ推定値は、低信頼度/精度が存在する場合に、ホイールオドメトリに、より依拠してもよい。さらに、後処理モジュールは、提供された信頼度/精度と高精度化されたポーズ推定値とに基づいて、地図更新924を提供してもよい。例えば、地図更新は、高精度化されたポーズ推定値に基づいて、地図作成されたランドマークの場所を更新してもよい。他の例では、地図更新は、高精度化されたポーズ推定値を生成するために使用される、地図作成されたランドマークと関連付けられた統計情報を更新してもよい。
図9のロボット制御システムによって実行される機能の各々は、定期的に実行されてもよい。例えば、ナビゲーションスキャナ910は、8Hzでスキャンを実行してもよい一方、オドメトリ908は、100Hzで更新してもよい。別の例では、ポーズ推定モジュールの処理ブロック912および914は、オンボード検知モジュールから8Hzでデータを受け取ってもよく、ポーズ916および信頼度/精度918を8Hzで作成してもよい。異なる周波数が同様に可能である。
V.例のSLAM実装形態
コンピューティングシステムが、SLAMまたは類似のプロセスを実行して、ロボットの場所を決定しながら、さらに環境内のマーカの位置を検出してもよい。例えば、コンピューティングシステムは、レーザスキャン内の測定値の強度に基づいてマーカを検出してもよく、異なるセットの測定値からの観測されたマーカを整合してもよい。
異なるスキャン間の検出されたマーカを関連付けようとする場合に、十分な量の検出マーカがないこと、または検出マーカ間の誤った関連付けからもたらされる欠陥などの、潜在的な誤差が発生し得る。コンピューティングシステムが、各検出マーカを、複数回検出された最近接マーカと関連付け得る最近接近傍アプローチを使用して、これらまたは他の潜在的誤差を解消してもよい。特に、最近接近傍アプローチは、ユークリッド距離または他の距離定量を使用して最近接マーカを決定することを伴い得る。いくつかの実例において、コンピューティングシステムはまた、有効化ゲートを利用して、マーカが以前に観測されたことがある場合、またはマーカが新たに検出されたランドマークとして追加されるべきである場合を判定するように構成されてもよい。検出マーカ間のデータ関連付けの結果は、コンピューティングシステムが環境内のロボットの現在のポーズを推定することを可能にすることができる。
コンピューティングシステムは、ロボットの現在のポーズの推定時に、ロボットの制御システムからの制御命令を使用してもよい。例として、ロボットのホイール上に配置されたセンサから提供されたオドメトリデータを使用して、ロボットの現在のポーズの変化を推定してもよい。例として、ロボットは、初期方位θを有する初期2D位置(x,y)を有してもよい。制御システムによって適用される制御によって表示されるように(Δx,Δy)だけ位置を変化させ、かつ(Δθ)だけ方位を変化させた後に、ロボットの更新されたポーズは、更新された方位(θ+Δθ)を有する(x+Δx,y+Δy)である。コンピューティングシステムは、入信するセンサスキャン内の検出マーカを使用して、推定されたポーズをさらに高精度化してもよい。
コンピューティングシステムはまた、検出マーカと環境内の他の測定値(例えば、近くの表面までの距離を表す輪郭測定値)とを使用して、センサの現在のポーズ(またはロボット)を推定してもよい。センサ/ロボットの以前のポーズが既知である場合に、コンピューティングシステムは、最近のポーズ推定値を使用して、マーカの以前の検出に基づいてマーカが位置すべき場所を予測してもよい。コンピューティングシステムは、後続の測定値を使用して、ロボットのポーズの変化を監視し続けてもよい。
いくつかの実例では、コンピューティングシステムは、新たな測定値に基づいて最近の変化を反映するように、各観測マーカと関連付けられた不確実性を修正してもよく、また、新たに検出されたマーカを環境内のマーカの地図に追加してもよい。コンピューティングシステムは、反復してSLAMを実行してスペース内でマーカの地図を更新し続け、ロボットが環境の地図を作成しながら安全にナビゲートもすることを可能にしてもよい。
別の例の実装形態では、コンピューティングシステムが、初期ポーズ監視、ローカルウィンドウ最適化、グローバル最適化、および完全なバンドル調整などの1つ以上の動作を使用する変更されたSLAMプロセスを実行してもよい。コンピューティングシステムは、多くの場合、初期ポーズ推定後に後続の動作を抑制してもよい。実際、コンピューティングシステムは、先行する動作の実行中に、次の計算的により費用のかかる動作を実行するか否かを決定してもよい。
コンピューティングシステムは、環境の初期スキャンを、ロボットの一連のポーズを表す、基礎をなすポーズグラフに追加してもよい。初期スキャンは、地図の座標系の基礎を形成するポーズ(0)として割り当てられてもよい。その後、環境の後続のスキャンごとに、コンピューティングシステムは、グラフに追加された以前のノード(例えば、ポーズ(0))を参照し、それに従って現在のポーズを更新してもよい。いくつかの実例では、コンピューティングシステムは、位置合わせプロセス(例えば、マーカベースの位置測定に対する反復最近接点(ICP)アルゴリズム)と、式[1]に示すような、整合するマーカ検出の対と地図作成されたランドマークとの間のユークリッド点間距離と、を使用して、ポーズを更新してもよい。
[1]T=arg minΣΣij||m-T(d)||
式[1]を使用して、ポーズグラフ内の1つのリンクに対する誤差を決定してもよい。言い換えると、コンピューティングシステムが、式[1]を使用して、2つの異なるポーズ間に誤差が存在するかどうかを判定してもよい。したがって、ポーズグラフが、誤差を減少させるために最適化問題を作成する多数のリンクを含んでもよい。式[1]は、整合のためにwij=1という一定の重みを仮定してもよい。ただし、いくつかの実例では、コンピューティングシステムは、ロボットのより近くに検出されたマーカ、またはコンピューティングシステムによって安定に見えていた検出マーカにより高い影響を与えるために非定数の重みを適用するように構成されてもよい。コンピューティングシステムはまた、マーカの検出レートの要因となり、一般化された位置合わせプロセス(例えば、ICP)におけるような共分散・共分散メトリクスなどの異なる誤差関数を使用してもよい。マーカ間の整合対ごとに、コンピューティングシステムは、ポーズグラフ全体(または部分グラフ)を最適化して、2つのノード間の個々のICP問題を同時に解いてもよい。
いくつかの場合では、レーザスキャンとスキャン内のマーカ検出との整合は、わずかな誤差と不正確さとをもたらし得る。したがって、ローカルウィンドウ最適化は、ローカルウィンドウのポーズグラフ最適化によって推定されたポーズを高精度化することによって、不所望の効果を解消し得る。特に、コンピューティングシステムは、近隣ノードの以前のポーズをポーズグラフ内で一定に維持し、かつローカルウィンドウの外にあるより古い推定値の使用を制限しながら、推定されたポーズを最適化し得る。例えば、スキャンが、ロボットの近くの少数の検出マーカしか作成しない場合に、コンピューティングシステムは、ローカルウィンドウ最適化を利用してポーズ推定値を改善してもよい。
コンピューティングシステムは、ロボットがある距離を進行し、または環境のスキャンの間にある角度回転して、最大距離または最大角度を超える場合に、ポーズグラフに新たなノードを追加してもよい。特に、コンピューティングシステムは、現在のスキャンを、後続のポーズ決定に使用できる新たな基準スキャンとして、基礎をなすポーズグラフに追加してもよい。
コンピューティングシステムは、さらに、他のノードのローカル近傍を決定し、結果として生じるサブグラフ(すなわち、ノードのローカル近傍)を最適化して、ローカルウィンドウ内のノードによって表されるその他のポーズと同様に、ロボットの現在のポーズの推定値を高精度化してもよい。コンピューティングシステムは、サブグラフをポーズグラフの残りに接続するノードを一定に維持し、新たなスキャンの要因(すなわち、それぞれのポーズの初期計算時における、それまで利用可能でなかった情報)となりながら現在のポーズを高精度化するようにサブグラフ内の全ての他のポーズを最適化してもよい。
コンピューティングシステムはまた、ループ検出および検証を実行してもよい。例として、ローカルウィンドウが、環境のその領域の以前の通過中に作成されたグラフノードを包含する場合に、コンピューティングシステムは、この領域の以前のスキャンを使用して、ポーズグラフのグローバル最適化を起動してもよい。グローバル最適化が、ロボットのポーズの変化を表すポーズグラフ内の全てのノードを最適化し、マーカ位置の地図の構築を可能にしてもよい。コンピューティングシステムは、2つのポーズ/ノードからマーカが検出される場合に、両方のポーズを有するエッジをグラフに追加してもよい。2つのポーズを変化させることによって、コンピューティングシステムは、2つのポイント間の距離を最小にし、新たなロボットポーズを取得してもよい。コンピューティングシステムは、全てのノードを調べ、地図を取得するためにワールド系における全てのマーカ検出を抽出してもよい。
グローバル最適化中に、コンピューティングシステムは、マーカ検出を整合させ(または環境の輪郭スキャンを整合させ)、これにより、環境の異なるスキャン内で検出されたマーカの全ての見つかった整合間の差を最小にするために、最適化されるグラフ内の全てのポーズを必要とする大きな最適化問題内にブロックを形成してもよい。コンピューティングシステムは、グローバルシステムがロボットの正確なポーズ推定値を作成するように収束するまで、繰り返されるプロセスでポーズを整合および最適化してもよい。
ノイズを減殺し、マーカ位置のより正確な地図を取得するために、コンピューティングシステムは、最終的な完全な調整を実行して、ロボットの経路とマーカ位置の地図との両方を最適化してもよい。コンピューティングシステムは、グラフ内のポーズをそれぞれのスキャンとともに最適化して、マーカの新たな地図を構築してもよく、バンドル調整中に、地図作成された反射器の位置を高精度化することによって、測定値誤差および他の不正確さをさらに補正してもよい。特に、いくつかの実例では、集約されたマーカ検出は、グローバルグラフ最適化のペアワイズ形式で非常によく整合し得るが、環境内のマーカの実際の位置を正確に表さない場合がある。したがって、コンピューティングシステムは、完全なバンドル調整を使用して、マーカ位置の地図における個々のマーカ位置の精度を改善し得る。
以下の表2は、変更されたSLAMプロセスの様々なステップと対応するポーズグラフとを例示している。
Figure 0006986188000003
Figure 0006986188000004
コンピューティングシステムは、位置整合されたスキャンのマーカ検出を集約することによって、マーカ位置の地図を更新し続けてもよい。各検出マーカについて、コンピューティングシステムは、検出マーカが、地図に既に追加されたマーカに整合するかどうかを確かめるために検査してもよく、このことは、予測されるマーカ間距離に対応する最大距離(例えば、0.5メートルの距離閾値)を有する最近接近傍探索を使用して環境の複数のスキャン内で検出されたマーカ間の整合を特定することを伴ってもよい。コンピューティングシステムが、検出マーカが地図内に配置されたマーカに整合することを見出す場合に、コンピューティングシステムは、必要であれば地図内のマーカの位置を調整してもよい。いくつかの実例では、コンピューティングシステムは、一般に新たなマーカの追加後、または地図の再構築後に再構築できるマーカの地図のkd木において近似的な最近接近傍探索を使用して整合処理を高速化してもよい。
いくつかの例では、コンピューティングシステムが、セット内の全てのポイントを調べ、かつ各ポイントを別のセットのポイントにおける最近接ポイントと整合させることによって、整合を決定してもよい。特に、距離閾値内の最近接ポイントは、整合とみなしてもよい。他の例では、コンピューティングシステムが、kd木、またはより速い整合の探索を可能にし得る他の探索構造を使用してもよい。
誤検出である可能性が高いマーカ検出を特定するために、コンピューティングシステムは、ローカル検出履歴を監視してマーカが安定であるかどうかを判定してもよい。マーカ位置の最終的な地図には、新たなマーカとして、または以前に追加されたマーカを補正するために、安定なマーカが含まれる。コンピューティングシステムは、環境のスキャン内に検出された全てのマーカに関する情報を包含する中間の地図表現を、安定なマーカのみを包含し、高反射性の表面によって引き起こされやすい誤検出を包含しない、マーカ位置の最終的な地図と区別してもよい。
例の実施形態では、コンピューティングシステムは、各地図作成されたマーカについてのローカル検出履歴を監視して誤検出を除去してもよい。例として、n回のスキャンのローカルウィンドウにおいて、コンピューティングシステムは、追加されたスキャンごとに(地図作成された各マーカに対して)ネガティブを加算し、スキャンが、地図作成されたマーカに整合するマーカ検出を包含した場合にはポジティブを加算してもよい。検出のローカルウィンドウの例が、以下の表3に示されている。
Figure 0006986188000005
表3に示すように、コンピューティングシステムは、環境のスキャンn=20のウィンドウサイズを使用してもよい。地図作成されたマーカのローカルウィンドウがポジティブの閾値量(例えば、合計スキャンの75%ポジティブ)を示すと、コンピューティングシステムは、マーカが安定であるとみなしてもよい。したがって、コンピューティングシステムは、安定なマーカを更新し続けてもよく、安定なマーカは、その後、手動で除去されないか、またはマーカの最終的な地図の完全な再構築中に不安定とみなされる場合でない限り、不安定になり得ない。グラフが、新たなスキャンの追加からかなり変化する場合に(例えば、グローバル最適化の場合に)、コンピューティングシステムは、マーカの地図を再構築してもよく、このことは、マーカが安定であるときを判定するためにより高い閾値(例えば、合計スキャンの80%超のポジティブの閾値)を使用することを伴ってもよい。
いくつかの例では、コンピューティングシステムは、マーカの地図内のマーカの位置を更新するように構成されてもよい。例として、地図作成されたマーカの位置を更新するために、コンピューティングシステムは、式[2]に示すように、整合するマーカ検出のn個の位置pの全てにわたる平均μを逐次計算してもよい。
Figure 0006986188000006
式[2]に示すように、コンピューティングシステムは、全てのマーカ検出を等しく重み付けしてもよいが、いくつかの例では、測定された位置におけるノイズが距離とともに増加する傾向にあることから、センサにより近接して検出されたマーカに、ロボットから遠く離れて検出されたマーカより高い重みを与えるように、逐次の重み平均を使用してもよい。コンピューティングシステムはまた、誤検出がより大きい共分散を示し得る傾向にあることから、集約された位置に対して逐次の共分散を計算して、真のマーカ検出から誤検出を識別する追加の方法を提供してもよい。さらに、コンピューティングシステムはまた、ポイントツーポイント誤差から、ポーズ監視における共分散ベースの誤差関数と、グラフ最適化のコスト関数と、に切り替えてもよい。
VI.例のシステムおよび方法
図10は、例の実装形態による、方法1000を例示するフローチャートである。特に、方法1000は、地図生成および位置整合を実行するように実装されてもよい。
方法1000(ならびに本明細書で開示された他のプロセスおよび方法)は、例えばロボットデバイス120を伴う装置内に(またはより詳細には、プロセッサと本明細書に記載された機能をデバイスに実行させるように実行可能である命令を有する非一過性コンピュータ可読媒体とによるなど、ロボットデバイス120の構成要素またはサブシステムによって)実装できる方法を提示する。これに加えて、またはこれに代えて、方法1000が、任意の他の装置およびシステム内に実装されてもよい。
方法1000ならびに本明細書に記載された他のプロセスおよび方法は、ブロック1002,1004,1006,1008,1010,および1012のうちの1つ以上によって例示されるような動作、機能、またはアクションを含んでもよい。ブロックは順次に例示されているが、これらのブロックはまた、並列に、および/または本明細書に記載されたものとは異なる順序で実行されてもよい。また、様々なブロックは、より少ないブロックに結合され、追加のブロックに分割され、および/または所望の実装形態に基づいて除去されてもよい。
加えて、方法1000ならびに本明細書に記載された他のプロセスおよび方法について、フローチャートは、本実装形態の1つの可能な実装形態の機能性および動作を示している。この点で、各ブロックは、プロセスにおいて特定の論理関数またはステップを実装するためにプロセッサによって実行可能な1つ以上の命令を含む、プログラムコードのモジュール、セグメント、または一部を表してもよい。このプログラムコードは、例えばディスクまたはハードドライブを含む記憶デバイスなどの、任意の種類のコンピュータ可読媒体に記憶されてもよい。コンピュータ可読媒体は、例えばレジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ(Random Access Memory、RAM)のような短期間の間データを記憶するコンピュータ可読媒体などの、非一過性コンピュータ可読媒体を含んでもよい。
コンピュータ可読媒体はまた、例えば読み出し専用メモリ(read only memory、ROM)、光ディスクまたは磁気ディスク、コンパクトディスク読み出し専用メモリ(compact-disc read only memory、CD-ROM)のような副次的または永続的長期間の記憶装置などの、非一過性媒体を含んでもよい。コンピュータ可読媒体はまた、任意の他の揮発性または不揮発性の記憶システムであってもよく、例えばコンピュータ可読記憶媒体、または有形の記憶デバイスとみなされてもよい。加えて、方法1000ならびに本明細書に記載された他のプロセスおよび方法について、図10の各ブロックは、プロセスにおいて特定の論理関数を実行するように配線された回路を表してもよい。
ブロック1002では、方法1000は、センサに対する環境内の複数のマーカの位置を表示する第1のセンサデータを受け取ることを含んでもよい。コンピューティングシステム(例えば、制御システム、遠隔配置されたコンピューティングシステム)が、センサ(単数)またはセンサ(複数)から環境のセンサ測定値を受け取ってもよい。例として、コンピューティングシステムは、レーザスキャナが環境内の位置を変化させる際に、レーザスキャナからスキャンを受け取ってもよい。コンピューティングシステムは、入信するセンサデータ内に、環境内に配置されたランドマーク(例えば、マーカ)を検出してもよい。
例の実装形態では、コンピューティングシステムは、2Dレーザスキャナから、水平面に沿って配置されたマーカの測定値を受け取ってもよい。コンピューティングシステムは、レーザスキャナから各スキャンにおいて、水平面内のマーカを検出してもよい。他の例では、コンピューティングシステムは、カメラ画像、RADARなどの、移動型ロボットに結合された他の種類のセンサから、センサデータを受け取ってもよい。
ブロック1004では、方法1000は、第1のセンサデータに基づいて、複数のマーカの地図内のセンサのポーズを決定することを含んでもよい。コンピューティングシステムは、センサデータを使用して、SLAMまたは類似のプロセスを実行して、マーカの位置を指定する地図を進化させることもしながら、環境に対するセンサのポーズを決定してもよい。コンピューティングシステムは、センサが環境内で位置を変化させる際に、推定されるポーズおよびマーカの地図をさらに決定および更新してもよい。
いくつかの例では、コンピューティングシステムが、センサを含むロボットのポーズを決定してもよい。例として、コンピューティングシステムは、センサのポーズとロボットのポーズとが等しいと仮定してもよい。さらなる例では、コンピューティングシステムが、一定のセンサロボット間変換を使用して、ロボットのポーズを決定してもよい。
ブロック1006では、方法1000は、センサから環境内の表面までの距離を表示する第2のセンサデータを受け取ることを含んでもよい。コンピューティングシステムは、センサと環境内の表面との間の距離を指定するセンサデータをさらに受け取ってもよい。これらの輪郭測定値は、センサと、壁、階段、格納ラックなどの、近くに配置された物理的特徴との間の距離を指定してもよい。いくつかの例では、センサは、ロボットまたは他の種類の運搬装置に結合されてもよく、コンピューティングシステムは、センサと環境内の表面との間の距離を、ロボットと表面との間の距離として定義してもよい。
ブロック1008では、方法1000は第2のセンサデータとセンサの決定されたポーズとに基づいて、環境内の表面を表す占有格子地図を決定することを含んでもよい。コンピューティングシステムは、ロボットの推定されたポーズと、センサと環境内の物理的特徴との間の距離を表示するセンサデータと、を使用して、占有格子を決定してもよい。
占有格子は、環境の周囲領域を表す、ロボットの視点(point of view、POV)からの多数のセルを含んでもよい。各セルは、特定の領域を表してもよく、領域のステータスを表示する状態を割り当てられてもよい。特に、セルが、障害物、空きスペース、または未知のものを有するものとして割り当てられてもよい。未知のセルが、領域が障害物を含むか否かを判定するための追加のセンサデータを必要としてもよい。占有格子はロボットのPOVからのセンサデータを使用して決定されるため、占有格子は、ロボットのセンサからのセンサデータを使用して決定されたマーカ位置の地図と同じ座標系を使用して決定されてもよい。したがって、コンピューティングシステムは、マーカ位置の地図を占有格子と位置整合させてもよい。
図11は、例の実施形態による、例の占有格子を例示している。占有格子1100は、ロボット1140に結合されたセンサのPOVからの、環境の周囲領域を表す。ただし、例示目的で、占有格子1100は、環境内に配置されたロボット1140をさらに示す上面視により示されている。占有格子1100の各正方形セルは、環境の対応する領域を表す。他の例では、占有格子1100は、異なる形状およびサイズを有し得る、より多い、またはより少ないセルを含んでもよい。例えば、占有格子1100のサイズおよび構成全体は、占有格子1100が表す環境に依存して異なってもよい。
占有格子1100は、異なる3種類のセルを含む。第1の種類のセル1110は、十字交差パターンのシェーディングを含み、環境内の物理的特徴などの、検出された障害物を含む領域を表す。占有格子1100は、占有格子1100の境界の周辺に配置された多数のセル1110を含み、セル1110は、ロボットがナビゲーション中に避け得る壁または他の物理的障害物に対応してもよい。
第2の種類のセル1120は、シェーディングを含まず(空白セル)、環境内の空きスペースを表す。ロボットは、環境内の潜在的な障害物に衝突せずに、環境内のセル1120を通ってうまくナビゲートし得る。第3の種類のセル1130は、ドット状のシェーディングを含み、環境内の未知の領域を表す。占有格子1000を進化させているコンピューティングシステムは、まだ、このような領域が、障害物を包含するのか、またはオープンスペースであるのかを特定していなくてもよい。
コンピューティングシステムが、環境をナビゲートしている1つ以上のロボットに結合されたセンサからの環境の新たな測定値を利用して、占有格子1100を更新および調整し続けてもよい。したがって、ロボット1140は、マーカの地図を設計モデルと位置整合させるように占有格子1100を進化させてもよい。
図10を参照すると、ブロック1010は、複数のマーカの地図と環境の設計モデルとの間の、占有格子地図内の占有されたセルを設計モデルからのサンプリングされたポイントと関連付ける変換を決定することを含んでもよい。設計モデル(例えば、CADモデル)は、倉庫ラック、充電ステーション、入口および出口、駐車スポット、および、壁および他の構造の全体的なレイアウトの位置などの、環境の物理的特徴の場所および位置を指定してもよい。コンピューティングシステムは、環境内でロボットをナビゲートしている制御システムが、マーカ位置および物理的特徴の両方を使用して制御方針を決定し得るように、マーカの地図とCAD設計モデルとの間の変換を決定してもよい。
例の実施形態では、コンピューティングシステムは、潜在的な回転のセットを伴う潜在的な並進のセットをサンプリングし、これらの初期の推定値を使用してポイントの位置合わせを実施してもよい。例として、コンピューティングシステムは、ポイント整合間に大きな距離(例えば、50m)を有して開始し、位置合わせ中に占有格子地図の解像度を低下させてもよい。各反復ステップでは、コンピューティングシステムは、全ての占有されたセル中心(またはこれらのサブセット)についてサンプリングされたモデルにおける一致点を探索し、式[3]を使用してポイントツーライン誤差を最小にする変換を計算してもよい。式[3]において、「R」は回転を表し、「t」は並進を表し、「p」は格子地図中のポイントであり、「q」はモデルにおけるポイントの整合であり、「n」はポイントにおける法線(すなわち、ポイントqがサンプリングされたラインの方向に垂直なベクトル)である。
[3]T=Σ[(Rp+t-q)*n
いくつかの実例では、環境(例えば、倉庫)の態様を表すCADモデルは、スペース内の壁、ラッキング、および他の物理的特徴を描画するポリゴンまたはラインセグメントのセットを包含してもよい。マーカ位置の生成された地図とCADモデルとの間のポイントのサンプリング時に、コンピューティングシステムが全てのラインセグメントを抽出してもよい。マーカの地図内の経路セグメントの長さがサンプリングされた距離を超える場合に、コンピューティングシステムは、開始ポイントを追加し、次いで、互いに離間したセットサンプル距離をラインセグメントに沿ってサンプリングしてもよい。コンピューティングシステムはまた、重複を検査してもよく、このことは、いくつかのラインセグメントからの追加されたサンプルポイントが、以前に追加されたポイントに一致しないことを判定することを伴ってもよい。例として、2つのラインセグメントが同じポイントで終了または開始する場合に、コンピューティングシステムは、そのポイントを1回だけ、サンプリングされたポイントセットに追加してもよい。
いくつかの例では、コンピューティングシステムは、マーカ位置の地図のポイントがどの程度よく設計モデルのポイントと位置整合するかに基づいて、信頼度を決定してもよい。信頼度を使用して、最も高い信頼度を生じる変換を選択してもよい。例として、コンピューティングシステムは、信頼度が閾値信頼度レベル(例えば、50%信頼度)を上回ることを必要としてもよい。コンピューティングシステムはまた、距離測定値とCADモデルとの間の整合を使用して、マーカ地図におけるロボットポーズと、マーカ位置の地図とCADモデルとの間の変換と、を最適化してもよい。
いくつかの例では、コンピューティングシステムは、水平面の回転および並進による変換を決定してもよい。例として、コンピューティングシステムは、マーカ位置の地図を回転させて、地図の座標系を設計モデルの座標系と位置整合させてもよい。
さらなる例では、コンピューティングシステムは、複数の2次元回転および並進値をサンプリングすることによって、変換を決定してもよい。特に、コンピューティングシステムは、複数の候補変換の各候補変換について、占有格子地図内の占有されたセルと、サンプリングされたポイントを包含する設計モデルからのラインとの間のポイントツーライン法線距離の合計を決定してもよい。コンピューティングシステムは、各候補変換について決定されたポイントツーライン法線距離の合計に基づいて、複数の候補変換から変換をさらに決定してもよい。
加えて、コンピューティングシステムは、複数の候補変換の各候補変換について、占有格子地図内の占有されたセルであって、サンプリングされたポイントを包含する設計モデルからのラインから閾値距離内にある占有されたセルの割合を含む測定値信頼度を決定してもよい。コンピューティングシステムは、次いで、各候補変換について決定された測定値信頼度に基づいて、変換を決定してもよい。コンピューティングシステムはまた、決定された変換に対する測定された信頼度の表示を提供してもよい。
図12Aは、例の実施形態による、マーカ位置の地図と設計モデルとの間の変換決定を例示している。図12Aに示すように、マーカの地図1200は、環境をナビゲートしているロボットに結合されたセンサからのスキャンにおいて検出されたマーカ1202の位置を伝達する。マーカ1202は、ロボットが安全にナビゲートするのを支援するために、様々な場所に配置されて示されている。他の例では、マーカ1202は、他の例において、より多い、またはより少ないマーカを含んでもよい。
設計モデル1210は、マーカの地図1200によって表された同じ環境の2D概観モデルを表し、倉庫ラック、壁、および他の特徴などの物理的構造の位置を示す。図12Aに示す例の例示では、マーカの地図1200の座標系は、設計モデル1210の座標系と位置整合されていない。ただし、コンピューティングシステムが、マーカの地図1200の座標系を、設計モデル1210の座標系と位置整合させる変換を決定してもよい。例として、コンピューティングシステムは、ロボットの近くの表面の測定値を使用して占有格子地図を決定し、占有格子地図内の占有されたセルを設計モデルからのサンプリングされたポイントと関連付ける変換をさらに決定してもよい。
例として、コンピューティングシステムは、占有格子地図内の占有されたセルと、サンプリングされたポイントを包含する設計モデルからのラインとの間のポイントツーライン法線距離の合計を決定してもよく、各候補変換について決定されたポイントツーライン法線距離の合計に基づいて、候補変換のセットから変換を決定してもよい。コンピューティングシステムはまた、他のプロセスを使用して変換を決定してもよい。
図12Bは、例の実施形態による、図12Aに描画された、マーカ位置の地図と設計モデルとの間の位置整合を例示している。上述したように、コンピューティングシステムが、マーカの地図1200を設計モデル1210と位置整合させる変換を決定してもよい。結果として、コンピューティングシステムは、環境内の物理的特徴に対するマーカ1202の位置を描画する位置整合された地図1230を決定してもよい。したがって、ロボットは、位置整合された地図1230を使用して、経路を決定し、ナビゲーション中に障害物を回避してもよい。
図10を再度参照すると、ブロック1012は、複数のマーカの地図と設計モデルとの間の変換を提供することを含んでもよい。コンピューティングシステムは、変換を、環境内に配備されたロボットの制御システムまたは他のシステムなどの、1つ以上のデバイスに提供してもよい。例として、コンピューティングシステムは、変換、マーカ位置、および設計モデルに表示された物理的特徴の位置を使用して、環境内のロボットをナビゲートするための制御命令を提供してもよい。コンピューティングシステムは、ナビゲートするのが困難な領域についての警告などの追加の情報で制御命令を補充してもよい。
いくつかの実施形態では、コンピューティングシステムが、受け取られた追加のセンサデータを使用して、マーカ位置の進化させた地図に対してロボットのポーズ推定値を高精度化してもよい。例として、コンピューティングシステムは、環境の新たに得られたスキャンを使用して、マーカのセットに対するロボットの位置または方位を調整してもよい。
コンピューティングシステムはまた、ロボットの高精度化されたポーズに基づいて、決定された変換を調整してもよい。例えば、コンピューティングシステムは、以前に決定された変換に基づいて、候補変換の範囲をサンプリングすることによって、変換を調整してもよい。特に、候補変換の範囲は、コンピューティングシステムが初期変換を初めて決定するために使用した候補変換の初期範囲よりも狭くてもよい。
いくつかのSLAMグラフでは、グラフは、ノードにおけるポーズおよびスキャンと、2つのポーズ(ノード)からマーカ決定の整合によって形成されたエッジと、を含んでもよい。同時に位置整合を行う場合に、コンピューティングシステムは、CADモデルからサンプリングされた最近接ポイントに、距離測定値(マーカ検出ではない)の整合を表す追加のエッジを追加してもよいポイントツー誤差を使用する代わりに、コンピューティングシステムは、ポイントツーライン誤差を使用して、整合するマーカ検出間の距離と、測定された2DスキャンポイントからCADモデル内の壁およびラッキングまでの距離と、を最小にするようにポーズを最適化してもよい。
いくつかの例の実施形態では、コンピューティングシステムは、グラフベースの最適化問題を解くことによって、マーカ位置の地図および変換を決定してもよい。グラフベースの最適化問題は、占有格子地図内の占有されたセルと、サンプリングされたポイントを包含する設計モデルからのラインとの間の各ポイントツーライン法線距離について、別個のエッジを最小にすることを伴ってもよい。コンピューティングシステムは、グラフベースの最適化問題を解いて、マーカの地図内のポイントを設計モデル内のポイントと位置整合させながら、同時にSLAMを実行してもよい。
いくつかの例では、コンピューティングシステムが、決定された変換に基づいて、CADモデルの位置整合誤差を特定し、CADモデルの特定された位置整合誤差の表示をさらに提供してもよい。例として、コンピューティングシステムは、物理的特徴の位置および方位のCADモデル表現が、物理的特徴の実際の位置および方位とわずかに異なることを判定してもよい。したがって、コンピューティングシステムは、変換の決定時(または後)に位置整合誤差を特定し、位置整合誤差の表示を提供してもよい。
数十または数百のマーカを有する大きな環境を伴う別の例では、コンピューティングシステムが、地図と設計モデルとの両方の重心を決定することによって、マーカ位置の地図と設計モデルとの間の変換を決定してもよい。コンピューティングシステムは、マーカの地図内の全てのマーカから二乗平均を減算し、潜在的な方位の範囲にわたる種々の初期ポーズを有する、結果として得られたポイントセットに対する位置合わせベースのプロセス(例えば、ICPプロセス)を使用してもよい。したがって、コンピューティングシステムは、位置整合パラメータ(すなわち、位置整合を可能にする変換)を決定するための最高数のインライアを生じるこの位置合わせの位置整合を使用し得る。
さらなる例の実施形態では、コンピューティングシステムが、マーカ位置の地図を地図の以前のバージョンと位置整合させて、環境内のマーカの位置を確認してもよい。例えば、コンピューティングシステムは、コンセンサスベースのフレームワークを使用して、両方の地図内に配置されたマーカ間の潜在的な整合をサンプリングし、さらに、最大数のインライアを作成するこの整合(サンプリングされたセットについて計算された位置整合の使用後に見出された整合)を使用して両方の地図の要因となるマーカ位置の更新された地図を生成してもよい。
V.結論
本開示は、本出願に記載された特定の実装態様の観点で限定されず、実装態様は、様々な態様の例示として意図されている。当業者に明らかであるように、本開示の趣旨および範囲から逸脱することなく、多くの変更および変形がなされ得る。本明細書に列挙されたものに加えて、本開示の範囲内の機能的に均等な方法および装置が、以上の記載から当業者には明らかであろう。このような変更および変形は、添付の特許請求の範囲の範囲内に入ることが意図されている。
上記の詳細な説明は、添付の図面を参照して、開示されたシステム、デバイス、および方法の様々な特徴および機能を記載している。図面において、文脈上別段の断りがなければ、類似の記号は、通常、類似の構成要素を特定する。本明細書および図面に記載された例の実装形態は、限定的であることを意図されていない。本明細書で提示された手段の趣旨および範囲を逸脱することなく、他の実装形態を利用することができ、他の変更をなし得る。本開示の態様は、本明細書に概して記載され、図面に例示されたように、多種多様な異なる構成に編集され、置換され、組み合わされ、分離され、および設計されることが可能であり、それらの全てが本明細書で明示的に想到されることは、たやすく理解できるであろう。
図面に示した特定の配置は、限定的であるとみなされるべきではない。他の実装形態が、所与の図面に示した各要素をより多く、またはより少なく含むことができることは理解できるはずである。さらに、例示された要素のいくつかは組み合わされ、または省略され得る。またさらに、例の実装形態は、図面に示されていない要素を含むことができる。
様々な態様および実装形態が本明細書に開示されているが、他の態様および実装形態が、当業者には明らかであろう。本明細書に開示された様々な態様および実装形態は、例示の目的であって、限定的であることを意図されておらず、真の範囲は以下の特許請求の範囲によって示される。

Claims (20)

  1. センサから、前記センサに対する環境内の複数のマーカの位置を表示する第1のセンサデータを受け取ることと、
    前記第1のセンサデータに基づいて、前記複数のマーカの地図内の前記センサのポーズを決定することと、
    前記センサから、前記センサから前記環境内の表面までの距離を表示する第2のセンサデータを受け取ることと、
    前記第2のセンサデータと前記センサの前記決定されたポーズとに基づいて、前記環境内の前記表面を表す占有格子地図を決定することと、
    前記複数のマーカの前記地図と前記環境の設計モデルとの間の、前記占有格子地図内の占有されたセルを前記設計モデルからのサンプリングされたポイントと関連付ける変換を決定することと、
    前記複数のマーカの前記地図と前記設計モデルとの間の前記変換を提供することと、を含む方法。
  2. 前記複数のマーカが、水平面に沿って配置された複数の逆反射マーカを含み、前記第1のセンサデータが、2次元レーザスキャナから受け取られる、請求項1に記載の方法。
  3. 前記変換を決定することが、水平面の回転および並進を決定することを含む、請求項1に記載の方法。
  4. 前記変換を決定することが、複数の2次元回転値および並進値をサンプリングすることを含む、請求項1に記載の方法。
  5. 前記変換を決定することが、
    複数の候補変換の各候補変換について、前記占有格子地図内の占有されたセルと、前記設計モデルからの、前記サンプリングされたポイントを包含するラインとの間のポイントツーライン法線距離の合計を決定することと、
    各候補変換について決定された前記ポイントツーライン法線距離の合計に基づいて、前記複数の候補変換から前記変換を決定することと、を含む、請求項1に記載の方法。
  6. 前記変換を決定することが、
    複数の候補変換の各候補変換について、前記設計モデルからの、前記サンプリングされたポイントを包含する直線の閾値距離内にある前記占有格子地図内の占有されたセルの割合を含む測定信頼度を決定することと、
    各候補変換について決定された前記測定信頼度に基づいて、前記複数の候補変換から前記変換を決定することと、を含む、請求項1に記載の方法。
  7. 前記決定された変換に対する前記測定信頼度の表示を提供することをさらに含む、請求項6に記載の方法。
  8. 前記占有格子地図を決定することが、障害物、空きスペース、および未知の領域のうちの1つである状態を各セルに割り当てることを含む、請求項1に記載の方法。
  9. 追加の受け取られたセンサデータに基づいて前記複数のマーカの前記地図内の前記センサの前記ポーズを高精度化することと、
    前記複数のマーカの前記地図内の前記センサの前記高精度化されたポーズに基づいて、前記複数のマーカの前記地図と前記環境の前記設計モデルとの間の前記変換を調整することと、をさらに含む、請求項1に記載の方法。
  10. 前記変換を調整することが、前記決定された変換に基づいて候補変換範囲をサンプリングすることを含み、前記サンプリングされた候補変換範囲が、前記変換を決定するために使用された初期の候補変換範囲よりも狭い、請求項9に記載の方法。
  11. グラフベースの最適化問題を解くことによって、前記複数のマーカの前記地図と前記変換とを決定することをさらに含む、請求項1に記載の方法。
  12. 前記グラフベースの最適化問題が、前記占有格子地図内の占有されたセルと、サンプリングされたポイントを包含する、前記設計モデルからのラインとの間の各ポイントツーライン法線距離に対する別個のエッジを含む、請求項11に記載の方法。
  13. 前記変換と前記環境の前記設計モデルとに基づいてロボットを制御する命令を提供することをさらに含む、請求項1に記載の方法。
  14. 前記環境の前記設計モデルが、コンピュータ支援設計(CAD)モデルを含む、請求項1に記載の方法。
  15. 前記変換に基づいて、前記CADモデルの位置整合誤差を特定することと、
    前記特定された、前記CADモデルの位置整合誤差の表示を提供することと、をさらに含む、請求項14に記載の方法。
  16. センサと、
    コンピューティングシステムと、
    非一過性コンピュータ可読媒体と、
    前記非一過性コンピュータ可読媒体に記憶されたプログラム命令であって、前記コンピューティングシステムによって、
    前記センサから、前記センサに対する環境内の複数のマーカの位置を表示する第1のセンサデータを受け取り、
    前記第1のセンサデータに基づいて、前記複数のマーカの地図内の前記センサのポーズを決定し、
    前記センサから、前記センサから前記環境内の表面までの距離を表示する第2のセンサデータを受け取り、
    前記第2のセンサデータと前記センサの前記決定されたポーズとに基づいて、前記環境内の前記表面を表す占有格子地図を決定し、
    前記複数のマーカの前記地図と前記環境の設計モデルとの間の、前記占有格子地図内の占有されたセルを前記設計モデルからのサンプリングされたポイントと関連付ける変換を決定し、かつ
    前記複数のマーカの前記地図と前記設計モデルとの間の前記変換を提供する、ように実行可能であるプログラム命令と、を備えるシステム。
  17. 前記複数のマーカが、逆反射マーカを含む、請求項16に記載のシステム。
  18. 前記コンピューティングシステムが、
    加の受け取られたセンサデータに基づいて、前記複数のマーカの前記地図内の前記センサの前記ポーズを高精度化し、かつ
    前記複数のマーカの前記地図内の前記センサの前記高精度化されたポーズに基づいて、前記複数のマーカの前記地図と前記環境の前記設計モデルとの間の前記変換を調整するようにさらに構成されている、請求項16に記載のシステム。
  19. コンピューティングシステムに動作を実行させるように、前記コンピューティングシステムによって実行可能なプログラム命令を中に記憶した非一過性コンピュータ可読媒体であって、前記動作が、
    センサから、前記センサに対する環境内の複数のマーカの位置を表示する第1のセンサデータを受け取ることと、
    前記第1のセンサデータに基づいて、前記複数のマーカの地図内の前記センサのポーズを決定することと、
    前記センサから、前記センサから前記環境内の表面までの距離を表示する第2のセンサデータを受け取ることと、
    前記第2のセンサデータと前記センサの前記決定されたポーズとに基づいて、前記環境内の前記表面を表す占有格子地図を決定することと、
    前記複数のマーカの前記地図と前記環境の設計モデルとの間の、前記占有格子地図内の占有されたセルを前記設計モデルからのサンプリングされたポイントと関連付ける変換を決定することと、
    前記複数のマーカの前記地図と前記設計モデルとの間の前記変換を提供することと、を含む非一過性コンピュータ可読媒体。
  20. 前記センサが運搬装置と結合されており、
    前記動作が、
    一定のセンサ運搬装置間変換を使用して前記運搬装置のポーズを決定することをさらに含む、請求項19に記載の非一過性コンピュータ可読媒体。
JP2019556310A 2017-04-21 2018-03-14 環境地図生成および位置整合のための方法ならびにシステム Active JP6986188B6 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/494,341 2017-04-21
US15/494,341 US10222215B2 (en) 2017-04-21 2017-04-21 Methods and systems for map generation and alignment
PCT/US2018/022385 WO2018194767A1 (en) 2017-04-21 2018-03-14 Method and system for environment map generation and alignment

Publications (3)

Publication Number Publication Date
JP2020519987A JP2020519987A (ja) 2020-07-02
JP6986188B2 JP6986188B2 (ja) 2021-12-22
JP6986188B6 true JP6986188B6 (ja) 2022-02-08

Family

ID=61899364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019556310A Active JP6986188B6 (ja) 2017-04-21 2018-03-14 環境地図生成および位置整合のための方法ならびにシステム

Country Status (5)

Country Link
US (1) US10222215B2 (ja)
EP (1) EP3612906B1 (ja)
JP (1) JP6986188B6 (ja)
KR (1) KR102342152B1 (ja)
WO (1) WO2018194767A1 (ja)

Families Citing this family (45)

* 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
JP6717697B2 (ja) * 2016-07-27 2020-07-01 シャープ株式会社 自律走行装置
US10346797B2 (en) 2016-09-26 2019-07-09 Cybernet Systems, Inc. Path and load localization and operations supporting automated warehousing using robotic forklifts or other material handling vehicles
JP6673293B2 (ja) * 2017-05-24 2020-03-25 トヨタ自動車株式会社 車両システム
US10860750B2 (en) * 2017-06-15 2020-12-08 Sap Se Model driven layout design for robotics warehouse
CN111066064A (zh) * 2017-10-03 2020-04-24 英特尔公司 使用误差范围分布的网格占用建图
JP7353747B2 (ja) * 2018-01-12 2023-10-02 キヤノン株式会社 情報処理装置、システム、方法、およびプログラム
GB201800751D0 (en) * 2018-01-17 2018-02-28 Mo Sys Engineering Ltd Bulk Handling
US11567504B1 (en) * 2018-09-12 2023-01-31 Amazon Technologies, Inc. Dynamic wait location for an autonomous mobile device
JP2020049642A (ja) * 2018-09-28 2020-04-02 セイコーエプソン株式会社 制御装置、ロボットシステム、及びロボット
CN109460032A (zh) * 2018-11-29 2019-03-12 亿嘉和科技股份有限公司 一种基于激光对射的定位方法以及机器人自主充电方法
CN109839935B (zh) * 2019-02-28 2020-08-25 华东师范大学 多agv的路径规划方法及设备
CN110032196B (zh) * 2019-05-06 2022-03-29 北京云迹科技股份有限公司 一种机器人回充方法及装置
KR102224637B1 (ko) 2019-07-05 2021-03-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102275300B1 (ko) 2019-07-05 2021-07-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
US11927457B2 (en) 2019-07-10 2024-03-12 Deka Products Limited Partnership System and method for real time control of an autonomous device
KR102297496B1 (ko) 2019-07-11 2021-09-02 엘지전자 주식회사 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
KR102361130B1 (ko) * 2019-07-11 2022-02-09 엘지전자 주식회사 이동 로봇 및 그 제어방법
US11958183B2 (en) 2019-09-19 2024-04-16 The Research Foundation For The State University Of New York Negotiation-based human-robot collaboration via augmented reality
US11233937B1 (en) * 2019-09-26 2022-01-25 Amazon Technologies, Inc. Autonomously motile device with image capture
CN114585980A (zh) * 2019-10-31 2022-06-03 瑞典爱立信有限公司 绝对坐标系中的物体处置
CN110853098B (zh) * 2019-11-15 2023-06-16 上海思岚科技有限公司 机器人定位方法、装置、设备及存储介质
NO345665B1 (en) * 2019-11-20 2021-06-07 Autostore Tech As A method, system and computer program for controlling an automated storage and retrieval system during rebuilding its physical design
US11520332B1 (en) * 2019-12-03 2022-12-06 Amazon Technologies, Inc. System for automated exploration by an autonomous mobile device using markers based on image features
CN111009036B (zh) * 2019-12-10 2023-11-21 北京歌尔泰克科技有限公司 同步定位与地图构建中栅格地图的修正方法、装置
WO2021167928A1 (en) 2020-02-21 2021-08-26 Crown Equipment Corporation Modify vehicle parameter based on vehicle position information
SE544298C2 (en) * 2020-04-14 2022-03-29 Husqvarna Ab Robotic work tool system and method for defining a working area
DE102020205549A1 (de) * 2020-04-30 2021-11-04 Volkswagen Aktiengesellschaft Verfahren zum Betrieb eines Transportmittel-Assistenz- oder Steuerungssystems
CN111683203B (zh) * 2020-06-12 2021-11-09 达闼机器人有限公司 栅格地图生成方法、装置及计算机可读存储介质
CN111753036B (zh) * 2020-06-19 2024-04-16 重庆大学 一种基于栅格地图的智能车库地图构建方法
CN111750864B (zh) * 2020-06-30 2022-05-13 杭州海康机器人技术有限公司 一种基于视觉地图的重定位方法和装置
EP3964911B1 (en) * 2020-09-03 2023-08-02 Volvo Autonomous Solutions AB A method of controlling the working scheme of an autonomous working machine at a worksite
CN112068154B (zh) * 2020-09-14 2022-12-13 中科院软件研究所南京软件技术研究院 一种激光建图定位方法、装置、存储介质及电子设备
CN113739798B (zh) * 2020-11-05 2024-04-12 北京京东乾石科技有限公司 路径规划方法和装置
CN112304318B (zh) * 2020-11-10 2022-07-29 河北工业大学 一种虚实耦合约束环境下的机器人自主导航方法
US11699014B2 (en) 2021-01-29 2023-07-11 Insight Direct Usa, Inc. System and method for determining paths between locations in a physical system
WO2022167097A1 (en) * 2021-02-08 2022-08-11 Abb Schweiz Ag Human-robot collaborative navigation
CN116917963A (zh) * 2021-02-15 2023-10-20 三菱电机株式会社 交通管理装置、交通管理方法和交通管理程序
US20220266867A1 (en) * 2021-02-22 2022-08-25 Argo AI, LLC Indoor Localization of Autonomous Vehicles
CN113375657A (zh) * 2021-04-26 2021-09-10 北京迈格威科技有限公司 电子地图的更新方法、装置和电子设备
US20230029596A1 (en) * 2021-07-30 2023-02-02 Clearedge3D, Inc. Survey device, system and method
BE1029956B1 (nl) * 2021-11-24 2023-06-19 Dsp Automation Autonoom hefvoertuig en navigatiesysteem daarvoor
KR102664483B1 (ko) * 2021-12-29 2024-05-14 세메스 주식회사 자율 주행 로봇의 정밀 도킹 제어방법 및 이를 이용한 자율 주행 로봇
WO2023200075A1 (ko) * 2022-04-12 2023-10-19 (주)서울로보틱스 객체 추적 장치, 객체 추적 방법 및 이를 수행하는 프로그램을 기록한 기록매체
CN117870653B (zh) * 2024-03-13 2024-05-14 中国科学技术大学 一种二维差分欧几里得符号距离场地图的建立与更新方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108446A (ja) 2000-09-29 2002-04-10 Nippon Seiki Co Ltd 移動体の誘導方法
JP2004298977A (ja) 2003-03-28 2004-10-28 Sony Corp 行動制御装置、行動制御方法及び行動制御プログラム、並びに移動型ロボット装置
JP2007257226A (ja) 2006-03-23 2007-10-04 Honda Motor Co Ltd 移動体の自己位置検出装置および位置検出システム
JP2010072762A (ja) 2008-09-16 2010-04-02 Murata Machinery Ltd 環境地図修正装置及び自律移動装置
WO2013030929A1 (ja) 2011-08-29 2013-03-07 株式会社日立製作所 監視装置、監視システム及び監視方法
JP2013537995A (ja) 2010-09-24 2013-10-07 エボリューション・ロボティクス・インコーポレイテッド Vslam最適化のためのシステムおよび方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11104984A (ja) * 1997-10-06 1999-04-20 Fujitsu Ltd 実環境情報表示装置及び実環境情報表示処理を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4962742B2 (ja) * 2008-12-11 2012-06-27 株式会社安川電機 移動体システム
US20120303255A1 (en) * 2011-05-26 2012-11-29 INRO Technologies Limited Method and apparatus for providing accurate localization for an industrial vehicle
US8548671B2 (en) * 2011-06-06 2013-10-01 Crown Equipment Limited Method and apparatus for automatically calibrating vehicle parameters
US9037396B2 (en) 2013-05-23 2015-05-19 Irobot Corporation Simultaneous localization and mapping for a mobile robot
KR101427186B1 (ko) * 2013-06-12 2014-08-07 건국대학교 산학협력단 미지환경에서 지능형 로봇의 이동경로 생성을 위한 영역탐색 및 매핑 장치
US9354070B2 (en) * 2013-10-31 2016-05-31 Crown Equipment Corporation Systems, methods, and industrial vehicles for determining the visibility of features
US9630319B2 (en) * 2015-03-18 2017-04-25 Irobot Corporation Localization and mapping using physical features
US9816820B2 (en) * 2016-01-07 2017-11-14 Caterpillar Inc. Positioning system having smoothed kalman filter update
US20170329332A1 (en) * 2016-05-10 2017-11-16 Uber Technologies, Inc. Control system to adjust operation of an autonomous vehicle based on a probability of interference by a dynamic object

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108446A (ja) 2000-09-29 2002-04-10 Nippon Seiki Co Ltd 移動体の誘導方法
JP2004298977A (ja) 2003-03-28 2004-10-28 Sony Corp 行動制御装置、行動制御方法及び行動制御プログラム、並びに移動型ロボット装置
JP2007257226A (ja) 2006-03-23 2007-10-04 Honda Motor Co Ltd 移動体の自己位置検出装置および位置検出システム
JP2010072762A (ja) 2008-09-16 2010-04-02 Murata Machinery Ltd 環境地図修正装置及び自律移動装置
JP2013537995A (ja) 2010-09-24 2013-10-07 エボリューション・ロボティクス・インコーポレイテッド Vslam最適化のためのシステムおよび方法
WO2013030929A1 (ja) 2011-08-29 2013-03-07 株式会社日立製作所 監視装置、監視システム及び監視方法

Also Published As

Publication number Publication date
EP3612906A1 (en) 2020-02-26
US10222215B2 (en) 2019-03-05
KR102342152B1 (ko) 2021-12-23
KR20190142360A (ko) 2019-12-26
JP2020519987A (ja) 2020-07-02
US20180306587A1 (en) 2018-10-25
JP6986188B2 (ja) 2021-12-22
EP3612906B1 (en) 2023-06-07
WO2018194767A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
JP6986188B6 (ja) 環境地図生成および位置整合のための方法ならびにシステム
US11373395B2 (en) Methods and systems for simultaneous localization and calibration
JP6811258B2 (ja) ロボット車両の位置測定
US11326887B2 (en) Landmark placement for localization
JP6853832B2 (ja) ネガティブマッピングを用いる位置測定
US10328578B2 (en) Methods and systems for detecting, recognizing, and localizing pallets
US10296012B2 (en) Pre-computation of kinematically feasible roadmaps
US20200103915A1 (en) Determining Changes in Marker Setups for Robot Localization
JP2021196489A (ja) 地図補正システム、及び地図補正プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210312

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210827

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20211001

R150 Certificate of patent or registration of utility model

Ref document number: 6986188

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150