(57)【要約】【課題】  直進走行の性能を向上させることのできる自走式掃除ロボット、自走式ロボットおよび自走式ロボットの走行を制御するためのプログラムを提供すること。【解決手段】  予め定められた走行パターンで走行する自走式ロボットであって、基準位置からの進行方向である角度を検出するためのジャイロセンサ２８と、基準位置からの走行距離を検出するための左ロータリエンコーダ２２，右ロータリエンコーダ２３と、本体を移動させるための左右の駆動輪と、左右の駆動輪を駆動して走行させるための左駆動輪モータ６０，右駆動輪モータ６１とを備える。ＣＰＵ１０は、走行バターンが計画路線に従い走行する直進走行パターンである場合に、ジャイロセンサ２８および左ロータリエンコーダ２２，右ロータリエンコーダ２３からの検出量に基づいて、計画路線からのずれ量を算出し、算出されたずれ量に基づいて左駆動輪モータ６０，右駆動輪モータ６１の駆動を制御する。【選択図】        図３
2006313455.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた走行パターンで走行する自走式掃除ロボットであって、
清掃を行なうために吸引動作を行なうための吸引手段と、
基準位置からの進行方向である角度を検出するための角度検出手段と、
前記基準位置からの走行距離を検出するための距離検出手段と、
本体を移動させるための走行手段と、
前記走行手段を駆動して走行させるための走行駆動手段と、
前記走行バターンが計画路線に従い走行する直進走行パターンである場合に、前記角度検出手段および前記距離検出手段からの検出量に基づいて、前記計画路線からの第１のずれ量を算出するための算出手段とを備え、
前記算出手段は、
所定時間ごとに、前記角度検出手段および前記距離検出手段からの検出量を取得するための取得手段と、
前記取得手段により取得された前記検出量に基づいて、前記所定時間ごとの、前記計画路線と平行で前記基準位置に基づく計画軸からの第２のずれ量を算出するためのずれ算出手段とを含み、
前記ずれ算出手段で算出された前記第２のずれ量を順次加算して、前記第１のずれ量を算出し、
前記算出手段により算出された前記第１のずれ量に基づいて前記走行駆動手段の駆動を制御する走行制御手段をさらに備え、
前記走行制御手段は、
前記算出手段により算出された前記第１のずれ量の符号の種別を判定するための判定手段と、
前記判定手段により判定された前記符号の種別に基づいて、前記計画路線へ向かう回転角度を設定する設定手段とを含み、
前記設定された回転角度に応じて前記走行駆動手段の駆動を制御する、自走式掃除ロボット。
【請求項２】
予め定められた走行パターンで走行する自走式ロボットであって、
基準位置からの進行方向である角度を検出するための角度検出手段と、
前記基準位置からの走行距離を検出するための距離検出手段と、
本体を移動させるための走行手段と、
前記走行手段を駆動して走行させるための走行駆動手段と、
前記走行バターンが計画路線に従い走行する直進走行パターンである場合に、前記角度検出手段および前記距離検出手段からの検出量に基づいて、前記計画路線からの第１のずれ量を算出するための算出手段と、
前記算出手段により算出された前記第１のずれ量に基づいて前記走行駆動手段の駆動を制御する走行制御手段とを備える、自走式ロボット。
【請求項３】
清掃を行なうために吸引動作を行なうための吸引手段をさらに備える、請求項２に記載の自走式ロボット。
【請求項４】
前記算出手段は、
所定時間ごとに、前記角度検出手段および前記距離検出手段からの検出量を取得するための取得手段と、
前記取得手段により取得された前記検出量に基づいて、前記所定時間ごとの、前記計画路線と平行で前記基準位置に基づく計画軸からの第２のずれ量を算出するためのずれ算出手段とを含み、
前記ずれ算出手段で算出された前記第２のずれ量を順次加算して、前記第１のずれ量を算出する、請求項２に記載の自走式ロボット。
【請求項５】
前記走行制御手段は、前記算出手段により算出された前記第１のずれ量の符号の種別を判定するための判定手段を含む、請求項２に記載の自走式ロボット。
【請求項６】
前記走行制御手段は、
前記判定手段により判定された前記符号の種別に基づいて、前記計画路線へ向かう回転角度を設定する設定手段をさらに含み、
前記設定された回転角度に応じて前記走行駆動手段の駆動を制御する、請求項５に記載の自走式ロボット。
【請求項７】
前記走行制御手段は、
前記ずれ算出手段により算出された前記第２のずれ量の符号の種別が、前記判定手段により判定された前記符号の種別と同じが否かを判断するための判断手段と、
前記判断手段により同じであると判断された場合に、前記計画路線へ向かう回転角度を増加させるための増加手段とをさらに含み、
前記増加された回転角度に応じて前記走行駆動手段の駆動を制御する、請求項５に記載の自走式ロボット。
【請求項８】
前記走行手段は、前記本体の左側に設けられた左走行手段と、前記本体の右側に設けられた右走行手段とを含み、
前記走行駆動手段は、前記左走行手段を駆動するための左走行駆動手段と、前記右走行手段を駆動するための右走行駆動手段とを含み、
前記走行制御手段は、前記左走行駆動手段および前記右走行駆動手段のいずれか一方の駆動状態を変更する、請求項２に記載の自走式ロボット。
【請求項９】
基準位置からの進行方向である角度を検出するための角度検出部と、前記基準位置からの走行距離を検出するための距離検出部と、本体を移動させるための走行部と、前記走行部を駆動して走行させるための走行駆動部とを備えた自走式ロボットの走行を制御するためのプログラムであって、
計画路線に従い走行する直進走行パターンである場合に、所定時間ごとに、前記角度検出部および前記距離検出部からの検出量を取得する取得ステップと、
前記取得された検出量に基づいて、前記所定時間ごとの、前記計画路線と平行で前記基準位置に基づく計画軸からの軸ずれ量を算出する第１の算出ステップと、
前記算出された前記軸ずれ量を順次加算して、前記計画路線からの路線ずれ量を算出する第２の算出ステップと、
前記算出された路線ずれの符号の種別を判定する判定ステップと、
前記判定された符号の種別に基づいて、前記計画路線へ向かう回転角度を設定し、前記設定した回転角度に応じて前記走行駆動部の駆動を制御する走行制御ステップとをコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自走式掃除ロボット、自走式ロボットおよび自走式ロボットの走行を制御するためのプログラムに関し、特に、角度および走行距離を検出可能な自走式掃除ロボット、自走式ロボットおよび自走式ロボットの走行を制御するためのプログラムに関する。
【背景技術】
【０００２】
近年、清掃作業等を行ないながら、予め定められた走行パターンで走行する自走式ロボットが開発されている。このような自走式ロボットは、走行パターンにより定められる走行経路に従い走行することで、所定の作業を行なうことができる。しかしながら、実際には、絨毯目等の影響で希望の方向からずれた方向に走行してしまう場合がある。このようなずれを補正するために、種々の提案がなされてきた。
【０００３】
特許文献１には、絨毯目の影響を修正して作業走行ができる移動作業ロボットが開示されている。また、特許文献２には、絨毯目の影響を自動的に検出できる移動作業ロボットが開示されている。また、特許文献３には、ジャイロセンサからのデータから実際の角度を算出し、目標角度との誤差を算出して、その旋回補正量だけ補正する処理を行なう自律走行車が開示されている。
【０００４】
また、必要最小限の走行距離でもって走行残し（掃除残し）をなくすための技術として、特許文献４には、周回走行により事前認識した走行空間を、決められた走行様式に忠実に自律走行する自律走行ロボットが開示されている。
【０００５】
また、特許文献５には、２つの位置検出装置が互いに補完しあって移動体の位置を連続的に正確に検出できることが開示されている。
【特許文献１】特開平７−１１６０８７号公報
【特許文献２】特開平５−６１５４０号公報
【特許文献３】特開平１０−２４０３４２号公報
【特許文献４】特開平５−４６２３９号公報
【特許文献５】特開平８−２１１９３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記文献のいずれにも、目標方向からずれた場合でも、予め定められた走行経路に復帰することについては何ら開示されていない。
【０００７】
たとえば特許文献１では、本体を真っ直ぐな向きに修正することはできるが、目標方向と平行な方向に走行するため、走行予定の経路からずれた経路を走行することになり、走行残り（掃除残り）が生じてしまう可能性がある。
【０００８】
本発明は、上記のような問題を解決するためになされたものであって、その目的は、直進走行の性能を向上させることのできる自走式掃除ロボット、自走式ロボットおよび自走式ロボットの走行を制御するためのプログラムを提供することである。
【課題を解決するための手段】
【０００９】
この発明のある局面に従う自走式掃除ロボットは、予め定められた走行パターンで走行する自走式掃除ロボットであって、清掃を行なうために吸引動作を行なうための吸引手段と、基準位置からの進行方向である角度を検出するための角度検出手段と、基準位置からの走行距離を検出するための距離検出手段と、本体を移動させるための走行手段と、走行手段を駆動して走行させるための走行駆動手段と、走行バターンが計画路線に従い走行する直進走行パターンである場合に、角度検出手段および距離検出手段からの検出量に基づいて、計画路線からの第１のずれ量を算出するための算出手段とを備える。算出手段は、所定時間ごとに、角度検出手段および距離検出手段からの検出量を取得するための取得手段と、取得手段により取得された検出量に基づいて、所定時間ごとの、計画路線と平行で基準位置に基づく計画軸からの第２のずれ量を算出するためのずれ算出手段とを含み、ずれ算出手段で算出された第２のずれ量を順次加算して、第１のずれ量を算出する。上記自走式掃除ロボットは、算出手段により算出された第１のずれ量に基づいて走行駆動手段の駆動を制御する走行制御手段をさらに備え、走行制御手段は、算出手段により算出された第１のずれ量の符号の種別を判定するための判定手段と、判定手段により判定された符号の種別に基づいて、計画路線へ向かう回転角度を設定する設定手段とを含み、設定された回転角度に応じて走行駆動手段の駆動を制御する。
【００１０】
この発明の他の局面に従う自走式ロボットは、予め定められた走行パターンで走行する自走式ロボットであって、基準位置からの進行方向である角度を検出するための角度検出手段と、基準位置からの走行距離を検出するための距離検出手段と、本体を移動させるための走行手段と、走行手段を駆動して走行させるための走行駆動手段と、走行バターンが計画路線に従い走行する直進走行パターンである場合に、角度検出手段および距離検出手段からの検出量に基づいて、計画路線からの第１のずれ量を算出するための算出手段と、算出手段により算出された第１のずれ量に基づいて走行駆動手段の駆動を制御する走行制御手段とを備える。
【００１１】
好ましくは、清掃を行なうために吸引動作を行なうための吸引手段をさらに備える。
好ましくは、算出手段は、所定時間ごとに、角度検出手段および距離検出手段からの検出量を取得するための取得手段と、取得手段により取得された検出量に基づいて、所定時間ごとの、計画路線と平行で基準位置に基づく計画軸からの第２のずれ量を算出するためのずれ算出手段とを含み、ずれ算出手段で算出された第２のずれ量を順次加算して、第１のずれ量を算出する。
【００１２】
好ましくは、走行制御手段は、算出手段により算出された第１のずれ量の符号の種別を判定するための判定手段を含む。
【００１３】
好ましくは、走行制御手段は、判定手段により判定された符号の種別に基づいて、計画路線へ向かう回転角度を設定する設定手段をさらに含み、設定された回転角度に応じて走行駆動手段の駆動を制御する。
【００１４】
好ましくは、走行制御手段は、ずれ算出手段により算出された第２のずれ量の符号の種別が、判定手段により判定された符号の種別と同じが否かを判断するための判断手段と、判断手段により同じであると判断された場合に、計画路線へ向かう回転角度を増加させるための増加手段とをさらに含み、増加された回転角度に応じて走行駆動手段の駆動を制御する。
【００１５】
好ましくは、走行手段は、本体の左側に設けられた左走行手段と、本体の右側に設けられた右走行手段とを含み、走行駆動手段は、左走行手段を駆動するための左走行駆動手段と、右走行手段を駆動するための右走行駆動手段とを含み、走行制御手段は、左走行駆動手段および右走行駆動手段のいずれか一方の駆動状態を変更する。
【００１６】
この発明の他の局面に従うプログラムは、基準位置からの進行方向である角度を検出するための角度検出部と、基準位置からの走行距離を検出するための距離検出部と、本体を移動させるための走行部と、走行部を駆動して走行させるための走行駆動部とを備えた自走式ロボットの走行を制御するためのプログラムであって、計画路線に従い走行する直進走行パターンである場合に、所定時間ごとに、角度検出部および距離検出部からの検出量を取得する取得ステップと、取得された検出量に基づいて、所定時間ごとの、計画路線と平行で基準位置に基づく計画軸からの軸ずれ量を算出する第１の算出ステップと、算出された軸ずれ量を順次加算して、計画路線からの路線ずれ量を算出する第２の算出ステップと、算出された路線ずれの符号の種別を判定する判定ステップと、判定された符号の種別に基づいて、計画路線へ向かう回転角度を設定し、設定した回転角度に応じて走行駆動部の駆動を制御する走行制御ステップとをコンピュータに実行させる。
【発明の効果】
【００１７】
本発明によると、計画路線からのずれ量に基づいて、走行駆動系の制御を行なう。したがって、常に、計画路線を維持した走行を行なうことができる。これにより、自走式ロボットの直進走行の性能を向上させることができる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【００１９】
［実施の形態１］
図１は、本発明の実施の形態における自走式掃除ロボット（以下「クリーナ」という）１の外観斜視図である。
【００２０】
図１を参照して、クリーナ１は、外装部２にその外郭を覆われ、ほぼ円盤形の形状を有している。外装部２上には、カメラ２０、入力部２５、近接センサ１２〜１７が設置されている。カメラ２０は、外装部２の上面の略中央に設置され、進行方向の斜め上方向を向くように設置されている。入力部２５は、スイッチ等から構成され、ユーザがクリーナ１に対して情報を入力する際に利用される。近接センサ１２〜１７は、たとえば赤外線センサにより構成され、これにより障害物の有無や障害物までの距離などを検知することができる。
【００２１】
また、カメラ２０で撮影が行なわれる際の照度を補うためのＬＥＤ（light emitting diode）３５，３６が、外装部２の前面の近接センサ１２，１３の各下方に設置されている。また、ＬＥＤ３５，３６の下方にも、図示しないＬＥＤが複数設けられる。これにより、床面の有無を検出することができる。
【００２２】
また、外装部２の前面の下部には、より安全性を確保するため、図示しないバンパーが設けられている。これにより、たとえば、走行中に本体の下方に手が突っ込まれた場合に、本体を停止させることができる。
【００２３】
また、クリーナ１では、その前方であって、外装部２の下方には、左右に一つずつ、サイドブラシ７３が設置されている。このサイドブラシ７３によりゴミが内側に集められる。
【００２４】
なお、図１では、障害物の有無や障害物までの距離を検知するセンサとして、近接センサ１２〜１７を示したが、近接センサ１２〜１７以外にも複数設けられてよい。
【００２５】
図２は、図１のＩＩ−ＩＩ線に沿う矢視段面図である。
図２を参照して、外装部２の内側には、支持板２Ａ，２Ｂが設置されている。支持板２Ａ上には、クリーナ１の動作を制御する部品を実装する制御部４０が設置されている。クリーナ１のほぼ中央部分には、回転することにより床面のゴミを掻き揚げるメインブラシ７２が設置されている。メインブラシ７２は、メインブラシモータ６２が駆動されることにより、当該駆動力がギヤ６２Ａを介して伝達されて、回転する。メインブラシ７２によって掻き揚げられたゴミは、図示を省略した集塵カップに集められる。なお、吸引モータ６４が駆動されることにより、当該掻き揚げられたゴミは、図示せぬノズルを通って、集塵カップへと誘導される。吸引モータ６４は、支持板２Ｂ上に設置されている。
【００２６】
図２には、左駆動輪７０が記載されている。クリーナ１には、左駆動輪７０と、図示を省略された右駆動輪という、左右に１つずつの駆動輪が備えられている。これらの２つの駆動輪が駆動されることにより、クリーナ１は走行する。左駆動輪７０は、左駆動輪モータ６０が駆動されることにより、駆動される。そして、左駆動輪モータ６０には、走行距離を検出するための左ロータリエンコーダ２２が設けられている。なお、右駆動輪モータ６１（図３参照）にも同様に、走行距離を検出するための右ロータリエンコーダ２３（図３参照）が設けられている。このように、クリーナ１では、左右の駆動輪モータに独立して走行距離すなわち移動量を検出するためのロータリエンコーダが設けれられている。
【００２７】
クリーナ１には、さらに、左右の駆動輪の後方に、それぞれ補助輪が備えられている。左駆動輪７０の後方には、補助輪７９が備えられている。クリーナ１の最後部には、ゴミセンサ３４が備えられている。ゴミセンサ３４とは、赤外線センサを含むユニットであり、床面のゴミ量を検知する。
【００２８】
図３に、クリーナ１のブロック構成を示す。
クリーナ１は、上記した近接センサ１２〜１７、カメラ２０、左ロータリエンコーダ２２、右ロータリエンコーダ２３、入力部２５、ＬＥＤ３５，３６、左駆動輪モータ６０、右駆動輪モータ６１、メインブラシモータ６２および吸引モータ６４に加え、各種演算および制御を行なうためのＣＰＵ（Central Processing Unit）１０と、時刻を計測するためのタイマ２１と、外部との通信を行なうための通信部２６と、データおよびプログラムを格納するためのメモリ２７と、本体が向いている角度すなわち移動方向を検出するためのセンサたとえばジャイロセンサ２８と、充電可能なバッテリ３０と、サイドブラシ７３を駆動させるためのサイドブラシモータ６３を備える。また、左駆動輪モータ６０および右駆動輪モータ６１を制御するためのモータ制御部５１と、メインブラシモータ６２の駆動を制御するためのモータ制御部５２と、サイドブラシモータ６３の駆動を制御するためのモータ制御部５３と、吸引モータ６４の駆動を制御するためのモータ制御部５４とを備える。
【００２９】
本実施の形態においては、たとえば、ＣＰＵ１０、タイマ２１、メモリ２７およびジャイロセンサ２８が、制御部４０（図２参照）内に実装される。
【００３０】
通信部２６には、たとえば、ワイヤレスＬＡＮカードが差し込まれる。これにより、外部端末との無線通信を行なうことができる。
【００３１】
ＣＰＵ１０には、入力部２５に対して入力された情報が入力される。また、ＣＰＵ１０には、ゴミセンサ３４、近接センサ１２〜１７、左ロータリエンコーダ２２、右ロータリエンコーダ２３およびジャイロセンサ２８からの検出信号が入力される。また、ＣＰＵ１０には、カメラ２０で撮影された画像データが入力される。また、ＣＰＵ１０は、タイマ２１が計時する時刻を参照することができる。また、ＣＰＵ１０は、ＬＥＤ３５の動作を制御できる。また、ＣＰＵ１０は、メモリ２７へのデータの書き込みおよび読み出しを行なう。また、ＣＰＵ１０は、モータ制御部５１〜５４と接続される。
【００３２】
左ロータリエンコーダ２２および右ロータリエンコーダ２３のそれぞれは、左駆動輪７０および右駆動輪（図示せず）の回転に伴なって発生するパルスを検出する。
【００３３】
ジャイロセンサ２８は、クリーナ１の走行に伴なって角速度（°／ｓｅｃ）を検出する。
【００３４】
ここで、本発明の実施の形態におけるクリーナ１は、たとえば入力部２５からの入力信号に基づき、マップ清掃を行なう。「マップ清掃」とは、ＣＰＵ１０が、少なくとも、メモリ２７に記憶されている清掃領域情報（以下「マップ」という）を参照しながら、予め定められた走行パターンで走行させる清掃であり、好ましくは、マッピング（マップ作成）およびマップ参照を行ないながら、走行させる清掃である。
【００３５】
クリーナ１では、指定された時間に清掃を開始するタイマ動作も可能である。具体的には、入力部２５に対して清掃開始についての時間を指定する情報が入力された場合、クリーナ１は、タイマ２１の計時時間が当該指定された時間となったことを条件として、清掃動作を開始することができる。
【００３６】
また、クリーナ１は、清掃動作の他に、セキュリティのための動作を実行できる。具体的には、たとえば、入力部２５に対してセキュリティ動作を実行する時間および走行パターンを指定する情報が入力されることにより、クリーナ１は、タイマ２１の計時時間が当該指定された時間となったことを条件として、当該指定された走行パターンで走行するようにモータ制御部５１を駆動して、巡回動作を実行する。このようなセキュリティのための動作を実行している際、クリーナ１は、さらに、近接センサ１２〜１７において通常想定されない物体または人物等の存在または動きが検知された場合、当該物体または人物にカメラ２０を向けて撮影し、そして、当該撮影した画像を、通信部２６を介して、クリーナ１とは離間した予め定められた端末に向けて送信することができる。
【００３７】
以下、マップ清掃の際に、ＣＰＵ１０により行なわれる処理について説明する。
ＣＰＵ１０は、マップ清掃の際、清掃処理および走行制御処理を実行する。清掃処理としては、メインブラシ７２およびサイドブラシ７３を回転させるために、モータ制御部５２，５３を介して、メインブラシモータ６２およびサイドブラシモータ６３に駆動電流を供給する。また、これらのブラシにより掻き集められたゴミを吸引すべく、モータ制御部５４を介して、吸引モータ６４に駆動電流を供給する。
【００３８】
走行制御処理としては、メモリ２７に記憶されているマップと、左ロータリエンコーダ２２，右ロータリエンコーダ２３およびジャイロセンサ２８からの検出信号とに基づいて、所定の走行パターンで走行させるように、モータ制御部５１を介して、左駆動輪モータ６０および右駆動輪モータ６１の駆動を制御する。より詳細には、モータ制御部５１を介して、左駆動輪モータ６０および右駆動輪モータ６１に対して、ＰＷＭ（Pulse Width Modulation）制御を行なう。つまり、ＣＰＵ１０が、左駆動輪モータ６０および右駆動輪モータ６１を駆動させるためのパルスデューティをそれぞれモータ制御部５１に与える。そして、モータ制御部５１が、単位時間Ｔ（たとえば４０ｍｓ）について、与えられたパルスデューティで各駆動輪モータ６０，６１を駆動することで、走行速度や走行方向の制御が実現される。
【００３９】
ここで、上記所定の走行パターンとしては、たとえば、直進と１８０度ターンとを繰り返す往復走行をしながら進路を僅かずつ変更する、いわゆるジグザグ走行が行なわれる。このように、ＣＰＵ１０は、マップ清掃中、直進走行パターンによる走行制御と旋回走行パターンによる走行制御とを繰り返し実行する。このような走行制御が繰り返し行なわれることで、未掃除領域の残存を防止することができる。
【００４０】
ところが、ＣＰＵ１０により直進走行パターンによる走行制御が行なわれている場合でも、絨毯目の影響等により、計画路線からずれた方向へクリーナ１が進んでしまう可能性がある。そうすると、計画路線からずれた分が掃除残りとなってしまい、精度の良い清掃を実現することができない。このことから、直進走行の性能を向上させて、計画路線に沿った走行を行なうことが、掃除残りの削減を可能にすると考えられる。
【００４１】
そこで、本発明の実施の形態におけるＣＰＵ１０は、直進走行パターンの際、以下に説明するような走行制御（直進制御）を行なう。
【００４２】
なお、「計画路線」とは、直進走行パターンの際に走行が予定される走行経路をいい、より詳細には、スタート地点から目標地点までの経路を直線で表わした走行経路をいうものとする。
【００４３】
図４は、ＣＰＵ１０が実行する直進制御処理の流れを示すフローチャートである。図４に示される処理は、直進走行パターンによる走行制御中に、タイマ２１からの信号に基づいて、所定期間（たとえば１００ｍｓ）ごとに開始される処理である。なお、特に指定しない限り、左駆動輪モータ６０および右駆動輪モータ６１を駆動させるためのパルスデューティ（以下「駆動パルスデューティ」という）は、同じ駆動状態とされる。同じ駆動状態とは、左駆動輪モータ６０のパルスデューティ（以下「左パルスデューティ」という）のＯＮ期間（％）と右左駆動輪モータ６１のパルスデューティ（以下「右パルスデューティ」という）のＯＮ期間（％）との比率が１：１であることをいうものとする。
【００４４】
図４を参照して、ＣＰＵ１０は、ジャイロセンサ２８から出力される角速度に基づいて、計画軸との角度θｓを取得する（ステップＳ２）。本実施の形態において、「計画軸」とは、基準位置すなわち前回の位置を基準とした、計画路線と平行な直線（軸）をいう。したがって、たとえばスタート時点では、計画軸と計画路線とが必ず一致することになる。
【００４５】
つまり、ステップＳ２において、ジャイロセンサ２８から出力される角速度に基づいて、基準位置からの進行方向である角度θｓが算出される。この角度θｓは、計画軸を基準とした正負の符号を持つ値であるものとする。
【００４６】
次に、ＣＰＵ１０は、左ロータリエンコーダ２２および右ロータリエンコーダ２３それぞれから出力されるパルスの数に基づいて、クリーナ１の走行距離Ｌｓを取得する（ステップＳ４）。より具体的には、次式（１）を用いて、走行距離Ｌｓを算出する。
【００４７】
Ｌｓ＝ａ（Ｌ＋Ｒ）÷２      …（１）
ただし、ａ：１パルスで進む距離、Ｌ：左ロータリエンコーダ２２から得られるパルス数、Ｒ：右ロータリエンコーダ２３から得られるパルス数。
【００４８】
次に、ＣＰＵ１０は、今回のずれ量Ｗｓを算出する（ステップＳ６）。より詳細には、次式（２）を用いて、今回のずれ量Ｗｓが算出される。
【００４９】
Ｗｓ＝Ｓｉｎθｓ×Ｌｓ      …（２）
ここで、ずれ量Ｗｓの算出原理について、図５を用いて説明する。図５を参照すると、直角３角形の内角θｓ’は、ステップＳ２で取得される角度θｓと同じ値（符号を考慮せず）であるため、上記（２）式によりずれ量Ｗｓを算出することができる。なお、Ｓｉｎθｓは、角度θｓから、公知の関数に基づいて算出される。
【００５０】
次に、ＣＰＵ１０は、計画路線からの総ずれ量Ｗを算出する（ステップＳ８）。すなわち、前回までのずれ量（前回の総ずれ量）に、今回のずれ量Ｗｓを加算する。
【００５１】
次に、ＣＰＵ１０は、ステップＳ８で算出した総ずれ量Ｗが“０”であるか否かを判断する（ステップＳ１０）。総ずれ量Ｗが“０”であると判断した場合は（ステップＳ１０においてＹＥＳ）、計画路線からのずれが生じていないことになるため、今回の直進制御処理を終了する。
【００５２】
一方、ステップＳ１０において、総ずれ量Ｗが“０”でないと判断した場合（ステップＳ１０においてＮＯ）、ＣＰＵ１０は、総ずれ量Ｗの符号の種別を判別する（ステップＳ１２）。総ずれ量Ｗの符号が「＋」であると判断された場合、すなわち計画路線から右方向へずれていると判断された場合（ステップＳ１２においてＹＥＳ）、ステップＳ１４へ進む。これに対し、総ずれ量Ｗの符号が「−」であると判断された場合、すなわち計画路線から左方向へずれていると判断された場合（ステップＳ１２においてＮＯ）、ステップＳ１６へ進む。
【００５３】
ステップＳ１４において、ＣＰＵ１０は、計画路線から右方向へずれた経路を、左方向へ、１秒につき回転角度（左駆動輪の走行距離と右駆動輪の走行距離との差により生じる角度）ｎ°の補正処理を行なう。このような処理を、以下、「左ｎ°補正処理」と記す。左ｎ°補正処理については、図６のフローチャートを用いてより詳細に説明する。
【００５４】
ステップＳ１６において、ＣＰＵ１０は、計画路線から左方向へずれた経路を、右方向へ、１秒につき回転角度ｎ°の補正処理（以下、「右ｎ°補正処理」という）を行なう。右ｎ°補正処理については、図７のフローチャートを用いてより詳細に説明する。
【００５５】
まず、ステップＳ１４に示される左ｎ°補正処理について説明する。
図６を参照して、はじめに、ＣＰＵ１０は、ステップＳ６で算出した今回のずれ量Ｗｓの符号が、総ずれ量Ｗの符号（「＋」）と同じか否かを判断する（ステップＳ１４２）。ここでの同じ符号とは、総ずれ量Ｗの符号と逆の符号「−」でない符号をいうものとする。すなわち、今回のずれ量Ｗｓの符号が「＋」か、今回のずれ量Ｗｓが“０”であれば、総ずれ量Ｗの符号（「＋」）と同じであると判断される。
【００５６】
ステップＳ１４２において、今回のずれ量Ｗｓの符号が、総ずれ量Ｗの符号（「＋」）と同じであると判断された場合（ステップＳ１４２においてＹＥＳ）、ステップＳ１４４へ進む。一方、今回のずれ量Ｗｓの符号が、総ずれ量Ｗの符号（「＋」）と同じでないと判断された場合（ステップＳ１４２においてＮＯ）、ステップＳ１４６に進む。
【００５７】
ステップＳ１４４において、ＣＰＵ１０は、“左（ｎｂ＋１）°”の駆動パルスデューティをセットする。つまり、現状（前回）の回転角度が１秒につき左方向へｎｂ°に設定されていたとすると、たとえば１°増加させた回転角度に対応する駆動パルスデューティをセットする。この場合、回転角度ｎｂ°：０°，１°，２°，…となる。なお、左方向への回転角度が０°とは、前回の総ずれ量が“０”であった場合に該当する。
【００５８】
より詳細には、たとえば次のような駆動パルスデューティがセットされる。まず、左パルスデューティは、通常通り（計画路線からずれていないときと同様）のパルスデューティ（以下「基準デューティ」という）がセットされる。そして、右パルスデューティは、右駆動輪モータ６１の駆動パルス数（以下「右パルス数」という）が、左駆動輪モータ６０の駆動パルス数（以下「左パルス数」という）に対して、１秒につき（ｎｂ＋１）°に相当する数分多くなるようなパルスデューティがセットされる。
【００５９】
より具体的には、たとえば、クリーナ１に関して、１秒につき回転角度１°の走行を行なうための左右のパルス数の差がＰｘであるとすると、右パルス数が左パルス数よりも１００ｍｓにつき（Ｐｘ／１０）多くなるようなパルスデューティをセットする。なお、このようなパルス数Ｐｘは、駆動輪モータ６０，６１のギア比などを用いて求めることができる。
【００６０】
これにより、モータ制御部５１が、指定された駆動パルスデューティで、左駆動輪モータ６０および右駆動輪モータ６１を駆動することで、クリーナ１は、計画路線の方へ進行方向を緩やかに変えることができる。
【００６１】
次に、ステップＳ１４６において、ＣＰＵ１０は、“左ｎｂ°”の駆動パルスデューティをセットする。すなわち、現状（前回）と同様の回転角度（左方向へ１秒につきｎｂ（１，２，…）°）に対応する駆動パルスデューティをセットする。ステップＳ１４６においては、計画路線からは右方向にずれているが、計画路線の方へ向いた走行が行なわれている場合に該当するため、前回と同様の回転角度（ｎｂ°）に対応する駆動パルスデューティがセットされる。
【００６２】
これにより、モータ制御部５１が、指定された駆動パルスデューティで、左駆動輪モータ６０および右駆動輪モータ６１を駆動することで、クリーナ１は、計画路線の方へ緩やかな円弧カーブを描いて復帰することができる。
【００６３】
ステップＳ１４４およびＳ１４６の処理が終わると、左ｎ°補正処理は終了される。
上述のように、本実施の形態においては、左パルスデューティを基準デューティとして、右パルスデューティのみを基準デューティから変更する。なお、この場合、ステップＳ１４４において、右パルスデューティのＯＮ期間（％）を増やしていくことになるが、所定の閾値まで達したときには、左パルスデューティのＯＮ期間（％）を減少させていくものとする。このように、いずれか一方の駆動パルスデューティのみを変調させる。
【００６４】
次に、ステップＳ１６に示される右ｎ°補正処理について説明する。
図７を参照して、はじめに、ＣＰＵ１０は、ステップＳ６で算出した今回のずれ量Ｗｓの符号が、総ずれ量Ｗの符号（「−」）と同じか否かを判断する（ステップＳ１６２）。ここでの同じ符号とは、総ずれ量Ｗの符号と逆の符号「＋」でない符号をいうものとする。すなわち、今回のずれ量Ｗｓの符号が「−」か、今回のずれ量Ｗｓが“０”であれば、総ずれ量Ｗの符号（「−」）と同じであると判断される。
【００６５】
ステップＳ１６２において、今回のずれ量Ｗｓの符号が、総ずれ量Ｗの符号（「−」）と同じであると判断された場合（ステップＳ１６２においてＹＥＳ）、ステップＳ１６４へ進む。一方、今回のずれ量Ｗｓの符号が、総ずれ量Ｗの符号（「−」）と同じでないと判断された場合（ステップＳ１６２においてＮＯ）、ステップＳ１６６に進む。
【００６６】
ステップＳ１６４において、ＣＰＵ１０は、“右（ｎｃ＋１）°”の駆動パルスデューティをセットする。つまり、現状（前回）の回転角度が１秒につき右方向へｎｃ°に設定されていたとすると、たとえば１°増加させた回転角度に対応する駆動パルスデューティをセットする。この場合、回転角度ｎｃ°：０°，１°，２°，…となる。なお、右方向への回転角度が０°とは、前回の総ずれ量が“０”であった場合に該当する。
【００６７】
より詳細には、たとえば次のような駆動パルスデューティがセットされる。まず、右パルスデューティは、基準デューティがセットされる。そして、左パルスデューティは、左パルス数が右パルス数に対して、１秒につき（ｎｃ＋１）°に相当する数分多くなるようなパルスデューティがセットされる。
【００６８】
これにより、モータ制御部５１が、指定された駆動パルスデューティで、左駆動輪モータ６０および右駆動輪モータ６１を駆動することで、クリーナ１は、計画路線の方へ進行方向を緩やかに変えることができる。
【００６９】
次に、ステップＳ１６６において、ＣＰＵ１０は、“右ｎｃ°”の駆動パルスデューティをセットする。すなわち、現状（前回）と同様の回転角度（右方向へ１秒につきｎｃ（１，２，…）°）に対応する駆動パルスデューティをセットする。ステップＳ１６６においては、計画路線からは左方向にずれているが、計画路線の方へ向いた走行が行なわれている場合に該当するため、前回と同様の回転角度（ｎｃ°）に対応する駆動パルスデューティがセットされる。
【００７０】
これにより、モータ制御部５１が、指定された駆動パルスデューティで、左駆動輪モータ６０および右駆動輪モータ６１を駆動することで、クリーナ１は、計画路線の方へ緩やかな円弧カーブを描いて復帰することができる。
【００７１】
ステップＳ１６４およびＳ１６６の処理が終わると、右ｎ°補正処理は終了される。
なお、上記のような処理を実現するためには、予め、回転角度ｎ（１°，２°，３°，…）と駆動パルスデューティとの対応テーブルがメモリ２７に記憶されていてもよいし、実験等により定められた計算式により、駆動パルスデューティを計算することとしてもよい。
【００７２】
再び図４を参照して、ステップＳ１４（左ｎ°補正処理）およびステップＳ１６（右ｎ°補正処理）が終了すると、一連の直進制御処理を終了する。
【００７３】
このように、頻繁に（たとえば１００ｍｓごとに）上記直進制御が行なわれ、さらに、急激な角度差の走行は行なわないため、ほぼ計画路線を維持した走行を行なうことができる。これにより、計画路線に沿った清掃を行なうことができ、掃除残りのない、精度の高い清掃が可能となる。
【００７４】
ここで、上述のように、ジャイロセンサ２８は角速度を検出するデバイスである。したがって、ステップＳ２において、角速度を時間で積分することで、計画軸との角度θｓを算出する。このことから、図８（ｂ）に示されるような直線運動の場合では、ジャイロセンサ２８は角速度を検出できないことがあり、精度の高い角度θｓを算出することが難しい場合がある。一方、図８（ａ）に示されるような円弧運動では、ジャイロセンサ２８の角速度の検出感度が高くなるため、精度の高い角度θｓを算出することができる。本実施の形態では、上記のように、少しずつ回転角度を変えていくため、図８（ａ）のような走行が行なわれる。これにより、本実施の形態によると、ステップＳ２において、精度の高い角度θｓを取得することができ、確実に計画路線へ復帰することが可能となる。
【００７５】
次に、本発明の実施の形態における直進制御について、具体的例を挙げて説明する。
図９および図１０には、たとえば絨毯目の影響等で右方向にずれてしまう場合のクリーナ１の走行例が示される。なお、図９は、微小のずれが生じる場合の直進制御を説明するための図であり、図１０は、図９に示される例よりもずれが大きい場合の直進制御を説明するための図である。
【００７６】
図９を参照して、はじめ、クリーナ１は計画路線上に位置される。１回目のずれ量がＷｓ１（符号“＋”）であったとすると、総ずれ量もＷｓ１（符号“＋”）となる。したがって、左方向への回転角度が１秒につき１°に対応する駆動パルスデューティがセットされる（ステップＳ１４４）。次に、２回目のずれ量Ｗｓ２（符号“−”）が、Ｗｓ１と絶対値が同じであった場合、総ずれ量は“０”となる。したがって、この場合、左パルスデューティおよび右パルスデューティは、各々基準デューティとされる（ステップＳ１０でＹＥＳ）。
【００７７】
同様に、３回目のずれ量がＷｓ３（符号“＋”）であったとすると、総ずれ量もＷｓ３（符号“＋”）となる。したがって、左方向への回転角度が１秒につき１°に対応する駆動パルスデューティがセットされる（ステップＳ１４４）。また、４回目のずれ量Ｗｓ４（符号“−”）が、Ｗｓ３と絶対値が同じであった場合、総ずれ量は“０”となる。したがって、この場合も、左パルスデューティおよび右パルスデューティは、各々基準デューティとされる（ステップＳ１０でＹＥＳ）。このような制御が５回目以降も繰返される。
【００７８】
次に、図１０を参照して、はじめ、クリーナ１は計画路線上に位置される。１回目のずれ量がＷｓ１（符号“＋”）であったとすると、総ずれ量もＷｓ１（符号“＋”）となる。したがって、左方向への回転角度が１秒につき１°に対応する駆動パルスデューティがセットされる（ステップＳ１４４）。しかし、図１０においては、２回目のずれ量Ｗｓ２（符号“＋”）も、総ずれ量と同じ符号である。したがって、左方向への回転角度が１秒につき２°に対応する駆動パルスデューティがセットされる（ステップＳ１４４）。
【００７９】
３回目は、ずれ量がＷｓ３（符号“−”）であり、総ずれ量と同じ符号でないため、前回と同じ“左２°”の駆動パルスデューティ（左方向への回転角度が１秒につき２°）がセットされる（ステップＳ１４６）。４回目の総ずれ量は“０”である。したがって、この場合、左パルスデューティおよび右パルスデューティは、各々基準デューティとされる（ステップＳ１０でＹＥＳ）。このような制御が５回目以降も繰返される。
【００８０】
このように、絨毯目等の影響の多少にかかわらず、本実施の形態における直進制御が行なわれることで、計画路線からの逸脱を制御することができる。これにより、未掃除領域を削減することができる。すなわち、本実施の形態におけるクリーナ１では、床面の種類（絨毯，フローリング，畳など）にかかわらず計画路線を維持した走行が可能である。したがって、床面の種類に応じて制御パラメータを変更する必要がなく、ユーザによる操作の煩わしさを解消することができる。
【００８１】
また、本発明の実施の形態では、ジャイロセンサ２８とロータリエンコーダ２２，２３とからの検出量に基づいて、計画路線を維持した走行を行なうことができる。したがって、これらのセンサを搭載している自走式ロボットであれば、モータ駆動系の性能等に関わらず、確実に直進走行の性能を向上させることができる。
【００８２】
また、従来より行なわれているような、左右の駆動輪モータ６０，６１のパルスデューティのみによる制御では、出荷時の初期調整が必要であったが、本発明では、計画路線からの実際のずれ量により直進制御が行なわれるため、このような初期調整も不要となる。
【００８３】
なお、上記実施の形態では、クリーナ１がマップ清掃を行なう場合を例に説明したが、直進走行パターンによる走行が実施されるものであれば、マップ清掃の際に限定されるものではない。
【００８４】
また、上記実施の形態では、１秒単位の回転角度を１°ずつ増やしていくこととしたが、たとえば、１秒につき２°ずつ増やしていってもよいし、１秒につき０．５°ずつ角度を増やしていってもよい。あるいは、所定の回転角度（たとえば１°）に固定してもよい。
【００８５】
また、上記実施の形態では、直進制御において、毎回（１００ｍｓごとに）ずれ量Ｗｓの符号が総ずれ量Ｗの符号と同じかを判断して、同じであれば、１°増加させた回転角度に対応する駆動パルスデューティをセットすることとしたが、このように、毎回回転角度を増やしていくものでなくてもよい。たとえば、複数回に１回このような判断を行なうこととしてもよいし、同じ回転角度に対応する駆動パルスデューティをたとえば３回セットしても、符号が同じであった場合にのみ、回転角度を増やしていくこととしてもよい。
【００８６】
なお、本実施の形態では、計画軸との角度θｓを、ジャイロセンサ２８で検出された角速度を時間で積分して求めることとしたが、このような方法により求めるものでなくてもよい。たとえば、ジャイロセンサ２８のかわりに、計画軸との角度θｓを直接検出でできるセンサを備えることとしてもよい。
【００８７】
また、上記実施の形態では、クリーナ１を用いて説明したが、直進走行パターンによる走行制御がなされるものであれば、掃除ロボットに限定されない。
【００８８】
また、本発明の自走式（掃除）ロボットが行なう、直進制御方法を、プログラムとして提供することもできる。このようなプログラムは、ＣＤ−ＲＯＭ（Compact Disc-ROM）などの光学媒体や、メモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００８９】
提供されるプログラム製品は、メモリ２７などのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【００９０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施の形態におけるクリーナの外観斜視図である。
【図２】図１のＩＩ−ＩＩ線に沿う矢視段面図である。
【図３】本発明の実施の形態におけるクリーナの構成を示すブロック図である。
【図４】本発明の実施の形態のクリーナにおけるＣＰＵが実行する直進制御処理の流れを示すフローチャートである。
【図５】ずれ量Ｗｓの算出原理を示す図である。
【図６】図４のステップＳ１４に示される左ｎ°補正処理のフローチャートである。
【図７】図４のステップＳ１６に示される右ｎ°補正処理のフローチャートである。
【図８】本発明の実施の形態における直進制御を実現するための走行方法を説明するための図である。
【図９】本発明の実施の形態における直進制御を具体的に説明するための第１の図である。
【図１０】本発明の実施の形態における直進制御を具体的に説明するための第２の図である。
【符号の説明】
【００９２】
１  クリーナ、２  外装部、２Ａ，２Ｂ  支持板、１０  判断部、１２〜１７  近接センサ、１０  ＣＰＵ、５１〜５４  モータ制御部、２０  カメラ、２１  タイマ、２２  左ロータリエンコーダ、２３  右ロータリエンコーダ、２５  入力部、２６  通信部、２７  メモリ、２８  ジャイロセンサ、３０  バッテリ、３４  ゴミセンサ、３５，３６  ＬＥＤ、４０  制御部、６０  左駆動輪モータ、６１  右駆動輪モータ、６２Ａ  ギヤ、６２  メインブラシモータ、６３  サイドブラシモータ、６４  吸引モータ、７０  左駆動輪、７２  メインブラシ、７３  サイドブラシ、７９  補助輪。
【図１】
2006313455.tif 000003
【図２】
2006313455.tif 000004
【図３】
2006313455.tif 000005
【図４】
2006313455.tif 000006
【図５】
2006313455.tif 000007
【図６】
2006313455.tif 000008
【図７】
2006313455.tif 000009
【図８】
2006313455.tif 000010
【図９】
2006313455.tif 000011
【図１０】
2006313455.tif 000012