(57)【要約】      （修正有）【課題】計算量が過大となることを抑制しながら、移動体と障害物との干渉を３次元で判定する。【解決手段】障害物検出装置は、移動体の形状を記憶する移動体形状記憶部４８と、移動領域内にある障害物の位置と形状を記憶する障害物記憶部４６と、移動体の位置情報と、移動体形状記憶部に記憶された移動体の形状と、障害物記憶部に記憶された障害物の位置と形状に基づいて、移動体と障害物との干渉を判定する干渉判定部３８と、を有している。移動体形状記憶部は、移動体を高さ方向に複数の層に分割したときの各層について、その層における移動体の形状を記憶している。障害物記憶部は、複数の層のそれぞれについて、その層における障害物の位置と形状を記憶する二次元地図を記憶している。干渉判定部は、複数の層のそれぞれについて、その層における移動体の形状と、その層における障害物の二次元地図を用いて、移動体と障害物の干渉を判定する。【選択図】図２
2014056506.tif 000002
【特許請求の範囲】
【請求項１】
移動体と移動領域内の障害物との干渉を検出する障害物検出装置であって、
移動体の形状を記憶する移動体形状記憶部と、
移動領域内にある障害物の位置と形状を記憶する障害物記憶部と、
移動体の位置情報と、移動体形状記憶部に記憶された移動体の形状と、障害物記憶部に記憶された障害物の位置と形状に基づいて、移動体と障害物との干渉を判定する干渉判定部と、を有しており、
移動体形状記憶部は、移動体を高さ方向に複数の層に分割したときの各層について、その層における移動体の形状を記憶しており、
障害物記憶部は、複数の層のそれぞれについて、その層における障害物の位置と形状を記憶する二次元地図を記憶しており、
干渉判定部は、複数の層のそれぞれについて、その層における移動体の形状と、その層における障害物の二次元地図を用いて、移動体と障害物の干渉を判定する、障害物検出装置。
【請求項２】
移動領域内の障害物を計測する障害物計測部と、
障害物計測部で計測された障害物の位置と形状に関する情報を用いて、障害物記憶部に記憶されている各層の２次元地図を更新する地図更新部と、をさらに有している、請求項１に記載の障害物検出装置。
【請求項３】
障害物計測部は、移動領域内にある障害物までの距離を計測する３次元スキャン型の距離センサを有しており、
地図更新部は、
（１）距離センサで得られる複数の計測データを複数の層に分類し、
（２）複数の層のそれぞれについて、その層に分類された計測データ群をその層に設定された基準平面に射影し、基準平面に射影された計測データ群からその層における二次元地図を更新する、請求項２に記載の障害物検出装置。
【請求項４】
地図更新部は、基準平面に射影された計測データ群をクラスタ毎に分割し、その分割されたクラスタ毎にそのクラスタを構成する計測点群の輪郭線を障害物の形状として二次元地図に記憶する、請求項３に記載の障害物検出装置。
【請求項５】
前記複数の層は、移動体の高さ方向に直交する断面において、移動体の断面形状が変化する位置に応じて分割されており、
移動体形状記憶部は、その分割された複数の層のそれぞれについて移動体の形状を多角形又は多角柱に近似して記憶する、請求項１〜４のいずれか一項に記載の障害物検出装置。
【請求項６】
請求項１〜５のいずれか一項に記載の障害物検出装置を備える移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示の技術は、移動体と障害物との干渉を判定する技術に関する。
【背景技術】
【０００２】
移動ロボット等の移動体を安全に移動させるために、移動体の周囲の障害物を検出する技術が開発されている。例えば、特許文献１には、レーザレンジファインダによって移動体の周囲の障害物を検出する技術が開示されている。特許文献１に開示の技術では、移動体が移動する移動領域の地図（環境地図（二次元地図））が設けられる。レーザレンジファインダによって障害物が検出されると、その障害物の位置を地図に記憶する。そして、障害物を回避するように移動体の移動経路が決定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１１８５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
移動体が移動領域を効率的に移動するためには、移動体と障害物との干渉を精度良く判定する必要がある。また、移動体と障害物との干渉を精度良く判定できれば、移動体は障害物の近傍を通過することができ、その結果、移動体は狭空間を移動することができる。このためには、障害物の形状を３次元データとして地図に記憶し、移動体と障害物との干渉を３次元で判定する方法が考えられる。しかしながら、移動体と障害物の干渉を３次元で判定しようとすると、そのための計算量が膨大となる。その結果、干渉判定に要する時間が長時間となり、移動体のスムーズな移動が阻害される。
【０００５】
本明細書は、計算量が過大となることを抑制しながら、移動体と障害物との干渉を３次元で判定することができる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示する障害物検出装置は、移動体と移動領域内の障害物との干渉を検出する。この障害物検出装置は、移動体の形状を記憶する移動体形状記憶部と、移動領域内にある障害物の位置と形状を記憶する障害物記憶部と、移動体の位置情報と、移動体形状記憶部に記憶された移動体の形状と、障害物記憶部に記憶された障害物の位置と形状に基づいて、移動体と障害物との干渉を判定する干渉判定部を有している。移動体形状記憶部は、移動体を高さ方向に複数の層に分割したときの各層について、その層における移動体の形状を記憶している。障害物記憶部は、複数の層のそれぞれについて、その層における障害物の位置と形状を記憶する二次元地図を記憶している。そして、干渉判定部は、複数の層のそれぞれについて、その層における移動体の形状と、その層における障害物の二次元地図を用いて、移動体と障害物の干渉を判定する。
【０００７】
上記の障害物検出装置では、移動体を高さ方向に複数の層に分割し、層毎に移動体の形状を記憶する。移動領域内の障害物も、複数の層に分割され、層毎に二次元地図として記憶する。そして、層毎に、移動体の干渉が判定される。各層における移動体と障害物の干渉判定は２次元で行われるため、その計算量は過大なものとはならない。このため、移動体を分割する層の数を適切な数に設定することで、計算量の増大を抑えることができる。また、移動体を分割する位置を適切な位置に設定することで、少ない層で移動体の形状を３次元的に精度良く表すことができる。したがって、移動体と障害物との干渉を精度良く判定することができる。
【図面の簡単な説明】
【０００８】
【図１】実施例に係る移動体の構成を模式的に示す平面図。
【図２】実施例に係る移動体の制御系の構成を示すブロック図。
【図３】移動体の形状を表す移動体データの構造を説明するための図。
【図４】環境マップに記憶される障害物の形状を表す障害物データの構造を説明するための図。
【図５】制御装置で行われる処理の手順を示すフローチャート。
【図６】障害物クラスタから障害物の輪郭線を計算した例を示す図。
【図７】障害物と移動体の干渉判定の一例を示す図。
【図８】複数の走路面（平面）が連結された環境内を移動体が移動する場合を説明するための図。
【図９】移動体の形状を表す移動体データの他の例を説明するための図。
【図１０】距離計測を実施した環境の一例を撮影した画像。
【図１１】図１０に示す環境を距離センサで計測したときの計測点群の一例。
【図１２】図１１に示す計測点群を上層と下層に分類したときにおいて、上層に分類された計測点群を示す図。
【図１３】図１１に示す計測点群を上層と下層に分類したときにおいて、下層に分類された計測点群を示す図。
【図１４】図１２に示す上層に分類された計測点群から得られた二次元の計測点群を示す図。
【図１５】図１３に示す下層に分類された計測点群から得られた二次元の計測点群を示す図。
【図１６】図１４に示す二次元の計測点群から計算された二次元の障害物地図。
【図１７】図１５に示す二次元の計測点群から計算された二次元の障害物地図。
【発明を実施するための形態】
【０００９】
以下に説明する実施例の主要な特徴を列記しておく。なお、以下に記載する技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。
【００１０】
（特徴１）  本明細書に開示する障害物検出装置では、移動領域内の障害物を計測する障害物計測部と、障害物計測部で計測された障害物の位置と形状に関する情報を用いて、障害物記憶部に記憶されている各層の２次元地図を更新する地図更新部をさらに有していてもよい。このような構成によると、障害物の計測と、その計測結果に基づく２次元地図の更新によって、移動領域内の障害物の位置と形状を適切に記憶する２次元地図を作成することができる。
【００１１】
（特徴２）  本明細書に開示する障害物検出装置では、障害物計測部は、移動領域内にある障害物までの距離を計測する３次元スキャン型の距離センサを有していてもよい。地図更新部は、（１）距離センサで得られる複数の計測データを複数の層に分類し、（２）複数の層のそれぞれについて、その層に分類された計測データ群をその層に設定された基準平面に射影し、基準平面に射影された計測データ群からその層における二次元地図を更新してもよい。このような構成によると、３次元スキャン型の距離センサを用いて移動領域内の障害物を検出し、その検出結果に基づいて二次元地図を作成することができる。
【００１２】
（特徴３）  本明細書に開示する障害物検出装置では、地図更新部は、基準平面に射影された計測データ群をクラスタ毎に分割し、その分割されたクラスタ毎にそのクラスタを構成する計測点群の輪郭線を障害物の形状として二次元地図に記憶するようにしてもよい。このような構成によると、障害物の輪郭線を障害物の形状として二次元地図に記憶するため、障害物の形状を少ないデータ量で表すことができる。
【００１３】
（特徴４）  本明細書に開示する障害物検出装置では、複数の層は、移動体の高さ方向に直交する断面において、移動体の断面形状が変化する位置に応じて分割されていてもよい。移動体形状記憶部は、その分割された複数の層のそれぞれについて移動体の形状を多角形又は多角柱に近似して記憶していてもよい。このような構成によると、移動体の断面形状が変化する位置に応じて複数の層に分割されることで、データ量の増大を抑えながら、移動体の３次元形状を正確に表現することができる。
【００１４】
なお、上述した障害物検出装置は移動体に搭載することができる。これによって、移動体は、移動しながら障害物を検出することができ、障害物の回避が可能となる。
【実施例１】
【００１５】
本実施例の移動体１０について、図面を参照しながら説明する。図１に示すように、移動体１０は、左右の前輪１２ａ，１２ｂと、１つの後輪１４（従動輪）と、前輪１２ａ，１２ｂ及び後輪１４が取付けられる車体１８を備えている。
【００１６】
前輪１２ａ，１２ｂは、車体１８の前端側であって、車体１８の側面に回転可能に取付けられている。各前輪１２ａ，１２ｂは、インホイールモータ２０ａ，２０ｂ（図２に図示）により独立して駆動される。前輪１２ａ，１２ｂを駆動することで、移動体１０は走路面を走行する。また、左右の前輪１２ａ，１２ｂの回転駆動量（回転角速度）を制御することで、移動体１０は、その進行方向を任意の方向に変えることができる。
【００１７】
後輪１４は、車体１８の後端側であって、車体１８の車幅方向の略中央に取付けられている。本実施例では、後輪１４に、全方位車輪又はキャスタ車輪が用いられている。なお、後輪１４を操舵輪とし、後輪１４を操舵することによって移動体１０の進行方向を制御するようにしてもよい。
【００１８】
車体１８は、車体１８の姿勢角（ロール角，ピッチ角，ヨー角）を検出する３軸のジャイロセンサ２４（図２に図示）と、車体１８の進行方向に位置する障害物までの距離を計測する距離センサ１６と、エンコーダ２２ａ，２２ｂ、ジャイロセンサ２４及び距離センサ１６の出力に基づいて環境マップを作成する処理等を行う制御装置３０を備えている。
【００１９】
ジャイロセンサ２４は、車体１８の内部に設置されている。ジャイロセンサ２４は、車体１８の姿勢角（ロール角，ピッチ角，ヨー角）を検出する。図２に示すように、ジャイロセンサ２４は、制御装置３０と電気的に接続されている。ジャイロセンサ２４で検出した車体１８の姿勢角（ロール角，ピッチ角，ヨー角）は、制御装置３０に入力される。
【００２０】
距離センサ１６は、車体１８の前端側の上面であって、車体１８の車幅方向の略中央に取付けられている（図１参照）。距離センサ１６は、３次元スキャン型の距離センサである。距離センサ１６は、レーザ光を照射すると共にその照射したレーザ光の反射光を検出し、レーザ光を照射してから反射光を検出するまでの時間で、距離センサ１６から障害物までの距離を計測する。レーザ光を照射する方向は、３次元的に走査される。すなわち、図１に示すように、距離センサ１６は、車体１８の前方の所定の角度範囲の領域５０にレーザ光を照射すると共に、レーザ光を照射する方向を高さ方向に変化させる。これにより、車体１８の前方に位置する障害物の３次元構造が検出される。図２に示すように、距離センサ１６は、制御装置３０と電気的に接続されている。距離センサ１６で検出した障害物の３次元構造は、制御装置３０に入力される。
【００２１】
なお、距離センサ１６としては、例えば、日本信号株式会社製のＭＥＭＳを利用したレーザスキャナーを用いることができる。なお、本実施例では、レーザ光によって距離を計測する距離センサ１６を用いたが、このような例に限られず、公知の種々の方式の距離センサを用いることができる。なお、距離センサ１６がレーザ光を照射する角度範囲が狭い場合（図１に示す領域５０の角度範囲が狭い場合）は、車体１８に複数の距離センサ１６を搭載し、車体１８の前方の領域を漏れなく走査することが好ましい。複数の距離センサ１６を搭載することで、車体１８の前方の障害物を漏れなく検出することができる。
【００２２】
制御装置３０は、ＣＰＵ，ＲＯＭ，ＲＡＭを備えたマイクロプロセッサによって構成されている。制御装置３０は、車体１８内に配されている。図２に示すように、制御装置３０は、モータ２０ａ、２０ｂと、エンコーダ２２ａ、２２ｂと、ジャイロセンサ２４と、距離センサ２６に電気的に接続されている。
【００２３】
制御装置３０は、モータ２０ａ，２０ｂを駆動制御することで、移動体１０の進行方向及び走行速度を制御する。すなわち、制御装置３０は、モータ２０ａ，２０ｂに制御指令値を出力することで、前輪１２ａ、１２ｂを駆動する。これによって、移動体１０の進行方向及び走行速度等を制御する。なお、モータ２０ａ，２０ｂの回転角速度（すなわち、前輪１２ａ，１２ｂの回転角速度）は、エンコーダ２２ａ，２２ｂで検出される。エンコーダ２２ａ，２２ｂは、検出したモータ２０ａ，２０ｂの回転角速度を制御装置３０に入力する。なお、制御装置３０による移動体１０の進行方向及び走行速度の制御については、従来公知の方法で行うことができるため、本明細書ではその詳細な説明は省略する。
【００２４】
また、制御装置３０は、エンコーダ２２ａ，２２ｂ、ジャイロセンサ２４及び距離センサ１６の出力に基づいて環境マップ（後で詳述する）を作成する処理、環境マップに基づいて移動体１０と障害物の干渉を判定する処理、障害物の干渉判定に基づいて移動体の経路を決定する処理、決定した経路に基づいて車輪１２ａ，１２ｂを駆動する処理等を行う。すなわち、制御装置３０は、メモリに記憶されているプログラムを実行することで、座標変換部３２、障害物検出部３４、マップ更新部３６、干渉判定部３８、経路決定部４０及び車輪駆動部４２として機能する。制御装置３０が上述した各部３２〜４２として機能することで、環境マップが更新され、移動体１０の経路が自律的に決定され、その決定された経路を移動体は走行する。各部３２〜４２の詳細については、制御装置３０で行われる処理を説明する際に説明する。
【００２５】
また、制御装置３０は、走路面データ記憶部４４と環境マップ記憶部４６と移動体データ記憶部４８と経路データ記憶部５０に接続されている。
【００２６】
走路面データ記憶部４４は、移動体１０が移動する環境内の走路面の情報（すなわち、走路面を規定する情報）を記憶する。本実施例では、走路面が平坦な平面であると仮定するため、走路面はａｘ＋ｂｙ＋ｃｚ＋ｄ＝０（ｘ，ｙ，ｚは絶対座標系の座標値）と表される。したがって、走路面データ記憶部４４は、移動体１０の移動領域内に存在する走路面毎に、その位置、広さ、及び走路面を規定する４つのパラメータａ，ｂ，ｃ，ｄを記憶する。このため、移動体１０が一つの平面でのみ移動する場合は、走路面データ記憶部４４はパラメータａ，ｂ，ｃ，ｄを１組のみ記憶すればよい。例えば、移動体１０が同一フロアーでのみ移動する場合は、ｚ＝０（すなわち、ａ＝ｂ＝ｄ＝０，ｃ＝１）を走路面とすればよい。なお、走路面データ記憶部４４は、オペレータにより予め入力されていてもよいし、距離センサ１６の検出結果から算出するようにしてもよい。
【００２７】
経路データ記憶部５０は、移動体１０が移動する経路を記憶する。出発地から目的地までの移動経路を規定する初期経路は、オペレータにより予め入力されていてもよいし、自動で生成してもよい。後述するように、入力された初期経路は、距離センサ１６により検出された障害物との干渉判定の結果に応じて修正され、修正された経路が経路データとして順次更新される。
【００２８】
移動体データ記憶部４８は、移動体１０の外形状を規定するデータを記憶する。図３に示すように、本実施例では、移動体１０をｚ方向（移動体１０の高さ方向（走路面に直交する方向））に複数の層５２ａ，５２ｂに分割したときの各層について、移動体１０の外形状（輪郭線）５４ａ，５４ｂを記憶する。例えば、図３に示す移動体１０は、車椅子型の移動体であって、座席部と背もたれ部を有しており、座席部と背もたれ部では大きく外形状が異なる。このため、座席部が設けられる第１層５２ａと、背もたれ部が設けられる第２層５２ｂとに移動体１０を分割し、第１層５２ａにおける輪郭線５４ａと、第２層５２ｂにおける輪郭線５４ｂとを記憶する。このように移動体１０の断面形状（ｚ方向に直交するｘ−ｙ断面の形状）が大きく変化する位置に応じて移動体１０を複数の層５２ａ，５２ｂに分割し、その分割した各層について輪郭線５４ａ，５４ｂを記憶することで、少ないデータ量で、移動体１０の３次元形状を正確に表すことができる。なお、各層５２ａ，５２ｂの輪郭線５４ａ，５４ｂは、各層５２ａ，５２ｂに含まれる移動体１０を基準平面５３ａ，５３ｂ（各層５２ａ，５２ｂの下面）に射影して得られる像の輪郭線とすることができる。上述の説明から明らかなように、本実施例では、移動体１０の外形状を、複数の柱状物（例えば、多角柱や円柱等）で近似していることとなる。
【００２９】
環境マップ記憶部４６は、移動体１０が移動する環境内の障害物の情報（すなわち、障害物の位置と外形状に関する情報）を記憶する。具体的には、上述した移動体１０を分割したときに用いた各層５２ａ，５２ｂのそれぞれについて、その層５２ａ，５２ｂにおける障害物の位置と外形状（輪郭線）を記憶する。ここで、各層５２ａ，５２ｂの外形状（輪郭線）は、移動体１０と同様、各層５２ａ，５２ｂに含まれる障害物を基準平面５３ａ，５３ｂに射影して得られる像の輪郭線とされる。したがって、障害物の外形状についても、複数の柱状物（例えば、多角柱や円柱等）で近似されることとなる。
【００３０】
図４を用いて、環境マップ記憶部４６に記憶される障害物の外形状（輪郭線）の一例を説明する。図４には、障害物５６として机が示されている。図４に示すように、障害物５６は、天板と、天板の４隅に設けられた脚を有している。このため、層５２ａについては、４つの脚の輪郭線５６ａが障害物５６の外形状として記憶され、層５２ｂについては、天板の輪郭線５６ｂが障害物５６の外形状として記憶される。図４から明らかなように、第２層５２ｂについては障害物５６が大きな領域を占有し、移動体１０が移動可能な領域が大きく制限される。一方、第１層５２ａについては障害物５６が占める面積は小さく、移動体１０が移動可能な領域が広くなっている。
【００３１】
次に、制御装置３０によって行われる処理について説明する。図５に示すように、制御装置３０は、まず、距離センサ１６によって、移動体１０の前方の障害物までの距離を計測する（Ｓ１０）。距離センサ１６によって計測された距離データは、制御装置３０に入力される。なお、距離センサ１６によって計測される計測データ群には、移動体１０が走行する走路面のデータも含まれる。
【００３２】
次に、制御装置３０は、移動体１０の自己位置情報を用いて、距離センサ１６によって計測された走路面又は障害物までの距離データ（計測データ）を、絶対座標系のデータに変換する（Ｓ１２）。すなわち、制御装置３０は、ジャイロセンサ２４の出力から、車体１０の姿勢角（ロール角，ピッチ角，ヨー角）を特定することができる。また、制御装置３０は、エンコーダ２２ａ，２２ｂの出力から、車体１０（基準位置）の絶対座標系の位置を算出することができる。さらに、車体１０（基準位置）に対する距離センサ１６の取付位置は既知である。このため、車体１０の姿勢角と、車体１０（基準位置）の絶対座標系の位置と、車体１０（基準位置）に対する距離センサ１６の取付位置とから、距離センサ１６の絶対座標系の位置を算出することができる。したがって、ステップＳ１０において、距離センサ１６がレーザ光を照射した方向と、距離センサ１６で計測された距離が特定されれば、制御装置３０は、ステップＳ１０で計測された走路面又は障害物の絶対座標系の位置を算出することができる。なお、上記のステップＳ１２の処理によって実現される制御装置３０の機能が、図２に示す座標変換部３２に相当する。
【００３３】
次に、制御装置３０は、ステップＳ１２によって得られた絶対座標系に変換した計測データ群から、移動体１０とは干渉し得ない計測データを削除する（Ｓ１４）。すなわち、距離センサ１６で計測された計測データ群には、走路面のデータや、移動体１０よりも高い位置に存在する障害物（例えば、天井、壁等）のデータが含まれる。これらの障害物は移動体１０とは干渉し得ないデータであるため、これらの障害物に関する計測データを削除する。これによって、その後の処理を高速で行うことができる。具体的には、制御装置３０は、走路面データ記憶部４４に記憶された情報から、計測データの走路面までの距離（走路面からの高さ）を計算し、その距離が所定の閾値より小さい場合は、計測データは走路面のデータであるとしてそのデータを削除する。また、計測データの走路面までの距離（走路面からの高さ）が移動体１０の高さよりも高い場合も、その計測データを削除する。なお、これらの計算を行う際は、距離センサ１６による距離計測誤差や、座標変換する際の誤差に応じて、閾値を定めることが好ましい。なお、上記のステップＳ１４の処理によって実現される制御装置３０の機能が、図２に示す障害物検出部３４に相当する。
【００３４】
次に、制御装置３０は、削除後の計測データを、移動体１０を分割したときに用いた各層５２ａ，５２ｂに分類する（Ｓ１６）。すなわち、制御装置３０は、走路面からの距離（走路面からの高さ）に応じて、削除後の計測データが各層５２ａ，５２ｂ（基準平面５３ａ，５３ｂ）のいずれに属するかを判定する。そして、削除後の計測データを各層５２ａ，５２ｂ（基準平面５３ａ，５３ｂ）に分類する。例えば、第１層５２ａが走路面からの高さ０〜ｈ１の層であり、第２層５２ｂが走路面からの高さｈ１〜ｈ２の層である場合において、計測データの走路面からの高さｈが０＜ｈ≦ｈ１のときは、そのデータを第１層（基準平面ｚ＝０）に分類する。一方、計測データの走路面からの高さｈがｈ１＜ｈ≦ｈ２のときは、そのデータを第２層（基準平面ｚ＝ｈ１）に分類する。
【００３５】
次に、制御装置３０は、複数の層５２ａ，５２ｂ（基準平面５３ａ，５３ｂ）の中から１つの層（基準平面）を選択する（Ｓ１８）。そして、制御装置３０は、選択された層に分類された計測データを、その層の基準平面に射影する（Ｓ２０）。例えば、ステップＳ１８で第１層５２ａが選択された場合、第１層５２ａに分類された計測データを基準平面５３ａに射影する。ここで、ｚ＝０で表される平面が走路面である場合、基準平面５３ａ，５３ｂが走路面に平行であることから、計測データ（ｘ，ｙ，ｚ）を基準平面５３ａ，５３ｂに射影したときの座標値は（ｘ，ｙ）となる。したがって、この場合は、極めて簡易に射影したときの座標値を算出することができる。なお、ステップＳ２０を実行する際は、その後の計算量を少なくするために、ダウンサンプリングを実行してもよい。
【００３６】
次に、制御装置３０は、ステップＳ２０で基準平面５３ａ，５３ｂに射影された計測データ群をクラスタ分割する（Ｓ２２）。すなわち、基準平面５３ａ，５３ｂに射影された計測データ群は、複数の障害物を計測したデータにより構成されていることがある。このため、基準平面に射影されたデータ群を、クラスタ（障害物）毎に分割する。クラスタ分割には、例えば、公知のＫｄ−Ｔｒｅｅ等の手法を用いることができる。
【００３７】
次に、制御装置３０は、ステップＳ２２で分割されたクラスタ（障害物）毎に、そのクラスタ（障害物）の輪郭線を算出する（Ｓ２４）。輪郭線の算出には、例えば、公知のα‐ｓｈａｐｅ等の手法を用いることができる。なお、輪郭線を算出する際は、図６の（ａ）に示すような凸包ではなく、図６の（ｂ），（ｃ）に示すような凹包とすることが好ましい。凹包とすることで、障害物を精度よく表現できるようになり、移動体１０が通過可能な領域を大きくすることができる。なお、図６において、各点は基準平面に射影された計測データからクラスタ分割された計測データ群であり、各点を包含する実線はα‐ｓｈａｐｅで算出された輪郭線である。
【００３８】
次に、制御装置３０は、上述したステップＳ２０〜Ｓ２４の処理を全ての層５２ａ，５２ｂ（基準平面５３ａ，５３ｂ）について実行したか否かについて判断する（Ｓ２６）。そして、全ての層５２ａ，５２ｂ（基準平面５３ａ，５３ｂ）についてステップＳ２０〜Ｓ２４の処理を実行していない場合（Ｓ２６でＮＯ）は、ステップＳ１８に戻って、ステップＳ１８からの処理を繰り返す。これによって、全ての層５２ａ，５２ｂ（基準平面５３ａ，５３ｂ）について、分類された計測データが基準平面５３ａ又は５３ｂに射影され、射影された計測データから障害物（クラスタ）の輪郭線が作成される。
【００３９】
全ての層５２ａ，５２ｂ（基準平面５３ａ，５３ｂ）についてステップＳ２０〜Ｓ２４の処理を実行している場合（Ｓ２６でＹＥＳ）は、環境マップ記憶部４６に記憶されている環境マップを更新する（Ｓ２８）。すなわち、制御装置３０は、各層５２ａ，５２ｂ毎に、その層における障害物マップ（二次元障害物地図）を更新する。なお、上記のステップＳ１６〜Ｓ２８の処理によって実現される制御装置３０の機能が、図２に示すマップ更新部３６に相当する。
【００４０】
次に、制御装置３０は、複数の層５２ａ，５２ｂの中から干渉判定を行う１つの層を選択する（Ｓ３０）。干渉判定を行う層を選択すると、制御装置３０は、ステップＳ３０で選択された層の移動体１０の外形状（輪郭線）を移動体データ記憶部４８から読み出し（Ｓ３２）、ステップＳ３０で選択された層の障害物（クラスタ）の外形状（輪郭線）を環境マップ記憶部４６から読み出す（Ｓ３４）。そして、ステップＳ３２で読み出した移動体１０の外形状と、ステップＳ３４で読み出した障害物（クラスタ）の外形状との干渉を判定する（Ｓ３６）。干渉判定は、例えば、各層の障害物（クラスタ）の凹包を凸化分解（凸多角化）した上で、公知のＧＪＫアルゴリズムのような方法を用いて判定することができる。なお、ステップＳ３６の干渉判定では、移動体１０の外形状が二次元で表され、障害物（クラスタ）の外形状も二次元で表されている。このため、ステップＳ３６の干渉判定は、二次元の干渉問題となり、少ない計算量で行うことができる。また、グリッドマップのような離散化マップと比べて、高精度で環境を表現することができる。
【００４１】
次に、制御装置３０は、上述したステップＳ３０〜Ｓ３６の処理を全ての層５２ａ，５２ｂについて実行したか否かについて判断する（Ｓ３８）。そして、全ての層５２ａ，５２ｂについてステップＳ３０〜Ｓ３６の処理を実行していない場合（Ｓ３８でＮＯ）は、ステップＳ３０に戻って、ステップＳ３０からの処理を繰り返す。これによって、全ての層５２ａ，５２ｂについて、移動体１０と障害物との干渉判定が実施される。なお、上記のステップＳ３０〜Ｓ３８の処理によって実現される制御装置３０の機能が、図２に示す干渉判定部３８に相当する。
【００４２】
全ての層５２ａ，５２ｂについてステップＳ３０〜Ｓ３６の処理を実行している場合（Ｓ３８でＹＥＳ）は、制御装置３０は、いずれかの層５３ａ，５３ｂで干渉が生じるか否かを判定する（Ｓ４０）。いずれの層５３ａ，５３ｂでも移動体１０と障害物との干渉が生じない場合（Ｓ４０でＮＯ）は、ステップＳ４４に進んで、制御装置３０は、モータ２０ａ，２０ｂを駆動する処理を実行する。すなわち、制御装置３０は、経路データ記憶部５０に記憶されている経路データに基づいてモータ２０ａ，２０ｂを駆動する。これによって、移動体１０は、経路データ記憶部５０に記憶された経路で移動する。
【００４３】
いずれかの層５３ａ，５３ｂで移動体１０と障害物との干渉が生じる場合（Ｓ４０でＹＥＳ）は、制御装置３０は、移動体１０と障害物との干渉が生じないように、経路データ記憶部５０に記憶された経路を修正し（Ｓ４２）、その修正された経路に基づいて、モータ２０ａ，２０ｂを駆動する（Ｓ４４）。これによって、移動体１０と障害物との干渉が回避される。
【００４４】
なお、本実施例では、制御装置３０が、図５に示す処理を所定の周期で繰り返し実行する。したがって、移動体１０は、所定の周期で、距離センサ１６による計測を実施し、その距離センサによる計測結果から環境マップを更新し、更新された環境マップを用いて障害物との干渉判定を行う。これによって、移動体１０は、障害物との干渉を回避しながら目的地まで移動することができる。
【００４５】
本実施例の移動体１０では、移動体１０を高さ方向に複数の層に分割し、層毎に移動体１０の外形状を記憶し、それに応じて障害物も層毎に環境マップを形成し、層毎に移動体１０と障害物の干渉判定を行う。移動体１０と障害物の干渉判定を複数の２次元の干渉問題とすることで、少ない計算量で移動体１０と障害物の干渉を行うことができる。その結果、リアルタイムで３次元の干渉判定を行うことが可能となる。また、リアルタイムで３次元の干渉判定を行うことができるため、高さが異なる障害物が散在する環境でも、移動体１０と障害物とのマージンを小さくすることできる。その結果、移動体１０は、狭空間をスムーズに移動することができる。
【００４６】
なお、移動体１０と障害物との干渉判定を層毎に行うため、図７に示すように、机のような障害物６２の下まで移動体６０の一部を移動させることができる。すなわち、移動体１０と障害物６２を第１層６３と第２層６５に分割し、それぞれを基準平面６４，６６に射影すると、第１層６３では符号６４ａで示す干渉判定の問題となり、第２層６５では符号６６ａに示す干渉判定の問題となる。図７から明らかなように、第１層６３と第２層６５のいずれにおいても、移動体６０と障害物６２との干渉は生じない。したがって、本実施例の技術によると、移動体１０の一部を障害物６２の下まで移動することができる。
【００４７】
ここで、本実施例の移動体１０を用いて実際に距離計測を実施し、計測した結果から作成された環境マップの一例を説明する。図１０に示すように、実際に距離計測を実施した環境には、複数の机と椅子が存在している。図１０に示す環境を距離センサ１６で計測すると、図１１に示すような結果が得られる。図１１から明らかなように、計測点群には、机を表す計測点群と、椅子を表す計測点群と、走路面を表す計測点群が含まれている。図１１に示す計測結果から不要な計測点（例えば、走路面の計測点等）を削除し、第１層（下層）と第２層（上層）に分割する。すると、図１３に示す第１層の計測点群と、図１２に示す第２層の計測点群が得られる。図１２，１３より明らかなように、距離センサ１６で得られた計測点群は、走路面からの高さに基づいて適切に分割されている。図１２，１３に示す計測点群が得られると、それらの計測点群を基準平面に射影し（図１４，１５）、それら基準平面に射影した計測点群から各層における障害物地図（障害物の輪郭線）が作成される（図１６，１７）。図１６，１７から明らかなように、本実施例の移動体１０によると、複雑な環境が複数毎の２次元の障害物地図で表現することが可能となる。
【００４８】
最後に、上述した実施例と請求項との対応関係を説明しておく。距離センサ１６が「障害物計測部」の一例であり、移動体データ記憶部４８が請求項でいう「移動体形状記憶部」の一例であり、環境マップ記憶部４６が請求項でいう「障害物記憶部」の一例であり、マップ更新部３６が「地図更新部」の一例であり、干渉判定部３８が請求項でいう「干渉判定部」の一例である。
【００４９】
以上、本実施例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
【００５０】
例えば、上述した実施例では、本明細書に開示する技術を車輪型の移動体に適用した例であったが、本明細書に開示する技術は、歩行型の移動体に適用することもできる。
【００５１】
また、上述した実施例では、環境内の走路面が予め記憶されている例を説明したが、本明細書に開示する技術は、距離センサ１６の計測結果に基づいて走路面を抽出するようにしてもよい。すなわち、距離センサとして３次元スキャン型の距離センサを利用し、距離センサにより走路面を計測し、その計測データから走路面を抽出するようにしてもよい。なお、計測データ群から走路面を抽出する方法としては、例えば、ＲＡＮＳＡＣやＬＭＥＤＳなどのロバスト推定と呼ばれるアルゴリズムを利用することができる。
【００５２】
また、本実施例では、移動体１０が走行する走路面を単一の走路面として説明したが、移動体が複数の走路面を有する環境内を移動する場合にも、本明細書に開示の技術を適用することができる。具体的には、距離センサで得られる計測データ群がどの走路面上の障害物であるかを判定し、走路面毎に障害物を高さ方向（走路面に直交する方向）に分割し、上述した実施例と同様の処理を実行すればよい。例えば、図８に示すように、移動体７０が複数の走路面７２ａ〜７２ｄを移動する場合は、走路面７２ａ〜７２ｄ毎に空間を分割し、その分割された各空間を移動体７０の高さ方向（すなわち、走路面に直交する方向）に複数の層に分割すればよい。そして、障害物７４，７６がどの走路面上に位置するかを判断し（例えば、障害物７４は走路面７２ｃ上に位置すると判断し）、その障害物の射影像（例えば、走路面７２ｃ上の障害物７４は基準平面（平面２）に射影した像）を層毎に取得すればよい。
【００５３】
また、本実施例では、移動体１０の高さ方向の分割をオペレータがオフラインで１回だけ実施するものであったが、移動体１０の高さ方向の分割をリアルタイムで逐次自動で行ってもよい。移動体の分割をリアルタイムで実行することで、移動体１０の姿勢角（ロール角、ピッチ角等）やアームのある移動体ではアームの位置の変化による移動体形状の変化が考慮され、より精度良く障害物との干渉判定を行うことができる。なお、移動体の分割を自動で行う場合は、例えば、移動体をｚ軸に直交する複数の平面で切断し、その平面における断面の面積、または、車軸中心と断面におけるｘ方向またはｙ方向の正負の最遠点が大きく変化するところで自動分割するようにしてもよい。このような構成によると、移動体の断面形状が大きく変化する位置で自動的に分割され、移動体の外形状を精度良く表すことができる。
【００５４】
また、上述した実施例では、移動体１０を２層に分割した例であったが、移動体１０を分割する分割数は２層に限られず、任意の数に分割することができる。ただし、分割数を増大すると計算量が増加するため、移動体の形状の特徴を表す必要最小限の分割数とすることが好ましい。なお、車輪型の移動体では、例えば、図９に示すように、車体下のタイヤ空間に相当する層８０ａをさらに分割することが好ましい。このような構成によると、段差の低い小さな障害物（最低車高より高さが低い障害物）や、走路面に形成された小さな溝等をタイヤが通過することを回避しながら、これらの障害物の上方を車体が移動するように移動体１０を移動させることができる。
【００５５】
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００５６】
１０    移動体
１２ａ，１２ｂ  前輪
１４  後輪
１６  距離センサ
１８  車体
２０ａ，２０ｂ  モータ
２４  ジャイロセンサ
３０  制御装置
【図１】
2014056506.tif 000003
【図２】
2014056506.tif 000004
【図３】
2014056506.tif 000005
【図４】
2014056506.tif 000006
【図５】
2014056506.tif 000007
【図６】
2014056506.tif 000008
【図７】
2014056506.tif 000009
【図８】
2014056506.tif 000010
【図９】
2014056506.tif 000011
【図１０】
2014056506.tif 000012
【図１１】
2014056506.tif 000013
【図１２】
2014056506.tif 000014
【図１３】
2014056506.tif 000015
【図１４】
2014056506.tif 000016
【図１５】
2014056506.tif 000017
【図１６】
2014056506.tif 000018
【図１７】
2014056506.tif 000019