(57)【要約】【課題】  作業対象となる領域の床面に対して隅々まで残らず作業することができる自走式作業ロボットを提供する。【解決手段】  鉛直線Ｏのまわりに回転可能な走行部１と、床面に対する作業を行う作業部２と、走行部１の回転角度θを測定する回転角度測定手段７と、回転角度θを記憶する記憶手段３１と、進行方向Ｙの障害物までの距離を測定する複数の前方距離測定手段３ｃ，３ｄと、側方にある障害物までの距離を測定する側方距離測定手段３ａ，３ｂと、側方距離測定手段によって測定された複数の測定値からなる履歴に基づいて、横壁の有無を判別する判別手段３０と、走行部１の走行動作を制御する制御手段８とを備える。制御手段８は、前方距離測定手段３ｃ，３ｄの出力、ならびに、判別手段３０による横壁の判別結果に基づいて走行部１の走行動作を制御する。【選択図】        図４
2005135400.tif 000002
【特許請求の範囲】
【請求項１】
自走する作業ロボットであって、
床面に対して鉛直線のまわりに回転可能な走行部と、
前記走行部の前方または後方に取り付けられ、床面に対して作業を行う作業部と、
前記鉛直線のまわりの前記走行部の回転角度を測定する回転角度測定手段と、
前記回転角度を記憶する記憶手段と、
前記走行部の幅方向に互いに離間して設けられ、前記走行部の進行方向にある障害物までの距離を測定する複数の前方距離測定手段と、
前記走行部の進行方向に対して側方にある障害物までの距離を測定する側方距離測定手段と、
前記側方距離測定手段によって測定された複数の測定値に基づいて、前記走行部が横壁に沿って走行しているか否かを判別する判別手段と、
前記走行部の走行動作を制御する制御手段とを備え、
前記制御手段は、前記複数の前方距離測定手段の少なくとも一つの測定値が、所定の第１の閾値以下となった場合に、走行部が前方の障害物に近接していると判断して前記走行部の走行を停止させると共に、前記複数の前方距離測定手段の測定値を比較して、当該障害物の面までの測定距離の差もしくは比が所定範囲内か否かを判別し、前記測定距離の差もしくは比が所定範囲外であると判別した場合には、前記測定距離の差もしくは比が所定範囲内になるまで前記走行部を前記鉛直線のまわりに回転動作させると共に、前記所定範囲内となった時点の走行部の回転角度を前記記憶手段に記憶させ、
前記判別手段により、前記回転動作を行うまでの前記走行部の走行が横壁に沿った走行であったと判別された場合には、前記横壁と前方の障害物とによって形成される隅部に対して作業を行った後、前記記憶手段に記憶されている前記回転角度に基づいて前方の障害物に沿って走行するように前記制御手段が前記走行部の走行動作を制御する自走式作業ロボット。
【請求項２】
請求項１において、
前記判別手段は、前記前方距離測定手段が障害物を検出して前記走行部が停止した際、前記走行部が前記回転動作を開始する前に前記判別を行い、
前記判別手段により、前記回転動作を行うまでの前記走行部の走行が横壁に沿った走行であったと判別された場合には、前記回転動作の回転中心を前記横壁から離れる方向に所定距離移動させた後、前記回転動作を行うように前記制御手段が前記走行部の走行動作を制御する自走式作業ロボット。
【請求項３】
請求項１もしくは２において、
前記前方距離測定手段は、複数の超音波式センサと複数の光学式センサとを備え、
前記超音波式センサおよび光学式センサは、各々、前記走行部の幅方向に互いに離間して設けられており、
前記超音波式センサが障害物を検出せず、かつ、前記光学式センサが障害物を検出している場合は、当該障害物の前記走行部の進行方向に対する傾きが所定の傾き角よりも大きいと判断する自走式作業ロボット。
【請求項４】
請求項３において、
前記複数の光学式センサは、前記走行部の進行方向に対して所定の角度傾けて設けられたセンサを含む自走式作業ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自走式の作業ロボットに関する。
【背景技術】
【０００２】
従来、この種の作業ロボットは、作業対象となる領域の周囲の壁の隅部、特にその角度が直角でない隅部に対して作業を行うことが難しく、作業残りが発生するという問題があった。
例えば、下記の特許文献１の清掃ロボットでは、直角な隅部を概ね清掃することは可能であるが、直角でない隅部の場合には作業残りが生じるおそれがある。
【特許文献１】特開平９−２６９８１０（要約、図２９）
【特許文献２】特開平９−１１４５２３（要約、図７）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１の清掃ロボットは、予め記憶された動作シーケンスに従ってその動作が制御されるが、隅部が直角でない場合に隅々まで残らず清掃する場合の動作についての説明が無く、開示されている制御方法のみでは、ゴミが最も溜まりやすい隅部に清掃残りが生じてしまう。
特許文献２の自律走行車両は、車両の側面に対向する壁に平行に制御することが可能であるが、隅部に対して作業を行うことはできず、特許文献１の清掃ロボットと同様に、ゴミが最も溜まりやすい隅部に清掃残りが生じてしまう。
【０００４】
したがって、本発明の目的は、作業対象となる領域の床面に対して隅々まで残らず作業することができる自走式作業ロボットを提供することである。
【課題を解決するための手段】
【０００５】
前記目的を達成するために、本発明の作業ロボットは、自走する作業ロボットであって、床面に対して鉛直線のまわりに回転可能な走行部と、前記走行部の前方または後方に取り付けられ、床面に対して作業を行う作業部と、前記鉛直線のまわりの前記走行部の回転角度を測定する回転角度測定手段と、前記回転角度を記憶する記憶手段と、前記走行部の幅方向に互いに離間して設けられ、前記走行部の進行方向にある障害物までの距離を測定する複数の前方距離測定手段と、前記走行部の進行方向に対して側方にある障害物までの距離を測定する側方距離測定手段と、前記側方距離測定手段によって測定された複数の測定値に基づいて、前記走行部が横壁に沿って走行しているか否かを判別する判別手段と、前記走行部の走行動作を制御する制御手段とを備え、前記制御手段は、前記複数の前方距離測定手段の少なくとも一つの測定値が、所定の第１の閾値以下となった場合に、走行部が前方の障害物に近接していると判断して前記走行部の走行を停止させると共に、前記複数の前方距離測定手段の測定値を比較して、当該障害物の面までの測定距離の差もしくは比が所定範囲内か否かを判別し、前記測定距離の差もしくは比が所定範囲外であると判別した場合には、前記測定距離の差もしくは比が所定範囲内になるまで前記走行部を前記鉛直線のまわりに回転動作させると共に、前記所定範囲内となった時点の走行部の回転角度を前記記憶手段に記憶させ、前記判別手段により、前記回転動作を行うまでの前記走行部の走行が横壁に沿った走行であったと判別された場合には、前記横壁と前方の障害物とによって形成される隅部に対して作業を行った後、前記記憶手段に記憶されている前記回転角度に基づいて前方の障害物に沿って走行するように前記制御手段が前記走行部の走行動作を制御することを特徴とする。
【０００６】
本発明では、走行部の進行方向に対して所定の角度以上傾いた障害物が検出されると、前記走行部が走行を停止して、前記複数の前方距離測定手段の測定距離が概ね等しくなるまで、前記走行部が鉛直線のまわりに回転動作する。走行部の進行方向に対する前記障害物の傾き角度は、前記複数の前方距離測定手段の測定距離が概ね等しくなった時点の回転角度に等しいから、該回転角度を前記回転角度測定手段により測定することで、前記障害物の傾き角度を求めることができる。一方、前記判別手段により横壁の有無を検知することにより、隅部に対する作業が必要であるか否かが判断される。走行部が横壁に沿って走行していたと判別された場合は、隅部に対して作業を行った後に、前方の障害物に沿って走行するように走行部の動作が制御される。これに対し、走行部が横壁から離れた位置を走行していたと判別された場合は、走行部が前記回転動作を行った後、すぐに前方の障害物に沿って走行するように制御される。
【発明の効果】
【０００７】
本発明によれば、走行部の前方にある障害物の傾き角度にかかわらず、障害物の傾き角度および横壁の有無に応じて走行部の走行動作が制御されるので、横壁と前方の障害物とによって形成される隅部に対しても確実に作業を行うことができるから、作業対象となる領域の床面に対して隅々まで残らず作業することができる。
【発明を実施するための最良の形態】
【０００８】
本発明において、前記判別手段は、前記前方距離測定手段が障害物を検出して前記走行部が停止した際、前記走行部が前記回転動作を開始する前に前記判別を行い、前記判別手段により、前記回転動作を行うまでの前記走行部の走行が横壁に沿った走行であったと判別された場合には、前記回転動作の回転中心を前記横壁から離れる方向に所定の距離移動させた後、前記回転動作を行うように前記制御手段が前記走行部の走行動作を制御するのが好ましい。
【０００９】
この態様によれば、走行部が前記回転動作を行う前に、回転動作の回転中心を横壁から所定の距離離れた位置にズラすことで、前記回転動作中に前方距離測定手段の一部が、前方の障害物までの距離と誤って横壁までの距離を測定するおそれがないから、前方の障害物の傾き角度を正確に測定することができる。
【００１０】
本発明の好適な態様においては、前記前方距離測定手段が、複数の超音波式センサと複数の光学式センサとを備え、前記超音波式センサおよび光学式センサを、各々、前記走行部の幅方向に互いに離間して設け、前記超音波式センサが障害物を検出し、かつ、前記光学式センサが障害物を検出している場合は、当該障害物の前記走行部の進行方向に対する傾きが所定の傾き角度よりも大きいと断定せず、一方、前記超音波式センサが障害物を検出せず、かつ、前記光学式センサが障害物を検出している場合は、当該障害物の前記走行部の進行方向に対する傾きが所定の傾き角度よりも大きいと判断する。
【００１１】
この態様によれば、前方の障害物の傾きが所定の傾き角度よりも大きくて超音波式センサでは検出できない場合でも、光学式センサにより障害物を検出できるので、障害物の検出精度を向上させることができる。また、障害物を検出して当該障害物の傾き角度を測定する際には、測定精度の良い超音波式センサを主として用いることで、障害物の傾き角度の測定精度を向上させることができる。
【００１２】
本発明において、前記前方距離測定手段が複数の超音波式センサと複数の光学式センサとを備えている場合には、前記複数の光学式センサが、前記走行部の進行方向に対して所定の角度傾けて設けられたセンサを含むのが好ましい。
【００１３】
こうすれば、走行部の斜め前方にある障害物を検出することができるから、障害物の検出精度が更に向上する。
【００１４】
本発明のより具体的な態様においては、前記側方距離測定手段の測定値の履歴に基づいて算出された側方の障害物までの距離である「側方距離値」が前記記憶手段に記憶される。また、前記前方の障害物の傾き角度を求めるための回転動作で、前記複数の前方距離測定手段の測定距離の差もしくは比が所定範囲内となった時点の走行部の回転角度が前記前方障害物の傾き角度である「傾き角度値」として前記記憶手段に記憶されると共に、その時点の前方距離測定手段の測定距離が「前方距離値」として前記記憶手段に記憶される。前記制御手段は、前記「側方距離値」、「傾き角度値」および「前方距離値」の値に基づいて、前方障害物と側方障害物との交点の位置と走行部との位置関係を算出し、その位置関係情報に基づいて、前方障害物と側方障害物とによって形成される隅部に対して作業を行うように前記走行部の走行動作を制御する。
【００１５】
このようにすれば、直角でない壁の隅部と作業ロボットの現在位置との相対位置関係を計算できるので、隅々まで正確に作業をすることができる。
【実施例１】
【００１６】
以下、本発明の一実施例を図面に従って説明する。
全体構成：
本作業ロボット１００は、図２に示す走行部１および作業部２を備えている。図１に示すように、前記走行部１は、走行部１の駆動を行うための駆動輪６ａ，６ｂと、走行部１のバランスをとるための従動輪９ａ，９ｂとを備えている。前記駆動輪６ａ，６ｂは、それぞれ、駆動モータ５ａ，５ｂによって駆動される。駆動モータ５ａ，５ｂは正逆回転可能で、マイコン（制御手段）８によって回転が制御される。
【００１７】
直進走行時には、前記２つの駆動モータ５ａ，５ｂが同方向に回転することで、走行部１は前進または後退することができる。
回転動作を行う際には、前記２つの駆動モータ５ａ，５ｂがそれぞれ逆方向に回転することで、走行部１は、図１の床面に対する鉛直線（回転中心）Ｏのまわりに回転することができる。
なお、前記２つの駆動モータ５ａ，５ｂの回転の比率を制御することで、走行部１はカーブ走行を行うことができる。
【００１８】
走行部１の後部には、前記作業部２を取り付けるための取付部１１が設けられている。取付部１１は、スライド駆動モータ１５によって駆動され、スライドレール１４に沿って走行部１の幅方向Ｘにスライド移動可能とされている。
【００１９】
図２（ａ）の作業部２は、前記取付部１１に取り付けられることで、前記走行部１の後方に取り付けられる。前記作業部２は、床面に近接ないし接触して床面に対して作業を行うものであり、たとえば、床上のゴミを吸引したり床面にワックスを塗布する。前記作業部２は、前記取付部１１に取り付けられていることで、走行部１に対して幅方向Ｘにスライド移動することができる。
【００２０】
図１に示すように、走行部１の前部には、複数の超音波式センサ３ａ〜３ｅと、複数の光学式センサ１７ａ〜１７ｅとが設けられている。これら複数のセンサのうち、２つの超音波式センサ３ａ，３ｂは、走行部１の左右にある障害物までの距離を測定する側方距離測定手段を構成する。一方、残りの超音波式センサ３ｃ，３ｄ，３ｅおよび光学式センサ１７ａ，１７ｂ，１７ｃ，１７ｄ，１７ｅは、走行部１の前方にある障害物までの距離を測定する前方距離測定手段を構成する。
なお、走行部１の前部外縁部には、障害物との接触を検知するためのバンパーセンサ１０が設けられている。
【００２１】
前記超音波式センサ３ｃ，３ｄ，３ｅおよび前記光学式センサ１７ａ，１７ｂ，１７ｃ，１７ｄ，１７ｅは、各々、前記走行部１の幅方向Ｘに互いに離間して設けられている。前記光学式センサ１７ａ〜１７ｅのうち、２つの光学式センサ１７ｂ，１７ｄは、それぞれ、前記走行部１の進行方向に対して所定の角度傾けて設けられている。
【００２２】
制御構成：
つぎに制御構成について説明する。
図２（ｂ）に示すように、前記マイコン８には、駆動モータ５ａ，５ｂ、スライド駆動モータ１５、前方距離測定手段３ｃ〜３ｅ，１７ａ〜１７ｅ、側方距離測定手段３ａ，３ｂ、ジャイロセンサ（回転角度測定手段）７およびバンパーセンサ１０などが図示しないインターフェイスを介して接続されている。
前記ジャイロセンサ７は、前記鉛直線Ｏのまわりの走行部１の回転角度を測定するものであり、図１に示すように、前記回転中心Ｏの近傍に設けられている。
【００２３】
前記マイコン８はＣＰＵ（制御手段、判別手段）３０およびメモリ（記憶手段）３１を備えている。前記メモリ３１には、前記前方距離測定手段３ｃ〜３ｅ，１７ａ〜１７ｅ、側方距離測定手段３ａ，３ｂおよびジャイロセンサ７によって測定される各測定値が記憶される。
【００２４】
動作：
つぎに、本作業ロボットの動作について詳しく説明する。
まず、図３を参照して、直角の壁で囲まれたスペースを作業する場合の基本的な動作について説明する。
図３に示すように、作業ロボット１００は、横壁（側方障害物）の壁面に平行な複数の走行レーンを一方の端から順に走行していく。あるレーンの走行中に、作業ロボット１００が前方に壁（前方障害物）を検出すると、走行部１は９０度回転、前壁に沿って所定距離前進、９０度回転を行って隣の走行レーンに移動する。このように、作業ロボット１００は、ジグザグ走行を繰り返して開始位置Ｐ１から終了位置Ｐ２まで走行しながら対象領域の作業を行う。
【００２５】
次に、作業対象領域に斜めの壁が存在する場合の動作について説明する。
図４は、作業ロボット１００が横壁５２に沿って前進しながら作業を行っている途中に、前方の斜め壁５１に遭遇した場合の例を示している。ただし、前方の斜め壁５１と横壁５２との成す角度が鈍角である場合の例である。
【００２６】
図４（ａ）は、作業ロボット１００が横壁５２に沿って前進している様子を示す図である。この図４（ａ）において、符号Ｄ１は走行部１の回転中心Ｏから横壁５２までの距離であって、前記センサ３ｂの測定距離Ｍｂに、前記センサ３ｂの前記回転中心Ｏからの幅方向Ｘの離間距離を加えることにより算出される。前記側方距離測定手段３ａ，３ｂによる測定は、所定の周期で繰り返し実行され、過去１２０回のデータが時系列で前記メモリ３１に記憶される。また、走行部１の走行距離データが、前記駆動モータ５ａ，５ｂに接続されたエンコーダ（図示せず）により検出され、前記メモリ３１に記憶される。
【００２７】
図４（ｂ）は、作業ロボット１００が横壁５２に沿って前進中に、前壁５１が所定距離以内に近づいたことを検出し、走行停止した状態を示している。この図４（ｂ）において、符号Ｗは作業部２の幅であり、Ｍｃは左側の超音波式センサ３ｃの測定距離であり、Ｍｄは右側の超音波式センサ３ｄの測定距離である。前記右側センサ３ｄの測定距離Ｍｄの値が所定の第１の閾値（走行停止限界距離ＳＨｄ）以下となると、走行部１は走行を停止する。このときの前記回転中心Ｏの位置をＡ点とする。
この停止状態においては、前方の壁５１は右側が走行部１に近くなっているので、前記測定距離Ｍｃ，Ｍｄの関係は、Ｍｃ＞Ｍｄとなる。そのため、前記ＣＰＵ３０は、前方の壁５１の右側が近くにあり、左側が遠くにあると判断する。ＣＰＵ３０は、前記測定距離ＭｃとＭｄとを比較して、ＭｃとＭｄとの差の絶対値が所定の第２の閾値（傾き判別基準値ＳＨａ）よりも大きいか否かを判別する。前記測定距離ＭｃとＭｄとの差の絶対値が所定の第２の閾値よりも大きい（所定値の範囲外の）場合には、前壁の傾き角を測定するため、ＣＰＵ３０は回転中心Ｏを前記Ａ点の位置から動かさないようにして、走行部１を右方向に回転動作させる。
【００２８】
図４（ｃ）は、走行部１が右方向に回転して、前記測定距離Ｍｃ，Ｍｄの差の絶対値が、所定の第２の閾値以下（所定値の範囲内）となったことで、ＣＰＵ３０が走行部１と前方の斜め壁５１とが概ね正対する向きになったと判断して、走行部１の回転動作を停止させた状態を示す。このときの走行部１の回転角度θは、前記ジャイロセンサ７により測定され、前記メモリ３１に記憶される。また、このときの前壁５１までの距離Ｄ２が前記メモリ３１に記憶される。
【００２９】
図４（ｄ）は、図４（ｃ）の状態から、図４（ａ）の進行方向Ｙに対して走行部１が９０度回転して、作業部２の右端部２１が、前壁５１と横壁５２とが交差するＣ点に接し、かつ、作業部２の後端が横壁５２に接する位置に移動した状態を示す。このときの前記回転中心Ｏの位置をＢ点とする。
この状態から、作業ロボット１００が所定距離前進することにより、図４（ｂ）に示す状態で作業をやり残している隅部の床面に対して作業を行うことができる。
【００３０】
図４（ｅ）は、作業ロボット１００が前壁５１に沿った姿勢となり、前記Ｃ点に作業部２の右端部２１が接している状態を示す。この状態から、作業ロボット１００が所定距離前進することにより、前壁５１に沿って走行しながら作業を行うことができる。
【００３１】
前記Ｃ点の位置は、たとえば、下記の演算式により算出される。
図４（ｆ）において、Ａ点の座標を（Ｘａ，Ｙａ）、Ｃ点の座標を（Ｘｃ，Ｙｃ）、Ｄ点の座標を（Ｘｄ，Ｙｄ）とする。なお、Ｄ点は、走行部１のＹ軸方向の中心線Ｌｙが前壁５１と交差する点である。
前記Ｃ点のＸ座標は、Ｘｃ＝Ｘａ＋Ｄ１
前記Ｄ点のＹ座標は、Ｙｄ＝Ｙａ＋Ｄ２／cos θ
前記Ｃ点のＹ座標は、Ｙｃ＝Ｙｄ−Ｄ１×tan θ
＝Ｙａ＋Ｄ２／cos θ−Ｄ１×tan θ
【００３２】
上記の式から、Ｃ点の座標（Ｘｃ，Ｙｃ）は、Ａ点の座標Ｘａ，Ｙａと、距離Ｄ１，Ｄ２および回転角度θを用いて下記のように表せる。
Ｘｃ＝Ｘａ＋Ｄ１
Ｙｃ＝Ｙａ＋Ｄ２／cos θ−Ｄ１×tan θ
従って図４（ｄ）のＢ点の座標（Ｘｂ，Ｙｂ）は、回転中心Ｏから作業部２の後端までの距離Ｄ３と、作業部の幅Ｗを用いて下記のように表せる。
Ｘｂ＝Ｘｃ−Ｄ３
＝Ｘａ＋Ｄ１−Ｄ３  …（１）
Ｙｂ＝Ｙｃ−Ｗ／２
＝Ｙａ＋Ｄ２／cos θ−Ｄ１×tan θ−Ｗ／２  …（２）
【００３３】
同様に、図４（ｅ）に示すＥ点の座標（Ｘｅ，Ｙｅ）は、下記のように表せる。
Ｘｅ＝Ｘｃ−（Ｗ／２）×sin θ−Ｄ３×cos θ
＝Ｘａ＋Ｄ１−（Ｗ／２）×sin θ−Ｄ３×cos θ  …（３）
Ｙｅ＝Ｙｃ−（Ｗ／２）×cos θ＋Ｄ３×sin θ
＝Ｙａ＋Ｄ２／cos θ−Ｄ１×tan θ
−（Ｗ／２）×cos θ＋Ｄ３×sin θ  …（４）
上記の如く、Ａ点からＢ点およびＥ点へ移動する為の、Ｘ軸方向、Ｙ軸方向の移動距離が計算できるので、作業部２の右端部２１を前記Ｃ点に接する位置に、作業ロボット１００を自律的に移動させることができる。
【００３４】
図５（ａ）〜（ｓ）を参照して、作業ロボット１００が横壁５２に沿って作業しながら前進中に、前方に斜めの壁５１が現れた場合の動作の流れを説明する。ただし、前方の斜め壁５１と横壁５２との成す角度が鈍角である場合の例である。
なお、図５においてハッチングを施している部分は、作業が済んでいる領域である。
【００３５】
図５（ａ）に示すように、作業ロボット１００は横壁５２に沿って作業しながら前進している。この時、紙面左右方向Ｘの障害物までの距離を測定する為の側方距離測定手段３ａ，３ｂの過去１２０回の測定データが、測定時点の走行距離データと共に前記メモリ３１に記憶される。
【００３６】
図５（ｂ）に示すように、前壁（前方障害物）５１が現れたことを前方距離測定手段３ｃ〜３ｅ，１７ａ〜１７ｅが検出すると、走行部１は走行を停止する。そして、前記センサ３ｃ、３ｄの測定距離Ｍｃ，Ｍｄを比較し、ＭｃとＭｄの差の絶対値が第２閾値よりも大きく、かつ、Ｍｃ＞Ｍｄであることから、前方の障害物が右側が近く左側が遠い斜めの壁であると判断し、かつ、過去１２０回の側方距離測定手段３ａ，３ｂの測定距離の履歴と、該測定距離を測定した時点の走行距離のデータとから走行部１の右横に壁５２が存在していると判別する。
【００３７】
つぎに、図５（ｃ）に示すように、走行部１が右回りに回転動作しながら、前記左右のセンサ３ｃ、３ｄで前壁５１までの距離を繰り返し測定し、前記左右のセンサ３ｃ、３ｄの測定距離Ｍｃ、Ｍｄの値の差の絶対値が前記第２閾値以下になった時点で回転動作を停止する。
【００３８】
図５（ｄ）では、前記ＣＰＵ３０が前述の（１）式および（２）式から、前記Ｂ点（図４（ｄ））の座標を計算し、回転中心ＯのＹ座標がＢ点のＹ座標Ｙｂに一致する地点まで走行部１を後退させる。その後、図５（ｅ）に示すように、作業部２を走行部１に対して左方向いっぱいにスライド移動させた状態で、走行部１が左回りに角度（θ＋９０°）回転する。続いて、図５（ｆ）に示すように、回転中心ＯのＸ座標が、前記Ｂ点のＸ座標Ｘｂに一致する地点まで後退する。この後退中に作業部２の後端部に設けられた図示しない接触センサが横壁５２に接触すると、走行部１の後退が停止される。これにより、作業部２の右端部２１を、前記Ｃ点に接する位置に移動させることができる。
【００３９】
つぎに、図５（ｇ）に示すように、作業ロボット１００は作業部２の幅Ｗに相当する距離だけ作業をしながら前進する。これにより、隅部の一部分が作業済みになる。図５（ｈ）では、ＣＰＵ３０が前述の（３）式および（４）式から、前記Ｅ点（図４（ｅ））の座標を計算し、前記回転中心ＯのＸ座標がＥ点のＸ座標Ｘｅに一致する地点まで走行部１を後退させる。その後、図５（ｉ）に示すように、作業部２を走行部１に対して左方向いっぱいにスライド移動させた状態で、走行部１が右回りに９０度回転する。続いて、図５（ｊ）に示すように、回転中心ＯのＹ座標がＥ点のＹ座標Ｙｅに一致する地点まで作業をしながら前進する。その後、図５（ｋ）に示すように、走行部１は、左回りに角度θだけ回転し前方の斜め壁５１に沿った姿勢となる。
【００４０】
図５（ｌ）に示すように、作業ロボット１００は斜め壁５１に沿って作業をしながら所定距離前進する。これにより、隅部の残りの部分と前壁５１沿いのスペースの一部が作業済みとなる。つぎに、図５（ｍ）に示すように、走行部１が左回りに９０度回転した後、作業部２の後端が前壁５１に接触するまで後退する。その後、図５（ｎ）に示すように、作業ロボット１００は作業をしながら所定距離前進する。
【００４１】
続いて、図５（ｏ）に示すように、走行部１は左回りに９０度旋回した後、図５（ｐ）に示すように、作業ロボット１００は作業をしながら所定距離前進する。つぎに、図５（ｑ）に示すように、前記図５（ａ）で走行していたレーンの隣のレーンの中心位置に回転中心ＯのＸ座標が一致するまで後退する。ここで、図５（ｒ）に示すように、走行部１が右回りに角度（９０°−θ）だけ回転することで、走行部１が前記図５（ａ）での進行方向と１８０度反対の方向に向く。その後、図５（ｓ）に示すように、作業ロボット１００は作業をしながら前進し、次のレーンの作業を行う。
このように、作業ロボット１００は、斜めの壁が存在する場合でも、壁の隅部まで隈なく作業することができる。
【００４２】
次に、図６（ａ）〜（ｌ）を参照して、作業ロボット１００が横壁から離れたレーンを作業しながら前進中に、前方に斜めの壁５１が現れた場合で、かつ、走行部１に対して前方の斜め壁の作業開始位置Ｐ１側の距離が小さく、作業終了位置Ｐ２側の距離が大きい場合の動作の流れについて説明する。
【００４３】
図６（ａ）〜図６（ｂ）のように、作業ロボット１００は横壁５２から離れたレーンを作業しながら前進し、前壁５１を検出すると、走行を停止する。そして、ＣＰＵ３０が走行部１の側方に横壁が存在するか否かを判別すると共に、前壁５１の傾きが所定の角度以上であるかを判別する。
【００４４】
つぎに、図６（ｃ）のように、走行部１が右回りに回転動作し、前壁５１と概ね正対する向きとなったところで、回転動作を停止する。続いて、図６（ｄ）に示すように、走行部１は左回りに９０度回転することで、前方の斜め壁５１に沿った姿勢となる。
以後の動作の流れは、図６（ｅ）〜図６（ｌ）に示すように、横壁５２に沿って作業する場合（図５（ｌ）〜図５（ｓ）参照）の動作と同様であるため、その詳しい説明を省略する。
【００４５】
次に、図７（ａ）〜（ｌ）を参照して、作業ロボット１００が横壁から離れたレーンを作業しながら前進中に、前方に斜めの壁５１が現れた場合で、かつ、走行部１に対して前方の斜め壁５１の作業開始位置Ｐ１側の距離が大きく、作業終了位置Ｐ２側の距離が小さい場合の動作の流れについて説明する。
【００４６】
図７（ａ）〜図７（ｂ）のように、作業ロボット１００は横壁５２から離れたレーンを作業しながら前進し、前壁５１を検出すると、走行を停止する。そして、ＣＰＵ３０が走行部１の側方に横壁が存在するか否かを判別すると共に、前壁５１の傾きが所定の角度以上であるかを判別した後、作業ロボット１００は、前記図６に示す動作とは若干異なる動作を行う。
【００４７】
図７（ｃ）に示すように、走行部１が左回りに回転動作しながら、前記左右のセンサ３ｃ、３ｄで前壁５１までの距離を繰り返し測定し、前記左右のセンサ３ｃ、３ｄの測定距離Ｍｃ、Ｍｄの値の差の絶対値が前記第２閾値以下になった時点で回転動作を停止する。続いて、図７（ｄ）に示すように、走行部１は左回りに９０度回転することで、前壁５１に沿った姿勢となる。その後、図７（ｅ）に示すように、作業ロボット１００は、前記斜め壁５１に沿って作業をしながら所定距離前進する。これにより、前方斜め壁５１沿いのスペースの一部が作業済みとなる。
【００４８】
その後、図７（ｆ）に示すように、走行部１は、左回りに９０度回転した後、作業部２の後端が前壁５１に接触するまで後退した後、図７（ｇ）に示すように、作業ロボット１００は作業をしながら所定距離前進する。
【００４９】
続いて、図７（ｈ）に示すように、前記図７（ａ）で走行していたレーンの隣のレーンの中心位置に回転中心ＯのＸ座標が一致するまで後退する。ここで、図７（ｉ）に示すように、走行部１が右回りに角度θだけ回転することで、走行部１が前記図７（ａ）での進行方向と１８０度反対の方向を向く。その後、図７（ｊ）に示すように、作業ロボット１００は作業をしながら前進し次のレーンの作業を行う。
【００５０】
次に、図８（ａ）〜（ｎ）を参照して、作業ロボット１００が横壁に沿って作業しながら前進中に、前方に斜めの壁５１が現れた場合の作業の流れを説明する。ただし、前方の斜め壁５１と横壁５２との成す角度が鋭角である場合の例である。
【００５１】
図８（ａ）に示すように、作業ロボット１００は横壁５２に沿って作業しながら前進している。この時、紙面左右方向Ｘの障害物までの距離を測定する為の側方距離測定手段３ａ，３ｂの過去１２０回の測定データが、測定時点の走行距離データと共に前記メモリ３１に記憶される。
【００５２】
図８（ｂ）に示すように、前方に障害物５１が現れたことを前方距離測定手段３ｃ〜３ｅ，１７ａ〜１７ｅが検出すると、走行部１は走行を停止する。そして、前記センサ３ｃ、３ｄの測定距離Ｍｃ，Ｍｄを比較し、ＭｃとＭｄの差の絶対値が第２閾値よりも大きく、かつ、Ｍｃ＜Ｍｄであることから、前方の障害物５１が右側が遠く左側が近い斜めの壁であると判断し、かつ、過去１２０回の側方距離測定手段３ａ，３ｂの測定距離の履歴と、該測定距離を測定した時点の走行距離のデータとから走行部１の右横に壁５２が存在していると判別する。
【００５３】
つぎに、図８（ｃ）に示すように、走行部１が左回りに９０度回転した後、作業部２の後端が横壁５２に接触するまで後退した後、図８（ｄ）に示すように、作業ロボット１００は、作業を行いながら前進し、前壁５１を再び検出して走行を停止する。図８（ｅ）に示すように、走行部１は、再度、作業部２の後端が横壁５２に接触するまで後退した後、作業部２の右端部２１が前壁５１に接触するまで、作業部２を走行部１に対して右方向に移動させる。その後、図８（ｆ）に示すように、作業ロボット１００は作業を行いながら前進する。この走行中、作業部２は前壁５１に沿って徐々に左方向に移動するように制御される。作業ロボット１００は、再度前壁５１を検出するまで走行する。
【００５４】
前壁５１を検出し停止した状態から、図８（ｇ）に示すように、作業ロボット１００は、作業部２を走行部１に対して左いっぱいに移動させた後、右回りに９０度回転する。この状態から、図８（ｈ）に示すように、走行部１が左回りに９０度回転したと仮定して、作業部２を走行部１に対して右いっぱいに移動させた場合に、前壁５１に作業部２の右端部２１が接する位置を計算し、算出した位置まで後退する。その後、図８（ｉ）に示すように、走行部１が左回りに９０度回転して、作業部２の右端部２１が前壁５１に接触するまで作業部２を走行部１に対して右方向に移動させる。
【００５５】
その後、図８（ｊ）に示すように、作業ロボット１００は作業を行いながら前進し、前壁５１を検出した時点で停止する。この走行中、作業部２は前壁５１に沿って徐々に左方向に移動するように制御される。
【００５６】
つぎに、図８（ｋ）に示すように、走行部１は右回りに回転しながら、前方の左右のセンサ３ｃ，３ｄにより前壁５１までの距離を繰り返し測定し、センサ３ｃ、３ｄの測定距離Ｍｃ、Ｍｄの値の差の絶対値が第２閾値以下になった時点で回転を停止する。続いて、図８（ｌ）に示すように、走行部１が左回りに９０度回転して前方向の斜め壁５１に沿ったあと、図８（ｍ）に示すように、作業部２の後端が横壁５２に接触するまで後退する。そして、図８（ｎ）に示すように、作業ロボット１００は斜め壁５１に沿って、作業をしながら所定距離前進する。これにより、前方の斜め壁５１沿いのスペースの一部が作業済みとなる。以後の動作は、前述した図７（ｆ）〜図７（ｊ）と同様の動作を行って作業ロボット１００は次のレーンに移る。
【００５７】
ところで、図９（ａ）に示すように、実際にはロボットが斜め壁５１に正対する向きにあっても、右側の超音波センサ３ｄが誤って横壁５２を検出してしまい、左右のセンサ３ｃ，３ｄの測定距離Ｍｃ，Ｍｄが近い値にならなかったり、あるいは、超音波センサ３ｄから出射された超音波の反射波が帰ってこず、測定距離が得られないという場合が生ずる。この場合、図９（ａ）の時点では、走行部１が回転を停止せず、図９（ｂ）に示すように、右側の超音波センサ３ｄの測定距離Ｍｄと、左側の超音波距離センサ３ｃの測定距離Ｍｃとが、ほぼ等しい値になった時点で回転を停止し、その時点での回転角度θを、斜め壁５１の傾き角度であると誤って認識してしまい、以後の動作を正しく制御できなくなるおそれがある。
【００５８】
そこで、こういった不具合を解消するため、走行部１が横壁５２に沿って走行している場合は、斜め壁５１の傾き角度を計測する前に、前記回転動作の回転中心Ｏを横壁５２から離れる方向に所定距離移動させるように制御する。すなわち、図９（ｃ）に示すように、回転中心ＯをＡ点の位置から、横壁５２から離れたＦ点の位置に移動させることによって、図９（ｄ）に示すように、右側の超音波センサ３ｄが横壁５２までの距離を測定することなく、斜め壁５１と正対する角度を正確に測定することが可能になる。
【００５９】
図１０（ａ）〜（ｋ）を参照して、かかる動作の具体例を説明する。
図１０（ａ）〜図１０（ｂ）の動作については、前述した図５（ａ）〜図５（ｂ）の動作と同様であるので説明を省略する。図１０（ｃ）に示すように、走行部１が右回りに９０度回転する。続いて、図１０（ｄ）に示すように、走行部１が横壁５２から離れる方向に所定距離後退すると共に、この時の移動距離Ｄ４を記憶する。この後退後、図１０（ｅ）に示すように、走行部１が左回りに９０度回転する。そして、図１０（ｆ）に示すように、作業ロボット１００は作業を行いながら前進し、前方に障害物を検出した時点で走行を停止する。
【００６０】
つぎに、図１０（ｇ）に示すように、走行部１が右回りに回転して、前方の斜め壁の傾き角度θを記憶する。図１０（ｈ）に示すように、走行部１が左回りに前記角度θだけ回転して前記図１０（ｆ）の進行方向Ｙの向きに戻る。図１０（ｉ）では、後述する（５）式および（６）式から、Ｂ点（図４（ｄ））の座標を計算し、回転中心ＯのＹ座標がＢ点のＹ座標Ｙｂに一致する地点まで後退する。そして、図１０（ｊ）に示すように、走行部１が左回りに９０度回転した後、図１０（ｋ）に示すように、回転中心ＯのＸ座標がＢ点のＸ座標Ｘｂに一致する地点まで後退する。この後退中に作業部２の後端が横壁５２に接触したら、そこで後退を停止する。これにより、作業部２の右側の端部２１を前記Ｃ点に接する位置に移動させることができる。以後の動作は、前記図５（ｇ）〜図５（ｓ）に示す動作と同様にして、作業ロボット１００は次のレーンに移る。
【００６１】
前記Ｂ点の座標は、たとえば、下記の演算式から算出される。図９（ｃ）および図９（ｄ）において、
Ｃ点の座標を（Ｘｃ，Ｙｃ）、Ｄ点の座標を（Ｘｄ，Ｙｄ）、Ｆ点の座標を（Ｘｆ，Ｙｆ）とする。
Ｃ点のＸ座標は、Ｘｃ＝Ｘａ＋Ｄ１＝Ｘｆ＋Ｄ４＋Ｄ１
Ｄ点のＹ座標は、Ｙｄ＝Ｙｆ＋Ｄ２／cos θ
Ｃ点のＹ座標は、Ｙｃ＝Ｙｄ−（Ｄ１＋Ｄ４）×tan θ
＝Ｙｆ＋Ｄ２／cos θ−（Ｄ１＋Ｄ４）×tan θ
【００６２】
上記の如く、Ｃ点の座標（Ｘｃ，Ｙｃ）は、Ｆ点の座標（Ｘｆ，Ｙｆ）と、Ｄ１、Ｄ２、Ｄ４、θを用いて下記のように表せる。
Ｘｃ＝Ｘｆ＋Ｄ４＋Ｄ１
Ｙｃ＝Ｙｆ＋Ｄ２／cos θ−（Ｄ１＋Ｄ４）×tan θ
【００６３】
従って図４（ｄ）のＢ点の座標（Ｘｂ，Ｙｂ）は、回転中心Ｏから作業部２の後端までの距離Ｄ３と、作業部２の幅Ｗを用いて下記のように表せる。
Ｘｂ＝Ｘｃ−Ｄ３＝Ｘｆ＋Ｄ４＋Ｄ１−Ｄ３  …（５）
Ｙｂ＝Ｙｃ−Ｗ／２
＝Ｙｆ＋Ｄ２／cos θ−（Ｄ１＋Ｄ４）×tan θ−Ｗ／２  …（６）
【００６４】
なお、前記複数の超音波センサ３ａ〜３ｅは、超音波の干渉を避けるため、一つずつ所定の時間間隔を空けて、所定の順序で測定するのが好ましい。
【００６５】
ところで、超音波センサは、超音波を発射してから障害物で反射された反射波が戻ってくるまでの時間を計測することにより障害物までの距離を測定するものであるが、障害物の傾斜が大きくなると、超音波センサに反射波が戻ってこず、測定が出来ない場合がある。そのため、超音波センサだけでは、傾斜の小さい障害物しか検出することができない。  
【００６６】
そこで、本発明では、超音波センサ３ａ〜３ｅに加え、光学式センサ１７ａ〜１７ｅを設けている。光学式センサは、一般に測定対象の面が鏡面でなく拡散面であれば、散乱反射された光の一部を検出することができるので、傾斜の大きい障害物であっても距離を測定することができる。
【００６７】
これにより、たとえば、図１１（ａ）や図１１（ｂ）に示すように、障害物５１が作業ロボット１００の進行方向Ｙに対して大きく傾斜している場合でも、光学式センサ１７ａ〜１７ｅの検出により測定することができるから、障害物の検出精度を向上させることができる。
したがって、例えば、右側の超音波センサ３ｄが障害物５１を検出せず、かつ、右側の光学式センサ１７ｅが障害物５１を検出している場合は、当該障害物５１の傾きが所定の傾き角度よりも大きいと判断され、ロボットの右側に斜め壁５１が存在すると判断することも可能である。
なお、超音波センサおよび光学式センサの双方が障害物を検出している場合は、障害物の傾きが大きいと断定せずに、前記両センサのうちの１種以上のセンサからの出力に基づいて傾斜角の大小を判別してもよい。
【００６８】
また、真正面の前方を測定する光学式センサと所定の角度傾けた光学式センサとの測定値を比較することにより、壁の傾きの大きさを、ある程度認識することができる。そのため壁が非常に大きく傾いている場合は、その壁を横壁と見なす等の、より高度な処理を行うことができる（図１１（ａ）と図１１（ｂ）の差が分かる）。
【００６９】
さらに、ロボットの左右のそれぞれに超音波センサおよび／または光学式センサの双方を有することにより、図１１（ｃ）に示すように傾斜している２つの壁が交わる隅部に向ってロボットが走行しているか否かについても検出ことが可能である。ロボットがそのような隅部に向って走行していることが検出された場合は、ロボットがいずれか一方の壁に沿うようにロボットの姿勢を変更してもよく、そうすることにより、図４（ｂ）に示すような横壁に沿った状態にすることができる。
【００７０】
ところで、前記実施例では、側方距離測定手段によって測定された複数の測定値からなる履歴に基づいて、走行アセンブリが横壁に沿って走行しているか否かについて判別した。しかし、この判別のための測定値は、測定手段を複数ないし多数設けて得るようにしてもよい。
また、測定距離の差の絶対値が所定の第２閾値よりも大きいか否かにより、前方の障害物の傾きを判別した。しかし、この判別は図４（ｂ），（ｃ）の測定距離Ｍｃ，Ｍｄの比率（Ｍｃ／ＭｄまたはＭｄ／Ｍｃ）で行うことが可能である。前記判別が前記比率で行われるロボットにおいては、図４（ｃ）のように、当該比率が１．０に近い値の場合は、つまり、前記比率が所定範囲内である場合は、障害物５１の傾きが小さいと判断され、一方、図４（ｂ）のように、当該比率が１．０に近くない場合は、つまり、前記比率が所定範囲外である場合は障害物５１の傾きが大きいと判断される。すなわち、この判別は測定距離の比が所定範囲内であるか否かにより行われてもよい。
【００７１】
ところで、前方距離測定手段および／または側方距離測定手段の各センサの個数および配置は前記実施例に限定されず、適宣設定されることができる。また、隅部での動作制御で用いる演算式は、前記のものもに限られず、他の制御方法であってもよい。
【００７２】
以上のとおり、図面を参照しながら好適な実施例を説明したが、当業者であれば、本明細書を見て、自明な範囲内で種々の変更および修正を容易に想定するであろう。
たとえば、車輪の構造には自在キャスタを採用してもよい。ロボットは液剤の塗布などを行うものでもよい。
したがって、そのような変更および修正は、請求の範囲から定まる本発明の範囲内のものと解釈される。
【産業上の利用可能性】
【００７３】
本発明のロボットは、自走しながら種々の作業を行うロボットに利用できる。
【図面の簡単な説明】
【００７４】
【図１】実施例１にかかる作業ロボットの走行部の構成を示す平面図および側面図である。
【図２】（ａ）は作業ロボットの外観を示す平面図、（ｂ）は制御構成を示すブロック図である。
【図３】直角の壁に囲まれた領域を作業する場合の動作を示す平面図である。
【図４】鈍角の隅部を作業する際の動作を示す平面図である。
【図５】同一連の作業工程を示す平面図である。
【図６】横壁から離れたレーンで斜め壁に沿って作業する場合の動作を示す平面図である。
【図７】横壁から離れたレーンで斜め壁に沿って作業する場合の動作を示す平面図である。
【図８】鋭角の隅部を作業する際の動作を示す平面図である。
【図９】実施例２の動作を示す平面図である。
【図１０】同一連の作業工程を示す平面図である。
【図１１】超音波センサだけでは測定できない場合の動作を示す平面図である。
【符号の説明】
【００７５】
１：走行部
２：作業部
７：ジャイロセンサ（回転角度測定手段）
８：マイコン（制御手段）
３ａ，３ｂ：超音波センサ（側方距離測定手段）
３ｃ〜３ｅ：超音波センサ（前方距離測定手段）
１７ａ〜１７ｅ：光学式センサ（前方距離測定手段）
３０：ＣＰＵ（制御手段，判別手段）
３１：メモリ（記憶手段）
θ：回転角度
Ｏ：回転中心（鉛直線）
【図１】
2005135400.tif 000003
【図２】
2005135400.tif 000004
【図３】
2005135400.tif 000005
【図４】
2005135400.tif 000006
【図５】
2005135400.tif 000007
【図６】
2005135400.tif 000008
【図７】
2005135400.tif 000009
【図８】
2005135400.tif 000010
【図９】
2005135400.tif 000011
【図１０】
2005135400.tif 000012
【図１１】
2005135400.tif 000013