(57)【要約】【課題】モバイルロボット用の、ロボット構成に基づく地図作成および計画技術を提供する。【解決手段】自律モバイルロボットの動きを制御するための、コンピュータによって実施される方法は、地図にアクセスする工程（２０６）と、ロボットによって実行可能なタスクに関係し、タスク記述データおよび目的地データを含むロボット構成データを受信する工程と、タスク記述データに基づいて、通路と関連付けられたコスト修正を決定する工程と、地図およびコスト修正を含むタスク特定地図を用いて、目的地データにおいて識別されている目的地位置まで移動するために、および、タスク記述データにおいて識別されているタスクを行うために、ロボットによって使用可能なルートを決定する工程（２１２）と、ロボットに、決定されたルートを用いてタスクを行う指示を実行させる工程（２１４）とを含む。【選択図】図２
2019075066.tif 000002
【特許請求の範囲】
【請求項１】
自律モバイルロボットの動きを制御するための、コンピュータによって実施される方法において、
地図にアクセスする工程であって、該地図が、地図が作成された領域内の複数の位置についての、位置データ、ルートデータ、およびコストデータを含み、前記ルートデータのインスタンスが、或る位置から別の位置までのロボットがナビゲート可能な通路を示すものであり、前記コストデータのインスタンスが、前記ロボットがナビゲート可能な通路と関連付けられたものである、地図にアクセスする工程と、
前記ロボットによって実行可能なタスクに関係し、タスク記述データおよび目的地データを含むロボット構成データを受信する工程と、
前記タスク記述データに基づいて、前記通路と関連付けられたコスト修正を決定する工程と、
前記地図および前記コスト修正を含むタスク特定地図を用いて、前記目的地データにおいて識別されている目的地位置まで移動するために、および、前記タスク記述データにおいて識別されているタスクを行うために、前記ロボットによって使用可能なルートを決定する工程と、
前記ロボットに、前記決定されたルートを用いて前記タスクを行う指示を実行させる工程と
を含むことを特徴とする方法。
【請求項２】
前記ロボット構成データがペイロード記述を含む場合に、該ペイロード記述に基づいて前記コスト修正を決定する工程を含む、請求項１記載の方法。
【請求項３】
前記タスク記述データがタスクタイプを含む場合に、前記タスクタイプを、配達タスク、交流タスク、または案内タスクのうちの１つとして決定する工程と、
前記タスクタイプに基づいて前記コスト修正を決定する工程と
を含む、請求項１記載の方法。
【請求項４】
前記ロボット構成データがロボット挙動仕様を含む場合に、該ロボット挙動仕様に基づいて前記コスト修正を決定する工程を含む、請求項１記載の方法。
【請求項５】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記通路と関連付けられたコストを増加させることを含む、請求項１記載の方法。
【請求項６】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記通路と関連付けられたコストを減少させることを含む、請求項１記載の方法。
【請求項７】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記ロボットによる前記通路の移動と関連付けられた速度パラメータを変更することを含む、請求項１記載の方法。
【請求項８】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記ロボットによる前記通路の移動と関連付けられた時間帯パラメータを変更することを含む、請求項１記載の方法。
【請求項９】
前記タスクに関係する現在の条件を決定する工程と、
前記現在の条件に基づいて、前記コスト修正を調節する工程と、
前記調節されたコスト修正を、前記タスク特定地図に追加する工程と、
前記調節されたコスト修正を含む前記タスク特定地図を用いて、前記目的地データにおいて識別されている前記目的地位置まで移動するために、および前記タスク記述データにおいて識別されている前記タスクを行うために、前記ロボットによって使用可能な代替ルートを決定する工程と、
前記ロボットに、前記代替ルートを用いて前記タスクを行う指示を実行させる工程と
を含む、請求項１記載の方法。
【請求項１０】
複数のロボットによって使用可能な１組の新たな地図であって、前記複数のロボットのうちの異なるロボットに適用可能な複数のコスト修正を含む１組の新たな地図を生成する工程を含む、請求項１記載の方法。
【請求項１１】
自律モバイルロボットの動きを制御するためのシステムにおいて、
１以上のプロセッサと、
前記１以上のプロセッサに結合された通信インターフェースと、
前記１以上のプロセッサに結合された１以上の非一過性のコンピュータ可読ストレージ媒体であって、前記１以上のプロセッサによって指示が実行された際に、前記１以上のプロセッサに、
地図にアクセスする工程であって、該地図が、地図が作成された領域内の複数の位置についての、位置データ、ルートデータ、およびコストデータを含み、前記ルートデータのインスタンスが、或る位置から別の位置までのロボットがナビゲート可能な通路を示すものであり、前記コストデータのインスタンスが、前記ロボットがナビゲート可能な通路と関連付けられたものである、地図にアクセスする工程と、
前記ロボットによって実行可能なタスクに関係し、タスク記述データおよび目的地データを含むロボット構成データを受信する工程と、
前記タスク記述データに基づいて、前記通路と関連付けられたコスト修正を決定する工程と、
前記地図および前記コスト修正を含むタスク特定地図を用いて、前記目的地データにおいて識別されている目的地位置まで移動するために、および、前記タスク記述データにおいて識別されているタスクを行うために、前記ロボットによって使用可能なルートを決定する工程と、
前記ロボットに、前記決定されたルートを用いて前記タスクを行う指示を実行させる工程と、
を含む処理を行わせる指示のシーケンスを格納した、非一過性のコンピュータ可読ストレージ媒体と
を含むことを特徴とするシステム。
【請求項１２】
前記指示が、前記１以上のプロセッサによって実行された際に、該１以上のプロセッサに、前記ロボット構成データがペイロード記述を含む場合に、該ペイロード記述に基づいて前記コスト修正を決定する工程を含む処理を行わせる、請求項１１記載のシステム。
【請求項１３】
前記指示が、前記１以上のプロセッサによって実行された際に、該１以上のプロセッサに、
前記タスク記述データがタスクタイプを含む場合に、前記タスクタイプを、配達タスク、交流タスク、または案内タスクのうちの１つとして決定する工程と、
前記タスクタイプに基づいて前記コスト修正を決定する工程と
を含む処理を行わせる、請求項１１記載のシステム。
【請求項１４】
前記指示が、前記１以上のプロセッサによって実行された際に、該１以上のプロセッサに、前記ロボット構成データがロボット挙動仕様を含む場合に、該ロボット挙動仕様に基づいて前記コスト修正を決定する工程を含む処理を行わせる、請求項１３記載のシステム。
【請求項１５】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記通路と関連付けられたコストを増加させることを含む、請求項１１記載のシステム。
【請求項１６】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記通路と関連付けられたコストを減少させることを含む、請求項１１記載のシステム。
【請求項１７】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記ロボットによる前記通路の移動と関連付けられた速度パラメータを変更することを含む、請求項１１記載のシステム。
【請求項１８】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記ロボットによる前記通路の移動と関連付けられた時間帯パラメータを変更することを含む、請求項１１記載のシステム。
【請求項１９】
前記指示が、前記１以上のプロセッサによって実行された際に、該１以上のプロセッサに、
前記タスクに関係する現在の条件を決定する工程と、
前記現在の条件に基づいて、前記コスト修正を調節する工程と、
前記調節されたコスト修正を、前記タスク特定地図に追加する工程と、
前記調節されたコスト修正を含む前記タスク特定地図を用いて、前記目的地データにおいて識別されている前記目的地位置まで移動するために、および前記タスク記述データにおいて識別されている前記タスクを行うために、前記ロボットによって使用可能な代替ルートを決定する工程と、
前記ロボットに、前記代替ルートを用いて前記タスクを行う指示を実行させる工程と
を含む処理を行わせる、請求項１１記載のシステム。
【請求項２０】
前記指示が、前記１以上のプロセッサによって実行された際に、該１以上のプロセッサに、複数のロボットによって使用可能な１組の新たな地図であって、前記複数のロボットのうちの異なるロボットに適用可能な複数のコスト修正を含む１組の新たな地図を生成する工程を含む処理を行わせる、請求項１１記載のシステム。
【請求項２１】
自律モバイルロボットの動きを制御するためのコンピュータプログラムにおいて、１以上のプロセッサによって指示が実行された際に、前記１以上のプロセッサに、
地図にアクセスする工程であって、該地図が、地図が作成された領域内の複数の位置についての、位置データ、ルートデータ、およびコストデータを含み、前記ルートデータのインスタンスが、或る位置から別の位置までのロボットがナビゲート可能な通路を示すものであり、前記コストデータのインスタンスが、前記ロボットがナビゲート可能な通路と関連付けられたものである、地図にアクセスする工程と、
前記ロボットによって実行可能なタスクに関係し、タスク記述データおよび目的地データを含むロボット構成データを受信する工程と、
前記タスク記述データに基づいて、前記通路と関連付けられたコスト修正を決定する工程と、
前記地図および前記コスト修正を含むタスク特定地図を用いて、前記目的地データにおいて識別されている目的地位置まで移動するために、および、前記タスク記述データにおいて識別されているタスクを行うために、前記ロボットによって使用可能なルートを決定する工程と、
前記ロボットに、前記決定されたルートを用いて前記タスクを行う指示を実行させる工程と
を含む処理を行わせる指示を格納した１以上の非一過性のコンピュータ可読ストレージ媒体を含むことを特徴とするコンピュータプログラム。
【請求項２２】
前記指示が、前記１以上のプロセッサによって実行された際に、該１以上のプロセッサに、前記ロボット構成データがペイロード記述を含む場合に、該ペイロード記述に基づいて前記コスト修正を決定する工程を含む処理を行わせる、請求項２１記載のコンピュータプログラム。
【請求項２３】
前記指示が、前記１以上のプロセッサによって実行された際に、該１以上のプロセッサに、
前記タスク記述データがタスクタイプを含む場合に、前記タスクタイプを、配達タスク、交流タスク、または案内タスクのうちの１つとして決定する工程と、
前記タスクタイプに基づいて前記コスト修正を決定する工程と
を含む処理を行わせる、請求項２１記載のコンピュータプログラム。
【請求項２４】
前記指示が、前記１以上のプロセッサによって実行された際に、該１以上のプロセッサに、前記ロボット構成データがロボット挙動仕様を含む場合に、該ロボット挙動仕様に基づいて前記コスト修正を決定する工程を含む処理を行わせる、請求項２１記載のコンピュータプログラム。
【請求項２５】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記通路と関連付けられたコストを増加させることを含む、請求項２１記載のコンピュータプログラム。
【請求項２６】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記通路と関連付けられたコストを減少させることを含む、請求項２１記載のコンピュータプログラム。
【請求項２７】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記ロボットによる前記通路の移動と関連付けられた速度パラメータを変更することを含む、請求項２１記載のコンピュータプログラム。
【請求項２８】
前記通路と関連付けられたコスト修正を決定する前記工程が、前記ロボット構成データに基づいて、前記ロボットによる前記通路の移動と関連付けられた時間帯パラメータを変更することを含む、請求項２１記載のコンピュータプログラム。
【請求項２９】
前記タスクに関係する現在の条件を決定する工程と、
前記現在の条件に基づいて、前記コスト修正を調節する工程と、
前記調節されたコスト修正を、前記タスク特定地図に追加する工程と、
前記調節されたコスト修正を含む前記タスク特定地図を用いて、前記目的地データにおいて識別されている前記目的地位置まで移動するために、および前記タスク記述データにおいて識別されている前記タスクを行うために、前記ロボットによって使用可能な代替ルートを決定する工程と、
前記ロボットに、前記代替ルートを用いて前記タスクを行う指示を実行させる工程と
を含む、請求項２１記載のコンピュータプログラム。
【請求項３０】
複数のロボットによって使用可能な１組の新たな地図であって、前記複数のロボットのうちの異なるロボットに適用可能な複数のコスト修正を含む１組の新たな地図を生成する工程を含む、請求項２１記載のコンピュータプログラム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、２０１７年９月１５日に出願された米国特許出願第１５／７０６，６０２号による利益を主張するものであり、その開示の全体を参照して本明細書に組み込む。
【技術分野】
【０００２】
本開示は、品物を１つの位置から別の位置へと輸送するために、例えば、建物等の物理的環境において自律的にまたは半自律的にナビゲート可能なモバイルデジタルコンピュータ制御ロボットに関し、より具体的には、モバイルロボット用の地図作成および計画技術に関する。
【背景技術】
【０００３】
この項で説明される手法は、追求され得る手法であるが、必ずしも以前に想到または追求された手法ではない。従って、特に明記しない限り、この項で説明される手法のいずれも、単にこの項に含まれているという理由で、従来技術であるとされるべきではない。
【０００４】
例えば、米国カリフォルニア州サンノゼに所在するＳａｖｉｏｋｅ社によって設計および製造されているような一部のロボットは、モバイル型である。モバイルロボットは、境界によって定義される外周を有する地理的および／または空間的領域内において輸送タスクを行うようプログラムされ得る。定義される領域の例としては、建物、部屋、建物の階、および建物群（例えば、ホテル、オフィスビル、および病院の構内等）が挙げられる。モバイルロボットは、自律的にまたは半自律的に輸送タスクを行うようプログラムされ得る。
【発明の概要】
【０００５】
添付の特許請求の範囲が、本発明の要約の役割をする。本明細書において開示される技術の説明的な例を以下に示す。これらの技術の実施形態は、以下に記載される例の任意の少なくとも１つ、および任意の組合せを含み得る。
【０００６】
例１において、自律モバイルロボットの動きを制御するための、コンピュータによって実施される方法は、地図にアクセスする工程であって、該地図が、地図が作成された領域内の複数の位置についての、位置データ、ルートデータ、およびコストデータを含み、ルートデータのインスタンスが、或る位置から別の位置までのロボットがナビゲート可能な通路を示すものであり、コストデータのインスタンスが、ロボットがナビゲート可能な通路と関連付けられたものである、地図にアクセスする工程と、ロボットによって実行可能なタスクに関係し、タスク記述データおよび目的地データを含むロボット構成データを受信する工程と、タスク記述データに基づいて、通路と関連付けられたコスト修正を決定する工程と、地図およびコスト修正を含むタスク特定地図を用いて、目的地データにおいて識別されている目的地位置まで移動するために、および、タスク記述データにおいて識別されているタスクを行うために、ロボットによって使用可能なルートを決定する工程と、ロボットに、決定されたルートを用いてタスクを行う指示を実行させる工程とを含む。
【０００７】
例２は、例１の主題を含み、ロボット構成データがペイロード記述を含む場合に、ペイロード記述に基づいてコスト修正を決定する工程を含む。
【０００８】
例３は、例１または例２の主題を含み、タスク記述データがタスクタイプを含む場合に、タスクタイプを、配達タスク、交流タスク、または案内タスクのうちの１つとして決定する工程と、タスクタイプに基づいてコスト修正を決定する工程とを含む。
【０００９】
例４は、例１〜３のいずれかの主題を含み、ロボット構成データがロボット挙動仕様を含む場合に、ロボット挙動仕様に基づいてコスト修正を決定する工程を含む。
【００１０】
例５は、例１〜４のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、通路と関連付けられたコストを増加させることを含む。
【００１１】
例６は、例１〜５のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、通路と関連付けられたコストを減少させることを含む。
【００１２】
例７は、例１〜６のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、ロボットによる通路の移動と関連付けられた速度パラメータを変更することを含む。
【００１３】
例８は、例１〜７のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、ロボットによる通路の移動と関連付けられた時間帯パラメータを変更することを含む。
【００１４】
例９は、例１〜８のいずれかの主題を含み、タスクに関係する現在の条件を決定する工程と、現在の条件に基づいて、コスト修正を調節する工程と、調節されたコスト修正を、タスク特定地図に追加する工程と、調節されたコスト修正を含むタスク特定地図を用いて、目的地データにおいて識別されている目的地位置まで移動するために、およびタスク記述データにおいて識別されているタスクを行うために、ロボットによって使用可能な代替ルートを決定する工程と、ロボットに、代替ルートを用いてタスクを行う指示を実行させる工程とを含む。
【００１５】
例１０は、例１〜９のいずれかの主題を含み、複数のロボットによって使用可能な１組の新たな地図であって、複数のロボットのうちの異なるロボットに適用可能な複数のコスト修正を含む１組の新たな地図を生成する工程を含む。
【００１６】
例１１において、自律モバイルロボットの動きを制御するためのシステムは、１以上のプロセッサと、１以上のプロセッサに結合された通信インターフェースと、１以上のプロセッサに結合された１以上の非一過性のコンピュータ可読ストレージ媒体であって、１以上のプロセッサによって指示が実行された際に、１以上のプロセッサに、地図にアクセスする工程であって、該地図が、地図が作成された領域内の複数の位置についての、位置データ、ルートデータ、およびコストデータを含み、ルートデータのインスタンスが、或る位置から別の位置までのロボットがナビゲート可能な通路を示すものであり、コストデータのインスタンスが、ロボットがナビゲート可能な通路と関連付けられたものである、地図にアクセスする工程と、ロボットによって実行可能なタスクに関係し、タスク記述データおよび目的地データを含むロボット構成データを受信する工程と、タスク記述データに基づいて、通路と関連付けられたコスト修正を決定する工程と、地図およびコスト修正を含むタスク特定地図を用いて、目的地データにおいて識別されている目的地位置まで移動するために、および、タスク記述データにおいて識別されているタスクを行うために、ロボットによって使用可能なルートを決定する工程と、ロボットに、決定されたルートを用いてタスクを行う指示を実行させる工程とを含む処理を行わせる指示のシーケンスを格納した、非一過性のコンピュータ可読ストレージ媒体とを含む。
【００１７】
例１２は、例１１の主題を含み、指示が、１以上のプロセッサによって実行された際に、１以上のプロセッサに、ロボット構成データがペイロード記述を含む場合に、ペイロード記述に基づいてコスト修正を決定する工程を含む処理を行わせる。
【００１８】
例１３は、例１１または例１２の主題を含み、指示が、１以上のプロセッサによって実行された際に、１以上のプロセッサに、タスク記述データがタスクタイプを含む場合に、タスクタイプを、配達タスク、交流タスク、または案内タスクのうちの１つとして決定する工程と、タスクタイプに基づいてコスト修正を決定する工程とを含む処理を行わせる。
【００１９】
例１４は、例１１〜１３のいずれかの主題を含み、指示が、１以上のプロセッサによって実行された際に、１以上のプロセッサに、ロボット構成データがロボット挙動仕様を含む場合に、ロボット挙動仕様に基づいてコスト修正を決定する工程を含む処理を行わせる。
【００２０】
例１５は、例１１〜１４のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、通路と関連付けられたコストを増加させることを含む。
【００２１】
例１６は、例１１〜１５のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、通路と関連付けられたコストを減少させることを含む。
【００２２】
例１７は、例１１〜１６のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、ロボットによる通路の移動と関連付けられた速度パラメータを変更することを含む。
【００２３】
例１８は、例１１〜１７のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、ロボットによる通路の移動と関連付けられた時間帯パラメータを変更することを含む。
【００２４】
例１９は、例１１〜１８のいずれかの主題を含み、指示が、１以上のプロセッサによって実行された際に、１以上のプロセッサに、タスクに関係する現在の条件を決定する工程と、現在の条件に基づいて、コスト修正を調節する工程と、調節されたコスト修正を、タスク特定地図に追加する工程と、調節されたコスト修正を含むタスク特定地図を用いて、目的地データにおいて識別されている目的地位置まで移動するために、およびタスク記述データにおいて識別されているタスクを行うために、ロボットによって使用可能な代替ルートを決定する工程と、ロボットに、代替ルートを用いてタスクを行う指示を実行させる工程とを含む処理を行わせる。
【００２５】
例２０は、例１１〜１９のいずれかの主題を含み、指示が、１以上のプロセッサによって実行された際に、１以上のプロセッサに、複数のロボットによって使用可能な１組の新たな地図であって、複数のロボットのうちの異なるロボットに適用可能な複数のコスト修正を含む１組の新たな地図を生成する工程を含む処理を行わせる。
【００２６】
例２１において、自律モバイルロボットの動きを制御するためのコンピュータプログラム製品は、１以上のプロセッサによって指示が実行された際に、１以上のプロセッサに、地図にアクセスする工程であって、該地図が、地図が作成された領域内の複数の位置についての、位置データ、ルートデータ、およびコストデータを含み、ルートデータのインスタンスが、或る位置から別の位置までのロボットがナビゲート可能な通路を示すものであり、コストデータのインスタンスが、ロボットがナビゲート可能な通路と関連付けられたものである、地図にアクセスする工程と、ロボットによって実行可能なタスクに関係し、タスク記述データおよび目的地データを含むロボット構成データを受信する工程と、タスク記述データに基づいて、通路と関連付けられたコスト修正を決定する工程と、地図およびコスト修正を含むタスク特定地図を用いて、目的地データにおいて識別されている目的地位置まで移動するために、および、タスク記述データにおいて識別されているタスクを行うために、ロボットによって使用可能なルートを決定する工程と、ロボットに、決定されたルートを用いてタスクを行う指示を実行させる工程とを含む処理を行わせる指示を格納した１以上の非一過性のコンピュータ可読ストレージ媒体を含む。
【００２７】
例２２は、例２１の主題を含み、指示が、１以上のプロセッサによって実行された際に、１以上のプロセッサに、ロボット構成データがペイロード記述を含む場合に、ペイロード記述に基づいてコスト修正を決定する工程を含む処理を行わせる。
【００２８】
例２３は、例２１または例２２の主題を含み、指示が、１以上のプロセッサによって実行された際に、１以上のプロセッサに、タスク記述データがタスクタイプを含む場合に、タスクタイプを、配達タスク、交流タスク、または案内タスクのうちの１つとして決定する工程と、タスクタイプに基づいてコスト修正を決定する工程とを含む処理を行わせる。
【００２９】
例２４は、例２１〜２３のいずれかの主題を含み、指示が、１以上のプロセッサによって実行された際に、１以上のプロセッサに、ロボット構成データがロボット挙動仕様を含む場合に、ロボット挙動仕様に基づいてコスト修正を決定する工程を含む処理を行わせる。
【００３０】
例２５は、例２１〜２４のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、通路と関連付けられたコストを増加させることを含む。
【００３１】
例２６は、例２１〜２５のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、通路と関連付けられたコストを減少させることを含む。
【００３２】
例２７は、例２１〜２６のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、ロボットによる通路の移動と関連付けられた速度パラメータを変更することを含む。
【００３３】
例２８は、例２１〜２７のいずれかの主題を含み、通路と関連付けられたコスト修正を決定する工程が、ロボット構成データに基づいて、ロボットによる通路の移動と関連付けられた時間帯パラメータを変更することを含む。
【００３４】
例２９は、例２１〜２８のいずれかの主題を含み、タスクに関係する現在の条件を決定する工程と、現在の条件に基づいて、コスト修正を調節する工程と、調節されたコスト修正を、タスク特定地図に追加する工程と、調節されたコスト修正を含むタスク特定地図を用いて、目的地データにおいて識別されている目的地位置まで移動するために、およびタスク記述データにおいて識別されているタスクを行うために、ロボットによって使用可能な代替ルートを決定する工程と、ロボットに、代替ルートを用いてタスクを行う指示を実行させる工程とを含む。
【００３５】
例３０は、例２１〜２９のいずれかの主題を含み、複数のロボットによって使用可能な１組の新たな地図であって、複数のロボットのうちの異なるロボットに適用可能な複数のコスト修正を含む１組の新たな地図を生成する工程を含む。
【図面の簡単な説明】
【００３６】
【図１】少なくとも１つの実施形態による、モバイルロボットが動作し得るネットワーク化された環境の例のブロック図
【図２】少なくとも１つの実施形態による、モバイルロボットがタスクを実行するためのルートを構成するための例示的な処理のフロー図
【図３】少なくとも１つの実施形態による、定義された領域のロボットが生成した地図の例、およびロボットが移動し得るルートの例の模式図
【図４】少なくとも１つの実施形態による、データ要素、およびデータ要素間の関係を示す、データモデル図の例を示す
【図５Ａ】少なくとも１つの実施形態による、ロボットによって使用可能な地図の一部を示す
【図５Ｂ】少なくとも１つの実施形態による、ロボットによって使用可能な別の地図の一部を示す
【図６】少なくとも１つの実施形態の各部分の実装に関してコンピュータシステムを示す簡略化されたブロック図
【発明を実施するための形態】
【００３７】
以下の説明において、本発明の完全な理解を提供するために、説明の目的で多くの具体的な詳細が述べられる。しかし、本発明は、これらの具体的な詳細を含まずに実施され得ることは自明である。幾つかの例では、本発明を不必要に不明瞭にすることを避けるために、構造および装置はブロック図の形態で示されている。
【００３８】
概観
モバイルロボットは、タスクを実行するために、自動化されたナビゲーションおよび地図作成技術を用い得る。ロボット上のセンサまたは物理的環境内に配置されたセンサを用いて、その物理的環境に関するデータが収集される。地図作成技術は、収集されたセンサデータを用いて、その物理的環境の定義された領域の地図を作成および更新する。地図作成技術は、ロボット内、および／またはロボットと電子的に通信可能なコンピュータ内において実装される。地図作成技術によって生成される地図は、定義された領域の地理的および／または空間的レイアウトを記述するデジタルデータを含む。
【００３９】
タスク計画技術は、地図および他のデジタル情報を用いて、ロボットが、タスクを実行するために、定義された領域を通って原点位置から目的地位置まで移動するためのルートを生成し得る。タスク計画技術は、ロボット内、および／またはロボットと電子的に通信可能なコンピュータ内において実装される。
【００４０】
ナビゲーションを行うために、ロボットは、ロボットの動作中に、ロボットの周囲の物理的環境に関するデータを収集する１以上のセンサを備えている。位置特定およびナビゲーション技術（例えば、ＳＬＡＭ：Simultaneous Localization and Mapping等）は、これらのデジタル地図およびセンサデータを用いて、ロボットの動作中に、或る時間間隔で、地図が作成された領域に関するロボットの二次元または三次元空間における位置および向きを、計算によって決定する。位置特定およびナビゲーション技術は、例えば、コンピュータによって実装されるビジュアルオドメトリアルゴリズムを含み得る。
【００４１】
ナビゲーション技術は、デジタル地図に関するロボットの現在の空間的位置および向きを示すデータを用いて、ロボットの制御システムとインターフェースして、電気機械的処理（例えば、ロボットのモータ、移動運動システム、またはアクチュエータに電力を送る等）を開始し、それにより、特定の輸送タスクについて定義され得る特定の制約に従って、ロボットを定義されたルートに沿って走行させる。
【００４２】
ロボットが、ロボットに対応する目的で設計されていない（従って、任意の所与の時間における障害物の形状および配置が未知であり得る）構造化されていない環境で動作する場合には、モーション計画技術を用いて、ロボットが、動作中に遭遇したその物理的環境の障害物および他の特徴物を避けることを可能にするオンライン計画能力が提供され得る。
【００４３】
モバイルロボット用の既存の計画技術は、ロボットが目的地位置に向かう途上で、衝突を回避するために、ロボットの軌道をリアルタイムで適応させることに焦点を当てている。本明細書において用いられる「位置」とは、その物理的環境の地図上に表されている（構造化されていない環境であり得る）ロボットの周囲の物理的環境に関する、ロボットの二次元の位置および／または三次元の空間的位置を指し得る。
【００４４】
より詳細に後述するように、本明細書に記載される技術は、例えば、タスク記述の具体的な詳細（例えば、目的地位置、タスクタイプ、タスクが実行される時間帯、ペイロード詳細、および／または、タスクを特定したものであり得るロボット挙動仕様等）を含み得る、ロボットの構成の具体的な態様を適応させるためのルート計画を可能にすることにより、モバイルロボット用の既存の計画技術を改良し得るものである。
【００４５】
本開示の技術は、単一のロボットが、異なる時間に異なるルートを用いて、様々な異なるタスクを行うことを可能にし得る、および／または、ロボット隊の個々のロボットが、同時にまたは異なる時間に異なるルートを用いて、異なるタスクを行うことを可能にし得る。本開示の技術によって提供されるモバイルロボットのルート計画の柔軟性の増加は、ロボットの動作を高度の粒度でカスタマイズすることを可能にし得る。例えば、本開示の技術を用いて、ロボットは、ロボットのタスクが新しいリネン類を届けることである場合には、ホテルの交通量が低い領域を通る慎重なルートを用い、ロボットのタスクが客をそれぞれの部屋までエスコートすることである場合には、ホテルの設備を紹介するための異なるルートを用いるよう、プログラムによって制御され得る。
【００４６】
本開示の技術は、病院および健康管理産業を含むがそれらに限定されない多くの用途における、ロボットによるタスクを改善するために実装され得る。ロボットによって運ばれる物理的な品物または１組の品物は、本明細書においては、ロボットのペイロードと称され得る。ロボットが実行するようプログラムされ得るアクティビティは、本明細書においてはタスクと称され得る。タスクは、ロボットによってペイロードを、地図が作成された領域内の１つの位置から別の位置へと輸送することを含み得る。他のタイプのタスクは、ロボットが、地図が作成された領域内の目的地位置まで人を導くまたは人に付き添うようプログラムされる案内タスクと、ロボットが、静的または動的に決定された時間間隔にわたって、地図が作成された領域内の或る位置に静止して留まるようプログラムされる交流タスクとを含む。ロボットが、地図が作成された領域内の１つの位置から別の位置へとナビゲート可能な通路は、本明細書においては通路またはルートと称され得る。ルートという用語は、１つの通路または一続きの連続した通路を指すために用いられ得る。
【００４７】
ネットワーク化されたコンピューティング環境
図１は、様々な実施形態による、ロボットが動作し得る例示的なネットワーク化されたコンピューティング環境を示す。図１では、或るコンピューティングインフラが、ロボット１０２の動作をサポートするよう構成されている。この事例的なコンピューティングシステム１００は、ロボット１０２、ロボットポートコンピュータ１０４、施設アクセスコンピュータ１０６、施設コンピュータ１０８、リモートコンピュータ１１０、電子通信ネットワーク１２０、およびルート計画システム１３０を含む。
【００４８】
例示的なロボット１０２は、１以上のセンサ１１２、１以上の収納用区画１４０、ロボットモデル１５０、ペイロード検証サブシステム１６０、タスク追跡サブシステム１７０、事象検出サブシステム１８０、およびロボット制御サブシステム１９０を備えている。ロボット１０２の詳細については後で更に説明する。
【００４９】
例示的なルート計画システム１３０は、コスト修正サブシステム１３２、地図作成サブシステム１３４、ルート生成サブシステム１３６、地図１３５、およびロボット構成データ１３７を含む。ルート計画システム１３０の詳細については後で更に説明する。
【００５０】
本開示は、ロボット１０２、ロボットポートコンピュータ１０４、施設アクセスコンピュータ１０６、施設コンピュータ１０８、リモートコンピュータ１１０、電子通信ネットワーク１２０、ルート計画サブシステム１３０、センサ１１２、収納用区画１４０、ロボットモデル１５０、ペイロード検証サブシステム１６０、タスク追跡サブシステム１７０、事象検出サブシステム１８０、およびロボット制御サブシステム１９０を含むコンピューティングシステム１００の構成要素の構造と、それらによって行われる機能とを説明する。本開示の機能の各部分は、電子装置、電気機械的アセンブリ、および機械的アセンブリにおいて、コンピュータハードウェア、コンピュータソフトウェア、またはハードウェアとソフトウェアとの組合せとして実装されるプロセッサが実行可能な指示として、実装される。そのような構造および機能は、図面中において、例えば、ボックスおよび線等のグラフィカルな要素を用いて表され得る。
【００５１】
本明細書において、コンピュータ１０４、１０６、１０８、１１０、ネットワーク１２０、ルート計画システム１３０、またはロボット１０２のうちの１以上によって行われるものとして記載される機能は、一部の実施形態では、全体的にロボット１０２および／または他のコンピュータ内において実装されてもよい。同様に、本明細書において、ロボット１０２によって行われるものとして記載される機能は、他の実施形態では、少なくとも部分的に、コンピューティングシステム１００の他の構成要素を用いて実装されてもよい。
【００５２】
一実施形態では、コンピュータ１０４、１０６、１０８、１１０、ルート計画システム１３０、およびロボット１０２は、ネットワーク１２０に双方向通信可能に結合される。ネットワーク１２０は、有線リンク、無線リンク、地上リンク、または衛星リンクの任意のものを用いた１以上のローカルエリアネットワーク、ワイドエリアネットワーク、およびインターネットワークの任意の組合せを広く表す。コンピュータ１０４、１０６、１０８、１１０、およびルート計画システム１３０は、ロボット１０２が配備される建物または構内に対してローカルであり得る。一部の実施形態では、コンピューティングシステム１００には、リモートコンピュータまたはネットワーク化されたデータセンター内の仮想コンピューティングインスタンスが含まれ得るものであり、本明細書に記載されるデータおよび／または機能の各部分は、インターネットでアクセス可能なサーバコンピュータのネットワーク（例えば、パブリッククラウドまたはプライベートクラウド等）によって格納または実行され得る。
【００５３】
コンピューティングシステム１００内のコンピュータがローカルである場合には、それらは、ロボット１０２が動作する建物内に物理的に存在し得る。一部の実施形態では、コンピューティングシステム１００の１以上の構成要素は、ネットワーク１２０を介して、例えば、企業資産追跡システムまたはワークフロー監視システム等の他のコンピューティングシステムと通信し得る。
【００５４】
図１の例では、コンピューティングシステム１００は、ロボットポートコンピュータ１０４を有するロボットポートを含む。ロボットポートは、ロボットが使用されていないときに、ロボット１０２がその中にまたはその隣に戻る装置を含む。一実施形態では、ロボットポートは、ロボット１０２がネットワーク通信または電力（例えば、ロボット１０２の電池の充電等）のために自動的に接続可能な電子接続を含み得る。例えば、ロボット１０２およびロボットポートは、ロボット１０２がポートに到達または機械的に係合したときに、ロボット１０２が電力接続に自動的に接触するのを可能にする構造を有し得る。
【００５５】
例示的な施設アクセスコンピュータ１０６は、ロボット１０に、ロボットが動作する地図が作成された領域の特徴物に関するデータへのアクセスを提供する。施設アクセスコンピュータ１０６はアプリケーションプログラミングインターフェース（ＡＰＩ）を提供してもよく、ロボット１０２は、施設アクセスコンピュータに１０６、エレベータを操作させ、電子扉の動作を要求させ、またはセキュリティセンサを制御させるよう構成された指示およびデータを用いて、ＡＰＩを呼び出すようプログラムされる。施設アクセスコンピュータ１０６は、地図が作成された領域内の他の電子システム（例えば、エレベータ、扉ロック、扉開放システム、セキュリティセンサ等）と通信し得る。
【００５６】
例示的な施設コンピュータ１０８は、ロボット１０２に対する監督機能を有するようプログラムされ、オペレータがロボットと通信するためのインターフェースを提供する。施設コンピュータ１０８は、ロボット１０２が自律的地図作成手順を実行中にロボット１０２によって行われた電子的な要求に応答するようプログラムされ得る。施設コンピュータ１０８は、受け取り、配達、または他の輸送タスクに対するロボット１０２の配備を制御し得る。
【００５７】
施設コンピュータ１０８は、ロボット１０２に、地図が作成された環境内にある一時的な障害物の位置を示すデータへのアクセスを提供し得る。そのようなデータの例としては、祭日の装飾、群衆、および仮設物の位置が挙げられる。
【００５８】
施設コンピュータ１０８は、地図が作成された領域内またはその周囲に配置されたセンサ（例えば、水分センサ、煙検出器、セキュリティカメラ等を含む）からデータを受信して、ロボット１０２にデータへのアクセスを提供するようプログラムされ得る。それに加えて、施設コンピュータ１０８は、ロボット１０２に、地図が作成された領域に影響する予定されている行事（例えば、カーペットクリーニング、灌漑スケジュール、および進行中の建設等）の時間および位置を記述するデータへのアクセスを提供し得る。本開示において言及される任意のデータは、永続的なメモリまたはデータベース内に維持され、予測される有効期限の日付および／または時間と関連づけられ得る。任意のそのようなデータは、無線通信を含む電子通信の任意の適切な方法によって、ロボット１０２に電子的に通信され得る。
【００５９】
ロボット１０２の更なる詳細および例示的な地図作成手法について、以下に説明する。ルート計画システム１３０の更なる詳細は、ロボット１０２および地図作成技術のより詳細な議論に続いて説明される。
【００６０】
ロボット
図１の例では、ロボット１０２は、全体的にまたは部分的にロボット内に収容され得るプログラムされたデジタルコンピュータの制御下にある、電源内蔵式の電気機械的な自律モバイルロボットである。ロボット１０２の一部のデータまたは機能は、ロボットがネットワーク１２０を介して別のコンピュータと通信することによって達成され得る。ロボット１０２は、１以上のアクチュエータ１４４と、推進またはモビリティサブシステム１４２とを用いて、その周囲の環境に対して相対的に移動する。アクチュエータ１４４は、例えば、機械的リンク機構、電気的線形アクチュエータ、油圧式アクチュエータ、歯車装置を用いて実装され得る。モビリティサブシステム１４２は、ロボットの底部に取り付けられた１組のモータ付きの車輪（または、例えば、軌道または脚）として実装され得るものであり、アクチュエータ１４４によって、ロボットの制御サブシステム１９０に通信可能に結合され得る。
【００６１】
事例的なロボット１０２は、施設の物理的な床と係合するよう設計されているが、ロボット１０２の他のバージョン（例えば、ドローンのような航空機の実装例等）も、本開示の技術の各部分を等しく用い得る。ロボット１０２は、その環境に適した速度（例えば、人が歩く速度以下）で推進し得る。一部の実施形態では、ロボット１０２は、ロボット１０が動作している物理的環境の条件に基づいて、その速度を調節し得る。ロボット１０２において実装される車輪または他の推進機構は、例えば、タイル、カーペット、およびコンクリート等の異なる表面に対する適合性を含む、様々な屋内環境および屋外環境における性能に合わせて選択され得る。
【００６２】
例示的なロボット１０２は、人に対してメッセージを通信するためのグラフィカルユーザインターフェース（ＧＵＩ）を提供するタッチスクリーンを含み得る１以上の入力装置を含む。ロボット１０２は、タッチスクリーンを介して受信された入力に応答して、指示を生成またはアクションを実行するようプログラムされ得る。例えば、タッチスクリーンを介して受信される入力は、輸送された品物の配達を受け取る権限がある人の認証情報（例えば、パスコードまたは人のデジタル写真等）を含み得る。ロボット１０２は、他の入力機構（例えば、キーパッド、キーボード、ボタン、スイッチ、音声コマンド用の音声センサ、マイク、ビデオカメラ、または他の読取器もしくは感知装置等）を含んでもよい。
【００６３】
例示的なロボット１０２は、ロボット１０２が、ロボット上もしくはロボット内の、および／または、その周囲の物理的環境における特性、アクティビティ、または状況を示すセンサデータを取得するために用い得るセンサ１１２を備えている。ロボット１０２上またはロボット１０２内に実装され得るセンサの例示的なタイプとしては、レーザセンサ、光検出および測距（ＬＩＤＡＲ）位置センサまたはモーションセンサ、力センサ、圧力センサ、三次元（３Ｄ）カメラ、カラーカメラ、気圧計、高度計、加速度計等が挙げられる。
【００６４】
一実施形態では、レーザセンサ、ＬＩＤＡＲ、３Ｄカメラ、およびカラーカメラは、物理的環境のモデルを構成するためにプログラムの制御下で変換され得るデータを収集する。モデルは、環境内に存在する障害物または物体（部屋、廊下、扉、窓、階段、エレベータ、出入り口、標識、および印のような物理的特徴物を含む）を示すデータを含み得る。モデルの様子は、ロボット１０２によってナビゲーションおよびタスクの実行のために用いられるデジタル地図に組み込まれ得る。例示的な地図については、より詳細に後述する。
【００６５】
ロボット１０２は、そのセンサ１１２のうちの任意のものから取得されたセンサデータを解析し、センサデータに基づいてプログラミング論理を実行して、決定または判断（例えば、ナビゲーションの決定、事象検出の決定、および制御の決定等）を行い得る。例えば、ロボット１０２は、センサデータを用いて、ルート関連事象（例えば、エレベータ付近に集まっている群衆、または廊下てひっくり返っているカート等）を検出し得る。
【００６６】
例示的なロボット１０２は、コンピューティングシステム１００のコンピュータおよびシステムと通信するよう構成された１以上のネットワークインターフェースを備えている。一部の実施形態では、ロボット１０２は、ロボット１０２がスマートフォン、タブレットコンピュータ、ウェアラブル装置、またはモノのインターネット（ＩｏＴ）装置を含むモバイル電子装置と通信するために用いる、より短距離の無線電子通信機能を備えている。例えば、ロボット１０２は、ロボット１０２と電子的に通信する権限を有する人と関連付けられたモバイル機器から、電子通信を受信してもよく、この電子通信に応答して、ロボット１０２は、その走行計画を更新するために、モーション計画アルゴリズムを実行する。
【００６７】
ロボット１０２内に実装されるネットワークインターフェースは、イーサネット（登録商標）、ワイヤレス・フィディリティー（ＷＩＦＩ）、３Ｇおよび／または４Ｇモデム、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線（ＩＲ）、無線周波数（ＲＦ）、近接場通信（ＮＦＣ）、および低帯域幅無線を含む、任意の適切な有線、無線、または光ネットワーキング技術を用い得る。一部の実施形態では、ロボット１０２は、ロボット１０２の地理的位置を決定するために用いる全地球測位システム（ＧＰＳ）の受信機を備えている。
【００６８】
引き続き図１を参照すると、例示的なロボット１０２は、収納用区画１４０、ロボットモデル１５０、ペイロード検証サブシステム１６０、タスク追跡サブシステム１７０、事象検出サブシステム１８０、ロボット制御サブシステム１９０を含む。ロボットモデル１５０、ペイロード検証サブシステム１６０、タスク追跡サブシステム１７０、事象検出サブシステム１８０、およびロボット制御サブシステム１９０は、コンピュータソフトウェア、ハードウェア、またはハードウェアとソフトウェアとの組合せで実装されるプロセッサが実行可能な指示を含み、これらの指示はコンピューティングシステム１００のメモリまたはデータストレージに格納される。
【００６９】
一般的に、ロボット制御サブシステム１９０は、ロボットモデル１５０を用いて、ルート計画システム１３０、ペイロード検証サブシステム１６０、タスク追跡サブシステム１７０、事象検出サブシステム１８０の実行およびそれらの間の通信を調和させて制御すると共に、ロボット１０２および／またはコンピューティングシステム１００の他の電子的構成要素および／または電気機械的構成要素と電子的に通信して、ロボット１０２の動作を必要に応じて制御する。収納用区画１４０、モデル１５０、ペイロード検証サブシステム１６０、タスク追跡サブシステム１７０、および事象検出サブシステム１８０の図示されている構成要素について、以下により詳細に説明する。
【００７０】
例示的なロボット１０２は、１以上の収納用区画１４０を備えている。収納用区画１４０はサブ区画を含んでもよく、各区画またはサブ区画は、ロボット１０２が用いられる特定の環境または特定の用途に合わせた適切な品物を保持するサイズであり得る。例えば、接待用途では、収納用区画１４０は、リネン類、バスルームの備品、薬、雑誌および読み物、遺失物（例えば、財布、鍵、パーソナル電子デバイス等）のうちの任意のものを運ぶことを可能にし得る。病院または健康管理施設の用途では、収納用区画１４０は、例えば、薬、生体試料、応急手当て用の品物、医療装置、補給品、および／または食品を運ぶよう設計され得る。上記は、用途およびロボット１０２が取り扱い得るペイロードのタイプの説明的であって限定するものではない例である。
【００７１】
例示的なロボットモデル１５０は、ロボット１０２の機械的構成要素の運動学および動力学の、コンピュータによって実装される数学的表現を含む。ロボットモデル１５０は、ロボット制御サブシステム１９０によって、ロボットのモビリティサブシステム１４２および／またはロボット１０２の他の可動構成要素のための計画およびモーション制御パラメータを決定するために用いられる。モデル１５０は、例えば、データベースおよびコンピュータコードで実装されるアルゴリズム等の適切なコンピュータ・プログラミング・コンストラクツを用いて実装され得る。
【００７２】
例示的なペイロード検証サブシステム１６０は、事象検出サブシステム１８０および／またはタスク追跡サブシステム１７０とインターフェースするために、センサ、マイクロコントローラ、またはマイクロプロセッサから信号を受信する１以上の電子回路を含む。例えば、収納用区画１４０が、感知装置（例えば、量り、圧力スイッチ、力センサ、カメラ、バーコードリーダー、または収納用区画１４０への品物の配置または収納用区画１４０からの品物の取り出しを検出可能な別の機構等）を備えている場合には、ペイロード検証サブシステム１６０は、収納用区画１４０の感知装置によって生成されたデータを解析して、収納用区画１４０内にロボットのペイロードの品物が存在するか否かを検出する。
【００７３】
収納用区画１４０は、識別情報を読み取ることができる感知装置（例えば、バーコードリーダーまたはカメラ等）を備えており、ペイロード検証サブシステム１６０は、検出されたペイロードの品物に対して識別検証を行い得る。ペイロード検証サブシステム１６０は、データ（例えば、ペイロードの品物の検出および／または識別が肯定的または否定的であったことを示すデータ）を事象検出サブシステム１８０に通信し得る。
【００７４】
ペイロード検証サブシステム１６０によって取得された情報は、ロボット１０２またはコンピューティングシステム１００によって、ペイロードを特定したルート計画を行うために用いられ得る。例えば、ペイロード検証サブシステム１６０は、センサ１１２によって生成され事象検出サブシステム１８０によって通信された信号に基づいて、ロボット１０２がベッドリネン類の新たなペイロードを受け取ったことを決定し得る。ペイロード検証サブシステム１６０は、検出されたペイロード情報を、更なる処理のためにタスク追跡サブシステム１７０に通信し得る。
【００７５】
タスク追跡サブシステム１７０は、プロセッサによって実行されたときに、ロボット１０２によるタスクの開始および実行をモニタリングする。例えば、タスクタイプが配達である場合には、タスク追跡サブシステム１７０は、ペイロード検証サブシステム１６０とインターフェースして、ロボット１０２がルート計画サブシステム１３０から受信したルートをロボット１０２が移動している際の、ロボット１０２によって運ばれているペイロードの状況をモニタリングする。タスクタイプが案内または交流である場合には、タスク追跡サブシステム１７０は、センサ１１２とインターフェースして、周囲の環境内の人および／または物理的な物体に対して相対的なロボットの位置をモニタリングおよび追跡し得る。
【００７６】
より一般的には、タスク追跡サブシステム１７０は、ロボット制御サブシステム１９０とインターフェースして、ロボット１０２をタスク開始時の位置からタスク完了時の位置まで駆動するために、モデル１５０において定義されている構成および姿勢によってロボット１０２を動かす。タスクの実行中に事象が生じた場合には、タスク追跡サブシステム１７０は、検出された事象に応答するために、事象検出サブシステム１８０およびロボット制御サブシステム１９０とインターフェースして、ロボット１０２に、ロボット１０２の移動および／またはルートを適切に調節させ得る。
【００７７】
例示的な事象検出サブシステム１８０は、ロボット１０２のセンサ１１２および／もしくは他のサブシステム（例えば、ルート計画システム１３０、ペイロード検証サブシステム１６０、タスク追跡サブシステム１７０、およびロボット制御サブシステム１９０等）、並びに／またはコンピューティングシステム１００の他の構成要素から、情報を受信するようプログラムまたは構成される。事象検出サブシステム１８０は、上記および／または他のデータソースから受信されたデータストリームをモニタリングし、データストリームから情報を抽出し、事象の発生が示されているかについて、抽出された情報を解析するようプログラムされる。事象発生の例としては、新たなタスクまたはペイロードの検出、タスクまたはペイロードに対する調節の検出が挙げられる。
【００７８】
地図作成
本開示のこの項は、ロボット１０２をプログラムするために用いられ得る地図作成技術の例を説明するものである。例示的なロボット１０２は、内蔵メモリを有する。内蔵メモリは、タスクを定義するデータを受信して格納し得る。ロボットが自律的ナビゲーションを行うことを可能にする、ロボットによって生成されるデジタル地図は、ロボットの内蔵メモリに格納され得る。デジタル地図は、地図が作成された領域の１以上の物理的特徴物（例えば、扉、エレベータ扉、標識、印、階段等）の記述および／またはラベルを含み得る。
【００７９】
デジタル地図は、コンピュータ上で作成されてロボットのメモリにロードされてもよく、または、ロボット１０２が内蔵の地図作成ソフトウェアを実行して、ロボット１０２の様々なタスクについてのデジタル地図を生成してもよい。ロボット１０２は、例えば、タスク属性またはペイロード属性に基づいて、地図が作成された環境を通る複数の異なるルートを生成し得る。例えば、ロボット１０２は、異なるタイプのタスクまたはペイロードについて、それぞれ異なるルートを生成し得る。ロボット１０２は、ペイロードのそれぞれ異なる品物についての配達位置であり得る一時停止地点を含むように、任意のルートを定義してもよい。
【００８０】
動作においては、タスクの実行中、ロボット１０２は、その内蔵メモリに格納されているナビゲーションソフトウェアを実行する。ナビゲーションソフトウェアは、プロセッサによって実行されたときに、ロボット１０２に、地図が作成された領域のデジタル地図、および、特定のタスクについて指定されている、地図が作成された領域を通るルートを読み込ませる。
【００８１】
図５Ａは、様々な実施形態による、建物の或る階の、ロボットが生成した地図５００の例である。地図５００は、地図が生成された建物の階の注釈５０２を含む。白い領域５０４は、廊下および部屋を含む、ロボットによってナビゲート可能な空間に対応する。グレーの領域５０６は、ロボットが内部をナビゲート可能であるが、ナビゲートするにはより高いコストを有する領域を含む。これらの領域は、例えば、浴室、小部屋もしくは奥まった場所、または物が散らかっている領域を含み得る。エレベータ５０８は、この例示的な地図上では、ロボット１０２が階の間をナビゲートするために用いてよいものとして注釈されている。黒い線は、内壁もしくは外壁、または扉に対応する。
【００８２】
ロボットが生成した地図は、ロボット構成データ、リアルタイムのデータ、または、物理的環境、ロボット、タスク、ルート、もしくはペイロードに関係する他の可変データを含む動的データに基づいて更新され得る。動的データによって影響される任意の領域に対応する画素は、ナビゲーションのコストの増減を示すために修正され得る。一実施形態では、ロボットが生成した地図は、１以上のレイヤを含む。図示されている地図５００の上または下に、動的データを反映する更なるレイヤが重ねられ得る。ロボット１０２が動的データを受信したら、動的データに基づいて、新たなレイヤが生成され得る。動的データが、終了時間または特定の期間と関連付けられている場合には、そのレイヤは、指定されている時間に地図に追加または地図から除去され得る。
【００８３】
ロボットが生成する地図の他の例は、物理的環境の地図が作成された領域の一部を各画素が表す、画素のグリッドを有する画素レベルの図を含む。画素には、その画素によって表される物理的領域を通るロボットによるナビゲーションと関連付けられた固定または可変のコストが割り当てられ得る。ナビゲートするためのコストは、画素の色または強度とリンクされてもよく、例えば、白い画素は、ナビゲートするためのコストが０であることを示し、その位置が、開けた空間に対応することを意味し得るものであり、一方、暗いグレーの画素は、ナビゲートするためのコストが無限大であることを示し、その位置が、壁または禁止されている領域に対応することを示し得るものであり、中程度のグレーの画素は、例えば、出入り口またはナビゲートするのが困難であり得る領域等の、ナビゲートするためのコストが増加しているが無限ではない領域に対応し得る。
【００８４】
図５Ｂは、ロボット１０２またはコンピューティングシステム１００の他の構成要素によって実行される自律的地図作成手順によって生成され得る、ロボットが生成する地図のグラフに基づく表現の例である。一実施形態では、グラフ５１０は、複数のノード５１４および複数のエッジ５１８を含む。各ノード５１４は、エッジ５１８によって、１以上の他のノードに接続される。各エッジ５１８は、固定または可変のコストと関連付けられ得る。グラフのいずれかのエッジ５１８またはエッジ５１８のグループは、タスクに依存する、ロボットに依存する、またはペイロードに依存する複数の異なるコストと関連付けられ得る。
【００８５】
例えば、リネン類の輸送を含む配達タスクは、廊下を直に浴室に接続するエッジには、比較的低いコストを関連付け得るが、廊下を寝室に接続して寝室を浴室に接続するエッジには、より高いコストを関連付け得る。しかし、案内タスクが、客に対して家屋のツアーを行うことを含む場合には、案内タスクは、廊下を寝室に接続するエッジにはより低いコストを関連付けると共に、廊下を浴室に接続するエッジにはより高いコストを関連付け得る。このようにして、本開示の技術は、ロボットに、特定のタスクについてより適切または好適なルートを優先させるために、地図に対して、タスクに基づくコスト修正を割り当て得る。
【００８６】
エッジは、それらに関連付けられたコストに基づいて、ロボットの現在のタスクに関連する任意の所与のルートに含まれるか、または除外され得る。例えば、或るエッジが、高過ぎると見なされるナビゲーションのコストを有する場合（例えば、２つの部屋が、ロボットが移動できない領域（例えば、階段等）によって接続されている場合）には、ロボットの構成（例えば、割り当てられたタスク、ペイロード、または挙動等）の態様と関連付けられたコスト修正に基づいて、ロボットが生成した地図は、グラフからそのエッジを除外し得るか、または、ルートからそのエッジが除外され得る。
【００８７】
或る領域をナビゲートするためにロボットが使用可能な地図は、ロボットが働く環境の様々な様子を記述する他のタイプのデータを含み得る。例えば、ロボット可読地図は、特定の特徴物をそれぞれの位置情報と関連付けるデータ（例えば、チェックインカウンターは１階のフロントルーム内に位置する、または、冷蔵庫はカウンターの後ろに位置する）を含み得る。コンピューティングシステム１００の実装例で用いられ得る地図のタイプの例としては、オブジェクト意味論地図および自由空間地図が挙げられる。本明細書に記載される技術は、何らかの特定のタイプのロボット可読地図に限定されない。
【００８８】
ルート計画およびルート修正処理
再び図１を参照すると、例示的なロボット１０２は、ルート計画システム１３０を含むか、または、ルート計画システム１３０に通信可能に結合される。ルート計画システム１３０は、プロセッサによって実行されたときに、ロボット１０２が、そのロボットに割り当てられた様々なタスクを実行する際に用いるルートを生成する。動作においては、ルート計画システム１３０は、ロボット構成データ１３７および地図１３５を用いる。
【００８９】
ロボット構成データ１３７は、例えば、識別データまたは記述データ等のデータ（例えば、特定のタスク、特定のロボットもしくはロボットのグループ、特定のロボットの挙動、または特定のペイロードの品物と関連付けられたルート関連データ）を含む。タスクを特定したロボット構成データは、タスクが、例えば、ペイロードを届けることであるか、１つの位置から別の位置へと人を案内することであるか、または、或る位置において交流を行うことであるかを示す、タスクタイプ識別子を含み得る。例えば、ロボット構成データは、ロボットが配達タスクではなく案内タスクを実行する際には、比較的高い最大速度が許容されることを示し得る。
【００９０】
ロボットを特定した構成データは、特定のロボットの役割または能力の記述を含み得る（例えば、隊の全てのロボットのうちの或るサブセットのみが、ペイロードを運ぶよう、または特別なタイプのペイロードを運ぶよう設計され得る）。ロボット構成データは、特定のタイプの全てのロボットが、特性のルートを走行することを優先するよう（例えば、他の全てのルートにより高いコストを割り当てることにより）プログラムされるべきであることを指定し得る。
【００９１】
特定のタイプのロボット挙動は、音、視覚的効果（例えば、照明等）、走行速度、またはロボットが行うことができる特別な動きを含み得るものであり、ロボット構成データは、そのような挙動が許容されるまたは許容されない位置、ルート、またはタスクを指定し得る。例えば、音を鳴らすロボット挙動は、特定の時間帯に客が眠っている領域を通るルート上では、より高い走行のコストと関連付けられ得る。
【００９２】
特定のペイロードの品物に関係するロボット構成データは、ペイロードを特定した取扱いまたはルート決定指示を含み得る（例えば、構成データは、ロボットのタスクがリネン類を届けることである場合には、家屋の正面を通って走行することに、より高いコストを関連付け得る）。
【００９３】
地図１３５は、例えば、図５Ａ〜図５Ｂを参照して上述したように生成されたロボット可読地図を格納する、サーチ可能で更新可能なデータベースを用いて実装され得る。地図１３５は、地図が作成された同じ領域についての複数の異なる地図を含み得る。例えば、地図１３５は、地図中の特定のルートに、ロボット構成データ１３７の違いに基づく異なるコストデータが関連付けられた異なる地図を含んでもよい。ロボット構成を特定したコストは、ロボット構成データ１３７に基づいて、それぞれ異なるコストデータを有する複数の異なる地図を作成することによって、または、地図に対してレイヤを選択的に追加または除去することによって、実装され得る。
【００９４】
コスト修正サブシステム１３２は、ロボット構成データ１３７を受信し、ロボット構成データ１３７に基づいて、それに関連付けられた、地図１３５に対するコスト修正を決定する。ロボット構成データ１３７と関連付けられたコスト修正の決定は、コスト修正サブシステム１３２によって自動的に（例えば、様々なロボット構成をそれらと関連付けられたコスト修正にマッピングするルックアップテーブルを参照することによって）、コンピューティングシステム１００の入力装置もしくはユーザインターフェースによって受信されインタラクションデータを用いて、または、インタラクションデータと自動化された処理との組合せを用いて、行われ得る。
【００９５】
地図作成サブシステム１３４は、コスト修正サブシステム１３２によって生成された新たなまたは変更されたコストデータ（あれば）を、（例えば、新たな地図を作成することによって、または、地図に対してレイヤを追加もしくは除去することによって）地図１３５に組み込む。地図の作成および更新は、地図作成サブシステム１３４によって、例えばコスト修正を地図およびルートに割り当てるコンピュータプログラムを用いて、コンピューティングシステム１００の入力装置もしくはユーザインターフェースによって受信されインタラクションデータを用いて、または、インタラクションデータと自動化された処理との組合せを用いて、行われ得る。
【００９６】
ルート生成サブシステム１３６は、プロセッサによって実行されたときに、地図１３５およびロボット構成データ１３７にアクセスし、ロボット構成データ１３７に従ってロボットが行うようプログラムされた特定のタスクを実行する際にロボット１０２が用いるルートを決定する。決定されたルートは、タスクの実行のために、ロボット１０２に格納されるか、または別様でロボット１０２がアクセス可能にされる。ルート生成サブシステム１３６は、ルートを決定するために、例えば、或るタイプのグラフ探索アルゴリズムを実行し得る。
【００９７】
図２は、少なくとも１つの実施形態による、モバイルロボットがタスクを実行する際に走行するためのルートを構成するための例示的な処理のフロー図である。この処理の態様は、コンピュータソフトウェア、ハードウェア、またはハードウェアとソフトウェアとの組合せで具現化される、プロセッサが実行可能な指示として実装される。一実施形態では、図２の処理２００の全てまたは一部は、プログラムの制御下で、コンピューティングシステム１００の１以上の構成要素によって、またはロボット１０２によって、単独で、またはコンピューティングシステム１００の１以上の他のコンピュータと組み合わせて、行われる。
【００９８】
図２は、実行されたときに、本明細書に記載される機能的改善および技術的進歩を行わせる、１以上のコンピュータプログラムまたは他のソフトウェア要素を実装するために用いられ得るアルゴリズム、計画、または概要を開示することを意図したものである。図２は、当業者が、彼らの蓄積された技能および知識を用いて、コーディングまたは実装することを計画しているソフトウェアプログラムの基礎をなすアルゴリズム、計画、または仕様に関して互いに通信するために、通常用いる詳細さのレベルで記述されている。
【００９９】
工程２０２において、コンピューティングシステム１００は、ロボット構成データを決定する。本明細書において論じるように、ロボット構成データは、特定のタスク、ペイロード、および／またはロボット挙動を識別または記述する１以上のデータ要素または属性を含み得る。例えば、ロボット構成データは、ロボット番号Ａ１２３が、クローゼットＢ７の受取位置からホテルの客室５２５の目的地位置までリネン類のペイロードを運ぶ配達タスクを実行することを指定し得る。
【０１００】
ロボット構成データは、施設コンピュータ１０８から、リモートコンピュータ１１０から、または他のロボット１０２から、無線でまたはロボットポートコンピュータ１０４を介して受信され得る。一実施形態では、これらのコンピュータのうちの１以上は、デジタル地図作成およびルート計画における解析および使用のために、ロボット構成データをロボット１０２に送信するために、プッシュ通知または他の積極的なメッセージングシステムを用い得る。別の実施形態では、ロボット１０２は、その時々のタスクを特定したロボット構成データおよび／または地図データを要求するために、上述のコンピュータのいずれかに対して、１以上のポーリングメッセージを周期的に送信し得る。
【０１０１】
一部の実施形態では、ロボット構成データは、地図が作成された領域内の物理的位置または特徴物と関連付けられたリアルタイムのセンサデータを含み得る。センサデータは、タスクを良好に完了するためのロボットの能力に影響し得る障害物または事象を示すデータを含み得る。
【０１０２】
工程２０４において、コンピューティングシステム１００は、コスト修正がロボット構成データと関連付けられているか否かを決定する。これを行うために、コンピューティングシステム１００は、例えば、自然言語処理アルゴリズムを用いて、ロボット構成データを構文解析し、ロボット構成データからコスト修正データを抽出してもよく、または、コンピューティングシステム１００は、ロボット構成データから抽出したパラメータと関連付けられたコスト修正を決定するためのクエリもしくはテーブル探索処理を実行してもよく、または、コンピューティングシステム１００は、ユーザインターフェースもしくは入力装置によってコスト修正データを取得してもよい。
【０１０３】
ロボット構成データと関連付けられ得るコスト修正の例としては、特定のルートまたは通路上におけるロボットによるナビゲーションのコストの増加または減少、ロボット動作パラメータ（例えば、移動速度等）に対する調節、および／または、ロボットスケジューリングパラメータ（例えば、タスクを実行する時間帯等）に対する調節が挙げられる。
【０１０４】
工程２０４において、コンピューティングシステム１００が、工程２０２において決定されたロボット構成データと関連付けられたコスト修正が無いことを決定した場合には、コンピューティングシステム１００は、以下に説明する工程２１４に進む。工程２０４において、コンピューティングシステム１００が、工程２０２において決定されたロボット構成データと関連付けられた少なくとも１つのコスト修正があることを決定した場合には、コンピューティングシステム１００は工程２０６に進み、工程２０４において決定されたコスト修正によって影響されるロボット可読地図にアクセスする。コンピューティングシステム１００は、コスト修正データと関連付けられたルートを、既存の地図において定義されているルートと比較することにより、工程２０４において決定された何らかのコスト修正によって影響される地図（あれば）を決定し得る。
【０１０５】
工程２０８において、コンピューティングシステム１００は、工程２０４において決定されたコスト修正を、工程２０６において決定された影響される地図に適用する。これを行うために、コンピューティングシステム１００は、このコスト修正を、地図上の影響されるルートに既に割り当てられている既存のコストに対して加算（もしくは減算）するか、または、このコスト修正を、影響されるルートに単純に（例えば、地図に注釈をつけること等によって）割り当てる。一部の実施形態では、コンピューティングシステム１００は、地図の１以上の新たなレイヤを作成してもよく、この新たなレイヤは、構成を特定したコスト修正と、地図の影響されるルートまたは他の特徴物との関連付けとを含む。
【０１０６】
工程２０８は、地理的デジタル地図データとは別に維持されているコストテーブルまたはコスト地図を更新することを含み得る。コスト値は、地理的地図データ内に直に、または別のコストテーブルもしくはコスト地図内に維持され得る。様々な実施形態で用いられる具体的なデータ構造は重要ではなく、ロボット１０２が、動作環境のルートまたは他の特徴物と関連付けられた構成に基づくコスト修正に関係するデータを、影響されるルートまたは他の特徴物の物理的または地理的位置を示す位置データへの何らかの形態のリンクまたは関連付けと共に格納する限りにおいて、他のデータ構造が用いられてよい。
【０１０７】
幾つかの特徴物は、変化しないコストを有する。例えば、壁に対応する特徴物は、永久的な固定されたコストを有し得る。コスト修正は、典型的には、固定されたコストを有する特徴物には適用されない。他のルートまたは他の特徴物は、工程２０２において受信または決定されたロボット構成データに従って調節または修正され得る可変コストを有する。
【０１０８】
工程２０２、２０４、２０６、２０８によって記載されている、コスト修正を地図に割り当てるための処理は、ロボットの構成データの変更に応答してロボット１０２に選択的にロードされ得る１組の読み出し可能な地図を作成するために、コンピューティングシステム１００によってオンラインモードまたはオフラインモードで行われ得る。以下に説明する工程２１０、２１２、２１４は、例えばロボット１０２の実動作中にオンラインで行われてもよく、またはオフラインで行われてもよい。
【０１０９】
工程２１０において、コンピューティングシステム１００またはロボット１０２は、（別のコンピュータ、人もしくはコンピュータオペレータ、または別のロボットから）タスクを受信したか否かを決定する。タスクは、ＷＩ−ＦＩ（ワイヤレス・フィディリティー）ネットワークまたは別の形態の電子通信ネットワークを介して受信され得る。タスクは、更なるロボット構成データを含み得る。タスクが受信されていない場合には、処理２００が終了するか、または、工程２１０において新たなタスクのために待機する。
【０１１０】
工程２１０においてタスクが受信されている場合には、工程２１２において、コンピューティングシステム１００またはロボット１０２は、工程２０８において生成または更新されたコスト修正済地図を用いて、タスクを行う際に走行するルートを決定する。ルートは、コンピューティングシステム１００またはロボット１０２によって、適用されたコスト修正を含む地図に対してグラフ探索アルゴリズムを実行することによって決定され得る。グリッド地図またはノードネットワーク地図によって用いられ得るグラフ探索アルゴリズムの例としては、ダイクストラ法、Ａ−Ｓｔａｒ（Ａ＊）、Ｄ−Ｓｔａｒ、およびＤ−Ｓｔａｒ Ｌｉｔｅが挙げられるが、それらに限定されない。
【０１１１】
工程２１４において、コンピューティングシステム１００またはロボット１０２は、ロボットに、工程２０８において作成または更新されたコスト修正済地図に基づいて工程２１２において決定されたルートを用いて、工程２１０において受信または決定されたタスクを実行させる。タスクを実行するために、ロボットの制御システムは、ロボットに、タスクを完了するために選択されたルートに沿って走行または移動させる。
【０１１２】
工程２１４の後、処理２００は、工程２０２または工程２１０に戻り得る。一部の実施形態では、ロボット１０２は、工程２１０、２１２、２１４を行っている間、工程２０２、２０４、２０６、２０８を行い続けてもよい。処理２００は、隊の中の複数の個々のロボットについて、異なるロボットについての異なるロボット構成データを用いて繰り返されてもよく、それにより、異なるロボットについての地図に異なるコスト修正を適用して、隊の中の異なるロボットに適用可能なそれぞれ異なるコスト修正を有する１組の新たな地図を作成してもよい。
【０１１３】
また、工程２１０において、センサデータによって示されている現在の条件に基づいて、更なるコスト修正がリアルタイムで決定され、ロボット構成データと関連付けられたコストデータを用いて既に修正された地図に追加され得る。このように、工程２１２において、処理２００が現在の条件に応答して１以上のコスト修正済代替ルートを決定するのを可能にするために、構成に基づくコスト修正済地図に、更なるコスト調節が適用され得る。
【０１１４】
図３は、少なくとも１つの実施形態による、定義された物理的領域（例えば、建物または家屋の階等）のロボットが生成した地図の例、およびロボットが移動し得る異なるルートの例の模式図である。図３の例では、地図３００は、ロボット１０２がナビゲート可能な空間（例えば、廊下またはより大きい部屋等）に対応する白い領域を含む。黒い線は内壁または外壁に対応する。
【０１１５】
地図３００は、通常はナビゲート可能であるが、ロボット１０２が特定のタスクを行っている間はナビゲートできない地理的または空間的領域を示し得る。地図３００は、ロボットがナビゲート可能であるが、特定のタスクまたは特定のロボット構成の他の態様については、より高いナビゲーションのコストと関連付けられている地理的または空間的領域を示し得る。ナビゲート可能でない領域またはより高いコストを有するナビゲート可能な領域は、例えば、特定のタイプのタスクの制約、またはロボットのペイロードの個々の品物と関連付けられた制約等の、ロボットの現在の構成の特定の態様に基づいて決定され得る。ナビゲート可能でない領域またはより高いコストを有するナビゲート可能な領域は、ロボット１０２が輸送タスクを実行するためにアクセスするロボットのデジタル地図において、グラフィカルにまたはテキストで識別される。
【０１１６】
本明細書において用いられるコストという用語は、地図が作成された領域を通ってロボットが走行する適切なルートを決定するために、ロボットのルート計画およびナビゲーションアルゴリズムによって用いられるパラメータ（例えば、一定のまたは計算された数値等）を指し得る。コストパラメータは、例えば、ロボット構成データにおいて指定されている１以上の制約に基づいて計算され得る。コストデータは、地図の領域（例えば、ルートまたは特徴物等）と論理的に関連付けられ、更に、特定のタスク、ロボット挙動、および／またはペイロードの品物と関連付けられ得る。
【０１１７】
コストデータ、地図の領域、タスク、およびペイロードの品物の論理的関連付けは、ロボットのメモリに格納され得る。例えば、ロボット１０２は、格納されているコストデータにアクセスして、特定のタイプのタスクまたはペイロードと関連付けられたコスト修正を決定し得る。特定のタスクおよび／またはペイロードの品物について、高いコストとして定義され得る地図の領域の例としては、家屋の正面、家屋の裏手、非常に目立つ領域、制限された領域、交通量が高い領域、交通量が低い領域、客用エレベータ、貨物用エレベータが挙げられる。
【０１１８】
例示的な地図３００は、複数の部屋または領域３０８、３１６、３１８、３２０、３２２、３２４と、アクセスが制限された扉３１４とを示している。或るペイロードについてプログラムによって定義された例示的なタスクにおいて、ロボット１０２は、その特定のペイロードを原点位置３１０から目的地位置３１２まで輸送するために設計された特定のルートＲ１、Ｒ２、Ｒ３、またはＲ４を移動し得る。この例では、ルートＲ１、Ｒ２、Ｒ３、Ｒ４は、ロボットおよび／または別のコンピュータによって、ルート計画ソフトウェアを用いて、複数の異なるセットのロボット構成データと関連付けられたコストパラメータおよびコスト修正を解析することによって、計算によって生成されたものである。一般的に、各ルートのコストは、予め定義されコストＣｉ（ここで、ｉ＝１〜構成の数（この場合には４））＋構成を特定したコスト修正Ｍｉの合計として示される。
【０１１９】
図３の例では、ルートＲ１は、建物の正面部分を通るルートを示し得るものであり、ルートＲ２は、制限された領域３０８に入ることをを含む、家屋の裏手を通るルートを示し得るものであり、ルートＲ３は、建物の関心の高いまたは別様で優先順位が高い領域を移動するルートを表し得るものであり、ルートＲ４は、共用のエレベータに至るルートを表し得る。予め定義されたコストＣｉは、ロボット構成データから独立して決定され得るが、コスト修正Ｍｉは、ロボット構成データに応じて異なり得る。例えば、ルートＲ１は原点３１０と目的地３１２との間の最短距離であるため、ルートＲ１のコストＣ１は常に低くなり得る。しかし、Ｍ１は、例えば、特定のロボット構成については高く設定されてもよく、それにより、これらのロボット構成については、ルートＲ１の合計コストは高くなる。このようにして、コンピューティングシステム１００は、特定のタスクを行う一部のロボットについては、ルートＲ１を避けて、代わりに別の好ましいルートを用いるよう優先傾向を設定し得る。
【０１２０】
同様に、ルートＲ２のコストＣ２は、原点３１０と目的地３１２との間の最長距離であると共に、制限された領域に入ることを含むので、常に非常に高くなり得る。しかし、特定のタスクについては、コスト修正Ｍ２は、非常に高いＣ２と、より低い合計コストとを埋め合わせるために、高い負の数に設定され得る。このようにして、コンピューティングシステム１００は、特定のロボットまたはタスクについては、Ｒ２を好ましいルートとして設定し得る。関連付けられたナビゲーションのコストが、ロボット構成データの様々な態様に基づいて調節され得る点は、ルートＲ３およびＲ４についても同じである。このようにして、ロボットのタスクの性質または他の構成データに基づいて、特定のルートが他のルートよりも優先され得る。
【０１２１】
図４は、少なくとも１つの実施形態による、データ要素と、データ要素間の関係とを示す、データモデル図の例である。
【０１２２】
ロボット構成を特定した特徴と、ルート計画システム１３０およびロボット１０２の能力とを実装するために、論理的モデルに従って、規則およびパラメータが定義および組織され得る。モデルはコンピュータによって生成され、コンピュータのメモリに格納される。モデルは、コンピュータのソフトウェアによって、例えば、オントロジーまたはデータベーステーブル、データベーステーブル間の関係、およびコンピュータコード等のデータ構造を生成するために用いられ得る。モデルの例が図４に示されている。
【０１２３】
モデル４００は、タスク記述４１０、ルートデータ４３０、コストデータ４４０、ロボット構成データ４５０、およびペイロード輸送制約４６０というデータエンティティを含む。タスク記述４１０は、ロボットによるタスクに関係するデータパラメータおよび規則を格納するよう構成される。ルートデータ４３０は、データと、タスクの実行中にロボット１０２が走行する通路を決定するルート指定およびそのルートと関連付けられた制約への参照とを維持する。一般的に、データエンティティは、その属性にデータの組が投入されたときにインスタンス化され、各１組のデータは１つのインスタンス（またはデータレコード）を表す。
【０１２４】
コストデータ４４０は、データと、ロボット構成を特定したコスト指定およびそれと関連付けられた制約を定義する規則とを格納しており、大きさは数値を示し、方向は、その値が正であるかまたは負であるかを示す。
【０１２５】
ロボット構成データ４５０は、データと、特定のロボット構成と関連付けられた制約を定義する規則とを格納している。
【０１２６】
ペイロード輸送制約４６０は、データと、ロボットのペイロードの特定の品物と関連付けられた品物を特定した輸送要件を定義する規則とを格納している。ペイロード輸送制約４６０は、ルート決定に影響し得る、特定の品物の特別な特性に基づく規則を含み得る。
【０１２７】
モデル４００は、リンク４２６、４４８、４５８、４７６を含む。リンク４２６、４４８、４５８、４７６は、データエンティティ４１０、４３０、４４０、４５０、４６０間の論理的関係を表す。例えば、ルートデータ４３０のインスタンスは、タスク記述４１０、構成データ４５０、およびコストデータ４４０の幾つかのインスタンスとリンクされ得るものであり、タスク記述４１０のインスタンスは、ペイロード輸送制約４６０の１以上のインスタンスとリンクされ得る。
【０１２８】
モデル４００内の各データエンティティは、幾つかの属性を有する。例示的なタスク記述４１０は、ペイロード記述４１２、タスクタイプ４１４、目的地位置４１６、タスク関連制約４１８、配達時間４２０という属性を含む。例示的なルートデータ４３０は、原点位置４３２、目的地位置４３４、ロボット挙動制約４３６、およびタスク制約４３８という属性を含む。例示的なコストデータ４４０は、大きさ４４２、方向４４４、影響される制約４４６という属性を含む。例示的なロボット構成データ４５０は、タスク制約４５２、ルート制約４５４、挙動制約４５６という属性を含む。例示的なペイロード輸送制約４６０は、品物４６２、温度４６４、クリーニング４６６、特別な取り扱い４６８、速度４７０、時間４７２、位置４７４という属性を含む。各エンティティの属性には、例えば、データパラメータ、規則もしくは論理、または他のデータエンティティへの参照が投入され得る。例えば、制約４５２、４５４、４５６には、特定のロボット構成がロボットにロードされたときのみに適用される、構成を特定した規則または閾値が投入され得る。
【０１２９】
実装例−ハードウェアの概観
一実施形態によれば、本明細書に記載される技術は、少なくとも１つのコンピューティング装置によって実装される。例えば、開示された技術の各部分は、少なくとも一時的に、少なくとも１つのサーバコンピュータおよび／または他のコンピューティング装置の組合せを含むネットワーク上で実装され得る。コンピューティング装置は、本技術を行うよう配線されたものであってもよく、本技術を行うよう永続的にプログラムされたデジタル電子装置（例えば、少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）もしくはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等）を含んでもよく、ファームウェア、メモリ、他のストレージ、またはそれらの組合せ内のプログラム指示に従って本技術を行うようプログラムされた少なくとも１つの汎用ハードウェアプロセッサを含んでもよい。そのようなコンピューティング装置は、本技術を達成するために、カスタムハードワイヤードロジック、ＡＳＩＣ、またはＦＰＧＡを、カスタムプログラミングと組わせてもよい。コンピューティング装置は、サーバコンピュータ、パーソナルコンピュータ、またはサーバコンピュータおよび／もしくはパーソナルコンピュータのネットワークであり得る。コンピュータの事例的な例は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、携帯型機器、モバイルコンピューティング装置、ウェアラブルデバイス、身体装着型または埋め込み可能装置、スマートフォン、スマート家電、ネットワーキング装置、自律的または半自律的装置（例えば、ロボット、または無人地上機もしくは航空機等）、または記載された技術を実装するためのハードワイヤードロジックおよび／またはプログラムロジックを組み込んだ他の任意の電子装置である。
【０１３０】
例えば、図６は、本発明の実施形態が実装され得るコンピュータシステム６００を示すブロック図である。開示された技術を、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せで実装するための指示を含む、コンピュータシステム６００の構成要素は、図面中では、例えばボックスおよび円として模式的に表されている。
【０１３１】
コンピュータシステム６００は、コンピュータシステム６００の構成要素間で電子信号経路を介して情報および／または指示を通信するためのバスおよび／または他の通信機構を含み得る入出力（Ｉ／Ｏ）サブシステム６０２を含む。Ｉ／Ｏサブシステムは、Ｉ／Ｏコントローラ、メモリコントローラ、および少なくとも１つのＩ／Ｏポートを含み得る。電子信号経路は、図面中では、例えば、線、一方向の矢印、または二方向の矢印として模式的に表されている。
【０１３２】
少なくとも１つのハードウェアプロセッサ６０４は、情報および指示を処理するためのＩ／Ｏサブシステム６０２と結合されている。ハードウェアプロセッサ６０４は、例えば、汎用マイクロプロセッサもしくはマイクロコントローラ、および／または、専用マイクロプロセッサ（例えば、内蔵システム、グラフィック処理装置（ＧＰＵ）、またはデジタル信号プロセッサ等）を含み得る。
【０１３３】
コンピュータシステム６００は、プロセッサ６０４によって実行される情報および指示を格納するためにＩ／Ｏサブシステム６０２に結合されたメモリ６０６（例えば、主メモリ等）も含む。メモリ６０６は、例えば、様々な形態のランダムアクセスメモリ（ＲＡＭ）または他の動的ストレージ装置等の揮発性メモリを含み得る。また、メモリ６０６は、プロセッサ６０４によって実行される指示の実行中に、一時的な可変情報または他の中間情報を格納するためにも用いられ得る。そのような指示は、プロセッサ６０４がアクセス可能な非一過性のコンピュータ可読ストレージ媒体に格納されている場合、コンピュータシステム６００を、指示において指定されている動作を行うようカスタマイズされた専用機にする。
【０１３４】
コンピュータシステム６００は、プロセッサ６０４のための静的な情報および指示を格納するためにＩ／Ｏサブシステム６０２に結合された、例えば、読み出し専用メモリ（ＲＯＭ）６０８または他の静的ストレージ装置等の不揮発性メモリを更に含む。ＲＯＭ６０８は、例えば、消去可能ＰＲＯＭ（ＥＰＲＯＭ）または電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）等の様々な形態のプログラマブルＲＯＭ（ＰＲＯＭ）を含み得る。永続的なストレージ装置６１０は、例えば、フラッシュメモリ、ソリッドステートストレージ、磁気ディスク、または光ディスク等の様々な形態の不揮発性ＲＡＭ（ＮＶＲＡＭ）を含み得るものであり、情報および指示を格納するためにＩ／Ｏサブシステム６０２に結合され得る。
【０１３５】
コンピュータシステム６００は、Ｉ／Ｏサブシステム６０２を介して、例えば、ディスプレイ装置等の少なくとも１つの出力装置６１２に結合され得る。ディスプレイ６１２は、例えば、コンピュータのユーザ等に対して情報を表示するためのタッチスクリーンディスプレイ、発光ダイオード（ＬＥＤ）ディスプレイ、または液晶ディスプレイ（ＬＣＤ）等として具現化され得る。コンピュータシステム６００は、ディスプレイ装置の代わりに、またはそれに加えて、例えば、スピーカー、ＬＥＤインジケータ、および触覚装置等の他のタイプの出力装置を含み得る。
【０１３６】
少なくとも１つの入力装置６１４は、プロセッサ６０４に信号、情報、およびコマンド選択を通信するために、Ｉ／Ｏサブシステム６０２に結合される。入力装置６１４のタイプとしては、タッチスクリーン、マイク、スチールデジタルカメラおよびビデオデジタルカメラ、英数字キーおよび他のキー、ボタン、ダイヤル、スライド、並びに／または、様々なタイプのセンサ（例えば、力センサ、モーションセンサ、熱センサ、加速度計、ジャイロスコープ、および慣性計測装置（ＩＭＵ）センサ等）、並びに／または、様々なタイプの（例えば、無線）送受信機（例えば、セルラーもしくはＷｉ−Ｆｉ送受信機、無線周波数（ＲＦ）もしくは赤外線（ＩＲ）送受信機、および全地球測位システム（ＧＰＳ）送受信機等）を含む。
【０１３７】
別のタイプの入力装置は制御装置６１６であり、制御装置６１６は、入力機能の代わりに、またはそれに加えて、カーソル制御機能または他の自動化された制御機能（例えば、ディスプレイ画面上のグラフィカルインターフェース内におけるナビゲーション等）を行い得る。制御装置６１６は、プロセッサ６０４に方向情報およびコマンド選択を通信するための、並びに、ディスプレイ６１２上におけるカーソルの動きを制御するためのタッチパッド、マウス、トラックボール、またはカーソル方向キーとして実装され得る。入力装置は、少なくとも、第１の軸（例えば、ｘ）および第２の軸（例えば、ｙ）の２つの軸における２自由度を有し、これにより、装置が平面図における位置を指定できる。別のタイプの入力装置は、例えば、ジョイスティック、杖状コントローラ、コンソール、操舵輪、ペダル、ギアシフト機構、または他のタイプの制御装置等の有線、無線、または光制御装置である。入力装置６１４は、例えば、ビデオカメラおよび奥行きセンサ等の複数の異なる入力装置の組合せを含み得る。
【０１３８】
コンピュータシステム６００は、コンピュータシステムと組み合わせたときに、コンピュータシステム６００を専用機として動作させるまたはプログラムする、カスタマイズされたハードワイヤードロジック、少なくとも１つのＡＳＩＣもしくはＦＰＧＡ、ファームウェア、および／またはプログラムロジックを用いて、本明細書に記載された技術を実行し得る。一実施形態によれば、本明細書の技術は、主メモリ６０６に収容されている少なくとも１つの指示の少なくとも１つのシーケンスをプロセッサ６０４が実行することに応答して、コンピュータシステム６００によって行われる。そのような指示は、例えばストレージ装置６１０等の別のストレージ媒体から主メモリ６０６に読み込まれ得る。主メモリ６０６に収容されている指示のシーケンスの実行は、プロセッサ６０４に、本明細書に記載された処理工程を行わせる。別の実施形態では、ソフトウェア指示の代わりに、またはそれらと組み合わせて、ハードワイヤード回路が用いられ得る。
【０１３９】
本明細書において用いられる「ストレージ媒体」という用語は、装置を特定の方法で動作させるデータおよび／または指示を格納する任意の非一過性の媒体を指す。そのようなストレージ媒体は、不揮発性媒体および／または揮発性媒体を含み得る。不揮発性媒体は、例えば、光ディスクまたは磁気ディスク（例えば、ストレージ装置６１０等）を含む。揮発性媒体は、動的なメモリ（例えば、メモリ６０６等）を含む。ストレージ媒体の一般的な形態は、例えば、ハードディスク、ソリッドステートドライブ、フラッシュドライブ、磁気データストレージ媒体、任意の光もしくは物理的データストレージ媒体、メモリチップ等を含む。
【０１４０】
ストレージ媒体は、伝送媒体とは異なるが、伝送媒体と関係して用いられ得る。伝送媒体は、ストレージ媒体間での情報の転送に関与する。例えば、伝送媒体は、同軸ケーブル、銅線、および光ファイバ（Ｉ／Ｏサブシステム６０２を構成するワイヤを含む）を含む。伝送媒体は、例えば、電波データ通信および赤外線データ通信中に生成されるような音響波または光波の形態もとり得る。
【０１４１】
少なくとも１つの指示の少なくとも１つのシーケンスを、実行のためにプロセッサ６０４に搬送することには、様々な形態の媒体が関与し得る。例えば、指示は、まず、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上に担持され得る。リモートコンピュータは、その動的なメモリに指示をロードして、例えば、光ファイバ、同軸ケーブル、またはモデムを用いた電話回線等の通信リンク介して指示を送信し得る。コンピュータシステム６００に対してローカルなモデムまたはルーターは、通信リンク上のデータを受信し、そのデータを、コンピュータシステム６００が読むことができる形式に変換し得る。例えば、無線周波数アンテナまたは赤外線検出器等の受信機は、無線信号または光信号に担持されているデータを受信し、適切な回路が、そのデータをＩ／Ｏサブシステム６０２に供給し得る（例えば、データをバス上に配置する等）。Ｉ／Ｏサブシステム６０２はデータをメモリ６０６に搬送し、そこから、プロセッサ６０４が指示を読み出して実行する。メモリ６０６が受信した指示は、プロセッサ６０４による実行の前または後に、必要に応じてストレージ装置６１０に格納され得る。
【０１４２】
コンピュータシステム６００は、バス６０２に結合された通信インターフェース６１８も含む。通信インターフェース６１８は、例えば、ローカルネットワーク６２２またはインターネット上のパブリッククラウドもしくはプライベートクラウド等の少なくとも１つの通信ネットワークに直にまたは間接的に接続されたネットワークリンク６２０に結合する二方向データ通信を提供する。例えば、通信インターフェース６１８は、例えば、統合サービスデジタルネットワーク（ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、または、同軸ケーブルもしくは光ファイバ回線または電話回線等の対応するタイプの通信回線へのデータ通信接続を提供するためのモデムであり得る。別の例として、通信インターフェース６１８は、互換性のあるＬＡＮへのデータ通信接続を提供するためのローカルエリアネットワーク（ＬＡＮ）カードを含み得る。無線リンクも実装され得る。そのような任意の実装例において、通信インターフェース６１８は、様々なタイプの情報を表すデジタルデータストリームを搬送する信号経路を介して、電気信号、電磁信号、または光信号を送受信する。
【０１４３】
ネットワークリンク６２０は、典型的には、例えば、セルラー、Ｗｉ−Ｆｉ、またはＢＬＵＥＴＯＯＴＨ（登録商標）技術を用いて、他のデータ装置への電気的、電磁気、または光データ通信を直にまたは少なくとも１つのネットワークを介して提供する。例えば、ネットワークリンク６２０は、ローカルネットワーク６２２を介した、ホストコンピュータ６２４への、他のコンピューティング装置（例えば、パーソナルコンピューティング装置もしくはモノのインターネット（ＩｏＴ）装置等）への、および／または、インターネットサービスプロバイダ（ＩＳＰ）６２６によって運営されているデータ設備への接続を提供し得る。ＩＳＰ６２６は、一般的に「インターネット」６２８と称されているワールドワイドパケットデータ通信ネットワークを介したデータ通信サービスを提供する。ローカルネットワーク６２２およびインターネット６２８はどちらも、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を用いる。コンピュータシステム６００へとまたはコンピュータシステム６００からデジタルデータを搬送する、通信インターフェース６１８を介して様々なネットワークを通る信号およびネットワークリンク６２０上の信号は、伝送媒体の例示的な形態である。
【０１４４】
コンピュータシステム６００は、ネットワーク、ネットワークリンク６２０、および通信インターフェース６１８を介して、メッセージを送信し、データおよび指示（プログラムコードを含む）を受信し得る。インターネットの例では、サーバ６３０は、インターネット６２８、ＩＳＰ６２６、ローカルネットワーク６２２、および通信インターフェース６１８を介して、アプリケーションプログラムのための要求されたコードを送信し得る。受信されたコードは、受信された際にプロセッサ６０４によって実行され、および／または、後で実行するためにストレージ装置６１０、または他の不揮発性ストレージに格納され得る。
【０１４５】
一般的留意事項
上記の明細書において、本発明の実施形態を、実装例毎に様々であり得る多くの具体的な詳細を参照して説明した。従って、本明細書および図面は、限定するものではなく、事例的なものであると見なされるべきである。本発明の範囲、および、本出願人によって本発明の範囲であると意図されるものを示す唯一かつ排他的なものは、後で行われ得る補正を含む、本願に由来する１組の請求項が由来する具体的な形態における、請求項の文言およびその等価の範囲である。
【０１４６】
本明細書において説明される、特許請求の範囲に含まれる用語についての定義はいずれも、特許請求の範囲において用いられるそのような用語の意味を支配し得る。特許請求の範囲において明示的に記載されていない限定、要素、特性、特徴、長所、または属性のいずれも、特許請求の範囲を決して限定すべきではない。明細書および図面は、限定的な意味ではなく、説明的な意味において扱われるものである。
【０１４７】
本明細書において用いられる「含む(include)」および「含む／有する（comprise）」という用語（およびそれらの用語の変形（例えば、「including」、「includes」、「comprising」、「comprises」、「comprised」等）は、包含的であることを意図したものであり、更なる特徴、構成要素、完全体、または工程を除外することは意図しない。
【０１４８】
本明細書において「実施形態」等と言う場合には、記載または図示される実施形態が、特定の特徴、構造、または特性を含み得ることを示すが、あらゆる実施形態が、必ずしも、それらの特定の特徴、構造、または特性を含まなくてもよい。そのような文言は、必ずしも同じ実施形態を参照するものではない。更に、特定の特徴、構造、または特性が、或る実施形態に関して記載または図示されている場合には、明示的に示されているか否かに関係なく、他の実施形態に関してそのような特徴、構造、または特性をもたらすことも当業者の知識の範囲内であると考えられる。
【０１４９】
本開示の様々な特徴を、処理工程を用いて説明した。所与の処理工程の機能/処理は、可能性として、異なるシステムまたはシステムモジュールによって異なる方法で行われ得るものである。更に、所与の処理工程が複数の工程に分割されてもよく、および／または、複数の工程が単一の工程として組み合わされてもよい。更に、工程の順序は、本開示の範囲から逸脱することなく変更され得る。
【０１５０】
本明細書において開示および定義される実施形態は、文字または図面で言及されている、または明らかな、個々の特徴および構成要素の別の組合せにも及ぶことを理解されたい。これらの異なる組合せは、実施形態の様々な別の態様を構成する。
【符号の説明】
【０１５１】
１００  コンピューティングシステム
１０２  ロボット
１０４  ロボットポートコンピュータ
１０６  施設アクセスコンピュータ
１０８  施設コンピュータ
１１０  リモートコンピュータ
１１２  センサ
１２０  電子通信ネットワーク
１３０  ルート計画システム
１３２  コスト修正サブシステム
１３４  地図作成サブシステム
１３５、５００  地図
１３６  ルート生成サブシステム
１３７  ロボット構成データ
１４０  収納用区画
１５０  ロボットモデル
１６０  ペイロード検証サブシステム
１７０  タスク追跡サブシステム
１８０  事象検出サブシステム
１９０  ロボット制御サブシステム
【図１】
2019075066.tif 000003
【図２】
2019075066.tif 000004
【図３】
2019075066.tif 000005
【図４】
2019075066.tif 000006
【図５Ａ】
2019075066.tif 000007
【図５Ｂ】
2019075066.tif 000008
【図６】
2019075066.tif 000009
【外国語明細書】
2019075066000001.pdf