(58)【調査した分野】(Int.Cl.,DB名)
前記清掃スケジュール修正部は、2点の前記教示データ取得時間における前記スキージの位置及び幅と、当該2点間に仮定した複数の仮想的な前記スキージの位置及び幅と、に基づいて前記スキージ軌跡を算出する、請求項1に記載の自律走行式床洗浄機。
前記清掃スケジュール修正部は、前記スキージ軌跡に前記洗浄液の吐出位置が存在しているか否かの判定を、現在の教示データ取得時間から、所定時間経過後の前記教示データ取得時間までの範囲内にて実行する、請求項1〜4のいずれかに記載の自律走行式床洗浄機。
【発明を実施するための形態】
【0017】
1.第1実施形態
(1)自律走行式床洗浄機の全体構成
まず、本実施形態に係る自律走行式床洗浄機の全体構成について、
図1を用いて説明する。
図1は、自律走行式床洗浄機100の全体構成を示す図である。
図1に示す自律走行式床洗浄機100(以下、洗浄機100と略称する)は、教示された清掃条件と走行経路とを忠実に再現することにより、自律的に清掃作業を実行するものである。「教示された清掃条件」とは、洗浄機100が手動操作可能な状態のときに、操作者による手動操作により実行された清掃の条件(清掃条件)のことを言う。また、「教示された走行経路」とは、操作者による手動操作(移動操作)により洗浄機100が走行した経路を言う。
【0018】
洗浄機100は、走行部1を備える。走行部1は、洗浄機100を走行させる装置である。走行部1は、本体Bの底部の左右端にそれぞれ、走行モータ11と、走行モータ11の出力回転軸に取り付けられ、走行モータ11の回転に従って回転する主輪13と、を有する。
他の実施形態として、走行部1は、例えば、本体Bの底部の左右端に主輪13よりも後方に、回転可能に取り付けられ補助輪15を有してもよい。これにより、洗浄機100をより安定にできる。さらなる他の実施形態として、洗浄機100の重心位置などを考慮して、補助輪15を主輪13よりも前方に取り付けてもよい。
【0019】
洗浄機100は、清掃部3を備える。清掃部3は、本体Bの底部に設けられ、指定された清掃条件に従って床面Fを清掃する装置である。清掃部3の詳細については後ほど説明する。
【0020】
洗浄機100は、制御部5を有する。制御部5は、CPU、記憶装置(RAM、ROM、ハードディスクドライブ、SSDなど)、各種インターフェースなどを備えたコンピュータシステムである。制御部5は、洗浄機100に関する各種制御を行う。制御部5の構成については後ほど詳しく説明する。
【0021】
洗浄機100は、走行経路教示部7を備える。走行経路教示部7は、操作者による走行部1の移動操作を受け付ける装置である。走行経路教示部7は、取付部材8を介して、本体Bの上方後側に取り付けられている。これにより、操作者は、走行経路教示部7を操作して走行部1を移動操作できる。走行経路教示部7の詳細については、後ほど説明する。
他の実施形態として、走行経路教示部7は、本体Bに取り付けられていなくともよい。この場合、走行経路教示部7は、例えば、ジョイスティックなどのコントローラとできる。これにより、操作者は、洗浄機100を遠隔操作できる。
【0022】
洗浄機100は、設定部9を備える。設定部9は、洗浄機100に関する各種設定を行うための操作盤であり、本体Bの上方後側の表面に取り付けられている。また、設定部9は、走行経路教示部7の近傍に設けられている。これにより、操作者は、走行経路教示部7を操作して走行部1を操作しつつ、設定部9を操作できる。
【0023】
他の実施形態として、設定部9は、本体Bに取り付けられていなくてもよい。この場合、設定部9は、例えば、ポータブル端末などの無線通信可能なコンソールである。これにより、操作者は、洗浄機100を遠隔にて設定できる。
さらなる他の実施形態として、上記の走行経路教示部7と設定部9とを一体としてもよい。これにより、走行部1と設定部とを同時に操作しやすくできる。
【0024】
(2)清掃部の構成
次に、清掃部3の構成について、
図1を用いて説明する。清掃部3は、清掃条件に従って床面Fを洗浄するものである。
清掃部3は、洗浄液吐出口31を有する。洗浄液吐出口31は、例えば、その一端から洗浄液を吐出する中空の部材である。例えば、洗浄液吐出口31を構成する中空の部材の一端は、洗浄用部材35を固定する固定部材351に設けられた空洞O1に対応する位置に配置される。一方、当該部材の他端は、洗浄液を供給する洗浄液供給ポンプ311の出口側に接続される。
【0025】
洗浄液供給ポンプ311の入口側は、本体Bの内部に搭載され、その内部に洗浄液を貯蔵する洗浄液供給タンク313の出口に接続されている。この構成により、洗浄液供給タンク313に貯蔵された洗浄液が、洗浄液供給ポンプ311により供給量を調節されて洗浄液吐出口31に供給され、洗浄液吐出口31の一端から空洞O1を介して床面Fに吐出される。洗浄液としては、例えば、水を用いることができる。
【0026】
清掃部3は、スキージ33を有する。スキージ33は、スキージ固定部材331に固定されて本体Bの底面後方に設けられ、床面F上に残留する洗浄液(床面Fの洗浄に使用後の洗浄液)を収集する部材である。スキージ33は、本体Bの幅方向に所定の長さだけ延びており、本体Bの移動に伴って移動することにより、本体Bの移動軌跡とスキージ33の幅方向の長さとで決まる領域(スキージ軌跡と呼ぶことにする)を形成する。スキージ33は、スキージ軌跡内の洗浄液を収集する。
【0027】
スキージ固定部材331は、本体BとジョイントJにより接続され、当該ジョイントJ回りに、所定の角度範囲(Θとする)(
図5)にて回動可能となっている。スキージ固定部材331の回動により、スキージ33の本体Bの前後方向(洗浄機100の移動方向)に対する角度が可変となっている。
【0028】
他の実施形態において、スキージ固定部材331には吸引口O2が設けられていてもよい。吸引口O2は、吸引モータ333により吸引されて内部が負圧となる回収部材335(例えば、空洞を有する容器)に接続されている。これにより、吸引口O2は、吸引モータ333の吸引により回収部材335が負圧となると、吸引力Pを生じる。その結果、吸引口O2は、当該吸引力Pによりスキージ33により収集された洗浄液やゴミなどを吸引して、回収部材335へと搬送できる。吸引口O2にて発生する吸引力Pは、例えば、吸引モータ333の出力を調整することにより、調整できる。
【0029】
さらなる他の実施形態において、スキージ固定部材331は、ジョイントJを介して、スキージ昇降アクチュエータ337に接続され、床面Fに対して昇降可能となっていてもよい。これにより、スキージ33は、床面F上を接触するか、床面Fから離れるかを任意に設定可能となる。この結果、スキージ33は、必要に応じて、床面F上の液体(洗浄液)などを、洗浄機100の後方へ移動するのを抑制できる。
【0030】
さらなる他の実施形態において、スキージ33は、洗浄機100がバック走行するときは、床面Fから離れていてもよい。これにより、バック走行時において、床面F上の液体などが洗浄機100のさらに後方に移動することを抑制できる。その結果、洗浄機100は、効率よく床面Fを洗浄できる。
【0031】
清掃部3は、洗浄用部材35を有する。洗浄用部材35は、本体Bの底面の前方側に設けられた固定部材351に固定された、床面Fを洗浄するための部材である。固定部材351は、洗浄用部材回転モータ353の出力回転軸に接続されている。そのため、洗浄用部材35は、洗浄用部材回転モータ353の回転によって洗浄液が存在する床面F上にて回転することで、床面Fを洗浄する。
【0032】
他の実施形態において、洗浄用部材35は、押圧部材355を介して、洗浄用部材押圧アクチュエータ357に接続されていてもよい。これにより、洗浄用部材35は、床面Fに押し付けられて回転しながら床面Fを洗浄できる。洗浄用部材回転モータ353の回転数及び洗浄用部材押圧アクチュエータ357による押圧力を調整することにより、洗浄用部材35による床面Fの洗浄力を調整できる。洗浄用部材35としては、例えば、床面洗浄用のブラシなどを用いることができる。
【0033】
清掃部3が上記の構成を有することにより、洗浄機100は、床面Fを洗浄したり床面Fの液体(洗浄液)などを回収したりといった、多様な清掃作業を実行できる。
【0034】
(3)走行経路教示部の構成
次に、本実施形態に係る走行経路教示部7の構成の一例について、
図2を用いて説明する。
図2は、走行経路教示部の構成の一例を示す図である。
走行経路教示部7は、ハンドル71a、71bを有する。ハンドル71a、71bは、それぞれ、筐体73の左右側面に取り付けられている。ハンドル71a、71bは、ユーザが洗浄機100を操作するときに使用される。
【0035】
例えば、ハンドル71a、71bを把持する操作者は、ハンドル71a、71bを介して、洗浄機100を操作者の方へ引張る力、又は、洗浄機100を押し出す力のいずれかを加えることができる。ハンドル71a、71bのそれぞれにかける力を調節することにより、操作者は、洗浄機100の走行方向を調整できる。例えば、洗浄機100の前方方向から見て左側のハンドル71aに対して、洗浄機100を引張る力を加えれば、洗浄機100は左へと方向転換する。
【0036】
ハンドル71a、71bは、筐体73に回動可能に取り付けられている。また、ハンドル71a、71bは、走行制御指令算出部75を介して制御部5に接続されている。走行制御指令算出部75は、ハンドル71a、71bの回動を電気信号に変換し、制御部5に出力する。これにより、操作者は、ハンドル71a、71bの回動操作によって、洗浄機100(走行部1)を操作できる。
【0037】
例えば、ハンドル71a、71bの回動方向を調整することにより、操作者は、洗浄機100の前進と後進とを切り替え可能となっていてもよい。また、ハンドル71a、71bの回動量を調節することにより、洗浄機100の走行速度を調整可能となっていてもよい。さらに、ハンドル71aの回動量と、ハンドル71bの回動量とを異ならせて、洗浄機100の進行方向を変更してもよい。
【0038】
他の実施形態として、ハンドル71aを進行方向への走行速度を指示するための入力インターフェースとし、ハンドル71bを操舵角を指示するための入力インターフェースとしてもよい。
【0039】
(4)設定部の構成
次に、設定部9の構成について、
図3を用いて説明する。
図3は、設定部の構成を示す図である。
設定部9は、切替部91を有する。切替部91は、洗浄機100の動作モードを選択すし、制御部に出力する。洗浄機100の動作モードとしては、自律清掃モードと手動操作モードとがある。自律清掃モードは、洗浄機100が、自律的に走行し床面Fを洗浄する動作モードである。一方、手動操作モードは、洗浄機100が操作者により手動操作可能な状態にある動作モードである。
【0040】
切替部91は、例えば、
図3に示すような切り替えスイッチにて構成できる。この場合、自律清掃モードの選択は、例えば、切り替えスイッチにて構成された切替部91を
図3に示す「自動」に切り替えることにより可能となる。一方、手動操作モードの選択は、例えば、切替部91を
図3に示す「手動」に切り替えることにより可能となる。
【0041】
設定部9は、手動操作記憶スイッチ92を有する。手動操作記憶スイッチ92は、操作者による洗浄機100の手動操作の記憶を開始又は終了するためのスイッチである。具体的には、切替部91により動作モードが手動操作モードに設定された後に手動操作記憶スイッチ92が切り替わると、操作者の手動操作により実行された清掃条件および走行経路を、洗浄機100に教示する手動操作教示モードが、手動操作モードのサブ動作モードとして開始される。一方、手動操作教示モードを実行中に手動操作記憶スイッチ92が切り替わると、手動操作教示モードが停止される。
【0042】
手動操作記憶スイッチ92により手動操作教示モードの開始と停止とが可能となることにより、手動操作教示モードを任意のタイミングにて開始又は停止できる。その結果、操作者が所望する清掃スケジュール500を作成できる。
【0043】
手動操作記憶スイッチ92としては、例えば、
図3に示すような押ボタンスイッチとすることができる。この場合、手動操作記憶スイッチ92の切り替えは、当該押ボタンスイッチを押すことにより切り替わる。
【0044】
他の実施形態において、手動操作教示モードの実行時に手動操作記憶スイッチ92が切り替わったら、動作モードが手動操作教示モードから手動操作モードに切り替わってもよい。これにより、操作者は、手動操作教示モードが手動操作モードに切り替わっても、継続して洗浄機100を手動操作できる。
【0045】
設定部9は、清掃条件教示部93を有する。清掃条件教示部93は、操作者による清掃条件の入力を受け付けて、清掃制御指令算出部94へ出力する。清掃制御指令算出部94は、清掃条件教示部93にて受け付けた清掃条件を、制御部5が解読可能な信号に変換する信号変換回路、又は、コンピュータシステムである。
【0046】
図3に示すように、清掃条件教示部93は、清掃条件調整部931を有する。清掃条件調整部931は、洗浄液吐出口31から吐出される洗浄液の供給量S(吐出量の一例)を教示清掃条件として設定する供給量調整部931aを有する。供給量調整部931aは、例えば押ボタンスイッチにより構成でき、ボタンを押す回数により供給量Sを設定できる。
【0047】
他の実施形態において、清掃条件調整部931は、吸引口O2による吸引力Pを、教示清掃条件として設定する吸引力調整部931bを有してもよい。吸引力調整部931bは、例えば押ボタンスイッチであり、ボタンを押す回数により吸引力Pを調整できる。これにより、床面Fに存在する洗浄液の吸引可能範囲を調節できる。
【0048】
さらなる他の実施形態において、清掃条件調整部931は、洗浄用部材35による床面Fの洗浄力Wを教示清掃条件として設定する洗浄力調整部931cを有してもよい。洗浄力調整部931cは、例えば押ボタンスイッチであり、ボタンを押す回数により洗浄用部材35による床面Fの洗浄力Wを調整できる。
【0049】
さらなる他の実施形態において、清掃条件調整部931は、供給量調整部931aと、吸引力調整部931bと、洗浄力調整部931cと、を全て有してもよい。これにより、洗浄液の供給量S、吸引口O2による吸引力P、及び/又は床面Fの洗浄力Wを、個別に調整した教示清掃条件を設定できる。
【0050】
清掃条件教示部93は、運転切替部933を有する。運転切替部933は、洗浄液吐出口31からの洗浄液の供給の開始又は停止を指令する供給切替部933aを有する。供給切替部933aは、例えば押ボタンスイッチにより構成でき、ボタンを押すことにより洗浄液の供給開始と供給停止を切り替えることができる。
【0051】
他の実施形態において、運転切替部933は、吸引口O2による吸引の開始又は停止を指令する吸引切替部933bを有してもよい。吸引切替部933bは、例えば押ボタンスイッチであり、ボタンを押すことにより吸引開始と吸引停止とを切り替えることができる。
【0052】
さらなる他の実施形態において、運転切替部933は、洗浄用部材35による床面Fの洗浄の開始又は停止を指令する洗浄切替部933cを有してもよい。洗浄切替部933cは、例えば押ボタンスイッチであり、ボタンを押すことにより床面Fの洗浄開始と停止とを切り替えることができる。
【0053】
さらなる他の実施形態において、運転切替部933は、供給切替部933aと、吸引切替部933bと、洗浄切替部933cと、を有してもよい。これにより、洗浄液の供給、吸引口O2による吸引、及び/又は、床面Fの洗浄の開始と停止を、個別に切り替えることができる。
【0054】
その結果、例えば、供給切替部933aにより洗浄液の供給を停止後に吸引切替部933bにより洗浄液の吸引を開始するといった清掃作業、及び/又は、供給切替部933aにより洗浄液の供給を停止した後、床面Fに洗浄液がなじむのに必要な程度の時間経過後に洗浄切替部933cにより床面Fの洗浄を開始するといった清掃作業を洗浄機100に実行させることができる。
【0055】
設定部9は、清掃制御指令算出部94を有する。清掃制御指令算出部94は、清掃条件調整部931により設定された教示清掃条件、及び、運転切替部933による切替指令を、制御部5が解釈可能な信号に変換して制御部5に出力する、例えば、信号変換回路又はコンピュータシステムである。
【0056】
設定部9は、設定操作部95を有する。設定操作部95は、例えば押圧スイッチなどにより構成され、洗浄機100に関する各種設定の入力を受け付けて、設定変換部96を介して、制御部5に出力する。設定操作部95は、作成後の清掃スケジュール500を修正する機能の有効又は無効、後述する移動経路の細分化の程度、洗浄機100の仮想モデルの各パラメータなどを設定する。
設定変換部96は、設定操作部95にて受け付けた入力を、制御部5が解読可能な信号に変換する信号変換回路、又は、コンピュータシステムである。
【0057】
他の実施形態において、設定部9はディスプレイ97を有してもよい。ディスプレイ97は、現在設定されている洗浄機100に関する各種設定情報を表示する。ディスプレイ97は、例えば、液晶ディスプレイ、有機ELディスプレイなどのディスプレイである。
【0058】
ディスプレイ97は、例えば、洗浄液吐出口31からの洗浄液の供給量S、洗浄用部材35による床面Fの洗浄力W、及び/又は、吸引口O2による吸引力Pを、設定された清掃条件として表示する。これにより、操作者は、表示された清掃条件を確認しながら、清掃作業を実行できる。
【0059】
他の実施形態において、ディスプレイ97は、現在の動作モード(自律清掃モード/手動操作モード/手動操作教示モード)、運転時間、洗浄機100を駆動するバッテリー残量などをさらに表示してもよい。さらなる他の実施形態において、ディスプレイ97は、設定操作部95により洗浄機100の各種設定を行う際に、各種設定手順を表示してもよい。これにより、洗浄機100に関する情報を視覚的にユーザに提供し、ユーザは表示された情報に基づいて、設定部9を操作できる。
【0060】
他の実施形態において、ディスプレイ97にはタッチパネルが設けられていてもよい。この場合、上記の切替部91、手動操作記憶スイッチ92、清掃条件教示部93、及び/又は設定操作部95は、当該タッチパネルにより実現されてもよい。
【0061】
(5)制御部の構成
(5−1)制御部の全体構成
以下、制御部5の構成について説明する。まず、制御部5の全体構成について、
図4を用いて説明する。
図4は、制御部の全体構成を示す図である。以下に説明する制御部5の各機能ブロックの全部又は一部は、制御部5を構成するコンピュータシステムにて実行可能なプログラムにより実現されてもよい。この場合、当該プログラムは、メモリ部及び/又は記憶装置に記憶されていてもよい。制御部5の各機能ブロックの全部又は一部は、SoC(System on Chip)などのカスタムICとして実現されていてもよい。
【0062】
制御部5は、1つのコンピュータシステムにより構成されていてもよいし、複数のコンピュータシステムにより構成されていてもよい。複数のコンピュータシステムにより制御部5を構成する場合、例えば、制御部5の複数の機能ブロックにて実現される機能を複数のコンピュータシステムに任意の割合で振り分けて実行させることができる。
【0063】
制御部5は、清掃制御部51を有する。清掃制御部51は、洗浄用部材回転モータ353と、洗浄液供給ポンプ311と、吸引モータ333に対して、これらのモータやポンプの回転速度や出力などを制御する電力(清掃部制御量と呼ぶ)を供給する。また、清掃制御部51は、洗浄用部材押圧アクチュエータ357に対し動作量を制御する電力(清掃部制御量)を供給する。
スキージ昇降アクチュエータ337が設けられている場合には、清掃制御部51は、当該アクチュエータに対してスキージ33を昇降させる駆動信号を出力してもよい。
【0064】
清掃制御部51は、清掃制御指令算出部94を介して清掃条件教示部93から教示清掃条件を入力し、当該教示清掃条件に基づいて、洗浄用部材回転モータ353と、洗浄液供給ポンプ311と、吸引モータ333と、を制御する。
また、清掃制御部51は、制御統括部55から再現清掃条件(後述)を入力し、当該再現清掃条件に基づいて、清掃部3を制御する。
【0065】
制御部5は、走行制御部53を有する。走行制御部53は、走行経路教示部7から入力したハンドル71a、71bの回動量及び回動方向に基づく走行制御指令、又は、制御統括部55から入力した再現走行制御指令に基づき、走行モータ11を制御する。
また、走行制御部53は、走行モータ11の出力回転軸に取り付けられたエンコーダ111から出力されるパルス信号に基づいて、走行モータ11の回転速度を算出する。これにより、走行制御部53は、走行モータ11の回転速度(すなわち、主輪13の回転速度)をモニターしながら、走行モータ11を制御できる。
【0066】
制御部5は、制御統括部55を有する。制御統括部55は、洗浄機100による清掃及び走行を統括する。具体的には、制御統括部55は、前方検出器5551a、後方検出器5551b、及び/又はエンコーダ111にて取得された情報に基づいて、洗浄機100が床面Fのどの位置を移動しているかを示す位置情報を算出する。
【0067】
制御統括部55は、手動操作教示モードの実行時においては、清掃制御部51から清掃条件を教示清掃条件として受信し、上記の位置情報及び教示清掃条件とを用いて清掃スケジュール500を作成する。
【0068】
一方、自律清掃モードの実行時においては、制御統括部55は、清掃スケジュール500に記憶されたデータに基づいて再現清掃条件及び再現走行制御指令を算出し、再現清掃条件を清掃制御部51に、再現走行制御指令を走行制御部53に出力する。
これにより、自律清掃モードの実行時においては、清掃制御部51は、再現清掃条件に基づいて、洗浄用部材回転モータ353、洗浄液供給ポンプ311、吸引モータ333、及び/又は、洗浄用部材押圧アクチュエータ357を制御することで、洗浄機100に対して自律的に清掃作業を実行させることができる。また、走行制御部53は、再現走行制御指令に基づいて走行モータ11を制御することで、洗浄機100を自律的に移動させることができる。
【0069】
制御部5は、記憶部57を有する。記憶部57は、制御部5を構成するコンピュータシステムの記憶装置の記憶領域の一部又は全部であり、洗浄機100に関する各種情報を記憶する。具体的には、記憶部57は、制御統括部55において作成された清掃スケジュール500、及び、設定操作部95や設定変換部96から入力された洗浄機100に関する各種設定を記憶する。
【0070】
記憶部57は、
図5に示すような洗浄機100の仮想モデルを記憶する。
図5は、洗浄機の仮想モデルの一例を示す図である。この仮想モデルは、後述するスキージ軌跡、及び、各教示位置情報に対応する洗浄液の吐出位置を算出するために用いられる。
【0071】
図5に示す仮想モデルにおいて、点P
cは、洗浄機100の中心位置である。位置推定部5555にて推定される位置情報は、点P
cの座標値である。点P
pは洗浄液吐出口31の位置であり、点P
jはジョイントJの位置である。点P
cから点P
pまでの長さL
pcと、点P
cから点P
jまでの長さL
cjは一定であるとする。
【0072】
点P
sは吸引口O2の位置(スキージ33の中心位置)である。点P
slはスキージ33の左端(洗浄機100を前進方向に見た場合)の位置であり、点P
srはスキージ33の右端の位置である。点P
slから点P
srまでの長さL
sは、スキージ33の幅寸法であり、一定値(w)である。また、点P
jから点P
sまでの長さL
js(スキージ固定部材331の長さに対応)は一定であるとする。
【0073】
また、本実施形態の仮想モデルにおいては、洗浄用部材35よりもわずかに小さな円に内接する八角形の頂点のそれぞれに、洗浄液吐出口31から供給(吐出)された洗浄液の位置P
wを定義する。これにより、仮想モデルにおいて、洗浄液吐出口31から供給された洗浄液が、洗浄用部材35の回転により床面F上で拡散することを考慮できる。
【0074】
他の実施形態において、洗浄液の位置P
wを、洗浄用部材35よりもわずかに小さな円に内接する八角形以外の多角形(例えば、三角形、四角形、五角形、六角形など)の頂点のそれぞれに定義してもよい。どの多角形の頂点に定義するかは、例えば、清掃スケジュール修正部557(制御部5)の処理能力等により、適宜選択できる。
【0075】
清掃制御部51、走行制御部53、及び制御統括部55は、記憶部57に記憶された洗浄機100に関する各種設定、及び/又は、清掃スケジュール500を必要に応じて読み出して、これらに基づいて各種の調整及び制御を実行できる。
【0076】
他の実施形態において、制御部5は、記憶部57に記憶された清掃スケジュール500などの情報を他の記憶媒体に記憶するためのデータ書き込み装置(図示せず)を有していてもよい。さらなる他の実施形態において、制御部5は、例えば、USB(Universal Serial Bus)ポートなどの、データ書き込み装置を接続可能な接続端子を有していてもよい。
これにより、記憶部57に記憶された清掃スケジュール500などの情報を、他の記憶媒体に記憶できる。
【0077】
(5−2)清掃制御部の構成
以下、清掃部3を制御する清掃制御部51の構成について、
図6を用いて詳細に説明する。
図6は、清掃制御部の詳細構成を示す図である。
清掃制御部51は、清掃切替部511を有する。清掃切替部511は、3つの端子a、b、及びcを有している。端子aは清掃条件教示部93に接続され、端子bは清掃部制御部513及び制御統括部55に接続され、端子cは制御統括部55に接続されている。設定部9がディスプレイ97を有する場合には、端子bにディスプレイ97が接続されてもよい。
【0078】
清掃切替部511は、切替部91により選択されている動作モードに基づいて、端子bと端子aとを接続するか、あるいは、端子bと端子cとを接続するかのいずれかを選択して、清掃部制御部513に対して教示清掃条件を出力するか、再現清掃条件を出力するかを決定する。
【0079】
具体的には、切替部91において手動操作モード(手動操作教示モードも含む)が選択されていれば、清掃切替部511は、端子aと端子bとを接続することで、清掃条件教示部93を、清掃部制御部513及び制御統括部55に接続する。これにより、清掃切替部511は、手動操作モード又は手動操作教示モードの実行時には、清掃条件教示部93にて設定された教示清掃条件を、清掃部制御部513及び制御統括部55に送信できる。また、ディスプレイ97が端子bに接続されている場合には、教示清掃条件をディスプレイ97に表示できる。
【0080】
一方、切替部91において自律清掃モードが選択されていれば、清掃切替部511は、端子bと端子cとを接続することで、制御統括部55を、清掃部制御部513に接続する。これにより、清掃切替部511は、自律清掃モードの実行時には、制御統括部55から出力される再現清掃条件を、清掃部制御部513に送信できる。また、ディスプレイ97が端子bに接続されている場合には、再現清掃条件をディスプレイ97に表示できる。
【0081】
清掃部制御部513は、受信した教示清掃条件又は再現清掃条件に基いて、洗浄用部材回転モータ353、洗浄用部材押圧アクチュエータ357、洗浄液供給ポンプ311、及び/又は吸引モータ333に出力すべき制御量を算出し、当該制御量に応じた駆動電力を、上述のモータ、ポンプ、及び/又はアクチュエータに出力する。
【0082】
具体的には、清掃部制御部513は、清掃条件としての床面Fの洗浄力Wに基づいて、洗浄用部材回転モータ353の回転数、及び/又は、洗浄用部材押圧アクチュエータ357の押圧力を算出して、当該回転数及び押圧力に応じた駆動電力を、それぞれ、洗浄用部材回転モータ353及び洗浄用部材押圧アクチュエータ357に出力することで、洗浄用部材35による床面Fの洗浄力を制御する。
【0083】
清掃部制御部513は、清掃条件としての洗浄液の供給量Sに基づいて洗浄液供給ポンプ311の洗浄液流量を算出し、当該流量に応じた駆動電力を洗浄液供給ポンプ311に出力することで、洗浄液吐出口31から吐出される洗浄液の量を制御する。
【0084】
清掃部制御部513は、清掃条件としての吸引力Pに基づいて吸引モータ333の回転数(及び/又は出力)を算出し、当該回転数(及び/又は出力)に応じた駆動電力を吸引モータ333に出力することで、吸引口O2の吸引力を制御する。
【0085】
なお、清掃部3がスキージ昇降アクチュエータ337を有する場合には、清掃部制御部513は、スキージ33を昇降させる駆動信号を当該アクチュエータに出力することで、スキージ33を昇降できる。
【0086】
(5−3)走行制御部の構成
以下、走行部1を制御する走行制御部53の構成について、
図7を用いて詳細に説明する。
図7は、走行制御部の詳細構成を示す図である。
走行制御部53は、走行切替部531を有する。走行切替部531は、3つの端子d、e、及びfを有している。端子dは走行経路教示部7に接続され、端子eはモータ制御部533に接続され、端子fは制御統括部55に接続されている。
【0087】
走行切替部531は、切替部91により選択されている動作モードに基づいて、端子eと端子dとを接続するか、あるいは、端子eと端子fとを接続するかのいずれかを選択する。
【0088】
具体的には、切替部91において手動操作モード(手動操作教示モードも含む)が選択されていれば、走行切替部531は、端子eと端子dとを接続することで、走行経路教示部7をモータ制御部533に接続する。これにより、走行切替部531は、手動操作モード又は手動操作教示モードの実行時には、走行経路教示部7のハンドル71a、71bの回動量及び/又は回転方向を示す信号を、モータ制御部533に送信できる。
【0089】
一方、切替部91において自律清掃モードが選択されていれば、走行切替部531は、端子eと端子fとを接続することで、制御統括部55をモータ制御部533に接続する。これにより、走行切替部531は、自律清掃モードの実行時には、制御統括部55から出力される再現走行制御指令を、モータ制御部533に送信できる。
【0090】
モータ制御部533は、入力されたハンドル71a、71bの回動量/回動方向、又は、再現走行制御指令に基づいて、走行モータ11の目標回転速度を算出し、当該目標回転速度にて走行モータ11を回転させるための駆動電力を、走行モータ11に出力する。
モータ制御部533は、エンコーダ111からのパルス信号に基づいて実際の走行モータ11の回転速度を算出しフィードバックして、走行モータ11に出力すべき駆動電力を算出する。従って、モータ制御部533は、例えば、PI(Proportional Integral)制御理論や、PID(Proportional Integral Differential)制御理論などを用いて走行モータ11を制御する。
【0091】
本実施形態においては、本体Bの底部の左右端のそれぞれに、走行モータ11及び主輪13が設けられている。このような場合、モータ制御部533は、左右2つの走行モータ11のそれぞれの回転速度及び回転方向を独立に制御して、洗浄機100の進行方向を決定する。
【0092】
他の実施形態において、制御部5が複数のコンピュータシステムにて構成される場合、モータ制御部533は、当該複数のコンピュータシステムのうちの1つであってもよい。すなわち、モータ制御部533の機能のみを1つのコンピュータシステムにて実現してもよい。この場合、モータ制御部533は、例えば、PI制御理論又はPID制御理論を用いたモータ制御装置である。
【0093】
(5−4)制御統括部の構成
以下、制御統括部55の構成について、
図8を用いて詳細に説明する。
図8は、制御統括部の詳細構成を示す図である。
制御統括部55は、教示データ取得部551を有する。教示データ取得部551は、手動操作教示モードの実行時に、教示位置情報と、教示清掃条件とを、教示データ取得時間において取得する。具体的には、教示データ取得部551は、SLAM部555(後述)から教示データ取得時間と教示位置情報とを入力し、清掃制御部51から当該教示データ取得時間における教示清掃条件を入力する。教示データの取得時間としては、例えば、制御部5のシステムクロックとできる。
教示データ取得部551は、取得した教示データ取得時間、教示位置情報、及び教示清掃条件を、清掃スケジュール作成部553に出力する。
【0094】
清掃スケジュール作成部553は、教示データ取得部551から取得した教示位置情報と、教示清掃条件と、教示データ取得時間と、を関連付けて清掃スケジュール500を作成して記憶部57に記憶する。
【0095】
SLAM部555は、本体Bの前方に設けられた前方検出器5551a(
図1)にて取得した洗浄機100の前方に存在する障害物に関する情報と、本体Bの後方に設けられた後方検出器5551b(
図1)にて取得した洗浄機100の後方に存在する障害物に関する情報と、エンコーダ111にて取得した走行モータ11の回転量に基づいて、洗浄機100の所定の座標上の位置に関する情報(位置情報)を推定する。
【0096】
前方検出器5551a及び後方検出器5551bは、例えば、その検出範囲が180°以上のレーザーレンジファインダ(Laser Range Finder、LRF)である。レーザーレンジファインダを前方検出器5551a及び後方検出器5551bとして用いた場合、走行部1と障害物との距離と、当該障害物が存在する方向とが、障害物に関する情報として取得される。
【0097】
他の実施形態において、前方検出器5551aの検出範囲(検出角度及び/又は検出距離)を、後方検出器5551bの検出範囲よりも広くしてもよい。これにより、洗浄機100の前方方向であってより広範囲に存在する障害物に関する情報を取得できる。
【0098】
制御統括部55は、清掃スケジュール修正部557を有する。清掃スケジュール修正部557は、清掃スケジュール500に記憶された各教示位置情報におけるスキージ33の位置、及び、スキージ33の幅寸法に基づいて、清掃スケジュール500に従って洗浄機100が移動するときのスキージ33の軌跡(スキージ軌跡と呼ぶことにする)を算出し、現在の清掃スケジュール500に記憶されている洗浄液の吐出位置が算出されたスキージ軌跡に含まれているか否かを判定する。
【0099】
当該判定の結果、算出されたスキージ軌跡に含まれない洗浄液の吐出位置が、現在の清掃スケジュール500中に存在していれば、清掃スケジュール修正部557は、洗浄液の吐出位置がスキージ軌跡に含まれるように現在の清掃スケジュール500を修正することで、新たな清掃スケジュールを作成し記憶部57に記憶する。
清掃スケジュール修正部557による清掃スケジュール500の修正方法については、後ほど詳しく説明する。
【0100】
制御統括部55は、清掃再現部559を有する。清掃再現部559は、自律清掃モードの実行時に、清掃スケジュール500に記憶された教示データ取得時間、教示清掃条件、及び教示位置情報に基づいて、自律清掃モードの実行開始からの所定の経過時間における再現清掃条件と再現走行制御指令とを算出し、それぞれ、清掃制御部51及び走行制御部53に出力する。
【0101】
(5−5)SLAM部の構成
以下、SLAM部555の構成の詳細について、
図8を用いて説明する。本実施形態に係るSLAM部555は、SLAM(Simultaneous Localization and Mapping)法にて、洗浄機100の位置(位置情報)推定と地図情報の作成とを実行する。
SLAM部555は、地図作成部5553を有する。地図作成部5553は、前方検出器5551aにて取得された前方の障害物(例えば、壁など)に関する情報、後方検出器5551bにて取得された後方の障害物に関する情報と、を用いて地図情報を作成する。地図情報は、位置推定部5555において位置情報を推定する際に用いられる。地図情報としては、ローカルマップとグローバルマップとが存在する。
【0102】
ローカルマップは、洗浄機100の周囲に存在する障害物(の存在位置)に関する地図情報である。ローカルマップは、前方検出器5551aにて取得された前方の障害物に関する情報と、後方検出器5551bにて取得された後方の障害物に関する情報とを、必要に応じて座標変換することにより作成される。
【0103】
グローバルマップは、床面Fを清掃する際に洗浄機100が移動する環境(移動環境)に存在する障害物(の存在位置)に関する地図情報である。グローバルマップは、手動操作教示モードの実行時に取得したローカルマップに基づいて生成される。そのため、ローカルマップは、それを取得した時間(例えば、教示データ取得時間)に関連付けられて記憶部57に記憶されている。
他の実施形態において、ローカルマップは、それを取得したときの洗浄機100の推定位置に関連付けられて記憶部57に記憶されてもよい。
さらなる他の実施形態において、グローバルマップは、専用のソフトウェア又はCADなどを用いて作成されてもよい。この場合、当該ソフトウェアなどで作成したグローバルマップは、洗浄機100の制御部5が解釈できるようなデータに変換される。
【0104】
地図作成部5553は、ある経過時間に関連付けられたローカルマップと、当該ある経過時間の近傍の時間に関連付けられたローカルマップとを、各経過時間における洗浄機100の位置に配置する(ローカルマップの中心を、対応する経過時間における洗浄機100の位置に配置する)ことで、移動環境のうちの一部(例えば、位置推定に必要な程度の範囲)を表す地図情報を、グローバルマップとして生成する。
また、地図作成部5553は、過去に生成したグローバルマップのうち、位置推定に不要となった部分を削除する。
【0105】
他の実施形態において、移動環境が環状経路を形成しない場合など、「環状経路問題」(初期段階に生成されたグローバルマップの一部と、最終段階に生成されたグローバルマップに一部が一致しなくなる問題)が発生しない場合には、移動環境の全体を表す地図情報をグローバルマップとして生成してもよい。
【0106】
SLAM部555は、位置推定部5555を有する。位置推定部5555は、地図作成部5553が生成したグローバルマップと、ローカルマップと、走行モータ11の回転量と、に基づいて、所定の座標上の洗浄機100の位置に関する位置情報を推定する。
【0107】
具体的には、以下のようにして位置情報が推定される。ここでは、洗浄機100がある所定の時刻(時刻t
kとする)における(推定)位置から移動して、次の時刻(時刻t
k+1とする)にて洗浄機100が到達する位置を推定する場合を例として考える。
まず、位置推定部5555は、時刻t
kから時刻t
k+1までの間にエンコーダ111から出力されたパルス数から、時刻t
kから時刻t
k+1までの間の主輪13の回転量を算出し、当該回転量に基づいて、主輪13の回転による洗浄機100の移動距離を推定する(デッドレコニング)。
【0108】
次に、位置推定部5555は、時刻t
kにおける事後確率(洗浄機100の位置と、時刻t
kにおいて当該位置に洗浄機100が存在する確率と、の関係を表した確率分布に対応する)を、主輪13の回転による洗浄機100の移動距離分だけ移動させて、時刻t
k+1における事前確率を算出する。
他の実施形態において、位置推定部5555は、主輪13の回転による移動距離分だけ移動後の事後確率の確率分布の幅(標準偏差)を拡大して、時刻t
k+1における事前確率としてもよい。これにより、主輪13と床面Fとの滑りを考慮した事前確率を算出できる。
【0109】
その後、位置推定部5555は、時刻t
k+1におけるローカルマップとグローバルマップとを地図作成部5553から取得し、時刻t
k+1におけるローカルマップとグローバルマップとをマップマッチングし、時刻t
k+1における洗浄機100の位置情報を推定する。
【0110】
具体的には、例えば、グローバルマップ上において、主輪13の回転量に基づいて算出された推定位置の近傍のいくつかの位置に、時刻t
k+1におけるローカルマップを配置し、必要に応じて(例えば、洗浄機100の姿勢が変化している場合には)当該ローカルマップをその中心回りに回転させて、マップマッチングを行う。
位置推定部5555は、当該マップマッチングの結果に基づいて、尤度(ローカルマップを配置した位置と、当該位置におけるグローバルマップとローカルマップ情報との一致度と、の関係を表すものに対応)を算出する。
【0111】
その後、位置推定部5555は、尤度と時刻t
k+1における事前確率とを乗算することにより、時刻t
k+1における事後確率を算出する。位置推定部5555は、時刻t
k+1における事後確率が最大値となる位置、すなわち、洗浄機100が存在する可能性が最も高いと推定される位置を、時刻t
k+1における洗浄機100の存在位置(位置情報)と推定する。
時刻t
k+1における事後確率は、次の位置推定において事前確率として使用される。
【0112】
上記のように、位置推定部5555が、主輪13の回転量に基づいた移動距離と、前方検出器5551a及び後方検出器5551bとを用いて得られた地図情報と、を用いて位置推定を実行することにより、主輪13の回転量に基づいた移動距離に含まれる誤差(主に、主輪13と床面Fとの間の滑りに起因)と、地図情報に含まれる誤差(主に、前方検出器5551a及び後方検出器5551bにて取得した情報に含まれるノイズ成分に起因)とを相補的に減少させて、精度のよい位置推定を実行できる。
【0113】
SLAM部555は、経過時間決定部5557を有する。経過時間決定部5557は、教示データ取得時間及び自律清掃モードの実行開始からの経過時間を決定する。本実施形態において、経過時間決定部5557は、例えば、制御部5を構成するマイコンシステムなどの時計機能を用いて、教示データ取得時間を決定する。
【0114】
一方、自律清掃モードの実行開始からの経過時間は、位置推定部5555にて推定された位置情報に基づき決定される。具体的には、例えば、清掃スケジュール500に記憶されている位置情報のうち、位置推定部5555にて推定された洗浄機100の位置情報に最も近い位置情報に関連付けられている教示データ取得時間を、経過時間とする。
【0115】
他の実施形態において、上記の経過時間は、位置推定部5555にて推定された位置情報に近い2つの位置情報を清掃スケジュール500から抽出し、当該2つの位置情報の線形補間により算出されてもよい。これにより、より正確な経過時間を算出できる。
【0116】
自律清掃モードの実行開始からの経過時間を、位置推定部5555にて推定された位置情報に基づいて決定することにより、洗浄機100は、自律清掃モードの実行時に、教示された教示清掃条件を実行するタイミングと場所とを正確に把握しながら、自律的に清掃作業を再現できる。
例えば、自律清掃モードの実行時において、障害物回避を目的として、洗浄機100が清掃スケジュール500に示されていない移動速度の減少又は移動停止をした場合に、清掃作業が時間の経過と共に進んでしまい、現在位置において本来は行われない清掃作業が自律的に実行されてしまうことを回避できる。
【0117】
(6)自律走行式床洗浄機の動作
(6−1)基本動作
以下、洗浄機100の動作について説明する。まず、洗浄機100の基本的な動作を、
図9Aを用いて説明する。
図9Aは、洗浄機の基本的な動作を示すフローチャートである。
洗浄機100が動作を開始すると、制御部5は、切替部91の状態を確認する(ステップS1)。切替部91が「自動」を選択している場合(ステップS1において「自律清掃モード」の場合)、自律清掃モードが実行され(ステップS2)、記憶部57に記憶された清掃スケジュール500に従って、洗浄機100は自律的に清掃作業を実行する。
【0118】
一方、切替部91が「手動」を選択している場合(ステップS1において「手動操作モード」の場合)、制御部5は、実行すべき動作モードが手動操作モードと判断する。
手動操作モードを実行中に手動操作記憶スイッチ92が押されたことを検知すると(ステップS3において「Yes」の場合)、制御部5は、動作モードを手動操作教示モードに移行させる(ステップS4)。その結果、手動操作記憶スイッチ92が押されたタイミング以降の操作者による清掃作業が、清掃スケジュール500として記憶される。
【0119】
一方、手動操作記憶スイッチ92が押されない場合(ステップS3において「No」の場合)には、操作者の操作による洗浄機100の清掃作業を記憶しない手動操作モードの実行を維持する(ステップS5)。
【0120】
上記のステップS4において手動操作教示モードを実行中に、制御部5は、手動操作記憶スイッチ92が押されたか否かをモニターする。手動操作教示モードの実行中に手動操作記憶スイッチ92が押された場合には、そのタイミングで動作モードが手動操作モードに切り替わり、当該タイミング以降の清掃作業が清掃スケジュール500に記憶されなくなる。すなわち、手動操作教示モードの実行時に手動操作記憶スイッチ92を押すことにより、操作者は、清掃作業の途中の任意のタイミングにてその記憶(教示)を停止できる。
【0121】
上記のように、本実施形態に係る洗浄機100は、切替部91における動作モードの選択、及び、手動操作記憶スイッチ92が押されたか否かに応じて、自律清掃モード、手動操作モード、及び手動操作教示モードを実行できる。
【0122】
(6−2)手動操作教示モードの動作
以下、上記のステップS4において実行される手動操作教示モードの動作について、
図9Bを用いて説明する。
図9Bは、手動操作教示モードの動作を示すフローチャートである。
例えば、手動操作記憶スイッチ92が押された後に洗浄機100の手動操作を開始するか、又は、手動操作中に手動操作記憶スイッチ92が押されて(ステップS41)、当該手動操作の教示が開始されると、清掃スケジュール500の作成が開始される。
【0123】
具体的には、教示データ取得部551が、手動操作記憶スイッチ92が押されたタイミング(経過時間:0)において、当該タイミングにおける、清掃制御部51が洗浄液供給ポンプに出力している洗浄液の供給量S、吸引モータ333に出力している吸引力P、洗浄用部材回転モータ353及び洗浄用部材押圧アクチュエータ357に出力している洗浄力Wを、経過時間0における教示清掃条件として入力する。
また、位置推定部5555に対して、経過時間0における洗浄機100の位置情報を推定するよう指令し、推定された位置情報を教示位置情報として入力する。
【0124】
清掃スケジュール作成部553は、経過時間0における教示位置情報と教示清掃条件とを教示データ取得部551から入力し、当該教示位置情報と教示清掃条件とを経過時間0と関連付けて記憶部57に記憶し、清掃スケジュール500とする。
【0125】
その後、教示データ取得部551は、経過時間決定部5557にて決定される経過時間をモニターし、当該経過時間が教示データ取得時間となっていれば(ステップS42において「Yes」の場合)、位置推定部5555から教示データ取得時間における位置情報を教示位置情報として、清掃制御部51から教示データ取得時間における清掃条件を教示清掃条件として入力する(ステップS43)。これにより、教示データ取得時間毎に、教示位置情報と教示清掃条件とを取得できる。
上記の教示データ取得時間は、例えば、手動操作記憶スイッチ92を押してから所定時間(例えば、500ms)毎のタイミングとできる。
【0126】
清掃スケジュール作成部553は、教示データ取得部551にて取得した教示位置情報と教示清掃条件とを、これらを取得した教示データ取得時間に関連付けて清掃スケジュール500に記憶する(ステップS44)。
上記のステップS41〜S44を、操作者による清掃作業が終了するまで(ステップS45において「Yes」となるまで)繰り返し実行することにより、操作者による清掃作業の開始から終了までの教示位置情報と教示清掃条件とを、清掃スケジュール500として記憶できる。
【0127】
清掃作業の(記憶の)終了は、手動操作教示モードの実行中に手動操作記憶スイッチ92を押すことにより指令できる。他の実施形態において、緊急停止ボタンなどの緊急停止の指令時においても、清掃作業の(記憶の)終了を指令可能となっていてもよい。
【0128】
本実施形態においては、清掃スケジュール作成部553は、さらに、洗浄機100が通過した各点における曲率半径ρを算出して、清掃スケジュール500に記憶する(ステップS46)。
具体的には、清掃スケジュール作成部553は、例えば、清掃スケジュール500において、曲率半径ρを算出する対象の位置と、当該対象の位置に到達するよりも過去に洗浄機100が到達した位置であって当該対象の位置から所定の距離だけ離れた位置と、当該対象の位置から将来において洗浄機100が到達する位置であって当該対象の位置から所定の距離だけ離れた位置と、を通る円(例えば、(x−a)
2+(y−b)
2=R
2と定義する)の半径(上記の式における「R」)を、曲率半径ρとして算出する。
【0129】
上記のステップS41〜S46を実行することで、最終的には
図10に示すような清掃スケジュール500が作成される。
図10は、清掃スケジュールの一例を示す図である。
図10に示す清掃スケジュールは、
図11に示すようなx−y座標系にて定義されているとする。具体的には、
図11の紙面の横方向にx軸を定義し、それに垂直な縦方向にy軸を定義する。また、x軸と平行な角度を0として、x軸から反時計回り方向に増加する角度θを定義する。この座標系において、x軸と洗浄機100の前後方向(直進時の移動方向)とのなす角度を洗浄機100の「姿勢」と定義する。
図11は、位置情報が定義される座標系の一例である。
【0130】
図10に示す清掃スケジュール500において、T
0、T
1、・・・T
nは、教示データ取得時間である。(x
0,y
0,θ
0)、(x
1,y
1,θ
1)、・・・(x
n,y
n,θ
n)は、対応する教示データ取得時間における教示位置情報である。(x
0,y
0)、(x
1,y
1)、・・・(x
n,y
n)が、対応する教示データ取得時間におけるx−y座標上の洗浄機100の位置情報(座標値)であり、θ
0、θ
1、・・・θ
nが、対応する教示データ取得時間における洗浄機100の姿勢である。
【0131】
清掃スケジュール500において、S
0、S
1、・・・S
nは、対応する教示データ取得時間における洗浄液の供給量である。W
0、W
1、・・・W
nは、対応する教示データ取得時間における床面Fの洗浄力である。P
0、P
1、・・・P
nは、対応する教示データ取得時間における吸引口O2の吸引力である。ρ
1、ρ
2、・・・ρ
nは、対応する教示データ取得時間における移動経路の曲率半径である。
【0132】
上記のようにして清掃スケジュール500を作成後、制御部5は、各種設定において作成後の清掃スケジュール500を修正する機能が有効になっているかを確認し、有効になっていれば(ステップS47において「Yes」の場合)、清掃スケジュール修正部557に対して、清掃スケジュール500を修正するよう指令する(ステップS48)。
ステップS48において実行される清掃スケジュール500の修正については、後ほど詳しく説明する。
【0133】
一方、清掃スケジュール500を修正する機能が無効に設定されている場合(ステップS47において「No」の場合)、作成した清掃スケジュール500をそのまま維持して、手動操作教示モードを終了する。
上記のようにして、教示データ取得時間において取得した位置情報、教示清掃条件、及び曲率半径を、清掃スケジュール500として洗浄機100に教示できる。
【0134】
(6−3)清掃スケジュールの修正処理
以下、上記のステップS48において実行される清掃スケジュール500の修正処理について、
図12を用いて説明する。
図12は、清掃スケジュールの修正処理を示すフローチャートである。
【0135】
清掃スケジュール500の修正は、洗浄液吐出口31から吐出された洗浄液がスキージ33により回収できなかった場合、すなわち、現在の清掃スケジュール500を忠実に実行すると床面Fに洗浄液が残留する可能性がある場合に実行される。
【0136】
従って、清掃スケジュール修正部557は、まず、現在記憶部57に記憶されている清掃スケジュール500を再現した場合に、床面Fに吐出された全ての洗浄液をスキージ33により回収できるか否かの判定を行う。以下では、当該判定について、教示データ取得時間T
mにおいて吐出された洗浄液がスキージ33にて回収できるか否かの判定を例にとって説明する。
【0137】
本実施形態の清掃スケジュール修正部557は、教示データ取得時間T
mにおいて吐出された洗浄液が、教示データ取得時間T
mから所定時間経過後の教示データ取得時間T
m+q(q>0)までの間に回収できるか否かを判定する。
【0138】
従って、洗浄液をスキージ33により回収できるか否かを判定するに当たり、清掃スケジュール修正部557は、教示データ取得時間T
m〜T
m+qの間の洗浄機100の移動に伴ってスキージ33がどのような移動軌跡にて移動するかを算出する。その後、教示データ取得時間T
mにおいて吐出された洗浄液が当該移動軌跡に含まれるか否かにより、教示データ取得時間T
mにおいて吐出された洗浄液を回収できるか否かを判定する。上記のスキージ33の移動軌跡を、教示データ取得時間T
mにおける「スキージ軌跡」と呼ぶことにする。
【0139】
教示データ取得時間T
mにおけるスキージ軌跡の算出は、具体的には以下のようにして実行される。
清掃スケジュール修正部557は、最初に、現在清掃スケジュール500に記憶されている位置情報(各教示データ取得時間における洗浄機100の位置)を用いて、スキージ33の移動経路を細分化する(ステップS481)。
教示データ取得時間T
mにおけるスキージ軌跡は、教示データ取得時間T
m〜T
m+qの間のスキージ33の移動軌跡である。従って、清掃スケジュール修正部557は、教示データ取得時間T
mに関連付けられている位置(x
m,y
m)から教示データ取得時間T
m+qに関連付けられている位置(x
m+q,y
m+q)までの移動経路を細分化する。
【0140】
具体的には、例えば、清掃スケジュール修正部557は、まず、清掃スケジュール500において教示データ取得時間T
mに関連付けられている位置(x
m,y
m)を通り、当該教示データ取得時間T
mに関連付けられている曲率半径ρ
mを有する円弧を、教示データ取得時間T
mから教示データ取得時間T
m+qまでの洗浄機100の移動経路とする。そして、当該洗浄機100の移動経路上に以下のようにして複数の位置を定義する。
【0141】
まず、上記の2つの位置を曲率半径ρ
mにて移動するときの移動経路(弦)の中心角をを算出する。当該中心角は、例えば、教示データ取得時間T
mから教示データ取得時間T
m+qまでの洗浄機100の姿勢角の変化(θ
m+q−θ
m)として算出できる。
【0142】
次に、位置(x
m,y
m)から移動経路上に定義された各点まで曲率半径ρ
mにて移動したときの経路(弦)の中心角を算出する。例えば、v+1個の位置が定義される場合には、細分化後のh番目の点における姿勢角の変化は、{(θ
m+q−θ
m)/v}*h(h=0,1,2,・・・v)と算出できる。
【0143】
その後、二輪差動型の走行部1の特性などを考慮して、移動経路に定義されたh番目の位置の座標(x
m(h),y
m(h))及び姿勢角θ
m(h)は、以下のように算出できる。
θ
m(h)=θ
m+{(θ
m+q−θ
m)/v}*h
x
m(h)=x
m+ρ
m*(θ
m(h)−θ
m)*cos[θ
m+{(θ
m(h)−θ
m)/2}]
y
m(h)=y
m+ρ
m*(θ
m(h)−θ
m)*sin[θ
m+{(θ
m(h)−θ
m)/2}]
【0144】
位置(x
m,y
m)から位置(x
m+q,y
m+q)までの間の移動経路の細分化の程度(細分化処理において当該連続する2つの位置に定義する通過点の数)は、教示データ取得時間の最大長さ、及び/又は、清掃スケジュール修正部557の演算処理能力などを考慮して、適宜決定できる。
【0145】
なお、教示データ取得時間T
mから教示データ取得時間T
m+qまでの間に曲率半径ρが大きく変化する場合には、曲率半径が大きく変化する前後においてそれぞれ上記の細分化を実行してもよい。
【0146】
洗浄機100の移動経路を細分化した後、清掃スケジュール修正部557は、細分化処理において定義した各通過点を洗浄機100が通過することにより形成されるスキージ軌跡を算出する(ステップS482)。
具体的には、清掃スケジュール修正部557は、まず、細分化処理にて定義した各通過点に洗浄機100の仮想モデルを配置して、各通過点におけるジョイントJの位置及びスキージ33の(中心)位置を、
図5に示した仮想モデルを用いて、以下のようにして算出する。
【0147】
例えば、洗浄機100が細分化後の位置(x
i,y
i)及び姿勢θ
iから、細分化後の位置(x
i+1,y
i+1)及び姿勢θ
i+1へと移動した場合を仮想モデルで表すと、
図13のようになる。
図13は、移動前後の洗浄機を表した仮想モデルの一例を示す図である。
【0148】
上記の場合、移動後の吸引口O2の位置P
s(i+1)、すなわち、移動後のスキージ33の中心位置P
s(i+1)は、例えば、移動後のジョイントJの位置P
j(i+1)と、移動前の吸引口O2の位置P
s(i)とを結ぶ線分(
図13においては、一点鎖線にて示した線分)上であり、かつ、移動後のジョイントJ(位置P
j(i+1))からの距離が上記のL
js(ジョイントJから吸引口O2までの長さ)である点の座標値として算出できる。なお、移動後のジョイントJの位置P
j(i+1)のx座標値はx
i+1−L
cj*cosθ
i+1、y座標値はy
i+1−L
cj*sinθ
i+1と算出できる。
【0149】
上記のように、ジョイントJの回動角度は、洗浄機100の前後方向に対して±Θ/2の範囲内に制限されている。従って、移動後のスキージ33の中心位置P
s(i+1)を算出後、清掃スケジュール作成部553は、移動後のジョイントJの位置P
j(i+1)とスキージ33の中心位置P
s(i+1)とを結ぶ直線と、移動後の洗浄機100の前進方向(点P
p(i+1)と点P
j(i+1)とを結ぶ直線)とがなす鋭角側の角度を算出し、当該角度の絶対値がΘ/2よりも大きい場合には、移動後のジョイントJに位置P
j(i+1)とスキージ33の中心位置P
s(i+1)とを結ぶ直線と移動後の洗浄機100の前進方向とがなす角度の絶対値をΘ/2として、移動後のスキージ33の中心位置P
s(i+1)の座標値を算出し直す。
【0150】
具体的には、
図14Aに示すように、x−y座標において、移動後のジョイントJの位置P
j(i+1)とスキージ33の中心位置P
s(i+1)とを結ぶ直線とx軸(の正方向)とがなす角度が、θ
i+1−Θ/2よりも小さい場合、当該角度をθ
i+1−Θ/2として移動後のスキージ33の中心位置P
s(i+1)を算出し直す。
一方、
図14Bに示すように、移動後のジョイントJの位置P
j(i+1)とスキージ33の中心位置P
s(i+1)とを結ぶ直線とx軸(の正方向)とがなす角度が、θ
i+1+Θ/2よりも大きい場合、当該角度をθ
i+1+Θ/2として移動後のスキージ33の中心位置P
s(i+1)を算出し直す。
【0151】
また、位置(x
i,y
i)及び姿勢θ
iから、位置(x
i+1,y
i+1)及び姿勢θ
i+1までの洗浄機100の移動がわずかである場合(すなわち、x
i+1−x
i、y
i+1−y
i、及びθ
i+1−θ
iの絶対値が所定の値以下の場合)、清掃スケジュール作成部553は、ジョイントJの角度が移動前後で変化していないとする。
これにより、洗浄機100の移動量が小さい場合には急激にスキージ33の角度(ジョイントJの角度)が変化しないことを、スキージ33の位置の算出の際に考慮できる。
【0152】
その後、清掃スケジュール修正部557は、例えば、以下のようにして各通過点におけるスキージ33の右端の位置P
sr’及び左端の位置P
sl’を算出する。
例えば、教示データ取得時間T
mからT
m+qまでの間に洗浄機100が通過した経路に対してv+1個の通過点を有する細分化された経路を作成し、上記に説明した方法を繰り返すことで、細分化された経路の各通過点に対して、スキージ33のジョイントJ及び中心位置が、それぞれ、(P
j(0),P
s(0))、(P
j(1),P
s(1))、(P
j(2),P
s(2))、(P
j(3),P
s(3))、・・・(P
j(v),P
s(v))と算出されているとする。
【0153】
まず、清掃スケジュール修正部557は、例えば、最初の通過点に対して算出されたジョイントJの位置P
j(0)とスキージ33の中心位置P
s(0)とを結ぶ線分P
j(0)P
s(0)に直交し、かつ、位置P
s(0)を通る直線を算出する。さらに、清掃スケジュール修正部557は、 当該直線上にあり、かつ、位置P
s(0)からw/2(w:スキージ33の幅寸法)の距離にある2つの点を、当該各通過点におけるスキージ33の右端の位置P
sr(0)及び左端の位置P
sl(0)として算出する。
【0154】
上記を繰り返して全ての通過点に対してスキージ33の右端の位置及び左端の位置を算出後、清掃スケジュール修正部557は、
図15に示すように、最初の通過点に対して算出された(教示データ取得時間T
mにおける)スキージ33の左端の位置P
sl(0)と、中間の通過点に対して算出されたスキージ33の左端の位置P
sl(1)、P
sl(2)、P
sl(3)、・・・P
sl(v−1)と、最後の通過点に対して算出された(教示データ取得時間T
m+qにおける)スキージ33の左端の位置P
sl(v)と、最後の通過点に対して算出された(教示データ取得時間T
m+qにおける)スキージ33の右端の位置P
sr(v)と、中間の通過点に対して算出されたスキージ33の右端の位置P
sr(1)、P
sr(2)、P
sr(3)、・・・P
sr(v−1)と、最初の通過点に対して算出された(教示データ取得時間T
m)におけるスキージの右端の位置P
sr(0)と、を結ぶ。これにより、2点の教示データ取得時間T
m、T
m+qにおけるスキージ軌跡を算出できる。
図15は、スキージ軌跡の一例を示す図である。
【0155】
上記のように、スキージ軌跡を算出する際に、2点の教示データ取得時間T
m、T
m+qの間に仮定した複数の仮想的なスキージ33の位置と幅とを定義する、すなわち、洗浄機100(スキージ33)の移動経路を細分化することにより、より実際的なスキージ33の移動軌跡を表したスキージ軌跡を算出できる。この結果、スキージ軌跡に洗浄液の吐出位置が含まれるか否かをより精度よく実行できる。
【0156】
また、教示データ取得時間T
mから所定時間経過後の教示データ取得時間T
m+qまでの範囲内にてスキージ軌跡を算出することにより、自律清掃モードの実行時において、ある経過時間に吐出した洗浄液が長時間床面Fに残存するといった不適切な清掃が実行されることを抑制できる。
【0157】
スキージ軌跡を算出後、清掃スケジュール修正部557は、教示データ取得時間T
mにおいて床面Fに吐出された洗浄液をスキージ33により回収できるか否かの判定を行う。具体的には、清掃スケジュール修正部557は、教示データ取得時間T
mにおいて吐出した洗浄液の吐出位置が、算出したスキージ軌跡に含まれているか否かを判定する(ステップS483)。
【0158】
ステップS483において、清掃スケジュール修正部557は、まず、
図5に示すような仮想モデルを用いて、教示データ取得時間T
mにおいて吐出した洗浄液の吐出位置P
wを算出する。
教示データ取得時間T
mにおける洗浄液吐出口31の位置P
p(m)のx座標値は、仮想モデルを用いて、x
m+L
pc*cosθ
mと算出できる。一方、y座標値は、y
m+L
pc*sinθ
mと算出できる。洗浄液の吐出位置P
wの各座標値は、例えば、教示データ取得時間T
mにおける洗浄液吐出口31の位置P
p(m)を中心とし洗浄用部材35よりもわずかに小さい直径を有する円(吐出位置P
wを定義する多角形が内接する円)の円周と、位置P
p(m)から延び傾きがtan(θ
m+(u−1)*360/N)である線分との交点の座標値として算出できる。
上記の数式のNは、洗浄液の吐出位置P
wを定義するための多角形の頂点の数であり、本実施形態では8である。uは、1からNまで変化する正の整数である。
【0159】
次に、清掃スケジュール修正部557は、上記のように算出した洗浄液の吐出位置P
wの全てが、ステップS482にて算出したスキージ軌跡に含まれるか否かを判定する。
【0160】
スキージ軌跡に洗浄液の吐出位置P
wが含まれるか否かは、スキージ軌跡の頂点のうちの1つ(原点となる頂点)から他の頂点に向かうベクトルと、当該原点となる頂点から吐出位置P
wに向かうベクトルとの外積を、原点となる頂点を変更して算出し、原点となる頂点を変更しても外積の正負が変化しない場合に、スキージ軌跡に洗浄液の吐出位置P
wが含まれると判定する。
【0161】
外積の算出結果を用いた、上記のスキージ軌跡に洗浄液の吐出位置P
wが含まれているか否かの判定方法を、簡単のため、スキージ軌跡が
図16に示すような四角形となる場合を例にとって具体的に説明する。
図16は、スキージ軌跡に洗浄液の吐出位置が含まれるか否かの判定方法を模式的に示す図である。
【0162】
スキージ33の両端の位置P
sl''、P
sr''が、洗浄機100の移動により、それぞれP
sl'''、P
sr'''に移動した場合、
図16に示す四角形P
sl''P
sl'''P
sr'''P
sr''がスキージ軌跡として形成される。
【0163】
外積の演算においては、外積された2つのベクトルのうちの一方を他方と平行になるように回転させるときの回転方向により、その正負(外積が正となるか負となるかは、座標系の定義により変化する)が決定される。
従って、スキージ軌跡の原点となる頂点から他の頂点に向かうベクトルと、当該原点となる頂点から吐出位置P
wに向かうベクトルとの外積を算出する際には、2つのベクトルAとBの外積を表すA×Bとの式において、例えば、Aを原点となる頂点から吐出位置P
wに向かうベクトルとし、Bを原点となる頂点からスキージ軌跡の他の頂点に向かうベクトルとする。
【0164】
図16に示すスキージ軌跡においては、清掃スケジュール修正部557は、例えば、頂点P
sl''を原点とする場合については、
図16において実線にて表された2つのベクトルの外積(P
sl''P
w)×(P
sl''P
sl''')を算出する。頂点P
sl'''については、
図16において点線にて表された2つのベクトルの外積(P
sl'''P
w)×(P
sl'''P
sr''')を算出する。頂点P
sr'''については、
図16において二点鎖線にて表された2つのベクトルの外積(P
sr'''P
w)×(P
sr'''P
sr'')を算出する。頂点P
sr''については、
図16において一点鎖線にて表された2つのベクトルの外積(P
sr''P
w)×(P
sr''P
sl'')を算出する。
【0165】
清掃スケジュール修正部557は、上記の4つの外積の算出結果が全て正であるか又は全て負であれば、スキージ軌跡に洗浄液の吐出位置P
wが含まれると判断する。
【0166】
他の実施形態において、上記の2つのベクトルの外積を算出する際に、ベクトルの定義の方法などによっては、例えば、ベクトルが交差したり、スキージ軌跡が凹形状となったりする場合がある。このような場合には、例えば、スキージ軌跡に含まれる三角形を定義して、当該三角形に吐出位置P
wが含まれるか否かを判定してもよい。
【0167】
さらなる他の実施形態において、清掃スケジュール修正部557は、各教示データ取得時間に関連付けられた吸引口O2による吸引力Pを考慮してスキージ軌跡を算出してもよい。例えば、教示データ取得時間T
m〜T
m+qにおける吸引力P
m〜P
m+qのうち、吸引力が0に設定されている教示データ取得時間がある場合には、当該教示データ取得時間から次の教示データ取得時間までの間のスキージ軌跡内に吐出位置P
wが含まれていたとしても、当該吐出位置P
wはスキージ軌跡に含まれないと判定してもよい。
【0168】
上記により、洗浄液の吐出位置P
wがスキージ軌跡に含まれないと判定された場合(ステップS483において「No」の場合)、清掃スケジュール修正部557は、記憶されている洗浄液の吐出位置の全てがスキージ軌跡に含まれるよう清掃スケジュール500を修正する(ステップS484)。
【0169】
具体的には、清掃スケジュール修正部557は、吐出位置P
wがスキージ軌跡に含まれないと判定された教示データ取得時間T
mに関連付けられている洗浄液の供給量S
mを0と設定する。すなわち、教示データ取得時間T
mにおいて洗浄液を供給しないようにする。
これにより、スキージ軌跡に含まれる洗浄液の吐出位置P
wにおいてのみ洗浄液を供給することとする新たな清掃スケジュール500を作成できる。
【0170】
他の実施形態において、清掃スケジュール修正部557は、スキージ軌跡に含まれない洗浄液の吐出位置P
wにおける洗浄液(吸引口O2)の吸引力を増加させるよう、清掃スケジュール500を修正してもよい。
具体的には、例えば、清掃スケジュール修正部557は、
図5の仮想モデルの吐出位置P
wが形成する多角形の大きさを、当該仮想モデルのおける大きさよりも若干小さくし、若干小さくした多角形の頂点に存在する吐出位置の全てが算出したスキージ軌跡に含まれている場合に、吸引口O2の吸引力を増加させるよう、清掃スケジュール500を修正する。これにより、洗浄機100は、洗浄液を可能な限り回収できる清掃スケジュール500を作成し、清掃効率が高い清掃作業を自律的に実行できる。
【0171】
さらなる他の実施形態において、清掃スケジュール修正部557は、洗浄液の吐出位置P
wがスキージ軌跡に含まれている場合には、吐出された洗浄液を回収できるよう吸引力P
mを調整するか、及び/又は、設定された吸引力P
mで回収できる程度に洗浄液の供給量S
mを調整してもよい。吐出された洗浄液量(体積)は、例えば、洗浄液の供給量S
mと洗浄機100の移動速度とから算出できる。
【0172】
他の実施形態において、清掃スケジュール修正部557は、洗浄液の吐出位置P
wがスキージ軌跡に含まれない場合だけでなく、清掃スケジュール500に記憶されている他の不適切な教示清掃条件を修正してもよい。
【0173】
具体的には、例えば、教示データ取得時間T
mにおいて洗浄液の供給がなされている場合に、当該洗浄液をスキージ33にて回収する教示データ取得時間T
mから教示データ取得時間T
m+qまでの間において、吸引口O2の吸引力が全て0、又は、いくつかのタイミングの吸引力が0となっている場合に、清掃スケジュール修正部557は、当該教示データ取得時間の吸引力を0でない値に修正するか、又は、当該教示データ取得時間における洗浄液の供給量を0としてもよい。
【0174】
これにより、例えば、洗浄液の供給をしたにも関わらず吸引口O2による吸引を実行していないといった不適切な清掃条件が教示清掃条件として清掃スケジュール500に記憶されている場合に、このような不適切な教示清掃条件を修正して、床面Fに洗浄液が残留しないような適切な清掃スケジュール500を新たに生成できる。
【0175】
一方、洗浄液の吐出位置P
wがスキージ軌跡に含まれていると判定された場合(ステップS483において「Yes」の場合)、清掃スケジュール修正部557は、教示データ取得時間T
mにおける教示清掃条件を修正することなく、現在の清掃スケジュール500をそのまま維持する。
【0176】
その後、清掃スケジュール修正部557は、清掃スケジュール500に記憶されている全ての教示データ取得時間に対してスキージ軌跡に吐出位置P
wが含まれるか否かの判定を実行したと判定されるまで(ステップS485が「No」である限り)、上記のステップS481〜S484を繰り返し実行した後、清掃スケジュール500の修正を終了する。
【0177】
本実施形態においては、上記のように、清掃スケジュール修正部557は、2点の教示データ取得時間T
m、T
m+qの間に洗浄機100が移動した経路に複数の仮想的な通過点を配置し(細分化)、上記の2点の教示データ取得時間T
m、T
m+qにおける通過点を含めた仮想的な各通過点におけるスキージ33の位置及び幅に基づいてスキージ軌跡を算出している。これにより、より実際の移動軌跡に近いスキージ33の移動軌跡を表したスキージ軌跡を算出できる。
【0178】
この結果、例えば、
図17Aに示すように、2点の教示データ取得時間T
m、T
m+qにおけるスキージ33の位置P
sl(m)、P
sr(m)、P
sl(m+q)、P
sr(m+q)及び幅wのみを用いてスキージ軌跡を定義した場合にはスキージ軌跡に含まれないと判断された洗浄液の吐出位置P
wを、移動経路を細分化して算出された実際により近いスキージ33の移動軌跡に基づいたスキージ軌跡においては、
図17Bに示すように、当該吐出位置P
wがスキージ軌跡に含まれるとより精度よく判定できる。
図17Aは、移動経路の細分化をしない場合のスキージ軌跡と吐出位置との関係の一例を示す図である。
図17Bは、移動経路を細分化しないで算出したスキージ軌跡には含まれないと判定された吐出位置を、移動経路を細分化して算出したスキージ軌跡には含まれると判定される場合の一例を示す図である。
【0179】
(6−4)自律清掃モードにおける動作
次に、
図9AのステップS2において実行される、教示された清掃作業を再現する自律清掃モードの実行時における洗浄機100の動作について、
図18を用いて説明する。
図18は、自律清掃モードの実行時の洗浄機の動作を示すフローチャートである。今、
自律清掃モードの実行開始からの経過時間t
n-1までの清掃作業が実行済みであるとする。ここで、nは、n番目の自律清掃のための制御を示す。
洗浄機100が自律清掃モードを開始すると、最初に、SLAM部555が、前方検出器5551a及び後方検出器5551bから、前方の障害物に関する情報及び後方の障害物に関する情報を取得する(ステップS21)。
【0180】
その後、位置推定部5555が、エンコーダ111にて測定された走行モータ11の回転量、グローバルマップ、及び上記のステップS21において取得された情報に基づいて得られたローカルマップに基づいて、洗浄機100のx−y座標上の位置を推定する(ステップS22)。例えば、洗浄機100の位置が、x−y座標上において、(x
n’,y
n’、θ
n’)と推定されたとする。
【0181】
洗浄機100の位置を推定後、経過時間決定部5557が、自律清掃モードの実行開始からの経過時間t
nを決定し(ステップS23)、清掃再現部559が、経過時間t
nにおける再現走行制御指令及び再現清掃条件を、以下のように算出する(ステップS24)。
【0182】
今、経過時間t
nが、教示データ取得時間T
L(に最も近い)であると決定されたとする。この場合、清掃再現部559は、次の教示データ取得時間T
L+1に関連付けられた位置情報(x
L+1,y
L+1,θ
L+1)を、清掃スケジュール500から読み出し、経過時間t
nにおける再現走行制御指令を、推定された位置情報と目標とする位置情報との差分(x
L+1−x
n’,y
L+1−y
n’,θ
L+1−θ
n’)に基づいて算出する。
【0183】
一方、清掃再現部559は、教示データ取得時間T
Lに関連付けられた清掃条件(S
L,W
L,P
L)を清掃スケジュール500から読み出し、当該清掃条件(S
L,W
L,P
L)を経過時間t
nにおける再現清掃条件として決定する。
【0184】
再現走行制御指令及び再現清掃条件を算出後、清掃再現部559は、再現走行制御指令を走行制御部53に出力し、再現清掃条件を清掃制御部51に出力する(ステップS25)。
自律清掃モードの実行時は、走行切替部531の端子eと端子fとが接続されているため、再現走行制御指令は、走行切替部531を介して、モータ制御部533に送信される。モータ制御部533は、受信した再現走行制御指令に基づいて、走行モータ11を制御する。
一方、清掃切替部511においては、端子bと端子cとが接続されているので、再現清掃条件は、清掃切替部511を介して、清掃部制御部513に送信される。清掃部制御部513は、受信した再現清掃条件に基づいて、清掃部3を制御する。
【0185】
走行部1及び清掃部3をそれぞれ再現走行制御指令及び再現清掃条件に基づいて制御後、清掃再現部559は、清掃スケジュール500に記憶された清掃作業が全て実行したかどうかを確認する(ステップS26)。
清掃スケジュール500に記憶された清掃作業が全て終了したかどうかは、例えば、清掃スケジュール500の末尾にある識別子(例えば、「エンド・オブ・ファイル」を示す識別子など)を検出することにより確認できる。
【0186】
清掃スケジュール500に記憶された清掃作業が全て実行されていないと判定される限り(ステップS26において「No」である限り)、上記のステップS21〜S25が繰り返し実行され、清掃スケジュール500に記憶された全ての清掃作業が実行されたと判定されたとき(ステップS26において「Yes」の場合)に、再現清掃モードの実行を終了する。これにより、洗浄機100は、清掃スケジュール500に記憶された清掃作業を忠実に再現できる。
【0187】
他の実施形態において、清掃スケジュール500に記憶された清掃作業を全て実行した場合のみでなく、例えば、洗浄機100にて異常が発生した場合、ユーザにより再現清掃モードの実行停止が指令された場合などにおいても、再現清掃モードの実行が停止されてもよい。
【0188】
上記のステップS21〜S26を実行することにより、清掃再現部559は、清掃スケジュール作成部553にて作成された清掃スケジュール500、又は、清掃スケジュール修正部557にて修正された清掃スケジュール500に基づいて、再現清掃条件と再現走行制御指令とを算出し、それぞれ、清掃部3及び走行部1に出力することで、洗浄機100に対して自律的に清掃作業を実行させることができる。
【0189】
上記のように、本実施形態においては、清掃スケジュール修正部557が、清掃スケジュール作成部553にて作成した清掃スケジュール500において、スキージ軌跡に含まれない洗浄液の吐出位置P
wが存在していれば、当該清掃スケジュール500を修正して、記憶されている洗浄液の吐出位置P
wがスキージ軌跡に含まれるよう新たな清掃スケジュール500を作成している。
【0190】
これにより、床面Fに使用後の洗浄液が残留する清掃作業を実行してしまう清掃スケジュール500が手動操作教示モードの実行時に作成された場合であっても、当該清掃スケジュール500を修正して、自律清掃モードにおいて、床面Fに洗浄液が残留しないような適切な清掃作業を自律的に実行できる。
【0191】
2.他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。また、上記の第1実施形態においてフローチャートにて示した各処理の内容、処理の順番等は、発明の要旨を逸脱しない範囲で変更できる。また、必要に応じてフローチャートにて示した処理のいずれかを省略できる。
【0192】
(A)上記の第1実施形態において、清掃スケジュール修正部557は、制御統括部55に含まれていた。しかし、これに限られず、清掃スケジュール修正部557は、制御部5を構成するコンピュータシステムとは別のコンピュータシステムであってもよい。
この場合、洗浄機100は、清掃スケジュール修正部557を接続するためのポート、及び/又は、清掃スケジュール修正部557と通信するための通信インターフェースを備えていてもよい。
【0193】
この場合、清掃スケジュール修正部557は、洗浄機100の記憶部57に記憶されている清掃スケジュール500などの情報を、上記のポート及び/又は通信インターフェースを介して受信し、洗浄機100とは離れた場所にて清掃スケジュール500を修正できる。その結果、例えば、洗浄機100が走行中においても、清掃スケジュール500の修正を実行できる。
【0194】
(B)位置推定部5555は、前方検出器5551a、後方検出器5551bから得られた情報のみを用いて、レーザーオドメトリによる位置推定により洗浄機100の位置推定を実行してもよい。レーザオドメトリによる位置推定方法としては、例えば、ICP(Iterative Closest Point)法などがある。
【0195】
(C)例えば、床面Fと主輪13との間の滑りが少ない場合、前方検出器5551a及び後方検出器5551bにより得られる情報から十分な地図情報が得られない場合などには、位置推定部5555は、走行モータ11の回転量のみに基づいて、洗浄機100の位置推定を行ってもよい。
【0196】
(D)第1実施形態にて説明した教示データの取得とは別に実行されていたスキージ33の位置の算出を、教示データを取得しつつ実行してもよい。例えば、第1実施形態に係る手動操作教示モードの処理を表す
図9Bのフローチャートにおいて、ステップS44とS45の間に、スキージ33の位置の算出を実行してもよい。
【0197】
(E)例えば、教示データの取得間隔が短い場合など、清掃スケジュール500に記憶された位置情報のみでも実際に近い洗浄機100の移動経路が表現できている場合など、移動経路の細分化を特に必要としない場合には、第1実施形態においてスキージ軌跡の算出に際して実行されていた移動経路の細分化処理を省略してもよい。すなわち、第1実施形態に係る清掃スケジュールの修正処理を示す
図12のフローチャートにおいて、ステップS481の処理を省略してもよい。
【0198】
(F)清掃スケジュール作成部553は、清掃スケジュール500の作成において、洗浄液の吐出位置P
w、スキージ33の位置、及び/又は、スキージ33の幅寸法を、教示データ取得時間と関連付けて記憶してもよい。
この場合、清掃スケジュール修正部557は、清掃スケジュール500に示された各通過点におけるスキージ33の位置及び洗浄液の吐出位置P
wの算出を、清掃スケジュール500に曲率半径ρを記憶後(ステップS46の実行後)に実行する。
【0199】
(G)制御部5は、清掃スケジュール作成部553が作成した清掃スケジュール500を清掃スケジュール修正部557がどの程度修正したか(例えば、修正箇所の数)により、当該清掃スケジュール500が作成されたときの操作者の清掃作業を評価してもよい。制御部5は、当該清掃作業の評価結果を、清掃スケジュール500の修正後にディスプレイ97に表示してもよい。
【0200】
(H)清掃スケジュール修正部557は、スキージ軌跡に洗浄液の吐出位置P
wが含まれるか否かの判定を、スキージ軌跡の頂点と吐出位置P
wとに基づいて生成される2つのベクトルの外積を算出する以外の方法でも実行できる。具体的には、例えばコンピュータゲームにて使用される「当たり判定」アルゴリズムなど、ある1つの領域(物体)に他の領域が含まれるか否かを判定できるアルゴリズムを使用できる。