説明

自走装置およびその制御方法

【課題】無駄な走行距離を短くして効率的に作業を行なうことが可能な自走装置およびその制御方法を提供する。
【解決手段】自走装置Rは、駆動輪WLおよびWRと、自走装置Rと前方の物体との距離である前方離間距離LFを検出する前方距離検出部SFと、自走装置Rと側方の物体との距離である側方離間距離LSを検出する側方距離検出部SSと、所定周期で、検出された前方離間距離LFに基づいて自走装置Rを旋回させるか否かを決定し、旋回させると決定した場合には検出された前方離間距離LFおよび側方離間距離LSに基づいて自走装置Rの瞬間旋回中心RCを算出し、算出した瞬間旋回中心RCに基づいて駆動輪WLおよびWRの速度を決定する制御部COMとを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自走装置およびその制御方法に関し、特に、清掃ロボットおよび塗装ロボット等、壁沿い走行を行なう自走装置およびその制御方法に関する。
【背景技術】
【0002】
従来、清掃ロボット等の自走装置では壁沿い走行が多く利用されている。清掃ロボット型の自走装置において、部屋の角部をくまなく清掃するためには、清掃を行なう作業部が自走装置の端部に備えられ、かつ作業部が角のある形状とすることが望ましい。
【0003】
これらの条件を満たす形状の自走装置は、旋回時に端部が周囲の物体に接触することがある。特に壁の角部で旋回を行なう場合、旋回により自走装置の端部が壁に接触する。たとえば自走装置が部屋の右側の壁沿いに進んで部屋の角部に到達したときには左旋回する必要があるが、このような形状の自走装置の場合、壁の角部付近で左旋回すると、自走装置の端部が壁に接触する。自走装置が周囲の物体に接触しながら無理やり回転することは好ましくない。このような問題点を解決するために、たとえば、特許文献1には、以下に示すような自走装置が開示されている。すなわち、自走装置は、角部において複数回の回転および後退走行を組み合わせた一定の角旋回パターンにしたがって走行する。また、特許文献2には、以下に示すような自走装置が開示されている。すなわち、自走装置は、スライド式の作業部を備え、部屋の角部の曲がり角に応じた旋回動作を選択する。このような構成により、未作業領域のない走行を実現する。
【特許文献1】特開2005−135400号公報
【特許文献2】特開平5−46239号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1および特許文献2記載の自走装置では、壁の角部で旋回する際に自走装置本体分程度の距離を往復する必要があり、無駄な走行距離が多いという問題点があった。
【0005】
それゆえに、本発明の目的は、無駄な走行距離を短くして効率的に作業を行なうことが可能な自走装置およびその制御方法を提供することである。
【課題を解決するための手段】
【0006】
上記課題を解決するために、この発明のある局面に係わる自走装置は、一対の駆動輪と、自走装置と前方の物体との距離である前方離間距離を検出する前方距離検出部と、自走装置と側方の物体との距離である側方離間距離を検出する側方距離検出部と、所定周期で、検出された前方離間距離に基づいて自走装置を旋回させるか否かを決定し、旋回させると決定した場合には検出された前方離間距離および側方離間距離に基づいて自走装置の旋回中心を算出し、算出した旋回中心に基づいて各駆動輪の速度を決定する制御部とを備える。
【0007】
好ましくは、自走装置は、さらに、自走装置の前方部に配置され、床面作業を行なう作業部を備える。
【0008】
好ましくは、自走装置は、さらに、各駆動輪の所定の最大速度をそれぞれ記憶する記憶部を備え、制御部は、自走装置を旋回させると決定した場合には、算出した旋回中心に基づいて一対の駆動輪のいずれか一方の速度を所定の最大速度に決定する。
【0009】
好ましくは、自走装置は、さらに、各駆動輪の所定の最大速度をそれぞれ記憶する記憶部を備え、制御部は、さらに、自走装置を旋回させないと決定した場合には、一対の駆動輪のうち少なくともいずれか一方の速度を所定の最大速度に決定する。
【0010】
好ましくは、制御部は、自走装置が旋回していない場合であって検出された前方離間距離が第1の閾値未満であるときには自走装置の旋回を開始することを決定し、自走装置が旋回している場合であって検出された前方離間距離が第1の閾値より大きい第2の閾値を超えるときには自走装置の旋回を終了することを決定する。
【0011】
より好ましくは、第1の閾値は自走装置の前後長の1/5よりも小さく、第2の閾値は自走装置の前後長よりも大きい。
【0012】
好ましくは、自走装置は、さらに、前方の物体との接触を検出する前方接触検出部を備え、制御部は、さらに、自走装置が旋回していない場合であって前方接触検出部が接触を検出したときには自走装置を旋回させることを決定し、旋回させると決定した場合には検出された側方離間距離に基づいて自走装置の旋回中心を算出し、算出した旋回中心に基づいて各駆動輪の速度を決定する。
【0013】
好ましくは、制御部は、さらに、自走装置が旋回を開始してからの自走装置の旋回角度を算出し、算出した旋回角度が所定値より大きい場合には自走装置の旋回を終了する。
【0014】
より好ましくは、制御部は、自走装置が旋回を開始してから経過した時間および決定した各駆動輪の速度に基づいて自走装置の旋回角度を算出する。
【0015】
より好ましくは、所定値は90度未満である。
好ましくは、自走装置は、さらに、物体との接触を検出する接触検出部を備え、制御部は、さらに、自走装置の旋回中に自走装置と物体との接触が検出された場合には自走装置が接触した物体から離れるように各駆動輪の速度を決定する。
【0016】
より好ましくは、制御部は、自走装置の旋回中に自走装置と物体との接触が検出された場合には、自走装置が所定距離後退し、その後、所定角度旋回するように各駆動輪の速度を決定する。
【0017】
より好ましくは、制御部は、自走装置の旋回中に自走装置と物体との接触が検出された場合には、自走装置が自走装置の前後長の1/5以下後退し、その後、20度以下旋回するように各駆動輪の速度を決定する。
【0018】
好ましくは、自走装置の走行する床面と平行な平面において、自走装置の直進方向と垂直な方向における前方距離検出部の検出範囲の中心、および前方距離検出部を通る線と自走装置の直進方向とのなす角は30度以内である。
【0019】
好ましくは、自走装置の走行する床面と平行な平面において、自走装置の直進方向と平行な方向における側方距離検出部の検出範囲の中心、および側方距離検出部を通る線と自走装置の直進方向とのなす角は60度以上かつ120度未満である。
【0020】
上記課題を解決するために、この発明のある局面に係わる自走装置の制御方法は、一対の駆動輪を備えた自走装置の制御方法であって、自走装置と前方の物体との距離である前方離間距離を検出するステップと、自走装置と側方の物体との距離である側方離間距離を検出するステップと、所定周期で、検出された前方離間距離に基づいて自走装置を旋回させるか否かを決定し、旋回させると決定した場合には検出された前方離間距離および側方離間距離に基づいて自走装置の旋回中心を算出し、算出した旋回中心に基づいて各駆動輪の速度を決定するステップとを含む。
【発明の効果】
【0021】
本発明によれば、無駄な走行距離を短くして効率的に作業を行なうことができる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0023】
<第1の実施の形態>
図1は、本発明の実施の形態に係る自走装置の構成を示す平面図である。
【0024】
同図を参照して、上側が自走装置Rの前方部である。また、自走装置Rの形状は前方部が略四角形(角型)であり、後方部が略円形である。また、自走装置Rのサイズはたとえば前後長が約350mmであり、左右幅が約350mmである。
【0025】
自走装置Rは、駆動輪Wと、ステッピングモータMOと、距離センサSと、演算部(制御部)COMと、電池BTと、前方接触センサ(前方接触検出部)BFと、側方接触センサ(側方接触検出部)BSと、清掃部(作業部)CLNとを備える。駆動輪Wは、左駆動輪WLと、右駆動輪WRとを含む。ステッピングモータMOは、左右の駆動輪WLおよびWRに対応する2個のステッピングモータMOLおよびMORを含む。距離センサSは、前方距離センサ(前方距離検出部)SFと、側方距離センサ(側方距離検出部)SSとを含む。演算部COMは、メモリMEMと、タイマTIMと、カウンタCPとを含む。
【0026】
清掃部CLNは、自走装置Rの前方部に配置され、床面の清掃を行なう。このような構成により、容易に部屋等の角部までくまなく清掃を行なうことができる。
【0027】
距離センサSは、赤外線による三角測量式のセンサであり、自走装置Rの周囲の物体までの離間距離を測定する。前方距離センサSFは、自走装置Rの前方に検出範囲を有し、自走装置Rと前方の物体との距離である前方離間距離を検出する。側方距離センサSSは、自走装置Rの側方に検出範囲を有し、自走装置Rと側方の物体との距離である側方離間距離を検出する。前方距離センサSFおよび側方距離センサSSは、自走装置Rの右前方部に配置される。
【0028】
前方接触センサBFは、自走装置Rの前面が物体に接触したことを検知する。側方接触センサBSは、自走装置Rの側面が物体に接触したことを検知する。
【0029】
ステッピングモータMOは、演算部COMから受けたパルス数に応じて左駆動輪WLおよび右駆動輪WRを回転させる。ここで、右駆動輪WRおよび左駆動輪WLの回転軸線は一致している。
【0030】
電池BTは、ステッピングモータMO、清掃部CLN、距離センサSおよび演算部COM等を駆動するための電力を供給する。電池BTは図示しない配線によりステッピングモータMO、清掃部CLN、距離センサSおよび演算部COM等と接続されている。
【0031】
演算部COMはたとえばマイクロコンピュータであり、メモリMEM等に記憶されたプログラムを実行する。演算部COMは、たとえば左右のステッピングモータMOと、距離センサSと、前方接触センサBFと、側方接触センサBSと、清掃部CLNとに接続されている。
【0032】
カウンタCPは、演算部COMが左右のステッピングモータMOにそれぞれ入力したパルス数(以下、左右のパルス数とも称する。)をカウントし、カウント結果をメモリMEMに保存する。
【0033】
タイマTIMは、時間を測定し、所定周期たとえば10msごとに演算部COMに対して所定周期が経過したことを表わす周期信号を出力する。
【0034】
メモリMEMは、左駆動輪WLおよび右駆動輪WR間の距離LWと、前方距離センサSFの取り付け位置PSFと、側方距離センサSSの取り付け位置PSSと、自走装置Rの前方端部の位置PCと、駆動輪Wの速度上限VMAXと、パルス−距離変換倍率と、角旋回走行の際にカウンタCPがカウントした左右のパルス数と、後述する接触回避旋回の際にカウンタCPがカウントした左右のパルス数と、後述する接触回避後退の際のカウンタCPがカウントした左右のパルス数と、目標離間距離LDと、後述する瞬間旋回中心を算出するための算出式F1〜F3と、後述する駆動輪速度を算出するための算出式F4〜F9とを少なくとも記憶している。
【0035】
図2(a)および(b)は、自走装置Rと壁面との位置関係を詳細に示す図である。
同図を参照して、前方距離センサSFの取り付け位置PSFおよび側方距離センサSSの取り付け位置PSSと、前方端部位置PCとは、ロボット座標系の座標として記憶されている。ここで、ロボット座標系は、左右の駆動輪WLおよびWRの取り付け位置の中間点を原点ORとし、左右の駆動輪WLおよびWRの回転軸の延在方向をx軸とし、x軸に直交する自走装置Rの直進方向をy軸とする座標系である。x軸は、自走装置Rの直進方向と垂直であり、y軸は、自走装置Rの直進方向と平行である。
【0036】
演算部COMは、距離センサSが検出した前方離間距離LF、側方離間距離LS、前方距離センサSFの取り付け位置PSFおよび側方距離センサSSの取り付け位置PSS等に基づいて、後述する算出式F1〜F3に基づいて自走装置Rの瞬間旋回中心RCを算出する。演算部COMは、自ら算出した瞬間旋回中心RCおよび左右の駆動輪WLおよびWRの離間距離LWならびに算出式F4〜F9等に基づいて左駆動輪WLおよび右駆動輪WRの目標速度VLおよびVRを算出する。
【0037】
演算部COMは、カウンタCPがカウントした左右のパルス数に基づいて自走装置Rの移動距離を算出する。具体的には、演算部COMは、ある時点で記憶した左右のパルス数を現在の左右のパルス数から減算して左右のパルス変位量を算出し、左右のパルス変位量に予め記憶しているパルス−距離変換倍率を乗じて左右の駆動輪移動距離を算出し、左右の駆動輪移動距離の平均値を算出し、左右の駆動輪移動距離の平均値から自走装置Rの移動距離を算出する。また、演算部COMは、左右の駆動輪WLおよびWRの離間距離LWを半径とし、左右の駆動輪移動距離の差を弧の長さとする扇形の中心角を自走装置Rの回転角として算出する。
【0038】
図2(a)に示すように、自走装置Rの走行する床面と平行な平面において、前方距離センサSFは、x軸方向における検出範囲の中心線、すなわちx軸方向における検出範囲の中心および前方距離センサSFを通る線が自走装置Rの直進方向と一致するように配置されている。側方距離センサSSは、y軸方向における検出範囲の中心線、すなわちy軸方向における検出範囲の中心および側方距離センサSSを通る線が自走装置Rの直進方向と直交するように配置されている。
【0039】
[動作]
図3は、本発明の実施の形態に係る自走装置が壁沿い走行を行なう際の動作手順を定めたフローチャートである。
【0040】
演算部COMは、前方距離センサSFの出力を読み込み、前方離間距離が20mm未満であるかどうかを判定する(S31)。
【0041】
演算部COMは、前方離間距離が20mm未満であると判定した場合(S31でYES)、後述する図4のフローチャートに示す角旋回走行を行なう(S33)。演算部COMは、角旋回走行が完了すると再び前方距離センサSFの出力を読み込み、角旋回走行を行なうか否かを決定する(S31)。
【0042】
演算部COMは、前方離間距離が20mm未満ではないと判定した場合(S31でNO)、前方接触センサBFの出力を読み込む(S32)。
【0043】
演算部COMは、自走装置Rの前面が接触している場合(S32でYES)、図4のフローチャートに示す角旋回走行を行なう(S33)。
【0044】
一方、演算部COMは、自走装置Rの前面が接触していない場合(S32でNO)、壁沿い走行用の左右の駆動輪速度を算出する(S34)。
【0045】
より詳細には、演算部COMは、側方距離センサSSの出力を読み込んで、自走装置Rの側方部から壁までの距離とメモリMEMに予め記憶している目標離間距離LDとを比較する。
【0046】
演算部COMは、自走装置Rの側方部から壁までの距離が目標離間距離LDとほぼ等しい場合には、演算部COMは左右の駆動輪速度VRとVLを共に最大駆動輪速度VMAXに設定する。
【0047】
また、演算部COMは、自走装置Rの側方部から壁までの距離が目標離間距離LDよりも長い場合には、左駆動輪速度VLを最大駆動輪速度VMAXに設定し、右駆動輪速度VRをVMAXよりも小さい値に設定する。
【0048】
また、演算部COMは、自走装置Rの側方部から壁までの距離が目標離間距離LDよりも短い場合には、右駆動輪速度VRを最大駆動輪速度VMAXに設定し、左駆動輪速度VLをVMAXよりも小さい値に設定する。
【0049】
このように、左駆動輪速度VLおよび右駆動輪速度VRの少なくともいずれか一方を最大駆動輪速度VMAXに設定することにより、自走装置Rをできるだけ高速に走行させることができる。
【0050】
演算部COMは、算出した左右の駆動輪速度VLおよびVRに対応する数のパルスを左右のステッピングモータMOにそれぞれ出力する(S35)。
【0051】
そして、演算部COMは、タイマTIMの出力を読み込んで、周期時間たとえば10msの経過を待ち(S36)、再び前方距離センサSFの出力を読み込み、角旋回走行を行なうか否かを決定する(S31)。
【0052】
図4は、本発明の実施の形態に係る自走装置が角旋回走行を行なう際の動作手順を定めたフローチャートである。
【0053】
まず、演算部COMは、角旋回走行を終了すべきか否かの判定を行なう(S41)。具体的には、演算部COMは、角旋回走行開始からの旋回角度が60度より大きい場合には(S41でYES)角旋回走行を終了し(S43)、再び前方距離センサSFの出力を読み込み、角旋回走行を行なうか否かを決定する(S31)。
【0054】
演算部COMは、旋回角度が60度以下の場合であって(S41でNO)前方距離センサSFが検出した前方離間距離が500mmより大きいときには(S42でYES)、角旋回走行を終了し(S43)、再び前方距離センサSFの出力を読み込み、角旋回走行を行なうか否かを決定する(S31)。
【0055】
演算部COMは、旋回角度が60度以下の場合であって(S41でNO)前方離間距離が500mm以下であるときには(S42でNO)、前方接触センサBFおよび側方接触センサBSの出力を読み込む(S44)。
【0056】
演算部COMは、前方部または側方部と物体との接触があると判定した場合には(S44でYES)、ステッピングモータMOLおよびMORを駆動して自走装置Rを15mm後退させる接触回避後退を行なう(S45)。
【0057】
具体的には、演算部COMは、左右のステッピングモータMOLおよびMORに対して最高速度VMAXの1/2の速度で後退する指令を出す。また、演算部COMは、後退開始時のカウンタCPの値をメモリMEMに記憶させる。そして、演算部COMは、タイマTIMからの周期信号に基づいて所定周期ごとにカウンタCPの値を調べ、後退開始時からの走行距離を算出する。演算部COMは、後退開始からの走行距離が15mmを超えた時点で左右のステッピングモータMOLおよびMORを停止させる。
【0058】
そして、演算部COMは、ステッピングモータMOLおよびMORを駆動して自走装置Rを左に5度旋回させる接触回避旋回を行なう(S46)。
【0059】
具体的には、演算部COMは、ステッピングモータMOLに対して最高速度VMAXでの後退指令を出し、ステッピングモータMORに対して最高速度VMAXでの前進指令を出す。また、演算部COMは、左旋回開始時のカウンタCPの値をメモリMEMに記憶させる。そして、演算部COMは、タイマTIMからの周期信号に基づいて所定周期ごとにカウンタCPの値を調べ、後退開始時からの旋回角度を算出する。演算部COMは、後退開始からの旋回角度が5度を超えた時点で左右のステッピングモータMOLおよびMORを停止させる。そして、演算部COMは、角旋回走行を終了すべきか否かの判定を再び行なう(S41)。
【0060】
このような構成により、角旋回走行中において物体との接触が発生しても適切に走行を継続することができる。
【0061】
演算部COMは、前方部および側方部と物体との接触がないと判定した場合には(S44でNO)、瞬間旋回中心RCを算出する(S47)。瞬間旋回中心RCの算出については、後述する図8のフローチャートで詳細に説明する。
【0062】
そして、演算部COMは、算出した瞬間旋回中心RCに基づいて左右の駆動輪速度VLおよびVRを算出する(S48)。左右の駆動輪速度VLおよびVRの算出については、後述する図9のフローチャートで詳細に説明する。
【0063】
そして、演算部COMは、駆動輪速度VLおよびVRに対応する数のパルスをステッピングモータMOLおよびMORにそれぞれ出力する(S49)。
【0064】
そして、演算部COMはタイマTIMからの周期信号を受けて、周期時間たとえば10msの経過を待ち(S4a)、角旋回走行を終了すべきか否かの判定を再び行なう(S41)。
【0065】
次に、自走装置Rが壁沿い走行および角旋回走行を行なう手順の一例を説明する。
自走装置Rは、清掃作業の一部として、壁に沿って部屋を1周する壁沿い清掃を行なう。自走装置Rは、壁沿い清掃中において、部屋の角部に接近したかどうかを判定し(S31)、部屋の角部に接近したと判断した場合には(S31でYES)、角旋回走行を開始する(S33)。
【0066】
自走装置Rは、部屋の角部の曲がり角が60度より大きい場合、60度以上旋回した時点で(S41でYES)角旋回走行を終了し(S43)、壁沿い走行を再開する(S31)。ここで、曲がり角とは、部屋の角部における手前の壁面の延在軸と次の壁面とのなす角度をいい、曲がり角0度は壁が曲がっていない状態を示し、曲がり角90度は壁が直角に曲がっている状態を示す。
【0067】
一方、部屋の角部の曲がり角が60度以下である場合、自走装置Rが次の壁面とほぼ平行になるまで旋回した時点で、前方距離センサSFが壁を検出しなくなる。すなわち、前方離間距離が500mmよりも大きい値になる(S42でYES)。
【0068】
前方離間距離が500mmよりも大きい値になると(S42でYES)、自走装置Rは角旋回走行を終了し(S43)、壁沿い走行を再開する(S31)。
【0069】
したがって、本発明の実施の形態に係る自走装置は、壁の曲がり角が60度以下である場合にも、角旋回走行の開始および終了を適切に行なうことができる。
【0070】
図5は、(a)90度、(b)60度、(c)45度の曲がり角を有する壁面を本発明の実施の形態に係る自走装置が走行するシミュレーション結果を示す図である。
【0071】
TRはロボット座標系の原点ORの軌跡であり、TCは自走装置Rの前方端部位置PCの軌跡であり、AREAは清掃部CLNが通過した領域である。
【0072】
同図を参照して、いずれの曲がり角を有する壁面においても、壁沿いに未清掃領域がほとんど無いこと、自走装置Rの前方端部が壁面に近接した状態で旋回していること、および往復動作は部屋の角部付近での1回だけであり、かつ往復距離は自走装置Rの寸法よりかなり小さいことが分かる。
【0073】
次に、2つの角部が連続する壁面において本発明の実施の形態に係る自走装置が壁沿い走行および角旋回走行を行なう際の動作について説明する。
【0074】
図6は、2つの角部が連続する壁面において本発明の実施の形態に係る自走装置が行なう壁沿い走行および角旋回走行の様子を示す図である。
【0075】
同図に示すように2つの角部WC1およびWC2が近接する壁面では、自走装置Rが最初の角部WC1を曲がり終わった時点で次の角部WC2が自走装置Rの前面に近接しており、前方距離センサSFの出力する前方離間距離LFが500mm以下となる。
【0076】
このような壁面において、仮に、自走装置Rが、角旋回走行開始からの旋回角度によって角旋回走行を終了すべきか否かの判定(S41)を行なわない構成であるとすると、前方離間距離LFが500mm以下であることから角旋回走行の終了条件が満たされない。このため、自走装置Rが最初の角部WC1で開始した角旋回走行が継続されたまま2つ目の角部WC2における自走装置Rの走行が行なわれる。したがって、自走装置Rが2つ目の角部WC2から離れた位置で角旋回走行を行なうことになり、角部WC2に近接して走行することができず、角部WC2付近の未清掃領域が増大してしまう。
【0077】
しかしながら、本発明の実施の形態に係る自走装置では、角旋回走行開始からの旋回角度によって角旋回走行を終了すべきか否かの判定を行なう(S41)構成である。このため、自走装置Rは、角旋回走行開始から60度を超えて回転した時点で1つ目の角部WC1を曲がり終えたと判定して(S41でYES)壁沿い走行を再開し、2つ目の角部WC2に接近する。したがって、本発明の実施の形態に係る自走装置では、2つ目の角部WC2に対しても接近してから角旋回走行を開始することができ、各角部に近接して走行することができる。
【0078】
ここで、角旋回走行終了の判定基準である角旋回走行開始からの旋回角度を60度とする理由を説明する。
【0079】
一般に、人工の壁面では角部の曲がり角が90度前後の物が多い。90度前後の角部において、自走装置Rが60度旋回した時点で壁沿い走行を再開した場合、自走装置の進行方向は次の壁面に対して約30度傾いた方向となる。ここで、壁面に対して約40度以下の傾きであれば自走装置Rは図3のフローチャートに示す壁沿い走行で適正に走行することが可能である。したがって、本発明の実施の形態に係る自走装置では、角旋回走行終了の判定基準である角旋回走行開始からの旋回角度を60度とする構成により、たとえば連続する2つの角部の曲がり角がそれぞれ60度以上かつ100度以下である場合、各角部において角旋回走行の開始および終了を適切に行なうことができる。このため、本発明の実施の形態に係る自走装置は、90度前後の角部が連続する壁面形状における未清掃領域の増大を防ぐことができる。なお、角旋回走行終了の判定基準である角旋回走行開始からの旋回角度は、60度に限定するものではなく、自走装置Rの直進方向が壁面に対して40度となる50度であってもよい。すなわち、角旋回走行終了の判定基準である角旋回走行開始からの旋回角度は、50度以上かつ90度未満とすることが可能である。
【0080】
次に、本発明の実施の形態に係る自走装置が行なう瞬間旋回中心RCの算出方法の概要を説明する。
【0081】
本発明の実施の形態に係る自走装置において、瞬間旋回中心RCおよび駆動輪速度の算出は、前述の自走装置Rの位置を基準とするロボット座標系上で行なう。
【0082】
再び図2を参照して、演算部COMは、前方距離センサSFの取り付け位置PSFおよび側方距離センサSSの取り付け位置PSSと前方離間距離LFおよび側方離間距離LSとに基づいて、ロボット座標系における前方物体検出位置PFおよび側方物体検出位置PSを算出する。
【0083】
距離センサSは破線で示すような扇形の検出範囲を持つが、演算部COMは、物体検出位置が検出範囲の中心線(図2(a)の一点鎖線)上にあると仮定して算出する。
【0084】
図2(b)を参照して、演算部COMは、前方物体検出位置PFおよび側方物体検出位置PSを結んだ直線を仮想的な壁面Vとみなし、自走装置Rの前方端部位置PCが仮想壁面Vと平行に移動するための瞬間旋回中心RCを求める。
【0085】
瞬間旋回中心RCは幾何学的に、前方端部位置PCを通り仮想壁面Vに垂直な直線(図2(b)の破線)と、x軸(駆動輪Wの回転軸の延長線)との交点として決定される。演算部COMは、代数式およびベクトルを利用して幾何学計算を行ない、瞬間旋回中心RCを算出する。具体的には、演算部COMは、後述する図8のフローチャートに示す各ステップを実行する。なお、図2では説明を分かりやすくするために自走装置Rと壁との距離を長めに描いているが、実際には、自走装置Rは可能な限り壁に近接して走行する。
【0086】
瞬間旋回中心RCの旋回円上において、自走機器Rの前方端部位置PCは仮想的な壁面Vに一番接近した(場合によってはめり込んだ)位置にあり、前方端部位置PCにおける旋回円の接線は仮想的な壁面Vと平行になる。そして、瞬間旋回中心RCの算出周期すなわちステップS4aにおける所定時間をたとえば10msの短時間に設定することにより、算出した瞬間旋回中心RCの旋回円上を自走装置Rが走行する距離が十分に短くなり、自走装置Rの前方端部位置PCの進行方向は仮想的な壁面Vとほぼ平行になる。
【0087】
次に、本発明の実施の形態に係る自走装置が行なう駆動輪速度の算出方法の概要を説明する。
【0088】
図7は、自走装置の旋回に関する位置関係を詳細に示す図である。
同図を参照して、左駆動輪WLと右駆動輪WRとの距離LWは、左駆動輪WLの幅方向の中央位置と、右駆動輪WRの幅方向の中央位置との距離である。
【0089】
まず、演算部COMは、x軸上における、瞬間旋回中心RCから左右の駆動輪の接地位置までの水平距離LLおよびLRを求める。ここで、演算部COMは、駆動輪Wの回転軸の幅方向における中心位置の鉛直下方に駆動輪Wの接地位置が存在すると仮定して計算する。
【0090】
演算部COMは、駆動輪速度の絶対値が駆動輪Wおよび瞬間旋回中心RC間の距離に比例することから、瞬間旋回中心RCからの距離が遠い側の駆動輪Wの速度を、駆動輪Wの速度上限VMAXに設定する。
【0091】
また、演算部COMは、他方の駆動輪の速度を、駆動輪Wの速度上限VMAXに水平距離LLおよびLRの比率を乗じた値とする。
【0092】
また、演算部COMは、左駆動輪WLの回転方向をベクトルVL、右駆動輪WRの回転方向をベクトルVRに設定し、自走装置Rの前方端部位置PCが瞬間旋回中心RC周りに左旋回する方向を選択する。
【0093】
具体的には、演算部COMは、後述する図9のフローチャートに示す各ステップを実行する。
【0094】
次に、本発明の実施の形態に係る自走装置が行なう瞬間旋回中心RCの算出方法を詳細に説明する。
【0095】
図8は、本発明の実施の形態に係る自走装置が瞬間旋回中心RCを算出する際の動作手順を定めたフローチャートである。
【0096】
図8および図2を参照して、演算部COMは、前方距離センサSFの取り付け位置PSFからy軸+方向に前方の離間距離LFだけ移動した位置として前方物体検出位置ベクトルPFを算出する(S81)。ここで、自走装置Rの前面が接触していることにより角旋回走行を行なう場合(S32でYES)には、演算部COMは、側方離間距離LSのみに基づいて瞬間旋回中心RCを算出することができる。これは、自走装置Rの前面が接触している場合には、演算部COMは、前方距離センサSFの取り付け位置PSFから固定的に前方物体検出位置ベクトルPFを算出することができるからである。
【0097】
演算部COMは、側方距離センサSSの取り付け位置PSSからx軸+方向に側方の離間距離LSだけ移動した位置として側方物体検出位置ベクトルPSを算出する(S82)。
【0098】
演算部COMは、物体検出位置ベクトルPF{PFx、PFy}およびPS{PSx、PSy}に基づいて、物体検出位置ベクトルPFおよび物体検出位置ベクトルPSを結ぶ線分と直交する直線の傾きKを以下の式によって算出する(S83)。
【0099】
K=(PFx−PSx)/(PSy−PFy) ・・・(F1)
傾きがKで自走装置Rの前方端部位置PC{PCx、PCy}を通過する直線は以下の式で表わされる。
【0100】
y=K(x−PCx)+PCy ・・・(F2)
演算部COMは、式(F2)で表わされる直線とx軸との交点である瞬間旋回中心RCのx座標RCxを以下の式によって算出する。
【0101】
RCx=−PCy/K+PCx ・・・(F3)
式(F3)は、式(F2)においてxを求める形式に変形した後、x=RCxおよびy=0を代入したものである。
【0102】
以上のように、演算部COMは、瞬間旋回中心RC{RCx、0}を算出する。
次に、本発明の実施の形態に係る自走装置が行なう瞬間旋回中心の算出方法を詳細に説明する。
【0103】
図9は、本発明の実施の形態に係る自走装置が駆動輪速度を算出する際の動作手順を定めたフローチャートである。
【0104】
図9および図7を参照して、演算部COMは、瞬間旋回中心RCから左駆動輪WLの接地位置までの水平距離LLを算出する(S91)。ここで、左駆動輪WLおよび右駆動輪WR間の距離がLWであり、原点ORは左駆動輪WLおよび右駆動輪WRの中点であることから、左駆動輪WLの接地位置は{−LW/2、0}である。したがって、瞬間旋回中心RCから左駆動輪WLの接地位置までの水平距離LLは、以下の式で表わされる。
【0105】
LL=RCx+LW/2 ・・・(F4)
式(F4)において、LLの符号は瞬間旋回中心RCと左駆動輪WLの接地位置との位置関係を表わす。すなわち、LLの符号が正の場合には瞬間旋回中心RCは左駆動輪WLの接地位置より右側となり、LLの符号が負の場合には瞬間旋回中心RCは左駆動輪WLの接地位置より左側になる。
【0106】
演算部COMは、瞬間旋回中心RCから右駆動輪WRの接地位置までの水平距離LRを以下の式によって算出する(S92)。
【0107】
LR=RCx−LW/2 ・・・(F5)
演算部COMは、LLとLRの絶対値を比較し、LLの絶対値のほうが大きい場合には(S93でYES)、左駆動輪WLの速度VLを以下の式によって算出する(S94)。
VL=−VMAX×LL/|LL| ・・・(F6)
式(F6)より、VLは−VMAXにLLの符号を乗じた値となる。
【0108】
次に、演算部COMは、右駆動輪WRの速度VRを以下の式(F7)によって算出する(S95)。
【0109】
VR=−VMAX×|LR|/|LL|×LR/|LR| ・・・(F7)
一方、演算部COMは、LLとLRの絶対値を比較し、LRの絶対値がLLの絶対値以上である場合には(S93でNO)、右駆動輪WRの速度VRを以下の式によって算出する(S94)。
【0110】
VR=−VMAX×LR/|LR|・・・(F8)
式(F8)より、VRは−VMAXにLRの符号を乗じた値となる。
【0111】
次に、演算部COMは、左駆動輪WLの速度VLを以下の式によって算出する。
VL=−VMAX×|LL|/|LR|×LL/|LL|・・・(F9)
以上のように、演算部COMは、左右の駆動輪速度VLおよびVRを算出する。駆動輪速度VLおよびVRの符号は正が前進方向を表わし、負が後退方向を表わす。なお、本発明の実施の形態に係る自走装置は右壁沿いの走行を行なう構成であるため、角部での旋回方向は左旋回である。
【0112】
このように、角旋回走行においても、左駆動輪速度VLおよび右駆動輪速度VRの少なくともいずれか一方を最大駆動輪速度VMAXに設定することにより、自走装置Rをできるだけ高速に旋回させることができる。
【0113】
[変形例1]
本発明の実施の形態に係る自走装置は右壁沿いの走行を行なう構成であるとしたが、これに限定するものではなく、左壁沿いの走行を行なう構成であってもよい。
【0114】
この場合、前方距離センサSFおよび側方距離センサSSは、自走装置Rの左前方部に取り付けられる。
【0115】
さらに、壁沿い走行中のステップS34の処理は以下のようになる。すなわち、演算部COMは、側方距離センサSSの出力を読み込んで、自走装置Rの側方部から壁までの距離とメモリMEMに予め記憶している目標離間距離LDとを比較する。
【0116】
演算部COMは、自走装置Rの側方部から壁までの距離が目標離間距離LDとほぼ等しい場合には、左右の駆動輪速度VLおよびVRを共に最大駆動輪速度VMAXに設定する。
【0117】
また、演算部COMは、自走装置Rの側方部から壁までの距離が目標離間距離LDよりも長い場合には、右駆動輪速度VRを最大駆動輪速度VMAXに設定し、左駆動輪速度VLをVMAXよりも小さい値に設定する。
【0118】
また、演算部COMは、自走装置Rの側方部から壁までの距離が目標離間距離LDよりも短い場合には、左駆動輪速度VLを最大駆動輪速度VMAXに設定し、右駆動輪速度VRをVMAXよりも小さい値に設定する。
【0119】
さらに、図8のフローチャートにおけるステップS82の処理は以下のようになる。すなわち、演算部COMは、側方距離センサSSの取り付け位置PSSからx軸−方向に側方の離間距離LSだけ移動した位置として側方物体検出位置ベクトルPSを算出する。さらに、駆動輪速度の算出式(F6)〜(F9)において、右辺の−VMAXをVMAXに置き換える(負の符号をなくす)。
【0120】
さらに、図4のフローチャートにおけるステップS46の処理は以下のようになる。すなわち、演算部COMは、ステッピングモータMOLおよびMORを駆動して自走装置を右に5度旋回させる接触回避旋回を行なう。
【0121】
上記以外の構成および動作は本発明の実施の形態に係る自走装置と同様であるため、ここでは詳細な説明を繰り返さない。
【0122】
[変形例2]
本発明の実施の形態に係る自走装置では、自走装置Rの走行する床面と平行な平面において、前方距離センサSFは、x軸方向における検出範囲の中心線が自走装置Rの直進方向と一致するように配置され、側方距離センサSSは、y軸方向における検出範囲の中心線が自走装置Rの直進方向と直交するように配置される構成であるとしたが、これに限定するものではない。前方距離センサSFのx軸方向における検出範囲の中心線が自走装置Rの直進方向と一致せず、側方距離センサSSのy軸方向における検出範囲の中心線が自走装置Rの直進方向と直交しない構成とすることも可能である。
【0123】
より詳細には、演算部COMにおけるメモリMEMは、前方距離センサSFの取り付け角θFおよび側方距離センサSSの取り付け角θSを記憶する。
【0124】
ここで、前方距離センサSFの取り付け角θFは、x軸方向における前方距離センサSFの検出範囲の中心線と自走装置Rの直進方向とのなす角度である。側方距離センサSSの取り付け角θSは、y軸方向における側方距離センサSSの検出範囲の中心線と自走装置Rの直進方向とのなす角度である。
【0125】
この場合、図8に示すフローチャートのステップS81の処理は以下のようになる。すなわち、演算部COMは、前方距離センサSFの取り付け位置PSF、前方離間距離LFおよび前方距離センサSFの取り付け角θFに基づいて、以下の式によって前方物体検出位置PFを算出する。
【0126】
PF=PSF+{LF×cos(θF)、LF×sin(θF)}・・・(F10)
さらに、図8に示すフローチャートのステップS82の処理は以下のようになる。すなわち、演算部COMは、側方距離センサSSの取り付け位置PSS、側方離間距離LSおよび側方距離センサSSの取り付け角θSに基づいて、以下の式によって側方物体検出位置PSを算出する。
【0127】
PS=PSS+{LS×cos(θS)、LS×sin(θS)}・・・(F11)
上記以外の構成および動作は本発明の実施の形態に係る自走装置と同様であるため、ここでは詳細な説明を繰り返さない。
【0128】
以上のような構成により、前方距離センサSFのx軸方向における検出範囲の中心線が自走装置Rの直進方向と一致せず、側方距離センサSSのy軸方向における検出範囲の中心線が自走装置Rの直進方向と直交しない構成にも本発明を適用することができる。
【0129】
なお、x軸方向における前方距離センサSFの検出範囲の中心線と自走装置Rの直進方向とのなす角度は、自走装置Rの前方の物体を検知するために30度以内である構成が好ましい。また、側方距離センサSSの取り付け角θSは、y軸方向における側方距離センサSSの検出範囲の中心線と自走装置Rの直進方向とのなす角度は、自走装置Rの側方の物体を検知するために60度以上かつ120度未満である構成が好ましい。
【0130】
ところで、特許文献1および特許文献2記載の自走装置では、壁の角部で旋回する際に自走装置本体分程度の距離を往復する必要があり、無駄な走行距離が多いという問題点があった。しかしながら、本発明の実施の形態に係る自走装置では、演算部COMが、所定周期で、距離センサSによって検出された前方離間距離LFおよび側方離間距離LSに基づいて自走装置Rが角旋回走行を行なうか否か、すなわち旋回するか否かを決定し、旋回すると決定した場合には前方離間距離LFおよび側方離間距離LSに基づいて自走装置Rの瞬間旋回中心RCを算出し、算出した瞬間旋回中心RCに基づいて各駆動輪の速度を決定する。このような構成により、所定周期で最適な旋回中心を算出して自走装置Rの清掃部CLNが配置された前方部が壁と平行に移動することができるため、たとえば図5に示すように壁の角部で旋回する際の往復距離を小さくすることができ、無駄な走行距離を短くして効率的に作業を行なうことができる。また、仮に駆動輪がスリップするなどして自走装置の正確な移動量および旋回角度が測定できない場合でも、駆動輪がスリップした次の周期においてすぐに前方離間距離LFおよび側方離間距離LSに基づいて瞬間旋回中心および左右の駆動輪速度を更新することができるため、壁から大きく離れることなく安定して走行することができる。
【0131】
また、直進して壁に接触すれば少しだけ旋回するという単純な壁沿い走行を行なう自走装置と比較して壁面への接触回数を少なくすることができ、商品性を向上させることができる。
【0132】
また、特許文献1および特許文献2記載の自走装置では、一定半径で旋回を行なう構成であるため、往復回数が多くなる等、無駄な走行距離が多いという問題点がある。しかしながら、本発明の実施の形態に係る自走装置では、前方離間距離LFおよび側方離間距離LSに基づいて自走装置Rの瞬間旋回中心RCを算出し、算出した瞬間旋回中心RCに基づいて各駆動輪の旋回半径を算出し、算出した各旋回半径に基づいて各駆動輪の速度をそれぞれ決定する。このような構成により、所定周期で最適な旋回半径を算出して自走装置Rの清掃部CLNが配置された前方部が壁と平行に移動することができ、無駄な走行距離を短くして効率的に作業を行なうことができる。
【0133】
また、特許文献1記載の自走装置は、回転角センサおよび複数の前方センサが必要であり、さらに作業部のスライド機構が必要であるため、製造コストが増大するという問題点があるが、本発明の実施の形態に係る自走装置では、回転角センサが不要であり、また、前方距離センサは1個だけ備えればよく、製造コストの低減を図ることができる。
【0134】
また、特許文献2記載の自走装置は、走行距離に基づく現在位置測定を行なった後、現在位置に基づいて旋回を行なうため、滑りなどにより正確な位置測定を行なうことができない状況では適正な旋回ができず、また、走行パターンが一定であり異なる角度の角部に対応できず、また、角部で旋回する際に壁から離れる動作が必要であるため狭い場所に対応できないという問題点がある。しかしながら、本発明の実施の形態に係る自走装置では、演算部COMが、所定周期で前方離間距離LFおよび側方離間距離LSに基づいて自走装置Rの瞬間旋回中心RCを算出し、算出した瞬間旋回中心RCに基づいて各駆動輪の速度をそれぞれ決定する構成であるため、滑りなどが生じて正確な走行距離の測定ができない場合でも適正に壁に沿って旋回することができ、また、様々な角度の角部に対応することができる。また、角部で旋回する際に壁から離れる動作が不要であるため、狭い場所でも適切に作業を行なうことができる。
【0135】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0136】
【図1】本発明の実施の形態に係る自走装置の構成を示す平面図である。
【図2】(a)および(b)は、自走装置Rと壁面との位置関係を詳細に示す図である。
【図3】本発明の実施の形態に係る自走装置が壁沿い走行を行なう際の動作手順を定めたフローチャートである。
【図4】本発明の実施の形態に係る自走装置が角旋回走行を行なう際の動作手順を定めたフローチャートである。
【図5】(a)90度、(b)60度、(c)45度の曲がり角を有する壁面を本発明の実施の形態に係る自走装置が走行するシミュレーション結果を示す図である。
【図6】2つの角部が連続する壁面において本発明の実施の形態に係る自走装置が行なう壁沿い走行および角旋回走行の様子を示す図である。
【図7】自走装置の旋回に関する位置関係を詳細に示す図である。
【図8】本発明の実施の形態に係る自走装置が瞬間旋回中心RCを算出する際の動作手順を定めたフローチャートである。
【図9】本発明の実施の形態に係る自走装置が駆動輪速度を算出する際の動作手順を定めたフローチャートである。
【符号の説明】
【0137】
R 自走装置、W 駆動輪、MO,MOL,MOR ステッピングモータ、S 距離センサ、COM 演算部(制御部)、BT 電池、BF 前方接触センサ(前方接触検出部)、BS 側方接触センサ(側方接触検出部)、CLN 清掃部(作業部)、WR 右駆動輪、WL 左駆動輪、SF 前方距離センサ(前方距離検出部)、SS 側方距離センサ(側方距離検出部)、MEM メモリ、TIM タイマ、CP カウンタ、PSF,PSS 取り付け位置、PC 前方端部位置、RC 瞬間旋回中心、OR 原点、LF 前方離間距離、LS 側方離間距離、LW 離間距離、LD 目標離間距離、LL,LR 水平距離、VL,VR 目標速度、VMAX 最大駆動輪速度。

