(57)【要約】【課題】未知物体を認識することができる移動装置を提供する。【解決手段】移動装置１０は、データベース８０に予め記憶された特定情報により特定される物体を避けて移動する移動装置１０であって、移動装置１０の進行方向の画像を撮影するカメラ２０と、カメラ２０が撮影した画像に関する画像情報を記憶するメモリ３０と、移動装置１０が物体に対してスタックした場合、メモリ３０から当該物体を含む画像情報を読み出し、読み出した画像情報を用いて特定情報に当該物体が移動装置１０のスタックの原因となるスタック物体であることを示す情報を追加するスタック物体抽出部７０と、を備える。【選択図】図２
2020106872.tif 000002
【特許請求の範囲】
【請求項１】
データベースに予め記憶された特定情報により特定される物体を避けて移動する移動装置であって、
前記移動装置の進行方向の画像を撮影する撮影部と、
前記撮影部が撮影した前記画像に関する画像情報を記憶するメモリと、
前記移動装置が物体に対してスタックした場合、前記メモリから当該物体を含む前記画像情報を読み出し、読み出した前記画像情報を用いて前記特定情報に当該物体が前記移動装置のスタックの原因となるスタック物体であることを示す情報を追加するスタック物体抽出部と、を備える
移動装置。
【請求項２】
さらに、前記移動装置の走行を制御する走行制御部を備え、
前記走行制御部は、前記移動装置が前記物体に対してスタックした場合、スタックした位置を中心に前記移動装置を移動させ、
前記撮影部は、前記移動装置の移動に応じて前記物体に対して互いに異なる方向から複数の画像を撮影する
請求項１に記載の移動装置。
【請求項３】
前記画像情報は、前記撮影部が撮影した前記画像である
請求項１又は２に記載の移動装置。
【請求項４】
さらに、前記画像から物体の特徴を示す情報を抽出する特徴抽出部を有し、
前記画像情報は、前記画像に対して前記特徴抽出部が抽出した前記物体の特徴を示す情報である
請求項１又は２に記載の移動装置。
【請求項５】
さらに、前記移動装置の移動を検知する第１の検知部と、
前記第１の検知部の検知結果からスタックを検出するスタック検出部と、を備える
請求項１〜４のいずれか１項に記載の移動装置。
【請求項６】
前記スタック物体抽出部が前記メモリから読み出す前記画像情報は、前記スタック検出部がスタックを検出したときに撮影された画像及び前記スタック検出部がスタックを検出する前に撮影され、かつ前記物体が含まれた画像の少なくとも一方に関する情報を含む
請求項５に記載の移動装置。
【請求項７】
さらに、ユーザからの指示を取得する取得部を備え、
前記スタック物体抽出部は、前記取得部が前記移動装置の進行方向にある物体に対して前記ユーザからの前記移動装置の走行に関する指示を取得した場合、当該物体を含む画像情報に加えて前記ユーザからの前記指示を用いて前記特定情報に当該物体を追加する
請求項１〜６のいずれか１項に記載の移動装置。
【請求項８】
さらに、前記ユーザに対して撮影部が撮影した物体を含む画像を表示する表示部を備え、
前記取得部は、前記表示部に表示された前記物体に対する前記移動装置の走行に関する指示を前記ユーザから取得する
請求項７に記載の移動装置。
【請求項９】
前記特徴抽出部は、前記物体が前記スタック物体である可能性を示す確率を算出し、前記確率が第１閾値以上である場合に前記物体を前記スタック物体であると判定し、前記確率が前記第１閾値より低い第２閾値以上前記第１閾値未満である場合に前記物体をスタックする可能性がある物体であると判定し、
前記表示部が表示する画像は、前記スタックする可能性がある物体を含む画像である
請求項８に記載の移動装置。
【請求項１０】
さらに、前記物体又は前記移動装置の特性を検知する第２の検知部を備え、
前記特徴抽出部は、前記物体を含む画像及び前記特定情報に加え、前記第２の検知部が検知した検知結果から前記確率を算出する
請求項９に記載の移動装置。
【請求項１１】
データベースに予め記憶された特定情報により特定される物体を避けて移動する移動装置の物体検出方法であって、
前記移動装置の進行方向の画像を撮影し、
撮影された前記画像に関する画像情報を記憶し、
前記移動装置が物体に対してスタックした場合、前記物体を含む前記画像情報を読み出し、読み出した前記画像情報を用いて前記特定情報に当該物体が前記移動装置のスタックの原因となるスタック物体であることを示す情報を追加する
物体検出方法。
【請求項１２】
請求項１１に記載の物体検出方法をコンピュータに実行させるための
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、移動装置、移動装置の物体検出方法及びプログラムに関する。
【背景技術】
【０００２】
近年、自律的に走行が可能な移動装置が開発されている。例えば、特許文献１には、カメラ及び各種センサの情報から障害物（物体）を検知し、危険度が高いと判定した場合には当該障害物を回避するように走行ルールを修正する学習機能を持つ移動装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７―３１６７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の移動装置は、予め学習された物体しか検知できない。一方、実使用環境においては、予め学習された物体以外の物体（未知物体とも記載する）が存在するので、移動装置は未知物体を認識できることが望まれる。
【０００５】
そこで、本開示は、未知物体を認識することができる移動装置、物体検出方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の一態様に係る移動装置は、データベースに予め記憶された特定情報により特定される物体を避けて移動する移動装置であって、前記移動装置の進行方向の画像を撮影する撮影部と、前記撮影部が撮影した前記画像に関する画像情報を記憶するメモリと、前記移動装置が物体に対してスタックした場合、前記メモリから当該物体を含む前記画像情報を読み出し、読み出した前記画像情報を用いて前記特定情報に当該物体が前記移動装置のスタックの原因となるスタック物体であることを示す情報を追加するスタック物体抽出部と、を備える。
【０００７】
また、本開示の一態様に係る物体検出方法は、データベースに予め記憶された特定情報により特定される物体を避けて移動する移動装置の物体検出方法であって、前記移動装置の進行方向の画像を撮影し、撮影された前記画像に関する画像情報を記憶し、前記移動装置が物体に対してスタックした場合、前記物体を含む前記画像情報を読み出し、読み出した前記画像情報を用いて前記特定情報に当該物体が前記移動装置のスタックの原因となるスタック物体であることを示す情報を追加する。
【０００８】
また、本開示の一態様に係るプログラムは、上記の物体検出方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【０００９】
本開示によれば、未知物体を認識することができる移動装置、物体検出方法、及び、プログラムが実現される。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態１に係る移動装置の全体構成を示す斜視図である。
【図２】図２は、実施の形態１に係る移動装置の機能構成を示すブロック図である。
【図３】図３は、実施の形態１に係る移動装置の動作を示すフローチャートである。
【図４】図４は、実施の形態１の変形例１に係る移動装置の動作を示すフローチャートである。
【図５】図５は、実施の形態１の変形例１に係る移動装置が複数枚の画像を撮影する一例を示す図である。
【図６】図６は、実施の形態１の変形例２に係る移動装置の機能構成を示すブロック図である。
【図７】図７は、実施の形態２に係る移動装置の機能構成を示すブロック図である。
【図８】図８は、実施の形態２に係る移動装置の動作を示すフローチャートである。
【図９】図９は、実施の形態２の変形例に係る移動装置の機能構成を示すブロック図である。
【図１０】図１０は、実施の形態２の変形例に係る移動装置の動作を示すフローチャートである。
【図１１】図１１は、その他の実施の形態に係る移動装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下では、本開示の移動装置について、図面を用いて詳細に説明する。なお、以下に説明する実施の形態及び変形例は、いずれも本開示の好ましい一具体例を示すものである。したがって、以下の実施の形態及び変形例で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。よって、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００１２】
なお、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１３】
また、各図は、模式図であり、必ずしも厳密に図示されたものではない。また、各図において、実質的に同一の構成に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
【００１４】
また、以下の実施の形態で説明に用いられる図面においては座標軸が示される場合がある。Ｚ軸のマイナス側が床面側、Ｚ軸のプラス側が天井側を表している。また、Ｘ軸方向及びＹ軸方向は、Ｚ軸方向に垂直な平面上において、互いに直交する方向である。また、以下の実施の形態において、「平面視」とは、Ｚ軸方向から見ることを意味する。
【００１５】
（実施の形態１）
以下、本実施の形態に係る移動装置１０について、図１〜図３を参照しながら説明する。
【００１６】
［１−１．移動装置の構成］
まず、本実施の形態に係る移動装置１０の構成について、図１及び図２を参照しながら説明する。
【００１７】
図１は、本実施の形態に係る移動装置１０の全体構成を示す斜視図である。図２は、本実施の形態に係る移動装置１０の機能構成を示すブロック図である。
【００１８】
図１に示すように、本実施の形態に係る移動装置１０とは、自律して例えば一般家屋等の建物内の部屋の床面を走行しながら掃除するロボット型の掃除機である。移動装置１０は、部屋の様子をカメラ、及び、クリフセンサ等のセンサを用いて観測することにより、部屋の床面に存在する物体を避けるかを自律的に判定し掃除する。例えば、移動装置１０は、データベース８０に予め記憶された特定情報により特定される物体を避けて移動する（走行する）。なお、部屋は、移動装置１０が配置される空間の一例である。
【００１９】
移動装置１０は、平面視において、略三角形状を有するが、移動装置１０の平面視における形状は、特に限定されない。例えば、略矩形状でもよく。略円形状でもよい。
【００２０】
図２に示すように、移動装置１０は、カメラ２０と、メモリ３０と、センサ４０と、スタック検出部５０と、物体検出部６０と、スタック物体抽出部７０と、データベース８０と、走行制御部９０と、走行部１００とを備える。
【００２１】
カメラ２０は、移動装置１０が配置された部屋を撮影するカメラモジュールである。具体的には、カメラ２０は、少なくとも移動装置１０の進行方向の前方の画像を撮影する。カメラ２０は、走行中（掃除中）に移動装置１０の前方を継続して撮影する。例えば、移動装置１０の前方に物体が存在している場合、カメラ２０が撮影した画像には当該物体が写っている。なお、カメラ２０は撮影部の一例である。また、カメラ２０が撮影する画像は、静止画でもよいし動画でもよい。
【００２２】
メモリ３０は、カメラ２０が撮影した画像に関する情報を記憶する記憶装置である。例えば、メモリ３０は、カメラ２０が撮影した画像を一時的に記憶する画像バッファである。メモリ３０は、カメラ２０が撮影した画像に関する情報を逐次記憶する。本実施の形態では、メモリ３０は、カメラ２０が撮影した画像を逐次記憶する。なお、カメラ２０が撮影した画像は、画像情報の一例である。
【００２３】
メモリ３０は、フラッシュメモリ又は半導体メモリなどにより実現される。なお、メモリ３０の容量は特に限定されないが、カメラ２０が撮影した画像に関する情報を数秒程度記憶できる容量であればよい。
【００２４】
センサ４０は、移動装置１０が有する各種センサである。図１に示すように、本実施の形態では、センサ４０は、設置位置から床面までの距離を計測するクリフセンサ４１、移動装置１０の移動を検知するスリップセンサ４２、物体までの距離を検知する超音波センサ４３及びレンジセンサ（赤外線センサ）４４を有する。なお、スリップセンサ４２は、移動装置１０の移動を検知する第１の検知部の一例である。
【００２５】
クリフセンサ４１は、例えば、床面から約２ｃｍの高さに配置されている。床面に物体がない場合は、クリフセンサ４１の検知結果は２ｃｍとなる。一方、床面に物体がある場合は、クリフセンサ４１の検知結果は物体の高さに応じて異なるが、物体がない場合の検知結果(例えば、２ｃｍ)より小さくなる。クリフセンサ４１は、平面視において移動装置１０の外郭に沿って移動装置１０の床面側の面に複数配置されている。
【００２６】
また、スリップセンサ４２は、例えば、床面側の面に配置されている補助輪（図示しない）が動いているか否かを検知する。モータ（図示しない）が駆動することで移動装置１０が移動している場合、スリップセンサ４２は補助輪が動いていることを検知する。言い換えると、スリップセンサ４２は、補助輪が動いていることで、移動装置１０が移動していることを検知する。一方、モータは動作しているが移動装置１０が移動していない場合、スリップセンサ４２は補助輪が動いていないことを検知する。言い換えると、スリップセンサ４２は、モータは駆動しているが補助輪が動いていないことで、移動装置１０が移動していないことを検知する。なお、補助輪とは、モータと接続されていない車輪である。
【００２７】
また、超音波センサ４３及びレンジセンサ４４は、進行方向の前方に複数配置されている。超音波センサ４３及びレンジセンサ４４は、物体又は壁までの距離を検知する。
【００２８】
なお、移動装置１０が備えるセンサは、上記に限定されない。例えば、モータの回転速度を検知するセンサ又は物体に接しているかを検知する圧力センサ（例えば、タッチセンサ）であってもよいし、その他の自律移動装置に使用されるセンサであってもよい。
【００２９】
スタック検出部５０は、センサ４０の検知結果に基づいて移動装置１０がスタックしているか否かを検出する。例えば、スタック検出部５０は、スリップセンサ４２によりモータは動作しているが補助輪が動いていないことが検知されることで、移動装置１０がスタックしていることを検出する。
【００３０】
なお、本願明細書におけるスタック（Ｓｔｕｃｋ）とは、平面視において、移動装置１０が物体の少なくとも一部と重なっている状態で、走行部１００がモータの駆動通り（走行制御部９０の制御通り）に走行できない状態を意味する。スタックは、例えば、モータは駆動しているが、移動装置１０が移動していない状態を意味する。また、スタックは、例えば、移動装置１０が物体に乗り上げている、又は物体上で滑っている状態を意味する。言い換えると、移動装置１０が壁や高さのある物体などに衝突している状態は、本願明細書におけるスタックには含まれない。
【００３１】
スタック検出部５０は、具体的には、マイクロコンピュータであるが、専用回路などにより実現されてもよい。なお、スタック検出部５０は、スタック検出部５０が実行する制御プログラムを記憶する記憶部などを内蔵していてもよい。
【００３２】
物体検出部６０は、カメラ２０が撮影した画像を用いて、物体の検出を行う処理装置である。具体的には、カメラ２０が撮影した画像と、データベース８０に予め記憶されている、移動装置１０のスタックの原因となるスタック物体を特定する特定情報とを用いて、移動装置１０の前方に存在する物体（言い換えると、カメラ２０が撮影した画像に写っている物体）がスタック物体であるか否かを検出する。なお、物体検出部６０は、カメラ２０が撮影した画像に加え、センサ４０が検知した検知結果を用いて、物体の検出を行ってもよい。物体検出部６０は、特徴抽出部６１及び識別器６２から構成される。
【００３３】
特徴抽出部６１は、カメラ２０が撮影した画像から物体の特徴を示す情報を抽出する。カメラ２０は走行中に継続して画像を撮影しているので、特徴抽出部６１は、それぞれの画像に対して物体が写っている場合には当該物体の特徴を抽出する。
【００３４】
識別器６２は、特徴抽出部６１が抽出した特徴と、データベース８０に記憶されている特定情報とから、カメラ２０が撮影した画像にスタック物体が含まれるか否かの判定を行う。データベース８０には、スタック物体に関する特徴と、当該特徴を有する物体とが関係づけて記憶されている。例えば、色が白く、形状が矩形状である特徴を有する物体と、紙とが関係づけて記憶されている。これにより、特徴抽出部６１が抽出した特徴が、色が白く、形状が矩形状である場合、識別器６２は物体が紙でありスタック物体であると判定する。識別器６２がスタック物体であると判定すると、走行制御部９０は当該物体を避けるように移動装置１０の走行を制御する。
【００３５】
なお、物体検出部６０が行う処理方法は、機械学習（例えば、ディープラーニング）などにより予め学習されている。例えば、抽出する物体の特徴は、機械学習により予め学習されている。物体の特徴とは、例えば色に関する情報、及び、形状（例えば、２次元形状、３次元形状又はエッジ形状）に関する情報などである。
【００３６】
物体検出部６０は、具体的には、マイクロコンピュータであるが、専用回路などにより実現されてもよい。なお、物体検出部６０は、物体検出部６０が実行する制御プログラムを記憶する記憶部などを内蔵していてもよい。
【００３７】
物体検出部６０は、データベース８０に予め記憶されている物体（以降、既知物体とも記載する）に基づいて上記の処理を行う。しかし、移動装置１０の走行中、データベース８０に記憶されていない物体（データベース８０に記憶されている特徴の一部又は全てを有さない物体であり、以降未知物体とも記載する）が存在する場合がある。この場合、物体検出部６０は、未知物体をスタックの原因となる物体であると判定できず、移動装置１０は当該未知物体を避けずに走行する（例えば、未知物体を乗り越えるように走行する）場合がある。このとき、移動装置１０は、未知物体に対してスタックする場合がある。以下で説明するスタック物体抽出部７０は、移動装置１０が未知物体に対してスタックした場合に処理を行う処理装置である。
【００３８】
スタック物体抽出部７０は、スタック検出部５０が物体に対する移動装置１０のスタックを検知した場合、メモリ３０に記憶されている画像を用いて、当該物体の特徴を抽出する処理装置である。スタック物体抽出部７０は、画像収集部７１及び特徴抽出部７２を有する。
【００３９】
画像収集部７１は、スタック検出部５０がスタックを検知すると、メモリ３０に記憶されている画像から所定の画像を読み出す。例えば、所定の画像とは、スタックしたときに撮影された画像である。画像収集部７１がメモリ３０から読み出す画像は、画像情報の一例である。
【００４０】
特徴抽出部７２は、画像収集部７１が読み出した画像から移動装置１０がスタックした物体の特徴を抽出する。特徴抽出部７２が行う特徴を抽出する処理は、特徴抽出部６１と同様である。さらに、特徴抽出部７２は、抽出した特徴を用いて、データベース８０の特定情報を更新する。つまり、特徴抽出部７２は、抽出した特徴を有する物体はスタック物体であることを新たにデータベース８０に記憶させる。
【００４１】
スタック物体抽出部７０は、具体的には、マイクロコンピュータであるが、専用回路などにより実現されてもよい。なお、スタック物体抽出部７０は、スタック物体抽出部７０が実行する制御プログラムを記憶する記憶部などを内蔵していてもよい。
【００４２】
データベース８０は、スタック物体を特定する特定情報が予め記憶された記憶装置である。例えば、データベース８０は、特定情報として、スタック物体の特徴を示す特徴情報を記憶している。特定情報には、スタック物体の特徴と、当該特徴を有する物体が関係づけられていてもよい。また、移動装置１０が物体にスタックした場合に、データベース８０には、さらにスタック物体抽出部７０により抽出された当該物体の特徴を含む特徴情報（特定情報の一例）が追加される。つまり、データベース８０に記憶されている特定情報に、移動装置１０が物体にスタックするたびに当該物体がスタック物体であることを示す情報が追加される。言い換えると、スタック物体抽出部７０は、抽出したスタックした物体の特徴を示す情報を用いて、データベース８０の特定情報を更新する。
【００４３】
データベース８０は、フラッシュメモリ又は半導体メモリなどにより実現される。
【００４４】
走行制御部９０は、物体検出部６０の検出結果に基づいて走行部１００を制御する制御装置である。例えば、物体検出部６０が前方にある物体をスタック物体（例えば、紙など）であると判定した場合、走行制御部９０は当該物体（例えば、既知物体）を避けて走行するように走行部１００を制御する。また、例えば、物体検出部６０が前方にある物体をスタック物体ではないと判定した場合、走行制御部９０は当該物体を乗り越えるように走行部１００を制御する。
【００４５】
走行制御部９０は、具体的には、マイクロコンピュータであるが、専用回路などにより実現されてもよい。なお、走行制御部９０は、走行制御部９０が実行する制御プログラムを記憶する記憶部などを内蔵していてもよい。
【００４６】
走行部１００は、走行制御部９０による制御に基づいて移動装置１０を移動させるための車輪（図示しない）を有する。走行部１００は、移動装置１０の床面側の面に車軸を中心に回転可能に取り付けられており、モータの駆動により走行部１００が回転することで移動装置１０が移動する。走行部１００は、走行制御部９０の制御により移動装置１０を移動させることができれば、態様は特に限定されない。
【００４７】
［１−２．移動装置の動作］
続いて、移動装置１０の動作について、図３を参照しながら説明する。
【００４８】
図３は、本実施の形態に係る移動装置１０の動作を示すフローチャートである。具体的には、移動装置１０が走行中に物体に対してスタックした場合の動作を示すフローチャートである。
【００４９】
まず、移動装置１０が走行中（掃除中）にスタック検出部５０がセンサ４０の検知結果により移動装置１０のスタックを検出する（Ｓ１０でＹｅｓ）と、画像収集部７１はメモリ３０に記憶されている画像の中から、所定の画像を読み出す（収集する）（Ｓ１１）。所定の画像とは、スタックを検知した瞬間に撮影された画像及びスタックを検知する前に撮影され、かつスタックした物体を含む画像の少なくとも一方を含む。
【００５０】
スタックを検知したときに撮影された画像は、例えばスタックした物体の一部が撮影された画像である。また、スタックを検知する前に撮影された画像とは、例えば、スタックを検知したときに撮影された画像より物体に対する撮影領域が広い画像である。スタックを検知する前に撮影された画像とは、例えば、物体の全体が撮影された画像である。スタックを検知する前とは、例えば、移動装置１０の移動速度及び進行方向などから画像収集部７１により決定され、例えば、スタックする数秒前などである。
【００５１】
例えば、画像収集部７１は、スタックを検知したときに撮影された画像を読み出し、読み出した画像に物体が含まれていない場合に、スタックを検知する前に撮影された画像を読み出してもよい。なお、スタックを検知したときに撮影された画像とは、例えば、スタックを検知した時刻と最も近い時刻に撮影された画像である。
【００５２】
なお、物体の全体とは、移動装置１０の進行方向から当該物体を見た場合に、当該物体の見える部分を意味する。
【００５３】
ここで、画像収集部７１によりメモリ３０から読み出される画像は、複数枚であるとよい。また、画像収集部７１によりメモリ３０から読み出される画像は、画像情報の一例である。
【００５４】
画像収集部７１により画像が読み出されると、特徴抽出部７２により当該画像（具体的には、当該画像に含まれる物体）に対して特徴の抽出が行われる（Ｓ１２）。画像収集部７１が複数の画像を読み出した場合、それぞれの画像に対して特徴抽出部７２により特徴の抽出が行われる。
【００５５】
特徴抽出部７２は、抽出した特徴を用いてデータベース８０の特定情報を更新する（Ｓ１３）。つまり、データベース８０に記憶されている特定情報が更新される。具体的には、データベース８０に予め記憶されている特定情報に、ステップＳ１２で抽出した特徴を有する物体がスタック物体であることを示す情報が追加される。つまり、移動装置１０が物体にスタックした場合、当該物体の特徴を示す情報を用いてデータベース８０の特定情報が更新される。
【００５６】
なお、このとき物体の特徴に対して近い特徴を有する特定情報が既にデータベース８０に記憶されている場合、特徴抽出部７２は、当該物体の特徴と関係づける物体（例えば、紙など）を、特定情報に含まれ当該物体と近い特徴を有する物体であるとして記憶させてもよい。
【００５７】
さらに、ステップＳ１３でデータベース８０に記憶されている特定情報の更新が行われた後に、移動装置１０が物体を検知した場合、物体検出部６０は、当該物体が含まれる画像と、ステップＳ１３で更新されたデータベース８０の特定情報とを用いて当該物体がスタック物体であるか否かを検出することができる（Ｓ１４）。言い換えると、１回スタックした物体が進行方向前方に存在している場合、物体検出部６０は、カメラ２０が撮影した画像と、更新された特定情報とから、当該物体をスタック物体であると判定できる。つまり、データベース８０に予め記憶されていない物体が存在している場合であっても、１回スタックすることで当該物体がスタック物体であると学習することができる（言い換えると、追加学習を行うことができる）ので、移動装置１０は同じ物体に対して２回スタックすることを抑制できる。つまり、本実施の形態に係る移動装置１０は、未知物体を認識することができる。
【００５８】
なお、スタック検出部５０がスタックを検出しない場合（Ｓ１０でＮｏ）、走行（掃除）を継続する。
【００５９】
［１−３．効果など］
以上のように、本実施の形態に係る移動装置１０は、データベース８０に予め記憶された特定情報により特定される物体を避けて移動する移動装置１０であって、移動装置１０の進行方向の画像を撮影するカメラ２０（撮影部の一例）と、カメラ２０が撮影した画像に関する画像情報を記憶するメモリ３０と、移動装置１０が物体に対してスタックした場合、メモリ３０から当該物体を含む画像情報を読み出し、読み出した画像情報を用いて特定情報に当該物体が移動装置１０のスタックの原因となるスタック物体であることを示す情報を追加するスタック物体抽出部７０と、を備える。
【００６０】
これにより、データベース８０に記憶されている特定情報は、移動装置１０がスタックするたびに更新される。言い換えると、移動装置１０は物体（例えば、未知物体）に対して１回はスタックするが、スタックした物体の特徴がデータベース８０の特定情報に追加されるので、１回スタックした物体に対して、２回スタックすることを抑制できる。
【００６１】
例えば、移動装置がスタックした場合にスタックした位置を記憶し、その位置を避けるように走行制御される移動装置である場合、スタックした物体が移動されたとき、物体自体を認識していない（言い換えると、データベースにスタックした物体の特徴が追加されない）ので再び同じ物体に対してスタックしてしまうことがある。一方、本実施の形態に係る移動装置１０は、移動装置１０が物体（例えば、未知物体）にスタックしたとき、当該物体の特徴を抽出し、当該特徴を用いてデータベース８０の特定情報を更新するので、当該物体が移動された場合であっても、当該物体をスタック物体であると判定できる。つまり、１度スタックした物体を避けて走行することができる。よって、本実施の形態に係る移動装置１０であれば、未知物体を認識することができる。
【００６２】
さらに、物体にスタックするたびにデータベース８０の特定情報が更新されるので、使用しているうちにスタックすることが低減される（言い換えると、賢くなる）移動装置１０を実現できる。
【００６３】
また、画像情報は、カメラ２０が撮影した画像である。
【００６４】
これにより、スタック物体抽出部７０は、スタック検出部５０がスタックを検出したときにメモリ３０から画像を読み出し当該画像に含まれる物体の特徴を抽出する。言い換えると、スタック物体抽出部７０はスタックしたときに上記の処理を行う。つまり、スタック物体抽出部７０の処理量を低減することができる。
【００６５】
また、さらに、移動装置１０の移動を検知するスリップセンサ４２（第１の検知部の一例）と、スリップセンサ４２の検知結果からスタックを検出するスタック検出部５０と、を備える。
【００６６】
これにより、移動装置１０は、スリップセンサ４２の検知結果から自動的にスタックを検出することができる。
【００６７】
また、スタック物体抽出部７０がメモリ３０から読み出す画像情報は、スタック検出部５０がスタックを検出したときに撮影された画像及びスタック検出部５０がスタックを検出する前に撮影され、かつスタックした物体が含まれた画像の少なくとも一方に関する情報を含む。
【００６８】
これにより、スタックを検出したとき又はスタックを検出する前の画像を用いてデータベース８０の特定情報を更新できる。例えば、走行部１００が物体上で空回りすることでスタックした場合などスタックを検出したときの画像に当該物体が含まれていない場合に、スタックを検出する前の画像を用いることで当該物体の特徴の抽出が行える。なお、スタックを検出する前とは、移動装置１０の移動速度及び移動方向からスタック物体抽出部７０により決定され、例えば、スタックする数秒前などである。
【００６９】
また、物体検出方法は、データベース８０に予め記憶された特定情報により特定される物体を避けて移動する移動装置１０の物体検出方法であって、移動装置１０の進行方向の画像を撮影し、撮影された画像に関する画像情報を記憶し、移動装置１０が物体に対してスタックした場合、当該物体を含む画像情報を読み出し、読み出した画像情報を用いて特定情報に当該物体が移動装置１０のスタックの原因となるスタック物体であることを示す情報を追加する。
【００７０】
これにより、特定情報は、移動装置１０がスタックするたびに更新される。言い換えると、移動装置１０は物体に対して１回はスタックするが、スタックした物体（例えば、未知物体）の特徴を用いて特定情報が更新されるので、１回スタックした物体に対して、２回スタックすることを抑制できる。よって、本実施の形態に係る移動装置１０の物体検出方法であれば、未知物体を認識することができる。
【００７１】
また、本開示は、上記の物体検出方法をコンピュータに実行させるためのプログラムとして実現されてもよい。
【００７２】
これにより、物体検出方法と同様の効果を奏する。
【００７３】
（実施の形態１の変形例１）
以下、本変形例の形態に係る移動装置１０について、図４及び図５を参照しながら説明する。なお、本変形例に係る移動装置１０の機能構成は、実施の形態１と同様であり説明を省略する。また、図４において実施の形態１と同様の動作については図３と同一の符号を付し、説明を省略又は簡略化する。
【００７４】
図４は、本変形例に係る移動装置１０の動作を示すフローチャートである。
【００７５】
図４に示すように、移動装置１０が走行中（掃除中）にスタック検出部５０がセンサ４０の検知結果により移動装置１０のスタックを検出する（Ｓ１０でＹｅｓ）と、走行制御部９０は移動装置１０を移動させるために走行部１００を制御する（Ｓ２０）。具体的には、走行制御部９０は、スタックする前の進行方向に対して逆方向（後ろ方向とも記載する）に移動装置１０が移動するように走行部１００を制御する。例えば、走行制御部９０は走行部１００の車輪の回転方向を逆にすることで移動装置１０を後ろ方向に移動させる制御を行う。マットや絨毯などの毛先が走行部１００の車輪に絡まってスタックしている場合などでは、スタックした後でも後ろ方向に移動することが可能なときがあるためである。なお、ステップＳ２０で後ろ方向に進む距離は特に限定されない。後ろ方向に進む距離は、その位置からスタックした物体（例えば、未知物体）が撮影可能な距離であればよい。
【００７６】
ステップＳ２０において移動装置１０が後ろ方向に移動すると、走行制御部９０はスタックした物体に対して移動装置１０を移動させ、カメラ２０はスタックした物体に対して異なる方向から複数の画像を撮影する（Ｓ２１）。ここで、ステップＳ２１で画像を撮影する例について図５を用いて説明する。
【００７７】
図５は、本変形例に係る移動装置１０が複数枚の画像を撮影する一例を示す図である。具体的には、平面視において、移動装置１０が複数枚の画像を撮影する一例を示す図である。図５では、スタックした物体Ｏにおいて、スタックした位置を破線で示している。また、図５では、スタックした位置からステップＳ２０で後ろ方向に移動した後の移動装置１０を実線で図示し、ステップＳ２１でスタックした物体Ｏに対して移動した後の移動装置１０を破線で示している。
【００７８】
図５に示すように、スタックした物体Ｏに対してステップＳ２０で後ろ方向に移動した後、スタックした物体Ｏに対して移動し、スタックした物体Ｏを異なる方向から撮影する。例えば、走行制御部９０は、スタックした位置を中心に移動装置１０を移動させる。例えば、走行制御部９０は、スタックした位置を中心とする円の円弧上を移動させる。例えば、超音波センサ４３及びレンジセンサ４４を用いて、スタックした位置と移動装置１０との距離が略等しくなるように走行制御部９０は走行部１００を制御してもよい。なお、例えば、スタックした位置は、走行制御部９０が記憶していてもよい。
【００７９】
ステップＳ２１では、カメラ２０により、移動装置１０の移動に応じてスタックした物体Ｏが様々な方向から撮影される。つまり、ステップＳ２１では、複数枚の画像が撮影される。図５では、移動装置１０がスタックした物体Ｏを撮影した方向を実線の矢印で示しており、スタックした位置から後ろ方向に進んだ位置で１回撮影を行い、スタックした位置を中心に周方向に移動した位置からそれぞれ１枚ずつ撮影した場合を示している。これにより、スタックした物体Ｏに対して３枚の画像が取得できる。例えば、スタックした物体Ｏが見る方向により形状が異なる場合、異なる方向から撮影を行うことで、それぞれの方向において撮影した画像から特徴を抽出できる。よって、ステップＳ１０でスタックしたときの進行方向と異なる方向からスタックした物体Ｏに向かって走行した場合であっても、物体検出部６０は、物体Ｏをスタック物体であると判定することができる。なお、ステップＳ２１で撮影する画像は３枚に限定されず、画像は多いほどよい。
【００８０】
上記では、スタックした位置から後ろに進んだ位置（図５において実線で示した移動装置１０の位置）、及び、後ろに進んだ位置に対してスタックした位置を中心に周方向に移動した位置（図５において破線で示した移動装置１０の位置）のそれぞれから、物体Ｏのスタックした位置に向かって１枚の画像を撮影する例について説明した。つまり、物体Ｏに対して１つの方向から、１枚の画像を撮影する例について説明したが、これに限定されない。移動装置１０は、物体Ｏを撮影する１つの方向（例えば、図５において実線で示した移動装置１０の位置から物体Ｏのスタックした位置に向かう方向）において、複数枚の画像を撮影してもよい。例えば、移動装置１０は、物体Ｏの画像を撮影する１つの方向において、移動装置１０とスタックした位置との距離を変えながら、複数枚の画像を撮影してもよい。移動装置１０は、物体Ｏの画像を撮影する方向のそれぞれにおいて、移動装置１０とスタックした位置との距離を変えながら、複数枚の画像を撮影してもよい。
【００８１】
なお、図５ではスタックした物体Ｏを異なる方向から撮影するために走行制御部９０は移動装置１０を移動させる例について説明したがこれに限定されない。例えば、走行制御部９０は、移動装置１０を後ろ方向に移動させた位置（例えば、実線で示している移動装置１０の位置）で移動装置１０を回転させてもよい。なお、走行制御部９０が行う移動装置１０を移動させる制御には、移動装置１０を回転させる制御も含まれる。
【００８２】
ステップＳ２１で撮影した複数枚の画像に対して、ステップＳ１１〜ステップＳ１４が実行される。スタックした物体Ｏを様々な方向から撮影した画像を用いてデータベース８０の特定情報が更新されるので、物体検出部６０はより精度よく物体Ｏをスタック物体であると判定することができる。
【００８３】
以上のように、本変形例に係る移動装置１０は、さらに、移動装置１０の走行を制御する走行制御部９０を備え、走行制御部９０は、移動装置１０が物体に対してスタックした場合、スタックした位置を中心に移動装置１０を移動させ、カメラ２０（撮影部の一例）は、移動装置１０の移動に応じて当該物体に対して互いに異なる方向から複数の画像を撮影する。
【００８４】
これにより、スタックした物体Ｏ（例えば、未知物体）に対して異なる方向から複数枚の画像を撮影し、撮影した画像を用いてデータベース８０の特定情報を更新できる。つまり、特定情報に物体Ｏがスタック物体であることを示す複数の情報を追加することができる。よって、物体Ｏが見る方向によって形状が異なっている場合であっても、物体検出部６０はより精度よく物体Ｏをスタック物体であると判定することができる。言い換えると、物体検出部６０が行う判定の精度を向上させることができる。
【００８５】
（実施の形態１の変形例２）
続いて、本変形例に係る移動装置１０ａについて、図６を参照しながら説明する。なお、本変形例では、実施の形態１との相違点を中心に説明し、実質的に共通の構成については同一の符号を付し、説明を省略又は簡略化する場合がある。
【００８６】
図６は、本変形例に係る移動装置１０ａの機能構成を示すブロック図である。
【００８７】
図６に示すように、本変形例に係る移動装置１０ａは、メモリ３０が記憶する情報が実施の形態１に係る移動装置１０と異なる。具体的には、実施の形態１ではメモリ３０はカメラ２０が撮影した画像を記憶していたが、本変形例では、メモリ３０は画像から抽出された物体の特徴を示す情報を記憶する。
【００８８】
カメラ２０が撮影した画像は、物体検出部６０により特徴の抽出が行われる。具体的には、特徴抽出部６１により画像に含まれる物体に対する特徴の抽出が行われる。メモリ３０は、画像から特徴抽出部６１が抽出した物体の特徴を示す情報を記憶する。
【００８９】
スタック検出部５０がセンサ４０の検知結果からスタックを検出した場合、スタック物体抽出部７０ａは、メモリ３０からスタックした物体の特徴を示す情報を読み出し、読み出した特徴を示す情報を用いてデータベース８０の特定情報を更新する。言い換えると、スタック物体抽出部７０ａでは、特徴の抽出は行われない。なお、スタック物体抽出部７０ａがメモリ３０から読み出す物体の特徴を示す情報は、画像情報の一例である。
【００９０】
以上のように、本変形例に係る移動装置１０ａは、さらに、カメラ２０（撮影部の一例）が撮影した画像から物体の特徴を示す情報を抽出する特徴抽出部６１を有し、画像情報は、カメラ２０が撮影した画像に対して特徴抽出部６１が抽出した物体の特徴を示す情報である。
【００９１】
これにより、メモリ３０に記憶される画像情報の情報量が減るので、メモリ３０の容量を低減することができる。
【００９２】
（実施の形態２）
次に、本実施の形態に係る移動装置１０ｂについて、図７及び図８を参照しながら説明する。なお、本実施の形態では、実施の形態１との相違点を中心に説明し、実質的に共通の構成については同一の符号を付し、説明を省略又は簡略化する場合がある。
【００９３】
［２−１．移動装置の構成］
まず、本実施の形態に係る移動装置１０ｂの構成について、図７を参照しながら説明する。
【００９４】
図７は、本実施の形態に係る移動装置１０ｂの機能構成を示すブロック図である。
【００９５】
図７に示すように、本実施の形態に係る移動装置１０ｂは、取得部１１０を備える点に特徴を有する。その他の構成は、実施の形態１に係る移動装置１０と同様である。
【００９６】
取得部１１０は、ユーザからの指示を取得するユーザインタフェースである。取得部１１０は、例えば、移動装置１０ｂに設けられた押しボタンである。ユーザは、押しボタンを押すことにより移動装置１０ｂの走行に対して所定の指示を行う。例えば、ユーザは、移動装置１０ｂの進行方向にスタックしそうな物体が存在している場合、取得部１１０を介して当該物体を避けるように指示を行う。また、例えば、ユーザは、移動装置１０ｂの進行方向に物体が存在しているが、当該物体は移動装置１０ｂにより掃除してほしい物体であるので、当該物体を乗り越えるためモータの出力を調整する指示を行ってもよい。例えば、モータの出力を上げる指示を行ってもよい。例えば、取得部１１０は、押しボタンが複数設けられ押しボタンごとにユーザの指示が割り当てられてもよいし、押しボタンを押す回数からユーザの指示を取得してもよい。例えば、押しボタンを１回押すと物体を乗り越える指示となり、押しボタンを２回押すと物体を避ける指示となる。
【００９７】
スタック物体抽出部７０は、取得部１１０がユーザからの移動装置１０ｂの走行に関する指示を取得すると、メモリ３０に記憶されている画像と取得部１１０が取得したユーザの指示とを用いて、データベース８０の特定情報を更新する。
【００９８】
なお、移動装置１０ｂは、取得部１１０を介してユーザからスタックしていることを取得してもよい。
【００９９】
なお、取得部１１０は押しボタンであることに限定されない。例えば、取得部１１０はユーザの音声を取得してもよい。この場合、取得部１１０は、例えば、マイクロフォン等の音声検出装置により実現される。スタック物体抽出部７０は、メモリ３０に記憶されている画像（物体を含む画像）と、取得部１１０により取得された音声に基づく指示とを用いて、データベース８０の特定情報を更新する。つまり、スタック物体抽出部７０は、メモリ３０に記憶されている画像（物体を含む画像）と、取得部１１０により取得された音声に基づく指示とを用いて、特定情報を更新する。
【０１００】
また、取得部１１０は移動装置１０ｂに対するユーザの所定の操作を取得してもよい。所定の操作とは、例えば、移動装置１０ｂをタッチするなどの操作である。この場合、取得部１１０は、例えば、タッチセンサ（例えば、静電容量式のタッチセンサ）により実現される。
【０１０１】
また、取得部１１０は、移動装置１０ｂを遠隔操作する端末装置（図示しない）からユーザの指示を取得してもよい。この場合、取得部１１０は、端末装置からユーザの指示に基づく制御信号を受信する。取得部１１０は、具体的には、通信回路（通信モジュール）を含み、端末装置が備える送信部から無線通信によって制御信号を受信する。
【０１０２】
なお、端末装置とは、専用に開発されたコントローラ端末、スマートフォンつまり高機能携帯電話端末、携帯電話端末など、持ち運びが可能な携帯端末である。また、取得部１１０と端末装置との無線通信方法は特に限定されない。一例として、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または、Ｗｉ−Ｆｉ（登録商標）などの通信規格を用いた無線通信が行われてもよい。
【０１０３】
［２−２．移動装置の動作］
続いて、移動装置１０ｂの動作について、図８を参照しながら説明する。
【０１０４】
図８は、本実施の形態に係る移動装置１０ｂの動作を示すフローチャートである。具体的には、移動装置１０ｂが走行中に物体（例えば、未知物体）があり、ユーザから走行に対する指示を取得した場合の動作を示すフローチャートである。つまり、ユーザが移動装置１０ｂの近くにおり、移動装置１０ｂがスタックしそうなときに、ユーザから走行に対する指示をした場合の移動装置１０ｂの動作を示す。
【０１０５】
まず、移動装置１０ｂが走行中（掃除中）に、ユーザから物体（例えば、進行方向前方にある物体）に対する走行の指示を取得した場合（Ｓ３１でＹｅｓ）、ステップＳ１１〜ステップＳ１４が行われる。ユーザからの指示とは、前方にある物体を「回避する」、「回避しない」、又は「乗り越える」などの指示である。また、スタック物体抽出部７０は、取得部１１０を介してユーザからの指示を取得する。
【０１０６】
ユーザからの指示が「回避する」であった場合について、ステップＳ１１〜ステップＳ１４を説明する。取得部１１０を介してユーザから「回避する」の指示を取得すると、スタック物体抽出部７０は、メモリ３０から前方にある物体を含む画像を読み出し（Ｓ１１）、読み出した画像から物体の特徴を抽出する（Ｓ１２）。そして、スタック物体抽出部７０は、ステップＳ１２で抽出した特徴と、ユーザからの指示である「回避する」とを関係づけてデータベース８０の特定情報を更新する（Ｓ１３）。具体的には、データベース８０が予め記憶している特定情報に、ステップＳ１２で抽出した特徴を有する物体は回避する物体である（言い換えると、スタック物体である）ことを示す情報を追加する。つまり、スタック物体抽出部７０は、ステップＳ１２で抽出した特徴を用いて、データベース８０の特定情報を更新する。
【０１０７】
これにより、ステップＳ１２で抽出した特徴を有する物体を物体検出部６０が検知した場合、物体検出部６０は更新したデータベース８０の特定情報を用いて当該物体をスタック物体であると検出できる（Ｓ１４）。そして、走行制御部９０は、当該物体を回避するように走行を制御する。
【０１０８】
前方にある物体が未知物体（例えば、スタックの原因となる未知物体）である場合、物体検出部６０は当該未知物体を検出できていない場合がある。この場合であっても、未知物体に対するユーザからの指示を取得することで、移動装置１０ｂは当該未知物体にスタックする前に回避することができ、さらにデータベース８０の特定情報を更新することができる。つまり、取得部１１０を備えユーザからの指示を取得することで、移動装置１０ｂは、スタックの原因となる未知物体に対してスタックすることなく、当該未知物体がスタックの原因となる物体であることを特定情報に追加することができる。
【０１０９】
なお、取得部１１０が「回避しない」の指示を取得すると、スタック物体抽出部７０は、前方にある物体はスタック物体ではないとしてデータベース８０に登録してもよい。また、取得部１１０が「乗り越える」の指示を取得すると、スタック物体抽出部７０は、前方にある物体は乗り越える必要がある物体であるとしてデータベース８０の特定情報を更新する。例えば、物体検出部６０が前方の物体を乗り越える物体であると検出した場合、走行制御部９０はモータのパワーを上げる制御など、物体を乗り越えるための制御を行う。
【０１１０】
なお、ユーザからの物体に対する指示を取得していない場合（Ｓ３１でＮｏ）、移動装置１０ｂは走行を継続する。
【０１１１】
［２−３．効果など］
以上のように、本実施の形態に係る移動装置１０ｂは、さらに、ユーザからの指示を取得する取得部１１０を備え、スタック物体抽出部７０は、取得部１１０が移動装置１０ｂの進行方向にある物体に対してユーザからの移動装置１０ｂの走行に関する指示を取得した場合、当該物体を含む画像情報に加えてユーザからの指示を用いて特定情報に当該物体に関する情報を追加する。
【０１１２】
これにより、走行中（掃除中）にユーザからの指示に応じて、データベース８０の特定情報の更新を行うことができる。また、ユーザが掃除をしてほしい物体などユーザの意図を反映した走行を行うようにデータベース８０の特定情報の更新を行うことができる。
【０１１３】
（実施の形態２の変形例）
続いて、本変形例に係る移動装置１０ｃについて、図９及び図１０を参照しながら説明する。なお、本変形例では、実施の形態２との相違点を中心に説明し、実質的に共通の構成については同一の符号を付し、説明を省略又は簡略化する場合がある。
【０１１４】
まず、本変形例に係る移動装置１０ｃの構成について、図９を参照しながら説明する。
【０１１５】
図９は、本変形例に係る移動装置１０ｃの機能構成を示すブロック図である。
【０１１６】
図９に示すように、本変形例に係る移動装置１０ｃは、実施の形態２に係る移動装置１０ｂに比べ、さらに報知部１２０を備える点に特徴を有する。その他の構成は、実施の形態２に係る移動装置１０ｂと同様である。
【０１１７】
報知部１２０は、カメラ２０が撮影した画像をユーザに表示するユーザインタフェースである。報知部１２０は、例えば液晶ディスプレイなどの表示デバイス（表示部の一例）である。例えば、報知部１２０は、メモリ３０に記憶されている、カメラ２０が撮影した画像を表示する。例えば、報知部１２０は、スタック物体抽出部７０の制御により、画像を表示する。報知部１２０は、物体（例えば、未知物体）を含む画像を表示する。
【０１１８】
報知部１２０は、移動装置１０ｃを遠隔操作する端末装置にカメラ２０が撮影した画像（例えば、画像情報）を送信してもよい。報知部１２０は、具体的には、通信回路（通信モジュール）を含み、端末装置が備える受信部へ無線通信によって画像情報を送信する。
【０１１９】
なお、報知部１２０は、音又は光を発する機能を有してしてもよい。具体的には、報知部１２０はスピーカーなどを有し、音を発する。または、報知部１２０は発光装置などを有し、光を発する。例えば、報知部１２０は、物体（例えば、未知物体）が存在すると、当該物体が存在することを示す音（例えば、警告音）又は光（例えば、赤色などの警告光）を発してもよい。これにより、ユーザが近くにいる場合、ユーザに物体があることを報知することができる。
【０１２０】
なお、取得部１１０は、報知部１２０に表示された物体を含む画像に対するユーザからの移動装置１０ｃの走行に関する指示を取得してもよい。
【０１２１】
続いて、本変形例に係る移動装置１０ｃの動作について、図１０を参照しながら説明する。
【０１２２】
図１０は、本変形例に係る移動装置１０ｃの動作を示すフローチャートである。本変形例では、物体検出部６０がスタックする可能性がある物体を検出し、スタックする可能性がある物体の画像をユーザに提示し、ユーザからの指示に基づいてデータベース８０の特定情報を更新する点に特徴を有する。
【０１２３】
ここで、スタックする可能性がある物体について説明する。物体検出部６０は、カメラ２０が撮影した画像に含まれる物体とデータベース８０に記憶されている特定情報とから、カメラ２０に含まれる物体（例えば、移動装置１０ｃの前方にある物体）がスタック物体である確率を算出する。物体検出部６０は、例えば、スタック物体である確率が７０％（第１閾値の一例）以上である場合、画像に含まれる物体をスタック物体であると判定し、確率が５０％（第２閾値の一例）以上７０％未満である場合、画像に含まれる物体をスタックする可能性がある物体であると判定する。なお、確率５０％及び７０％は一例であり、移動装置１０ｃの使用環境などにより適宜決定される。以下の説明では、確率は、第１閾値が７０％、第２閾値が５０％である場合について説明する。なお、第２閾値は、第１閾値より低い値である。
【０１２４】
まず、移動装置１０ｃが走行中（掃除中）に、物体検出部６０が移動装置１０ｃの進行方向前方に物体を検出する（Ｓ４１でＹｅｓ）と、物体検出部６０は当該物体がスタック物体である確率を算出する。例えば、物体検出部６０は、カメラ２０が撮影した画像とデータベース８０に記憶されている特定情報とから、物体がスタック物体である確率を算出する。なお、確率の算出は特徴抽出部６１が行ってもよいし、識別器６２が行ってもよい。
【０１２５】
なお、移動装置１０ｃが走行中（掃除中）に、物体検出部６０が物体を検出していない（Ｓ４１でＮｏ）場合、走行が継続される。
【０１２６】
物体検出部６０が算出した確率が７０％以上である場合（Ｓ４２でＹｅｓ）、物体検出部６０は移動装置１０ｃの前方にある物体をスタック物体であると判定する。そして、走行制御部９０は、当該物体を回避するように移動装置１０ｃの走行を制御する（Ｓ４３）。
【０１２７】
物体検出部６０が算出した確率が７０％未満である場合（Ｓ４２でＮｏ）、ステップＳ４４が行われる。物体検出部６０が算出した確率が５０％以上７０％未満である場合（Ｓ４４でＹｅｓ）、物体検出部６０は物体がスタックする可能性がある物体であると判定する。そして、走行制御部９０は、当該物体を回避するように移動装置１０ｃの走行を制御する（Ｓ４５）。さらに、移動装置１０ｃは、ステップＳ４４でスタックする可能性がある物体であると判定した物体の画像を収集し、ユーザに提示する（Ｓ４６）。例えば、スタック物体抽出部７０は、報知部１２０にカメラ２０が撮影したスタックする可能性がある物体の画像を表示させてもよいし、端末装置に当該画像を送信してもよい。スタック物体抽出部７０は、スタックする可能性がある物体が複数ある場合、例えば、スタック物体である確率が高い物体の画像から順に報知部１２０に表示してもよい。また、報知部１２０は物体を含む画像と、ステップＳ４４で算出した確率とを合わせて表示してもよい。なお、この時点では、スタック物体抽出部７０は、スタックする可能性があると判定した物体の画像を用いて、データベース８０の特定情報を更新していない。
【０１２８】
取得部１１０を介してステップＳ４６で表示した物体に対するユーザの指示を取得する（Ｓ４７でＹｅｓ）と、スタック物体抽出部７０はユーザに表示した画像から物体の特徴を抽出し（Ｓ１２）、抽出した特徴及びユーザの指示を用いてデータベース８０の特定情報を更新する（Ｓ１３）。なお、ユーザからの指示は、実施の形態２と同様である。これにより、データベース８０の特定情報を更新した後に撮影された画像に対して、更新された特定情報を用いてスタック物体が含まれるかの検出が行われる（Ｓ１４）。
【０１２９】
なお、取得部１１０がユーザの指示を取得していない（Ｓ４７でＮｏ）場合、移動装置１０ｃはスタックする可能性があると判定した物体を回避するように走行してもよいし、当該物体を乗り越えて進むように走行してもよい。または、ユーザからの指示を取得するまで待機してもよい。
【０１３０】
なお、物体検出部６０が算出した確率が５０％未満である（Ｓ４４でＮｏ）場合、物体検出部６０は物体に対してスタックする可能性が低いと判定する。そして、走行制御部９０は、当該物体を乗り越えるように移動装置１０ｃの走行を制御する。つまり、走行制御部９０は、物体を検出する前と同様の走行を継続する制御を行う（Ｓ４８）。
【０１３１】
なお、ステップＳ４６〜ステップＳ４７及びステップＳ１２〜ステップＳ１４は、移動装置１０ｃが走行（掃除）を終了した後に行われてもよい。例えば、移動装置１０ｃの走行中にユーザは移動装置１０ｃが走行する空間におらず（例えば、外出しているなど）、移動装置１０ｃの走行が終了した後に当該空間にいる（例えば、帰宅したなど）場合、移動装置１０ｃはユーザが移動装置１０ｃを操作した又は触れたことを検知し、ステップＳ４６〜ステップＳ４７及びステップＳ１２〜ステップＳ１４を実行してもよい。
【０１３２】
なお、上記では、カメラ２０が撮影した画像からスタック物体である確率を算出する例を示したが、これに限定されない。例えば、物体検出部６０は、カメラ２０が撮影した画像及びデータベース８０に記憶されている特定情報に加えて、センサ４０が物体（例えば、未知物体）に対して検知した検知結果を用いて確率を算出してもよい。つまり、確率は、カメラ２０が撮影した画像と、センサ４０が検知した検知結果（センサ値）とを組み合わせて算出されてもよい。例えば、物体検出部６０は、クリフセンサ４１の検知結果を用いて確率を算出してもよい。例えば、物体検出部６０は、クリフセンサ４１が検知した物体の高さが高いほどスタック物体である確率が高くなるように確率を算出してもよい。なお、クリフセンサ４１が検知した物体の高さは物体の特性の一例であり、クリフセンサ４１は第２の検知部の一例である。物体の特性は、例えば、物体の形状、物体の大きさ又は物体と移動装置１０との位置関係などを示す。
【０１３３】
なお、物体検出部６０がスタック物体である確率を算出するためのセンサ４０はクリフセンサ４１に限定されない。また、物体検出部６０は、移動装置１０ｃが備える複数のセンサを用いてスタック物体である確率を算出してもよい。例えば、物体検出部６０は、超音波センサ４３、レンジセンサ４４、モータの回転速度（例えば、モータの出力）を検知するセンサ、物体に接しているかを検知する圧力センサ、又はその他の自律移動装置に使用されるセンサの少なくとも１つ以上のセンサ（第２の検知部の一例）の検知結果を用いて、確率を算出してもよい。超音波センサ４３及びレンジセンサ４４が検知した検知結果は、物体の特性の一例であり、モータの回転速度を検知するセンサが検知した検知結果は、移動装置１０の特性の一例である。移動装置１０の特性は、例えば、当該移動装置１０の移動速度、移動方向又はモータの出力など当該移動装置１０の移動を特定する特性を示す。この場合、第２の検知部は、複数のセンサから構成されてもよい。
【０１３４】
なお、物体検出部６０がカメラ２０により撮影された画像及びデータベース８０に記憶されている特定情報からスタック物体である確率を算出する、又は、カメラ２０により撮影された画像、データベース８０に記憶されている特定情報及びセンサ４０が検知した検知結果からスタック物体である確率を算出する算出の仕方は、予め機械学習（例えば、ディープラーニング）により学習されている。また、カメラ２０により撮影された画像及びセンサ４０が検知した検知結果からスタック物体である確率を算出する場合、カメラ２０が撮影した画像の方が確率に与える影響が大きくなるように確率が算出される。言い換えると、確率の算出において、センサ４０の検知結果よりカメラ２０が撮影した画像の方が優先される。
【０１３５】
また、物体検出部６０は、カメラ２０が撮影した画像から物体がスタック物体である確率を算出し、算出した確率が５０％（第２閾値の一例）以上、７０％（第１閾値の一例）未満である場合（Ｓ４２でＮｏ及びＳ４４でＹｅｓ）、センサ４０の検知結果に基づいて当該物体を回避するか走行を継続するかを判定してもよい。例えば、クリフセンサ４１が検知した物体の高さが予め定められた値以上である場合、物体検出部６０は当該物体を回避すると判定してもよい。つまり、物体検出部６０は、スタック物体であるか否かを判定するときにはカメラ２０が撮影した画像及びセンサの検知結果の一方を用い、スタックする可能性がある物体であるか否かを判定するときにはカメラ２０が撮影した画像及びセンサ４０の検知結果の他方を用いてもよい。
【０１３６】
また、移動装置１０ｃはステップＳ４４でスタックする可能性がある（言い換えるとスタックする可能性が高い）と判定した物体の画像をユーザに提示する例について説明したが、これに限定されない。例えば、ステップＳ４２でＹｅｓと判定された物体の画像をユーザに提示してもよいし、ステップＳ４４でＮｏと判定された物体の画像をユーザに提示してもよい。
【０１３７】
以上のように、本変形例に係る移動装置１０ｃは、さらに、ユーザに対してカメラ２０（撮影部の一例）が撮影した物体を含む画像を表示する報知部１２０（表示部の一例）を備え、取得部１１０は、報知部１２０に表示された物体に対する移動装置１０ｃの走行に関する指示をユーザから取得する。
【０１３８】
これにより、移動装置１０ｃが物体を検知したときにユーザが近くにいない場合であっても、ユーザから物体に対する指示を取得することができる。つまり、ユーザの指示に基づいてデータベース８０の特定情報を更新することができる。
【０１３９】
また、移動装置１０ｃが備える特徴抽出部６１は、物体がスタック物体である可能性を示す確率を算出し、確率が７０％（第１閾値の一例）以上である場合に当該物体をスタック物体であると判定し、確率が７０％より低い５０％（第２閾値の一例）以上７０％未満である場合に当該物体をスタックする可能性がある物体であると判定し、報知部１２０が表示する画像は、スタックする可能性がある物体を含む画像である。
【０１４０】
これにより、スタックする可能性がある物体を含む画像のみをメモリ３０に記憶しておけばよいので、メモリ３０の容量を低減することができる。また、スタックする可能性がある物体（言い換えると、スタックする可能性が高い物体）に対してユーザの指示を取得できるので、効率的にデータベース８０の特定情報を更新できる。
【０１４１】
また、移動装置１０ｃは、さらに、物体の厚み（物体又は移動装置１０の特性の一例）を検知するクリフセンサ４１（第２の検知部の一例）を備え、特徴抽出部６１は、当該物体を含む画像及び特定情報に加え、クリフセンサ４１が検知した物体の厚み（検知結果の一例）から確率を算出する。
【０１４２】
これにより、特徴抽出部６１が算出する確率の精度を向上させることができる。
【０１４３】
（他の実施の形態）
以上のように、本開示における技術の例示として、実施の形態及び変形例を説明した。そのために、添付図面および詳細な説明を提供した。
【０１４４】
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１４５】
また、上述の実施の形態及び変形例は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【０１４６】
例えば、図１１に示すように、実施の形態１の変形例２に係る移動装置の機能構成と実施の形態２に係る移動装置の機能構成とを組み合わせてもよい。図１１は、その他の実施の形態に係る移動装置１０ｄの機能構成を示すブロック図である。なお、この場合、メモリ３０は、カメラ２０が撮影した画像から抽出した物体の特徴、及び、報知部１２０が表示するための画像を記憶する。記憶する画像は、サムネイル画像又は代表画像でもよい。これにより、実施の形態１に係る移動装置に比べ、メモリ３０の容量を低減することができる。さらに、ユーザからの移動装置１０ｄの走行に関する指示を取得し、取得した指示に基づいてデータベース８０の特定情報を更新することができる。
【０１４７】
また、上記実施の形態及び変形例では、物体抽出部及び走行制御部は別体である例について説明したが、これに限定されない。例えば、物体抽出部及び走行制御部は一体で構成されていてもよい。
【０１４８】
また、上記実施の形態及び変形例では、特徴抽出部は画像に含まれる物体から特徴を抽出する例を示したが、特徴抽出部は画像の特定部分に含まれる物体から特徴を抽出してもよい。例えば、３つの超音波センサが検知した物体までの距離のうち、最も物体までの距離が近い超音波センサが配置されている位置に応じて特定部分を決定してもよい。例えば、右側に位置している超音波センサが最も物体までの距離が近かった場合、特徴抽出部はカメラが撮影した画像のうちの右半分を特定部分とし、当該特定部分の画像に含まれる物体から特徴を抽出してもよい。これにより、より正確に物体の画像を取得することができるので、物体の認識精度が向上する。
【０１４９】
また、上記実施の形態及び変形例では、スタック物体抽出部は移動装置がスタックした物体の特徴を抽出し、データベースの特定情報を更新する例について説明したが、これに限定されない。例えば、物体が写っていない画像の特徴を抽出し、当該特徴を安全に走行できる特徴としてデータベースに記憶してもよい。つまり、データベースは、移動装置が安全に走行できるような情報を記憶していてもよい。
【０１５０】
また、上記実施の形態及び変形例では、スリップセンサを第１の検知部の一例として説明したが、第１の検知部はスリップセンサに限定されない。第１の検知部は、移動装置の移動を検知できるセンサであれば特に限定されない。また、第１の検知部は、２以上のセンサを用いて構成されていてもよい。
【０１５１】
また、上記実施の形態及び変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、プロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。プロセッサは、半導体集積回路（ＩＣ）、又はＬＳＩ（Ｌａｒｇｅ  ｓｃａｌｅ  ｉｎｔｅｇｒａｔｉｏｎ）を含む一つ又は複数の電子回路で構成される。複数の電子回路は、一つのチップに集積されていてもよいし、複数のチップに設けられてもよい。複数のチップは一つの装置に集約されていてもよし、複数の装置に備えられていてもよい。
【０１５２】
また、本開示の全般的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラムまたはコンピュータが読み取り可能なＣＤ−ＲＯＭ、光ディスクなどの非一時的記録媒体などで実現されてもよい。プログラムは、記憶媒体に予め記憶されていてもよいし、インターネット等を含む広域通信網を介して記憶媒体に供給されてもよい。また、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【０１５３】
また、上記実施の形態及び変形例において説明された移動装置の動作における複数の処理の順序は一例である。複数の処理の順序は、変更されてもよいし、複数の処理は、並行して実行されてもよい。
【０１５４】
また、上記実施の形態及び変形例で示した構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
【０１５５】
なお、上記実施の形態及び変形例で示した移動装置は、自律移動する自律移動掃除機を例示したが、その他の自律移動ロボットでもよい。さらに、移動装置は、人の操作によって移動する移動装置であってもよい。この場合、通常は人の操作で移動するが、スタックの可能性があるとき、又はスタックした後などに、本発明のように自律制御するとしてもよい。また、人の操作で移動しているが、スタックの原因となるスタック物体があるときに、人にスタックの原因となる物体があることを示す情報を提示してもよい。
【産業上の利用可能性】
【０１５６】
本開示は、物体を回避しながら自律移動するロボットに広く利用可能である。特に、自律移動する掃除機又は監視ロボットなどにおいて有用である。
【符号の説明】
【０１５７】
１０、１０ａ、１０ｂ、１０ｃ、１０ｄ    移動装置
２０    カメラ（撮影部）
３０    メモリ
４０    センサ
４１    クリフセンサ（第２の検知部）
４２    スリップセンサ（第１の検知部）
４３    超音波センサ
４４    レンジセンサ
５０    スタック検出部
６０    物体検出部
６１    特徴抽出部
６２    識別器
７０、７０ａ    スタック物体抽出部
７１    画像収集部
７２    特徴抽出部
８０    データベース
９０    走行制御部
１００    走行部
１１０    取得部
１２０    報知部（表示部）
Ｏ    物体
【図１】
2020106872.tif 000003
【図２】
2020106872.tif 000004
【図３】
2020106872.tif 000005
【図４】
2020106872.tif 000006
【図５】
2020106872.tif 000007
【図６】
2020106872.tif 000008
【図７】
2020106872.tif 000009
【図８】
2020106872.tif 000010
【図９】
2020106872.tif 000011
【図１０】
2020106872.tif 000012
【図１１】
2020106872.tif 000013