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