(57)【特許請求の範囲】
【請求項１】
自走装置であって、
一対の駆動輪と、
前記自走装置と前方の物体との距離である前方離間距離を検出する前方距離検出部と、
前記自走装置と側方の物体との距離である側方離間距離を検出する側方距離検出部と、
所定周期で、前記検出された前方離間距離に基づいて前記自走装置を旋回させるか否かを決定し、旋回させると決定した場合には前記検出された前方離間距離および側方離間距離に基づいて前記自走装置の旋回中心を算出し、前記算出した旋回中心に基づいて前記各駆動輪の速度を決定する制御部とを備え、
前記制御部は、前記自走装置が旋回していない場合であって前記検出された前方離間距離が第１の閾値未満であるときには前記自走装置の旋回を開始することを決定し、前記自走装置が旋回している場合であって前記検出された前方離間距離が前記第１の閾値より大きい第２の閾値を超えるときには前記自走装置の旋回を終了することを決定し、
前記制御部は、前記一対の駆動輪の位置の中間点を原点とし、前記一対の駆動輪の回転軸の延在方向をｘ軸とし、前記ｘ軸に直交する方向をｙ軸とした座標系において、前記前方距離検出部から前記検出された前方離間距離だけ前記前方の物体に向かって前記ｙ軸方向に沿って移動した前方物体検出位置ベクトルと前記側方距離検出部から前記検出された側方離間距離だけ前記側方の物体に向かって前記ｘ軸方向に沿って移動した側方物体検出位置ベクトルとを結ぶ線と直交する直線の傾きを算出し、前記傾きを有し前記側方物体検出位置ベクトル側の前記自走装置の前方端部位置を通過する直線の式を算出し、前記算出した式の直線と前記ｘ軸との交点を算出して前記旋回中心とし、
前記制御部は、前記前方距離検出部の位置、前記側方距離検出部の位置および前記前方端部位置を前記座標系における座標として記憶している自走装置。
【請求項２】
前記自走装置は、さらに、前記自走装置の前方部に配置され、床面作業を行なう作業部を備える請求項１記載の自走装置。
【請求項３】
前記自走装置は、さらに、前記各駆動輪の所定の最大速度をそれぞれ記憶する記憶部を備え、
前記制御部は、前記自走装置を旋回させると決定した場合には、前記算出した旋回中心に基づいて前記一対の駆動輪のいずれか一方の速度を前記所定の最大速度に決定する請求項１記載の自走装置。
【請求項４】
前記自走装置は、さらに、前記各駆動輪の所定の最大速度をそれぞれ記憶する記憶部を備え、
前記制御部は、さらに、前記自走装置を旋回させないと決定した場合には、前記一対の駆動輪のうち少なくともいずれか一方の速度を前記所定の最大速度に決定する請求項１記載の自走装置。
【請求項５】
前記自走装置は、さらに、前方の物体との接触を検出する前方接触検出部を備え、
前記制御部は、さらに、前記自走装置が旋回していない場合であって前記前方接触検出部が接触を検出したときには前記自走装置を旋回させることを決定し、旋回させると決定した場合には、前記前方距離検出部の位置および前記検出された側方離間距離に基づいて前記自走装置の旋回中心を算出し、前記算出した旋回中心に基づいて前記各駆動輪の速度を決定する請求項１記載の自走装置。
【請求項６】
前記制御部は、さらに、前記自走装置が旋回を開始してからの前記自走装置の旋回角度を算出し、前記算出した旋回角度が所定値より大きい場合には前記自走装置の旋回を終了する請求項１記載の自走装置。
【請求項７】
前記制御部は、前記自走装置が旋回を開始してから経過した時間および前記決定した各駆動輪の速度に基づいて前記自走装置の旋回角度を算出する請求項６記載の自走装置。
【請求項８】
前記所定値は９０度未満である請求項６記載の自走装置。
【請求項９】
前記自走装置は、さらに、物体との接触を検出する接触検出部を備え、
前記制御部は、さらに、前記自走装置の旋回中に前記自走装置と物体との接触が検出された場合には前記自走装置が前記接触した物体から離れるように前記各駆動輪の速度を決定する請求項１記載の自走装置。
【請求項１０】
前記制御部は、前記自走装置の旋回中に前記自走装置と物体との接触が検出された場合には、前記自走装置が所定距離後退し、その後、所定角度旋回するように前記各駆動輪の速度を決定する請求項９記載の自走装置。
【請求項１１】
一対の駆動輪を備えた自走装置の制御方法であって、
前記自走装置と前方の物体との距離である前方離間距離を検出するステップと、
前記自走装置と側方の物体との距離である側方離間距離を検出するステップと、
所定周期で、前記検出された前方離間距離に基づいて前記自走装置を旋回させるか否かを決定し、旋回させると決定した場合には前記検出された前方離間距離および側方離間距離に基づいて前記自走装置の旋回中心を算出し、前記算出した旋回中心に基づいて前記各駆動輪の速度を決定するステップとを含み、
前記各駆動輪の速度を決定するステップにおいては、前記自走装置が旋回していない場合であって前記検出された前方離間距離が第１の閾値未満であるときには前記自走装置の旋回を開始することを決定し、前記自走装置が旋回している場合であって前記検出された前方離間距離が前記第１の閾値より大きい第２の閾値を超えるときには前記自走装置の旋回を終了することを決定し、
前記各駆動輪の速度を決定するステップにおいては、前記自走装置を旋回させると決定した場合には、前記一対の駆動輪の位置の中間点を原点とし、前記一対の駆動輪の回転軸の延在方向をｘ軸とし、前記ｘ軸に直交する方向をｙ軸とした座標系において、前記前方距離検出部から前記検出された前方離間距離だけ前記前方の物体に向かって前記ｙ軸方向に沿って移動した前方物体検出位置ベクトルと前記側方距離検出部から前記検出された側方離間距離だけ前記側方の物体に向かって前記ｘ軸方向に沿って移動した側方物体検出位置ベクトルとを結ぶ線と直交する直線の傾きを算出し、前記傾きを有し前記側方物体検出位置ベクトル側の前記自走装置の前方端部位置を通過する直線の式を算出し、前記算出した式の直線と前記ｘ軸との交点を算出して前記旋回中心とする自走装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自走装置およびその制御方法に関し、特に、清掃ロボットおよび塗装ロボット等、壁沿い走行を行なう自走装置およびその制御方法に関する。
【背景技術】
【０００２】
従来、清掃ロボット等の自走装置では壁沿い走行が多く利用されている。清掃ロボット型の自走装置において、部屋の角部をくまなく清掃するためには、清掃を行なう作業部が自走装置の端部に備えられ、かつ作業部が角のある形状とすることが望ましい。
【０００３】
これらの条件を満たす形状の自走装置は、旋回時に端部が周囲の物体に接触することがある。特に壁の角部で旋回を行なう場合、旋回により自走装置の端部が壁に接触する。たとえば自走装置が部屋の右側の壁沿いに進んで部屋の角部に到達したときには左旋回する必要があるが、このような形状の自走装置の場合、壁の角部付近で左旋回すると、自走装置の端部が壁に接触する。自走装置が周囲の物体に接触しながら無理やり回転することは好ましくない。このような問題点を解決するために、たとえば、特許文献１には、以下に示すような自走装置が開示されている。すなわち、自走装置は、角部において複数回の回転および後退走行を組み合わせた一定の角旋回パターンにしたがって走行する。また、特許文献２には、以下に示すような自走装置が開示されている。すなわち、自走装置は、スライド式の作業部を備え、部屋の角部の曲がり角に応じた旋回動作を選択する。このような構成により、未作業領域のない走行を実現する。
【特許文献１】特開２００５−１３５４００号公報
【特許文献２】特開平５−４６２３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１および特許文献２記載の自走装置では、壁の角部で旋回する際に自走装置本体分程度の距離を往復する必要があり、無駄な走行距離が多いという問題点があった。
【０００５】
それゆえに、本発明の目的は、無駄な走行距離を短くして効率的に作業を行なうことが可能な自走装置およびその制御方法を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、この発明のある局面に係わる自走装置は、一対の駆動輪と、自走装置と前方の物体との距離である前方離間距離を検出する前方距離検出部と、自走装置と側方の物体との距離である側方離間距離を検出する側方距離検出部と、所定周期で、検出された前方離間距離に基づいて自走装置を旋回させるか否かを決定し、旋回させると決定した場合には検出された前方離間距離および側方離間距離に基づいて自走装置の旋回中心を算出し、算出した旋回中心に基づいて各駆動輪の速度を決定する制御部とを備え、制御部は、自走装置が旋回していない場合であって検出された前方離間距離が第１の閾値未満であるときには自走装置の旋回を開始することを決定し、自走装置が旋回している場合であって検出された前方離間距離が第１の閾値より大きい第２の閾値を超えるときには自走装置の旋回を終了することを決定し、制御部は、一対の駆動輪の位置の中間点を原点とし、一対の駆動輪の回転軸の延在方向をｘ軸とし、ｘ軸に直交する方向をｙ軸とした座標系において、前方距離検出部から検出された前方離間距離だけ前方の物体に向かってｙ軸方向に沿って移動した前方物体検出位置ベクトルと側方距離検出部から検出された側方離間距離だけ側方の物体に向かってｘ軸方向に沿って移動した側方物体検出位置ベクトルとを結ぶ線と直交する直線の傾きを算出し、傾きを有し側方物体検出位置ベクトル側の自走装置の前方端部位置を通過する直線の式を算出し、算出した式の直線とｘ軸との交点を算出して旋回中心とし、
制御部は、前方距離検出部の位置、側方距離検出部の位置および前方端部位置を座標系における座標として記憶している。
【０００７】
好ましくは、自走装置は、さらに、自走装置の前方部に配置され、床面作業を行なう作業部を備える。
【０００８】
好ましくは、自走装置は、さらに、各駆動輪の所定の最大速度をそれぞれ記憶する記憶部を備え、制御部は、自走装置を旋回させると決定した場合には、算出した旋回中心に基づいて一対の駆動輪のいずれか一方の速度を所定の最大速度に決定する。
【０００９】
好ましくは、自走装置は、さらに、各駆動輪の所定の最大速度をそれぞれ記憶する記憶部を備え、制御部は、さらに、自走装置を旋回させないと決定した場合には、一対の駆動輪のうち少なくともいずれか一方の速度を所定の最大速度に決定する。
【００１２】
好ましくは、自走装置は、さらに、前方の物体との接触を検出する前方接触検出部を備え、制御部は、さらに、自走装置が旋回していない場合であって前方接触検出部が接触を検出したときには自走装置を旋回させることを決定し、旋回させると決定した場合には、前方距離検出部の位置および検出された側方離間距離に基づいて自走装置の旋回中心を算出し、算出した旋回中心に基づいて各駆動輪の速度を決定する。
【００１３】
好ましくは、制御部は、さらに、自走装置が旋回を開始してからの自走装置の旋回角度を算出し、算出した旋回角度が所定値より大きい場合には自走装置の旋回を終了する。
【００１４】
より好ましくは、制御部は、自走装置が旋回を開始してから経過した時間および決定した各駆動輪の速度に基づいて自走装置の旋回角度を算出する。
【００１５】
より好ましくは、所定値は９０度未満である。
好ましくは、自走装置は、さらに、物体との接触を検出する接触検出部を備え、制御部は、さらに、自走装置の旋回中に自走装置と物体との接触が検出された場合には自走装置が接触した物体から離れるように各駆動輪の速度を決定する。
【００１６】
より好ましくは、制御部は、自走装置の旋回中に自走装置と物体との接触が検出された場合には、自走装置が所定距離後退し、その後、所定角度旋回するように各駆動輪の速度を決定する。
【００２０】
上記課題を解決するために、この発明のある局面に係わる自走装置の制御方法は、一対の駆動輪を備えた自走装置の制御方法であって、自走装置と前方の物体との距離である前方離間距離を検出するステップと、自走装置と側方の物体との距離である側方離間距離を検出するステップと、所定周期で、検出された前方離間距離に基づいて自走装置を旋回させるか否かを決定し、旋回させると決定した場合には検出された前方離間距離および側方離間距離に基づいて自走装置の旋回中心を算出し、算出した旋回中心に基づいて各駆動輪の速度を決定するステップとを含み、各駆動輪の速度を決定するステップにおいては、自走装置が旋回していない場合であって検出された前方離間距離が第１の閾値未満であるときには自走装置の旋回を開始することを決定し、自走装置が旋回している場合であって検出された前方離間距離が第１の閾値より大きい第２の閾値を超えるときには自走装置の旋回を終了することを決定し、各駆動輪の速度を決定するステップにおいては、自走装置を旋回させると決定した場合には、一対の駆動輪の位置の中間点を原点とし、一対の駆動輪の回転軸の延在方向をｘ軸とし、ｘ軸に直交する方向をｙ軸とした座標系において、前方距離検出部から検出された前方離間距離だけ前方の物体に向かってｙ軸方向に沿って移動した前方物体検出位置ベクトルと側方距離検出部から検出された側方離間距離だけ側方の物体に向かってｘ軸方向に沿って移動した側方物体検出位置ベクトルとを結ぶ線と直交する直線の傾きを算出し、傾きを有し側方物体検出位置ベクトル側の自走装置の前方端部位置を通過する直線の式を算出し、算出した式の直線とｘ軸との交点を算出して旋回中心とする。
【発明の効果】
【００２１】
本発明によれば、無駄な走行距離を短くして効率的に作業を行なうことができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００２３】
＜第１の実施の形態＞
図１は、本発明の実施の形態に係る自走装置の構成を示す平面図である。
【００２４】
同図を参照して、上側が自走装置Ｒの前方部である。また、自走装置Ｒの形状は前方部が略四角形（角型）であり、後方部が略円形である。また、自走装置Ｒのサイズはたとえば前後長が約３５０ｍｍであり、左右幅が約３５０ｍｍである。
【００２５】
自走装置Ｒは、駆動輪Ｗと、ステッピングモータＭＯと、距離センサＳと、演算部（制御部）ＣＯＭと、電池ＢＴと、前方接触センサ（前方接触検出部）ＢＦと、側方接触センサ（側方接触検出部）ＢＳと、清掃部（作業部）ＣＬＮとを備える。駆動輪Ｗは、左駆動輪ＷＬと、右駆動輪ＷＲとを含む。ステッピングモータＭＯは、左右の駆動輪ＷＬおよびＷＲに対応する２個のステッピングモータＭＯＬおよびＭＯＲを含む。距離センサＳは、前方距離センサ（前方距離検出部）ＳＦと、側方距離センサ（側方距離検出部）ＳＳとを含む。演算部ＣＯＭは、メモリＭＥＭと、タイマＴＩＭと、カウンタＣＰとを含む。
【００２６】
清掃部ＣＬＮは、自走装置Ｒの前方部に配置され、床面の清掃を行なう。このような構成により、容易に部屋等の角部までくまなく清掃を行なうことができる。
【００２７】
距離センサＳは、赤外線による三角測量式のセンサであり、自走装置Ｒの周囲の物体までの離間距離を測定する。前方距離センサＳＦは、自走装置Ｒの前方に検出範囲を有し、自走装置Ｒと前方の物体との距離である前方離間距離を検出する。側方距離センサＳＳは、自走装置Ｒの側方に検出範囲を有し、自走装置Ｒと側方の物体との距離である側方離間距離を検出する。前方距離センサＳＦおよび側方距離センサＳＳは、自走装置Ｒの右前方部に配置される。
【００２８】
前方接触センサＢＦは、自走装置Ｒの前面が物体に接触したことを検知する。側方接触センサＢＳは、自走装置Ｒの側面が物体に接触したことを検知する。
【００２９】
ステッピングモータＭＯは、演算部ＣＯＭから受けたパルス数に応じて左駆動輪ＷＬおよび右駆動輪ＷＲを回転させる。ここで、右駆動輪ＷＲおよび左駆動輪ＷＬの回転軸線は一致している。
【００３０】
電池ＢＴは、ステッピングモータＭＯ、清掃部ＣＬＮ、距離センサＳおよび演算部ＣＯＭ等を駆動するための電力を供給する。電池ＢＴは図示しない配線によりステッピングモータＭＯ、清掃部ＣＬＮ、距離センサＳおよび演算部ＣＯＭ等と接続されている。
【００３１】
演算部ＣＯＭはたとえばマイクロコンピュータであり、メモリＭＥＭ等に記憶されたプログラムを実行する。演算部ＣＯＭは、たとえば左右のステッピングモータＭＯと、距離センサＳと、前方接触センサＢＦと、側方接触センサＢＳと、清掃部ＣＬＮとに接続されている。
【００３２】
カウンタＣＰは、演算部ＣＯＭが左右のステッピングモータＭＯにそれぞれ入力したパルス数（以下、左右のパルス数とも称する。）をカウントし、カウント結果をメモリＭＥＭに保存する。
【００３３】
タイマＴＩＭは、時間を測定し、所定周期たとえば１０ｍｓごとに演算部ＣＯＭに対して所定周期が経過したことを表わす周期信号を出力する。
【００３４】
メモリＭＥＭは、左駆動輪ＷＬおよび右駆動輪ＷＲ間の距離ＬＷと、前方距離センサＳＦの取り付け位置ＰＳＦと、側方距離センサＳＳの取り付け位置ＰＳＳと、自走装置Ｒの前方端部の位置ＰＣと、駆動輪Ｗの速度上限ＶＭＡＸと、パルス−距離変換倍率と、角旋回走行の際にカウンタＣＰがカウントした左右のパルス数と、後述する接触回避旋回の際にカウンタＣＰがカウントした左右のパルス数と、後述する接触回避後退の際のカウンタＣＰがカウントした左右のパルス数と、目標離間距離ＬＤと、後述する瞬間旋回中心を算出するための算出式Ｆ１〜Ｆ３と、後述する駆動輪速度を算出するための算出式Ｆ４〜Ｆ９とを少なくとも記憶している。
【００３５】
図２（ａ）および（ｂ）は、自走装置Ｒと壁面との位置関係を詳細に示す図である。
同図を参照して、前方距離センサＳＦの取り付け位置ＰＳＦおよび側方距離センサＳＳの取り付け位置ＰＳＳと、前方端部位置ＰＣとは、ロボット座標系の座標として記憶されている。ここで、ロボット座標系は、左右の駆動輪ＷＬおよびＷＲの取り付け位置の中間点を原点ＯＲとし、左右の駆動輪ＷＬおよびＷＲの回転軸の延在方向をｘ軸とし、ｘ軸に直交する自走装置Ｒの直進方向をｙ軸とする座標系である。ｘ軸は、自走装置Ｒの直進方向と垂直であり、ｙ軸は、自走装置Ｒの直進方向と平行である。
【００３６】
演算部ＣＯＭは、距離センサＳが検出した前方離間距離ＬＦ、側方離間距離ＬＳ、前方距離センサＳＦの取り付け位置ＰＳＦおよび側方距離センサＳＳの取り付け位置ＰＳＳ等に基づいて、後述する算出式Ｆ１〜Ｆ３に基づいて自走装置Ｒの瞬間旋回中心ＲＣを算出する。演算部ＣＯＭは、自ら算出した瞬間旋回中心ＲＣおよび左右の駆動輪ＷＬおよびＷＲの離間距離ＬＷならびに算出式Ｆ４〜Ｆ９等に基づいて左駆動輪ＷＬおよび右駆動輪ＷＲの目標速度ＶＬおよびＶＲを算出する。
【００３７】
演算部ＣＯＭは、カウンタＣＰがカウントした左右のパルス数に基づいて自走装置Ｒの移動距離を算出する。具体的には、演算部ＣＯＭは、ある時点で記憶した左右のパルス数を現在の左右のパルス数から減算して左右のパルス変位量を算出し、左右のパルス変位量に予め記憶しているパルス−距離変換倍率を乗じて左右の駆動輪移動距離を算出し、左右の駆動輪移動距離の平均値を算出し、左右の駆動輪移動距離の平均値から自走装置Ｒの移動距離を算出する。また、演算部ＣＯＭは、左右の駆動輪ＷＬおよびＷＲの離間距離ＬＷを半径とし、左右の駆動輪移動距離の差を弧の長さとする扇形の中心角を自走装置Ｒの回転角として算出する。
【００３８】
図２(ａ)に示すように、自走装置Ｒの走行する床面と平行な平面において、前方距離センサＳＦは、ｘ軸方向における検出範囲の中心線、すなわちｘ軸方向における検出範囲の中心および前方距離センサＳＦを通る線が自走装置Ｒの直進方向と一致するように配置されている。側方距離センサＳＳは、ｙ軸方向における検出範囲の中心線、すなわちｙ軸方向における検出範囲の中心および側方距離センサＳＳを通る線が自走装置Ｒの直進方向と直交するように配置されている。
【００３９】
［動作］
図３は、本発明の実施の形態に係る自走装置が壁沿い走行を行なう際の動作手順を定めたフローチャートである。
【００４０】
演算部ＣＯＭは、前方距離センサＳＦの出力を読み込み、前方離間距離が２０ｍｍ未満であるかどうかを判定する（Ｓ３１）。
【００４１】
演算部ＣＯＭは、前方離間距離が２０ｍｍ未満であると判定した場合（Ｓ３１でＹＥＳ）、後述する図４のフローチャートに示す角旋回走行を行なう（Ｓ３３）。演算部ＣＯＭは、角旋回走行が完了すると再び前方距離センサＳＦの出力を読み込み、角旋回走行を行なうか否かを決定する（Ｓ３１）。
【００４２】
演算部ＣＯＭは、前方離間距離が２０ｍｍ未満ではないと判定した場合（Ｓ３１でＮＯ）、前方接触センサＢＦの出力を読み込む（Ｓ３２）。
【００４３】
演算部ＣＯＭは、自走装置Ｒの前面が接触している場合（Ｓ３２でＹＥＳ）、図４のフローチャートに示す角旋回走行を行なう（Ｓ３３）。
【００４４】
一方、演算部ＣＯＭは、自走装置Ｒの前面が接触していない場合（Ｓ３２でＮＯ）、壁沿い走行用の左右の駆動輪速度を算出する（Ｓ３４）。
【００４５】
より詳細には、演算部ＣＯＭは、側方距離センサＳＳの出力を読み込んで、自走装置Ｒの側方部から壁までの距離とメモリＭＥＭに予め記憶している目標離間距離ＬＤとを比較する。
【００４６】
演算部ＣＯＭは、自走装置Ｒの側方部から壁までの距離が目標離間距離ＬＤとほぼ等しい場合には、演算部ＣＯＭは左右の駆動輪速度ＶＲとＶＬを共に最大駆動輪速度ＶＭＡＸに設定する。
【００４７】
また、演算部ＣＯＭは、自走装置Ｒの側方部から壁までの距離が目標離間距離ＬＤよりも長い場合には、左駆動輪速度ＶＬを最大駆動輪速度ＶＭＡＸに設定し、右駆動輪速度ＶＲをＶＭＡＸよりも小さい値に設定する。
【００４８】
また、演算部ＣＯＭは、自走装置Ｒの側方部から壁までの距離が目標離間距離ＬＤよりも短い場合には、右駆動輪速度ＶＲを最大駆動輪速度ＶＭＡＸに設定し、左駆動輪速度ＶＬをＶＭＡＸよりも小さい値に設定する。
【００４９】
このように、左駆動輪速度ＶＬおよび右駆動輪速度ＶＲの少なくともいずれか一方を最大駆動輪速度ＶＭＡＸに設定することにより、自走装置Ｒをできるだけ高速に走行させることができる。
【００５０】
演算部ＣＯＭは、算出した左右の駆動輪速度ＶＬおよびＶＲに対応する数のパルスを左右のステッピングモータＭＯにそれぞれ出力する（Ｓ３５）。
【００５１】
そして、演算部ＣＯＭは、タイマＴＩＭの出力を読み込んで、周期時間たとえば１０ｍｓの経過を待ち（Ｓ３６）、再び前方距離センサＳＦの出力を読み込み、角旋回走行を行なうか否かを決定する（Ｓ３１）。
【００５２】
図４は、本発明の実施の形態に係る自走装置が角旋回走行を行なう際の動作手順を定めたフローチャートである。
【００５３】
まず、演算部ＣＯＭは、角旋回走行を終了すべきか否かの判定を行なう（Ｓ４１）。具体的には、演算部ＣＯＭは、角旋回走行開始からの旋回角度が６０度より大きい場合には（Ｓ４１でＹＥＳ）角旋回走行を終了し（Ｓ４３）、再び前方距離センサＳＦの出力を読み込み、角旋回走行を行なうか否かを決定する（Ｓ３１）。
【００５４】
演算部ＣＯＭは、旋回角度が６０度以下の場合であって（Ｓ４１でＮＯ）前方距離センサＳＦが検出した前方離間距離が５００ｍｍより大きいときには（Ｓ４２でＹＥＳ）、角旋回走行を終了し（Ｓ４３）、再び前方距離センサＳＦの出力を読み込み、角旋回走行を行なうか否かを決定する（Ｓ３１）。
【００５５】
演算部ＣＯＭは、旋回角度が６０度以下の場合であって（Ｓ４１でＮＯ）前方離間距離が５００ｍｍ以下であるときには（Ｓ４２でＮＯ）、前方接触センサＢＦおよび側方接触センサＢＳの出力を読み込む（Ｓ４４）。
【００５６】
演算部ＣＯＭは、前方部または側方部と物体との接触があると判定した場合には（Ｓ４４でＹＥＳ）、ステッピングモータＭＯＬおよびＭＯＲを駆動して自走装置Ｒを１５ｍｍ後退させる接触回避後退を行なう（Ｓ４５）。
【００５７】
具体的には、演算部ＣＯＭは、左右のステッピングモータＭＯＬおよびＭＯＲに対して最高速度ＶＭＡＸの１／２の速度で後退する指令を出す。また、演算部ＣＯＭは、後退開始時のカウンタＣＰの値をメモリＭＥＭに記憶させる。そして、演算部ＣＯＭは、タイマＴＩＭからの周期信号に基づいて所定周期ごとにカウンタＣＰの値を調べ、後退開始時からの走行距離を算出する。演算部ＣＯＭは、後退開始からの走行距離が１５ｍｍを超えた時点で左右のステッピングモータＭＯＬおよびＭＯＲを停止させる。
【００５８】
そして、演算部ＣＯＭは、ステッピングモータＭＯＬおよびＭＯＲを駆動して自走装置Ｒを左に５度旋回させる接触回避旋回を行なう（Ｓ４６）。
【００５９】
具体的には、演算部ＣＯＭは、ステッピングモータＭＯＬに対して最高速度ＶＭＡＸでの後退指令を出し、ステッピングモータＭＯＲに対して最高速度ＶＭＡＸでの前進指令を出す。また、演算部ＣＯＭは、左旋回開始時のカウンタＣＰの値をメモリＭＥＭに記憶させる。そして、演算部ＣＯＭは、タイマＴＩＭからの周期信号に基づいて所定周期ごとにカウンタＣＰの値を調べ、後退開始時からの旋回角度を算出する。演算部ＣＯＭは、後退開始からの旋回角度が５度を超えた時点で左右のステッピングモータＭＯＬおよびＭＯＲを停止させる。そして、演算部ＣＯＭは、角旋回走行を終了すべきか否かの判定を再び行なう（Ｓ４１）。
【００６０】
このような構成により、角旋回走行中において物体との接触が発生しても適切に走行を継続することができる。
【００６１】
演算部ＣＯＭは、前方部および側方部と物体との接触がないと判定した場合には（Ｓ４４でＮＯ）、瞬間旋回中心ＲＣを算出する（Ｓ４７）。瞬間旋回中心ＲＣの算出については、後述する図８のフローチャートで詳細に説明する。
【００６２】
そして、演算部ＣＯＭは、算出した瞬間旋回中心ＲＣに基づいて左右の駆動輪速度ＶＬおよびＶＲを算出する（Ｓ４８）。左右の駆動輪速度ＶＬおよびＶＲの算出については、後述する図９のフローチャートで詳細に説明する。
【００６３】
そして、演算部ＣＯＭは、駆動輪速度ＶＬおよびＶＲに対応する数のパルスをステッピングモータＭＯＬおよびＭＯＲにそれぞれ出力する（Ｓ４９）。
【００６４】
そして、演算部ＣＯＭはタイマＴＩＭからの周期信号を受けて、周期時間たとえば１０ｍｓの経過を待ち（Ｓ４ａ）、角旋回走行を終了すべきか否かの判定を再び行なう（Ｓ４１）。
【００６５】
次に、自走装置Ｒが壁沿い走行および角旋回走行を行なう手順の一例を説明する。
自走装置Ｒは、清掃作業の一部として、壁に沿って部屋を１周する壁沿い清掃を行なう。自走装置Ｒは、壁沿い清掃中において、部屋の角部に接近したかどうかを判定し（Ｓ３１）、部屋の角部に接近したと判断した場合には（Ｓ３１でＹＥＳ）、角旋回走行を開始する（Ｓ３３）。
【００６６】
自走装置Ｒは、部屋の角部の曲がり角が６０度より大きい場合、６０度以上旋回した時点で（Ｓ４１でＹＥＳ）角旋回走行を終了し（Ｓ４３）、壁沿い走行を再開する（Ｓ３１）。ここで、曲がり角とは、部屋の角部における手前の壁面の延在軸と次の壁面とのなす角度をいい、曲がり角０度は壁が曲がっていない状態を示し、曲がり角９０度は壁が直角に曲がっている状態を示す。
【００６７】
一方、部屋の角部の曲がり角が６０度以下である場合、自走装置Ｒが次の壁面とほぼ平行になるまで旋回した時点で、前方距離センサＳＦが壁を検出しなくなる。すなわち、前方離間距離が５００ｍｍよりも大きい値になる（Ｓ４２でＹＥＳ）。
【００６８】
前方離間距離が５００ｍｍよりも大きい値になると（Ｓ４２でＹＥＳ）、自走装置Ｒは角旋回走行を終了し（Ｓ４３）、壁沿い走行を再開する（Ｓ３１）。
【００６９】
したがって、本発明の実施の形態に係る自走装置は、壁の曲がり角が６０度以下である場合にも、角旋回走行の開始および終了を適切に行なうことができる。
【００７０】
図５は、(ａ)９０度、（ｂ）６０度、（ｃ）４５度の曲がり角を有する壁面を本発明の実施の形態に係る自走装置が走行するシミュレーション結果を示す図である。
【００７１】
ＴＲはロボット座標系の原点ＯＲの軌跡であり、ＴＣは自走装置Ｒの前方端部位置ＰＣの軌跡であり、ＡＲＥＡは清掃部ＣＬＮが通過した領域である。
【００７２】
同図を参照して、いずれの曲がり角を有する壁面においても、壁沿いに未清掃領域がほとんど無いこと、自走装置Ｒの前方端部が壁面に近接した状態で旋回していること、および往復動作は部屋の角部付近での１回だけであり、かつ往復距離は自走装置Ｒの寸法よりかなり小さいことが分かる。
【００７３】
次に、２つの角部が連続する壁面において本発明の実施の形態に係る自走装置が壁沿い走行および角旋回走行を行なう際の動作について説明する。
【００７４】
図６は、２つの角部が連続する壁面において本発明の実施の形態に係る自走装置が行なう壁沿い走行および角旋回走行の様子を示す図である。
【００７５】
同図に示すように２つの角部ＷＣ１およびＷＣ２が近接する壁面では、自走装置Ｒが最初の角部ＷＣ１を曲がり終わった時点で次の角部ＷＣ２が自走装置Ｒの前面に近接しており、前方距離センサＳＦの出力する前方離間距離ＬＦが５００ｍｍ以下となる。
【００７６】
このような壁面において、仮に、自走装置Ｒが、角旋回走行開始からの旋回角度によって角旋回走行を終了すべきか否かの判定（Ｓ４１）を行なわない構成であるとすると、前方離間距離ＬＦが５００ｍｍ以下であることから角旋回走行の終了条件が満たされない。このため、自走装置Ｒが最初の角部ＷＣ１で開始した角旋回走行が継続されたまま２つ目の角部ＷＣ２における自走装置Ｒの走行が行なわれる。したがって、自走装置Ｒが２つ目の角部ＷＣ２から離れた位置で角旋回走行を行なうことになり、角部ＷＣ２に近接して走行することができず、角部ＷＣ２付近の未清掃領域が増大してしまう。
【００７７】
しかしながら、本発明の実施の形態に係る自走装置では、角旋回走行開始からの旋回角度によって角旋回走行を終了すべきか否かの判定を行なう（Ｓ４１）構成である。このため、自走装置Ｒは、角旋回走行開始から６０度を超えて回転した時点で１つ目の角部ＷＣ１を曲がり終えたと判定して（Ｓ４１でＹＥＳ）壁沿い走行を再開し、２つ目の角部ＷＣ２に接近する。したがって、本発明の実施の形態に係る自走装置では、２つ目の角部ＷＣ２に対しても接近してから角旋回走行を開始することができ、各角部に近接して走行することができる。
【００７８】
ここで、角旋回走行終了の判定基準である角旋回走行開始からの旋回角度を６０度とする理由を説明する。
【００７９】
一般に、人工の壁面では角部の曲がり角が９０度前後の物が多い。９０度前後の角部において、自走装置Ｒが６０度旋回した時点で壁沿い走行を再開した場合、自走装置の進行方向は次の壁面に対して約３０度傾いた方向となる。ここで、壁面に対して約４０度以下の傾きであれば自走装置Ｒは図３のフローチャートに示す壁沿い走行で適正に走行することが可能である。したがって、本発明の実施の形態に係る自走装置では、角旋回走行終了の判定基準である角旋回走行開始からの旋回角度を６０度とする構成により、たとえば連続する２つの角部の曲がり角がそれぞれ６０度以上かつ１００度以下である場合、各角部において角旋回走行の開始および終了を適切に行なうことができる。このため、本発明の実施の形態に係る自走装置は、９０度前後の角部が連続する壁面形状における未清掃領域の増大を防ぐことができる。なお、角旋回走行終了の判定基準である角旋回走行開始からの旋回角度は、６０度に限定するものではなく、自走装置Ｒの直進方向が壁面に対して４０度となる５０度であってもよい。すなわち、角旋回走行終了の判定基準である角旋回走行開始からの旋回角度は、５０度以上かつ９０度未満とすることが可能である。
【００８０】
次に、本発明の実施の形態に係る自走装置が行なう瞬間旋回中心ＲＣの算出方法の概要を説明する。
【００８１】
本発明の実施の形態に係る自走装置において、瞬間旋回中心ＲＣおよび駆動輪速度の算出は、前述の自走装置Ｒの位置を基準とするロボット座標系上で行なう。
【００８２】
再び図２を参照して、演算部ＣＯＭは、前方距離センサＳＦの取り付け位置ＰＳＦおよび側方距離センサＳＳの取り付け位置ＰＳＳと前方離間距離ＬＦおよび側方離間距離ＬＳとに基づいて、ロボット座標系における前方物体検出位置ＰＦおよび側方物体検出位置ＰＳを算出する。
【００８３】
距離センサＳは破線で示すような扇形の検出範囲を持つが、演算部ＣＯＭは、物体検出位置が検出範囲の中心線（図２（ａ）の一点鎖線）上にあると仮定して算出する。
【００８４】
図２（ｂ）を参照して、演算部ＣＯＭは、前方物体検出位置ＰＦおよび側方物体検出位置ＰＳを結んだ直線を仮想的な壁面Ｖとみなし、自走装置Ｒの前方端部位置ＰＣが仮想壁面Ｖと平行に移動するための瞬間旋回中心ＲＣを求める。
【００８５】
瞬間旋回中心ＲＣは幾何学的に、前方端部位置ＰＣを通り仮想壁面Ｖに垂直な直線（図２（ｂ）の破線）と、ｘ軸（駆動輪Ｗの回転軸の延長線）との交点として決定される。演算部ＣＯＭは、代数式およびベクトルを利用して幾何学計算を行ない、瞬間旋回中心ＲＣを算出する。具体的には、演算部ＣＯＭは、後述する図８のフローチャートに示す各ステップを実行する。なお、図２では説明を分かりやすくするために自走装置Ｒと壁との距離を長めに描いているが、実際には、自走装置Ｒは可能な限り壁に近接して走行する。
【００８６】
瞬間旋回中心ＲＣの旋回円上において、自走機器Ｒの前方端部位置ＰＣは仮想的な壁面Ｖに一番接近した（場合によってはめり込んだ）位置にあり、前方端部位置ＰＣにおける旋回円の接線は仮想的な壁面Ｖと平行になる。そして、瞬間旋回中心ＲＣの算出周期すなわちステップＳ４ａにおける所定時間をたとえば１０ｍｓの短時間に設定することにより、算出した瞬間旋回中心ＲＣの旋回円上を自走装置Ｒが走行する距離が十分に短くなり、自走装置Ｒの前方端部位置ＰＣの進行方向は仮想的な壁面Ｖとほぼ平行になる。
【００８７】
次に、本発明の実施の形態に係る自走装置が行なう駆動輪速度の算出方法の概要を説明する。
【００８８】
図７は、自走装置の旋回に関する位置関係を詳細に示す図である。
同図を参照して、左駆動輪ＷＬと右駆動輪ＷＲとの距離ＬＷは、左駆動輪ＷＬの幅方向の中央位置と、右駆動輪ＷＲの幅方向の中央位置との距離である。
【００８９】
まず、演算部ＣＯＭは、ｘ軸上における、瞬間旋回中心ＲＣから左右の駆動輪の接地位置までの水平距離ＬＬおよびＬＲを求める。ここで、演算部ＣＯＭは、駆動輪Ｗの回転軸の幅方向における中心位置の鉛直下方に駆動輪Ｗの接地位置が存在すると仮定して計算する。
【００９０】
演算部ＣＯＭは、駆動輪速度の絶対値が駆動輪Ｗおよび瞬間旋回中心ＲＣ間の距離に比例することから、瞬間旋回中心ＲＣからの距離が遠い側の駆動輪Ｗの速度を、駆動輪Ｗの速度上限ＶＭＡＸに設定する。
【００９１】
また、演算部ＣＯＭは、他方の駆動輪の速度を、駆動輪Ｗの速度上限ＶＭＡＸに水平距離ＬＬおよびＬＲの比率を乗じた値とする。
【００９２】
また、演算部ＣＯＭは、左駆動輪ＷＬの回転方向をベクトルＶＬ、右駆動輪ＷＲの回転方向をベクトルＶＲに設定し、自走装置Ｒの前方端部位置ＰＣが瞬間旋回中心ＲＣ周りに左旋回する方向を選択する。
【００９３】
具体的には、演算部ＣＯＭは、後述する図９のフローチャートに示す各ステップを実行する。
【００９４】
次に、本発明の実施の形態に係る自走装置が行なう瞬間旋回中心ＲＣの算出方法を詳細に説明する。
【００９５】
図８は、本発明の実施の形態に係る自走装置が瞬間旋回中心ＲＣを算出する際の動作手順を定めたフローチャートである。
【００９６】
図８および図２を参照して、演算部ＣＯＭは、前方距離センサＳＦの取り付け位置ＰＳＦからｙ軸＋方向に前方の離間距離ＬＦだけ移動した位置として前方物体検出位置ベクトルＰＦを算出する（Ｓ８１）。ここで、自走装置Ｒの前面が接触していることにより角旋回走行を行なう場合（Ｓ３２でＹＥＳ）には、演算部ＣＯＭは、側方離間距離ＬＳのみに基づいて瞬間旋回中心ＲＣを算出することができる。これは、自走装置Ｒの前面が接触している場合には、演算部ＣＯＭは、前方距離センサＳＦの取り付け位置ＰＳＦから固定的に前方物体検出位置ベクトルＰＦを算出することができるからである。
【００９７】
演算部ＣＯＭは、側方距離センサＳＳの取り付け位置ＰＳＳからｘ軸＋方向に側方の離間距離ＬＳだけ移動した位置として側方物体検出位置ベクトルＰＳを算出する（Ｓ８２）。
【００９８】
演算部ＣＯＭは、物体検出位置ベクトルＰＦ｛ＰＦｘ、ＰＦｙ｝およびＰＳ｛ＰＳｘ、ＰＳｙ｝に基づいて、物体検出位置ベクトルＰＦおよび物体検出位置ベクトルＰＳを結ぶ線分と直交する直線の傾きＫを以下の式によって算出する（Ｓ８３）。
【００９９】
Ｋ＝（ＰＦｘ−ＰＳｘ）／（ＰＳｙ−ＰＦｙ）  ・・・（Ｆ１）
傾きがＫで自走装置Ｒの前方端部位置ＰＣ｛ＰＣｘ、ＰＣｙ｝を通過する直線は以下の式で表わされる。
【０１００】
ｙ＝Ｋ（ｘ−ＰＣｘ）＋ＰＣｙ  ・・・（Ｆ２）
演算部ＣＯＭは、式（Ｆ２）で表わされる直線とｘ軸との交点である瞬間旋回中心ＲＣのｘ座標ＲＣｘを以下の式によって算出する。
【０１０１】
ＲＣｘ＝−ＰＣｙ／Ｋ＋ＰＣｘ  ・・・（Ｆ３）
式（Ｆ３）は、式（Ｆ２）においてｘを求める形式に変形した後、ｘ＝ＲＣｘおよびｙ＝０を代入したものである。
【０１０２】
以上のように、演算部ＣＯＭは、瞬間旋回中心ＲＣ｛ＲＣｘ、０｝を算出する。
次に、本発明の実施の形態に係る自走装置が行なう瞬間旋回中心の算出方法を詳細に説明する。
【０１０３】
図９は、本発明の実施の形態に係る自走装置が駆動輪速度を算出する際の動作手順を定めたフローチャートである。
【０１０４】
図９および図７を参照して、演算部ＣＯＭは、瞬間旋回中心ＲＣから左駆動輪ＷＬの接地位置までの水平距離ＬＬを算出する（Ｓ９１）。ここで、左駆動輪ＷＬおよび右駆動輪ＷＲ間の距離がＬＷであり、原点ＯＲは左駆動輪ＷＬおよび右駆動輪ＷＲの中点であることから、左駆動輪ＷＬの接地位置は｛−ＬＷ／２、０｝である。したがって、瞬間旋回中心ＲＣから左駆動輪ＷＬの接地位置までの水平距離ＬＬは、以下の式で表わされる。
【０１０５】
ＬＬ＝ＲＣｘ＋ＬＷ／２  ・・・（Ｆ４）
式（Ｆ４）において、ＬＬの符号は瞬間旋回中心ＲＣと左駆動輪ＷＬの接地位置との位置関係を表わす。すなわち、ＬＬの符号が正の場合には瞬間旋回中心ＲＣは左駆動輪ＷＬの接地位置より右側となり、ＬＬの符号が負の場合には瞬間旋回中心ＲＣは左駆動輪ＷＬの接地位置より左側になる。
【０１０６】
演算部ＣＯＭは、瞬間旋回中心ＲＣから右駆動輪ＷＲの接地位置までの水平距離ＬＲを以下の式によって算出する（Ｓ９２）。
【０１０７】
ＬＲ＝ＲＣｘ−ＬＷ／２  ・・・（Ｆ５）
演算部ＣＯＭは、ＬＬとＬＲの絶対値を比較し、ＬＬの絶対値のほうが大きい場合には（Ｓ９３でＹＥＳ）、左駆動輪ＷＬの速度ＶＬを以下の式によって算出する（Ｓ９４）。
ＶＬ＝−ＶＭＡＸ×ＬＬ／｜ＬＬ｜  ・・・（Ｆ６）
式（Ｆ６）より、ＶＬは−ＶＭＡＸにＬＬの符号を乗じた値となる。
【０１０８】
次に、演算部ＣＯＭは、右駆動輪ＷＲの速度ＶＲを以下の式（Ｆ７）によって算出する（Ｓ９５）。
【０１０９】
ＶＲ＝−ＶＭＡＸ×｜ＬＲ｜／｜ＬＬ｜×ＬＲ／｜ＬＲ｜  ・・・（Ｆ７）
一方、演算部ＣＯＭは、ＬＬとＬＲの絶対値を比較し、ＬＲの絶対値がＬＬの絶対値以上である場合には（Ｓ９３でＮＯ）、右駆動輪ＷＲの速度ＶＲを以下の式によって算出する（Ｓ９４）。
【０１１０】
ＶＲ＝−ＶＭＡＸ×ＬＲ／｜ＬＲ｜・・・（Ｆ８）
式（Ｆ８）より、ＶＲは−ＶＭＡＸにＬＲの符号を乗じた値となる。
【０１１１】
次に、演算部ＣＯＭは、左駆動輪ＷＬの速度ＶＬを以下の式によって算出する。
ＶＬ＝−ＶＭＡＸ×｜ＬＬ｜／｜ＬＲ｜×ＬＬ／｜ＬＬ｜・・・（Ｆ９）
以上のように、演算部ＣＯＭは、左右の駆動輪速度ＶＬおよびＶＲを算出する。駆動輪速度ＶＬおよびＶＲの符号は正が前進方向を表わし、負が後退方向を表わす。なお、本発明の実施の形態に係る自走装置は右壁沿いの走行を行なう構成であるため、角部での旋回方向は左旋回である。
【０１１２】
このように、角旋回走行においても、左駆動輪速度ＶＬおよび右駆動輪速度ＶＲの少なくともいずれか一方を最大駆動輪速度ＶＭＡＸに設定することにより、自走装置Ｒをできるだけ高速に旋回させることができる。
【０１１３】
［変形例１］
本発明の実施の形態に係る自走装置は右壁沿いの走行を行なう構成であるとしたが、これに限定するものではなく、左壁沿いの走行を行なう構成であってもよい。
【０１１４】
この場合、前方距離センサＳＦおよび側方距離センサＳＳは、自走装置Ｒの左前方部に取り付けられる。
【０１１５】
さらに、壁沿い走行中のステップＳ３４の処理は以下のようになる。すなわち、演算部ＣＯＭは、側方距離センサＳＳの出力を読み込んで、自走装置Ｒの側方部から壁までの距離とメモリＭＥＭに予め記憶している目標離間距離ＬＤとを比較する。
【０１１６】
演算部ＣＯＭは、自走装置Ｒの側方部から壁までの距離が目標離間距離ＬＤとほぼ等しい場合には、左右の駆動輪速度ＶＬおよびＶＲを共に最大駆動輪速度ＶＭＡＸに設定する。
【０１１７】
また、演算部ＣＯＭは、自走装置Ｒの側方部から壁までの距離が目標離間距離ＬＤよりも長い場合には、右駆動輪速度ＶＲを最大駆動輪速度ＶＭＡＸに設定し、左駆動輪速度ＶＬをＶＭＡＸよりも小さい値に設定する。
【０１１８】
また、演算部ＣＯＭは、自走装置Ｒの側方部から壁までの距離が目標離間距離ＬＤよりも短い場合には、左駆動輪速度ＶＬを最大駆動輪速度ＶＭＡＸに設定し、右駆動輪速度ＶＲをＶＭＡＸよりも小さい値に設定する。
【０１１９】
さらに、図８のフローチャートにおけるステップＳ８２の処理は以下のようになる。すなわち、演算部ＣＯＭは、側方距離センサＳＳの取り付け位置ＰＳＳからｘ軸−方向に側方の離間距離ＬＳだけ移動した位置として側方物体検出位置ベクトルＰＳを算出する。さらに、駆動輪速度の算出式（Ｆ６）〜（Ｆ９）において、右辺の−ＶＭＡＸをＶＭＡＸに置き換える（負の符号をなくす）。
【０１２０】
さらに、図４のフローチャートにおけるステップＳ４６の処理は以下のようになる。すなわち、演算部ＣＯＭは、ステッピングモータＭＯＬおよびＭＯＲを駆動して自走装置を右に５度旋回させる接触回避旋回を行なう。
【０１２１】
上記以外の構成および動作は本発明の実施の形態に係る自走装置と同様であるため、ここでは詳細な説明を繰り返さない。
【０１２２】
［変形例２］
本発明の実施の形態に係る自走装置では、自走装置Ｒの走行する床面と平行な平面において、前方距離センサＳＦは、ｘ軸方向における検出範囲の中心線が自走装置Ｒの直進方向と一致するように配置され、側方距離センサＳＳは、ｙ軸方向における検出範囲の中心線が自走装置Ｒの直進方向と直交するように配置される構成であるとしたが、これに限定するものではない。前方距離センサＳＦのｘ軸方向における検出範囲の中心線が自走装置Ｒの直進方向と一致せず、側方距離センサＳＳのｙ軸方向における検出範囲の中心線が自走装置Ｒの直進方向と直交しない構成とすることも可能である。
【０１２３】
より詳細には、演算部ＣＯＭにおけるメモリＭＥＭは、前方距離センサＳＦの取り付け角θＦおよび側方距離センサＳＳの取り付け角θＳを記憶する。
【０１２４】
ここで、前方距離センサＳＦの取り付け角θＦは、ｘ軸方向における前方距離センサＳＦの検出範囲の中心線と自走装置Ｒの直進方向とのなす角度である。側方距離センサＳＳの取り付け角θＳは、ｙ軸方向における側方距離センサＳＳの検出範囲の中心線と自走装置Ｒの直進方向とのなす角度である。
【０１２５】
この場合、図８に示すフローチャートのステップＳ８１の処理は以下のようになる。すなわち、演算部ＣＯＭは、前方距離センサＳＦの取り付け位置ＰＳＦ、前方離間距離ＬＦおよび前方距離センサＳＦの取り付け角θＦに基づいて、以下の式によって前方物体検出位置ＰＦを算出する。
【０１２６】
ＰＦ＝ＰＳＦ＋｛ＬＦ×ｃｏｓ(θＦ)、ＬＦ×ｓｉｎ(θＦ)｝・・・（Ｆ１０）
さらに、図８に示すフローチャートのステップＳ８２の処理は以下のようになる。すなわち、演算部ＣＯＭは、側方距離センサＳＳの取り付け位置ＰＳＳ、側方離間距離ＬＳおよび側方距離センサＳＳの取り付け角θＳに基づいて、以下の式によって側方物体検出位置ＰＳを算出する。
【０１２７】
ＰＳ＝ＰＳＳ＋｛ＬＳ×ｃｏｓ(θＳ)、ＬＳ×ｓｉｎ(θＳ)｝・・・（Ｆ１１）
上記以外の構成および動作は本発明の実施の形態に係る自走装置と同様であるため、ここでは詳細な説明を繰り返さない。
【０１２８】
以上のような構成により、前方距離センサＳＦのｘ軸方向における検出範囲の中心線が自走装置Ｒの直進方向と一致せず、側方距離センサＳＳのｙ軸方向における検出範囲の中心線が自走装置Ｒの直進方向と直交しない構成にも本発明を適用することができる。
【０１２９】
なお、ｘ軸方向における前方距離センサＳＦの検出範囲の中心線と自走装置Ｒの直進方向とのなす角度は、自走装置Ｒの前方の物体を検知するために３０度以内である構成が好ましい。また、側方距離センサＳＳの取り付け角θＳは、ｙ軸方向における側方距離センサＳＳの検出範囲の中心線と自走装置Ｒの直進方向とのなす角度は、自走装置Ｒの側方の物体を検知するために６０度以上かつ１２０度未満である構成が好ましい。
【０１３０】
ところで、特許文献１および特許文献２記載の自走装置では、壁の角部で旋回する際に自走装置本体分程度の距離を往復する必要があり、無駄な走行距離が多いという問題点があった。しかしながら、本発明の実施の形態に係る自走装置では、演算部ＣＯＭが、所定周期で、距離センサＳによって検出された前方離間距離ＬＦおよび側方離間距離ＬＳに基づいて自走装置Ｒが角旋回走行を行なうか否か、すなわち旋回するか否かを決定し、旋回すると決定した場合には前方離間距離ＬＦおよび側方離間距離ＬＳに基づいて自走装置Ｒの瞬間旋回中心ＲＣを算出し、算出した瞬間旋回中心ＲＣに基づいて各駆動輪の速度を決定する。このような構成により、所定周期で最適な旋回中心を算出して自走装置Ｒの清掃部ＣＬＮが配置された前方部が壁と平行に移動することができるため、たとえば図５に示すように壁の角部で旋回する際の往復距離を小さくすることができ、無駄な走行距離を短くして効率的に作業を行なうことができる。また、仮に駆動輪がスリップするなどして自走装置の正確な移動量および旋回角度が測定できない場合でも、駆動輪がスリップした次の周期においてすぐに前方離間距離ＬＦおよび側方離間距離ＬＳに基づいて瞬間旋回中心および左右の駆動輪速度を更新することができるため、壁から大きく離れることなく安定して走行することができる。
【０１３１】
また、直進して壁に接触すれば少しだけ旋回するという単純な壁沿い走行を行なう自走装置と比較して壁面への接触回数を少なくすることができ、商品性を向上させることができる。
【０１３２】
また、特許文献１および特許文献２記載の自走装置では、一定半径で旋回を行なう構成であるため、往復回数が多くなる等、無駄な走行距離が多いという問題点がある。しかしながら、本発明の実施の形態に係る自走装置では、前方離間距離ＬＦおよび側方離間距離ＬＳに基づいて自走装置Ｒの瞬間旋回中心ＲＣを算出し、算出した瞬間旋回中心ＲＣに基づいて各駆動輪の旋回半径を算出し、算出した各旋回半径に基づいて各駆動輪の速度をそれぞれ決定する。このような構成により、所定周期で最適な旋回半径を算出して自走装置Ｒの清掃部ＣＬＮが配置された前方部が壁と平行に移動することができ、無駄な走行距離を短くして効率的に作業を行なうことができる。
【０１３３】
また、特許文献１記載の自走装置は、回転角センサおよび複数の前方センサが必要であり、さらに作業部のスライド機構が必要であるため、製造コストが増大するという問題点があるが、本発明の実施の形態に係る自走装置では、回転角センサが不要であり、また、前方距離センサは１個だけ備えればよく、製造コストの低減を図ることができる。
【０１３４】
また、特許文献２記載の自走装置は、走行距離に基づく現在位置測定を行なった後、現在位置に基づいて旋回を行なうため、滑りなどにより正確な位置測定を行なうことができない状況では適正な旋回ができず、また、走行パターンが一定であり異なる角度の角部に対応できず、また、角部で旋回する際に壁から離れる動作が必要であるため狭い場所に対応できないという問題点がある。しかしながら、本発明の実施の形態に係る自走装置では、演算部ＣＯＭが、所定周期で前方離間距離ＬＦおよび側方離間距離ＬＳに基づいて自走装置Ｒの瞬間旋回中心ＲＣを算出し、算出した瞬間旋回中心ＲＣに基づいて各駆動輪の速度をそれぞれ決定する構成であるため、滑りなどが生じて正確な走行距離の測定ができない場合でも適正に壁に沿って旋回することができ、また、様々な角度の角部に対応することができる。また、角部で旋回する際に壁から離れる動作が不要であるため、狭い場所でも適切に作業を行なうことができる。
【０１３５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１３６】
【図１】本発明の実施の形態に係る自走装置の構成を示す平面図である。
【図２】（ａ）および（ｂ）は、自走装置Ｒと壁面との位置関係を詳細に示す図である。
【図３】本発明の実施の形態に係る自走装置が壁沿い走行を行なう際の動作手順を定めたフローチャートである。
【図４】本発明の実施の形態に係る自走装置が角旋回走行を行なう際の動作手順を定めたフローチャートである。
【図５】(ａ)９０度、（ｂ）６０度、（ｃ）４５度の曲がり角を有する壁面を本発明の実施の形態に係る自走装置が走行するシミュレーション結果を示す図である。
【図６】２つの角部が連続する壁面において本発明の実施の形態に係る自走装置が行なう壁沿い走行および角旋回走行の様子を示す図である。
【図７】自走装置の旋回に関する位置関係を詳細に示す図である。
【図８】本発明の実施の形態に係る自走装置が瞬間旋回中心ＲＣを算出する際の動作手順を定めたフローチャートである。
【図９】本発明の実施の形態に係る自走装置が駆動輪速度を算出する際の動作手順を定めたフローチャートである。
【符号の説明】
【０１３７】
Ｒ  自走装置、Ｗ  駆動輪、ＭＯ，ＭＯＬ，ＭＯＲ  ステッピングモータ、Ｓ  距離センサ、ＣＯＭ  演算部（制御部）、ＢＴ  電池、ＢＦ  前方接触センサ（前方接触検出部）、ＢＳ  側方接触センサ（側方接触検出部）、ＣＬＮ  清掃部（作業部）、ＷＲ  右駆動輪、ＷＬ  左駆動輪、ＳＦ  前方距離センサ（前方距離検出部）、ＳＳ  側方距離センサ（側方距離検出部）、ＭＥＭ  メモリ、ＴＩＭ  タイマ、ＣＰ  カウンタ、ＰＳＦ，ＰＳＳ  取り付け位置、ＰＣ  前方端部位置、ＲＣ  瞬間旋回中心、ＯＲ  原点、ＬＦ  前方離間距離、ＬＳ  側方離間距離、ＬＷ  離間距離、ＬＤ  目標離間距離、ＬＬ，ＬＲ  水平距離、ＶＬ，ＶＲ  目標速度、ＶＭＡＸ  最大駆動輪速度。
【図１】
0004408872.tif 000002
【図２】
0004408872.tif 000003
【図３】
0004408872.tif 000004
【図４】
0004408872.tif 000005
【図５】
0004408872.tif 000006
【図６】
0004408872.tif 000007
【図７】
0004408872.tif 000008
【図８】
0004408872.tif 000009
【図９】
0004408872.tif 000010