(57)【特許請求の範囲】
【請求項１】
走行環境を自律的に走行する自律走行装置の走行経路作成方法であって、
前記走行環境を表す環境地図を複数のセルの集合体として作成するステップと、
前記走行環境において前記自律走行装置が走行する領域を表す走行領域を、前記環境地図上に画定するステップと、
前記走行領域を矩形領域に分割するステップと、
各矩形領域内における前記自律走行装置の走行経路である矩形領域内経路の始点である始点セルを決定するステップと、
前記自律走行装置の直進に対応する直進経路と、前記自律走行装置の右折又は左折に対応する方向転換経路と、を組み合わせることにより、前記始点セルから開始し前記矩形領域に含まれる全ての前記セルを通過する走行経路を前記矩形領域内経路として作成するステップと、
前記矩形領域内経路の終点に対応する終点セルと、次に走行すべき矩形領域内の前記始点セルと、を接続経路にて接続することで、前記走行領域内の前記自律走行装置の走行経路である走行領域内経路を作成するステップと、
を含み、
前記矩形領域内経路を作成するステップは、
前記矩形領域を回転させるステップと、
第１軸方向における、回転させた前記矩形領域の境界間の長さを、前記第１軸方向とは垂直な第２軸の座標値毎に算出するステップと、
前記第２軸の座標値毎に算出された前記境界間の長さのうち、その最大値と当該最大値に対して所定の割合だけ短い長さの範囲内にある前記境界間の長さを積算するステップと、 
前記境界間の長さの積算値が最大となるときの前記矩形領域の回転角度に基づいて、前記矩形領域の長手方向である主方向を決定するステップと、
前記主方向に延びる第１経路と、前記主方向に対して垂直な方向に延びる第２経路と、を組み合わせることにより前記矩形領域内経路を作成するステップと、
を含む走行経路作成方法。
【請求項２】
前記始点セルから延びる経路は、前記矩形領域の長手方向に対して 垂直な方向に延びる経路である、請求項１に記載の走行経路作成方法。
【請求項３】
前記終点セルと前記始点セルとを接続するステップにおいて、前記次に走行すべき矩形領域として複数の矩形領域が候補として存在する場合には、当該複数の矩形領域の候補のうち、前記終点セルと最短距離にて接続される前記始点セルを有する矩形領域を、前記次に走行すべき矩形領域と決定する、請求項１又は２に記載の走行経路作成方法。
【請求項４】
走行部と、
請求項１〜３のいずれかに記載の走行経路作成方法にて作成した前記走行領域内経路に基づいて、前記走行部を制御する制御部と、
を備える自律走行装置。
【請求項５】
請求項１〜３のいずれかに記載の走行経路作成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、走行環境を自律的に走行する自律走行装置の走行経路を作成する方法、当該走行経路作成方法に従って走行する自律走行装置、及び、当該走行経路作成方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
従来、走行開始位置から走行終了位置までの経路計画に従って自律的に走行する自律走行装置が知られている。例えば、ユーザの操作により教示された走行経路及び清掃条件とを再現することにより、教示された走行経路を自律的に走行し、教示された清掃条件に従った清掃を自律的に実行する自律走行式床洗浄機が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−５８１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の自律走行式洗浄機のような自律的に走行する自律走行装置において、走行環境中のある特定の領域内をまんべんなく自律的に走行させたいとの要望がある。しかしながら、ユーザにより教示された走行経路を自律的に走行する従来の自律走行装置においては、特定の領域内をまんべんなく走行させるような走行経路を精度よく教示することは困難であった。【０００５】
本発明の目的は、自律走行装置において、特定の領域内をまんべんなく走行させるための走行経路を容易かつ精度よく作成することにある。
【課題を解決するための手段】
【０００６】
本発明の一見地に係る走行経路作成方法は、走行環境を自律的に走行する自律走行装置のための走行経路の作成方法である。走行経路作成方法は、以下のステップを含む。
◎走行環境を表す環境地図を複数のセルの集合体として作成するステップ。
◎走行環境において自律走行装置が走行する領域を表す走行領域を環境地図上に画定するステップ。
◎走行領域を矩形領域に分割するステップ。
◎矩形領域内経路の始点である始点セルを決定するステップ。矩形領域内経路は、各矩形領域内における自律走行装置の走行経路である。
◎自律走行装置の直進に対応する直進経路と、自律走行装置の右折又は左折に対応する方向転換経路と、を組み合わせることにより、始点セルから開始し矩形領域に含まれる全てのセルを通過する走行経路を矩形領域内経路として作成するステップ。
◎矩形領域内経路の終点に対応する終点セルと、次に走行すべき矩形領域内の始点セルと、を接続経路にて接続することで、走行領域内経路を作成するステップ。次に走行すべき矩形領域は、矩形領域内経路を作成した矩形領域に隣接する。走行領域内経路は、走行領域内の自律走行装置の走行経路である。【０００７】
上記の走行経路作成方法は、走行環境において自律走行装置を走行させたい領域（走行領域）を指定すれば、走行環境を表す環境地図に含まれる多数のセルのうち、指定された走行領域に含まれるセルの全てを通過する走行経路を精度よく作成できる。すなわち、走行領域を指定するとの容易な方法により、自律走行装置が当該走行領域をまんべんなく走行できる走行経路（走行領域内経路）を精度よく作成できる。【０００８】
矩形領域内経路を作成するステップは、以下のステップを含んでいてもよい。
◎矩形領域の長手方向である主方向を決定するステップ。
◎主方向に延びる第１経路と、主方向に対して垂直な方向に延びる第２経路と、を組み合わせることにより、矩形領域内経路を作成するステップ。
これにより、方向転換経路の数が最小であり、かつ、最短距離の矩形領域内経路を作成できる。【０００９】
始点セルから延びる経路は、矩形領域の長手方向に対して垂直な方向に延びる経路であってもよい。これにより、方向転換経路の数が最小であり、かつ、最短距離の矩形領域内経路を効率よく作成できる。【００１０】
走行経路作成方法は、以下のステップをさらに含んでいてもよい。
◎矩形領域を所定の角度だけ回転して回転矩形領域を作成するステップ。
◎直進経路と方向転換経路とを組み合わせることにより、回転矩形領域に含まれる全てのセルを通過する回転矩形領域内経路を作成するステップ。
これにより、１つの矩形領域に対して、矩形領域内経路と、当該矩形領域内経路とは異なる走行経路（回転矩形領域内経路）と、を作成できる。その結果、１つの矩形領域において、異なる走行経路を自律走行装置に走行させることができる。【００１１】
回転矩形領域内経路を作成するステップは、走行環境の第１方向に延びる第３経路と、第１方向に対して垂直な第２方向に延びる第４経路と、を組み合わせることにより作成するステップを含んでいてもよい。
これにより、より簡単に回転矩形領域内経路を作成できる。【００１２】
終点セルと始点セルとを接続するステップにおいて、次に走行すべき矩形領域として複数の矩形領域が候補として存在する場合には、当該複数の矩形領域の候補のうち、終点セルと最短距離にて接続される始点セルを有する矩形領域を、次に走行すべき矩形領域と決定してもよい。
これにより、最短距離である走行効率がよい走行領域内経路を作成できる。【００１３】
本発明の他の見地に係る自律走行装置は、走行部と、上記の走行経路作成方法にて作成した走行領域内経路に基づいて、走行部を制御する制御部と、を備える。【００１４】
本発明のさらなる他の見地に係るプログラムは、上記の走行経路作成方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１５】
自律走行装置に特定の領域内をまんべんなく走行させる走行経路を、容易かつ精度よく作成できる。
【図面の簡単な説明】
【００１６】
【図１】自律走行装置の一例の全体構成を示す図。
【図２】走行経路教示部の構成の一例を示す図。
【図３】設定部の構成を示す図。
【図４】制御部の全体構成を示す図。
【図５】走行制御部の詳細構成を示す図。
【図６】制御統括部の詳細構成を示す図。
【図７】自律走行装置の基本的な動作を示すフローチャート。
【図８】手動操作教示モードの動作を示すフローチャート。
【図９】走行環境の一例を示す図。
【図１０】グローバルマップをセルの集合体に変換した一例を示す図。
【図１１】不適切な経路が形成されたときの一例を示す図。
【図１２】グローバルマップ上に走行領域を画定する様子の一例を示す図。
【図１３Ａ】矩形領域の主方向の探索方法を模式的に示す図（その１）。
【図１３Ｂ】矩形領域の主方向の探索方法を模式的に示す図（その２）。
【図１３Ｃ】矩形領域の主方向の探索方法を模式的に示す図（その３）。
【図１４】走行領域を矩形領域に分割した状態の一例を示す図。
【図１５】各矩形領域において決定された始点セルの一例を示す図。
【図１６】矩形領域内経路の作成方法を示すフローチャート。
【図１７】矩形領域内のセルに付与したスコアの一例を示す図。
【図１８】矩形領域内経路の一例を示す図。
【図１９】次に走行すべき矩形領域の決定方法の一例を模式的に示す図。
【図２０】走行領域内経路の一例を示す図。
【図２１】走行スケジュールの一例を示す図。
【図２２】自律走行モードの実行時の自律走行装置の動作を示すフローチャート。
【図２３】走行領域内経路を変更する方法を示すフローチャート。
【図２４】変更前の走行領域内経路の一例を示す図。
【図２５】回転矩形領域の一例を示す図。
【図２６】回転矩形領域に含まれるセルに付与したスコアの一例を示す図。
【図２７】回転矩形領域内経路の一例を示す図。
【発明を実施するための形態】
【００１７】
１．第１実施形態
（１）自律走行装置の全体構成
まず、本実施形態に係る自律走行装置１００の全体構成について、説明する。本実施形態に係る自律走行装置１００は、設定された清掃条件と走行経路とを自律的に再現する清掃機である。
自律走行装置１００は、走行部１を備える。走行部１は、自律走行装置１００を走行させる装置である。走行部１は、自律走行装置１００の本体を構成する本体Ｂを有する。走行部１は、本体Ｂの底部の左右端にそれぞれ、走行モータ１１と、走行モータ１１の出力回転軸に取り付けられ、走行モータ１１の回転に従って回転する主輪１３と、を有する。
【００１８】
他の実施形態において、走行部１は、例えば、本体Ｂの底部の左右端に主輪１３よりも後方に、回転可能に取り付けられた補助輪１５を有してもよい。これにより、自律走行装置１００をより安定にできる。さらなる他の実施形態として、自律走行装置１００の重心位置などを考慮して、補助輪１５を主輪１３よりも前方に取り付けてもよい。
【００１９】
自律走行装置１００は、清掃部３を備える。清掃部３は、本体Ｂの底部に設けられ、指定された清掃条件に従って床面Ｆを清掃する装置である。本実施形態の清掃部３は、洗浄液吐出口３１と、スキージ３３と、洗浄用部材３５と、を有する。
洗浄液吐出口３１は、洗浄液供給タンク３１１から洗浄液供給ポンプ３１３により供給された洗浄液（例えば、水）を、本体Ｂの前方側の床面Ｆに吐出する。スキージ３３は、本体Ｂの底面後方に設けられ、床面Ｆ上に残留する洗浄液を収集する。洗浄用部材３５は、本体Ｂの底面の前方側に設けられ、洗浄用部材回転モータ３５１の回転にて洗浄液が存在する床面Ｆ上にて回転することにより、床面Ｆを洗浄する。
上記の清掃部３を備えることにより、自律走行装置１００は、洗浄液を用いて床面Ｆを洗浄用部材３５にて磨く清掃作業を実行できる。
【００２０】
他の実施形態において、スキージ３３には吸引口Ｏ２が設けられていてもよい。吸引口Ｏ２は、吸引モータ３３１により回収部材３３３を負圧状態にすることにより、スキージ３３により収集された洗浄液やゴミなどを吸引して、回収部材３３３へと搬送できる。
【００２１】
自律走行装置１００は、制御部５を有する。制御部５は、ＣＰＵ、記憶装置（ＲＡＭ、ＲＯＭ、ハードディスクドライブ、ＳＳＤなど）、各種インターフェースなどを備えたコンピュータシステムである。制御部５は、自律走行装置１００に関する各種制御を行う。制御部５の構成については後ほど詳しく説明する。
【００２２】
自律走行装置１００は、走行経路教示部７を備える。走行経路教示部７は、操作者による走行部１の移動操作を受け付ける装置である。走行経路教示部７は、取付部材８を介して、本体Ｂの上方後側に取り付けられている。これにより、操作者は、走行経路教示部７を操作して走行部１を移動操作できる。本実施形態の走行経路教示部７の詳細については、後ほど説明する。
【００２３】
他の実施形態として、走行経路教示部７は、本体Ｂに取り付けられていなくともよい。この場合、走行経路教示部７は、例えば、ジョイスティックなどのコントローラとできる。これにより、操作者は、自律走行装置１００を遠隔操作できる。
【００２４】
さらなる他の実施形態として、自律走行装置１００は、上記の走行経路教示部７と、本体Ｂに取り付けられていないコントローラとの両方により操作可能となっていてもよい。
【００２５】
自律走行装置１００は、設定部９を備える。設定部９は、自律走行装置１００に関する各種設定を行うための操作盤であり、本体Ｂの上方後側の表面に取り付けられている。また、設定部９は、走行経路教示部７の近傍に設けられている。これにより、操作者は、走行経路教示部７を操作して走行部１を操作しつつ、設定部９を操作できる。
【００２６】
他の実施形態として、設定部９は、本体Ｂに取り付けられていなくてもよい。この場合、設定部９は、例えば、ポータブル端末などの無線通信可能なコンソールとできる。これにより、操作者は、自律走行装置１００を遠隔にて設定できる。
さらなる他の実施形態として、上記の走行経路教示部７と設定部９とを一体としてもよい。これにより、走行部１と設定部とを同時に操作しやすくできる。
【００２７】
（２）走行経路教示部の構成
次に、本実施形態に係る走行経路教示部７の構成の一例について、図２を用いて説明する。図２は、走行経路教示部の構成の一例を示す図である。
走行経路教示部７は、ハンドル７１ａ、７１ｂを有する。ハンドル７１ａ、７１ｂは、それぞれ、筐体７３の左右側面に取り付けられている。ハンドル７１ａ、７１ｂは、ユーザが自律走行装置１００を操作するときに使用される。
【００２８】
例えば、ハンドル７１ａ、７１ｂを把持する操作者は、ハンドル７１ａ、７１ｂを介して、自律走行装置１００を操作者の方へ引張る力、又は、自律走行装置１００を押し出す力のいずれかを加えることができる。ハンドル７１ａ、７１ｂのそれぞれにかける力を調節することにより、操作者は、自律走行装置１００の走行方向を調整できる。例えば、自律走行装置１００の前方方向から見て左側のハンドル７１ａに対して、自律走行装置１００を引張る力を加えれば、自律走行装置１００は左へと方向転換する。
【００２９】
ハンドル７１ａ、７１ｂは、筐体７３に回動可能に取り付けられている。また、ハンドル７１ａ、７１ｂは、走行制御指令算出部７５を介して制御部５に接続されている。走行制御指令算出部７５は、ハンドル７１ａ、７１ｂの回動を電気信号に変換し、制御部５に出力する。これにより、操作者は、ハンドル７１ａ、７１ｂの回動操作によって、自律走行装置１００（走行部１）を操作できる。
【００３０】
例えば、ハンドル７１ａ、７１ｂの回動方向を調整することにより、操作者は、自律走行装置１００の前進と後進とを切り替え可能となっていてもよい。また、ハンドル７１ａ、７１ｂの回動量を調節することにより、自律走行装置１００の走行速度を調整可能となっていてもよい。さらに、ハンドル７１ａの回動量と、ハンドル７１ｂの回動量とを異ならせて、自律走行装置１００の進行方向を変更してもよい。
【００３１】
他の実施形態として、ハンドル７１ａを進行方向への走行速度を指示するための入力インターフェースとし、ハンドル７１ｂを操舵角を指示するための入力インターフェースとしてもよい。
【００３２】
（３）設定部の構成
次に、設定部９の構成について、図３を用いて説明する。図３は、設定部の構成を示す図である。
設定部９は、切替部９１を有する。切替部９１は、自律走行装置１００の動作モードを選択し、制御部に出力する。自律走行装置１００の動作モードとしては、自律走行モードと手動操作モードとがある。自律走行モードは、自律走行装置１００が、自律的に走行し床面Ｆを洗浄する動作モードである。一方、手動操作モードは、自律走行装置１００が操作者により手動操作可能な状態にある動作モードである。
【００３３】
切替部９１は、例えば、図３に示すような切り替えスイッチにて構成できる。この場合、自律走行モードの選択は、例えば、切り替えスイッチにて構成された切替部９１を図３に示す「自動」に切り替えることにより可能となる。一方、手動操作モードの選択は、例えば、切替部９１を図３に示す「手動」に切り替えることにより可能となる。
【００３４】
設定部９は、手動操作記憶スイッチ９２を有する。手動操作記憶スイッチ９２は、操作者による自律走行装置１００の手動操作の記憶を開始又は終了するためのスイッチである。具体的には、切替部９１により動作モードが手動操作モードに設定された後に手動操作記憶スイッチ９２が押されると、操作者の手動操作により実行された清掃条件および走行経路を、自律走行装置１００に教示する手動操作教示モードが、手動操作モードのサブ動作モードとして開始される。一方、手動操作教示モードを実行中に手動操作記憶スイッチ９２が切り替わると、手動操作教示モードが停止される。
【００３５】
手動操作記憶スイッチ９２により手動操作教示モードの開始と停止とが可能となることにより、手動操作教示モードを任意のタイミングにて開始又は停止できる。その結果、操作者が所望する走行スケジュール５００（走行領域内経路の一例）を作成できる。
【００３６】
手動操作記憶スイッチ９２としては、例えば、図３に示すような押ボタンスイッチとすることができる。この場合、手動操作記憶スイッチ９２の切り替えは、当該押ボタンスイッチを押すことにより切り替わる。
【００３７】
他の実施形態において、手動操作教示モードの実行時に手動操作記憶スイッチ９２が切り替わったら、動作モードが手動操作教示モードから手動操作モードに切り替わってもよい。これにより、操作者は、手動操作教示モードが手動操作モードに切り替わっても、継続して自律走行装置１００を手動操作できる。
【００３８】
設定部９は、設定操作部９３を有する。設定操作部９３は、例えば押圧スイッチなどにより構成され、自律走行装置１００に関する各種設定の入力を受け付けて、設定変換部９４を介して、制御部５に出力する。
設定変換部９４は、設定操作部９３にて受け付けた入力を、制御部５が解読可能な信号に変換する信号変換回路、又は、コンピュータシステムである。
【００３９】
設定部９はディスプレイ９５を有する。ディスプレイ９５は、現在設定されている自律走行装置１００に関する各種設定情報を表示する。ディスプレイ９５は、例えば、液晶ディスプレイ、有機ＥＬディスプレイなどのディスプレイである。
【００４０】
他の実施形態において、ディスプレイ９５は、現在の動作モード（自律走行モード／手動操作モード／手動操作教示モード）、運転時間、自律走行装置１００を駆動するバッテリー残量などをさらに表示してもよい。さらなる他の実施形態において、ディスプレイ９５は、設定操作部９３により自律走行装置１００の各種設定を行う際に、各種設定手順を表示してもよい。これにより、自律走行装置１００に関する情報を視覚的にユーザに提供し、ユーザは表示された情報に基づいて、設定部９を操作できる。
【００４１】
他の実施形態において、ディスプレイ９５にはタッチパネルが設けられていてもよい。この場合、上記の切替部９１、手動操作記憶スイッチ９２、及び／又は設定操作部９３は、当該タッチパネルにより実現されてもよい。
【００４２】
設定部９は、清掃条件教示部９６を有してもよい。清掃条件教示部９６は、操作者による清掃条件の入力を受け付けて、清掃制御指令算出部９７へ出力する。清掃制御指令算出部９７は、清掃条件教示部９６にて受け付けた清掃条件を、制御部５が解読可能な信号に変換して制御部５に出力する信号変換回路、又は、コンピュータシステムである。
これにより、操作者は、清掃条件教示部９６を用いて、自律走行装置１００に対して清掃条件を設定するか、又は、清掃条件を教示できる。
【００４３】
（４）制御部の構成
（４−１）制御部の全体構成
以下、制御部５の構成について説明する。まず、制御部５の全体構成について、図４を用いて説明する。図４は、制御部の全体構成を示す図である。以下に説明する制御部５の各機能ブロックの全部又は一部は、制御部５を構成するコンピュータシステムにて実行可能なプログラムにより実現されてもよい。この場合、当該プログラムは、メモリ部及び／又は記憶装置に記憶されていてもよい。制御部５の各機能ブロックの全部又は一部は、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）などのカスタムＩＣとして実現されていてもよい。
【００４４】
制御部５は、１つのコンピュータシステムにより構成されていてもよいし、複数のコンピュータシステムにより構成されていてもよい。複数のコンピュータシステムにより制御部５を構成する場合、例えば、制御部５の複数の機能ブロックにて実現される機能を複数のコンピュータシステムに任意の割合で振り分けて実行させることができる。
【００４５】
制御部５は、清掃制御部５１を有する。清掃制御部５１は、洗浄用部材回転モータ３５１と、洗浄液供給ポンプ３１３と、吸引モータ３３１に対して、回転速度や出力などを制御する電力を供給する。
設定部９が清掃条件教示部９６を有する場合、清掃制御部５１は、清掃制御指令算出部９７を介して清掃条件教示部９６から教示清掃条件を入力し、当該教示清掃条件に基づいて、洗浄用部材回転モータ３５１と、洗浄液供給ポンプ３１３と、吸引モータ３３１と、を制御してもよい。
【００４６】
他の実施形態において、清掃制御部５１は、自律走行モードの実行時に、制御統括部５５から、自律走行モードにおける清掃条件の設定値を示す再現清掃条件を入力し、当該再現清掃条件に基づいて、清掃部３を制御してもよい。
【００４７】
制御部５は、走行制御部５３を有する。走行制御部５３は、走行経路教示部７から入力したハンドル７１ａ、７１ｂの回動量及び回動方向に基づく走行制御指令、又は、制御統括部５５から入力した走行制御指令に基づき、走行モータ１１を制御する。
また、走行制御部５３は、走行モータ１１の出力回転軸に取り付けられたエンコーダ１１１から出力されるパルス信号に基づいて、走行モータ１１の回転速度を算出する。これにより、走行制御部５３は、走行モータ１１の回転速度（すなわち、主輪１３の回転速度）をモニターしながら、走行モータ１１を制御できる。
【００４８】
制御部５は、制御統括部５５を有する。制御統括部５５は、自律走行装置１００による走行を統括する。具体的には、制御統括部５５は、前方検出器５５５１ａ、後方検出器５５５１ｂ、及び／又はエンコーダ１１１にて取得された情報に基づいて、自律走行装置１００が床面Ｆのどの位置を移動しているかを示す位置情報を算出する。
【００４９】
制御統括部５５は、手動操作教示モードの実行時における上記の位置情報を用いて、走行スケジュール５００を作成する。他の実施形態において、制御統括部５５は、自律走行モードにおける清掃条件を算出し、走行スケジュール５００と関連付けてもよい。
【００５０】
一方、自律走行モードの実行時においては、制御統括部５５は、走行スケジュール５００に記憶されたデータに基づいて再現走行制御指令を算出し、走行制御部５３に出力する。これにより、自律走行モードの実行時においては、走行制御部５３は、再現走行制御指令に基づいて走行モータ１１を制御することで、自律走行装置１００を自律的に移動させることができる。
【００５１】
走行スケジュール５００に清掃条件が関連付けられているとき、他の実施形態において、制御統括部５５は、自律走行モードの実行時において、走行スケジュール５００に記憶された清掃条件に基づいて、清掃制御部５１を制御してもよい。これにより、自律走行装置１００は、走行スケジュール５００に従って自律的に走行中に、当該清掃条件に従って自律的に清掃作業を実行できる。
【００５２】
制御部５は、記憶部５７を有する。記憶部５７は、制御部５を構成するコンピュータシステムの記憶装置の記憶領域の一部又は全部であり、自律走行装置１００に関する各種情報を記憶する。具体的には、記憶部５７は、制御統括部５５において作成された走行スケジュール５００、及び、設定操作部９３や設定変換部９４から入力された自律走行装置１００に関する各種設定を記憶する。
【００５３】
走行制御部５３、及び制御統括部５５は、記憶部５７に記憶された自律走行装置１００に関する各種設定、及び／又は、走行スケジュール５００を必要に応じて読み出して、これらに基づいて各種の調整及び制御を実行できる。
【００５４】
他の実施形態において、制御部５は、記憶部５７に記憶された走行スケジュール５００などの情報を他の記憶媒体に記憶するためのデータ書き込み装置（図示せず）を有していてもよい。さらなる他の実施形態において、制御部５は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどの、データ書き込み装置を接続可能な接続端子を有していてもよい。
これにより、記憶部５７に記憶された走行スケジュール５００などの情報を、他の記憶媒体に記憶できる。
【００５５】
（４−２）走行制御部の構成
以下、走行部１を制御する走行制御部５３の構成について、図５を用いて詳細に説明する。図５は、走行制御部の詳細構成を示す図である。
走行制御部５３は、走行切替部５３１を有する。走行切替部５３１は、３つの端子ｄ、ｅ、及びｆを有している。端子ｄは走行経路教示部７に接続され、端子ｅはモータ制御部５３３に接続され、端子ｆは制御統括部５５に接続されている。
【００５６】
走行切替部５３１は、切替部９１により選択されている動作モードに基づいて、端子ｅと端子ｄとを接続するか、あるいは、端子ｅと端子ｆとを接続するかのいずれかを選択する。
【００５７】
具体的には、切替部９１において手動操作モードが選択されていれば、走行切替部５３１は、端子ｅと端子ｄとを接続することで、走行経路教示部７をモータ制御部５３３に接続する。これにより、走行切替部５３１は、手動操作モード又は手動操作教示モードの実行時には、走行経路教示部７のハンドル７１ａ、７１ｂの回動量及び／又は回転方向を示す信号を、モータ制御部５３３に送信できる。
【００５８】
一方、切替部９１において自律走行モードが選択されていれば、走行切替部５３１は、端子ｅと端子ｆとを接続することで、制御統括部５５をモータ制御部５３３に接続する。これにより、走行切替部５３１は、自律走行モードの実行時には、制御統括部５５から出力される再現走行制御指令を、モータ制御部５３３に送信できる。
【００５９】
モータ制御部５３３は、入力されたハンドル７１ａ、７１ｂの回動量／回動方向、又は、再現走行制御指令に基づいて、走行モータ１１の目標回転速度を算出し、当該目標回転速度にて走行モータ１１を回転させるための駆動電力を、走行モータ１１に出力する。
モータ制御部５３３は、エンコーダ１１１からのパルス信号に基づいて実際の走行モータ１１の回転速度を算出しフィードバックして、走行モータ１１に出力すべき駆動電力を算出する。従って、モータ制御部５３３は、例えば、ＰＩ（Ｐｒｏｐｏｒｔｉｏｎａｌ  Ｉｎｔｅｇｒａｌ）制御理論や、ＰＩＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ  Ｉｎｔｅｇｒａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ）制御理論などを用いて走行モータ１１を制御する。
【００６０】
本実施形態においては、本体Ｂの底部の左右端のそれぞれに、走行モータ１１及び主輪１３が設けられている。このような場合、モータ制御部５３３は、左右２つの走行モータ１１のそれぞれの回転速度及び回転方向を独立に制御して、自律走行装置１００の進行方向を決定する。
【００６１】
他の実施形態において、制御部５が複数のコンピュータシステムにて構成される場合、モータ制御部５３３は、当該複数のコンピュータシステムのうちの１つであってもよい。すなわち、モータ制御部５３３の機能のみを１つのコンピュータシステムにて実現してもよい。この場合、モータ制御部５３３は、例えば、ＰＩ制御理論又はＰＩＤ制御理論を用いたモータ制御装置である。
【００６２】
（４−３）制御統括部の構成
以下、制御統括部５５の構成について、図６を用いて詳細に説明する。図６は、制御統括部の詳細構成を示す図である。
制御統括部５５は、走行領域取得部５５１を有する。走行領域取得部５５１は、手動操作教示モードの実行時に、所定時間毎（例えば、制御部５における制御周期毎）に、ＳＬＡＭ部５５５（後述）から、ＳＬＡＭ部５５５にて推定された位置情報（後述）を入力する。
【００６３】
走行領域取得部５５１は、走行環境において自律走行装置１００が走行する領域を表す走行領域ＴＡを、取得した複数の位置情報の点列として取得する。走行領域取得部５５１は、取得した複数の位置情報の点列を、走行領域ＴＡの境界を表す点列として、走行領域内経路作成部５５３に出力する。
【００６４】
他の実施形態において、走行領域取得部５５１は、予め作成したグローバルマップ（走行環境を表す地図情報）をディスプレイ９５に表示させてもよい。このとき、走行領域取得部５５１は、操作者に対して、ディスプレイ９５に表示されたグローバルマップ上に、走行領域ＴＡを表す閉じられた領域を描画するように指示をしてもよい。
【００６５】
この場合、走行領域取得部５５１は、例えば、ディスプレイ９５上にて描画された走行領域ＴＡの座標値（例えば、ディスプレイ９５のピクセル座標値）を取得し、当該座標値を座標変換により走行環境上の座標値に変換して、走行領域ＴＡを表す（座標値の）点列を取得してもよい。
【００６６】
制御統括部５５は、走行領域内経路作成部５５３を有する。走行領域内経路作成部５５３は、走行領域取得部５５１から取得した走行領域ＴＡ内に、自律走行装置１００が当該走行領域ＴＡをまんべんなく（「塗りつぶす」ように）走行する走行スケジュール５００を作成し、記憶部５７に記憶する。走行スケジュール５００の具体的な作成方法については、後ほど詳しく説明する。
【００６７】
制御統括部５５は、ＳＬＡＭ部５５５を有する。ＳＬＡＭ部５５５は、本体Ｂの前方に設けられた前方検出器５５５１ａ（図１）にて取得した自律走行装置１００の前方に存在する障害物に関する情報と、本体Ｂの後方に設けられた後方検出器５５５１ｂ（図１）にて取得した自律走行装置１００の後方に存在する障害物に関する情報と、エンコーダ１１１にて取得した走行モータ１１の回転量に基づいて、自律走行装置１００の所定の座標上の位置に関する情報（位置情報）を推定する。
【００６８】
前方検出器５５５１ａ及び後方検出器５５５１ｂは、例えば、その検出範囲が１８０°以上のレーザーレンジファインダ（Ｌａｓｅｒ  Ｒａｎｇｅ  Ｆｉｎｄｅｒ、ＬＲＦ）である。レーザーレンジファインダを前方検出器５５５１ａ及び後方検出器５５５１ｂとして用いた場合、走行部１と障害物との距離と、当該障害物が存在する方向とが、障害物に関する情報として取得される。
【００６９】
前方検出器５５５１ａ及び後方検出器５５５１ｂにて取得される情報は、所定の平面上における障害物の存在位置を表す二次元的な情報であってもよいし、さらに高さ方向における障害物の存在位置を表す情報を含めて三次元的な情報であってもよい。
【００７０】
他の実施形態において、前方検出器５５５１ａの検出範囲（検出角度及び／又は検出距離）を、後方検出器５５５１ｂの検出範囲よりも広くしてもよい。これにより、自律走行装置１００の前方方向であってより広範囲に存在する障害物に関する情報を取得できる。
【００７１】
さらなる他の実施形態において、前方検出器５５５１ａ及び後方検出器５５５１ｂは、ＴＯＦ（Ｔｉｍｅ  Ｏｆ  Ｆｌｉｇｈｔ）カメラなどであってもよい。
【００７２】
制御統括部５５は、走行再現部５５７を有する。走行再現部５５７は、自律走行モードを実行する時に、走行スケジュール５００に記憶された情報と、ＳＬＡＭ部５５５から取得した推定された位置情報とに基づいて、自律走行装置１００が走行スケジュール５００に示された走行経路を自律的に走行すための制御指令（再現走行制御指令）を算出する。走行再現部５５７は、算出した再現走行制御指令を走行制御部５３に出力する。
【００７３】
他の実施形態において、走行再現部５５７は、走行スケジュール５００に関連付けられた清掃条件を、清掃制御部５１に出力してもよい。
【００７４】
（４−４）ＳＬＡＭ部の構成
以下、ＳＬＡＭ部５５５の構成の詳細について、図６を用いて説明する。本実施形態に係るＳＬＡＭ部５５５は、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ）法にて、走行部１（自律走行装置１００）の位置（位置情報）推定と地図情報の作成とを実行する。
ＳＬＡＭ部５５５は、地図作成部５５５３を有する。地図作成部５５５３は、前方検出器５５５１ａにて取得された前方の障害物（例えば、壁など）に関する情報、後方検出器５５５１ｂにて取得された後方の障害物に関する情報と、を用いて地図情報を作成する。地図情報は、位置推定部５５５５において位置情報を推定する際に用いられる。地図情報としては、ローカルマップとグローバルマップ（環境地図の一例）とが存在する。
【００７５】
ローカルマップは、走行部１の周囲に存在する障害物（の存在位置）に関する地図情報である。ローカルマップは、前方検出器５５５１ａにて取得された前方の障害物に関する情報と、後方検出器５５５１ｂにて取得された後方の障害物に関する情報とを、必要に応じて座標変換することにより作成される。
【００７６】
グローバルマップは、走行部１が走行する環境（走行環境）に存在する障害物（の存在位置）に関する地図情報である。本実施形態において、グローバルマップは、手動操作教示モードの実行時に走行領域ＴＡを表す位置情報の点列を取得したときに取得したローカルマップに基づいて生成される。
【００７７】
具体的には、地図作成部５５５３は、走行領域ＴＡを表す位置情報の点列とともに取得したローカルマップを、当該位置情報に対応する位置に配置することでグローバルマップを作成する。
【００７８】
走行領域ＴＡを表す位置情報の点列を取得する際に、手動操作教示モードの初期に取得した位置情報と、手動操作教示モードの終盤に取得した位置情報との間には、誤差が生じる場合がある。具体的には、例えば、閉じられた領域である走行領域ＴＡを位置情報の点列として取得する際に、手動操作教示モードの開始時の走行部１の位置と終了時の走行部１の位置とが同一であるかからわず、推定された位置情報が一致しないことがある（いわゆる、環状経路問題）。
【００７９】
上記の推定された位置情報の不一致を解消するため、地図作成部５５５３は、ローカルマップを対応する位置に配置して作成したグローバルマップを修正する。具体的には、例えば、以下のようにしてグローバルマップを修正する。
【００８０】
まず、地図作成部５５５３は、手動操作教示モードの開始時と終了時に、前方検出器５５５１ａにて取得された障害物に関する情報、及び／又は、後方検出器５５５１ｂにて取得された障害物に関する情報を取得する。
【００８１】
次に、地図作成部５５５３は、手動操作教示モードの開始時に得られた障害物に関する情報と終了時に得られた障害物に関する情報との差分などに基づいて、手動操作教示モードの開始時と終了時における走行部１の実際の位置のずれを算出する。
【００８２】
その後、地図作成部５５５３は、算出した実際の位置のずれに基づいて、例えばＧｒａｐｈＳＬＡＭなどのアルゴリズムを用いて、ローカルマップの配置位置を修正し、修正した新たな配置位置にローカルマップを配置して、新たなグローバルマップを作成する。
【００８３】
このとき、地図作成部５５５３は、手動操作教示モードを実行することにより取得した走行領域ＴＡを表す点列の位置情報（座標値）も、ＧｒａｐｈＳＬＡＭなどのアルゴリズムを用いて同時に修正し、修正した新たな位置情報の点列を走行領域ＴＡを表す点列としてもよい。
【００８４】
上記のようにしてグローバルマップを修正することにより、走行環境をより適切に表したグルーバルマップを作成できる。また、グローバルマップの修正時に、走行領域ＴＡを表す位置情報を修正することにより、閉じられた領域である走行領域ＴＡをより適切に表した位置情報の点列を取得できる。
【００８５】
他の実施形態において、グローバルマップは、専用のソフトウェア又はＣＡＤなどを用いて作成されて記憶部５７に記憶されてもよい。この場合、当該ソフトウェアなどで作成したグローバルマップは、走行部１の制御部５が解釈できるようなデータに変換される。
【００８６】
ＳＬＡＭ部５５５は、位置推定部５５５５を有する。位置推定部５５５５は、地図作成部５５５３が生成したグローバルマップと、ローカルマップと、走行モータ１１の回転量と、に基づいて、所定の座標上の走行部１の存在位置及び当該位置における走行部１の姿勢に関する位置情報を推定する。
【００８７】
具体的には、以下のようにして位置情報が推定される。ここでは、走行部１がある所定の時刻（時刻ｔｋとする）における（推定）位置から移動して、次の時刻（時刻ｔｋ＋１とする）にて走行部１が到達する位置を推定する場合を例として考える。
まず、位置推定部５５５５は、時刻ｔｋから時刻ｔｋ＋１までの間にエンコーダ１１１から出力されたパルス数から、時刻ｔｋから時刻ｔｋ＋１までの間の主輪１３の回転量を算出し、当該回転量に基づいて、主輪１３の回転による走行部１の移動距離と姿勢変化とを推定する（デッドレコニング）。
【００８８】
次に、位置推定部５５５５は、時刻ｔｋにおける事後確率（走行部１の位置と、時刻ｔｋにおいて当該位置に走行部１が存在する確率と、の関係を表した確率分布に対応する）を、主輪１３の回転による走行部１の移動距離分及び姿勢変化分だけ移動させて、時刻ｔｋ＋１における事前確率を算出する。
他の実施形態において、位置推定部５５５５は、主輪１３の回転による移動距離分及び姿勢変化分だけ移動後の事後確率の確率分布の幅（標準偏差）を拡大して、時刻ｔｋ＋１における事前確率としてもよい。これにより、主輪１３と床面Ｆとの滑りを考慮した事前確率を算出できる。
【００８９】
その後、位置推定部５５５５は、時刻ｔｋ＋１におけるローカルマップとグローバルマップとを地図作成部５５５３から取得し、時刻ｔｋ＋１におけるローカルマップとグローバルマップとをマップマッチングし、時刻ｔｋ＋１における走行部１の位置情報を推定する。
【００９０】
具体的には、例えば、グローバルマップ上において、主輪１３の回転量に基づいて算出された推定位置の近傍のいくつかの位置に、時刻ｔｋ＋１におけるローカルマップを配置し、当該ローカルマップをその中心回りに取りうる姿勢変化に対応する角度だけ回転させて、マップマッチングを行う。
位置推定部５５５５は、当該マップマッチングの結果に基づいて、尤度（ローカルマップ情報を配置した位置と、当該位置におけるグローバルマップとローカルマップ情報との一致度と、の関係を表すものに対応）を算出する。
【００９１】
その後、位置推定部５５５５は、尤度と時刻ｔｋ＋１における事前確率とを乗算することにより、時刻ｔｋ＋１における事後確率を算出する。位置推定部５５５５は、時刻ｔｋ＋１における事後確率が最大値となる位置及び姿勢、すなわち、走行部１が存在する可能性が最も高いと推定される位置、及び、当該位置において走行部１がとりうる最も可能性が高い姿勢を、時刻ｔｋ＋１における走行部１の存在位置（推定位置）及び当該存在位置における姿勢（推定姿勢）と推定する。
時刻ｔｋ＋１における事後確率は、次の位置推定において事前確率として使用される。
【００９２】
上記のように、位置推定部５５５５が、主輪１３の回転量に基づいた移動距離と、前方検出器５５５１ａ及び後方検出器５５５１ｂとを用いて得られた地図情報と、を用いて位置推定を実行することにより、主輪１３の回転量に基づいた移動距離に含まれる誤差（主に、主輪１３と床面Ｆとの間の滑りに起因）と、地図情報に含まれる誤差（主に、前方検出器５５５１ａ及び後方検出器５５５１ｂにて取得した情報に含まれるノイズ成分に起因）とを相補的に減少させて、精度のよい位置推定を実行できる。
【００９３】
ＳＬＡＭ部５５５は、経過時間決定部５５５７を有する。経過時間決定部５５５７は、自律走行モードの実行開始からの経過時間を決定する。具体的には、経過時間決定部５５５７は、自律走行モードの実行開始からの経過時間を、位置推定部５５５５にて推定された位置情報に基づき決定する。
【００９４】
より具体的には、例えば、走行スケジュール５００に記憶されている位置情報のうち、位置推定部５５５５にて推定された走行部１の位置情報に最も近い位置情報に関連付けられている時間を、自律走行モードの実行開始からの経過時間とする。
【００９５】
他の実施形態において、上記の経過時間は、位置推定部５５５５にて推定された位置情報に近い２つの位置情報を走行スケジュール５００から抽出し、走行スケジュール５００において当該２つの位置情報に関連付けられた時間の線形補間により算出されてもよい。これにより、より正確な経過時間を算出できる。
【００９６】
（５）自律走行装置の動作
（５−１）基本動作
以下、自律走行装置１００の動作について説明する。まず、自律走行装置１００の基本的な動作を、図７を用いて説明する。図７は、自律走行装置の基本的な動作を示すフローチャートである。
自律走行装置１００が動作を開始すると、制御部５は、切替部９１の状態を確認する（ステップＳ１）。切替部９１が「自動」を選択している場合（ステップＳ１において「自律走行モード」の場合）、自律走行モードが実行され（ステップＳ２）、記憶部５７に記憶された走行スケジュール５００に従って、自律走行装置１００は自律的に清掃作業を実行する。
【００９７】
一方、切替部９１が「手動」を選択している場合（ステップＳ１において「手動操作モード」の場合）、制御部５は、実行すべき動作モードが手動操作モードと判断する。
手動操作モードを実行中に手動操作記憶スイッチ９２が押されたことを検知すると（ステップＳ３において「Ｙｅｓ」の場合）、制御部５は、動作モードを手動操作教示モードに移行させる（ステップＳ４）。その結果、手動操作記憶スイッチ９２が押されたタイミング以降の操作者による走行部１の操作が記憶される。
【００９８】
また、手動操作教示モードにおいては、制御統括部５５は、操作者による走行部１の操作にて決定した走行領域ＴＡ内を自律走行装置１００に走行させるための走行スケジュール５００を作成する。
【００９９】
一方、手動操作記憶スイッチ９２が押されない場合（ステップＳ３において「Ｎｏ」の場合）には、操作者の操作を記憶しない手動操作モードの実行を維持する（ステップＳ５）。
【０１００】
上記のステップＳ４において手動操作教示モードを実行中に、制御部５は、手動操作記憶スイッチ９２が押されたか否かをモニターする。手動操作教示モードの実行中に手動操作記憶スイッチ９２が押された場合には、そのタイミングで動作モードが手動操作モードに切り替わり、当該タイミング以降の清掃作業が走行スケジュール５００に記憶されなくなる。すなわち、手動操作教示モードの実行時に手動操作記憶スイッチ９２を押すことにより、操作者は、清掃作業の途中の任意のタイミングにてその記憶（教示）を停止できる。
【０１０１】
上記のように、本実施形態に係る自律走行装置１００は、切替部９１における動作モードの選択、及び、手動操作記憶スイッチ９２が押されたか否かに応じて、自律走行モード、手動操作モード、及び手動操作教示モードを実行できる。
【０１０２】
（５−２）手動操作教示モードの動作
以下、上記のステップＳ４において実行される手動操作教示モードの動作について、図８を用いて説明する。図８は、手動操作教示モードの動作を示すフローチャートである。
以下の説明では、図９に示すような走行環境において設定された走行領域ＴＡ内をまんべんなく「塗りつぶす」走行領域内経路を計画し、走行スケジュール５００として作成する。図９は、走行環境の一例である。
【０１０３】
手動操作教示モードにおいて走行スケジュール５００を作成するにあたり、制御統括部５５は、走行環境を表すグローバルマップを作成する（ステップＳ４１）。具体的には、以下のようにしてグローバルマップを作成する。
【０１０４】
まず、手動操作記憶スイッチ９２が押された後に自律走行装置１００の手動操作を開始するか、又は、手動操作中に手動操作記憶スイッチ９２が押されて、手動操作教示モードが開始されると、操作者は、走行経路教示部７を用いて自律走行装置１００を操作する。操作者は、走行領域ＴＡとしたい領域の境界線に沿って、自律走行装置１００を走行させる。
【０１０５】
操作者による操作により自律走行装置１００が走行中、地図作成部５５５３が、所定の時間毎に、ローカルマップを取得する。図９に示すように、自律走行装置１００が走行を開始した開始点ＳＴから、走行領域ＴＡの境界線とする閉じられた経路を走行し、再度開始点ＳＴ又はその近傍まで戻ってきた後、地図作成部５５５３は、取得したローカルマップを対応する位置に配置してグローバルマップを作成する。その後、地図作成部５５５３は、必要に応じて、ＧｒａｐｈＳＬＡＭアルゴリズムなどを用いて、当該グローバルマップを修正する。
【０１０６】
他の実施形態において、地図作成部５５５３は、ＣＡＤなどを用いて作成された移動環境を表すＣＡＤデータなどを、適切なデータ変換と座標変換とを行って、グローバルマップとして取得してもよい。
【０１０７】
上記のようにしてグローバルマップを取得後、地図作成部５５５３は、取得したグローバルマップを、多数のセルの集合体に変換する。グローバルマップを構成する当該セルは、走行環境においては、所定の面積を有する小領域に対応するものである。また、制御部５を構成するコンピュータシステムにおいては、当該セルを、例えばセルに関するパラメータ（例えば、セルを識別するパラメータ、セルの位置情報、セルの有効無効、セルに付与されたスコア、など）を含む「構造体」として定義できる。
【０１０８】
具体的には、例えば図１０に示すように、地図作成部５５５３は、グローバルマップを定義する座標平面上にセルを配置し、セルを配置した当該座標平面上にグローバルマップを投影する。地図作成部５５５３は、座標平面上のセルのうち、グローバルマップにおいて障害物がない領域のセルについては有効セル（図１０では白色のセル）であると決定し、それ以外のセルについては無効セル（図１０では灰色のセル）であると決定する。
図１０は、グローバルマップをセルの集合体に変換した一例を示す図である。
【０１０９】
グローバルマップは、図１０に示すように、ｘ−ｙ平面上に定義するものとする。
【０１１０】
グローバルマップにおいて、障害物の表面（壁面など）は、前方検出器５５５１ａ及び／又は後方検出器５５５１ｂにて取得された情報が直線状に配置された点列として表される。また、障害物のない空間は、一般的に、間隔を空けて配置された２つの表面（壁面）間に形成される。
従って、地図作成部５５５３は、前方検出器５５５１ａ及び／又は後方検出器５５５１ｂにて取得された情報が直線状に配置された点列が間隔を空けて２つ存在するときに、当該２つの点列の間に存在するセルを有効セルと決定する。
【０１１１】
その一方、障害物の表面に対して、有効セルが存在する領域とは反対側に存在するセルを無効セルとする。無効セルとされたセルに対しては、自律走行装置１００が走行できないことを示す「スコア」（例えば、０、又は、−１などの負数）を付与しておく。
【０１１２】
本実施形態において、地図作成部５５５３は、前方検出器５５５１ａ及び／又は後方検出器５５５１ｂにて取得された情報からは有効セルか無効セルかが判定できないセル（例えば、１つの障害物の表面しか認識できない領域内にあるセル）については、有効セルであると見なす。
【０１１３】
他の実施形態において、地図作成部５５５３は、有効セルと決定したセルに対して、有効であることを示す「スコア」を予め付与してもよい。この場合、前方検出器５５５１ａ及び／又は後方検出器５５５１ｂにて取得された情報からは有効セルか無効セルかが判定できず有効セルと見なしたセルに対して、有効であることを示す「スコア」を予め付与してもよいし、付与しなくともよい。
【０１１４】
この場合、有効であると見なしたセルに予め「スコア」を付与するかしないかに関わらず、後述する矩形領域内経路の作成時には、当該有効セルと見なしたセルに対しても「スコア」が付与される。その結果、矩形領域内経路は、当該有効セルと見なしたセルも通過することとなる。
【０１１５】
多数のセルの集合体として表されたグローバルマップを作成後、走行環境において自律走行装置１００が走行する領域を表す走行領域ＴＡを、グローバルマップ上に画定する（ステップＳ４２）。具体的には、以下のようにして、走行領域ＴＡをグローバルマップ上に画定する。
【０１１６】
まず、上記のステップＳ４１を実行中、すなわち、自律走行装置１００を走行領域ＴＡの境界線に沿って走行させる間に、走行領域取得部５５１が、所定の時間毎に、位置推定部５５５５にて推定された位置情報を走行領域ＴＡの境界を表す点として取得する。
【０１１７】
これにより、走行領域取得部５５１は、自律走行装置１００が開始点ＳＴ（図９）から点線にて示す経路に沿って走行し、開始点ＳＴ又はその近傍まで戻ってくるまでの間に取得した複数の位置情報を、走行領域ＴＡの境界線を表す点列として取得できる。走行領域取得部５５１は、走行領域ＴＡの境界線を表す位置情報の点列を、走行領域内経路作成部５５３に出力する。
【０１１８】
他の実施形態において、走行領域取得部５５１は、例えば、ディスプレイ９５にグローバルマップを表示させ、ユーザに対してグローバルマップが表示されたディスプレイ９５上にて走行領域ＴＡの境界線を描画させてもよい。走行領域取得部５５１は、当該描画された走行領域ＴＡの境界線を、適切な座標変換などを行って走行領域ＴＡの境界線を表す点列として取得してもよい。
【０１１９】
また、例えば、広い空間にある柱などの障害物の周りに対して走行領域ＴＡの境界線を画定するために、図１１の一点鎖線のような経路を自律走行装置１００が走行した場合に、走行領域取得部５５１は、当該一点鎖線にて示す経路、つまり走行領域ＴＡの外周境界線と障害物の表面境界線とこれらを接続する接続線のうち表面境界線と接続線を削除する処理を実行して、外周境界線のみを切り出してもよい。図１１は、不適切な経路が形成されたときの一例を示す図である。
【０１２０】
走行領域ＴＡ（矩形領域ＲＡ）内に障害物が存在する場合には、柱などの障害物上を走行するような矩形領域内経路を作成することになるが、自律走行時には自律走行装置１００の障害物回避機能を利用して当該障害物を避けながら走行すればよい。
【０１２１】
次に、走行領域内経路作成部５５３は、多数のセルにて構成したグローバルマップ上に、走行領域ＴＡの境界線を表す点列を配置する。走行領域ＴＡの境界線を表す位置情報が、グローバルマップ中のどのセルに配置されるかは、例えば、位置情報（グローバルマップ）を定義した座標系において、セルがどの座標値に存在するかにより決定できる。
【０１２２】
その後、走行領域内経路作成部５５３は、図１２に示すように、走行領域ＴＡの境界線が配置された有効セルと、走行領域ＴＡの境界線に対して障害物のない空間とは反対側に存在する有効セルと、を新たに無効とする。図１２においては、ハッチングにて示したセルが新たに無効となったセルである。図１２は、グローバルマップ上に走行領域を画定する様子の一例を示す図である。
このようにして、走行領域内経路作成部５５３は、走行領域ＴＡには含まれないセルを新たに無効セルとすることにより、走行領域ＴＡを多数の有効セル（図１２においては、白色のセル）にて構成される領域として、グローバルマップ上に画定できる。
【０１２３】
グローバルマップ上に走行領域ＴＡを画定後、走行領域内経路作成部５５３は、走行領域ＴＡを矩形の領域（矩形領域ＲＡ）に分割する（ステップＳ４３）。走行領域ＴＡを矩形領域ＲＡに分割するにあたり、走行領域内経路作成部５５３は、走行領域ＴＡのどの部分に矩形領域ＲＡが存在するかを探索する。
【０１２４】
所定の基準軸（図１３Ａではｙ軸に垂直な軸）に対して所定の角度だけ傾いた矩形において、基準軸方向の矩形の境界間の長さ（「直線長さ」と呼ぶことにする）と、基準軸に垂直な軸方向（ｙ軸）における位置との関係をグラフに表すと、図１３Ａの（１）に示すように、上に凸形状のグラフとなる。図１３Ａに示す例では、上に凸の三角形に類似した形状となっている。
図１３Ａ〜図１３Ｂは、矩形領域の主方向の探索方法を模式的に示す図である。
【０１２５】
一方、所定の角度だけ傾いた矩形を回転させて、矩形の長手方向が基準軸と平行になったとき（図１３Ａの例では、Θだけ左に回転）、直線長さとｙ軸方向の位置との関係を表すグラフは、図１３Ａの（２）に示すように上に凸の矩形となる。すなわち、所定のｙ軸方向の位置範囲にわたり、直線長さが一定となっている。
【０１２６】
なお、直線長さが一定となったときの矩形の回転角度とは符号が反対となる角度（図１３Ａの例では、−Θ）を、当該矩形の主方向とする。
【０１２７】
また、直線長さが最大値（例えば、矩形領域の対角線の長さ）（図１３Ｂでは、Ｌｍａｘ）と当該最大値に対して所定の割合だけ短い長さ（図１３Ｂではα＊Ｌｍａｘ）との間に含まれるｙ軸座標値の範囲における矩形領域の面積は、図１３Ｂに示すように、矩形領域の長手方向が基準軸と平行になったときに最大となる。すなわち、直線長さとｙ座標値との関係を表すグラフを、直線長さが最大値（Ｌｍａｘ）と所定の割合だけ短い長さ（α＊Ｌｍａｘ）との間に含まれるｙ座標値の範囲にて定積分したときの値は、矩形領域の長手方向が基準軸と平行になったときに最大となる。
【０１２８】
なお、図１３Ｃに示すように、矩形領域の短手方向が基準軸と平行となるときには、上記の定積分値は０となる。なぜなら、どのｙ座標値においても、直線長さがα＊Ｌｍａｘを下回るからである。
【０１２９】
従って、走行領域内経路作成部５５３は、グローバルマップ上に画定した走行領域ＴＡを回転させて、ある特定角度だけ回転後の走行領域ＴＡのｘ軸方向における走行領域ＴＡの境界線間の距離を、直線長さとして、各ｙ軸方向の位置（ｙ軸方向の各座標値）に対して算出する。
【０１３０】
その後、走行領域内経路作成部５５３は、当該特定角度において、直線長さがＬｍａｘとα＊Ｌｍａｘとの間に含まれるｙ座標値の範囲内の直線長さを積算する。グローバルマップ上に画定した走行領域ＴＡを所定の角度範囲（例えば、０°〜１８０°の範囲）で回転させた後、走行領域内経路作成部５５３は、ある矩形領域ＲＡについて上記の直線長さの積算値が最大となったときの走行領域ＴＡの回転角度（とは符号が逆の角度）を、当該ある矩形領域ＲＡの主方向と決定する。
【０１３１】
走行領域内経路作成部５５３は、直線長さの積算値が最大となったときの走行領域ＴＡの回転角度（とは符号が逆の角度）における直線長さ（一定値）を、この矩形領域ＲＡの長手方向の長さとし、直線長さが一定であるｙ軸方向の位置範囲間の長さをこの矩形領域ＲＡの短手方向の長さとする。
【０１３２】
走行領域ＴＡの回転角度を変化させつつ、直線長さとｙ軸方向の位置との関係とを算出しつつ上記のようにして各矩形領域ＲＡの主方向を探索することで、走行領域内経路作成部５５３は、例えば、図１２に示すように画定された走行領域ＴＡを、図１４に示すように３つの矩形領域ＲＡ１〜ＲＡ３に分割できる。
図１４は、走行領域を矩形領域に分割した状態の一例を示す図である。
【０１３３】
走行領域ＴＡを矩形領域ＲＡ１〜ＲＡ３に分割後、走行領域内経路作成部５５３は、各矩形領域ＲＡ１〜ＲＡ３に対して、当該各矩形領域ＲＡ１〜ＲＡ３内おける矩形領域内経路（後述）の始点となる有効セル（始点セルＳＣと呼ぶことにする）を決定する（ステップＳ４４）。
【０１３４】
走行領域内経路作成部５５３は、各矩形領域ＲＡ１〜ＲＡ３の四隅のいずれかに始点セルＳＣを定める。最初に矩形領域内経路を作成する矩形領域ＲＡ１については、例えば、図１５に示すように、走行領域ＴＡの境界線を表す点列を取得する際に自律走行装置１００が走行を開始した位置に対応する有効セルを、当該矩形領域ＲＡ１の始点セルＳＣとする。
図１５は、最初に矩形領域内経路を作成する矩形領域において決定された始点セルの一例を示す図である。
【０１３５】
他の矩形領域ＲＡ２、ＲＡ３の始点セルＳＣは、後述するステップＳ４７において決定される。
【０１３６】
矩形領域内経路を作成する対象の矩形領域ＲＡ１〜ＲＡ３について始点セルＳＣを決定後、走行領域内経路作成部５５３は、当該始点セルＳＣから開始し、対象の各矩形領域ＲＡ１〜ＲＡ２に含まれる全ての有効セルを通過する走行経路である矩形領域内経路を作成する（ステップＳ４５）。
走行領域内経路作成部５５３は、具体的には、図１６のフローチャートに示す処理に従って、矩形領域内経路を作成する。図１６は、矩形領域内経路の作成方法を示すフローチャートである。
【０１３７】
以下の説明においては、矩形領域ＲＡ１について矩形領域内経路を作成する方法を例にとって説明する。他の矩形領域ＲＡ２、ＲＡ３についても、矩形領域ＲＡ１に対して実行される作成方法により、矩形領域内経路を作成できる。
【０１３８】
走行領域内経路作成部５５３は、まず、矩形領域内経路を作成しようとしている矩形領域ＲＡ１の主方向を決定する（ステップＳ４５１）。矩形領域ＲＡ１の主方向は、例えば、上記のステップＳ４３において走行領域ＴＡを矩形領域ＲＡ１〜ＲＡ３に分割するときに決定した主方向とできる。図１５に示すように、矩形領域ＲＡ１の主方向は、ｘ軸に平行な方向である。
【０１３９】
次に、走行領域内経路作成部５５３は、矩形領域ＲＡ１内の有効セルにスコアを付与する（ステップＳ４５２）。具体的には、走行領域内経路作成部５５３は、始点セルから、主方向とは垂直な方向に離れた有効セルほど高いスコアを付与する。その一方、主方向に沿って配置される有効セルに対しては、同一のスコアを付与する。
その結果、走行領域内経路作成部５５３は、矩形領域ＲＡ１内の有効セルに対しては、図１７に示すようなスコアを付与する。図１７は、矩形領域内のセルに付与したスコアの一例を示す図である。
【０１４０】
図１７に示す例において、始点セルＳＣから主方向に沿った方向に配置された有効セルには、「１１」とのスコアが付与されている。これは、矩形領域ＲＡ１においては、主方向に１１個の有効セルが存在することを意味している。
【０１４１】
他の有効セルについては、始点セルＳＣから主方向とは垂直な方向に離れる従い、１１の倍数でスコアが増加する。
具体的には、主方向とは垂直な方向に始点セルＳＣと隣接する有効セルに対しては、「２２」とのスコアが付与されている。また、当該「２２」のスコアが付与された有効セルに対して主方向に沿った方向に配置された有効セルには、これと同じ「２２」とのスコアが付与されている。
【０１４２】
主方向とは垂直な方向に始点セルＳＣから２セル分離れた有効セルに対しては、「３３」とのスコアが付与されている。また、当該「３３」のスコアが付与された有効セルに対して主方向に沿った方向に配置された有効セルには、これと同じ「３３」とのスコアが付与されている。
【０１４３】
主方向とは垂直な方向に始点セルＳＣから３セル分離れた有効セルに対しては、「４４」とのスコアが付与されている。また、当該「４４」のスコアが付与された有効セルに対して主方向に沿った方向に配置された有効セルには、これと同じ「４４」とのスコアが付与されている。
【０１４４】
主方向とは垂直な方向に始点セルＳＣから４セル分離れた有効セルに対しては、「５５」とのスコアが付与されている。また、当該「５５」のスコアが付与された有効セルに対して主方向に沿った方向に配置された有効セルには、これと同じ「５５」とのスコアが付与されている。
【０１４５】
次に、走行領域内経路作成部５５３は、始点セルＳＣから、各有効セルへと経路を延ばしていく。具体的には、走行領域内経路作成部５５３は、始点セルＳＣからは、始点セルＳＣの主方向又は主方向とは垂直な方向に存在する有効セルのうち、最高のスコアが付与された有効セルへ経路を延ばす（ステップＳ４５３）。
【０１４６】
図１７に示す例では、始点セルＳＣから主方向（ｘ軸方向）に隣接する有効セルには「１１」とのスコアが付与され、主方向に対して垂直な方向（ｙ軸方向）に隣接する有効セルには「２２」とのスコアが付与されている。従って、走行領域内経路作成部５５３は、始点セルＳＣからｙ軸方向に隣接する有効セルに経路を延ばす。
【０１４７】
その後、走行領域内経路作成部５５３は、当該「２２」とのスコアが付与された有効セルに対してｙ軸方向に隣接した「３３」とのスコアが付与された有効セルに経路をさらに延ばす。さらに、当該「３３」とのスコアが付与された有効セルに対してｙ軸方向に隣接した「４４」とのスコアが付与された有効セルに経路を延ばし、当該「４４」とのスコアが付与された有効セルからｙ軸方向に隣接した「５５」とのスコアが付与された有効セルに経路を延ばす。
【０１４８】
走行領域内経路作成部５５３は、経路がすでに延びた有効セルに対しては、当該有効セルを再度通過しないと経路が計画できないなど特別な事情がない限り、再度経路が延びないようにする。
【０１４９】
走行領域内経路作成部５５３が上記の規則に沿って経路を延ばすことにより、図１８において太矢印にて示すようなｙ軸方向（主方向に対して垂直な方向）に延びる経路が、始点セルＳＣから、矩形領域ＲＡ１において始点セルＳＣに対してｙ軸方向の反対側の端部にある有効セルへと延びる。このように、自律走行装置１００を直進させる経路のことを「直進経路」と呼ぶ。また、直進経路のうち、主方向に対して垂直な方向に延びる経路を「第２経路」と呼ぶ。
図１８は、矩形領域内経路の一例を示す図である。
【０１５０】
上記の規則に従って経路を延ばした場合、「５５」とのスコアが付与された、始点セルＳＣに対してｙ軸方向の反対側の端部にある有効セルからは、図１８に示すように、当該有効セルに対して主方向に隣接して存在する「５５」とのスコアが付与された有効セルへと経路が延びる。
すなわち、始点セルＳＣに対してｙ軸方向の反対側の端部にある有効セルにおいては、経路が延びる方向が、ｙ軸方向からｘ軸方向へと転換している。このように、ｙ軸方向に延びる経路とｘ軸方向に延びる経路とを組み合わせることにより、自律走行装置１００の走行方向を転換できる。
【０１５１】
上記にように、ｙ軸方向に延びる経路とｘ軸方向に延びる経路とを組み合わせて形成される経路を、自律走行装置１００の右折又は左折に対応する「方向転換経路」と呼ぶことにする。また、直進経路のうち、主方向に延びる経路を「第１経路」と呼ぶ。
【０１５２】
その後も、矩形領域ＲＡ１内に経路が通過していない有効セルが存在する限り（ステップＳ４５４において「Ｎｏ」である限り）、走行領域内経路作成部５５３が上記の規則に従って経路を延ばすことにより、矩形領域ＲＡ１内には、図１８の太矢印に示すような、始点セルＳＣから開始し矩形領域ＲＡ１に含まれる全ての有効セルを通過する矩形領域内経路が作成される。
【０１５３】
他の実施形態において、走行領域内経路作成部５５３は、矩形領域内経路を作成するときに、各有効セルに対して清掃条件を設定し、当該清掃条件を矩形領域内経路と関連付けてもよい。
【０１５４】
図１８に示すように、矩形領域内経路は、主方向に延びる第１経路と、主方向に対して垂直に延びる第２経路と、を組み合わせることにより作成されている。すなわち、矩形領域内経路は、自律走行装置１００の直進に対応する直進経路と、自律走行装置１００の右折又は左折に対応する方向転換経路と、を組み合わせることにより作成されている。
これにより、矩形領域ＲＡ１をまんべんなく通過する矩形領域内経路を、自律走行装置１００の直進と方向転換との単純な動作の組み合わせにより作成できる。
【０１５５】
また、図１８に示す矩形領域内経路においては、第１経路は主方向に沿って複数の有効セルにわたり延びる一方、主方向に対して垂直な方向に延びる第２経路は、始点セルＳＣから開始される経路を除き、１つのセル分しか延びていない。このように、矩形領域ＲＡ１の主方向に沿って第１経路を複数の有効セルにわたり延ばすことにより、すなわち、主方向に沿ってより長い経路を作成することにより、矩形領域内経路に含まれる方向転換経路の数を最小にできる。
【０１５６】
上記のステップＳ４５１〜Ｓ４５４を実行して１つの矩形領域ＲＡ１内に矩形領域内経路を作成後、走行領域内経路作成部５５３は、矩形領域内経路を未だ作成していない矩形領域ＲＡ１〜ＲＡ３が存在するか否かを判定する（ステップＳ４６）。
【０１５７】
矩形領域内経路を作成していない矩形領域ＲＡ１〜ＲＡ３が存在していない場合（ステップＳ４６において「Ｎｏ」の場合）には、手動操作教示モードを終了する。
その一方、矩形領域内経路を作成していない矩形領域ＲＡ１〜ＲＡ３が存在する場合（ステップＳ４６において「Ｙｅｓ」の場合）、次にどの矩形領域ＲＡ２、ＲＡ３内を自律走行装置１００に走行させるかを決定する（ステップＳ４７）。以下では、矩形領域ＲＡ１の矩形領域内経路の作成が終了した場合を例にとって説明する。
【０１５８】
次にどの矩形領域ＲＡ２、ＲＡ３内を自律走行装置１００に走行させるかを決定するにあたり、走行領域内経路作成部５５３は、障害物の存在などを考慮して、矩形領域ＲＡ１内に作成された矩形領域内経路の終点である終点セルＥＣと、矩形領域ＲＡ２及び矩形領域ＲＡ３の四隅に対応する有効セルのそれぞれとの間に接続経路を計画する。
【０１５９】
走行領域内経路作成部５５３は、計画された接続経路のうち、最短の接続経路にて矩形領域ＲＡ１の終点セルＥＣと接続する有効セルを次の矩形領域についての始点セルＳＣと決定する。図１９に示す例では、矩形領域ＲＡ１の終点セルＥＣに隣接し矩形領域ＲＡ３に含まれる有効セルを始点セルＳＣと決定できる。すなわち、矩形領域ＲＡ３を、次に自律走行装置１００を走行させる矩形領域と決定できる。
図１９は、次に走行すべき矩形領域の決定方法の一例を模式的に示す図である。
【０１６０】
このように、自律走行装置１００が次に走行すべき矩形領域ＲＡ２、ＲＡ３として複数の矩形領域ＲＡ２、ＲＡ３が候補として存在する場合に、複数の矩形領域ＲＡ２、ＲＡ３の候補のうち、矩形領域ＲＡ１の終点セルＥＣと最短距離にて接続される始点セルＳＣを有する矩形領域ＲＡ３を、次に走行すべき矩形領域と決定することにより、最短距離である走行効率がよい走行領域内経路を作成できる。
【０１６１】
上記のようにして次に走行すべき矩形領域を決定後、走行領域内経路作成部５５３は、矩形領域ＲＡ１の終点セルＥＣ１と、当該次に走行すべきと決定した矩形領域ＲＡ３の始点セルＳＣとを、上記にて計画した接続経路にて接続する（ステップＳ４８）。
その後、矩形領域ＲＡ３において矩形領域内経路が作成される。
【０１６２】
その後、矩形領域内経路が全ての矩形領域ＲＡ１〜ＲＡ３において作成されるまで、上記のステップＳ４５（ステップＳ４５１〜Ｓ４５４）〜Ｓ４８が繰り返し実行される。その結果、図１２などにて示した走行領域ＴＡに対して、最終的に図２０の太矢印にて示すような、設定された走行領域ＴＡ内を自律走行装置１００がまんべんなく走行する走行領域内経路が作成される。
図２０は、走行領域内経路の一例を示す図である。
【０１６３】
走行領域内経路を作成後、走行領域内経路作成部５５３は、作成した走行領域内経路を、自律走行装置１００が通過する通過点の集合に変換する。その後、走行領域内経路作成部５５３は、走行領域内経路を変換して生成した各通過点に対して当該通過点を通過する時間を関連付け、さらに、必要に応じて、各通過点における清掃条件を対応する通過点に関連付けることで、図２１に示すような走行スケジュール５００を作成する。
図２１は、走行スケジュールの一例を示す図である。
【０１６４】
図２１に示す走行スケジュール５００において、Ｔ０、Ｔ１、・・・Ｔｎは、走行経路内経路の各通過点を通過する時間である。（ｘ０，ｙ０）、（ｘ１，ｙ１）、・・・（ｘｎ，ｙｎ）は、走行経路内経路の各通過点の座標値である。θ０、θ１、・・・θｎは、走行経路内経路の各通過点における自律走行装置１００の姿勢である。
【０１６５】
走行スケジュール５００において、Ｓ０、Ｓ１、・・・Ｓｎは、走行経路内経路の各通過点における洗浄液の供給量である。Ｗ０、Ｗ１、・・・Ｗｎは、走行経路内経路の各通過点における床面Ｆの洗浄力である。Ｐ０、Ｐ１、・・・Ｐｎは、走行経路内経路の各通過点における吸引口Ｏ２の吸引力である。
【０１６６】
手動操作教示モードにおいて、上記のステップＳ４１〜Ｓ４８（及び、ステップＳ４５１〜Ｓ４５４）を実行することにより、走行環境を表すグローバルマップ上において走行領域ＴＡを指定するとの容易な方法により、自律走行装置１００が走行領域ＴＡをまんべんなく走行できる走行経路、すなわち、走行領域内経路を精度よく作成できる。
【０１６７】
（５−３）自律走行モードの動作
次に、図７のステップＳ２において実行される、手動操作教示モードにおいて作成された走行領域内経路を再現する自律走行モードの実行時における自律走行装置１００の動作について、図２２を用いて説明する。図２２は、自律走行モードの実行時の自律走行装置の動作を示すフローチャートである。
【０１６８】
切替部９１において「自動」が選択されて自律走行モードを実行すると決定すると、自律走行装置１００は、走行スケジュール５００に従って自律的に走行する自律走行モードを開始する。自律走行モードは、具体的には、以下のようにして実行される。
【０１６９】
以下の説明においては、自律走行モードの実行開始からの経過時間ｔｍ−１までの走行が実行済みであるとする。ここで、ｍは、ｍ番目の走行のための制御を示す。まず、ＳＬＡＭ部５５５が、前方検出器５５５１ａ及び後方検出器５５５１ｂから、前方の障害物に関する情報及び後方の障害物に関する情報を取得する（ステップＳ２１）。
【０１７０】
その後、位置推定部５５５５が、エンコーダ１１１にて測定された走行モータ１１の回転量、グローバルマップ、及び上記のステップＳ２１において取得された情報に基づいて得られたローカルマップに基づいて、走行部１のｘ−ｙ座標上の位置を推定する（ステップＳ２２）。例えば、自律走行装置１００の位置が、ｘ−ｙ座標上において、（ｘｍ’，ｙｍ’、θｍ’）と推定されたとする。
【０１７１】
走行部１の位置を推定後、経過時間決定部５５５７が、自律走行モードの実行開始からの経過時間ｔｍを決定し（ステップＳ２３）、走行再現部５５７が、経過時間ｔｍにおける再現走行制御指令を、以下のように算出する（ステップＳ２４）。
【０１７２】
今、経過時間ｔｍが、走行スケジュール５００に記憶された時間ＴＬ（に最も近い）であると決定されたとする。この場合、走行再現部５５７は、次の時間ＴＬ＋１に関連付けられた位置情報（ｘＬ＋１，ｙＬ＋１，θＬ＋１）を、走行スケジュール５００から読み出し、経過時間ｔｍにおける再現走行制御指令を、推定された位置情報と目標とする位置情報との差分（ｘＬ＋１−ｘｍ’，ｙＬ＋１−ｙｍ’，θＬ＋１−θｍ’）に基づいて算出する。
【０１７３】
再現走行制御指令を算出後、走行再現部５５７は、再現走行制御指令を走行制御部５３に出力する（ステップＳ２５）。これにより、走行制御部５３は、受信した再現走行制御指令に基づいて走行モータ１１を制御することで、走行部１を走行スケジュール５００に従って自律的に移動させる。
【０１７４】
他の実施形態において、走行スケジュール５００に清掃条件が関連付けられている場合には、上記のステップＳ２４〜Ｓ２５において、走行再現部５５７は、再現清掃条件を算出し、当該再現清掃条件に基づいて清掃制御部５１を制御してもよい。
【０１７５】
具体的には、走行再現部５５７は、時間ＴＬに関連付けられた清掃条件（ＳＬ，ＷＬ，ＰＬ）を走行スケジュール５００から読み出し、当該清掃条件（ＳＬ，ＷＬ，ＰＬ）を経過時間ｔｍにおける再現清掃条件として決定する。その後、走行再現部５５７は、再現清掃条件を清掃制御部５１に出力する。これにより、再現清掃条件に従って、清掃部３を制御できる。
【０１７６】
走行部１を再現走行制御指令に基づいて制御後、走行再現部５５７は、走行スケジュール５００に記憶された走行動作を全て実行したかどうかを確認する（ステップＳ２６）。
走行スケジュール５００に記憶された走行動作が全て終了したかどうかは、例えば、走行スケジュール５００の末尾にある識別子（例えば、「エンド・オブ・ファイル」を示す識別子など）を検出することにより確認できる。
【０１７７】
走行スケジュール５００に記憶された走行動作が全て実行されていないと判定される限り（ステップＳ２６において「Ｎｏ」である限り）、上記のステップＳ２１〜Ｓ２５が繰り返し実行される。
一方、走行スケジュール５００に記憶された全ての走行動作が実行されたと判定されたとき、すなわち、自律走行装置１００が走行領域内経路を全て走行したと判定されたとき（ステップＳ２６において「Ｙｅｓ」の場合）に、自律走行モードの実行を終了する。
【０１７８】
これにより、自律走行装置１００は、走行スケジュール５００に記憶された走行動作を忠実に再現して、設定された走行領域内を自律的にまんべんなく走行できる。
【０１７９】
他の実施形態において、走行スケジュール５００に記憶された走行動作を全て実行した場合のみでなく、例えば、自律走行装置１００にて異常が発生した場合、ユーザにより自律走行モードの実行停止が指令された場合などにおいても、自律走行モードの実行が停止されてもよい。
【０１８０】
２．第２実施形態
（１）第２実施形態の概要
上記の第１実施形態においては、走行スケジュール５００として一度作成された走行領域内経路は、変更されることはなかった。これにより、自律走行装置１００は、同じ走行領域内経路を自律的に再現走行できる。
ただし、例えば柔らかい表面（例えば、地表面）などを自律走行装置１００が走行すると、同一の走行経路を繰り返し走行するために、走行部１の主輪１３により当該同一の走行経路の轍が柔らかい表面にできることがある。
【０１８１】
従って、第２実施形態に係る自律走行装置１００においては、同一の走行経路を走行することによって轍ができることを回避するために、自律走行モードの実行毎、又は、自律走行モードを所定の回数実行する毎に、自律走行装置１００が走行する経路を自律的に変更する。
【０１８２】
第２実施形態に係る自律走行装置１００においては、自律走行モードの実行毎、又は、所定の回数実行する毎に、走行経路を変更すること以外は、第１実施形態に係る自律走行装置１００と同じ構成及び機能を有する。従って、以下においては、自律走行モードの実行毎、又は、所定の回数実行する毎に、どのように走行経路を変更するかについてのみを説明し、自律走行装置１００の構成要素及びその機能などの説明は省略する。
【０１８３】
（２）走行経路の変更方法
以下、一度作成された走行領域内経路を変更する方法について、図２３を用いて説明する。図２３は、走行領域内経路を変更する方法を示すフローチャートである。以下の説明では、図２４に示すように、セルが配置されたｘ−ｙ座標平面上に配置され、主方向がｙ軸方向に延びる矩形領域ＲＡ４に作成された矩形領域内経路を変更する実施例について説明する。
図２４は、変更前の走行領域内経路の一例を示す図である。
【０１８４】
以下に説明する矩形領域内経路の変更は、自律走行モードが開始されてから自律走行装置１００が走行開始するまでの間に実行されてもよいし、手動操作教示モードの実行時に複数回実行され、作成された矩形領域内経路毎に走行スケジュール５００として記憶されてもよい。
【０１８５】
矩形領域内経路の変更を開始すると、走行領域内経路作成部５５３は、例えば座標の回転を表す数式などを用いて、矩形領域ＲＡ４を所定の角度だけ回転して回転矩形領域ＲＡ４’を作成する（ステップＳ２０１）。
ステップＳ２０１を実行することにより、例えば、図２５の太実線に示すような回転矩形領域ＲＡ４’が、ｘ−ｙ座標平面上に作成される。図２５は、回転矩形領域の一例を示す図である。
【０１８６】
上記の矩形領域（あるいは、回転矩形領域）を回転させる所定の角度は、矩形領域内経路（回転矩形領域内経路）の作成毎に変化させる。これにより、矩形領域内経路（回転矩形領域内経路）の変更毎に、異なる走行経路を作成できる。
【０１８７】
次に、走行領域内経路作成部５５３は、回転矩形領域ＲＡ４’に含まれるセルにスコアを付与する（ステップＳ２０２）。
本実施形態において、走行領域内経路作成部５５３は、回転矩形領域ＲＡ４’に含まれるセルのうち、ｘ軸方向に配置されるセルについては始点セルＳＣから離れるほど高いスコアを付与すると決定する。一方、ｙ軸方向に配置されるセルについては同一のスコアを付与すると決定する。
【０１８８】
その結果、走行領域内経路作成部５５３は、例えば、回転矩形領域ＲＡ４’内に含まれるセルに対して、図２６に示すようなスコアを付与する。図２６は、回転矩形領域に含まれるセルに付与したスコアの一例を示す図である。
【０１８９】
次に、走行領域内経路作成部５５３は、始点セルＳＣから各セルへと経路を延ばしていく（ステップＳ２０３）。具体的には、走行領域内経路作成部５５３は、例えば、以下の条件（ｉ）〜（ｉｖ）に従って経路を延ばしていく。
【０１９０】
（ｉ）ｘ軸方向又はｙ軸方向に隣接するセルのうち、最高のスコアが付与されたセルへ経路を延ばす。
（ｉｉ）経路が複数方向に延びることができるときは延びが最短の方向に延ばす。
（ｉｉｉ）ｙ軸の負方向に同一スコアのセルがある場合には当該セルに経路を延ばす。
（ｉｖ）経路がすでに延びたセルに対しては、当該セルを再度通過しないと経路が計画できないなど特別な事情がない限り、再度経路を延ばさない。
【０１９１】
回転矩形領域ＲＡ４’内の全てのセルを経路が通過するまで（ステップＳ２０４において「Ｙｅｓ」となるまで）、走行領域内経路作成部５５３は、上記の条件に従ってセル間に経路を延ばす。
【０１９２】
上記のステップＳ２０１〜Ｓ２０４を実行することにより、図２５などに示した回転矩形領域ＲＡ４’に対しては、図２７の太矢印にて示すような、回転前の矩形領域ＲＡ４に対して作成されていた矩形領域内経路とは異なる回転矩形領域内経路が作成される。
図２７は、回転矩形領域内経路の一例を示す図である。
【０１９３】
図２７に示すように、回転矩形領域内経路は、ｙ軸方向（走行環境の第１方向の一例）に延びる経路（第３経路の一例）と、ｘ軸方向（第１方向に対して垂直な第２方向の一例）に延びる経路（第４経路の一例）と、を組み合わせることにより作成されている。すなわち、回転矩形領域内経路は、自律走行装置１００の直進に対応する直進経路と、自律走行装置１００の右折又は左折に対応する方向転換経路（第３経路と第４経路を組み合わせて形成される）と、を組み合わせることにより作成されている。
これにより、回転矩形領域ＲＡ４’をまんべんなく通過する回転矩形領域内経路を、自律走行装置１００の直進と方向転換との単純な動作の組み合わせにより簡単に作成できる。
【０１９４】
３．他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。また、上記の第１実施形態においてフローチャートにて示した各処理の内容、処理の順番等は、発明の要旨を逸脱しない範囲で変更できる。また、必要に応じてフローチャートにて示した処理のいずれかを省略できる。
【０１９５】
（Ａ）自律走行装置１００は、自律的に清掃作業を実行する清掃機以外の走行装置であってもよい。例えば、自律走行装置１００は、宣伝用ロボットであってもよい。その他、自律走行装置１００は、自律的に走行するための走行部（とそれを制御する制御部）のみにて構成されていてもよい。この場合は、例えば、当該自律走行装置と、所望の機能を発揮するためのロボットシステムと、を組み合わせて、所望の機能を有するロボット（装置）を構成できる。
【０１９６】
自律走行装置１００が清掃作業を自律的に行う装置以外である場合には、走行スケジュール５００には、清掃条件が記憶されない。または、清掃条件の代えて、自律走行装置１００の用途に応じた制御に関する情報が記憶されていてもよい。
【０１９７】
（Ｂ）位置推定部５５５５は、前方検出器５５５１ａ、後方検出器５５５１ｂから得られた情報のみを用いて、レーザーオドメトリによる位置推定により走行部１の位置推定を実行してもよい。レーザオドメトリによる位置推定方法としては、例えば、ＩＣＰ（Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）法などがある。
【０１９８】
（Ｃ）例えば、床面Ｆと主輪１３との間の滑りが少ない場合、前方検出器５５５１ａ及び後方検出器５５５１ｂにより得られる情報から十分な地図情報が得られない場合などには、位置推定部５５５５は、走行モータ１１の回転量のみに基づいて、走行部１の位置推定を行ってもよい。
【０１９９】
（Ｄ）第１実施形態においては、主方向がｘ軸方向又はｙ軸方向に対して平行な矩形領域ＲＡ１〜ＲＡ３のみが存在していた。例えば、第１実施形態において、主方向がｘ軸方向にもｙ軸方向にも平行ではない矩形領域が作成された場合には、以下のようにして当該矩形領域内の有効セルにスコアを付与し、第１実施形態及び第２実施形態において説明した条件に従って経路を延ばすことにより矩形領域内経路を作成できる。
【０２００】
まず、走行領域内経路作成部５５３は、当該矩形領域の主方向（すなわち、長手方向）のｘ軸方向成分及びｙ軸方向成分のいずれが長いかを決定する。主方向のｙ軸方向成分の方が長い場合には、当該矩形領域に含まれるセルのうち、ｘ軸方向に配置されるセルについては始点セルＳＣから離れるほど高いスコアを付与する。一方、ｙ軸方向に配置されるセルについては同一のスコアを付与する。
【０２０１】
一方、主方向のｘ軸方向成分の方が長い場合には、当該矩形領域に含まれるセルのうち、ｙ軸方向に配置されるセルについては始点セルＳＣから離れるほど高いスコアを付与し、ｘ軸方向に配置されるセルについては同一のスコアを付与する。
【産業上の利用可能性】
【０２０２】
本発明は、移動開始位置から移動終了位置までの経路計画に従って自律的に走行する自律走行装置に、広く適用できる。
【符号の説明】
【０２０３】
１００ 自律走行装置
１     走行部
１１   走行モータ
１１１ エンコーダ
１３   主輪
１５   補助輪
３     清掃部
３１   洗浄液吐出口
３１１ 洗浄液供給タンク
３１３ 洗浄液供給ポンプ
３３   スキージ
３３１ 吸引モータ
３３３ 回収部材
３５   洗浄用部材
３５１ 洗浄用部材回転モータ
５     制御部
５１   清掃制御部
５３   走行制御部
５３１ 走行切替部
５３３ モータ制御部
５５   制御統括部
５５１ 走行領域取得部
５５３ 走行領域内経路作成部
５５５ ＳＬＡＭ部
５５５１ａ    前方検出器
５５５１ｂ    後方検出器
５５５３      地図作成部
５５５５      位置推定部
５５５７      経過時間決定部
５５７ 走行再現部
５７   記憶部
７     走行経路教示部
７１ａ、７１ｂハンドル
７３   筐体
７５   走行制御指令算出部
８     取付部材
９     設定部
９１   切替部
９２   手動操作記憶スイッチ
９３   設定操作部
９４   設定変換部
９５   ディスプレイ
９６   清掃条件教示部
９７   清掃制御指令算出部
Ｂ     本体
Ｆ     床面
Ｏ２   吸引口
５００ 走行スケジュール
ＥＣ、ＥＣ１  終点セル
ＲＡ   矩形領域
ＲＡ１〜ＲＡ４矩形領域
ＲＡ４'       回転矩形領域
ＳＣ   始点セル
ＳＴ   開始点
ＴＡ   走行領域
【図１】
0006673486.tif 000002
【図２】
0006673486.tif 000003
【図３】
0006673486.tif 000004
【図４】
0006673486.tif 000005
【図５】
0006673486.tif 000006
【図６】
0006673486.tif 000007
【図７】
0006673486.tif 000008
【図８】
0006673486.tif 000009
【図９】
0006673486.tif 000010
【図１０】
0006673486.tif 000011
【図１１】
0006673486.tif 000012
【図１２】
0006673486.tif 000013
【図１３Ａ】
0006673486.tif 000014
【図１３Ｂ】
0006673486.tif 000015
【図１３Ｃ】
0006673486.tif 000016
【図１４】
0006673486.tif 000017
【図１５】
0006673486.tif 000018
【図１６】
0006673486.tif 000019
【図１７】
0006673486.tif 000020
【図１８】
0006673486.tif 000021
【図１９】
0006673486.tif 000022
【図２０】
0006673486.tif 000023
【図２１】
0006673486.tif 000024
【図２２】
0006673486.tif 000025
【図２３】
0006673486.tif 000026
【図２４】
0006673486.tif 000027
【図２５】
0006673486.tif 000028
【図２６】
0006673486.tif 000029
【図２７】
0006673486.tif 000030