(58)【調査した分野】(Int.Cl.,DB名)
前記清掃部は、洗浄液を前記床面に供給する洗浄液供給部と、前記床面に押し付けられて回転しながら前記床面を洗浄する洗浄用部材を有する床面洗浄部と、前記床面の上の前記洗浄液を吸引する吸引部と、を有し、
前記洗浄液供給部から供給される前記洗浄液の供給量と、前記床面洗浄部による前記床面の洗浄力と、前記吸引部による前記洗浄液の吸引力とは、前記清掃条件として任意に設定可能である、請求項1に記載の自律走行式床洗浄機。
前記清掃スケジュールの前記教示清掃条件と、前記教示位置情報と、前記教示データ取得時間とを修正する清掃スケジュール修正部をさらに備える、請求項1〜4のいずれかに記載の自律走行式床洗浄機。
【発明を実施するための形態】
【0025】
1.第1実施形態
(1)自律走行式床洗浄機の全体構成
まず、本実施形態に係る自律走行式床洗浄機の全体構成について、
図1を用いて説明する。
図1は、自律走行式床洗浄機100の全体構成を示す図である。
図1に示す自律走行式床洗浄機100は、教示された清掃条件と走行経路とを忠実に再現することにより、自律的に清掃作業を実行するものである。「教示された清掃条件」とは、自律走行式床洗浄機100が手動操作可能な状態のときに、操作者による手動操作により自律走行式床洗浄機100が実行した清掃の清掃条件のことを言う。また、「教示された走行経路」とは、操作者による手動操作(移動操作)により自律走行式床洗浄機100が走行した経路のことを言う。
自律走行式床洗浄機100は、走行部1と、清掃部3と、制御部5と、走行経路教示部7と、設定部9と、前方検出器11と、後方検出器13と、を備える。
【0026】
走行部1は、操作者の操作又は走行制御指令に従って走行する装置である。また、走行部1の底部の左右端には、それぞれ、主輪部1001、走行モータ1003、及び補助輪部1005が備えられている。
主輪部1001は、走行モータ1003の出力回転軸に取り付けられている。従って、主輪部1001は、走行モータ1003により回転可能となっている。
【0027】
また、走行モータ1003は、制御部5(後述)に電気的に接続されている。従って、走行モータ1003は、制御部5にて生成される走行制御指令(後述)に基づき制御される。これにより、主輪部1001は、走行制御指令に従って走行部1を走行させる。
【0028】
補助輪部1005は、走行部1の底部の左右端に主輪部1001よりも後方に、回転可能に取り付けられている。補助輪部1005は、走行部1を安定に走行させる。なお、本実施形態においては、補助輪部1005が取り付けられている。これは、走行部1の左右端の主輪部1001のみでは走行部1の姿勢が安定しないためである。従って、主輪部1001のみであっても走行部1が安定する場合には、補助輪部1005は特に必要ない。
また、本実施形態においては、主輪部1001よりも後方に補助輪部1005が取り付けられているが、これに限られない。自律走行式床洗浄機100の重心位置などを考慮して、補助輪部1005は主輪部1001よりも前方に取り付けられてもよい。
【0029】
清掃部3は、清掃条件に従って床面Fを清掃する装置である。清掃部3は、自律走行式床洗浄機100の底部に搭載されている。清掃部3は、具体的には、洗浄用部材3001(後述)を床面Fに押し付け回転させながら、清掃条件に従って床面Fを洗浄する。なお、清掃部3の詳細については後ほど説明する。
【0030】
制御部5は、前方検出器11(後述)、後方検出器13(後述)、走行モータ1003、エンコーダ1013(後述)、洗浄用部材回転モータ3011(後述)、洗浄用部材押圧アクチュエータ3021(後述)、洗浄液供給ポンプ3013(後述)、吸引モータ3015(後述)、及びスキージ部昇降アクチュエータ3017(後述)と、電気的に接続されている。
これにより、制御部5は、走行部1を走行制御指令に従って制御し、清掃部3を清掃条件に従って制御する。なお、制御部5の詳細な構成については後ほど説明する。ここで、走行制御指令とは、走行モータ1003の回転速度及び/又は回転量を制御するための指令である。本実施形態においては、走行制御指令は、移動量として表現される。移動量は、例えば、現在位置と目標位置が決まっていれば、目標位置と現在位置との差から算出できる。また、走行経路教示部7(後述)のハンドル7001a、7001bの回動方向や回動量から、移動量を算出できる。また、清掃条件とは、洗浄用部材3001(後述)の回転数や押圧力で表される洗浄力W、洗浄液供給部3003から供給される洗浄液供給量S、及び吸引部3005による吸引力Pのことをいう。
【0031】
走行経路教示部7は、操作者による走行部1の移動操作を受け付ける機能を有している。走行経路教示部7は、取付部材15を介して、走行部1の上方後側に取り付けられている。これにより、操作者は、走行経路教示部7を操作して走行部1を移動操作できる。また、走行経路教示部7は、制御部5に電気的に接続されている。これにより、ハンドル7001a、7001b(後述)の操作量を制御部5へ送信できる。なお、走行経路教示部7の詳細については、後ほど説明する。
【0032】
設定部9は、走行部1の上方後側の表面に取り付けられている。また、設定部9は、走行経路教示部7の近傍に設けられている。これにより、操作者は、走行経路教示部7を操作して走行部1を操作しつつ、設定部9を操作できる。
また、設定部9は、制御部5に電気的に接続されている。これにより、設定部9において設定した設定値を、制御部5へ送信できる。なお、設定部9の詳細については、後ほど説明する。
【0033】
前方検出器11は、走行部1の前方端に取り付けられている。前方検出器11は、走行部1の前方に存在する障害物(前方障害物)を検出する。また、前方検出器11は、制御部5に信号送受信可能に接続されている。これにより、前方検出器11は、検出された障害物に関する情報を、制御部5に送信できる。
前方検出器11としては、例えば、レーザーレンジファインダ(Laser Range Finder、LRF)を用いることができる。レーザーレンジファインダを前方検出器11として用いた場合、走行部1と前方障害物との距離と、前方障害物が存在する方向とが、前方障害物に関する情報として取得できる。
【0034】
後方検出器13は、走行部1の後方端に取り付けられている。後方検出器13は、走行部1の後方に存在する障害物(後方障害物)を検出する。また、後方検出器13は、制御部5に信号送受信可能に接続されている。これにより、後方検出器13は、検出された障害物に関する情報を、制御部5に送信できる。
後方検出器13としては、例えば、その検出範囲が180°以上のレーザーレンジファインダ(Laser Range Finder、LRF)を用いることができる。レーザーレンジファインダを後方検出器13として用いた場合、走行部1と後方障害物との距離と、後方障害物が存在する方向とが、後方障害物に関する情報として取得できる。
【0035】
(2)清掃部の構成
次に、清掃部3の構成について、
図1を用いて説明する。清掃部3は、清掃条件に従って床面Fを洗浄するものである。清掃部3は、洗浄用部材3001と、洗浄液供給部3003と、吸引部3005と、スキージ部3007と、を有する。
洗浄用部材3001は、走行部1の底面の前方側に設けられている。また、洗浄用部材3001は、固定部材3041に固定されている。そして、固定部材3041は、洗浄用部材回転モータ3011の出力回転軸に接続されている。このため、固定部材3041が洗浄用部材回転モータ3011により回転することにより、洗浄用部材3001も回転する。さらに、洗浄用部材3001は、押圧部材3031を介して、洗浄用部材押圧アクチュエータ3021に接続されている。このため、洗浄用部材3001は、洗浄用部材押圧アクチュエータ3021により、床面Fに押し付けられる。
その結果、洗浄用部材3001は、床面Fに押し付けられて回転しながら床面Fを洗浄できる。そして、洗浄用部材回転モータ3011の回転数及び洗浄用部材押圧アクチュエータ3021による押圧力を調整することにより、洗浄用部材3001による洗浄力を調整できる。なお、洗浄用部材3001としては、床面洗浄用のブラシなどを用いることができる。
【0036】
また、固定部材3041には空洞S1が設けられており、洗浄液供給部3003(後述)から供給された洗浄液は、空洞S1から床面Fへ供給される。
【0037】
なお、洗浄用部材3001と、洗浄用部材回転モータ3011と、洗浄用部材押圧アクチュエータ3021と、押圧部材3031と、を備えた部材が、本実施形態における床面洗浄部の一例である。
【0038】
洗浄液供給部3003は、中空の筒状部材である。洗浄液供給部3003の一端は、固定部材3041に設けられた空洞S1に対応する位置に設けられている。また、洗浄液供給部3003の他の一端は、走行部1の内部に搭載された、洗浄液供給ポンプ3013の出口側に接続されている。さらに、洗浄液供給ポンプ3013の入口側は、パイプ部材3033を介して、走行部1の内部に搭載された洗浄液供給タンク3023の出口に接続されている。これにより、洗浄液供給部3003は、洗浄液供給ポンプ3013により供給量を制御されて、洗浄液供給タンク3023から洗浄液を供給する。そして、洗浄液は、洗浄液供給部3003の一端から固定部材3041に設けられた空洞S1に向けて供給され、空洞S1を通過して床面Fへと到達する。
なお、洗浄液供給部3003から供給される洗浄液としては、例えば、水を用いることができる。
【0039】
吸引部3005は中空の筒状部材である。吸引部3005の一端は、吸引口S2が設けられたスキージ部固定部材3027(後述)に接続されている。吸引部3005の他の一端は、走行部1の内部に搭載された回収部3025の上部の開口部の1つに接続されている。これにより、吸引部3005は、床面Fの洗浄液などを吸引する。そして、吸引部3005により吸引された洗浄液などは、回収部3025に回収される。
また、回収部3025の上部に設けられた他の1つの開口部に、吸引モータ3015が設置されている。吸引モータ3015は、回収部3025の空間内を負圧状態にする。その結果、吸引部3005は負圧状態となり、床面F上の洗浄液などを回収部3025へと吸引できる。そして、吸引部3005による吸引力Pは、吸引モータ3015の出力を調整することにより、調整可能である。
【0040】
スキージ部3007は、スキージ部固定部材3027に固定されて走行部1の底面後方に設けられている。また、スキージ部3007は、スキージ部固定部材3027を介して、スキージ部昇降アクチュエータ3017に接続され、床面Fに対して昇降可能となっている。この結果、スキージ部3007は、床面F上を接触するか、床面Fから離れるかを任意に設定可能となる。この結果、スキージ部3007は、必要に応じて、床面F上の液体などを、自律走行式床洗浄機100の後方へ移動するのを抑制できる。
また、スキージ部3007は、自律走行式床洗浄機100がバック走行するときは、床面Fから離れている。これにより、バック走行時において、床面F上の液体などが自律走行式床洗浄機100のさらに後方に移動することを抑制できる。その結果、自律走行式床洗浄機100は、効率よく床面Fの洗浄を行える。
【0041】
また、スキージ部固定部材3027には吸引口S2が設けられており、スキージ部3007により集められた洗浄液やゴミなどが、吸引部3005の吸引力Pにより吸引され回収部3025に回収される。
【0042】
このように、清掃部3が洗浄用部材3001、洗浄液供給部3003、吸引部3005、スキージ部3007を有することにより、自律走行式床洗浄機100は、床面Fを洗浄したり床面Fの液体などを回収したりといった、多様な清掃作業(多様な清掃条件)を実行できる。
【0043】
(3)走行経路教示部の構成
次に、走行経路教示部7の構成について、
図2を用いて説明する。
図2は、走行経路教示部7の構成を示す図である。走行経路教示部7は、ハンドル7001a、7001bと、筐体7003と、走行制御指令算出部7005と、を有する。
ハンドル7001a、7001bは、それぞれ、筐体7003の左右側面に取り付けられている。ハンドル7001a、7001bを把持する操作者は、ハンドル7001a、7001bを介して、走行部1を操作者の方へ引張る力、又は、走行部1を押し出す力のいずれかを加えることができる。
このように、ハンドル7001a、7001bのそれぞれにかける力を調節することにより、走行部1の走行方向を調節できる。例えば、走行部1の前方方向から見て左側のハンドル7001aに対して、走行部1を引張る力を加えれば、走行部1は左へと方向転換する。
【0044】
また、ハンドル7001a、7001bは筐体7003に回動可能に取り付けられている。また、ハンドル7001a、7001bは、走行制御指令算出部7005に電気的に接続されている。さらに、走行制御指令算出部7005は、制御部5に信号送受信可能に接続されている。これにより、ハンドル7001a、7001bの回動量及び回動方向は、走行制御指令算出部7005において走行制御指令に変換され、制御部5へ送信される。これにより、操作者は、ハンドル7001a、7001bの回動操作によっても、走行部1を操作できる。
【0045】
例えば、ハンドル7001a、7001bの回動方向を調整することにより、操作者は走行部1を前進又は後進させることができる。また、ハンドル7001a、7001bの回動量を調節することにより、走行部1の走行速度を調整できる。さらに、ハンドル7001aの回動量と、ハンドル7001bの回動量を異ならせれば、走行部1の進行方向を変更できる。また、ハンドル7001aを進行方向への走行速度を指示するための入力インターフェースとし、ハンドル7001bを操舵角を指示するための入力インターフェースとしてもよい。
【0046】
(4)設定部の構成
次に、設定部9の構成について、
図3を用いて説明する。
図3は、設定部9の構成を示す図である。設定部9は、切替部9001と、手動操作記憶スイッチ9002と、清掃条件教示部9003と、表示部9005と、清掃制御指令算出部9007と、設定操作部9008と、設定変換部9009と、を有する。
切替部9001は、制御部5に電気的に接続されている。切替部9001は、自律走行式床洗浄機100の動作モードを選択する。切替部9001は、例えば、スイッチなどにより構成されており、スイッチの切替により動作モードを選択する。
【0047】
自律走行式床洗浄機100の動作モードとしては、自律清掃モードと手動操作モードとがある。自律清掃モードは、自律走行式床洗浄機100が、操作者の操作を必要とせず、自律的に走行し床面Fを洗浄する動作モードである。動作モードの自律清掃モードへの設定は、切替部9001を
図3に示す「自動」に設定することにより可能となる。
一方、手動操作モードは、自律走行式床洗浄機100が操作者により手動操作可能な状態にある動作モードである。動作モードの手動操作モードへの設定は、切替部9001を
図3に示す「手動」に設定することにより可能となる。
【0048】
手動操作記憶スイッチ9002は、制御部5に電気的に接続されている。手動操作記憶スイッチ9002は、操作者による自律走行式床洗浄機100の手動操作の記憶を開始するためのスイッチである。すなわち、切替部9001により動作モードが手動操作モードに設定された後手動操作記憶スイッチ9002が押されると、操作者の手動操作により実行される清掃の清掃条件、及び、操作者の移動操作による走行経路の自律走行式床洗浄機100への教示が開始される。
従って、自律走行式床洗浄機100の動作モードには、自律清掃モードと、手動操作モードに加えて、手動操作モードのサブ動作モードとしての手動操作教示モードがある。手動操作教示モードは、操作者の手動操作による自律走行式床洗浄機100の清掃条件および走行経路を、自律走行式床洗浄機100に教示する動作モードである。そして、手動操作記憶スイッチ9002が押されることにより、動作モードが手動操作モードから手動操作教示モードへと移行する。
【0049】
また、後述するように、動作モードが手動操作教示モードに設定された状態にて手動操作記憶スイッチ9002が(再び)押されると、操作者による手動操作の教示が停止される。これにより、操作者は、所望の位置で手動操作記憶スイッチ9002を押すことにより、所望の位置で手動操作の教示を停止できる。この結果、自律走行式床洗浄機100は、操作者が所望する清掃スケジュール500を作成できる。
なお、手動操作教示モードの実行時に手動操作記憶スイッチ9002が押された場合、動作モードが手動操作教示モードから手動操作モードに切り替わってもよい。この場合、操作者は、手動操作教示モードが手動操作モードに切り替わっても、継続して自律走行式床洗浄機100を手動操作できる。
【0050】
清掃条件教示部9003は、操作者による清掃条件の入力を受け付けて、清掃部3に出力する機能を実現する。清掃条件教示部9003は、清掃制御指令算出部9007を介して、制御部5に接続されている。これにより、清掃条件教示部9003において設定された清掃条件(教示清掃条件)は、清掃制御指令算出部9007において制御部5が解読可能な信号に変換されて、制御部5に送信される。
また、清掃条件教示部9003は、清掃条件調整部9013と、運転切替部9023と、を有している。清掃条件調整部9013は、洗浄用部材3001による床面Fの洗浄力Wと、洗浄液供給部3003から供給される洗浄液供給量Sと、吸引部3005による吸引力Pと、を教示清掃条件として個別に設定する。清掃条件調整部9013は、例えば、押圧スイッチにより構成され、押圧スイッチの押圧回数に従って上記の教示清掃条件を設定できる。
【0051】
運転切替部9023は、洗浄用部材3001(床面洗浄部)、洗浄液供給部3003、吸引部3005の動作及び停止を制御する。運転切替部9023は、例えば、押圧スイッチにより構成され、押圧スイッチの押圧により、洗浄用部材3001(床面洗浄部)、洗浄液供給部3003、吸引部3005の動作と停止とを切替できる。
【0052】
表示部9005は、制御部5と信号送受信可能に接続されている。表示部9005は、制御部5から制御部5において設定されている清掃条件などを受信し、受信した清掃条件などを表示する。表示部9005には、清掃条件として、洗浄用部材3001による床面Fの洗浄力Wと、洗浄液供給部3003から供給される洗浄液供給量Sと、吸引部3005による吸引力Pとが表示される。このように、表示部9005が清掃条件などを表示することにより、操作者は、表示された清掃条件を確認しながら、清掃作業を行える。
その他、表示部9005は、現在の動作モード(自律清掃モード/手動操作モード/手動操作教示モード)及び、運転時間などを表示する。さらに、表示部9005は、設定操作部9008により自律走行式床洗浄機100の各種設定を行う際に、各種設定手順を表示する。
【0053】
設定操作部9008は、設定変換部9009を介して、制御部5に接続されている。従って、設定操作部9008において設定された各種設定は、設定変換部9009において制御部5において解読可能な信号に変換されて、制御部5へ送信される。
設定操作部9008は、自律走行式床洗浄機100の各種設定を行い、当該各種設定を制御部5に送信する。設定操作部9008は、例えば、押圧スイッチなどにより構成されている。従って、操作者は、表示部9005に表示された各種設定の設定手順を確認しながら、設定操作部9008を操作して、自律走行式床洗浄機100の各種設定を行える。
【0054】
(5)制御部の構成
5−1.制御部の全体構成
次に、制御部5の全体構成について、
図4を用いて説明する。
図4は、制御部5の全体構成を示す図である。本実施形態において、制御部5は、CPU(Central Processing Unit)、RAM(Random Access Memory)やROM(Read Only Memory)などのメモリ部、記憶装置、各種インターフェースなどを備えたマイコンシステムにより実現されている。以下に説明する制御部5の各部の全部又は一部は、当該マイコンシステムにて実行可能なプログラムとして実現されていてもよい。この場合、当該プログラムは、メモリ部及び/又は記憶装置に記憶されていてもよい。また、制御部5の各部の全部又は一部は、カスタムICとして実現されていてもよい。
【0055】
制御部5は、清掃制御部5001と、走行制御部5003と、制御統括部5005と、記憶部5007と、を主に有する。
清掃制御部5001は、洗浄用部材回転モータ3011と、洗浄液供給ポンプ3013と、吸引モータ3015と、電気的に接続されている。これにより、清掃制御部5001は、洗浄用部材回転モータ3011、洗浄液供給ポンプ3013、及び吸引モータ3015に対して、これらのモータやポンプの回転速度や出力などを制御する電力(清掃部制御量)を供給できる。また、清掃制御部5001は、洗浄用部材押圧アクチュエータ3021と、スキージ部昇降アクチュエータ3017と、電気的に接続されている。これにより、清掃制御部5001は、洗浄用部材押圧アクチュエータ3021及びスキージ部昇降アクチュエータ3017に対し、これらアクチュエータの動作量を制御する電力(清掃部制御量)を供給できる。
【0056】
また、清掃制御部5001は、清掃制御指令算出部9007を介して、清掃条件教示部9003と信号送受信可能に接続されている。これにより、清掃制御部5001は、清掃条件教示部9003にて設定された教示清掃条件を入力できる。これにより、清掃制御部5001は、教示清掃条件に基づいて、清掃部3を制御可能となる。さらに、清掃制御部5001は、表示部9005と接続されている。これにより、清掃制御部5001は、清掃条件などを、表示部9005に出力できる。
【0057】
また、清掃制御部5001は、制御統括部5005と、信号送受信可能に接続されている。従って、清掃制御部5001は、再現清掃条件(後述)を入力可能となっている。また、清掃制御部5001は、再現清掃条件に基づいて、清掃部3を制御できる。なお、清掃制御部5001の詳細については、後ほど説明する。
【0058】
走行制御部5003は、走行モータ1003の出力回転軸に接続されたエンコーダ1013と、信号送受信可能に接続されている。これにより、走行制御部5003は、エンコーダ1013から出力されるパルス信号を入力できる。また、走行制御部5003は、走行モータ1003と電気的に接続されている。これにより、走行制御部5003は、エンコーダ1013から出力されるパルス信号に基づいて、走行モータ1003を制御する電力を、走行モータ1003に対して出力できる。
【0059】
さらに、走行制御部5003は、走行経路教示部7及び制御統括部5005と、信号送受信可能に接続されている。従って、走行制御部5003は、走行経路教示部7のハンドル7001a、7001bの回動量及び回動方向に基づく走行制御指令、又は、再現走行制御指令に基づき、走行モータ1003を制御する電力を走行モータ1003に対して出力できる。なお、走行制御部5003の詳細については、後ほど説明する。
【0060】
制御統括部5005は、前方検出器11、後方検出器13、及び走行モータ1003のエンコーダ1013と、信号送受信可能に接続されている。従って、制御統括部5005は、前方検出器11により得られる前方障害物に関する情報、後方検出器13により得られる後方障害物に関する情報、及びエンコーダ1013から得られる走行モータ1003の回転量に基づき、自律走行式床洗浄機100の位置情報を推定できる。なお、制御統括部5005における位置情報の推定方法については、後述する。
【0061】
また、制御統括部5005は、清掃制御部5001と信号送受信可能に接続されている。従って、制御統括部5005は、手動操作教示モードの実行時においては、清掃制御部5001から清掃条件を教示清掃条件として受信できる。また、自律清掃モードの実行時には、制御統括部5005は、清掃制御部5001に対して、再現清掃条件を出力できる。再現清掃条件とは、自律清掃モードの実行時における清掃部3のモータ、ポンプ及びアクチュエータの制御量を決定する清掃条件である。再現清掃条件は、制御統括部5005において、清掃スケジュール500(後述、
図17A及び
図17Bを参照。)に記憶された教示データ取得時間(後述)と教示清掃条件(後述)とに基づいて算出される。制御統括部5005における再現清掃条件の算出方法については、後述する。
【0062】
さらに、制御統括部5005は、走行制御部5003と信号送受信可能に接続されている。従って、制御統括部5005は、自律清掃モードの実行時に、再現走行制御指令を送信できる。再現走行制御指令とは、自律清掃モードの実行時における走行モータ1003の制御量を決定する指令である。また、再現走行制御指令は、制御統括部5005において、清掃スケジュール500に記憶された教示データ取得時間と教示位置情報(後述)とに基づいて算出される。制御統括部5005における再現走行制御指令の算出方法については、後述する。
【0063】
記憶部5007は、制御統括部5005と信号送受信可能に接続されている。制御部5がマイコンシステムにより構成されている場合、記憶部5007は、RAM、ROM、及び/又は記憶装置の記憶領域の一部又は全部に対応する。従って、記憶部5007は、制御統括部5005において作成された清掃スケジュール500を記憶できる。また、制御統括部5005は、必要に応じて、記憶部5007に記憶された清掃スケジュール500を読み出せる。
【0064】
なお、制御部5は、記憶部5007に記憶された清掃スケジュール500を他の記憶媒体に記憶するためのデータ書き込み装置(図示せず)を有していてもよい。又は、制御部5は、例えば、USB(Universal Serial Bus)ポートなどの、データ書き込み装置を接続可能な接続端子を有していてもよい。これにより、制御部5は、記憶部5007に記憶された清掃スケジュール500を、他の記憶媒体に記憶できる。
【0065】
記憶部5007は、設定部9の設定変換部9009を介して、設定操作部9008と信号送受信可能に接続されている。これにより、記憶部5007は、設定操作部9008において設定された各種設定を記憶できる。また、記憶部5007に記憶された各種設定を、設定操作部9008は、必要に応じて読み出せる。そして、記憶部5007に記憶された各種設定は、清掃制御部5001、走行制御部5003、及び制御統括部5005から読み出し可能となっている。
【0066】
本実施形態において、制御部5は、清掃スケジュール修正部5009をさらに有する。清掃スケジュール修正部5009は、清掃スケジュール500に記憶されている教示清掃条件と、教示位置情報と、教示データ取得時間とを修正する。これにより、清掃スケジュール500を教示した後に、清掃スケジュール500の変更などの処理を行える。
なお、清掃スケジュール修正部5009は、自律走行式床洗浄機100と一体に形成されなくてもよい。例えば、清掃スケジュール修正部5009は、情報端末などに備えられていてもよい。この場合、清掃スケジュール修正部5009を備える情報端末などは、例えば、自律走行式床洗浄機100と通信することにより、記憶部5007に記憶された清掃スケジュール500を送受信できる。
【0067】
5−2.清掃制御部の構成
次に、清掃制御部5001の構成について、
図5を用いて説明する。
図5は、清掃制御部5001の構成を示す図である。清掃制御部5001は、清掃切替部5011と、清掃部制御部5031と、を有する。
清掃切替部5011は、3つの端子a、b、及びcを有している。また、清掃切替部5011は、切替部9001と信号送受信可能に接続されている。このため、清掃切替部5011は、切替部9001からの信号に基づき、端子bと端子aとを接続するか、あるいは、端子bと端子cとを接続するかのいずれかを選択できる。
また、端子aは、清掃条件教示部9003と接続されている。端子bは、清掃部制御部5031(後述)、表示部9005、及び制御統括部5005と接続されている。端子cは、制御統括部5005と接続されている。
【0068】
これにより、清掃切替部5011は、切替部9001において手動操作モードが選択された場合(手動操作記憶スイッチ9002が押されて、動作モードが手動操作教示モードに移行した場合も含む)には、端子aと端子bとを接続する。そして、清掃切替部5011は、清掃条件教示部9003を、清掃部制御部5031、制御統括部5005、及び表示部9005に接続する。この結果、清掃切替部5011は、手動操作モード又は手動操作教示モードの実行時には、清掃条件教示部9003にて設定された教示清掃条件を、清掃部制御部5031、表示部9005、及び制御統括部5005に送信可能とする。
【0069】
一方、切替部9001において自律清掃モードが選択された場合には、端子bと端子cとが接続される。そして、清掃切替部5011は、制御統括部5005を、清掃部制御部5031及び表示部9005に接続する。この結果、清掃切替部5011は、自律清掃モードの実行時には、制御統括部5005から出力される再現清掃条件を、清掃部制御部5031及び表示部9005に送信できる。
【0070】
清掃部制御部5031は、清掃切替部5011の端子bに接続されている。その結果、清掃部制御部5031は、清掃切替部5011を介して、教示清掃条件又は再現清掃条件を受信できる。
【0071】
また、清掃部制御部5031は、洗浄用部材回転モータ3011、洗浄用部材押圧アクチュエータ3021、洗浄液供給ポンプ3013、吸引モータ3015、及びスキージ部昇降アクチュエータ3017と、電気的に接続されている。従って、清掃部制御部5031は、これらモータ、ポンプ、及びアクチュエータに、駆動電力を供給できる。
清掃部制御部5031において、上述のモータ、ポンプ、及びアクチュエータに供給される駆動電力は、受信した教示清掃条件又は再現清掃条件に基づき制御される。
【0072】
例えば、本実施形態においては、清掃条件としての床面Fの洗浄力に基づいて、洗浄用部材回転モータ3011の回転数及び洗浄用部材押圧アクチュエータ3021の押圧力が制御される。また、清掃条件としての洗浄液供給量Sに基づいて、洗浄液供給ポンプ3013の洗浄液流量が制御される。さらに、清掃条件としての吸引力Pに基づいて、吸引モータ3015の回転数(及び/又は出力)が制御される。
【0073】
5−3.走行制御部の構成
次に、走行制御部5003の構成について、
図6を用いて説明する。
図6は、走行制御部5003の構成を示す図である。走行制御部5003は、走行切替部5013と、モータ制御部5033と、を有する。
【0074】
走行切替部5013は、3つの端子d、e、及びfを有している。また、走行切替部5013は、切替部9001と信号送受信可能に接続されている。このため、走行切替部5013は、切替部9001からの信号に基づき、端子eと端子dとを接続するか、あるいは、端子eと端子fとを接続するかのいずれかを選択できる。
また、端子dは、走行経路教示部7と接続されている。端子eは、モータ制御部5033(後述)と接続されている。そして、端子fは、制御統括部5005と接続されている。
【0075】
これにより、走行切替部5013は、切替部9001において手動操作モードが選択された場合(手動操作記憶スイッチ9002が押されて、動作モードが手動操作教示モードに移行した場合も含む)には、端子dと端子eとを接続する。そして、走行切替部5013は、走行経路教示部7とモータ制御部5033とを接続する。この結果、走行切替部5013は、手動操作モード又は手動操作教示モードの実行時には、走行経路教示部7のハンドル7001a、7001bの回動量及び回動方向に基づいて算出される走行制御指令を、モータ制御部5033に送信可能とする。
【0076】
一方、切替部9001において自律清掃モードが選択された場合には、端子eと端子fとが接続される。そして、走行切替部5013は、制御統括部5005を、モータ制御部5033に接続する。この結果、走行切替部5013は、自律清掃モードの実行時には、制御統括部5005から出力される再現走行制御指令を、モータ制御部5033に送信できる。
【0077】
モータ制御部5033は、走行切替部5013の端子eに接続されている。その結果、モータ制御部5033は、走行切替部5013を介して、ハンドル7001a、7001bの回動量及び回動方向に基づいて算出される走行制御指令、又は、再現走行制御指令を受信できる。
【0078】
また、モータ制御部5033は、走行モータ1003と電気的に接続されている。これにより、モータ制御部5033は、走行モータ1003に対して駆動電力を出力できる。
また、モータ制御部5033は、エンコーダ1013と信号送受信可能に接続されている。このため、モータ制御部5033は、ハンドル7001a、7001bの回動量/回動方向又は再現走行制御指令、及び、エンコーダ1013からのパルス信号に基づいて、走行モータ1003の回転速度などを制御できる。エンコーダ1013からのパルス信号に基づいて得られる情報は、走行モータ1003の回転量などの回転に関する情報である。よって、モータ制御部5033は、走行モータ1003の回転量をフィードバックしながら走行モータ1003を制御する。
【0079】
従って、モータ制御部5033としては、PI(Proportional Integral)制御理論や、PID(Proportional Integral Differential)制御理論などを用いたモータ制御装置を用いることができる。
【0080】
なお、上述したように、本実施形態においては、走行部1の底部の左右端のそれぞれに、走行モータ1003が設けられている。このような場合、モータ制御部5033は、2つの走行モータ1003のそれぞれの回転速度や回転方向を独立に制御して、走行部1の進行方向を決定する。
【0081】
5−4.制御統括部の構成
次に、制御統括部5005の構成について、
図7を用いて説明する。
図7は、制御統括部5005の構成を示す図である。制御統括部5005は、教示データ取得部5015と、清掃スケジュール作成部5025と、清掃再現部5035と、SLAM部5045と、を有する。
教示データ取得部5015は、手動操作教示モードの実行時に、教示位置情報と、教示清掃条件とを、教示データ取得時間において取得する機能を実現できる。具体的には、教示データ取得部5015は、清掃制御部5001と信号送受信可能に接続されている。これにより、教示データ取得部5015は、清掃制御部5001から教示清掃条件を入力できる。また、教示データ取得部5015は、SLAM部5045に信号送受信可能に接続されている。これにより、教示データ取得部5015は、SLAM部5045から、教示データ取得時間と教示位置情報とを入力できる。また、教示データの取得時間は、システムクロックから直接取得してもよい。さらに、教示データ取得部5015は、清掃スケジュール作成部5025に信号送受信可能に接続されている。これにより、教示データ取得部5015は、清掃スケジュール作成部5025に教示清掃条件、教示位置情報、及び教示データ取得時間を出力できる。
従って、教示データ取得部5015は、手動操作教示モードの実行時に、教示位置情報と教示清掃条件とを、教示データ取得時間において取得できる。
【0082】
清掃スケジュール作成部5025は、教示位置情報と教示清掃条件とを、教示データ取得時間に関連付けて清掃スケジュール500を作成し記憶する機能を実現できる。具体的には、清掃スケジュール作成部5025は、記憶部5007と信号送受信可能に接続されている。清掃スケジュール作成部5025は、教示データ取得部5015から入力した教示位置情報と教示清掃条件とを、教示データ取得時間に関連付けて清掃スケジュール500を作成する。そして、清掃スケジュール作成部5025は、作成された清掃スケジュール500を記憶部5007に記憶する。
なお、清掃スケジュール作成部5025において作成される清掃スケジュール500のデータ構造については、後述する。
【0083】
清掃再現部5035は、SLAM部5045と信号送受信可能に接続されている。このため、清掃再現部5035は、SLAM部5045から、自律清掃モードの実行開始からの経過時間を入力できる。また、清掃再現部5035は、記憶部5007と信号送受信可能に接続されている。このため、清掃再現部5035は、記憶部5007に記憶された清掃スケジュール500を入力できる。
この結果、清掃再現部5035は、自律清掃モードの実行時に、清掃スケジュール500に記憶された教示データ取得時間、教示清掃条件、及び教示位置情報に基づいて、所定の経過時間における再現清掃条件と再現走行制御指令とを算出できる。なお、清掃再現部5035における、再現清掃条件及び再現走行制御指令の算出方法については、後述する。
【0084】
また、清掃再現部5035は、清掃制御部5001と走行制御部5003とに、信号送受信可能に接続されている。このため、清掃再現部5035は、算出された再現清掃条件及び再現走行制御指令を、それぞれ、清掃制御部5001及び走行制御部5003に出力できる。
【0085】
SLAM部5045は、前方検出器11及び後方検出器13と、信号送受信可能に接続されている。また、SLAM部5045は、エンコーダ1013と信号送受信可能に接続されている。このため、SLAM部5045は、前方及び後方にある障害物に関する情報と、走行モータ1003の回転量とに基づき、自律走行式床洗浄機100の所定の座標上の位置に関する情報(位置情報)を推定する。
SLAM部5045においては、SLAM(Simultaneous Localization and Mapping)法により位置情報の推定を行っている。具体的な位置情報の推定方法は、後述する。
【0086】
また、SLAM部5045は、記憶部5007に接続されている。このため、SLAM部5045は、記憶部5007に地図情報を記憶できる。また、SLAM部5045は、記憶部5007に記憶された地図情報及び清掃スケジュール500を参照できる。
【0087】
さらに、SLAM部5045は、教示データ取得時間及び経過時間を決定し、教示データ取得部5015及び清掃再現部5035に出力できる。なお、SLAM部5045における教示データ取得時間及び経過時間の決定方法については、後述する。
以下に、SLAM部5045の構成について説明する。
【0088】
5−5.SLAM部の構成
次に、SLAM部5045の構成について、
図7を用いて説明する。SLAM部5045は、位置推定部5145と、経過時間決定部5245と、地図作成部5345と、を有する。位置推定部5145は、位置情報を推定する機能を実現する。位置推定部5145は、具体的には、記憶部5007に記憶された地図情報と、走行モータ1003の回転量と、ローカルマップ情報(後述)と、に基づいて、所定の座標上の走行部1(自律走行式床洗浄機100)の位置に関する情報、すなわち、位置情報を推定する。なお、位置推定部5145における、位置情報の構造及び位置情報の推定方法については、後述する。
【0089】
経過時間決定部5245は、教示データ取得時間及び自律清掃モードの実行開始からの経過時間を決定する。本実施形態において、経過時間決定部5245は、例えば、制御部5を構成するマイコンシステムなどの時計機能を用いて、教示データ取得時間を決定する。
【0090】
一方、自律清掃モードの実行開始からの経過時間は、位置推定部5145にて推定された位置情報に基づき決定される。このように、自律清掃モードの実行開始からの経過時間を、位置推定情報に基づいて決定することにより、自律走行式床洗浄機100は、自律清掃モードの実行時に、教示された教示清掃条件を実行するタイミングと場所とを正確に把握しながら、自律的に清掃作業を再現できる。
なお、経過時間決定部5245における、教示データ取得時間及び上記の経過時間(所定の経過時間)の決定方法については、後ほど詳しく説明する。
【0091】
地図作成部5345は、前方の障害物に関する情報、後方の障害物に関する情報、及び走行モータ1003の回転量に基づき、位置情報及び所定の経過時間を決定する際に用いる地図情報を作成する。地図情報は、位置推定部5145において位置情報を推定する際に用いられる。
地図作成部5345において作成される地図情報には、以下の4つが存在する。
(i)第1ローカルマップ情報:第1座標上の第1領域内における、障害物が存在する確率を表す地図情報である。具体的には、第1領域内の座標(X
k,Y
k)(k=1,2,・・・m、m:整数)における、障害物が存在する確率に相当する値P
kにより表現される。従って、第1ローカルマップ情報は、3次元の値(X
k,Y
k,P
k)として表現できる。
(ii)第2ローカルマップ情報:第2座標(上述の所定の座標に対応)上の第2領域内における、障害物が存在する確率を表す地図情報。第2ローカルマップ情報は、第1ローカルマップ情報の第1領域内の座標(X
k,Y
k)を、第2座標上の座標に変換して得られる。従って、第2ローカルマップ情報は、3次元の値(x
k,y
k,P
k)(k=1,2,・・・m、m:整数)として表現できる。
(iii)環境地図情報:清掃作業を行う床面Fの所定の領域内における障害物に関する情報を、第2座標上に表した地図情報。環境地図情報は、位置情報を推定するために用いられる。環境地図情報は、第2座標上の第3領域内の座標(x
i,y
i)(i=1,2,・・・j、j:整数)における、障害物が存在する確率に相当する値p
iにより表現される。従って、環境地図情報は、3次元の値(x
i,y
i,p
i)として表現できる。なお、環境地図情報を表す第3領域は、第2ローカルマップ情報を表す第2領域と同じ大きさであってもよく、異なる大きさであってもよい。
(iv)復元用地図情報:自律清掃モードの実行時に、環境地図情報を復元するために用いられる地図情報。この地図情報は、手動操作教示モードの実行時に第1ローカルマップ情報又は第2ローカルマップ情報に基づいて生成される。また、復元用地図情報は、時間に関連付けられて管理される。
【0092】
なお、地図作成部5345における、上述の各地図情報の生成方法については、後ほど詳しく説明する。
【0093】
(6)自律走行式床洗浄機の動作
6−1.基本動作
次に、自律走行式床洗浄機100の動作について説明する。
図8Aは、自律走行式床洗浄機100の基本的な動作を示すフローチャートである。
まず、自律走行式床洗浄機100が動作を開始すると、制御部5が、切替部9001の状態を確認する(ステップS1)。すなわち、制御部5は、切替部9001が
図3に示す「手動」を選択しているか、又は、
図3に示す「自動」を選択しているかを確認する。
切替部9001が「手動」を選択している場合、制御部5は、自律走行式床洗浄機100が走行経路教示部7及び清掃条件教示部9003などにより手動操作可能な状態(すなわち、動作モードが手動操作モードに設定されている状態)にあると判断する。一方、切替部9001が「自動」を選択している場合、制御部5は、自律清掃モードを実行することが選択されていると判断する。
【0094】
切替部9001において、手動操作モードを実行することが設定されている場合(ステップS1において「手動操作モード」が選択される場合)、ステップS2へ進む。一方、切替部9001において、自律清掃モードを実行することが設定されている場合(ステップS1において「自律清掃モード」が選択される場合)、ステップS5へ進む。
【0095】
ステップS2において、制御部5は、手動操作記憶スイッチ9002が操作者により押されたかどうか確認する。手動操作記憶スイッチ9002が押されていると制御部5が判断した場合(ステップS2において「Yes」の場合)、動作モードが手動操作モードから手動操作教示モードへと移行し、手動操作の教示が開始される(ステップS3)。なお、ステップS3における手動操作の教示については、後ほど説明する。
【0096】
一方、手動操作記憶スイッチ9002が押されていないと制御部5が判断した場合(ステップS2において「No」の場合)、制御部5は、動作モードを手動操作モードのまま保持する(ステップS4)。動作モードが手動操作モードのまま保持されているとき、自律走行式床洗浄機100は操作者により手動操作可能であるが、操作者による手動操作は自律走行式床洗浄機100に記憶されない。すなわち、手動操作記憶スイッチ9002が押されない限りは、操作者による手動操作は教示されない。
このように、手動操作記憶スイッチ9002が押されたときに手動操作の教示を開始することにより、操作者は、所望の走行位置から自律走行式床洗浄機100に手動操作を教示できる。その結果、自律走行式床洗浄機100は、操作者が所望する清掃スケジュール500を作成できる。
【0097】
ステップS5において、清掃再現部5035は、清掃スケジュール500に基づき、教示された清掃作業を再現するための制御指令である、再現走行制御指令及び再現清掃条件を算出する。
【0098】
そして、算出された再現清掃条件に基づき、清掃制御部5001が制御される。そして、算出された再現走行制御指令に基づき、走行制御部5003が制御される。この結果、自律走行式床洗浄機100は、教示された清掃作業を、自律的に再現できる。
【0099】
以下に、上述したステップS3及びステップS5の具体的な動作について説明する。
【0100】
6−2.手動操作の教示方法
まず、
図8AのステップS3における操作者による自律走行式床洗浄機100の手動操作を教示する方法について、
図8Bを用いて説明する。
図8Bは、操作者による自律走行式床洗浄機の手動操作を教示する方法を示すフローチャートである。
動作モードが手動操作教示モードに移行後(すなわち、手動操作の教示の開始後)、操作者は、走行経路教示部7を用いて、自律走行式床洗浄機100を手動により走行させる。また、操作者は、清掃条件教示部9003を用いて清掃条件を手動設定し、自律走行式床洗浄機100に床面Fの清掃を実行させる(ステップS31)。
【0101】
操作者による手動操作の実行中、教示データ取得部5015が、清掃条件教示部9003から教示清掃条件を、SLAM部5045から教示位置情報及び教示データ取得時間を、教示データとして取得する(ステップS32)。なお、ステップS32における教示データの取得方法については、後ほど詳しく説明する。
【0102】
ステップS32において教示データを取得後、清掃スケジュール作成部5025が、教示清掃条件、教示位置情報、及び教示データ取得時間に基づき、清掃スケジュール500を作成する(ステップS33)。なお、ステップS33における清掃スケジュールの作成方法については、後ほど詳しく説明する。
【0103】
ステップS33を実行後、制御部5は、教示すべき操作者による手動操作(清掃作業)が全て終了したかどうかを判断する(ステップS34)。手動操作教示モードの実行時において操作者の清掃作業が全て終了したかどうかは、手動操作教示モードの実行中に手動操作記憶スイッチ9002が(再び)押されたかどうかにより判断できる。その他、操作者の清掃作業が全て終了したかどうかが、設定部9の運転停止実行/終了ボタン(図示せず)の状態に基づいても決定されてもよい。例えば、当該ボタンが運転実行状態であれば、制御部5は、清掃作業が続行していると判断できる。一方、当該ボタンが運転停止状態であれば、制御部5は、清掃作業が終了していると判断できる。
【0104】
制御部5が、教示すべき清掃作業が継続中であると判断した場合(ステップS34において「No」の場合)、ステップS31に戻る。一方、制御部5が、教示すべき清掃作業が全て終了したと判断した場合(ステップS35において「Yes」の場合)、操作者による清掃作業の教示を終了する。
これにより、操作者による清掃作業が終了するまで上記のステップS31〜S33の実行が継続され、操作者による清掃作業が自律走行式床洗浄機100に教示される。
【0105】
6−3.教示データ取得方法
次に、上記のステップS32における教示データの取得方法について、
図9を用いて説明する。
図9は教示データ取得方法を示すフローチャートである。
教示データの取得を開始すると、まず、教示データ取得部5015が、手動操作教示モードの実行開始からの経過時間(手動操作教示モード経過時間)を確認する(ステップS321)。そして、教示データ取得部5015は、手動操作教示モード経過時間が教示データ取得時間と一致するかどうかを判断する(ステップS322)。この判断は、例えば、以下のようにして実現できる。
【0106】
まず、経過時間決定部5245が、マイコンシステムなどの時計機能やマイコンシステムのクロックなどを用いて、所定の時間毎にパルス信号(取得時間決定パルス信号)を発生させる。次に、教示データ取得部5015が、取得時間決定パルス信号(の立ち上がり又は立ち下がり)を検出する。そして、取得時間決定パルス信号を検出したとき、教示データ取得部5015は、手動操作教示モード経過時間が教示データ取得時間と一致したと判断する。
【0107】
教示データ取得部5015が、手動操作教示モード経過時間と教示データ取得時間とが一致しないと判断した場合(ステップS322において「No」の場合)、ステップS321に戻る。
一方、教示データ取得部5015が手動操作教示モード経過時間と教示データ取得時間とが一致すると判断した場合(ステップS322において「Yes」の場合)、ステップS323に進む。これにより、教示データ取得部5015は、経過時間決定部5245が決定した時間において、教示データを取得できる。
【0108】
ステップS323において、教示データ取得部5015が、教示データを取得する。具体的には、教示データ取得部5015は、SLAM部5045から教示位置情報と教示データ取得時間を取得する。また、教示データ取得部5015は、清掃条件教示部9003から清掃制御部5001を介して、教示清掃条件を取得する。
【0109】
上述したように、経過時間決定部5245は、マイコンシステムの時計機能又はクロックなどを用いて、取得時間決定パルス信号を所定の時間毎に発生させている。このとき、教示データ取得部5015は、例えば、取得時間決定パルス信号間の間隔を、取得時間決定パルス信号の発生数だけ積算することにより、教示データ取得時間を取得(算出)できる。
又は、経過時間決定部5245が、取得時間決定パルス信号のみでなく、教示データ取得時間も決定して、教示データ取得部5015に出力してもよい。この場合、教示データ取得部5015が、教示データ取得時間を算出する必要がなくなる。
【0110】
また、ステップS323において取得される教示位置情報は、取得時間決定パルス信号が発生したタイミングにおける、前方検出器11、後方検出器13、及びエンコーダ1013からの信号に基づき、位置推定部5145により推定(算出)される。そして、SLAM部5045が、算出された教示位置情報を出力する。
なお、位置推定部5145における、教示位置情報の推定方法については、後述する。
【0111】
一方、教示清掃条件については、教示データ取得部5015が、取得時間決定パルス信号を受信したときに、清掃切替部5011を介して、清掃条件教示部9003において設定された清掃条件を教示清掃条件(S,W,P)として取得する。なお、教示清掃条件のSは、洗浄液供給部3003から供給される洗浄液の供給量である。Wは、洗浄用部材3001の洗浄力である。Pは、吸引部3005の吸引力である。
【0112】
ステップS323において、教示データ取得部5015が、教示データ取得時間、教示位置情報、及び教示清掃条件を教示データとして取得後、ステップS324に進む。
ステップ
S324においては、教示データ取得部5015が、取得した上述の教示データを、清掃スケジュール作成部5025に送信する。
【0113】
このようにして、教示データ取得部5015は、教示データ取得時間において、教示清掃条件、教示位置情報、及び教示データ取得時間を取得し、清掃スケジュール作成部5025に送信できる。そして、教示データ取得時間は、経過時間決定部5245において決定されている。すなわち、教示清掃条件及び教示位置情報は、自律走行式床洗浄機100によって自律的に取得されている。これにより、自律走行式床洗浄機100の操作者は、清掃スケジュール500の作成や記憶を意識することなく、従来の自走歩行式床面洗浄機などを用いて清掃作業を行うのと同じようにして、清掃作業を教示できる。
【0114】
なお、
図8Bに示すように、教示データを取得するステップS32は、操作者による全清掃作業が終了するまで実行される。従って、上記のステップS321〜S324も、操作者による全清掃作業が終了するまで繰り返し実行される。これにより、教示データ取得部5015は、操作者による全清掃作業が終了するまで繰り返し、教示データを取得し清掃スケジュール作成部5025に送信できる。
【0115】
6−3−1.位置推定方法
ここで、SLAM部5045における位置情報の推定方法について、
図10を用いて説明する。
図10は、(教示)位置情報の推定方法を示すフローチャートである。
図10を用いて説明する位置情報の推定方法においては、エンコーダ1013のパルス信号に基づいて算出される走行部1の移動量と、前方検出器11及び後方検出器13から得られる障害物に関する情報(地図情報)を用いて、走行部1の位置情報の推定を行っている。
以下においては、教示データ取得時間T
n(n:整数。nはn番目の位置推定であることを示す)における位置推定方法を例に取って説明する。
【0116】
まず、SLAM部5045が、前方検出器11及び後方検出器13から、教示データ取得時間T
nにおける、前方の障害物に関する情報及び後方の障害物に関する情報を取得する(ステップS3231)。
ステップS3231の実行後、ステップS3232に進む。ステップS3232においては、取得した前方の障害物に関する情報及び後方の障害物に関する情報に基づいて、地図作成部5345が第1ローカルマップ情報を作成する。なお、具体的な第1ローカルマップ情報の作成方法については、後述する。
【0117】
ステップS3232の実行後、ステップS3233に進む。ステップS3233においては、SLAM部5045が、エンコーダ1013のパルス信号(回転量決定パルス信号)に基づいて、教示データ取得時間T
n−1から教示データ取得時間T
nまでの間の走行モータ1003の回転量を算出する。そして、位置推定部5145が、走行モータ1003の回転量、教示データ取得時間T
n−1における環境地図情報、及び教示データ取得時間T
nにおけるローカルマップ情報に基づいて、自律走行式床洗浄機100(走行部1)の所定の座標上における位置(座標値:(x
n,y
n))と、所定の座標上における走行部1の進行方向を推定する。
【0118】
ここで、教示データ取得時間T
nにおける、第2座標(所定の座標)上における走行部1の進行方向は、
図11に示すように、第2座標の水平軸(x軸)と、走行部1の前方方向と平行な軸(「基準軸」と呼ぶこともある)とがなす角度θ
nとして定義される。
すなわち、本実施形態における、教示データ取得時間T
nにおける位置推定情報は、第2座標上の座標値(x
n,y
n)と走行部1の進行方向θ
nとにより構成される、3次元の値(x
n,y
n,θ
n)である。
なお、ステップS3233における走行部1の位置及び進行方向の推定方法については、後述する。
【0119】
ステップS3233の実行後、ステップS3234に進む。
ステップS3234においては、地図作成部5345が、ステップS3232において取得した第1ローカルマップ情報から第2ローカルマップ情報を作成し、作成された第2ローカルマップ情報を復元用地図情報として記憶部5007に記憶する。この時、地図作成部5345は、復元用地図情報と教示データ取得時間T
nを関連付けて、復元用地図情報を記憶部5007に記憶する。
【0120】
このように、復元用地図情報に教示データ取得時間T
nを関連付けることにより、教示データ取得時間T
nにおける自律走行式床洗浄機100の周囲の障害物の情報を、記憶部5007に記憶できる。
【0121】
なお、第2ローカルマップ情報は、第1ローカルマップ情報を表現する第1座標を第2座標に変換することにより作成される。具体的には、以下のようにして、第1座標を第2座標に変換する。
まず、第1ローカルマップ情報を、ステップS3233において推定された走行部1の進行方向θ
nとは逆方向にθ
nだけ回転する。すなわち、第1ローカルマップ情報を−θ
nだけ回転する。そして、回転処理後の第1ローカルマップ情報の原点が、ステップS3233において推定された走行部1の座標値(x
n,y
n)となるように、回転処理後の第1ローカルマップを平行移動する。
この処理により、第1座標上に表現された第1ローカルマップ情報(X
k,Y
k,P
k)は、第2座標上に表現された第2ローカルマップ情報(x
k,y
k,P
k)=(x
n+X
kcos(−θ
n)+Y
ksin(−θ
n),y
n−X
ksin(−θ
n)+Y
kcos(−θ
n),P
k)に変換される。
従って、第2ローカルマップ情報は、走行部1(自律走行式床洗浄機100)を中心とした第1座標上に表現された第1ローカルマップ情報を、清掃作業を行っている平面(床面F)を表す第2座標上に展開することにより作成されている。よって、作成された複数の第2ローカルマップ情報を連結すると、清掃作業を行っている平面(床面F)全体(あるいは、全体の内の一部)の地図情報となる。
【0122】
ステップS3234を実行後、ステップS3235に進む。ステップS3235においては、地図作成部5345が、環境地図情報を更新する。ステップS3235においては、次の(教示データ取得時間T
n+1における)位置情報推定に用いる環境地図情報が作成される。ステップS3235における環境地図情報の作成は、例えば、前の(教示データ取得時間T
n−1における)位置推定時に作成された環境地図情報(今回の位置推定に用いられた環境地図情報)に、今回の(教示データ取得時間T
nにおける)第2ローカルマップ情報を足し合わせることにより行われる。そして、作成された環境地図情報は、教示データ取得時間T
nと関連付けられて、記憶部5007に記憶される。
【0123】
なお、ステップS3235において、作成された環境地図情報のうち、次の(教示データ取得時間T
nにおける)位置情報の推定に用いる必要のない部分は削除されてもよい。また、教示データ取得時間T
n以前の環境地図情報は、記憶部5007から削除されてもよい。これにより、SLAM法における地図作成において課題となっていた、環状経路に関する問題を解決できる。また、記憶部5007の記憶領域を無駄に使用することがなくなる。
【0124】
ステップS3235にて環境地図情報を更新後、位置情報の推定を終了する。
なお、上述した位置情報の推定方法において、教示データ取得時間T
0、すなわち、手動操作教示モードを開始した時間における位置情報(x
0,y
0,θ
0)は、(0,0,0)であるとする。これは、手動操作教示モードの開始時においては、走行部1は、所定の座標上の原点(0,0)に存在し、走行部1の進行方向は0°(x軸に平行、すなわち、手動操作教示モードの開始時の走行部1の基準軸が、所定の座標のx軸に対応する)であるとすることを意味している。
そして、教示データ取得時間T
0において、ステップS3235における環境地図情報の更新は、ステップS3232において取得された第1ローカルマップ情報を、環境地図情報とすることにより行われる。
【0125】
6−3−2.第1ローカルマップ情報の作成方法
ここで、前方検出器11及び後方検出器13から得られた、前方の障害物に関する情報及び後方の障害物に関する情報から第1ローカルマップ情報の作成方法について、
図12〜
図13Bを用いて説明する。
図12は、第1ローカルマップ情報の作成方法を示すフローチャートである。
図13A及び
図13Bは、第1ローカルマップ情報の作成方法を模式的に示した図である。ここで、
図13Aに示すように、第1ローカルマップ情報の範囲を表す第1領域A1は、所定数の小領域に分割されているとする(
図13A及び
図13Bでは、8×8の64個の小領域に分割)。そして、それぞれの小領域の中心の座標(X
k,Y
k)(k=1,2,・・・,64)が定められているとする。また、前方検出器11及び後方検出器13から得られた障害物に関する情報は、走行部1(前方検出器11又は後方検出器13)から障害物までの距離rと、障害物が存在する方向の走行部1の進行方向(第1座標のX軸に対応)に対する角度φにより、(r,φ)として表現されるとする。
【0126】
まず、障害物に関する情報(r,φ)を、第1座標軸上の座標値(X,Y)に変換する(ステップS3232−1)。この座標変換は、X=rcosφとし、Y=rsinφとすることにより可能である。
【0127】
次に、ステップS3232−1において座標変換した座標値(rcosφ,rsinφ)が、第1領域A1のどの小領域内に存在するかを選択する(ステップS3232−2)。これは、座標値(rcosφ,rsinφ)とそれぞれの小領域の中心座標(X
k,Y
k)との大小関係を比較することにより選択できる。今、座標値(rcosφ,rsinφ)が、座標(X
k1,Y
k1)(
図13Bを参照)にて表させる小領域内に存在すると選択されたとする。すなわち、座標(X
k1,Y
k1)にて表される小領域に障害物が存在するとする。
【0128】
そして、第1領域A1の小領域のそれぞれに、確率値を割り当てる(ステップS3232−3)。ここで、確率値とは、各小領域に障害物が存在する確率に相当する値である。この時、各小領域への確率値の割り当ては、例えば、
図13Bに示すようにして行う。
まず、障害物が存在するとされた小領域を表す座標(X
k1,Y
k1)には、確率値1.0を割り当てる。次に、第1座標の原点から各小領域の座標(X
k,Y
k)までの距離を算出する。当該距離は、(X
k2+Y
k2)
0.5の式から算出できる。
【0129】
そして、距離(X
k2+Y
k2)
0.5がrよりも大きい小領域(X
k2,Y
k2)(
図13Bを参照)に対しては、確率値0.0を割り当てる。これは、距離がrよりも大きい小領域に、障害物が存在するかどうかは不明であることに対応する。
一方、距離(X
k2+Y
k2)
0.5がrよりも小さい小領域(X
k3,Y
k3)及び小領域(X
k4,Y
k4)(
図13Bを参照)に対しては、確率値として負の値を割り当てる。そして、当該負の値は、距離(X
k2+Y
k2)
0.5がrに近づく(小領域が小領域(X
k1,Y
k1)に近づく)につれて、0に近づく。
図13Bの例においては、障害物が存在する小領域に近い小領域(X
k3,Y
k3)に割り当てられる確率値−aは、障害物が存在する小領域から遠い小領域(X
k4,Y
k4)に割り当てられる確率値−bよりも0に近い。つまり、この時の確率値は、小領域に障害物が存在しないことと、小領域から障害物までの距離の長短とを表している。
【0130】
次に、必要な小領域に対して確率値を割り当てたかどうかを確認する(ステップS3232−4)。必要な小領域の全てに対して確率値を割り当てた場合(ステップS3232−4において「Yes」の場合)、第1ローカルマップ情報の作成を終了する。
一方、必要な小領域の全てに対して確率値を割り当てていない場合(ステップS3232−4において「No」の場合)、ステップS3232−1に戻り、第1ローカルマップ情報の作成を継続する。
【0131】
6−3−3.走行部の位置及び進行方向の推定方法
次に、
図10に示したフローチャートのステップS3233における、走行部1の所定の座標(第2座標)上の位置及び進行方向の推定方法の一例について、
図14及び
図15を用いて説明する。
図14は、走行部1の第2座標上(所定の座標上)の位置及び進行方向の推定方法の一例を示すフローチャートである。
図15は、回転量の誤差を考慮したデッドレコニングにより位置推定方法を模式的に示す図である。
図14に示す走行部1の位置及び進行方向の推定方法は、エンコーダ1013のパルス信号に基づいて算出される位置情報と、前方検出器11及び後方検出器13の信号に基づいて作成される地図情報とに基づいて、位置情報を推定する方法である。また、以下の位置情報の推定方法の一例は、ベイズの定理(ベイズフィルタ)に基づいた推定方法である。
また、以下の説明においては、教示データ取得時間T
nにおける走行部1の位置及び進行方向の推定方法について説明する。
【0132】
走行部1の位置及び進行方向の推定を開始すると、まず、ステップS3233−1において、位置推定部5145が、走行モータ1003の回転量に基づいて、教示データ取得時間T
nにおける走行部1の位置及び進行方向を推定する。本実施形態では、教示データ取得時間T
n−1からT
nまでの移動量(Δx
n,Δy
n,Δθ
n)を、エンコーダ1013のパルス信号に基づいて推定する。
このように、エンコーダ1013からのパルス信号に基づいて、位置及び進行方向を推定することを、「デッドレコニングによる位置推定」と呼ぶこともある。
【0133】
ただし、主輪部1001と床面Fとの間の「すべり」などの影響により、走行モータ1003の回転量と、主輪部1001の回転により走行部1が進む距離との間に誤差が生じることがよくある。従って、ステップS3233−1においては、教示データ取得時間T
n−1からT
nまでの移動量(Δx
n,Δy
n,Δθ
n)を算出する際に、ある程度の誤差があることを考慮しておく。
【0134】
本実施形態においては、走行モータ1003の回転量がR
nであった場合に所定の移動量となる確率を定義し、当該移動量と当該確率とを関連付けることにより、上述の誤差を考慮する。具体的には、走行モータ1003の回転量R
nから算出される移動量ΔM
1を平均値(中心)とし、所定の標準偏差σを有する、移動量ΔMの関数である正規分布関数を定義する。なお、正規分布関数の標準偏差σは、主輪部1001と床面Fとのすべりなどの影響を反映したものである、従って、標準偏差σは、床面Fの状態などに応じて、変更可能となっていてもよい。
【0135】
移動量ΔMと確率との関連付けは、例えば、次のようにして行う。すなわち、
図15に示すように、走行モータ1003が回転量R
nだけ回転したときに、ΔM
1まで移動する確率を正規分布関数の最大値Q
1とする。そして、移動量ΔM
1と正規分布関数の最大値Q
1とを関連付けておく。そして、移動量ΔM
1からはずれる移動量ΔM
2及びΔM
3となる確率については、正規分布関数から、それぞれ、Q
2及びQ
3(Q
2<Q
1、Q
3<Q
1)と算出される。そして、移動量ΔM
2をQ
2に、移動量ΔM
3を確率Q
3に関連付ける。
【0136】
このように、デッドレコニングによる位置推定において、ある程度の誤差を考慮しておくことにより、主輪部1001と床面Fとの間にすべりなどが生じても、精度良く走行部1の位置及び進行方向を推定できる。なお、上記のステップS3233−1は、ベイズの定理において、事前確率を算出することに対応する。
【0137】
ステップS3233−1においてデッドレコニングによるすべりを考慮した位置推定を実行した後、ステップS3233−2に進む。ステップS3233−2においては、位置推定部5145が、記憶部5007に記憶された教示データ取得時間T
nにおける第2ローカルマップ情報と、教示データ取得時間T
n−1において作成された環境地図情報とが、どの程度一致しているかを評価(マップマッチング)する。
【0138】
具体的には、まず、位置推定部5145が、ステップS3233−1において定義した正規分布関数の値が所定の値以上となる移動量を所定の数だけ選択する。そして、選択した移動量のそれぞれに対して、当該選択した移動量だけ移動したときの、走行部1の第2座標上の位置及び進行方向を、教示データ取得時間T
nにおける仮の位置として算出する。具体的には、教示データ取得時間T
n−1における位置情報を(x
n−1,y
n−1,θ
n−1)とし、移動量を(Δx’,Δy’,Δθ’)とした場合、仮の位置は、(x
n−1+Δx’,y
n−1+Δy’,θ
n−1+Δθ’)と算出される。
次に、地図作成部5345が、所定の数の仮の位置のそれぞれに対して、教示データ取得時間T
nにおける第1ローカルマップ情報から、第2ローカルマップ情報を作成する。なお、この時の第2ローカルマップ情報は、上述のステップS3234の説明のときに説明した第1ローカルマップ情報を第2ローカルマップ情報に変換する方法に従って作成できる。
そして、仮の位置における第2ローカルマップ情報のそれぞれと、教示データ取得時間T
n−1において作成された環境地図情報との一致の度合いを数値として算出する(マップマッチング)。なお、ステップS3233−2は、ベイズの定理において、尤度を算出することに対応する。
このように、所定の数の仮の位置における地図情報(第2ローカルマップ情報)を作成し、環境地図情報とマップマッチングを行うことにより、次のような効果がある。すなわち、前方検出器11及び/又は後方検出器13から得られる信号にノイズなどが入り、第1ローカルマップ情報が実際の障害物情報からゆらいでいても、当該第1ローカルマップ情報のゆらぎを考慮して、位置情報を推定できる。
【0139】
ステップS3233−2において、所定の数の第2ローカルマップ情報と環境地図情報とのマップマッチングを行った後、ステップS3233−3に進む。
ステップS3233−3においては、位置推定部5145が、ステップS3233−1におけるデッドレコニングによる位置推定結果と、ステップS3233−2における所定の数の第2ローカルマップ情報と環境地図情報とのマップマッチング結果に基づいて、教示データ取得時間T
nにおける、走行部1の位置と進行方向(x
n,y
n,θ
n)(位置情報)を推定する。
具体的には、まず、位置推定部5145が、ステップS3233−2において算出したマップマッチング結果と、ステップS3233−1において定義した正規分布関数との積を計算する。そして、当該マップマッチング結果と正規分布関数との積が最大値となる仮の位置を、教示データ取得時間T
nにおける走行部1の位置(x
n,y
n,θ
n)と推定する。
【0140】
このように、マップマッチング結果(尤度)とデッドレコニングによる位置推定結果(事前確率)との積を算出し、当該積の値が最大となる仮の位置を実際の走行部1の位置と推定することにより、デッドレコニングによる位置推定に誤差があり、かつ/又は、前方検出器11及び後方検出器13の信号のノイズにより各地図情報に誤差(ゆらぎ)が生じた場合であっても、精度良く走行部1の位置を推定できる。
なお、上述のステップS3233−3において、マップマッチング結果と正規分布関数との積を算出することは、ベイズの定理においては、事後確率を算出することに対応する。
【0141】
6−4.清掃スケジュール作成方法
次に、
図8Bに示したフローチャートのステップS33の清掃スケジュール500の作成方法について、
図16〜
図17Bを用いて説明する。
図16は、清掃スケジュール500の作成方法を示すフローチャートである。
図17Aは、走行スケジュール単位(後述)を示す図である。
図17Bは、清掃スケジュール単位を追加した清掃スケジュールを示す図である。
まず、清掃スケジュール作成部5025が、教示データ取得部5015から、教示データ取得時間T
nにおいて、教示データ取得時間T
n、教示位置情報(x
n,y
n,θ
n)、及び教示清掃条件(S
n,W
n,P
n)(後述)を受信する(ステップS331)。ステップS331において、清掃スケジュール500の作成に必要な教示データを取得後、ステップS332へ進む。
【0142】
ステップS332においては、清掃スケジュール作成部5025が、清掃スケジュール単位500−nを作成する。清掃スケジュール単位500−nとは、清掃スケジュール500の最小単位をいう。清掃スケジュール単位500−nは、
図17Aに示すようなデータ構造を有している。すなわち、清掃スケジュール単位500−nは、経過時間情報記憶領域501−nと、位置情報記憶領域503−nと、清掃条件記憶領域505−nと、を有する。
【0143】
経過時間情報記憶領域501−nには、経過時間情報が記憶される。ステップS33において清掃スケジュール500を作成する際は、経過時間情報記憶領域には、教示データ取得時間T
nが記憶される。すなわち、清掃スケジュール単位500−nには、清掃作業全体ではなく、ある経過時間(教示データ取得時間T
n)における、教示データが記憶される。
位置情報記憶領域503−nには、位置情報が記憶される。ステップS33において清掃スケジュール500を作成する際は、位置情報記憶領域503−nには、教示データ取得時間T
nにおける教示位置情報(x
n,y
n,θ
n)が記憶される。
【0144】
清掃条件記憶領域505−nには、清掃条件が記憶される。ステップS33において清掃スケジュール500を作成する際は、清掃条件記憶領域505−nには、教示データ取得時間T
nにおける教示清掃条件(S
n,W
n,P
n)が記憶される。ここで、S
nは、教示データ取得時間T
nにおける、洗浄液供給部3003から供給される洗浄液の供給量である。W
nは、教示データ取得時間T
nにおける、清掃部3による床面Fの洗浄力である。P
nは、教示データ取得時間T
nにおける、吸引部3005による吸引力である。
【0145】
このように、教示位置情報及び教示清掃条件を時間(教示データ取得時間T
n)に関連付けて清掃スケジュール単位500−nを作成することにより、自律走行式床洗浄機100に対して、多様な清掃作業を教示できる。例えば、ある所定の走行経路においてはゆっくりと走行しながら清掃を行ったり、走行経路上で停止した状態で異なる清掃作業を行ったり、といった清掃作業を教示できる。
【0146】
ステップS332において清掃スケジュール単位500−nを作成後、ステップS333に進む。ステップS333においては、清掃スケジュール作成部5025が、教示データ取得時間T
n−1までに作成された清掃スケジュール500に、教示データ取得時間T
nにおける清掃スケジュール単位500−nを連結する。
この時、T
n−1までに作成された清掃スケジュール500は、記憶部5007に記憶されている。従って、清掃スケジュール単位500−nを清掃スケジュール500に連結することにより、清掃スケジュール単位500−nは記憶部5007に記憶されることになる。また、教示データの取得開始直後において、清掃スケジュール500には教示データが存在しない。しかし、清掃スケジュール500が電子ファイルの場合には、教示データが空であっても、清掃スケジュール500に、例えば、「エンド・オブ・ファイル」の識別子が記録されていれば、清掃スケジュール500の末尾は判断できるので、取得した清掃スケジュール単位500−n(この場合、n=0)を清掃スケジュール500に連結できる。
【0147】
なお、本実施形態において、清掃スケジュール500への清掃スケジュール単位500−nの連結は、
図17Bに示すように、教示データ取得時間T
n−1までの清掃スケジュール500の次行に、教示データ取得時間T
nにおける清掃スケジュール単位500−nを追加することにより実行されている。しかし、これに限られない。例えば、最新の教示データ取得時間における清掃スケジュール単位が1行目となるように連結してもよい。すなわち、
図17Bに示した清掃スケジュール500とは逆に、教示データ取得時間が早い順に清掃スケジュール単位を積み上げるようにして、清掃スケジュール500を作成してもよい。
又は、清掃スケジュール単位を、次行に連結あるいは積み上げるのではなく、清掃スケジュール500の終端(清掃スケジュール500がマイコンシステムにおいて使用可能な電子ファイルであれば、「エンド・オブ・ファイル」識別子の直前)に、改行を挿入することなく連結してもよい。この場合、清掃スケジュール500は、
図17Bの紙面の横方向に伸びるような電子ファイルとなる。
その他、清掃スケジュール500の利用や管理のしやすさなどに応じて、適切な連結方法を用いることができる。
【0148】
図8Bに示すように、ステップS33は、操作者による全清掃作業が終了するまで実行される。従って、上述のステップS331〜S333までのステップも操作者による全清掃作業が終了するまで繰り返し実行される。これにより、清掃スケジュール作成部5025は、操作者による全清掃作業を表現した清掃スケジュール500を作成し、記憶部5007に記憶できる。その結果、操作者により清掃作業を一度教示すると、操作者による全清掃作業は清掃スケジュール500として記憶部5007に記憶される。従って、清掃作業が一度教示されれば、清掃スケジュール500に基づいて自律走行式床洗浄機100を制御すれば、教示された清掃作業を(清掃スケジュール500を更新しない限り)何度でも自律的に再現できる。
【0149】
6−5.自律清掃方法
次に、
図8AのステップS5における、教示された清掃作業(走行経路及び清掃条件)を再現する、自律清掃モードの実行時における自律走行式床洗浄機100の動作について、
図18を用いて説明する。
図18は、自律清掃モードの実行時の自律走行式床洗浄機100の動作を示すフローチャートである。今、自律走行モードの実行開始からの経過時間t
n−1までが決定されているとする。ここで、nは、n番目の自律清掃のための制御が行われたことを示す。
まず、SLAM部5045が、前方検出器11及び後方検出器13から、前方の障害物に関する情報及び後方の障害物に関する情報を取得する(ステップS51)。
【0150】
ステップS51の実行後、ステップS52に進む。ステップS52において、取得した前方の障害物に関する情報及び後方の障害物に関する情報に基づいて、地図作成部5345が、上述の6−3−2.節において説明したのと同様にして、第1ローカルマップ情報を作成する。
【0151】
ステップS52の実行後、ステップS53に進む。ステップS53において、SLAM部5045が、エンコーダ1013の回転量決定パルス信号に基づいて、経過時間t
n−1から現時点(t
n)までの走行モータ1003の回転量を算出する。そして、位置推定部5145が、走行モータ1003の回転量、経過時間t
n−1における環境地図情報、及び現時点における第1ローカルマップ情報に基づいて、現時点における自律走行式床洗浄機100(走行部1)の所定の座標上における位置及び進行方向(x’
n,y’
n,θ’
n)を推定する。所定の座標(第2座標)上における位置及び進行方向(x’
n,y’
n,θ’
n)の推定方法は、上述の6−3−3.節において説明した方法と同様である。
【0152】
ステップS53の実行後、ステップS54に進む。ステップS54において、経過時間決定部5245が、自律清掃モードの実行開始からの経過時間t
nを決定する。経過時間t
nは、例えば、次のようにして決定できる。まず、記憶部5007に記憶されている清掃スケジュール500の位置情報記憶領域503−nに記憶されている位置情報と、ステップS53にて推定された走行部1の位置及び進行方向(x’
n,y’
n,θ’
n)とを比較する。そして、(x’
n,y’
n,θ’
n)に最も近い位置情報に関連付けられている清掃スケジュール500の経過時間情報(教示データ取得時間)を、経過時間t
nとする。
又は、(x’
n,y’
n,θ’
n)に近い2つの位置情報を清掃スケジュール500から抽出し、2つの位置情報の線形補間により算出される時間を、経過時間t
nとしてもよい。
【0153】
このように、自律清掃モードの実行時からの経過時間t
nを、位置情報と清掃スケジュール500に基づいて決定することにより、所定の清掃作業を、教示されたタイミングにおいて正確に実行するとともに、当該所定の清掃作業を、教示された場所において確実に実行できる。その結果、自律走行式床洗浄機100は、自律清掃モードの実行時に、精度良く教示された清掃作業を再現できる。
【0154】
ステップS54において経過時間t
nを決定後、ステップS55に進む。ステップS55において、地図作成部5345が、経過時間t
n及びそれより先の時間と関連付けられている復元用地図情報を用いて、仮の環境地図情報を作成する。この仮の環境地図情報とすでに作成された(t
n−1において作成された)環境地図情報とを足し合わせて、新たな環境地図情報を作成する。このようにして新たに作成された環境地図情報は、次の経過時間(t
n+1)における位置推定のために用いられる。
【0155】
ステップS55を実行後、ステップS56に進む。ステップS56においては、清掃再現部5035が、経過時間t
nにおける再現走行制御指令及び再現清掃条件を算出する。
今、経過時間t
nが、教示データ取得時間T
L(に最も近い)であると決定されたとする。この場合、次のようにして、清掃再現部5035は、再現走行制御指令及び再現清掃条件を算出する。
まず、清掃再現部5035は、次の教示データ取得時間T
L+1に関連付けられた位置情報(x
L+1,y
L+1,θ
L+1)を、清掃スケジュール500から読み出す。そして、清掃再現部5035は、経過時間t
nにおける再現走行制御指令ΔM
rを、ΔM
r=(x
L+1−x’
n,y
L+1−y’
n,θ
L+1−θ’
n)と算出する。
【0156】
そして、清掃再現部5035は、教示データ取得時間T
Lに関連付けられた清掃条件(S
L,W
L,P
L)を清掃スケジュール500から読み出し、当該清掃条件(S
L,W
L,P
L)を、経過時間t
nにおける再現清掃条件として決定する。
【0157】
ステップS56を実行後、ステップS57に進む。ステップS57においては、再現走行制御指令が、走行制御部5003に送信され、再現清掃条件が、清掃制御部5001に送信される。そして、自律清掃モードの実行時は、走行制御部5003の走行切替部5013の端子eと端子fとが接続されているため、再現走行制御指令は、走行切替部5013を介して、モータ制御部5033に送信される。この結果、モータ制御部5033は、再現走行制御指令に基づいて、走行モータ1003を制御する。
【0158】
また、自律清掃モードの実行時は、清掃制御部5001の清掃切替部5011の端子bと端子cとが接続されている。従って、再現清掃条件は、清掃切替部5011を介して、清掃制御部5001に送信される。この結果、清掃制御部5001は、再現清掃条件に基づいて、清掃部3を制御する。
【0159】
ステップS56において走行部1(走行モータ1003)及び清掃部3の制御を行った後、清掃スケジュール500に記憶された清掃作業が全て実行したかどうかを確認する。清掃スケジュール500に記憶された清掃作業が全て終了したかどうかは、清掃スケジュール500の末尾にある識別子(例えば、「エンド・オブ・ファイル」を示す識別子など)を検出することにより、確認できる。すなわち、当該識別子を検出すれば、清掃スケジュール500に記憶された清掃作業は全て実行されたとすることができる。一方、当該識別子を検出しなければ、清掃作業は継続されると判断できる。
【0160】
清掃再現部5035が、清掃作業が継続中であると判断した場合(ステップS58において「No」の場合)、ステップS51に戻る。一方、清掃再現部5035が、清掃スケジュール500に記憶された清掃作業が全て実行されたと判断した場合(ステップS58において「Yes」の場合)、自律清掃モードの実行を終了する。
これにより、自律走行式床洗浄機100は、清掃スケジュール500に記憶された清掃作業を忠実に再現できる。
【0161】
(7)本実施形態の効果
以下に、本実施形態の効果について述べる。
自律走行式床洗浄機100(自律走行式床洗浄機の一例)は、教示清掃条件(教示された清掃条件の一例)と教示された走行経路とを再現することにより、自律的に走行し清掃を実行する自律走行式床洗浄機である。自律走行式床洗浄機100は、清掃部3(清掃部の一例)と、走行部1(走行部の一例)と、位置推定部5145(位置推定部の一例)と、清掃条件教示部9003(清掃条件教示部の一例)と、走行経路教示部7(走行経路教示部の一例)と、教示データ取得部5015(教示データ取得部の一例)と、清掃スケジュール作成部5025(清掃スケジュール作成部の一例)と、清掃再現部5035(清掃再現部の一例)と、経過時間決定部5245(経過時間決定部の一例)と、を備える。
清掃部3は、清掃条件に従って床面F(床面の一例)を清掃する。
走行部1は、操作者の操作又は走行制御指令に従って走行する。
位置推定部5145は、位置情報(x
n,y
n,θ
n)(位置情報の一例)を推定する。
清掃条件教示部9003は、操作者による清掃条件の入力を受け付けて、清掃部3に出力する。
走行経路教示部7は、操作者による走行部1の移動操作を受け付ける。
教示データ取得部5015は、手動操作教示モードの実行時に、教示位置情報(x
n,y
n,θ
n)(教示位置情報の一例)と、教示清掃条件(S
n,W
n,P
n)(教示清掃条件の一例)とを、教示データ取得時間T
n(教示データ取得時間の一例)において取得する。
【0162】
清掃スケジュール作成部5025は、教示位置情報(x
n,y
n,θ
n)と教示清掃条件(S
n,W
n,P
n)とを、教示データ取得時間T
nに関連付けて清掃スケジュール500(清掃スケジュールの一例)を作成し記憶する。
清掃再現部5035は、自律清掃モードの実行時に、清掃スケジュール500に記憶された教示データ取得時間T
nと教示清掃条件(S
n,W
n,P
n)と教示位置情報(x
n,y
n,θ
n)とに基づいて、自律清掃モードの実行開始からの経過時間t
n(所定の経過時間の一例)における再現走行制御指令と再現清掃条件とを算出する。そして、清掃再現部5035は、算出された再現走行制御指令及び再現清掃条件をそれぞれ、走行部1及び清掃部3に出力する。
経過時間決定部5245は、教示データ取得時間T
nと経過時間t
nを決定する。
【0163】
この自律走行式床洗浄機100では、以下のようにして、操作者により教示清掃条件と走行経路を再現する。
操作者が清掃作業を教示するとき(手動操作教示モードの実行時)、
(i)教示データ取得部5015が、操作者による走行部1及び清掃部3の操作を教示データ取得時間T
nにおいて取得する。
(ii)清掃スケジュール作成部5025が、教示データ取得時間T
n、教示位置情報(x
n,y
n,θ
n)、及び教示清掃条件(S
n,W
n,P
n)が関連付けられた清掃スケジュール500を作成し記憶する。
自律走行式床洗浄機100が自律的に清掃を行うとき(自律清掃モードの実行時)、
(iii)清掃再現部5035が、清掃スケジュール500に記憶された教示データ取得時間T
n、教示位置情報(x
n,y
n,θ
n)、及び教示清掃条件(S
n,W
n,P
n)に基づいて、経過時間t
nにおいて出力すべき再現清掃条件及び再現走行制御指令を算出する。
(iv)清掃部制御部5031が再現清掃条件に基づいて清掃部3を制御し、モータ制御部5033が再現走行制御指令に基づき走行部1を制御する。
【0164】
上記のステップ(ii)において、清掃スケジュール作成部5025は、作成した清掃スケジュール500を作成し記憶している。そのため、一度操作者による操作を自律走行式床洗浄機100に教示すれば、自律走行式床洗浄機100は、操作者の操作(教示)を必要とすることなく、教示された清掃作業を何度でも自律的に実行できる。
【0165】
また、この自律走行式床洗浄機100においては、上記のステップ(i)及び(ii)において、教示データ(教示清掃条件及び教示位置情報)は、教示データ取得時間T
nにおいて取得されて記憶されている。そして、教示データ取得時間T
nは、経過時間決定部5245により決定される。
【0166】
すなわち、手動操作教示モードの実行時において、自律走行式床洗浄機100は自律的に教示データを取得する。従って、自律走行式床洗浄機100に清掃作業を教示する操作者は、清掃スケジュール500の作成や記憶を意識することなく、従来のマニュアル操作式床面洗浄機などを用いて清掃作業を行うのと同じようにして、自律走行式床洗浄機100に清掃作業(清掃スケジュール500)を教示できる。
【0167】
清掃部3は、洗浄液供給部3003(洗浄液供給部の一例)と、洗浄用部材3001(床面洗浄部の一例)と、吸引部3005(吸引部の一例)と、を有している。洗浄液供給部3003は、洗浄液を床面Fに供給する。清掃部3は、床面Fに押し付けられて回転しながら床面Fを洗浄する洗浄用部材3001(洗浄用部材の一例)を有する。吸引部3005は、床面Fの上の洗浄液などを吸引する。
また、この場合、手動操作教示モードにおいて、洗浄液供給部3003から供給される洗浄液の供給量S
n(供給量の一例)と、清掃部3による床面Fの洗浄力W
n(洗浄力の一例)と、吸引部3005による洗浄液の吸引力P
n(吸引力の一例)とは、教示清掃条件として任意に設定可能である。
これにより、清掃部3は、多様な清掃作業(すなわち、多様な清掃条件)を実行できる。
【0168】
自律走行式床洗浄機100は、さらに、表示部9005(表示部の一例)を備えている。表示部9005は、清掃条件を表示する。これにより、自律走行式床洗浄機100に清掃スケジュール500を教示する操作者は、清掃条件を確認しながら清掃作業を行える。
【0169】
自律走行式床洗浄機100は、さらに、スキージ部3007(スキージ部の一例)を備えている。スキージ部3007は、床面F上に接触するか、又は、床面Fから離れるかを任意に設定可能に取り付けられている。この場合、スキージ部3007は、バック走行時において床面Fから離れている。これにより、自律走行式床洗浄機100は、床面F上の洗浄液などの液体を回収できる。
【0170】
自律走行式床洗浄機100は、清掃スケジュール修正部5009(清掃スケジュール修正部の一例)をさらに備えている。清掃スケジュール修正部5009は、清掃スケジュール500の教示清掃条件と、教示位置情報と、教示データ取得時間T
nとを修正する。これにより、清掃スケジュール500を教示した後に、清掃スケジュール500の変更などを行える。
【0171】
自律走行式床洗浄機100において、自律清掃モードの実行開始からの経過時間は、位置推定部5145にて推定された位置情報に基づき決定されている。これにより、自律走行式床洗浄機100は、自律清掃モードの実行時に、教示された教示清掃条件を実行するタイミングと場所を関連づけて正確に把握しながら、自律的に清掃作業を再現できる。
【0172】
清掃スケジュール500は、自律的に走行及び清掃を実行する際に、経過時間t
n(所定のタイミングの一例)における再現清掃条件及び再現走行制御指令を算出するために用いられる。
清掃スケジュール500は、経過時間情報記憶領域501−n(経過時間情報記憶領域の一例)と、清掃条件記憶領域505−n(清掃条件記憶領域の一例)と、位置情報記憶領域503−n(位置情報記憶領域の一例)と、から構成されるデータ構造を有する。経過時間情報記憶領域501−nには、教示データ取得時間T
n(経過時間情報の一例)が記憶されている。清掃条件記憶領域505−nには、教示データ取得時間T
nにおける教示清掃条件(S
n,W
n,P
n)(清掃条件の一例)が記憶される。位置情報記憶領域503−nには、教示データ取得時間T
nにおける教示位置情報(x
n,y
n,θ
n)(位置情報の一例)が記憶される。
また、経過時間t
nは、経過時間情報記憶領域501−nに記憶された教示データ取得時間T
nに基づき決定される。経過時間t
nにおける清掃条件(再現清掃条件)は、清掃条件記憶領域505−nに記憶され、経過時間t
nに対応する教示データ取得時間T
nに関連付けられた教示清掃条件(S
n,W
n,P
n)に基づき算出される。さらに、経過時間t
nにおける走行制御指令(再現走行制御指令)は、位置情報記憶領域503−nに記憶され、経過時間t
nに対応する教示データ取得時間T
nに関連付けられた教示位置情報(x
n,y
n,θ
n)に基づき算出される。
【0173】
上記のデータ構造を有する清掃スケジュール500においては、教示清掃条件(S
n,W
n,P
n)及び教示位置情報(x
n,y
n,θ
n)が教示データ取得時間T
n(清掃部及び走行部1の制御を開始してからの経過時間の一例)に関連付けられて記憶されている。これにより、自律走行式床洗浄機100に対して、多様な清掃作業を教示できる。
また、自律清掃モードの実行時には、経過時間t
nにおける清掃条件(再現清掃条件)及び走行制御指令(再現走行制御指令)は、清掃スケジュール500に記憶された、当該経過時間t
nに対応する教示データ取得時間T
nに関連付けられた教示清掃条件(S
n,W
n,P
n)及び教示位置情報(x
n,y
n,θ
n)に基づいて算出される。これにより、自律走行式床洗浄機は多様な清掃作業を自律的に再現できる。
【0174】
清掃スケジュール500の生成方法は、以下のステップを含む。
◎操作者により設定された教示清掃条件に基づいて、自律走行式床洗浄機100に清掃作業を実行させるステップ。
◎操作者の操作に基づいて、自律走行式床洗浄機100を走行させるステップ。
◎自律走行式床洗浄機100にて定めた所定の座標上の、自律走行式床洗浄機100の走行経路上の位置と姿勢に関する情報とを含む教示位置情報(xn,yn,θn)を推定するステップ。
◎教示位置情報と
清掃作業を実行中の清掃条件である教示清掃条件とを、自律走行式床洗浄機100において決定された教示データ取得時間Tnにおいて取得するステップ。
◎教示位置情報と教示清掃条件とを、教示データ取得時間Tnと関連付けて記憶し清掃スケジュール500を作成するステップ。
【0175】
上述の清掃スケジュールの生成方法により、教示位置情報と教示清掃条件とを、教示データ取得時間T
nに関連付けた清掃スケジュール500を簡単に生成できる。
【0176】
(8)他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
【0177】
(A)教示清掃条件の取得について
第1実施形態の自律走行式床洗浄機100において、教示清掃条件として、清掃条件教示部9003の設定状態がそのまま使用されていた。しかし、これに限られない。教示清掃条件は、センサなどの検出量に基づいて決定されてもよい。
【0178】
例えば、手動操作教示モードの実行時において、洗浄用部材回転モータ3011の回転数、及び/又は、洗浄用部材押圧アクチュエータ3021の押圧力をセンサなどにより検出して、当該検出量に基づいて決定される洗浄力を、教示清掃条件の洗浄力W
nとしてもよい。また、洗浄液供給ポンプ3013などに備えられた流量計により洗浄液の流量を検出し、検出された流量を、教示清掃条件の洗浄液の供給量S
nとしてもよい。さらに、吸引モータ3015の回転数及び/又は出力をセンサなどにより検出し、検出された回転数及び/又は出力を、教示清掃条件の吸引力P
nとしてもよい。
このように、センサなどで検出される検出量を教示清掃条件とすることにより、実際の回転数や押圧力、流量などに基づいた教示データが取得できる。
【0179】
(B)自律清掃モードの実行時における経過時間t
nの決定方法について
第1実施形態の自律走行式床洗浄機100において、経過時間決定部5245は、位置推定部5145において推定された位置情報に基づいて、自律清掃モードの実行開始からの経過時間tnを決定(推定)していた。しかし、これに限られない。特に、主輪部1001と床面Fとのすべりなどをほとんど考慮する必要が無く、また環境に障害物が一切無く、デッドレコニングによる位置推定のみであっても、精度良く位置情報を推定できる場合など、エンコーダ1013又は前方検出器11及び後方検出器13の情報のみで精度良く位置の推定が可能な場合、位置推定部5145において推定された位置情報に基づいて、経過時間tnを決定する必要はない。
この場合、経過時間決定部5245は、制御部5を構成するマイコンシステムなどに備わる時計機能やクロック機能などを用いて、経過時間t
nを決定してもよい。これにより、経過時間t
nを決定(推定)するための計算を省ける。その結果、制御部5の計算負荷を減少でき、制御部5(自律走行式床洗浄機100)の処理速度が向上する。
【0180】
(C)教示位置情報及び教示清掃条件の取得について
第1実施形態において、自律走行式床洗浄機100の教示データ取得部5015は、手動操作教示モードの実行時に、教示データ取得時間T
nにおいて教示位置情報と教示清掃条件の両方を取得していた。しかし、これに限られない。教示データ取得部5015は、所定の教示データ取得時間T
nにおいてのみ、教示清掃条件を取得してもよい。
このような教示データの取得方法は、例えば、自律清掃モード実行時に、教示された走行経路上の走行部1(自律走行式床洗浄機100)の位置について詳細に確認しながら、自律走行式床洗浄機100を走行させて清掃作業を行う場合などに適用できる。又は、清掃条件を長い間変化させることがない場合などにも適用できる。
【0181】
このような教示データの取得方法においては、例えば、教示データ取得時間T
nにおいて教示位置情報を取得しつつ、清掃条件教示部9003のキー操作があったときにのみ教示清掃条件を取得してもよい。このような教示データの取得を行うことにより、冗長なデータを取得することなく、効率よく教示データを取得できる。その結果、清掃スケジュール500のデータの量を減少できる。