【特許請求の範囲】
【請求項1】
自走装置であって、
一対の駆動輪と、
前記自走装置と前方の物体との距離である前方離間距離を検出する前方距離検出部と、
前記自走装置と側方の物体との距離である側方離間距離を検出する側方距離検出部と、
所定周期で、前記検出された前方離間距離に基づいて前記自走装置を旋回させるか否かを決定し、旋回させると決定した場合には前記検出された前方離間距離および側方離間距離に基づいて前記自走装置の旋回中心を算出し、前記算出した旋回中心に基づいて前記各駆動輪の速度を決定する制御部とを備える自走装置。
【請求項2】
前記自走装置は、さらに、前記自走装置の前方部に配置され、床面作業を行なう作業部を備える請求項1記載の自走装置。
【請求項3】
前記自走装置は、さらに、前記各駆動輪の所定の最大速度をそれぞれ記憶する記憶部を備え、
前記制御部は、前記自走装置を旋回させると決定した場合には、前記算出した旋回中心に基づいて前記一対の駆動輪のいずれか一方の速度を前記所定の最大速度に決定する請求項1記載の自走装置。
【請求項4】
前記自走装置は、さらに、前記各駆動輪の所定の最大速度をそれぞれ記憶する記憶部を備え、
前記制御部は、さらに、前記自走装置を旋回させないと決定した場合には、前記一対の駆動輪のうち少なくともいずれか一方の速度を前記所定の最大速度に決定する請求項1記載の自走装置。
【請求項5】
前記制御部は、前記自走装置が旋回していない場合であって前記検出された前方離間距離が第1の閾値未満であるときには前記自走装置の旋回を開始することを決定し、前記自走装置が旋回している場合であって前記検出された前方離間距離が前記第1の閾値より大きい第2の閾値を超えるときには前記自走装置の旋回を終了することを決定する請求項1記載の自走装置。
【請求項6】
前記第1の閾値は前記自走装置の前後長の1/5よりも小さく、前記第2の閾値は前記自走装置の前後長よりも大きい請求項5記載の自走装置。
【請求項7】
前記自走装置は、さらに、前方の物体との接触を検出する前方接触検出部を備え、
前記制御部は、さらに、前記自走装置が旋回していない場合であって前記前方接触検出部が接触を検出したときには前記自走装置を旋回させることを決定し、旋回させると決定した場合には前記検出された側方離間距離に基づいて前記自走装置の旋回中心を算出し、前記算出した旋回中心に基づいて前記各駆動輪の速度を決定する請求項1記載の自走装置。
【請求項8】
前記制御部は、さらに、前記自走装置が旋回を開始してからの前記自走装置の旋回角度を算出し、前記算出した旋回角度が所定値より大きい場合には前記自走装置の旋回を終了する請求項1記載の自走装置。
【請求項9】
前記制御部は、前記自走装置が旋回を開始してから経過した時間および前記決定した各駆動輪の速度に基づいて前記自走装置の旋回角度を算出する請求項8記載の自走装置。
【請求項10】
前記所定値は90度未満である請求項8記載の自走装置。
【請求項11】
前記自走装置は、さらに、物体との接触を検出する接触検出部を備え、
前記制御部は、さらに、前記自走装置の旋回中に前記自走装置と物体との接触が検出された場合には前記自走装置が前記接触した物体から離れるように前記各駆動輪の速度を決定する請求項1記載の自走装置。
【請求項12】
前記制御部は、前記自走装置の旋回中に前記自走装置と物体との接触が検出された場合には、前記自走装置が所定距離後退し、その後、所定角度旋回するように前記各駆動輪の速度を決定する請求項11記載の自走装置。
【請求項13】
前記制御部は、前記自走装置の旋回中に前記自走装置と物体との接触が検出された場合には、前記自走装置が前記自走装置の前後長の1/5以下後退し、その後、20度以下旋回するように前記各駆動輪の速度を決定する請求項12記載の自走装置。
【請求項14】
前記自走装置の走行する床面と平行な平面において、前記自走装置の直進方向と垂直な方向における前記前方距離検出部の検出範囲の中心、および前記前方距離検出部を通る線と前記自走装置の直進方向とのなす角は30度以内である請求項1記載の自走装置。
【請求項15】
前記自走装置の走行する床面と平行な平面において、前記自走装置の直進方向と平行な方向における前記側方距離検出部の検出範囲の中心、および前記側方距離検出部を通る線と前記自走装置の直進方向とのなす角は60度以上かつ120度未満である請求項1記載の自走装置。
【請求項16】
一対の駆動輪を備えた自走装置の制御方法であって、
前記自走装置と前方の物体との距離である前方離間距離を検出するステップと、
前記自走装置と側方の物体との距離である側方離間距離を検出するステップと、
所定周期で、前記検出された前方離間距離に基づいて前記自走装置を旋回させるか否かを決定し、旋回させると決定した場合には前記検出された前方離間距離および側方離間距離に基づいて前記自走装置の旋回中心を算出し、前記算出した旋回中心に基づいて前記各駆動輪の速度を決定するステップとを含む自走装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−272677(P2007−272677A)
【公開日】平成19年10月18日(2007.10.18)
【国際特許分類】
【出願番号】特願2006−99093(P2006−99093)
【出願日】平成18年3月31日(2006.3.31)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】