(57)【要約】【課題】移動教示装置において、熟練したスキルを必要とすることなく適切な移動経路を教示する。【解決手段】移動教示装置１００、２００は、ローカルマップ取得部１４２と、移動経路記録部１４３１と、地図作成部１４３３と、位置関係算出部１４４と、を備える。ローカルマップ取得部１４２は、ローカルマップＭ２を取得する。移動経路記録部１４３１は、複数の推定通過点を推定し、走行スケジュールＴＳ、ＴＳ’として記録する。地図作成部１４３３は、複数の通過点にて取得された複数のローカルマップのそれぞれを、対応する推定通過点に配置することにより、環境地図Ｍ１、Ｍ１’を作成する。位置関係算出部１４４は、第１位置Ｐ１において取得された第１ローカルマップＭ２−１と、第２位置Ｐ２において取得された第２ローカルマップＭ２−２とのずれ量に基づいて、第１位置Ｐ１と第２位置Ｐ２との相対的な位置関係を表す第１位置関係を算出する。【選択図】図４Ａ
2018022215.tif 000002
【特許請求の範囲】
【請求項１】
移動環境の第１位置から前記第１位置の近傍の第２位置まで移動体を教示移動させたときの移動経路を教示する移動教示装置であって、
前記移動体の前記移動環境における存在位置を中心とした所定の範囲内の地図情報であるローカルマップを取得するローカルマップ取得部と、
前記第１位置から前記第２位置まで教示移動する間に前記移動体が通過した複数の通過点のそれぞれにおいて取得された前記ローカルマップと前記移動環境を表す環境地図とのマップマッチングにより、前記複数の通過点の前記移動環境における位置を複数の推定通過点として推定し、当該複数の推定通過点を教示された前記移動経路である教示移動経路として記録する移動経路記録部と、
前記複数の通過点にて取得された複数の前記ローカルマップのそれぞれを、対応する推定通過点に配置することにより、前記環境地図を作成する地図作成部と、
前記第１位置において取得された第１ローカルマップと、前記第２位置において取得された第２ローカルマップとのずれ量に基づいて、前記第１位置と前記第２位置との相対的な位置関係を表す第１位置関係を算出する位置関係算出部と、
を備える移動教示装置。
【請求項２】
前記位置関係算出部は、前記第１位置に対応する前記推定通過点である第１推定通過点と、前記第２位置に対応する前記推定通過点である第２推定通過点と、の相対的な位置関係を表す第２位置関係をさらに算出し、
前記第１位置関係と前記第２位置関係との相対位置関係に基づいて、実際の前記移動経路に対する前記教示移動経路の歪みを表す推定歪み量を算出する、
請求項１に記載の移動教示装置。
【請求項３】
前記移動経路記録部は、前記推定歪み量を前記教示移動経路の全体に分配することにより、前記教示移動経路を補正する、請求項２に記載の移動教示装置。
【請求項４】
前記地図作成部は、前記教示移動経路を補正することにより補正された複数の推定通過点のそれぞれに、対応する通過点において取得した前記ローカルマップを配置して前記環境地図を補正する、請求項１〜３のいずれかに記載の移動教示装置。
【請求項５】
前記地図作成部は、前記教示移動経路を補正することにより補正された複数の推定通過点のそれぞれに、対応する通過点において取得した前記ローカルマップを配置して前記環境地図を補正する際に、各推定通過点を、当該各推定通過点に対応する通過点にて取得されたローカルマップとこれまでに補正された前記環境地図とのマップマッチングにより推定し直し、その後、推定し直した推定通過点に対応するローカルマップを配置することにより、前記環境地図を補正する、請求項１〜４のいずれかに記載の移動教示装置。
【請求項６】
前記位置関係算出部は、第３位置において取得された第３ローカルマップと、前記第３位置を通過してから所定の時間後において通過した第４位置において取得された第４ローカルマップとのずれ量に基づいて、前記第３位置と前記第４位置の相対的な位置関係を表す第３位置関係をさらに算出する、
請求項１〜５のいずれかに記載の移動教示装置。
【請求項７】
前記移動経路には、前記移動体が複数回通過する複数回通過領域が含まれ、
前記第３位置は、前記複数回通過領域に含まれる通過点を第１回目に通過したときの位置であり、前記第４位置は、前記第１回目よりも後の第２回目において通過した当該通過点の近傍の位置である、請求項６に記載の移動教示装置。
【請求項８】
移動環境の第１位置から前記第１位置の近傍の第２位置まで移動体を教示移動させたときの移動経路を教示する移動教示方法であって、
前記第１位置から前記第２位置まで教示移動する間に移動体が通過した複数の通過点のそれぞれにおいて、前記移動体の前記移動環境における存在位置を中心とした所定の範囲内の地図情報であるローカルマップを取得するステップと、
前記ローカルマップと前記移動環境を表す環境地図とのマップマッチングにより、前記複数の通過点の前記移動環境における位置を複数の推定通過点として推定するステップと、
前記複数の推定通過点を教示された前記移動経路である教示移動経路として記録するステップと、
前記複数の通過点にて取得された複数の前記ローカルマップのそれぞれを、対応する推定通過点に配置することにより、前記環境地図を作成するステップと、
前記第１位置において取得された第１ローカルマップと、前記第２位置において取得された第２ローカルマップとのずれ量に基づいて、前記第１位置と前記第２位置との相対的な位置関係を表す第１位置関係を算出するステップと、
を含む移動教示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の移動環境にて移動体を移動させた際の移動経路を教示する移動教示装置、及び、移動経路を教示する移動教示方法に関する。
【背景技術】
【０００２】
従来、ロボットなどの移動体に対して所定の移動環境における移動を教示して、その移動を当該移動体に再現させる方法や装置が知られている。移動を教示する際、移動体は、移動を教示する間に通過した複数の通過点を、教示された移動経路として記録する。当該教示された移動経路に示された複数の通過点を通過するよう制御されることにより、移動体は、教示された移動を再現できる。
【０００３】
移動経路を記録する際、移動体は、移動環境を表す地図情報（環境地図と呼ぶ）と、移動を教示している間に移動体が取得した地図情報（ローカルマップなど）とを比較して自分の位置（自己位置）を推定し、当該推定された自己位置を、移動経路の通過点として記録している。移動経路を教示している間、移動体の自己位置の推定に用いる上記の環境地図も作成されている。このような、環境地図を作成しつつ移動体の自己位置の推定を行う方法は、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）と呼ばれる。
【０００４】
ＳＬＡＭにより環境地図を作成しつつ自己位置を推定して移動経路を教示する場合、自己位置の推定誤差のため、移動体に対して適切な移動経路を教示できない場合がある。
例えば、移動開始位置から当該移動開始位置の近傍の移動終了位置まで戻るような環状の移動経路を教示する場合に、移動体に教示された移動経路の移動開始位置と移動終了位置とが一致しないことがある。また、ＳＬＡＭによる自己位置の推定誤差のために、環状の移動環境を忠実に表す環境地図が作成されないことがある。
【０００５】
環状の移動環境を環境地図にて表す場合に発生する上記の問題点を解決する方法として、例えば、特許文献１には、移動環境全体の環境地図を独立した部分地図に分割して管理する方法が開示されている。この方法では、各部分地図の作成時に連結点が設定されて、当該連結点により部分地図同士を連結することで、環境地図が生成される。
また、特許文献２においては、環状の移動環境において、移動を開始したポジションと戻ってきたポジションとが同一であるとの知識に基づいて、Ｇｒａｐｈ  ＳＬＡＭを用いて環境地図が修正されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５１５７８０３号
【特許文献２】特許第４２４９６２４号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の特許文献１及び２に記載の方法においては、環状の移動環境を表す適切な環境地図を作成又は修正するためには、熟練したスキルが必要となる。具体的には、特許文献１では、移動環境のどの範囲を１つの部分地図に含めるかの決定が難しく、当該決定の方法が適切でないと、移動環境を忠実に表すことが可能な適切な部分地図を生成できない。また、特許文献２では、移動開始位置と全く同じ位置にマシンを戻さないと、環境地図が適切に修正されない。
【０００８】
本発明の課題は、移動体に対して移動経路を教示する移動教示装置において、熟練したスキルを必要とすることなく適切な移動経路を教示することにある。
【課題を解決するための手段】
【０００９】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一見地に係る移動教示装置は、移動環境の第１位置から第２位置まで移動体を教示移動させたときの移動経路を教示する。第２位置は、第１位置の近傍の位置である。移動教示装置は、ローカルマップ取得部と、移動経路記録部と、地図作成部と、位置関係算出部と、を備える。
ローカルマップ取得部は、ローカルマップを取得する。ローカルマップは、移動体の移動環境における存在位置を中心とした所定の範囲内の地図情報である。
移動経路記録部は、第１位置から第２位置まで教示移動する間に移動体が通過した複数の通過点のそれぞれにおいて取得されたローカルマップと、移動環境を表す環境地図とのマップマッチングにより、複数の通過点の移動環境における位置を複数の推定通過点として推定する。移動経路記録部は、推定された複数の推定通過点を教示移動経路として記録する。教示移動経路は、教示移動の際に教示された移動経路である。
地図作成部は、複数の通過点にて取得された複数のローカルマップのそれぞれを、対応する推定通過点に配置することにより、環境地図を作成する。位置関係算出部は、第１位置において取得された第１ローカルマップと、第２位置において取得された第２ローカルマップとのずれ量に基づいて、第１位置と第２位置との相対的な位置関係を表す第１位置関係を算出する。
【００１０】
上記の移動教示装置においては、まず、ローカルマップ取得部が、第１位置から第２位置まで教示移動する間に移動体が通過した複数の通過点のそれぞれにおいて、ローカルマップを取得する。次に、移動経路記録部が、当該ローカルマップと、移動環境を表す環境地図とのマップマッチングにより、各通過点の移動環境における位置を、推定通過点として推定する。また、移動経路記録部は、マップマッチングにより推定された複数の推定通過点を、教示移動の際に教示された移動経路である教示移動経路として記録する。さらに、地図作成部は、取得された複数のローカルマップのそれぞれを、対応する推定通過点に配置することにより、環境地図を作成する。
移動体が第１位置から第２位置へと移動後、位置関係算出部が、第１位置において取得されたローカルマップである第１ローカルマップと、第２位置において取得されたローカルマップである第２ローカルマップとのずれ量に基づいて、第１位置と第２位置との相対的な位置関係を表す第１位置関係を算出する。
【００１１】
上記のように、位置関係算出部が、第１ローカルマップと第２ローカルマップとのずれ量に基づいて、第１位置と第２位置との相対的な位置関係を算出することにより、上記の移動教示装置においては、第１位置と同一である位置に移動体を移動させることなく、教示移動経路の第１位置と第２位置とを確定できる。
その結果、教示移動経路の開始位置と終了位置とを確定した上で実行する必要がある教示移動経路の補正を、例えば、第１位置と第２位置とを一致させるような教示移動を移動体にさせることなく、すなわち、熟練したスキルを必要とすることなく実行できる。
【００１２】
位置関係算出部は、第２位置関係をさらに算出してもよい。第２位置関係は、第１位置に対応する推定通過点である第１推定通過点と、第２位置に対応する推定通過点である第２推定通過点と、の相対的な位置関係を表す。
この場合、位置関係算出部は、第１位置関係と第２位置関係との相対位置関係に基づいて、推定歪み量を算出する。推定歪み量は、実際の移動経路に対する教示移動経路の歪みを表す量である。
これにより、移動経路記録部により作成された教示移動経路が、教示移動中の移動体の実際の移動経路からどの程度歪んでいるかを算出できる。
【００１３】
移動経路記録部は、推定歪み量を教示移動経路の全体に分配することにより、教示移動経路を補正してもよい。これにより、教示移動経路を実際の教示された移動経路に近づけることができる。
【００１４】
地図作成部は、教示移動経路を補正することにより補正された複数の推定通過点のそれぞれに、対応する通過点において取得したローカルマップを配置して環境地図を補正してもよい。これにより、より精度よく環境地図を補正できる。
【００１５】
教示移動経路を補正することにより補正された複数の推定通過点のそれぞれに、対応する通過点において取得したローカルマップを配置して環境地図を補正する際に、地図作成部は、各推定通過点を、当該各推定通過点に対応する通過点にて取得されたローカルマップとこれまでに補正された環境地図とのマップマッチングにより推定し直し、その後、推定し直した推定通過点に対応するローカルマップを配置することにより、環境地図を補正してもよい。
これにより、さらに精度よく環境地図を補正できる。
【００１６】
位置関係算出部は、第３ローカルマップと第４ローカルマップとのずれ量に基づいて、第３位置関係をさらに算出してもよい。第３ローカルマップは、移動経路の第３位置において取得されたローカルマップである。第４ローカルマップは、第３位置を通過してから所定の時間後において通過した第４位置において取得されたローカルマップである。第３位置関係は、第３位置と第４位置の相対的な位置関係である。
これにより、環状の移動経路（移動環境）における始点と終点との位置関係だけでなく、環状でない移動経路の途中に存在する経路の位置関係も算出できる。その結果、移動経路の途中においても、教示移動経路の補正などを実行できる。
【００１７】
移動経路には、複数回通過領域が含まれていてもよい。複数回通過領域は、移動体が複数回通過する領域である。
このとき、第３位置は、複数回通過領域に含まれる通過点を第１回目に通過したときの位置である。一方、第４位置は、第１回目よりも後の第２回目において通過した、当該通過点（第３位置）の近傍の位置である。
これにより、移動体が複数回通過した通過点及び／又はその近傍で取得された複数のローカルマップを用いて、環状でない移動経路の途中に存在する経路の位置関係を算出できる。
【００１８】
本発明の他の見地に係る移動教示方法は、移動環境の第１位置から第１位置の近傍の第２位置まで移動体を教示移動させたときの移動経路を教示する方法である。移動教示方法は、以下のステップを含む。
◎第１位置から第２位置まで教示移動する間に移動体が通過した複数の通過点のそれぞれにおいて、移動体の移動環境における存在位置を中心とした所定の範囲内の地図情報であるローカルマップを取得するステップ。
◎ローカルマップと移動環境を表す環境地図とのマップマッチングにより、上記の複数の通過点の移動環境における位置を複数の推定通過点として推定するステップ。
◎複数の推定通過点を、教示された移動経路である教示移動経路として記録するステップ。
◎複数の通過点にて取得された複数のローカルマップのそれぞれを、対応する推定通過点に配置することにより、環境地図を作成するステップ。
◎第１位置において取得された第１ローカルマップと、第２位置において取得された第２ローカルマップとのずれ量に基づいて、第１位置と第２位置との相対的な位置関係を表す第１位置関係を算出するステップ。
【００１９】
上記の移動教示方法では、第１ローカルマップと第２ローカルマップとのずれ量に基づいて、第１位置と第２位置との相対的な位置関係を算出している。これにより、第１位置と同一である位置に移動体を移動させることなく、教示移動経路の第１位置と第２位置とを確定できる。
その結果、教示移動経路の開始位置と終了位置とを確定した上で実行する必要がある教示移動経路の補正を、例えば、第１位置と第２位置とを一致させるような教示移動を移動体にさせることなく、すなわち、熟練したスキルを必要とすることなく実行できる。
【発明の効果】
【００２０】
本発明の移動教示装置を用いることにより、熟練したスキルを必要とすることなく適切な移動経路を教示できる。
【図面の簡単な説明】
【００２１】
【図１】発明の一実施形態が採用された移動体の構成を示す図。
【図２】制御部の構成を示す図。
【図３】移動体の動作の概略を示すフローチャート。
【図４Ａ】手動モードにおける移動体の動作を示すフローチャート。
【図４Ｂ】環境地図及び走行スケジュールの生成方法を示すフローチャート。
【図５】移動環境及び移動経路の一例を示す図。
【図６】第１ローカルマップの一例を示す図。
【図７Ａ】環状の移動経路として生成された走行スケジュールの一例を示す図。
【図７Ｂ】環状の移動環境として生成された環境地図の一例を示す図。
【図８】第２ローカルマップの一例を示す図。
【図９Ａ】第１ローカルマップの中心と第２ローカルマップの中心とを共通の原点に配置したときの状態を示す図。
【図９Ｂ】第１ローカルマップと第２ローカルマップが一致したときの状態の一例を示す図。
【図１０】推定歪み量が第１位置関係と第２位置関係との差である理由を模式的に示す図。
【図１１】補正後の走行スケジュールの一例を示す図。
【図１２】補正後の環境地図の一例を示す図。
【図１３】第２実施形態の移動教示装置にて実行される手動モードの動作を示すフローチャート。
【図１４】複数回通過領域を含む移動環境と複数回通過領域を往復する移動経路の一例を示す図。
【図１５】第３位置及び第４位置の他の一例を示す図。
【発明を実施するための形態】
【００２２】
１．第１実施形態
（１）移動体の構成
移動教示装置１００（後述）が用いられる移動体１について説明する。本実施形態の移動体１は、例えば、ユーザにより教示された経路を再現しながら、自律して走行可能な移動体である。まず、移動体１の構成を、図１を用いて説明する。図１は、本発明の一実施形態が採用された移動体の構成を示す図である。
移動体１は、本体１１を有する。本体１１は、移動体１の本体を構成する例えば筐体である。本実施形態において、後述する「自己位置」は、移動環境ＭＥを表す環境地図Ｍ１上における本体１１の中心の位置（座標）と定義する。また、「自身」との語は、移動体１の本体１１のことを指すこととする。
【００２３】
移動体１は、移動部１２を有する。移動部１２は、例えば、本体１１を移動させる差動二輪型の走行部である。
具体的には、移動部１２は、一対のモータ１２１ａ、１２１ｂを有する。一対のモータ１２１ａ、１２１ｂは、本体１１の底部に設けられた、例えばサーボモータやブラシレスモータなどの電動モータである。一対のモータ１２１ａ、１２１ｂは、制御部１４（後述）と電気的に接続され、制御部１４からの指令に基づいて、それぞれ独立に、任意の回転数及びトルクにてその出力回転軸を回転させる。
【００２４】
移動部１２は、一対の車輪１２３ａ、１２３ｂを有する。一対の車輪１２３ａ、１２３ｂは、それぞれ、一部が移動環境ＭＥの床面（移動面）と接しており、一対のモータ１２１ａ、１２１ｂの出力回転軸に接続される。これにより、車輪１２３ａ、１２３ｂは、それぞれ、モータ１２１ａ、１２１ｂによって独立して回転し、本体１１を移動させる。
上記のように独立回転が可能なことによって、車輪１２３ａと１２３ｂの回転数に差を生じさせて本体１１の姿勢を変化できる。一方、一対の車輪１２３ａ、１２３ｂの回転数が同じであれば、本体１１を直進できる。
【００２５】
モータ１２１ａ、１２１ｂのそれぞれの出力回転軸には、エンコーダ１２５ａ、１２５ｂ（図２）が設けられている。エンコーダ１２５ａ、１２５ｂは、例えば、モータ１２１ａ、１２１ｂの出力回転軸の回転量に基づいたパルス信号を出力するインクリメンタル型のエンコーダである。これにより、自己位置推定部１４３（後述）は、モータ１２１ａ、１２１ｂの回転量、すなわち、車輪１２３ａ、１２３ｂの回転量に基づいて、移動環境ＭＥにおける移動体１（本体１１）の位置及び／又は姿勢を推定できる。
【００２６】
移動体１は、レーザレンジセンサ１３を有する。レーザレンジセンサ１３は、例え
ば、レーザ発振器によりパルス発振されたレーザ光を、移動環境ＭＥ中の構造物（例えば、移動環境ＭＥに配置された柱、棚、壁など）である障害物や物体に放射状に照射し、当該障害物から反射した反射光をレーザ受信器により受信することにより、当該障害物や物体に関する情報を取得するレーザレンジファインダ（ＬＲＦ：Ｌａｓｅｒ  Ｒａｎｇｅ  Ｆｉｎｄｅｒ）である。
レーザレンジセンサ１３は、本体１１の前部に配置された第１レーザレンジセンサ１３１と、本体１１の後部に配置された第２レーザレンジセンサ１３３と、を有する。
【００２７】
第１レーザレンジセンサ１３１は、本体１１の前方に左右方向にレーザ光を放射状に発生することにより、第１レーザレンジセンサ１３１を中心とした本体１１の前方の半径５ｍ程度の円内に含まれる障害物や物体に関する情報を取得する。
一方、第２レーザレンジセンサ１３３は、本体１１の後方に左右方向にレーザ光を放射状に発生することにより、第２レーザレンジセンサ１３３を中心とした本体１１の後方の半径５ｍ程度の円内に含まれる障害物や物体に関する情報を取得する。
なお、上記レーザレンジセンサの検出可能距離は、上記の値に限られず、移動体１の用途等に応じて適宜変更できる。
【００２８】
その他、上記の障害物や物体を検出するセンサとしては、レーザレンジファインダの他に、周囲に存在する障害物や物体とセンサ（本体１１）との間の距離を測定可能なセンサを用いることができる。例えば、ＴＯＦ（Ｔｉｍｅ  Ｏｆ  Ｆｌｉｇｈｔ）カメラなどを使用できる。さらに、１次元又は２次元の距離を測定するセンサを、２次元又は３次元の距離を測定するものとして動作させることが可能なシステムなどを使用できる。
【００２９】
なお、以下では、物体に関する二次元（Ｘ−Ｙ座標系）のデータを用いた例について説明するが、以下の説明は、三次元（Ｘ−Ｙ−Ｚ座標系）のデータに対しても同様に適用できる。
【００３０】
移動体１は、制御部１４を有する。制御部１４は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ハードディスク装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、記憶媒体読み出し装置などの記憶装置、信号変換を行うインターフェースなどを備えたコンピュータシステムである。制御部１４は、移動体１の各部の制御を行う。制御部１４の構成については、後ほど詳しく説明する。
【００３１】
移動体１は、補助輪部１５をさらに有していてもよい。補助輪部１５は、２つの補助車輪１５ａ、１５ｂを有する。２つの補助車輪１５ａと１５ｂは、それぞれが独立に回転可能なように取り付けられている。補助輪部１５を備えることにより、移動体１は安定に、かつ、スムーズに移動できる。
【００３２】
（２）制御部の構成
図２を用いて、制御部１４の構成を説明する。図２は、制御部の構成を示す図である。
なお、以下に説明する制御部１４の各部の機能の一部又は全部は、コンピュータシステムにおいて実行可能なプログラムとして実現されていてもよい。また、当該プログラムは、当該マイコンシステムの記憶装置に記憶されていてもよい。又は、上記機能の一部又は全部は、カスタムＩＣなどにより実現されていてもよい。
【００３３】
制御部１４は、記憶部１４１を有する。記憶部１４１は、制御部１４を構成するコンピュータシステムの記憶装置の記憶領域の一部である。記憶部１４１は、移動体１を制御するために用いられる各種情報を記憶する。
【００３４】
制御部１４は、ローカルマップ取得部１４２を有する。ローカルマップ取得部１４２は、レーザレンジセンサ１３から取得した信号に基づいて、ローカルマップＭ２を取得する。ローカルマップＭ２は、移動体１の移動環境ＭＥにおける存在位置を中心とした所定の範囲内の地図情報である。本実施形態において、ローカルマップ取得部１４２は、以下のようにしてローカルマップＭ２を取得する。
ローカルマップ取得部１４２は、まず、レーザレンジセンサ１３からレーザ光を照射したタイミングと、反射光をレーザレンジセンサ１３（レーザ受信器）にて受信したタイミングとの時間差から、レーザレンジセンサ１３と物体との距離を算出する。また、例えば、反射光を受信した時のレーザ受信器の受光面の角度から、本体１１から見た物体が存在する方向を算出できる。
【００３５】
その後、ローカルマップ取得部１４２は、上記の時間差から算出される本体１１から見た物体の相対的な距離と、反射光を受光したときの受光面の角度とを、移動環境ＭＥを表す座標平面上の座標値に変換する。これにより、ローカルマップ取得部１４２は、移動体１（本体１１）の周囲に存在する物体の移動体１に対する相対的な位置を表す地図情報を、ローカルマップＭ２として取得できる。
例えば、移動体１から物体までの距離がＲと算出され、レーザレンジセンサ１３の受光面の角度が移動体１の直進方向（図１）に対してα（反時計回りを正の角度とする）となっている場合、物体の移動体１に対する相対的な位置は、レーザレンジセンサ１３の中心を原点とし、移動体１の直進方向をｘ方向（水平方向）とした座標系において、（Ｒ＊ｃｏｓα，Ｒ＊ｓｉｎα）と算出できる。
【００３６】
ローカルマップ取得部１４２は、上記のようにして取得したローカルマップＭ２を記憶部１４１に記憶する。
【００３７】
制御部１４は、自己位置推定部１４３を有する。自己位置推定部１４３は、移動体１が移動環境ＭＥを移動中に、移動体１の移動環境ＭＥにおける位置（自己位置と呼ぶ）、及び／又は、所定の軸（例えば、移動環境ＭＥを表すための座標系（Ｘ−Ｙ座標系）のＸ軸）に対して移動体１が向いている角度（姿勢と呼ぶ）を推定する。また、自己位置推定部１４３は、移動環境ＭＥにおける物体の存在位置を表す環境地図Ｍ１を作成する。
【００３８】
具体的には、自己位置推定部１４３は、移動経路記録部１４３１を有する。移動経路記録部１４３１は、ローカルマップ取得部１４２により得られたローカルマップＭ２と、記憶部１４１に記憶された環境地図Ｍ１とをマップマッチングすることにより、移動体１の自己位置及び／又は姿勢を推定する。
【００３９】
具体的には、移動経路記録部１４３１は、まず、エンコーダ１２５ａ、１２５ｂから取得したモータ１２１ａ、１２１ｂ（車輪１２３ａ、１２３ｂ）の回転量に基づいて算出された移動環境ＭＥ上の移動体１の位置に対応する環境地図Ｍ１上の位置に、ローカルマップＭ２を配置する。次に、移動経路記録部１４３１は、当該位置において、ローカルマップＭ２を、車輪１２３ａ、１２３ｂの回転量に基づいて算出された姿勢（角度）だけ回転して、環境地図Ｍ１とローカルマップＭ２とのマップマッチングを行う。
このとき、移動経路記録部１４３１は、車輪１２３ａ、１２３ｂの回転量に基づいて推定された位置及び／又は姿勢の推定誤差を考慮して、ローカルマップＭ２を環境地図Ｍ１上に配置するときの配置位置や回転角度に幅を持たせる。具体的には、移動経路記録部１４３１は、車輪１２３ａ、１２３ｂの回転量に基づいて推定された位置及び／又は姿勢を中心とした所定の範囲内の環境地図Ｍ１上の複数の位置にローカルマップＭ２を配置し、当該複数の位置のそれぞれにおいて、所定の回転角度範囲内にてローカルマップＭ２を回転する。
【００４０】
その後、移動経路記録部１４３１は、上記の複数の配置位置及び複数の回転角度のうち、ローカルマップＭ２が環境地図Ｍ１と最も一致（マッチング）する配置位置及び回転角度を、それぞれ、自己位置及び姿勢と推定する。このようなマップマッチングによる自己位置及び／姿勢の推定は、例えば、「尤度計算」により実行できる。
【００４１】
環境地図Ｍ１とローカルマップＭ２とをマップマッチングして自己位置及び／又は姿勢を推定する際に、ローカルマップＭ２の配置位置及び回転角度に幅を持たせることにより、車輪１２３ａ、１２３ｂの回転量に基づく自己位置及び／又は姿勢の推定誤差と、マップマッチングにおける自己位置及び／又は姿勢の推定誤差（主に、レーザレンジセンサ１３により取得されるローカルマップＭ２及び／又は環境地図Ｍ１に含まれる誤差に起因する）とを相殺して、正確に自己位置及び／姿勢を推定できる。
【００４２】
走行制御部１４５（後述）が手動モード（後述）を実行している場合には、移動経路記録部１４３１は、移動体１が移動中に通過した複数の通過点において、上記のようにして移動体１の自己位置及び／又は姿勢を推定する。手動モードを実行中に移動体１が通過した通過点の環境地図Ｍ１（移動環境ＭＥ）上における自己位置及び／又は姿勢を、それぞれ、推定通過点及び推定姿勢と呼ぶこととする。
移動経路記録部１４３１は、各通過点において推定された複数の推定通過点及び／又は推定姿勢を、教示移動（手動モードの実行）の際に教示された走行スケジュールＴＳ（教示移動経路の一例）として記憶部１４１に記憶する。
【００４３】
移動経路記録部１４３１は、また、位置関係算出部１４４（後述）において算出された位置関係に基づいて、作成した走行スケジュールＴＳを補正する。具体的には、移動体１に環状の移動経路を教示した際に、当該環状の移動経路の移動開始位置（本実施形態においては、第１位置Ｐ１に対応）と移動終了位置（第２位置Ｐ２に対応）との間の実際の位置関係と、走行スケジュールＴＳにおける推定された移動開始位置（第１推定通過点と呼ぶ）と移動終了位置（第２推定通過点と呼ぶ）との間の位置関係との差（推定歪み量と呼ぶ）に基づいて、走行スケジュールＴＳを補正する。
これにより、移動経路記録部１４３１は、走行スケジュールＴＳを実際の教示された移動経路に近づけて、適切な走行スケジュールＴＳを作成できる。
【００４４】
自己位置推定部１４３は、地図作成部１４３３を有する。地図作成部１４３３は、移動体１が手動モードを実行中に、上記の複数の通過点にて取得された複数のローカルマップＭ２のそれぞれを、対応する推定通過点に配置することにより、環境地図Ｍ１を作成し記憶部１４１に記憶する。
移動経路記録部１４３１が走行スケジュールＴＳを補正後、地図作成部１４３３は、補正後の走行スケジュールＴＳに含まれる推定通過点のそれぞれに、対応するローカルマップＭ２を配置して、手動モードを実行中に作成した環境地図Ｍ１を補正する。これにより、教示した移動経路（移動環境ＭＥ）が環状であった場合でも、移動開始位置の周囲の地図情報（ローカルマップ）と、移動終了位置の周囲の地図情報（ローカルマップ）とが適切に接続された環境地図Ｍ１を作成できる。
【００４５】
制御部１４は、位置関係算出部１４４を有する。位置関係算出部１４４は、移動環境ＭＥの互いに近い位置にある２つの位置の位置関係を算出する。位置関係算出部１４４は、移動環境ＭＥにおける１つの位置において取得したローカルマップＭ２と、当該１つの位置の近傍において取得したローカルマップＭ２とのずれ量に基づいて、互いに近い２つの位置の位置関係を算出する。
レーザレンジセンサ１３にて取得されたデータに基づいて作成されるローカルマップＭ２は、一般的に、車輪１２３ａ、１２３ｂと移動面との間の滑りなどによる推定誤差の影響を受けにくい。従って、位置関係算出部１４４が、ローカルマップＭ２の比較により２つの位置の位置関係を算出することにより、移動体１の自己位置及び姿勢の推定誤差に影響をうけることなく、２つの位置の正確な位置関係を算出できる。
【００４６】
上記のローカルマップ取得部１４２と、自己位置推定部１４３と、位置関係算出部１４４と、が本実施形態における移動教示装置１００を構成する。
【００４７】
制御部１４は、走行制御部１４５を有する。走行制御部１４５は、モータ１２１ａ、１２１ｂを制御する。走行制御部１４５は、例えば、モータ１２１ａ、１２１ｂのそれぞれの制御量を算出し、当該制御量に基づいた駆動電力をモータ１２１ａ、１２１ｂのそれぞれに出力するモータドライバである。走行制御部１４５は、エンコーダ１２５ａ、１２５ｂから入力したモータ１２１ａ、１２１ｂの単位時間あたりの回転量（回転速度）が、所望の回転速度となるように、モータ１２１ａ、１２１ｂの制御量を算出している（フィードバック制御）。
【００４８】
走行制御部１４５は、ユーザによる切替などにより、自律モード又は手動モードのいずれかを実行可能となっている。自律モードの実行時においては、走行制御部１４５は、例えば、記憶部１４１に記憶された走行スケジュールＴＳに示された各推定通過点と、自己位置推定部１４３において推定された自己位置及び／又は姿勢との差に基づいて、モータ１２１ａ、１２１ｂのそれぞれの制御量を算出して、算出された制御量に基づいた駆動電力を、これらのモータに出力する。
これにより、走行制御部１４５は、自律モードの実行時においては、移動体１を、走行スケジュールＴＳに従って、自律的に移動できる。
【００４９】
一方、手動モードの実行時においては、走行制御部１４５は、例えば、無線又は有線にて移動体１と通信可能なコントローラ又はコンピュータシステム、又は、移動体１に設けられた操作ハンドル（図示せず）などの操作装置を用いたユーザの操作を受け付けて、当該ユーザの操作に基づいて、モータ１２１ａ、１２１ｂを制御する。これにより、移動体１は、ユーザの操作により移動可能となる。
【００５０】
制御部１４が上記の構成を有することにより、制御部１４は、手動モードの実行時においては、手動モードの実行中に移動体１が移動した移動経路を走行スケジュールＴＳとして教示できる。一方、自律モードの実行時においては、制御部１４は、移動体１を、走行スケジュールＴＳに従って自律的に移動するよう制御できる。
【００５１】
（３）移動体の動作
以下、移動体１の動作について図３を用いて説明する。図３は、移動体の動作の概略を示すフローチャートである。
移動体１が動作を開始すると、制御部１４が、ユーザにより動作モードの選択が行われたか否かを判定する（ステップＳ１）。具体的には、例えば、上記の操作装置から動作モードの選択の指示信号を入力したとき、制御部１４は、ユーザにより動作モードの選択が行われたと判定する。
【００５２】
ユーザにより動作モードの選択がなされたと判定された場合（ステップＳ１において「Ｙｅｓ」の場合）、制御部１４の走行制御部１４５は、選択された動作モードが手動モードであるか、自律モードであるかを判定する（ステップＳ２）。
選択された動作モードが手動モードであると判定された場合（ステップＳ２において「手動モード」の場合）、走行制御部１４５は、手動モードを実行する（ステップＳ３）。具体的には、走行制御部１４５は、上記の操作装置のユーザによる操作を受信し、受信したユーザの操作に従って、モータ１２１ａ、１２１ｂを制御する。
【００５３】
また、手動モードにおいて走行制御部１４５がユーザの操作に従ってモータ１２１ａ、１２１ｂを制御する間、自己位置推定部１４３は、環境地図Ｍ１と走行スケジュールＴＳを生成する。これにより、移動体１が移動する移動環境ＭＥ（における物体の存在位置）を表す環境地図Ｍ１と、ユーザの操作により教示された移動体１の移動経路を表す走行スケジュールＴＳと、を生成できる。なお、ステップＳ３における手動モードの動作の詳細については、後ほど詳しく説明する。
【００５４】
一方、選択された動作モードが自律モードであると判定された場合（ステップＳ２において「自律モード」の場合）、走行制御部１４５は、自律モードを実行する（ステップＳ４）。具体的には、自己位置推定部１４３が、ステップＳ３において生成した環境地図Ｍ１と、自律モードにて移動体１を移動中に取得したローカルマップＭ２とのマップマッチングにより、自律モードにて移動中の移動体１の自己位置及び／又は姿勢を推定しつつ、走行制御部１４５が、ステップＳ３において生成した走行スケジュールＴＳに従ってモータ１２１ａ、１２１ｂを制御する。
【００５５】
その後、例えば、操作装置を用いてユーザが手動モード又は自律モードの停止を指示するか、あるいは、自律モードにおいて移動体１が走行スケジュールＴＳに示された通過点を全て通過して移動終了位置に到達したと判定されるまで（ステップＳ５において「Ｎｏ」の場合）、上記のステップＳ１〜Ｓ４は、継続して実行される。
一方、手動モード又は自律モードが停止されるか、又は、自律モードにおいて移動体１が走行スケジュールＴＳに示された移動終了位置に到達すると（ステップＳ５において「Ｙｅｓ」の場合）、移動体１はその動作を終了する。
【００５６】
上記のステップＳ１〜Ｓ５を実行することにより、ステップＳ４の自律モードの実行時において、自己位置推定部１４３は、環境地図Ｍ１と自律モードの実行時に取得したローカルマップＭ２とのマップマッチングにより、精度よく、移動体１の自己位置及び／又は姿勢を推定できる。その結果、走行制御部１４５は、走行スケジュールＴＳに示された各推定通過点と、自己位置推定部１４３において精度よく推定された自己位置及び／又は姿勢との差に基づいてモータ１２１ａ、１２１ｂを制御して、走行スケジュールＴＳを忠実に再現するよう移動体１を制御できる。
【００５７】
なぜなら、後述するように、ステップＳ３において手動モードを実行中に、自己位置推定部１４３は、一度生成した環境地図Ｍ１と走行スケジュールＴＳとを、ユーザの操作に従って移動体１が移動したときの実際の移動開始位置（第１位置Ｐ１）と、当該移動開始位置の近傍の移動終了位置（第２位置Ｐ２）との位置関係に基づいて補正するからである。
そして、自己位置推定部１４３は、自律モードの実行時（ステップＳ４）において、補正後の環境地図Ｍ１とローカルマップＭ２とのマップマッチングにより、移動体１の自己位置及び／又は姿勢を推定するからである。
【００５８】
（４）手動モード
次に、上記のステップＳ３において実行される手動モードについて、図４Ａを用いて説明する。図４Ａは、手動モードにおける移動体の動作を示すフローチャートである。以下では、図５に示すような環状の移動環境ＭＥを、移動開始位置（第１位置Ｐ１）から移動終了位置（第２位置Ｐ２）まで環状の移動経路Ｒ１にて移動体１を教示移動させる場合の動作を例にとって説明する。図５は、移動環境及び移動経路の一例を示す図である。
移動体１を第１位置Ｐ１に配置し、手動モードによる移動体１の移動を開始すると、位置関係算出部１４４は、ローカルマップ取得部１４２に対して、第１位置Ｐ１においてローカルマップＭ２を取得するよう指令する（ステップＳ３１）。
【００５９】
上記の指令を受け取ったローカルマップ取得部１４２は、第１位置Ｐ１においてローカルマップＭ２を取得し、当該ローカルマップを第１ローカルマップＭ２−１として記憶部１４１に記憶する。第１位置Ｐ１においては、例えば、図６に示すような第１ローカルマップＭ２−１が取得されたとする。図６は、第１ローカルマップの一例を示す図である。
なお、ローカルマップ取得部１４２は、第１ローカルマップＭ２−１及び第２ローカルマップＭ２−２（後述）を、上記の座標変換を行うことなく、レーザレンジセンサ１３から移動環境ＭＥに存在する物体（壁）までの距離と、移動体１の直進方向に対する当該物体の存在する方向と、を関連付けたデータを第１ローカルマップＭ２−１及び第２ローカルマップＭ２−２としてもよい。
【００６０】
第１ローカルマップＭ２−１を取得後、移動教示装置１００は、移動体１を自律走行させる際に用いられる環境地図Ｍ１と走行スケジュールＴＳとを生成する（ステップＳ３２）。具体的には、図４Ｂのフローチャートに示す処理に従って、環境地図Ｍ１と走行スケジュールＴＳとを生成する。図４Ｂは、環境地図及び走行スケジュールの生成方法を示すフローチャートである。
移動体１が上記の操作装置によるユーザの操作に基づいて移動中（ステップＳ３２１）、所定の時間毎（例えば、移動体１の制御周期毎）に、ローカルマップ取得部１４２が、ローカルマップＭ２を取得する（ステップＳ３２２）。
これにより、移動体１が移動経路Ｒ１を移動中の所定の時間毎、すなわち、移動経路Ｒ１上の移動体１が通過した複数の通過点のそれぞれにおいて、ローカルマップＭ２が取得される。
【００６１】
ローカルマップＭ２を取得後、移動経路記録部１４３１が、移動環境ＭＥにおける移動体１の現在の自己位置及び／又は姿勢を、それぞれ、推定通過点及び／又は推定姿勢として推定する（ステップＳ３２３）。
具体的には、移動経路記録部１４３１は、前回の推定通過点及び／又は推定姿勢の推定までに生成された環境地図Ｍ１と、今回の推定のためにステップＳ３２２において取得されたローカルマップＭ２とのマップマッチングを行い、現在の推定通過点及び／又は推定姿勢を推定する。
【００６２】
現在の推定通過点及び／又は推定姿勢を推定後、地図作成部１４３３は、環境地図Ｍ１を生成する（ステップＳ３２４）。
具体的には、地図作成部１４３３は、これまでに生成されている環境地図Ｍ１上の現在の推定通過点に対応する位置（座標）に、ステップＳ３２２において取得したローカルマップＭ２を配置する。その後、地図作成部１４３３は、当該環境地図Ｍ１上の位置において、推定姿勢に対応する角度にて上記のローカルマップＭ２を回転する。これにより、これまでに生成された環境地図Ｍ１に、ステップＳ３２２にて取得したローカルマップＭ２を合体して、新たな環境地図Ｍ１を生成できる。
なお、ローカルマップＭ２の環境地図Ｍ１上における配置及び回転は、それぞれ、環境地図Ｍ１を定義した座標平面（Ｘ−Ｙ座標系）にて座標を平行移動及び回転する行列計算を、取得したローカルマップＭ２に対して実行することにより実現できる。
地図作成部１４３３は、上記のようにして生成した新たな環境地図Ｍ１を、記憶部１４１に記憶する。
【００６３】
新たな環境地図Ｍ１を生成後、移動経路記録部１４３１は、走行スケジュールＴＳを生成する（ステップＳ３２５）。具体的には、移動経路記録部１４３１は、これまでに推定された推定通過点及び／又は推定姿勢が記録された走行スケジュールＴＳに、ステップＳ３２３にて推定された現在の推定通過点及び／又は推定姿勢を追加記録して、新たな走行スケジュールＴＳを生成する。移動経路記録部１４３１は、新たに生成した走行スケジュールＴＳを、記憶部１４１に記憶する。
【００６４】
なお、走行スケジュールＴＳに現在の推定通過点及び／又は推定姿勢を記憶する際に、現在の推定通過点及び／又は推定姿勢の推定に用いたローカルマップＭ２を取得した時刻や、現在の通過点における移動体１の速度（操作装置による操作量）などを記憶してもよい。走行スケジュールＴＳにこれらの情報を記憶することにより、例えば、走行制御部１４５は、モータ１２１ａ、１２１ｂを走行スケジュールＴＳに従って制御しやすくなる。
【００６５】
走行スケジュールＴＳに現在の推定通過点及び／又は推定姿勢を追加記録後、例えば、ユーザが操作装置などを用いて手動モードの終了を指示していないか、又は、操作装置から移動体１の操作信号を受信しており手動モードが継続していると判定される場合（ステップＳ３２６において「Ｎｏ」の場合）、プロセスはＳ３２１に戻り、手動モードが終了したと判定されるまで（ステップＳ３２６において「Ｙｅｓ」となるまで）、上記のステップＳ３２１〜Ｓ３２５は繰り返し実行される。
本実施形態においては、環状の移動環境ＭＥにおいて、移動体１が第１位置Ｐ１から環状の移動経路Ｒ１を移動し、当該第１位置Ｐ１の近傍の第２位置Ｐ２に戻ったときに、手動モードが終了する。
【００６６】
上記のステップＳ３２１〜Ｓ３２６を、環状の移動経路Ｒ１を第１位置Ｐ１から第２位置Ｐ２まで移動体１が移動する間実行することにより、例えば、図７Ａに示すような走行スケジュールＴＳと、図７Ｂに示すような環境地図Ｍ１とが生成される。図７Ａは、環状の移動経路として生成された走行スケジュールの一例を示す図である。図７Ｂは、環状の移動環境として生成された環境地図の一例を示す図である。
図７Ａに示すように、図７Ａの白点（各白点がＸ−Ｙ座標系の座標値）の集合体として表される走行スケジュールＴＳは、移動体１の移動開始後しばらくは、実際の移動経路Ｒ１とほとんど差は見られない。しかしながら、第２位置Ｐ２に近づくにつれて、走行スケジュールＴＳと実際の移動経路Ｒ１との差は広がり、走行スケジュールＴＳでは、移動終了位置が、第２位置Ｐ２とは異なる第２推定通過点Ｐ２'と推定されている。このことは、推定姿勢においても同様となっている。
【００６７】
また、図７Ｂに示すように、走行スケジュールＴＳが上記のように実際の移動経路Ｒ１からずれる結果、各推定通過点及び／又は推定姿勢にローカルマップＭ２を配置することにより生成される環境地図Ｍ１も、実際の移動環境ＭＥとはずれたものとなる。特に、移動開始位置（第１位置Ｐ１）と移動終了位置（第２位置Ｐ２）との近傍では、移動の初期段階で生成された環境地図Ｍ１と、移動の最終段階で生成された環境地図Ｍ１とが一致せず、最終的に生成される環境地図Ｍ１が環状とはならない。
このようなずれは、自己位置推定部１４３における推定自己位置及び／又は推定姿勢の推定誤差が、移動体１が移動するに従い累積されることにより引き起こされる。
【００６８】
従って、本実施形態においては、環状の移動経路Ｒ１の移動開始位置である第１位置Ｐ１と、移動経路Ｒ１の移動終了位置である第２位置Ｐ２との実際の位置関係（第１位置関係）を算出し、当該第１位置関係に基づいて、実際の移動経路Ｒ１からずれた走行スケジュールＴＳと、実際の移動環境ＭＥからずれた環境地図Ｍ１とを補正する。
【００６９】
具体的には、ステップＳ３２において走行スケジュールＴＳと環境地図Ｍ１とを生成後、まず、移動教示装置１００は、生成した環境地図Ｍ１及び走行スケジュールＴＳが環状の移動環境ＭＥ及び移動経路Ｒ１であったか否かを判定する。例えば、手動モードにおける移動の開始前に、ユーザが、環状の移動経路を教示することを予め移動教示装置１００に通知していた場合（ステップＳ３３において「Ｙｅｓ」の場合）、移動教示装置１００は、生成した走行スケジュールＴＳと環境地図Ｍ１とを補正すると決定する。
一方、環状の移動経路を教示することが通知されていない場合（ステップＳ３３において「Ｎｏ」の場合）、移動教示装置１００は、生成した走行スケジュールＴＳと環境地図Ｍ１とを補正せず、手動モードを終了する。これにより、走行スケジュールＴＳと環境地図Ｍ１とを補正する必要がない場合には、走行スケジュールＴＳや環境地図Ｍ１の補正を無駄に実行することを回避できる。
【００７０】
なお、環状の移動経路を教示することを、手動モードにて移動を開始する前に通知する例に限られず、ユーザは、ステップＳ３２にて走行スケジュールＴＳ及び環境地図Ｍ１を生成後に、教示した移動経路が環状であることを通知してもよい。これにより、例えば、教示予定の移動経路を変更して移動経路を環状とした場合などに、教示した移動経路が環状であったかどうかを事後的に通知できる。
【００７１】
その他、上記のステップＳ３２において生成された環境地図Ｍ１（走行スケジュールＴＳ）をユーザが確認し、環境地図Ｍ１の開始位置と終端とが一致しているなど適切な環境地図Ｍ１が生成されていると判定したら、走行スケジュールＴＳ及び環境地図Ｍ１の補正を実行することなく手動モードを終了してもよい。
【００７２】
生成した走行スケジュールＴＳ及び環境地図Ｍ１を補正すると決定した後、第１位置Ｐ１と第２位置Ｐ２との実際の位置関係である第１位置関係を算出するため、位置関係算出部１４４は、ローカルマップ取得部１４２に対して、第２位置Ｐ２において第２ローカルマップＭ２−２を取得して記憶部１４１に記憶するよう指令する（ステップＳ３４）。
例えば、図５に示す第２位置Ｐ２において、図８に示すような第２ローカルマップＭ２−２が取得されたとする。図８は、第２ローカルマップの一例を示す図である。
【００７３】
第２ローカルマップＭ２−２を取得後、位置関係算出部１４４は、実際の移動経路Ｒ１に対する、走行スケジュールＴＳのずれ量である推定歪み量を算出する（ステップＳ３５）。位置関係算出部１４４は、第１位置Ｐ１と第２位置Ｐ２との相対的な位置関係を表す第１位置関係と、走行スケジュールＴＳにおける第１位置Ｐ１に対応する推定通過点（第１推定通過点）と第２位置Ｐ２に対応する推定通過点（第２推定通過点）との相対的な位置関係を表す第２位置関係と、の相対位置関係に基づいて、推定歪み量を算出する。
【００７４】
そのため、位置関係算出部１４４は、まず、上記の第１位置関係を算出する。具体的には、位置関係算出部１４４は、ステップＳ３１にて取得した第１位置Ｐ１での第１ローカルマップＭ２−１と、第２位置Ｐ２にて取得した第２ローカルマップＭ２−２とのずれ量から、第１位置関係を算出する。
第１ローカルマップＭ２−１と第２ローカルマップＭ２−２とのずれ量は、例えば、レーザオドメトリにおいて用いられている手法を用いて算出できる。レーザオドメトリは、所定の時間を空けて取得された２つの地図情報（すなわち、２つのローカルマップ）のずれから、当該所定の時間の地図の移動量を算出する手法である。
【００７５】
具体的には、位置関係算出部１４４は、例えば、まず、図９Ａに示すように、第１ローカルマップＭ２−１の中心（第１位置Ｐ１に対応）と第２ローカルマップＭ２−２の中心（第２位置Ｐ２に対応）とを共通の原点に配置する。図９Ａは、第１ローカルマップの中心と第２ローカルマップの中心とを共通の原点に配置したときの状態を示す図である。
【００７６】
次に、位置関係算出部１４４は、中心（第１位置Ｐ１、第２位置Ｐ２）を共通の原点に配置した第１ローカルマップＭ２−１又は第２ローカルマップＭ２−２のうちの１つを移動させ、もう一方のローカルマップと一致したときの移動量を、第１位置関係として算出する。
例えば、図９Ｂに示すように、第１ローカルマップＭ２−１を中心（第１位置Ｐ１）回りにΘだけ時計回りに回転させて、当該中心（第１位置Ｐ１）を原点から座標（Ｘ'，Ｙ'）に平行移動することにより、第１ローカルマップＭ２−１を第２ローカルマップＭ２−２と一致できる。この場合に、位置関係算出部１４４は、第１位置Ｐ１が、第２位置Ｐ２に対して座標値にて（Ｘ'，Ｙ'）だけずれていると算出できる。また、第１位置Ｐ１における移動体１の姿勢は、第２位置Ｐ２における姿勢に対して角度Θだけずれていると算出できる。図９Ｂは、第１ローカルマップと第２ローカルマップが一致したときの状態の一例を示す図である。
【００７７】
第１ローカルマップＭ２−１と第２ローカルマップＭ２−２とを一致させるためのいずれかのローカルマップの移動量は、例えば、第１ローカルマップＭ２−１において物体の存在が示されている座標値の頻度を表すヒストグラムと、第２ローカルマップＭ２−２において物体の存在が示されている座標値の頻度を表すヒストグラムと、が一致したときのいずれかのヒストグラムの移動量として算出できる（ヒストグラムマッチング法）。
または、第１ローカルマップＭ２−１に含まれる各座標値と、第２ローカルマップＭ２−２に含まれる対応する座標値との間の距離を最小とするようにいずれかのローカルマップを移動したときの移動量（平行移動量及び／又は回転角度）を、上記の移動量として算出できる（Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ法、ＩＣＰ法）。
さらに、上記のヒストグラムマッチング法とＩＣＰ法とを組み合わせて、第１ローカルマップＭ２−１と第２ローカルマップＭ２−２とを一致させるような、いずれかのローカルマップの移動量を算出することもできる。
【００７８】
次に、位置関係算出部１４４は、第２位置関係を算出する。位置関係算出部１４４は、例えば、走行スケジュールＴＳにおいて最初に記録されている推定通過点を第１推定通過点Ｐ１'として抽出し、最後に記録されている推定通過点を第２推定通過点Ｐ２'として抽出し、当該第１推定通過点Ｐ１'と第２推定通過点Ｐ２'との差を、第２位置関係として算出する。
【００７９】
その後、位置関係算出部１４４は、上記の第１位置関係と第２位置関係との相対位置関係に基づいて推定歪み量を算出する。本実施形態では、上記の第１位置関係と第２位置関係との差を推定歪み量として算出する。第１位置関係と第２位置関係との差が推定歪み量となる理由について、以下に説明する。
図１０に示すように、第１位置関係は、第１位置Ｐ１と第２位置Ｐ２との間の相対的な位置関係であるので、第１位置関係を第２位置Ｐ２の第１位置Ｐ１に対する相対的な位置関係とする場合には、第１位置関係を第１位置Ｐ１から第２位置Ｐ２へ向かうベクトルとして定義できる。
同様に、第２位置関係は、第１推定通過点Ｐ１'（Ｐ１とＰ１'は一致）と第２推定通過点Ｐ２'との間の相対的な位置関係であるので、第２位置関係を第２推定通過点Ｐ２'の第１推定通過点Ｐ１'に対する相対的な位置関係とする場合には、第２位置関係を第１推定通過点Ｐ１'から第２推定通過点Ｐ２'へ向かうベクトルとして定義できる。
図１０は、推定歪み量が第１位置関係と第２位置関係との差である理由を模式的に示す図である。
【００８０】
図１０に示すように、第２位置関係に対応するベクトルと、第１位置関係に対応するベクトルとの差は、第２位置Ｐ２から第２推定通過点Ｐ２'へと向かうベクトルとなる。すなわち、第１位置関係と第２位置関係との差は、第２位置Ｐ２と第２推定通過点Ｐ２'との間の相対的な位置関係、すなわち、第２推定通過点Ｐ２'の推定誤差となる。第２推定通過点Ｐ２'の推定誤差は、走行スケジュールＴＳの実際の移動経路Ｒ１に対する歪みに対応する。
このように、第１位置関係と第２位置関係との差を推定歪み量として算出することにより、移動経路記録部１４３１により作成された走行スケジュールＴＳが、教示移動中の移動体１の実際の移動経路Ｒ１からどの程度歪んでいるかを算出できる。
【００８１】
上記のようにして推定歪み量を算出後、移動経路記録部１４３１は、ステップＳ３２において生成した走行スケジュールＴＳを補正する（ステップＳ３６）。具体的には、移動経路記録部１４３１は、例えば、Ｇｒａｐｈ  ＳＬＡＭを用いて、上記にて算出された推定歪み量を、走行スケジュールＴＳの全体に分配することにより、走行スケジュールＴＳを補正する。
特に教示移動の終盤において大きくなっている走行スケジュールＴＳの歪みを、走行スケジュールＴＳの全体に分散させることにより、図１１に示すように、走行スケジュールＴＳを実際の移動経路Ｒ１に近づけることができる。図１１は、補正後の走行スケジュールの一例を示す図である。
【００８２】
なお、上記では、第１位置関係と第２位置関係との差を推定歪み量としているが、推定歪み量の算出方法は上記に限らない。第１位置関係と第２位置関係との差に適宜変更可能な係数を乗じた値を推定歪み量としてもよい。これにより、走行スケジュールＴＳ及び環境地図Ｍ１の補正の強弱の度合いをユーザが任意に指定することもできる。
【００８３】
走行スケジュールＴＳを補正後、地図作成部１４３３は、ステップＳ３２において作成した環境地図Ｍ１を補正する（ステップＳ３７）。具体的には、地図作成部１４３３は、補正後の走行スケジュールＴＳに含まれる補正後の各推定通過点に、対応する通過点において取得したローカルマップＭ２を配置し、当該各推定通過点に配置されたローカルマップＭ２を当該各推定通過点における（補正後の）推定姿勢に対応する角度だけ回転させることにより、環境地図Ｍ１を補正できる。具体的には、図１２に示すように、移動開始位置（第１位置Ｐ１）近傍の環境地図Ｍ１と、移動終了位置（第２位置Ｐ２）近傍の環境地図Ｍ１とを一致させるよう補正して、適切な環状となった環境地図Ｍ１を生成できる。図１２は、補正後の環境地図の一例を示す図である。
【００８４】
上記のように、位置関係算出部１４４が、第１ローカルマップＭ２−１と第２ローカルマップＭ２−２とのずれ量に基づいて、第１位置Ｐ１と第２位置Ｐ２との相対的な位置関係を算出することにより、第１位置Ｐ１と同一である位置に移動体１を移動させることなく、走行スケジュールＴＳの本来の第１位置Ｐ１（移動開始位置）と第２位置Ｐ２（移動終了位置）とを確定できる。
その結果、走行スケジュールＴＳの移動開始位置（第１位置Ｐ１）と移動終了位置（第２位置）とを確定した上で実行する必要がある走行スケジュールＴＳの補正を、例えば、第１位置Ｐ１と第２位置Ｐ２とを同一とするといった熟練を必要とする教示移動を移動体１にさせることなく実行できる。
上記のようにして、走行スケジュールＴＳと環境地図Ｍ１とを補正後、制御部１４は、手動モードを終了する。
【００８５】
２．第２実施形態
上記の第１実施形態においては、環状の移動経路Ｒ１の移動開始位置と移動終了位置に対応する第１位置Ｐ１と第２位置Ｐ２において取得した第１ローカルマップＭ２−１と第２ローカルマップＭ２−２とを用いて、第１位置Ｐ１と第２位置Ｐ２との位置関係を第１位置関係として算出していた。また、第１位置Ｐ１に対応する第１推定通過点Ｐ１'と第２位置Ｐ２に対応する第２推定通過点Ｐ２'との位置関係を表す第２位置関係と上記の第１位置関係との差として算出される推定歪み量に基づいて、教示移動により生成した走行スケジュールＴＳ及び環境地図Ｍ１を補正していた。
すなわち、環状の移動経路Ｒ１の移動開始位置と、当該移動開始位置近傍の移動終了位置とにおいて得られる情報を用いて、走行スケジュールＴＳ及び環境地図Ｍ１を補正していた。
【００８６】
しかし、これに限られず、走行スケジュールＴＳ及び環境地図Ｍ１の補正は、互いに近い２つの位置においてある程度の時間を空けて取得された情報によっても実行できる。
第２実施形態においては、移動経路の第３位置において取得された第３ローカルマップと、第３位置を通過してから所定の時間後において通過した第４位置において取得された第４ローカルマップとのずれ量に基づいて、上記の第３位置と第４位置の相対的な位置関係を表す第３位置関係をさらに算出し、当該第３位置関係に基づいて走行スケジュールＴＳ及び環境地図Ｍ１を補正する。
【００８７】
第２実施形態の移動教示装置２００は、環状の経路の移動開始位置と移動終了位置ではない互いに近い２つの位置においてある程度の時間を空けて取得された情報を用いて、走行スケジュールＴＳ及び環境地図Ｍ１を補正すること以外、第１実施形態の移動教示装置１００と同じ構成及び機能を有する。
従って、以下においては、第２実施形態の移動教示装置２００において実行される手動モードの動作についてのみ、図１３を用いて説明する。図１３は、第２実施形態の移動教示装置にて実行される手動モードの動作を示すフローチャートである。
【００８８】
以下では、移動体１がある領域を往復するなどして複数回通過する場合に、当該領域のある位置を第１回目（例えば、１回目）に通過する時に得たローカルマップと、当該ある位置（の近傍）を第２回目（例えば、２回目）に通過する時に得たローカルマップと、を用いて走行スケジュール及び環境地図を補正する場合を例にとって説明する。
なお、同じ位置を移動体１が所定の時間を空けて複数回通過するか、又は、互いに近傍に存在する複数の位置のそれぞれを所定の時間を空けて通過することにより実質的に同じ位置を移動体１が複数回通過するような領域を、「複数回通過領域Ａ」と呼ぶことにする。
【００８９】
具体的には、図１４に示すような移動環境ＭＥ’において、移動体１に対して移動経路Ｒ２を教示する場合を例に、第２実施形態の移動教示装置２００にて実行される手動モードを説明する。図１４に示すように、移動環境ＭＥ’には、１つの袋小路状の通路が形成されている。移動体１は、移動環境ＭＥ’を移動開始位置から移動開始位置の近傍の移動終了位置まで環状の移動経路Ｒ２を移動する間に、上記の袋小路状の通路中を移動し、その後、当該通路から出て行く。従って、図１４においては、袋小路状の通路が複数回通過領域Ａとなる。図１４は、複数回通過領域を含む移動環境と複数回通過領域を往復する移動経路の一例を示す図である。
【００９０】
第２実施形態の移動教示装置２００にて移動経路Ｒ２の教示が開始されると、まず、移動経路Ｒ２を表す走行スケジュールＴＳ'と、移動環境ＭＥ'を表す環境地図Ｍ１'とが生成される（ステップＳ３１'）。ステップＳ３１'における走行スケジュールＴＳ及び環境地図Ｍ１の生成は、第１実施形態において説明したステップＳ３１〜Ｓ３７を実行することにより行われる。すなわち、教示移動して生成した走行スケジュールＴＳ'と、移動環境ＭＥ'を表す環境地図Ｍ１'とを、移動経路Ｒ２の移動開始位置にて取得したローカルマップと、移動終了位置にて取得したローカルマップとを用いて補正する。
【００９１】
次に、移動経路記録部１４３１は、移動経路Ｒ２に複数回通過領域Ａが含まれているか否かを判定する（ステップＳ３２'）。
例えば、ステップＳ３１'にて生成した走行スケジュールＴＳ'に含まれる推定通過点をソートして、座標値が互いに近く、かつ、取得された時間が所定の時間以上離れている（あるいは、走行スケジュールＴＳ'中において記録された位置が離れている）２つの推定通過点の組が存在していると判定したら（ステップＳ３２'において「Ｙｅｓ」の場合）、当該２つの推定通過点の組を用いて、ステップＳ３１'にて生成した走行スケジュールＴＳ'及び環境地図Ｍ１'とを、さらに補正すると判定する。
一方、上記のような２つの推定通過点の組が走行スケジュールＴＳ'に存在せず、移動経路Ｒ２に複数回通過領域Ａが含まれていないと判定した場合（ステップＳ３２'において「Ｎｏ」の場合）、走行スケジュールＴＳ'及び環境地図Ｍ１'をさらに補正することなく、手動モードを終了する。
【００９２】
なお、上記のステップＳ３２'において走行スケジュールＴＳ'をソートする際のデータソートの方向は、走行スケジュールＴＳ'の先頭（移動開始位置に対応する推定通過点）から終端（移動終了位置に対応する推定通過点）への方向であってもよいし、その逆であってもよい。または、先頭から終端への方向と、終端から先頭への方向との両方にて走行スケジュールＴＳ'をソートしてもよい。
走行スケジュールＴＳ'のソートの結果、移動経路Ｒ２に複数回通過領域Ａが含まれており、走行スケジュールＴＳ'及び環境地図Ｍ１'をさらに補正すると決定後、移動経路記録部１４３１は、位置関係算出部１４４に対して、複数回通過領域Ａにおける推定ずれ量を算出するよう指令する。
当該指令を受けた位置関係算出部１４４は、まず、走行スケジュールＴＳ'中の推定通過点の中から、複数回通過領域に含まれる第３位置Ｐ３に対応する第３推定通過点Ｐ３'と、第３位置Ｐ３を通過してから所定の時間後に移動体１が到達した第３位置の近傍の第４位置Ｐ４に対応する第４推定通過点Ｐ４'と、を決定する（ステップＳ３３'）。
【００９３】
具体的には、例えば、位置関係算出部１４４は、ステップＳ３２'の走行スケジュールＴＳ'のソートの結果見つかった、上記の２つの推定通過点の組のいずれかを、第３位置Ｐ３及び第４位置Ｐ４に対応する第３推定通過点Ｐ３'及び第４推定通過点Ｐ４'と決定できる。
例えば、図１４に示すように、比較的特徴的な形状のローカルマップＭ２を取得できる複数回通過領域Ａの出入り口付近のうち、１回目に当該出入り口付近を通過したときの移動体１の位置を第３位置Ｐ３（第３推定通過点Ｐ３'）と決定し、２回目に当該出入り口付近を通過したときの移動体１の位置を第４位置Ｐ４（第４推定通過点Ｐ４'）と決定できる。
【００９４】
第３位置Ｐ３と第４位置Ｐ４を決定後、位置関係算出部１４４は、第３位置Ｐ３と第４位置Ｐ４における推定歪み量を算出する（ステップＳ３４'）。具体的には、位置関係算出部１４４は、まず、第１実施形態におけるステップＳ３５と同様にして、第３位置Ｐ３において取得されたローカルマップである第３ローカルマップＭ２−３と、第４位置Ｐ４において取得されたローカルマップである第４ローカルマップＭ２−４とのずれ量に基づいて、第３位置Ｐ３と第４位置Ｐ４の相対的な位置関係を表す第３位置関係を算出する。
上記の第３ローカルマップＭ２−３及び第４ローカルマップＭ２−４は、それぞれ、例えば、ステップＳ３１'の実行時に環境地図Ｍ１'を生成するために第３位置Ｐ３にて取得したローカルマップＭ２及び第４位置Ｐ４にて取得したローカルマップＭ２とできる。
【００９５】
次に、位置関係算出部１４４は、決定した第３位置Ｐ３に対応する第３推定通過点Ｐ３'と、第４位置Ｐ４に対応する第４推定通過点Ｐ４'の相対的な位置関係を第４位置関係として、第１実施形態におけるステップＳ３５と同様にして算出する。
その後、位置関係算出部１４４は、上記の第３位置関係と第４位置関係との差から、複数回通過領域Ａの第３位置Ｐ３から第４位置Ｐ４までの実際の移動経路Ｒ２に対する、走行スケジュールＴＳ'の第３推定通過点Ｐ３'から第４推定通過点Ｐ４'までの移動経路の歪みを表す推定歪み量を算出する。
【００９６】
複数回通過領域Ａの第３位置Ｐ３から第４位置Ｐ４における推定歪み量を算出後、移動経路記録部１４３１は、当該推定歪み量を、Ｇｒａｐｈ  ＳＬＡＭなどを用いて、走行スケジュールＴＳ’の全体に分配することにより、走行スケジュールＴＳ’を再度補正する（ステップＳ３５’）。
その後、地図作成部１４３３は、ステップＳ３５'にて再度補正した走行スケジュールＴＳ'に含まれる再度補正された各推定通過点に、対応する通過点において取得したローカルマップＭ２を配置して、環境地図Ｍ１'を再度補正する（ステップＳ３６'）。
【００９７】
上記のように、位置関係算出部１４４が、複数回通過領域Ａ中の第３位置Ｐ３において取得された第３ローカルマップＭ２−３と、第４位置Ｐ４において取得された第４ローカルマップＭ２−４とのずれ量に基づいて、第３位置Ｐ３と第４位置Ｐ４の相対的な位置関係を表す第３位置関係をさらに算出することにより、環状の移動経路の始点と終点との位置関係だけでなく、移動経路の途中に存在する経路の位置関係も算出できる。
その結果、上記のように、移動経路の途中の環状の経路を構成しない複数回通過領域Ａにおいても、走行スケジュールＴＳ'及び環境地図Ｍ１’の補正を実行できる。これにより、複数回通過領域Ａにおいて累積した累積誤差（推定歪み量）も解消して、より正確な走行スケジュールＴＳ'及び環境地図Ｍ１'を生成できる。
【００９８】
複数回通過領域Ａに含まれる通過点を第１回目（１回目）に通過したときの位置を第３位置Ｐ３とし、第１回目よりも後の第２回目（２回目）において通過した当該通過点（第３位置Ｐ３）の近傍の位置を第４位置Ｐ４とすることにより、移動体１が複数回通過した通過点及び／又はその近傍で取得された複数のローカルマップを用いて、環状でない移動経路の途中に存在する経路の位置関係を算出し、走行スケジュールや環境地図の補正を実行できる。
【００９９】
なお、上記の複数回通過領域Ａにおける走行スケジュールＴＳ'及び環境地図Ｍ１'の補正は、複数回通過領域Ａにおいて複数回実行してもよい。この場合、走行スケジュールＴＳ'から複数の２つの位置（推定通過点）の組が選択されるが、当該複数の位置（推定通過点）の組同士は、互いに時間的又は距離的に離れていることが好ましい。これにより、複数回通過領域Ａにおいて得られた情報により走行スケジュールＴＳ'及び環境地図Ｍ１'を複数回再補正することも可能となる。その結果、走行スケジュールＴＳ'及び環境地図Ｍ１'をより精度よく補正できる。
【０１００】
３．他の実施形態
以上、本発明の複数の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
上記の図３、図４Ａ、図４Ｂ、及び図１３のフローチャートに示した処理の順番は、適宜変更できる。例えば、図４Ｂに示した教示移動により教示された移動経路Ｒ１、Ｒ２の走行スケジュールＴＳ、ＴＳ'と、環境地図Ｍ１、Ｍ１'の生成処理において、環境地図Ｍ１、Ｍ１'の生成ステップ（ステップＳ３２４）と走行スケジュールＴＳ、ＴＳ'の生成ステップ（ステップＳ３２５）とは入れ替え可能である。
上記の図５、図１４では移動経路及び移動環境が環状であったが、移動環境が環状である必要はなく、移動経路が環状であれば本発明は適応可能である。
【０１０１】
（Ａ）移動経路が環状か否かの判定方法の他の実施形態
上記の第１実施形態及び第２実施形態のステップＳ３３において教示された移動経路が環状であるか否かの判定は、移動体１のユーザが環状の移動経路を教示するかを予め、又は、事後的に通知したか否かにより行われていた。しかしこれに限られず、例えば、環状の移動経路においては、移動開始位置と移動終了位置とが一致しているか、又は、極めて近接しているので、移動開始位置におけるローカルマップと移動終了位置におけるローカルマップとは類似しているとの特徴を利用して、当該判定を行ってもよい。
【０１０２】
この場合、移動教示装置１００、２００は、移動開始位置におけるローカルマップと、移動終了位置におけるローカルマップと、をマップマッチングして、これら２つのローカルマップの一致度が所定の一致度以上である場合に、教示した移動経路が環状であると判定できる。
上記のローカルマップの一致度は、例えば、２つのローカルマップが最も一致したときに、２つのローカルマップ中の座標値が一致している（あるいは所定の距離の範囲内にある）座標点の個数、又は、当該座標点の個数のローカルマップ中に含まれる全体の座標点数に対する割合として表すことができる。
【０１０３】
移動経路の移動開始位置と移動終了位置とにおいて取得された２つのローカルマップの類似度に基づいて移動経路が環状であるか否かを判定することにより、移動体１（移動教示装置１００、２００）が移動経路の形状を自律的に判定できる。
【０１０４】
または、環状の移動経路を教示している場合に、移動開始位置において取得したローカルマップとの一致度が極めて高いローカルマップを取得した位置を移動終了位置であると判定してもよい。
この場合、移動開始位置において取得したローカルマップとの一致度が極めて高いローカルマップを取得する位置に到達するまで、例えば、「スタートとゴールが所定の範囲内に入るように、経路を一周させてください」とのメッセージを移動体１（の操作装置）のディスプレイなどに表示してもよい。
【０１０５】
その他、ユーザにより設定された移動開始位置及び移動終了位置において取得された２つのローカルマップの一致度が所定の一致度以下である場合などには、設定した移動終了位置がまだ移動開始位置から大きくずれている、又は、移動開始位置の環境が変化したために設定した移動終了位置が適切でないと判定し、その旨をユーザに通知するようにしてもよい。
【０１０６】
これにより、移動体１が自律的に移動開始位置と移動終了位置とを決定し、ユーザに対して移動体１が移動開始位置及び移動終了位置に存在しているか否かを通知できる。
【０１０７】
（Ｂ）第１位置〜第４位置の選択についての他の実施形態
上記の第１実施形態及び第２実施形態において、第１位置関係を算出するための第１位置Ｐ１（移動開始位置）と第２位置Ｐ２（移動終了位置）の選択、及び、第３位置関係を算出するための第３位置Ｐ３と第４位置Ｐ４の選択について、これら２つの位置が互いに近接していることと、これら２つの位置に関する情報が取得された時間が離れていること以外には条件がなかった。
しかし、これに限られず、例えば、上記の４つの位置として、移動経路Ｒ１、Ｒ２（移動環境ＭＥ、ＭＥ'）のうち特徴的な形状のローカルマップが取得可能な位置を選択してもよい。
【０１０８】
２つの地図情報（ローカルマップ）のマップマッチングによる位置、姿勢、又は移動量の推定においては、一般的に、地図が対称な形状を有しているなどの単調な形状である場合よりも、非対称で特徴的な形状を有している方が、一義的かつ正確に位置、姿勢、又は移動量を推定できる。
よって、第１位置Ｐ１〜第４位置Ｐ４として、特徴的な形状のローカルマップを取得可能な位置を選択することにより、教示移動により教示した走行スケジュールＴＳ、ＴＳ'及び環境地図Ｍ１、Ｍ１'を、より精度よく補正できる。
【０１０９】
この場合、移動教示装置１００、２００は、例えば、環状の移動経路を教示しようとしている場合に、移動経路の移動開始位置及び移動終了位置において取得したローカルマップＭ２の形状について調べてもよい。これらのローカルマップの形状が単調である場合には、移動教示装置１００、２００は、移動体１のユーザに対して、移動開始位置及び／又は移動終了位置を変更するよう通知してもよい。当該通知は、例えば、移動体１（の操作装置）のディスプレイ（図示せず）に移動開始位置及び／又は移動終了位置を変更する旨を表示したり、警告音を鳴らしたりすることにより通知できる。
【０１１０】
さらにこの場合、移動教示装置１００、２００は、ユーザが適切な移動開始位置に移動体１を設置するまで移動体１の移動を開始させないか、及び／又は、適切な移動終了位置に移動体１を到達させるまでユーザの操作による移動の終了を許可しないようにしてもよい。
【０１１１】
（Ｃ）推定対象についての他の実施形態
上記の第１実施形態及び第２実施形態においては、移動体１の移動環境ＭＥ、ＭＥ'の位置（座標値）及び／又は姿勢（所定の軸に対する角度）を推定し、推定通過点及び推定姿勢を含む走行スケジュールＴＳ、ＴＳ'を生成及び補正していた。しかし、これに限られず、移動体１の姿勢が問題にならない場合（例えば、移動部１２がオムニホイールである場合など）には、推定通過点の座標値のみを含む走行スケジュールＴＳ、ＴＳ'を生成及び補正してもよい。
【０１１２】
（Ｄ）移動経路及び環境地図の補正についての他の実施形態（その１）
上記の第１実施形態のステップＳ３７及び第２実施形態のステップＳ３６'においては、補正後の走行スケジュールＴＳ、ＴＳ'に含まれる補正後の各推定通過点に、対応する通過点にて取得したローカルマップＭ２を配置することにより、環境地図Ｍ１、Ｍ１'を補正していた。
しかし、これに限られず、各推定通過点に対応するローカルマップＭ２を配置する際に、地図作成部１４３３は、各推定通過点を、当該各推定通過点に対応する通過点にて取得されたローカルマップＭ２と、これまでに補正された環境地図Ｍ１、Ｍ１’とのマップマッチングにより推定し直してもよい。その後、地図作成部１４３３は、当該推定し直した各推定通過点に対応するローカルマップを配置することにより、環境地図を補正してもよい。
【０１１３】
これにより、補正された走行スケジュールＴＳ、ＴＳ'中の推定通過点のそれぞれに、対応するローカルマップを配置するのみにて環境地図Ｍ１、Ｍ１’を補正するよりも、さらに精度よく環境地図Ｍ１、Ｍ１’を補正できる。
【０１１４】
（Ｅ）移動経路及び環境地図の補正についての他の実施形態（その２）
上記の第２実施形態では、ステップＳ３１'で補正した走行スケジュールＴＳ'から複数回通過領域に含まれる１つあるいは複数の推定通過点を決定して、走行スケジュールＴＳ'及び環境地図Ｍ１'を再補正していた。しかし、これに限られず、補正前の走行スケジュールＴＳから複数回通過領域に含まれる１つあるいは複数の推定通過点を決定してもよい。
【０１１５】
これにより、第１位置Ｐ１と第２位置Ｐ２の情報と１つあるいは複数の推定通過点の情報とを同時に利用できるため、一回の補正で環境地図Ｍ１'を精度よく補正できる。
【０１１６】
（Ｆ）移動経路及び環境地図の補正についての他の実施形態（その３）
第２実施形態における第３位置Ｐ３及び第４位置Ｐ４は、当該２つの位置を移動体１が通過する時間が所定の時間以上離れていれば、複数回通過領域Ａに含まれるものでなくてもよい。例えば、図１５に示すように、移動体１が袋小路状の通路に侵入することなく（例えば、低速度にて、及び／又は、下記の２つの位置に移動する間に一時停止をして）一方向に進んだ場合に、当該袋小路状の通路の近傍（特徴的なローカルマップが取得できる位置）の２つの位置を第３位置Ｐ３及び第４位置Ｐ４としてもよい。図１５は、第３位置及び第４位置の他の一例を示す図である。
これにより、移動体１を同一経路にて複数回通過させることなく、第３位置Ｐ３及び第４位置Ｐ４を決定できる。
【０１１７】
（Ｇ）自律走行経路についての他の実施形態
上記の第１実施形態及び第２実施形態においては、環境地図Ｍ１、Ｍ１’を補正した後、走行スケジュールＴＳ、ＴＳ’に沿って自律移動していた。しかし、これに限られず、環境地図Ｍ１、Ｍ１’を補正した地図において、自由に現在位置と目的位置とを設定し、その間の経路を計画して自律走行することもできる。
【産業上の利用可能性】
【０１１８】
本発明は、所定の移動環境にて移動体を移動させた際の移動経路を教示する装置及び方法に広く適用できる。
【符号の説明】
【０１１９】
１００、２００              移動教示装置
１     移動体
１１   本体
１２   移動部
１２１ａ、１２１ｂ   モータ
１２３ａ、１２３ｂ   車輪
１２５ａ、１２５ｂ   エンコーダ
１３   レーザレンジセンサ
１３１ 第１レーザレンジセンサ
１３３ 第２レーザレンジセンサ
１４   制御部
１４１ 記憶部
１４２ ローカルマップ取得部
１４３ 自己位置推定部
１４３１      移動経路記録部
１４３３      地図作成部
１４４ 位置関係算出部
１４５ 走行制御部
１５   補助輪部
１５ａ、１５ｂ              補助車輪
Ａ     複数回通過領域
Ｍ１、Ｍ１'   環境地図
Ｍ２   ローカルマップ
Ｍ２−１      第１ローカルマップ
Ｍ２−２      第２ローカルマップ
Ｍ２−３      第３ローカルマップ
Ｍ２−４      第４ローカルマップ
ＭＥ、ＭＥ'   移動環境
Ｐ１   第１位置
Ｐ１'  第１推定通過点
Ｐ２   第２位置
Ｐ２'  第２推定通過点
Ｐ３   第３位置
Ｐ３'  第３推定通過点
Ｐ４   第４位置
Ｐ４'  第４推定通過点
Ｒ１、Ｒ２    移動経路
ＴＳ、ＴＳ'   走行スケジュール
【図１】
2018022215.tif 000003
【図２】
2018022215.tif 000004
【図３】
2018022215.tif 000005
【図４Ａ】
2018022215.tif 000006
【図４Ｂ】
2018022215.tif 000007
【図５】
2018022215.tif 000008
【図６】
2018022215.tif 000009
【図７Ａ】
2018022215.tif 000010
【図７Ｂ】
2018022215.tif 000011
【図８】
2018022215.tif 000012
【図９Ａ】
2018022215.tif 000013
【図９Ｂ】
2018022215.tif 000014
【図１０】
2018022215.tif 000015
【図１１】
2018022215.tif 000016
【図１２】
2018022215.tif 000017
【図１３】
2018022215.tif 000018
【図１４】
2018022215.tif 000019
【図１５】
2018022215.tif 000020