(57)【要約】【課題】可動物体を他の障害物と区別することにより、可動物体が移動したことをすぐに地図に反映する。【解決手段】自律移動装置１００は、物体までの距離である深度データを取得する深度センサ３１と、可動物体を検出する可動物体検出センサ３２と、制御部１０とを備え、制御部１０は、深度センサ３１が取得した深度データに基づいて、所定の領域毎に、物体の存在確率を記録する地図を作成し、可動物体検出センサ３２が可動物体を検出すると、可動物体が検出された所定の領域における存在確率を変更する。【選択図】図１
2018005470.tif 000002
【特許請求の範囲】
【請求項１】
地図を作成し、前記地図に基づいて移動する自律移動装置であって、
制御部を備え、
前記制御部は、
可動物体及びそれ以外の静止物体の存否を繰り返し確認し、
前記地図の所定の領域毎に、前記可動物体の存在確率及び前記静止物体の存在確率を記録するとともに、前記可動物体の存在確率と前記静止物体の存在確率とを異ならせることを特徴とする自律移動装置。
【請求項２】
前記可動物体は人、生物、又は可動物であることを特徴とする、
請求項１に記載の自律移動装置。
【請求項３】
地図を作成し、前記地図に基づいて移動する自律移動装置であって、
物体までの距離である深度データを取得する深度センサと、
可動物体を検出する可動物体検出センサと、
制御部とを備え、
前記制御部は、
前記深度センサが取得した深度データに基づいて、所定の領域毎に、前記物体の存在確率を記録する地図を作成し、
前記可動物体検出センサが前記可動物体を検出すると、前記可動物体が検出された前記所定の領域における前記存在確率を変更する、
自律移動装置。
【請求項４】
前記制御部は、
前記深度センサに、所定の方向毎に物体の存否を確認させ、物体が存在する場合には該物体までの距離である深度データを取得させ、
前記可動物体検出センサに、可動物体を検出させ、該可動物体検出センサが検出した情報に基づき、検出された可動物体が存在する方向を取得し、
前記深度センサに取得させた深度データによって定まる前記所定の領域での、前記物体の該深度データに基づく存在確率を記録する地図を作成し、
前記取得した方向に存在する可動物体に対応する前記所定の領域における前記存在確率を変更する、
請求項３に記載の自律移動装置。
【請求項５】
前記制御部が作成する地図は、前記存在確率が所定の閾値以上であるか否かにより前記物体の前記所定の領域における存否を表し、
前記制御部は、前記取得した方向に存在する可動物体に対応する前記所定の領域における前記存在確率を、前記所定の閾値に変更する、
請求項４に記載の自律移動装置。
【請求項６】
前記制御部が作成する地図は、前記存在確率が所定の閾値以上であるか否かにより前記物体の前記所定の領域における存否を表し、
前記制御部は、前記取得した方向に存在する可動物体に対応する前記所定の領域における前記存在確率を、前記所定の閾値よりも所定の値だけ大きな値に変更する、
請求項４に記載の自律移動装置。
【請求項７】
前記制御部が作成する地図は、前記存在確率が所定の閾値以上であるか否かにより前記物体の前記所定の領域における存否を表し、
前記制御部は、前記取得した方向に存在する可動物体に対応する前記所定の領域における前記閾値を、所定の可動物体用閾値に変更する、
請求項４に記載の自律移動装置。
【請求項８】
前記制御部は、
前記取得した方向以外の方向において、前記深度センサに取得させた深度データによって定まる前記所定の領域での前記存在確率により、前記可動物体以外の物体の該領域における存否を表す可動物体無し地図を作成し、
前記可動物体無し地図により、前記取得した方向に存在する前記可動物体に対応する前記所定の領域の前記存在確率を変更する、
請求項４に記載の自律移動装置。
【請求項９】
前記制御部は、
前記地図及び前記可動物体無し地図に基づいて目的地までの経路を計画し、
前記経路に基づいて自機の移動を制御し、
目的地が設定された直後は前記可動物体無し地図に基づいて前記目的地までの経路を計画する、
請求項８に記載の自律移動装置。
【請求項１０】
前記制御部は、前記可動物体無し地図に基づいて計画した経路では自機の移動を制御できない場合は、前記地図に基づいて経路を計画する、
請求項９に記載の自律移動装置。
【請求項１１】
前記制御部は、
前記存在確率を前記物体の存否の確認回数に対する前記深度データの取得回数の割合として地図に記録する、
請求項４から１０のいずれか１項に記載の自律移動装置。
【請求項１２】
前記制御部は、
前記存在確率を対数オッズにより地図に記録する、
請求項３から１０のいずれか１項に記載の自律移動装置。
【請求項１３】
地図を作成して、前記作成した地図に基づいて移動するための自律移動方法であって、
可動物体を検出すると、可動物体が検出された領域の前記地図を変更する、
自律移動方法。
【請求項１４】
所定の方向毎に物体の存否を確認し、物体が存在する場合には該物体までの距離である深度データを取得する深度データ取得ステップと、
可動物体を検出し、検出した前記可動物体の存在する方向を取得する可動物体存在方向取得ステップと、
前記深度データ取得ステップで取得した深度データによって定まる所定の領域での、前記物体の該深度データに基づく存在確率により、前記物体の前記所定の領域における存否を表す地図を作成する地図作成ステップと、
前記可動物体存在方向取得ステップで取得した方向に存在する前記可動物体に対応する前記所定の領域の前記地図を変更する可動物体領域地図変更ステップと、
を備える自律移動方法。
【請求項１５】
コンピュータに、
所定の方向毎に物体の存否を確認し、物体が存在する場合には該物体までの距離である深度データを取得する深度データ取得ステップ、
可動物体を検出し、検出した前記可動物体の存在する方向を取得する可動物体存在方向取得ステップ、
前記深度データ取得ステップで取得した深度データによって定まる所定の領域での、前記物体の該深度データに基づく存在確率により、前記物体の前記所定の領域における存否を表す地図を作成する地図作成ステップ、
前記可動物体存在方向取得ステップで取得した方向に存在する前記可動物体に対応する前記所定の領域の前記地図を変更する可動物体領域地図変更ステップ、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律移動装置、自律移動方法及びプログラムに関する。
【背景技術】
【０００２】
用途に応じて自律的に移動する自律移動装置が普及してきている。例えば、屋内の掃除のために自律的に移動する自律移動装置が知られている。このような自律移動装置は、実空間の地図として占有格子地図を作成することが多い。占有格子地図とは、格子点の値が物体（障害物）の存在を表す地図である。
【０００３】
占有格子地図を作成する際には、深度（測域）センサや測距センサ等を使って周囲に存在する物体までの距離を検出する。これらのセンサが検出する距離には通常誤差が含まれているため、誤差の影響を軽減させるために、地図にヒステリシスを持たせることが多い。例えば、特許文献１には、地図の各格子点の値を物体の存在確率とし、存在確率が閾値以上か否かによって物体の存否を表すことによって、地図にヒステリシスを持たせる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２１９７２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示されている技術により地図にヒステリシスを持たせると、物体（障害物）が無くなってもすぐには地図に反映されなくなる。そのため、人等の可動物体が障害物として地図に記録されると、その可動物体が記録された場所から移動しても、しばらくの間は地図に残ってしまう。この場合、この地図を利用して移動する自律移動装置は、障害物を避けるように移動するので、例えば人に追従する場合、人を回避する経路を選択してしまうという問題がある。
【０００６】
本発明は、上記問題を解決するためになされたものであり、人等の可動物体を他の障害物と区別することにより、可動物体が移動したことをすぐに地図に反映することができる自律移動装置、自律移動方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の自律移動装置は、
地図を作成し、前記地図に基づいて移動する自律移動装置であって、
制御部を備え、
前記制御部は、
可動物体及びそれ以外の静止物体の存否を繰り返し確認し、
前記地図の所定の領域毎に、前記可動物体の存在確率及び前記静止物体の存在確率を記録するとともに、前記可動物体の存在確率と前記静止物体の存在確率とを異ならせることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、可動物体を他の障害物と区別することにより、可動物体が移動したことをすぐに地図に反映することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態１に係る自律移動装置の機能構成を示す図である。
【図２】（Ａ）深度センサでのスキャン例を示す図である。（Ｂ）深度センサで得られる深度データの例を示す図である。
【図３】実施形態１に係る自律移動装置のソフトウェアモジュールの全体構成を示す図である。
【図４】実施形態１に係る地図作成モジュールのフローチャートである。
【図５】実施形態１に係る地図作成部が作成する占有格子地図の具体例を示す図である。
【図６】実施形態１に係る経路計画モジュールのフローチャートである。
【図７】実施形態１に係る移動制御モジュールのフローチャートである。
【図８】本発明の実施形態２に係る自律移動装置の機能構成を示す図である。
【図９】実施形態２に係る地図作成モジュールのフローチャートである。
【図１０】実施形態２に係る経路計画モジュールのフローチャートである。
【図１１】実施形態２に係る移動制御モジュールのフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態に係る自律移動装置について、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【００１１】
（実施形態１）
本発明の実施形態に係る自律移動装置は、周囲の地図を作成しながら、用途に応じて自律的に移動する装置である。この用途とは、例えば、警備監視用、屋内掃除用、ペット用、玩具用等である。
【００１２】
図１に示すように、本発明の実施形態１に係る自律移動装置１００は、制御部１０、記憶部２０、センサ部３０、撮像部４１、駆動部４２、通信部４３、を備える。
【００１３】
制御部１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等で構成され、記憶部２０に記憶されたプログラムを実行することにより、後述する各部（位置姿勢推定部１１、地図作成部１２、可動物体領域地図変更部１３、経路計画部１４、移動制御部１５、深度データ取得部１６、可動物体存在方向取得部１７）の機能を実現する。また、制御部１０は、タイマー（図示せず）を備え、経過時間をカウントすることができる。
【００１４】
記憶部２０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ)、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、機能的に、画像記憶部２１、地図記憶部２２、深度データ記憶部２３、可動物体存在方向記憶部２４を含む。ＲＯＭには制御部１０のＣＰＵが実行するプログラムや、プログラムを実行する上で予め必要なデータが記憶されている。ＲＡＭには、プログラム実行中に作成されたり変更されたりするデータが記憶される。
【００１５】
画像記憶部２１には、撮像部４１が撮影した画像が記憶される。ただし、記憶容量を節約するために、撮影した全ての画像を記憶しなくてもよい。自律移動装置１００は、画像記憶部２１に記憶された複数の画像を用いて、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）処理により、地図の作成や自機位置の推定を行う。自機位置の推定に用いた画像については、その画像の情報と共に、その画像を撮影した時の自機位置（自機の位置及び向き）の情報も記憶される。
【００１６】
地図記憶部２２には、ＳＬＡＭ処理や後述するセンサ部３０からの情報に基づいて地図作成部１２が作成した地図が記憶される。
【００１７】
深度データ記憶部２３には、角度毎の深度データが記憶される。深度データとは、後述する深度センサ３１を用いて、図２に示すように、深度センサ３１（自律移動装置１００）を中心に水平面内を所定の角度間隔（例えば１°）で、各角度の方向に存在する物体までの距離を計測したデータである。その方向に物体が無ければ、その角度に対する深度データは無しとなる。
【００１８】
可動物体存在方向記憶部２４には、後述する可動物体検出センサ３２を用いて可動物体の存在を検出した方向（可動物体存在方向）が記憶される。
【００１９】
センサ部３０は、深度センサ３１と可動物体検出センサ３２を含む。深度センサ３１は、角度を変えながらスキャンして、その角度の方向に存在する物体までの距離を計測可能なセンサである。スキャンする角度の範囲や、角度の分解能は使用する深度センサに応じて様々な値があり得るが、本実施形態においては、スキャンする角度の範囲は−３０°〜３０°の範囲とし、角度の分解能はΔＡ（例えば、ΔＡ＝０．１°）とする。
【００２０】
可動物体検出センサ３２は、人等の可動物体を検出するセンサであり、例えば赤外線カメラ（サーモグラフィー）である。赤外線カメラを用いれば、人だけでなく、ペットや動物も検出可能である。また、後述する撮像部４１で取得した画像から人等の可動物体を画像認識することによって、可動物体を検出しても良い。撮像部４１で取得した画像から可動物体を画像認識する場合は独立した可動物体検出センサ３２は不要であり、撮像部４１が可動物体検出センサ３２を兼ねることになる。この場合、画像認識によって、人やペットだけでなく、車や電車等の動くおもちゃ、ロボット、他の自律移動装置１００等を検出することも可能になる。以下、これら、可動物体検出センサ３２で検出することが可能な人、ペット、動くおもちゃ、ロボット、他の自律移動装置１００等を総称して可動物体と呼ぶ。また、センサ部３０は、これら以外のセンサ、例えば、他の物体に衝突したことを検知するバンパーセンサー（図示せず）、自機の動きを検出する角速度センサや加速度センサ（いずれも図示せず）等を備えても良い。
【００２１】
撮像部４１は、単眼の撮像装置（カメラ）を備える。撮像部４１は、例えば、３０ｆｐｓで画像（フレーム）を取得する。自律移動装置１００は、撮像部４１が逐次取得した画像に基づいて、ＳＬＡＭ処理により、自機位置と周囲環境とをリアルタイムに認識しながら、自律移動を行う。
【００２２】
駆動部４２は、独立２輪駆動型であって、車輪とモータとを備える移動手段である。自律移動装置１００は、２つの車輪の同一方向駆動により前後の平行移動（並進移動）を、２つの車輪の逆方向駆動によりその場での回転（向き変更）を、２つの車輪のそれぞれ速度を変えた駆動により旋回移動（並進＋回転（向き変更）移動）を、行うことができる。また、各々の車輪にはロータリエンコーダが備えられており、ロータリエンコーダで車輪の回転数を計測し、車輪の直径や車輪間の距離等の幾何学的関係を利用することで並進移動量及び回転量を計算できる。
【００２３】
例えば、車輪の直径をＤ、回転数をＲ（ロータリエンコーダにより測定）とすると、その車輪の接地部分での並進移動量はπ・Ｄ・Ｒとなる。また、車輪の直径をＤ、車輪間の距離をＩ、右車輪の回転数をＲＲ、左車輪の回転数をＲＬとすると、向き変更の回転量は（右回転を正とすると）３６０°×Ｄ×（ＲＬ−ＲＲ）／（２×Ｉ）となる。この並進移動量や回転量を逐次足し合わせていくことで、駆動部４２は、いわゆるオドメトリとして機能し、自機位置（移動開始時の位置及び向きを基準とした位置及び向き）を計測することができる。なお、本明細書では、自機の「向き」のことを自機の「姿勢」ともいう。
【００２４】
なお、車輪の代わりにクローラを備えるようにしても良いし、複数（例えば二本）の足を備えて足で歩行することによって移動を行うようにしても良い。これらの場合も、二つのクローラの動きや、足の動きに基づいて、車輪の場合と同様に自機の位置や向き（姿勢）の計測が可能である。
【００２５】
通信部４３は、外部装置と通信するためのモジュールであり、外部装置と無線通信する場合にはアンテナを含む無線モジュールである。例えば、通信部４３は、Ｂｌｕｅｔｏｏｔｈ（登録商標）に基づく近距離無線通信を行うための無線モジュールである。通信部４３を用いることにより、自律移動装置１００は、外部とデータの受け渡し等を行うことができる。例えば、自律移動装置１００に目的地を指示する際には、この通信部４３を介して目的地の情報を伝える。
【００２６】
次に、制御部１０の機能について説明する。制御部１０は、位置姿勢推定部１１、地図作成部１２、可動物体領域地図変更部１３、経路計画部１４、移動制御部１５、深度データ取得部１６、可動物体存在方向取得部１７を含み、自律移動装置１００の移動制御等を行う。また、制御部１０は、マルチスレッド機能に対応しており、複数のスレッド（異なる処理の流れ）を並行して実行することができる。
【００２７】
位置姿勢推定部１１は、撮像部４１が撮影し画像記憶部２１に記憶された画像を複数用いて、ＳＬＡＭ処理により自機の位置や姿勢を推定する。また、この位置や姿勢の推定の際には、駆動部４２から取得できるオドメトリの情報も用いることができる。
【００２８】
地図作成部１２は、深度センサ３１や、可動物体検出センサ３２からの情報を用いて障害物（物体）の位置を記録した占有格子地図を作成し、地図記憶部２２に記憶する。この占有格子地図は、平面を格子点に分割し、各格子点に「観測回数」、「検出回数」、「物体の有無」を記録したものである。「観測回数」はその格子点を深度センサ３１で観測した回数であり、「検出回数」は、その格子点の位置に物体が存在することを深度センサ３１で検出した回数である。つまり地図には、「検出関数」÷「観測回数」で求まる、その格子点における物体の存在確率を記録していると考えることができる。また、「物体の有無」は、「物体有り」、「物体無し」、「未観測」の３通りの値を取る。
【００２９】
可動物体領域地図変更部１３は、地図作成部１２が作成した地図の中に存在していた可動物体が移動等でいなくなった場合に、すぐに地図からその可動物体の存在を消去できるように、可動物体の存在している領域に対応する地図データを変更する。
【００３０】
経路計画部１４は、地図作成部１２が作成した地図に基づき、自機の現在位置から目的地までの経路を計画する。
【００３１】
移動制御部１５は、地図作成部１２が作成した地図と、経路計画部１４が計画した経路に基づき、自機の移動方向や移動速度を決定し、駆動部４２を制御する。
【００３２】
深度データ取得部１６は、深度センサ３１から所定の方向（角度）毎に、深度データ（物体までの距離）を取得する。その方向に物体が存在しない場合は、深度データは無しとなって、取得されない。
【００３３】
可動物体存在方向取得部１７は、可動物体検出センサ３２の検出情報に基づき、検出された可動物体が存在する方向（可動物体存在方向）を取得する。可動物体が検出されなければ、可動物体の存在方向の情報は無しとなる。
【００３４】
以上、自律移動装置１００の機能構成について説明した。次に、自律移動装置１００のソフトウェアモジュールの全体構成について、図３を参照して説明する。図３中、位置姿勢推定モジュール５１は上記機能構成で説明した位置姿勢推定部１１に対応し、地図作成モジュール５２は地図作成部１２に対応し、経路計画モジュール５３は経路計画部１４に対応し、移動制御モジュール５４は移動制御部１５に対応する。
【００３５】
これらのソフトウェアモジュールは、自律移動装置１００の電源が入ると、それぞれ別スレッドとして起動し、並行して実行が開始される。位置姿勢推定モジュール５１は、撮像部４１から取得する画像情報を用いてＳＬＡＭ処理を行い、駆動部４２から取得するオドメトリ情報も用いて、自機の位置及び姿勢を推定する。地図作成モジュール５２は、位置姿勢推定モジュール５１が推定した位置及び姿勢と、深度センサ３１から取得した深度データと、可動物体検出センサ３２から取得した可動物体の存在方向の情報と、に基づき、地図を作成する。
【００３６】
経路計画モジュール５３は、位置姿勢推定モジュール５１が推定した位置及び姿勢と、地図作成モジュール５２が作成した地図と、に基づき、経路を計画する。移動制御モジュール５４は、位置姿勢推定モジュール５１が推定した位置及び姿勢と、地図作成モジュール５２が作成した地図と、経路計画モジュール５３が計画した経路と、に基づき、駆動部４２を制御する移動制御情報（主に速度情報）を生成する。そして、駆動部４２は、移動制御モジュール５４が生成した移動制御情報に基づいて駆動され、目的地への移動が行われる。
【００３７】
では、可動物体の移動をすぐに反映できる地図を作成するための地図作成モジュール５２の処理内容について、図４を参照して説明する。
【００３８】
まず、地図作成部１２は、地図記憶部２２に記憶されている地図を初期化する（ステップＳ１０１）。地図の初期化は、占有格子地図の全ての格子点における「観測回数」及び「検出回数」を０にし、「物体の有無」を「未観測」にすることにより行われる。次に制御部１０は、自律移動装置１００が動作を終了するか否かを判定する（ステップＳ１０２）。ユーザが自律移動装置１００の電源を落とした場合や、バッテリーの残量が所定量（例えば残り３％等）を下回った場合等に、自律移動装置１００は動作を終了する。自律移動装置１００が動作を終了するなら（ステップＳ１０２；Ｙｅｓ）、処理を終了する。動作を終了しないなら（ステップＳ１０２；Ｎｏ）、深度データ取得部１６は、深度センサ３１の角度を−３０°から＋３０°まで変えながら深度データを取得し、深度データ記憶部２３に記憶する（ステップＳ１０３）。
【００３９】
次に制御部１０は、位置姿勢推定部１１がその時点で推定している自機の位置及び姿勢を取得する（ステップＳ１０４）。そして、可動物体存在方向取得部１７は、可動物体検出センサ３２を用いて可動物体が存在する方向（角度の範囲）を取得し、可動物体存在方向記憶部２４に記憶する（ステップＳ１０５）。次に、各角度での深度データに基づいて地図を作成するために、制御部１０は、角度の初期値としてＡ＝−３０°を設定する（ステップＳ１０６）。そして、制御部１０は角度Ａにおける深度データが存在するか否かを判定する（ステップＳ１０７）。
【００４０】
角度Ａにおける深度データが存在しなければ（ステップＳ１０７；Ｎｏ）、地図作成部１２は、地図上で角度Ａに対応する全ての格子点の「観測回数」に１を加算する（ステップＳ１０８）。この処理について、図５に示す占有格子地図６０を参照して、具体例で説明する。図５のＬ１で示す線が、深度センサ３１からの角度Ａに対応する線だとすると、ステップＳ１０８の処理は、図５のＬ１が通る灰色で示す全ての格子点の「観測回数」に１を加算する。そして、ステップＳ１１２に進む。なお、角度Ａに対応する線上の格子点は、ステップＳ１０４で取得した自律移動装置１００の位置及び姿勢の値と、深度センサ３１を原点とする極座標の値と、から求めることができる。
【００４１】
角度Ａにおける深度データが存在するなら（ステップＳ１０７；Ｙｅｓ）、地図作成部１２は、角度Ａにおける深度データ（深度センサ３１を原点とする極座標での位置）を、ステップＳ１０４で取得した自機の位置及び姿勢の値を用いて、格子点の座標に変換し、物体の存在する格子点を取得する（ステップＳ１０９）。そして、地図作成部１２は、物体の存在する格子点の「検出回数」に１を加算する（ステップＳ１１０）。次に、地図作成部１２は、深度センサ３１から物体までの全ての格子点の「観測回数」に１を加算する（ステップＳ１１１）。
【００４２】
この処理について再度図５を参照して説明する。図５のＬ２で示す線が、角度Ａにおける深度データが存在する線だとすると、ステップＳ１１０の処理は、図５の障害物の左にある濃い灰色で示す格子点の「検出回数」に１を加算する。そして、ステップＳ１１１の処理は、図５のＬ２で示す線が通る灰色及び濃い灰色で示す全ての格子点の「観測回数」に１を加算する。そして、ステップＳ１１２に進む。なお、角度Ａに対応する深度センサ３１から物体までの全ての格子点は、ステップＳ１０４で取得した自機の位置及び姿勢の値と、深度センサ３１を原点とする極座標の値と、ステップＳ１０９で取得した物体の存在する格子点と、から求めることができる。
【００４３】
そして、制御部１０は、Ａの値にΔＡ（深度センサの分解能。例えば０．１°）を加算し（ステップＳ１１２）、Ａが３０°以下であるかを判定する（ステップＳ１１３）。Ａが３０°以下であるなら（ステップＳ１１３；Ｙｅｓ）、ステップＳ１０７に戻る。
【００４４】
Ａが３０°を超えているなら（ステップＳ１１３；Ｎｏ）、全ての格子点について「物体の有無」を設定するために、地図作成部１２は、「物体の有無」を設定する格子点の位置を初期化する（ステップＳ１１４）。ここでは、格子点を（Ｘ，Ｙ）で表すことにし、初期値としてＸもＹも０に設定する。次に、地図作成部１２は、格子点（Ｘ，Ｙ）の「観測回数」が０より大きいか否かを判定する（ステップＳ１１５）。
【００４５】
格子点（Ｘ，Ｙ）の「観測回数」が０なら（ステップＳ１１５；Ｎｏ）、地図作成部１２は、その格子点の「物体の有無」を「未観測」に設定し（ステップＳ１１６）、ステップＳ１２２に進む。なお、ステップＳ１０１での地図の初期化処理によって、全ての格子点の「物体の有無」は「未観測」に設定済なので、ステップＳ１１６の処理無しでステップＳ１２２に進んでも良い。
【００４６】
格子点（Ｘ，Ｙ）の「観測回数」が０より大きいなら（ステップＳ１１５；Ｙｅｓ）、地図作成部１２は、その格子点の「検出回数」÷「観測回数」が閾値以上であるか否かを判定する（ステップＳ１１７）。ここで、閾値は、地図にヒステリシスを持たせるためのもので、通常は０．５〜０．８位の値（例えば０．６）を設定する。
【００４７】
「検出回数」÷「観測回数」が閾値未満なら（ステップＳ１１７；Ｎｏ）、地図作成部１２は、その格子点の「物体の有無」を「物体無し」に設定し（ステップＳ１１８）、ステップＳ１２２に進む。
【００４８】
「検出回数」÷「観測回数」が閾値以上なら（ステップＳ１１７；Ｙｅｓ）、地図作成部１２は、その格子点の「物体の有無」を「物体有り」に設定する（ステップＳ１１９）。そして、可動物体領域地図変更部１３は、格子点（Ｘ，Ｙ）が可動物体の存在する領域か否かを判定する（ステップＳ１２０）。この判定は、自律移動装置１００の位置及び姿勢を基準（極座標の原点）として、格子点（Ｘ，Ｙ）を極座標（動径ｒ，角度θ）に変換したときの角度θが、ステップＳ１０５で取得した可動物体の存在する角度の範囲に入っているか否かで判定することができる。
【００４９】
格子点（Ｘ，Ｙ）が可動物体の存在する領域でなければ（ステップＳ１２０；Ｎｏ）、ステップＳ１２２に進む。一方、格子点（Ｘ，Ｙ）が可動物体の存在する領域なら（ステップＳ１２０；Ｙｅｓ）、可動物体領域地図変更部１３は、格子点（Ｘ，Ｙ）の「検出回数」を、その点の「観測回数」×閾値に設定する（ステップＳ１２１）。もし、「観測回数」×閾値が整数にならず、「検出回数」として整数値しか設定できない場合は、「観測回数」×閾値の小数部分を切り上げた値を、その点の「検出回数」に設定する。
【００５０】
そして、地図作成部１２は、「物体の有無」の設定対象の格子点を次に進める（ステップＳ１２２）。この処理は、例えば、Ｘに１を加算し、Ｘが規定範囲を超えたらＸを０に戻してＹに１を加算する。そして、地図作成部１２は、全ての格子点（Ｘ，Ｙ）の「物体の有無」を設定したか否かを判定する（ステップＳ１２３）。これは、先に説明したようにステップＳ１２２でＸやＹに１を加算している場合なら、Ｙの値が規定範囲を超えたか否かを判定すればよい。
【００５１】
まだ全ての格子点の「物体の有無」を設定していないなら（ステップＳ１２３；Ｎｏ）、ステップＳ１１５に戻り、全ての格子点の「物体の有無」を設定しているなら（ステップＳ１２３；Ｙｅｓ）、ステップＳ１０２に戻る。
【００５２】
以上の処理により、深度センサ３１で観測した全ての格子点の「物体の有無」に、実際に観測された物体の有無が設定される。また、可動物体検出センサ３２で観測した可動物体の存在する格子点の「検出回数」は、ステップＳ１１７の判定においてぎりぎり閾値を上回るように設定されるので、可動物体が移動していなくなると、ステップＳ１１７での判定ですぐに閾値を下回るようになり、ステップＳ１１８において、その格子点は「物体無し」に設定されるようになる。したがって、可動物体が移動したことをすぐに地図に反映することができる。
【００５３】
次に、地図作成モジュール５２で作成された地図を用いて目的地までの経路を計画する経路計画モジュール５３の処理内容について、図６を参照して説明する。
【００５４】
まず、制御部１０は、自律移動装置１００が動作を終了するか否かを判定する（ステップＳ２０１）。動作を終了するなら（ステップＳ２０１；Ｙｅｓ）、処理を終了する。動作を終了しないなら（ステップＳ２０１；Ｎｏ）、経路計画部１４は、目的地が設定されたか否かを判定する（ステップＳ２０２）。目的地は、自律移動装置１００のユーザが通信部４３を介して設定することもあるし、自律移動装置１００が必要に応じて（例えば、バッテリー残量が所定量（例えば１０％）を下回った場合に、充電ステーションを目的地に設定する等）自律的に設定することもある。
【００５５】
目的地が設定されているなら（ステップＳ２０２；Ｙｅｓ）、地図を取得するためにステップＳ２０４へ進む。目的地が設定されていないなら（ステップＳ２０２；Ｎｏ）、経路計画部１４は、移動制御モジュール５４からエラーが通知されたか否かを判定する（ステップＳ２０３）。エラーが通知されていないなら（ステップＳ２０３；Ｎｏ）、ステップＳ２０１に戻る。エラーが通知されたなら（ステップＳ２０３；Ｙｅｓ）、再度地図を取得するためにステップＳ２０４に進む。
【００５６】
そして、経路計画部１４は、地図作成モジュール５２が作成した、その時点で最新の地図を取得する（ステップＳ２０４）。次に、経路計画部１４は、位置姿勢推定モジュール５１が推定した自機の現在の位置及び姿勢を取得する（ステップＳ２０５）。そして、経路計画部１４は、取得した地図並びに位置及び姿勢と設定された目的地とに基づき、現在位置から目的地までの経路を計画する（ステップＳ２０６）。
【００５７】
そして、経路計画部１４は、経路が計画できたか否か（経路が存在するか否か）を判定する（ステップＳ２０７）。経路が存在しないなら（ステップＳ２０７；Ｎｏ）、ユーザにその旨を通知する等のエラー処理を行い（ステップＳ２０８）、ステップＳ２０１に戻る。経路が存在するなら（ステップＳ２０７；Ｙｅｓ）、経路計画部１４は、計画した経路を移動制御モジュール５４に通知し（ステップＳ２０９）、ステップＳ２０１に戻る。
【００５８】
以上の経路計画モジュール５３の処理により、目的地までの経路が得られる。次に、この経路を用いて目的地まで移動制御を行う移動制御モジュール５４の処理内容について、図７を参照して説明する。
【００５９】
まず、制御部１０は、自律移動装置１００が動作を終了するか否かを判定する（ステップＳ３０１）。動作を終了するなら（ステップＳ３０１；Ｙｅｓ）、処理を終了する。動作を終了しないなら（ステップＳ３０１；Ｎｏ）、移動制御部１５は、経路計画モジュール５３により経路が設定されたか否か（経路計画モジュール５３が計画した経路が通知されたか否か）を判定する（ステップＳ３０２）。経路が通知されていないなら（ステップＳ３０２；Ｎｏ）、経路がまだ設定されていないということなので、ステップＳ３０１に戻る。
【００６０】
経路が通知されたなら（ステップＳ３０２；Ｙｅｓ）、経路が設定されたということなので、移動制御部１５は、経路計画モジュール５３が計画したその経路を取得する（ステップＳ３０３）。次に、移動制御部１５は、位置姿勢推定モジュール５１が推定した自機の現在の位置及び姿勢を取得する（ステップＳ３０４）。そして、移動制御部１５は、自機が目的地に到着したか否かを判定する（ステップＳ３０５）。なお、経路の情報には、目的地の情報も含まれるため、移動制御部１５は、現在の位置が経路に含まれる目的地と一致するか否かを判定することにより、目的地に到着したか否かを判定することができる。
【００６１】
目的地に到着したなら（ステップＳ３０５；Ｙｅｓ）、ステップＳ３０１に戻る。目的地に到着していないなら（ステップＳ３０５；Ｎｏ）、移動制御部１５は、地図作成モジュール５２が作成した、その時点で最新の地図を取得する（ステップＳ３０６）。そして、移動制御部１５は、取得した地図及び経路に基づき、経路に沿って移動可能か否かを判定する（ステップＳ３０７）。
【００６２】
経路に沿って移動が可能でないなら（ステップＳ３０７：Ｎｏ）、経路計画モジュール５３にエラーを通知し（ステップＳ３０８）、ステップＳ３０１に戻る。経路に沿って移動可能なら（ステップＳ３０７；Ｙｅｓ）、経路に沿って移動するように駆動部４２を制御し（ステップＳ３０９）、ステップＳ３０４に戻る。
【００６３】
以上の移動制御モジュール５４の処理により、自律移動装置１００は、目的地まで移動することができる。そして、地図作成モジュール５２が作成する地図は、可動物体が移動したことがすぐに反映される地図になっているため、過去に人等の可動物体が存在しても、現在その可動物体が存在しない場所であれば、経路計画モジュール５３は、そのような場所を回避しない経路を計画することができ、自律移動装置１００が本来必要のない回避動作をすることを防ぐことができる。
【００６４】
（実施形態１の変形例１）
実施形態１の地図作成モジュール５２の処理において、図４のステップＳ１２１では、「観測回数」×閾値を「検出回数」に設定することにより、「検出回数」÷「観測回数」が閾値と一致するようにしているが、「検出回数」÷「観測回数」が閾値よりも若干大きくなるように「検出回数」を設定しても良い。このようにすると、可動物体の存在に対しても小さなヒステリシスを生じさせることができる。つまり、その後、可動物体の存在した場所での深度センサ３１による物体の検出が１〜２回行われなかったとしても、「検出回数」÷「観測回数」を閾値以上に保つことができる。深度センサ３１は物体が存在しているにもかかわらず、その物体の存在を検出できないことがまれにあるが、このような処理によって、小さなヒステリシスを生じさせれば、深度センサ３１での検出漏れがあった場合でも、可動物体の存在を見失わずに地図を作成することができる。
【００６５】
（実施形態１の変形例２）
実施形態１では、可動物体の存在する場所に対応する格子点の「検出回数」を、ステップＳ１１７の判定においてぎりぎり閾値を上回るように変更する。しかし、各格子点では、「検出回数」÷「観測回数」に基づいて、その格子点での物体の正しい存在確率が得られている。したがって、「検出回数」を変更せずに、正しい存在確率をそのまま保ちたい場合もあると考えられる。このような場合には、地図の情報として、「観測回数」、「検出回数」、「物体の有無」に加えて「閾値」も含めるようにし、可動物体が検出された格子点の「閾値」を通常の閾値（例えば０．６）よりも大きな値（例えば０．９）の「可動物体用閾値」に設定するようにしても良い。この場合、地図の初期化の際には各格子点の「閾値」には通常の閾値を設定しておく。
【００６６】
このようにすることにより、「観測回数」や「検出回数」を変更しなくても、実施形態１と同じく、可動物体が移動していなくなると、ステップＳ１１７での判定で「検出回数」÷「観測回数」はすぐに「閾値」（可動物体用閾値）を下回るようになる。したがって、可動物体が移動したことをすぐに地図に反映することができる。しかも、各格子点では、「検出回数」÷「観測回数」に基づいて、その格子点での物体の正しい存在確率を得ることができる。なお、「閾値」を「可動物体用閾値」に変更した格子点については、その後その格子点の「検出回数」÷「観測回数」が通常の閾値（例えば０．６）を下回ったら、「閾値」の値を可動物体用閾値から通常の閾値の値に戻す。
【００６７】
（実施形態２）
実施形態１に係る自律移動装置１００において、地図作成モジュール５２が作成する地図は、可動物体が移動したことがすぐに反映される地図ではあるが、可動物体と他の静止物体とは区別されずに記憶されている。したがって、経路計画モジュール５３は、地図を取得するタイミングによっては、直後に移動して存在しなくなる可動物体を回避する経路を計画することになる。この場合、自律移動装置１００は本来不要な回避のための移動を行うことになる。このようなことを避けるためには、可動物体以外の静止物体だけに基づいて経路を計画することが考えられる。静止物体だけに基づく経路に沿って移動すると、可動物体に衝突する可能性があるが、衝突を防ぐには、自律移動装置は、移動する最中に可動物体を回避する移動制御を行えば良い。このような考え方に基づく実施形態２について説明する。
【００６８】
本発明の実施形態２に係る自律移動装置１０１の機能構成は、図８に示すように、実施形態１に係る自律移動装置１００の機能構成に、可動物体無し地図作成部１８と可動物体無し地図記憶部２５を追加した構成になっている。その他の構成については実施形態１に係る自律移動装置１００と同じである。ただし、地図記憶部２２が各格子点に記録する「物体の有無」は、「物体有り」、「物体無し」、「未観測」に加え「可動物体有り」の値も取るので、合計４通りの値を取る。
【００６９】
可動物体無し地図作成部１８は、深度センサ３１や可動物体検出センサ３２からの情報を用いて、可動物体の存在を無視して、障害物（物体）の位置を記録した占有格子地図を作成し、可動物体無し地図記憶部２５に記憶する。つまり深度センサ３１が物体を検出しても、可動物体検出センサ３２によりその物体が可動物体であることが検出された場合は、その物体は存在しないものとして占有格子地図を作成する。この占有格子地図も、地図作成部１２が作成する占有格子地図と同様に、平面を格子点に分割し、各格子点に「観測回数」、「検出回数」、「物体の有無」を記録したものである。
【００７０】
可動物体無し地図記憶部２５には、可動物体無し地図作成部１８が作成した地図が記憶される。
【００７１】
実施形態２に係る自律移動装置１０１のソフトウェアモジュールの全体構成は、図３に示す実施形態１に係る自律移動装置１００のソフトウェアモジュールの全体構成と同じなので、説明は省略する。
【００７２】
では、実施形態２に係る地図作成モジュール５２の処理内容について、図９を参照して説明する。ただし、この処理内容は、図４を参照して説明した実施形態１に係る地図作成モジュール５２の処理内容と重複する部分がかなりあるため、適宜省略しながら説明する。
【００７３】
まず、ステップＳ４０１〜ステップＳ４０９は、図４のステップＳ１０１〜Ｓ１０９と同じ処理なので、説明を省略する。
【００７４】
ステップＳ４１０では、可動物体無し地図作成部１８は、ステップＳ４０９で取得した物体の存在する格子点が可動物体の存在する領域か否かを判定する。この判定は、角度Ａが、ステップＳ４０５で取得した可動物体の存在する角度の範囲に入っているか否かで判定することができる。
【００７５】
物体の存在する格子点が可動物体の存在する領域なら（ステップＳ４１０；Ｙｅｓ）、ステップＳ４１３に進む。物体の存在する格子点が可動物体の存在する領域でないなら（ステップＳ４１０；Ｎｏ）、地図作成部１２は、物体の存在する格子点の「検出回数」に１を加算する（ステップＳ４１１）。次に、地図作成部１２は、深度センサ３１から物体までの全ての格子点の「観測回数」に１を加算する（ステップＳ４１２）。
【００７６】
ステップＳ４１３〜ステップＳ４２０は、図４のステップＳ１１２〜Ｓ１１９と同じ処理なので、説明を省略する。また、ステップＳ４２１は図４のステップＳ１２２と同じ処理なので、説明を省略する。
【００７７】
ステップＳ４２２では、地図作成部１２は、全ての格子点（Ｘ，Ｙ）の「物体の有無」を設定したか否かを判定する。まだ全ての格子点の「物体の有無」を設定していないなら（ステップＳ４２２；Ｎｏ）、ステップＳ４１６に戻り、全ての格子点の「物体の有無」を設定しているなら（ステップＳ４２２；Ｙｅｓ）、可動物体無し地図作成部１８は、それまでに地図作成部１２が作成した地図を可動物体無し地図記憶部２５に保存する（ステップＳ４２３）。
【００７８】
次に、各角度での深度データに基づいて、可動物体を含めた地図を作成するために、制御部１０は、角度の初期値としてＡ＝−３０°を設定する（ステップＳ４２４）。そして、制御部１０は角度Ａにおける深度データが存在するか否かを判定する（ステップＳ４２５）。角度Ａにおける深度データが存在しなければ（ステップＳ４２５；Ｎｏ）、ステップＳ４２９に進む。
【００７９】
角度Ａにおける深度データが存在するなら（ステップＳ４２５；Ｙｅｓ）、地図作成部１２は、角度Ａにおける深度データ（深度センサ３１を原点とする極座標での位置）を、ステップＳ４０４で取得した自機の位置及び姿勢の値を用いて、格子点の座標に変換し、物体の存在する格子点を取得する（ステップＳ４２６）。そして、この物体の存在する格子点が可動物体の存在する領域か否かを判定する（ステップＳ４２７）。この判定は、角度Ａが、ステップＳ４０５で取得した可動物体の存在する角度の範囲に入っているか否かで判定することができる。
【００８０】
この物体の存在する格子点が可動物体の存在する領域でないなら（ステップＳ４２７；Ｎｏ）、ステップＳ４２９に進む。この格子点が可動物体の存在する領域なら（ステップＳ４２７；Ｙｅｓ）、その格子点の「物体の有無」を「可動物体有り」に設定する（ステップＳ４２８）。
【００８１】
ステップＳ４２９では、制御部１０は、Ａの値にΔＡ（深度センサの分解能。例えば０．１°）を加算する。そして、制御部１０は、加算後のＡが３０°以下であるかを判定する（ステップＳ４３０）。Ａが３０°以下であるなら（ステップＳ４３０；Ｙｅｓ）、ステップＳ４２５に戻る。Ａが３０°を超えているなら（ステップＳ４３０；Ｎｏ）、地図作成部１２は、地図記憶部２２に記憶されている占有格子地図を可動物体有り地図として保存し（ステップＳ４３１）、ステップＳ４０２に戻る。
【００８２】
以上の処理により、可動物体の存在を無視した可動物体無し地図と、可動物体も含めた全ての障害物（物体）が記録された可動物体有り地図の、２つの地図が作成される。次に、実施形態２に係る経路計画モジュール５３の処理内容について、図１０を参照して説明する。ただし、この処理内容は、図６を参照して説明した実施形態１に係る経路計画モジュール５３の処理内容と重複する部分がかなりあるため、適宜省略しながら説明する。
【００８３】
まず、ステップＳ５０１は、図６のステップＳ２０１と同じ処理である。次に、経路計画部１４は、目的地が設定されたか否かを判定する（ステップＳ５０２）。目的地が設定されているなら（ステップＳ５０２；Ｙｅｓ）、経路計画部１４は、地図作成モジュール５２が作成した、可動物体無し地図を取得し（ステップＳ５０５）、ステップＳ５０６に進む。
【００８４】
目的地が設定されていないなら（ステップＳ５０２；Ｎｏ）、経路計画部１４は、移動制御モジュール５４からエラーが通知されたか否かを判定する（ステップＳ５０３）。エラーが通知されていないなら（ステップＳ５０３；Ｎｏ）、ステップＳ５０１に戻る。エラーが通知されたなら（ステップＳ５０３；Ｙｅｓ）、経路計画部１４は、地図作成モジュール５２が作成した、その時点で最新の可動物体有り地図を取得し（ステップＳ５０４）、ステップＳ５０６に進む。
【００８５】
ステップＳ５０６〜ステップＳ５１０は、図６のステップＳ２０５〜Ｓ２０９と同じ処理である。
【００８６】
以上の経路計画モジュール５３の処理により、最初は可動物体無し地図により、可動物体の存在を無視した効率的な経路を計画することができる。そして、もし可動物体の存在により経路に沿って移動できない場合には、移動制御モジュール５４からエラーが通知されるので、その時点での可動物体有り地図により、可動物体を回避した経路を計画できる。次に、この経路を用いて目的地まで移動制御を行う移動制御モジュール５４の処理内容について、図１１を参照して説明する。
【００８７】
ただし、実施形態２に係る移動制御モジュール５４の処理内容は、図７を参照して説明した実施形態１に係る移動制御モジュール５４の処理内容と、ステップＳ６０６以外は同じであるので、異なる点のみを説明する。実施形態１に係る移動制御モジュール５４では、１つの占有格子地図しか使用していなかったので、ステップＳ３０６では、その１つの占有格子地図を取得する。実施形態２に係る移動制御モジュール５４では、可動物体無し地図と可動物体有り地図の２種類の占有格子地図が存在するが、ステップＳ６０６では、可動物体有り地図を取得する。ステップＳ６０６以外は、図１１に示す実施形態２に係る移動制御モジュール５４の処理は、図７に示す実施形態１に係る移動制御モジュール５４の処理と同じである。
【００８８】
以上の処理により、移動制御の際は、常に可動物体の存在も考慮して駆動部４２を制御し、可動物体にぶつからないように移動することができる。しかも、経路は最初、可動物体無し地図を用いて計画されるので、可動物体の存在を無視した効率的な経路を計画できる。
【００８９】
（変形例１）
上述した実施形態では、角度Ａにおける深度データが存在しない場合は、角度Ａに対応する全ての点（図５のＬ１で示す線が通る灰色の点）の観測回数に１を加算している。しかし、深度センサ３１によっては測定可能な距離範囲があり、物体（障害物）がその範囲より近くにあるのか遠くにあるのか区別できない場合には、深度データが存在せず、物体（障害物）の位置を地図に記録する事ができない。このような場合、図４の実施形態１の地図作成モジュール５２のステップＳ１０８や、図９の実施形態２の地図作成モジュール５２のステップＳ４０８は省略してよい。ステップＳ１０８やステップＳ４０８の処理は、地図が大きい場合にはかなり処理時間がかかるので、この処理を省略することにより、地図作成モジュール５２の処理の高速化を図ることができる。
【００９０】
（変形例２）
また、上述した実施形態は、いずれも、物体（障害物）の存在確率ｐを「検出回数」÷「観測回数」で計算し、ｐが閾値以上であるか否かにより、物体の有無を判定している。この場合、存在確率ｐの計算には割り算を行う必要があるが、割り算は加算や減算に比較して計算時間がより多く必要である。そこで、対数オッズの考え方を用いることにより、割り算を不要とする処理にすることもできる。対数オッズｌは、ｌｏｇ（ｐ／（１−ｐ））で求められ、存在確率ｐの値の範囲は０〜１であるが、これに対応する対数オッズｌの値の範囲は−∞〜∞となる。このため、存在確率ｐやその閾値は小数の値として扱う必要があるが、これに対応する対数オッズｌやその閾値は整数の値を用いることができ、この観点でも処理をかなり高速化できることになる。また、対数オッズを使うことにより、速度の効果だけでなく存在確率を０や１付近で更新した時に、桁落ちの発生を防ぐという効果もある。
【００９１】
対数オッズの考え方を用いる場合の処理について、実施形態１の地図作成モジュール５２（図４）の処理における相違点を中心に説明する。なお、高速化に貢献するので、変形例１の説明で述べたステップＳ１０８の処理の省略も同時に行うこととする。対数オッズの考え方を用いる場合は、地図記憶部２２に記憶する占有格子地図６０の各格子点には「観測回数」及び「検出回数」の代わりに「対数オッズ」を記録する。そして、ステップＳ１０１では、「対数オッズ」を初期値０に、「物体の有無」を「未観測」に設定する。
【００９２】
そして、物体を検出したら、ステップＳ１１０では、「検出回数」に１を加算する代わりに、「対数オッズ」に２を加算する。そして、ステップＳ１１１では、深度センサ３１から物体までの格子点の「観測回数」に１を加算する代わりに、深度センサ３１から物体の手前までの格子点の「対数オッズ」から２を減算する。つまり、図５のＬ２で示す線が通る格子点のうち、灰色の格子点の「対数オッズ」から２を減算し、濃い灰色の格子点の「対数オッズ」に２を加算する。なお、ここで加減算している値の２は例であって、他の値でも良い。また加算する値と減算する値とは異なっていても良い。
【００９３】
そして、物体の有無の判定には、物体有り判定用閾値（例えば１）と、物体無し判定用閾値（例えば−１）の二つの閾値を用意する。ステップＳ１１５の判定では、「対数オッズ」が物体無し判定用閾値以上、かつ、物体有り判定用閾値未満なら「未観測領域」と判定して、ステップＳ１１６に進む。また、ステップＳ１１７では、「対数オッズ」が物体無し判定用閾値未満なら、「物体無し領域」と判定して、ステップＳ１１８に進む。そして、「対数オッズ」が物体有り判定用閾値以上なら、「物体有り領域」と判定して、ステップＳ１１９に進む。そして、ステップＳ１２１では、「対数オッズ」に、物体有り判定用閾値を設定する。これ以外の処理は、図４に示す実施形態１の地図作成モジュール５２の処理と同じである。このように、対数オッズの考え方を導入することにより、整数の加減算だけで物体の有無を判定できるようになり、地図作成モジュール５２の処理を高速化することができる。
【００９４】
上記の変形例２では、実施形態１に基づいて対数オッズの考え方を導入する方法を説明したが、実施形態２においても、物体有無判定について、上記と同様に処理することにより、対数オッズの考え方を導入することができる。
【００９５】
なお、本発明における「存在確率」は、各格子点における物体の存否を判定するための基準となる値として便宜上「存在確率」と呼んでいるものであり、物体の正確な存在確率である必要はない。したがって、上記全ての実施形態及び全ての変形例において、各格子点に記録している「検出回数」と「観測回数」の組や、「対数オッズ」のことも存在確率と呼ぶ。
【００９６】
なお、上述した実施形態では、深度センサ３１のスキャンする角度の範囲は、−３０°〜３０°としたが、これに限定されない。全方位３６０°スキャンできる深度センサ３１を使用する場合は、スキャン範囲を−１８０°〜１８０°として処理してもよい。
【００９７】
また、上述した実施形態は、いずれも、撮像部４１が撮像した画像を画像記憶部２１に記憶し、画像記憶部２１に記憶された複数の画像を用いてＳＬＡＭ処理により、地図の作成や自機位置の推定を行うこととしている。しかし、ＳＬＡＭ処理を行わなくても、駆動部４２によるオドメトリの情報と深度センサ３１による角度毎の深度データとを用いれば、位置推定や地図作成を行うことができる。したがって、ＳＬＡＭ処理を行わない場合は、自律移動装置１００，１０１は、撮像部４１や画像記憶部２１を備えなくても良い。
【００９８】
なお、この発明の自律移動装置１００，１０１の各機能は、通常のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のコンピュータによっても実施することができる。具体的には、上記実施形態では、自律移動装置１００，１０１が行う自律移動制御処理のプログラムが、記憶部２０のＲＯＭに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）及びＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｃ）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【００９９】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【０１００】
（付記１）
地図を作成し、前記地図に基づいて移動する自律移動装置であって、
制御部を備え、
前記制御部は、
可動物体及びそれ以外の静止物体の存否を繰り返し確認し、
前記地図の所定の領域毎に、前記可動物体の存在確率及び前記静止物体の存在確率を記録するとともに、前記可動物体の存在確率と前記静止物体の存在確率とを異ならせることを特徴とする自律移動装置。
【０１０１】
（付記２）
前記可動物体は人、生物、又は可動物であることを特徴とする、
付記１に記載の自律移動装置。
【０１０２】
（付記３）
地図を作成し、前記地図に基づいて移動する自律移動装置であって、
物体までの距離である深度データを取得する深度センサと、
可動物体を検出する可動物体検出センサと、
制御部とを備え、
前記制御部は、
前記深度センサが取得した深度データに基づいて、所定の領域毎に、前記物体の存在確率を記録する地図を作成し、
前記可動物体検出センサが前記可動物体を検出すると、前記可動物体が検出された前記所定の領域における前記存在確率を変更する、
自律移動装置。
【０１０３】
（付記４）
前記制御部は、
前記深度センサに、所定の方向毎に物体の存否を確認させ、物体が存在する場合には該物体までの距離である深度データを取得させ、
前記可動物体検出センサに、可動物体を検出させ、該可動物体検出センサが検出した情報に基づき、検出された可動物体が存在する方向を取得し、
前記深度センサに取得させた深度データによって定まる前記所定の領域での、前記物体の該深度データに基づく存在確率を記録する地図を作成し、
前記取得した方向に存在する可動物体に対応する前記所定の領域における前記存在確率を変更する、
付記３に記載の自律移動装置。
【０１０４】
（付記５）
前記制御部が作成する地図は、前記存在確率が所定の閾値以上であるか否かにより前記物体の前記所定の領域における存否を表し、
前記制御部は、前記取得した方向に存在する可動物体に対応する前記所定の領域における前記存在確率を、前記所定の閾値に変更する、
付記４に記載の自律移動装置。
【０１０５】
（付記６）
前記制御部が作成する地図は、前記存在確率が所定の閾値以上であるか否かにより前記物体の前記所定の領域における存否を表し、
前記制御部は、前記取得した方向に存在する可動物体に対応する前記所定の領域における前記存在確率を、前記所定の閾値よりも所定の値だけ大きな値に変更する、
付記４に記載の自律移動装置。
【０１０６】
（付記７）
前記制御部が作成する地図は、前記存在確率が所定の閾値以上であるか否かにより前記物体の前記所定の領域における存否を表し、
前記制御部は、前記取得した方向に存在する可動物体に対応する前記所定の領域における前記閾値を、所定の可動物体用閾値に変更する、
付記４に記載の自律移動装置。
【０１０７】
（付記８）
前記制御部は、
前記取得した方向以外の方向において、前記深度センサに取得させた深度データによって定まる前記所定の領域での前記存在確率により、前記可動物体以外の物体の該領域における存否を表す可動物体無し地図を作成し、
前記可動物体無し地図により、前記取得した方向に存在する前記可動物体に対応する前記所定の領域の前記存在確率を変更する、
付記４に記載の自律移動装置。
【０１０８】
（付記９）
前記制御部は、
前記地図及び前記可動物体無し地図に基づいて目的地までの経路を計画し、
前記経路に基づいて自機の移動を制御し、
目的地が設定された直後は前記可動物体無し地図に基づいて前記目的地までの経路を計画する、
付記８に記載の自律移動装置。
【０１０９】
（付記１０）
前記制御部は、前記可動物体無し地図に基づいて計画した経路では自機の移動を制御できない場合は、前記地図に基づいて経路を計画する、
付記９に記載の自律移動装置。
【０１１０】
（付記１１）
前記制御部は、
前記存在確率を前記物体の存否の確認回数に対する前記深度データの取得回数の割合として地図に記録する、
付記４から１０のいずれか１つに記載の自律移動装置。
【０１１１】
（付記１２）
前記制御部は、
前記存在確率を対数オッズにより地図に記録する、
付記３から１０のいずれか１つに記載の自律移動装置。
【０１１２】
（付記１３）
地図を作成して、前記作成した地図に基づいて移動するための自律移動方法であって、
可動物体を検出すると、可動物体が検出された領域の前記地図を変更する、
自律移動方法。
【０１１３】
（付記１４）
所定の方向毎に物体の存否を確認し、物体が存在する場合には該物体までの距離である深度データを取得する深度データ取得ステップと、
可動物体を検出し、検出した前記可動物体の存在する方向を取得する可動物体存在方向取得ステップと、
前記深度データ取得ステップで取得した深度データによって定まる所定の領域での、前記物体の該深度データに基づく存在確率により、前記物体の前記所定の領域における存否を表す地図を作成する地図作成ステップと、
前記可動物体存在方向取得ステップで取得した方向に存在する前記可動物体に対応する前記所定の領域の前記地図を変更する可動物体領域地図変更ステップと、
を備える自律移動方法。
【０１１４】
（付記１５）
コンピュータに、
所定の方向毎に物体の存否を確認し、物体が存在する場合には該物体までの距離である深度データを取得する深度データ取得ステップ、
可動物体を検出し、検出した前記可動物体の存在する方向を取得する可動物体存在方向取得ステップ、
前記深度データ取得ステップで取得した深度データによって定まる所定の領域での、前記物体の該深度データに基づく存在確率により、前記物体の前記所定の領域における存否を表す地図を作成する地図作成ステップ、
前記可動物体存在方向取得ステップで取得した方向に存在する前記可動物体に対応する前記所定の領域の前記地図を変更する可動物体領域地図変更ステップ、
を実行させるためのプログラム。
【符号の説明】
【０１１５】
１００，１０１…自律移動装置、１０…制御部、１１…位置姿勢推定部、１２…地図作成部、１３…可動物体領域地図変更部、１４…経路計画部、１５…移動制御部、１６…深度データ取得部、１７…可動物体存在方向取得部、１８…可動物体無し地図作成部、２０…記憶部、２１…画像記憶部、２２…地図記憶部、２３…深度データ記憶部、２４…可動物体存在方向記憶部、２５…可動物体無し地図記憶部、３０…センサ部、３１…深度センサ、３２…可動物体検出センサ、４１…撮像部、４２…駆動部、４３…通信部、５１…位置姿勢推定モジュール、５２…地図作成モジュール、５３…経路計画モジュール、５４…移動制御モジュール、６０…占有格子地図
【図１】
2018005470.tif 000003
【図２】
2018005470.tif 000004
【図３】
2018005470.tif 000005
【図４】
2018005470.tif 000006
【図５】
2018005470.tif 000007
【図６】
2018005470.tif 000008
【図７】
2018005470.tif 000009
【図８】
2018005470.tif 000010
【図９】
2018005470.tif 000011
【図１０】
2018005470.tif 000012
【図１１】
2018005470.tif 000013