(57)【特許請求の範囲】
【請求項１】
自己位置推定を行う移動ロボットであって、
あらかじめ作成された事前地図を記憶する記憶部と、
前記ロボットから対象物体までの距離について、上下方向に複数の点で計測して３Ｄ点群データを取得するセンサと、
前記センサで取得された３Ｄ点群データのうち、自己位置推定に不必要な物体に対するデータを除去し、データの除去が行われた前記３Ｄ点群データに基づいて床面に略垂直な縦面を抽出して２Ｄに投影した２Ｄグリッドマップを生成し、前記記憶部に記憶された事前地図と前記２Ｄグリッドマップとのマッチングを行うことにより、自己位置推定の演算を行う演算部と、を備え、
前記演算部は、
前記３Ｄ点群データから２Ｄグリッドマップを生成する際に、前記センサにより取得された３Ｄ点群データを奥行き方向に平滑化して、奥行き方向の大きさ順に並べ替えることにより縦線候補を設定し、あらかじめ定められた奥行き方向に行くに従って小さくなる閾値以上で連続する前記縦線候補の点を縦線としてクラスタリングし、前記クラスタリングした縦線の奥行き方向の値の平均値を２Ｄグリッドマップに投影して当該グリッドマップを生成する、
移動ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己位置の推定を行う自律移動式の移動ロボットに関する。
【背景技術】
【０００２】
近年、事前に走行環境の情報を有することで、障害物との接触を避けながら自走するロボットが開発されている。
【０００３】
例えば、３Ｄ空間中においてあらゆる姿勢をとるヒューマノイド型のロボットが開発されている。このようなヒューマノイド型のロボットでは、３Ｄ点群データから位置（ｘ,ｙ,ｚ）及び姿勢（roll,pitch,yaw）の自己位置を求める必要がある。
【０００４】
しかしながら、２Ｄ移動（位置(ｘ,ｙ)と姿勢(yaw)）で十分に表現できる移動台車等の場合、３Ｄ点群データをそのまま利用するのは冗長である。そのため、２Ｄ自己位置推定を行う場合に用いるマップは、２Ｄマップで十分である。
【０００５】
特許文献１には、３Ｄ点群中の床面に垂直な平面である縦壁を検出し、ある高さにおける切り口で表現される形状を２Ｄマップへ投影することにより、自己位置推定を行う手法について記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−００８３２０号公報
【非特許文献】
【０００７】
【非特許文献１】Sebastion Thrun "Probabilistic Robotics" Communications of the ACM - Robots: intelligence, versatility, adaptivity, Volume 45 Issue 3, March 2002
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ある高さのみをレーザー照射して自己位置推定する場合、その高さに偶然、障害物が存在している場合がある。また、３Ｄ点群から自己位置推定用２Ｄマップを生成する方法において、マップとセンサデータの乖離が大きいと自己位置推定の誤差が発生し、マップにない動的障害物等をセンサデータから取り除くのが難しい場合がある。また、平面検出等の処理が必要であり、３Ｄ点群から自己位置推定に有効なデータ抽出の処理コストが高くなる場合がある。
特許文献１に示した方法では、動的障害物を認識しておらず、さらに静的障害物は低い位置に現れることを前提としているため、障害物を除去しきれず、自己位置推定の精度が低下する可能性がある。
【課題を解決するための手段】
【０００９】
本発明にかかる移動ロボットは、自己位置推定を行う移動ロボットであって、あらかじめ作成された事前地図を記憶する記憶部と、前記ロボットから対象物体までの距離について、少なくとも上下方向に複数の点で計測して３Ｄ点群データを取得するセンサと、前記センサで取得された３Ｄ点群データのうち、自己位置推定に不必要な物体に対するデータを除去し、データの除去が行われた前記３Ｄ点群データに基づいて床面に略垂直な縦面を抽出して２Ｄに投影した２Ｄグリッドマップを生成し、前記記憶部に記憶された事前地図と前記２Ｄグリッドマップとのマッチングを行うことにより、自己位置推定の演算を行う演算部と、を備える。
これにより、取得された対象物体からの距離情報に基づいて、自己位置推定を行うことができる。
【発明の効果】
【００１０】
自己位置推定の精度を向上させ、ロバスト性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるロボットの構成を示す図である。
【図２】実施の形態１にかかるレーザレンジファインダの上下方向の揺動を表す図である。
【図３】実施の形態１にかかるレーザレンジファインダの左右方向の揺動を表す図である。
【図４】実施の形態１にかかるロボットによる自己位置推定のフローチャートである。
【図５】実施の形態１にかかるロボットと対象物体を表す図である。
【図６】実施の形態１にかかるロボットと床面及び天井の関係を示す図である。
【図７】実施の形態１にかかるロボットによる自己位置推定の詳細なフローチャートである。
【図８】実施の形態１にかかるロボットによる横から見た１ラインの測定状態を示す図である。
【図９】実施の形態１にかかるロボットによる上方向から見た測定状態を示す図である。
【図１０】実施の形態１にかかる計測点データを並べ替えた状態を示す図である。
【図１１】実施の形態１にかかる作成された２Ｄグリッドマップを示す図である。
【図１２】実施の形態１にかかるロボットの測定領域に障害物がある場合を示す図である。
【発明を実施するための形態】
【００１２】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。図１は、ロボット１０の構成を示した図である。
【００１３】
ロボット１０は、レーザレンジファインダ１１と、制御部１２と、演算部１３と、駆動部１４と、車輪１５と、記憶部１６と、を備える。
【００１４】
レーザレンジファインダ１１は、ロボット１０の前方の物体までの距離を測定する。レーザレンジファインダ１１は、ロボット１０に揺動可能な状態で設けられており、揺動することによって、上下方向及び左右方向において、一定の角度以内での距離測定が可能である。ここで、上下方向とは床面に対して垂直方向であり、左右方向とは上下方向と直交し、床面に対して平行な方向とする。図２は、ロボット１０の側面図であり、レーザレンジファインダ１１の上下方向の揺動を示している。図３は、ロボット１０の立面図であり、レーザレンジファインダ１１の左右方向の揺動を示している。図２及び図３において、レーザレンジファインダ１１による測定が可能な範囲を点線で示す。これによりレーザレンジファインダ１１は、自己位置推定のために必要な、環境中に存在する対象物体までの距離を測定する。ここで対象物体とは、床面に対して略垂直に設けられた縦面であり、壁や円柱の柱などである。
【００１５】
制御部１２は、ロボット１０の動作を制御する。例えば制御部１２は、駆動部１４に駆動指令を与えることによって、車輪１５の動作を制御する。また制御部１２は、レーザレンジファインダ１１の揺動を制御する。
【００１６】
演算部１３は、自己位置推定のための演算処理を行う。例えば演算部１３は、レーザレンジファインダ１１により取得された距離情報から、床面、天井のデータの除去や、動的障害物、地図にない静的障害物を認識し、除去の演算を行う。言い換えると、演算部１３は、自己位置推定に不必要な物体に対する距離情報の除去を行う。また演算部１３は、レーザレンジファインダ１１により取得された距離情報に基づいて、１ラインごとの計測点に基づいて、面を構成する縦線を検出する演算を行う。さらに演算部１３は、検出した縦線に基づいて演算を行うことで、２Ｄグリッドマップを生成する。
【００１７】
駆動部１４は、例えばロボット１０に設けられたモータである。駆動部１４は、制御部１２から受信した駆動指令に基づいて動作し、車輪１５を駆動させる。
【００１８】
車輪１５は、ロボット１０の下部に複数個設けられている。車輪１５は、駆動部１４からの動力を受けて回転することで、ロボット１０を移動させる。
【００１９】
記憶部１６は、地図情報をあらかじめ記憶する。例えば記憶部１６は、ＲＯＭ、ＲＡＭ、ハードディスク等の内部又は外部記憶手段である。また記憶部１６は、ロボット１０から遠隔に設けられた記憶手段であって、通信網を介してロボット１０が情報を取得するものとしても良い。ここで地図情報とは、レーザレンジファインダ１１を用いて得られる環境の３Ｄ点群から、床面に垂直な縦面を抽出し、２Ｄマップへ投影した２Ｄグリッドマップを、複数の視点から作成したものを統合したものとする。すなわち地図情報は、以下に示すロボット１０の自己位置推定用マップ生成の動作における、ステップＳ１１〜ステップＳ１５の処理を、事前に複数の位置から行い、得られた複数の２Ｄグリッドマップを統合したものである。
【００２０】
次に、ロボット１０による自己位置推定用マップ生成の動作について説明する。図４は、ロボット１０による自己位置推定用マップ生成のフローチャートである。図５に示すような、Ａ面からＤ面を有する測定対象に対して、距離測定を行うものとする。図５において各面上に記載されている実線及び点線の縦線は１つのラインを表し、点線の横線は、ラインの計測を行うスキャン方向を示している。図５において、Ｘ軸方向が奥行き、Ｙ軸方向が左右方向、Ｚ軸方向が上下方向である。
【００２１】
レーザレンジファインダ１１は、３Ｄ点群のデータを計測する（ステップＳ１１）。すなわちレーザレンジファインダ１１は、制御部１２の制御信号に基づいて走査を行い、ロボット１０から対象物体までの３次元距離情報を取得する。このときレーザレンジファインダ１１は、床面に対して上下方向及び左右方向に揺動することで、複数点で３Ｄ点群のデータを取得する。
【００２２】
演算部１３は、床面及び天井データの除去を行う（ステップＳ１２）。すなわち演算部１３は、ロボット１０の自己位置推定に不必要な横面データのうち、床面及び天井を除去しておく。床面及び天井データの除去は、レーザレンジファインダ１１の接地位置、天井高さから幾何学的に床面及び天井データが特定できるので、それらの情報から３Ｄ点群中の床面、天井データを取り除く。図６は、ロボット１０と、対象物体と、床面及び天井の位置関係の例を示している。
【００２３】
演算部１３は、動的障害物を認識して除去する（ステップＳ１３）。すなわち、人等の動的障害物は自己位置推定する上で不必要なので、これを認識して除去する。動的障害物の除去については、例えば前回計測したデータを利用して人間を認識する方法や、３Ｄ点群データから移動物体を認識する既知の手法を用いる。また演算部１３は、静的障害物の除去を行う。静的障害物の除去は、例えば非特許文献１の手法を用いて行う。
【００２４】
演算部１３は、縦ラインデータから縦面の検出を行い、２Ｄに圧縮する（ステップＳ１４）。図７は、縦面検出の詳細なフローチャートである。
【００２５】
レーザレンジファインダ１１は、任意の方向の縦ラインデータを取得する（ステップＳ２１）。ステップＳ１１で取得されている３Ｄ点群は、ｎスキャン×ｍラインで構成される。図８は、ロボット１０及び対象物体を横から見たときの１ラインの計測点である。図９は、ロボット１０を上方向から見たときの座標を示している。
【００２６】
演算部１３は、レーザレンジファインダ１１で得られた計測点を平滑化し（ステップＳ２２）、奥行きｄで大きさ順に並べ替える（ステップＳ２３）。図１０は計測点を平滑化して奥行きｄで並べ替えた例であり、横軸が点数、縦軸が奥行きである。並べ替えを行うことにより、図８で示したように、例えば面Ｃがあることによって面Ｂが不連続であるような場合であっても、面Ｂを１つの面として検出することができる。
【００２７】
演算部１３は、閾値幅に入るデータを縦面としてクラスタリングする（ステップＳ２４）。ここで閾値は、奥行き方向に従って変化させる。より具体的には、演算部１３は、図１０において隣り合う点で作られる傾きが、ある閾値Thresh_angle以下の場合には、縦線候補の点であると判定する。さらに演算部１３は、縦線候補と認識された点が、ある閾値Thresh_num以上続く場合には、縦線として判断する。なお閾値Thresh_numは、奥に行くほど計測点が疎になるため、奥行きが大きくなるにつれて小さくするのが望ましい。
演算部１３は、分けられた縦線ごとに奥行きｄを求める。ここで図１０において、面Ｂの奥行きをｄＢ、面Ｃの奥行きをｄＣ、面Ｄの奥行きをｄＤとする。次に演算部１３は、ｄＢ、ｄＣ、ｄＤについて、ｘ＝ｄsinθ、ｙ＝ｄcosθより、ｘ及びｙの値を求める。
【００２８】
演算部１３は、クラスタリングされた値（ｘ）の平均値を２Ｄグリッドへ投影する（ステップＳ２５）。すなわち演算部１３は、ラインデータ（Σｄ,θ）に基づいて、縦線を検出することで縦線の位置Σ（ｘ,ｙ）を算出する。その後、演算部１３は、縦線の位置Σ（ｘ,ｙ）を２Ｄグリッドマップに投影する。
【００２９】
演算部１３は、２Ｄグリッドマップへの投影処理が全ラインについて完了したか否かを判定する（ステップＳ１５）。全ラインにおける２Ｄグリッドマップへの投影処理が終了していない場合には（ステップＳ１５でＮｏ）、ステップＳ１４に戻り、ステップＳ２１からステップＳ２５の処理を繰り返し行う。演算部１３は、２Ｄグリッドマップへの投影処理を全ラインについて繰り返し行う。これにより演算部１３は、縦面を検出する。全ラインにおいて２Ｄグリッドマップへの投影処理が終了している場合には（ステップＳ１５でＹｅｓ）、ステップＳ１６に進む。図１１は、生成した２Ｄグリッドマップの例である。
【００３０】
演算部１３は、記憶部１６にあらかじめ記憶された事前地図と、生成した２Ｄグリッドマップとのマッチングを行う（ステップＳ１６）。演算部１３は、事前地図と２Ｄグリッドマップとのマッチング結果から、自己位置が地図上のどの位置であるかを推定する。
【００３１】
したがってロボットは、レーザレンジファインダから得られる環境の３Ｄ点群から、床面に垂直な縦面（壁や円柱の柱など）を抽出し、２Ｄマップへ投影することで得られる２Ｄグリッドマップを利用し、自己位置推定を行うことができる。ここでロボットは、２Ｄの自己位置推定（（ｘ,ｙ,yaw）の同定）において重要な、環境中の縦面を利用することで精度が向上する。またロボットは、図１２のように地図にない静的障害物がある環境下であっても、縦面が計測される可能性が高いため、ロバスト性が向上する。
【００３２】
事前地図は、複数の視点から２Ｄグリッドマップを作製したものを重ね合わせ、統合することで作成したものである。ロボットは、自己位置推定の動作において、移動中に得られる２Ｄグリッドマップを事前地図とマッチングすることで、自己位置を推定する。ロボットは、３Ｄ情報を圧縮した２Ｄグリッドマップを使用することで、自己位置推定に必要な情報だけ抽出することができ、処理速度の向上を図ることができる。
【００３３】
またロボットは、３Ｄ点群中の動的障害物を時系列データから認識し、点群から除く前処理を行っている。これにより、事前地図と自己位置推定時に取得した２Ｄグリッドマップとのマッチング精度を向上させることができる。
【００３４】
またロボットは、３Ｄ点群から床に垂直に切り出したラインデータを２Ｄに投影し、そのデータの疎密から縦面を検出する際に、センサの特性に合わせて奥行き方向に重みを持たせることで測定精度の向上を図ることができる。奥行き方向に重みを持たせる手法はシンプルな手法であり、ロボットは、処理速度の向上を図ることができる。
【００３５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、環境の３Ｄ点群を取得するためにレーザレンジファインダを用いるものとして説明したが、環境の３Ｄ点群を取得できるものであれば、センサとしてレーザレンジファインダ以外のものを用いても良い。
【符号の説明】
【００３６】
１０    ロボット
１１    レーザレンジファインダ
１２    制御部
１３    演算部
１４    駆動部
１５    車輪
１６    記憶部
【図１】
0005817611.tif 000002
【図２】
0005817611.tif 000003
【図３】
0005817611.tif 000004
【図４】
0005817611.tif 000005
【図５】
0005817611.tif 000006
【図６】
0005817611.tif 000007
【図７】
0005817611.tif 000008
【図８】
0005817611.tif 000009
【図９】
0005817611.tif 000010
【図１０】
0005817611.tif 000011
【図１１】
0005817611.tif 000012
【図１２】
0005817611.tif 000013