(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-29
(45)【発行日】2024-04-08
(54)【発明の名称】エスカレータを検出するためのシステム、装置、及び方法
(51)【国際特許分類】
G05D 1/43 20240101AFI20240401BHJP
【FI】
G05D1/43
(21)【出願番号】P 2021533466
(86)(22)【出願日】2019-12-11
(86)【国際出願番号】 US2019065643
(87)【国際公開番号】W WO2020123605
(87)【国際公開日】2020-06-18
【審査請求日】2022-12-12
(32)【優先日】2018-12-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518437202
【氏名又は名称】ブレーン コーポレーション
【氏名又は名称原語表記】BRAIN CORPORATION
(74)【代理人】
【識別番号】100107984
【氏名又は名称】廣田 雅紀
(74)【代理人】
【識別番号】100182305
【氏名又は名称】廣田 鉄平
(74)【代理人】
【識別番号】100096482
【氏名又は名称】東海 裕作
(74)【代理人】
【識別番号】100131093
【氏名又は名称】堀内 真
(74)【代理人】
【識別番号】100150902
【氏名又は名称】山内 正子
(74)【代理人】
【識別番号】100141391
【氏名又は名称】園元 修一
(74)【代理人】
【識別番号】100221958
【氏名又は名称】篠田 真希恵
(74)【代理人】
【識別番号】100192441
【氏名又は名称】渡辺 仁
(72)【発明者】
【氏名】バディオザマニ アブドルハミド
(72)【発明者】
【氏名】パレデス クリスティアン エドゥアルド トロンコソ
【審査官】西井 香織
(56)【参考文献】
【文献】韓国公開特許第10-2018-0087768(KR,A)
【文献】特開2012-128616(JP,A)
【文献】特開2011-059071(JP,A)
【文献】特開2018-102496(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/87
(57)【特許請求の範囲】
【請求項1】
移動経路に沿って落差を検出するための方法であって、
ロボット装置に搭載された第1のセンサから第1のデータを受信するステップであって、前記第1のデータが、前記第1のセンサから第1の領域までの第1の距離測定値を含む、前記第1のセンサから第1のデータを受信するステップと、
前記ロボット装置に搭載された前記第1のセンサから第2のデータを受信するステップであって、前記第2のデータが、前記第1のセンサから第2の領域までの第2の距離測定値を含み、前記第2の領域が前記第1の領域とは異なる、前記第1のセンサから第2のデータを受信するステップと、
前記第2の距離測定値が前記第1の距離測定値と異なる場合、前記第1の距離測定値と前記第2の距離測定値との間の差を計算するステップであって、前記計算された差が落差の大きさに対応する、前記計算するステップと、
前記第2の領域内において、2つの側壁が側壁の距離の閾値によって分離されているか、及び前記2つの側壁が前記第2の距離測定値内にあるか判定するステップと、
前記落差の大きさが、所定の閾値の大きさである落差パラメータと等しいか又はこれを超えている場合、及び前記側壁の距離の閾値を介して前記2つの側壁を判定すると、前記移動経路を再指定するように前記ロボット装置を作動させるステップと
を含む、前記方法。
【請求項2】
前記落差パラメータが、前記第1の領域と前記第2の領域との間の高さの平均値に対応し、前記第1の領域が静止しており、前記第2の領域が前記第1の領域から離れるように動いている、請求項1に記載の方法。
【請求項3】
前記第1のセンサに較正エラーがある場合に前記落差の大きさを調整するステップ
をさらに含む、請求項1に記載の方法。
【請求項4】
前記第1の距離測定値と前記第2の距離測定値との間の差を計算する前に側壁閾値を検出するステップを
さらに含み、前記側壁閾値
を検出するステップが、前記第1のセンサによって第1の
側壁及び第2の
側壁を検出すること
を含み、前記第1及び第2の
側壁が
所定の距離
の閾値によって分離されている、請求項1に記載の方法。
【請求項6】
前記導関数測定値が負の壁閾値パラメータ値を満たす場合、前記2つの側壁の一方が前記ロボット装置の前記左側にあり、前記導関数測定値が正の壁閾値パラメータ値を満たす場合、前記2つの側壁の一方が前記ロボット装置の前記右側にある、請求項5に記載の方法。
【請求項7】
前記落差の大きさ及び前記側壁の距離の閾値が、前記第1及び第2の
側壁に対する前記ロボット装置の角度に関係なく計算される、請求項4に記載の方法。
【請求項8】
複数の命令が記憶された非一時的コンピュータ可読媒体であって、コントローラによって実行されたときに前記コントローラが、
ロボット装置に搭載された第1のセンサから第1のデータを受信する
ことであって、前記第1のデータが、前記第1のセンサから第1の領域までの第1の距離測定値を含む、前記第1のセンサから第1のデータを受信することと、
前記ロボット装置に搭載された前記第1のセンサから第2のデータを受信するステップであって、前記第2のデータが、前記第1のセンサから第2の領域までの第2の距離測定値を含み、前記第2の領域が前記第1の領域とは異なる、前記第1のセンサから第2のデータを受信することと、
前記第2の距離測定値が前記第1の距離測定値と異なる場合、前記第1の距離測定値と前記第2の距離測定値との間の差を計算するステップであって、前記計算された差が落差の大きさに対応する、前記計算することと、
前記第2の領域内において、2つの側壁が側壁の距離の閾値によって分離されているか、及び前記2つの側壁が前記第2の距離測定値内にあるか判定することと、
前記落差の大きさが、所定の閾値の大きさである落差パラメータと等しいか又はこれを超えている場合、及び前記側壁の距離の閾値を介して前記2つの側壁を判定すると、
移動経路を再指定するように前記ロボット装置を作動させることと
を実行するように構成される、前記非一時的コンピュータ可読媒体。
【請求項9】
前記落差パラメータが、前記第1の領域と前記第2の領域との間の高さの平均値に対応し、前記第1の領域が静止しており、前記第2の領域が前記第1の領域から離れるように動いている、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記コントローラが、複数のコンピュータ可読命令を実行して、前記第1のセンサに較正エラーがある場合に、前記落差の大きさを調整するように、さらに構成
可能である、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項11】
前記2つの側壁が前記ロボット装置の右側又は左側のいずれかにあると判定するために、前記第2のデータの
前記第2の距離測定値による導関数測定値に基づいて、前記2つの側壁が検出される、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項12】
前記第2のデータの前記第2の距離測定値による前記導関数測定値が負の壁閾値パラメータ値を満たす場合、前記2つの側壁の一方が前記ロボット装置の前記左側にあり、
前記第2のデータの前記第2の距離測定値による前記導関数測定値が正の壁閾値パラメータ値を満たす場合、前記2つの側壁の一方が前記ロボット装置の前記右側にある、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項13】
前記落差の大きさ及び前記側壁の距離の閾値が、前記2つの側壁に対する前記ロボット装置の角度に関係なく計算される、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項14】
移動経路に沿って落差を検出するためのシステムであって、
コンピュータ可読命令が記憶されたメモリと、
少なくとも1つのコントローラであって、前記コンピュータ可読命令が実行されたときに、
ロボット装置に搭載された第1のセンサから第1のデータを受信するステップであって、前記第1のデータが、前記第1のセンサから第1の領域までの第1の距離測定値を含む、前記第1のセンサから第1のデータを受信することと、
前記ロボット装置に搭載された第1のセンサから第2のデータを受信するステップであって、前記第2のデータが、前記第1のセンサから第2の領域までの第2の距離測定値を含み、前記第2の領域が前記第1の領域とは異なる、前記第1のセンサから第2のデータを受信することと、
前記第2の距離測定値が前記第1の距離測定値と異なる場合、前記第1の距離測定値と前記第2の距離測定値との間の差を計算するステップであって、前記計算された差が落差の大きさに対応する、前記計算することと、
前記第2の領域内において、2つの側壁が側壁の距離の閾値によって分離されているか、及び前記2つの側壁が前記第2の距離測定値内にあるか判定することと、
前記落差の
大きさが、所定の閾値の大きさである落差パラメータと等しいか又はこれを超えている場合、及び前記側壁の距離の閾値を介して前記2つの側壁を判定すると、前記移動経路を再指定するように前記ロボット装置を作動させることと
を実行するように構成
可能な前記少なくとも1つのコントローラと
を備える、前記システム。
【請求項15】
前記落差パラメータと前記側壁の距離の閾値とが満たされた場合、前記落差がエスカレータに対応する、請求項1に記載の方法。
【請求項16】
前記落差パラメータと前記側壁の距離の閾値とが満たされた場合、前記落差がエスカレータに対応する、請求項8に記載の非一時的コンピュータ可読
記憶媒体。
【請求項17】
前記落差パラメータと前記側壁の距離の閾値とが満たされた場合、前記落差がエスカレータに対応する、請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
著作権
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。著作権所有者は、特許商標庁の特許ファイル又は記録に現れるような、特許文献又は特許開示の何人かによる複製に異議を唱えることはないが、そうでなければ何であれすべての著作権を留保する。
【0002】
本願は概してロボット工学に関し、より具体的には、ロボットの周囲環境内で、例えば、エスカレータを有することによる、平面内の高さの落差(drop)を検出するためのシステム及び方法に関する。
【背景技術】
【0003】
現在、多くのロボットが、例えば、ロボットの前にある急な落差を測定してロボットがその急な落差を越えて転倒することを回避することが可能になるように構成された1又は2以上の距離測定センサを含む。いくつかのロボットは画像、例えば、色付き又はグレースケールの画像をさらに利用して走行し、環境の障害物及び危険を感知することができる。エスカレータは、例えば、急な落差を検出するように構成された距離測定センサで走行するロボットに固有の問題を提供するが、これはロボットがすでにエスカレータの最初の移動ステップ上にくるまでロボットがその最初の移動ステップの向こうの落差を検出しないことがあるためである。
【0004】
ロボットがエスカレータの最初の移動ステップ上へ移動する前にそのエスカレータを検出するように構成されていないロボットは、ロボットに対する損傷、エスカレータに対する損傷、及び近くの人の負傷という重大なリスクのある可能性がある。したがって、当該技術においてロボットが周囲環境内のエスカレータを検出するシステム及び方法が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
前述の必要性は、とりわけ、例えば、ロボット装置がエスカレータに接近するときに、そのロボット装置によって平面内の落差を検出するためのシステム及び方法を提供する本開示によって満たされる。本開示は、LiDARデータを処理してロボットがその環境内のエスカレータ又は動く歩道を検出することを可能にする具体的な用途を対象にしている。当業者は、エスカレータの考察が平面内の落差を考察する非限定的な一例の実施形態であることを理解することができる。以下の考察はエスカレータに関係するが、崖、階段、建物の縁部、又は地上レベルを上回る表面の縁部のような、平面内に落差がある他の実世界の例にも同等に適用可能であり得る。
【0006】
本明細書に記載の例示的な実施形態は革新的な特徴を有するが、そのうちの1つもその望ましい属性に不可欠である、又は単独で責任があるものではない。特許請求の範囲を限定することなく、有利な特徴のいくつかを次に要約する。
【課題を解決するための手段】
【0007】
少なくとも1つの非限定的な例示的な実施形態によれば、ロボットシステムが開示される。このロボットシステムは、ロボットの前及び近くにある床の距離測定値を収集してロボットが急な崖及び障害物を回避することができるように構成された距離測定センサを含むことができる。ロボットシステムは、具体化された複数の命令と、これらのコンピュータ可読命令を実行するように構成された1又は2以上の専用プロセッサと、を含む非一時的コンピュータ可読記憶媒体をさらに含むことができる。これらの命令により、1又は2以上の専用プロセッサは、距離測定センサによって収集されたデータに基づいて環境内のエスカレータを検出及び回避することが可能になり得る。
【0008】
少なくとも1つの非限定的な例示的な実施形態によれば、ロボットがエスカレータを検出する方法が開示される。この方法は、ロボットのコントローラが、エスカレータの幅に対応する所定の距離によって分離された2つの壁を検出することを含むことができる。この方法は、静止床とエスカレータの最初の移動ステップとの間の小さな落差の検出をさらに含むことができる。これら2つのパラメータが満たされると、ロボットのコントローラはエスカレータを判定することができ、ロボットをエスカレータから遠ざけるように走行させて、ロボットがエスカレータから落下することになった場合のロボットに対する損傷、周囲の物体に対する損傷、又は近くの人の負傷を回避することができる。
【0009】
開示される本発明の概念は、コンピュータ技術及び機能性に非抽象的改良を行う具体的な特定の構成における特徴によって実行される。コンピュータ技術及び機能性におけるこれらの改良のいくつかは、プロセッサが従来のプロセッサより高速かつ効率的に実行することが可能である独自の専用プロセッサによる専用アルゴリズムを実行することを含み、データが収集、解析及び記憶されるときに必要とされるメモリスペースの使用が少なくなる。したがって、本明細書に開示される本発明の概念は、ロボットを、それ自体、その周りの人間及び物体に対する安全上のリスクを生じやすい軌道に沿って操縦することを対象とした従来の技術又は先行技術に対する改良である。最後に、例えば、様々なセンサユニット、ナビゲーションユニット、アクチュエータユニット、通信ユニット及びユーザインターフェイスユニットのような、本明細書に開示される構造的要素は、ロボット装置が経路に沿って動くときのその機能及び動作に固有の具体的な方法及び構成に合わせられている。
【0010】
本明細書に開示される本発明の概念は、本明細書に開示されるアルゴリズムの実行時、コンピュータの構成要素がより速く機能して用いるメモリスペースが少なくなるように、コンピュータの機能性を改良する技術的改良を対象としている。
【0011】
本開示のこれら及び他の目的、特徴、及び特性、並びに構造の関連要素の動作及び機能の方法及び部品の組み合わせ及び製造の経済性は、添付の図面を参照した次の説明及び添付の請求項を考慮するとより明らかになり、図面のすべてが本明細書の一部を形成し、同様の参照番号は様々な図における対応する部分を示す。しかしながら、図面は、例示及び説明のみを目的としており、本開示の限定の定義として意図されるものではないことが明示的に理解されるべきである。本明細書及び請求項において用いられるとき、「a」、「an」、及び「the」の単数形は、文脈が明確に別段の指示をしない限り、複数の指示対象を含む。
【図面の簡単な説明】
【0012】
開示される態様を限定するためではなく例示するために提供される添付の図面と併せて、開示された態様を以降に説明し、同様の符号は同様の要素を指す。
【
図1A】本開示のいくつかの実施形態による主要ロボットの機能ブロック図である。
【
図1B】本開示のいくつかの実施形態によるコントローラ又はプロセッサの機能ブロック図である。
【
図2A】例示的な一実施形態による、エスカレータ及びエスカレータの様々な点での高さ測定値を含むデータを収集する距離測定センサの正面図を示す。
【
図2B】例示的な一実施形態による、エスカレータ及び測定値を収集してエスカレータの最初の移動ステップと静止部分との間の落差を判定する距離測定センサの側面図を示す。
【
図3A】例示的な一実施形態による、エスカレータの様々な点での高さ測定値を含むデータを収集する距離測定センサによって取得された高さ測定値を示す。
【
図3B】例示的な一実施形態による、
図3Aに示す高さ測定値の導関数を示す。
【
図4】例示的な一実施形態による、エスカレータの左壁、右壁、及び床に対応する高さ測定値を記憶するためのデータテーブルを示す。
【
図5】例示的な一実施形態による、ロボットのコントローラが周囲環境内のエスカレータを判定するプロセスフロー図を示す。
【
図6B】例示的な一実施形態による、エスカレータを検出するために用いられる最小間隔パラメータがロボットの接近角度からどのように不変であるかを示すために2つの接近角度でエスカレータに接近するロボットを示す。
【
図7】例示的な一実施形態による、LiDARスキャン又は画像においてエスカレータを識別するように訓練されるべきニューラルネットワークの高レベルの図を示す。
【発明を実施するための形態】
【0013】
本明細書に開示されるすべての図は、2018 Brain Corporationの著作権である。すべての権利を留保する。
【0014】
添付の図面を参照して、本明細書に開示される新規のシステム、装置、及び方法の様々な態様を以降により完全に説明する。しかしながら、本開示は多くの異なる形態で実施することができ、本開示全体を通して提示されるいずれの具体的な構造又は機能にも限定されるとして解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全であり、本開示の範囲を当業者に完全に伝えることになるように提供される。本明細書の教示に基づいて、当業者であれば、本開示の範囲は、本明細書に開示される新規のシステム、装置、及び方法の任意の態様を、本開示の任意の他の態様から独立して、又はそれと組み合わせて実施されるかどうかにかかわらず、カバーするように意図されていることを理解するであろう。例えば、本明細書に記載の任意の数の態様を用いて装置を実装することができ、又は方法を実施することができる。加えて、本開示の範囲は、本明細書に記載の本開示の様々な態様に加えて、又はそれ以外の他の構造、機能性、又は構造及び機能性を用いて実施されるそのような装置又は方法をカバーするように意図されている。本明細書に開示されるいずれの態様も請求項の1又は2以上の要素によって実施することができるということが理解されるべきである。
【0015】
特定の態様を本明細書で説明しているが、これらの態様の多くの変形及び置換が本開示の範囲内に含まれる。好ましい態様のいくつかの利益及び利点を述べているが、本開示の範囲は、特定の利点、用途、及び/又は目的に限定されるように意図されていない。詳細な説明及び図面は、限定するものではなく、単に本開示の例示であり、本開示の範囲は添付の請求項及びその同等物によって定義される。
【0016】
本開示は、ロボットの周囲環境内のエスカレータを検出するためのシステム及び方法を提供する。本明細書で用いられるとき、ロボットは、複雑な一連のタスク又はアクションを自律的に実行するように構成された機械的及び/又は仮想エンティティを含むことができる。いくつかの例示的な実施形態において、ロボットは、コンピュータプログラム及び/又は電子回路によって誘導及び/又は指示される機械とすることができる。いくつかの例示的な実施形態において、ロボットは、走行用に構成されている電気機械的コンポーネントを含むことができ、ロボットは1つの場所から他へと移動することができる。このようなロボットは、自動及び/又は半自動運転車、床用掃除機、ローバー、ドローン、飛行機、ボート、カート、トラム、車椅子、産業機器、貯蔵機械(stocking machines)、移動プラットフォーム、個人用輸送装置(例えば、ホバーボード、SEGWAYS(登録商標)など)、貯蔵機械、トレーラムーバ、車両などを含むことができる。ロボットはまた、物品、人、動物、積荷、貨物、物体、荷物、及び/又は所望されるあらゆるものを1つの場所から他へと輸送するための任意の自律型及び/又は半自律型機械を含むことができる。
【0017】
本明細書で用いられるとき、エスカレータは、移動階段を介して人又は物を上向き又は下向きに移動させるように構成された斜めステップエスカレータを含むことができる。エスカレータは、移動ベルトを介して平面を横切って人又は物を水平に並進させるように構成されたフラットエスカレータをさらに含むことができる。フラットエスカレータ、又は動く歩道は通常、移動ベルトを作成する複数のセグメントを含み、フラットエスカレータ又は動く歩道に関して本明細書で用いられるような最初の移動ステップは、フラットエスカレータの移動ベルトの最初のセグメントに対応し得る。フラットエスカレータ上の一方の端部に移動するロボットは依然として、ロボットがエスカレータのベルト上へ、又はそこから遠ざかるように移動するときにエスカレータの壁との衝突を経験する可能性があり、又はロボットを損傷させる、又は近くの人に安全上のリスクを引き起こす可能性がある速度で、反対側の端部にあるフラットエスカレータの静止部分に近づく可能性がある。少なくとも1つの非限定的な例示的な実施形態によれば、ロボットは、エスカレータを判定及び利用して、環境を通じてロボットを輸送するように構成することができる。
【0018】
本明細書で用いられるとき、距離測定センサは、センサと目標点との間の距離を判定するように構成された任意のセンサを含むことができ、目標点は表面上にある。例えば、距離測定センサは、センサと近くの物体との間の距離を測定するように構成された、光検出及び測距(LiDAR,light detection and ranging)センサ、又は他の同様の光学センサを含むことができる。
【0019】
本明細書で用いられるとき、高さ測定値は、ゼロ(0)の高さでの平坦基準面に対して距離測定カメラによって測定された目標点の高さを含むことができる。平坦基準面は、距離測定センサを含むロボットがある平坦な床とすることができる。距離測定値は、本明細書で用いられるとき、高さ測定値の逆数を含むことができ、距離測定は、距離測定センサと目標点との間の距離を測定する。本開示に示す実施形態は高さ測定を利用するが、実質的に同様のシステム及び方法を使用して距離測定を用いてエスカレータを判定することが期待されるであろうことが当業者によって理解される。
【0020】
本明細書で用いられるとき、エスカレータの側壁は、エスカレータの移動ステップを囲む手すり及びハンドレール支持構造を含むことができる。
【0021】
本明細書で用いられるとき、学習プロセスは、ロボットに関連するパラメータを教えることを含むことができる。例えば、ロボットは、オペレータにロボットをエスカレータへ走行させ、ロボットにセンサを用いてエスカレータの幅を測定させることによってエスカレータの幅を学習することができる。ロボットは次いで学習した幅をメモリに記憶し、エスカレータの判定中に後で参照することができる。
【0022】
本明細書で用いられるとき、ネットワークインターフェイスは、FireWire(例えば、FW400、FW800、FWS800T、FWS1600、FWS3200など)、ユニバーサルシリアルバス(「USB,universal serial bus」)(例えば、USB 1.X、USB 2.0、USB 3.0、USB Type-Cなど)、Ethernet(例えば、10/100、10/100/1000(Gigabit Ethernet)、10-Gig-Eなど)、同軸経由マルチメディアアライアンス技術(「MoCA,multimedia over coax alliance」)、Coaxsys(例えば、TVNET(商標))、無線周波数チューナ(例えば、帯域内又はOOB、ケーブルモデムなど)、Wi-Fi(802.11)、WiMAX(例えば、WiMAX(802.16))、PAN(例えば、PAN/802.15)、セルラー(例えば、3G、LTE/LTE-A/TD-LTE/TD-LTE、GSMなど)、IrDA類などのものを含むが、これらに限定されない、コンポーネント、ネットワーク、又はプロセスとの任意の信号、データ、又はソフトウェアインターフェイスを含むことができる。本明細書で用いられるとき、Wi-Fiは、IEEE-Std.802.11、IEEE-Std.802.11の変形、IEEE-Std.802.11に関連する規格(例えば、802.11a/b/g/n/ac/ad/af/ah/ai/aj/aq/ax/ay)、及び/又は他のワイヤレス規格の1又は2以上を含むことができる。
【0023】
本明細書で用いられるとき、プロセッサ、マイクロプロセッサ、及び/又はデジタルプロセッサは、デジタル信号プロセッサ(「DSP,digital signal processor」)、縮小命令セットコンピュータ(「RISC,reduced instruction set computer」)、汎用(「CISC」)プロセッサ、マイクロプロセッサ、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(「FPGA,field programmable gate array」))、プログラマブルロジックデバイス(「PLD,programmable logic device」)、再構成可能コンピュータファブリック(「RCF,reconfigurable computer fabric」)、アレイプロセッサ、セキュアマイクロプロセッサ、専用プロセッサ(例えば、ニューロモーフィックプロセッサ)、及び特定用途向け集積回路(「ASIC,application-specific integrated circuit」)のような、任意のタイプのデジタル処理デバイスを含むことができるが、これらに限定されない。このようなデジタルプロセッサは、単一一体集積回路ダイに含むことも複数の要素にわたって分散することもできる。
【0024】
本明細書で用いられるとき、コンピュータプログラム及び/又はソフトウェアは、ある機能を実行する任意のシーケンス又は人間又は機械認識可能ステップを含むことができる。このようなコンピュータプログラム及び/又はソフトウェアは、例えば、C/C++、C#、Fortran、COBOL、MATLAB(商標)、PASCAL、GO、RUST、SCALA、Python、アセンブリ言語、マークアップ言語(例えば、HTML、SGML、XML、VoXML)など、並びにコモンオブジェクトリクエストブローカーアーキテクチャ(「CORBA,Common Object Request Broker Architecture」)、JAVA(商標)(J2ME、Java Beansなどを含む)、バイナリランタイム環境(例えば、「BREW」)などのようなオブジェクト指向環境を含む任意のプログラミング言語又は環境で表示することができる。
【0025】
本明細書で用いられるとき、接続、リンク、及び/又は無線リンクは、任意の2又は3以上のエンティティ(物理的又は論理的/仮想にかかわらず)間の、これらのエンティティ間の情報交換を可能にする、因果的リンクを含むことができる。
【0026】
本明細書で用いられるとき、コンピュータ及び/又はコンピューティングデバイスは、デスクトップ、ラップトップ、又はその他にかかわらず、パーソナルコンピュータ(「PC,personal computer」)及びミニコンピュータ、メインフレームコンピュータ、ワークステーション、サーバ、パーソナルデジタルアシスタント(「PDA,personal digital assistant」)、ハンドヘルドコンピュータ、組み込みコンピュータ、プログラム可能ロジックデバイス、パーソナルコミュニケータ、タブレットコンピュータ、モバイルデバイス、ポータブルナビゲーションエイド、J2ME搭載デバイス、携帯電話、スマートフォン、パーソナル統合通信又はエンターテイメントデバイス、及び/又は一組の命令を実行して着信データ信号を処理することができる任意の他のデバイスを含むことができるが、これらに限定されない。
【0027】
本開示のシステム及び方法の様々な実施形態の詳細な説明を次に提供する。本明細書で考察される多くの例は具体的な例示的な実施形態を参照し得るが、本明細書に含まれる記載されたシステム及び方法は、任意の種類のロボットに適用可能であることが理解されよう。本開示の内容があれば、本明細書に記載の技術についての無数の他の実施形態又は使用が当業者によって容易に想定されるであろう。
【0028】
有利には、本開示のシステム及び方法は少なくとも(i)1又は2以上のセンサを用いて周囲環境内のエスカレータを検出し、(ii)ロボットの動作の安全性を向上させ、(iii)ロボットが自律的に動作して障害物を回避する能力を向上させ、(iv)複雑な環境においてロボットを動作させるリスクを最小化する。他の利点は、本開示の内容があれば当業者によって容易に識別可能である。
【0029】
少なくとも1つの非限定的な例示的な実施形態によれば、ロボットシステムが開示される。このロボットシステムは、ロボットの前及び近くにある床の距離測定値を収集してロボットが急な崖及び障害物を回避することができるように構成された1又は2以上の距離測定センサを含むことができる。ロボットシステムは、コンピュータ可読命令を実行して1又は2以上の距離測定センサによって収集されたデータに基づいてエスカレータを判定するように構成された1又は2以上の専用プロセッサをさらに含むことができる。
【0030】
少なくとも1つの非限定的な例示的な実施形態によれば、ロボットシステムは、具体化された複数の命令を含む非一時的コンピュータ可読記憶媒体と、これらのコンピュータ可読命令を実行するように構成された1又は2以上の専用プロセッサと、を含むことができる。これらの命令により、1又は2以上の専用プロセッサは、本開示のシステム及び方法を用いて距離測定センサによって収集されたデータに基づいて環境内のエスカレータを検出及び回避することが可能になり得る。
【0031】
少なくとも1つの非限定的な例示的な実施形態によれば、ロボットがエスカレータを検出する方法が開示される。この方法は、ロボットのコントローラが所定の幅だけ離れて配置された2つの壁を検出することを含むことができ、所定の幅はエスカレータの幅に対応する。この方法は、静止床とエスカレータの最初の移動ステップとの間の小さな落差の検出をさらに含むことができる。これら2つのパラメータが満たされると、ロボットのコントローラはエスカレータを判定することができる。少なくとも1つの非限定的な例示的な実施形態によれば、ロボットは、エスカレータを判定すると、ロボットをエスカレータから遠ざけるように走行させて、ロボットがエスカレータ上を落下又は走行することになった場合のロボットに対する損傷、周囲の物体に対する損傷、又は近くの人の負傷を回避することができる。他の非限定的な例示的な一実施形態によれば、ロボットはエスカレータ上を走行してロボットが環境内で自身を輸送することを可能にし得る。
【0032】
図1Aは、本開示のいくつかの原理に従ったロボット102の機能ブロック図である。
図1Aに示すように、ロボット102は、コントローラ118、メモリ120、ユーザインターフェイスユニット112、センサユニット114、ナビゲーションユニット106、アクチュエータユニット108、及び通信ユニット116、並びに他のコンポーネント及びサブコンポーネント(例えば、これらのいくつかは図示しないことがある)を含むことができる。具体的な実施形態を
図1Aに示すが、本開示の内容があれば当業者に容易に明らかであるようにいくつかの実施形態においてこのアーキテクチャを変更することができるということが理解される。本明細書で用いられるとき、ロボット102は、本開示で説明される任意のロボットの少なくとも一部を代表することができる。
【0033】
コントローラ118は、ロボット102によって実行される様々な動作を制御することができる。コントローラ118は、1又は2以上のプロセッサ(例えば、マイクロプロセッサ)及び他の周辺機器を含み、及び/又はこれらから構成され得る。前述のように、本明細書で用いられるとき、プロセッサ、マイクロプロセッサ、及び/又はデジタルプロセッサは、デジタル信号プロセッサ(「DSP」)、縮小命令セットコンピュータ(「RISC」)、汎用(「CISC」)プロセッサ、マイクロプロセッサ、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(「FPGA」))、プログラマブルロジックデバイス(「PLD」)、再構成可能コンピュータファブリック(「RCF」)、アレイプロセッサ、セキュアマイクロプロセッサ、専用プロセッサ(例えば、ニューロモーフィックプロセッサ)、及び特定用途向け集積回路(「ASIC」)のような任意のタイプのデジタル処理デバイスを含むことができるが、これらに限定されない。このようなデジタルプロセッサは、単一一体集積回路ダイに含むことも複数の要素にわたって分散することもできる。
【0034】
コントローラ118は、メモリ120に動作可能及び/又は通信可能に接続することができる。メモリ120は、読み取り専用メモリ(「ROM,read-only memory」)、ランダムアクセスメモリ(「RAM,random access memory」)、不揮発性ランダムアクセスメモリ(「NVRAM,non-volatile random access memory」)、プログラム可能読み取り専用メモリ(「PROM,programmable read-only memory」)、電気的消去可能プログラム可能読み取り専用メモリ(「EEPROM,electrically erasable programmable read-only memory」)、ダイナミックランダムアクセスメモリ(「DRAM,dynamic random-access memory」)、モバイルDRAM、同期DRAM(「SDRAM,synchronous DRAM」)、ダブルデータレートSDRAM(「DDR/2 SDRAM,double data rate SDRAM」)、拡張データ出力(「EDO,extended data output」)RAM、高速ページモードRAM(「FPM,fast page mode」)、低遅延DRAM(「RLDRAM,reduced latency DRAM」)、静的RAM(「SRAM,static RAM」)、フラッシュメモリ(例えば、NAND/NOR)、メモリスタメモリ、疑似静的RAM(「PSRAM,pseudostatic RAM」)などを含むが、これらに限定されない、デジタルデータを記憶するように構成された任意のタイプの集積回路又は他の記憶装置を含むことができる。メモリ120は、コントローラ118に命令及びデータを提供することができる。例えば、メモリ120は、複数の命令が記憶された非一時的、コンピュータ可読記憶装置及び/又は媒体とすることができ、これらの命令は、ロボット102を動作させるように処理装置(例えば、コントローラ118)によって実行可能である。いくつかの場合において、これらの命令は、処理装置によって実行されるとき、本開示に記載の様々な方法、特徴、及び/又は機能性を処理装置に実行させるように構成することができる。したがって、コントローラ118は、メモリ120内に記憶されたプログラム命令に基づいて論理及び/又は算術演算を実行することができる。いくつかの場合において、メモリ120の命令及び/又はデータは、いくつかはロボット102内にローカルに配置され、いくつかはロボット102からリモートに(例えば、クラウド、サーバ、ネットワークなどに)配置される、ハードウェアの組み合わせに記憶することができる。
【0035】
メモリ120の例示的なデータテーブルは、コントローラ118がメモリ120からのコンピュータ可読命令を実行するときに追加の行及び/又は列を追加することができる自己参照データテーブルとすることができるということが当業者によって理解される。
【0036】
ロボット102の外部にプロセッサを置いて通信ユニット116を利用してロボット102のコントローラ118に通信可能に接続することができ、外部プロセッサはロボット102からデータを受信し、データを処理し、コンピュータ可読命令をコントローラ118に送り返すことができるということが当業者には容易に明らかであるはずである。少なくとも1つの非限定的な例示的な実施形態において、プロセッサはリモートサーバ(図示せず)上に置くことができる。
【0037】
いくつかの例示的な実施形態において、
図1Aに示すメモリ120は、センサデータのライブラリを記憶することができる。いくつかの場合において、センサデータは、少なくとも部分的に物体及び/又は人に関連付けることができる。例示的な実施形態において、このライブラリは、異なる組成(例えば、材料、反射特性、分子構成など)、異なる照明条件、角度、サイズ、距離、明確さ(例えば、ぼやけている、遮られている/閉塞している、部分的にオフフレームなど)、色、周囲、及び/又は他の条件を備えた物体及び/又は人に関連するセンサデータのような、異なる条件における物体及び/又は人に関連するセンサデータを含むことができる。ライブラリにおけるセンサデータはセンサ(例えば、センサユニット114のセンサ又は任意の他のセンサ)によって取得され、及び/又は、例えば異なる照明条件、角度、サイズ、距離、明確さ(例えば、ぼやけている、遮られている/閉塞している、部分的にオフフレームなど)、色、周囲、及び/又は他の条件からライブラリセンサデータ(例えば、これらはこれらのライブラリデータを完全にデジタルに及び/又は実際のセンサデータから開始して生成/シミュレートすることができる)を生成/シミュレート(例えば、仮想世界において)するように構成されているコンピュータプログラムで自動的に生成することができる。ライブラリにおける画像の数は、利用可能なデータの量、ロボット102が動作する周囲環境の変動性、物体及び/又は人の複雑さ、物体の見かけの変動性、ロボットの物理的特性、センサの特色、及び/又は利用可能な記憶スペース(例えば、ライブラリ、メモリ120、及び/又はローカル又はリモートストレージにおける)の量の1又は2以上に少なくとも部分的に依存し得る。例示的な実施形態において、ライブラリの少なくとも一部は、ネットワーク(例えば、クラウド、サーバ、分散型ネットワークなど)に記憶することができ、及び/又は完全にメモリ120内に記憶されなくてもよい。さらに他の例示的な一実施形態として、様々なロボット(例えば、共通の製造者、ユーザ、ネットワークなどによるロボットのような、共通に関連付けられている)を、個々のロボットによって捕捉されたデータが他のロボットと集合的に共有されるようにネットワーク化することができる。このような方法で、これらのロボットは、エラーを容易に検出及び/又は識別し、及び/又は事象を支援する能力を促進するためにセンサデータを学習及び/又は共有するように構成することができる。
【0038】
依然として
図1Aを参照すると、動作ユニット104は、コントローラ118、又は任意の他のコントローラに接続されて、本開示に記載の様々な動作を実行することができる。動作ユニット104におけるモジュールの1つ、2つ以上がいくつかの実施形態に含まれていてもいなくてもよい。本開示全体を通して、様々なコントローラ及び/又はプロセッサに対する参照があり得る。いくつかの実施形態において、単一のコントローラ(例えば、コントローラ118)が記載の様々なコントローラ及び/又はプロセッサとして機能することができる。他の実施形態において、特に1又は2以上の動作ユニット104に用いられるコントローラ及び/又はプロセッサのような、異なるコントローラ及び/又はプロセッサを用いることができる。コントローラ118は、電力信号、ステータス信号、データ信号、電気信号、及び/又は動作ユニット104への離散及びアナログ信号を含む、任意の他の所望の信号のような信号を送信及び/又は受信することができる。コントローラ118は、動作ユニット104を調整及び/又は管理し、及び/又はタイミングを設定し(例えば、同期又は非同期)、制御電力バジェットをオフ/オンし、ネットワーク命令及び/又は更新を受信/送信し、ファームウェアを更新し、問い合わせ信号を送信し、ステータスを受信及び/又は送信し、及び/又はロボット102の機能を実行するための任意の動作を実行し得る。
【0039】
図1Aに戻ると、動作ユニット104は、ロボット102のための機能を実行する様々なユニットを含むことができる。例えば、動作ユニット104は少なくともナビゲーションユニット106、アクチュエータユニット108、ユーザインターフェイスユニット112、センサユニット114、及び通信ユニット116を含む。動作ユニット104はまた、ロボット102の様々な機能性を提供する他のユニットを含むことができる。例示的な実施形態において、動作ユニット104は、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの両方でインスタンス化することができる。例えば、いくつかの場合において、動作ユニット104のユニットは、コントローラによって実行されるコンピュータ実装命令を含むことができる。例示的な実施形態において、動作ユニット104のユニットは、ハードコードされたロジックを含むことができる。例示的な実施形態において、動作ユニット104のユニットは、コントローラによって実行されるコンピュータ実装命令及びハードコードされたロジックの両方を含むことができる。動作ユニット104が部分的にソフトウェアで実装される場合、動作ユニット104は、1又は2以上の機能性を提供するように構成されたコードのユニット/モジュールを含むことができる。
【0040】
例示的な実施形態において、ナビゲーションユニット106は、環境のマップを計算的に構築及び更新し、マップにおいてロボット102をローカライズし(例えば、位置を発見し)、ロボット102を目的地へ/からナビゲートすることができるシステム及び方法を含むことができる。マッピングは、環境の少なくとも一部を表すコンピュータ可読マップ内へセンサユニット114によって部分的に取得されたデータを課すことによって実行することができる。例示的な実施形態において、環境のマップは、ユーザインターフェイスユニット112を通してロボット102にアップロードするか、無線で又は有線接続を通してアップロードするか、又はユーザによってロボット102に教えることができる。
【0041】
例示的な実施形態において、ナビゲーションユニット106は、ロボット102が走行するための方向指示を提供するように構成されたコンポーネント及び/又はソフトウェアを含むことができる。ナビゲーションユニット106は、マッピング及びローカリゼーションユニット、センサユニット114からのデータ、及び/又は他の動作ユニット104によって生じたマップ、ルート、及びローカリゼーション情報を処理することができる。
【0042】
依然として
図1Aを参照すると、アクチュエータユニット108は、電気モータ、ガスモータ、駆動磁石システム、ソレノイド/ラチェットシステム、圧電システム(例えば、インチワームモータ)、磁歪要素、ジェスチャー、及び/又は当該技術において知られているアクチュエータを駆動する任意の方法のようなアクチュエータを含むことができる。例示として、このようなアクチュエータは、ロボット102がルートをナビゲートし、障害物の周りをナビゲートし、カメラ及びセンサを回転させるホイールを作動させることができる。
【0043】
アクチュエータユニット108は、いくつかの場合においてタスクを実行するように作動するために用いられる任意のシステムを含むことができる。例えば、アクチュエータユニット108は、駆動磁石システム、モータ/エンジン(例えば、電気モータ、燃焼エンジン、蒸気エンジン、及び/又は当該技術において知られている任意のタイプのモータ/エンジン)、ソレノイド/ラチェットシステム、圧電システム(例えば、インチワームモータ)、磁歪要素、ジェスチャー、及び/又は当該技術において知られている任意のアクチュエータを含むことができる。例示的な実施形態によれば、アクチュエータユニット108は、電動推進力のような、ロボット102の移動を可能にするシステムを含むことができる。例えば、電動推進力はロボット102を前方又は後方に移動させ、及び/又はロボット102を回転させる(例えば、左、右、及び/又は任意の他の方向)際に少なくとも部分的に用いることができる。例示として、アクチュエータユニット108は、ロボット102が移動しているか停止しているかを制御し、及び/又はロボット102が1つの場所から他の場所へ走行することを可能にすることができる。
【0044】
例示的な実施形態によれば、センサユニット114は、ロボット102内及び/又はその周囲の特性を検出することができるシステム及び/又は方法を含むことができる。センサユニット114は複数のセンサ及び/又はセンサの組み合わせを含むことができる。センサユニット114は、ロボット102の内部又は外部にあり、及び/又は部分的に内部及び/又は部分的に外部にあるコンポーネントを有するセンサを含むことができる。いくつかの場合において、センサユニット114は、ソナー、光検出及び測距(「LiDAR」)センサ、レーダ、レーザ、カメラ(ビデオカメラ(例えば、赤青緑(「RBG,red-blue-green」)カメラ、赤外線カメラ、三次元(「3D,three-dimensional」)カメラ、サーマルカメラなどを含む)、飛行時間(「TOF,time of flight」)カメラ、構造化光カメラ、アンテナ、モーションディテクタ、マイク、及び/又は当該技術において知られている任意の他のセンサのような、1又は2以上の外受容性センサを含むことができる。いくつかの例示的な実施形態によれば、センサユニット114は、生の測定値(例えば、電流、電圧、抵抗、ゲートロジックなど)及び/又は変換された測定値(例えば、障害物などにおける距離、角度、検出点)を収集することができる。いくつかの場合において、測定値は集約及び/又は要約することができる。センサユニット114は、距離又は高さ測定値に少なくとも部分的に基づいてデータを生じさせることができる。このようなデータは、マトリックス、アレイ、キュー、リスト、アレイ、スタック、バッグなどのようなデータ構造に記憶することができる。
【0045】
例示的な実施形態によれば、センサユニット114は、ロボット102の内部特性を測定することができるセンサを含むことができる。例えば、センサユニット114は、ロボット102の温度、電力レベル、ステータス、及び/又は任意の特性を測定することができる。いくつかの場合において、センサユニット114は、ロボット102のオドメトリを判定するように構成することができる。例えば、センサユニット114は固有受容性センサを含むことができ、これは加速度計、慣性測定ユニット(「IMU,inertial measurement units」)、オドメータ、ジャイロスコープ、スピードメータ、カメラ(例えば視覚オドメトリを用いる)、クロック/タイマーなどのようなセンサを含むことができる。オドメトリは、ロボット102の自律ナビゲーション及び/又は自律動作を促進することができる。このオドメトリは、初期位置に対するロボット102の位置(例えば、位置は、ロボットの場所、変位及び/又は向きを含むことができ、本明細書で用いられるpose(姿勢)という用語と交換可能であるときがある)を含むことができる。このようなデータは、マトリックス、アレイ、キュー、リスト、アレイ、スタック、バッグなどのような、データ構造に記憶することができる。例示的な実施形態によれば、センサデータのデータ構造は画像と呼ぶことができる。
【0046】
例示的な実施形態によれば、ユーザインターフェイスユニット112は、ユーザがロボット102と対話することを可能にするように構成することができる。例えば、ユーザインターフェイスユニット112は、タッチパネル、ボタン、キーパッド/キーボード、ポート(例えば、ユニバーサルシリアルバス(「USB」)、デジタルビジュアルインターフェイス(「DVI,digital visual interface」)、ディスプレイポート、E-Sata、Firewire、PS/2、シリアル、VGA、SCSI、オーディオポート、高精細度マルチメディアインターフェイス(「HDMI,high-definition multimedia interface」)、パーソナルコンピュータメモリカード国際協会(「PCMCIA,personal computer memory card international association」)ポート、メモリカードポート(例えば、セキュアデジタル(「SD」)及びminiSD)、及び/又はコンピュータ可読媒体用ポート)、マウス、ローラーボール、コンソール、バイブレータ、オーディオトランスデューサ、及び/又は無線で又は有線で接続されているかにかかわらず、ユーザがデータ及び/又はコマンドを入力及び/又は受信するための任意のインターフェイスを含むことができる。ユーザは、音声コマンド又はジェスチャーを通して対話することができる。ユーザインターフェイスユニット218は、液晶ディスプレイ(「LCD,liquid crystal display」)、発光ダイオード(「LED,light-emitting diode」)ディスプレイ、LED LCDディスプレイ、面内スイッチング(「IPS,in-plane-switching」)ディスプレイ、陰極線管、プラズマディスプレイ、高精細(「HD,high definition」)パネル、4Kディスプレイ、網膜ディスプレイ、有機LEDディスプレイ、タッチスクリーン、表面、キャンバス、及び/又は任意のディスプレイ、テレビ、モニタ、パネル、及び/又は視覚表現についての技術において既知のデバイスのようなディスプレイを含むことができるが、これらに限定されない。例示的な実施形態によれば、ユーザインターフェイスユニット112はロボット102の本体上に配置することができる。例示的な実施形態によれば、ユーザインターフェイスユニット112はロボット102の本体から離れて配置することができるが、ロボット102に通信可能に(例えば、送信機、受信機、及び/又はトランシーバを含む通信ユニットを介して)直接又は間接的に(例えば、ネットワーク、サーバ、及び/又はクラウドを通して)接続することができる。例示的な実施形態によれば、ユーザインターフェイスユニット112は、例えば、乗員又はロボットの周りの人に情報を提供するため、ロボットの近位にある表面(例えば、床)上の画像の1又は2以上の投影を含むことができる。この情報とは、前方、左、右、後ろ、角度、及び/又は任意の他の方向へ移動する指示のような、ロボットの将来の移動の方向である可能性がある。いくつかの場合において、このような情報は矢印、色、記号などを利用することができる。
【0047】
例示的な実施形態によれば、通信ユニット116は、1又は2以上の受信機、送信機、及び/又はトランシーバを含むことができる。通信ユニット116は、BLUETOOTH(登録商標)、ZIGBEE(登録商標)、Wi-Fi、誘導無線データ送信、無線周波数、無線送信、無線周波数識別(「RFID,radio-frequency identification」)、近距離通信(「NFC,near-field communication」)、赤外線、ネットワークインターフェイス、3G(3GPP/3GPP2)のようなセルラー技術、高速ダウンリンクパケットアクセス(「HSDPA,high-speed downlink packet access」)、高速アップリンクパケットアクセス(「HSUPA,high-speed uplink packet access」)、時分割多重アクセス(「TDMA,time division multiple access」)、符号分割多重アクセス(「CDMA,code division multiple access」)(例えば、IS-95A、広帯域符号分割多重アクセス(「WCDMA,wideband code division multiple access」)など)、周波数ホッピング拡散スペクトル(「FHSS,frequency hopping spread spectrum」)、直接シーケンス拡散スペクトル(「DSSS,direct sequence spread spectrum」)、モバイル通信用グローバルシステム(「GSM,global system for mobile communication」)、パーソナルエリアネットワーク(「PAN,Personal Area Network」)(例えば、PAN/802.15)、マイクロ波アクセス用世界的相互運用性(「WiMAX,worldwide interoperability for microwave access」)、802.20、長期進化(「LTE,long term evolution」)(例えば、LTE/LTE-A)、時分割LTE(「TD-LTE,time division LTE」)、モバイル通信用グローバルシステム(「GSM,global system for mobile communication」)、狭帯域/周波数分割多重アクセス(「FDMA,frequency-division multiple access」)、直交周波数分割多重方式(「OFDM,orthogonal frequency-division multiplexing」)、アナログセルラー、セルラーデジタルパケットデータ(「CDPD,cellular digital packet data」)、衛星システム、ミリ波又はマイクロ波システム、音響、赤外線(例えば、赤外線データ協会(「IrDA,infrared data association」))、及び/又は無線データ伝送の任意の他の形式のような伝送プロトコルを送信/受信するように構成することができる。
【0048】
通信ユニット116はまた、信号線及び接地を有する任意のケーブルのような有線接続を介して伝送プロトコルを利用して信号を送信/受信するように構成することができる。例えば、このようなケーブルは、Ethernetケーブル、同軸ケーブル、ユニバーサルシリアルバス(「USB」)、FireWire、及び/又は当該技術において知られている任意の接続を含むことができる。このようなプロトコルが通信ユニット116によって用いられ、コンピュータ、スマートフォン、タブレット、データキャプチャシステム、移動通信ネットワーク、クラウド、サーバなどのような外部システムに伝達することができる。通信ユニット116は、数字、文字、英数字、及び/又は記号を含む信号を送信及び受信するように構成することができる。いくつかの場合において、128ビット又は256ビットキーのようなアルゴリズム及び/又は高度暗号化標準(「AES,Advanced Encryption Standard」)、RSA、データ暗号化標準(「DES,Data Encryption Standard」)、トリプルDESなどのような標準に準拠する他の暗号化アルゴリズムを用いて、信号を暗号化することができる。通信ユニット116は、ステータス、コマンド、及び他のデータ/情報を送信及び受信するように構成することができる。例えば、通信ユニット116はユーザオペレータと通信して、ユーザがロボット102を制御することを可能にすることができる。通信ユニット116は、ロボット102がデータ、ステータス、コマンド、及びサーバへの他の通信を送信することを可能にするため、サーバ/ネットワーク(例えば、ネットワーク)と通信することができる。サーバはまた、ロボット102を遠隔で監視及び/又は制御するために用いることができるコンピュータ及び/又はデバイスに通信可能に接続することができる。通信ユニット116はまた、更新(例えば、ファームウェア又はデータ更新)、データ、ステータス、コマンド、及び他の通信をロボット102のためのサーバから受信することができる。
【0049】
例示的な実施形態において、オペレーティングシステム110は、メモリ120、コントローラ118、電源122、動作ユニット104におけるモジュール、及び/又はロボット102の任意のソフトウェア、ハードウェア、及び/又は機能を管理するように構成することができる。例えば、限定することなく、オペレーティングシステム110は、ロボット102のためのハードウェアリソースを管理するデバイスドライバを含むことができる。
【0050】
例示的な実施形態において、電源122は、リチウム、リチウムイオン、ニッケルカドミウム、ニッケル金属水素化物、ニッケル水素、炭素亜鉛、酸化銀、亜鉛炭素、空気亜鉛、酸化水銀、アルカリ、又は当該技術において知られている任意の他のタイプのバッテリを含むが、これらに限定されない、1又は2以上のバッテリを含むことができる。いくつかのバッテリは、例えば無線で(例えば、共振回路及び/又は共振タンク回路による)及び/又は外部電源へ接続して、再充電可能であり得る。電源122はまた、太陽、風、水、原子力、水素、ガソリン、天然ガス、化石燃料、機械的エネルギー、蒸気、及び/又は任意の電力の源を電気に変換する壁ソケット及び電子デバイスを含む、任意のエネルギーの供給源とすることができる。
【0051】
図1Aに関して説明したユニットの1又は2以上(メモリ120、コントローラ118、センサユニット114、ユーザインターフェイスユニット112、アクチュエータユニット108、通信ユニット116、マッピング及びローカリゼーションユニット126、及び/又は他のユニットを含む)は、例えば統合システムにおいて、ロボット102に統合することができる。しかしながら、いくつかの例示的な実施形態によれば、これらのユニットの1又は2以上は取り付け可能なモジュールの一部とすることができる。このモジュールは、既存の装置に取り付けて、ロボットとして振る舞うように自動化することができる。したがって、ロボット102に関して本開示に記載される特徴は、既存の装置に取り付け、及び/又は統合システムにおいてロボット102に統合することができるモジュールにおいてインスタンス化することができる。また、いくつかの場合において、当業者であれば、本開示の内容から、本開示に記載の特徴の少なくとも一部は、例えばクラウド、ネットワーク、及び/又はサーバにおいて、遠隔で実行することができるということを理解するであろう。
【0052】
今後用いられるように、ロボット102、コントローラ118、又は以下の図に示すタスクを実行する任意の他のコントローラ、プロセッサ、又はロボットは、当業者によって理解されるように、メモリ120のような、非一時的コンピュータ可読記憶装置に記憶されたコンピュータ可読命令を実行するコントローラを含む。
【0053】
次に
図1Bを参照すると、
図1Aに示すシステムにおいて用いられる専用コントローラ118のアーキテクチャが、例示的な一実施形態に従って示されている。
図1Bに示すように、専用コンピュータは、データバス128、受信機126、送信機134、少なくとも1つのプロセッサ130、及びメモリ132を含む。受信機126、プロセッサ130及び送信機134はすべて、データバス128を介して互いに通信する。プロセッサ130は、専用アルゴリズムを実行するように構成された専用プロセッサである。プロセッサ130は、プロセッサ130が専用アルゴリズムを実行するよう、コンピュータコード又は命令を記憶するメモリ132にアクセスするように構成されている。
図1Bに示すように、メモリ132は、先に
図1Aに示したメモリ124の特徴のいくつか、異なる、又はすべてを含んでも含まなくてもよい。プロセッサ130によって実行されるアルゴリズムは以下でさらに詳細に考察する。
図1Bに示すような受信機126は、入力信号124を受信するように構成されている。入力信号124は、センサユニット114からのセンサデータ、ユーザ入力、モータフィードバック、外部通信信号(例えば、リモートサーバからの)、及び/又は専用コントローラ118によるさらなる処理が必要とされる動作ユニット104からの任意の他の信号を含むが、これらに限定されない、
図1Aに示す複数の動作ユニット104からの信号を含むことができる。受信機126は、データバス128を介してこれらの受信信号をプロセッサ130に伝達する。当業者であれば理解するように、データバス128は、専用コントローラ118における異なるコンポーネント、すなわち受信機、プロセッサ、及び送信機間の通信手段である。プロセッサ130は、メモリ132からの専用コンピュータ可読命令にアクセスすることによって、以下で考察するように、アルゴリズムを実行する。これらの信号の受信、処理及び送信において専用アルゴリズムを実行するプロセッサ130に関するさらなる詳細な説明は、
図1Aに関して上で考察されている。メモリ132は、コンピュータコード又は命令を記憶するための記憶媒体である。この記憶媒体は、とりわけ、光メモリ(例えば、CD、DVD、HD-DVD、Blu-Ray Discなど)、半導体メモリ(例えば、RAM、EPROM、EEPROMなど)、及び/又は磁気メモリ(例えば、ハードディスクドライブ、フロッピーディスクドライブ、テープドライブ、MRAMなど)を含むことができる。記憶媒体は、揮発性、不揮発性、動的、静的、読み取り/書き込み、読み取り専用、ランダムアクセス、シーケンシャルアクセス、ロケーションアドレス可能、ファイルアドレス可能、及び/又は内容アドレス可能デバイスを含むことができる。プロセッサ130は、図示のように、データバス128を介して出力信号を送信機134に伝達することができる。送信機134は、信号出力136によって示される複数の動作ユニット104への出力信号をさらに伝達するように構成することができる。
【0054】
当業者であれば、
図1Bに示すアーキテクチャは、遠隔地からロボット装置の制御を実現するように構成された外部サーバアーキテクチャを示し得ることを理解するであろう。すなわち、サーバはまた、データバス、受信機、送信機、プロセッサ、及び専用コンピュータ可読命令を記憶するメモリを含むことができる。
【0055】
図2Aは、例示的な一実施形態によるエスカレータ202の複数の距離測定値206を収集する1又は2以上のセンサ204の正面図を示す。上で考察したように、エスカレータの使用は、一例の目的のみであり、本開示の目的を限定するものではない。当業者は、基礎となる概念が、ロボット102によって移動される平面内の落差を検出すること、及びこのような落差を検出及び回避する努力に向けられていることを理解することができる。センサ204は、例えば、センサ204と床208のような目標との間の距離を測定するように構成されたLiDARセンサのような距離測定センサを含むことができる。センサ204は、ロボット102(図示せず)のシャーシ上に配置することができる。床208は、エスカレータ202の最初の移動ステップを含むことができる。図示のように、1又は2以上の距離測定センサ204は、既知の角距離によって分離された20の距離測定値206(すなわち、206-0~206-20)を収集することができる。他の非限定的な例示的な実施形態によれば、1又は2以上の距離測定センサ204は、追加の又はより少ない測定値206-nを収集することができ、インデックス「n」は任意の正の整数とすることができる。少なくとも1つの非限定的な例示的な実施形態によれば、センサ204の角度測定範囲(例えば、図示のような測定値206-0と206-20との間の角度範囲)は、
図2Aに示すようなものよりも大きな又は小さな角度測定範囲を含むことができる。例えば、短いロボット又は床208に近いセンサ204を備えたロボットは、センサ204がエスカレータ202の壁又は柵を測定するのに床208から十分に高くない可能性があるため、2つの手すり210間で測定を行うことができる。複数の距離測定値206は、
図1Aに示すような、コントローラ118による複数の距離測定値206に基づくエスカレータの後の判定のため、コントローラ118によってロボット102のメモリ120に記憶することができる。
【0056】
図2Bは、例示的な一実施形態による、2つの場所でエスカレータ202の距離測定値212及び214を収集する、
図2Aに先に示したような、1又は2以上のセンサ204の側面図を示す。当業者は、1又は2以上のセンサ204が、
図2Bに示すように第1のセンサ及び異なるセンサに対応し得ることを理解することができる。あるいは、1又は2以上のセンサは単一のセンサに対応する。センサ204は、図示のようにエスカレータ202の近くの位置で、又はセンサ204を含むロボット102(図示せず)がある平担な床上の任意の場所で測定212を行うことができる。換言すれば、センサ204から静止部分216(すなわち、第1の領域)までの取得される測定値212は、
図3Aに関して以下に示すように、ゼロ(0)測定単位(例えば、センチメートル、インチなど)の基準高さを決定するための基準距離測定値を提供する。センサ204を搭載したロボット102(図示せず)がエスカレータ202に向かって移動するにつれて(すなわち、ロボット102が図において左方向へ移動するにつれて)、センサ204は他の測定値214を追加で受け取ることができる。距離測定値214は、センサ204と第1の領域すなわち静止部分216とは異なるエスカレータ202の最初の移動ステップすなわち第2の基準点又は第2の領域を含む床208との間の距離を測定する、上で
図2Aに示すような、測定値206の側面図に対応し得る。ロボット102(図示せず)のコントローラ118が測定値214を受信し、これが基準測定値212とは異なると、コントローラ118は、
図5に関してさらに説明するように、落差パラメータを決定するために用いられるべき落差218の大きさを判定することができる。落差パラメータは、センサ204によるエスカレータ202の検出を示す、エスカレータ検出パラメータを決定するために用いることができる。
【0057】
少なくとも1つの非限定的な例示的な実施形態によれば、距離測定センサ204は、測定値212及び214を同時に及び/又は同じ位置で収集するように構成することができる。例えば、距離測定カメラ又はLIDARセンサのアレイを実装して、二次元(2D,two-dimensional)又は三次元(3D)空間において距離測定値を収集することができる。落差218の大きさは、
図5で考察するように測定値206、212、及び214からエスカレータを判定するために用いられる落差パラメータの閾値を満足させる又は満たすために用いることができる。換言すれば、落差が落差パラメータを超えれば、これは、この経路に沿って前進した結果、ロボット102は落下又は転倒する可能性があるため、ロボット102に害を及ぼす結果になるであろう落下を経験するであろうということをコントローラ118に示す。
【0058】
図3Aは、例示的な一実施形態による、上で
図2A~Bに示す1又は2以上の距離測定センサ204からの高さ測定値「H」を示す。水平軸は、上で
図2Aに示した個々の距離測定値206に対応するビームIDインデックス「i」を含むことができ、高さ測定値302は、同じインデックスiを備えた距離測定値206の大きさに対応する(例えば、高さ測定値302-5は距離測定値206-5に対応するなど)。鉛直軸は、同じインデックスを備えた測定値206に対応するビームIDインデックスのそれぞれについての高さ測定値に対応し、ゼロの高さは、センサ204とロボット102が走行しているエスカレータの静止部分216との間の距離からなる基準距離212に対応する。302-5と302-15との間の、両端を含まない、点は、床208又は床上の異なる第2の領域の高さ測定値に対応し得る。点302-5~302-15の、両端を含まない、平均高さ値は-dであると判定することができ、大きさ|d|は、エスカレータ202の静止部分216と最初の移動ステップ208との間の、先に
図2Bに示した、落差218の大きさに対応する。大きさ|d|は、ロボット102の通信ユニット116を介して外部サーバから、又は1又は2以上のセンサ204によってコントローラ118によって受信されたデータに基づく学習プロセス(例えば、測定された平均に基づいて決定される)を通して、ユーザインターフェイスユニット112を介してロボット102に伝達することができる。図示のデータを生じさせる1又は2以上の距離測定センサ204を含むロボット102は、最初の移動ステップ208の上方の高さdでエスカレータ202の静止部分216上で走行又は静止しているということを想起されたい。値dを用いて、以下の
図5に示すようにエスカレータ検出パラメータを決定するためにさらに利用されるべき落差パラメータを決定することができる。
【0059】
少なくとも1つの非限定的な例示的な実施形態によれば、センサは完全に較正されていなくてもよく、ロボット102が配置され又は移動している床を非ゼロ高さであると知覚することができる。したがって、「d」の値は、この較正エラーを説明するためにリアルタイムで変更又は更新することができる。例えば、ロボットのセンサは、ロボットがある床を、完全に較正されたセンサによって記録されるゼロ(0)の基準高さから1センチメートル(1cm)の高さにあると検出することができ、所定の「-d」の値は、この較正エラーを説明するために1センチメートル(1cm)増加させることができる。換言すれば、「d」の大きさは、
図2Bに示す落差218の大きさに対応し、任意の基準高さから取得することができ、
図3Aに示すようなゼロ(0)の基準高さは、例示的な一実施形態による完全に較正されたセンサの例示である。この落差218は、静止床218とエスカレータの最初の移動ステップ208との間に常に存在し、通常10~30ミリメートルの小さな値を含む。
【0060】
当業者であれば、図示のような水平軸が、例えば、約ゼロ度(0°)を中心とする角度測定のような、異なる測定を含むことができるということを理解するであろう。加えて、少なくとも1つの非限定的な例示的な実施形態によれば、高さ測定値は距離測定値と置き換えることができ、
図3Bに示すものと実質的に同様の反転したグラフを見ることが期待されるであろう。
【0061】
図3Bは、例示的な一実施形態による、先に
図3Aに示したビームID「i」のグラフに関する高さ測定値「H」の導関数を示す。各導関数測定値304は、同じインデックス「n」を含む、
図3Aに示すような、高さ測定値302に対応し得る(例えば、高さ測定値302-3は導関数測定値304-3に対応する)。先に
図2Aに示した、エスカレータ202の左手すり210は、値「-T」という負の壁閾値パラメータを満たす導関数測定値304-5に対応するビームID(例えば、
図3Aに示すビーム5又は表記302-5)によって測定されるとコントローラ118によって判定することができる。同様に、エスカレータ202の右手すり210は、正の壁閾値パラメータ値「+T」を満たす導関数測定値304-15に対応するビームID(例えば、
図3Bに示すビーム15又は表記302-15)によって測定されるとコントローラ118によって判定することができる。壁閾値パラメータ「T」の大きさは、通信ユニット116を介して「T」の大きさを伝達する外部サーバから、又は学習プロセス(例えば、エスカレータの複数のLiDARスキャンにおける類似点を識別することに基づく)を通して、ユーザインターフェイスユニット112を介してロボット102に伝達することができる。
【0062】
導関数測定値304-5の、これを含む、左側の点を次いでエスカレータ202の左壁に沿った測定値に対応すると判定することができ、導関数測定値304-15の、これを含む、右側の点を次いでエスカレータ202の右壁に沿った測定値に対応すると判定することができる。したがって、導関数測定値304-5と304-15との間の、両端を含まない、残りの点は、エスカレータ202の2つの手すり210間の床208に対応し得る。少なくとも1つの非限定的な例示的な実施形態によれば、コントローラ118は、導関数測定値304が閾値「T」より小さな大きさである(例えば、導関数測定値304-5~304-15、両端を含まない)ことに基づいて床208に対応する点を判定することができる。コントローラ118は次いで、以下の
図5に示すように壁間隔パラメータを決定する際に用いられるべき床208に対応するビームIDの数に基づいて床の幅を判定することができる。
【0063】
少なくとも1つの非限定的な例示的な実施形態によれば、
図3Aに示すグラフは、ガラス又はLiDARセンサにとって透明な他の材料で構成され得る、エスカレータの側壁、又は手すり210として点302-1と302-5との間及び/又は点302-15と302-20との間の測定値を含まなくてもよい。多くの場合、ハンドレールはそれでも検出することができる(すなわち、点302-0と302-20が存在する)。したがって、
図3Bに示すグラフは、不連続性のためにこれらのそれぞれの点について導関数測定値304を含まないことがある。しかしながら、側面手すり210は金属又は不透明な材料であり、LiDARセンサによって依然として検出することができるということが理解され得る。したがって、ガラス側壁を備えたエスカレータを含む環境において、側面手すり210の検出に対応する導関数閾値を満たすために、閾値の大きさ「T」を超える1又は2以上の導関数測定値304のみが必要とされ得る。ロボット102が走行又は静止する床の下方の距離「-d」での床208の検出が、これらの実施形態においてエスカレータを検出するために依然として必要とされる。当業者は、側壁がガラス製であれば、点302と同じにはならないであろうことを理解するであろう。しかしながら、手すり210は、通常本質的に金属又は不透明であるため捉えられ、ひいては導関数閾値を満たすことになる。
【0064】
少なくとも1つの非限定的な例示的な実施形態によれば、鉛直軸は、ビームID i又はビーム206がセンサ204から放出される角度に関する距離測定値の導関数に対応することができ、右壁検出に対応する閾値が負の壁閾値「-T」であり得、左壁についてその逆のことがある。
【0065】
図4は、例示的な一実施形態による、
図2Aに示すような、エスカレータ202の距離測定センサ204によって取得された複数の距離測定値206に対応する点を記憶するための構造を示すデータテーブルを示す。
図3A~Bに示す方法を用いて、エスカレータの左壁及び右壁に対応する一組の距離測定値206を判定すると、ロボット102のコントローラ118は、その距離測定値206に対応するビームIDを適切なバッファに記憶することができる。各バッファは、1又は2以上のビームID番号(例えば、
図3A~Bに示すグラフにおけるインデックス「i」)及び1又は2以上の対応する高さ値H
nを含むことができ、インデックス「n」は、同じインデックスのビームID番号によって測定された距離測定値206に対応する、ゼロを含む、任意の正の整数とすることができる。先に
図3Bに示したように、左壁閾値「-T」を満たす導関数測定値304-5に対応する、ID番号5を備えたビームをしたがって、エスカレータ202の左壁に対応する最大ビームID番号として判定することができる。同様に、右壁閾値「+T」を満たす導関数測定値304-15に対応する、ID番号15を備えたビームをしたがって、エスカレータ202の右壁に対応する最小ビームID番号として判定することができる。
【0066】
加えて、ビームID番号6~14の間の、両端を含む、残りのビームIDは、
図2Aに示すような、床208で取得された測定値206に対応することができ、したがって床点バッファに記憶することができる。コントローラ118は、壁間のビームの数及び、センサの角度、各ビームの角度、及び距離測定センサ204によって受信又は判定された距離測定値206のようなセンサの既知のパラメータに基づいて、左及び右壁間の床の幅を計算することができる。左及び右壁間の床の幅は、以下で
図5に示すようにエスカレータ検出パラメータを決定するために用いられる壁パラメータを決定するために用いることができる。
【0067】
ロボット102のコントローラ118は次いで、床点バッファ内に記憶された高さ値(例えば、H
6~H
14)の平均値を決定することができる。平均高さ値を「d」の値と比較して、床点が床208の測定値に対応するかどうかを判定することができ、エスカレータ202の最初の移動ステップは静止床に対して「d」の値だけ下がっている。平均高さ値が所定の小さな許容誤差内(例えば、ランダムな熱雑音のために0.5センチメートル以内)で「d」の値に等しければ、コントローラ118は、エスカレータ検出パラメータを決定するために用いられる落差パラメータが以下で
図5に示すように満たされると判定することができる。
【0068】
当業者であれば、
図4に示すデータテーブルは、コントローラ118がコンピュータ可読命令を実行する、又は距離測定センサ204から追加の測定値を受信するときに、追加の行及び列を追加することができる自己参照テーブルとすることができるということを理解するであろう。
【0069】
いくつかの例において、エスカレータ202はガラス側壁を含むことができる。したがって、左及び右壁バッファは、エスカレータ202の側面手すり210を感知するいくつかの測定値302を除いて、空であることがある。側面手すり210の測定値302は依然として上の
図3Bに示す導関数閾値を満たすことができる。
【0070】
図5は、例示的な一実施形態による、ロボット102のコントローラ118が、センサユニット114の距離測定センサによって測定されるセンサデータに基づいてエスカレータ検出パラメータを決定する方法500を示すプロセスフロー図を示す。満たされているエスカレータ検出パラメータは、センサデータが、少なくとも部分的に、エスカレータを感知する測定値に対応することを示すことができる。
【0071】
ブロック502は、コントローラ118が1又は2以上の距離測定センサ204からセンサデータを収集することを示す。1又は2以上の距離測定センサ204からのデータは、マトリックス、アレイ、バッファ、及び/又はデータを記憶する任意の他の形式を含むがこれらに限定されないような複数のフォーマットでメモリ120に記憶することができる。距離測定センサデータは、距離測定センサによって観察される複数の高さ又は距離測定値を含むことができる。距離測定センサは、時間的に離散的な間隔で、又は時間的に連続的にデータを収集することができる。
【0072】
ブロック504は、コントローラ118が、ブロック502において収集されたセンサデータの導関数を計算することを示す。導関数は、
図3A~Bに示すような、ビームID番号、角距離、横方向距離、又は他の同様のパラメータに関して取得することができる。コントローラ118は次いで、ブロック502において受信されたセンサデータを記憶するために用いられるフォーマットと実質的に同様の複数のフォーマットでセンサデータの導関数をメモリ120に記憶することができる。
【0073】
ブロック506は、コントローラ118が、すべての側壁閾値が満たされているかどうかを判定することを示す。側壁閾値は、エスカレータ202の左壁、エスカレータ202の右壁の検出に対応する2つの側壁検出パラメータ、及び左及び右壁間の最小分離要件に対応する間隔パラメータを含むことができる。少なくとも1つの導関数測定値304が、
図3Bにおける「T」の大きさによって示される、距離測定センサによる側壁の検出を示す、所定の閾値を満たす又は超えることによって、側壁検出パラメータを満たすことができる。エスカレータ202がセンサ204にとって透明であるガラス側壁を含めば、少なくとも1つの要件によりエスカレータ202の側面手すり210の検出が可能になり得る。
【0074】
例えば、ロボット102によって生成されるLiDARスキャンが、導関数測定値304、及び同じインデックスの対応する高さ測定値302が上の
図3Bに示すように「-T」以下の値を含むときにエスカレータ202の左壁が検出されることを示すことができる。同様に、
図4Bに示すように、「+T」以上の値の、同じインデックスの高さ測定値302に対応する、導関数測定値304を含むように、エスカレータの右壁を判定することができる。「T」の大きさを超える導関数測定値304は、狭い通路の左又は右壁の肯定の検出に対応することがあり、通路はエスカレータである可能性がある。
【0075】
側壁閾値は、検出された左及び右壁又は手すり210の両方が所定の距離だけ分離されていることが必要とされる間隔パラメータをさらに含むことができ、所定の距離はエスカレータの幅に対応し得る。エスカレータ幅は一般に、約24インチ、32インチ、又は40インチ(61センチメートル、82センチメートル、102センチメートルに相当)に標準化されており、したがって間隔パラメータは少なくとも約24インチであるが、エスカレータ又は動く歩道の任意の長さに事前定義することができる。所定の距離は、ユーザインターフェイスユニット112を介して、外部サーバ又はネットワークと通信する通信ユニット116を介して、又は学習プロセスを介して、ロボット102に伝達することができる。エスカレータの2つの壁の間隔は、
図6A~Bに示すように、ロボット102の側壁までの距離及びロボット102の接近角度に基づいて判定することができる。有利なことに、2つの検出された壁の間隔パラメータを用いることにより、検出された狭い通路又は他の壁のためエスカレータ検出について誤検出が生じることに起因するコントローラ118による不要な計算の大部分を排除することができる。
【0076】
少なくとも1つの非限定的な例示的な実施形態によれば、ロボット102に伝達されるエスカレータの所定の幅は、以下で
図6A~Bに示すように、エスカレータの入口に完全に直交しない角度でエスカレータに接近するロボット102を説明する最小幅要件を含むことができる。少なくとも1つの非限定的な例示的な実施形態によれば、幅の異なる複数のエスカレータがロボット102の周囲環境内に存在することがあり、ロボット102は、複数のエスカレータの幅に対応する複数の壁分離幅を受け取ることができる。コントローラ118は、この例示的な実施形態において、判定された左及び右壁の間隔が、ロボット102にとって既知である複数のエスカレータ幅の1つと同じ幅であれば、満たされるべき分離パラメータを決定することができる。
【0077】
少なくとも1つの非限定的な例示的な実施形態によれば、側壁閾値は、2つの検出された側壁間の空間が実質的に平坦である(すなわち、ゼロに非常に近い導関数dH/diを含む)ことが必要とされる平坦性閾値をさらに含むことができる。すなわち、
図3Aを参照すると、高さ測定値302-6、302-14、両端を含む、は、平坦性閾値を満たす閾値量だけ逸脱することがない。誤検出のエスカレータ検出を除去するためにこれをさらに利用することができる。
【0078】
エスカレータ202の両壁(すなわち、右及び左壁)を検出し、エスカレータの壁間の間隔をエスカレータの幅に対応する距離であると測定する(例えば、すべての壁の閾値が満たされる)と、コントローラ118は次にブロック508に移動する。しかしながら、1又は2以上の壁閾値が満たされていないと判定されれば、コントローラ118はブロック502に戻ってアルゴリズムを再実行する。
【0079】
ブロック508は、コントローラ118が、エスカレータ202の検出された左壁、右壁、及び床208の高さ測定値302に対応する高さ測定値302を、上で
図4に示すように、適切なバッファに記憶することを示す。いくつかの非限定的な例示的な実施形態によれば、これらの測定値は、例えば、アレイ、マトリックス、又は他の同様のデータフォーマットのような複数の他のフォーマットで記憶することができる。コントローラ118は、ブロック506に示す壁パラメータに基づいてエスカレータ202の左壁、右壁、及び壁間の床に対応する点を判定することができる。例えば、エスカレータの左壁に対応する高さ測定値は、壁検出閾値「-T」を下回る対応する導関数測定値を有することができ、したがって左壁バッファに記憶することができる。コントローラ118は、実質的に同様の方法でエスカレータの右壁に対応する距離測定値を判定及び記憶することができる。コントローラ118は、左又は右壁バッファ内にない点を左及び右壁間の床の高さ測定値に対応するとさらに判定し、これらの残りの点を床バッファに記憶することができる。
【0080】
ブロック510は、コントローラ118が床バッファ内の床測定値の平均高さ値を決定することを示す。先に
図4に示したように、床バッファ内の各測定値は高さ測定値を含み、コントローラ118は、床バッファ内のすべての点の高さ測定値の平均値を決定することができる。
【0081】
ブロック512は、コントローラ118が、落差パラメータが満たされている又は満足させられているかを判定することを示す。落差パラメータを利用して、上で
図2に示す落差218が、エスカレータ、崖又は階段を示す、左及び右側の2つの壁によって囲まれた床内に存在するかどうかを判定することができる。床測定値の平均高さ値は、
図3Aに示すような大きさ「d」の落差パラメータと比較され、「d」の大きさは、エスカレータの静止部分216とエスカレータの静止部分216から離れて移動している最初の移動ステップ208との間の落差218の大きさに対応し得る。「d」の大きさは、ロボット102にユーザインターフェイスユニット112を介して伝達する、通信ユニット116を介してサーバ又はネットワークによって伝達する、又は学習プロセスを通じて学習させることができる。ブロック510において計算された床の平均高さが、ロボット102がある床の高さに対応するゼロ(0)の基準高さに関して小さな許容誤差(例えば、0.5センチメートル以下)内で値「-d」であれば、落差パラメータは満たされている、等しい、又は超えている。
【0082】
少なくとも1つの非限定的な例示的な実施形態によれば、完全に較正されていないセンサの場合のように、基準高さはゼロ(0)でなくてもよい。したがって、平均床高さが、完全に較正されていないセンサによって測定された床の基準高さより小さな大きさ「d」であれば、落差パラメータを満たすことができる。落差パラメータが満たされると、コントローラ118はブロック514に移動する。しかしながら、落差パラメータが満たされないと、コントローラ118はブロック502に戻ってアルゴリズムを再実行する。
【0083】
ブロック514は、コントローラ118が、距離測定センサによってエスカレータが検出されたことを示す側壁パラメータ及び落差パラメータが満たされていることに基づいてエスカレータ検出パラメータが満たされていると判定することを示す。少なくとも1つの非限定的な例示的な実施形態によれば、コントローラ118は、エスカレータ検出パラメータが満たされると、ロボット102をエスカレータから遠ざけるように経路変更することができる。他の非限定的な例示的な一実施形態によれば、コントローラ118は、ロボット102を判定されたエスカレータ上へ走行させてロボット102を輸送することができる。当業者は、落差パラメータを、軌道を移動しているロボット102の物理的特性(すなわち、高さ、幅、広さ)を考慮に入れた事前プログラムされた値とすることができるということを理解することができる。このように、小型又は短いロボットは、大型又は大きいロボットとは異なる落差パラメータを有することができる。
【0084】
図6Aは、例示的な一実施形態による、エスカレータ600の入口に直交する角度でエスカレータ600に接近するロボット102の上面図を示す。エスカレータ600は、エスカレータ600の静止部分と最初の移動ステップとの間の落差に対応する落差610(例えば、落差218の側面図を上で
図2Bに示す)を含むことができる。ロボット102はエスカレータ600に向かって走行し、センサ視線604によって示されるように、平面LiDARセンサ606から距離測定値を収集することができる。平面LiDARセンサ606からの測定値は、距離測定値608によって示されるような、エスカレータ600の側壁602間の距離のユークリッド距離測定を含むことができる。距離測定値608は落差610の向こうにあり、これによって、距離測定値608は、上で
図3Aに示すように、ゼロ高さでの床に対して-dの高さとなり得るので、エスカレータ検出のための落差パラメータを満たし得る。距離測定値608は、上で
図5に示すように、エスカレータ600の検出のための間隔パラメータ要件の最小幅を満たし得る。
図6Aは、ロボット102がエスカレータ600を検出する理想的なシナリオを示し、ロボット102は、エスカレータ600の入口に完全に直交して走行する(例えば、ロボット102の進行方向は距離測定値608に直交する)。しかしながら、いくつかの例においてロボット102は、入口に完全に直交していない角度でエスカレータ600に接近することがある。例えば、ロボット102は、エスカレータ600の入口で旋回を試みることができ、エスカレータの2つの側壁602間の距離測定値608は、以下で
図6Bに示すように変化することがある。
【0085】
図6Bは、例示的な一実施形態による、エスカレータ600の入口に完全に直交していない角度でエスカレータ600に接近するロボット102の上面図を示す。平面LiDARセンサ606は、エスカレータ600の2つの側壁602間の距離測定値612を測定することができる。
図6Bにおける距離測定値612は、エスカレータ600の入口に対するロボット102の接近角度のために
図6Aにおける距離測定608より大きくなることがある。
図6Aに示すように、完全に直交する角度でエスカレータ600に接近するロボット102の距離測定値608は、間隔パラメータのための最小距離を提供することができる。したがって、入口に完全には直交しない角度でエスカレータ600に接近するロボット102のより大きな距離測定値612は、距離測定値612が間隔パラメータについての最小距離測定要件を満たすので、エスカレータ検出に必要とされる側壁パラメータの間隔パラメータを依然として満たすことができる。
【0086】
エスカレータ600の入口に対して完全に直交する角度でエスカレータ600に接近するロボット102によって測定される最小測定可能距離608に基づいて、間隔パラメータのためにエスカレータ600の側壁602間の最小距離608を設定することにより、ロボット102が任意の接近角度でエスカレータ600を検出することが可能になり得る。有利なことに、間隔パラメータについての最小距離要件を用いることにより、エスカレータ600の入口に対して任意の角度でエスカレータ600を判定するロボット102のコントローラ118の能力をさらに高めることができる。
【0087】
図7は、上で考察したエスカレータ検出のシステム及び方法と併せて用いられる例示的な一実施形態による、ニューラルネットワーク700を示す。ニューラルネットワーク700は、複数の入力ノード702、中間ノード706、及び出力ノード710を含むことができる。入力ノード702はリンク704を介して1又は2以上の中間ノード706に接続されている。中間ノード706はそれぞれリンク708を介して1又は2以上の他の中間ノード706又はリンク712を介して出力ノード710に接続されている。リンク704、708、712は、ニューラルネットワーク700を通じた入力ノード702から出力ノード710への数値データの転送及び伝播の例示である。中間ノード706は、ニューラルネットワーク700の中間層714を形成することができる。いくつかの実施形態において、ニューラルネットワーク700は複数の中間層712を含むことができ、各中間層714の中間ノード706は、隣接する層が入力層(すなわち、入力ノード702)又は出力層(すなわち、出力ノード710)でない限り、隣接する層の1又は2以上の中間ノード706にリンクされている。各ノード702、706、及び710は、任意の数のノードにリンクすることができ、図示のようにすべてのノードを互いにリンクすることは、限定するように意図されていない。
【0088】
本明細書で用いられるとき、ある特徴は、物体の検出、その物体のパラメータ(例えば、サイズ、形状、色、向き、縁部など)、画像のピクセルのカラー値、深さ画像のピクセルの深度値、距離測定値(例えば、LiDARスキャン)、画像の明るさ、画像全体、時間の経過に伴う特徴の変化(例えば、物体の速度、軌道など)、音、スペクトル帯域幅のスペクトルエネルギー、モータフィードバック(すなわち、エンコーダ値)、センサ値(例えば、ジャイロスコープ、加速度計、GPS、磁気計などの読み取り値)、バイナリカテゴリ変数、列挙型、文字/文字列、又は任意の他の感覚入力の特性を含むが、これらに限定されない、センサユニット114からの入力を特徴付ける1又は2以上の数値(例えば、浮動小数点、小数、値のテンソルなど)を含むことができる。
【0089】
入力ノード706は、ある特徴の数値xiを受け取ることができ、iは整数のインデックスである。例えば、xiは、カラー画像のピクセルのカラー値、インデックスiのビームIDについての距離測定値、その導関数などを表すことができる。入力ノード706は、リンク704を介して数値xiを1又は2以上の中間ノード706に出力することができる。各中間ノード706は、数値xiを受け取って以下の式1に従ってリンク708に他の数値ki,jを出力するように構成することができる。
ki,j = ai,jx0+ bi,jx1 + ci,jx2 + di,jx3(式1)
【0090】
インデックスiは層内のノード番号に対応する(例えば、x1は、ゼロからインデックス付けしている、入力層の第1の入力ノード702を指す)。インデックスjは層に対応し、jは、図示のニューラルネットワーク700の1つの中間層714についてのものに等しくなるであろうが、jは、任意の数の中間層712を含むニューラルネットワーク700に対応する任意の数であり得る。定数a、b、c、及びdは、訓練プロセスに従って学習されるべき重みを表す。式1の定数の数は、それぞれの中間ノード706への入力リンク704の数に依存し得る。この実施形態において、すべての中間ノード706がすべての入力ノード702にリンクされているが、これは限定するように意図されていない。
【0091】
出力ノード710は、j番目の中間層714の少なくともi番目の中間ノード706から少なくとも1つの数値ki,jを受け取るように構成することができる。図示のように、例えば、各出力ノード710は、ゼロからインデックス付けしている、第2の中間層714の8つの中間ノード706から数値k0-7,1を受け取る。出力ノード710の出力は、入力ノード702の特徴の分類を含むことができる。出力ノード710の出力ciは、上の式1と実質的に同様の式に従って(すなわち、学習された重みa、b、c、dなど及び後の714-2の中間ノード706からの数値出力を含む接続712からの入力に基づいて)計算することができる。入力xiがRGB画像のピクセルカラー値を含む上の例に従って、出力ノード710は各入力ピクセルの分類ciを出力することができる(例えば、ピクセルiは、車、電車、犬、人、背景、ソープ、又は任意の他の分類である)。
【0092】
訓練プロセスは、中間ノード706の重みを決定することができるように、入力ノード702及び出力ノード710に対して、それぞれ、値の入力及び出力対の両方をニューラルネットワーク700に提供することを含む。決定された重みは、入力ノード702への入力を受け取って出力ノード710での正しい出力を決定するようにニューラルネットワーク700を構成する。例示的な例として、アノテーション付き(すなわち、ラベル付き)画像を利用してニューラルネットワーク700を訓練し、画像内のオブジェクトを識別することができる。画像(すなわち、ピクセルRGBカラー値)を入力ノード702に提供することができるとともに、画像のアノテーション(すなわち、各ピクセルについての分類)を出力ノード710に提供することができ、入力ノード702に提供されたピクセルカラー値に基づいてニューラルネットワーク700が画像のアノテーションを生じさせるように中間ノード706の重みを調整することができる。このプロセスは、各中間ノード706の理想的な重みを決定することができるように、かなりの数の画像(例えば、数百以上)を用いて繰り返すことができる。当業者は、ニューラルネットワーク700が識別するように訓練されている特徴を含まない又は表さない、否定的な例又は訓練ペアもまた、ニューラルネットワーク700をさらに訓練するために利用することができるということを理解することができる(例えば、RGB画像において人間を識別するようにニューラルネットワーク700を訓練することには、人間を描写している画像及び人間を描写していない画像の使用が必要とされることがある)。
【0093】
図2A~2B、3A~3Bに関連して上で考察したような平面LiDARセンサを用いるエスカレータ検出を対象とした他の非限定的な例示的な一実施形態として、ニューラルネットワーク700に複数の訓練ペアを設けることができ、それぞれがLiDARセンサからのスキャン及びスキャンの任意のそれぞれの点/測定値はエスカレータのものであるという示唆に対する肯定又は否定のいずれかを含む。すなわち、訓練ペアはそれぞれ、(i)各距離測定値302-i、又はその導関数304-iが、それぞれの入力ノード702-iに提供された、
図3A~Bに示すものと同様のグラフ、(ii)各入力距離測定値302-i、304-iをエスカレータ又は非エスカレータのいずれかとして示す、それぞれの出力ノード710-iに提供された「エスカレータ」又は「非エスカレータ」のラベル、又はこれらの同様の変形、を含むことができる。ニューラルネットワーク700の訓練後(すなわち、モデルが収束する又は十分な精度を達成した後)、各入力ノード702-iはそれぞれ、
図3Aに示すような、それぞれの距離測定値302-iを受け取ることができ、相互接続された層714及び学習された重みは、提供された距離測定値302がニューラルネットワーク700を訓練するために用いられた訓練用スキャンと実質的に同様であれば、出力ノード710にエスカレータの肯定の検出を出力させるように構成することができる。
【0094】
少なくとも1つの非限定的な例示的な実施形態によれば、j番目の中間層714の中間ノード706からの1又は2以上の出力ki,jを、1又は2以上の中間ノード706及びm番目の中間層714への入力として利用することができ、インデックスmはjより大きくても小さくてもよい(例えば、リカレントニューラルネットワーク)。少なくとも1つの非限定的な例示的な実施形態によれば、ニューラルネットワーク700は、N次元特徴(例えば、(x、y)位置及び深さ符号化を含む3次元入力画像)のためのN次元を含むことができ、1つの次元のみが明確にするために例示されている。当業者は、ニューラルネットワーク700の複数の他の実施形態を理解することができ、図示のニューラルネットワーク700は、ニューラルネットワーク及びその変形の簡略化された一実施形態を表し、限定するように意図されていない。すなわち、ニューラルネットワーク700は、ニューラルネットワークアーキテクチャ、訓練、及び動作の基本原理の例示であり、ニューラルネットワーク700は、フィードフォワードネットワーク、ラジアルバイアスネットワーク、長/短期記憶(LSTM,long/short term memory)、コンボリューショナルニューラルネットワーク、デコンボリューショナルニューラルネットワークなどにおいて具現化することができるが、これらに限定されない。
【0095】
有利なことに、エスカレータの形状及びサイズの標準化のため、エスカレータのLiDARスキャンのパターン(例えば、
図3A~B及び6A~Bに示されるような)は、一貫した形状(すなわち、
図3Aに示すようなU形状)を維持する。同様に、導関数(dH/di)も一貫した形状を維持する(すなわち、
図3Bに示すように)。したがって、エスカレータのLiDARスキャンの形状又はパターンの一貫性のため、形状又はパターンを識別するようにニューラルネットワーク700を訓練することは、(i)訓練されたモデル(すなわち、固定重みで訓練されたニューラルネットワーク700)をロボット102上へ展開することができる、又は(ii)ロボット102がニューラルネットワーク700を訓練及び/又は実行するのに十分なコンピューティングリソースを含む、実施形態において有利であり得る。さらに、エスカレータのサイズ及び形状の標準化により、ニューラルネットワーク700がRGB又はグレースケール画像においてエスカレータを識別する能力が高まり、RGB又はグレースケール画像においてエスカレータを識別するようにニューラルネットワーク700を訓練するために必要とされる訓練ペア(すなわち、エスカレータのアノテーション付き又はラベル付き画像)の数が劇的に減少する。
【0096】
少なくとも1つの非限定的な例示的な実施形態によれば、ニューラルネットワーク700は、エスカレータ又は非エスカレータのピクセルである画像(例えば、RGB画像、グレースケール画像、深さ画像など)のピクセルを識別するように訓練することができる。少なくとも1つの非限定的な例示的な実施形態によれば、ニューラルネットワーク700は、バウンディングボックスを備えた画像においてエスカレータを識別することができる。ニューラルネットワーク700を訓練するために利用される訓練ペアは、エスカレータのアノテーション付き又はラベル付き画像を含むことができ、アノテーション又はラベルは、「エスカレータ」又は「非エスカレータ」のいずれかとしての画像のピクセル又は領域の符号化を含む。有利なことに、RGB画像及びニューラルネットワーク700を用いることにより、平面LiDARセンサを利用しないロボット102が、ロボット102のそれぞれの1又は2以上のコントローラ118又は処理デバイスに課せられる計算の複雑さの増加を犠牲にしてエスカレータを識別することが可能になり得る。加えて、RGB画像及びニューラルネットワーク700の使用を利用して、エスカレータの誤検出を排除するため、上の
図2~6において考察した方法を用いてエスカレータの検出を検証することができる。
【0097】
本明細書で考察される本発明の概念によれば、移動経路に沿って落差を検出するための方法、非一時的コンピュータ可読媒体及びシステムが開示される。非一時的コンピュータ可読媒体及びシステムは、メモリに記憶されたコンピュータ可読命令を実行するように構成可能なコントローラを含み、方法は、とりわけ、ロボット装置に搭載された第1のセンサからデータを受信するステップであって、このデータが、第1のセンサから第1の領域までの第1の距離測定値を含む、ステップと、ロボット装置に搭載された第2のセンサからデータを受信するステップであって、このデータが、第2のセンサから第2の領域までの第2の距離測定値を含み、第2の領域が第1の領域とは異なる、ステップと、第2の距離測定値が第1の距離測定値と異なる場合、第1の距離測定値と第2の距離測定値との間の差を計算するステップであって、計算された差が落差の大きさに対応する、ステップと、落差の大きさが落差パラメータと等しいか又はこれを超えている場合、ロボット装置による移動経路を再指定するようにロボット装置を作動させるステップと、を含む、ステップを実行する。落差パラメータは、第1の領域と第2の領域との間の高さの平均値に対応し、第1の領域は静止しており、第2の領域は第1の領域から離れるように動いている。
【0098】
この非一時的コンピュータ可読媒体、システム、及び方法は、第1及び第2のセンサの1又は2以上に較正エラーがあれば落差の大きさを調整することと、第1及び第2の距離測定値間の差を計算する前に側壁閾値を検出することをさらに含み、側壁閾値は、第1及び第2のセンサの1又は2以上によって第1の壁及び第2の壁を検出することに対応し、第1及び第2の壁はある距離によって分離されている。第1及び第2の壁は、第1及び第2の壁がロボット装置の右又は左側のいずれかにあると判定する導関数測定値に基づいて検出される。そして、導関数測定値が負の壁閾値パラメータ値を満たす場合、第1及び第2の壁の1つがロボット装置の左側にあり、導関数測定値が正の壁閾値パラメータ値を満たす場合、第1及び第2の壁の1つがロボット装置の右側にあり、落差の大きさは、第1及び第2の壁に対するロボット装置の角度に関係なく計算される。
【0099】
本開示のいくつかの態様は方法の具体的な一連のステップに関して説明されているが、これらの説明は、本開示のより広い方法の例示にすぎず、特定の用途によって必要に応じて修正することができるということが認識されるであろう。いくつかのステップがいくつかの状況下で不要又は任意選択になることがある。加えて、いくつかのステップ又は機能性を開示された実施形態に追加すること、又は2又は3以上のステップの実行の順序を並べ替えることができる。すべてのこのような変形は、本明細書に開示及び特許請求される開示内に包含されると見なされる。
【0100】
上の詳細な説明は、様々な例示的な実施形態に適用されるような本開示の新規の特徴を示し、説明し、そして指摘しているが、図示の装置又はプロセスの形態及び詳細における様々な省略、置換、及び変更を、本開示から逸脱することなく当業者によって行うことができることが理解されるであろう。前述の説明は、本開示を実行するのに現在考えられている最良の形態のものである。この説明は、決して限定することを意味するものではなく、むしろ本開示の一般原理の例示として解釈されるべきである。本開示の範囲は、請求項を参照して決定されるべきである。
【0101】
本開示は、図面及び前述の説明において詳細に例示及び説明されているが、このような例示及び説明は説明的又は例示的であり、制限的ではないと見なされるべきである。本開示は、開示された実施形態に限定されない。開示された実施形態及び/又は実装形態に対する変形は、図面、開示及び添付の請求項の研究から、特許請求された開示を実施する際に当業者によって理解及び実施され得る。
【0102】
本開示のいくつかの特徴又は態様を説明するときの特定の用語の使用は、その用語が関連している開示の特徴又は態様のあらゆる具体的な特徴を含むように制限されるようにその用語が本明細書で再定義されていることを示唆するように解釈されるべきではないということが留意されるべきである。本願において用いられる用語及び句、及び特に添付の請求項における、それらの変形は、特に明記しない限り、限定するものではなくオープンエンドとして解釈されるべきである。前述の例として、「including(含む)」という用語は「including, without limitation(限定することなく、含む)」、「including but not limited to(含むが限定されない)」などを意味するように読まれるべきであり、本明細書で用いられるような「comprising(含む)」という用語は「including(含む)」、「containing(含む)」、又は「characterized by(によって特徴付けられる)」と同義であり、包括的又はオープンエンドであって、追加の、未記載の要素又は方法ステップを除外せず、「having(有する)」という用語は「having at least(少なくとも有する)」として解釈されるべきであり、「such as(のような)」という用語は「such as, without limitation(限定することなく、のような)」として解釈されるべきであり、「includes(含む)」という用語は、「includes but is not limited to(含むが限定されない)」として解釈されるべきであり、「example(例)」という用語は、考察中の項目の例示的な例を提供するために用いられ、その網羅的又は限定的なリストではなく、「example, but without limitation(例であるが、限定しない)」として解釈されるべきであり、「known(既知の)」、「normal(通常の)」、「standard(標準の)」のような形容詞、及び同様の意味の用語は、説明されている項目を所与の期間又は所与の時点で利用可能な項目に限定するとして解釈されるべきではなく、代わりに今又は将来のいつでも利用可能又は既知になり得る既知の、通常の、又は標準の技術を包含するように読まれるべきであり、「preferably(好ましくは)」、「preferred(好ましい)」、「desired(所望の)」、又は「desirable(望ましい)」などの用語、及び同様の意味の言葉の使用は、いくつかの特徴が本開示の構造又は機能にとって重大、必須、又はさらには重要であるということを示唆するとしてではなく、代わりに、特定の一実施形態において利用されてもされなくてもよい代替又は追加の特徴を強調するように単に意図されるとして理解されるべきである。同様に、接続詞「and(及び)」で接続された項目のグループは、これらの項目のそれぞれ1つ1つがそのグループに存在することが必要とされるとして読まれるべきではなく、むしろ特に明記されていない限り、「and/or(及び/又は)」として読まれるべきである。同様に、接続詞「or」で接続された項目のグループは、そのグループ間に相互排他性が必要とされるとして読まれるべきではなく、むしろ特に明記されていない限り、「and/or(及び/又は)」として読まれるべきである。「about(約)」又は「approximate(およそ)」などの用語は同義語であり、その用語によって変更された値がそれに関連する理解された範囲を有するということを示すために用いられ、その範囲は±20%、±15%、±10%、±5%、又は±1%とすることができる。「substantially(実質的に)」という用語は、結果(例えば、測定値)が目標値に近いということを示すために用いられ、近いとは、例えば、その結果がその値の80%以内、その値の90%以内、その値の95%以内、又はその値の99%以内であることを意味することができる。また、本明細書で用いられるとき「defined(定義された)」又は「determined(決定された)」は、「predefined(事前定義された)」又は「predetermined(事前決定された)」及び/又は他の方法で決定された値、条件、閾値、測定値などを含むことができる。