(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-08
(45)【発行日】2025-01-17
(54)【発明の名称】自律走行経路計画方法
(51)【国際特許分類】
G05D 1/43 20240101AFI20250109BHJP
【FI】
G05D1/43
(21)【出願番号】P 2020184308
(22)【出願日】2020-11-04
【審査請求日】2023-07-13
【前置審査】
(73)【特許権者】
【識別番号】000006297
【氏名又は名称】村田機械株式会社
(74)【代理人】
【識別番号】110000202
【氏名又は名称】弁理士法人新樹グローバル・アイピー
(72)【発明者】
【氏名】傳田 遊亀
(72)【発明者】
【氏名】下本 英生
【審査官】松本 泰典
(56)【参考文献】
【文献】特開2018-116614(JP,A)
【文献】特開2018-73008(JP,A)
【文献】特開2017-211758(JP,A)
【文献】特開2018-99113(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/43
(57)【特許請求の範囲】
【請求項1】
自律走行体が自律走行する経路を計画する自律走行経路計画方法であって、
前記自律走行体によって、環境地図において塗り潰し走行を行う走行領域の境界を教示して外周教示経路を作成することで、前記走行領域を取得するステップと、
前記走行領域に対応する領域を、
それぞれが前記自律走行体を包含できないサイズの複数のグリッドで敷き詰めた第1グリッド領域を作成するステップと、
前記自律走行体の車体サイズと回転半径と回転移動距離及び
前記グリッドのサイズに基づいて、前記自律走行体が方向転換を行う際に前記走行領域から前記自律走行体の車体が逸脱する逸脱幅を算出するステップと、
前記外周教示経路に基づいて作成される外周周回経路を縮小して、前記逸脱幅を覆うために必要な最大本数の内周周回経路を作成するステップと、
前記第1グリッド領域に含まれる複数のグリッドのうち、最内周の内周周回経路が入っているグリッドと、最内周の内周周回経路が入っているグリッドよりも内側のグリッドと、を有効とし、前記第1グリッド領域の他のグリッドを無効とすることで、最内周の内周周回経路に対応する位置を境界とする第2グリッド領域を作成するステップと、
前記第2グリッド領域内を塗りつぶすように塗り潰し走行経路を作成するステップと、
前記塗り潰し走行経路の開始位置を前記外周周回経路上に設定するステップと、
前記塗り潰し走行経路の終了位置を前記外周周回経路より内側の前記開始位置付近に設定するステップと、
を備えた自律走行経路計画方法。
【請求項2】
前記内周周回経路を作成するステップでは、
前記最大本数を算出する、請求項1に記載の自律走行経路計画方法。
【請求項3】
前記外周周回経路、前記塗り潰し走行経路、及び前記内周周回経路を連続的に繋いで自律走行経路として決定するステップをさらに備える、請求項1又は2に記載の自律走行経路計画方法。
【請求項4】
環境変動検出用のテスト走行経路を作成するステップと、
前記自律走行体に前記テスト走行経路を走行させるステップと、をさらに備えている、請求項1~
3のいずれかに記載の自律走行経路計画方法。
【請求項5】
前記自律走行体が前記テスト走行経路を走行中に検出した環境変動を通知するステップをさらに備えている、請求項
4に記載の自律走行経路計画方法。
【請求項6】
前記自律走行体が前記テスト走行経路を走行中に環境変動を検出した後に、テスト走行を中止するステップをさらに備えている、請求項
4又は5に記載の自律走行経路計画方法。
【請求項7】
前記テスト走行を中止した後に、前記自律走行体を前記テスト走行経路上の地点に戻すステップをさらに備えている、請求項
6に記載の自律走行経路計画方法。
【請求項8】
前記テスト走行を中止した後に、前記自律走行体を前記走行領域内の地点に移動するステップをさらに備えている、請求項
6に記載の自律走行経路計画方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律走行経路計画方法に関し、特に、自律走行体の走行経路を計画する方法に関する。
【背景技術】
【0002】
従来、走行開始位置から走行終了位置までの経路計画に従って自律的に走行する自律走行体が知られている。
一例として、自律走行式床洗浄機は、ユーザの操作により教示された走行経路及び清掃条件を再現することにより、教示された走行経路を自律的に走行しつつ、教示された清掃条件に従った清掃を自律的に実行する。
【0003】
また、別の経路計画方法では、環境地図の塗り潰し走行対象領域を所定の大きさのグリッド座標に投影し、グリッドを通過する順番を決めることで、走行スケジュールを作成している(例えば、特許文献1を参照)。
【0004】
また、環境領域の内側に作業対象領域を設け、その外周に収穫機の方向転換を行う外周領域を設ける走行経路計画装置が知られている(例えば、特許文献2を参照)。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2018/043180号公報
【文献】特開2018-099113号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般に自律走行体の機体は、長さと幅のサイズが異なっており、例えば平面視で矩形である。したがって、塗り潰し経路計画がグリッドベースである場合に、教示走行時の機体の向きと塗り潰し走行時の機体の向きとが異なる場所において(例えば、機体がUターンする場所において)、塗り潰し走行時に、走行領域の外周境界から外側に機体が逸脱することがある。
また、自律走行体の機体が逸脱しない範囲で塗り潰し計画を行うと(例えば単に塗り潰しの対象領域を縮めると)、外周付近に塗り残しが出てしまう。
【0007】
本発明の目的は、グリッドベースによる自律走行経路計画において、走行領域の外周境界から外側に自律走行体が逸脱しないようにすることにある。
【課題を解決するための手段】
【0008】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
【0009】
本発明の一見地に係る自律走行経路計画方法は、自律走行体が自律走行する経路を計画する方法であって、下記のステップを備えている。
◎環境地図において塗り潰し走行を行う走行領域を取得するステップ。
◎自律走行体の車体サイズと回転半径と回転移動距離及びグリッドのサイズに基づいて、自律走行体が方向転換を行う際に走行領域から自律走行体の車体が逸脱する逸脱幅を算出するステップ。
◎少なくとも逸脱幅の一部に相当する一又は複数の内周周回経路を作成するステップ。
◎最内周の内周周回経路に対応する位置を境界とするグリッド領域を作成するステップ。
◎グリッド領域内を塗り潰すように塗り潰し走行経路を作成するステップ。
なお、回転移動距離とは、車体が旋回したときの車輪中点の移動軌跡である。
この方法では、少なくとも逸脱幅の一部に相当する一又は複数の内周周回経路が作成され、さらにグリッド領域内に塗り潰し走行経路が作成される。その結果、グリッドベースによる自律走行経路において、走行領域の外周境界から逸脱しないように自律走行体が走行できる走行経路が計画される。
なお、内周周回経路は、複数の場合に互いに独立していてもよいし、一部同士が重複していてもよい。
【0010】
内周周回経路を作成するステップでは、逸脱幅を全て覆うために必要な最大本数を算出してもよい。
この方法では、逸脱幅は内周周回経路によって全体にわたって確実に覆われる。つまり、逸脱幅の大きさは場所によって変わる可能性があるが、逸脱幅を覆うために必要な最大本数の内周周回経路を作成することで、塗り残しが生じなくなる。
【0011】
走行領域を取得するステップは、自律走行体によって走行領域の境界を教示して外周教示経路を作成することで走行領域を取得してもよい。
【0012】
この方法は、下記のステップをさらに備えていてもよい。
◎外周教示経路に基づいて作成される外周周回経路、塗り潰し走行経路、及び内周周回経路を連続的に繋いで自律走行経路として決定するステップ。
この方法では、外周周回経路を含んだ自律走行経路が計画される。
【0013】
この方法は、下記のステップをさらに備えていてもよい。
◎塗り潰し走行経路の開始位置を外周周回経路上に設定するステップ
◎塗り潰し走行経路の終了位置を外周周回経路より内側の開始位置付近に設定するステップ。
これにより、塗り潰し走行経路の終了位置が明確になる。さらに、終了位置が開始位置付近に設定されるので、連続走行をスムーズに行うことができる。
さらに、開始位置から内側にずらした位置を終了位置にすることで、外周周回経路上の終了位置(=開始位置)に戻る経路を計画するときに、教示範囲から経路が逸脱することが防止される。
【0014】
この方法は、下記のステップをさらに備えていてもよい。
◎環境変動検出用のテスト走行経路を作成するステップ。
◎自律走行体にテスト走行経路を走行させるステップ。
従来、塗り潰し走行において環境変動が発生した場合、途中で自己位置を見失い、計画された走行経路に自律走行体が追従できないことを防止するために走行を停止させていた。この場合、停止地点の周辺を含む以降の塗り残し箇所について、走行範囲の再度教示や経路作成が必要となる。
この方法では、自律走行体にテスト走行経路を走行させることで、塗り潰し走行の事前に環境変動を検出できる。したがって、従来とは異なり、実際の自律走行時に環境変動による影響を受けにくい。
【0015】
この方法は、下記のステップをさらに備えていてもよい。
◎自律走行体がテスト走行経路を走行中に検出した環境変動を通知するステップ。
この方法では、ユーザが環境変動に直ちに気付くことができる。
この方法は、下記のステップをさらに備えていてもよい。
◎自律走行体がテスト走行経路を走行中に環境変動を検出した後に、テスト走行を中止するステップ。
この方法では、ユーザが走行範囲の再教示を直ちに開始できる。
【0016】
この方法は、下記のステップをさらに備えていてもよい。
◎テスト走行を中止した後に、自律走行体をテスト走行経路上の地点に戻すステップ。
この方法では、ユーザが走行範囲の再教示を直ちに開始できる。
この方法は、下記のステップをさらに備えていてもよい。
◎テスト走行を中止した後に、自律走行体を走行領域内の地点に移動するステップ。
この方法では、例えば、テスト走行スタート位置と塗り潰しスタート位置が異なる場合に、自律走行体を塗り潰しスタート位置に移動させることができる。
【発明の効果】
【0017】
本発明に係る自律走行経路計画方法では、グリッドベースによる自律走行経路計画において、走行領域の外周境界から外側に自律走行体が逸脱しないようにできる。
【図面の簡単な説明】
【0018】
【
図1】第1実施形態の自律走行装置の一例の全体構成を示す図。
【
図8】自律走行装置の基本的な動作を示すフローチャート。
【
図9】手動操作教示モードの動作を示すフローチャート。
【
図11】グローバルマップにグリッドレイヤーを投影しさらに走行領域を重ねた状態を示す図。
【
図12】走行領域を矩形領域に分割した状態の一例を示す図。
【
図14】自律走行モードの実行時の自律走行装置の動作を示すフローチャート。
【
図15】矩形領域内経路作成制御動作を示すフローチャート。
【
図16】外周周回経路、第1グリッド領域、第2グリッド領域、内周周回経路、塗り潰し経路の関係を示す模式的平面図。
【
図17】外周周回経路、第1グリッド領域、第2グリッド領域、内周周回経路、塗り潰し経路の関係を示す模式的平面図。
【
図18】外周周回経路、第1グリッド領域、第2グリッド領域、内周周回経路、塗り潰し経路の関係を示す模式的平面図。
【
図19】第1実施形態において走行経路が表された環境地図。
【
図20】従来例において走行経路が表された環境地図。
【
図21】第3実施形態のテスト走行経路作成及びテスト走行制御動作を示すフローチャート。
【
図23】第1変形例のテスト走行経路の模式的平面図。
【
図24】第2変形例のテスト走行経路の模式的平面図。
【
図25】第3変形例のテスト走行経路の模式的平面図。
【
図26】第4変形例のテスト走行経路の模式的平面図。
【
図27】第5変形例のテスト走行経路の模式的平面図。
【
図28】第6変形例のテスト走行経路の模式的平面図。
【
図29】第7変形例のテスト走行経路の模式的平面図。
【発明を実施するための形態】
【0019】
1.第1実施形態
(1)自律走行装置の全体構成
図1を用いて、第1実施形態に係る自律走行装置100(自律走行体の一例)の全体構成を説明する。
図1は、自律走行装置の一例の全体構成を示す図である。自律走行装置100は、設定された清掃条件と走行経路とを自律的に再現する清掃機である。
自律走行装置100は、走行部1を備える。走行部1は、自律走行装置100を走行させる装置である。走行部1は、自律走行装置100の本体を構成する本体Bを有する。走行部1は、本体Bの底部の左右端にそれぞれ、走行モータ11と、走行モータ11の出力回転軸に取り付けられ、走行モータ11の回転に従って回転する主輪13と、を有する。
【0020】
自律走行装置100は、清掃部3を備える。清掃部3は、本体Bの底部に設けられ、指定された清掃条件に従って床面Fを清掃する装置である。本実施形態の清掃部3は、洗浄液吐出口31と、スキージ33と、洗浄用部材35と、を有する。
洗浄液吐出口31は、洗浄液供給タンク311から洗浄液供給ポンプ313により供給された洗浄液(例えば、水)を、本体Bの前方側の床面Fに吐出する。スキージ33は、本体Bの底面後方に設けられ、床面F上に残留する洗浄液を収集する。洗浄用部材35は、本体Bの底面の前方側に設けられ、洗浄用部材回転モータ351の回転にて洗浄液が存在する床面F上にて回転することにより、床面Fを洗浄する。
上記の清掃部3を備えることにより、自律走行装置100は、洗浄液を用いて床面Fを洗浄用部材35にて磨く清掃作業を実行できる。
他の実施形態において、スキージ33には吸引口33aが設けられていてもよい。吸引口33aは、吸引モータ331により回収部材333を負圧状態にすることにより、スキージ33により収集された洗浄液やゴミなどを吸引して、回収部材333へと搬送できる。
【0021】
自律走行装置100は、制御部5を有する。制御部5は、CPU、記憶装置(RAM、ROM、ハードディスクドライブ、SSDなど)、各種インターフェースなどを備えたコンピュータシステムである。制御部5は、自律走行装置100に関する各種制御を行う(後述)。
自律走行装置100は、走行経路教示部7を備える。走行経路教示部7は、操作者による走行部1の移動操作を受け付ける装置である。走行経路教示部7は、取付部材8を介して、本体Bの上部後側に取り付けられている。これにより、操作者は、走行経路教示部7を操作して走行部1を移動操作できる(後述)。
【0022】
他の実施形態として、走行経路教示部7は、本体Bに取り付けられていなくともよい。この場合、走行経路教示部7は、例えば、ジョイスティックなどのコントローラである。これにより、操作者は、自律走行装置100を遠隔操作できる。
【0023】
自律走行装置100は、設定部9を備える。設定部9は、自律走行装置100に関する各種設定を行うための操作盤であり、本体Bの上方後側の表面に取り付けられている。また、設定部9は、走行経路教示部7の近傍に設けられている。これにより、操作者は、走行経路教示部7を操作して走行部1を操作しつつ、設定部9を操作できる。
他の実施形態として、設定部9は、本体Bに取り付けられていなくてもよい。この場合、設定部9は、例えば、ポータブル端末などの無線通信可能なコンソールとできる。これにより、操作者は、自律走行装置100を遠隔にて設定できる。
【0024】
(2)走行経路教示部の構成
図2を用いて、走行経路教示部7の構成の一例を説明する。
図2は、走行経路教示部の構成の一例を示す図である。
走行経路教示部7は、ハンドル71a、71bを有する。ハンドル71a、71bは、それぞれ、筐体73の左右側面に取り付けられている。ハンドル71a、71bは、操作者が自律走行装置100を操作するときに使用される。
【0025】
例えば、ハンドル71a、71bを把持する操作者は、ハンドル71a、71bを介して、自律走行装置100を操作者の方へ引張る力、又は、自律走行装置100を押し出す力のいずれかを加えることができる。ハンドル71a、71bのそれぞれにかける力を調節することにより、操作者は、自律走行装置100の走行方向を調整できる。例えば、自律走行装置100の前方方向から見て右側のハンドル71aに対して、自律走行装置100を引張る力を加えれば、自律走行装置100は左へと方向転換する。
【0026】
ハンドル71a、71bは、筐体73に回動可能に取り付けられている。また、ハンドル71a、71bは、走行制御指令算出部75を介して制御部5に接続されている。走行制御指令算出部75は、ハンドル71a、71bの回動を電気信号に変換し、制御部5に出力する。これにより、操作者は、ハンドル71a、71bの回動操作によって、自律走行装置100(走行部1)を操作できる。
例えば、ハンドル71a、71bの回動方向を調整することにより、操作者は、自律走行装置100の前進と後進とを切り替え可能となっていてもよい。また、ハンドル71a、71bの回動量を調節することにより、自律走行装置100の走行速度を調整可能となっていてもよい。さらに、ハンドル71aの回動量と、ハンドル71bの回動量とを異ならせて、自律走行装置100の進行方向を変更してもよい。
【0027】
(3)設定部の構成
図3を用いて、設定部9の構成を説明する。
図3は、設定部の構成を示す図である。
設定部9は、切替部91を有する。切替部91は、自律走行装置100の動作モードを選択し、制御部5に出力する。自律走行装置100の動作モードとしては、自律走行モードと手動操作モードとがある。自律走行モードは、自律走行装置100が、自律的に走行し床面Fを洗浄する動作モードである。手動操作モードは、自律走行装置100が操作者により手動操作可能な状態にある動作モードである。
切替部91は、例えば、
図3に示すような切り替えスイッチにて構成できる。
【0028】
設定部9は、手動操作記憶スイッチ92を有する。手動操作記憶スイッチ92は、操作者による自律走行装置100の手動操作の記憶を開始又は終了するためのスイッチである。具体的には、切替部91により動作モードが手動操作モードに設定された後に手動操作記憶スイッチ92が押されると、操作者の手動操作により実行された清掃条件及び走行経路を、自律走行装置100に教示する手動操作教示モードが、手動操作モードのサブ動作モードとして開始する。一方、手動操作教示モードを実行中に手動操作記憶スイッチ92が切り替わると、手動操作教示モードが停止される。
手動操作記憶スイッチ92としては、例えば、
図3に示すような押ボタンスイッチとすることができる。この場合、手動操作記憶スイッチ92の切り替えは、当該押ボタンスイッチを押すことにより切り替わる。
【0029】
設定部9は、設定操作部93を有する。設定操作部93は、例えば押圧スイッチなどにより構成され、自律走行装置100に関する各種設定の入力を受け付けて、設定変換部94を介して、制御部5に出力する。
設定変換部94は、設定操作部93にて受け付けた入力を、制御部5が解読可能な信号に変換する信号変換回路、又は、コンピュータシステムである。
【0030】
設定部9はディスプレイ95を有する。ディスプレイ95は、現在設定されている自律走行装置100に関する各種設定情報を表示する。ディスプレイ95は、例えば、液晶ディスプレイ、有機ELディスプレイなどのディスプレイである。
他の実施形態において、ディスプレイ95は、現在の動作モード(自律走行モード/手動操作モード/手動操作教示モード)、運転時間、自律走行装置100を駆動するバッテリー残量などをさらに表示してもよい。
さらなる他の実施形態において、ディスプレイ95は、設定操作部93により自律走行装置100の各種設定を行う際に、各種設定手順を表示してもよい。これにより、自律走行装置100に関する情報を視覚的にユーザに提供し、ユーザは表示された情報に基づいて、設定部9を操作できる。
【0031】
他の実施形態において、ディスプレイ95にはタッチパネルが設けられていてもよい。この場合、上記の切替部91、手動操作記憶スイッチ92、及び/又は設定操作部93は、当該タッチパネルにより実現されてもよい。
設定部9は、清掃条件教示部96を有してもよい。清掃条件教示部96は、操作者による清掃条件の入力を受け付けて、清掃制御指令算出部97へ出力する。清掃制御指令算出部97は、清掃条件教示部96にて受け付けた清掃条件を、制御部5が解読可能な信号に変換して制御部5に出力する信号変換回路、又は、コンピュータシステムである。
【0032】
(4)制御部の構成
(4-1)制御部の全体構成
図4を用いて、制御部5の全体構成を説明する。
図4は、制御部の全体構成を示す図である。以下に説明する制御部5の各機能ブロックの全部又は一部は、制御部5を構成するコンピュータシステムにて実行可能なプログラムにより実現されてもよい。この場合、当該プログラムは、メモリ部及び/又は記憶装置に記憶されていてもよい。制御部5の各機能ブロックの全部又は一部は、SoC(System on Chip)などのカスタムICとして実現されていてもよい。
制御部5は、1つのコンピュータシステムにより構成されていてもよいし、複数のコンピュータシステムにより構成されていてもよい。複数のコンピュータシステムにより制御部5を構成する場合、例えば、制御部5の複数の機能ブロックにて実現される機能を複数のコンピュータシステムに任意の割合で振り分けて実行させることができる。
【0033】
制御部5は、清掃制御部51を有する。清掃制御部51は、洗浄用部材回転モータ351と、洗浄液供給ポンプ313と、吸引モータ331に対して、回転速度や出力などを制御する電力を供給する。
設定部9が清掃条件教示部96を有する実施例では、清掃制御部51は、清掃制御指令算出部97を介して清掃条件教示部96から教示清掃条件を入力し、当該教示清掃条件に基づいて、洗浄用部材回転モータ351と、洗浄液供給ポンプ313と、吸引モータ331と、を制御してもよい。
他の実施形態において、清掃制御部51は、自律走行モードの実行時に、制御統括部55から、自律走行モードにおける清掃条件の設定値を示す再現清掃条件を入力し、当該再現清掃条件に基づいて、清掃部3を制御してもよい。
【0034】
制御部5は、走行制御部53を有する。走行制御部53は、走行経路教示部7から入力したハンドル71a、71bの回動量及び回動方向に基づく走行制御指令、又は、制御統括部55から入力した走行制御指令に基づき、走行モータ11を制御する。
また、走行制御部53は、走行モータ11の出力回転軸に取り付けられたエンコーダ111から出力されるパルス信号に基づいて、走行モータ11の回転速度を算出する。
制御部5は、制御統括部55を有する。制御統括部55は、自律走行装置100による走行を統括する。具体的には、制御統括部55は、前方検出器5551a、後方検出器5551b、及び/又はエンコーダ111にて取得された情報に基づいて、自律走行装置100が床面Fのどの位置を移動しているかを示す位置情報を算出する。
制御統括部55は、手動操作教示モードの実行時における上記の位置情報を用いて、走行スケジュール500を作成する。他の実施形態において、制御統括部55は、自律走行モードにおける清掃条件を算出し、走行スケジュール500と関連付けてもよい。
【0035】
一方、自律走行モードの実行時においては、制御統括部55は、走行スケジュール500に記憶されたデータに基づいて再現走行制御指令を算出し、走行制御部53に出力する。これにより、自律走行モードの実行時においては、走行制御部53は、再現走行制御指令に基づいて走行モータ11を制御することで、自律走行装置100を自律的に移動させることができる。
走行スケジュール500に清掃条件が関連付けられている実施形態では、制御統括部55は、自律走行モードの実行時において、走行スケジュール500に記憶された清掃条件に基づいて、清掃制御部51を制御してもよい。これにより、自律走行装置100は、走行スケジュール500に従って自律的に走行中に、当該清掃条件に従って自律的に清掃作業を実行できる。
【0036】
制御部5は、記憶部57を有する。記憶部57は、制御部5を構成するコンピュータシステムの記憶装置の記憶領域の一部又は全部であり、自律走行装置100に関する各種情報を記憶する。具体的には、記憶部57は、制御統括部55において作成された走行スケジュール500、及び、設定操作部93や設定変換部94から入力された自律走行装置100に関する各種設定を記憶する。
走行制御部53、及び制御統括部55は、記憶部57に記憶された自律走行装置100に関する各種設定、及び/又は、走行スケジュール500を必要に応じて読み出して、これらに基づいて各種の調整及び制御を実行できる。
【0037】
(4-2)走行制御部の構成
図5を用いて、走行制御部53の構成を詳細に説明する。
図5は、走行制御部の詳細構成を示す図である。
走行制御部53は、走行切替部531を有する。走行切替部531は、3つの端子d、e、及びfを有している。端子dは走行経路教示部7に接続され、端子eはモータ制御部533に接続され、端子fは制御統括部55に接続されている。
【0038】
走行切替部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に送信できる。
【0039】
モータ制御部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の進行方向を決定する。
他の実施形態において、制御部5が複数のコンピュータシステムにて構成される場合、モータ制御部533は、当該複数のコンピュータシステムのうちの1つであってもよい。すなわち、モータ制御部533の機能のみを1つのコンピュータシステムにて実現してもよい。この場合、モータ制御部533は、例えば、PI制御理論又はPID制御理論を用いたモータ制御装置である。
【0040】
(4-3)制御統括部の構成
図6を用いて、制御統括部55の構成を詳細に説明する。
図6は、制御統括部の詳細構成を示す図である。
制御統括部55は、走行領域取得部551を有する。走行領域取得部551は、手動操作教示モードの実行時に、所定時間毎(例えば、制御部5における制御周期毎)に、SLAM部555(後述)から、SLAM部555にて推定された位置情報(後述)を入力する。
走行領域取得部551は、走行環境において自律走行装置100が走行する領域を表す走行領域TAを、取得した複数の位置情報の点列として取得する。走行領域取得部551は、取得した複数の位置情報の点列を、走行領域TAの外周境界を表す点列として、走行領域内経路作成部553に出力する。
他の実施形態において、走行領域取得部551は、予め作成したグローバルマップGM(走行環境を表す地図情報)をディスプレイ95に表示させてもよい。このとき、走行領域取得部551は、操作者に対して、ディスプレイ95に表示されたグローバルマップGM上に、走行領域TAを表す閉じられた領域を描画するように指示をしてもよい。
【0041】
制御統括部55は、走行領域内経路作成部553(経路計画装置の一例)を有する。走行領域内経路作成部553は、走行領域取得部551から取得した走行領域TA内に、自律走行装置100が当該走行領域TAをまんべんなく(「塗り潰す」ように)走行する走行スケジュール500を作成し、記憶部57に記憶する。
図7に示すように、走行領域内経路作成部553は、グリッド作成部5531、走行順番決定部5532、逸脱幅算出部5533、逸脱判定部5534、及び走行経路計画部5535を有している。
【0042】
グリッド作成部5531は、グローバルマップGMにおいて塗り潰し走行を行う対象領域を所定サイズのグリッドで区画する。具体的には、グリッド作成部5531は、グローバルマップGMとは別の座標軸であるグリッドレイヤーGLにグローバルマップGMを投影し、グリッドレイヤーGL上で対象領域を所定サイズのグリッドGRで区画する。このようにグリッドレイヤーGLとグローバルマップGMを別々に管理できるので、作業効率が良い。なお、グリッドレイヤーGL上の対象領域は、グローバルマップGM内に一又は複数設定される。
【0043】
走行順番決定部5532は、走行対象であるグリッドGRに走行順を決定する。なお、走行順とは、自律走行装置100が通過するグリッドGRの順番である。
【0044】
走行経路計画部5535は、選択した走行対象であるグリッドを通る走行経路を計画する(後述)。
制御統括部55は、SLAM部555を有する。SLAM部555は、本体Bの前方に設けられた前方検出器5551a(
図1)にて取得した自律走行装置100の前方に存在する障害物に関する情報と、本体Bの後方に設けられた後方検出器5551b(
図1)にて取得した自律走行装置100の後方に存在する障害物に関する情報と、エンコーダ111にて取得した走行モータ11の回転量に基づいて、自律走行装置100の所定の座標上の位置に関する情報(位置情報)を推定する。
【0045】
前方検出器5551a及び後方検出器5551bは、例えば、その検出範囲が180°以上のレーザーレンジファインダ(Laser Range Finder、LRF)である。レーザーレンジファインダを前方検出器5551a及び後方検出器5551bとして用いた場合、走行部1と障害物との距離と、当該障害物が存在する方向とが、障害物に関する情報として取得される。
前方検出器5551a及び後方検出器5551bにて取得される情報は、所定の平面上における障害物の存在位置を表す二次元的な情報であってもよいし、さらに高さ方向における障害物の存在位置を表す情報を含めて三次元的な情報であってもよい。
【0046】
制御統括部55は、走行再現部557を有する。走行再現部557は、自律走行モードを実行する時に、走行スケジュール500に記憶された情報と、SLAM部555から取得した推定された位置情報とに基づいて、自律走行装置100が走行スケジュール500に示された走行経路を自律的に走行するための制御指令(再現走行制御指令)を算出する。走行再現部557は、算出した再現走行制御指令を走行制御部53に出力する。
他の実施形態において、走行再現部557は、走行スケジュール500に関連付けられた清掃条件を、清掃制御部51に出力してもよい。
【0047】
(4-4)SLAM部の構成
図6を用いて、SLAM部555の構成の詳細を説明する。本実施形態に係るSLAM部555は、SLAM(Simultaneous Localization and Mapping)法にて、走行部1(自律走行装置100)の位置(位置情報)推定と地図情報の作成とを実行する。
SLAM部555は、地図作成部5553を有する。地図作成部5553は、前方検出器5551aにて取得された前方の障害物(例えば、壁など)に関する情報、後方検出器5551bにて取得された後方の障害物に関する情報と、を用いて地図情報を作成する。地図情報は、位置推定部5555において位置情報を推定する際に用いられる。地図情報としては、ローカルマップとグローバルマップGM(環境地図の一例)とが存在する。
【0048】
ローカルマップは、走行部1の周囲に存在する障害物(の存在位置)に関する地図情報である。ローカルマップは、前方検出器5551aにて取得された前方の障害物に関する情報と、後方検出器5551bにて取得された後方の障害物に関する情報とを、必要に応じて座標変換することにより作成される。
グローバルマップGMは、走行部1が走行する環境(走行環境)に存在する障害物(の存在位置)に関する地図情報である。本実施形態において、グローバルマップGMは、操作者の操作によって走行する手動操作教示モードの実行時に走行領域TAを表す位置情報の点列を取得したときに取得したローカルマップに基づいて生成される。つまり、グローバルマップGMは、自律走行装置100が教示走行を行うことで作成され、塗り潰し走行を行う対象領域は教示走行時の走行軌跡で画定される。
【0049】
具体的には、地図作成部5553は、走行領域TAを表す位置情報の点列とともに取得したローカルマップを、当該位置情報に対応する位置に配置することでグローバルマップGMを作成する。
走行領域TAを表す位置情報の点列を取得する際に、手動操作教示モードの初期に取得した位置情報と、手動操作教示モードの終盤に取得した位置情報との間には、誤差が生じる場合がある。具体的には、例えば、閉じられた領域である走行領域TAを位置情報の点列として取得する際に、手動操作教示モードの開始時の走行部1の位置と終了時の走行部1の位置とが同一であるに関わらず、推定された位置情報が一致しないことがある(いわゆる、環状経路問題)。
【0050】
上記の推定された位置情報の不一致を解消するため、地図作成部5553は、ローカルマップを対応する位置に配置して作成したグローバルマップGMを修正する。具体的には、例えば、以下のようにしてグローバルマップを修正する。
最初に、地図作成部5553は、手動操作教示モードの開始時と終了時に、前方検出器5551aにて取得された障害物に関する情報、及び/又は、後方検出器5551bにて取得された障害物に関する情報を取得する。
【0051】
次に、地図作成部5553は、手動操作教示モードの開始時に得られた障害物に関する情報と終了時に得られた障害物に関する情報との差分などに基づいて、手動操作教示モードの開始時と終了時における走行部1の実際の位置のずれを算出する。
その後、地図作成部5553は、算出した実際の位置のずれに基づいて、例えばGraphSLAMなどのアルゴリズムを用いて、ローカルマップの配置位置を修正し、修正した新たな配置位置にローカルマップを配置して、新たなグローバルマップGMを作成する。
【0052】
このとき、地図作成部5553は、手動操作教示モードを実行することにより取得した走行領域TAを表す点列の位置情報(座標値)も、Graph SLAMなどのアルゴリズムを用いて同時に修正し、修正した新たな位置情報の点列を走行領域TAを表す点列としてもよい。
上記のようにしてグローバルマップGMを修正することにより、走行環境をより適切に表したグローバルマップGMを作成できる。また、グローバルマップGMの修正時に、走行領域TAを表す位置情報を修正することにより、閉じられた領域である走行領域TAをより適切に表した位置情報の点列を取得できる。
他の実施形態において、グローバルマップGMは、専用のソフトウェア又はCADなどを用いて作成されて記憶部57に記憶されてもよい。この場合、当該ソフトウェアなどで作成したグローバルマップは、走行部1の制御部5が解釈できるようなデータに変換される。
【0053】
SLAM部555は、位置推定部5555を有する。位置推定部5555は、地図作成部5553が生成したグローバルマップと、ローカルマップと、走行モータ11の回転量と、に基づいて、所定の座標上の走行部1の存在位置及び当該位置における走行部1の姿勢に関する位置情報を推定する。
具体的には、以下のようにして位置情報が推定される。ここでは、走行部1がある所定の時刻(時刻tkとする)における(推定)位置から移動して、次の時刻(時刻tk+1とする)にて走行部1が到達する位置を推定する場合を例として考える。
最初に、位置推定部5555は、時刻tkから時刻tk+1までの間にエンコーダ111から出力されたパルス数から、時刻tkから時刻tk+1までの間の主輪13の回転量を算出し、当該回転量に基づいて、主輪13の回転による走行部1の移動距離と姿勢変化とを推定する(デッドレコニング)。
【0054】
次に、位置推定部5555は、時刻tkにおける事後確率(走行部1の位置と、時刻tkにおいて当該位置に走行部1が存在する確率と、の関係を表した確率分布に対応する)を、主輪13の回転による走行部1の移動距離分及び姿勢変化分だけ移動させて、時刻tk+1における事前確率を算出する。
他の実施形態において、位置推定部5555は、主輪13の回転による移動距離分及び姿勢変化分だけ移動後の事後確率の確率分布の幅(標準偏差)を拡大して、時刻tk+1における事前確率としてもよい。これにより、主輪13と床面Fとの滑りを考慮した事前確率を算出できる。
【0055】
その後、位置推定部5555は、時刻tk+1におけるローカルマップとグローバルマップとを地図作成部5553から取得し、時刻tk+1におけるローカルマップとグローバルマップGMとをマップマッチングし、時刻tk+1における走行部1の位置情報を推定する。
具体的には、例えば、グローバルマップGM上において、主輪13の回転量に基づいて算出された推定位置の近傍のいくつかの位置に、時刻tk+1におけるローカルマップを配置し、当該ローカルマップをその中心回りに取りうる姿勢変化に対応する角度だけ回転させて、マップマッチングを行う。
位置推定部5555は、当該マップマッチングの結果に基づいて、尤度(ローカルマップ情報を配置した位置と、当該位置におけるグローバルマップGMとローカルマップ情報との一致度と、の関係を表すものに対応)を算出する。
【0056】
その後、位置推定部5555は、尤度と時刻tk+1における事前確率とを乗算することにより、時刻tk+1における事後確率を算出する。位置推定部5555は、時刻tk+1における事後確率が最大値となる位置及び姿勢、すなわち、走行部1が存在する可能性が最も高いと推定される位置、及び、当該位置において走行部1がとりうる最も可能性が高い姿勢を、時刻tk+1における走行部1の存在位置(推定位置)及び当該存在位置における姿勢(推定姿勢)と推定する。
時刻tk+1における事後確率は、次の位置推定において事前確率として使用される。
上記のように、位置推定部5555が、主輪13の回転量に基づいた移動距離と、前方検出器5551a及び後方検出器5551bとを用いて得られた地図情報と、を用いて位置推定を実行することにより、主輪13の回転量に基づいた移動距離に含まれる誤差(主に、主輪13と床面Fとの間の滑りに起因)と、地図情報に含まれる誤差(主に、前方検出器5551a及び後方検出器5551bにて取得した情報に含まれるノイズ成分に起因)とを相補的に減少させて、精度のよい位置推定を実行できる。
【0057】
SLAM部555は、経過時間決定部5557を有する。経過時間決定部5557は、自律走行モードの実行開始からの経過時間を決定する。具体的には、経過時間決定部5557は、自律走行モードの実行開始からの経過時間を、位置推定部5555にて推定された位置情報に基づき決定する。
より具体的には、例えば、走行スケジュール500に記憶されている位置情報のうち、位置推定部5555にて推定された走行部1の位置情報に最も近い位置情報に関連付けられている時間を、自律走行モードの実行開始からの経過時間とする。
【0058】
(5)自律走行装置の動作
(5-1)基本動作
図8を用いて、自律走行装置100の基本的な動作を説明する。
図8は、自律走行装置の基本的な動作を示すフローチャートである。
ステップS1では、自律走行装置100が動作を開始すると、制御部5は、切替部91の状態を確認する。切替部91が「自動」を選択している場合(「自律走行モード」の場合)、プロセスはステップS2に移行して自律走行モードが実行される。具体的には、記憶部57に記憶された走行スケジュール500に従って、自律走行装置100は自律的に清掃作業を実行する。
【0059】
一方、切替部91が「手動」を選択している場合(「手動操作モード」の場合)、制御部5は、実行すべき動作モードが手動操作モードと判断する。
ステップS3では、手動操作モードを実行中に手動操作記憶スイッチ92が押されたことを検知したか否かが判断される。検知した場合、プロセスはステップS4に移行し動作モードを手動操作教示モードに移行させられる。その結果、手動操作記憶スイッチ92が押されたタイミング以降の操作者による走行部1の操作が記憶される。
【0060】
また、手動操作教示モードにおいては、制御統括部55は、操作者による走行部1の操作にて決定した走行領域TA内を自律走行装置100に走行させるための走行スケジュール500を作成する。
一方、手動操作記憶スイッチ92が押されたことが検知されない場合には、プロセスはステップS5に移行して操作者の操作を記憶しない手動操作モードの実行を維持する。
【0061】
上記のステップS4において手動操作教示モードを実行中に、制御部5は、手動操作記憶スイッチ92が押されたか否かをモニターする。手動操作教示モードの実行中に手動操作記憶スイッチ92が押された場合には、そのタイミングで動作モードが手動操作モードに切り替わり、当該タイミング以降の清掃作業が走行スケジュール500に記憶されなくなる。すなわち、手動操作教示モードの実行時に手動操作記憶スイッチ92を押すことにより、操作者は、清掃作業の途中の任意のタイミングにてその記憶(教示)を停止できる。
上記のように、本実施形態に係る自律走行装置100は、切替部91における動作モードの選択、及び、手動操作記憶スイッチ92が押されたか否かに応じて、自律走行モード、手動操作モード、及び手動操作教示モードを実行できる。
【0062】
(5-2)手動操作教示モードの動作(概略説明)
図9~
図13を用いて上記のステップS4において実行される手動操作教示モードの動作を説明する。
図9は、手動操作教示モードの動作を示すフローチャートである。
図10は、走行環境の一例である。
図11は、グローバルマップにグリッドレイヤーを投影しさらに走行領域を重ねた状態を示す図である。
図12は、グローバルマップ上に走行領域を画定する様子の一例を示す図である。
図13は、走行領域内経路の一例を示す図である。
以下の説明では、
図10に示すような走行環境において設定された走行領域TA内をまんべんなく「塗り潰す」走行領域内経路を計画し、走行スケジュール500として作成する。
【0063】
ステップS11では、手動操作教示モードにおいて走行スケジュール500を作成するにあたり、制御統括部55は、走行環境を表すグローバルマップGMを作成する。
最初に、手動操作記憶スイッチ92が押された後に自律走行装置100の手動操作を開始するか、又は、手動操作中に手動操作記憶スイッチ92が押されて、手動操作教示モードが開始されると、操作者は、走行経路教示部7を用いて自律走行装置100を操作する。操作者は、走行領域TAとしたい領域の外周境界に沿って、自律走行装置100を走行させる。
【0064】
操作者による操作により自律走行装置100が走行中、地図作成部5553が、所定の時間毎に、ローカルマップを取得する。
図10に示すように、自律走行装置100が走行を開始した開始点STから、走行領域TAの外周境界とする閉じられた経路を走行し、再度開始点ST又はその近傍まで戻ってきた後、地図作成部5553は、取得したローカルマップを対応する位置に配置してグローバルマップGMを作成する。その後、地図作成部5553は、必要に応じて、Graph SLAMアルゴリズムなどを用いて、当該グローバルマップGMを修正する。
【0065】
一方、グローバルマップGMに対応するグリッドレイヤーGLが用意されている。グリッドレイヤーGLは、グリッド作成部5531によって適宜作成される。グリッドレイヤーGLは、多数のグリッドGRの集合体である。グリッドGRは、走行環境においては、所定の面積を有する小領域に対応する。グリッドサイズは、例えば、50×50cmである。このようにグローバルマップGMとは別の座標軸であるグリッドレイヤーGLを用いているので、両者を別々に管理することができ、そのため作業効率が良い。
【0066】
また、制御部5を構成するコンピュータシステムにおいては、当該グリッドGRを、例えばグリッドに関するパラメータ(例えば、グリッドGRを識別するパラメータ、グリッドGRの位置情報、グリッドGRの有効無効、グリッドGRに付与されたスコア、など)を含む「構造体」として定義できる。
【0067】
ステップS12では、グローバルマップGMを作成後、走行環境において自律走行装置100が走行する領域を表す走行領域TAが、グローバルマップGM上に画定される。具体的には、以下のようにして、走行領域TAがグローバルマップGM上に画定される。
【0068】
最初に、上記のステップS11を実行中、すなわち、自律走行装置100を走行領域TAの外周境界に沿って走行させる間に、走行領域取得部551が、所定の時間毎に、位置推定部5555にて推定された位置情報を走行領域TAの外周境界を表す点として取得する。
【0069】
これにより、走行領域取得部551は、自律走行装置100が開始点ST(
図10)から点線にて示す経路に沿って走行し、開始点ST又はその近傍まで戻ってくるまでの間に取得した複数の位置情報を、走行領域TAの外周境界を表す点列として取得できる。走行領域取得部551は、走行領域TAの外周境界を表す位置情報の点列を、走行領域内経路作成部553に出力する。
【0070】
次に、
図11に示すように、走行領域内経路作成部553は、グローバルマップGM(実際には、グリッドレイヤーGL)上に、走行領域TAの外周境界を表す点列を配置する。走行領域TAの外周境界を表す位置情報が、グリッドレイヤーGLのいずれのグリッドに配置されるかは、例えば、位置情報(グローバルマップ)を定義した座標系において、グリッドGRがどの座標値に存在するかにより決定できる。
【0071】
その後、走行領域内経路作成部553は、
図12に示すように、走行領域TA内のグリッドGR(
図12では白色のグリッド)と、走行領域TAの点列がグリッド上にあるグリッド(
図12では白色のグリッド)が有効グリッドであると決定し、それ以外のグリッドGRについては無効グリッド(
図12では灰色のグリッド)であると決定する。
このようにして、走行領域内経路作成部553は、走行領域TAには含まれないグリッドGRを新たに無効グリッドとすることにより、走行領域TAを多数の有効グリッド(
図12においては、白色のグリッドGR)にて構成される領域として、グローバルマップGM上に画定できる。
【0072】
ステップS13では、グローバルマップGM上に走行領域TAを画定後、走行領域内経路作成部553は、走行領域TAを矩形の領域(矩形領域RA)に分割する。走行領域TAを矩形領域RAに分割するにあたり、走行領域内経路作成部553は、走行領域TAのどの部分に矩形領域RAが存在するかを探索する。
ステップS14では、走行領域TAを矩形領域RA1~RA3に分割後、走行領域内経路作成部553は、各矩形領域RA1~RA3に対して、当該各矩形領域RA1~RA3内おける矩形領域内経路(後述)の始点グリッドを決定する。他の矩形領域RA2、RA3の始点グリッドは、後述するステップS17において決定される。
ステップS15では、走行領域内経路作成部553は、当該始点グリッドから開始し、対象の各矩形領域RA1~RA3に含まれる全ての有効グリッドを通過する走行経路である矩形領域内経路を作成する。
【0073】
ステップS16では、走行領域内経路作成部553は、矩形領域内経路を未だ作成していない矩形領域RA1~RA3が存在するか否かを判定する。
矩形領域内経路を作成していない矩形領域RA1~RA3が存在していない場合には、手動操作教示モードを終了する。
その一方、矩形領域内経路を作成していない矩形領域RA1~RA3が存在する場合、ステップS17では、次にどの矩形領域RA2、RA3内を自律走行装置100に走行させるかを決定する。
ステップS18では、走行領域内経路作成部553は、矩形領域RA1の終点グリッドと、当該次に走行すべきと決定した矩形領域RA3の始点グリッドとを接続する走行経路(接続走行経路)を作成する。
【0074】
その後、矩形領域内経路が全ての矩形領域RA1~RA3において作成されるまで、上記のステップS15~S18が繰り返し実行される。その結果、
図12などにて示した走行領域TAに対して、最終的に
図13の太矢印にて示すような、設定された走行領域TA内を自律走行装置100がまんべんなく走行する走行領域内経路が作成される。
【0075】
走行領域内経路を作成後、走行領域内経路作成部553は、作成した走行領域内経路を、自律走行装置100が通過する通過点(例えば、サブゴール)の集合に変換する(後述)。その後、走行領域内経路作成部553は、走行領域内経路を変換して生成した各通過点に対して当該通過点を通過する時間を関連付け、さらに、必要に応じて、各通過点における清掃条件を対応する通過点に関連付けることで、走行スケジュール500を作成する。
【0076】
手動操作教示モードにおいて、上記のステップS11~S18を実行することにより、走行環境を表すグローバルマップGM上において走行領域TAを指定するとの容易な方法により、自律走行装置100が走行領域TAをまんべんなく走行できる走行経路、すなわち、走行領域内経路を精度よく作成できる。
【0077】
(5-3)自律走行モードの動作
図14を用いて、
図8のステップS2において実行される、手動操作教示モードにおいて作成された走行領域内経路を再現する自律走行モードの実行時における自律走行装置100の動作を説明する。
図14は、自律走行モードの実行時の自律走行装置の動作を示すフローチャートである。
【0078】
切替部91において「自動」が選択されて自律走行モードを実行すると、自律走行装置100は、走行スケジュール500に従って自律的に走行する自律走行モードを開始する。自律走行モードは、具体的には、以下のようにして実行される。
【0079】
以下の説明においては、自律走行モードの実行開始からの経過時間tm-1までの走行が実行済みであるとする。ここで、mは、m番目の走行のための制御を示す。
ステップS21では、SLAM部555が、前方検出器5551a及び後方検出器5551bから、前方の障害物に関する情報及び後方の障害物に関する情報を取得する。
【0080】
ステップS22では、位置推定部5555が、エンコーダ111にて測定された走行モータ11の回転量、グローバルマップGM、及び上記のステップS21において取得された情報に基づいて得られたローカルマップに基づいて、走行部1のx-y座標上の位置を推定する。例えば、自律走行装置100の位置が、x-y座標上において、(xm’,ym’、θm’)と推定されたとする。
【0081】
ステップS23では、走行部1の位置を推定後、経過時間決定部5557が、自律走行モードの実行開始からの経過時間tmを決定する。
ステップS24では、走行再現部557が、経過時間tmにおける再現走行制御指令を、以下のように算出する。
【0082】
今、経過時間tmが、走行スケジュール500に記憶された時間TL(に最も近い)であると決定されたとする。この場合、走行再現部557は、次の時間TL+1に関連付けられた位置情報(xL+1,yL+1,θL+1)を、走行スケジュール500から読み出し、経過時間tmにおける再現走行制御指令を、推定された位置情報と目標とする位置情報との差分(xL+1-xm’,yL+1-ym’,θL+1-θm’)に基づいて算出する。
【0083】
ステップS25では、再現走行制御指令を算出後、走行再現部557は、再現走行制御指令を走行制御部53に出力する。これにより、走行制御部53は、受信した再現走行制御指令に基づいて走行モータ11を制御することで、走行部1を走行スケジュール500に従って自律的に移動させる。
【0084】
他の実施形態において、走行スケジュール500に清掃条件が関連付けられている場合には、上記のステップS24~S25において、走行再現部557は、再現清掃条件を算出し、当該再現清掃条件に基づいて清掃制御部51を制御してもよい。
具体的には、走行再現部557は、時間TLに関連付けられた清掃条件(SL,WL,PL)を走行スケジュール500から読み出し、当該清掃条件(SL,WL,PL)を経過時間tmにおける再現清掃条件として決定する。その後、走行再現部557は、再現清掃条件を清掃制御部51に出力する。これにより、再現清掃条件に従って、清掃部3を制御できる。
【0085】
ステップS26では、走行部1を再現走行制御指令に基づいて制御後、走行再現部557は、走行スケジュール500に記憶された走行動作を全て実行したか否かを確認する。
走行スケジュール500に記憶された走行動作が全て終了したか否かは、例えば、走行スケジュール500の末尾にある識別子(例えば、「エンド・オブ・ファイル」を示す識別子など)を検出することにより確認できる。
【0086】
走行スケジュール500に記憶された走行動作が全て実行されていないと判定される限り(ステップS26において「No」である限り)、上記のステップS21~S25が繰り返し実行される。
一方、走行スケジュール500に記憶された全ての走行動作が実行されたと判定されたとき、すなわち、自律走行装置100が走行領域内経路を全て走行したと判定されたとき(ステップS26において「Yes」の場合)に、自律走行モードの実行を終了する。
これにより、自律走行装置100は、走行スケジュール500に記憶された走行動作を忠実に再現して、設定された走行領域内を自律的にまんべんなく走行できる。
他の実施形態において、走行スケジュール500に記憶された走行動作を全て実行した場合のみでなく、例えば、自律走行装置100にて異常が発生した場合、ユーザにより自律走行モードの実行停止が指令された場合などにおいても、自律走行モードの実行が停止されてもよい。
【0087】
(6)矩形領域内経路作成の制御動作
図9~
図13を用いて説明した手動操作教示モードの変形例として、
図15~
図18を用いて、矩形領域内経路作成の制御動作を説明する。なお、以下の説明は、
図9のステップS15に概ね対応している。
図15は、矩形領域内経路作成制御動作を示すフローチャートである。
図16~
図18は、外周教示経路、第1グリッド領域、第2グリッド領域、内周周回経路、塗り潰し経路の関係を示す模式的平面図である。
【0088】
グローバルマップGMは、自律走行装置100によって外周教示走行を行うことで取得されている。例えば、
図16では、自律走行装置100による外周周回経路21が示されており、外周周回経路21の図下側が走行領域TAになっている。なお、外周周回経路21は、外周教示のスタート位置から外周を一周する経路である。これは、グリッド経路ではなく、外周教示経路(教示走行時の実際の走行軌跡)を基にした自由経路計画によって計画される経路である。なお、本実施例では、外周周回経路21は、外周教示経路をそのまま利用している。
変形例では、外周教示経路から外周周回経路が作成される。例えば、GUI上で走行領域を指定し(つまり、外周教示経路を作成し)、次に、教示された外周を基に外周周回経路が作成される。これにより、自律走行装置100が滑らかに走行できる。
【0089】
矩形領域内経路作成の制御動作は、自律走行装置100が自律走行する経路を計画する自律走行経路計画方法であって、下記のステップを備えている。
ステップS31では、走行領域TAに対応して第1グリッド領域GA1が作成される。このときに前述のグリッドレイヤーGLが用いられる。具体的には、走行領域内経路作成部553のグリッド作成部5531(グリッド作成部の一例)が、例えば、外周教示経路を含む第1矩形を求め、次に第1矩形よりマージン分大きな第2矩形を求め、次に第2矩形とグリッド中心が一致する位置に最初のグリッドGRを配置し、最後に複数のグリッドGRを第2矩形を含む位置まで敷き詰める。これにより、第1グリッド領域GA1が生成される。例えば、
図17では、第1グリッド領域GA1が示されている。ここで、第1グリッド領域GA1は、最外側のグリッドGRが外周周回経路21をカバーしている。
なお、第1グリッド領域GA1は、走行領域TAとは独立して形成されている。実際は、第1グリッド領域GA1は走行領域TAをはみ出して形成される。
また、第1グリッド領域GA1は、グリッドレイヤーGLのグリッドの一部を無効として、残りを有効とすることで形成されてもよい。
【0090】
ステップS32では、自律走行装置100の車体サイズと回転半径と回転移動距離及びグリッドのサイズに基づいて、自律走行装置100が方向転換を行う際に外周周回経路21から自律走行装置100の本体Bが逸脱する逸脱幅DWを算出する。具体的には、逸脱幅算出部5533が上記計算を行う。例えば、
図17では、自律走行装置100が方向転換によって外周周回経路21からはみ出す逸脱幅DW(最大逸脱領域境界BLまでの距離)が示されている。逸脱幅DWは、位置によって異なり、本実施形態においては最小逸脱量D1~最大逸脱量D2(最小逸脱量D1+グリッド長GRL)の範囲である。
【0091】
ステップS33では、逸脱があったか否かが判断される。具体的には、逸脱判定部5534が上記判断を行う。逸脱があればプロセスはステップS34に移行し、逸脱がなければプロセスはステップS34をスキップしてステップS35に移行する。
ステップS34では、内周周回経路23が作成される。具体的には、走行経路計画部5535(内周周回経路作成部の一例)が内周周回経路23を作成する。内周周回経路23は、外周周回経路21からグリッド幅ずつ内側に位置する経路(外周周回経路21を縮小した経路)であり、互いに平行になっている。内周周回経路23は、外周周回経路21を基にした自由経路計画によって作成される。例えば、
図18では、2本の内周周回経路23が平行に延びている。ただし、2本の内周周回経路23同士の距離はグリッド幅ずつでなくてもよいし、途中で変化してもよいし、部分的に一致してもよい。なお、内周周回経路23は、外周教示経路を元にした自由経路計画によって作成されてもよい。また、内周周回経路23は、外周周回経路21を縮めつつ滑らかになるように加工されてもよい。
なお、このステップでは、塗り残しが生じないようにするために必要な内周周回経路23の最大本数が算出されるつまり、逸脱幅DWの大きさは場所によって変わる可能性があるが、逸脱幅DWを覆うために必要な最大本数の内周周回経路23を作成することで、塗り残しが生じない走行経路を計画することができる。
【0092】
ステップS35では、第2グリッド領域GA2(グリッド領域の一例)が作成される。第2グリッド領域GA2は、塗り潰し走行経路を計画する対象エリアである。第2グリッド領域GA2は、最も内側の内周周回経路23と第1グリッド領域GA1とを用いて作成される。具体的には、第1グリッド領域GA1のグリッドGRのうち最も内側の内周周回経路23が入っているもの及びそれらより内側のものを第2グリッド領域GA2のグリッドGRと判定される。つまり、第1グリッド領域GA1の一部を無効として、残りを有効として残すことで第2グリッド領域GA2とする。
なお、変形例として、第1グリッド領域GA1のグリッドGRのうち最も内側の内周周回経路23より中心Cが内側に入っているもの及びそれらより内側ものを第2グリッド領域GA2のグリッドGRと判定してもよい。
【0093】
ステップS36では、第2グリッド領域GA2内を塗り潰すように塗り潰し走行経路25が作成される。具体的には、走行経路計画部5535(塗り潰し走行経路作成部の一例)が塗り潰し走行経路25を作成する。最初に、グリッドレイヤーGLの各グリッドGRの走行順番が決定され、次にグリッドGRの中心Cを通るグリッド経路として作成される。
例えば、
図18では、塗り潰し走行経路25の一部が示されている。この場合、自律走行装置100が第2グリッド領域GA2において方向転換をすれば、自律走行装置100は図に示すように第2グリッド領域GA2を逸脱するが、逸脱部分は最外周の内周周回経路23の内側に位置している。
なお、ステップS36において、塗り潰し走行経路25は、第2グリッド領域GA2に加えて逸脱幅DWも塗り潰すように形成されてもよい。この場合、グリッドが外周教示経路の境界に跨って配置される条件において、境界のグリッド配置、すなわち実際の第2グリッド領域GA2の境界形状が直線になるため、効率の高い直線の塗り潰し走行経路が計画されやすくなる。
【0094】
ステップS37では、外周教示走行を行った外周周回経路21、内周周回経路23、及び塗り潰し走行経路25を連続的に繋ぐ。具体的には、走行経路計画部5535が上記決定を行う。この結果、自律走行経路が完成する。
上記において、塗り潰し走行経路25の開始位置は、外周周回経路21上に設定される。これにより、塗り潰し走行経路25の終了位置が明確になり、自律走行装置100の回収が容易になる。また、塗潰しの終了位置がユーザにとって明示的になるので、例えば次に実現したい教示の開始位置が決まることで、自律走行装置100がスムーズに連続走行できる。
さらに具体的には、その場合、塗り潰し走行経路25の終了位置は、外周周回経路21より内側の開始位置付近(数十cm程度)に設定される。開始位置から内側にずらした位置を終了位置にすることで、外周周回経路21上の終了位置(=開始位置)に戻る塗り潰し走行経路25を計画するときに教示範囲から逸脱することが防止される。それに比べて、開始位置=終了位置とすると、外周周回経路21上の終了位置(=開始位置)に移動で戻る経路を計画する場合、自律走行装置100の走行部1の形状により、上記の逸脱が生じることが想定される。
【0095】
以上に述べたように、逸脱幅DWを走行する内周周回経路23が作成され、次に第2グリッド領域GA2が作成され、さらに第2グリッド領域GA2内に塗り潰し走行経路25が作成される。その結果、グリッドベースよる自律走行経路において、走行領域TAの外周境界BOから逸脱しないように自律走行装置100が走行できる自律走行経路が計画される。
なお、内周周回経路23は、単数又は複数でよいし、複数の場合に互いに独立していてもよいし、一部同士が重複していてもよい。複数の内周周回経路23は互いに平行でもよいし、一部又は全部が非平行でもよい。また、内周周回経路23の本数はあらかじめ定まった固定値でもよい。
【0096】
図19及び
図20を用いて、実際のグローバルマップ(環境地図)に形成された走行経路を説明する。
図19は、第1実施形態において走行経路が表された環境地図である。
図20は、従来例において走行経路が表された環境地図である。
図19には、本実施形態において、外周境界BO、外周周回経路21、2本の内周周回経路23、塗り潰し走行経路25が示されている。
図20には、従来技術において、外周周回経路21、及び塗り潰し走行経路25が示されている。
図20において二点鎖線で示す領域Aが塗り潰し走行経路25の方向転換によって自律走行装置100が走行する領域であり、外周周回経路21の外側に逸脱している。
【0097】
2.第2実施形態
第1実施形態では内周走行経路作成及び第2グリッド領域作成の前に第1グリッド領域が作成されていたが、第1グリッド領域の作成(第1実施形態の段落0089の第2段落、
図15のステップS31、
図17)は省略されてもよい。つまり、第1実施形態における第1グリッドは作成されなくても、下記のステップが実行されて第2グリッド領域GA2(グリッド領域の一例、第1実施形態の第2グリッド領域GA2に対応)が形成されればよい。
【0098】
以下、第1実施時形態の
図15のフローチャートからステップS31を削除した制御動作を説明する。
ステップS32では、自律走行装置100の車体サイズと回転半径と回転移動距離及びグリッドのサイズに基づいて、自律走行装置100が方向転換を行う際に外周周回経路21から自律走行装置100の本体Bが逸脱する逸脱幅DWを算出する。具体的には、逸脱幅算出部5533が上記計算を行う。
ステップS33では、逸脱があったか否かが判断される。具体的には、逸脱判定部5534が上記判断を行う。逸脱があればプロセスはステップS34に移行し、逸脱がなければプロセスはステップS34をスキップしてステップS35に移行する。
【0099】
ステップS34では、少なくとも逸脱幅の一部に相当する一又は複数の内周周回経路23が作成される。具体的には、走行経路計画部5535(内周周回経路作成部の一例)が内周周回経路23を作成する。内周周回経路23は、外周周回経路21からグリッド幅ずつ内側に位置する経路(外周周回経路21を縮小した経路)であり、互いに平行になっている。内周周回経路23は、外周周回経路21を基にした自由経路計画によって作成される。
【0100】
ステップS35では、第2グリッド領域GA2が作成される。第2グリッド領域GA2は、塗り潰し走行経路を計画する対象エリアである。具体的には、走行領域内経路作成部553のグリッド作成部5531(グリッド作成部の一例)が、例えば、グリッドレイヤーGLのグリッドの一部を無効として、残りを有効とすることで第2グリッド領域GA2を作成する。
さらに具体的には、第2グリッド領域GA2は、最も内側の内周周回経路を用いて作成される。つまり、最も外側のグリッドGR内に最も内側の内周周回経路23が入るように、第2グリッド領域GA2が形成される。なお、変形例として、最も外側のグリッドGRの中心Cよりも内側に最も内側の内周周回経路23が入るように、第2グリッド領域GA2が形成されてもよい。
ステップS36及びステップS37の説明は、第1実施形態と同じであるので、省略される。
【0101】
3.第3実施形態
従来、塗り潰し走行において環境変動が発生した場合、途中で自律走行装置が自己位置を見失い、計画された走行経路に自律走行装置が追従できないことを防止するために走行を停止させていた。なお、環境変動とは、教示時に環境地図に記録された障害物と、自律走行時にセンサで検出された障害物の位置移動(追加、削除を含む)である。
この場合、停止地点の周辺を含む以降の塗り残し箇所について走行範囲の再度教示や経路作成が必要となる。上記技術の問題点として、停止地点以降が塗り残し(例えば、未清掃エリア)になり、自律走行装置にその範囲を塗り潰し走行させたい場合には、再教示が必要になり、環境変動を検出するまでにかかった塗り潰し走行時間(清掃時間)が無駄になる。そこで、なるべく早い時点で環境変動を検出して、ユーザに通知することが望ましい。
【0102】
上記問題を解決するために、本実施形態では、塗り潰し走行の前に環境変動検出用のテスト走行を行うことで、塗り潰し走行の事前に環境変動を検出し、ユーザに通知することを可能にする。したがって、従来とは異なり、環境変動を検出する前に行った自律走行時間を無駄にすることがない。なお、本実施形態は第1実施形態の自律移動経路作成の後だけでなく、前にでも実行可能である。自律移動経路作成の前でも、走行領域が取得された後であればテスト走行経路の計画が可能だからである。
以下、
図21を用いて、環境変動検出制御動作をさらに詳細に説明する。
図21は、第3実施形態のテスト走行経路作成及びテスト走行制御動作を示すフローチャートである。
【0103】
(1)テスト走行経路作成
環境変動検出動作は、自律走行経路を計画した後に、例えば、ユーザが明示的にテスト走行を選択できる指定方法(UIなど)で開始される。なお、外周直接教示方式の場合、教示の開始時から終了時の間の任意の時刻と塗り潰し走行の開始時刻との間が所定時間より長い場合に自動的にテスト走行を行うようにしてもよい。
ステップS41では、環境変動検出用のテスト走行経路41が作成される。具体的には、走行領域内経路作成部553がテスト走行経路41を作成する。
テスト走行経路41は、
図22に示すように、全体エリア43において、外周周回経路45と一致している。この場合、後述するテスト走行時間が短くなる。
図22は、テスト走行経路の模式的平面図である。
【0104】
(2)テスト走行
テスト走行では、下記のステップが実行される。
ステップS42では、自律走行装置100にテスト走行経路を開始させる。具体的には、走行制御部53が上記動作を実行する。
ステップS43では、自律走行装置100がゴールGに到達したか否かが判断される。具体的には、制御統括部55がセンサからの検出情報(例えば、前方検出器5551aにて取得した自律走行装置100の前方に存在する障害物に関する情報と、後方検出器5551bにて取得した自律走行装置100の後方に存在する障害物に関する情報)に基づいて状況判断を行う。ゴールGに到達していなければプロセスはステップS44に移行し、ゴールGに到達していればプロセスはステップS48に移行する。
【0105】
ステップS44では、テスト走行中に環境変動があるか否かが判断される。具体的には、制御統括部55が、センサからの検出情報に基づいて、環境変動判定部として上記判断を行う。環境変動があればプロセスはステップS45に移行し、環境変動がなければプロセスはステップS43に戻る。このように、自律走行装置100がゴールGに到達するまでは、常に環境変動の有無が調べられる。
【0106】
ステップS45では、テスト走行中に検出した環境変動がユーザに通知される。具体的には、通知部(図示せず)が通知を行う。環境変動を検出した場合の通知手段としては,画面表示,音,光,メールなどがある。これにより、ユーザが環境変動に直ちに気付くことができる。
ステップS46では、テスト走行が中止される。具体的には、走行制御部53が上記動作を実行する。
【0107】
ステップS47では、自律走行装置100はスタート地点Sに戻される。具体的には、走行制御部53が上記動作を実行する。これにより、ユーザが再教示をすぐに開始できる。
なお、スタート地点Sに戻るルートは、今まで通ってきた経路を逆転してスタート地点S(付近)に戻るルートでもよいし、最短経路でスタート地点Sに戻るルートでもよい。前者は、環境変動していない経路なので、安全にスタート地点Sに戻れる。後者は、戻る時間が短くなる。
なお、自律走行装置100が戻されるのは、テスト走行のスタート地点に限られず、テスト走行経路上のいずれかの地点でもよい。
その後、プロセスはステップS48に移行する。
ステップS48では、テスト走行が終了する。その後、塗り潰し走行が実施される。
【0108】
なお、変形例としては、スタート地点Sに戻すステップ(ステップS47)の代わりに、その場で停止するステップ又はテスト走行を継続するステップを実行してもよい。
別の変形例としては、環境変動があった場合は、塗り潰し走行を開始しなくてもよい。
さらに別の変形例としては、テスト走行時にも清掃を行ってもよい。
【0109】
なお、塗り潰しエリアが分割された場合は、各エリアでテスト走行を行ってもよい。この場合、最初に変動を検知したときに、環境変動を通知、テスト走行を中止、自律走行装置100をテスト走行のスタート地点に戻す等のいずれか又は全てを行ってもよいし、それらを行わずに最終エリアまでテスト走行を実行してもよい。
また、環境変動が検出されなかったエリアは塗り潰し清掃を行ってもよい。
なお、環境変動が検知された場合には、テスト走行を完了させた後、テスト走行を中止した後、あるいは、テスト走行のスタート位置に戻した後で、あるいは、それらの動作の代りに、自律走行装置100を塗り潰し自律走行の開始位置や終了位置などの走行領域内の地点に移動させてもよい。
また、ユーザが明示的にテスト走行を選択する形態ではなく、塗り潰し自律走行の実施前にテスト走行を自動的に行う形態の場合、環境変動が検出されなかった場合は自動的に塗り潰し走行を開始することが望ましいが、ユーザが念のため塗り潰し走行の開始を判断する形態でもよい。
【0110】
(3)テスト走行経路の変形例
第1の変形例では、
図23に示すように、エリアが2つに分割されている場合に、テスト走行経路41Aは、全体エリア43の外周を一回りする外周周回経路45Aと一致している。
第2の変形例では、
図24に示すように、エリアが2つに分割されている場合に、テスト走行経路41Bは、第1エリア43A及び第2エリア43Bにおいて、外周周回経路45Aの一部と一致しておりかつ少なくとも各エリアの外周経路の一部になっている。
【0111】
第3の変形例では、テスト走行経路41Cは、
図25に示すように、外周周回経路45Aを内側にシフトした単数又は複数の内周周回経路である。この場合、内部の状況をより正確に認識できる。なお、
図25では、エリアが2つに分割されている場合に、各内周周回経路は全体エリアの内周を一回りするように形成されている。
また、エリアが分割されていない場合に、テスト走行経路は、外周周回経路を内側にシフトした単数又は複数の内周周回経路であってもよい。
【0112】
第4の変形例では、テスト走行経路41Dは、
図26に示すように、外周周回経路を内側にシフトした単数又は複数の周回経路である。この場合、内部の状況をより正確に認識できる。なお、
図26では、エリアが2つに分割されている場合に、テスト走行経路41Dは、第1エリア43A及び第2エリア43Bにおいて、外周周回経路45Aの一部と相似している。
第5の変形例では、テスト走行経路41Eは、
図27に示すように、全体エリア43内の中心部を走行する経路である。具体的には、テスト走行経路41Eは、全体エリア43の長手方向に沿って直線状に延びている。この場合、内部の状況をより正確に認識できる。
【0113】
第6の変形例では、
図28に示すように、エリアが2つに分割されている場合に、テスト走行経路41Fは第1エリア43A及び第2エリア43B間で連続して形成されている。
第7の変形例では、
図29に示すように、エリアが2つに分割されている場合に、テスト走行経路41Gは第1エリア43A及び第2エリア43B内に別々に形成されている。
【0114】
4.他の実施形態
以上、本発明の複数の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
自律走行装置は、自律的に清掃作業を実行する清掃機以外の走行装置であってもよい。例えば、自律走行装置は、宣伝用ロボッ卜であってもよい。
【0115】
自律走行装置は、自律的に走行するための走行部(とそれを制御する制御部)のみにて構成されていてもよい。この場合は、例えば、当該自律走行装置と、所望の機能を発揮するためのロボッ卜システムと、を組み合わせて、所望の機能を有するロボッ卜(装置)を構成できる。
【0116】
第1実施形態ではグリッドレイヤーはグローバルマップとは別のレイヤーであったが、両者を一体として管理してもよい。
本実施形態は、自律走行体の機体が「真円であって超信地旋回するもの」以外には適用できる。
【産業上の利用可能性】
【0117】
本発明は、自律走行体の走行経路を計画する自律走行経路計画方法に広く適用できる。
【符号の説明】
【0118】
1 :走行部
3 :清掃部
5 :制御部
7 :走行経路教示部
8 :取付部材
9 :設定部
11 :走行モータ
13 :主輪
15 :補助輪
21 :外周周回経路
23 :内周周回経路
25 :塗り潰し走行経路
31 :洗浄液吐出口
33 :スキージ
33a :吸引口
35 :洗浄用部材
41 :テスト走行経路
51 :清掃制御部
53 :走行制御部
55 :制御統括部
57 :記憶部
71a :ハンドル
71b :ハンドル
73 :筐体
75 :走行制御指令算出部
91 :切替部
92 :手動操作記憶スイッチ
93 :設定操作部
94 :設定変換部
95 :ディスプレイ
96 :清掃条件教示部
97 :清掃制御指令算出部
100 :自律走行装置
111 :エンコーダ
311 :洗浄液供給タンク
313 :洗浄液供給ポンプ
331 :吸引モータ
333 :回収部材
351 :洗浄用部材回転モータ
500 :走行スケジュール
531 :走行切替部
533 :モータ制御部
551 :走行領域取得部
553 :走行領域内経路作成部
555 :SLAM部
557 :走行再現部
5531 :グリッド作成部
5532 :走行順番決定部
5535 :走行経路計画部
5551a :前方検出器
5551b :後方検出器
5553 :地図作成部
5555 :位置推定部
5557 :経過時間決定部
B :本体
C :中心
DW :逸脱幅
F :床面
GR :グリッド
GA1 :第1グリッド領域
GA2 :第2グリッド領域
GL :グリッドレイヤー
GM :グローバルマップ
RA :矩形領域
RA1 :矩形領域
RA2 :矩形領域
RA3 :矩形領域
ST :開始点
TA :走行領域