(57)【要約】【課題】  簡単な教示作業で、走行方向による走行距離誤差の補正を行い、作業領域内を、正確に隈なく作業することのできる自走式作業ロボットを提供する。【解決手段】  駆動輪を回転させて本体１の移動と方向操舵を制御する走行制御手段と、本体１の走行方向および左右方向にある障害物Ｈの有無を検出する障害物センサと、本体の走行方向を検知する方位センサと、前記本体に設けられ床面に所定の作業を行う作業手段と、実際に走行した往路Ｘ１，Ｙ１の第１距離を測定する第１直進距離計測手段と、実際に走行した復路Ｘ２，Ｙ２の第２距離を測定する第２直進距離計測手段とを備え、前記測定した往路の第１距離と前記測定した復路の第２距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする。【選択図】        図４
2006260161.tif 000002
【特許請求の範囲】
【請求項１】
駆動輪を回転させて本体の移動と方向操舵を制御する走行制御手段と、
前記本体の走行方向にある障害物の有無を検出する障害物センサと、
前記本体の走行方向を検知する方位センサと、
実際に走行した往路の第１距離を測定する第１距離計測手段と、
実際に走行した復路の第２距離を測定する第２距離計測手段とを備え、
前記測定した往路の第１距離と前記測定した復路の第２距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする自走式作業ロボット。
【請求項２】
請求項１において、前記第１距離計測手段で計測された第１距離を記憶する往路距離記憶手段と、前記第２距離計測手段で計測された第２距離を記憶する復路距離記憶手段と、
前記往路距離記憶手段に記憶されている第１距離と、前記復路距離記憶手段に記憶されている第２距離との比率に関係する補正値に基づいて、走行中に逐次計測される現在の走行距離をリアルタイムに逐次補正する補正手段とを備えた自走式作業ロボット。
【請求項３】
請求項２において、各走行方向それぞれの走行距離の積算値を演算する積算手段と、
作業終了時の作業ロボットの実際の位置と目標終了位置との位置ずれ量の偏差を入力する偏差入力手段と、
前記偏差と前記各走行方向の走行距離の前記積算値とに基づいて、前記補正値を算出もしくは修正する自走式作業ロボット。
【請求項４】
自走する作業ロボットであって、
直進、旋回などの走行を制御する、走行制御手段と、
走行距離計測値を計測する距離計測手段と、
走行方向を検出する方位センサと、
方位センサの出力と走行距離計測値から、走行している時の移動距離のＸ軸方向成分とＹ軸方向成分を算出する成分算出手段と、
前記移動距離のＸ軸方向成分の正の値のみを積算する第１の積算手段と、
前記移動距離のＸ軸方向成分の負の値のみを積算する第２の積算手段と、
前記移動距離のＹ軸方向成分の正の値のみを積算する第３の積算手段と、
前記移動距離のＹ軸方向成分の負の値のみを積算する第４の積算手段と、
ロボットが走行開始地点に戻ったことを検知する周回終了検知手段と、
前記第１および第２の積算手段の各積算値に基づいて算出されるＸ軸方向の移動距離に関する第１補正値と、前記第３および第４の積算手段の各積算値に基づいて算出されるＹ軸方向の移動距離に関する第２補正値と、を算出する補正値算出手段とを備え、
前記各補正値に基づいて現在または次回以後の実走行距離を制御することを特徴とする自走式作業ロボット。
【請求項５】
請求項４において、前記第１積算手段で積算された第１積算値と、前記第２積算手段で積算された第２積算値との比率に関係する第１補正値に基づいて、走行中に逐次計測されるＸ軸方向成分の現在の走行距離をリアルタイムに逐次補正すると共に、
前記第３積算手段で積算された第３積算値と、前記第４積算手段で積算された第４積算値との比率に関係する第２補正値に基づいて、走行中に逐次計測されるＹ軸方向成分の現在の走行距離をリアルタイムに逐次補正する補正手段を更に備えた自走式作業ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、床面に対して作業を行う自走式作業ロボットに関するものである。
【背景技術】
【０００２】
従来より、車輪の回転数計測値から求める走行距離情報と、ジャイロセンサー等の方位センサー測定値から求める走行方向情報とから自己位置を認識しつつ、作業領域内を隈なく走行して作業を行なう、清掃ロボット、芝刈りロボット、ワックスがけロボットなどの自走式作業ロボットが知られている。かかる作業ロボットにおいては、カーペットの織り目や、芝の向き、作業面の傾斜等の、走行面の特性に起因して、走行方向によって、車輪の回転数計測値と実際の走行距離との関係に違いが生じ、自己位置の認識に誤差が生じる。
【０００３】
その結果、図４（ａ）に示すように、例えばジグザグ走行で作業を行なう場合には、図４（ｂ）に示すように、往路Ｙ１の走行距離と復路Ｙ２の走行距離に誤差が生じ、複数存在する往路Ｙ１の開始地点の縦位置が徐々にずれてしまい、ロボットが破線で示す作業領域からはみ出たり、作業残りが生じたりするという問題があった。
【０００４】
また、たとえば、図５（ａ），（ｃ）に示すように、作業領域外周を実際に走行させて、その走行軌跡を記憶することで、作業領域の形状を教示設定する場合に於いて、1 周して実際には元の位置に戻っていても、計測した位置データーが一致しなかったり、正しく作業領域の形状を教示することができないなどの問題があった。
【０００５】
更に、図４（ｅ）に示すように、作業領域の外周側から周回走行を行ないつつ、渦巻状に徐々に作業領域の中央側へ向かう作業経路の場合には、縦方向の往路Ｙ１と復路Ｙ２、及び、横方向の右向き走行（往路）Ｘ１と左向き走行（復路）Ｘ２によって走行距離に誤差が生じる。そのため、図４（ｆ）に示すように、隣の周回行程との間に作業残りが発生したり、重複して作業を行う領域が大きくなりすぎるという問題があった。
【０００６】
前述のジグザグ走行における上記問題の対策としては、往路Ｙ１の目標走行距離と復路Ｙ２の目標走行距離を別々に記憶し、複数ある往路走行行程では前記往路目標走行距離に基づいて走行を行い、複数ある復路走行行程では前記復路目標走行距離に基づいて走行を行うことによって、往路Ｙ１と復路Ｙ２の走行距離の誤差を無くす工夫が提案されている（特許文献１、２）。
【特許文献１】特許第３５２８２００号（請求項３）
【特許文献２】特開平１−１７３１１０号（図１）
【発明の開示】
【０００７】
しかし、これらの先行技術では、目標往路走行距離と目標復路走行距離を絶対値で記憶している。そのため、図４（ｃ）に示すように、作業領域の境界となる壁面に凹凸（障害物）Ｈがある場合や作業領域内に障害物が存在する場合、目標往路走行距離と目標復路走行距離がそれぞれ１種類なので、例えば往路において往路目標走行距離に到達する前にＵターンして復路走行に移行した場合には、往路開始位置と復路終了位置とが大きく位置がずれてしまう。そのため、このような作業領域の境界に凹凸が有る場合や、作業領域内部に障害物Ｈがある場合には、走行行程毎に、複数の往路目標走行距離、および復路目標走行距離を記憶しておく必要があり、教示作業が非常に複雑になるという問題があった。
したがって、本発明の目的は、簡単な教示作業で、走行方向による走行距離誤差の補正を行い、作業領域内を、正確に隈なく作業することのできる自走式作業ロボットを提供することである。
【０００８】
本第１発明の自走式作業ロボットは、駆動輪を回転させて本体の移動と方向操舵を制御する走行制御手段と、前記本体の走行方向にある障害物の有無を検出する障害物センサと、前記本体の走行方向を検知する方位センサと、実際に走行した往路の第１距離を測定する第１距離計測手段と、実際に走行した復路の第２距離を測定する第２距離計測手段とを備え、前記測定した往路の第１距離と前記測定した復路の第２距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする。
一方、本第２発明は自走する作業ロボットであって、直進、旋回などの走行を制御する、走行制御手段と、走行距離計測値を計測する距離計測手段と、
走行方向を検出する方位センサと、方位センサの出力と走行距離計測値から、走行している時の移動距離のＸ軸方向成分とＹ軸方向成分を算出する成分算出手段と、前記移動距離のＸ軸方向成分の正の値のみを積算する第１の積算手段と、前記移動距離のＸ軸方向成分の負の値のみを積算する第２の積算手段と、前記移動距離のＹ軸方向成分の正の値のみを積算する第３の積算手段と、前記移動距離のＹ軸方向成分の負の値のみを積算する第４の積算手段と、ロボットが走行開始地点に戻ったことを検知する周回終了検知手段と、前記第１および第２の積算手段の各積算値に基づいて算出されるＸ軸方向の移動距離に関する第１補正値と、前記第３および第４の積算手段の各積算値に基づいて算出されるＹ軸方向の移動距離に関する第２補正値と、を算出する補正値算出手段とを備え、前記補正値に基づいて現在または次回以後の実走行距離を制御することを特徴とする。
【０００９】
本発明によれば、第１距離と第２距離の比率に関する補正値に基づき、現在または次回以降の走行距離を制御することにより、簡単な教示操作で、正確に作業領域内を隈なく走行し、作業させることができる。
すなわち、本発明に於いては、複数の走行方向における移動距離を計測し、その計測値の間の関係に基づいて、それ以降の移動距離計測値を補正する手段を有している。そのため、作業領域が単純な矩形形状ではない場合や、作業領域内に障害物が存在する場合でも、絨毯の織り目の影響や、床の傾斜などの影響を受けることなく、正確な走行を行なうことができる。
【００１０】
本発明においては、往路および復路において計測された距離の比率に関係する補正値に基づいて、現在走行中に逐次計測される現在の走行距離をリアルタイムに逐次補正するのが好ましい。
このようにリアルタイムに補正することにより、往路において障害物を検出した場合にも実際に走行した距離から現在位置の情報を得ることができるので、正確な走行を行うことができる。
【発明を実施するための最良の形態】
【００１１】
実施例１：
以下、本発明の実施例を図面にしたがって説明する。
図１〜図７は実施例１を示す。
図１Ａ，Ｂに示すように、本自走式作業ロボットは、床上を自走するための駆動輪６ａ，６ｂを有する走行アセンブリ（本体）１と、床面に対する作業を行う作業アセンブリ（作業手段）２（図２）とを備えている。本作業ロボットは、作業アセンブリ２を交換することにより、床面に対して種々の作業を行うことが可能であるが、以下の説明では、床面のゴミを吸引して集塵する清掃用の作業アセンブリ２を用いる場合について例示して説明する。
【００１２】
走行アセンブリ１：
図１Ａ，Ｂに示すように、走行アセンブリ１は、該走行アセンブリ１の走行を行うための１対の駆動輪６ａ，６ｂと、走行アセンブリ１のバランスをとるための補助輪９ａ，９ｂとを備えている。前記駆動輪６ａ，６ｂは、それぞれ、駆動モータ５ａ，５ｂによって駆動される。駆動モータ５ａ，５ｂは正逆回転可能で、たとえば、マイコンからなる制御手段８によって制御される。
【００１３】
直進走行時には、前記２つの駆動モータ５ａ，５ｂが同方向に回転することで、走行アセンブリ１は前進または後退することができる。旋回動作を行う際には、前記２つの駆動モータ５ａ，５ｂがそれぞれ逆方向に回転することにより旋回することができる。前記２つの駆動モータ５ａ，５ｂの回転の比率を制御することで、走行アセンブリ１はカーブ走行を行うこともできる。
【００１４】
障害物センサ３，１０，１７；
図１Ａに示すように、前記走行アセンブリ１の前部には、複数の超音波式センサ３と、複数の光学式センサ１７とが設けられている。これら複数のセンサのうち、超音波センサ３は、走行アセンブリ１の左右にある障害物までの距離を測定する。一方、残りの超音波式センサ３および光学式センサ１７は、走行アセンブリ１の前方にある障害物までの距離を測定する。
走行アセンブリ１の前部外縁部には、障害物との接触を検知するためのバンパーセンサ１０が設けられている。
【００１５】
したがって、超音波式センサ３、光学式センサ１７およびバンパーセンサ１０は、本作業ロボット本体の走行方向（図１Ａの矢印方向）、および左右方向にある障害物の有無を検出する障害物センサを構成している。
【００１６】
方位センサ７；
走行アセンブリ１の回転中心Ｏの近傍には、該回転中心Ｏのまわりの走行アセンブリ１の回転角度（方位）を測定することにより、本作業ロボット本体の走行方向を検知する方位センサ（ジャイロセンサ）７が設けられている。
【００１７】
走行アセンブリ１の後部には、作業アセンブリ２２を取り付けるための取付板１１が設けられている。図１Ａに示すように、前記取付板１１は、スライドレール１４に取り付けられ、かつ、タイミングベルト及びプーリーを介してスライド駆動モーター１５に接続されている。前記取付板１１は、前記スライド駆動モーター１５により前記スライドレール１４に沿って左右方向にスライド移動される。
前記取付板１１には、図２に示す作業アセンブリ２の前部が取り付けられ、必要に応じて、走行アセンブリ１を作業アセンブリ２に対して左右の水平方向に相対移動することが可能である。
【００１８】
作業アセンブリ２：
図２において走行アセンブリ１の上部には、吸引ユニット２１が設けられている。吸引ユニット２１には、ゴミ収容部（タンク）や、ブロアーモータ、フィルタなどが設けられている。吸引ユニット２１と作業アセンブリ２とは、吸引ホース２２を介して接続されている。作業アセンブリ２の下面には吸引口２０が設けられており、本作業ロボットが走行しながら清掃作業を行うと、床のゴミが吸引口２０から次々に吸い上げられて、床面の清掃が行われる。
【００１９】
なお、本作業ロボットの走行アセンブリ１についてのより詳しい機器構成については、たとえば、特開２００３−１００８８の走行装置を採用することができる。
【００２０】
制御の構成：
図３（ａ）に示すように、作業アセンブリ２には、該作業アセンブリ２を制御するためのローカル制御部２４が設けられている。ローカル制御部２４には、前記ブロアーモータや、作業アセンブリ２に設けられた各種センサ等が接続されている。ローカル制御部２４は、走行アセンブリ１に設けられた制御手段８に図示しないコネクタを介して接続されている。
【００２１】
前記制御手段８には、走行アセンブリ１に設けた障害物センサ３，１０，１７、方位センサ７、入力手段３８および赤外線受信機３９等が接続されている。
入力手段３８は、たとえば、テンキーや入力設定ボタンなどからなり、種々の設定値などの入力を受け付けるものである。
赤外線受信機３９は、本作業ロボットに対して別途設けられたリモコン（遠隔操縦装置）２９からの赤外線信号を受信し、制御手段８に送信する。リモコン２９から赤外線受信機３９には種々の命令や設定値の他に、後述するユーターン命令が出力される。
【００２２】
制御手段８：
前記制御手段８は、ＣＰＵ３０およびメモリ３４を備えている。ＣＰＵ３０は、第１距離計測手段（走行距離計測手段）３１、第２距離計測手段（走行距離計測手段）３２、走行制御手段３３、補正値算出手段３７および補正手段５０を備えている。
前記ＣＰＵ３０は、該ＣＰＵ３０に接続された各機器からの各情報に対応して、メモリ３４に格納されているプログラムや作業指令情報に従って、各機器の駆動制御を行う。
【００２３】
ここで、図１Ａに示す駆動輪６ａ，６ｂの駆動を行う駆動モータ５ａ，５ｂには、エンコーダが設けられている。該エンコーダのパルス数の積算値と、駆動輪６ａ，６ｂの外径とに基づき、本作業ロボットが実際に走行した（直線）距離を算出することができる。
図３の第１距離計測手段３１は、かかる演算により算出された走行距離、すなわち、実際に走行した第１方向Ｘ１，Ｙ１（図４，図５）の往路の第１距離を測定する。
第２距離計測手段３２は、前記演算により算出された第２方向Ｘ２，Ｙ２（図４，図５）の復路の第２距離を測定する。
【００２４】
走行制御手段３３は、走行アセンブリ１の駆動モータ５ａ，５ｂ（図１Ａ）の制御を行う。
補正値算出手段３７は、前記第１距離と第２距離との比率に基づいて、補正値を算出する。算出された補正値は、メモリ３４に記憶される。
補正手段５０は、当該補正値に基づいて走行中に逐次計測される現在の走行距離を微小時間ごとに逐次補正する。
【００２５】
メモリ３４には、往路距離記憶手段３５および復路距離記憶手段３６が設けられている。
往路距離記憶手段３５には、本作業ロボットが前記往路を所定距離直進した後、第１距離計測手段３１で計測された前記第１距離が記憶される。
復路距離記憶手段３６には、本作業ロボットが前記復路を所定距離直進した後、第２距離計測手段３２で計測された前記第２距離が記憶される。
【００２６】
前記ＣＰＵ３０は、前記第１および第２距離の測定を行うと共に当該両距離に基づいて補正値の算出を行う教示モードと、該補正値に基づいて本作業ロボットを走行させてゴミの吸引等の作業を行わせる作業モードとを備えている。なお、前記教示モードにおいても、作業アセンブリ２に作業を行わせてもよい。
【００２７】
清掃動作の説明：
本作業ロボットは、図４および図５に示すように、種々の走行動作を行うことができるが、まず、図４（ａ）〜（ｄ）に示すジグザグ走行パターンについて説明する。
【００２８】
ジグザグ走行パターン；
前記ジグザグ走行パターンを行う場合には、図４（ａ）に示すように、走行アセンブリ１は、縦の第１方向（往路）Ｙ１に直進した後、９０°ターンし、横方向Ｘ１に若干直進し、再度９０°ターンして、縦の第２方向（復路）Ｙ２に直進する。この縦方向の直進、ターン、横方向Ｘ１の直進を繰り返して、ジグザグ走行し、方形の領域を隙間なく作業する。
【００２９】
すなわち、前記走行制御手段３３は、所定の方向に直進走行する制御と、前記所定の方向と１８０°異なる方向に走行する制御と、前記往路Ｙ１・復路Ｙ２に略直交する方向に移動させる制御とを行い、複数の往路直進制御と復路直進制御と、横移動制御とを組合せて、作業領域を隈なく走行するべく走行制御を行う。
【００３０】
従来の走行動作；
従来より、自走式作業ロボットにおける走行距離の測定は、前述のように、車輪もしくは車輪を駆動するモーターに取り付けられたエンコーダーのパルス数を積算することにより行なわれている。
【００３１】
この場合、作業対象である床が、絨毯である場合には、絨毯の織り目の影響により、走行方向によって車輪の回転数と実際に進む距離との関係が異なり、走行距離に差が生じてしまうことが知られている。また、床が絨毯でなくとも、傾斜を持っている場合には、わずかなスリップの積み重ねによって、やはり、走行方向によって、走行距離に差が生じてしまう。また、芝刈り用ロボットにおいても、芝目の影響や、地面の傾斜によって、走行方向により走行距離に差が生じてしまう。
そして、このことが原因となり、図４（ｂ）に示すごとく、自走式作業ロボットが作業領域の外に出てしまったり、作業残りが発生してしまうという問題があった。
【００３２】
この問題を解決するために、従来は、前述の教示モードにおいて、ジグザグ走行の、１回目の往路の走行において、走行開始から、前方の障害物（目標として一時的に設置した衝立なども含む）を検知して停止するか、もしくはリモコン操作によるＵターン命令を受信するまでの距離計測値を、往路Ｙ１の目標走行距離として教示・記憶させる。
同様に、１回目の復路の走行において、走行開始から、前方の障害物を検知して停止するか、もしくはリモコン操作によるＵターン命令を受信するまでの距離計測値を、復路Ｙ２の目標走行距離として教示・記憶させる。
この教示記憶後、往路を走行中は、往路Ｙ１の目標走行距離に基づいて走行停止制御を行う。一方、復路を走行中は、復路Ｙ２の目標走行距離に基づいて走行停止制御を行なう。従来の作業ロボットでは、このような方法で走行方向による走行距離に誤差が生じないようにしている。
【００３３】
しかし、上記従来方式では、図４（ｃ）に示すように、作業領域内に障害物Ｈがあり、往路Ｙ１の目標走行距離に到達する前に方向転換した場合、ロボットが復路Ｙ２の目標走行距離を進み、作業領域の外に出てしまう。そのため、作業領域内に障害物Ｈがある場合、図４（ｄ）に示すように、作業領域から外に出ないように走行制御を行なうためには、直前の往路Ｙ１の走行距離に相当する距離だけ復路Ｙ２を進ませる必要がある。
従来では、このような場合には、走行方向による走行距離の誤差を無くすために、走行行程毎に、複数の往路目標走行距離と復路目標走行距離とをロボットに教示・記憶させていた。
【００３４】
一方、図４（ｅ）に示すように、作業領域の外周から中央に向かって、周回走行を行ないながら、渦巻状の走行経路で作業領域を走行する場合がある。前述の従来の走行方法には、かかる渦巻き状走行について一切考慮されていない。そのため、図４（ｆ）に示すごとく、作業ロボットが作業領域からはみ出したり、作業残りが生じたり、隣のレーンとの間に隙間が生じたり、隣のレーンとの重複が大きくなりすぎるという問題がある。
【００３５】
更に、図５（ａ）に示すごとく、従来より、作業領域の境界外周を１度走行させて、その軌跡を記憶させ、作業領域の形状を教示する提案がされているが、その場合も、走行方向により移動距離計測値に誤差があると、図５（ｂ）に示すごとく、軌跡に誤差が生じるため、正確な形状の教示が行なえなくなるという問題があった。
【００３６】
本作業ロボットの動作；
以下、本作業ロボットの走行動作について説明する。
【００３７】
ジグザグ走行の場合；
まず、本作業ロボットが、図４（ａ）に示すようなジグザグ走行を行う場合について説明する。
本作業ロボットは、ジグザグ走行の、１回目の往路Ｙ１の走行において、走行開始から前方の障害物（目標として一時的に設置した衝立なども含む）を検知して停止するか、もしくはリモコン操作によるＵターン命令を受信するまでの距離の計測値と、１回目の復路Ｙ２の走行において、復路Ｙ２の走行開始から前方の障害物を検知して停止するか、もしくはリモコン操作によるＵターン命令を受信するまでの距離の計測値との比率を演算し記憶することにより、その比率に基づいて、走行距離計測値の補正を行なう。
【００３８】
例えば、１回目の往路の走行距離計測値を第１距離Ｌ１、１回目の復路の走行距離計測値を第２距離Ｌ２とした場合に、下記の式（１）で計算されるＬ１に対するＬ２の比率Ｍを記憶する。
Ｍ＝Ｌ２／Ｌ１・・・・（１）
【００３９】
この場合、Ｍ１を整数値として記憶するために、１０００倍して、小数点以下を切り捨てた値として記憶しても良いし、記憶容量を少なくするために、式（２）
ΔＭ＝Ｌ２／Ｌ１  −  １  ・・・・（２）
によって算出される、Ｌ１に対するＬ２の増減割合ΔＭとして記憶しても良いが、本実施例では、式（１）で計算されるＭ１を記憶する場合について説明する。
【００４０】
図４（ａ）に示すように、長方形の作業領域をジグザグ走行する場合、走行方向によって、同一距離を走行した場合の走行距離計測値に違いがあると、図４（ｂ）に示すように、ロボットが計測する走行距離軌跡は実際の走行軌跡と異なってくる。
【００４１】
図４（ｂ）の例として、本作業ロボットを教示モードで走行させた結果として、往路Ｙ１での走行距離計測値に対して、復路Ｙ２の走行距離計測値が、たとえば、５％大きく計測される場合について例示すれば、補正方法は、下記のような方法が考えられる。
【００４２】
本作業ロボットでは、目標走行距離を補正するのではなく、走行距離計測値を逐次補正する。つまり、復路Ｙ２を走行中は、走行距離演算（車輪の回転数から現在の走行距離計測値を演算する）に於いて、演算結果を補正値に基づき５％小さくする補正演算を行なった上で、往路Ｙ２の走行距離計測値（第２距離）とする。
【００４３】
なお、復路走行距離計測値を５％小さく補正する代わりに、往路走行距離計測値を５％大きく補正しても良いし、また、復路走行距離計測値を２．５％小さくし、往路走行距離計測値を２．５％大きく補正すれば、最も真の距離値に近い補正となる。
【００４４】
このようにすれば、リアルタイムに位置情報も補正されるので、往路で検出した障害物などにも正確な対応が可能となる。なお、かかる場合には、計算が頻繁に行なわれるため、ＣＰＵの負担は大きくなる。
【００４５】
前述の実施例は、処理時間が多く必要であるが、最も汎用性があり、正確な作業が可能となる。かかる走行動作について、図６および図７に示すフローチャートを用いて、更に詳しく説明する。
【００４６】
各ステップ＃における動作は以下のようになる。
＃１：往路走行距離計測値（第１距離）Ｌ１、復路走行距離計測値（第２距離）Ｌ２、走行距離補正値ＭおよびフラグＦを０クリアーする。また、往路走行距離積算値Ｓ１と復路走行距離積算値Ｓ２を０クリアーする。
＃２：走行距離計測値Ｌを０クリアーする。
＃３：往路Ｙ１の直進を開始する。
【００４７】
＃４：走行車輪駆動モーターの回転数に比例した数のパルスを出力するパルスエンコーダーのパルス数をカウントするパルスカウンターの、＃４から＃８のループを経過する間の増分を計算し、ｄＬに代入する。
【００４８】
＃５：走行距離計測値ＬにｄＬを加算することにより、Ｌの値を更新する。また、往路走行距離積算値Ｓ１にｄＬを加算してＳ１の値を更新する。Ｓ１は、後述する復路走行距離積算値Ｓ２とともに、作業終了後に補正値を算出もしくは修正する場合の工程に用いる。
【００４９】
＃６：フラグＦが、往路走行距離計測値Ｌ１が未設定であることを示す０であるかどうかを判別し、０であれば、往路走行距離計測値を設定すべく、＃７へ進む。一方、フラグＦが０でなければ、Ｌ１が設定済みであるので、＃２２へ進む。
【００５０】
＃７：前方に障害物が近接しているかどうかを判別し、近接していれば＃９へ進んでＬ１の設定を行なう。一方、近接していなければ＃８へ進んで、リモコンから、ターン指令を受信したかどうかを判別する。
＃８：リモコンから、ターン指令を受信したかどうかを判別し、受信していれば、＃９へ進んで、Ｌ１の設定を行なう。一方、受信していなければ、前記＃４にもどる。
【００５１】
＃９：Ｌ１に現在の走行距離計測値Ｌを代入し、往路走行距離計測値として往路距離記憶手段３５に記憶する。そして、フラグＦに、Ｌ１設定済みを示す「１」を代入する。＃２〜＃９は第１距離計測手段３１の演算動作を示している。
なお、ここで設定されたＬ１は、作業領域の縦距離として使用されるとともに、後述する＃１９での補正値Ｍの算出にも使用される。
【００５２】
＃１０：ユーターン（９０°ターンを行い、ロボットの作業幅よりも若干短い距離だけ横方向に走行し、更に９０°ターンして復路方向へ向きを変えること）を行い、ロボットの作業幅よりも若干短い距離だけ横方向へ移動し、往路と１８０度反対方向へ向きを変える。
＃１１：復路の直進を開始する前に、走行距離計測値Ｌを０クリアーする。
【００５３】
＃１２：復路Ｙ２の直進を開始する。
＃１３：走行車輪駆動モーターの回転数に比例した数のパルスを出力するパルスエンコーダーのパルス数をカウントするパルスカウンターの、＃１３から＃１７のループ、もしくは、＃１３から＃２８のループを経過する間の増分を計算し、ｄＬに代入する。
【００５４】
＃１４：フラグＦが、往路走行距離計測値Ｌ１が設定済みで補正値Ｍが未設定であることを示す１であるか、往路走行距離計測値Ｌ１及び補正値Ｍが設定済みであることを示す２であるかを判別し、１であれば、補正値を設定するため＃１５へ進み、２であれば、補正演算を行なうため＃２６へ進む。
【００５５】
＃１５：走行距離計測値ＬにｄＬを加算することにより、Ｌの値を更新する。また、復路走行距離積算値Ｓ２にｄＬを加算してＳ２の値を更新する。Ｓ２は、前述の往路走行距離積算値Ｓ１とともに、作業終了後に補正値を算出もしくは修正する場合の工程に用いる。
＃１６：前方に障害物が近接しているかどうかを判別し、近接していれば＃１８へ進んでＬ１の設定を行なう。一方、近接していなければ＃１７へ進んで、リモコンから、ターン指令を受信したかどうかを判別する。
＃１７：リモコンから、ターン指令を受信したかどうかを判別し、受信していれば、＃１８へ進んで、Ｌ１の設定を行なう。一方、受信していなければ＃１３に戻る。
【００５６】
＃１８：Ｌ２に現在の走行距離計測値Ｌを代入し、復路走行距離計測値として復路距離記憶手段３６に記憶する。そして、フラグＦに、Ｌ２及び補正値Ｍ（次の＃１９で設定）が設定済みを示す「２」を代入する。
＃１９：補正値Ｍに、往路距離計測値Ｌ１と復路距離計測値Ｌ２の比を代入し記憶する。＃１１〜＃１９は第２距離計測手段３２の演算動作を示している。
【００５７】
＃２０：作業領域を全て作業したかどうかを判別し全て作業したと判別されれば、＃２１Ａに進んで終了する。一方、＃２０における判別の結果、全ての作業が終了していない場合は＃２１に進む。
＃２１：作業領域全ての作業が完了していなければ、９０°ターンを行い、ロボットの作業幅よりも若干短い距離だけ横方向へ移動し、更に９０°ターンして往路方向へ向きを変えて（ユーターン）、＃２（図６）に戻る。
【００５８】
図６の＃２２〜＃２５は、＃６で、フラグＦが０でないと判別された場合の往路走行の処理であり、設定済みの縦距離Ｌ１に達するまで、往路を直進する。
＃２２：リモコンから設定解除指令を受信しているかどうかを判別して、受信されていれば、＃２３に進みフラグＦを０に戻して、Ｌ１、及びＭの再設定を可能にする。一方、受信されていなければ、＃２４に進む。
＃２４：前方に障害物があるか否かの判別を行い、障害物があれば＃１０に進む。一方、障害物がなければ＃２５に進む。
＃２５：既に設定されている作業領域縦距離Ｌ１に走行距離Ｌが到達したかどうかを判別する。ＬがＬ１以上の場合には＃１０に進む。一方、ＬがＬ１よりも小さい場合には＃４に戻る。
【００５９】
＃２６〜＃２８は、補正値Ｍが設定済みの場合の復路走行の処理である。
＃２６：走行エンコーダーパルスカウンター増分ｄＬに、Ｌ１とＬ２の比である補正値Ｍを乗じて補正を行なった上で、走行距離計測値Ｌに加算し、Ｌの値を更新する。この処理によって、往路と復路で同一距離を走行した場合の走行距離計測値がほぼ等しくなるように補正される。
＃２７：前方障害物の近接判別を行う。
＃２８：既に設定されている作業領域縦距離Ｌ１に走行距離Ｌが到達したかどうかを判別する。ＬがＬ１以上の場合には＃２０に進む。一方、ＬがＬ１よりも小さい場合には＃１３に戻る。
【００６０】
上記の工程において、ターンの実行は、リモコン２９からのターン指令か、障害物の検出によって行なわれる。リモコン２９による操作は、指令を出すタイミングのずれによる誤差が生じるので、障害物検知による方法のほうがより正確である。障害物が無い場合には、衝立などを置いて、目標障害物とすることができる。
一方、リモコンによる方法は、正確さは劣るが、適当な障害物が存在しない場合に衝立などを用意する必要が無い。したがって、本作業ロボットの走行動作に要求される正確さ等に応じて、両者を使い分けることができる。
【００６１】
他の補正方法；
なお、他の補正方法としては、以下の補正方法を採用することができる。以下の例では、往路での走行距離測定値に対して、復路の走行距離測定値が、たとえば５％大きく計測される場合の例について示す。
【００６２】
走行方向と走行距離演算値をもとに往路直進方向をＹ軸とした位置座標（Ｘ，Ｙ）を算出するようにし、座標データーを基に、目標走行距離を算出する。かかる場合には、往路走行終了時から、復路走行開始時までの間に、現在のＹ座標値を５％大きくするように補正してもよい。
【００６３】
このようにすれば、計算に要する時間を短くすることができる。なお、座標位置が実際の座標位置と異なるため、往路走行中に発見した障害物への対応処理などに不具合が生じる可能性がある。
【００６４】
また、復路の直進を開始する時の、目標走行距離を５％大きく補正して設定してもよい。このようにすれば、計算に要する時間を短くすることができる。なお、座標位置が補正されない（位置情報に誤差が生じる）ため、往路走行中に発見した障害物への対応処理などに不具合が生じる可能性がある。
【００６５】
実施例２：
作業終了後に補正値を設定する場合；
図８および図９は実施例２を示す。
ここで、走行方向による走行距離誤差が比較的小さい場合には、作業終了後に補正値の設定を行なうのが簡単で便利な場合がある。本実施例２では、作業中には補正値の設定を行なわずに、作業終了後に補正値Ｍの設定を行うようにしている。図８に示すように、本実施例２の作業ロボットでは、走行アセンブリ１に偏差入力手段４７が設けられていると共に、ＣＰＵ３０に積算手段４８が設けられている。
【００６６】
偏差入力手段４７は、作業終了時の作業ロボットの実際の位置と目標終了位置との位置ずれ量の偏差を入力する入力手段であり、たとえば、入力手段３８などのテンキーや設定ボタンを兼用して用いてもよい。
積算手段４８は、各方向それぞれの走行距離の積算値を演算するものである。
その他の構成は、実施例１と同様であり、その詳しい説明を省略する。
【００６７】
本作業ロボットの作業終了時に、作業者が位置ズレの偏差を偏差入力手段４７を用いて入力すると、ＣＰＵ３０は、当該偏差と、積算手段４８からの積算値とに基づいて、前記補正値を算出する。なお、補正値を算出する代わりに、偏差と積算値とに基づいて前回の補正値を修正するようにしてもよい。
【００６８】
図８は、作業終了後に補正値を設定する場合のフローチャートである。
＃２９：作業終了地点の、目標位置と実際の終了位置との縦方向のずれの距離値Ｄを、操作パネルから入力する。
＃３０：作業時に算出した往路走行距離積算値Ｓ１と復路走行距離積算値Ｓ２と、ずれの距離値Ｄに基づいて、補正値Ｍを算出する。
【００６９】
なお、図６および図７を用いて、前述の実施例１で説明した補正値設定方法により補正値Ｍを設定した後、本実施例２の方法を用いて補正値Ｍを修正するようにしてもよい。
【００７０】
実施例３：
渦巻き状に走行する場合；
図１０〜図１２は実施例３を示す。
ところで、前述のように、本作業ロボットがジグザグに走行する場合には、左右方向Ｘ１，Ｘ２の走行距離の誤差は、比較的問題にならなかったが、本作業ロボットが、図４（ｅ）に示すように渦巻き状に走行する場合には、左右方向Ｘ１，Ｘ２の走行距離の誤差も考慮する必要がある。以下の説明では、縦方向Ｙの走行距離補正だけでなく、横方向Ｘの走行距離補正も行なう場合の補正値設定工程例を示す。
【００７１】
図１０に示すように、ＣＰＵ３０には、成分算出手段４０、第１〜第４積算手段４１〜４４、周回終了検知手段４５および補正値算出手段４６が設けられている。
成分算出手段４０は、方位センサ７の出力と第１および第２距離計測手段３１，３２からの走行距離計測値から、作業領域の外周境界線に沿って走行している時の移動距離の往復方向の成分（Ｘ軸方向成分）と左右方向の成分（Ｙ軸方向成分）とを算出する。すなわち、図５（ａ）に示すように、成分算出手段４０は、本作業ロボットが斜めに走行する場合には、二点鎖線で示すように、かかる斜め方向の走行部分をＸ軸およびＹ軸成分として算出する。
【００７２】
第１積算手段４１は、本作業ロボットの移動距離のＹ軸方向成分の正の値（往路）Ｙ１のみを積算する。
第２積算手段４２は、本作業ロボットの移動距離のＹ軸方向成分の負の値（復路）Ｙ２のみを積算する。
第３積算手段４３は、本作業ロボットの移動距離のＸ軸方向成分の正の値（往路）Ｘ１のみを積算する。
第４積算手段４４は、本作業ロボットの移動距離のＸ軸方向成分の負の値（復路）Ｘ２のみを積算する。
【００７３】
周回終了検知手段４５は、本作業ロボットが走行開始地点に戻ったことを検知するもので、たとえば、本作業ロボットが所定の作業領域の外周縁を１周したことを検知する手段である。なお、周回終了検知手段４５は、たとえば、リモコン２９からの命令を受信した赤外線受信機３９からの出力に基づいて、外周境界線を１周した（走行開始地点に戻った）と判断することとしてもよい。また、方位センサ７の出力と走行距離計測値から、ＸＹ座標値を算出する手段を設け、周回終了検知手段４５は、周回開始地点と、現在地点とで、ＸＹ座標値及び走行方向の情報を比較することにより、外周境界線を１周したと判断するようにしてもよい。
なお、本実施例においての周回は、閉じたルートに従って走行するものであればよく、必ずしも外周に沿って走行する必要はない。
【００７４】
補正値算出手段４６は、Ｘ軸方向の移動距離に関する第１補正値Ｍｘと、Ｙ軸方向の移動距離に関する第２補正値Ｍｙとを算出する手段である。第１補正値Ｍｘは、第３および第４積算手段４３，４４によって算出された値である。第２補正値Ｍｙは、第１および第２積算手段４１，４２によって算出された値である。
その他の構成は、実施例１と同様であり、その詳しい説明を省略する。
【００７５】
本作業ロボットは、前記補正値に基づいて現在または次回以後の実走行距離を制御する。
すなわち、図５（ｃ）に示すように、教示モードにおいて、本作業ロボットが長方形の作業領域の四辺を走行することで、往路Ｙ１、復路Ｙ２、右方向（往路）Ｘ１、左方向（復路）Ｘ２の走行を行い、それぞれの走行距離計測値Ｌ１，Ｌ２，Ｌ３，Ｌ４を得る。下式（３）（４）に従って、往復方向Ｙの補正値Ｍ１、左右方向Ｘの補正値Ｍ２を算出する。
Ｍ１＝Ｌ２／Ｌ１・・・・（３）
Ｍ２＝Ｌ３／Ｌ４・・・・（４）
【００７６】
一方、図５（ｄ）は、まず往路Ｙ１と復路Ｙ２を走行した後、９０度回転して、右方向Ｘ１、左方向Ｘ２の走行を行なう例を示す。
図５（ｃ）の長方形に走行する教示方法、ないし、図５（ｄ）のＬ字形に走行する教示方法によって、走行距離が入力され、補正値Ｍ１，Ｍ２の算出がなされる。
【００７７】
その後、前述のジグザグ走行の例と同様に、作業終了地点の、目標位置と実際の終了位置との縦方向のずれの距離値Ｄ１と、横方向のずれの距離値Ｄ２を、作業者が入力手段３８から入力する。ＣＰＵ３０は、往路走行距離積算値Ｓ１、復路走行距離積算値Ｓ２、右方向走行距離積算値Ｓ３、左方向走行距離積算値Ｓ４とＤ１、Ｄ２に基づいて、下記の式で補正値を設定・修正することが可能である。
Ｍ１＝Ｓ１／（Ｓ２−Ｄ１）・・・・（５）
Ｍ２＝Ｓ３／（Ｓ４−Ｄ２）・・・・（６）
【００７８】
ここで、作業領域の形状は、長方形とは限らず、図５（ａ）に示すような、凹凸や斜めの辺のある境界となる場合がある。かかる場合の作業領域の設定方法としては、壁で囲まれた作業領域を、壁沿いに走行しながら形状が設定されてもよいし、リモコンの操作によって、直進、方向転換、カーブ走行などの制御が行なわれて、作業領域の形状が定められてもよい。
また、補正値の設定工程を、作業領域形状の教示と同時に行うことにより、作業の効率化が図れるが、もちろん、別々に行うことも可能である。例えば、図５（ａ）の作業領域の内側で、長方形の辺上を走行させて補正値の設定を行うことも可能である。
【００７９】
本実施例では、このような場合においても、走行方向による走行距離誤差に基づく、位置誤差を補正することができる。以下に、図１１のフローチャートを用いて、縦方向（Ｙ軸方向）および横方向（Ｘ軸方向）の補正値の算出方法について説明する。
【００８０】
＃１０１：ロボットの走行角度θ、Ｘ軸プラス方向（紙面右方向）の移動成分積算値Ｌｘｐ、Ｘ軸マイナス方向（紙面左方向）の移動成分積算値Ｌｘｍ、Ｙ軸プラス方向（紙面上方向）の移動成分積算値Ｌｙｐ、Ｘ軸マイナス方向（紙面下方向）の移動成分積算値Ｌｙｍを０クリアーする。
【００８１】
＃１０２：壁沿い走行を開始する。
＃１０３：ジャイロセンサーの出力から現在の走行方位θを算出する。
＃１０４：走行エンコーダカウンターの増分ｄＬを算出する。
＃１０５：Ｘ軸方向への移動量（ｄＬのＸ軸成分）ｄＬｘを算出する。
【００８２】
＃１０６〜１０８：ｄＬｘが正の値であれば＃１０７に進みＬｘｐに加算し（第１積算手段４１）、一方、ｄＬｘが負の値であれば＃１０８に進みＬｘｍに加算する。
＃１０９：Ｙ軸方向への移動量（ｄＬのＹ軸成分）ｄＬｙを算出する（第２積算手段４２）。
【００８３】
＃１１０〜１１２：ｄＬｙが正の値であれば＃１１１に進みＬｙｐに加算し（第３積算手段４３）、一方、ｄＬｙが負の値であれば＃１１２に進みＬｙｍに加算する（第４積算手段４４）。
＃１１３：ｄＬｘ、ｄＬｙを基に、ＸＹ座標値を更新する。
＃１１４〜１１５：周回走行が終了し、開始地点に戻ったかどうかを判定し、終了であれば＃１１５へ進んで走行を停止し、終了でなければ＃１０３へ戻って走行を続ける。
＃１１６：Ｘ軸方向の第１補正値Ｍｘを算出する。
＃１１７：Ｙ軸方向の第２補正値Ｍｙを算出する。
【００８４】
制御手段８は、算出された第１および第２補正値Ｍｘ，Ｍｙに基づいて、現在または次回以降の実走行距離の制御を行う。以下、図１２のフローチャートを用いて、当該補正値Ｍｘ，Ｍｙを用いた実走行距離の制御の方法の一例について説明する。
【００８５】
＃１２０：方向センサー（ジャイロ）の出力を基に、現在の走行方向角度θを算出する。
＃１２１：走行エンコーダカウンターの増分ｄＬを算出する。
＃１２２：ｄＬとθを基に、Ｘ軸方向の移動量ｄＸを計算する。
＃１２３：ｄＸが負であれば＃１２４に進みｄＸにＸ軸方向の移動距離に関する第１補正値Ｍｘを乗じた値をｄＸに代入する。一方、ｄＸが正であれば＃１２５に進む。
【００８６】
＃１２５：Ｘ座標にｄＸを加算して、Ｘ座標の値を更新する。
＃１２６：ｄＬとθを基に、Ｙ軸方向の移動量ｄＹを計算する。
＃１２７：ｄＹが負であれば、＃１２８に進みｄＹにＹ軸方向の移動距離に関する第２補正値Ｍｙを乗じた値をｄＹに代入する。一方、ｄＹが正であれば、＃１２９に進む。
【００８７】
＃１２９：Ｙ座標にｄＹを加算して、Ｙ座標の値を更新する。
＃１３０：目標走行距離に到達するか、障害物を検知するかで走行が停止したかどうかを判別し、停止していなければ、＃１２０へ戻り、停止していれば終了する。
【００８８】
なお、補正値算出手段４６は、以下に示すように、補正値修正手段を有していてもよい。すなわち、補正値算出手段４６は、作業領域の縦方向（Ｙ軸方向）の往路Ｙ１と復路Ｙ２との距離補正値を演算し、作業領域の横方向（Ｘ軸方向）の往路Ｘ１と復路Ｘ２との距離補正を演算する。補正値修正手段は、縦方向の距離補正値を記憶する縦方向補正値記憶手段と、横方向の距離補正値を記憶する横方向補正値記憶手段とを有し、縦および横方向補正値記憶手段に記憶されている補正値を修正する。
【００８９】
また、図３（ｂ）に示すように、メモリ３４に、本作業ロボットの作業エリア名ごとに、当該作業領域の縦距離および横距離と、当該作業エリアに対応する補正値とが互いに関連付けられて記憶される補正値記憶手段を設けてもよい。このようにすれば、作業者がこれから作業を行う領域に応じたエリア名を選択するだけで、教示走行を行うことなく、補正値の設定を行うことができる。
【００９０】
さらに、前述の各実施例では、床面に対する作業として、床面のゴミを吸引して集塵する作業を例示して説明したが、床面に対する作業としては、床面に液剤を塗布する作業や、液剤を塗布した床面に赤外線や紫外線を照射する作業、床面の清拭作業など種々の作業がある。かかる場合には、作業アセンブリ２２や上面ユニット２１を走行アセンブリ１から取り外し、作業目的に合った作業アセンブリを走行アセンブリ１に取り付けることにより、当該作業目的に合った走行パターンが行われるようにしてもよい。
また、床面作業に限らず、搬送作業や警備作業を行う走行ロボットにおいても、カーペットなどの床を走行する場合に、正確な位置を計算することが可能になり、移動を容易にする。
【産業上の利用可能性】
【００９１】
本発明は、床面に対する作業の他、搬送作業や警備作業を行う自走式作業ロボットに適用することができる。
【図面の簡単な説明】
【００９２】
【図１】図１Ａは本発明の実施例１にかかる自走式作業ロボットの走行アセンブリを示す平面断面図、図１Ｂは同走行アセンブリの側面断面図である。
【図２】同自走式作業ロボットの概略斜視図である。
【図３】同自走式作業ロボットの概略構成図である。
【図４】自走式作業ロボットの走行動作を示す概略平面図である。
【図５】自走式作業ロボットの走行動作を示す概略平面図である。
【図６】自走式作業ロボットの走行動作を示すフローチャートである。
【図７】自走式作業ロボットの走行動作を示すフローチャートである。
【図８】本発明の実施例２にかかる自走式作業ロボットの概略構成図である。
【図９】同補正値の設定方法を示すフローチャートである。
【図１０】本発明の実施例３にかかる自走式作業ロボットの概略構成図である。
【図１１】同自走式作業ロボットの走行動作を示すフローチャートである。
【図１２】同自走式作業ロボットの走行動作を示すフローチャートである。
【符号の説明】
【００９３】
１：走行アセンブリ（本体）
２：作業アセンブリ（作業手段）                                                  ３：超音波式センサ（障害物センサ）
６ａ，６ｂ：駆動輪
７：方位センサ
１０：バンパーセンサ（障害物センサ）
１７：光学式センサ（障害物センサ）
３１：第１距離計測手段（走行距離計測手段）
３２：第２距離計測手段（走行距離計測手段）
３３：走行制御手段
３５：往路距離記憶手段
３６：復路距離記憶手段
４０：成分算出手段
４１：第１積算手段
４２：第２積算手段
４３：第３積算手段
４４：第４積算手段
４５：周回終了検知手段
４６：補正値算出手段
４７：偏差入力手段
４８：積算手段
５０：補正手段
Ｌ１：第１距離
Ｌ２：第２距離
Ｍ：補正値
Ｍｘ：第１補正値
Ｍｙ：第２補正値
【図１】
2006260161.tif 000003
【図２】
2006260161.tif 000004
【図３】
2006260161.tif 000005
【図４】
2006260161.tif 000006
【図５】
2006260161.tif 000007
【図６】
2006260161.tif 000008
【図７】
2006260161.tif 000009
【図８】
2006260161.tif 000010
【図９】
2006260161.tif 000011
【図１０】
2006260161.tif 000012
【図１１】
2006260161.tif 000013
【図１２】
2006260161.tif 000014