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