(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024095242
(43)【公開日】2024-07-10
(54)【発明の名称】地図作成装置、及び、地図作成方法
(51)【国際特許分類】
G05D 1/43 20240101AFI20240703BHJP
【FI】
G05D1/02 H
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022212381
(22)【出願日】2022-12-28
(71)【出願人】
【識別番号】000006297
【氏名又は名称】村田機械株式会社
(74)【代理人】
【識別番号】110000202
【氏名又は名称】弁理士法人新樹グローバル・アイピー
(72)【発明者】
【氏名】傳田 遊亀
(72)【発明者】
【氏名】中野 剛
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA01
5H301BB05
5H301CC03
5H301CC06
5H301CC10
5H301GG08
5H301GG09
5H301GG12
(57)【要約】
【課題】移動環境を適切に表す環境地図を作成する。
【解決手段】位置情報と、姿勢情報と、ローカルマップM2と、を関連付けて取得し、移動体1が移動及び/又は姿勢変化する間に得られた複数のローカルマップM2に基づいてサブマップM3を作成し、サブマップM3のうち1つを第1サブマップとして選択し、第1サブマップから所定の相対距離の範囲内にあるサブマップM3であって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップM3を第2サブマップとして選択し、第1サブマップと第2サブマップとの比較に基づいて第1サブマップと第2サブマップとの位置関係/姿勢関係のずれ量を算出し、算出された位置関係/姿勢関係のずれ量に基づいて、第1サブマップと第2サブマップとの位置関係/姿勢関係を補正して環境地
図M1を作成する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
移動体が移動する移動環境を表す環境地図を作成する地図作成装置であって、
制御部を備え、
前記制御部は、
前記移動環境における前記移動体の位置である位置情報と、当該位置における前記移動体の向きを表す姿勢情報と、前記移動体の周囲に存在する物体の配置状態を示すローカルマップと、を関連付けて取得し、
前記移動体が移動し及び/又は姿勢変化をする間に得られた複数の位置情報及び/又は姿勢情報に関連付けられた複数のローカルマップに基づいて、前記環境地図の一部に対応するサブマップを作成し、当該サブマップに当該サブマップの代表地点と代表姿勢を表す代表地点情報を関連付け、
前記サブマップのうち1つを第1サブマップとして選択し、他のサブマップのうち、前記第1サブマップから所定の相対距離の範囲内にあるサブマップであって、前記第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における前記移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを第2サブマップとして選択し、
前記第1サブマップと前記第2サブマップとの比較に基づいて、前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係のずれ量を算出し、
前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係のずれ量に基づいて、前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係を補正して、前記環境地図を作成する、
地図作成装置。
【請求項2】
前記制御部は、
前記移動体の周囲に存在する物体までの距離を表す距離情報を取得し、
前記第1サブマップ又は前記第2サブマップの一方の代表地点で取得された前記距離情報と他方のサブマップとの比較に基づいて前記ずれ量を算出し、当該ずれ量に基づいて前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係を補正する、請求項1に記載の地図作成装置。
【請求項3】
前記制御部は、前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係のずれ量を、作成された全てのサブマップに分配して、全てのサブマップの位置関係及び/又は姿勢関係を補正する、請求項1に記載の地図作成装置。
【請求項4】
前記制御部は、
互いに隣接する関係にある2つのサブマップの比較に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係のずれ量を算出し、
前記2つのサブマップの位置関係及び/又は姿勢関係のずれ量に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係を補正する、
請求項1に記載の地図作成装置。
【請求項5】
前記制御部は、互いに隣接する2つのサブマップの一部を重複させる、請求項1に記載の地図作成装置。
【請求項6】
移動体が移動する移動環境を表す環境地図を作成する地図作成方法であって、
前記移動環境における前記移動体の位置である位置情報と、当該位置における前記移動体の向きを表す姿勢情報と、前記移動体の周囲に存在する物体の配置状態を示すローカルマップと、を関連付けて取得するステップと、
前記移動体が移動し及び/又は姿勢変化をする間に得られた複数の位置情報及び/又は姿勢情報に関連付けられた複数のローカルマップに基づいて、前記環境地図の一部に対応するサブマップを作成し、当該サブマップに当該サブマップの代表地点と代表姿勢を表す代表地点情報を関連付けるステップと、
前記サブマップのうち1つを第1サブマップとして選択し、他のサブマップのうち、前記第1サブマップから所定の相対距離の範囲内にあるサブマップであって、前記第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における前記移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを第2サブマップとして選択するステップと、
前記第1サブマップと前記第2サブマップとの比較に基づいて、前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係のずれ量を算出するステップと、
前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係のずれ量に基づいて、前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係を補正して、前記環境地図を作成するステップと、
を備える、地図作成方法。
【請求項7】
前記移動体の周囲に存在する物体までの距離を表す距離情報を取得するステップと、
前記第1サブマップ又は前記第2サブマップの一方の代表地点で取得された前記距離情報と他方のサブマップとの比較に基づいて前記ずれ量を算出し、当該ずれ量に基づいて前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係を補正するステップと、
をさらに備える、請求項6に記載の地図作成方法。
【請求項8】
前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係を補正するステップは、前記第1サブマップと前記第2サブマップとの位置関係及び/又は姿勢関係のずれ量を、作成された全てのサブマップに分配して、全てのサブマップの位置関係及び/又は姿勢関係を補正するステップを含む、請求項6に記載の地図作成方法。
【請求項9】
互いに隣接する関係にある2つのサブマップの比較に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係のずれ量を算出するステップと、
前記2つのサブマップの位置関係及び/又は姿勢関係のずれ量に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係を補正するステップと、
をさらに備える、請求項6に記載の地図作成方法。
【請求項10】
前記サブマップを作成するステップは、互いに隣接する2つのサブマップの一部を重複させるステップを含む、請求項6に記載の地図作成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動体が移動する移動環境を表す地図を作成する地図作成装置、及び、地図作成方法に関する。
【背景技術】
【0002】
移動環境内を自律移動する移動体に対して、移動環境に設定した移動経路を教示して、教示した移動経路を移動体に自律移動させることが知られている。移動体は、移動経路を自律移動中に、移動環境内における移動体の位置(自己位置と呼ぶ)を推定し、推定された自己位置と移動経路上の各通過点との比較に基づいて移動を制御している。移動体は、移動環境における物体の配置を表す環境地図と、移動体の周囲に存在する物体の配置を表す地図(ローカルマップと呼ぶ)と、を用いて自己位置を推定する。
【0003】
環境地図は、移動体を自律移動させる前に予め作成される。環境地図は、例えば、移動環境内において移動体を(手押し若しくはコントローラ等による手動操作で)移動させ、この移動中に自己位置を推定するとともに、移動開始から終了までに複数のローカルマップを取得し、取得した複数のローカルマップのそれぞれを当該ローカルマップを取得した自己位置に対応する位置に配置することで作成される。
【0004】
自己位置推定の誤差、ローカルマップに含まれるノイズ等により、上記の方法により作成された環境地図が、実際の移動環境を適切に表した地図とはならない場合がある。特に、移動環境において、環状部分、袋小路、ヘアピンカーブなどのように、特定の地点から所定の距離移動した後に当該地点の近傍に戻ってくる経路(ループ経路と呼ぶ)を構成する部分が存在する場合に、移動環境の環状部分、袋小路等が環境地図において適切に表されないことがある。例えば、環状部分が閉じられた形状とならないことがある。この問題を解決する方法として、移動を開始したポジションと戻ってきたポジションとが同一であるとの知識に基づいて、Graph SLAMを用いて環境地図を修正する方法がある(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記の特許文献1に記載の方法においては、移動を開始したポジションと戻ってきたポジションとが同一であるとの知識に基づいて環境地図を修正しているため、移動の開始から終了の間に環状部分、袋小路、ヘアピンカーブ等が存在してもそれらを検知できず、環状部分、袋小路、ヘアピンカーブ等に対応する環境地図の部分を適切に補正できない。
【0007】
本発明の課題は、移動体が移動する移動環境を表す環境地図の作成において、移動環境を適切に表す環境地図を作成することにある。
【課題を解決するための手段】
【0008】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一態様に係る地図作成装置は、移動体が移動する移動環境を表す環境地図を作成する装置である。地図作成装置は、制御部を備える。制御部は、移動環境における移動体の位置である位置情報と、当該位置における移動体の向きを表す姿勢情報と、移動体の周囲に存在する物体の配置状態を示すローカルマップと、を関連付けて取得し、移動体が移動し及び/又は姿勢変化をする間に得られた複数の位置情報及び/又は姿勢情報に関連付けられた複数のローカルマップに基づいて、環境地図の一部に対応するサブマップを作成し、当該サブマップに当該サブマップの代表地点と代表姿勢を表す代表地点情報を関連付ける。
【0009】
制御部は、サブマップのうち1つを第1サブマップとして選択する。また、制御部は、他のサブマップのうち、第1サブマップから所定の相対距離の範囲内にあるサブマップであって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを第2サブマップとして選択する。
【0010】
制御部は、第1サブマップと第2サブマップとの比較に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を算出し、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正して環境地図を作成する。
【0011】
上記の地図作成装置では、環境地図の一部に対応する2つのサブマップ間の位置関係及び/又は姿勢関係を補正して環境地図を作成している。サブマップは小さな地図情報であるので、その中にループ経路(環状部分、袋小路、ヘアピンカーブ等、経路が交差する場合のみだけでなく経路が距離的には近く、時間的に離れている場合も含む)を含む可能性を低くできる。
【0012】
また、上記の地図作成装置においては、作成されたサブマップのうち1つを第1サブマップとして選択したときに、第1サブマップとの位置関係及び/又は姿勢関係を補正する対象のサブマップ(第2サブマップ)として、第1サブマップから所定の相対距離の範囲内にあるサブマップであって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを選択している。
【0013】
第1サブマップと第2サブマップとが近い位置にあり、第1サブマップの代表地点及び/又は代表姿勢と第2サブマップの代表地点及び/又は代表姿勢との差(移動体の移動距離及び/又は姿勢変化)が所定の閾値を超えていることは、移動体が移動した経路がループ状になっていることを意味する。従って、第1サブマップとの位置関係及び/又は姿勢関係を補正する第2サブマップを上記の条件のサブマップとして選択することで、移動開始位置から移動終了位置までの移動経路の途中のループ経路も含め、この移動経路に存在する全てのループ経路を見つることができる。また、見つかったループ経路を形成する関係にある2つのサブマップ間の位置関係及び/又は姿勢関係を補正して、ループ経路の形状を適切に表した環境地図を作成できる。
【0014】
上記の地図作成装置において、制御部は、移動体の周囲に存在する物体までの距離を表す距離情報を取得し、第1サブマップ又は第2サブマップの一方の代表地点で取得された距離情報と他方のサブマップとの比較に基づいてずれ量を算出し、当該ずれ量に基づいて第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正してもよい。これにより、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量を正確に算出できる。この結果、より適切に第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正できる。
【0015】
上記の地図作成装置において、制御部は、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を、作成された全てのサブマップに分配して、全てのサブマップの位置関係及び/又は姿勢関係を補正してもよい。これにより、2つのサブマップ間の相対的な位置関係及び/又は姿勢関係を崩すことなく位置関係及び/又は姿勢関係を補正できる。
【0016】
上記の地図作成装置において、制御部は、互いに隣接する関係にある2つのサブマップの比較に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係のずれ量を算出し、この2つのサブマップの位置関係及び/又は姿勢関係のずれ量に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係を補正してもよい。これにより、ループ経路だけでなく、隣接する位置関係及び/又は姿勢関係にある2つのサブマップ間に存在するずれも補正して、より正確な環境地図を作成できる。
【0017】
上記の地図作成装置において、制御部は、互いに隣接する2つのサブマップの一部を重複させてもよい。これにより、比較対象の2つのサブマップに共通に含まれる地図情報が多くなるので、2つのサブマップ間の位置関係及び/又は姿勢関係のずれ量をより正確に算出できる。
【0018】
本発明の他の態様に係る地図作成方法は、移動体が移動する移動環境を表す環境地図を作成する方法である。地図作成方法は、以下のステップを備える。
◎移動環境における移動体の位置である位置情報と、当該位置における移動体の向きを表す姿勢情報と、移動体の周囲に存在する物体の配置状態を示すローカルマップと、を関連付けて取得するステップ。
◎移動体が移動し及び/又は姿勢変化をする間に得られた複数の位置情報及び/又は姿勢情報に関連付けられた複数のローカルマップに基づいて、環境地図の一部に対応するサブマップを作成し、当該サブマップに当該サブマップの代表地点と代表姿勢を表す代表地点情報を関連付けるステップ。
◎サブマップのうち1つを第1サブマップとして選択し、他のサブマップのうち、第1サブマップから所定の相対距離の範囲内にあるサブマップであって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを第2サブマップとして選択するステップ。
◎第1サブマップと第2サブマップとの比較に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を算出するステップ。
◎第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正して、環境地図を作成するステップ。
【0019】
上記の地図作成方法では、環境地図の一部に対応する2つのサブマップ間の位置関係を補正して環境地図を作成している。サブマップは小さな地図情報であるので、その中にループ経路(環状部分、袋小路、ヘアピンカーブ等、経路が交差する場合のみだけでなく経路が距離的には近く、時間的に離れている場合も含む)を含む可能性を低くできる。
【0020】
また、上記の地図作成方法においては、作成されたサブマップのうち1つを第1サブマップとして選択したときに、第1サブマップとの位置関係及び/又は姿勢関係を補正する対象のサブマップ(第2サブマップ)として、第1サブマップから所定の相対距離の範囲内にあるサブマップであって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを選択している。
【0021】
第1サブマップと第2サブマップとが近い位置にあり、第1サブマップの代表地点及び/又は代表姿勢と第2サブマップの代表地点及び/又は代表姿勢との差(移動体の移動距離及び/又は姿勢変化)が所定の閾値を超えていることは、移動体が移動した経路がループ状になっていることを意味する。従って、第1サブマップとの位置関係及び/又は姿勢関係を補正する第2サブマップを上記の条件のサブマップとして選択することで、移動開始位置から移動終了位置までの移動経路の途中のループ経路も含め、この移動経路に存在する全てのループ経路を見つけることができる。また、見つかったループ経路を形成する関係にある2つのサブマップ間の位置関係及び/又は姿勢関係を補正して、ループ経路の形状を適切に表した環境地図を作成できる。
【0022】
上記の地図作成方法は、以下のステップをさらに備えてもよい。
◎移動体の周囲に存在する物体までの距離を表す距離情報を取得するステップ。
◎第1サブマップ又は第2サブマップの一方の代表地点で取得された距離情報と他方のサブマップとの比較に基づいてずれ量を算出し、当該ずれ量に基づいて第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正するステップ。
【0023】
これにより、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量を正確に算出できる。この結果、より適切に第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正できる。
【0024】
上記の地図作成方法において、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正するステップは、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を、作成された全てのサブマップに分配して、全てのサブマップの位置関係及び/又は姿勢関係を補正するステップを含んでもよい。これにより、2つのサブマップ間の相対的な位置関係及び/又は姿勢関係を崩すことなく位置関係及び/又は姿勢関係を補正できる。
【0025】
上記の地図作成方法は、以下のステップをさらに備えてもよい。
◎互いに隣接する関係にある2つのサブマップの比較に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係のずれ量を算出するステップ。
◎2つのサブマップの位置関係及び/又は姿勢関係のずれ量に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係を補正するステップ。
これにより、ループ経路だけでなく、隣接する位置関係及び/又は姿勢関係にある2つのサブマップ間に存在するずれも補正して、より正確な環境地図を作成できる。
【0026】
上記の地図作成方法において、サブマップを作成するステップは、互いに隣接する2つのサブマップの一部を重複させるステップを含んでもよい。これにより、比較対象の2つのサブマップに共通に含まれる地図情報が多くなるので、2つのサブマップ間の位置関係及び/又は姿勢関係のずれ量をより正確に算出できる。
【発明の効果】
【0027】
移動環境を適切に表す環境地図を作成できる。
【図面の簡単な説明】
【0028】
【
図4】手動モードにおける移動体の動作を示すフローチャート。
【
図5】ループ補正において実行される処理を示すフローチャート。
【
図7】隣接補正において実行される処理を示すフローチャート。
【
図8】2つのサブマップの重複が少なくなる場合の一例を示す図。
【
図9】隣接する2つのサブマップの一部を重複させる方法の一例を示す図。
【発明を実施するための形態】
【0029】
1.第1実施形態
(1)移動体の構成
第1実施形態に係る移動体1について説明する。移動体1は、例えば、ユーザにより教示された経路を再現しながら、自律して移動可能な移動体である。
図1を用いて、移動体1の構成を説明する。
図1は、移動体の構成を示す図である。移動体1は、本体11と、移動部12と、レーザレンジセンサ13と、制御装置14(地図作成装置の一例)と、を主に備える。
【0030】
本体11は、移動体1の本体を構成する筐体である。「自己位置」は、移動環境MEを表す環境地
図M1上における本体11の中心の位置(座標)と定義する。また、「自身」との語は、移動体1の本体11のことを指す。
【0031】
移動部12は、例えば、本体11を移動させる差動二輪型の走行部である。具体的には、移動部12は、一対のモータ121a、121bと、一対の車輪123a、123bと、を有する。一対のモータ121a、121bは、本体11の底部に設けられた、例えばサーボモータやブラシレスモータなどの電動モータである。一対のモータ121a、121bは、制御装置14と接続され、制御装置14からの指令に基づいて、それぞれ独立に、任意の回転数及びトルクにてその出力回転軸を回転させる。
【0032】
一対の車輪123a、123bは、それぞれ、一部が移動環境MEの床面(移動面)と接しており、一対のモータ121a、121bの出力回転軸に接続される。これにより、車輪123a、123bは、それぞれ、モータ121a、121bによって独立して回転し、本体11を移動させる。一対の車輪123a、123bがそれぞれ独立回転可能なことにより、車輪123aと123bの回転数に差を生じさせて本体11の姿勢を変化できる。一方、一対の車輪123a、123bの回転数が同じであれば、本体11を直進できる。
【0033】
モータ121a、121bのそれぞれの出力回転軸には、エンコーダ125a、125b(
図2)が設けられている。エンコーダ125a、125bは、例えば、モータ121a、121bの出力回転軸の回転量に基づいたパルス信号を出力するインクリメンタル型のエンコーダである。これにより、制御装置14は、モータ121a、121bの回転量、すなわち、車輪123a、123bの回転量に基づいて、移動環境MEにおける移動体1(本体11)の位置及び/又は姿勢を推定できる。
【0034】
レーザレンジセンサ13は、例えば、レーザ発振器によりパルス発振されたレーザ光を、移動環境ME中の構造物(例えば、移動環境MEに配置された柱、棚、壁など)である物体に放射状に照射し、当該障害物から反射した反射光をレーザ受信器により受信することにより、物体に関する情報を取得するレーザレンジファインダ(LRF:Laser Range Finder)である。レーザレンジセンサ13は、本体11の前部に配置された第1レーザレンジセンサ131と、本体11の後部に配置された第2レーザレンジセンサ133と、を有する。
【0035】
第1レーザレンジセンサ131は、本体11の前方に左右方向にレーザ光を放射状に発生することにより、第1レーザレンジセンサ131を中心とした本体11の前方に存在する物体に関する情報を取得する。第1レーザレンジセンサ131の物体の検出範囲は、例えば、半径5m程度の円内とできる。
【0036】
一方、第2レーザレンジセンサ133は、本体11の後方に左右方向にレーザ光を放射状に発生することにより、第2レーザレンジセンサ133を中心とした本体11の後方に存在する物体に関する情報を取得する。第2レーザレンジセンサ133の物体の検出範囲は、例えば、半径5m程度の円内とできる。
【0037】
なお、レーザレンジセンサの検出可能範囲は、上記の値に限られず、移動体1の用途等に応じて適宜変更できる。
【0038】
また、物体に関する情報を取得するセンサとしては、レーザレンジファインダの他に、周囲に存在する物体とセンサ(本体11)との間の距離を測定可能なセンサを用いることができる。例えば、TOF(Time Of Flight)カメラなどを使用できる。さらに、1次元又は2次元の距離を測定するセンサを、2次元又は3次元の距離を測定するものとして動作させることが可能なシステムなどを使用できる。
【0039】
なお、以下では、物体に関する二次元(X-Y座標系)のデータを用いた例について説明するが、以下の説明は、三次元(X-Y-Z座標系)のデータに対しても同様に適用できる。
【0040】
制御装置14は、CPU(Central Processing Unit)、ハードディスク装置、ROM(Read Only Memory)、RAM(Random Access Memory)、記憶媒体読み出し装置などの記憶装置、信号変換を行うインターフェースなどを備えたコンピュータシステムである。制御装置14は、移動体1の各部の制御、及び、移動体1の移動に必要な各種情報処理を行う。
【0041】
移動体1は、補助輪部15をさらに有していてもよい。補助輪部15は、2つの補助車輪15a、15bを有する。2つの補助車輪15aと15bは、それぞれが独立に回転可能なように取り付けられている。補助輪部15を備えることにより、移動体1は安定に、かつ、スムーズに移動できる。
【0042】
(2)制御装置の構成
図2を用いて、制御装置14の構成を説明する。
図2は、制御装置の構成を示す図である。制御装置14は、記憶部141と、制御部143と、を有する。記憶部141は、制御装置14を構成するコンピュータシステムの記憶装置の記憶領域の一部である。記憶部141は、移動体1を制御するために用いられる各種情報を記憶する。
【0043】
制御部143は、制御装置14を構成するCPU、インターフェースなどであり、移動体1の制御に関する各種情報処理を実行する。以下に説明する制御部143の機能の一部又は全部は、制御装置14において実行可能なプログラムとして実現されていてもよい。また、当該プログラムは、制御装置14の記憶部141に記憶されていてもよい。又は、上記機能の一部又は全部は、カスタムICなどの制御装置14に備わるハードウェアにより実現されていてもよい。
【0044】
制御部143は、レーザレンジセンサ13から取得した信号に基づいて移動体1の周囲に存在する物体までの距離を表す距離情報を取得し、当該距離情報を記憶部141に記憶する。次に、記憶した距離情報を元にローカルマップM2を生成し、記憶部141に記憶する。ローカルマップM2は、移動体1の周囲の所定の範囲内に存在する物体の配置状態を表す地図情報である。
【0045】
制御部143は、移動体1が移動環境MEを移動中に、移動環境MEにおける移動体1の位置(自己位置と呼ぶ)である位置情報、及び/又は、所定の軸(例えば、移動環境MEを表すための座標系(X-Y座標系)のX軸)に対して移動体1が向いている角度(方向)を表す姿勢情報と、を推定する。この位置情報と姿勢情報との推定後、制御部143は、走行スケジュールTSと環境地
図M1を作成し、記憶部141に記憶する。
【0046】
制御部143は、モータ121a、121bを制御する。制御部143は、例えば、モータ121a、121bのそれぞれの制御量を算出し、当該制御量に基づいた駆動電力をモータ121a、121bのそれぞれに出力する。制御部143は、エンコーダ125a、125bから入力したモータ121a、121bの単位時間あたりの回転量(回転速度)が、所望の回転速度となるように、モータ121a、121bの制御量を算出している(フィードバック制御)。
【0047】
制御部143は、自律モード又は手動モードのいずれかを実行可能となっている。自律モード、手動モードのいずれかを実行するかは、例えば、ユーザによる操作により切り替えることができる。
【0048】
自律モードの実行時においては、制御部143は、記憶部141に記憶された走行スケジュールTSに示された位置情報及び/又は姿勢情報と、移動中に推定された位置情報及び/又は姿勢情報との差に基づいて、モータ121a、121bのそれぞれの制御量を算出して、算出された制御量に基づいた駆動電力を、これらのモータに出力する。これにより、制御部143は、自律モードの実行時においては、移動体1を、走行スケジュールTSに従って、自律的に移動できる。
【0049】
一方、手動モードの実行時においては、制御部143は、例えば、無線又は有線にて移動体1と通信可能なコントローラ又はコンピュータシステム、又は、移動体1に設けられた操作ハンドル(図示せず)などの操作装置を用いたユーザの操作を受け付けて、当該ユーザの操作に基づいて、モータ121a、121bを制御する。これにより、移動体1は、ユーザの操作により移動可能となる。ユーザの操作により移動体1を移動させることで、環境地
図M1を作成するためのデータ、及び、走行スケジュールTSを作成するためのデータ(位置情報、姿勢情報など)を取得できる。つまり、移動体1では、ユーザの操作により、環境地
図M1及び/又は走行スケジュールTSを教示できる。
【0050】
(3)移動体の概略動作
図3を用いて、移動体1の動作を説明する。
図3は、移動体の概略動作を示すフローチャートである。移動体1が動作を開始すると、制御装置14の制御部143は、ユーザにより動作モードの選択が行われたか否かを判定する(ステップS1)。ユーザにより動作モードの選択がなされた場合(ステップS1において「Yes」の場合)、制御部143は、選択された動作モードが手動モードであるか、自律モードであるかを判定する(ステップS2)。
【0051】
選択された動作モードが手動モードであると判定された場合(ステップS2において「手動モード」の場合)、制御部143は、手動モードを実行する(ステップS3)。一方、選択された動作モードが自律モードであると判定された場合(ステップS2において「自律モード」の場合)、制御部143は、自律モードを実行する(ステップS4)。
【0052】
自律モードでは、制御部143は、環境地
図M1と、移動体1を移動中に取得したローカルマップM2とのマップマッチングにより、移動体1の自己位置及び/又は向いている方向(移動体1の姿勢)を推定しつつ、推定された自己位置及び/又は向いている方向(移動体1の姿勢)と走行スケジュールTSとに基づいてモータ121a、121bを制御する。これにより、移動体1は、走行スケジュールTSに従って自律的に移動できる。
【0053】
その後、例えば、ユーザが手動モード又は自律モードの停止を指示するか、あるいは、自律モードにおいて移動体1が走行スケジュールTSに示された通過点を全て通過して移動終了位置に到達した場合(ステップS5において「Yes」の場合)、制御部143は、移動体1の動作を停止させる。そうでなければ(ステップS5において「No」の場合)、上記のステップS1~S4は、継続して実行される。
【0054】
(4)手動モードにおける動作
次に、
図4を用いて、上記のステップS3において実行される手動モードを説明する。
図4は、手動モードにおける移動体の動作を示すフローチャートである。手動モードでは、制御部143は、環境地
図M1及び走行スケジュールTSを作成する。環境地
図M1及び走行スケジュールTSは、移動環境MEにおいて、移動開始位置から移動終了位置までの移動経路に沿ってユーザの操作によって移動体1を移動させることにより作成される。この移動経路上の複数の通過点を表すデータとして、走行スケジュールTSが作成される。
【0055】
まず、移動体1を移動開始位置に配置し、手動モードを実行する。その後、制御部143は、ユーザの操作に従ってモータ121a、121bを制御することで、移動体1を移動させる。移動体1の移動中に、制御部143は、所定の周期毎に、移動体1の自己位置を表す位置情報と、移動体1の向きを表す姿勢情報と、推定する(ステップS31)。
【0056】
具体的には、制御部143が、まず、移動体1の現在位置の周囲に存在する物体の配置状態を表すローカルマップM2を取得する。制御部143は、レーザレンジセンサ13からレーザ光を照射したタイミングと、反射光をレーザレンジセンサ13(レーザ受信器)にて受信したタイミングとの時間差から、レーザレンジセンサ13と物体との距離を算出する。また、例えば、反射光を受信した時のレーザ受信器の受光面の角度から、本体11から見た物体が存在する方向を算出できる。
【0057】
その後、制御部143は、上記の時間差から算出される本体11から見た物体の相対的な距離と、反射光を受光したときの受光面の角度とを距離情報として取得し、その後、移動環境MEを表す座標平面上の座標値に変換する。これにより、移動体1の周囲に存在する物体の移動体1に対する相対的な配置を表す地図情報を、ローカルマップM2として取得できる。制御部143は、上記のようにして取得した距離情報とローカルマップM2を記憶部141に記憶する。
【0058】
ローカルマップM2を取得後に、制御部143は、取得したローカルマップM2と、現段階までに作成された環境地
図M1(あるいは、後述するサブマップM3)とのマップマッチングにより、移動体1の自己位置を表す位置情報と、移動体1の方向を表す姿勢情報とを推定する。
【0059】
具体的には、制御部143は、まず、エンコーダ125a、125bから取得したモータ121a、121b(車輪123a、123b)の回転量に基づいて、環境地
図M1上の移動体1の位置と向きを算出する(デッドレコニング)。次に、デッドレコニングにより算出された環境地
図M1上の位置に、ローカルマップM2を配置する。さらに、制御部143は、当該位置において、ローカルマップM2を、デッドレクコングにより算出された方向に対応するよう回転して、環境地
図M1とローカルマップM2とのマップマッチングを行う。
【0060】
このとき、デッドレコニングによる位置及び姿勢の推定誤差を考慮して、ローカルマップM2を環境地
図M1上に配置するときの配置位置や回転角度に幅を持たせる。具体的には、制御部143は、デッドレコニングにより推定された位置及び姿勢を中心とした所定の範囲内の環境地
図M1上の複数の位置にローカルマップM2を配置し、当該複数の位置のそれぞれにおいて、所定の回転角度範囲内にてローカルマップM2を回転する。
【0061】
その後、制御部143は、上記の複数の配置位置及び複数の回転角度のうち、ローカルマップM2が環境地
図M1と最も一致(マッチング)する配置位置及び回転角度を、それぞれ、移動体1の自己位置及び移動体1の姿勢と推定する。このようなマップマッチングによる自己位置及び向きの推定は、例えば、「尤度計算」により実行できる。
【0062】
移動体1の位置情報及び姿勢情報を推定後、制御部143は、ステップS31で取得したローカルマップM2と、ステップS31で推定された移動体1の位置情報と、移動体1の姿勢情報と、を関連付けて記憶部141に記憶する(ステップS32)。
【0063】
また、制御部143は、ステップS31で推定された位置情報と姿勢情報とを関連付けて、走行スケジュールTSに逐次記録する。これにより、移動開始位置から現在位置までの間に通過した通過点から、推定された位置情報と姿勢情報で表した走行スケジュールTSを作成できる。このとき、制御部143は、位置情報と姿勢情報に加えて、移動の開始からの経過時間、移動体1の移動速度等の情報を関連付けて走行スケジュールTSに記録してもよい。
【0064】
次に、制御部143は、前回のサブマップM3の作成から移動体1が所定の距離を超えて移動したか否かを判定する(ステップS33)。前回のサブマップM3の作成から移動体1が所定の距離だけ移動していない場合(ステップS33において「No」の場合)、上記のステップS31~S33が再度実行される。これにより、所定の距離移動する間に、所定の個数のローカルマップM2、位置情報、姿勢情報、距離情報が取得される。
【0065】
一方、前回のサブマップM3の作成から移動体1が所定の距離を超えて移動した場合(ステップS33において「Yes」の場合)、制御部143は、移動体1が所定の距離移動する間に得られた所定個数の位置情報及び姿勢情報に関連付けられた所定個数のローカルマップM2に基づいて、サブマップM3を作成する(ステップS34)。このとき1つのサブマップM3に含まれるローカルマップM2の個数は適宜変動する。具体的には、制御部143は、環境地
図M1を定める座標系において、ステップS31~S33を実行することで得られた所定個数のローカルマップM2のそれぞれを、当該ローカルマップM2が取得された位置情報の座標上に配置し、当該座標において姿勢情報に示される角度にローカルマップM2を回転させて、サブマップM3を作成する。
【0066】
また、制御部143は、作成したサブマップM3に、代表地点情報を関連付ける。代表地点情報は、環境地
図M1を定める座標系におけるサブマップM3の位置(代表地点と呼ぶ)と当該位置におけるサブマップM3の向き(代表姿勢と呼ぶ)を表し、これらを含む情報である。代表地点情報は、例えば、ステップS31~S33を実行することで得られた移動体1の位置情報及び当該位置における姿勢情報とできる。代表地点情報は、サブマップM3を構成するローカルマップM2の位置情報及び姿勢情報から適宜選択することができる。より具体的には、代表地点情報は、サブマップM3を構成するローカルマップM2を取得した所定個数の位置情報及び姿勢情報のうち、最初の位置情報及び姿勢情報を含む情報とできる。作成されたサブマップM3は、記憶部141に記憶される。
【0067】
上記のように、サブマップM3は、移動環境ME内において移動体1を移動させることによって得られた所定個数のローカルマップM2であるので、移動環境MEの一部を表す地図情報である。すなわち、サブマップM3は、環境地
図M1の一部に対応する。
【0068】
サブマップM3を作成後、制御部143は、隣接補正を実行する(ステップS35)。隣接補正では、特定のサブマップM3の代表地点及び/又は代表姿勢と、当該特定のサブマップM3と隣接する関係にあるサブマップM3の代表地点及び/又は代表姿勢との位置関係及び/又は姿勢関係(2つのサブマップM3間の向きの関係)のずれを補正することで、サブマップM3に関連付けられている代表地点情報(代表地点、代表姿勢)を補正する。隣接補正における具体的な処理は、後ほど説明する。ここで、「隣接する関係にあるサブマップM3」は、特定のサブマップM3の直前又は直後にあるサブマップM3に限られず、直前又は直後になくとも、特定のサブマップM3から比較的近い位置にあるサブマップM3であってもよい。
【0069】
隣接補正を実行後、制御部143は、ループ補正を実行する(ステップS36)。ループ補正では、特定のサブマップM3と、当該特定のサブマップM3の代表地点を終点又は始点としたループ経路の始点又は終点となる代表地点を有するサブマップM3と、の位置関係及び/又は姿勢関係のずれの補正することで、サブマップM3に関連付けられた代表地点情報を補正する。すなわち、ループ補正は、代表地点がループ経路の始点又は終点となる2つのサブマップM3間の位置関係及び/又は姿勢関係のずれの補正である。ループ補正における具体的な処理は、後ほど説明する。
【0070】
サブマップM3間の位置関係及び/又は姿勢関係に基づいて代表地点情報を補正後、制御部143は、補正後の位置関係及び/又は姿勢関係(すなわち、代表地点情報)に基づいて、環境地
図M1を作成する(ステップS37)。具体的には、制御部143は、補正された代表地点情報と、当該代表地点情報を有するサブマップM3の地図情報と、を関連付けて環境地
図M1を作成する。つまり、環境地
図M1は、これまでに作成されたサブマップM3により構成される。従って、移動体1が移動終了位置まで移動しない間に作成された環境地
図M1は、完成予定の環境地
図M1の一部となる。移動体1が移動終了位置まで移動する間にステップS31~S37が繰り返し実行されることで、完成状態の環境地
図M1が作成される。
【0071】
サブマップM3は、環境地
図M1の一部に対応する小さな地図情報であるので、ループ経路を含む可能性は低い。ループ経路を示す地図情報は、ループ経路の始点と終点とが大きく一致しないような形状となる傾向にある。このため、環境地
図M1を複数のサブマップM3で構成することで、ループ経路の始点と終点とが大きく一致しない不適切な地図情報が環境地
図M1に含まれる可能性が低くなるので、移動環境MEをより適切に表す環境地
図M1を作成できる。
【0072】
その他、制御部143は、補正後の代表地点情報が示す位置に、対応するサブマップM3を配置し、配置したサブマップM3を合体して1つの地図情報としての環境地
図M1を作成してもよい。環境地
図M1を1つの地図情報として作成することで、環境地
図M1を取り扱いしやすくなる。
【0073】
また、制御部143は、走行スケジュールTSに含まれる位置情報及び/又は姿勢情報を、補正後の位置関係及び/又は姿勢関係に基づいて補正する。例えば、走行スケジュールTSに含まれる位置情報及び姿勢情報を、当該位置情報及び姿勢情報から最も近い位置にある代表地点情報の補正量に応じて補正することで、走行スケジュールTSに含まれる位置情報/姿勢情報を適切に補正できる。
【0074】
環境地
図M1の作成後、制御部143は、ユーザの操作により移動体1が移動経路の移動完了位置に到達したか否かを判定する(ステップS38)。移動体1が移動完了位置に到達していない場合(ステップS38において「No」の場合)、上記のステップS31~S37が再度実行される。一方、移動体1が移動完了位置に到達した場合(ステップS38において「Yes」の場合)、手動モードにおけるユーザの操作による移動を終了する。
【0075】
(5)ループ補正における動作
以下、
図5を用いて、ループ補正において制御部143が実行する処理を説明する。
図5は、ループ補正において実行される処理を示すフローチャートである。ループ補正では、現段階までに作成されたサブマップM3のうち1つ(第1サブマップと呼ぶ)と、第1サブマップの代表地点及び代表姿勢とループ形状を形成する関係にある代表地点及び代表姿勢を有する他のサブマップ(第2サブマップと呼ぶ)と、の位置関係及び/又は姿勢関係を補正することで、サブマップM3に関連付けられた代表地点情報を補正する。
【0076】
以下では、
図6に示すように、教示中の移動経路R1のうち、代表地点RP
kを始点とし、代表地点RP
kから代表地点RP
k+1、RP
k+2、・・・RP
k+m-1を通過し、代表地点RP
k+mを終点とするループ経路におけるループ補正を例にとって説明する。なお、代表地点RP
k、RP
k+1、・・・RP
k+m-1、RP
k+mにおける代表姿勢を、それぞれ、θ
k、θ
k+1、・・・θ
k+m-1、θ
k+mとする。また、現段階までに、移動体1は、上記のループ経路を通り代表地点RP
k+mに対応する位置まで移動しているとする。
図6は、ループ経路の一例を示す図である。
【0077】
最初に、制御部143は、代表地点及び/又は代表姿勢がループ経路を形成する関係にある2つのサブマップ(第1サブマップ、第2サブマップ)が存在するか否かを判定する。
図6に示すように、ループ経路は、移動体1が特定の位置から移動した後に当該特定の位置又はその近くの位置に戻ってくることで形成される経路である。制御部143は、ループ経路のこの性質に基づいて、代表地点及び/又は代表姿勢がループ経路を形成する関係にある2つのサブマップが存在するか否かを判定する。具体的には、以下の処理によりこの判定がなされる。
【0078】
まず、制御部143は、現段階までに作成されたサブマップM3のうち1つを第1サブマップとして選択し、この第1サブマップの代表地点から所定の相対距離の範囲内に他のサブマップが存在するか否かを判定する(ステップS361)。
図6に示す例において、例えば、代表地点RP
k+mを有するサブマップM3を第1サブマップとして選択したとする。この場合、制御部143は、代表地点RP
k+m-1を有するサブマップM3、代表地点RP
kを有するサブマップM3、代表地点RP
k-1を有するサブマップM3が第2サブマップの候補であると判定する。
【0079】
上記のように、第1サブマップの代表地点から所定の相対距離の範囲内に他のサブマップが存在する場合(ステップS361において「Yes」の場合)、制御部143は、ステップS361で見つかったサブマップM3(第2サブマップの候補)に、第2サブマップが存在するか否かを判定する(ステップS362)。第2サブマップは、ステップS361で見つかったサブマップM3のうち、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップである。具体的には、例えば、ステップS361で見つかったサブマップM3のうち、第1サブマップと当該見つかったサブマップM3の一方の代表地点から他方の代表地点までの移動距離がある閾値を超えているか、及び/又は、第1サブマップと当該見つかったサブマップM3の一方の代表姿勢と他方の代表姿勢との差(すなわち、姿勢変化)がある閾値を超えているサブマップM3が、第2サブマップである。
【0080】
なお、第1サブマップと見つかったサブマップM3の一方の代表地点から他方の代表地点までの移動距離がある閾値を超えているが、一方の代表姿勢と他方の代表姿勢との差がある閾値を超えていない場合でも、当該見つかったサブマップM3が第2サブマップとして選択されることがある。例えば、ループ経路において始点の姿勢(代表姿勢)と終点の姿勢(代表姿勢)がほとんど同じである場合には、見つかったサブマップM3を第2サブマップとする。
【0081】
一方、第1サブマップと見つかったサブマップM3の一方の代表姿勢と他方の代表姿勢との差がある閾値を超えているが、一方の代表地点から他方の代表地点までの移動距離がある閾値を超えていない場合でも、当該見つかったサブマップM3が第2サブマップとして選択されることがある。例えば、移動体1がほぼその場で回転した場合もループ経路とみなして、見つかったサブマップM3を第2サブマップとする。
【0082】
図6に示す例においては、例えば、代表地点RP
k+mを有するサブマップM3を第1サブマップとして選択した場合、制御部143は、代表地点RP
kを有するサブマップM3、代表地点RP
k-1を有するサブマップM3が上記の条件に当てはまると判定し、これらサブマップM3を第2サブマップとして選択する。
【0083】
なお、代表地点RP
k+m-1を有するサブマップM3は第2サブマップとして選択されない。なぜなら、代表地点RP
k+m-1を有するサブマップM3は、代表地点RP
k+mを有する第1サブマップとは隣接する関係にあるが、代表地点RP
k+m-1と代表地点RP
k+mとの移動距離は所定の閾値よりも小さいからである。その一方、代表地点RP
kを有するサブマップM3、代表地点RP
k-1を有するサブマップM3は、第2サブマップとして選択される。なぜなら、これらサブマップは、それぞれ、代表地点RP
k+mを有する第1サブマップと近い位置に存在し、かつ、これらサブマップの代表地点と第1サブマップの代表地点の間には、それぞれ、m個、m+1個の他の代表地点が存在するからである。つまり、これらサブマップの代表地点と第1サブマップの代表地点の間の移動体1の移動距離は、所定の閾値を超えているからである。さらに、
図6に示すように、代表地点RP
kにおける移動体1の代表姿勢θ
k、及び、代表地点RP
k-1における移動体1の代表姿勢θ
k-1は、代表地点RP
k+mにおける移動体1の代表姿勢θ
k+mと180°近く異なっているからである。すなわち、代表地点RP
kから代表地点RP
k+mまでの移動、及び、代表地点RP
k-1から代表地点RP
k+mまでの移動の間に、移動体1の姿勢変化が所定の閾値を超えているからである。
【0084】
上記のステップS361~ステップS362を実行することで、制御部143は、ループ経路の性質に基づいて、移動経路R1の途中に存在するループ経路も含めて、移動経路R1に含まれる全てのループ経路を見つけ、代表地点及び代表姿勢が当該ループ経路を構成する関係にあるサブマップM3を的確に見つけることができる。
【0085】
上記のように、第1サブマップと第2サブマップとが見つかった場合、制御部143は、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれを補正する。具体的には、以下の処理を実行してずれを補正する。
【0086】
まず、制御部143は、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量を算出する(ステップS363)。第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量は、第1サブマップと第2サブマップとの比較に基づいて算出される。具体的には、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量は、例えば、第1サブマップ又は第2サブマップの一方の代表地点で取得された距離情報と第1サブマップ又は第2サブマップの他方のサブマップとが最も一致するよう、上記他方のサブマップ又は上記一方のサブマップの代表地点で取得された距離情報の一方を他方に対して相対的にずらしたときのずれ量として算出される。制御部143は、以下の処理(スキャンマッチングと呼ぶ)により、第1サブマップと第2サブマップの位置関係及び姿勢関係のずれ量を算出する。
【0087】
まず、制御部143は、例えば、第2サブマップの代表地点で取得された距離情報を、第1サブマップ上において、第1サブマップの代表地点を中心とする所定の範囲内に設定された複数の候補位置のそれぞれに配置し、当該候補位置において所定の角度範囲で上記距離情報を回転させて、各候補位置の各回転角度における上記距離情報と第1サブマップとの一致度を算出する。これにより、候補位置と回転角度の複数の組み合わせにおける、第1サブマップと第2サブマップ(の代表地点における距離情報)との一致度が算出される。
【0088】
その後、制御部143は、第1サブマップと第2サブマップ(の代表地点における距離情報)との一致度が最大となる候補位置及び回転角度と、第1サブマップの代表地点及び当該代表地点における姿勢情報との差を、それぞれ、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量として算出する。
【0089】
なお、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量は、上記とは逆に、第1サブマップの代表地点で取得された距離情報と第2サブマップとが最も一致するよう、第1サブマップの代表地点で取得された距離情報又は第2サブマップの一方を他方に対して相対的にずらしたときのずれ量として算出してもよい。
【0090】
このように、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量を、移動体1の周囲に存在する物体までの距離を表す距離情報を用いて算出することで、正確なずれ量を算出できる。この結果、より適切に第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正できる。
【0091】
第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量を算出後、制御部143は、算出されたずれ量に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係(代表地点情報)を補正する(ステップS364)。本実施形態では、制御部143は、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を、今回比較対象とした第1サブマップと第2サブマップに加えて、これまでに作成された全てのサブマップM3に分配して、全てのサブマップM3の位置関係及び/又は姿勢関係を補正する。この補正は、例えば、全てのサブマップM3の代表地点情報(に含まれる代表地点、代表姿勢)に対して、非線形最小二乗法を用いたグラフ最適化(例えば、GraphSLAMなど)をすることにより実現できる。また、他の方法によっても上記補正を実現できる。
【0092】
上記のステップS361~S364を実行することで、教示のための移動経路R1の途中に存在するループ経路も含め、移動経路R1に存在する全てのループ経路を見つけ、見つかったループ経路を形成する関係にある2つのサブマップ間の位置関係及び/又は姿勢関係を補正して、ループ経路の形状を適切に表した環境地
図M1を作成できる。
【0093】
また、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を、全てのサブマップM3に分配し、全てのサブマップM3の位置関係及び/又は姿勢関係を補正することにより、2つのサブマップM3間の相対的な位置関係及び/又は姿勢関係を崩すことなく、複数のサブマップM3間の位置関係及び/又は姿勢関係を補正できる。
【0094】
なお、上記のステップS361において、第1サブマップの代表地点から所定の相対距離の範囲内に他のサブマップが存在しないと判定された場合(ステップS361において「No」の場合)、又は、上記のステップS362において、ステップS361で見つかったサブマップM3に、当該サブマップM3に関連付けられた代表地点及び/又は代表姿勢と第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間の移動体1の移動距離及び/又は姿勢変化が所定の閾値を超えているものが存在しないと判定された場合(ステップS362において「No」の場合)、制御部143は、第1サブマップとループ経路を形成する関係にある第2サブマップが存在しないと判断し、ループ補正処理を終了する。
【0095】
(6)隣接補正における動作
以下、
図7を用いて、隣接補正において制御部143が実行する処理を説明する。
図7は、隣接補正において実行される処理を示すフローチャートである。隣接補正は、互いに隣接する関係にある2つのサブマップM3間の位置関係のずれを補正する。具体的には、以下の処理により隣接補正がなされる。
【0096】
まず、制御部143は、互いに隣接する関係にある2つのサブマップM3間の位置関係のずれ量を算出する(ステップS351)。制御部143は、互いに隣接する関係にある2つのサブマップM3に対して、上記で説明したスキャンマッチングを実行することにより、2つのサブマップM3間の位置関係のずれ量を算出する。
【0097】
上記2つのサブマップM3の位置関係のずれ量を算出後、制御部143は、算出されたずれ量に基づいて、互いに隣接する関係にあるサブマップM3の位置関係を補正する(ステップS352)。制御部143は、上記2つのサブマップM3の位置関係のずれ量を、これまでに作成された全てのサブマップM3の代表地点に分配し、全てのサブマップM3の代表地点情報を補正する。この補正は、例えば、全てのサブマップM3の代表地点情報に対して、非線形最小二乗法を用いたグラフ最適化をすることにより実現できる。また、他の方法によっても上記補正を実現できる。
【0098】
上記のステップS351~ステップS352を実行して、隣接する位置関係にある2つのサブマップM3間に存在するずれを補正することで、特にループ経路以外の部分に存在する2つのサブマップM3間のずれを補正できる。この結果、より正確な環境地
図M1を作成できる。
【0099】
2.第2実施形態
上記の第1実施形態においては、1つの自己位置(位置情報)は1つのサブマップM3にしか属していなかった。この場合、
図8に示すように、移動経路(例えば、
図8に示すようなT字路)によっては、代表地点RP
nを有するサブマップM3(
図8において点線にて示す地図情報)と、それに隣接する代表地点RP
n+1を有するサブマップM3(
図8において一点鎖線にて示す地図情報)と、の重複が少なくなる場合がある(オクルージョン)。
図8は、2つのサブマップの重複が少なくなる場合の一例を示す図である。なお、
図8の黒点は自己位置(位置情報)を示す。
【0100】
この現象は、あるサブマップM3に含まれる自己位置において取得されたローカルマップM2に存在していた物体の情報の一部が、隣接する別のサブマップM3に含まれる自己位置において取得されたローカルマップM2には存在しなくなる場合に発生する。
【0101】
上記のように、2つのサブマップM3間の位置関係のずれ量は、一方のサブマップM3の代表地点で取得された距離情報と、他方のサブマップM3と、のマッチング結果に基づいて算出される。この場合に、マッチングする対象の距離情報とサブマップM3との重複が少なくなると、上記のマッチングにおいても重複する部分が少なくなり、正確なマッチング結果を得られなくなる。この結果、2つのサブマップM3間の位置関係のずれ量を正確に算出できなくなる。
【0102】
第2実施形態では、
図9に示すように、制御部143は、サブマップM3を作成するときに、作成しようとしているサブマップM3の一部と、このサブマップM3に隣接する他のサブマップM3の一部とを重複させる。具体的には、例えば、
図9に示すように、ある特定の代表地点(例えば、代表地点RP
r)を有するサブマップM3の最後に含まれる自己位置(ローカルマップM2)と、それに隣接する代表地点(例えば、代表地点RP
r+1)を有するサブマップM3の最初に含まれる自己位置(ローカルマップM2)と、を共通のものとする。
図9は、隣接する2つのサブマップの一部を重複させる方法の一例を示す図である。
【0103】
このように、互いに隣接する2つのサブマップM3の一部を重複させることにより、位置関係のずれ量の算出のためにマッチングさせる距離情報とサブマップM3との重複が多くなるので、これらの正確なマッチング結果を得られる。この結果、2つのサブマップM3間の位置関係のずれ量を正確に算出できる。
【0104】
3.他の実施形態
以上、本発明の複数の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
(A)
図3~
図5、
図7のフローチャートに示す各ステップの処理順、及び/又は、各ステップにおける処理内容は、発明の要旨を変更しない範囲で適宜変更できる。
【0105】
(B)ある特定のサブマップM3に対して位置関係のずれ量を算出する対象のサブマップM3(対象サブマップと呼ぶ)が複数存在する場合、複数の対象サブマップのうち1つを選択し、特定のサブマップM3と選択された1つの対象サブマップとの位置関係のずれ量を算出し、特定のサブマップM3と選択された1つの対象サブマップとの位置関係のずれを補正してもよい。この場合、選択する対象サブマップを変更させて上記のずれ量の算出とずれの補正とを繰り返し実行する。
【0106】
(C)ある特定のサブマップM3に対して対象サブマップが複数存在する場合、複数の対象サブマップのうち1つを選択し、特定のサブマップM3と選択された1つの対象サブマップとの位置関係のずれ量を算出し、このずれ量に基づいて全てのサブマップM3の位置関係のずれを補正してもよい。
【0107】
(D)ある特定のサブマップM3に対して対象サブマップが複数存在する場合、まず、複数の対象サブマップのそれぞれについて特定のサブマップM3と対象サブマップとの位置関係のずれ量を算出し、その後、算出されたずれ量に基づいて対応するサブマップM3の位置関係のずれを補正してもよい。
【0108】
(E)ある特定のサブマップM3に対して対象サブマップが複数存在する場合、まず、複数の対象サブマップのそれぞれについて特定のサブマップM3と対象サブマップとの位置関係のずれ量を算出し、その後、算出されたずれ量に基づいて全てのサブマップM3の位置関係のずれを補正してもよい。
【0109】
(F)上記の隣接補正は、サブマップM3が作成される毎ではなく、適宜のタイミングで実行されてもよい。例えば、移動経路R1の移動完了位置に近い位置においては、それ以前よりも少ない頻度で隣接補正を実行するようにしてもよい。これにより、例えば、隣接補正を間引くことによる計算の削減量が、ループ補正の範囲が広くなることによる計算量の増加を上回ることを期待できる。その結果、効率よく位置関係のずれを補正できるようになる。
【0110】
(G)上記のループ補正は、サブマップM3に関連付けられた代表地点と第1サブマップに関連付けられた代表地点との間の移動体1の移動距離がある閾値を超えており、これら2つの代表地点間を移動する間の姿勢変化がある閾値を超えている場合に行われるが、2つのサブマップ間の移動距離の代わりに、2つのサブマップの代表地点間の移動に掛かった経過時間が所定の閾値を超えている場合に、ループ補正を行ってもよい。これにより、移動距離及び姿勢変化を厳密に計算することなく、より少ない計算量で簡単にループが存在するか否かを判定する指標として扱うことができる。
【0111】
(H)サブマップM3間の位置関係のずれ量は、2つのサブマップのうち一方の距離情報と他方のサブマップとを用いたスキャンマッチングにより算出されていた。これに限られず、比較対象のサブマップM3の画像処理によるマッチングにより、サブマップM3間の位置関係のずれ量を算出してもよい。
【0112】
(I)サブマップM3を作成する閾値の大きさは、自己位置推定の累積誤差が所定の範囲を超えない距離/姿勢変化の範囲に基づいて一定とすることが好ましい。しかし、これに限られず、所定の条件に従って、サブマップM3を作成する閾値の大きさを適宜変更してもよい。例えば、隣接補正、ループ補正の結果、現在のサブマップM3を作成する閾値の大きさでは環境地
図M1の歪みがむしろ増加した場合に、サブマップM3を作成する閾値の大きさをより最適な大きさに変更できる。
【0113】
(J)サブマップM3は、所定時間に基づいて作成されてもよい。例えば、移動体1が所定時間移動する間に得られた所定個数の位置情報及び姿勢情報に関連付けられた所定個数のローカルマップM2に基づいて、サブマップM3を作成できる。所定時間は、適宜変更してもよい。これにより、移動距離及び姿勢変化を厳密に計算することなく、より少ない計算量で簡単にサブマップを作成することができる。
【0114】
(K)サブマップM3は、一定個数のローカルマップM2に基づいて作成されてもよい。例えば、連続する6個のローカルマップM2に基づいて、サブマップM3を作成できる。ローカルマップM2の一定個数は、適宜変更してもよい。これにより、移動距離及び姿勢変化を厳密に計算することなく、より少ない計算量で簡単にサブマップを作成することができる。
【0115】
(L)複数のサブマップM3を結合した大きなサブマップを(一時的に)作成し、これを用いてループ補正を実行してもよい。これにより,より多くの第2サブマップの候補の検出、サブマップM3間の位置関係のずれ量の算出をロバストに行える。
【0116】
(M)隣接補正、ループ補正を実行する前に、これらの補正が必要であるか否かを判定し、補正が不要である場合には隣接補正、ループ補正の実行を行わないようにしてもよい。補正が必要か否かは、例えば、自己位置推定によるサブマップM3間の位置関係と、隣接補正、ループ補正において算出されるサブマップM3間の位置関係の差が小さいか否かにより判定できる。これにより、補正が必要ない場合にも補正を行って、制御部143の処理量が無駄に増えることを抑制できる。
【0117】
(N)例えば、移動体1の運用ユースケースなどの前提条件(例えば、自己位置推定の累積誤差が、ループ経路による自己位置推定の誤差が発生する前には十分に小さいことが保証できるとの条件)によっては、隣接補正を実行しなくてもよい。
【0118】
(О)上記の処理(
図4のステップS33以降の処理)は、ユーザによる走行スケジュールTSの教示中に実行されているが、ユーザによる教示終了後(移動完了位置まで移動した後)に、まとめて実行してもよい。この場合、移動開始地点から移動終了地点までに取得した全ての関連する情報を利用して隣接補正及び又はループ補正を行うことができるため、移動環境をより適切に表した環境地
図M1を作成できる。
【0119】
(P)制御部143の機能のうち一部の機能(例えば、自己位置推定機能、サブマップ作成機能、隣接補正機能、ループ補正機能、環境地図作成機能)を、移動体1に接続された別の制御装置(システム)にて実現させてもよい。これにより、例えば、移動体1の教示移動を終了したあとに、移動体1とは別の制御装置(システム)にて自己位置推定、サブマップ作成、隣接補正、ループ補正、環境地図作成を実行できる。
【0120】
(Q)上記の第2実施形態では、サブマップM3において代表地点よりも過去に取得された自己位置(ローカルマップM2)のみを他のサブマップM3と共有させていた。しかし、これに限られず、サブマップM3において代表地点よりも後に取得された自己位置(ローカルマップM2)を他のサブマップM3と共有させてもよい。
【0121】
(R)複数のサブマップM3で共有させる自己位置(ローカルマップM2)の個数は、所定の条件に従って適宜変更できる。例えば、オクルージョンが起きにくい場合には、共有させる自己位置(ローカルマップM2)の数を減少できる。その一方、例えば、オクルージョンが発生する可能性が高くなった場合には、共有させる自己位置(ローカルマップM2)の数を増加できる。
【0122】
4.実施形態の特徴
上記実施形態の特徴は、以下のようにも記載できる。
(1)地図作成装置(例えば、制御装置14)は、制御部(例えば、制御部143)を備える。制御部は、移動環境(例えば、移動環境ME)における移動体(例えば、移動体1)の位置である位置情報と、当該位置における移動体の向きを表す姿勢情報と、移動体の周囲に存在する物体の配置状態を示すローカルマップ(例えば、ローカルマップM2)と、を関連付けて取得し、移動体が移動し及び/又は姿勢変化をする間に得られた複数の位置情報及び/又は姿勢情報に関連付けられた複数のローカルマップに基づいて、環境地図(例えば、環境地
図M1)の一部に対応するサブマップ(例えば、サブマップM3)を作成し、当該サブマップに当該サブマップの代表地点と代表姿勢を表す代表地点情報を関連付ける。
【0123】
制御部は、サブマップのうち1つを第1サブマップとして選択する。また、制御部は、他のサブマップのうち、第1サブマップから所定の相対距離の範囲内にあるサブマップであって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを第2サブマップとして選択する。
【0124】
制御部は、第1サブマップと第2サブマップとの比較に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を算出し、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正して環境地図を作成する。
【0125】
上記の地図作成装置では、環境地図の一部に対応する2つのサブマップ間の位置関係及び/又は姿勢関係を補正して環境地図を作成している。サブマップは小さな地図情報であるので、その中にループ経路(環状部分、袋小路、ヘアピンカーブ等、経路が交差する場合のみだけでなく経路が距離的には近く、時間的に離れている場合も含む)を含む可能性を低くできる。
【0126】
また、上記の地図作成装置においては、作成されたサブマップのうち1つを第1サブマップとして選択したときに、第1サブマップとの位置関係及び/又は姿勢関係を補正する対象のサブマップ(第2サブマップ)として、第1サブマップから所定の相対距離の範囲内にあるサブマップであって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを選択している。
【0127】
第1サブマップと第2サブマップとが近い位置にあり、第1サブマップの代表地点及び/又は代表姿勢と第2サブマップの代表地点及び/又は代表姿勢との差(移動体の移動距離及び/又は姿勢変化)が所定の閾値を超えていることは、移動体が移動した経路がループ状になっていることを意味する。従って、第1サブマップとの位置関係及び/又は姿勢関係を補正する第2サブマップを上記の条件のサブマップとして選択することで、移動開始位置から移動終了位置までの移動経路の途中のループ経路も含め、この移動経路に存在する全てのループ経路を見つけることができる。また、見つかったループ経路を形成する関係にある2つのサブマップ間の位置関係及び/又は姿勢関係を補正して、ループ経路の形状を適切に表した環境地図を作成できる。
【0128】
(2)上記(1)の地図作成装置において、制御部は、移動体の周囲に存在する物体までの距離を表す距離情報を取得し、第1サブマップ又は第2サブマップの一方の代表地点で取得された距離情報と他方のサブマップとの比較に基づいてずれ量を算出し、当該ずれ量に基づいて第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正してもよい。これにより、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量を正確に算出できる。この結果、より適切に第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正できる。
【0129】
(3)上記(1)又は(2)の地図作成装置において、制御部は、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を、作成された全てのサブマップに分配して、全てのサブマップの位置関係及び/又は姿勢関係を補正してもよい。これにより、2つのサブマップ間の相対的な位置関係及び/又は姿勢関係を崩すことなく位置関係及び/又は姿勢関係を補正できる。
【0130】
(4)上記(1)~(3)のいずれかの地図作成装置において、制御部は、互いに隣接する関係にある2つのサブマップの比較に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係のずれ量を算出し、この2つのサブマップの位置関係及び/又は姿勢関係のずれ量に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係を補正してもよい。これにより、ループ経路だけでなく、隣接する位置関係及び/又は姿勢関係にある2つのサブマップ間に存在するずれも補正して、より正確な環境地図を作成できる。
【0131】
(5)上記(1)~(4)のいずれかの地図作成装置において、制御部は、互いに隣接する2つのサブマップの一部を重複させてもよい。これにより、比較対象の2つのサブマップに共通に含まれる地図情報が多くなるので、2つのサブマップ間の位置関係及び/又は姿勢関係のずれ量をより正確に算出できる。
【0132】
(6)地図作成方法は、以下のステップを備える。
◎移動環境における移動体の位置である位置情報と、当該位置における移動体の向きを表す姿勢情報と、移動体の周囲に存在する物体の配置状態を示すローカルマップと、を関連付けて取得するステップ(例えば、ステップS31~S32)。
◎移動体が移動し及び/又は姿勢変化をする間に得られた複数の位置情報及び/又は姿勢情報に関連付けられた複数のローカルマップに基づいて、環境地図の一部に対応するサブマップを作成し、当該サブマップに当該サブマップの代表地点と代表姿勢を表す代表地点情報を関連付けるステップ(例えば、ステップS33~S34)。
◎サブマップのうち1つを第1サブマップとして選択し、他のサブマップのうち、第1サブマップから所定の相対距離の範囲内にあるサブマップであって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを第2サブマップとして選択するステップ(例えば、ステップS361~S362)。
◎第1サブマップと第2サブマップとの比較に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を算出するステップ(例えば、ステップS363)。
◎第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量に基づいて、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正して、環境地図を作成するステップ(例えば、ステップS364、ステップS37)。
【0133】
上記の地図作成方法では、環境地図の一部に対応する2つのサブマップ間の位置関係を補正して環境地図を作成している。サブマップは小さな地図情報であるので、その中にループ経路(環状部分、袋小路、ヘアピンカーブ等、経路が交差する場合のみだけでなく経路が距離的には近く、時間的に離れている場合も含む)を含む可能性を低くできる。
【0134】
また、上記の地図作成方法においては、作成されたサブマップのうち1つを第1サブマップとして選択したときに、第1サブマップとの位置関係及び/又は姿勢関係を補正する対象のサブマップ(第2サブマップ)として、第1サブマップから所定の相対距離の範囲内にあるサブマップであって、第1サブマップに関連付けられた代表地点及び/又は代表姿勢との間における移動体の移動距離及び/又は姿勢変化が所定の閾値を超えているサブマップを選択している。
【0135】
第1サブマップと第2サブマップとが近い位置にあり、第1サブマップの代表地点及び/又は代表姿勢と第2サブマップの代表地点及び/又は代表姿勢との差(移動体の移動距離及び/又は姿勢変化)が所定の閾値を超えていることは、移動体が移動した経路がループ状になっていることを意味する。従って、第1サブマップとの位置関係及び/又は姿勢関係を補正する第2サブマップを上記の条件のサブマップとして選択することで、移動開始位置から移動終了位置までの移動経路の途中のループ経路も含め、この移動経路に存在する全てのループ経路を見つることができる。また、見つかったループ経路を形成する関係にある2つのサブマップ間の位置関係及び/又は姿勢関係を補正して、ループ経路の形状を適切に表した環境地図を作成できる。
【0136】
(7)上記(6)の地図作成方法は、以下のステップをさらに備えてもよい。
◎移動体の周囲に存在する物体までの距離を表す距離情報を取得するステップ。
◎第1サブマップ又は第2サブマップの一方の代表地点で取得された距離情報と他方のサブマップとの比較に基づいてずれ量を算出し、当該ずれ量に基づいて第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正するステップ。
【0137】
これにより、第1サブマップと第2サブマップの位置関係及び/又は姿勢関係のずれ量を正確に算出できる。この結果、より適切に第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正できる。
【0138】
(8)上記(6)又は(7)の地図作成方法において、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係を補正するステップは、第1サブマップと第2サブマップとの位置関係及び/又は姿勢関係のずれ量を、作成された全てのサブマップに分配して、全てのサブマップの位置関係及び/又は姿勢関係を補正するステップを含んでもよい。これにより、2つのサブマップ間の相対的な位置関係及び/又は姿勢関係を崩すことなく位置関係及び/又は姿勢関係を補正できる。
【0139】
(9)上記(6)~(8)のいずれかの地図作成方法は、以下のステップをさらに備えてもよい。
◎互いに隣接する関係にある2つのサブマップの比較に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係のずれ量を算出するステップ(例えば、ステップS351)。
◎2つのサブマップの位置関係及び/又は姿勢関係のずれ量に基づいて、当該2つのサブマップの位置関係及び/又は姿勢関係を補正するステップ(例えば、ステップS352)。
これにより、ループ経路だけでなく、隣接する位置関係及び/又は姿勢関係にある2つのサブマップ間に存在するずれも補正して、より正確な環境地図を作成できる。
【0140】
(10)上記(6)から(9)のいずれかの地図作成方法において、サブマップを作成するステップは、互いに隣接する2つのサブマップの一部を重複させるステップを含んでもよい。これにより、比較対象の2つのサブマップに共通に含まれる地図情報が多くなるので、2つのサブマップ間の位置関係及び/又は姿勢関係のずれ量をより正確に算出できる。
【産業上の利用可能性】
【0141】
本発明は、移動体が移動する移動環境を表す地図を作成する地図作成装置及び地図作成方法に広く適用できる。
【符号の説明】
【0142】
1 :移動体
11 :本体
12 :移動部
121a、121b :モータ
123a、123b :車輪
125a、125b :エンコーダ
13 :レーザレンジセンサ
131 :第1レーザレンジセンサ
133 :第2レーザレンジセンサ
14 :制御装置
141 :記憶部
143 :制御部
15 :補助輪部
15a、15b :補助車輪
M1 :環境地図
M2 :ローカルマップ
M3 :サブマップ
ME :移動環境
TS :走行スケジュール