(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】自律走行経路計画方法
(51)【国際特許分類】
G05D 1/246 20240101AFI20241022BHJP
G05D 1/43 20240101ALI20241022BHJP
【FI】
G05D1/246
G05D1/43
(21)【出願番号】P 2020137617
(22)【出願日】2020-08-17
【審査請求日】2023-06-23
(73)【特許権者】
【識別番号】000006297
【氏名又は名称】村田機械株式会社
(74)【代理人】
【識別番号】110000202
【氏名又は名称】弁理士法人新樹グローバル・アイピー
(72)【発明者】
【氏名】中野 剛
(72)【発明者】
【氏名】傳田 遊亀
【審査官】田中 友章
(56)【参考文献】
【文献】国際公開第2018/043180(WO,A1)
【文献】特表2019-525342(JP,A)
【文献】特開2014-219721(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/246
G05D 1/43
(57)【特許請求の範囲】
【請求項1】
移動環境内に定められた走行領域を塗り潰すように自律走行可能であり、前記走行領域に存在する障害物を回避しながら走行する自律走行体のための自律走行経路計画方法であって、
前記移動環境に存在する障害物を表す障害物情報を含む第1地図を作成するステップと、
前記走行領域の外周に対応する外周境界を前記第1地図に対応付けて画定するステップと、
前記外周境界よりも内側に存在する前記障害物情報を削除した第2地図を、前記第1地図からは独立した地図として作成するステップと、
前記第2地図に含まれる走行領域内を塗り潰すように塗り潰し走行経路を作成するステップと、を備え
、
前記塗り潰し走行経路を再現する自律走行モードにおいて、前記自律走行体は、前記第1地図に基づいて、前記自律走行体の位置を推定する、
自律走行経路計画方法。
【請求項2】
移動環境内に定められた走行領域を塗り潰すように自律走行可能であり、前記走行領域に存在する障害物を回避しながら走行する自律走行体のための自律走行経路計画方法であって、
前記移動環境に存在する障害物を表す障害物情報を含む第1地図を作成するステップと、
前記走行領域の外周に対応する外周境界を前記第1地図に対応付けて画定するステップと、
前記外周境界よりも内側に存在する前記障害物情報を削除した第2地図を、前記第1地図からは独立した地図として作成するステップと、
前記第2地図に含まれる走行領域内を塗り潰すように塗り潰し走行経路を作成するステップと、
前記第1地図内において前記自律走行体を前記塗り潰し走行経路に沿って仮想的に走行させつつ、前記自律走行体に前記障害物を仮想的に検出させるステップと、
仮想的な前記障害物の検出状況に基づいて、前記塗り潰し走行経路を走行中に前記自律走行体が自己位置推定を実行できるか否かを判定するステップと、
を備える、自律走行経路計画方法。
【請求項3】
前記第2地図を作成するステップでは、前記外周境界よりも内側に存在する全ての前記障害物情報を削除する、請求項
1又は2に記載の自律走行経路計画方法。
【請求項4】
前記第2地図を作成するステップでは、前記外周境界よりも内側に存在する前記障害物情報のうち所定の条件に合致する前記障害物情報を削除する、請求項
1又は2に記載の自律走行経路計画方法。
【請求項5】
前記所定の条件に合致する障害物情報は、前記外周境界よりも内側に存在する前記障害物情報のうち所定の大きさ以下の障害物を示すものである、請求項
4に記載の自律走行経路計画方法。
【請求項6】
前記所定の条件に合致する障害物情報は、前記外周境界よりも内側に存在する前記障害物情報のうち動的な障害物を示すものである、請求項
4又は5に記載の自律走行経路計画方法。
【請求項7】
前記自律走行体が自己位置推定を実行できるか否かを判定するステップでは、前記障害物を仮想的に検出させるステップにおいて前記障害物が検出されなかった場合に、前記自律走行体が自己位置推定できないと決定する、請求項
2に記載の自律走行経路計画方法。
【請求項8】
前記自律走行体が自己位置推定を実行できるか否かを判定するステップでは、前記障害物を仮想的に検出させるステップにおいて検出された前記障害物が単純な形状であった場合に、前記自律走行体が自己位置推定できないと決定する、請求項
2に記載の自律走行経路計画方法。
【請求項9】
前記外周境界を画定するステップは、
前記自律走行体を前記走行領域の外周に沿って移動させるステップと、
前記走行領域の外周に沿って移動中に通過した通過点を推定するステップと、
前記通過点の集合を前記外周境界として画定するステップと、を有する、請求項1~8のいずれかに記載の自律走行経路計画方法。
【請求項10】
前記外周境界を画定するステップは、前記第1地図に前記外周境界に対応する境界線を描画するステップを有する、請求項1~8のいずれかに記載の自律走行経路計画方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律走行体のための自律走行経路計画方法に関する。特に、移動環境内に定められた走行領域を塗り潰すように自律走行可能であり、当該走行領域に存在する障害物を回避しながら走行する自律走行体のための自律走行経路を計画する方法に関する。
【背景技術】
【0002】
従来、移動環境内に定められた走行領域を塗り潰すような走行経路(塗り潰し走行経路と呼ぶ)を自律的に走行可能な自律走行体が知られている(例えば、特許文献1を参照)。
塗り潰し走行経路は、移動環境を表す環境地図上に走行領域を画定し、当該走行領域内において直進経路と方向転換経路とを組み合わせた走行経路を計画することで作成される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
移動環境内には自律走行体が回避すべき障害物が存在することがある。そして、環境地図は自律走行体の自己位置推定に用いられるので、環境地図には障害物に関する情報が含まれていることが好ましい。なぜなら、環境地図内に障害物による特徴的な形状の地図情報が含まれていることで、より正確な自己位置推定が可能だからである。
【0005】
従来の塗り潰し走行経路の作成方法においては、環境地図内の障害物に関する情報が走行領域にも含まれる場合には、当該障害物を避けるような塗り潰し走行経路が作成される。一方、環境地図の作成時には存在する障害物が自律走行体の自律走行時には存在しなくなる場合があり、従来の方法では、この障害物を避けるような塗り潰し走行経路が作成される。
【0006】
このような場合、自律走行体は、走行領域を適切に塗り潰す自律走行ができなくなる。なぜなら、環境地図の作成時には障害物が存在するが自律走行時にはその障害物が存在しなくなる場合に、従来の方法により作成した塗り潰し走行経路に従って自律走行すると、自律走行体は障害物が存在しない箇所を避けて走行するので、走行領域内に自律走行体が走行しない「塗り残し」が存在してしまうからである。
【0007】
本発明の目的は、自律走行経路計画方法において、環境地図の作成時には存在する障害物が自律走行体の自律走行時には存在しなくなる場合でも、当該走行領域を適切に塗り潰すことができる塗り潰し走行経路を作成することにある。
【課題を解決するための手段】
【0008】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一見地に係る自律走行経路計画方法は、自律走行体の自律走行経路を計画するための方法である。自律走行体は、移動環境内に定められた走行領域を塗り潰すように自律走行可能であり、走行領域に存在する障害物を回避しながら走行する。
自律走行経路計画方法は、以下のステップを備える。
◎移動環境に存在する障害物を表す障害物情報を含む第1地図を作成するステップ。
◎走行領域の外周に対応する外周境界を第1地図に対応付けて画定するステップ。
◎外周境界よりも内側に存在する障害物情報を削除した第2地図を、第1地図からは独立した地図として作成するステップ。
◎第2地図に含まれる走行領域内を塗り潰すように塗り潰し走行経路を作成するステップ。
【0009】
上記の自律走行経路計画方法では、走行領域に含まれる障害物に関する障害物情報を除去した第2地図が第1地図からは独立して作成され、次に当該第2地図に含まれる走行領域内に塗り潰し走行経路が作成される。
これにより、第1地図の作成時には走行領域内に存在する障害物が自律走行時には存在しなくなる場合でも、当該走行領域を適切に塗り潰すことができる塗り潰し走行経路を作成できる。
【0010】
第2地図を作成するステップでは、外周境界よりも内側に存在する全ての障害物情報を削除してもよい。これにより、第2地図を容易に作成できる。
【0011】
第2地図を作成するステップでは、外周境界よりも内側に存在する障害物情報のうち所定の条件に合致する障害物情報を削除してもよい。
これにより、存在していれば不適切な塗り潰し走行経路を作成すると予想される障害物情報を削除して、第2地図内により適切な塗り潰し走行経路を作成できる。
【0012】
所定の条件に合致する障害物情報は、外周境界よりも内側に存在する障害物情報のうち所定の大きさ以下の障害物を示すものであってもよい。
これにより、小さな障害物は移動する傾向にあり自律走行時には存在しなくなるとの予測に基づいて障害物情報を削除して、第2地図内により適切な塗り潰し走行経路を作成できる。
【0013】
所定の条件に合致する障害物情報は、外周境界よりも内側に存在する障害物情報のうち動的な障害物を示すものであってもよい。
これにより、自律走行時には存在しないと予想される障害物の障害物情報を削除して、第2地図内により適切な塗り潰し走行経路を作成できる。
【0014】
上記の自律走行経路計画方法は、以下のステップをさらに備えてもよい。
◎第1地図内において自律走行体を塗り潰し走行経路に沿って仮想的に走行させつつ、自律走行体に障害物を仮想的に検出させるステップ。
◎仮想的な障害物の検出状況に基づいて、塗り潰し走行経路を走行中に自律走行体が自己位置推定を実行できるか否かを判定するステップ。
これにより、自律走行体が塗り潰し走行経路を自律走行する際に第1地図と自律走行時の障害物情報とを用いた自己位置推定が可能か否かを、自律走行の実行前に予知できる。
【0015】
自律走行体が自己位置推定を実行できるか否かを判定するステップでは、障害物を仮想的に検出させるステップにおいて障害物が検出されなかった場合に、自律走行体が自己位置推定できないと決定してもよい。
これにより、塗り潰し走行経路を自律走行する際に障害物が検出されず第1地図と自律走行時の障害物情報とを用いた自己位置推定が不可能になることを、自律走行の実行前に予知できる。
【0016】
自律走行体が自己位置推定を実行できるか否かを判定するステップでは、障害物を仮想的に検出させるステップにおいて検出された障害物が単純な形状であった場合に、自律走行体が自己位置推定できないと決定してもよい。
これにより、塗り潰し走行経路を自律走行する際に単純形状の障害物しか検出されず、第1地図と自律走行時の障害物情報とを用いた自己位置推定が不可能になるか、又は、自己位置推定の精度が低下する可能性があることを、自律走行の実行前に予知できる。
【0017】
外周境界を画定するステップは、以下のステップを有してもよい。
◎自律走行体を走行領域の外周に沿って移動させるステップ。
◎走行領域の外周に沿って移動中に通過した通過点を推定するステップ。
◎通過点の集合を外周境界として画定するステップ。
これにより、自律走行体を走行領域の外周に沿って走行させる方法により、走行領域を画定できる。
【0018】
外周境界を画定するステップは、第1地図に外周境界に対応する境界線を描画するステップを有してもよい。
これにより、自律走行体を走行領域の外周に沿って走行させることなく走行領域を画定できる。
【発明の効果】
【0019】
本発明に係る自律走行経路計画方法では、環境地図の作成時には存在する障害物が自律走行体の自律走行時には存在しなくなる場合でも、当該走行領域を適切に塗り潰すことができる塗り潰し走行経路を作成できる。
【図面の簡単な説明】
【0020】
【
図5】走行制御部の機能ブロックの詳細構成を示す図。
【
図6】制御統括部の機能ブロックの詳細構成を示す図。
【
図7】自律走行装置の基本的な動作を示すフローチャート。
【
図8】手動操作教示モードの動作を示すフローチャート。
【
図10】グローバルマップと外周境界の一例を示す図。
【
図11】走行スケジュールの作成動作を示すフローチャート。
【
図13】外周境界を画定後のセル変換後マップの一例を示す図。
【
図15】経路作成用マップにおける有効セル/無効セルの一例を示す図。
【
図16】走行領域を矩形領域に分割した状態の一例を示す図。
【
図17】最初に塗り潰し走行経路を作成する矩形領域において決定された始点セルの一例を示す図。
【
図18】塗り潰し走行経路の作成方法を示すフローチャート。
【
図19】矩形領域内のセルに付与したスコアの一例を示す図。
【
図21】新たな始点セルと次に塗り潰し走行経路を作成する矩形領域の決定方法の一例を模式的に示す図。
【
図22】走行領域全体に作成された塗り潰し走行経路の一例を示す図。
【
図24】自律走行モードの実行時の自律走行装置の動作を示すフローチャート。
【
図26】自己位置推定の可否判断動作を示すフローチャート。
【
図27】ローカルマップにおける障害物情報の検出状態の一例を示す図。
【発明を実施するための形態】
【0021】
1.第1実施形態
(1)自律走行装置の全体構成
図1を用いて、第1実施形態に係る自律走行装置100(自律走行体の一例)の全体構成を説明する。
図1は、自律走行装置の一例の全体構成を示す図である。自律走行装置100は、設定された清掃条件と走行経路とを自律的に再現する清掃機である。
自律走行装置100は、走行部1を備える。走行部1は、自律走行装置100を走行させる装置である。走行部1は、自律走行装置100の本体を構成する本体Bを有する。走行部1は、本体Bの底部の左右端にそれぞれ、走行モータ11と、走行モータ11の出力回転軸に取り付けられ、走行モータ11の回転に従って回転する主輪13と、を有する。
【0022】
自律走行装置100は、清掃部3を備える。清掃部3は、本体Bの底部に設けられ、指定された清掃条件に従って床面Fを清掃する装置である。本実施形態の清掃部3は、洗浄液吐出口31と、スキージ33と、洗浄用部材35と、を有する。
洗浄液吐出口31は、洗浄液供給タンク311から洗浄液供給ポンプ313により供給された洗浄液(例えば、水)を、本体Bの前方側の床面Fに吐出する。スキージ33は、本体Bの底面後方に設けられ、床面F上に残留する洗浄液を収集する。洗浄用部材35は、本体Bの底面の前方側に設けられ、洗浄用部材回転モータ351の回転にて洗浄液が存在する床面F上にて回転することにより、床面Fを洗浄する。
【0023】
上記の清掃部3を備えることにより、自律走行装置100は、洗浄液を用いて床面Fを洗浄用部材35にて磨く清掃作業を実行できる。
他の実施形態において、スキージ33には吸引口33aが設けられていてもよい。吸引口33aは、吸引モータ331により回収部材333を負圧状態にすることにより、スキージ33により収集された洗浄液やゴミなどを吸引して、回収部材333へと搬送できる。
【0024】
自律走行装置100は、制御部5(経路計画装置の一例)を有する。制御部5は、CPU、記憶装置(RAM、ROM、ハードディスクドライブ、SSDなど)、各種インターフェースなどを備えたコンピュータシステムである。制御部5は、自律走行装置100に関する各種制御を行う(後述)。
自律走行装置100は、走行経路教示部7を備える。走行経路教示部7は、操作者による走行部1の移動操作を受け付ける装置である。走行経路教示部7は、取付部材8を介して、本体Bの上部後側に取り付けられている。これにより、操作者は、走行経路教示部7を操作して走行部1を移動操作できる(後述)。
【0025】
他の実施形態として、走行経路教示部7は、本体Bに取り付けられていなくともよい。この場合、走行経路教示部7は、例えば、ジョイスティックなどのコントローラである。これにより、操作者は、自律走行装置100を遠隔操作できる。
【0026】
自律走行装置100は、設定部9を備える。設定部9は、自律走行装置100に関する各種設定を行うための操作盤であり、本体Bの上方後側の表面に取り付けられている。また、設定部9は、走行経路教示部7の近傍に設けられている。これにより、操作者は、走行経路教示部7を操作して走行部1を操作しつつ、設定部9を操作できる。
他の実施形態として、設定部9は、本体Bに取り付けられていなくてもよい。この場合、設定部9は、例えば、ポータブル端末などの無線通信可能なコンソールとできる。これにより、操作者は、自律走行装置100を遠隔にて設定できる。
【0027】
(2)走行経路教示部の構成
図2を用いて、走行経路教示部7の構成の一例を説明する。
図2は、走行経路教示部の構成の一例を示す図である。
走行経路教示部7は、ハンドル71a、71bを有する。ハンドル71a、71bは、それぞれ、筐体73の左右側面に取り付けられている。ハンドル71a、71bは、操作者が自律走行装置100を操作するときに使用される。
【0028】
例えば、ハンドル71a、71bを把持する操作者は、ハンドル71a、71bを介して、自律走行装置100を操作者の方へ引張る力、又は、自律走行装置100を押し出す力のいずれかを加えることができる。ハンドル71a、71bのそれぞれにかける力を調節することにより、操作者は、自律走行装置100の走行方向を調整できる。例えば、自律走行装置100の前方方向から見て右側のハンドル71aに対して、自律走行装置100を引張る力を加えれば、自律走行装置100は左へと方向転換する。
【0029】
ハンドル71a、71bは、筐体73に回動可能に取り付けられている。また、ハンドル71a、71bは、走行制御指令算出部75を介して制御部5に接続されている。走行制御指令算出部75は、ハンドル71a、71bの回動を電気信号に変換し、制御部5に出力する。これにより、操作者は、ハンドル71a、71bの回動操作によって、自律走行装置100(走行部1)を操作できる。
例えば、ハンドル71a、71bの回動方向を調整することにより、操作者は、自律走行装置100の前進と後進とを切り替え可能となっていてもよい。また、ハンドル71a、71bの回動量を調節することにより、自律走行装置100の走行速度を調整可能となっていてもよい。さらに、ハンドル71aの回動量と、ハンドル71bの回動量とを異ならせて、自律走行装置100の進行方向を変更してもよい。
【0030】
(3)設定部の構成
図3を用いて、設定部9の構成を説明する。
図3は、設定部の構成の一例を示す図である。
設定部9は、切替部91を有する。切替部91は、自律走行装置100の動作モードを選択し、制御部5に出力する。自律走行装置100の動作モードとしては、自律走行モードと手動操作モードとがある。自律走行モードは、自律走行装置100が、自律的に走行し床面Fを洗浄する動作モードである。手動操作モードは、自律走行装置100が操作者により手動操作可能な状態にある動作モードである。
切替部91は、例えば、
図3に示すような切り替えスイッチにて構成できる。
【0031】
設定部9は、手動操作記憶スイッチ92を有する。手動操作記憶スイッチ92は、操作者による自律走行装置100の手動操作の記憶を開始又は終了するためのスイッチである。
具体的には、切替部91により動作モードが手動操作モードに設定された後に手動操作記憶スイッチ92が押されると、操作者の手動操作により実行された清掃条件及び走行経路の記録が開始される。すなわち、清掃条件と走行経路の教示が開始される。一方、手動操作による清掃条件及び走行経路の記録中に手動操作記憶スイッチ92が押されると、当該清掃条件及び走行経路の記録が停止される。
【0032】
なお、操作者の手動操作による清掃条件と走行経路とを記録(教示)する動作モードを手動操作教示モードと呼ぶ。手動操作教示モードは、手動操作モードのサブ動作モードとして開始される。
手動操作記憶スイッチ92としては、例えば、
図3に示すような押ボタンスイッチとすることができる。この場合、手動操作記憶スイッチ92の切り替えは、当該押ボタンスイッチを押すことにより切り替わる。
【0033】
設定部9は、設定操作部93を有する。設定操作部93は、例えば押圧スイッチなどにより構成され、自律走行装置100に関する各種設定の入力を受け付けて、設定変換部94を介して、制御部5に出力する。
設定変換部94は、設定操作部93にて受け付けた入力を、制御部5が解読可能な信号に変換する信号変換回路、又は、コンピュータシステムである。
【0034】
設定部9はディスプレイ95を有する。ディスプレイ95は、現在設定されている自律走行装置100に関する各種設定情報を表示する。ディスプレイ95は、例えば、液晶ディスプレイ、有機ELディスプレイなどのディスプレイである。
他の実施形態において、ディスプレイ95は、現在の動作モード(自律走行モード/手動操作モード/手動操作教示モード)、運転時間、自律走行装置100を駆動するバッテリー残量などをさらに表示してもよい。
【0035】
他の実施形態において、ディスプレイ95にはタッチパネルが設けられていてもよい。この場合、上記の切替部91、手動操作記憶スイッチ92、及び/又は設定操作部93は、当該タッチパネルにより実現されてもよい。
設定部9は、清掃条件教示部96を有してもよい。清掃条件教示部96は、操作者による清掃条件の入力を受け付けて、清掃制御指令算出部97へ出力する。清掃制御指令算出部97は、清掃条件教示部96にて受け付けた清掃条件を、制御部5が解読可能な信号に変換して制御部5に出力する信号変換回路、又は、コンピュータシステムである。
【0036】
(4)制御部の構成
(4-1)制御部の機能ブロック構成
図4を用いて、制御部5の全体の機能ブロック構成を説明する。
図4は、制御部の全体の機能ブロック構成を示す図である。以下に説明する制御部5の各機能ブロックの全部又は一部は、制御部5を構成するコンピュータシステムにて実行可能なプログラムにより実現されてもよい。この場合、当該プログラムは、メモリ部及び/又は記憶装置に記憶されていてもよい。制御部5の各機能ブロックの全部又は一部は、SoC(System on Chip)などのカスタムICとして実現されていてもよい。
制御部5は、1つのコンピュータシステムにより構成されていてもよいし、複数のコンピュータシステムにより構成されていてもよい。複数のコンピュータシステムにより制御部5を構成する場合、例えば、制御部5の複数の機能ブロックにて実現される機能を複数のコンピュータシステムに任意の割合で振り分けて実行させることができる。
【0037】
制御部5は、清掃制御部51を有する。清掃制御部51は、洗浄用部材回転モータ351と、洗浄液供給ポンプ313と、吸引モータ331に対して、回転速度や出力などを制御する電力を供給する。
設定部9が清掃条件教示部96を有する実施例では、清掃制御部51は、清掃制御指令算出部97を介して清掃条件教示部96から教示清掃条件を入力し、当該教示清掃条件に基づいて、洗浄用部材回転モータ351と、洗浄液供給ポンプ313と、吸引モータ331と、を制御してもよい。
他の実施形態において、清掃制御部51は、自律走行モードの実行時に、制御統括部55から、自律走行モードにおける清掃条件の設定値を示す再現清掃条件を入力し、当該再現清掃条件に基づいて、清掃部3を制御してもよい。
【0038】
制御部5は、走行制御部53を有する。走行制御部53は、走行経路教示部7から入力したハンドル71a、71bの回動量及び回動方向に基づく走行制御指令、又は、制御統括部55から入力した走行制御指令に基づき、走行モータ11を制御する。
また、走行制御部53は、走行モータ11の出力回転軸に取り付けられたエンコーダ111から出力されるパルス信号に基づいて、走行モータ11の回転速度を算出する。
制御部5は、制御統括部55を有する。制御統括部55は、自律走行装置100による走行を統括する。具体的には、制御統括部55は、前方検出器41a、後方検出器41b、及び/又はエンコーダ111にて取得された情報に基づいて、自律走行装置100が床面Fのどの位置を移動しているかを示す位置情報を算出する。
制御統括部55は、手動操作教示モードの実行時における上記の位置情報を用いて、走行スケジュール500を作成する。他の実施形態において、制御統括部55は、自律走行モードにおける清掃条件を算出し、走行スケジュール500と関連付けてもよい。
【0039】
一方、自律走行モードの実行時においては、制御統括部55は、走行スケジュール500に記憶されたデータに基づいて再現走行制御指令を算出し、走行制御部53に出力する。これにより、自律走行モードの実行時においては、走行制御部53は、再現走行制御指令に基づいて走行モータ11を制御することで、自律走行装置100を自律的に移動させることができる。
走行スケジュール500に清掃条件が関連付けられている実施形態では、制御統括部55は、自律走行モードの実行時において、走行スケジュール500に記憶された清掃条件に基づいて、清掃制御部51を制御してもよい。これにより、自律走行装置100は、走行スケジュール500に従って自律的に走行中に、当該清掃条件に従って自律的に清掃作業を実行できる。
【0040】
制御部5は、記憶部57を有する。記憶部57は、制御部5を構成するコンピュータシステムの記憶装置の記憶領域の一部又は全部であり、自律走行装置100に関する各種情報を記憶する。具体的には、記憶部57は、制御統括部55において作成された走行スケジュール500、及び、設定操作部93や設定変換部94から入力された自律走行装置100に関する各種設定を記憶する。
走行制御部53、及び制御統括部55は、記憶部57に記憶された自律走行装置100に関する各種設定、及び/又は、走行スケジュール500を必要に応じて読み出して、これらに基づいて各種の調整及び制御を実行できる。
他の実施形態において、制御部5は、記憶部57に記憶された走行スケジュール500などの情報を他の記憶媒体に記憶するためのデータ書き込み装置(図示せず)を有していてもよい。
【0041】
(4-2)走行制御部の機能ブロック構成
図5を用いて、走行制御部53の機能ブロック構成を詳細に説明する。
図5は、走行制御部の機能ブロックの詳細構成を示す図である。
走行制御部53は、走行切替部531を有する。走行切替部531は、3つの端子d、e、及びfを有している。端子dは走行経路教示部7に接続され、端子eはモータ制御部533に接続され、端子fは制御統括部55に接続されている。
【0042】
走行切替部531は、切替部91により選択されている動作モードに基づいて、端子eと端子dとを接続するか、あるいは、端子eと端子fとを接続するかのいずれかを選択する。
具体的には、切替部91において手動操作モードが選択されていれば、走行切替部531は、端子eと端子dとを接続することで、走行経路教示部7をモータ制御部533に接続する。これにより、走行切替部531は、手動操作モード又は手動操作教示モードの実行時には、走行経路教示部7のハンドル71a、71bの回動量及び/又は回転方向を示す信号を、モータ制御部533に送信できる。
一方、切替部91において自律走行モードが選択されていれば、走行切替部531は、端子eと端子fとを接続することで、制御統括部55をモータ制御部533に接続する。これにより、走行切替部531は、自律走行モードの実行時には、制御統括部55から出力される再現走行制御指令を、モータ制御部533に送信できる。
【0043】
モータ制御部533は、入力されたハンドル71a、71bの回動量/回動方向、又は、再現走行制御指令に基づいて、走行モータ11の目標回転速度を算出し、当該目標回転速度にて走行モータ11を回転させるための駆動電力を、走行モータ11に出力する。
モータ制御部533は、エンコーダ111からのパルス信号に基づいて実際の走行モータ11の回転速度を算出し、走行モータ11に出力すべき駆動電力を算出する。モータ制御部533は、例えば、PI(Proportional Integral)制御理論や、PID(Proportional Integral Differential)制御理論などを用いて走行モータ11を制御する。
本実施形態においては、本体Bの底部の左右端のそれぞれに、走行モータ11及び主輪13が設けられている。このような場合、モータ制御部533は、左右2つの走行モータ11のそれぞれの回転速度及び回転方向を独立に制御して、自律走行装置100の進行方向を決定する。
【0044】
(4-3)制御統括部の機能ブロック構成
図6を用いて、制御統括部55の機能ブロック構成を詳細に説明する。
図6は、制御統括部の機能ブロックの詳細構成を示す図である。
制御統括部55は、SLAM部551を有する。SLAM部551は、本体Bの前方に設けられた前方検出器41a(
図1)にて取得した自律走行装置100の前方に存在する障害物に関する情報と、本体Bの後方に設けられた後方検出器41b(
図1)にて取得した自律走行装置100の後方に存在する障害物に関する情報と、を用いてローカルマップとグローバルマップGM(第1地図の一例)とを作成し、これら地図情報とエンコーダ111にて取得した走行モータ11の回転量とに基づいて、自律走行装置100の所定の座標上の自己位置を推定する。
【0045】
ローカルマップは、自律走行装置100の周囲に存在する障害物の存在位置を表す地図情報であり、前方検出器41a及び後方検出器41bにて取得した障害物に関する情報を必要に応じて座標変換することにより作成される。
一方、グローバルマップGMは、移動環境EVに存在する障害物の存在位置を表す地図情報であり、本実施形態では自律走行装置100を移動環境EV内にて移動させて取得したローカルマップを連結することで作成される。
【0046】
具体的には、SLAM部551は、前回の自己位置推定時から現在までの走行モータ11の回転量に基づいてデッドレコニングによる位置推定を実行し、デッドレコニングによる推定位置とその周囲に複数の自己位置の候補を定め、グローバルマップGM上においてこの複数の自己位置の候補のそれぞれに現在のローカルマップを配置し、各自己位置の候補に配置した現在のローカルマップとグローバルマップGMとの一致度を算出し、現在のローカルマップとグローバルマップGMとの一致度が最大である自己位置の候補を、現在の自己位置と推定する。
【0047】
前方検出器41a及び後方検出器41bは、例えば、その検出範囲が180°以上のレーザーレンジファインダ(Laser Range Finder、LRF)である。レーザーレンジファインダを前方検出器41a及び後方検出器41bとして用いた場合、走行部1と障害物との距離と、当該障害物が存在する方向とが、障害物に関する情報として取得される。
前方検出器41a及び後方検出器41bにて取得される情報は、所定の平面上における障害物の存在位置を表す二次元的な情報であってもよいし、さらに高さ方向における障害物の存在位置を表す情報を含んだ三次元的な情報であってもよい。
【0048】
制御統括部55は、経路作成部553を有する。経路作成部553は、移動環境EV(グローバルマップGM)に定めた走行領域TA内に、自律走行装置100が当該走行領域TAをまんべんなく(「塗り潰す」ように)走行する走行スケジュール500を作成し、記憶部57に記憶する。
【0049】
制御統括部55は、走行再現部555を有する。走行再現部555は、自律走行モードを実行する時に、走行スケジュール500に記憶された情報と、SLAM部551から取得した推定された位置情報とに基づいて、自律走行装置100が走行スケジュール500に示された走行経路を自律的に走行するための制御指令(再現走行制御指令)を算出する。走行再現部555は、算出した再現走行制御指令を走行制御部53に出力する。
他の実施形態において、走行再現部555は、走行スケジュール500に関連付けられた清掃条件を、清掃制御部51に出力してもよい。
【0050】
また、走行再現部555は、自律走行装置100の進行方向に存在する障害物を検出する障害物検出部43に接続されている。障害物検出部43は、例えば、本体Bの前方に設けられた超音波センサである。その他、前方検出器41aを進行方向に障害物を検出するセンサとして用いてもよい。
走行再現部555は、自律走行モードの実行中に自律走行装置100の進行方向に障害物が検出された場合には、当該障害物を回避するための再現走行制御指令を算出し、その再現走行制御指令を走行制御部53に出力する。これにより、走行スケジュール500が障害物の存在を考慮することなく作成されても、自律走行装置100は検出された障害物を回避しつつ自律走行できる。
【0051】
(5)自律走行装置の動作
(5-1)基本動作
以下、自律走行装置100の動作を説明する。以下に説明する自律走行装置100の動作は、制御部5の記憶装置により記憶されたコンピュータプログラムを実行することで実現される。
まず、
図7を用いて、自律走行装置100の基本的な動作を説明する。
図7は、自律走行装置の基本的な動作を示すフローチャートである。
自律走行装置100が動作を開始すると、制御部5は、切替部91の状態を確認する(ステップS1)。切替部91が「自動」を選択している場合(ステップS1において「自律走行モード」の場合)、自律走行モードが実行され(ステップS2)、記憶部57に記憶された走行スケジュール500に従って、自律走行装置100は自律的に清掃作業を実行する。
【0052】
一方、切替部91が「手動」を選択している場合(ステップS1において「手動操作モード」の場合)、制御部5は、実行すべき動作モードが手動操作モードと判断する。
手動操作モードを実行中に手動操作記憶スイッチ92が押されたことを検知すると(ステップS3において「Yes」の場合)、制御部5は、動作モードを手動操作教示モードに移行させる(ステップS4)。その結果、手動操作記憶スイッチ92が押されたタイミング以降の操作者による自律走行装置100の操作が記憶される。
【0053】
上記のステップS4において手動操作教示モードを実行中に、制御部5は、手動操作記憶スイッチ92が押されたか否かをモニターする。手動操作教示モードの実行中に手動操作記憶スイッチ92が押された場合には、そのタイミングで手動操作教示モードが終了する。その後、ステップS5において、経路作成部553が、手動操作教示モードで教示されたデータを用いて走行スケジュール500を作成する。
【0054】
一方、手動操作モードに移行後に手動操作記憶スイッチ92が押されない場合(ステップS3において「No」の場合)には、ステップS6において、操作者の操作を記憶しない手動操作モードの実行が維持される。
【0055】
上記のように、本実施形態に係る自律走行装置100は、切替部91における動作モードの選択、及び、手動操作記憶スイッチ92が押されたか否かに応じて、自律走行モード、手動操作モード、及び手動操作教示モードを実行できる。
【0056】
(5-2)手動操作教示モードの動作
以下、
図8を用いて、上記のステップS4において実行される手動操作教示モードの動作を説明する。
図8は、手動操作教示モードの動作を示すフローチャートである。
図8に示す手動操作教示モードでは、移動環境EVを表すグローバルマップGMの作成と、自律走行装置100を自律走行させるための走行領域TAの外周BO’の教示と、が実行される。
【0057】
手動操作教示モードが開始されると、まず、ステップS41において、自律走行装置100の操作者が、移動環境EV内に定める走行領域TAの外周BO’に沿って自律走行装置100を走行させる。
自律走行装置100が操作者の操作により走行中に、SLAM部551は、ステップS42において、走行領域TAの外周BO’に沿って移動中に通過した通過点を推定する。
具体的には、SLAM部551は、自律走行装置100が操作者の操作により走行中に、所定の周期(例えば、制御部5の制御周期)毎にローカルマップを作成し、当該ローカルマップと、今回のステップS42の実行前までに作成され記憶部57に記憶されているグローバルマップGMとを用いて、自律走行装置100の現在の自己位置を推定する。
【0058】
現在の自己位置を推定後、SLAM部551は、ステップS43において、今回の自己位置推定時に作成したローカルマップを、記憶部57に現在記憶されているグローバルマップGMに結合することで、新たなグローバルマップGMを作成して記憶部57に記憶する。
具体的には、SLAM部551は、例えば、グローバルマップGMを定める座標系において、今回のステップS42の実行前に作成されたグローバルマップGMに対して、今回のステップS42の実行時に作成されたローカルマップを現在の自己位置に対応する座標位置に配置して、新たなグローバルマップGMを作成する。
【0059】
また、経路作成部553は、ステップS44において、走行領域TAの外周を表す外周境界BOを、今回の自己位置推定までに自律走行装置100が通過した通過点の集合として作成する。
具体的には、経路作成部553は、ステップS42で推定された現在の自己位置をSLAM部551から取得し、この自己位置の座標値とこれまでに推定された自己位置の座標値とを結合して、自己位置の座標値の集合体として外周境界BOを作成する。
手動操作記憶スイッチ92が押されるなどして手動操作教示モードが終了するまで(ステップS45において「Yes」となるまで)、上記のステップS41~S44は繰り返し実行される。
【0060】
以下、
図9に示すような移動環境EVに対して、上記のステップS41~S45を実行することで作成されるグローバルマップGMと外周境界BOとについて説明する。
図9は、移動環境の一例を示す図である。
図9に示す移動環境EVにおいては、壁Wに挟まれた領域(自律走行装置100が走行可能な領域)内に、破線で示す外周BO’を有する走行領域TAが定められている。また、走行領域TA内には、移動することがない大きな障害物OB1と、移動する小さな障害物OB2と、が存在する。
【0061】
図9に示すような移動環境EV及び走行領域TAにおいて、外周BO’に沿って自律走行装置100を走行させつつ上記のステップS41~S45を実行することで、
図10に示すようなグローバルマップGMと外周境界BOとが作成される。なお、
図10においては、グローバルマップGMを実線で表し、外周境界BOを破線で表している。
図10は、グローバルマップと外周境界の一例を示す図である。
図10に示すように、グローバルマップGMには、移動環境EVの壁Wを表す障害物情報WIと、移動することがない障害物OB1の障害物情報I1と、移動する障害物OB2の障害物情報I2と、が含まれている。
【0062】
(5-3)走行スケジュールの作成動作
次に、
図11を用いて、上記のステップS5にて実行される、走行スケジュール500の作成動作を説明する。
図11は、走行スケジュールの作成動作を示すフローチャートである。以下では、上記のステップS41~S45を実行して作成した外周境界BOにて定められる走行領域TA内を塗り潰す塗り潰し走行経路を、走行スケジュール500として作成する動作を説明する。
【0063】
走行スケジュール500の作成動作が開始されると、経路作成部553は、ステップS51において、上記のステップS41~S45を実行して作成したグローバルマップGMを用いて、グローバルマップGMを「セルC」の集合体セルとして表すセル変換後マップCMを作成する。
セルCは、移動環境EVにおいては、所定の面積を有する小領域に対応する。制御部5にて実行される処理を考慮して、セルCは、例えばセルCに関するパラメータ(例えば、セルCを識別するパラメータ、セルCの位置情報、セルCの有効無効、セルCに付与されたスコア、など)を含む「構造体」として定義できる。
【0064】
具体的には、経路作成部553は、グローバルマップGMを定義する座標平面上にセルCを配置し、セルCを配置した当該座標平面上にグローバルマップGMを投影してセル変換後マップCMを作成する。これにより、
図10に示すグローバルマップGMに対しては、例えば、
図12に示すようなセル変換後マップCMが作成される。
図12は、セル変換後マップの一例を示す図である。
図12に示すセル変換後マップCMには、グローバルマップGMに含まれていた壁Wを表す障害物情報WIと、障害物OB1の障害物情報I1と、障害物OB2の障害物情報I2とがそのまま含まれている。
【0065】
なお、セル変換後マップCMは、グローバルマップGMと対応が取れている地図情報である一方、グローバルマップGMとは独立して生成されるものであり、制御部5においてグローバルマップGMとは別のデータとして扱われる。
すなわち、後述するように、グローバルマップGMは、自律走行時における自律走行装置100の自己位置推定に用いられる。その一方、セル変換後マップCMは、走行スケジュール500の作成に用いられる経路作成用マップSM(後述)の作成に用いられる。
【0066】
セル変換後マップCMを作成後、経路作成部553は、ステップS52において、外周境界BOをグローバルマップGMに対応付けて画定する。具体的には、グローバルマップGMとの対応が取れているセル変換後マップCMに走行領域TAの外周境界BOを画定する。
より具体的には、経路作成部553は、
図13に示すように、上記のステップS41~S45を実行して作成した自己位置の座標置の集合としての外周境界BOを、セル変換後マップCMに含める。
図13は、外周境界を画定後のセル変換後マップの一例を示す図である。
【0067】
セル変換後マップCMに外周境界BOを画定後、経路作成部553は、ステップS53において、セル変換後マップCMに画定した外周境界BO内に含まれる障害物情報を削除して、経路作成用マップSM(第2地図の一例)を作成する。
具体的には、経路作成部553は、例えば、外周境界BOを画定したセル変換後マップCMにおいて、外周境界BOで囲まれた範囲内の座標点(セル変換後マップCMが二次元ならピクセル、三次元ならボクセル)を走査し、当該座標点(ピクセル又はボクセル)に障害物情報が存在していれば、その障害物情報を削除する。これにより、外周境界BOの障害物情報をピクセル又はボクセル単位で削除できる。
【0068】
上記の処理により、経路作成部553は、
図13に示すセル変換後マップCMに対して、
図14に示すように、外周境界BOの内側に存在する全ての障害物情報I1、I2を削除した経路作成用マップSMを、外周境界BO内の障害物情報により表される障害物の特性(移動するか否かなど)を判断することなく容易に作成できる。
図14は、経路作成用マップの一例を示す図である。
【0069】
経路作成用マップSMを作成後、経路作成部553は、ステップS54において、経路作成用マップSMに含まれるセルCに対して、有効セルVCと無効セルINCとを決定する。有効セルVCは、経路作成用マップSMにおいて自律走行装置100が走行可能であるセルである。一方、無効セルINCは、経路作成用マップSMにおいて自律走行装置100が走行できないセルである。
【0070】
具体的には、経路作成部553は、例えば、壁Wを表す障害物情報WI又は外周境界BOを含むセルCと、壁Wを表す障害物情報WI又は外周境界BOよりも外側に存在するセルCと、を無効セルINCと決定する。無効セルINCに対しては、自律走行装置100が走行できないことを示す「スコア」(例えば、0、又は、-1などの負数)を付与しておく。
一方、経路作成部553は、経路作成用マップSMに含まれるセルCのうち、無効セルINCではない残りのセルCを有効セルVCと決定する。
【0071】
上記のステップS54を実行して経路作成用マップSMに対して有効セルVCと無効セルINCとを決定することで、経路作成用マップSM内に走行領域TAを画定できる。具体的には、経路作成用マップSMのうち有効セルVCにより占められる領域が、走行領域TAとして画定される。
【0072】
上記のステップS54を実行することで、
図14に示される経路作成用マップSMに対しては、
図15に示すように有効セルVCと無効セルINCとが決定される。
図15においては、白色のセルCが有効セルVCを表し、色つきのセルCが無効セルINCを表す。
図15は、経路作成用マップにおける有効セル/無効セルの一例を示す図である。
【0073】
経路作成用マップSMに走行領域TAを画定後、経路作成部553は、上記のステップS51~S54にて作成した経路作成用マップSMに含まれる走行領域TA内を塗り潰すような塗り潰し走行経路を、走行スケジュール500として作成する。本実施形態において、塗り潰し走行経路は、以下のようにして作成される。
【0074】
まず、経路作成部553は、ステップS55において、走行領域TAを矩形の領域(矩形領域RA)に分割する。走行領域TAを矩形領域RAに分割するにあたり、経路作成部553は、走行領域TAにおいてどの方向に延びる矩形領域RAが存在するかを探索する。以下の説明では、矩形領域RAが延びる方向を「主方向」と呼ぶ。具体的には、矩形領域RAの主方向は、以下のようにして探索できる。
【0075】
まず、経路作成用マップSMにおいて所定の基準軸を設け、経路作成用マップSMを所定の角度だけ回転させる。次に、回転後の経路作成用マップSMに含まれる走行領域TA全体に、上記の基準軸に平行であり、かつ、走行領域TAの境界(外周境界BO)を結ぶ複数の線分を定義する。例えば、通過点の点列として表現される外周境界BOの2点を結び基準軸に平行な線分を、走行領域TAの全体において定義する。
【0076】
この複数の線分のうち、所定の範囲の長さを有する線分の長さを積算する。この積算値の算出は矩形領域の境界部分に挟まれた範囲内の線分に対して実行される。矩形領域の境界部分は、走行領域TAの境界を結ぶ線分の長さが急激に変化する箇所とできる。
上記の「所定の範囲の長さ」は、例えば、矩形領域の最大長さLmax(例えば、矩形領域の対角線の長さ)、かつ、矩形領域の最大長さLmaxよりも所定の割合(α、0<α<1)だけ短い長さ(α*Lmax)以上とできる。
【0077】
経路作成部553は、走行領域TAの各回転角度に対して算出された積算値のうち、最大の積算値が算出されたときの経路作成用マップSMの回転角度から、矩形領域RAの主方向を決定できる。具体的には、この回転角度の正負の符号を逆転させた角度(経路作成用マップの回転角度がθであれば、-θ)を矩形領域RAの主方向と決定できる。
【0078】
上記の処理により、経路作成部553は、例えば、
図15に示す経路作成用マップSM内の走行領域TAを、
図16に示すような3つの矩形領域RA1~RA3に分割できる。なお、
図16において、各矩形領域RA1~RA3内の矢印は、各矩形領域RA1~RA3の主方向を示している。
図16は、走行領域を矩形領域に分割した状態の一例を示す図である。
【0079】
走行領域TAを矩形領域RA1~RA3に分割後、経路作成部553は、各矩形領域RA1~RA3に対して、各矩形領域RA1~RA3を塗り潰すような塗り潰し走行経路を作成する。具体的には、塗り潰し走行経路は、以下のようにして作成される。
まず、経路作成部553は、ステップS56において、各矩形領域RA1~RA3内おける塗り潰し走行経路の始点となる有効セルVC(始点セルSCと呼ぶことにする)を決定する。経路作成部553は、例えば、走行領域TAの外周BO’を教示する(外周境界BOを作成する)際に自律走行装置100が走行を開始した位置又はその近傍の位置に対応し、かつ、いずれかの矩形領域の隅に存在する有効セルVCを、始点セルSCとする。
【0080】
上記処理により、例えば、
図16に示す経路作成用マップSMに対して
図17に示すような始点セルSCを設定できる。
図17に示す例では、矩形領域RA1の隅に始点セルSCが設定される。すなわち、最初に塗り潰し走行経路を作成する矩形領域が、矩形領域RA1と決定される。
図17は、最初に塗り潰し走行経路を作成する矩形領域において決定された始点セルの一例を示す図である。
【0081】
始点セルSCを決定後、経路作成部553は、ステップS57において、当該始点セルSCから開始し、対象の矩形領域RA1~RA3(
図17の例では矩形領域RA1)に含まれる全ての有効セルVCを通過する走行経路を、塗り潰し走行経路として作成する。
経路作成部553は、
図18のフローチャートに示す処理に従って塗り潰し走行経路を作成する。
図18は、塗り潰し走行経路の作成方法を示すフローチャートである。
【0082】
以下の説明においては、矩形領域RA1に対して塗り潰し走行経路を作成する方法を例にとって説明する。他の矩形領域RA2、RA3についても、矩形領域RA1に対して実行される作成方法により、塗り潰し走行経路を作成できる。
経路作成部553は、まず、ステップS571において、矩形領域RA1の主方向を決定する。矩形領域RA1の主方向は、上記のステップS55において走行領域TAを矩形領域RA1~RA3に分割するときに決定した主方向とできる。
【0083】
次に、経路作成部553は、ステップS572において、矩形領域RA1内の有効セルVCにスコアを付与する。具体的には、経路作成部553は、始点セルSCから、主方向とは垂直な方向に離れた有効セルVCほど高いスコアを付与する。その一方、主方向に沿って配置される有効セルに対しては、同一のスコアを付与する。
その結果、経路作成部553は、矩形領域RA1内の有効セルに対しては、
図19に示すようなスコアを付与する。
図19は、矩形領域内のセルに付与したスコアの一例を示す図である。
【0084】
図19に示す例において、始点セルSCから主方向に沿った方向に配置された有効セルVCには、「11」とのスコアが付与されている。これは、矩形領域RA1においては、主方向に11個の有効セルが存在することを意味している。
【0085】
他の有効セルVCについては、始点セルSCから主方向とは垂直な方向に離れる従い、11の倍数でスコアが増加する。
具体的には、主方向とは垂直な方向に始点セルSCと隣接する有効セルVCに対しては、「22」とのスコアが付与されている。また、当該「22」のスコアが付与された有効セルVCに対して主方向に沿った方向に配置された有効セルVCには、これと同じ「22」とのスコアが付与されている。
以後、「22」とのスコアが付与された有効セルVCよりも始点セルSCから離れた有効セルVCに対しては「33」、「44」、「55」と始点セルSCから離れるに従って値が増加するスコアが付与され、主方向と同じ方向に並ぶ有効セルVCには同じスコアが付与される。
【0086】
次に、経路作成部553は、ステップS573において、始点セルSCから各有効セルVCへと経路を延ばしていく。具体的には、経路作成部553は、始点セルSCからは、始点セルSCの主方向又は主方向とは垂直な方向に存在する有効セルVCのうち、最大スコアが付与された有効セルVCへ経路を延ばす。
また、経路作成部553は、経路がすでに延びた有効セルVCに対しては、当該有効セルVCを再度通過しないと経路が計画できないなど特別な事情がない限り、当該有効セルVCに再度経路が延びないようにする。
【0087】
矩形領域RA1内に経路が通過していない有効セルVCが存在する限り(ステップS574において「No」である限り)、上記のステップS573は繰り返し実行される。
【0088】
経路作成部553が上記のステップS571~S574を実行することにより、矩形領域RA1に対して、
図20に示すような塗り潰し走行経路が作成される。
図20においては、太矢印が塗り潰し走行経路を表す。
図20は、塗り潰し走行経路の一例を示す図である。
図20に示すように、塗り潰し走行経路は、矩形領域RA1の主方向に延びる第1経路と、主方向に対して垂直に延びる第2経路と、を組み合わせることにより作成されている。これにより、矩形領域RA1をまんべんなく塗り潰す塗り潰し走行経路を、自律走行装置100が直進と方向転換との単純な動作で走行可能な経路として作成できる。
【0089】
また、
図20に示す塗り潰し走行経路においては、第1経路は主方向に沿って複数の有効セルにわたり延びる一方、第2経路は、始点セルSCから開始される経路を除き、1つのセル分しか延びていない。すなわち、上記のステップS571~S574を実行することにより作成される塗り潰し走行経路は、矩形領域の主方向に沿った経路が長くなっている。このように、矩形領域の主方向に沿った経路を長くすることにより、塗り潰し走行経路における自律走行装置100の方向転換の回数を少なくできる。
【0090】
1つの矩形領域RA1内に塗り潰し走行経路を作成後、経路作成部553は、ステップS58において、塗り潰し走行経路を未だ作成していない矩形領域RA1~RA3が存在するか否かを判定する。
塗り潰し走行経路を作成していない矩形領域RA1~RA3が存在していない場合(ステップS58において「No」の場合)には、走行スケジュール500の作成処理は後述するステップS61に進む。
【0091】
その一方、塗り潰し走行経路を作成していない矩形領域RA1~RA3が存在する場合(ステップS58において「Yes」の場合)、経路作成部553は、ステップS59において、次に作成する塗り潰し走行経路の新たな始点セルSCを決定する。
経路作成部553は、例えば、矩形領域RA1内に作成された塗り潰し走行経路の終点である終点セルECから最短距離にて到達できる有効セルVCを新たな始点セルSCと決定する。これにより、当該新たな始点セルSCを含む矩形領域RA2、RA3を、次に塗り潰し走行経路を作成する矩形領域と決定できる。
【0092】
例えば、
図21に示すように、矩形領域RA1の紙面左下に終点セルECが設定された場合、当該終点セルECに隣接する有効セルVCを新たな始点セルSCと決定し、当該新たな始点セルSCを含む矩形領域RA3を次に塗り潰し走行経路を作成する矩形領域と決定する。
図21は、新たな始点セルと次に塗り潰し走行経路を作成する矩形領域の決定方法の一例を模式的に示す図である。
このように、塗り潰し走行経路を作成していない矩形領域RA2、RA3が複数存在する場合に、作成した塗り潰し走行経路の終点である終点セルECと最短距離にて接続できる有効セルVCを新たな始点セルSCと決定し、当該新たな始点セルSCを含む矩形領域を次に塗り潰し走行経路を作成する矩形領域と決定することにより、最短距離である走行効率がよい走行スケジュール500を作成できる。
【0093】
新たな始点セルSCと次に塗り潰し走行経路を作成する矩形領域を決定後、経路作成部553は、ステップS60において、作成した塗り潰し走行経路の終点である終点セルECと、決定した新たな始点セルSCとを接続経路にて接続する。
その後、走行スケジュール500の作成処理は、ステップS57に戻る。すなわち、新たな始点セルSCを含む矩形領域において塗り潰し走行経路が作成される。塗り潰し走行経路が全ての矩形領域RA1~RA3において作成されるまで(すなわち、ステップS58が「No」となるまで)、上記のステップS57(ステップS571~S574)~S60が繰り返し実行される。
【0094】
上記のステップS51~S60を実行することにより、
図9などにて示した走行領域TA全体に対して、
図22に示すような走行領域TAをまんべんなく塗り潰す塗り潰し走行経路が作成される。
図22において、走行領域TAは破線にて示され、走行領域TAの全体に対して作成された塗り潰し走行経路は太矢印にて示されている。
図22は、走行領域全体に作成された塗り潰し走行経路の一例を示す図である。
【0095】
塗り潰し走行経路を作成後、経路作成部553は、ステップS61において、作成した塗り潰し走行経路を、自律走行装置100が通過する通過点の集合に変換する。また、経路作成部553は、塗り潰し走行経路を変換して生成した各通過点に対して当該通過点を通過する時間を関連付ける。さらに、各通過点における清掃条件を対応する通過点に関連付けることで、
図23に示すような走行スケジュール500を作成する。
図23は、走行スケジュールの一例を示す図である。
【0096】
図23に示す走行スケジュール500において、T
0、T
1、・・・T
nは、塗り潰し走行経路の各通過点を通過する時間である。(x
0,y
0)、(x
1,y
1)、・・・(x
n,y
n)は、塗り潰し走行経路の各通過点を座標値として表したものである。θ
0、θ
1、・・・θ
nは、塗り潰し走行経路の各通過点における自律走行装置100の姿勢である。
走行スケジュール500において、S
0、S
1、・・・S
nは、塗り潰し走行経路の各通過点における洗浄液の供給量である。W
0、W
1、・・・W
nは、塗り潰し走行経路の各通過点における床面Fの洗浄力である。P
0、P
1、・・・P
nは、塗り潰し走行経路の各通過点における吸引口O2の吸引力である。
【0097】
(5-4)自律走行モードの動作
次に、
図24を用いて、
図7のステップS2において実行される、走行スケジュール500に記録された走行経路(塗り潰し走行経路)を再現する自律走行モードの実行時における自律走行装置100の動作を説明する。
図24は、自律走行モードの実行時の自律走行装置の動作を示すフローチャートである。
自律走行モードの実行前に、ユーザは、自律走行装置100を自律走行の開始位置に移動させる。自律走行の開始位置は、走行スケジュール500において経過時間T
0に関連付けられている通過点である
【0098】
切替部91において「自動」が選択されると自律走行モードが開始される。自律走行モードが開始されると、ステップS21において、走行再現部555は、自律走行装置100が自律走行する目標位置を決定する。
具体的には、走行再現部555は、走行スケジュール500において、現在位置に最も近い通過点に関連付けられている現在の経過時間を決定し、現在の経過時間の次の経過時間に関連付けられている通過点を、次の目標位置と決定する。
【0099】
目標位置を決定後、走行再現部555は、自律走行のための制御を開始する。まず、走行再現部555は、ステップS22において、自律走行装置100の現在位置を把握する。
具体的には、SLAM部551が、エンコーダ111にて測定された前回の自己位置推定から今回の自己位置推定までの間の走行モータ11の回転量、現在位置で取得した障害物情報に基づいて作成されたローカルマップ、及び、記憶部57に記憶されているグローバルマップGMに基づいて、上記にて説明した処理により現在の自律走行装置100の自己位置を推定する。その後、走行再現部555が、SLAM部551が推定した自己位置を入力する。
【0100】
自律走行装置100の現在位置を把握後、現在位置から目標位置への走行制御が実行される。走行制御を実行するに際し、走行再現部555は、ステップS23において、障害物検出部43が将来走行経路上の干渉領域内に障害物を検出しているか否かを判断する。
【0101】
将来走行経路上の干渉領域内に障害物の存在が認められない場合(ステップS23で「No」)、走行再現部555は、ステップS24において、現在位置からステップS21で決定した目標位置まで自律走行装置100を走行させる再現走行制御指令を算出し、走行制御部53に出力する。
【0102】
一方、将来走行経路上の干渉領域内に障害物の存在が認められる場合(ステップS23で「Yes」)、走行再現部555は、ステップS25において、検出された障害物を回避する経路を計画し、自律走行装置100に当該経路を走行させる再現走行制御指令し走行制御部53に出力する。
ステップS25において、走行再現部555は、計画された回避経路によっては、上記のステップS21で決定した目標位置を変更する。例えば、走行スケジュール500に記憶された通過点のうち、現在位置よりも所定の距離だけ離れた通過点を新たな目標位置とする。
【0103】
上記の再現走行制御指令を受信した走行制御部53は、受信した再現走行制御指令に基づいて走行モータ11を制御することで、当該再現走行制御指令に従って自律走行装置100を走行させる。
また、走行再現部555は、現在の経過時間に関連付けられた清掃条件に基づいて再現清掃条件を算出し、当該再現清掃条件を清掃制御部51に出力する。これにより、算出された再現清掃条件に従って、清掃部3を制御できる。
【0104】
ステップS24又はS25の走行制御後、走行再現部555は、ステップS26において、決定した目標位置に自律走行装置100が到達したか否かを判断する。例えば、現在位置が目標位置と一致するまたは所定の範囲内にある場合に、自律走行装置100が目標位置に到達したと判断できる。
自律走行装置100が目標位置に未だ到達していない場合(ステップS26で「No」)、自律走行動作は、ステップS22に戻る。すなわち、目標位置に到達するまで上記のステップS22~S25が繰り返し実行される。なお、上記のステップS22~S25は、制御部5による制御周期毎に実行される。
【0105】
一方、上記の走行制御の結果、自律走行装置100が目標位置に到達したと判断した場合(ステップS26で「Yes」)、走行再現部555は、ステップS27において、走行スケジュール500に記憶された走行動作を全て実行したかどうかを判断する。走行スケジュール500に記憶された走行動作が全て終了したかどうかは、例えば、走行スケジュール500の末尾にある識別子(例えば、「エンド・オブ・ファイル」を示す識別子など)を検出することにより判断できる。
【0106】
走行スケジュール500に記憶された走行動作が全て実行されていないと判断される限り(ステップS27において「No」である限り)、自律走行動作はステップS21に戻る。すなわち、走行スケジュール500に記憶された走行動作が全て実行されるまで上記のステップS21~S26が繰り返し実行される。
一方、走行スケジュール500に記憶された全ての走行動作が実行されたと判断された場合(ステップS27で「Yes」)、自律走行モードの実行を終了する。
【0107】
以下、
図25を用いて、自律走行装置100による自律走行の具体例を説明する。
図25は、自律走行の具体例を模式的に示す図である。
以下の説明においては、
図9に示す移動環境EVに定められた走行領域TAを塗り潰す塗り潰し走行経路を表す走行スケジュール500を用いて上記のステップS21~S27を実行して自律走行装置100を自律走行させた場合の具体例を説明する。
また、
図9に示す移動環境EVにおいて、走行領域TAの外周BO’及びグローバルマップGMの教示時には障害物OB1、OB2がいずれも存在していたが、自律走行モードの実行時には障害物OB2が移動して移動環境EVに存在しなくなったとする。
【0108】
図25に示すように、上記のステップS51~S60を実行して作成された塗り潰し走行経路(
図25では破線にて示す経路)は、その一部が障害物OB1、OB2と重複している。なぜなら、塗り潰し走行経路は、障害物OB1、OB2を表す障害物情報I1、I2を削除した経路作成用マップSMを用いて作成されているからである。すなわち、塗り潰し走行経路は、障害物OB1、OB2の存在を考慮しないで作成されている。
【0109】
上記のステップS21~S27に従って自律走行モードを実行中に移動環境EVに存在する障害物が存在するか否かを監視し、作成した塗り潰し走行経路上に障害物が存在する場合にはそれを回避するように自律走行することで、作成した塗り潰し走行経路が障害物OB1、OB2と重複している場合でも、自律走行装置100は、
図25に示すように、自律走行モードの実行時に存在する障害物を回避しつつ、作成した塗り潰し走行経路に従って自律走行できる。
【0110】
具体的には、自律走行装置100は、手動操作教示モード及び自律走行モードの実行時に存在する障害物OB1を回避する経路を走行している。
その一方で、手動操作教示モードの実行時には存在していたが自律走行モードの実行時には存在しなくなった障害物OB2(
図25では一点鎖線で示す障害物)が存在していた箇所においては、自律走行装置100は、障害物OB2を回避する経路を走行せず、作成した塗り潰し走行経路に従って走行している。
すなわち、自律走行装置100においては、グローバルマップGMの作成時には走行領域TA内に存在する障害物OB2が自律走行時には存在しなくなる場合でも、当該走行領域TAを適切に塗り潰すことができる塗り潰し走行経路を作成できる。
【0111】
また逆に、手動操作教示モードの実行時には存在しなかったが自律走行モードの実行時には障害物が存在する箇所においては、自律走行装置100は、自律走行時にこの障害物を検出できるので、この障害物を回避する経路を自律的に走行できる。
【0112】
2.第2実施形態
上記の第1実施形態においては、経路作成用マップSMを作成する際に、走行領域TAの外周境界BOよりも内側に存在する全ての障害物情報I1、I2を無条件に削除していた。第2実施形態では、走行領域TAに存在する障害物のうち特定の障害物の障害物情報を削除する。
第2実施形態に係る自律走行装置200においては、経路作成部553が、経路作成用マップSMを作成する際に外周境界BOよりも内側に存在する障害物情報を選択して削除することが第1実施形態と異なるのみで、第2実施形態に係る自律走行装置200に備わる構成要素及び機能は、第1実施形態に係る自律走行装置100と同一である。従って、ここでは他の構成要素及び機能の説明を省略する。
【0113】
自律走行装置200において、経路作成部553は、
図11のフローチャートのステップS53(経路作成用マップSMの作成ステップ)において、外周境界BOよりも内側に存在する障害物情報のうち、所定の条件に合致する障害物情報を削除する。この「所定の条件」は、短時間のうちに移動して走行領域TAから存在しなくなる可能性があるとの条件である。
【0114】
上記の「所定の条件」に合致する障害物情報としては、例えば、外周境界BOよりも内側に存在する障害物情報のうち所定の大きさ以下の障害物を表す障害物情報がある。
この条件に合致する障害物情報を削除することで、移動する傾向にあり自律走行時には走行領域TAから存在しなくなると予測される小さな障害物の障害物情報を削除して、適切な経路作成用マップSMを作成できる。
【0115】
外周境界BOよりも内側に存在する障害物情報が所定の大きさ以下の障害物を表す障害物情報であるか否かは、例えば、各障害物情報の画像処理によりその大きさを認識する、各障害物情報に囲まれる範囲の面積を算出する、などの方法により判断できる。
【0116】
その他、「所定の条件」に合致する障害物情報としては、例えば、外周境界BOよりも内側に存在する障害物情報のうち動的な障害物を示す障害物情報がある。
この条件に合致する障害物情報を削除することで、グローバルマップGM及び外周BO’の教示時に実際に移動しており自律走行時には存在しないと予想される障害物の障害物情報を削除して、適切な経路作成用マップSMを作成できる。
【0117】
外周境界BOよりも内側に存在する障害物情報が動的な障害物を表す障害物情報であるか否かは、例えば、対象の障害物情報が所定の時間間隔内で動いているか否か、及び/又は、対象の障害物情報所が所定の時間以上連続して動いているか否かにより決定できる。
障害物情報が動いているか否かは、例えば、障害物情報の画像処理によりその形状を認識して不自然に歪んでいるか否かを判断する、同一の障害物に対して複数の障害物情報が連続して存在しているか否かを判断する、などの方法により判断できる。
【0118】
なお、第2実施形態のように経路作成用マップSMに障害物情報が存在していても、上記のステップS54においてこの障害物情報に囲まれた範囲内(とその近傍)に存在するセルCは無効セルINCと決定される。
よって、第2実施形態で作成される経路作成用マップSMを用いれば、削除されずに残った障害物情報を回避するような塗り潰し走行経路を、上記のステップS51~S60を実行して作成できる。
【0119】
3.第3実施形態
上記の第1実施形態においては、外周境界BOの作成は、手動操作教示モードを実行して、自律走行装置100を走行領域TAの外周BO’に沿って移動させ、走行領域TAの外周BO’に沿って移動中に通過した通過点を推定し、当該通過点を集合して外周境界BOを作成することで実現されていた。すなわち、外周境界BOの作成は、自律走行装置100を実際に走行領域TAの外周BO’に沿って走行させることで行われていた。
【0120】
第3実施形態に係る自律走行装置300においては、CADソフトウェアなどの画像編集ソフトウェア、外周境界BO描画用の専用のソフトウェアなどを用いて、グローバルマップGMに外周境界BOに対応する境界線を描画することで、外周境界BOを作成する。
第3実施形態では、外周境界BOが手動操作教示モードを実行することなく作成できることが第1実施形態及び第2実施形態と異なるのみで、第3実施形態に係る自律走行装置200に備わる構成要素及び機能は、第1実施形態に係る自律走行装置100と同一である。従って、ここでは他の構成要素及び機能の説明を省略する。
【0121】
なお、グローバルマップGMは、第1実施形態と同様に手動操作教示モードを実行することで作成してもよいし、CADソフトウェアなどの画像編集ソフトウェア、グローバルマップGM作成用の専用のソフトウェアなどを用いて作成してもよい。
【0122】
4.第4実施形態
(1)第4実施形態の概要
上記のように、走行領域TAの外周BO’は自律走行装置100を移動環境EVにて走行させることで教示する一方、走行領域TAを塗り潰す塗り潰し走行経路は、経路作成部553による情報処理により作成される。すなわち、塗り潰し走行経路は、自律走行装置100を塗り潰し走行経路に沿って実際に走行させて教示したものではない。
【0123】
上記のような場合、自律走行装置100が塗り潰し走行経路を自律走行中に、SLAM部551による自己位置推定が精度よく実行できないことがある。
例えば、前方検出器41a及び後方検出器41bにより検出できる障害物が存在しない領域、障害物を検出できるがその形状が単純な領域に塗り潰し走行経路が作成されていると、自律走行装置100が当該領域に存在するときにグローバルマップGMとローカルマップのマップマッチングの結果が不正確となる。その結果、当該領域においては、SLAM部551は自己位置推定を精度よく実行できなくなる。
なお、上記の「形状な単純な領域」としては、例えば、直線的で平行な2つの壁に挟まれるのみで他の障害物が存在しない領域がある。
【0124】
そこで、第4実施形態に係る自律走行装置400においては、塗り潰し走行経路を作成後に、塗り潰し走行経路に沿って自律走行装置400を「仮想的」に走行させ、塗り潰し走行経路において自己位置推定が精度よくできるか否かを判断する。
第4実施形態に係る自律走行装置400においては、塗り潰し走行経路を作成後に塗り潰し走行経路に沿って自律走行装置400を仮想的に走行させ、塗り潰し走行経路において自己位置推定を精度よくできるか否かを判断することが、第1実施形態に係る自律走行装置100と異なるのみで、他の構成要素及び機能は第1実施形態に係る自律走行装置100と同一である。従って、ここでは他の構成要素及び機能の説明を省略する。
【0125】
(2)自己位置推定の可否判断動作
以下、
図26を用いて、塗り潰し走行経路に沿って自律走行装置400を仮想的に走行させ、塗り潰し走行経路において自己位置推定が精度よくできるか否かを判断する動作(自己位置推定の可否判断動作)を説明する。
図26は、自己位置推定の可否判断動作を示すフローチャートである。以下の説明において、
図26に示す判断動作は、SLAM部551により実行されるものとする。
走行スケジュール500を作成後、SLAM部551は、ステップS101において、自律走行装置400を、グローバルマップGM内で塗り潰し走行経路に沿って仮想的に自律走行させる。
【0126】
仮想的にグローバルマップGM内を自律走行させつつ、SLAM部551は、ステップS102において、グローバルマップGM内の現在位置において、グローバルマップGM内の障害物(障害物情報)を仮想的に検出することを試みる。具体的には、以下のようにして、障害物情報の検出を試みる。
【0127】
SLAM部551は、まず、グローバルマップGMにおいて、前方検出器41a及び後方検出器41bから障害物を検出するためのビームLを、これら検出器の検出範囲内で放射状に仮想的に出力する。次に、SLAM部551は、このビームLと交わる障害物情報を検出する。このときに、ビームは、1つの障害物情報のみと交わるものとする。
上記処理を実行することで
、図27に示すように3つの障害物OB3~OB5が存在する場合に、障害物OB3の障害物情報I31と、障害物OB4の2つの障害物情報I41、I42が仮想的に検出される。なお、障害物OB5は、自律走行装置400から見て障害物OB3に隠れた状態となっているので、障害物OB5の障害物情報は検出されない。
図27は
、グローバルマップにおける障害物情報の検出状態の一例を示す図である。
【0128】
障害物情報の検出を試みた後、SLAM部551は、仮想的な障害物の検出状況に基づいて、塗り潰し走行経路を走行中に自律走行装置400が自己位置推定を実行できるか否かをシミュレートする。
具体的には、SLAM部551は、S103において、自律走行装置100が現在位置で障害物を検出できているか否かを判断する。例として、SLAM部551は、検出した障害物情報の長さの合計を算出し、障害物情報の長さの合計が所定の大きさ以上である場合に、障害物を検出できていると判断する。
【0129】
検出した障害物情報の長さの合計は、マップマッチングに用いることができる障害物情報の情報量に対応する。マップマッチングによる自己位置推定の精度は、マップマッチングに用いることができる障害物情報(ローカルマップ)の情報量に依存する。従って、検出した障害物情報の長さの合計が所定の大きさ以上であることは、マップマッチングにより精度よく自己位置推定できる程度の障害物情報(ローカルマップ)の情報量を検出できていることを意味している。
【0130】
検出した障害物情報の長さの合計が所定の大きさ以上であり、障害物を検出できていると判断された場合(ステップS103で「Yes」)、SLAM部551は、さらに、ステップS104において、検出した障害物情報により構成される形状(すなわち、ローカルマップの形状)が単純形状であるか否かを判断する。
検出した障害物情報により構成される形状が単純であるか否かは、例えば、同一の向きを向いている直線的な障害物情報が含まれる割合などにより決定できる。
【0131】
マップマッチングによる自己位置推定の精度は、グローバルマップGM及びローカルマップが特徴的な形状を有している方が高くなる。なぜなら、これらマップが特徴的な形状を有している方が、グローバルマップGMと最も一致するローカルマップ(の位置及び向き)が一意に決まるからである。
【0132】
その一方で、例えば、検出した障害物情報により構成される形状が、所定の間隔を空けて配置された平行な2本の直線であるなど単純な場合には、グローバルマップGMと最も一致するローカルマップ(の位置及び向き)が一意に決まりにくいため、自己位置推定の精度が低下する。
なお、検出した障害物情報により構成される形状が単純になる場合は、例えば、自律走行装置100が2つの壁に挟まれた直線的な通路に存在する場合である。
【0133】
検出した障害物情報の長さの合計が所定の大きさ以上であり障害物が検出されたと判断され(ステップS103で「Yes」)、かつ、検出した障害物情報により構成される形状(検出された障害物の形状)が単純な形状ではないと判断された場合(ステップS104で「No」)、SLAM部551は、ステップS105において、塗り潰し走行経路(の現在位置)において自己位置推定を適切に実行可能と判断する。
【0134】
その一方、検出した障害物情報の長さの合計が所定の大きさよりも小さく障害物が検出されなかったと判断された場合(ステップS103で「No」)、又は、障害物は検出されたものの障害物情報により構成される形状が単純(すなわち、検出された障害物が単純な形状)であると判断された場合(ステップS104で「Yes」)、SLAM部551は、現在の障害物の検出状態が不適切であると判断する。
【0135】
現在の障害物の検出状態が不適切であると判断した場合、SLAM部551は、ステップS106において、障害物の検出状態が不適切である状態が所定期間以上継続しているか否かを判断する。
例えば、自律走行装置100を仮想的に所定の距離だけ走行させても障害物の検出状態が不適切である状態が解消されない場合に、障害物の検出状態が不適切である状態が所定期間以上継続していると判断する。
【0136】
障害物の検出状態が不適切である状態が所定期間以上継続していない場合(ステップS106で「No」)、SLAM部551は、ステップS107において、自己位置推定が適切に実行できない可能性があるとして警告を発する。例えば、SLAM部551は、警告音を発する、設定部9の表示画面に警告を表示するなどの方法により警告を発する。
【0137】
一方、障害物の検出状態が不適切である状態が所定期間以上継続している場合(ステップS106で「Yes」)、SLAM部551は、ステップS108において、今回教示された外周境界BOを塗り潰す塗り潰し経路では自己位置推定が適切に実行できないため、当該外周境界BOは不適切であることをユーザに通知する。例えば、SLAM部551は、警告音を発する、設定部9の表示画面に今回教示された外周境界BOが不適切であることを表示するなどの方法により上記通知を行う。
【0138】
なお、塗り潰し走行経路において自己位置推定が適切に実行できない経路範囲があると判断した場合、SLAM部551は、例えば、走行スケジュール500の上記経路範囲に含まれる通過点に対して、マップマッチングによる自己位置推定を中止して走行モータ11の回転量のみに基づいて自己位置推定をするよう指令する記号等を付加してもよい。
これにより、SLAM部551は、塗り潰し走行経路を自律走行する時に、当該記号等が付加された通過点においては走行モータ11の回転量のみに基づいて自己位置推定できる。
【0139】
仮想的な自律走行において到達した現在位置において自己位置推定が適切に実行できるか否かをシミュレートした後、SLAM部551は、走行スケジュール500に示された塗り潰し走行経路を仮想的に全て走行するまで(ステップS109で「No」である限り)、上記のステップS101~S108を実行する。
一方、走行スケジュール500に示された塗り潰し走行経路を全ての位置において自己位置推定が適切に実行できるか否かをシミュレートした場合(ステップS109で「Yes」)、自己位置推定の適否判断動作を終了する。
【0140】
上記のステップS101~S109を実行することにより、自律走行装置100が塗り潰し走行経路を自律走行する際に、グローバルマップGMと自律走行時の障害物情報(ローカルマップ)とを用いた自己位置推定が可能か否かを、自律走行の実行前に予知できる。
【0141】
また、上記のステップS102~S103において障害物が検出されなかった場合に、自律走行装置400の自己位置推定ができないと判断することにより、塗り潰し走行経路を自律走行する際に障害物が検出されず、グローバルマップGMと自律走行時の障害物情報(ローカルマップ)とを用いた自己位置推定が不可能になることを、自律走行の実行前に予知できる。
【0142】
さらに、上記のステップS102~S103において検出された障害物が単純な形状であった場合に、自律走行装置400の自己位置推定ができないと判断することにより、塗り潰し走行経路を自律走行する際に単純形状の障害物しか検出されず、グローバルマップGMと自律走行時の障害物情報(ローカルマップ)とを用いた自己位置推定が不可能になるか、又は、自己位置推定の精度が低下する可能性があることを、自律走行の実行前に予知できる。
【0143】
5.他の実施形態
以上、本発明の複数の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。また、フローチャートにて示した各処理の内容、処理の順番等は、発明の要旨を逸脱しない範囲で変更できる。また、必要に応じてフローチャートにて示した処理のいずれかを省略できる。
【0144】
(A)例えば、上記の第1実施形態では、グローバルマップGMをセルCの集合体として表すセル変換後マップCMを作成し、当該セル変換後マップCMに外周境界BOを画定し、その後のステップS53にて外周境界BO内に存在する障害物情報I1、I2を削除して経路作成用マップSMを作成していた。
しかしこれに限られず、例えば、グローバルマップGMに外周境界BOを画定して外周境界BO内の障害物情報I1、I2を削除した後に、障害物情報I1、I2を削除後のグローバルマップGMをセルCの集合体に変換して経路作成用マップSMを作成することもできる。
【0145】
(B)自律走行装置100は、自律的に清掃作業を実行する清掃機以外の走行装置であってもよい。例えば、自律走行装置100は、宣伝用ロボットであってもよい。その他、自律走行装置100は、自律的に走行するための走行部(とそれを制御する制御部)のみにて構成されていてもよい。この場合は、例えば、当該自律走行装置と、所望の機能を発揮するためのロボットシステムと、を組み合わせて、所望の機能を有するロボット(装置)を構成できる。
【0146】
自律走行装置100が清掃作業を自律的に行う装置以外である場合には、走行スケジュール500には、清掃条件が記憶されない。または、清掃条件に代えて、自律走行装置100の用途に応じた制御に関する情報が記憶されていてもよい。
【0147】
(C)上記の第4実施形態において、走行スケジュール500に示される塗り潰し走行経路に、自己位置推定が適切に実行できないと判断された範囲が存在した後に、自己位置推定が適切に実行できると判断された範囲が存在する場合、自律走行装置400は、自律走行時に、自己位置推定を適切に実行できない範囲を通過して自己位置推定を適切に実行できる範囲に入ったタイミングにおいて、グローバルマップGMとローカルマップのマップマッチングにより自己位置推定を行って、自己位置推定が適切に実行できない範囲を通過することで蓄積された推定誤差を解消してもよい。
【産業上の利用可能性】
【0148】
本発明は、移動環境内に定められた走行領域を塗り潰すように自律走行可能であり、当該走行領域に存在する障害物を回避しながら走行する自律走行装置に広く適用できる。
【符号の説明】
【0149】
100~400 自律走行装置
1 走行部
11 走行モータ
111 エンコーダ
13 主輪
15 補助輪
3 清掃部
31 洗浄液吐出口
311 洗浄液供給タンク
313 洗浄液供給ポンプ
33 スキージ
331 吸引モータ
333 回収部材
33a 吸引口
35 洗浄用部材
351 洗浄用部材回転モータ
5 制御部
41a 前方検出器
41b 後方検出器
43 障害物検出部
51 清掃制御部
53 走行制御部
531 走行切替部
533 モータ制御部
55 制御統括部
551 SLAM部
553 経路作成部
555 走行再現部
57 記憶部
7 走行経路教示部
71a、71b ハンドル
73 筐体
75 走行制御指令算出部
8 取付部材
9 設定部
91 切替部
92 手動操作記憶スイッチ
93 設定操作部
94 設定変換部
95 ディスプレイ
96 清掃条件教示部
97 清掃制御指令算出部
B 本体
EV 移動環境
GM グローバルマップ
TA 走行領域
BO 外周境界
BO' 外周
SM 経路作成用マップ