(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-01
(45)【発行日】2023-05-12
(54)【発明の名称】自律走行台車、制御方法、及び、プログラム
(51)【国際特許分類】
G05D 1/02 20200101AFI20230502BHJP
【FI】
G05D1/02 H
(21)【出願番号】P 2021561183
(86)(22)【出願日】2020-09-18
(86)【国際出願番号】 JP2020035470
(87)【国際公開番号】W WO2021106331
(87)【国際公開日】2021-06-03
【審査請求日】2022-04-28
(31)【優先権主張番号】P 2019212495
(32)【優先日】2019-11-25
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006297
【氏名又は名称】村田機械株式会社
(74)【代理人】
【識別番号】110000202
【氏名又は名称】弁理士法人新樹グローバル・アイピー
(72)【発明者】
【氏名】傳田 遊亀
(72)【発明者】
【氏名】下本 英生
【審査官】杉山 悟史
(56)【参考文献】
【文献】国際公開第2011/090093(WO,A1)
【文献】特開昭62-117012(JP,A)
【文献】特許第6260114(JP,B2)
【文献】特許第6136543(JP,B2)
【文献】国際公開第2018/043180(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 ~ 1/12
(57)【特許請求の範囲】
【請求項1】
所定の領域内の指定された経路を自律走行する自律走行台車であって、
走行部を有する本体と、
前記所定の領域の一部でありそれぞれが個別の座標系を有する複数の部分領域のそれぞれに対して生成された部分走行経路
を表す部分走行経路データと、前記部分走行経路を連結する連結経路
を表す連結経路データと、を記憶する記憶部と、
選択された複数の部分走行経路
を表す複数の部分走行経路データと、当該複数の部分走行経路を連結するために選択された連結経路
を表す連結経路データと、を紐付けることで前記自律走行のための自律走行スケジュールを生成する自律走行計画部と、
前記自律走行スケジュールに従って前記走行部を制御することで前記本体を移動させる走行制御部と、
を備え
、
前記部分走行経路データは、前記部分走行経路上に設定された固定の複数の通過点を、当該部分走行経路が生成された部分領域が有する座標系の座標値として表した部分走行スケジュールと、当該部分走行経路が生成された部分領域を表す地図情報と、を含む、
自律走行台車。
【請求項2】
前記記憶部は、前記連結経路と、当該連結経路により連結される前記部分走行経路と、を関連付けて記憶する連結情報を記憶し、
前記自律走行計画部は、前記連結情報に基づいて、前記選択された複数の部分走行経路
データを連結するための前記連結経路
データを選択する、
請求項1に記載の自律走行台車。
【請求項3】
前記連結経路
データは、前記所定の領域のうち前記連結経路の周囲の状態を表す地図情報を含む、請求項1又は2に記載の自律走行台車。
【請求項4】
前記地図情報は、前記連結経路の各通過点の周囲を表す復元地図情報を含む、請求項3に記載の自律走行台車。
【請求項5】
前記選択された複数の部分走行経路のうち少なくとも一部について対応する前記連結経路が存在しないときに、選択された部分走行経路では連続した自律走行経路を作成できないことを知らせるエラーを通知する通知部をさらに備える、請求項1~4のいずれかに記載の自律走行台車。
【請求項6】
走行部を有する本体を備え、所定の領域内の指定された経路を自律走行する自律走行台車の制御方法であって、
前記所定の領域の一部でありそれぞれが個別の座標系を有する複数の部分領域のそれぞれに
対する部分走行経路
を表す部分走行経路データを生成するステップと、
前記部分走行経路を連結する連結経路
を表す連結経路データを生成するステップと、
選択された複数の部分走行経路
を表す複数の部分走行経路データと、当該複数の部分走行経路を連結するために選択された連結経路
を表す連結経路データと、を紐付けることで前記自律走行のための自律走行スケジュールを生成するステップと、
前記自律走行スケジュールに従って前記走行部を制御することで前記本体を移動させるステップと、
を備え
、
前記部分走行経路データは、前記部分走行経路上に設定された固定の複数の通過点を、当該部分走行経路が生成された部分領域が有する座標系の座標値として表した部分走行スケジュールと、当該部分走行経路が生成された部分領域を表す地図情報と、を含む、
制御方法。
【請求項7】
請求項6に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、指定された自律走行経路を自律走行する自律走行台車、自律走行台車の制御方法、及び、当該制御方法を実行するプログラムに関する。
【背景技術】
【0002】
従来、所定の領域内の指定された自律走行経路を自律走行する自律走行台車が知られている。例えば、所定の領域内においてユーザにより教示された走行経路を自律走行経路として記録し、記録された自律走行経路を自律的に走行する自律走行台車が知られている(例えば、特許文献1を参照)。
その他、所定の領域内の特定の領域を「塗り潰す」自律走行経路を生成し、その自律走行経路を忠実に再現する自律走行台車が知られている(例えば、特許文献2を参照)。
【0003】
上記の自律走行台車は、上記所定の領域を表した地図情報(グローバルマップと呼ばれる)と、測距センサを用いて得られた自律走行台車の周囲の地図情報(ローカルマップと呼ばれる)とを比較して所定の領域内における自己位置を推定し、推定された自己位置が自律走行経路における目標通過点に一致するように走行することで、自律走行を実現する。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第6136543号
【文献】国際公開第2018/043180号
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の自律走行台車では、グローバルマップは、一般的に、ユーザの操作により自律走行台車を走行させつつ自己位置推定とローカルマップの取得を繰り返し実行し、推定された各自己位置に対応するローカルマップを配置することで生成される。
この手法により取得したグローバルマップは、グローバルマップで表したい領域が大きくなると、当該領域全体を忠実に表さなくなることがある。なぜなら、この手法では、自律走行台車の走行に従い推定された自己位置と実際の位置とのずれが大きくなるため、ローカルマップを正しい位置に配置できなくなるからである。
【0006】
特許文献1では、教示走行時の各通過点の通過時刻(あるいは自己位置)と当該各通過点で取得した地図情報(ローカルマップ)とを関連付けて記憶しておき、自律走行時にこの記憶した地図情報を使ってグローバルマップを復元することにより、教示走行時の自己位置推定の誤差の累積により不正確なグローバルマップが生成されるとの問題を解決できる。
【0007】
このグローバルマップの生成方法を用いる自律走行台車において、広い領域に含まれる小領域毎に走行経路を生成し、それらを連結して広い領域に渡る自律走行経路を生成することが考えられている。この自律走行台車において小領域毎に走行経路を生成すると、その走行経路はそれぞれが異なる座標上(異なるグローバルマップ上)に生成され、走行経路同士の位置関係の情報が失われる。この位置関係の情報が失われると、走行経路に含まれる座標点同士を連結することができず、広い領域に渡る自律走行経路を生成できなくなる。従って、座標点同士を連結する方法以外で走行経路同士を連結する技術が必要となる。
【0008】
本発明の目的は、異なる座標上に生成された走行経路を連結して自律走行経路を作成することにある。
【課題を解決するための手段】
【0009】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一見地に係る自律走行台車は、所定の領域内の指定された自律走行経路を自律走行する台車である。自律走行台車は、本体と、記憶部と、自律走行計画部と、走行制御部と、を備える。本体は、走行部を有する。記憶部は、部分走行経路と連結経路とを記憶する。部分走行経路は、複数の部分領域のそれぞれに対して生成された走行経路である。部分領域は、所定の領域の一部であり、それぞれが個別の座標系を有する。連結経路は、部分走行経路を連結する走行経路である。
自律走行計画部は、選択された複数の部分走行経路と、当該複数の部分走行経路を連結するために選択された連結経路と、を紐付けることで自律走行のための自律走行スケジュールを生成する。走行制御部は、自律走行スケジュールに従って走行部を制御することで、本体を移動させる。
【0010】
上記の自律走行台車では、自律走行計画部が、それぞれが異なる座標上に生成された複数の部分走行経路と連結経路とを紐付けることにより、自律走行スケジュールを生成している。つまり、自律走行計画部は、2つの部分走行経路に含まれる座標点同士を接続する経路を連結経路として生成するのではなく、2つの部分走行経路がどの連結経路により連結されるかを示す情報として、自律走行スケジュールを生成する。
これにより、自律走行計画部は、それぞれが異なる座標上で生成された複数の部分走行経路を連結して、広い領域を自律走行可能な自律走行経路を作成できる。
【0011】
記憶部は、連結情報を記憶してもよい。連結情報は、連結経路と、当該連結経路により連結される部分走行経路と、を関連付けて記憶した情報である。この場合、自律走行計画部は、連結情報に基づいて、選択された複数の部分走行経路を連結するための連結経路を選択する。
これにより、自律走行計画部は、部分走行経路の任意の組み合わせに対して適切な連結経路を容易に見つけることができる。
【0012】
連結経路は、地図情報を含んでいてもよい。地図情報は、所定の領域のうち連結経路の周囲の状態を表す。これにより、自律走行台車は、この地図情報を用いて自己位置を推定しつつ、連結経路に沿って走行できる。
【0013】
地図情報は、連結経路の各通過点の周囲を表す復元地図情報を含んでいてもよい。これにより、自己位置推定に用いる地図情報を精度よく生成できる。
【0014】
自律走行台車は通知部をさらに備えてもよい。通知部は、選択された複数の部分走行経路のうち少なくとも一部について対応する連結経路が存在しないときに、選択された部分走行経路では連続した自律走行経路を作成できないことを知らせるエラーを通知する。
【0015】
本発明の他の見地に係る制御方法は、走行部を有する本体を備え、所定の領域内の指定された自律走行経路を自律走行する自律走行台車の制御方法である。制御方法は、以下のステップを備える。
◎複数の部分領域のそれぞれに対して部分走行経路を生成するステップ。部分領域は、所定の領域の一部であり、それぞれが個別の座標系を有する。
◎部分走行経路を連結する連結経路を生成するステップ。
◎選択された複数の部分走行経路と、当該複数の部分走行経路を連結するために選択された連結経路と、を紐付けることで自律走行のための自律走行スケジュールを生成するステップ。
◎自律走行スケジュールに従って走行部を制御することで本体を移動させるステップ。
【0016】
上記の自律走行台車の制御方法では、それぞれが異なる座標上に生成された複数の部分走行経路と連結経路とを紐付けることにより、自律走行スケジュールを生成している。つまり、2つの部分走行経路に含まれる座標点同士を接続する経路を連結経路として生成するのではなく、2つの部分走行経路がどの連結経路により連結されるかを示す情報として、自律走行スケジュールが生成される。
これにより、それぞれが異なる座標上で生成された複数の部分走行経路を連結して、広い領域を自律走行可能な自律走行経路を作成できる。
【0017】
本発明のさらに他の見地に係るプログラムは、上記の制御方法をコンピュータに実行させるプログラムである。
【発明の効果】
【0018】
それぞれが異なる座標上で生成された複数の部分走行経路を連結して、広い領域を自律走行可能な自律走行経路を作成できる。
【図面の簡単な説明】
【0019】
【
図4】自律走行台車の概略動作を示すフローチャート。
【
図5】部分走行経路及び連結経路の教示の一例を模式的に示す図。
【
図6】第1実施形態に係る部分走行経路及び連結経路の生成動作を示すフローチャート。
【
図8】コピー走行のための部分走行経路の生成動作を示すフローチャート。
【
図9A】第1教示ユーザインタフェースの一例を示す図。
【
図9B】第2教示ユーザインタフェースの一例を示す図。
【
図9C】第3教示ユーザインタフェースの一例を示す図。
【
図9D】第4教示ユーザインタフェースの一例を示す図。
【
図9F】第5教示ユーザインタフェースの一例を示す図。
【
図9G】第6教示ユーザインタフェースの一例を示す図である。
【
図9H】編集ユーザインタフェースの一例を示す図である。
【
図10】コピー走行のための部分走行経路データのデータ構造の一例を示す図。
【
図11】塗り潰し走行のための部分走行経路の生成動作を示すフローチャート。
【
図12】部分領域を多数のセルの集合体に変換した場合の一例を示す図。
【
図13】部分領域の各セルに付与したスコアの一例を示す図。
【
図14】塗り潰し走行のための部分走行経路の一例を示す図。
【
図15】塗り潰し走行のための部分走行経路データのデータ構造の一例を示す図。
【
図16】自律走行経路の作成動作を示すフローチャート。
【
図17】選択ユーザインタフェースの一例を示す図。
【
図19】選択した部分走行経路を識別する表示をした選択ユーザインタフェースの一例を示す図。
【
図20】選択した部分走行経路のみを表示した選択ユーザインタフェースの一例を示す図。
【
図21A】部分走行経路の選択時における表示の一例を示す図。
【
図21B】部分走行経路の選択直後における表示の一例を示す図。
【
図21C】部分走行経路の図が選択順に並び替えられる様子をアニメーション表示する一例を示す図。
【
図21D】部分走行経路が選択順に表示し直された後の表示の一例を示す図。
【
図23A】第1自律走行ユーザインタフェースの一例を示す図。
【
図23B】第2自律走行ユーザインタフェースの一例を示す図。
【
図24】第2実施形態に係る連結経路の生成方法を示すフローチャート。
【
図25】第2実施形態において生成される連結経路データのデータ構造の一例を示す図。
【
図26】第3実施形態に係る部分走行経路及び連結経路の生成方法を示すフローチャート。
【発明を実施するための形態】
【0020】
1.第1実施形態
(1)自律走行台車の全体構成
以下、第1実施形態に係る自律走行台車100を説明する。まず、
図1を用いて、自律走行台車100の全体構成を説明する。
図1は、自律走行台車の全体構成を示す図である。本実施形態に係る自律走行台車100は、所定の領域内(例えば、ビルなどの屋内)の指定された走行経路(自律走行経路)を自律的に走行しつつ、自律走行経路の各通過点にて設定された清掃条件を自律的に再現する台車である。具体的には、自律走行台車100は、本体Bと、走行部1と、清掃部3と、制御部5と、を主に備える。
【0021】
本体Bは、自律走行台車100の本体を構成する。本体Bの進行方向前方には前方検出器21aが設けられ、進行方向後方には後方検出器21bが設けられる。前方検出器21a及び後方検出器21bは、自律走行台車100(本体B)の周囲に存在する障害物(壁など)の情報を取得する装置である。
前方検出器21a及び後方検出器21bは、例えば、その検出範囲が180°以上のレーザーレンジファインダ(Laser Range Finder、LRF)である。レーザーレンジファインダを前方検出器21a及び後方検出器21bとして用いる場合、走行部1と障害物との距離と、当該障害物が存在する方向とが、障害物に関する情報として取得される。
【0022】
前方検出器21a及び後方検出器21bにて取得される情報は、所定の平面上における障害物の存在位置を表す二次元的な情報であってもよいし、さらに高さ方向における障害物の存在位置を表す情報を含めて三次元的な情報であってもよい。
また、前方検出器21aの検出範囲(検出角度及び/又は検出距離)を、後方検出器21bの検出範囲よりも広くしてもよい。これにより、自律走行台車100の前方方向のより広範囲に存在する障害物に関する情報を取得できる。さらに、前方検出器21a及び後方検出器21bは、TOF(Time Of Flight)カメラなどであってもよい。
【0023】
走行部1は、本体Bに設けられ、自律走行台車100を走行させる装置である。走行部1は、本体Bの底部の左右端にそれぞれ、走行モータ11と、走行モータ11の出力回転軸に取り付けられ、走行モータ11の回転に従って回転する主輪13と、を有する。
【0024】
他の実施形態において、走行部1は、例えば、自律走行台車100をより安定に走行させるために補助輪15を有していてもよい。当該補助輪15は、本体Bの底部の左右端に主輪13よりも後方に、回転可能に取り付けられてもよいし、自律走行台車100の重心位置などを考慮して、主輪13よりも前方に取り付けられてもよい。
【0025】
清掃部3は、本体Bの底部に設けられ、指定された清掃条件に従って床面Fを清掃する装置である。本実施形態に係る清掃部3は、洗浄液を用いて床面Fを磨くことで、清掃作業を達成する。清掃部3は、具体的には、洗浄液吐出口31と、スキージ33と、洗浄用部材35と、を有する。
洗浄液吐出口31は、洗浄液供給タンク31aから洗浄液供給ポンプ31bにより供給された洗浄液(例えば、水)を、本体Bの前方側の床面Fに吐出する。スキージ33は、本体Bの底面後方に設けられ、床面F上に残留する洗浄液を収集する。洗浄用部材35は、本体Bの底面の前方側に設けられ、洗浄用部材回転モータ35aの回転にて洗浄液が存在する床面F上にて回転することにより、床面Fを洗浄する。
【0026】
他の実施形態において、スキージ33には回収部材33bに繋がる吸引口O2が設けられていてもよい。吸引モータ33aにより回収部材33bの内部が負圧状態にされると、スキージ33により収集された洗浄液やゴミなどが、当該吸引口O2から吸引され、回収部材33bへと送られる。
【0027】
自律走行台車100は、制御部5を有する。制御部5は、CPU、記憶装置(RAM、ROM、ハードディスクドライブ、SSDなど)、各種インターフェースなどを備えたコンピュータシステムである。制御部5は、自律走行台車100に関する各種制御を行う。制御部5の構成については後ほど詳しく説明する。
【0028】
本実施形態の自律走行台車100は、ユーザの操作により教示された走行を自律的に再現する機能と、ユーザの操作により指定された特定の領域内を「塗り潰す」自律走行をする機能と、を有する。以後、ユーザの操作により教示された走行を再現する機能を「コピー走行機能」と呼び、指定された領域内を「塗り潰す」自律走行をする機能を「塗り潰し走行機能」と呼ぶ。
【0029】
上記機能を実現するため、自律走行台車100は、走行経路教示部7を備えている。走行経路教示部7は、ユーザによる走行部1の移動操作を受け付ける装置である。走行経路教示部7は、取付部材8を介して、本体Bの上方後側に取り付けられている。走行経路教示部7は、例えば、回動可能な一対のハンドルを有する操作装置である。この走行経路教示部7のステアリングハンドル又はハンドルバーを用いて、一対の主輪13のそれぞれの回転量が調節され、自律走行台車100の走行方向の舵取りが可能になる。
【0030】
他の実施形態として、走行経路教示部7は、例えば、ユーザが、自律走行台車100を遠隔操作するためのジョイスティックなどを備えたリモートコントローラであってもよい。さらに、自律走行台車100は、上記の本体Bに取り付けられた走行経路教示部7と、リモートコントローラとの両方により操作可能となっていてもよい。
【0031】
また、自律走行台車100は、設定部9を備えている。設定部9は、自律走行台車100に関する各種設定を行う操作盤の機能を有する。設定部9は、例えば、ディスプレイを備えるタッチパネルである。
後述するように、本実施形態の自律走行台車100では、記憶部57(後述)に記憶された部分走行経路のうち選択された部分走行経路と、それらを連結する連結経路と、を用いて、自律走行台車100に自律走行させる走行経路(自律走行経路)を作成する。設定部9は、自律走行経路の作成に用いる部分走行経路を選択する機能を有するので、ユーザは、設定部9を用いて、どの部分走行経路をどの順序で連結して自律走行経路を作成するかを設定できる。
【0032】
また、設定部9は、清掃部3の制御量を設定できる機能を有する。具体的には、ユーザは、設定部9を用いて、洗浄液吐出口31からの洗浄液の吐出量、洗浄用部材回転モータ35aの回転数、吸引口O2による洗浄液の吸引力を清掃条件として設定できる。
【0033】
なお、設定部9は、本体Bにおいて走行経路教示部7の近傍に設けられているので、走行経路教示部7を操作しつつ、設定部9を操作できる。つまり、ユーザは、自律走行台車100の走行中に床面Fの清掃を実行できる。
また、上記の走行経路教示部7と同様に、設定部9は、本体Bに取り付けられていなくてもよい。設定部9は、例えば、ポータブル端末などの無線通信可能なコンソールを含む。さらに、上述した走行部1と清掃部3とを同時に操作しやすくするために、走行経路教示部7と設定部9とを一体としてもよい。
【0034】
(2)制御部の構成
(2-1)制御部の全体構成
以下、
図1及び
図2を用いて、制御部5の全体構成を説明する。
図2は、制御部の全体構成を示す図である。例えば、制御部5の各機能ブロックの全部又は一部は、コンピュータシステムのメモリ部及び/又は記憶装置に記憶されているプログラムにより実現されてもよいし、SoC(System on Chip)などのカスタムICとして実現されてもよい。
【0035】
制御部5は、1つのコンピュータシステムにより構成されていてもよいし、複数のコンピュータシステムにより構成されていてもよい。複数のコンピュータシステムにより構成される制御部5においては、例えば、制御部5の複数の機能ブロックが、複数のコンピュータシステムに任意の割合で振り分けて実行される。
【0036】
制御部5は、走行制御部51と、清掃制御部53と、制御統括部55と、記憶部57と、を有する。
走行制御部51は、走行モータ11を制御する。具体的には、走行制御部51は、走行経路教示部7によるユーザの操作に基づいて走行モータ11を操作するか、又は、制御統括部55からの再現走行制御指令により走行モータ11を操作する。走行制御部51が、走行経路教示部7にて行われた操作により走行モータ11を制御するモードを「手動操作モード」と呼び、再現走行制御指令により走行モータ11を制御するモードを「自律走行モード」と呼ぶ。手動操作モードには、自律走行させたい経路を教示する「教示走行モード」と、経路を教示させない「単純手動操作モード」と、が存在する。単純手動操作モードは、例えば、再現走行の開始位置まで自律走行台車100を移動させる際に使用される。
これらのモードは、外部(例えば、走行経路教示部7又は設定部9)からの指令に基づいて、走行制御部51の内部で切り替え可能となっている。
【0037】
走行制御部51は、走行経路教示部7におけるステアリングハンドル又はハンドルバーの操作量、又は、再現走行制御指令に基づいて、走行モータ11の目標回転速度を算出する。走行制御部51は、走行モータ11の実際の回転速度と目標回転速度との差分に基づいた駆動電力を走行モータ11に出力することで、走行モータ11を目標回転速度にて回転させる制御を行う。なお、走行モータ11の実際の回転速度は、走行モータ11の出力回転軸に取り付けられたエンコーダ17からのパルス信号から算出できる。
上記の制御は、例えば、PI(Proportional Integral)制御理論や、PID(Proportional Integral Differential)制御理論などを用いて実行できる。
【0038】
本実施形態においては、本体Bの底部の左右端のそれぞれに、走行モータ11及び主輪13が設けられている。このような場合、走行制御部51は、左右2つの走行モータ11のそれぞれの回転速度及び回転方向を独立に制御して、自律走行台車100の進行方向を決定する。
【0039】
自律走行台車100が床面を清掃するために、ユーザによる清掃の操作を必要とする場合には、清掃制御部53は、設定部9から受信した教示清掃条件に基づいて、洗浄用部材回転モータ35aと、洗浄液供給ポンプ31bと、吸引モータ33aに対して、回転速度や出力などを制御する信号を出力する。
その一方で、ユーザによる清掃の操作が不要な自律走行モードでは、清掃制御部53は、自律走行モードにおける清掃条件の設定値を制御統括部55から受け取り、当該清掃条件の設定値に基づいて、清掃部3を制御して、自律走行台車100は床面を自律的に清掃する。
【0040】
自律走行台車100の制御を統括する制御統括部55は、前方検出器21a、後方検出器21b、及び/又はエンコーダ17から取得したデータに基づいて、自律走行台車100が床面Fのどの位置を移動しているかを推定して、自己位置示す情報を生成する。
【0041】
また、制御統括部55は、自律走行台車100に自律走行させるための自律走行経路を作成する。詳細は後述するが、制御統括部55は、複数の部分走行経路と、複数の部分走行経路を連結する連結経路と、を紐付けて、自律走行スケジュール500を生成する。
部分走行経路は、所定の領域Aの一部である部分領域RA内に生成される。部分走行経路には、上記のコピー走行を行うための部分走行経路と、塗り潰し走行を行うための部分走行経路と、が存在する。これらの部分走行経路の生成方法については、後ほど詳しく説明する。
【0042】
さらに、制御統括部55は、自律走行モードの実行時においては、自律走行スケジュール500に記憶されたデータに基づいて再現走行制御指令を算出し、走行制御部51に出力する。また、自律走行スケジュール500に記憶された清掃条件に基づいて、自律走行モードにおける清掃条件の設定値を算出し、清掃制御部53に出力する。
【0043】
記憶部57は、制御部5を構成するコンピュータシステムの記憶装置の記憶領域の一部又は全部であり、自律走行台車100に関する各種情報を記憶する。具体的には、記憶部57は、自律走行台車100に関する各種設定、制御統括部55にて生成した走行経路に関するデータなどを記憶する。
記憶部57は、上記の自律走行スケジュール500と、自律走行スケジュール500を構成する部分走行経路に関するデータ(部分走行経路データ501)と、部分走行経路を連結する連結経路に関するデータ(連結経路データ502)と、部分走行経路と連結経路との関係を表す連結情報503と、を走行経路に関するデータとして記憶する。
【0044】
他の実施形態において、制御部5は、記憶部57に記憶されたデータを他の記憶媒体に記憶するためのデータ書き込み装置(図示せず)を有していてもよい。また、制御部5は、例えば、USBポートなどの、データ書き込み装置を接続可能な接続端子を有していてもよい。これにより、制御部5は、記憶部57に記憶されたデータを他の記憶媒体に記憶するか、又は、他の記憶媒体に記憶したデータを記憶部57に記憶することができる。例えば、外部のコンピュータにより生成した部分走行経路データ501等を、記憶部57に記憶できる。
【0045】
(2-2)制御統括部の構成
以下、
図3を用いて、制御統括部55の具体的な構成を説明する。
図3は、制御統括部の構成を示す図である。制御統括部55は、主に、自己位置を推定する機能、各種走行経路を生成する機能、及び、自律走行スケジュール500に関する情報を提供する機能を有する。具体的には、制御統括部55は、自己位置推定部55aと、部分走行経路生成部55bと、自律走行計画部55cと、走行再現部55dと、を有する。
【0046】
自己位置推定部55aは、自律走行台車100の周辺に存在する障害物の位置を表す地図情報を生成するとともに、当該地図情報を用いて自律走行台車100の自己位置を推定する。
具体的には、自己位置推定部55aは、前方検出器21aにて取得した自律走行台車100の前方に存在する障害物に関する情報と、後方検出器21bにて取得した自律走行台車100の後方に存在する障害物に関する情報とを用い、必要に応じて座標変換を行って地図情報を生成する。このようにして生成される地図情報は、現在の自己位置の周囲を表す地図情報であることから「ローカルマップ」と呼ばれる。
【0047】
また、自己位置推定部55aは、エンコーダ17にて取得した走行モータ11の回転量、及び、作成したローカルマップと自律走行台車100が走行している領域を表す地図情報(グローバルマップ、環境地図と呼ばれる)とのマップマッチング結果に基づいて、自律走行台車100の自己位置を推定する。
【0048】
部分走行経路生成部55bは、部分走行経路データ501及び連結経路データ502を生成する。上記の「コピー走行機能」を実現する部分走行経路データ501を生成する場合、部分走行経路生成部55bは、ユーザの操作による自律走行台車100の走行(及び清掃)を部分走行経路データ501として記録する。
一方、上記の「塗り潰し走行機能」を実現する部分走行経路データ501を生成する場合、部分走行経路生成部55bは、ユーザにより指定された特定の領域(部分領域RA)内を塗り潰す走行経路を所定のアルゴリズムを用いて生成し、部分走行経路データ501として記録する。
【0049】
自律走行計画部55cは、自律走行台車100に自律走行させるための自律走行経路を作成する。具体的には、自律走行計画部55cは、設定部9を用いて選択された部分走行経路データ501と、選択された部分走行経路を連結するための連結経路データ502と、を用いて、自律走行スケジュール500を生成する。
より具体的には、自律走行計画部55cは、選択された部分走行経路データ501と、それらを連結するための連結経路データ502と、を紐付けて、自律走行スケジュール500を生成する。自律走行スケジュール500の具体的な生成方法は、後ほど詳しく説明する。
【0050】
自律走行モードでは、走行再現部55dは、自律走行スケジュール500に記憶された情報と、自己位置推定部55aにて推定された自律走行台車100の自己位置とに基づいて、自律走行台車100が自律走行するための制御指令(再現走行制御指令と呼ぶ)を算出し、この再現走行制御指令を走行制御部51に出力する。
また、走行再現部55dは、自律走行スケジュール500、自律走行スケジュール500に含まれる部分走行経路データ501、または連結経路データ502の清掃条件(もし記録されているなら)、を清掃制御部53に出力する。
【0051】
(3)自律走行台車の動作
(3-1)概略動作
以下、
図4を用いて、制御部5(制御統括部55)が、自律走行スケジュール500を生成し、当該自律走行スケジュール500に従って自律走行台車100を自律走行させるまでの制御動作の概略を説明する。
図4は、自律走行台車100の概略動作を示すフローチャートである。
まず、ステップS1において、自律走行台車100の動作モードを手動操作モードのうち教示走行モードに切り替えた後にユーザが自律走行台車100を操作し、走行させると、部分走行経路生成部55bは、部分走行経路、及び、連結経路を生成し、記憶部57に記憶する。また、部分走行経路生成部55bは、各連結経路と、当該連結経路で連結される部分走行経路を関連付けて連結情報503に記憶する。
【0052】
次に、動作モードを自律走行モードに切り替えた後、ステップS2で、自律走行計画部55cは、自律走行経路を作成する。具体的には、自律走行計画部55cは、設定部9における部分走行経路の選択を受信し、記憶部57に記憶された部分走行経路データ501のうち、選択された部分走行経路の部分走行経路データ501と、当該部分走行経路を連結する連結経路の連結経路データ502と、を紐付けて、自律走行スケジュール500を生成する。
【0053】
その後、ステップS3で、走行再現部55dは、ステップS2で生成した自律走行スケジュール500に従って再現走行制御指令を生成し、走行制御部51に出力する。また、自律走行スケジュール500に清掃条件が含まれる場合には、走行再現部55dは、自律走行スケジュール500に示されたタイミングにて、対応する清掃条件を清掃制御部53に出力する。
【0054】
(3-2)部分走行経路及び連結経路の生成動作
以下、
図5及び
図6を用いて、上記のステップS1において実行される、部分走行経路及び連結経路の生成動作を説明する。
図5は、部分走行経路及び連結経路の教示の一例を模式的に示す図である。
図6は、第1実施形態に係る部分走行経路及び連結経路の生成動作を示すフローチャートである。以下では、
図5に示すように、所定の領域A内に4つの部分走行経路PR1~PR4と4つの連結経路CR(1,2)、CR(2,3)、CR(3,4)、CR(4,1)を教示する例について説明する。
図5において、部分走行経路PR1は部分領域RA1に生成された経路である。部分領域RA1には障害物が存在するのでコピー走行が適している。そのため、部分走行経路PR1はコピー走行のための部分走行経路として生成される。経路PR2は比較的大きな部分領域RA2の境界線であり、塗り潰し走行が適している。そのため、部分領域RA2内に塗り潰し走行のための部分走行経路が生成される。
【0055】
部分走行経路PR3は部分領域RA3に生成された経路である。部分領域RA3は小さな領域であるので、部分走行経路PR3はコピー走行のための部分走行経路として生成される。部分走行経路PR4は部分領域RA4に生成された経路である。部分領域RA4は小さな領域であるので、部分走行経路PR4はコピー走行のための部分走行経路として生成される。
【0056】
図5に示すように、部分走行経路PR1の終点は、連結経路CR(1,2)により経路PR2の始点に連結され、経路PR2の終点は、連結経路CR(2,3)により部分走行経路PR3の始点に連結される。部分走行経路PR3の終点は、連結経路CR(3,4)により部分走行経路PR4の始点に連結され、部分走行経路PR4の終点は、連結経路CR(4,1)により部分走行経路PR1の始点に連結される。
また、部分走行経路及び連結経路が、部分走行経路PR1、連結経路CR(1,2)、経路PR2、連結経路CR(2,3)、部分走行経路PR3、連結経路CR(3,4)、部分走行経路PR4、連結経路CR(4,1)の順で教示されるとする。
【0057】
図6を用いて、連結経路の生成動作を説明する。まず、ステップS11で、部分走行経路生成部55bは、部分走行経路PR1の部分走行経路データ501を生成し、記憶部57に記憶する。部分走行経路の生成及び記憶を実行する際に、ユーザは、設定部9などを用いて、制御部5(制御統括部55)に対して現在どの部分走行経路を生成しているかを通知する。
【0058】
自律走行台車100が現在生成中の部分走行経路PR1の終点に到達すると、ステップS12で、部分走行経路生成部55bは、生成を終えた部分走行経路PR1の終点を始点とする連結経路CR(1,2)の連結経路データ502の生成と記憶を開始する。現在生成中の部分走行経路PR1の終点に到達したことは、例えば、ユーザが設定部9などを用いて制御部5(制御統括部55)に対して通知する。その他、ユーザが設定部9などを用いて、連結経路CR(1,2)の連結経路データ502の生成と記憶を開始することを明示的に通知してもよい。
【0059】
なお、上記のステップS11にて生成した部分走行経路に対して連結経路を生成しない場合、すなわち、当該部分走行経路の終点で教示を終了する場合には、部分走行経路生成部55bは、以下のステップS12~ステップS14を実行することなく、部分走行経路及び連結経路の教示を終了する。
【0060】
部分走行経路生成部55bは、後述するコピー走行のための部分走行経路の生成動作と同様にして、ユーザの操作に従い連結経路データ502を、生成し記憶部57に記憶する。
自律走行台車100が連結経路CR(1,2)の終点、すなわち、次に生成する経路PR2の始点に到達すると、ユーザは、設定部9などを用いて、制御部5(制御統括部55)に対して次にどの部分走行経路(経路PR2)を生成するかを通知する。これにより、連結経路CR(1,2)の生成が終了する。その他、ユーザが設定部9などを用いて、連結経路CR(1,2)の連結経路データ502の生成と記憶を終了することを明示的に通知し、その後に、次にどの部分走行経路(経路PR2)を生成するかを明示的に通知してもよい。
【0061】
ステップS13では、部分走行経路生成部55bは、ステップ12で生成を終了した連結経路CR(1,2)に関する第1の連結情報と、ステップS11で通知のあった連結経路CR(1,2)の生成前に生成が終了した部分走行経路(部分走行経路PR1)に関する第2の連結情報と、連結経路CR(1,2)の生成終了時に通知した次に生成しようとしている部分走行経路(経路PR2)に関する第3の連結情報と、を関連付けて連結情報503を生成する。
すなわち、連結情報503には、生成を終了した連結経路CR(1,2)に関する第1の連結情報と、当該連結経路への連結元である部分走行経路に関する第2連結情報と、当該連結経路の連結先の部分走行経路に関する第3の連結情報と、が関連付けられて記憶される。
【0062】
例えば、部分走行経路生成部55bは、生成が終了した連結経路に関する連結情報である連結経路データ502を識別する情報(例えば、ファイル名、識別番号など)と、連結元の部分走行経路の部分走行経路データ501を識別する情報(例えば、ファイル名、識別番号など)と、連結先の部分走行経路の部分走行経路データ501を識別する情報(例えば、ファイル名、識別番号など)と、を関連付けて連結情報503を生成する。
【0063】
連結経路CR(1,2)の生成までの段階における連結情報503を生成後、経路PR2及び部分走行経路PR3、PR4を生成し、これらを連結する連結経路CR(2,3)、CR(3,4)、CR(4,1)の生成が完了するまで(ステップS14で「No」)、部分走行経路生成部55bは、上記のステップS11~S13を繰り返し実行する。
【0064】
図5に示すような4つの部分走行経路PR1~PR4と、これらを連結する連結経路CR(1,2)、CR(2,3)、CR(3,4)、CR(4,1)とを生成後に最終的に生成される連結情報503は、
図7に示すようなデータ構造を有する。
図7は、連結情報のデータ構造の一例を示す図である。
図7においては、例えば、「連結経路#1」との識別情報を有する連結経路CR(1,2)が、連結元を「部分走行経路#1」(部分走行経路PR1)とし、連結先を「経路#2」(経路PR2)とすることが示されている。従って、この連結情報503からは、連結経路CR(1,2)の始点と部分走行経路PR1の終点が一致し、連結経路CR(1,2)の終点と経路PR2の始点が一致することを認識できる。
【0065】
また、「連結経路#2」との識別情報を有する連結経路CR(2,3)が、連結元を「経路#2」(経路PR2)とし、連結先を「部分走行経路#3」(部分走行経路PR3)とすることが示されている。すなわち、連結経路CR(2,3)の始点と経路PR2の終点が一致し、連結経路CR(2,3)の終点と部分走行経路PR3の始点が一致することを認識できる。
「連結経路#3」との識別情報を有する連結経路CR(3,4)が、連結元を「部分走行経路#3」(部分走行経路PR3)とし、連結先を「部分走行経路#4」(部分走行経路PR4)とすることが示されている。すなわち、連結経路CR(3,4)の始点と部分走行経路PR3の終点が一致し、連結経路CR(3,4)の終点と部分走行経路PR4の始点が一致することを認識できる。
【0066】
さらに、「連結経路#4」との識別情報を有する連結経路CR(4,1)が、連結元を「部分走行経路#4」(部分走行経路PR4)とし、連結先を「部分走行経路#1」(部分走行経路PR1)とすることが示されている。すなわち、連結経路CR(4,1)の始点と部分走行経路PR4の終点が一致し、連結経路CR(4,1)の終点と部分走行経路PR1の始点が一致することを認識できる。
【0067】
(3-3)コピー走行のための部分走行経路の生成動作
以下、上記のステップS11において実行される部分走行経路の生成について詳細に説明する。本実施形態において、部分走行経路生成部55bは、部分走行経路として「コピー走行機能」を実現するための経路、及び、「塗り潰し走行機能」を実現するための経路を生成可能である。
まずは、
図8を用いて、コピー走行機能を実現するための経路(コピー走行のための部分走行経路)の生成動作を説明する。
図8は、コピー走行のための部分走行経路の生成動作を示すフローチャートである。コピー走行のための部分走行経路の生成は、走行経路教示部7の操作により自律走行台車100が走行した経路を、複数の通過点の点列として取得することで実現される。なお、本実施形態においては、連結経路も、以下に説明するコピー走行のための部分走行経路の生成動作と同様にして生成される。
【0068】
まず、部分走行経路生成部55bは、
図9Aに示すようなユーザインタフェース(第1教示ユーザインタフェースGUI1と呼ぶ)を設定部9のディスプレイに表示する。
図9Aは、第1教示ユーザインタフェースの一例を示す図である。
第1教示ユーザインタフェースGUI1は、現在までに生成、記憶された部分走行経路をリスト表示するユーザインタフェースであり、記憶された部分走行経路の名称(部分走行経路名と呼ぶ)をリスト表示する経路表示部D1を有している。経路表示部D1にリスト表示された項目のうち、空欄になった項目には新たな部分走行経路を作成、記憶可能であり、経路名が記載された項目にはすでに部分走行経路が記憶されている。
【0069】
経路表示部D1の空欄となった項目を選択(例えば、逆C字形状の表示部分に空欄の項目を合わせることにより選択)し確定ボタンB1を押すと、
図9Bに示すようなユーザインタフェース(第2教示ユーザインタフェースGUI2と呼ぶ)が表示される。
図9Bは、第2教示ユーザインタフェースの一例を示す図である。
第2教示ユーザインタフェースGUI2は、部分走行経路名を設定するためのユーザインタフェースであり、コピー走行による走行経路か塗り潰し走行経路かを選択する経路種類選択部D2と、部分走行経路名を設定するキーボード部D3と、を有する。
【0070】
第2教示ユーザインタフェースGUI2の経路種類選択部D2においてコピー走行を部分走行経路の種類として選択し、キーボード部D3において新たに作成する部分走行経路名を設定し、確定ボタンB2を押すと、
図9Cに示すようなユーザインタフェース(第3教示ユーザインタフェースGUI3と呼ぶ)が表示される。
図9Cは、第3教示ユーザインタフェースの一例を示す図である。
経路種類選択部D2においては、2つの点を線で結んだ表示が選択されることで、コピー走行が部分走行経路の種類として選択される。
【0071】
第3教示ユーザインタフェースGUI3は、部分走行経路の教示の開始時に表示されるユーザインタフェースであり、教示開始ボタンB3を有している。教示開始ボタンB3を押すと、
図9Dに示すようなユーザインタフェース(第4教示ユーザインタフェースGUI4)が表示される。
図9Dは、第4教示ユーザインタフェースの一例を示す図である。
【0072】
第4教示ユーザインタフェースGUI4の表示中に、ユーザは、走行経路教示部7を用いて自律走行台車100を新たな部分走行経路の始点まで移動させる。自律走行台車100を部分走行経路の始点として適切な位置まで移動させた場合には、
図9Cに示した第3教示ユーザインタフェースGUI3が再度表示される。
なお、部分走行経路の始点として適切な位置とは、例えば、当該位置において特徴的なローカルマップが得られ、自律走行台車100の自己位置を正確に推定できる位置を言う。
【0073】
なお、部分走行経路の始点として適切な位置に自律走行台車100を移動させていない場合には、
図9Eに示すような警告表示WDが表示される。
図9Eは、警告表示の一例を示す図である。
【0074】
自律走行台車100を部分走行経路の始点として適切な位置に移動後、再度表示された第3教示ユーザインタフェースGUI3において教示開始ボタンB3を押すことで、部分走行経路の教示が開始される。部分走行経路の教示が開始されると、
図9Fに示すようなユーザインタフェース(第5教示ユーザインタフェースGUI5と呼ぶ)が表示される。
図9Fは、第5教示ユーザインタフェースGUI5の一例を示す図である。
第5教示ユーザインタフェースGUI5は、部分走行経路の教示中に表示され、部分走行経路の教示開始からの経過時間を表示する経過時間表示部D4と、教示を一時停止するための一時停止ボタンB4と、教示を終了する停止ボタンB5と、を有する。
【0075】
部分走行経路の教示が開始されると、部分走行経路生成部55bは、走行経路教示部7を用いた自律走行台車100の操作中(ステップS21)に、所定の周期(ステップS22で「Yes」)にて、自己位置推定部55aから自己位置を取得する(ステップS23)。所定の周期は、例えば、制御部5の制御周期である。
ステップS23において取得される自己位置は、例えば、自己位置推定部55aによって以下のようにして推定される。なお、コピー走行のための部分走行経路の生成時だけでなく、自律走行時など自己位置が必要になる場合には、以下と同様にして自己位置が推定される。
【0076】
自己位置推定部55aは、まず、前回の推定時から今回の推定時までの主輪13(走行モータ11)の回転量(エンコーダ17から出力されたパルス数)から、前回の推定時から今回の推定時までの走行距離を推定し、前回推定された自己位置に当該走行距離を加算して、仮の自己位置を推定する(デッドレコニングによる自己位置推定)。
次に、自己位置推定部55aは、上記の仮の自己位置の周囲にいくつかの自己位置の候補を仮定し、グローバルマップ上の上記自己位置の候補に対応する位置に現在位置において取得したローカルマップを配置し、当該ローカルマップとグローバルマップとのマップマッチングを実行する。その後、自己位置推定部55aは、ローカルマップとグローバルマップとの一致度が最大である自己位置の候補を、今回の自己位置であると推定する(マップマッチングによる自己位置推定)。
【0077】
後述するように、コピー走行のための部分走行経路の生成では、部分走行経路(部分走行スケジュール501a(後述))の各通過点には、対応する環境地図復元用データ501b(後述)が関連付けられる。すなわち、部分領域を表すグローバルマップが環境地図復元用データ501bを用いて生成される場合がある。
このような場合、自己位置推定部55aは、前回の推定時までに取得した環境地図復元用データ501bを用いて生成したグローバルマップを用いて、自己位置推定を実行する。具体的には、グローバルマップは、前回推定された自己位置と当該自己位置から所定の範囲内にある自己位置のそれぞれに、対応する自己位置で取得した環境地図復元用データ501bを配置することで生成できる。
【0078】
一方、後述する塗り潰し走行のための部分走行経路の生成では、1つの部分走行経路(部分走行スケジュール501c(後述))に対して1つの環境地図データ501d(後述)が関連付けられる。すなわち、部分領域全体が1つの環境地図データ501dで表される場合もある。このような場合、自己位置推定部55aは、当該環境地図データ501dをグローバルマップとして用いて、自己位置推定を実行する。
【0079】
ローカルマップとグローバルマップとのマップマッチングによる自己位置推定が困難である場合には、代わりに、自己位置推定部55aは、前回の推定時から今回の推定時までの主輪13の回転量に基づいて、上記のデッドレコニングにより自己位置を推定してもよい。マップマッチングによる自己位置推定が困難な場合としては、例えば、ローカルマップ及び/又はグローバルマップが単調である場合、壁や障害物がない広い領域を走行中のためにローカルマップを取得できない場合、などがある。
【0080】
上記のようにして現在の自己位置を推定後、部分走行経路生成部55bは、ステップS24で、ステップS23にて推定した自己位置と、自己位置を取得(あるいは推定)した時間とを関連付けて部分走行スケジュール501aを生成し、当該部分走行スケジュール501aを部分走行経路データ501に記憶する。
また、部分走行経路生成部55bは、ステップS25において、今回の自己位置推定時に取得したローカルマップを環境地図復元用データ501b(復元地図情報の一例)として、今回の自己位置を取得した時間と関連付けて、部分走行経路データ501に記憶する。
【0081】
上記ステップS21~ステップS25は、走行経路教示部7による操作が継続されるか、又は、ユーザが第5教示ユーザインタフェースGUI5の停止ボタンB5を押すことにより教示の終了を指示するまで(ステップS26で「No」)、繰り返し実行される。一方、走行経路教示部7による操作が所定時間なされないか、又は、停止ボタンB5が押されて教示の終了が指示されると(ステップS26で「Yes」)、位置情報の取得と部分走行スケジュール501aへの記憶を停止する。
【0082】
部分走行経路の教示が終了すると、第4教示ユーザインタフェースGUI4が設定部9のディスプレイに表示され、部分走行経路の教示の終了処理が実行される。部分走行経路の教示の終了処理が完了すると、
図9Gに示すようなユーザインタフェース(第6教示ユーザインタフェースGUI6と呼ぶ)が設定部9のディスプレイに表示される。
第6教示ユーザインタフェースGUI6は、教示された部分走行経路に関する情報を表示するユーザインタフェースであり、部分走行経路の始点近辺の地図情報を表示する開始位置表示部D5と、作成された部分走行経路をリスト表示する経路表示部D6と、編集ボタンB6と、を有する。
【0083】
編集ボタンB6が押されると、
図9Hに示すようなユーザインタフェース(編集ユーザインタフェースGUI7と呼ぶ)が設定部9のディスプレイに表示される。
図9Hは、編集ユーザインタフェースの一例を示す図である。
編集ユーザインタフェースGUI7は、部分走行経路名の変更、及び、部分走行経路の削除をするためのユーザインタフェースであり、現在選択された部分走行経路名を表示する選択表示部D7と、部分走行経路名を変更するキーボード部D8と、選択中の部分走行経路を削除する削除ボタンB7と、変更後の部分走行経路名を確定する確定ボタンB8と、を有する。
【0084】
編集ユーザインタフェースGUI7の削除ボタンB7が押されると、選択表示部D7に表示された部分走行経路が削除される。選択表示部D7に表示された部分走行経路名をキーボード部D8を用いて変更後に確定ボタンB8が押されると、選択中の部分走行経路の部分走行経路名が変更される。
【0085】
上記のステップS21~S26を実行することにより、部分走行経路生成部55bは、例えば、
図10に示すようなデータ構造を有する部分走行経路データ501を生成できる。
図10は、コピー走行のための部分走行経路データのデータ構造の一例を示す図である。なお、本実施形態の連結経路データ502も、
図10と同様のデータ構造を有する。
図10に示すように、コピー走行のための部分走行経路データ501の部分走行スケジュール501aは、複数の時間と、各時間における通過点の座標値(x-y座標の座標値)と姿勢角θと、を関連付けて記憶している。また、部分走行スケジュール501aの各時間(座標値)には、対応する時間において取得した環境地図復元用データ501bが関連付けられている。
【0086】
なお、教示した部分走行経路において自律走行台車100を用いて清掃作業が実行された場合、部分走行経路生成部55bは、部分走行経路の各通過点において設定された清掃条件を清掃制御部53から取得し、取得した清掃条件を部分走行スケジュール501aの対応する通過点(時間)に関連付けて記憶してもよい。これにより、部分領域で実行された清掃作業を、部分走行経路データに記憶させることができる。つまり、自律走行台車100は、自律走行モードの設定時に、当該部分領域を自律的に清掃できる。
【0087】
(3-4)塗り潰し走行のための部分走行経路の生成動作
次に、
図11~
図14を用いて、塗り潰し走行のための部分走行経路の生成動作を説明する。
図11は、塗り潰し走行のための部分走行経路の生成動作を示すフローチャートである。
図12は、部分領域を多数のセルの集合体に変換した場合の一例を示す図である。
図13は、部分領域の各セルに付与したスコアの一例を示す図である。
図14は、塗り潰し走行のための部分走行経路の一例を示す図である。
以下では、
図5の経路PR2を境界線とする部分領域RA2に対して塗り潰し走行のための部分走行経路を生成する例により、部分走行経路の生成動作を説明する。
【0088】
塗り潰し走行を行う部分領域RA2の境界線は、ユーザが走行経路教示部7を操作することで教示される。
塗り潰し走行のための部分走行経路の生成動作は、部分走行経路生成部55bが、当該部分領域RA2内を塗り潰し走行するための部分走行経路データ501を生成することで実現される。
【0089】
コピー走行のための部分走行経路の生成動作と同様に、部分走行経路生成部55bは、まず、第1教示ユーザインタフェースGUI1を設定部9のディスプレイに表示する。第1教示ユーザインタフェースGUI1において、経路表示部D1の空欄となった項目が選択され確定ボタンB1が押されると、第2教示ユーザインタフェースGUI2が設定部9のディスプレイに表示される。
【0090】
第2教示ユーザインタフェースGUI2の経路種類選択部D2において塗り潰し走行が部分走行経路の種類として選択され、キーボード部D3を用いて新たに作成する部分走行経路名が設定され、確定ボタンB2が押されると、第3教示ユーザインタフェースGUI3が設定部9のディスプレイに表示される。
経路種類選択部D2においては、ハッチングされた四角形の表示を選択することで、塗り潰し走行が部分走行経路の種類として選択される。
【0091】
第3教示ユーザインタフェースGUI3において教示開始ボタンB3が押されると、第4教示ユーザインタフェースGUI4が設定部9のディスプレイに表示され、当該ユーザインタフェースの表示中にユーザが自律走行台車100を部分領域RAの境界線の始点まで移動させる。
自律走行台車100を部分領域RAの境界線の始点として適切な位置まで移動させた場合、第3教示ユーザインタフェースGUI3が再度表示され、教示開始ボタンB3を押すことで、部分領域RA2の境界線の教示が開始される。部分領域RAの境界線の教示中には第5教示ユーザインタフェースGUI5が設定部9のディスプレイに表示される。
【0092】
部分領域RA2の境界線の教示が開始されると、ステップS31で、ユーザが走行経路教示部7を操作して、部分領域RA2の境界線に沿って自律走行台車を走行させる。部分走行経路生成部55bは、所定の周期で、自己位置推定部が推定した走行中の自己位置を取得し、自己位置の点列として記憶することで、部分領域RA2の境界線の情報を取得する。あるいは代替形態として、部分領域RAの境界線はCADを用いて作成されてもよい。
【0093】
部分走行経路生成部55bは、経路PR2の生成時に取得したローカルマップを、経路PR2の対応する自己位置に配置して、部分領域RA2を含む領域を表す環境地図データ501dを生成する。部分走行経路生成部55bは、生成した環境地図データ501dを部分走行経路データ501に記憶する。つまり、塗り潰し走行のための部分走行経路を生成する際には、部分領域RA2を含む領域の全体を1つの環境地図データ501dで表す。
【0094】
なお、部分領域RA2の境界線(経路PR2)は閉じられた経路であるが、ほぼ一致するはずの境界線の始点と終点とが大きくずれることがある。このような場合、部分走行経路生成部55bは、例えばGraphSLAMなどの走行経路修正アルゴリズムを用いて、始点と終点とがほぼ一致するよう、生成した部分領域RA2の境界線と環境地図データ501dを修正してもよい。
【0095】
部分領域RA2の境界線を取得後、ステップS32で、部分走行経路生成部55bは、この境界線で定まる部分領域RA2を多数のセルCの集合体に変換する。このセルCは、部分領域RA2内の所定の面積を有する小領域に対応するものである。一方、部分走行経路生成部55bにおける処理上、各セルCは、例えば当該セルCに関するパラメータ(例えば、セルCを識別するパラメータ、セルCの位置情報、セルCの有効無効、セルCに付与されたスコア、など)を含む「構造体」として定義される。例えば、
図12に示すように、部分領域RA2が多数のセルCの集合体に変換される。
【0096】
次に、ステップS33で、部分走行経路生成部55bは、部分領域RAに含まれる各セルにスコアを付与する。具体的には、部分走行経路生成部55bは、矩形の部分領域RAの主方向(長手方向)に並ぶセルには同値のスコアを付与し、主方向とは垂直な方向に並ぶセルには始点となるセル(始点セルSCと呼ぶ)から離れるほど大きな値のスコアを付与する。
【0097】
例えば、
図13に示された部分領域RA2では、右下端のセルCに、始点セルSCが設定され、各セルCにはスコアが付与されている。
図13に示された部分領域RAの主方向には11個のセルCが存在するので、始点セルSCから主方向に沿った方向に配置されたセルCには、「11」のスコアが付与される。
次に、始点セルSCから主方向とは垂直に沿った方向に配置された各セルCには、始点セルSCから離れたセルの数に基づく倍数分だけ増加したスコアが付与される。例えば、スコア「11が」付与された始点セルSCから上記垂直な方向において次に隣接するセルCには「22」のスコアが付与され、始点セルSCから2セル分離れたセルCには、「33」のスコアが付与され、始点セルSCから3セル離れたセルCには、「44」のスコアが付与され、始点セルSCから4セル離れたセルCには、「55」のスコアが付与される。
【0098】
ステップS33で、各セルCにスコアを付与した後、ステップS34では、部分走行経路生成部55bが、所定の規則に従って始点セルSCから各セルCへと経路を延ばすことで、部分領域RAに含まれる全てのセルCを通過する経路を、塗り潰し走行のための部分走行経路として生成する。
例えば、部分走行経路生成部55bは、始点セルSCから順次、次に移動するセルCを決定するために、現在のセルCの主方向又は主方向とは垂直な方向に隣接するセルCのうち、まだ経路に含まれていないセルCのなかで、より高いスコアが付与されたセルCへ経路を延ばすことで、全てのセルCを通過する経路を生成することができる。以下、この経路の生成について、
図13に示された例を用いてさらに詳細に説明する。
【0099】
例えば、始点セルSCには「11」のスコアが付与され、主方向に隣接するセルCには同じ「11」のスコアが付与され、主方向とは垂直な方向に隣接するセルCにはより高い「22」のスコアが付与されている。この場合、部分走行経路生成部55bは、始点セルSCに隣接するセルの中からより高いスコア「22」が付与されたセルCを選択するので、主方向とは垂直な方向に経路を延ばす。
【0100】
始点セルSCから順次、主方向とは垂直な方向に延びる経路が、「55」のスコアが付与されたセルC(
図13の部分領域RA2の右上端のセルC)に到達すると、部分走行経路生成部55bは、経路が延びる方向を変更し、主方向に沿って図中で右から左の方向へ経路を延ばす。なぜなら、右上端のセルC(スコア値:55)に隣接するセルの中で、経路に含まれず、かつより高いスコアが付与されたセルCは、当該セルCの主方向の左側に隣接するセルC(スコア値:55)だからである。
【0101】
その後、上記の主方向に延びる経路が
図13中の左上端のセルC(スコア値:55)に到達すると、部分走行経路生成部55bは、経路が延びる方向を変更し、主方向とは垂直な下方向に経路を延ばす。なぜなら、左上端のセルC(スコア値:55)に隣接するセルの中で、経路に含まれず、かつより高いスコアが付与されたセルCは、当該セルCの下方に隣接するセルC(スコア値:44)だからである。
【0102】
図13中の左上端のセルCの下方のセルに経路が延びた後、部分走行経路生成部55bは、経路が延びる方向をさらに変更し、主方向に沿って左から右に、「44」のスコアが付与されたセルCに経路を延ばす。以降同様にして、部分走行経路生成部55bは、上記に説明した規則に基づき隣接するセルCに経路を延ばすことで、
図14に示すような部分領域RA2の全てのセルCを通過する経路を、部分領域RA2を塗り潰す部分走行経路として生成できる。
全てのセルCを通過する経路を生成後、部分走行経路生成部55bは、当該経路上に複数の通過点(座標値で表される点)を配置し、各通過点を通過する時間を対応する通過点に関連づけて部分走行スケジュール501cを生成し、部分走行経路データ501に記憶する。なお、塗り潰し走行のための部分走行スケジュール501cでは、部分領域RA2の境界線(経路PR2)の始点、および、終点を、それぞれ当該部分走行スケジュール501cの始点、および、終点とする。例えば、部分領域RA2の境界線(経路PR2)の始点を当該部分走行スケジュール501cの始点とし、部分領域RA2の境界線(経路PR2)の終点を当該部分走行スケジュール501cの終点とする。
【0103】
上記のステップS31~S34を実行することにより、部分走行経路生成部55bは、例えば、
図15に示すようなデータ構造を有する部分走行経路データ501を生成できる。
図15は、塗り潰し走行のための部分走行経路データのデータ構造の一例を示す図である。
図15に示すように、塗り潰し走行のための部分走行経路データ501の部分走行スケジュール501cは、複数の時間と、各時間における通過点の座標値(X-Y座標の座標値)と姿勢角θと、を関連付けて記憶している。
【0104】
また、
図15に示す塗り潰し走行のための部分走行経路データ501には、環境地図データ501dが含まれているが、部分走行スケジュール501cの各通過点には関連付けられていない。つまり、塗り潰し走行のための部分走行経路データ501では、環境地図データ501dは部分走行スケジュール501cに関連付けられている。
【0105】
上記のように、複数の部分走行経路データ501、及び、連結経路データ502は、それぞれ、所定の領域Aに含まれる別個の部分領域に対して生成される。従って、複数の部分走行経路データ501、及び、連結経路データ502は、それぞれ、独自の環境地図復元用データ501b(コピー走行、連結経路の場合)又は環境地図データ501d(塗り潰し走行の場合)を有している。また、部分走行経路データ501、及び、連結経路データ502に含まれる走行スケジュールの各通過点は、個別の環境地図復元用データ501b、又は、環境地図データ501dを用いて推定された自己位置に基づく座標点である。
このように、本実施形態において、複数の部分走行経路データ501及び連結経路データ502は、それぞれ、独自の座標系を有する部分領域に対して生成されている。
【0106】
なお、部分領域に塗り潰し走行のための部分走行経路を生成した場合、部分走行経路生成部55bは、塗り潰し走行のための部分走行経路の各通過点で設定したい清掃条件を、部分走行スケジュール501aの対応する通過点(時間)に関連付けて記憶してもよい。
これにより、自律走行台車100は、部分領域を塗り潰すような清掃作業を自律的に実行できる。
【0107】
(3-5)自律走行経路の作成動作
次に、
図16を用いて、上記の
図4に示すフローチャートのステップS2にて実行される自律走行経路の作成動作を具体的に説明する。
図16は、自律走行経路の作成動作を示すフローチャートである。自律走行経路の作成は、自律走行させたい複数の部分走行経路を選択し、選択した部分走行経路を連結する連結経路を検索し、当該複数の部分走行経路と連結経路とを「紐付けて」自律走行スケジュール500を生成することで実現される。
【0108】
最初に、ステップS41で、ユーザにより、自律走行台車100に自律走行させたい部分走行経路が選択される。
具体的には、自律走行計画部55cは、まず、
図17に示すようなユーザインタフェース(選択ユーザインタフェースGUI8と呼ぶ)を設定部9のディスプレイに表示する。
図17は、選択ユーザインタフェースの一例を示す図である。
選択ユーザインタフェースGUI8は、記憶部57などに記憶された部分走行経路から自律走行させたいものを選択するためのユーザインタフェースであって、記憶された部分走行経路名をリスト表示する経路表示部D9と、選択中の部分走行経路の始点近辺の地図情報を表示する開始位置表示部D10と、経路表示部D9において選択された部分走行経路のみを選択順に表示するか全ての部分走行経路を表示するかを切り替える切替ボタンB9と、部分走行経路の選択を確定する確定ボタンB10と、部分走行経路を選択するための表示領域を提供する経路選択表示部SE1を有する。
【0109】
選択ユーザインタフェースGUI8の経路表示部D9において、例えば、経路選択表示部SE1の逆C字形状の表示領域に自律走行させたい部分走行経路名を含めて経路選択表示部SE1を押すことで、部分走行経路を選択できる。上記のようにして部分走行経路を選択後、自律走行計画部55cは、ステップS42において、連結情報503を参照し、今回選択した部分走行経路を連結先とし、直前に選択した部分走行経路を連結元とした連結経路を検索する。
なお、今回選択した部分走行経路よりも前に部分走行経路が選択されていない場合には、連結経路の探索と連結経路の存在の有無の判断は実行されず、自律走行計画部55cは、今回選択した部分走行経路を自律走行スケジュール500に含める。
【0110】
ステップS42における検索の結果、今回選択した部分走行経路を連結先とし、その直前に選択した部分走行経路を連結元とした連結経路が存在する場合(ステップS43で「Yes」)、自律走行計画部55cは、ステップS44で、直前に選択した部分走行経路(部分走行経路データ501)と、検索で見つかった連結経路(連結経路データ502)と、今回選択した部分走行経路(部分走行経路データ501)とを紐付けて、自律走行スケジュール500を生成する。
【0111】
具体的には、自律走行計画部55cは、例えば、
図18に示すように、直前に選択した部分走行経路の識別情報(例えば、部分走行経路データ501のファイル名)と、検索で見つかった連結経路の識別情報(例えば、連結経路データ502のファイル名)と、今回選択した部分走行経路の識別情報(例えば、部分走行経路データ501のファイル名)と、を自律走行順にリスト化した自律走行スケジュール500を生成する。
図18は、自律走行スケジュールの一例を示す図である。
【0112】
今回選択した部分走行経路を連結先とし、その直前に選択した部分走行経路を連結元とした連結経路が存在する場合、自律走行計画部55cは、
図19に示すように、選択ユーザインタフェースGUI8の経路表示部D9において、今回選択した部分走行経路名の横に三角形の印を付する。これにより、今回選択された部分走行経路が適切なものであることを視覚的に示すことができる。
図19は、選択した部分走行経路を識別する表示をした選択ユーザインタフェースの一例を示す図である。
【0113】
なお、選択ユーザインタフェースGUI8において、一旦選択した部分走行経路を経路選択表示部SE1の逆C字形状の表示領域に含めた状態でさらに経路選択表示部SE1を押すと、当該部分走行経路の選択が解除され、自律走行スケジュール500から削除される。
また、複数の部分走行経路が選択されている場合に、当該複数の部分走行経路のうち1つの部分走行経路の選択を解除するか削除する場合、当該部分走行経路の選択のみでなく、当該部分走行経路よりも後に選択された部分走行経路の選択も解除される。
【0114】
さらに、選択ユーザインタフェースGUI8において全ての部分走行経路が経路表示部D9に表示された状態で切替ボタンB9を押すことで、
図20に示すように、これまでに選択した部分走行経路のみを経路表示部D9に表示させることもできる。複数の部分走行経路が選択されている場合には、部分走行経路名が選択された順に経路表示部D9に表示される。
図20は、選択した部分走行経路のみを表示した選択ユーザインタフェースの一例を示す図である。
一方、これまでに選択した部分走行経路のみを経路表示部D9に表示させた状態で切替ボタンB9を押すと、
図17及び
図19に示すように、選択されていない部分走行経路も含め全ての部分走行経路が経路表示部D9に表示される。
【0115】
図16の説明に戻り、ステップS42における検索の結果、今回選択した部分走行経路を連結先とし、その直前に選択した部分走行経路を連結元とした連結経路が存在しなかった場合(ステップS43で「No」)、自律走行計画部55cは、ステップS45で、選択された部分走行経路について対応する連結経路が存在しなかった旨を、設定部9に通知する。
この通知を受けた設定部9(通知部の一例)は、ユーザに対してエラーを通知する。具体的には、選択ユーザインタフェースGUI8に、選択された部分走行経路では連続した自律走行経路を作成できないことを知らせる表示をする。さらに、または代わりに、視覚的情報以外にも、音を発して上記エラーを通知してもよい。
【0116】
このように、選択された部分走行経路のうち少なくとも一部について対応する連結経路が存在しないときにエラーを通知することにより、ユーザは、選択した部分走行経路では連続した自律走行経路を作成できないことを知ることができる。
【0117】
部分走行経路の選択後、自律走行計画部55cは、ステップS46で、部分走行経路の選択が終了したか否かを判断する。例えば、選択ユーザインタフェースGUI8の確定ボタンB10が押されたときに、部分走行経路の選択が終了したと判断できる。
部分走行経路の選択を終了しない場合(ステップS46で「No」)、自律走行スケジュール500の作成動作は、ステップS41に戻り、部分走行経路の選択と自律走行スケジュール500の作成を継続する。
一方、部分走行経路の選択を終了した場合(ステップS46で「Yes」)、自律走行スケジュール500の作成を終了する。
【0118】
上記のステップS41~S46を実行して自律走行スケジュール500(自律走行経路)を生成することにより、自律走行計画部55cは、それぞれが異なる座標上で生成された複数の部分走行経路を連結して、前方検出器21a及び後方検出器21bにて取得したデータではその地図情報を正確に生成することができない広い領域を自律走行可能な自律走行スケジュール500を作成できる。
【0119】
自律走行スケジュール500の作成時に設定部9のディスプレイに表示されるユーザインタフェースは、
図17、
図19、
図20に示すような選択ユーザインタフェースGUI8に限られない。
例えば、
図21Aに示すように、記憶部57に記憶されている全ての部分走行経路を図式化して表示するユーザインタフェースGUI9を設定部9のディスプレイに表示してもよい。この場合、当該ユーザインタフェースGUI9に表示された部分走行経路の図をユーザが選択(例えば、選択したい部分走行経路の図の表示部分をタッチするなど)することで、自律走行させたい部分走行経路を選択できる。
図21Aは、部分走行経路の選択時に表示されるユーザインタフェースの他の一例を示す図である。
このように、選択可能な部分走行経路を図式化して表示することによっても、部分走行経路の選択を直感的に実行できる。
【0120】
なお、
図21Aに示すユーザインタフェースGUI9においては、3つの部分走行経路の図の両側に隣接して三角形のボタンが配置される。このボタンを押すことにより、現在表示されていない他の部分走行経路を図式化して表示し、当該他の部分走行経路を選択可能とできる。
【0121】
代替の変形例として、例えば、記憶部57に記憶された部分走行経路データ501のファイル名を設定部9のディスプレイにリスト表示するユーザインタフェースを設定部9のディスプレイに表示し、リスト表示されたファイル名をユーザが選択(例えば、ファイル名の表示部分をタッチするなど)することで、選択したファイル名を有する部分走行経路を選択することもできる。
【0122】
図21Aに示すユーザインタフェースGUI9を用いて部分走行経路を選択した場合においては、例えば、
図21Bに示すように、部分走行経路の選択順が各部分走行経路の図の左下に表示される。
例えば、「C COURSE」と表示された部分走行経路が最初に選択され、「A COURSE」と表示された部分走行経路が2番目に選択され、「B COURSE」と表示された部分走行経路が3番目に選択された場合、「C COURSE」と名付けられた部分走行経路の図の左下に「1」が表示され、「A COURSE」と名付けられた部分走行経路の図の左下に「2」が表示され、「B COURSE」と名付けられた部分走行経路の図の左下に「3」が表示される。
図21Bは、部分走行経路の選択直後における表示の一例を示す図である。
【0123】
その後、当該ユーザインタフェースGUI9に配置された「OK」ボタンが押されて部分走行経路の選択が終了すると、現在表示中の部分走行経路の図が並び替えられる様子が
図21Cに示すようなアニメーションとして表示され、最終的に、部分走行経路の図が選択順に(例えば、左から右に選択順に)並び変えられて
図21Dに示すように表示し直される。
図21Cは、部分走行経路の図が選択順に並び替えられる様子をアニメーション表示する一例を示す図である。
図21Dは、部分走行経路が選択順に表示し直された後の表示の一例を示す図である。
このように、部分走行経路の選択順を数字として示すとともに、部分走行経路を選択順に並び替えて表示することで、部分走行経路がどの順番で選択されたかを直感的に確認できる。
【0124】
(3-6)自律走行動作
次に、
図22を用いて、自律走行経路の作成後、
図4のフローチャートのステップS3で実行される自律走行動作を説明する。
図22は、自律走行動作を示すフローチャートである。自律走行動作は、走行再現部55dが、自律走行スケジュール500にリスト化された部分走行経路及び連結経路をリスト順に選択し、選択された部分走行経路又は連結経路を自律走行するための再現走行指令を生成して走行制御部51(及び清掃制御部53)に出力することで実現される。
自律走行を開始すると、制御統括部55は、ステップS51で、最初に自律走行すると決定した部分走行経路の始点まで自律走行台車100を移動させる旨の指示を、設定部9のディスプレイに表示する。当該指示を確認したユーザは、走行経路教示部7を操作して、最初の部分走行経路の始点まで自律走行台車100を走行させる。
【0125】
このとき、制御統括部55は、最初の部分走行経路の始点に到達するためには自律走行台車100をどの方向にどれだけ走行させるべきかを指示する情報(ナビゲーション情報と呼ぶ)を設定部9のディスプレイに表示してもよい。これにより、ユーザは、設定部9のディスプレイに表示されたナビゲーション情報を確認しながら走行経路教示部7を操作して、自律走行台車100を上記始点の位置まで確実に移動できる。
【0126】
走行経路教示部7を操作して自律走行台車100を移動中に、制御統括部55は、自律走行台車100が最初の部分走行経路の始点に到達したと判断したときに、
図23Aに示すようなユーザインタフェース(第1自律走行ユーザインタフェースGUI10と呼ぶ)を設定部9のディスプレイに表示する。
図23Aは、第1自律走行ユーザインタフェースの一例を示す図である。
第1自律走行ユーザインタフェースGUI10は、自律走行の開始を指示するためのユーザインタフェースであって、自律走行を開始するための開始ボタンB11と、最初の部分走行経路の始点近辺の地図情報を表示する開始位置表示部D11と、を有する。
【0127】
第1自律走行ユーザインタフェースGUI10において開始ボタンB11が押されると、
図23Bに示すようなユーザインタフェース(第2自律走行ユーザインタフェースGUI11と呼ぶ)が表示される。
図23Bは、第2自律走行ユーザインタフェースの一例を示す図である。
第2自律走行ユーザインタフェースGUI11は、自律走行の状態を表示するためのユーザインタフェースであって、自律走行スケジュール500に記憶された全ての経路を自律走行するために必要な時間を表示する時間表示部D12と、自律走行を一時停止する一時停止ボタンB12と、自律走行を停止する停止ボタンB13と、を有する。
【0128】
第1自律走行ユーザインタフェースGUI10の開始ボタンB11が押されて自律走行動作が開始すると、走行再現部55dは、ステップS52で、自律走行スケジュール500を参照して、自律走行に使用する部分走行経路の部分走行経路データ501、又は、連結経路の連結経路データ502を選択する。
【0129】
その後、走行再現部55dは、ステップS53で、選択した部分走行経路データ501に含まれる部分走行スケジュール501a、501c、又は、選択した連結経路データ502に含まれる走行スケジュールを用いて自律走行のための再現走行指令を生成し、走行制御部51(及び清掃制御部53)に出力する。これにより、自律走行台車100は、選択された部分走行スケジュール501a、501c、又は、連結経路の走行スケジュールに従って自律走行する。
ステップS53では、自己位置推定部55aは、選択した部分走行経路データ501に含まれる環境地図復元用データ501b又は環境地図データ501d、又は、選択した連結経路データ502に含まれる環境地図復元用データをグローバルマップとして用いて、自律走行中の自己位置を推定する。
【0130】
現在選択された部分走行経路又は連結経路の終点に到達後、走行再現部55dは、ステップS54で、自律走行スケジュール500を参照し、次に自律走行すべき部分走行経路又は連結経路が存在しているか否かを判断する。
次に自律走行すべき部分走行経路又は連結経路が存在している場合(ステップS54で「Yes」)、自律走行動作は、ステップS52に戻る。すなわち、上記のステップS52~S54は、自律走行すべき部分走行経路又は連結経路が存在しなくなるまで(ステップS54で「No」となるまで)繰り返し実行される。
【0131】
走行再現部55dが上記のステップS51~S54を実行することにより、自律走行台車100は、自律走行スケジュール500にリスト化された部分走行経路及び連結経路を、そのリスト順(決定された自律走行順)に連続して自律走行できる。
【0132】
2.第2実施形態
上記の第1実施形態において、連結経路はユーザが教示しており、コピー走行のための部分走行経路と同様にして連結経路データ502が生成されていた。しかし、連結経路の生成方法は、コピー走行による方法に限られない。例えば、第2実施形態に係る自律走行台車200では、連結経路を経路計画により生成する。
以下、
図24を用いて、第2実施形態に係る自律走行台車200における連結経路の生成方法を説明する。
図24は、第2実施形態に係る連結経路の生成方法を示すフローチャートである。なお、第2実施形態に係る自律走行台車200の構成及び機能は、第2実施形態では連結経路を経路計画により生成する以外、第1実施形態に係る自律走行台車100と同じである。従って、ここでは、連結経路の生成方法以外の説明は省略する。また、
図24に示すフローチャートの処理は、第1実施形態と同様、部分走行経路生成部55bにより実行される。
【0133】
まず、ステップS61で、部分走行経路生成部55bは、生成しようとする連結経路のためのグローバルマップを取得する。例えば、部分走行経路生成部55bは、連結経路の始点となる位置(連結元の部分走行経路の終点)から終点となる位置(連結先の部分走行経路の始点)まで自律走行台車100を走行させる間に取得したローカルマップを対応する位置に重ねて配置してグローバルマップを生成できる。
代替の実施形態として、例えば、連結経路の周囲の状態を表した地図情報をCADなどにより作成し、それをデータ変換することによりグローバルマップを生成してもよい。
【0134】
次に、ステップS62で、部分走行経路生成部55bは、生成したグローバルマップを用いて、連結経路の始点(連結元の部分走行経路の終点)と終点(連結先の部分走行経路の始点)を結ぶ経路を経路計画し、当該経路を連結経路とする。
部分走行経路生成部55bは、例えば、始点と終点との最短経路を連結経路として経路計画するか、又は、終点と始点との間に障害物が存在する場合にはそれを避ける最適な経路を連結経路として作成する。なお、ステップS62では、複数の連結経路を作成してもよい。この場合には、例えばユーザによる選択、自律走行時の状況などに応じて、どの連結経路にて部分走行経路を連結するかを決定できる。
【0135】
連結経路を作成後、部分走行経路生成部55bは、ステップS63で、作成した連結経路のための連結経路データ502を生成する。具体的には、部分走行経路生成部55bは、作成した経路上に複数の通過点(座標値と姿勢角で表される点)を配置し、各通過点を通過する時間を対応する通過点に関連づけて連結経路スケジュール502a(
図25)を生成し、連結経路データ502に記憶する。また、上記のステップS61で生成したグローバルマップを、環境地図データ502b(
図25)として連結経路データ502に記憶する。
【0136】
上記のステップS61~S63を実行することにより、部分走行経路生成部55bは、例えば、
図25に示すようなデータ構造を有する連結経路データ502を生成できる。
図25は、第2実施形態において生成される連結経路データのデータ構造の一例を示す図である。
図25に示すように、第2実施形態で生成される連結経路データ502は、上記の第1実施形態で説明した塗り潰し走行のための部分走行経路データ501と類似したデータ構造を有している。具体的には、連結経路データ502において、環境地図データ502bは連結経路スケジュール502aの各通過点には関連付けられていない。
【0137】
このように、連結経路は、ユーザの教示によるコピー走行以外の方法を用いても生成することができる。
【0138】
3.第3実施形態
上記の第1実施形態及び第2実施形態においては、部分走行経路の生成、連結経路の生成、部分走行経路の生成、の順に部分走行経路と連結経路が交互に生成されていた。これにより、部分走行経路及び連結経路を連続的に生成することができる。しかし、部分走行経路及び連結経路の生成順は、この順番に限られない。
第3実施形態に係る自律走行台車300では、必要な部分走行経路の生成後に、それらを連結する連結経路を生成する。以下、
図26を用いて、第3実施形態に係る自律走行台車300における部分走行経路及び連結経路の生成方法を説明する。
図26は、第3実施形態に係る部分走行経路及び連結経路の生成方法を示すフローチャートである。
【0139】
なお、第3実施形態に係る自律走行台車300の構成及び機能は、第3実施形態では部分走行経路及び連結経路の生成順序が異なる以外、第1実施形態に係る自律走行台車100及び第2実施形態に係る自律走行台車200と同じである。従って、ここでは、部分走行経路及び連結経路の生成方法以外の説明は省略する。また、
図26に示すフローチャートの処理は、第1実施形態及び第2実施形態と同様、部分走行経路生成部55bにより実行される。
【0140】
まず、ステップS71で、部分走行経路生成部55bは、所定の領域Aに生成したい全ての部分走行経路を生成する。例えば、所定の領域Aの各部分領域毎に、第1実施形態で説明したコピー走行のための部分走行経路の生成方法(
図8のフローチャートのステップS21~S26)を実行するか、又は、塗り潰し走行のための部分走行経路の生成方法(
図11のフローチャートのステップS31~S34)を実行して、部分走行経路を生成する。
【0141】
必要な全ての部分走行経路を生成後、ステップS72で、部分走行経路生成部55bは、生成した部分走行経路を連結する連結経路を生成する。例えば、第1実施形態で説明したユーザの教示により連結経路を生成するか、又は、第2実施形態で説明した経路計画(
図24のフローチャートのステップS61~S63の実行)により連結経路を生成する。
1つの連結経路を生成後、ステップS73で、部分走行経路生成部55bは、生成した連結経路について、連結元の部分走行経路と、連結先の部分走行経路と、を関連付けて連結情報503を生成する。
【0142】
上記のステップS72及びS73を実行後、さらに生成する必要がある連結経路が存在する場合(ステップS74で「No」)、部分走行経路及び連結経路の生成動作は、ステップS72に戻る。一方、必要な連結経路を全て生成した場合(ステップS74で「Yes」)、部分走行経路及び連結経路の生成を終了する。
【0143】
上記のステップS71~S74を実行することにより、より柔軟に自律走行経路(自律走行スケジュール500)を作成できる。具体的には、選択した部分走行経路について、様々なパターンの自律走行経路を生成できる。
例えば、第3実施形態による部分走行経路生成部55bは、生成した全ての部分領域の部分走行経路の各々の終点から、他の部分領域の全ての部分走行経路の各々の始点へ連結された連結経路を生成する。1つの終点から複数の始点への連結経路を生成することが可能な当該部分走行経路生成部55bは、例えば、
図5に示された部分走行経路PR2への連結経路CR(1,2)に加えて、部分走行経路PR1と部分走行経路PR3とを連結した自律走行経路も生成できる。
【0144】
このように、第3実施形態に係る自律走行台車100では、自律走行経路の作成時に、ユーザがどのような組み合わせ及び順序で部分走行経路を選択したとしても、エラー(連結経路が存在せず部分走行経路を連結できない)を発生することなく、ユーザの選択どおりに自律走行経路を作成できる。
【0145】
4.他の実施形態
以上、本発明の複数の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
例えば、上記に説明した第1実施形態~第3実施形態は、適宜組み合わせることができる。また、上記の各実施形態で説明した各フローチャート内の各ステップの処理の順番、及び/又は処理内容は、発明の要旨を逸脱しない範囲で適宜変更できる。
(A)自律走行経路を作成する際に、例えば、最初に自律走行を開始する部分走行経路を選択して当該部分走行経路の開始位置に自律走行台車100を移動させ、その後、残りの部分走行経路とこれらを結ぶ連結経路を選択することもできる。
【0146】
(B)生成した部分走行経路及び連結経路は、清掃作業を実行するか否かをそれぞれで個別に設定可能となっていてもよい。
例えば、部分走行経路生成部55bは、部分走行経路及び連結経路の生成時に、ユーザが実際に清掃作業を実行した箇所ではその清掃条件を部分走行経路データ501及び/又は連結経路データ502に記憶できる。すなわち、部分走行経路生成部55bは、ある特定の部分走行経路及び/又は連結経路においてユーザが清掃作業をした場合には、その特定の経路では清掃作業を実行すると設定されたと判断して、その清掃条件を部分走行経路データ501及び/又は連結経路データ502に記憶できる。その逆に、ユーザが清掃作業を行わなかった部分走行経路及び/又は連結経路については、清掃作業を実行しないと
設定されたと判断できる。
【0147】
また、例えば、それぞれの部分走行経路及び連結経路について清掃作業を実行するか否かの設定をユーザが設定部9を用いて行えるようにしてもよい。
この場合、清掃作業を実行しないとした部分走行経路及び/又は連結経路に対しては、部分走行経路及び連結経路の生成時に当該部分走行経路及び/又は連結経路において清掃作業が実行されても、部分走行経路生成部55bは、その清掃条件を部分走行経路データ501及び/又は連結経路データ502に記憶しない。
【0148】
(C)連結経路は、上記のようにして生成した部分走行経路同士を連結するものに限られない。例えば、バックヤードの充電ステーションから部分走行経路への連結経路を生成することもできる。または、部分走行経路からバックヤードの充電ステーションへの連結経路も生成できる。さらに、所定の領域Aの特定位置(例えば、共通の自律走行開始点)から部分走行経路への連結経路も生成できる。
これにより、例えば、充電ステーションで自律走行台車100のバッテリー(図示せず)を充電後に部分走行経路の自律走行(及び清掃作業)を開始する、及び、部分走行経路を自律走行中にバッテリー残量が少なくなったときに自律的に充電ステーションに移動してバッテリーの充電を開始する自律走行を実現できる。また、例えば、どのような部分走行経路が選択されても、任意の開始位置から自律走行を開始可能である。
【0149】
(D)また、連結経路の生成は、自律走行台車100を手動モードで移動させながら生成する方法に限らない。例えば、自律走行台車100を全く移動させずに、ある部分走行経路の終点と、次の部分走行経路の始点を一致させて、連結経路を生成せずに、自律走行台車100は、ある部分走行の自律走行終了後に、直ちに、次の部分走行を開始してもよい。
【0150】
(E)上記の第1実施形態~第3実施形態では、選択した全ての部分走行経路を連結経路で連結した自律走行経路(自律走行スケジュール500)を作成していた。しかし、これに限られず、自律走行計画部55cは、選択した部分走行経路を都度連結経路により連結して自律走行経路を作成してもよい。
例えば、n番目に自律走行する部分走行経路とn+1番目に自律走行する部分走行経路とを連結して自律走行スケジュール500を生成し自律走行を開始し、n+1番目の部分走行経路の自律走行が完了後に、n+1番目に自律走行する部分走行経路とn+2番目に自律走行する部分走行経路とを連結して新たな自律走行スケジュール500を生成し自律走行を開始する、との動作を繰り返して実行することもできる。
【0151】
(F)
図16に示す自律走行経路の作成動作におけるステップS41の部分走行経路の選択時に、部分走行経路をどの順番で走行させるかをユーザに設定させてもよい。この場合、自律走行計画部55cは、部分走行経路の選択後に、ユーザにより設定された順番で部分走行経路を自律走行すると決定してもよい。
【0152】
さらに、
図16に示す自律走行経路の作成動作におけるステップS41の部分走行経路の選択時に、部分走行経路を連結するかどうかをユーザに設定させてもよい。これにより、当該部分走行経路の始点と終点が一致している場合、ユーザの判断により、当該部分走行経路の走行をスキップして、次の連結走行に移ることができる。これにより、例えば、人手などにより既に清掃されている所定の領域が存在する場合に、当該該部分走行経路を2回清掃することを防ぐ効果を実現できる。
【0153】
(G)
図16に示す自律走行経路の作成動作において、自律走行計画部55cは、ステップS41でユーザが選択した部分走行経路に対して最適な自律走行順を自動的に決定してもよい。例えば、自律走行計画部55cは、最短で全ての部分走行経路を自律走行できる順番を経路計画などにより決定してもよい。これにより、例えば、ユーザの選択よりも最適な自律走行経路を作成できる。例えば、ユーザの選択よりも短時間に自律走行を完了できる自律走行経路を作成できる。
【0154】
(H)不適切な組み合わせ及び/又は順番で部分走行経路が選択された場合に、自律走行計画部55cは、エラーを通知して自律走行経路の作成を中止するのではなく、ユーザに部分走行経路を再度選択させてもよい。
【0155】
(I)不適切な組み合わせ及び/又は順番で部分走行経路が選択されたが、選択された中に連結できる部分走行経路が存在するならば、自律走行計画部55cは、連結できる部分走行経路を連結して自律走行経路を作成してもよい。
この場合、自律走行計画部55cは、例えば、最初に自律走行する部分走行経路から連結できる部分走行経路までの自律走行経路を作成してもよい。代替形態として、自律走行計画部55cは、連結できる部分走行経路については連結して自律走行経路を作成し、連結できない部分走行経路をスキップし(自律走行経路から外し)、さらに他の連結可能な部分走行経路を連結して自律走行経路を作成してもよい。
【0156】
(J)ステップS41で、自律走行計画部55cが作成した自律走行のための部分走行経路に、ユーザが選択した他の自律走行のための部分走行経路を加えてもよい。この場合、例えば、ユーザにより選択された部分走行経路の中に含まれているか否かにかかわらず、自律走行計画部55cは、特定の部分走行経路から、自律走行を開始すると決定してもよい。自律走行計画部55cは、例えば、優先度が最も高い部分走行経路を最初に自律走行させると決定してもよい。
【0157】
(K)走行再現部55dは、自律走行経路(自律走行スケジュール500)に含まれる部分走行経路及び連結経路のそれぞれについて、特定の時間(自律走行の開始から特定の経過時間後)に対応する経路を自律走行させてもよい。この場合、自律走行計画部55cは、例えば、自律走行スケジュール500の生成において、部分走行経路及び連結経路の識別情報のそれぞれに、対応する経路の自律走行を開始する時間を関連づけて記憶してもよい。
【0158】
(L)自律走行計画部55cは、選択した部分走行経路の部分走行スケジュール501a、501c及び連結経路の走行スケジュールを連結して自律走行スケジュール500を生成してもよい。つまり、複数の通過点(座標値)と、各通過点を通過する時間とが関連付けられた自律走行スケジュール500を生成してもよい。
この場合、自律走行スケジュール500において、部分走行スケジュール501a、501cと連結経路の走行スケジュールの連結部分に、自己位置推定に用いるグローバルマップが切り替わることを示す情報(例えば、フラグ)が挿入されてもよい。これにより、時間と通過点とが関連付けられた自律走行スケジュール500において、自己位置推定に用いるグローバルマップを切り替えるタイミングを知ることができる。
【0159】
(M)塗り潰しのための部分走行経路の部分走行経路データ501、及び、経路計画による連結経路の連結経路データ502のように、コピー走行のための部分走行経路データ501、及び/又は、ユーザの教示による連結経路の連結経路データ502に含まれる走行スケジュールに対して1つの環境地図データ(グローバルマップ)を関連付けてもよい。
【産業上の利用可能性】
【0160】
本発明は、指定された自律走行経路を自律走行する自律走行台車に広く適用できる。
【符号の説明】
【0161】
100~300自律走行台車
1 走行部
11 走行モータ
13 主輪
15 補助輪
17 エンコーダ
3 清掃部
31 洗浄液吐出口
31a 洗浄液供給タンク
31b 洗浄液供給ポンプ
33 スキージ
33a 吸引モータ
33b 回収部材
35 洗浄用部材
35a 洗浄用部材回転モータ
O2 吸引口
5 制御部
51 走行制御部
53 清掃制御部
55 制御統括部
55a 自己位置推定部
55b 部分走行経路生成部
55c 自律走行計画部
55d 走行再現部
57 記憶部
7 走行経路教示部
8 取付部材
9 設定部
21a 前方検出器
21b 後方検出器
B 本体
F 床面
500 自律走行スケジュール
501 部分走行経路データ
501a、501c 部分走行スケジュール
501b 環境地図復元用データ
501d 環境地図データ
502 連結経路データ
502a 連結経路スケジュール
502b 環境地図データ
503 連結情報
A 領域
RA 部分領域
RA1~RA4部分領域
C セル
SC 始点セル
PR1~PR4部分走行経路
CR 連結経路
GUI1 第1教示ユーザインタフェース
B1 確定ボタン
D1 経路表示部
GUI2 第2教示ユーザインタフェース
B2 確定ボタン
D2 経路種類選択部
D3 キーボード部
GUI3 第3教示ユーザインタフェース
B3 教示開始ボタン
GUI4 第4教示ユーザインタフェース
GUI5 第5教示ユーザインタフェース
B4 一時停止ボタン
B5 停止ボタン
D4 経過時間表示部
GUI6 第6教示ユーザインタフェース
B6 編集ボタン
D5 開始位置表示部
D6 経路表示部
GUI7 編集ユーザインタフェース
B7 削除ボタン
B8 確定ボタン
D7 選択表示部
D8 キーボード部
GUI8 選択ユーザインタフェース
B9 切替ボタン
SE1 経路選択表示部
B10 確定ボタン
D9 経路表示部
D10 開始位置表示部
GUI9 ユーザインタフェース
GUI10 第1自律走行ユーザインタフェース
B11 開始ボタン
D11 開始位置表示部
GUI11 第2自律走行ユーザインタフェース
B12 一時停止ボタン
B13 停止ボタン
D12 時間表示部