移動体
【課題】演算コストを低減して自己位置同定を行う。
【解決手段】移動体10は、自己位置同定手段120、周囲の環境を計測する環境計測手段110、障害物マップ生成手段130、目的地までの移動経路を生成する経路計画手段140、経路を走行するための制御信号を生成する追従制御手段150、制御信号に基づいて駆動する駆動手段160、及び移動体10の加速度を計測する加速度計測手段190を備える。自己位置同定手段120は、障害物マップに記録された障害物の位置を通過した場合と、加速度が閾値を超えた場合と、経路の曲率が閾値以上の箇所を通過した場合と、制御信号と駆動手段の駆動状態との比較によりスリップが生じていると判定した場合と、地図とのマッチングによる自己位置の同定から所定の時間が経過した場合または所定の距離だけ走行した場合と、のいずれかに該当した場合に、地図とのマッチングにより自己位置の同定を行う。
【解決手段】移動体10は、自己位置同定手段120、周囲の環境を計測する環境計測手段110、障害物マップ生成手段130、目的地までの移動経路を生成する経路計画手段140、経路を走行するための制御信号を生成する追従制御手段150、制御信号に基づいて駆動する駆動手段160、及び移動体10の加速度を計測する加速度計測手段190を備える。自己位置同定手段120は、障害物マップに記録された障害物の位置を通過した場合と、加速度が閾値を超えた場合と、経路の曲率が閾値以上の箇所を通過した場合と、制御信号と駆動手段の駆動状態との比較によりスリップが生じていると判定した場合と、地図とのマッチングによる自己位置の同定から所定の時間が経過した場合または所定の距離だけ走行した場合と、のいずれかに該当した場合に、地図とのマッチングにより自己位置の同定を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動体に関する。
【背景技術】
【0002】
近年、所定の経路を移動する自律型の移動体が供されている。このような移動体は、経路上における自己位置を同定しながら走行する。
【0003】
移動体の自己位置推定は、駆動輪径及び駆動輪の回転数に基づいて自己位置を推定するによる方法(オドメトリ)と、地図とのマッチングにより自己位置を同定する方法を組み合わせることにより、自己位置を同定する方法が知られている。
【0004】
オドメトリによる自己位置推定では、駆動輪の回転数の積算により、ある地点からの移動距離を算出することで、自己位置を推定する。したがって、オドメトリによる自己位置推定では、駆動輪のスリップにより誤差が生じる場合がある。また、移動体が長距離走行する場合に誤差が積算する。
【0005】
地図とのマッチングによる自己位置同定方法では、外界センサを用いて周囲の環境を測定し、事前に保持してある地図とマッチングすることで、自己位置を同定する。これにより、地図とのマッチングによる自己位置推定方法では、移動体の絶対位置を同定することができるが、演算のコストが高いという特徴がある。
【0006】
したがって、移動体において、オドメトリによる自己位置推定を高頻度で実行し、地図とのマッチングによる自己位置同定を低頻度で実行することが行われている。これにより、移動体は、オドメトリによる自己位置推定で生じる誤差を、地図とのマッチングによって修正しながら、自己位置を同定する。
これにより、移動体は、地図とのマッチングによる自己位置同定のみを用いる場合に比べ、演算コストを低減することができる。
【0007】
特許文献1には、自己位置の同定に必要なランドマーク情報の処理コストを低減し、環境の変化に対しても柔軟に対応可能な移動体について記載されている。
【0008】
特許文献2には、オドメトリのずれを修正する移動体について記載されている。該移動体は、走行する区間ごとに車両特徴量を記憶しておき、オドメトリによる自己位置推定の際に、区間ごとに設定された車両特徴量と、オドメトリによる情報とに基づいて自己位置を推測する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−165275号公報
【特許文献2】特開2006−252350号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
オドメトリによる自己位置推定では、誤差が生じるタイミングは不明である。したがって、移動体は、地図とのマッチングによる自己位置同定を一定周期ごとに行うことで、オドメトリにより生じる誤差を修正していた。しかしながら、地図とのマッチングによる自己位置同定は、オドメトリにより生じる誤差の修正が不要な場合であっても行われるため、演算コストが高くなり、他のタスクに制約を生じる場合があった。
本発明は、このような問題点を解決するためになされたものであり、演算コストを低減して自己位置同定を行うことを目的とする。
【課題を解決するための手段】
【0011】
本発明にかかる移動体は、オドメトリによる自己位置の推定と、地図とのマッチングにより自己位置の同定と、を行い、自律移動する移動体であって、自己位置同定手段と、周囲の環境を計測する環境計測手段と、前記環境計測手段により計測された情報と、前記自己位置同定手段で求めた位置情報とに基づいて、障害物の位置が記録されている障害物マップを生成する障害物マップ生成手段と、前記障害物マップ生成手段が生成した障害物マップ上に、目的地までの移動経路を生成する経路計画手段と、前記経路計画手段が計画した経路を走行するための制御信号を生成する追従制御手段と、前記追従制御手段が生成した制御信号に基づいて駆動輪を駆動させる駆動手段と、前記移動体の加速度を計測する加速度計測手段と、を備え、前記自己位置同定手段は、前記障害物マップに記録された障害物の位置を通過した場合と、前記加速度計測手段により求めた加速度があらかじめ定めた閾値を超えた場合と、前記経路計画手段により生成された経路のうち曲率が閾値以上の箇所を通過した場合と、前記追従制御手段の制御信号と前記駆動手段の駆動状態との比較によりスリップが生じていると判定した場合と、地図とのマッチングによる自己位置の同定から所定の時間が経過した場合と、地図とのマッチングによる自己位置の同定から所定の距離だけ走行した場合と、のいずれか一つの場合に、地図とのマッチングにより自己位置の同定を行う。
これにより、移動体は、オドメトリのずれやすい場所を通過した場合に、地図とのマッチングによる自己位置の同定を行うことができる。
【発明の効果】
【0012】
演算コストを低減して自己位置同定を行うことができる。
【図面の簡単な説明】
【0013】
【図1】実施の形態1にかかる移動体のブロック図である。
【図2】実施の形態1にかかる障害物マップである。
【図3】実施の形態1にかかる障害物の図である。
【図4】実施の形態1にかかる処理のフローチャートである。
【図5】実施の形態1にかかる加速度が閾値以上となる場合の図である。
【図6】実施の形態1にかかる加速判定後の地図とのマッチング開始タイミングを示す図である。
【発明を実施するための形態】
【0014】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1は、移動体10のブロック図である。
【0015】
移動体10は、環境計測手段110と、自己位置同定手段120と、障害物マップ生成手段130と、経路計画手段140と、追従制御手段150と、駆動手段160と、マップ記憶部180と、加速度計測手段190と、駆動輪170を備える。
移動体10は、自律移動を行うロボットである。以下では、移動体10をロボットと呼ぶこともある。
【0016】
環境計測手段110は、移動体10の周囲の環境を連続的に計測する。環境計測手段110は、距離センサであり、例えばレーザ距離計や、ステレオカメラである。環境計測手段110は、周囲の物体からの距離を、距離データとして取得する。
環境計測手段110は、取得した距離データを、自己位置同定手段120と、障害物マップ生成手段130に出力する。例えば、環境計測手段110は、自己位置を同定するために必要な周囲の物体からの距離を自己位置同定手段120に出力し、マップ記憶部180に記憶された地図に記載されていない障害物までの距離を障害物マップ生成手段130に出力する。
【0017】
自己位置同定手段120は、オドメトリによる自己位置の推定や、地図とのマッチングによる自己位置の同定を行う。自己位置同定手段120は、演算部121と、記憶部122と、を備える。
自己位置同定手段120は、マップ記憶部180からマップ情報が供給され、環境計測手段110から距離データが供給され、経路計画手段140から経路データが供給され、駆動手段160からエンコーダ値が供給され、加速度計測手段190からロボット加速度が供給される。自己位置同定手段120は、供給されたデータ及び値に基づいて、オドメトリによる自己位置の推定を行うか、地図とのマッチングによる自己位置の同定を行うか、のいずれかを選択し、実行する。自己位置同定手段120が、自己位置を求める方法を選択する手順については、後に詳述する。
【0018】
演算部121は、制御プログラムに基づいて処理を実行するCPU(Central Processing Unit)を備える。
オドメトリによる自己位置の推定を行う場合には、演算部121は、記憶部122に記憶されている前回の演算により求めた自己位置と、駆動手段160から供給されたエンコーダ値に基づいて演算を行い、現在の自己位置を推定する。具体的には、演算部121は、移動体10が前回の演算により求めた自己位置から、エンコーダ値に基づく距離だけ移動したものとして演算する。
地図とのマッチングにより自己位置の同定を行う場合には、演算部121は、マップ記憶部180から供給されたマップ情報と、環境計測手段110から供給された距離データと、に基づいて自己位置を同定する。具体的には、演算部121は、環境計測手段110から供給された距離データから、移動体10がマップ上のどの位置に存在しているかの演算を行う。演算部121は、演算により推定した自己位置を、記憶部122と、障害物マップ生成手段130に出力する。
【0019】
記憶部122は、例えばメモリやHDDなどの記憶媒体である。記憶部122は、演算部121から供給された演算結果を、一時的に記憶する。記憶部122は、演算部121がオドメトリによる自己位置の推定を行う場合に、記憶している前回の演算時の自己位置を、演算部121に出力する。
【0020】
障害物マップ生成手段130は、環境計測手段110から供給される障害物の情報と、自己位置同定手段120から供給された自己位置の情報に基づいて、障害物マップを生成する。図2に障害物マップの一例を示す。障害物マップには、地図上における移動体10の場所と、障害物の座標が記録されている。
図3に障害物の一例として、各部屋の入口に設けられた段差を示す。典型的には、障害物は、図3に示した段差のほか、エレベーターの溝や点字ブロックなどがある。
【0021】
また典型的には、障害物マップ生成手段130は、障害物マップとして、グリッドマップおよびトポロジーマップを用いる。
グリッドマップとは、地図上の領域が、一定領域ごとにグリッド単位で区切られているマップである。グリッドマップでは、図2のように、廊下のグリッドと、部屋Aのグリッドと、部屋Bのグリッドと、部屋Cのグリッドと、を区切って設けている。障害物マップ生成手段130は、障害物のあるグリッドには、障害物があることを示すIDを割り振る。
トポロジーマップとは、複数のノードと、当該複数のノードを接続するエッジからなるマップである。ここで、トポロジーマップは、グリッドマップにおける各グリッド間の関係を示す。例えば、部屋Aから部屋Cに向かう場合、部屋Aの入口、廊下、部屋Cの入口、を介している。この場合、部屋A、部屋Aの入口、廊下、部屋Cの入口、部屋Cをそれぞれノードとし、部屋Aと部屋Aの入口、部屋Aの入口と廊下、廊下と部屋Cの入口、部屋Cの入口と部屋C、をそれぞれエッジで接続する。
このようにして、障害物マップ生成手段130は、グリッド間の関係を示すトポロジーマップを生成する。このとき、障害物マップ生成手段130は、移動体10が通過する障害物の箇所をノードとする。
障害物マップ生成手段130は、障害物マップを逐次生成し、生成した障害物マップを経路計画手段140に出力する。また、障害物マップ生成手段130は、グリッドマップのIDの情報や、トポロジーマップのノードの情報を、自己位置同定手段120に出力する。
【0022】
経路計画手段140は、移動体10が移動する移動経路の計画を行う。図2の破線は、経路計画手段140により計画された、移動体10が廊下から部屋Bに移動する経路である。経路計画手段140は、障害物マップ生成手段130で生成された障害物マップの供給を受け、現在地から目的地まで移動する経路を計画する。すなわち、経路計画手段140は、障害物マップ生成手段130が生成したトポロジーマップに基づき、始点のノードから、終点のノードまで移動する経路を計画する。
経路計画手段140は、計画した経路情報を、自己位置同定手段120に出力する。また、経路計画手段140は、追従制御手段150に、経路情報を出力する。
【0023】
追従制御手段150は、移動体10が定められた経路を走行するよう制御する。より具体的には、追従制御手段150は、移動体10が経路計画手段140で計画された経路を追従して走行するように、駆動手段160を制御する制御信号を生成する。追従制御手段150は、生成した制御信号を、駆動手段160に出力する。また、追従制御手段150は、生成した制御信号の制御値を、自己位置同定手段120に出力する。
【0024】
駆動手段160は、追従制御手段150から供給された制御信号に基づいて動作し、駆動輪170を駆動させる。例えば、駆動手段160は、複数のモータであり、移動体10の左右に設けられた駆動輪170を、それぞれ駆動する。
また、駆動手段160は、エンコーダ161を備える。エンコーダ161は、モータの回転数を計測し、計測結果をエンコーダ値として、自己位置同定手段120に出力する。
【0025】
駆動輪170は、移動体10に設けられた複数の車輪である。例えば、駆動輪170は、移動体10の前後および左右において、接地した状態で設けられている。
移動体10の左右に設けられた駆動輪170は、それぞれ駆動手段160と連結しており、駆動手段160からそれぞれ駆動力が与えられる。移動体10の前後に設けられた駆動輪170は、駆動手段160は接続していない補助輪である。移動体10は、駆動手段160から与えられる駆動力が異なる場合に、左右の駆動輪170の回転数が異なることで、旋回動作を行うことができる。
なお、駆動輪170の個数や配置等については、上記に限られない。
【0026】
マップ記憶部180は、移動体10が移動するエリアの、地図情報を記憶している。マップ記憶部180は、自己位置同定手段120に地図情報を出力する。
【0027】
加速度計測手段190は、移動体10が走行する加速度を取得する。典型的には、加速度計測手段190は、加速度計である。加速度計測手段190は、移動体10の前後方向(x軸)、左右方向(y軸)、上下方向(z軸)の3つの軸方向について、加速度を取得する。
加速度計測手段190は、取得した加速度を、自己位置同定手段120に出力する。
【0028】
次に、動作について説明する。図4は、自己位置同定手段120が、オドメトリによる自己位置の推定を行うか、地図とのマッチングにより自己位置の同定を行うかを選択し、自己位置を求めるフローチャートである。
【0029】
自己位置同定手段120は、自己位置の情報を取得する(ST10)。例えば、自己位置同定手段120は、記憶部122に記憶されている、前回の演算で求めた自己位置を取得する。
【0030】
障害物マップを生成する(ST20)。具体的には、環境計測手段110は、自己位置同定手段120と、障害物マップ生成手段130に、距離データおよび障害物の情報を送信する。障害物マップ生成手段130は、環境計測手段110から供給された障害物の情報と、自己位置同定手段120で算出された自己位置の情報に基づいて、障害物マップを生成する。ここで、障害物マップ生成手段130は、障害物がある領域に障害物がある旨のIDを割り振ったグリッドマップと、障害物が存在する箇所をノードとして登録したトポロジーマップを、それぞれ生成する。
【0031】
移動体10の現在位置が、オドメトリがずれやすい位置であるか否かを判定する(ST30)。オドメトリがずれやすい場所とは、障害物がある場所であり、図3に示した部屋の入り口の段差や、エレベーターの溝や、点字ブロックがある場所などである。
より具体的には、自己位置同定手段120は、移動体10の位置が、グリッドマップにおいて障害物があることを示すIDが割り振られたグリッドであるか否かを判定する。また、自己位置同定手段120は、障害物があることを示すIDが割り振られたグリッドに移動体10がある場合には、トポロジーマップにおける障害物を示すノードを通過したか否かを判定する。
移動体10の位置がが、グリッドマップにおいて障害物があることを示すIDが付されたグリッド内では無い場合や、トポロジーマップにおいて障害物を示すノードを通過していない場合には(ST30でNO)、ST40に進む。グリッドマップにおいて障害物があることを示すIDが付されたグリッド内であり、トポロジーマップにおいて、障害物を示すノードを通過した場合には(ST30でYES)、地図とのマッチングによる自己位置の同定を行う(ST200)。
【0032】
自己位置同定手段120は、経路情報を取得する(ST40)。具体的には、経路計画手段140は、障害物マップ生成手段130が生成した障害物マップを用いて、現在地から目標位置までの経路を計画する。経路計画手段140は、自己位置同定手段120に経路の情報を出力する。
【0033】
自己位置同定手段120は、経路上でオドメトリがずれやすい箇所を通過したか否かを判定する(ST50)。ここでオドメトリがずれやすい箇所とは、経路の曲率rが、一定値R以上の箇所である。一定値Rは、ロボットにより異なるため、実験により求めるのが望ましい。
移動体10が、曲率rが一定値R以上となっている箇所を通過していない場合には(ST50でNO)、ST60に進む。移動体10が、オドメトリがずれやすい経路を通過した場合には(ST50でYES)、自己位置同定手段120は地図とのマッチングによる自己位置の同定を開始する(ST200)。
【0034】
次に、加速度計測手段190は、走行する移動体10の加速度を取得する(ST60)。具体的には、加速度計測手段190を用いて、移動体10の振動や慣性を計測する。加速度計測手段190は、計測された加速度を自己位置同定手段120に出力する。
【0035】
自己位置同定手段120は、加速度が閾値を超えているか否かを判定する(ST70)ここで、加速度が閾値以上となる状況とは、図5に示すように、移動体10が、地図に記載のない路面上の段差を通過する場合(図5(A))、凹凸路面などのスリップしやすい環境下を通過する場合(図5(B))や、壁や人などの障害物と接触する場合(図5(C))などである。
より具体的には、加速度計測手段190は、x軸、y軸、z軸の3軸に対する加速度を取得する。自己位置同定手段120は、それぞれ一定値以上の加速度が生じたか否かを判定する。オドメトリのずれと、各軸の加速度との関係や設定すべき閾値は、ロボットにより異なるため、実験により求めるのが望ましい。
加速度が閾値以下であれば(ST70でNO)、ST80に進む。加速度が閾値以上であれば(ST70でYES)、地図とのマッチングによる自己位置の同定を開始する(ST200)。
【0036】
ここで図6は、加速度の変化の検知により、地図とのマッチングを開始するタイミングの例である。すなわち、加速度が一定値以上となったことを検知した後、Δt時間だけ一定値以下の状態が続いた場合に、自己位置同定手段120は、自己位置の同定(ST200)を開始する。これにより、移動体10の振動や揺れが収まり、安定してから自己位置を同定することができる。
【0037】
次に、駆動手段160に設けられたモータの回転数を取得する(ST80)。ここで、駆動手段160は、経路計画手段140で計画された経路を走行するよう、追従制御手段150から与えられた制御指示に基づいて動作している。例えば、追従制御手段150は駆動手段160に、発生させるトルクの指示を出している。
駆動手段160に設けられたエンコーダ161は、モータの回転数を計測し、エンコーダ値として自己位置同定手段120に出力する。
【0038】
自己位置同定手段120は、エンコーダ値から、移動体10がスリップしたか否かを判定する(ST90)。具体的には、自己位置同定手段120は、追従制御手段150が出力した制御値と、モータ回転数にかかるエンコーダ値との間で、一定の偏差以上のずれが生じた場合には、駆動輪170がスリップしたものと判定する。典型的には、この駆動輪170のスリップは、移動体10が、摩擦の低い路面を通過する場合に発生する。
自己位置同定手段120は、駆動輪170がスリップしたと判定した場合には(ST90でYES)、地図とのマッチングによる自己位置の同定を開始する(ST200)。スリップしたと判定されない場合には(ST90でNO)、ST100に進む。
【0039】
次に、前回の地図とのマッチングによる自己位置同定を行った時刻からの処理時間を計測する(ST100)。例えば、自己位置同定手段120は、時刻取得手段を有しており、地図とのマッチングによる自己位置の同定を行った場合に、その時刻を記憶部122に記憶する。さらに、自己位置同定手段120は、現在の時刻を取得し、前回、地図とのマッチングを行った時刻からの経過時間を取得する。
【0040】
次に、自己位置同定手段120は、一定時間が経過したか否かを判定する(ST110)。自己位置同定手段120は、あらかじめ設定した一定時間が経過したと判定した場合には(ST110でYES)、オドメトリのずれによる誤差が蓄積していると考えられるため、地図とのマッチングによる自己位置同定を開始する(ST200)。
一定時間が経過していなければ(ST110でNO)、ST120に進む。
【0041】
自己位置同定手段120は、走行距離を取得する(ST120)。例えば、自己位置同定手段120は、最後に地図とのマッチングにより自己位置同定が行われたときからの走行距離を、駆動手段160から入力されたエンコーダ値に基づいて累積して、記憶部122に記憶する。
【0042】
自己位置同定手段120は、走行距離が一定距離以上となったか否かを判定する(ST130)。自己位置同定手段120は、あらかじめ設定した一定距離を走行したと判定した場合には(ST130でYES)、オドメトリのずれによる誤差が蓄積していると考えられるため、地図とのマッチングによる自己位置同定を開始する(ST200)。走行距離が一定距離に達していなければしていなければ(ST130でNO)、ST140に進む。
【0043】
自己位置同定手段120は、オドメトリにより自己位置の推定を行う(ST140)。例えば、演算部121は、前回の自己位置から駆動手段160から取得したエンコーダ値の分だけ走行したものとして演算を行う。これにより、自己位置同定手段120は、オドメトリにより自己位置を推定して設定する。自己位置を設定したら、ST10に戻り、目標位置に到達するまで処理を繰り返し行う。
【0044】
自己位置同定手段120は、オドメトリによる自己位置がずれやすい箇所を通過した場合には、地図とのマッチングによる自己位置の同定を行う(ST200)。より具体的には、自己位置同定手段120は、環境計測手段110から供給された環境情報と、マップ記憶部180に記憶されている地図に基づいて、自己位置の同定を行う。自己位置を同定したら、ST10に戻り、目標位置に到達するまで処理を繰り返し行う。
【0045】
これにより、移動体10では、オドメトリによる自己位置推定により高頻度で自己位置を推定しつつ、オドメトリがずれやすい箇所を通過した場合に、地図とのマッチングにより自己位置の同定を行うことができる。したがって、オドメトリによる自己位置推定では、センサノイズや車輪の滑りなどの影響で真値からずれていくが、地図とのマッチングにより自己位置の同定を行うことで、ずれを修正することができる。
オドメトリがずれやすい箇所を通過した場合に地図とのマッチングによる自己位置の同定を行うため、高頻度に地図とのマッチングを行う必要が無く、移動体10の演算コストを低減することができる。
【0046】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、上記ではグリッドマップは、廊下及び部屋の単位で1つのグリッドとしたが、それ以外の任意に定めた単位であっても良い。また障害物マップとして、グリッドマップとトポロジーマップの両方を用い、トポロジーマップ中の障害物のノードを通過した場合に地図とのマッチングによる自己位置同定を行うこととしたが、移動体10の位置がグリッドマップで障害物を含むグリッド内であるか否かを判定することにより、地図とのマッチングによる自己位置同定を行うか否かを決定しても良い。また、グリッドマップの情報を用いずに、トポロジーマップ中の障害物のノードの通過のみを判定しても良い。
エンコーダ161は、駆動手段として設けられたモータの回転数を取得するものとしたが、例えば駆動輪170の回転数を取得するものであっても良い。
【符号の説明】
【0047】
10 移動体
110 環境計測手段
120 自己位置同定手段
121 演算部
122 記憶部
130 障害物マップ生成手段
140 経路計画手段
150 追従制御手段
160 駆動手段
161 エンコーダ
170 駆動輪
180 マップ記憶部
190 加速度計測手段
【技術分野】
【0001】
本発明は、移動体に関する。
【背景技術】
【0002】
近年、所定の経路を移動する自律型の移動体が供されている。このような移動体は、経路上における自己位置を同定しながら走行する。
【0003】
移動体の自己位置推定は、駆動輪径及び駆動輪の回転数に基づいて自己位置を推定するによる方法(オドメトリ)と、地図とのマッチングにより自己位置を同定する方法を組み合わせることにより、自己位置を同定する方法が知られている。
【0004】
オドメトリによる自己位置推定では、駆動輪の回転数の積算により、ある地点からの移動距離を算出することで、自己位置を推定する。したがって、オドメトリによる自己位置推定では、駆動輪のスリップにより誤差が生じる場合がある。また、移動体が長距離走行する場合に誤差が積算する。
【0005】
地図とのマッチングによる自己位置同定方法では、外界センサを用いて周囲の環境を測定し、事前に保持してある地図とマッチングすることで、自己位置を同定する。これにより、地図とのマッチングによる自己位置推定方法では、移動体の絶対位置を同定することができるが、演算のコストが高いという特徴がある。
【0006】
したがって、移動体において、オドメトリによる自己位置推定を高頻度で実行し、地図とのマッチングによる自己位置同定を低頻度で実行することが行われている。これにより、移動体は、オドメトリによる自己位置推定で生じる誤差を、地図とのマッチングによって修正しながら、自己位置を同定する。
これにより、移動体は、地図とのマッチングによる自己位置同定のみを用いる場合に比べ、演算コストを低減することができる。
【0007】
特許文献1には、自己位置の同定に必要なランドマーク情報の処理コストを低減し、環境の変化に対しても柔軟に対応可能な移動体について記載されている。
【0008】
特許文献2には、オドメトリのずれを修正する移動体について記載されている。該移動体は、走行する区間ごとに車両特徴量を記憶しておき、オドメトリによる自己位置推定の際に、区間ごとに設定された車両特徴量と、オドメトリによる情報とに基づいて自己位置を推測する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−165275号公報
【特許文献2】特開2006−252350号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
オドメトリによる自己位置推定では、誤差が生じるタイミングは不明である。したがって、移動体は、地図とのマッチングによる自己位置同定を一定周期ごとに行うことで、オドメトリにより生じる誤差を修正していた。しかしながら、地図とのマッチングによる自己位置同定は、オドメトリにより生じる誤差の修正が不要な場合であっても行われるため、演算コストが高くなり、他のタスクに制約を生じる場合があった。
本発明は、このような問題点を解決するためになされたものであり、演算コストを低減して自己位置同定を行うことを目的とする。
【課題を解決するための手段】
【0011】
本発明にかかる移動体は、オドメトリによる自己位置の推定と、地図とのマッチングにより自己位置の同定と、を行い、自律移動する移動体であって、自己位置同定手段と、周囲の環境を計測する環境計測手段と、前記環境計測手段により計測された情報と、前記自己位置同定手段で求めた位置情報とに基づいて、障害物の位置が記録されている障害物マップを生成する障害物マップ生成手段と、前記障害物マップ生成手段が生成した障害物マップ上に、目的地までの移動経路を生成する経路計画手段と、前記経路計画手段が計画した経路を走行するための制御信号を生成する追従制御手段と、前記追従制御手段が生成した制御信号に基づいて駆動輪を駆動させる駆動手段と、前記移動体の加速度を計測する加速度計測手段と、を備え、前記自己位置同定手段は、前記障害物マップに記録された障害物の位置を通過した場合と、前記加速度計測手段により求めた加速度があらかじめ定めた閾値を超えた場合と、前記経路計画手段により生成された経路のうち曲率が閾値以上の箇所を通過した場合と、前記追従制御手段の制御信号と前記駆動手段の駆動状態との比較によりスリップが生じていると判定した場合と、地図とのマッチングによる自己位置の同定から所定の時間が経過した場合と、地図とのマッチングによる自己位置の同定から所定の距離だけ走行した場合と、のいずれか一つの場合に、地図とのマッチングにより自己位置の同定を行う。
これにより、移動体は、オドメトリのずれやすい場所を通過した場合に、地図とのマッチングによる自己位置の同定を行うことができる。
【発明の効果】
【0012】
演算コストを低減して自己位置同定を行うことができる。
【図面の簡単な説明】
【0013】
【図1】実施の形態1にかかる移動体のブロック図である。
【図2】実施の形態1にかかる障害物マップである。
【図3】実施の形態1にかかる障害物の図である。
【図4】実施の形態1にかかる処理のフローチャートである。
【図5】実施の形態1にかかる加速度が閾値以上となる場合の図である。
【図6】実施の形態1にかかる加速判定後の地図とのマッチング開始タイミングを示す図である。
【発明を実施するための形態】
【0014】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1は、移動体10のブロック図である。
【0015】
移動体10は、環境計測手段110と、自己位置同定手段120と、障害物マップ生成手段130と、経路計画手段140と、追従制御手段150と、駆動手段160と、マップ記憶部180と、加速度計測手段190と、駆動輪170を備える。
移動体10は、自律移動を行うロボットである。以下では、移動体10をロボットと呼ぶこともある。
【0016】
環境計測手段110は、移動体10の周囲の環境を連続的に計測する。環境計測手段110は、距離センサであり、例えばレーザ距離計や、ステレオカメラである。環境計測手段110は、周囲の物体からの距離を、距離データとして取得する。
環境計測手段110は、取得した距離データを、自己位置同定手段120と、障害物マップ生成手段130に出力する。例えば、環境計測手段110は、自己位置を同定するために必要な周囲の物体からの距離を自己位置同定手段120に出力し、マップ記憶部180に記憶された地図に記載されていない障害物までの距離を障害物マップ生成手段130に出力する。
【0017】
自己位置同定手段120は、オドメトリによる自己位置の推定や、地図とのマッチングによる自己位置の同定を行う。自己位置同定手段120は、演算部121と、記憶部122と、を備える。
自己位置同定手段120は、マップ記憶部180からマップ情報が供給され、環境計測手段110から距離データが供給され、経路計画手段140から経路データが供給され、駆動手段160からエンコーダ値が供給され、加速度計測手段190からロボット加速度が供給される。自己位置同定手段120は、供給されたデータ及び値に基づいて、オドメトリによる自己位置の推定を行うか、地図とのマッチングによる自己位置の同定を行うか、のいずれかを選択し、実行する。自己位置同定手段120が、自己位置を求める方法を選択する手順については、後に詳述する。
【0018】
演算部121は、制御プログラムに基づいて処理を実行するCPU(Central Processing Unit)を備える。
オドメトリによる自己位置の推定を行う場合には、演算部121は、記憶部122に記憶されている前回の演算により求めた自己位置と、駆動手段160から供給されたエンコーダ値に基づいて演算を行い、現在の自己位置を推定する。具体的には、演算部121は、移動体10が前回の演算により求めた自己位置から、エンコーダ値に基づく距離だけ移動したものとして演算する。
地図とのマッチングにより自己位置の同定を行う場合には、演算部121は、マップ記憶部180から供給されたマップ情報と、環境計測手段110から供給された距離データと、に基づいて自己位置を同定する。具体的には、演算部121は、環境計測手段110から供給された距離データから、移動体10がマップ上のどの位置に存在しているかの演算を行う。演算部121は、演算により推定した自己位置を、記憶部122と、障害物マップ生成手段130に出力する。
【0019】
記憶部122は、例えばメモリやHDDなどの記憶媒体である。記憶部122は、演算部121から供給された演算結果を、一時的に記憶する。記憶部122は、演算部121がオドメトリによる自己位置の推定を行う場合に、記憶している前回の演算時の自己位置を、演算部121に出力する。
【0020】
障害物マップ生成手段130は、環境計測手段110から供給される障害物の情報と、自己位置同定手段120から供給された自己位置の情報に基づいて、障害物マップを生成する。図2に障害物マップの一例を示す。障害物マップには、地図上における移動体10の場所と、障害物の座標が記録されている。
図3に障害物の一例として、各部屋の入口に設けられた段差を示す。典型的には、障害物は、図3に示した段差のほか、エレベーターの溝や点字ブロックなどがある。
【0021】
また典型的には、障害物マップ生成手段130は、障害物マップとして、グリッドマップおよびトポロジーマップを用いる。
グリッドマップとは、地図上の領域が、一定領域ごとにグリッド単位で区切られているマップである。グリッドマップでは、図2のように、廊下のグリッドと、部屋Aのグリッドと、部屋Bのグリッドと、部屋Cのグリッドと、を区切って設けている。障害物マップ生成手段130は、障害物のあるグリッドには、障害物があることを示すIDを割り振る。
トポロジーマップとは、複数のノードと、当該複数のノードを接続するエッジからなるマップである。ここで、トポロジーマップは、グリッドマップにおける各グリッド間の関係を示す。例えば、部屋Aから部屋Cに向かう場合、部屋Aの入口、廊下、部屋Cの入口、を介している。この場合、部屋A、部屋Aの入口、廊下、部屋Cの入口、部屋Cをそれぞれノードとし、部屋Aと部屋Aの入口、部屋Aの入口と廊下、廊下と部屋Cの入口、部屋Cの入口と部屋C、をそれぞれエッジで接続する。
このようにして、障害物マップ生成手段130は、グリッド間の関係を示すトポロジーマップを生成する。このとき、障害物マップ生成手段130は、移動体10が通過する障害物の箇所をノードとする。
障害物マップ生成手段130は、障害物マップを逐次生成し、生成した障害物マップを経路計画手段140に出力する。また、障害物マップ生成手段130は、グリッドマップのIDの情報や、トポロジーマップのノードの情報を、自己位置同定手段120に出力する。
【0022】
経路計画手段140は、移動体10が移動する移動経路の計画を行う。図2の破線は、経路計画手段140により計画された、移動体10が廊下から部屋Bに移動する経路である。経路計画手段140は、障害物マップ生成手段130で生成された障害物マップの供給を受け、現在地から目的地まで移動する経路を計画する。すなわち、経路計画手段140は、障害物マップ生成手段130が生成したトポロジーマップに基づき、始点のノードから、終点のノードまで移動する経路を計画する。
経路計画手段140は、計画した経路情報を、自己位置同定手段120に出力する。また、経路計画手段140は、追従制御手段150に、経路情報を出力する。
【0023】
追従制御手段150は、移動体10が定められた経路を走行するよう制御する。より具体的には、追従制御手段150は、移動体10が経路計画手段140で計画された経路を追従して走行するように、駆動手段160を制御する制御信号を生成する。追従制御手段150は、生成した制御信号を、駆動手段160に出力する。また、追従制御手段150は、生成した制御信号の制御値を、自己位置同定手段120に出力する。
【0024】
駆動手段160は、追従制御手段150から供給された制御信号に基づいて動作し、駆動輪170を駆動させる。例えば、駆動手段160は、複数のモータであり、移動体10の左右に設けられた駆動輪170を、それぞれ駆動する。
また、駆動手段160は、エンコーダ161を備える。エンコーダ161は、モータの回転数を計測し、計測結果をエンコーダ値として、自己位置同定手段120に出力する。
【0025】
駆動輪170は、移動体10に設けられた複数の車輪である。例えば、駆動輪170は、移動体10の前後および左右において、接地した状態で設けられている。
移動体10の左右に設けられた駆動輪170は、それぞれ駆動手段160と連結しており、駆動手段160からそれぞれ駆動力が与えられる。移動体10の前後に設けられた駆動輪170は、駆動手段160は接続していない補助輪である。移動体10は、駆動手段160から与えられる駆動力が異なる場合に、左右の駆動輪170の回転数が異なることで、旋回動作を行うことができる。
なお、駆動輪170の個数や配置等については、上記に限られない。
【0026】
マップ記憶部180は、移動体10が移動するエリアの、地図情報を記憶している。マップ記憶部180は、自己位置同定手段120に地図情報を出力する。
【0027】
加速度計測手段190は、移動体10が走行する加速度を取得する。典型的には、加速度計測手段190は、加速度計である。加速度計測手段190は、移動体10の前後方向(x軸)、左右方向(y軸)、上下方向(z軸)の3つの軸方向について、加速度を取得する。
加速度計測手段190は、取得した加速度を、自己位置同定手段120に出力する。
【0028】
次に、動作について説明する。図4は、自己位置同定手段120が、オドメトリによる自己位置の推定を行うか、地図とのマッチングにより自己位置の同定を行うかを選択し、自己位置を求めるフローチャートである。
【0029】
自己位置同定手段120は、自己位置の情報を取得する(ST10)。例えば、自己位置同定手段120は、記憶部122に記憶されている、前回の演算で求めた自己位置を取得する。
【0030】
障害物マップを生成する(ST20)。具体的には、環境計測手段110は、自己位置同定手段120と、障害物マップ生成手段130に、距離データおよび障害物の情報を送信する。障害物マップ生成手段130は、環境計測手段110から供給された障害物の情報と、自己位置同定手段120で算出された自己位置の情報に基づいて、障害物マップを生成する。ここで、障害物マップ生成手段130は、障害物がある領域に障害物がある旨のIDを割り振ったグリッドマップと、障害物が存在する箇所をノードとして登録したトポロジーマップを、それぞれ生成する。
【0031】
移動体10の現在位置が、オドメトリがずれやすい位置であるか否かを判定する(ST30)。オドメトリがずれやすい場所とは、障害物がある場所であり、図3に示した部屋の入り口の段差や、エレベーターの溝や、点字ブロックがある場所などである。
より具体的には、自己位置同定手段120は、移動体10の位置が、グリッドマップにおいて障害物があることを示すIDが割り振られたグリッドであるか否かを判定する。また、自己位置同定手段120は、障害物があることを示すIDが割り振られたグリッドに移動体10がある場合には、トポロジーマップにおける障害物を示すノードを通過したか否かを判定する。
移動体10の位置がが、グリッドマップにおいて障害物があることを示すIDが付されたグリッド内では無い場合や、トポロジーマップにおいて障害物を示すノードを通過していない場合には(ST30でNO)、ST40に進む。グリッドマップにおいて障害物があることを示すIDが付されたグリッド内であり、トポロジーマップにおいて、障害物を示すノードを通過した場合には(ST30でYES)、地図とのマッチングによる自己位置の同定を行う(ST200)。
【0032】
自己位置同定手段120は、経路情報を取得する(ST40)。具体的には、経路計画手段140は、障害物マップ生成手段130が生成した障害物マップを用いて、現在地から目標位置までの経路を計画する。経路計画手段140は、自己位置同定手段120に経路の情報を出力する。
【0033】
自己位置同定手段120は、経路上でオドメトリがずれやすい箇所を通過したか否かを判定する(ST50)。ここでオドメトリがずれやすい箇所とは、経路の曲率rが、一定値R以上の箇所である。一定値Rは、ロボットにより異なるため、実験により求めるのが望ましい。
移動体10が、曲率rが一定値R以上となっている箇所を通過していない場合には(ST50でNO)、ST60に進む。移動体10が、オドメトリがずれやすい経路を通過した場合には(ST50でYES)、自己位置同定手段120は地図とのマッチングによる自己位置の同定を開始する(ST200)。
【0034】
次に、加速度計測手段190は、走行する移動体10の加速度を取得する(ST60)。具体的には、加速度計測手段190を用いて、移動体10の振動や慣性を計測する。加速度計測手段190は、計測された加速度を自己位置同定手段120に出力する。
【0035】
自己位置同定手段120は、加速度が閾値を超えているか否かを判定する(ST70)ここで、加速度が閾値以上となる状況とは、図5に示すように、移動体10が、地図に記載のない路面上の段差を通過する場合(図5(A))、凹凸路面などのスリップしやすい環境下を通過する場合(図5(B))や、壁や人などの障害物と接触する場合(図5(C))などである。
より具体的には、加速度計測手段190は、x軸、y軸、z軸の3軸に対する加速度を取得する。自己位置同定手段120は、それぞれ一定値以上の加速度が生じたか否かを判定する。オドメトリのずれと、各軸の加速度との関係や設定すべき閾値は、ロボットにより異なるため、実験により求めるのが望ましい。
加速度が閾値以下であれば(ST70でNO)、ST80に進む。加速度が閾値以上であれば(ST70でYES)、地図とのマッチングによる自己位置の同定を開始する(ST200)。
【0036】
ここで図6は、加速度の変化の検知により、地図とのマッチングを開始するタイミングの例である。すなわち、加速度が一定値以上となったことを検知した後、Δt時間だけ一定値以下の状態が続いた場合に、自己位置同定手段120は、自己位置の同定(ST200)を開始する。これにより、移動体10の振動や揺れが収まり、安定してから自己位置を同定することができる。
【0037】
次に、駆動手段160に設けられたモータの回転数を取得する(ST80)。ここで、駆動手段160は、経路計画手段140で計画された経路を走行するよう、追従制御手段150から与えられた制御指示に基づいて動作している。例えば、追従制御手段150は駆動手段160に、発生させるトルクの指示を出している。
駆動手段160に設けられたエンコーダ161は、モータの回転数を計測し、エンコーダ値として自己位置同定手段120に出力する。
【0038】
自己位置同定手段120は、エンコーダ値から、移動体10がスリップしたか否かを判定する(ST90)。具体的には、自己位置同定手段120は、追従制御手段150が出力した制御値と、モータ回転数にかかるエンコーダ値との間で、一定の偏差以上のずれが生じた場合には、駆動輪170がスリップしたものと判定する。典型的には、この駆動輪170のスリップは、移動体10が、摩擦の低い路面を通過する場合に発生する。
自己位置同定手段120は、駆動輪170がスリップしたと判定した場合には(ST90でYES)、地図とのマッチングによる自己位置の同定を開始する(ST200)。スリップしたと判定されない場合には(ST90でNO)、ST100に進む。
【0039】
次に、前回の地図とのマッチングによる自己位置同定を行った時刻からの処理時間を計測する(ST100)。例えば、自己位置同定手段120は、時刻取得手段を有しており、地図とのマッチングによる自己位置の同定を行った場合に、その時刻を記憶部122に記憶する。さらに、自己位置同定手段120は、現在の時刻を取得し、前回、地図とのマッチングを行った時刻からの経過時間を取得する。
【0040】
次に、自己位置同定手段120は、一定時間が経過したか否かを判定する(ST110)。自己位置同定手段120は、あらかじめ設定した一定時間が経過したと判定した場合には(ST110でYES)、オドメトリのずれによる誤差が蓄積していると考えられるため、地図とのマッチングによる自己位置同定を開始する(ST200)。
一定時間が経過していなければ(ST110でNO)、ST120に進む。
【0041】
自己位置同定手段120は、走行距離を取得する(ST120)。例えば、自己位置同定手段120は、最後に地図とのマッチングにより自己位置同定が行われたときからの走行距離を、駆動手段160から入力されたエンコーダ値に基づいて累積して、記憶部122に記憶する。
【0042】
自己位置同定手段120は、走行距離が一定距離以上となったか否かを判定する(ST130)。自己位置同定手段120は、あらかじめ設定した一定距離を走行したと判定した場合には(ST130でYES)、オドメトリのずれによる誤差が蓄積していると考えられるため、地図とのマッチングによる自己位置同定を開始する(ST200)。走行距離が一定距離に達していなければしていなければ(ST130でNO)、ST140に進む。
【0043】
自己位置同定手段120は、オドメトリにより自己位置の推定を行う(ST140)。例えば、演算部121は、前回の自己位置から駆動手段160から取得したエンコーダ値の分だけ走行したものとして演算を行う。これにより、自己位置同定手段120は、オドメトリにより自己位置を推定して設定する。自己位置を設定したら、ST10に戻り、目標位置に到達するまで処理を繰り返し行う。
【0044】
自己位置同定手段120は、オドメトリによる自己位置がずれやすい箇所を通過した場合には、地図とのマッチングによる自己位置の同定を行う(ST200)。より具体的には、自己位置同定手段120は、環境計測手段110から供給された環境情報と、マップ記憶部180に記憶されている地図に基づいて、自己位置の同定を行う。自己位置を同定したら、ST10に戻り、目標位置に到達するまで処理を繰り返し行う。
【0045】
これにより、移動体10では、オドメトリによる自己位置推定により高頻度で自己位置を推定しつつ、オドメトリがずれやすい箇所を通過した場合に、地図とのマッチングにより自己位置の同定を行うことができる。したがって、オドメトリによる自己位置推定では、センサノイズや車輪の滑りなどの影響で真値からずれていくが、地図とのマッチングにより自己位置の同定を行うことで、ずれを修正することができる。
オドメトリがずれやすい箇所を通過した場合に地図とのマッチングによる自己位置の同定を行うため、高頻度に地図とのマッチングを行う必要が無く、移動体10の演算コストを低減することができる。
【0046】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、上記ではグリッドマップは、廊下及び部屋の単位で1つのグリッドとしたが、それ以外の任意に定めた単位であっても良い。また障害物マップとして、グリッドマップとトポロジーマップの両方を用い、トポロジーマップ中の障害物のノードを通過した場合に地図とのマッチングによる自己位置同定を行うこととしたが、移動体10の位置がグリッドマップで障害物を含むグリッド内であるか否かを判定することにより、地図とのマッチングによる自己位置同定を行うか否かを決定しても良い。また、グリッドマップの情報を用いずに、トポロジーマップ中の障害物のノードの通過のみを判定しても良い。
エンコーダ161は、駆動手段として設けられたモータの回転数を取得するものとしたが、例えば駆動輪170の回転数を取得するものであっても良い。
【符号の説明】
【0047】
10 移動体
110 環境計測手段
120 自己位置同定手段
121 演算部
122 記憶部
130 障害物マップ生成手段
140 経路計画手段
150 追従制御手段
160 駆動手段
161 エンコーダ
170 駆動輪
180 マップ記憶部
190 加速度計測手段
【特許請求の範囲】
【請求項1】
オドメトリによる自己位置の推定と、地図とのマッチングにより自己位置の同定と、を行い、自律移動する移動体であって、
自己位置同定手段と、
周囲の環境を計測する環境計測手段と、
前記環境計測手段により計測された情報と、前記自己位置同定手段で求めた位置情報とに基づいて、障害物の位置が記録されている障害物マップを生成する障害物マップ生成手段と、
前記障害物マップ生成手段が生成した障害物マップ上に、目的地までの移動経路を生成する経路計画手段と、
前記経路計画手段が計画した経路を走行するための制御信号を生成する追従制御手段と、
前記追従制御手段が生成した制御信号に基づいて駆動輪を駆動させる駆動手段と、
前記移動体の加速度を計測する加速度計測手段と、を備え、
前記自己位置同定手段は、前記障害物マップに記録された障害物の位置を通過した場合と、前記加速度計測手段により求めた加速度があらかじめ定めた閾値を超えた場合と、前記経路計画手段により生成された経路のうち曲率が閾値以上の箇所を通過した場合と、前記追従制御手段の制御信号と前記駆動手段の駆動状態との比較によりスリップが生じていると判定した場合と、地図とのマッチングによる自己位置の同定から所定の時間が経過した場合と、地図とのマッチングによる自己位置の同定から所定の距離だけ走行した場合と、のいずれかに該当した場合に、地図とのマッチングにより自己位置の同定を行う、移動体。
【請求項1】
オドメトリによる自己位置の推定と、地図とのマッチングにより自己位置の同定と、を行い、自律移動する移動体であって、
自己位置同定手段と、
周囲の環境を計測する環境計測手段と、
前記環境計測手段により計測された情報と、前記自己位置同定手段で求めた位置情報とに基づいて、障害物の位置が記録されている障害物マップを生成する障害物マップ生成手段と、
前記障害物マップ生成手段が生成した障害物マップ上に、目的地までの移動経路を生成する経路計画手段と、
前記経路計画手段が計画した経路を走行するための制御信号を生成する追従制御手段と、
前記追従制御手段が生成した制御信号に基づいて駆動輪を駆動させる駆動手段と、
前記移動体の加速度を計測する加速度計測手段と、を備え、
前記自己位置同定手段は、前記障害物マップに記録された障害物の位置を通過した場合と、前記加速度計測手段により求めた加速度があらかじめ定めた閾値を超えた場合と、前記経路計画手段により生成された経路のうち曲率が閾値以上の箇所を通過した場合と、前記追従制御手段の制御信号と前記駆動手段の駆動状態との比較によりスリップが生じていると判定した場合と、地図とのマッチングによる自己位置の同定から所定の時間が経過した場合と、地図とのマッチングによる自己位置の同定から所定の距離だけ走行した場合と、のいずれかに該当した場合に、地図とのマッチングにより自己位置の同定を行う、移動体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図2】
【図3】
【図4】
【図5】
【図6】
【公開番号】特開2012−128781(P2012−128781A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2010−281617(P2010−281617)
【出願日】平成22年12月17日(2010.12.17)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願日】平成22年12月17日(2010.12.17)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]