自走式作業ロボット
【課題】 簡単な教示作業で、走行方向による走行距離誤差の補正を行い、作業領域内を、正確に隈なく作業することのできる自走式作業ロボットを提供する。
【解決手段】 駆動輪を回転させて本体1の移動と方向操舵を制御する走行制御手段と、本体1の走行方向および左右方向にある障害物Hの有無を検出する障害物センサと、本体の走行方向を検知する方位センサと、前記本体に設けられ床面に所定の作業を行う作業手段と、実際に走行した往路X1,Y1の第1距離を測定する第1直進距離計測手段と、実際に走行した復路X2,Y2の第2距離を測定する第2直進距離計測手段とを備え、前記測定した往路の第1距離と前記測定した復路の第2距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする。
【解決手段】 駆動輪を回転させて本体1の移動と方向操舵を制御する走行制御手段と、本体1の走行方向および左右方向にある障害物Hの有無を検出する障害物センサと、本体の走行方向を検知する方位センサと、前記本体に設けられ床面に所定の作業を行う作業手段と、実際に走行した往路X1,Y1の第1距離を測定する第1直進距離計測手段と、実際に走行した復路X2,Y2の第2距離を測定する第2直進距離計測手段とを備え、前記測定した往路の第1距離と前記測定した復路の第2距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、床面に対して作業を行う自走式作業ロボットに関するものである。
【背景技術】
【0002】
従来より、車輪の回転数計測値から求める走行距離情報と、ジャイロセンサー等の方位センサー測定値から求める走行方向情報とから自己位置を認識しつつ、作業領域内を隈なく走行して作業を行なう、清掃ロボット、芝刈りロボット、ワックスがけロボットなどの自走式作業ロボットが知られている。かかる作業ロボットにおいては、カーペットの織り目や、芝の向き、作業面の傾斜等の、走行面の特性に起因して、走行方向によって、車輪の回転数計測値と実際の走行距離との関係に違いが生じ、自己位置の認識に誤差が生じる。
【0003】
その結果、図4(a)に示すように、例えばジグザグ走行で作業を行なう場合には、図4(b)に示すように、往路Y1の走行距離と復路Y2の走行距離に誤差が生じ、複数存在する往路Y1の開始地点の縦位置が徐々にずれてしまい、ロボットが破線で示す作業領域からはみ出たり、作業残りが生じたりするという問題があった。
【0004】
また、たとえば、図5(a),(c)に示すように、作業領域外周を実際に走行させて、その走行軌跡を記憶することで、作業領域の形状を教示設定する場合に於いて、1 周して実際には元の位置に戻っていても、計測した位置データーが一致しなかったり、正しく作業領域の形状を教示することができないなどの問題があった。
【0005】
更に、図4(e)に示すように、作業領域の外周側から周回走行を行ないつつ、渦巻状に徐々に作業領域の中央側へ向かう作業経路の場合には、縦方向の往路Y1と復路Y2、及び、横方向の右向き走行(往路)X1と左向き走行(復路)X2によって走行距離に誤差が生じる。そのため、図4(f)に示すように、隣の周回行程との間に作業残りが発生したり、重複して作業を行う領域が大きくなりすぎるという問題があった。
【0006】
前述のジグザグ走行における上記問題の対策としては、往路Y1の目標走行距離と復路Y2の目標走行距離を別々に記憶し、複数ある往路走行行程では前記往路目標走行距離に基づいて走行を行い、複数ある復路走行行程では前記復路目標走行距離に基づいて走行を行うことによって、往路Y1と復路Y2の走行距離の誤差を無くす工夫が提案されている(特許文献1、2)。
【特許文献1】特許第3528200号(請求項3)
【特許文献2】特開平1−173110号(図1)
【発明の開示】
【0007】
しかし、これらの先行技術では、目標往路走行距離と目標復路走行距離を絶対値で記憶している。そのため、図4(c)に示すように、作業領域の境界となる壁面に凹凸(障害物)Hがある場合や作業領域内に障害物が存在する場合、目標往路走行距離と目標復路走行距離がそれぞれ1種類なので、例えば往路において往路目標走行距離に到達する前にUターンして復路走行に移行した場合には、往路開始位置と復路終了位置とが大きく位置がずれてしまう。そのため、このような作業領域の境界に凹凸が有る場合や、作業領域内部に障害物Hがある場合には、走行行程毎に、複数の往路目標走行距離、および復路目標走行距離を記憶しておく必要があり、教示作業が非常に複雑になるという問題があった。
したがって、本発明の目的は、簡単な教示作業で、走行方向による走行距離誤差の補正を行い、作業領域内を、正確に隈なく作業することのできる自走式作業ロボットを提供することである。
【0008】
本第1発明の自走式作業ロボットは、駆動輪を回転させて本体の移動と方向操舵を制御する走行制御手段と、前記本体の走行方向にある障害物の有無を検出する障害物センサと、前記本体の走行方向を検知する方位センサと、実際に走行した往路の第1距離を測定する第1距離計測手段と、実際に走行した復路の第2距離を測定する第2距離計測手段とを備え、前記測定した往路の第1距離と前記測定した復路の第2距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする。
一方、本第2発明は自走する作業ロボットであって、直進、旋回などの走行を制御する、走行制御手段と、走行距離計測値を計測する距離計測手段と、
走行方向を検出する方位センサと、方位センサの出力と走行距離計測値から、走行している時の移動距離のX軸方向成分とY軸方向成分を算出する成分算出手段と、前記移動距離のX軸方向成分の正の値のみを積算する第1の積算手段と、前記移動距離のX軸方向成分の負の値のみを積算する第2の積算手段と、前記移動距離のY軸方向成分の正の値のみを積算する第3の積算手段と、前記移動距離のY軸方向成分の負の値のみを積算する第4の積算手段と、ロボットが走行開始地点に戻ったことを検知する周回終了検知手段と、前記第1および第2の積算手段の各積算値に基づいて算出されるX軸方向の移動距離に関する第1補正値と、前記第3および第4の積算手段の各積算値に基づいて算出されるY軸方向の移動距離に関する第2補正値と、を算出する補正値算出手段とを備え、前記補正値に基づいて現在または次回以後の実走行距離を制御することを特徴とする。
【0009】
本発明によれば、第1距離と第2距離の比率に関する補正値に基づき、現在または次回以降の走行距離を制御することにより、簡単な教示操作で、正確に作業領域内を隈なく走行し、作業させることができる。
すなわち、本発明に於いては、複数の走行方向における移動距離を計測し、その計測値の間の関係に基づいて、それ以降の移動距離計測値を補正する手段を有している。そのため、作業領域が単純な矩形形状ではない場合や、作業領域内に障害物が存在する場合でも、絨毯の織り目の影響や、床の傾斜などの影響を受けることなく、正確な走行を行なうことができる。
【0010】
本発明においては、往路および復路において計測された距離の比率に関係する補正値に基づいて、現在走行中に逐次計測される現在の走行距離をリアルタイムに逐次補正するのが好ましい。
このようにリアルタイムに補正することにより、往路において障害物を検出した場合にも実際に走行した距離から現在位置の情報を得ることができるので、正確な走行を行うことができる。
【発明を実施するための最良の形態】
【0011】
実施例1:
以下、本発明の実施例を図面にしたがって説明する。
図1〜図7は実施例1を示す。
図1A,Bに示すように、本自走式作業ロボットは、床上を自走するための駆動輪6a,6bを有する走行アセンブリ(本体)1と、床面に対する作業を行う作業アセンブリ(作業手段)2(図2)とを備えている。本作業ロボットは、作業アセンブリ2を交換することにより、床面に対して種々の作業を行うことが可能であるが、以下の説明では、床面のゴミを吸引して集塵する清掃用の作業アセンブリ2を用いる場合について例示して説明する。
【0012】
走行アセンブリ1:
図1A,Bに示すように、走行アセンブリ1は、該走行アセンブリ1の走行を行うための1対の駆動輪6a,6bと、走行アセンブリ1のバランスをとるための補助輪9a,9bとを備えている。前記駆動輪6a,6bは、それぞれ、駆動モータ5a,5bによって駆動される。駆動モータ5a,5bは正逆回転可能で、たとえば、マイコンからなる制御手段8によって制御される。
【0013】
直進走行時には、前記2つの駆動モータ5a,5bが同方向に回転することで、走行アセンブリ1は前進または後退することができる。旋回動作を行う際には、前記2つの駆動モータ5a,5bがそれぞれ逆方向に回転することにより旋回することができる。前記2つの駆動モータ5a,5bの回転の比率を制御することで、走行アセンブリ1はカーブ走行を行うこともできる。
【0014】
障害物センサ3,10,17;
図1Aに示すように、前記走行アセンブリ1の前部には、複数の超音波式センサ3と、複数の光学式センサ17とが設けられている。これら複数のセンサのうち、超音波センサ3は、走行アセンブリ1の左右にある障害物までの距離を測定する。一方、残りの超音波式センサ3および光学式センサ17は、走行アセンブリ1の前方にある障害物までの距離を測定する。
走行アセンブリ1の前部外縁部には、障害物との接触を検知するためのバンパーセンサ10が設けられている。
【0015】
したがって、超音波式センサ3、光学式センサ17およびバンパーセンサ10は、本作業ロボット本体の走行方向(図1Aの矢印方向)、および左右方向にある障害物の有無を検出する障害物センサを構成している。
【0016】
方位センサ7;
走行アセンブリ1の回転中心Oの近傍には、該回転中心Oのまわりの走行アセンブリ1の回転角度(方位)を測定することにより、本作業ロボット本体の走行方向を検知する方位センサ(ジャイロセンサ)7が設けられている。
【0017】
走行アセンブリ1の後部には、作業アセンブリ22を取り付けるための取付板11が設けられている。図1Aに示すように、前記取付板11は、スライドレール14に取り付けられ、かつ、タイミングベルト及びプーリーを介してスライド駆動モーター15に接続されている。前記取付板11は、前記スライド駆動モーター15により前記スライドレール14に沿って左右方向にスライド移動される。
前記取付板11には、図2に示す作業アセンブリ2の前部が取り付けられ、必要に応じて、走行アセンブリ1を作業アセンブリ2に対して左右の水平方向に相対移動することが可能である。
【0018】
作業アセンブリ2:
図2において走行アセンブリ1の上部には、吸引ユニット21が設けられている。吸引ユニット21には、ゴミ収容部(タンク)や、ブロアーモータ、フィルタなどが設けられている。吸引ユニット21と作業アセンブリ2とは、吸引ホース22を介して接続されている。作業アセンブリ2の下面には吸引口20が設けられており、本作業ロボットが走行しながら清掃作業を行うと、床のゴミが吸引口20から次々に吸い上げられて、床面の清掃が行われる。
【0019】
なお、本作業ロボットの走行アセンブリ1についてのより詳しい機器構成については、たとえば、特開2003−10088の走行装置を採用することができる。
【0020】
制御の構成:
図3(a)に示すように、作業アセンブリ2には、該作業アセンブリ2を制御するためのローカル制御部24が設けられている。ローカル制御部24には、前記ブロアーモータや、作業アセンブリ2に設けられた各種センサ等が接続されている。ローカル制御部24は、走行アセンブリ1に設けられた制御手段8に図示しないコネクタを介して接続されている。
【0021】
前記制御手段8には、走行アセンブリ1に設けた障害物センサ3,10,17、方位センサ7、入力手段38および赤外線受信機39等が接続されている。
入力手段38は、たとえば、テンキーや入力設定ボタンなどからなり、種々の設定値などの入力を受け付けるものである。
赤外線受信機39は、本作業ロボットに対して別途設けられたリモコン(遠隔操縦装置)29からの赤外線信号を受信し、制御手段8に送信する。リモコン29から赤外線受信機39には種々の命令や設定値の他に、後述するユーターン命令が出力される。
【0022】
制御手段8:
前記制御手段8は、CPU30およびメモリ34を備えている。CPU30は、第1距離計測手段(走行距離計測手段)31、第2距離計測手段(走行距離計測手段)32、走行制御手段33、補正値算出手段37および補正手段50を備えている。
前記CPU30は、該CPU30に接続された各機器からの各情報に対応して、メモリ34に格納されているプログラムや作業指令情報に従って、各機器の駆動制御を行う。
【0023】
ここで、図1Aに示す駆動輪6a,6bの駆動を行う駆動モータ5a,5bには、エンコーダが設けられている。該エンコーダのパルス数の積算値と、駆動輪6a,6bの外径とに基づき、本作業ロボットが実際に走行した(直線)距離を算出することができる。
図3の第1距離計測手段31は、かかる演算により算出された走行距離、すなわち、実際に走行した第1方向X1,Y1(図4,図5)の往路の第1距離を測定する。
第2距離計測手段32は、前記演算により算出された第2方向X2,Y2(図4,図5)の復路の第2距離を測定する。
【0024】
走行制御手段33は、走行アセンブリ1の駆動モータ5a,5b(図1A)の制御を行う。
補正値算出手段37は、前記第1距離と第2距離との比率に基づいて、補正値を算出する。算出された補正値は、メモリ34に記憶される。
補正手段50は、当該補正値に基づいて走行中に逐次計測される現在の走行距離を微小時間ごとに逐次補正する。
【0025】
メモリ34には、往路距離記憶手段35および復路距離記憶手段36が設けられている。
往路距離記憶手段35には、本作業ロボットが前記往路を所定距離直進した後、第1距離計測手段31で計測された前記第1距離が記憶される。
復路距離記憶手段36には、本作業ロボットが前記復路を所定距離直進した後、第2距離計測手段32で計測された前記第2距離が記憶される。
【0026】
前記CPU30は、前記第1および第2距離の測定を行うと共に当該両距離に基づいて補正値の算出を行う教示モードと、該補正値に基づいて本作業ロボットを走行させてゴミの吸引等の作業を行わせる作業モードとを備えている。なお、前記教示モードにおいても、作業アセンブリ2に作業を行わせてもよい。
【0027】
清掃動作の説明:
本作業ロボットは、図4および図5に示すように、種々の走行動作を行うことができるが、まず、図4(a)〜(d)に示すジグザグ走行パターンについて説明する。
【0028】
ジグザグ走行パターン;
前記ジグザグ走行パターンを行う場合には、図4(a)に示すように、走行アセンブリ1は、縦の第1方向(往路)Y1に直進した後、90°ターンし、横方向X1に若干直進し、再度90°ターンして、縦の第2方向(復路)Y2に直進する。この縦方向の直進、ターン、横方向X1の直進を繰り返して、ジグザグ走行し、方形の領域を隙間なく作業する。
【0029】
すなわち、前記走行制御手段33は、所定の方向に直進走行する制御と、前記所定の方向と180°異なる方向に走行する制御と、前記往路Y1・復路Y2に略直交する方向に移動させる制御とを行い、複数の往路直進制御と復路直進制御と、横移動制御とを組合せて、作業領域を隈なく走行するべく走行制御を行う。
【0030】
従来の走行動作;
従来より、自走式作業ロボットにおける走行距離の測定は、前述のように、車輪もしくは車輪を駆動するモーターに取り付けられたエンコーダーのパルス数を積算することにより行なわれている。
【0031】
この場合、作業対象である床が、絨毯である場合には、絨毯の織り目の影響により、走行方向によって車輪の回転数と実際に進む距離との関係が異なり、走行距離に差が生じてしまうことが知られている。また、床が絨毯でなくとも、傾斜を持っている場合には、わずかなスリップの積み重ねによって、やはり、走行方向によって、走行距離に差が生じてしまう。また、芝刈り用ロボットにおいても、芝目の影響や、地面の傾斜によって、走行方向により走行距離に差が生じてしまう。
そして、このことが原因となり、図4(b)に示すごとく、自走式作業ロボットが作業領域の外に出てしまったり、作業残りが発生してしまうという問題があった。
【0032】
この問題を解決するために、従来は、前述の教示モードにおいて、ジグザグ走行の、1回目の往路の走行において、走行開始から、前方の障害物(目標として一時的に設置した衝立なども含む)を検知して停止するか、もしくはリモコン操作によるUターン命令を受信するまでの距離計測値を、往路Y1の目標走行距離として教示・記憶させる。
同様に、1回目の復路の走行において、走行開始から、前方の障害物を検知して停止するか、もしくはリモコン操作によるUターン命令を受信するまでの距離計測値を、復路Y2の目標走行距離として教示・記憶させる。
この教示記憶後、往路を走行中は、往路Y1の目標走行距離に基づいて走行停止制御を行う。一方、復路を走行中は、復路Y2の目標走行距離に基づいて走行停止制御を行なう。従来の作業ロボットでは、このような方法で走行方向による走行距離に誤差が生じないようにしている。
【0033】
しかし、上記従来方式では、図4(c)に示すように、作業領域内に障害物Hがあり、往路Y1の目標走行距離に到達する前に方向転換した場合、ロボットが復路Y2の目標走行距離を進み、作業領域の外に出てしまう。そのため、作業領域内に障害物Hがある場合、図4(d)に示すように、作業領域から外に出ないように走行制御を行なうためには、直前の往路Y1の走行距離に相当する距離だけ復路Y2を進ませる必要がある。
従来では、このような場合には、走行方向による走行距離の誤差を無くすために、走行行程毎に、複数の往路目標走行距離と復路目標走行距離とをロボットに教示・記憶させていた。
【0034】
一方、図4(e)に示すように、作業領域の外周から中央に向かって、周回走行を行ないながら、渦巻状の走行経路で作業領域を走行する場合がある。前述の従来の走行方法には、かかる渦巻き状走行について一切考慮されていない。そのため、図4(f)に示すごとく、作業ロボットが作業領域からはみ出したり、作業残りが生じたり、隣のレーンとの間に隙間が生じたり、隣のレーンとの重複が大きくなりすぎるという問題がある。
【0035】
更に、図5(a)に示すごとく、従来より、作業領域の境界外周を1度走行させて、その軌跡を記憶させ、作業領域の形状を教示する提案がされているが、その場合も、走行方向により移動距離計測値に誤差があると、図5(b)に示すごとく、軌跡に誤差が生じるため、正確な形状の教示が行なえなくなるという問題があった。
【0036】
本作業ロボットの動作;
以下、本作業ロボットの走行動作について説明する。
【0037】
ジグザグ走行の場合;
まず、本作業ロボットが、図4(a)に示すようなジグザグ走行を行う場合について説明する。
本作業ロボットは、ジグザグ走行の、1回目の往路Y1の走行において、走行開始から前方の障害物(目標として一時的に設置した衝立なども含む)を検知して停止するか、もしくはリモコン操作によるUターン命令を受信するまでの距離の計測値と、1回目の復路Y2の走行において、復路Y2の走行開始から前方の障害物を検知して停止するか、もしくはリモコン操作によるUターン命令を受信するまでの距離の計測値との比率を演算し記憶することにより、その比率に基づいて、走行距離計測値の補正を行なう。
【0038】
例えば、1回目の往路の走行距離計測値を第1距離L1、1回目の復路の走行距離計測値を第2距離L2とした場合に、下記の式(1)で計算されるL1に対するL2の比率Mを記憶する。
M=L2/L1・・・・(1)
【0039】
この場合、M1を整数値として記憶するために、1000倍して、小数点以下を切り捨てた値として記憶しても良いし、記憶容量を少なくするために、式(2)
ΔM=L2/L1 − 1 ・・・・(2)
によって算出される、L1に対するL2の増減割合ΔMとして記憶しても良いが、本実施例では、式(1)で計算されるM1を記憶する場合について説明する。
【0040】
図4(a)に示すように、長方形の作業領域をジグザグ走行する場合、走行方向によって、同一距離を走行した場合の走行距離計測値に違いがあると、図4(b)に示すように、ロボットが計測する走行距離軌跡は実際の走行軌跡と異なってくる。
【0041】
図4(b)の例として、本作業ロボットを教示モードで走行させた結果として、往路Y1での走行距離計測値に対して、復路Y2の走行距離計測値が、たとえば、5%大きく計測される場合について例示すれば、補正方法は、下記のような方法が考えられる。
【0042】
本作業ロボットでは、目標走行距離を補正するのではなく、走行距離計測値を逐次補正する。つまり、復路Y2を走行中は、走行距離演算(車輪の回転数から現在の走行距離計測値を演算する)に於いて、演算結果を補正値に基づき5%小さくする補正演算を行なった上で、往路Y2の走行距離計測値(第2距離)とする。
【0043】
なお、復路走行距離計測値を5%小さく補正する代わりに、往路走行距離計測値を5%大きく補正しても良いし、また、復路走行距離計測値を2.5%小さくし、往路走行距離計測値を2.5%大きく補正すれば、最も真の距離値に近い補正となる。
【0044】
このようにすれば、リアルタイムに位置情報も補正されるので、往路で検出した障害物などにも正確な対応が可能となる。なお、かかる場合には、計算が頻繁に行なわれるため、CPUの負担は大きくなる。
【0045】
前述の実施例は、処理時間が多く必要であるが、最も汎用性があり、正確な作業が可能となる。かかる走行動作について、図6および図7に示すフローチャートを用いて、更に詳しく説明する。
【0046】
各ステップ#における動作は以下のようになる。
#1:往路走行距離計測値(第1距離)L1、復路走行距離計測値(第2距離)L2、走行距離補正値MおよびフラグFを0クリアーする。また、往路走行距離積算値S1と復路走行距離積算値S2を0クリアーする。
#2:走行距離計測値Lを0クリアーする。
#3:往路Y1の直進を開始する。
【0047】
#4:走行車輪駆動モーターの回転数に比例した数のパルスを出力するパルスエンコーダーのパルス数をカウントするパルスカウンターの、#4から#8のループを経過する間の増分を計算し、dLに代入する。
【0048】
#5:走行距離計測値LにdLを加算することにより、Lの値を更新する。また、往路走行距離積算値S1にdLを加算してS1の値を更新する。S1は、後述する復路走行距離積算値S2とともに、作業終了後に補正値を算出もしくは修正する場合の工程に用いる。
【0049】
#6:フラグFが、往路走行距離計測値L1が未設定であることを示す0であるかどうかを判別し、0であれば、往路走行距離計測値を設定すべく、#7へ進む。一方、フラグFが0でなければ、L1が設定済みであるので、#22へ進む。
【0050】
#7:前方に障害物が近接しているかどうかを判別し、近接していれば#9へ進んでL1の設定を行なう。一方、近接していなければ#8へ進んで、リモコンから、ターン指令を受信したかどうかを判別する。
#8:リモコンから、ターン指令を受信したかどうかを判別し、受信していれば、#9へ進んで、L1の設定を行なう。一方、受信していなければ、前記#4にもどる。
【0051】
#9:L1に現在の走行距離計測値Lを代入し、往路走行距離計測値として往路距離記憶手段35に記憶する。そして、フラグFに、L1設定済みを示す「1」を代入する。#2〜#9は第1距離計測手段31の演算動作を示している。
なお、ここで設定されたL1は、作業領域の縦距離として使用されるとともに、後述する#19での補正値Mの算出にも使用される。
【0052】
#10:ユーターン(90°ターンを行い、ロボットの作業幅よりも若干短い距離だけ横方向に走行し、更に90°ターンして復路方向へ向きを変えること)を行い、ロボットの作業幅よりも若干短い距離だけ横方向へ移動し、往路と180度反対方向へ向きを変える。
#11:復路の直進を開始する前に、走行距離計測値Lを0クリアーする。
【0053】
#12:復路Y2の直進を開始する。
#13:走行車輪駆動モーターの回転数に比例した数のパルスを出力するパルスエンコーダーのパルス数をカウントするパルスカウンターの、#13から#17のループ、もしくは、#13から#28のループを経過する間の増分を計算し、dLに代入する。
【0054】
#14:フラグFが、往路走行距離計測値L1が設定済みで補正値Mが未設定であることを示す1であるか、往路走行距離計測値L1及び補正値Mが設定済みであることを示す2であるかを判別し、1であれば、補正値を設定するため#15へ進み、2であれば、補正演算を行なうため#26へ進む。
【0055】
#15:走行距離計測値LにdLを加算することにより、Lの値を更新する。また、復路走行距離積算値S2にdLを加算してS2の値を更新する。S2は、前述の往路走行距離積算値S1とともに、作業終了後に補正値を算出もしくは修正する場合の工程に用いる。
#16:前方に障害物が近接しているかどうかを判別し、近接していれば#18へ進んでL1の設定を行なう。一方、近接していなければ#17へ進んで、リモコンから、ターン指令を受信したかどうかを判別する。
#17:リモコンから、ターン指令を受信したかどうかを判別し、受信していれば、#18へ進んで、L1の設定を行なう。一方、受信していなければ#13に戻る。
【0056】
#18:L2に現在の走行距離計測値Lを代入し、復路走行距離計測値として復路距離記憶手段36に記憶する。そして、フラグFに、L2及び補正値M(次の#19で設定)が設定済みを示す「2」を代入する。
#19:補正値Mに、往路距離計測値L1と復路距離計測値L2の比を代入し記憶する。#11〜#19は第2距離計測手段32の演算動作を示している。
【0057】
#20:作業領域を全て作業したかどうかを判別し全て作業したと判別されれば、#21Aに進んで終了する。一方、#20における判別の結果、全ての作業が終了していない場合は#21に進む。
#21:作業領域全ての作業が完了していなければ、90°ターンを行い、ロボットの作業幅よりも若干短い距離だけ横方向へ移動し、更に90°ターンして往路方向へ向きを変えて(ユーターン)、#2(図6)に戻る。
【0058】
図6の#22〜#25は、#6で、フラグFが0でないと判別された場合の往路走行の処理であり、設定済みの縦距離L1に達するまで、往路を直進する。
#22:リモコンから設定解除指令を受信しているかどうかを判別して、受信されていれば、#23に進みフラグFを0に戻して、L1、及びMの再設定を可能にする。一方、受信されていなければ、#24に進む。
#24:前方に障害物があるか否かの判別を行い、障害物があれば#10に進む。一方、障害物がなければ#25に進む。
#25:既に設定されている作業領域縦距離L1に走行距離Lが到達したかどうかを判別する。LがL1以上の場合には#10に進む。一方、LがL1よりも小さい場合には#4に戻る。
【0059】
#26〜#28は、補正値Mが設定済みの場合の復路走行の処理である。
#26:走行エンコーダーパルスカウンター増分dLに、L1とL2の比である補正値Mを乗じて補正を行なった上で、走行距離計測値Lに加算し、Lの値を更新する。この処理によって、往路と復路で同一距離を走行した場合の走行距離計測値がほぼ等しくなるように補正される。
#27:前方障害物の近接判別を行う。
#28:既に設定されている作業領域縦距離L1に走行距離Lが到達したかどうかを判別する。LがL1以上の場合には#20に進む。一方、LがL1よりも小さい場合には#13に戻る。
【0060】
上記の工程において、ターンの実行は、リモコン29からのターン指令か、障害物の検出によって行なわれる。リモコン29による操作は、指令を出すタイミングのずれによる誤差が生じるので、障害物検知による方法のほうがより正確である。障害物が無い場合には、衝立などを置いて、目標障害物とすることができる。
一方、リモコンによる方法は、正確さは劣るが、適当な障害物が存在しない場合に衝立などを用意する必要が無い。したがって、本作業ロボットの走行動作に要求される正確さ等に応じて、両者を使い分けることができる。
【0061】
他の補正方法;
なお、他の補正方法としては、以下の補正方法を採用することができる。以下の例では、往路での走行距離測定値に対して、復路の走行距離測定値が、たとえば5%大きく計測される場合の例について示す。
【0062】
走行方向と走行距離演算値をもとに往路直進方向をY軸とした位置座標(X,Y)を算出するようにし、座標データーを基に、目標走行距離を算出する。かかる場合には、往路走行終了時から、復路走行開始時までの間に、現在のY座標値を5%大きくするように補正してもよい。
【0063】
このようにすれば、計算に要する時間を短くすることができる。なお、座標位置が実際の座標位置と異なるため、往路走行中に発見した障害物への対応処理などに不具合が生じる可能性がある。
【0064】
また、復路の直進を開始する時の、目標走行距離を5%大きく補正して設定してもよい。このようにすれば、計算に要する時間を短くすることができる。なお、座標位置が補正されない(位置情報に誤差が生じる)ため、往路走行中に発見した障害物への対応処理などに不具合が生じる可能性がある。
【0065】
実施例2:
作業終了後に補正値を設定する場合;
図8および図9は実施例2を示す。
ここで、走行方向による走行距離誤差が比較的小さい場合には、作業終了後に補正値の設定を行なうのが簡単で便利な場合がある。本実施例2では、作業中には補正値の設定を行なわずに、作業終了後に補正値Mの設定を行うようにしている。図8に示すように、本実施例2の作業ロボットでは、走行アセンブリ1に偏差入力手段47が設けられていると共に、CPU30に積算手段48が設けられている。
【0066】
偏差入力手段47は、作業終了時の作業ロボットの実際の位置と目標終了位置との位置ずれ量の偏差を入力する入力手段であり、たとえば、入力手段38などのテンキーや設定ボタンを兼用して用いてもよい。
積算手段48は、各方向それぞれの走行距離の積算値を演算するものである。
その他の構成は、実施例1と同様であり、その詳しい説明を省略する。
【0067】
本作業ロボットの作業終了時に、作業者が位置ズレの偏差を偏差入力手段47を用いて入力すると、CPU30は、当該偏差と、積算手段48からの積算値とに基づいて、前記補正値を算出する。なお、補正値を算出する代わりに、偏差と積算値とに基づいて前回の補正値を修正するようにしてもよい。
【0068】
図8は、作業終了後に補正値を設定する場合のフローチャートである。
#29:作業終了地点の、目標位置と実際の終了位置との縦方向のずれの距離値Dを、操作パネルから入力する。
#30:作業時に算出した往路走行距離積算値S1と復路走行距離積算値S2と、ずれの距離値Dに基づいて、補正値Mを算出する。
【0069】
なお、図6および図7を用いて、前述の実施例1で説明した補正値設定方法により補正値Mを設定した後、本実施例2の方法を用いて補正値Mを修正するようにしてもよい。
【0070】
実施例3:
渦巻き状に走行する場合;
図10〜図12は実施例3を示す。
ところで、前述のように、本作業ロボットがジグザグに走行する場合には、左右方向X1,X2の走行距離の誤差は、比較的問題にならなかったが、本作業ロボットが、図4(e)に示すように渦巻き状に走行する場合には、左右方向X1,X2の走行距離の誤差も考慮する必要がある。以下の説明では、縦方向Yの走行距離補正だけでなく、横方向Xの走行距離補正も行なう場合の補正値設定工程例を示す。
【0071】
図10に示すように、CPU30には、成分算出手段40、第1〜第4積算手段41〜44、周回終了検知手段45および補正値算出手段46が設けられている。
成分算出手段40は、方位センサ7の出力と第1および第2距離計測手段31,32からの走行距離計測値から、作業領域の外周境界線に沿って走行している時の移動距離の往復方向の成分(X軸方向成分)と左右方向の成分(Y軸方向成分)とを算出する。すなわち、図5(a)に示すように、成分算出手段40は、本作業ロボットが斜めに走行する場合には、二点鎖線で示すように、かかる斜め方向の走行部分をX軸およびY軸成分として算出する。
【0072】
第1積算手段41は、本作業ロボットの移動距離のY軸方向成分の正の値(往路)Y1のみを積算する。
第2積算手段42は、本作業ロボットの移動距離のY軸方向成分の負の値(復路)Y2のみを積算する。
第3積算手段43は、本作業ロボットの移動距離のX軸方向成分の正の値(往路)X1のみを積算する。
第4積算手段44は、本作業ロボットの移動距離のX軸方向成分の負の値(復路)X2のみを積算する。
【0073】
周回終了検知手段45は、本作業ロボットが走行開始地点に戻ったことを検知するもので、たとえば、本作業ロボットが所定の作業領域の外周縁を1周したことを検知する手段である。なお、周回終了検知手段45は、たとえば、リモコン29からの命令を受信した赤外線受信機39からの出力に基づいて、外周境界線を1周した(走行開始地点に戻った)と判断することとしてもよい。また、方位センサ7の出力と走行距離計測値から、XY座標値を算出する手段を設け、周回終了検知手段45は、周回開始地点と、現在地点とで、XY座標値及び走行方向の情報を比較することにより、外周境界線を1周したと判断するようにしてもよい。
なお、本実施例においての周回は、閉じたルートに従って走行するものであればよく、必ずしも外周に沿って走行する必要はない。
【0074】
補正値算出手段46は、X軸方向の移動距離に関する第1補正値Mxと、Y軸方向の移動距離に関する第2補正値Myとを算出する手段である。第1補正値Mxは、第3および第4積算手段43,44によって算出された値である。第2補正値Myは、第1および第2積算手段41,42によって算出された値である。
その他の構成は、実施例1と同様であり、その詳しい説明を省略する。
【0075】
本作業ロボットは、前記補正値に基づいて現在または次回以後の実走行距離を制御する。
すなわち、図5(c)に示すように、教示モードにおいて、本作業ロボットが長方形の作業領域の四辺を走行することで、往路Y1、復路Y2、右方向(往路)X1、左方向(復路)X2の走行を行い、それぞれの走行距離計測値L1,L2,L3,L4を得る。下式(3)(4)に従って、往復方向Yの補正値M1、左右方向Xの補正値M2を算出する。
M1=L2/L1・・・・(3)
M2=L3/L4・・・・(4)
【0076】
一方、図5(d)は、まず往路Y1と復路Y2を走行した後、90度回転して、右方向X1、左方向X2の走行を行なう例を示す。
図5(c)の長方形に走行する教示方法、ないし、図5(d)のL字形に走行する教示方法によって、走行距離が入力され、補正値M1,M2の算出がなされる。
【0077】
その後、前述のジグザグ走行の例と同様に、作業終了地点の、目標位置と実際の終了位置との縦方向のずれの距離値D1と、横方向のずれの距離値D2を、作業者が入力手段38から入力する。CPU30は、往路走行距離積算値S1、復路走行距離積算値S2、右方向走行距離積算値S3、左方向走行距離積算値S4とD1、D2に基づいて、下記の式で補正値を設定・修正することが可能である。
M1=S1/(S2−D1)・・・・(5)
M2=S3/(S4−D2)・・・・(6)
【0078】
ここで、作業領域の形状は、長方形とは限らず、図5(a)に示すような、凹凸や斜めの辺のある境界となる場合がある。かかる場合の作業領域の設定方法としては、壁で囲まれた作業領域を、壁沿いに走行しながら形状が設定されてもよいし、リモコンの操作によって、直進、方向転換、カーブ走行などの制御が行なわれて、作業領域の形状が定められてもよい。
また、補正値の設定工程を、作業領域形状の教示と同時に行うことにより、作業の効率化が図れるが、もちろん、別々に行うことも可能である。例えば、図5(a)の作業領域の内側で、長方形の辺上を走行させて補正値の設定を行うことも可能である。
【0079】
本実施例では、このような場合においても、走行方向による走行距離誤差に基づく、位置誤差を補正することができる。以下に、図11のフローチャートを用いて、縦方向(Y軸方向)および横方向(X軸方向)の補正値の算出方法について説明する。
【0080】
#101:ロボットの走行角度θ、X軸プラス方向(紙面右方向)の移動成分積算値Lxp、X軸マイナス方向(紙面左方向)の移動成分積算値Lxm、Y軸プラス方向(紙面上方向)の移動成分積算値Lyp、X軸マイナス方向(紙面下方向)の移動成分積算値Lymを0クリアーする。
【0081】
#102:壁沿い走行を開始する。
#103:ジャイロセンサーの出力から現在の走行方位θを算出する。
#104:走行エンコーダカウンターの増分dLを算出する。
#105:X軸方向への移動量(dLのX軸成分)dLxを算出する。
【0082】
#106〜108:dLxが正の値であれば#107に進みLxpに加算し(第1積算手段41)、一方、dLxが負の値であれば#108に進みLxmに加算する。
#109:Y軸方向への移動量(dLのY軸成分)dLyを算出する(第2積算手段42)。
【0083】
#110〜112:dLyが正の値であれば#111に進みLypに加算し(第3積算手段43)、一方、dLyが負の値であれば#112に進みLymに加算する(第4積算手段44)。
#113:dLx、dLyを基に、XY座標値を更新する。
#114〜115:周回走行が終了し、開始地点に戻ったかどうかを判定し、終了であれば#115へ進んで走行を停止し、終了でなければ#103へ戻って走行を続ける。
#116:X軸方向の第1補正値Mxを算出する。
#117:Y軸方向の第2補正値Myを算出する。
【0084】
制御手段8は、算出された第1および第2補正値Mx,Myに基づいて、現在または次回以降の実走行距離の制御を行う。以下、図12のフローチャートを用いて、当該補正値Mx,Myを用いた実走行距離の制御の方法の一例について説明する。
【0085】
#120:方向センサー(ジャイロ)の出力を基に、現在の走行方向角度θを算出する。
#121:走行エンコーダカウンターの増分dLを算出する。
#122:dLとθを基に、X軸方向の移動量dXを計算する。
#123:dXが負であれば#124に進みdXにX軸方向の移動距離に関する第1補正値Mxを乗じた値をdXに代入する。一方、dXが正であれば#125に進む。
【0086】
#125:X座標にdXを加算して、X座標の値を更新する。
#126:dLとθを基に、Y軸方向の移動量dYを計算する。
#127:dYが負であれば、#128に進みdYにY軸方向の移動距離に関する第2補正値Myを乗じた値をdYに代入する。一方、dYが正であれば、#129に進む。
【0087】
#129:Y座標にdYを加算して、Y座標の値を更新する。
#130:目標走行距離に到達するか、障害物を検知するかで走行が停止したかどうかを判別し、停止していなければ、#120へ戻り、停止していれば終了する。
【0088】
なお、補正値算出手段46は、以下に示すように、補正値修正手段を有していてもよい。すなわち、補正値算出手段46は、作業領域の縦方向(Y軸方向)の往路Y1と復路Y2との距離補正値を演算し、作業領域の横方向(X軸方向)の往路X1と復路X2との距離補正を演算する。補正値修正手段は、縦方向の距離補正値を記憶する縦方向補正値記憶手段と、横方向の距離補正値を記憶する横方向補正値記憶手段とを有し、縦および横方向補正値記憶手段に記憶されている補正値を修正する。
【0089】
また、図3(b)に示すように、メモリ34に、本作業ロボットの作業エリア名ごとに、当該作業領域の縦距離および横距離と、当該作業エリアに対応する補正値とが互いに関連付けられて記憶される補正値記憶手段を設けてもよい。このようにすれば、作業者がこれから作業を行う領域に応じたエリア名を選択するだけで、教示走行を行うことなく、補正値の設定を行うことができる。
【0090】
さらに、前述の各実施例では、床面に対する作業として、床面のゴミを吸引して集塵する作業を例示して説明したが、床面に対する作業としては、床面に液剤を塗布する作業や、液剤を塗布した床面に赤外線や紫外線を照射する作業、床面の清拭作業など種々の作業がある。かかる場合には、作業アセンブリ22や上面ユニット21を走行アセンブリ1から取り外し、作業目的に合った作業アセンブリを走行アセンブリ1に取り付けることにより、当該作業目的に合った走行パターンが行われるようにしてもよい。
また、床面作業に限らず、搬送作業や警備作業を行う走行ロボットにおいても、カーペットなどの床を走行する場合に、正確な位置を計算することが可能になり、移動を容易にする。
【産業上の利用可能性】
【0091】
本発明は、床面に対する作業の他、搬送作業や警備作業を行う自走式作業ロボットに適用することができる。
【図面の簡単な説明】
【0092】
【図1】図1Aは本発明の実施例1にかかる自走式作業ロボットの走行アセンブリを示す平面断面図、図1Bは同走行アセンブリの側面断面図である。
【図2】同自走式作業ロボットの概略斜視図である。
【図3】同自走式作業ロボットの概略構成図である。
【図4】自走式作業ロボットの走行動作を示す概略平面図である。
【図5】自走式作業ロボットの走行動作を示す概略平面図である。
【図6】自走式作業ロボットの走行動作を示すフローチャートである。
【図7】自走式作業ロボットの走行動作を示すフローチャートである。
【図8】本発明の実施例2にかかる自走式作業ロボットの概略構成図である。
【図9】同補正値の設定方法を示すフローチャートである。
【図10】本発明の実施例3にかかる自走式作業ロボットの概略構成図である。
【図11】同自走式作業ロボットの走行動作を示すフローチャートである。
【図12】同自走式作業ロボットの走行動作を示すフローチャートである。
【符号の説明】
【0093】
1:走行アセンブリ(本体)
2:作業アセンブリ(作業手段) 3:超音波式センサ(障害物センサ)
6a,6b:駆動輪
7:方位センサ
10:バンパーセンサ(障害物センサ)
17:光学式センサ(障害物センサ)
31:第1距離計測手段(走行距離計測手段)
32:第2距離計測手段(走行距離計測手段)
33:走行制御手段
35:往路距離記憶手段
36:復路距離記憶手段
40:成分算出手段
41:第1積算手段
42:第2積算手段
43:第3積算手段
44:第4積算手段
45:周回終了検知手段
46:補正値算出手段
47:偏差入力手段
48:積算手段
50:補正手段
L1:第1距離
L2:第2距離
M:補正値
Mx:第1補正値
My:第2補正値
【技術分野】
【0001】
本発明は、床面に対して作業を行う自走式作業ロボットに関するものである。
【背景技術】
【0002】
従来より、車輪の回転数計測値から求める走行距離情報と、ジャイロセンサー等の方位センサー測定値から求める走行方向情報とから自己位置を認識しつつ、作業領域内を隈なく走行して作業を行なう、清掃ロボット、芝刈りロボット、ワックスがけロボットなどの自走式作業ロボットが知られている。かかる作業ロボットにおいては、カーペットの織り目や、芝の向き、作業面の傾斜等の、走行面の特性に起因して、走行方向によって、車輪の回転数計測値と実際の走行距離との関係に違いが生じ、自己位置の認識に誤差が生じる。
【0003】
その結果、図4(a)に示すように、例えばジグザグ走行で作業を行なう場合には、図4(b)に示すように、往路Y1の走行距離と復路Y2の走行距離に誤差が生じ、複数存在する往路Y1の開始地点の縦位置が徐々にずれてしまい、ロボットが破線で示す作業領域からはみ出たり、作業残りが生じたりするという問題があった。
【0004】
また、たとえば、図5(a),(c)に示すように、作業領域外周を実際に走行させて、その走行軌跡を記憶することで、作業領域の形状を教示設定する場合に於いて、1 周して実際には元の位置に戻っていても、計測した位置データーが一致しなかったり、正しく作業領域の形状を教示することができないなどの問題があった。
【0005】
更に、図4(e)に示すように、作業領域の外周側から周回走行を行ないつつ、渦巻状に徐々に作業領域の中央側へ向かう作業経路の場合には、縦方向の往路Y1と復路Y2、及び、横方向の右向き走行(往路)X1と左向き走行(復路)X2によって走行距離に誤差が生じる。そのため、図4(f)に示すように、隣の周回行程との間に作業残りが発生したり、重複して作業を行う領域が大きくなりすぎるという問題があった。
【0006】
前述のジグザグ走行における上記問題の対策としては、往路Y1の目標走行距離と復路Y2の目標走行距離を別々に記憶し、複数ある往路走行行程では前記往路目標走行距離に基づいて走行を行い、複数ある復路走行行程では前記復路目標走行距離に基づいて走行を行うことによって、往路Y1と復路Y2の走行距離の誤差を無くす工夫が提案されている(特許文献1、2)。
【特許文献1】特許第3528200号(請求項3)
【特許文献2】特開平1−173110号(図1)
【発明の開示】
【0007】
しかし、これらの先行技術では、目標往路走行距離と目標復路走行距離を絶対値で記憶している。そのため、図4(c)に示すように、作業領域の境界となる壁面に凹凸(障害物)Hがある場合や作業領域内に障害物が存在する場合、目標往路走行距離と目標復路走行距離がそれぞれ1種類なので、例えば往路において往路目標走行距離に到達する前にUターンして復路走行に移行した場合には、往路開始位置と復路終了位置とが大きく位置がずれてしまう。そのため、このような作業領域の境界に凹凸が有る場合や、作業領域内部に障害物Hがある場合には、走行行程毎に、複数の往路目標走行距離、および復路目標走行距離を記憶しておく必要があり、教示作業が非常に複雑になるという問題があった。
したがって、本発明の目的は、簡単な教示作業で、走行方向による走行距離誤差の補正を行い、作業領域内を、正確に隈なく作業することのできる自走式作業ロボットを提供することである。
【0008】
本第1発明の自走式作業ロボットは、駆動輪を回転させて本体の移動と方向操舵を制御する走行制御手段と、前記本体の走行方向にある障害物の有無を検出する障害物センサと、前記本体の走行方向を検知する方位センサと、実際に走行した往路の第1距離を測定する第1距離計測手段と、実際に走行した復路の第2距離を測定する第2距離計測手段とを備え、前記測定した往路の第1距離と前記測定した復路の第2距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする。
一方、本第2発明は自走する作業ロボットであって、直進、旋回などの走行を制御する、走行制御手段と、走行距離計測値を計測する距離計測手段と、
走行方向を検出する方位センサと、方位センサの出力と走行距離計測値から、走行している時の移動距離のX軸方向成分とY軸方向成分を算出する成分算出手段と、前記移動距離のX軸方向成分の正の値のみを積算する第1の積算手段と、前記移動距離のX軸方向成分の負の値のみを積算する第2の積算手段と、前記移動距離のY軸方向成分の正の値のみを積算する第3の積算手段と、前記移動距離のY軸方向成分の負の値のみを積算する第4の積算手段と、ロボットが走行開始地点に戻ったことを検知する周回終了検知手段と、前記第1および第2の積算手段の各積算値に基づいて算出されるX軸方向の移動距離に関する第1補正値と、前記第3および第4の積算手段の各積算値に基づいて算出されるY軸方向の移動距離に関する第2補正値と、を算出する補正値算出手段とを備え、前記補正値に基づいて現在または次回以後の実走行距離を制御することを特徴とする。
【0009】
本発明によれば、第1距離と第2距離の比率に関する補正値に基づき、現在または次回以降の走行距離を制御することにより、簡単な教示操作で、正確に作業領域内を隈なく走行し、作業させることができる。
すなわち、本発明に於いては、複数の走行方向における移動距離を計測し、その計測値の間の関係に基づいて、それ以降の移動距離計測値を補正する手段を有している。そのため、作業領域が単純な矩形形状ではない場合や、作業領域内に障害物が存在する場合でも、絨毯の織り目の影響や、床の傾斜などの影響を受けることなく、正確な走行を行なうことができる。
【0010】
本発明においては、往路および復路において計測された距離の比率に関係する補正値に基づいて、現在走行中に逐次計測される現在の走行距離をリアルタイムに逐次補正するのが好ましい。
このようにリアルタイムに補正することにより、往路において障害物を検出した場合にも実際に走行した距離から現在位置の情報を得ることができるので、正確な走行を行うことができる。
【発明を実施するための最良の形態】
【0011】
実施例1:
以下、本発明の実施例を図面にしたがって説明する。
図1〜図7は実施例1を示す。
図1A,Bに示すように、本自走式作業ロボットは、床上を自走するための駆動輪6a,6bを有する走行アセンブリ(本体)1と、床面に対する作業を行う作業アセンブリ(作業手段)2(図2)とを備えている。本作業ロボットは、作業アセンブリ2を交換することにより、床面に対して種々の作業を行うことが可能であるが、以下の説明では、床面のゴミを吸引して集塵する清掃用の作業アセンブリ2を用いる場合について例示して説明する。
【0012】
走行アセンブリ1:
図1A,Bに示すように、走行アセンブリ1は、該走行アセンブリ1の走行を行うための1対の駆動輪6a,6bと、走行アセンブリ1のバランスをとるための補助輪9a,9bとを備えている。前記駆動輪6a,6bは、それぞれ、駆動モータ5a,5bによって駆動される。駆動モータ5a,5bは正逆回転可能で、たとえば、マイコンからなる制御手段8によって制御される。
【0013】
直進走行時には、前記2つの駆動モータ5a,5bが同方向に回転することで、走行アセンブリ1は前進または後退することができる。旋回動作を行う際には、前記2つの駆動モータ5a,5bがそれぞれ逆方向に回転することにより旋回することができる。前記2つの駆動モータ5a,5bの回転の比率を制御することで、走行アセンブリ1はカーブ走行を行うこともできる。
【0014】
障害物センサ3,10,17;
図1Aに示すように、前記走行アセンブリ1の前部には、複数の超音波式センサ3と、複数の光学式センサ17とが設けられている。これら複数のセンサのうち、超音波センサ3は、走行アセンブリ1の左右にある障害物までの距離を測定する。一方、残りの超音波式センサ3および光学式センサ17は、走行アセンブリ1の前方にある障害物までの距離を測定する。
走行アセンブリ1の前部外縁部には、障害物との接触を検知するためのバンパーセンサ10が設けられている。
【0015】
したがって、超音波式センサ3、光学式センサ17およびバンパーセンサ10は、本作業ロボット本体の走行方向(図1Aの矢印方向)、および左右方向にある障害物の有無を検出する障害物センサを構成している。
【0016】
方位センサ7;
走行アセンブリ1の回転中心Oの近傍には、該回転中心Oのまわりの走行アセンブリ1の回転角度(方位)を測定することにより、本作業ロボット本体の走行方向を検知する方位センサ(ジャイロセンサ)7が設けられている。
【0017】
走行アセンブリ1の後部には、作業アセンブリ22を取り付けるための取付板11が設けられている。図1Aに示すように、前記取付板11は、スライドレール14に取り付けられ、かつ、タイミングベルト及びプーリーを介してスライド駆動モーター15に接続されている。前記取付板11は、前記スライド駆動モーター15により前記スライドレール14に沿って左右方向にスライド移動される。
前記取付板11には、図2に示す作業アセンブリ2の前部が取り付けられ、必要に応じて、走行アセンブリ1を作業アセンブリ2に対して左右の水平方向に相対移動することが可能である。
【0018】
作業アセンブリ2:
図2において走行アセンブリ1の上部には、吸引ユニット21が設けられている。吸引ユニット21には、ゴミ収容部(タンク)や、ブロアーモータ、フィルタなどが設けられている。吸引ユニット21と作業アセンブリ2とは、吸引ホース22を介して接続されている。作業アセンブリ2の下面には吸引口20が設けられており、本作業ロボットが走行しながら清掃作業を行うと、床のゴミが吸引口20から次々に吸い上げられて、床面の清掃が行われる。
【0019】
なお、本作業ロボットの走行アセンブリ1についてのより詳しい機器構成については、たとえば、特開2003−10088の走行装置を採用することができる。
【0020】
制御の構成:
図3(a)に示すように、作業アセンブリ2には、該作業アセンブリ2を制御するためのローカル制御部24が設けられている。ローカル制御部24には、前記ブロアーモータや、作業アセンブリ2に設けられた各種センサ等が接続されている。ローカル制御部24は、走行アセンブリ1に設けられた制御手段8に図示しないコネクタを介して接続されている。
【0021】
前記制御手段8には、走行アセンブリ1に設けた障害物センサ3,10,17、方位センサ7、入力手段38および赤外線受信機39等が接続されている。
入力手段38は、たとえば、テンキーや入力設定ボタンなどからなり、種々の設定値などの入力を受け付けるものである。
赤外線受信機39は、本作業ロボットに対して別途設けられたリモコン(遠隔操縦装置)29からの赤外線信号を受信し、制御手段8に送信する。リモコン29から赤外線受信機39には種々の命令や設定値の他に、後述するユーターン命令が出力される。
【0022】
制御手段8:
前記制御手段8は、CPU30およびメモリ34を備えている。CPU30は、第1距離計測手段(走行距離計測手段)31、第2距離計測手段(走行距離計測手段)32、走行制御手段33、補正値算出手段37および補正手段50を備えている。
前記CPU30は、該CPU30に接続された各機器からの各情報に対応して、メモリ34に格納されているプログラムや作業指令情報に従って、各機器の駆動制御を行う。
【0023】
ここで、図1Aに示す駆動輪6a,6bの駆動を行う駆動モータ5a,5bには、エンコーダが設けられている。該エンコーダのパルス数の積算値と、駆動輪6a,6bの外径とに基づき、本作業ロボットが実際に走行した(直線)距離を算出することができる。
図3の第1距離計測手段31は、かかる演算により算出された走行距離、すなわち、実際に走行した第1方向X1,Y1(図4,図5)の往路の第1距離を測定する。
第2距離計測手段32は、前記演算により算出された第2方向X2,Y2(図4,図5)の復路の第2距離を測定する。
【0024】
走行制御手段33は、走行アセンブリ1の駆動モータ5a,5b(図1A)の制御を行う。
補正値算出手段37は、前記第1距離と第2距離との比率に基づいて、補正値を算出する。算出された補正値は、メモリ34に記憶される。
補正手段50は、当該補正値に基づいて走行中に逐次計測される現在の走行距離を微小時間ごとに逐次補正する。
【0025】
メモリ34には、往路距離記憶手段35および復路距離記憶手段36が設けられている。
往路距離記憶手段35には、本作業ロボットが前記往路を所定距離直進した後、第1距離計測手段31で計測された前記第1距離が記憶される。
復路距離記憶手段36には、本作業ロボットが前記復路を所定距離直進した後、第2距離計測手段32で計測された前記第2距離が記憶される。
【0026】
前記CPU30は、前記第1および第2距離の測定を行うと共に当該両距離に基づいて補正値の算出を行う教示モードと、該補正値に基づいて本作業ロボットを走行させてゴミの吸引等の作業を行わせる作業モードとを備えている。なお、前記教示モードにおいても、作業アセンブリ2に作業を行わせてもよい。
【0027】
清掃動作の説明:
本作業ロボットは、図4および図5に示すように、種々の走行動作を行うことができるが、まず、図4(a)〜(d)に示すジグザグ走行パターンについて説明する。
【0028】
ジグザグ走行パターン;
前記ジグザグ走行パターンを行う場合には、図4(a)に示すように、走行アセンブリ1は、縦の第1方向(往路)Y1に直進した後、90°ターンし、横方向X1に若干直進し、再度90°ターンして、縦の第2方向(復路)Y2に直進する。この縦方向の直進、ターン、横方向X1の直進を繰り返して、ジグザグ走行し、方形の領域を隙間なく作業する。
【0029】
すなわち、前記走行制御手段33は、所定の方向に直進走行する制御と、前記所定の方向と180°異なる方向に走行する制御と、前記往路Y1・復路Y2に略直交する方向に移動させる制御とを行い、複数の往路直進制御と復路直進制御と、横移動制御とを組合せて、作業領域を隈なく走行するべく走行制御を行う。
【0030】
従来の走行動作;
従来より、自走式作業ロボットにおける走行距離の測定は、前述のように、車輪もしくは車輪を駆動するモーターに取り付けられたエンコーダーのパルス数を積算することにより行なわれている。
【0031】
この場合、作業対象である床が、絨毯である場合には、絨毯の織り目の影響により、走行方向によって車輪の回転数と実際に進む距離との関係が異なり、走行距離に差が生じてしまうことが知られている。また、床が絨毯でなくとも、傾斜を持っている場合には、わずかなスリップの積み重ねによって、やはり、走行方向によって、走行距離に差が生じてしまう。また、芝刈り用ロボットにおいても、芝目の影響や、地面の傾斜によって、走行方向により走行距離に差が生じてしまう。
そして、このことが原因となり、図4(b)に示すごとく、自走式作業ロボットが作業領域の外に出てしまったり、作業残りが発生してしまうという問題があった。
【0032】
この問題を解決するために、従来は、前述の教示モードにおいて、ジグザグ走行の、1回目の往路の走行において、走行開始から、前方の障害物(目標として一時的に設置した衝立なども含む)を検知して停止するか、もしくはリモコン操作によるUターン命令を受信するまでの距離計測値を、往路Y1の目標走行距離として教示・記憶させる。
同様に、1回目の復路の走行において、走行開始から、前方の障害物を検知して停止するか、もしくはリモコン操作によるUターン命令を受信するまでの距離計測値を、復路Y2の目標走行距離として教示・記憶させる。
この教示記憶後、往路を走行中は、往路Y1の目標走行距離に基づいて走行停止制御を行う。一方、復路を走行中は、復路Y2の目標走行距離に基づいて走行停止制御を行なう。従来の作業ロボットでは、このような方法で走行方向による走行距離に誤差が生じないようにしている。
【0033】
しかし、上記従来方式では、図4(c)に示すように、作業領域内に障害物Hがあり、往路Y1の目標走行距離に到達する前に方向転換した場合、ロボットが復路Y2の目標走行距離を進み、作業領域の外に出てしまう。そのため、作業領域内に障害物Hがある場合、図4(d)に示すように、作業領域から外に出ないように走行制御を行なうためには、直前の往路Y1の走行距離に相当する距離だけ復路Y2を進ませる必要がある。
従来では、このような場合には、走行方向による走行距離の誤差を無くすために、走行行程毎に、複数の往路目標走行距離と復路目標走行距離とをロボットに教示・記憶させていた。
【0034】
一方、図4(e)に示すように、作業領域の外周から中央に向かって、周回走行を行ないながら、渦巻状の走行経路で作業領域を走行する場合がある。前述の従来の走行方法には、かかる渦巻き状走行について一切考慮されていない。そのため、図4(f)に示すごとく、作業ロボットが作業領域からはみ出したり、作業残りが生じたり、隣のレーンとの間に隙間が生じたり、隣のレーンとの重複が大きくなりすぎるという問題がある。
【0035】
更に、図5(a)に示すごとく、従来より、作業領域の境界外周を1度走行させて、その軌跡を記憶させ、作業領域の形状を教示する提案がされているが、その場合も、走行方向により移動距離計測値に誤差があると、図5(b)に示すごとく、軌跡に誤差が生じるため、正確な形状の教示が行なえなくなるという問題があった。
【0036】
本作業ロボットの動作;
以下、本作業ロボットの走行動作について説明する。
【0037】
ジグザグ走行の場合;
まず、本作業ロボットが、図4(a)に示すようなジグザグ走行を行う場合について説明する。
本作業ロボットは、ジグザグ走行の、1回目の往路Y1の走行において、走行開始から前方の障害物(目標として一時的に設置した衝立なども含む)を検知して停止するか、もしくはリモコン操作によるUターン命令を受信するまでの距離の計測値と、1回目の復路Y2の走行において、復路Y2の走行開始から前方の障害物を検知して停止するか、もしくはリモコン操作によるUターン命令を受信するまでの距離の計測値との比率を演算し記憶することにより、その比率に基づいて、走行距離計測値の補正を行なう。
【0038】
例えば、1回目の往路の走行距離計測値を第1距離L1、1回目の復路の走行距離計測値を第2距離L2とした場合に、下記の式(1)で計算されるL1に対するL2の比率Mを記憶する。
M=L2/L1・・・・(1)
【0039】
この場合、M1を整数値として記憶するために、1000倍して、小数点以下を切り捨てた値として記憶しても良いし、記憶容量を少なくするために、式(2)
ΔM=L2/L1 − 1 ・・・・(2)
によって算出される、L1に対するL2の増減割合ΔMとして記憶しても良いが、本実施例では、式(1)で計算されるM1を記憶する場合について説明する。
【0040】
図4(a)に示すように、長方形の作業領域をジグザグ走行する場合、走行方向によって、同一距離を走行した場合の走行距離計測値に違いがあると、図4(b)に示すように、ロボットが計測する走行距離軌跡は実際の走行軌跡と異なってくる。
【0041】
図4(b)の例として、本作業ロボットを教示モードで走行させた結果として、往路Y1での走行距離計測値に対して、復路Y2の走行距離計測値が、たとえば、5%大きく計測される場合について例示すれば、補正方法は、下記のような方法が考えられる。
【0042】
本作業ロボットでは、目標走行距離を補正するのではなく、走行距離計測値を逐次補正する。つまり、復路Y2を走行中は、走行距離演算(車輪の回転数から現在の走行距離計測値を演算する)に於いて、演算結果を補正値に基づき5%小さくする補正演算を行なった上で、往路Y2の走行距離計測値(第2距離)とする。
【0043】
なお、復路走行距離計測値を5%小さく補正する代わりに、往路走行距離計測値を5%大きく補正しても良いし、また、復路走行距離計測値を2.5%小さくし、往路走行距離計測値を2.5%大きく補正すれば、最も真の距離値に近い補正となる。
【0044】
このようにすれば、リアルタイムに位置情報も補正されるので、往路で検出した障害物などにも正確な対応が可能となる。なお、かかる場合には、計算が頻繁に行なわれるため、CPUの負担は大きくなる。
【0045】
前述の実施例は、処理時間が多く必要であるが、最も汎用性があり、正確な作業が可能となる。かかる走行動作について、図6および図7に示すフローチャートを用いて、更に詳しく説明する。
【0046】
各ステップ#における動作は以下のようになる。
#1:往路走行距離計測値(第1距離)L1、復路走行距離計測値(第2距離)L2、走行距離補正値MおよびフラグFを0クリアーする。また、往路走行距離積算値S1と復路走行距離積算値S2を0クリアーする。
#2:走行距離計測値Lを0クリアーする。
#3:往路Y1の直進を開始する。
【0047】
#4:走行車輪駆動モーターの回転数に比例した数のパルスを出力するパルスエンコーダーのパルス数をカウントするパルスカウンターの、#4から#8のループを経過する間の増分を計算し、dLに代入する。
【0048】
#5:走行距離計測値LにdLを加算することにより、Lの値を更新する。また、往路走行距離積算値S1にdLを加算してS1の値を更新する。S1は、後述する復路走行距離積算値S2とともに、作業終了後に補正値を算出もしくは修正する場合の工程に用いる。
【0049】
#6:フラグFが、往路走行距離計測値L1が未設定であることを示す0であるかどうかを判別し、0であれば、往路走行距離計測値を設定すべく、#7へ進む。一方、フラグFが0でなければ、L1が設定済みであるので、#22へ進む。
【0050】
#7:前方に障害物が近接しているかどうかを判別し、近接していれば#9へ進んでL1の設定を行なう。一方、近接していなければ#8へ進んで、リモコンから、ターン指令を受信したかどうかを判別する。
#8:リモコンから、ターン指令を受信したかどうかを判別し、受信していれば、#9へ進んで、L1の設定を行なう。一方、受信していなければ、前記#4にもどる。
【0051】
#9:L1に現在の走行距離計測値Lを代入し、往路走行距離計測値として往路距離記憶手段35に記憶する。そして、フラグFに、L1設定済みを示す「1」を代入する。#2〜#9は第1距離計測手段31の演算動作を示している。
なお、ここで設定されたL1は、作業領域の縦距離として使用されるとともに、後述する#19での補正値Mの算出にも使用される。
【0052】
#10:ユーターン(90°ターンを行い、ロボットの作業幅よりも若干短い距離だけ横方向に走行し、更に90°ターンして復路方向へ向きを変えること)を行い、ロボットの作業幅よりも若干短い距離だけ横方向へ移動し、往路と180度反対方向へ向きを変える。
#11:復路の直進を開始する前に、走行距離計測値Lを0クリアーする。
【0053】
#12:復路Y2の直進を開始する。
#13:走行車輪駆動モーターの回転数に比例した数のパルスを出力するパルスエンコーダーのパルス数をカウントするパルスカウンターの、#13から#17のループ、もしくは、#13から#28のループを経過する間の増分を計算し、dLに代入する。
【0054】
#14:フラグFが、往路走行距離計測値L1が設定済みで補正値Mが未設定であることを示す1であるか、往路走行距離計測値L1及び補正値Mが設定済みであることを示す2であるかを判別し、1であれば、補正値を設定するため#15へ進み、2であれば、補正演算を行なうため#26へ進む。
【0055】
#15:走行距離計測値LにdLを加算することにより、Lの値を更新する。また、復路走行距離積算値S2にdLを加算してS2の値を更新する。S2は、前述の往路走行距離積算値S1とともに、作業終了後に補正値を算出もしくは修正する場合の工程に用いる。
#16:前方に障害物が近接しているかどうかを判別し、近接していれば#18へ進んでL1の設定を行なう。一方、近接していなければ#17へ進んで、リモコンから、ターン指令を受信したかどうかを判別する。
#17:リモコンから、ターン指令を受信したかどうかを判別し、受信していれば、#18へ進んで、L1の設定を行なう。一方、受信していなければ#13に戻る。
【0056】
#18:L2に現在の走行距離計測値Lを代入し、復路走行距離計測値として復路距離記憶手段36に記憶する。そして、フラグFに、L2及び補正値M(次の#19で設定)が設定済みを示す「2」を代入する。
#19:補正値Mに、往路距離計測値L1と復路距離計測値L2の比を代入し記憶する。#11〜#19は第2距離計測手段32の演算動作を示している。
【0057】
#20:作業領域を全て作業したかどうかを判別し全て作業したと判別されれば、#21Aに進んで終了する。一方、#20における判別の結果、全ての作業が終了していない場合は#21に進む。
#21:作業領域全ての作業が完了していなければ、90°ターンを行い、ロボットの作業幅よりも若干短い距離だけ横方向へ移動し、更に90°ターンして往路方向へ向きを変えて(ユーターン)、#2(図6)に戻る。
【0058】
図6の#22〜#25は、#6で、フラグFが0でないと判別された場合の往路走行の処理であり、設定済みの縦距離L1に達するまで、往路を直進する。
#22:リモコンから設定解除指令を受信しているかどうかを判別して、受信されていれば、#23に進みフラグFを0に戻して、L1、及びMの再設定を可能にする。一方、受信されていなければ、#24に進む。
#24:前方に障害物があるか否かの判別を行い、障害物があれば#10に進む。一方、障害物がなければ#25に進む。
#25:既に設定されている作業領域縦距離L1に走行距離Lが到達したかどうかを判別する。LがL1以上の場合には#10に進む。一方、LがL1よりも小さい場合には#4に戻る。
【0059】
#26〜#28は、補正値Mが設定済みの場合の復路走行の処理である。
#26:走行エンコーダーパルスカウンター増分dLに、L1とL2の比である補正値Mを乗じて補正を行なった上で、走行距離計測値Lに加算し、Lの値を更新する。この処理によって、往路と復路で同一距離を走行した場合の走行距離計測値がほぼ等しくなるように補正される。
#27:前方障害物の近接判別を行う。
#28:既に設定されている作業領域縦距離L1に走行距離Lが到達したかどうかを判別する。LがL1以上の場合には#20に進む。一方、LがL1よりも小さい場合には#13に戻る。
【0060】
上記の工程において、ターンの実行は、リモコン29からのターン指令か、障害物の検出によって行なわれる。リモコン29による操作は、指令を出すタイミングのずれによる誤差が生じるので、障害物検知による方法のほうがより正確である。障害物が無い場合には、衝立などを置いて、目標障害物とすることができる。
一方、リモコンによる方法は、正確さは劣るが、適当な障害物が存在しない場合に衝立などを用意する必要が無い。したがって、本作業ロボットの走行動作に要求される正確さ等に応じて、両者を使い分けることができる。
【0061】
他の補正方法;
なお、他の補正方法としては、以下の補正方法を採用することができる。以下の例では、往路での走行距離測定値に対して、復路の走行距離測定値が、たとえば5%大きく計測される場合の例について示す。
【0062】
走行方向と走行距離演算値をもとに往路直進方向をY軸とした位置座標(X,Y)を算出するようにし、座標データーを基に、目標走行距離を算出する。かかる場合には、往路走行終了時から、復路走行開始時までの間に、現在のY座標値を5%大きくするように補正してもよい。
【0063】
このようにすれば、計算に要する時間を短くすることができる。なお、座標位置が実際の座標位置と異なるため、往路走行中に発見した障害物への対応処理などに不具合が生じる可能性がある。
【0064】
また、復路の直進を開始する時の、目標走行距離を5%大きく補正して設定してもよい。このようにすれば、計算に要する時間を短くすることができる。なお、座標位置が補正されない(位置情報に誤差が生じる)ため、往路走行中に発見した障害物への対応処理などに不具合が生じる可能性がある。
【0065】
実施例2:
作業終了後に補正値を設定する場合;
図8および図9は実施例2を示す。
ここで、走行方向による走行距離誤差が比較的小さい場合には、作業終了後に補正値の設定を行なうのが簡単で便利な場合がある。本実施例2では、作業中には補正値の設定を行なわずに、作業終了後に補正値Mの設定を行うようにしている。図8に示すように、本実施例2の作業ロボットでは、走行アセンブリ1に偏差入力手段47が設けられていると共に、CPU30に積算手段48が設けられている。
【0066】
偏差入力手段47は、作業終了時の作業ロボットの実際の位置と目標終了位置との位置ずれ量の偏差を入力する入力手段であり、たとえば、入力手段38などのテンキーや設定ボタンを兼用して用いてもよい。
積算手段48は、各方向それぞれの走行距離の積算値を演算するものである。
その他の構成は、実施例1と同様であり、その詳しい説明を省略する。
【0067】
本作業ロボットの作業終了時に、作業者が位置ズレの偏差を偏差入力手段47を用いて入力すると、CPU30は、当該偏差と、積算手段48からの積算値とに基づいて、前記補正値を算出する。なお、補正値を算出する代わりに、偏差と積算値とに基づいて前回の補正値を修正するようにしてもよい。
【0068】
図8は、作業終了後に補正値を設定する場合のフローチャートである。
#29:作業終了地点の、目標位置と実際の終了位置との縦方向のずれの距離値Dを、操作パネルから入力する。
#30:作業時に算出した往路走行距離積算値S1と復路走行距離積算値S2と、ずれの距離値Dに基づいて、補正値Mを算出する。
【0069】
なお、図6および図7を用いて、前述の実施例1で説明した補正値設定方法により補正値Mを設定した後、本実施例2の方法を用いて補正値Mを修正するようにしてもよい。
【0070】
実施例3:
渦巻き状に走行する場合;
図10〜図12は実施例3を示す。
ところで、前述のように、本作業ロボットがジグザグに走行する場合には、左右方向X1,X2の走行距離の誤差は、比較的問題にならなかったが、本作業ロボットが、図4(e)に示すように渦巻き状に走行する場合には、左右方向X1,X2の走行距離の誤差も考慮する必要がある。以下の説明では、縦方向Yの走行距離補正だけでなく、横方向Xの走行距離補正も行なう場合の補正値設定工程例を示す。
【0071】
図10に示すように、CPU30には、成分算出手段40、第1〜第4積算手段41〜44、周回終了検知手段45および補正値算出手段46が設けられている。
成分算出手段40は、方位センサ7の出力と第1および第2距離計測手段31,32からの走行距離計測値から、作業領域の外周境界線に沿って走行している時の移動距離の往復方向の成分(X軸方向成分)と左右方向の成分(Y軸方向成分)とを算出する。すなわち、図5(a)に示すように、成分算出手段40は、本作業ロボットが斜めに走行する場合には、二点鎖線で示すように、かかる斜め方向の走行部分をX軸およびY軸成分として算出する。
【0072】
第1積算手段41は、本作業ロボットの移動距離のY軸方向成分の正の値(往路)Y1のみを積算する。
第2積算手段42は、本作業ロボットの移動距離のY軸方向成分の負の値(復路)Y2のみを積算する。
第3積算手段43は、本作業ロボットの移動距離のX軸方向成分の正の値(往路)X1のみを積算する。
第4積算手段44は、本作業ロボットの移動距離のX軸方向成分の負の値(復路)X2のみを積算する。
【0073】
周回終了検知手段45は、本作業ロボットが走行開始地点に戻ったことを検知するもので、たとえば、本作業ロボットが所定の作業領域の外周縁を1周したことを検知する手段である。なお、周回終了検知手段45は、たとえば、リモコン29からの命令を受信した赤外線受信機39からの出力に基づいて、外周境界線を1周した(走行開始地点に戻った)と判断することとしてもよい。また、方位センサ7の出力と走行距離計測値から、XY座標値を算出する手段を設け、周回終了検知手段45は、周回開始地点と、現在地点とで、XY座標値及び走行方向の情報を比較することにより、外周境界線を1周したと判断するようにしてもよい。
なお、本実施例においての周回は、閉じたルートに従って走行するものであればよく、必ずしも外周に沿って走行する必要はない。
【0074】
補正値算出手段46は、X軸方向の移動距離に関する第1補正値Mxと、Y軸方向の移動距離に関する第2補正値Myとを算出する手段である。第1補正値Mxは、第3および第4積算手段43,44によって算出された値である。第2補正値Myは、第1および第2積算手段41,42によって算出された値である。
その他の構成は、実施例1と同様であり、その詳しい説明を省略する。
【0075】
本作業ロボットは、前記補正値に基づいて現在または次回以後の実走行距離を制御する。
すなわち、図5(c)に示すように、教示モードにおいて、本作業ロボットが長方形の作業領域の四辺を走行することで、往路Y1、復路Y2、右方向(往路)X1、左方向(復路)X2の走行を行い、それぞれの走行距離計測値L1,L2,L3,L4を得る。下式(3)(4)に従って、往復方向Yの補正値M1、左右方向Xの補正値M2を算出する。
M1=L2/L1・・・・(3)
M2=L3/L4・・・・(4)
【0076】
一方、図5(d)は、まず往路Y1と復路Y2を走行した後、90度回転して、右方向X1、左方向X2の走行を行なう例を示す。
図5(c)の長方形に走行する教示方法、ないし、図5(d)のL字形に走行する教示方法によって、走行距離が入力され、補正値M1,M2の算出がなされる。
【0077】
その後、前述のジグザグ走行の例と同様に、作業終了地点の、目標位置と実際の終了位置との縦方向のずれの距離値D1と、横方向のずれの距離値D2を、作業者が入力手段38から入力する。CPU30は、往路走行距離積算値S1、復路走行距離積算値S2、右方向走行距離積算値S3、左方向走行距離積算値S4とD1、D2に基づいて、下記の式で補正値を設定・修正することが可能である。
M1=S1/(S2−D1)・・・・(5)
M2=S3/(S4−D2)・・・・(6)
【0078】
ここで、作業領域の形状は、長方形とは限らず、図5(a)に示すような、凹凸や斜めの辺のある境界となる場合がある。かかる場合の作業領域の設定方法としては、壁で囲まれた作業領域を、壁沿いに走行しながら形状が設定されてもよいし、リモコンの操作によって、直進、方向転換、カーブ走行などの制御が行なわれて、作業領域の形状が定められてもよい。
また、補正値の設定工程を、作業領域形状の教示と同時に行うことにより、作業の効率化が図れるが、もちろん、別々に行うことも可能である。例えば、図5(a)の作業領域の内側で、長方形の辺上を走行させて補正値の設定を行うことも可能である。
【0079】
本実施例では、このような場合においても、走行方向による走行距離誤差に基づく、位置誤差を補正することができる。以下に、図11のフローチャートを用いて、縦方向(Y軸方向)および横方向(X軸方向)の補正値の算出方法について説明する。
【0080】
#101:ロボットの走行角度θ、X軸プラス方向(紙面右方向)の移動成分積算値Lxp、X軸マイナス方向(紙面左方向)の移動成分積算値Lxm、Y軸プラス方向(紙面上方向)の移動成分積算値Lyp、X軸マイナス方向(紙面下方向)の移動成分積算値Lymを0クリアーする。
【0081】
#102:壁沿い走行を開始する。
#103:ジャイロセンサーの出力から現在の走行方位θを算出する。
#104:走行エンコーダカウンターの増分dLを算出する。
#105:X軸方向への移動量(dLのX軸成分)dLxを算出する。
【0082】
#106〜108:dLxが正の値であれば#107に進みLxpに加算し(第1積算手段41)、一方、dLxが負の値であれば#108に進みLxmに加算する。
#109:Y軸方向への移動量(dLのY軸成分)dLyを算出する(第2積算手段42)。
【0083】
#110〜112:dLyが正の値であれば#111に進みLypに加算し(第3積算手段43)、一方、dLyが負の値であれば#112に進みLymに加算する(第4積算手段44)。
#113:dLx、dLyを基に、XY座標値を更新する。
#114〜115:周回走行が終了し、開始地点に戻ったかどうかを判定し、終了であれば#115へ進んで走行を停止し、終了でなければ#103へ戻って走行を続ける。
#116:X軸方向の第1補正値Mxを算出する。
#117:Y軸方向の第2補正値Myを算出する。
【0084】
制御手段8は、算出された第1および第2補正値Mx,Myに基づいて、現在または次回以降の実走行距離の制御を行う。以下、図12のフローチャートを用いて、当該補正値Mx,Myを用いた実走行距離の制御の方法の一例について説明する。
【0085】
#120:方向センサー(ジャイロ)の出力を基に、現在の走行方向角度θを算出する。
#121:走行エンコーダカウンターの増分dLを算出する。
#122:dLとθを基に、X軸方向の移動量dXを計算する。
#123:dXが負であれば#124に進みdXにX軸方向の移動距離に関する第1補正値Mxを乗じた値をdXに代入する。一方、dXが正であれば#125に進む。
【0086】
#125:X座標にdXを加算して、X座標の値を更新する。
#126:dLとθを基に、Y軸方向の移動量dYを計算する。
#127:dYが負であれば、#128に進みdYにY軸方向の移動距離に関する第2補正値Myを乗じた値をdYに代入する。一方、dYが正であれば、#129に進む。
【0087】
#129:Y座標にdYを加算して、Y座標の値を更新する。
#130:目標走行距離に到達するか、障害物を検知するかで走行が停止したかどうかを判別し、停止していなければ、#120へ戻り、停止していれば終了する。
【0088】
なお、補正値算出手段46は、以下に示すように、補正値修正手段を有していてもよい。すなわち、補正値算出手段46は、作業領域の縦方向(Y軸方向)の往路Y1と復路Y2との距離補正値を演算し、作業領域の横方向(X軸方向)の往路X1と復路X2との距離補正を演算する。補正値修正手段は、縦方向の距離補正値を記憶する縦方向補正値記憶手段と、横方向の距離補正値を記憶する横方向補正値記憶手段とを有し、縦および横方向補正値記憶手段に記憶されている補正値を修正する。
【0089】
また、図3(b)に示すように、メモリ34に、本作業ロボットの作業エリア名ごとに、当該作業領域の縦距離および横距離と、当該作業エリアに対応する補正値とが互いに関連付けられて記憶される補正値記憶手段を設けてもよい。このようにすれば、作業者がこれから作業を行う領域に応じたエリア名を選択するだけで、教示走行を行うことなく、補正値の設定を行うことができる。
【0090】
さらに、前述の各実施例では、床面に対する作業として、床面のゴミを吸引して集塵する作業を例示して説明したが、床面に対する作業としては、床面に液剤を塗布する作業や、液剤を塗布した床面に赤外線や紫外線を照射する作業、床面の清拭作業など種々の作業がある。かかる場合には、作業アセンブリ22や上面ユニット21を走行アセンブリ1から取り外し、作業目的に合った作業アセンブリを走行アセンブリ1に取り付けることにより、当該作業目的に合った走行パターンが行われるようにしてもよい。
また、床面作業に限らず、搬送作業や警備作業を行う走行ロボットにおいても、カーペットなどの床を走行する場合に、正確な位置を計算することが可能になり、移動を容易にする。
【産業上の利用可能性】
【0091】
本発明は、床面に対する作業の他、搬送作業や警備作業を行う自走式作業ロボットに適用することができる。
【図面の簡単な説明】
【0092】
【図1】図1Aは本発明の実施例1にかかる自走式作業ロボットの走行アセンブリを示す平面断面図、図1Bは同走行アセンブリの側面断面図である。
【図2】同自走式作業ロボットの概略斜視図である。
【図3】同自走式作業ロボットの概略構成図である。
【図4】自走式作業ロボットの走行動作を示す概略平面図である。
【図5】自走式作業ロボットの走行動作を示す概略平面図である。
【図6】自走式作業ロボットの走行動作を示すフローチャートである。
【図7】自走式作業ロボットの走行動作を示すフローチャートである。
【図8】本発明の実施例2にかかる自走式作業ロボットの概略構成図である。
【図9】同補正値の設定方法を示すフローチャートである。
【図10】本発明の実施例3にかかる自走式作業ロボットの概略構成図である。
【図11】同自走式作業ロボットの走行動作を示すフローチャートである。
【図12】同自走式作業ロボットの走行動作を示すフローチャートである。
【符号の説明】
【0093】
1:走行アセンブリ(本体)
2:作業アセンブリ(作業手段) 3:超音波式センサ(障害物センサ)
6a,6b:駆動輪
7:方位センサ
10:バンパーセンサ(障害物センサ)
17:光学式センサ(障害物センサ)
31:第1距離計測手段(走行距離計測手段)
32:第2距離計測手段(走行距離計測手段)
33:走行制御手段
35:往路距離記憶手段
36:復路距離記憶手段
40:成分算出手段
41:第1積算手段
42:第2積算手段
43:第3積算手段
44:第4積算手段
45:周回終了検知手段
46:補正値算出手段
47:偏差入力手段
48:積算手段
50:補正手段
L1:第1距離
L2:第2距離
M:補正値
Mx:第1補正値
My:第2補正値
【特許請求の範囲】
【請求項1】
駆動輪を回転させて本体の移動と方向操舵を制御する走行制御手段と、
前記本体の走行方向にある障害物の有無を検出する障害物センサと、
前記本体の走行方向を検知する方位センサと、
実際に走行した往路の第1距離を測定する第1距離計測手段と、
実際に走行した復路の第2距離を測定する第2距離計測手段とを備え、
前記測定した往路の第1距離と前記測定した復路の第2距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする自走式作業ロボット。
【請求項2】
請求項1において、前記第1距離計測手段で計測された第1距離を記憶する往路距離記憶手段と、前記第2距離計測手段で計測された第2距離を記憶する復路距離記憶手段と、
前記往路距離記憶手段に記憶されている第1距離と、前記復路距離記憶手段に記憶されている第2距離との比率に関係する補正値に基づいて、走行中に逐次計測される現在の走行距離をリアルタイムに逐次補正する補正手段とを備えた自走式作業ロボット。
【請求項3】
請求項2において、各走行方向それぞれの走行距離の積算値を演算する積算手段と、
作業終了時の作業ロボットの実際の位置と目標終了位置との位置ずれ量の偏差を入力する偏差入力手段と、
前記偏差と前記各走行方向の走行距離の前記積算値とに基づいて、前記補正値を算出もしくは修正する自走式作業ロボット。
【請求項4】
自走する作業ロボットであって、
直進、旋回などの走行を制御する、走行制御手段と、
走行距離計測値を計測する距離計測手段と、
走行方向を検出する方位センサと、
方位センサの出力と走行距離計測値から、走行している時の移動距離のX軸方向成分とY軸方向成分を算出する成分算出手段と、
前記移動距離のX軸方向成分の正の値のみを積算する第1の積算手段と、
前記移動距離のX軸方向成分の負の値のみを積算する第2の積算手段と、
前記移動距離のY軸方向成分の正の値のみを積算する第3の積算手段と、
前記移動距離のY軸方向成分の負の値のみを積算する第4の積算手段と、
ロボットが走行開始地点に戻ったことを検知する周回終了検知手段と、
前記第1および第2の積算手段の各積算値に基づいて算出されるX軸方向の移動距離に関する第1補正値と、前記第3および第4の積算手段の各積算値に基づいて算出されるY軸方向の移動距離に関する第2補正値と、を算出する補正値算出手段とを備え、
前記各補正値に基づいて現在または次回以後の実走行距離を制御することを特徴とする自走式作業ロボット。
【請求項5】
請求項4において、前記第1積算手段で積算された第1積算値と、前記第2積算手段で積算された第2積算値との比率に関係する第1補正値に基づいて、走行中に逐次計測されるX軸方向成分の現在の走行距離をリアルタイムに逐次補正すると共に、
前記第3積算手段で積算された第3積算値と、前記第4積算手段で積算された第4積算値との比率に関係する第2補正値に基づいて、走行中に逐次計測されるY軸方向成分の現在の走行距離をリアルタイムに逐次補正する補正手段を更に備えた自走式作業ロボット。
【請求項1】
駆動輪を回転させて本体の移動と方向操舵を制御する走行制御手段と、
前記本体の走行方向にある障害物の有無を検出する障害物センサと、
前記本体の走行方向を検知する方位センサと、
実際に走行した往路の第1距離を測定する第1距離計測手段と、
実際に走行した復路の第2距離を測定する第2距離計測手段とを備え、
前記測定した往路の第1距離と前記測定した復路の第2距離との関係に基づいて、現在または次回以後の実走行距離を制御することを特徴とする自走式作業ロボット。
【請求項2】
請求項1において、前記第1距離計測手段で計測された第1距離を記憶する往路距離記憶手段と、前記第2距離計測手段で計測された第2距離を記憶する復路距離記憶手段と、
前記往路距離記憶手段に記憶されている第1距離と、前記復路距離記憶手段に記憶されている第2距離との比率に関係する補正値に基づいて、走行中に逐次計測される現在の走行距離をリアルタイムに逐次補正する補正手段とを備えた自走式作業ロボット。
【請求項3】
請求項2において、各走行方向それぞれの走行距離の積算値を演算する積算手段と、
作業終了時の作業ロボットの実際の位置と目標終了位置との位置ずれ量の偏差を入力する偏差入力手段と、
前記偏差と前記各走行方向の走行距離の前記積算値とに基づいて、前記補正値を算出もしくは修正する自走式作業ロボット。
【請求項4】
自走する作業ロボットであって、
直進、旋回などの走行を制御する、走行制御手段と、
走行距離計測値を計測する距離計測手段と、
走行方向を検出する方位センサと、
方位センサの出力と走行距離計測値から、走行している時の移動距離のX軸方向成分とY軸方向成分を算出する成分算出手段と、
前記移動距離のX軸方向成分の正の値のみを積算する第1の積算手段と、
前記移動距離のX軸方向成分の負の値のみを積算する第2の積算手段と、
前記移動距離のY軸方向成分の正の値のみを積算する第3の積算手段と、
前記移動距離のY軸方向成分の負の値のみを積算する第4の積算手段と、
ロボットが走行開始地点に戻ったことを検知する周回終了検知手段と、
前記第1および第2の積算手段の各積算値に基づいて算出されるX軸方向の移動距離に関する第1補正値と、前記第3および第4の積算手段の各積算値に基づいて算出されるY軸方向の移動距離に関する第2補正値と、を算出する補正値算出手段とを備え、
前記各補正値に基づいて現在または次回以後の実走行距離を制御することを特徴とする自走式作業ロボット。
【請求項5】
請求項4において、前記第1積算手段で積算された第1積算値と、前記第2積算手段で積算された第2積算値との比率に関係する第1補正値に基づいて、走行中に逐次計測されるX軸方向成分の現在の走行距離をリアルタイムに逐次補正すると共に、
前記第3積算手段で積算された第3積算値と、前記第4積算手段で積算された第4積算値との比率に関係する第2補正値に基づいて、走行中に逐次計測されるY軸方向成分の現在の走行距離をリアルタイムに逐次補正する補正手段を更に備えた自走式作業ロボット。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−260161(P2006−260161A)
【公開日】平成18年9月28日(2006.9.28)
【国際特許分類】
【出願番号】特願2005−76623(P2005−76623)
【出願日】平成17年3月17日(2005.3.17)
【出願人】(000223986)フィグラ株式会社 (68)
【Fターム(参考)】
【公開日】平成18年9月28日(2006.9.28)
【国際特許分類】
【出願日】平成17年3月17日(2005.3.17)
【出願人】(000223986)フィグラ株式会社 (68)
【Fターム(参考)】
[ Back to top ]