IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ネイバー コーポレーションの特許一覧 ▶ ネイバーラボス コーポレーションの特許一覧

特許7105825ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット
<>
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図1
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図2
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図3
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図4
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図5
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図6
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図7
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図8
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図9
  • 特許-ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-14
(45)【発行日】2022-07-25
(54)【発明の名称】ビジュアルナビゲーションのための訓練システム、方法およびナビゲーションロボット
(51)【国際特許分類】
   G06T 7/00 20170101AFI20220715BHJP
   G06N 3/08 20060101ALI20220715BHJP
【FI】
G06T7/00 350C
G06N3/08
【請求項の数】 22
(21)【出願番号】P 2020080879
(22)【出願日】2020-05-01
(65)【公開番号】P2021077326
(43)【公開日】2021-05-20
【審査請求日】2020-05-01
(31)【優先権主張番号】16/677,001
(32)【優先日】2019-11-07
(33)【優先権主張国・地域又は機関】US
【新規性喪失の例外の表示】特許法第30条第2項適用 2019年5月5日にインターネットで公開「https://openreview.net/forum?id=SJel4-c2j4」
【新規性喪失の例外の表示】特許法第30条第2項適用 2019年6月3日にインターネットで公開「https://openreview.net/revisions?id=SJel4-c2j4」
【新規性喪失の例外の表示】特許法第30条第2項適用 2019年6月9日~15日にアメリカ合衆国カリフォルニア州ロングビーチコンベンションセンターで開催された「The Thirty-sixth annual conference(ICML International Conference Machine Leaning 2019)」にて公開
【前置審査】
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(73)【特許権者】
【識別番号】319012978
【氏名又は名称】ネイバーラボス コーポレーション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】トミ サイランダー
(72)【発明者】
【氏名】ミシェル アラクティンギ
(72)【発明者】
【氏名】クリストファー ダンス
(72)【発明者】
【氏名】ジュリエン ペレス
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】国際公開第2018/170421(WO,A1)
【文献】特開2019-032821(JP,A)
【文献】特開2019-056966(JP,A)
【文献】特表2020-514890(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
ビジュアルナビゲーションを実行するナビゲーティングロボットによる使用のために訓練モデルを訓練させるための訓練システムであって、
N個のベース仮想訓練環境(oi)を含むメモリであって、前記N個のベース仮想訓練環境のそれぞれ(oi)は、室内空間内の位置における視野を含み、Nは1よりも大きい整数である、メモリ、
前記N個のベース仮想訓練環境(oi)各自の少なくとも1つの特性を変化させることにより、前記N個のベース仮想訓練環境(oi)に基づいてN個の変化した仮想訓練環境(T(oi))を生成するように構成されたランダム化モジュール、および
前記N個のベース仮想訓練環境(oi)および前記N個の変化した仮想訓練環境(T(oi))を含む訓練セットに基づいてビジュアルナビゲーションを実行する前記ナビゲーティングロボットによる使用のために訓練モデルを訓練させるように構成された訓練モジュール
を含み、前記訓練モジュールは、RL目標からペナルティ項を減算した目標関数を最大化するように前記訓練モデルを訓練し、
前記RL目標は、所与のパラメータθにより決定されるポリシーπθの下で強化学習により最大化される関数(LPPO(o;πθ))であり、
前記ペナルティ項は、前記ベース仮想訓練環境(oi)におけるポリシーπθ(oi)と前記変化したベース仮想訓練環境(T(oi))におけるポリシーπθ(T(oi))との間の距離(d((πθ(oi),πθ(T(oi))))に基づいて算出され、最小化される関数である、訓練システム。
【請求項2】
前記少なくとも1つの特性は、壁のテクスチャを含む、請求項1に記載の訓練システム。
【請求項3】
前記少なくとも1つの特性は、壁の色を含む、請求項1に記載の訓練システム。
【請求項4】
前記少なくとも1つの特性は、照明特性を含む、請求項1に記載の訓練システム。
【請求項5】
前記少なくとも1つの特性は、オブジェクトの位置を含む、請求項1に記載の訓練システム。
【請求項6】
前記訓練モジュールは、畳み込みニューラルネットワーク(CNN)を使用して前記訓練モデルを訓練させるように構成される、請求項1に記載の訓練システム。
【請求項7】
前記訓練モジュールは、不変性正規化(IR)を使用して前記訓練モデルを訓練させるように構成される、請求項1に記載の訓練システム。
【請求項8】
前記訓練モデルは、カメラからの入力イメージに基づき、
所定の距離だけ前記ナビゲーティングロボットを前方に移動させること、
所定の第1角度だけ前記ナビゲーティングロボットを右側に回転させること、
所定の第2角度だけ前記ナビゲーティングロボットを左側に回転させること、および
前記ナビゲーティングロボットを移動させないこと
のうちの1つに対する命令を示す出力を生成するように構成される、請求項1に記載の訓練システム。
【請求項9】
前記訓練モデルは、前記カメラからのRGB入力イメージに基づいて前記出力を生成するように構成される、請求項8に記載の訓練システム。
【請求項10】
前記訓練モデルは、前記カメラからのRGB深度(RGB-D)入力イメージに基づいて前記出力を生成するように構成される、請求項8に記載の訓練システム。
【請求項11】
前記訓練モデルは、前記カメラからのグレースケール入力イメージに基づいて前記出力を生成するように構成される、請求項8に記載の訓練システム。
【請求項12】
前記訓練モデルは、前記カメラからのグレースケール深度入力イメージに基づいて前記出力を生成するように構成される、請求項8に記載の訓練システム。
【請求項13】
前記室内空間は、ビル内である、請求項1に記載の訓練システム。
【請求項14】
ビジュアルナビゲーションを実行するナビゲーティングロボットによる使用のために訓練モデルを訓練させる方法であって
1つ以上のプロセッサにより、N個のベース仮想訓練環境(oi)各自の少なくとも1つの特性を変化させることにより、前記N個のベース仮想訓練環境(oi)に基づいてN個の変化した仮想訓練環境(T(oi))を生成する段階であって、前記N個のベース仮想訓練環境のそれぞれ(oi)と前記N個の変化した仮想訓練環境のそれぞれ(T(oi))は、室内空間内の位置における視野を含み、Nは1よりも大きい整数である、段階、および
前記1つ以上のプロセッサにより、前記N個のベース仮想訓練環境(oi)および前記N個の変化した仮想訓練環境(T(oi))を含む訓練セットに基づいてビジュアルナビゲーションを実行する前記ナビゲーティングロボットによる使用のために訓練モデルを訓練させる訓練段階
を含み、前記訓練段階は、RL目標からペナルティ項を減算した目標関数を最大化するように前記訓練モデルを訓練し、
前記RL目標は、所与のパラメータθにより決定されるポリシーπθの下で強化学習により最大化される関数(LPPO(o;πθ))であり、
前記ペナルティ項は、前記ベース仮想訓練環境(oi)におけるポリシーπθ(oi)と前記変化したベース仮想訓練環境(T(oi))におけるポリシーπθ(T(oi))との間の距離(d((πθ(oi),πθ(T(oi))))に基づいて算出され、最小化される関数である、方法。
【請求項15】
前記少なくとも1つの特性は、
壁のテクスチャ、
壁の色、
照明特性、および
オブジェクトの位置
のうちの1つを含む、請求項14に記載の方法。
【請求項16】
前記訓練させる段階は、畳み込みニューラルネットワーク(CNN)を使用して前記訓練モデルを訓練させる段階を含む、請求項14に記載の方法。
【請求項17】
前記訓練させる段階は、不変性正規化(IR)を使用して前記訓練モデルを訓練させる段階を含む、請求項14に記載の方法。
【請求項18】
前記訓練モデルは、カメラからの入力イメージに基づき、
所定の距離だけ前記ナビゲーティングロボットを前方に移動させること、
所定の第1角度だけ前記ナビゲーティングロボットを右側に回転させること、
所定の第2角度だけ前記ナビゲーティングロボットを左側に回転させること、および
前記ナビゲーティングロボットを移動させないこと
のうちの1つに対する命令を示す出力を生成するように構成される、請求項14に記載の方法。
【請求項19】
前記訓練モデルは、
前記カメラからのRGB入力イメージ、
前記カメラからのRGB深度(RGB-D)入力イメージ、
前記カメラからのグレースケール入力イメージ、および
前記カメラからのグレースケール深度入力イメージ
のうちの1つに基づいて前記出力を生成するように構成される、請求項18に記載の方法。
【請求項20】
ナビゲーティングロボットであって、
前記ナビゲーティングロボットの前の視野内からイメージをキャプチャするように構成されたカメラであって、前記視野は、前記ナビゲーティングロボットの周りの360度よりも狭い、カメラ、
室内空間内の位置におけるN個のベース仮想訓練環境(oi)および前記N個のベース仮想訓練環境(oi)各自の少なくとも1つの特性を変化させることによって生成されたN個の変化した仮想訓練環境(T(oi))に基づいて訓練され、Nは1よりも大きい整数であり、前記カメラからのイメージのうちの1つに基づいて出力を生成するように構成されるモデル、
前記ナビゲーティングロボットを推進させるように構成された1つ以上の推進デバイス、および
前記モデルの出力に基づき、前記1つ以上の推進デバイスのうちの1つ以上を選択的に作動させるように構成された制御モジュール
を含み、前記モデルは、RL目標からペナルティ項を減算した目標関数を最大化するように訓練された学習済みモデルであり、
前記RL目標は、所与のパラメータθにより決定されるポリシーπθの下で強化学習により最大化される関数(LPPO(o;πθ))であり、
前記ペナルティ項は、前記ベース仮想訓練環境(oi)におけるポリシーπθ(oi)と前記変化したベース仮想訓練環境(T(oi))におけるポリシーπθ(T(oi))との間の距離(d((πθ(oi),πθ(T(oi))))に基づいて算出され、最小化される関数である、ナビゲーティングロボット。
【請求項21】
前記モデルは、前記カメラからのイメージのうちの1つに基づき、第1状態、第2状態、第3状態、および第4状態で構成されたグループのうちの1つで前記出力を設定するように構成され、
前記制御モジュールは、
前記出力が第1状態であるとき、前記1つ以上の推進デバイスのうちの1つ以上を所定の距離だけ前記ナビゲーティングロボットを前方に移動させるように作動させ、
前記出力が第2状態であるとき、前記1つ以上の推進デバイスのうちの1つ以上を所定の第1角度だけ前記ナビゲーティングロボットを右側に回転させるように作動させ、
前記出力が第3状態であるとき、前記1つ以上の推進デバイスのうちの1つ以上を所定の第2角度だけ前記ナビゲーティングロボットを左側に回転させるように作動させ、
前記出力が第4状態であるとき、前記1つ以上の推進デバイスのうちのいずれも作動させないように構成される、請求項20に記載のナビゲーティングロボット。
【請求項22】
前記ナビゲーティングロボットは、自律走行車である、請求項20に記載のナビゲーティングロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットのビジュアルナビゲーションに関し、より詳細には、ビジュアルナビゲーションのためにモバイルロボットによる使用のためのモデルを訓練させるためのシステムおよび方法等に関する。
【背景技術】
【0002】
ここで提供される背景技術の説明は、本開示の背景を一般的に提示するためのものである。出願時の先行技術に該当しない技術の説明だけでなく、本背景技術で説明される内容に対し、本開示の発明者は、本開示の先行技術として明示的にも暗示的にも認めていない。
【0003】
ナビゲーティングロボットとは、オブジェクトと衝突せずに環境を走行しながら探索をなすように訓練されたモバイルロボットである。ナビゲーティングロボットは、それ自体が動作する環境内で訓練される。
【0004】
ナビゲーティングロボットは、多様な産業で利用されている。ナビゲーティングロボットの一例としては、内部空間(例えば、倉庫)を探索しながら1つ以上のパッケージを目的地に移動させるパッケージハンドラロボットが挙げられる。ナビゲーティングロボットの他の例としては、室外空間(例えば、道路)を探索しながら1人以上の乗客をピックアップして目的地に移動させる自律走行車が挙げられる。
【発明の概要】
【課題を解決するための手段】
【0005】
一特徴として、ビジュアルナビゲーションを実行するナビゲーティングロボットによる使用のために訓練モデルを訓練させるための訓練システムを開示する。メモリは、N個のベース仮想訓練環境を含み、前記N個のベース仮想訓練環境のそれぞれは、室内空間内の位置における視野(field of view)を含み、Nは1よりも大きい整数である。ランダム化モジュールは、前記N個のベース仮想訓練環境各自の少なくとも1つの特性(characteristic)を変化させることにより、前記N個のベース仮想訓練環境に基づいてN個の変化した仮想訓練環境を生成するように構成される。訓練モジュールは、前記N個のベース仮想訓練環境および前記N個の変化した仮想訓練環境を含む訓練セットに基づいてビジュアルナビゲーションを実行する前記ナビゲーティングロボットによる使用のために訓練モデルを訓練させるように構成される。
【0006】
追加の特徴として、前記少なくとも1つの特性は、壁(wall)のテクスチャ(texture)を含む。
【0007】
追加の特徴として、前記少なくとも1つの特性は、壁の色を含む。
【0008】
追加の特徴として、前記少なくとも1つの特性は、照明(lighting)特性を含む。
【0009】
追加の特徴として、前記少なくとも1つの特性は、オブジェクトの位置を含む。
【0010】
追加の特徴として、前記訓練モジュールは、畳み込みニューラルネットワーク(Convolutional Neural Net:CNN)を使用して前記訓練モデルを訓練させるように構成される。
【0011】
追加の特徴として、前記訓練モジュールは、不変性正規化(Invariance Regularization:IR)を使用して前記訓練モデルを訓練させるように構成される。
【0012】
追加の特徴として、前記訓練モデルは、カメラからの入力イメージに基づき、所定の距離だけ前記ナビゲーティングロボットを前方に(forward)移動させること、所定の第1角度だけ前記ナビゲーティングロボットを右側に回転させること、所定の第2角度だけ前記ナビゲーティングロボットを左側に回転させること、および前記ナビゲーティングロボットを移動させないことのうちの1つに対する命令(instruction)を示す出力を生成するように構成される。
【0013】
追加の特徴として、前記訓練モデルは、前記カメラからのRGB(Red Green Blue)入力イメージに基づいて前記出力を生成するように構成される。
【0014】
追加の特徴として、前記訓練モデルは、前記カメラからのRGB深度(RGB-Depth:RGB-D)入力イメージに基づいて前記出力を生成するように構成される。
【0015】
追加の特徴として、前記訓練モデルは、前記カメラからのグレースケール(grayscale)入力イメージに基づいて前記出力を生成するように構成される。
【0016】
追加の特徴として、前記訓練モデルは、前記カメラからのグレースケール深度(grayscale-D)入力イメージに基づいて前記出力を生成するように構成される。
【0017】
追加の特徴として、前記室内空間は、ビル内である。
【0018】
一特徴として、ビジュアルナビゲーションを実行するナビゲーティングロボットによる使用のために訓練モデルを訓練させる方法を開示する。前記方法は、1つ以上のプロセッサにより、N個のベース仮想訓練環境各自の少なくとも1つの特性(characteristic)を変化させることにより、前記N個のベース仮想訓練環境に基づいてN個の変化した仮想訓練環境を生成する段階であって、前記N個のベース仮想訓練環境のそれぞれと前記N個の変化した仮想訓練環境のそれぞれは、室内空間内の位置における視野(field of view)を含み、Nは1よりも大きい整数である、段階、および前記1つ以上のプロセッサにより、前記N個のベース仮想訓練環境および前記N個の変化した仮想訓練環境を含む訓練セットに基づいてビジュアルナビゲーションを実行する前記ナビゲーティングロボットによる使用のために訓練モデルを訓練させる段階を含む。
【0019】
追加の特徴として、前記少なくとも1つの特性は、壁(wall)のテクスチャ(texture)、壁の色、照明(lighting)特性、およびオブジェクトの位置のうちの1つを含む。
【0020】
追加の特徴として、前記訓練させる段階は、畳み込みニューラルネットワーク(Convolutional Neural Net:CNN)を使用して前記訓練モデルを訓練させる段階を含む。
【0021】
追加の特徴として、前記訓練させる段階は、不変性正規化(Invariance Regularization:IR)を使用して前記訓練モデルを訓練させる段階を含む。
【0022】
追加の特徴として、前記訓練モデルは、カメラからの入力イメージに基づき、所定の距離だけ前記ナビゲーティングロボットを前方に(forward)移動させること、所定の第1角度だけ前記ナビゲーティングロボットを右側に回転させること、所定の第2角度だけ前記ナビゲーティングロボットを左側に回転させること、および前記ナビゲーティングロボットを移動させないことのうちの1つに対する命令(instruction)を示す出力を生成するように構成される。
【0023】
追加の特徴として、前記訓練モデルは、前記カメラからのRGB(Red Green Blue)入力イメージ、前記カメラからのRGB深度(RGB-Depth:RGB-D)入力イメージ、前記カメラからのグレースケール(grayscale)入力イメージ、および前記カメラからのグレースケール深度(grayscale-D)入力イメージのうちの1つに基づいて前記出力を生成するように構成される。
【0024】
一特徴として、ナビゲーティングロボットを開示し、ナビゲーティングロボットは、前記ナビゲーティングロボットの前方の(in front of)視野内からイメージをキャプチャするように構成されたカメラであって、前記視野は、前記ナビゲーティングロボットの周りの360度よりも狭い、カメラ、室内空間内の位置におけるN個のベース仮想訓練環境、および前記N個のベース仮想訓練環境各自の少なくとも1つの特性(characteristic)を変化させることによって生成されたN個の変化した仮想訓練環境に基づいて訓練され、Nは1よりも大きい整数であり、前記カメラからのイメージのうちの1つに基づいて出力を生成するように構成されるモデル、前記ナビゲーティングロボットを推進させるように構成された1つ以上の推進デバイス、および前記モデルの出力に基づいて前記1つ以上の推進デバイスのうちの1つ以上を選択的に作動させるように構成された制御モジュールを含む。
【0025】
追加の特徴として、前記モデルは、前記カメラからのイメージのうちの1つに基づき、第1状態、第2状態、第3状態、および第4状態で構成されたグループのうちの1つで前記出力を設定するように構成され、前記制御モジュールは、前記出力が第1状態であるとき、前記1つ以上の推進デバイスのうちの1つ以上を所定の距離だけ前記ナビゲーティングロボットを前方に移動させるように作動させ、前記出力が第2状態であるとき、前記1つ以上の推進デバイスのうちの1つ以上を所定の第1角度だけ前記ナビゲーティングロボットを右側に回転させるように作動させ、前記出力が第3状態であるとき、前記1つ以上の推進デバイスのうちの1つ以上を所定の第2角度だけ前記ナビゲーティングロボットを左側に回転させるように作動させ、前記出力が第4状態であるとき、前記1つ以上の推進デバイスのうちのいずれも作動させないように構成される。
【0026】
追加の特徴として、前記ナビゲーティングロボットは、自律走行車(autonomous vehicle)である。
【0027】
本開示が適用される追加の領域は、詳細な説明、特許請求の範囲、および図面によって明らかになるであろう。詳細な説明および具体的な例次は、説明の目的だけを意図するものであり、本開示の範囲を制限することを意図したものではない。
【図面の簡単な説明】
【0028】
特許または出願のファイルは、カラーで作成された少なくとも1つの図面を含む。カラーの図面を含む特許または特許出願公報の写しは、要求されるか必要な手数料の納付時に提供されるであろう。
【0029】
本開示は、詳細な説明および添付の図面に基づいてより完全に理解されるであろう。
【0030】
図1】ナビゲーティングロボットの例を示したブロック図である。
図2】ナビゲーティングロボットのビジュアルナビゲーションのために訓練モデルを訓練および生成するための例を示した訓練システムのブロック図である。
図3図2の訓練モジュールの例を示したブロック図である。
図4】ベース仮想環境から生成された変化(variation)の例を示した図である。
図5】ベース仮想環境から生成された変化(variation)の例を示した図である。
図6】ベース仮想環境から生成された変化(variation)の例を示した図である。
図7】ベース仮想環境から生成された変化(variation)の例を示した図である。
図8】(深度のない)RGB入力を使用する異なるタイプの正規化を伴う訓練のための訓練イベントの数に対する平均成功率である左側グラフと、(深度のない)RGB入力を使用する異なるタイプの正規化を伴う訓練のための訓練イベントの数に対する最短経路の長さ(Shortest Path Length:SPL)である右側グラフを示している。
図9】(深度のない)RGB入力を使用する異なるタイプの正規化(IR、IR-Split、およびPPO+DR)を伴う訓練のための訓練イベントの数に対する平均成功率である左側グラフと、(深度のある)RGB-D入力を使用する異なるタイプの正規化を伴う訓練のための訓練イベントの数に対する平均成功率である中間グラフと、(深度のない)グレースケール入力を使用する異なるタイプの正規化を伴う訓練のための訓練イベントの数に対する平均成功率である右側グラフを示している。
図10】ビジュアルナビゲーションのためのナビゲーティングロボットによって使用されるモデルを訓練させる方法の例を示したフローチャートである。
【0031】
図面において、参照符号は、類似および/または同一の要素を識別するために再使用されてよい。
【発明を実施するための形態】
【0032】
モバイルロボットのビジュアルナビゲーションは、ビジョンと制御のドメインとを結合する。ナビゲーションは、出発位置から到着位置までの間に適切かつ妨害のない(non-obstructed)経路を見つけ出すものとして説明されてよい。出発位置から到着位置までのナビゲーションは、マップ構築、ローカリゼーション(localization)、計画(planning)、および経路追従(path following)のようなサブタスクのシーケンスに分割されてよい。各サブタスクは、環境および作業に対して特定されるエンジニアリングを要求する。ナビゲーションは、追加の訓練/チューニングが行われない場合、異なるシナリオや環境に適応させることは困難である。
【0033】
ナビゲーティングロボットは、1つ以上のセンサからの入力に基づいて訓練モデルを使用してナビゲーティングロボットを移動させるように構成される制御モジュールを含む。1つの環境を使用して訓練モデルを訓練させることは、訓練モデルが過剰適合(overfit)し、1つの環境における変更またはその実世界の環境における変更に対して一般化できない可能性がある。実世界では、ナビゲーティングロボットが実行できることを妨げるような、多くの変化が起こり得る。
【0034】
本出願は、強化学習(Reinforcement Learning:RL)によって訓練モデルを訓練させることに関する。深層(deep)RL訓練によって訓練モデルは、複数の(multiple)異なる環境を同時に使用して訓練される場合に過剰適合する可能性がある。本出願によると、起こり得る行動(action)に影響を及ぼしてはならない観察(observations)における変化に対するポリシー(policy)の不変性を促す(encourage)RL目標(objective)に対してターム(term)を追加することによって教師あり学習とRLとを結合する正規化が使用される。本出願によると、これは、不変性正規化(invariance regularization)として参照されてよい。不変性正規化は、訓練中には現れなかった環境に対するポリシーの一般化における改善を意味する。
【0035】
図1は、ナビゲーティングロボット100の例を示したブロック図である。ナビゲーティングロボット100は、ナビゲーティングロボット100の前方の(in front of)所定の視野(Field Of View:FOV)からイメージをキャプチャするカメラ104を含む。所定のFOVとは、ナビゲーティングロボット100の周りの360度未満である。ナビゲーティングロボット100は、ナビゲーティングロボット100の周りの完全な360度よりも狭いFOVを有してよい。ナビゲーティングロボット100は、その動作環境が記録されたマップを含まない可能性がある。ナビゲーティングロボット100の動作環境は、室内空間、すなわち、建物、駐車場、洞窟、または他のエンクロージャ内であってよい。
【0036】
カメラ104は、例えば、グレースケールカメラ、グレースケール-Dカメラ、RGB(Red、Green、Blue)カメラ、RGB-Dカメラ、または他の適したタイプのカメラであってよい。グレースケール-Dカメラは深度(D)成分を含む。RGB-Dカメラも深度(D)成分を含む。多様な実施形態において、ナビゲーティングロボット100は、(1つの)カメラ104だけを含んでよく、任意の他のビジュアルイメージングカメラおよび/またはセンサを含まなくてもよい。
【0037】
ナビゲーティングロボット100は、1つ以上のタイヤ、1つ以上のトレッド(tread)、1つ以上の移動脚、および/またはナビゲーティングロボット100を前方、右側、左側、上方、および/または下方に推進させるように構成された1つ以上の他のタイプのデバイスのような1つ以上の推進デバイス108を含む。推進デバイス108の2つ以上の組み合わせがナビゲーティングロボット100を前方に推進させ、ナビゲーティングロボット100を右側に回転させ、ナビゲーティングロボット100を左側に回転させ、または/追加でナビゲーティングロボット100を垂直に上方または下方に昇降させるために使用されてよい。
【0038】
ナビゲーティングロボット100は、カメラ104からの入力に基づいて任意のオブジェクトと衝突しないように訓練モデル116により、出発位置から目標位置までの動作環境を探索するように推進デバイス108を制御するように構成された制御モジュール112を含む。訓練モデル116は、ナビゲーティングロボット100のメモリに格納される。訓練モデル116の訓練については、以下で説明する。
【0039】
訓練モデル116は、カメラ104からの入力に基づいてナビゲーティングロボット100の行動を示す出力を生成してよい。カメラ104は、60Hz、120Hz、または他の適した頻度でアップデートされてよい。訓練モデル116は、カメラ104からの入力がアップデートされるたびに出力を生成してよい。訓練モデル116は、与えられた時間内に、(1フィートまたは1メートルの1/3のような所定の距離だけ前方に移動することに対応する)第1状態、(45度または90度などの所定の角度だけ右側に回転することに対応する)第2状態、(45度または90度などの所定の角度だけ左側に回転することに対応する)第3状態、および(移動しないことに対応する)第4状態で構成されたグループのうちの1つで出力を設定するように構成されてよい。
【0040】
制御モジュール112は、訓練モデル116の出力に基づいて推進デバイス108を制御するように構成される。例えば、制御モジュール112は、訓練モデル116の出力が第1状態であることに応答し、ナビゲーティングロボット100を所定の距離だけ前方に移動させるために推進デバイス108を作動させてよい。制御モジュール112は、訓練モデル116の出力が第2状態であることに応答し、ナビゲーティングロボット100を所定の角度だけ右側に回転させるために推進デバイス108を作動させてよい。制御モジュール112は、訓練モデル116の出力が第3状態であることに応答し、ナビゲーティングロボット100を所定の角度だけ左側に回転させるために推進デバイス108を作動させてよい。制御モジュール112は、訓練モデル116の出力が第4状態であることに応答し、ナビゲーティングロボット100が移動しないようにし、推進デバイス108は作動させなくてよい。
【0041】
図2は、ナビゲーティングロボット100のような、ナビゲーティングロボットによるビジュアルナビゲーションのために訓練モデル116を訓練および生成するための訓練システム200の例を示したブロック図である。訓練モジュール204は、メモリに格納された訓練用仮想環境のセットを使用して実行することにより、訓練モデル116を生成する。訓練用仮想環境のセットは、複数の(ベース)仮想環境208(すなわち、ベース仮想訓練環境)を含む。訓練用仮想環境のセットはまた、ベース仮想環境208の1つ以上の特性を変更することによって生成または変更された仮想環境(すなわち、変更された仮想訓練環境)も含む可能性がある。仮想環境208は、例えば、1つ以上のルーム(または部屋)を含んでよい。例えば、ベース仮想環境208は、1つ以上のVizDoomマップ内における1つ以上の位置における1つ以上のFOV(または、時点(points of view):POV)を含んでよい。VizDoomマップは、訓練システム200のメモリに格納されてよい。
【0042】
ランダム化モジュール212は、訓練のために使用される変化した仮想環境を生成するために、ベース仮想環境208の1つ以上の特性を(例えば、ランダムに)変化させる。例えば、ランダム化モジュール212は、(ベース)仮想環境で1つ以上の表面上のテクスチャ、(ベース)仮想環境で1つ以上の表面上の1つ以上のオブジェクトの位置、(ベース)仮想環境の照明(例えば、明るさまたは照明角度)、および/または(ベース)仮想環境の1つ以上の他の特性を変化させてよい。図4~7はそれぞれ、ランダム化モジュール212を使用してベース仮想環境208のうちの1つから生成された変化の例を示した図である。
【0043】
訓練モジュール204は、訓練モデル116を訓練および生成するための訓練用仮想環境のセットを使用する。
【0044】
ビジュアルナビゲーションは、部分観察マルコフ決定過程(Partially Observed Markov Decision Process:POMDP)として、次のタプル(tuple)のようにモデリングされてよい。
【0045】
【数1】
【0046】
Sは状態のセットであり、Aは行動のセットであり、Ωは観察のセットであり、これらすべては有限集合(finite set)である。Rは補償関数であり、次のとおりとなる。
【0047】
【数2】
【0048】
Tは条件付き遷移確率質量関数(conditional transition probability mass function)であり、次のとおりとなる。
【0049】
【数3】
【0050】
その解釈は、次のとおりとなる。
【数4】

これは、現在の状態がsであり、行動aが起これば、次の状態がs’になる確率を示す。Oは条件付き観察確率質量関数(conditional observation probability mass function)であり、次のとおりとなる。
【0051】
【数5】
【0052】
その解釈は、次のとおりとなる。
【数6】

これは、起こった最後の行動がaであった場合、状態sでoを観察する確率を示し、初期状態sでいかなる行動も起こっていないとき、次の特殊観察確率を許容する。
【0053】
【数7】
【0054】
は初期状態確率分布関数であり、したがって、
【数8】

は、初期状態がsである確率を示す。
【0055】
訓練モジュール204は、次に記載されるパラメータ化されたポリシーを生成する。
【数9】

パラメータとして、
【数10】

を有し、以下の与えられた履歴hに対して行動を取る確率が与えられる。
【0056】
【数11】
【0057】
目標は、以下の差し引かれた補償(discounted reward)の高い値を得るためにパラメータθを調節するものである。
【数12】

差引ゲイン因子(discounted gain factor)は、次のとおりとなる。
【0058】
【数13】
【0059】
期待値は、以下の状態-観察-行動シーケンス(state-observation-action sequence)に基づく。
【数14】

初期状態sはPから誘導され、シーケンスの他の要素はT、O、およびπθから誘導される。
【0060】
訓練モジュール204は、近傍ポリシー最適化(Proximal Policy Optimization:PPO)または、例えば、予測される差し引かれた補償の推定値に対する勾配上昇(gradient ascent)と関連するポリシー勾配方法のような他の適したタイプの最適化アルゴリズムにより、訓練モデル116を訓練させる。
【0061】
訓練モジュール204は、複数の環境またはタスク(task)を示すPOMDPに対する分布Dを活用する。訓練モジュールは、分布Dからntrain(>0)POMDP(P、P、・・・、P train)をサンプリングする。
【0062】
POMDPは、例えば、日時または年度などの異なる時間において同じ環境がビューを示すような、観察分布において、異なるジオメトリを有するマップを示すもののような、転移(transition)分布において、または、異なる目標状態の明細に対応するもののような、補償分布において、相違してよい。
【0063】
このようなサンプルセットが与えられると、訓練モジュール204は、POMDPからの状態(観察-行動シーケンスの有限集合(finite collection)からポリシーπθを学習する。多様な実施形態において、訓練モジュール204は、POMDPが共通状態、観察、および観察空間(S、A、およびΩ)を有するように要求してよい。ポリシーπθは、ポリシーが、差し引かれた一般化補償
【数15】
として参照されてよく、POMDPの完全分布を越え、差し引かれた補償の期待値に対して所定の値以上が得られれば、適切に一般化したと言える。
【0064】
所定の値は、期待値に対して最大で得られることのできる値と関連して(それ未満で)設定されるか、最高値
【数16】
とさらに一般的に関連して(それ未満で)設定されてよい。
【0065】
訓練用仮想(合成)環境のセットを使用する訓練は、短期間に大量の経験が学習されるようにする。しかし、(ナビゲーティングロボットが動作する)実世界と(訓練が実行される)訓練用仮想環境との間には現実格差(reality gap)が存在する。これは、例えば、(仮想環境の)シミューレータが実世界の動力学およびビジュアル外観を描写する方式に起因する。仮想環境は、低い正確度(fidelity)で実世界の豊かさおよびノイズをキャプチャする。
【0066】
ランダム化モジュール212によって実行されるランダム化は、現実格差の解消に貢献する。ランダム化は、ドメインランダム化を指す場合があり、訓練モデル116を使用していったん配置されると、ナビゲーティングロボットは実世界の小さな変更の処理をサポートする。
【0067】
ドメインランダム化は、観察において現れる変化に対して不変的なポリシーを提供するために効果的である。観察に対して追加されたランダムノイズが存在する状態で目標位置(または状態)に向かって探索させるにあたり、ナビゲーティングロボット100がPOMDP P1によって定義された環境で目標を探索することができれば、今後、ナビゲーティングロボット100は、POMDP P2によって定義された他の環境の目標位置でも、後者の環境が環境P1と同じ関連フィーチャf(P2)を有していれば、すなわち、if(P1)=f(P2)であれば、探索がなされるはずである。ドメインランダム化は、観察における変化およびノイズに対して一般化するようにポリシーを訓練させる。ドメインランダム化は、等しいS、A、およびΩ空間を共有する複数のPOMDP(仮想環境)(ただし、各POMDPは、状態を変更する各自の固有の識別子を有し、したがって、等しい状態の観察の変化を現わす)を訓練することによって実行される。
【0068】
適切な一般化のために、訓練モジュール204の訓練目標は、一般化を促進させる(encourage)ターム(term)を含む。これは、目的関数自体で一般化の問題の加重値を付与する。
【0069】
一般的に、変数zの関数hは、h(x)=h(Φ(x))であれば、xの変換(transformation)Φに対して不変となる。変換Tによって与えられた観察における変更に対するポリシーΠの不変性は、Π(o)=Π(T(o))で算出される。訓練モジュール204は、RL目標において適切に一般化するためにペナルティタームを実現する。例えば、訓練モジュール204は、次を使用して訓練モデル116を訓練させる。
【数17】
【0070】
PPOはPPO目標であり、θはポリシーπθを定義するパラメータのセットであり、dは2つの条件付き分布(conditional distribution)の距離関数であり、λはペナルティの加重係数(weighting coefficient)である。oは観察であり、Tは該当の観察の変換であり、変換は基本的な状態(underlying state)の意味的コンテクストを依然として保有するが、ランダム化モジュール212によって提供されたビジュアル変化を含む。一例では、観察oを有するルームを観察し、壁色において差のある観察T(o)を有する等しいルームを観察する。その次に、oがPOMDPPで観察され、T(i)がPOMDP Pで観察されるとf(P)=f(P)となる。ここで、f(P)は、POMDP Pによって定義された環境の不変の特徴のセットとなる。
【0071】
数式において、ペナルティタームdは、PPO目標に対する制約として作用し、ここで、新たな目標は、観察oおよびT(o)に対して同じように行動しながら、ポリシーが同時に高い補償を得なければならないということを指示する。これは、各ポリシーアップデートで平均リターン(average return)の単調な改善を保障するために信頼-領域制約を割り当てることから始まることと同じような、ペナルティタームが追加される信頼領域ポリシーの最適化と類似する。
【0072】
訓練モジュール204は、訓練中に不変性正規化(Invariance Regulation:IR)を実行し、このような正規化タームは、与えられた観察の変換に対して学習されたポリシーの不変性を示す。訓練モジュール204によって実行されたIRは、以下の疑似コード(pseudo-code)によって説明されてよい。
[疑似コード]
【数18】
【0073】
疑似コードにおいて、envは、(訓練用)仮想環境である。上記は繰り返し実行されてよく、次のループの始まりに戻ることが可能である。
【0074】
トレーニングモジュール204は、IR-split(スプリット)またはIR-full(フル)を実行してよい。IR-splitは、訓練モジュール204がRL目標を最大化することとペナルティタームdを最小化することの間で、訓練を繰り返し切り換えることと関連する。IR(full)は、先立って提供されたIR数式の全体目標を最適化する訓練モジュール204を含む。
【0075】
訓練モジュール204によって実行される訓練は、2つの段階を含んでよい。最初の段階は、上述したRLを実行する段階を含んでよく、2つ目の段階は、d(Π(o),Π(T(o))からの信号に対して教師あり学習を行う段階を含んでよい。訓練は、アクタークリティックスタイルエージェント(actor-critic style agent)を含んでよい。訓練モジュール204は、図3に示すような畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)または他の適したタイプのニューラルネットワークを使用して訓練を実行してよい。図3は、図2に示した訓練モジュール204のCNNの例を示したブロック図である。一実施形態において、CNNは、例えば、310において3つの畳み込み層と、312において2つの全結合層を含んでよく、ポリシーおよび機能推定器層314が連結してよい。ポリシー出力は4次元の全結合層であってよく、4次元は4つの行動(前方に移動、右側に回転、左側に回転、何もしない)に対応してよい。多様な実施形態において、ポリシー出力は、4次元の全結合層よりも大きくてよく、4つの行動よりも多くの行動に対応してよい。例えば、上昇(raise)、下降(lower)、および垂直高さの維持が提供されてもよい。ポリシー層の出力は、各行動の対数確率であってよい。値層は、値関数を予測する単一ユニットであってよい。正規化線形ユニット(Rectified Linear Units:ReLUs)が1つ、1つ超過、またはすべての層における非線形の動作として使用されてよい。訓練モジュール204は、バイナリ補償関数を使用してPPO目標を最適化してよく、ここで、目標位置に到達すると+1のリワードが与えられ、そうではなければ0が与えられる。
【0076】
図3の訓練環境308は、ベース仮想環境208(すなわち、ベース仮想訓練環境)およびランダム化モジュール212から出力される変化した訓練環境(すなわち、変化した仮想訓練環境)を含む。より具体的に、ランダム化モジュール212は、ベース仮想訓練環境208の変化を、例えば、VizDoom環境によって提供された所定のテクスチャを使用して表面上のテクスチャを変更することによって生成してよい。訓練のために使用される上述した仮想環境(例えば、ルーム)の数は、例えば、1、10、50、100、または500個のルームであってよい。
【0077】
いったん完全に訓練された、訓練モデル116のテストは、例えば、訓練環境を生成するために使用されたものとは異なるホールドアウト(held-out)セットからのテクスチャを有する50個のルームを使用して実行されてよい。テストのために異なる数のホールドアウトセットのルームが使用されてもよい。
【0078】
訓練モジュール204は、複数の環境において観察-行動-補償データをより迅速に補正するために、訓練中に並列で複数の(multiple)エージェントを実行してよい。各並列エージェントは、仮想(訓練)環境の変化に対して実行されてよい。各エージェントは、環境の訓練セットから1つの環境をサンプリングするはずであり、他の環境をサンプリングする前にn個のエピソード(nは0よりも大きい整数)が1つの環境上で実行されてよい。訓練モジュール204は、並列エージェントのうちの1つ以上がサンプリングすることのできる既に目にした(already-seen)環境のセットを格納してよい。これは、エージェントが、すべての環境が訓練のために十分にサンプリングされることを保障するように、新たな環境および既にサンプリングされた環境の混合(mixture)に対して訓練されることができることを保障する。
【0079】
訓練中の深度チャンネルの使用は、一般化をサポートする。深度は、観察のビジュアルスペクトラムの一部の変更に対して不変である。これは、訓練エージェントがその閾下知覚モデル(implicit perception model)内で訓練エージェントの観察における不変性を少なくとも部分的に発見できるように誘導する。以下の表に示すように、エージェントとして、深度チャンネル(RGB-Dおよびグレースケール(grayscale)-D)を含むエージェントは、深度情報がないエージェントよりも適切に一般化する。
【0080】
【表1】
【0081】
表の上部分は、PPOだけ(IRなし)を使用したものからの結果を示しており、表の下部分は、PPOの使用後にIRが繋がることによる結果を示している。表の値は、異なる数の仮想環境に対して訓練され、訓練後、訓練中に見えない50個のテスト仮想環境に対してテストされたエージェントの平均成功率および標準偏差である。太字の(bold)値は、使用された訓練用仮想環境の数および入力タイプに対して最高の成功率を生成した訓練モデルを示している。
【0082】
PPOの次にIRが繋がる例が訓練モデル116を訓練させるために提供されているが、訓練モジュール204は、ドロップアウト(dropout)、バッチノルム(batchnorm)、および/またはL2のような他の形態の正規化を使用して他の訓練を実行してよい。ドロップアウトの例において、ドロップアウト層は、上述したように、それぞれの畳み込み層以降に付加されてよい。バッチノルムの例において、バッチノルム層は、それぞれの畳み込み層以降に付加されてよい。L2の例において、L2正規化が実行されてよい。一例として、ドロップアウト確率は、ドロップアウトの例において0.1であってよい。L2の例において、L2加重値は、10-4または他の適した値であってよい。
【0083】
図8は、(深度のない)RGB入力を使用する異なるタイプの正規化を伴う訓練のための訓練イベントなどの数に対する平均成功率である左側グラフを含む。さらに、図8は、(深度のない)RGB入力を使用する異なるタイプの正規化を伴う訓練のための訓練イベントなどの数に対する最短経路の長さ(Shortest Path Length:SPL)である右側グラフを含む。左側グラフは、PPO+IRが使用された訓練環境の数が増加するほど一般的に改善されることを示す。(右側グラフにおいて)SPLは、成功するエージェントに対して時間をさらに考慮した成功率の測定値を示す。右側グラフは、PPO+IRが、ドロップアウト、L2、およびバッチノルム正規化よりも優れたSPL測定値を提供することを示す。
【0084】
図9は、(深度のない)RGB入力を使用する異なるタイプの正規化(IR、IR-Split、およびPPO+DR)のための訓練のための訓練イベントの数に対する平均成功率である左側グラフを含む。また、図9は、(深度のある)RGB-D入力を使用する異なるタイプの正規化を伴う訓練のための訓練イベントの数に対する平均成功率である中間グラフを含む。さらに、図9は、(深度のない)グレースケール入力を使用する異なるタイプの正規化を伴う訓練のための訓練イベントなどの数に対する平均成功率である右側グラフを含む。
【0085】
IR-Splitは、RL目標を最大化することと、ペナルティタームdを最小化することとの間で、訓練を繰り返し切り換えることに関連する。IR(full)は、先立って提供されたIR数式の全体目標を最適化することを含む。
【0086】
図9は、DRエージェントを有するPPOが過剰適合する可能性があり、平均成功率において高い分散を有する可能性があることを示す。IRは、(フル(full)およびスプリット(split)の両方で)安定的な平均成功率を示し、ロバストな(robust)ポリシーを生成する。IRペナルティは、モデルが訓練環境の不変性特徴を学習することをサポートする。
【0087】
図10は、訓練モデル116を訓練させる方法の例を示したフローチャートである。制御は、訓練モジュール204が、メモリのような手段から、(ベース)仮想環境208を取得する段階1004から始まる。段階1008で、ランダム化モジュール212は、仮想環境208を取得し、各自の仮想環境208の1つ以上の特性を変化させることによって変化した仮想環境を生成する。
【0088】
段階1012で、訓練モジュール205は、上述したような仮想環境208および変化した仮想環境を使用して訓練モデル116を訓練および生成する。段階1016で、訓練モジュール204は、メモリのような手段に、訓練モデル116を格納する。いったん訓練がなされれば、訓練モデル116は、ナビゲーティングロボット100上で、メモリのような手段に、カメラ104からの入力に基づくビジュアルナビゲーションにおける使用のために格納されてよい。
【0089】
上述した説明は本質的に例示的なものに過ぎず、本開示、その適用、または使用を制限するように意図したものではない。本開始の広範囲な教示は、多様な形態で実現されてよい。したがって、本開示は特定の例示を含んでいるが、本開示の真正なる範囲は、図面、明細書、および添付の特許請求の範囲の研究によって他の変更が明らかになるはずであるため、これに制限されてはならない。方法内の1つ以上の段階は、本開示の原理を変更せずに異なる順序で(または同時に)実行されてもよいことが理解されなければならない。また、実施形態のそれぞれは、特定の特徴を有するものと説明されているが、本開示の任意の実施形態と関連して説明された特徴のうちのいずれか1つ以上は、他の実施形態の特徴として実現されてよく、および/またはこれらとその組み合わせが明らかに説明されていなくとも、組み合わされてよい。言い換えれば、上述した実施形態は、相互排他的でなく、1つ以上の実施形態の互いの置換(permutation)は、本開示の範囲内にある。
【0090】
要素間の(例えば、モジュール、回路素子、半導体層など)空間的および機能的関係は、「連結した」、「締結した」、「カップリングされた」、「隣接する」、「横の」、「上端の」、「上の」、「下の」、および「配置された」を含んだ多様な用語によって説明される。「直接」と明らかに説明されていない限り、第1要素と第2要素との関係が上述したような開示で説明されているとき、該当の関係は、他に介入する要素が第1要素と第2要素との間に存在しない直接的な関係であってよい。ただし、1つ以上の介入する要素が第1要素と第2要素の間に(空間的にまたは機能的に)存在する間接的な関係であってもよい。ここで使用されるように、A、B、およびCのうちの少なくとも1つという説明は、非排他的な論理ORを使用して論理的な(A OR B OR C)を意味するように理解されなければならず、「Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、およびCのうちの少なくとも1つ」を意味するように理解されてはならない。
【0091】
図面において、矢印で表示された方向は、一般的に図解において関心のある(データまたは命令のような)情報の流れを示す。例えば、要素Aと要素Bが多様な情報を交換するが、要素Aから要素Bに送信される情報が図解と関連する場合、矢印は要素Aから要素Bを指してよい。このような単方向の矢印は、他の情報が要素Bから要素Aに送信されないということは含まない。また、要素Aから要素Bに送信された情報に対し、要素Bは、情報の要求または受信確認を要素Aに送信してよい。
【0092】
本出願において、以下の定義を含み、用語「モジュール」または用語「コントローラ」は用語「回路」に代替されてよい。用語「モジュール」は、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、デジタル、アナログ、または混合アナログ/デジタル離散回路、デジタル、アナログ、または混合アナログ/デジタル集積回路、組み合わせ論理回路、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)、コードを実行する(共有された、専用のまたはグループ)プロセッサ回路、プロセッサ回路によって実行されるコードを格納する(共有された、専用のまたはグループ)メモリ回路、説明された機能を提供する他の適したハードウェア構成要素、またはシステムオンチップ(system-on-chip)のように上述した一部またはすべての組み合わせの一部であるか、これを含むものを参照してよい。
【0093】
モジュールは、1つ以上のインタフェース回路を含んでよい。一部の例において、インタフェース回路は、近距離通信網(LAN)、インターネット、広域通信網(WAN)、またはこれらの組み合わせに接続する有線または無線インタフェースを含んでよい。本開始の任意の与えられたモジュールの機能は、インタフェース回路を介して接続する複数のモジュールに分散されてよい。例えば、複数のモジュールは、ロードバランシングを許容してよい。他の例において、サーバ(遠隔またはクラウドとして知られた)モジュールは、クライアントモジュールの代りに一部の機能を達成してよい。
【0094】
上述された用語であるコードは、ソフトウェア、ファームウェア、および/またはマイクロコードを含んでよく、プログラム、ルーチン、関数(function)、クラス、データ構造、および/またはオブジェクトを参照してよい。共有された用語であるプロセッサ回路は、複数のモジュールから一部またはすべてのコードを実行する単一プロセッサ回路を包括する。グループプロセッサ回路という用語は、追加のプロセッサ回路と結合し、1つ以上のモジュールからの一部またはすべてのコードを実行するプロセッサ回路を包括する。マルチ(multiple)プロセッサ回路に対する参照は、個別のダイ上のマルチプロセッサ回路、単一のダイ上のマルチプロセッサ回路、単一なプロセッサ回路のマルチコア、単一なプロセッサ回路のマルチスレッド、またはこれらの組み合わせを包括する。共有された用語であるメモリ回路は、複数のモジュールからの一部またはすべてのコードを格納する単一メモリ回路を包括する。グループメモリ回路という用語は、追加のメモリと結合し、1つ以上のモジュールからの一部またはすべてのコードを格納するメモリ回路を包括する。
【0095】
メモリ回路という用語は、コンピュータ読み取り可能な媒体のサブセットを意味する。ここで使用される、コンピュータ読み取り可能な媒体という用語は、媒体を介して(搬送波のようなもの)伝播される一時的な電気的または電磁気的信号は包括せず、したがって、コンピュータ読み取り可能な媒体という用語は、類型的かつ非一時的なものと見なされてよい。非一時的なコンピュータ読み取り可能な媒体の非制限的な例としては、非揮発性メモリ回路(フラッシュメモリ回路、消去可能なプログラム可能な読み取り専用メモリ回路、またはマスク読み取り専用メモリ回路など)、揮発性メモリ回路(スタティックRAM回路またはダイナミックRAM回路など)、磁気記録媒体(アナログまたはデジタル磁気テープ、またはハードディスクドライブなど)、および光学記録媒体(CD、DVD、またはブルーレイ(Blu-ray)ディスクなど)が挙げられる。
【0096】
本出願で説明された装置および方法は、コンピュータプログラムによって実現された1つ以上の特定の機能を実行するように汎用コンピュータを構成することによって生成された特殊目的コンピュータにより、部分的または完全に実現されてよい。上述した機能ブロック、フローチャートの構成要素、および他の要素は、熟練された技術者またはプログラマーの通常的な作業によってコンピュータプログラムに変換されることのできるソフトウェア仕様としての役割を行う。
【0097】
コンピュータプログラムは、少なくとも1つの非一時的なコンピュータ読み取り可能媒体に記録されたプロセッサ実行可能な命令語を含む。コンピュータプログラムは、記録されたデータを含むか、依存してよい。コンピュータプログラムは、特殊目的コンピュータのハードウェアと相互作用する基本の入力/出力システム(BIOS)、特殊目的コンピュータの特定のデバイスと相互作用するデバイスドライバ、1つ以上のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーションなどを含んでもよい。
【0098】
コンピュータプログラムは、(i)HTML(ハイパーテキストマークアップ言語)、XML(拡張可能なマークアップ言語)、またはJSON(Java Script Object Notation)のようなパースされる技術的な(descriptive)テキスト、(ii)アセンブリコード、(iii)コンパイラによってソースコードから生成されたオブジェクト(object)コード、(iv)インタプリタによる実行のためのソースコード、(v)ジャストインタイム(Just-In-Time:JIT)コンパイラによるコンパイル、および実行のためのソースコードなどを含んでよい。一例として、ソースコードは、C、C++、C#、Objective C、Swift、Haskell、Go、SQL、R、Lisp、JavaR、Fortran、Perl、Pascal、Curl、OCaml、JavascriptR、HTML5(Hypertext Markup Language 5th 改訂版)、Ada、ASP(Active Server Pages)、PHP(ハイパーテキストプリプロセッサ)、Scala、Eiffel、Smalltalk、Erlang、Ruby、FlashR、Visual BasicR、Lua、MATLAB、SIMULINK、およびPythonRを含む言語からの文法(syntax)を使用して作成されてよい。
【符号の説明】
【0099】
100:ナビゲーティングロボット
104:カメラ
108:推進デバイス
112:制御モジュール
116:訓練モデル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10