(57)【要約】【課題】自走式機器が同じと０ころばかり走行せずに、走行空間全体を移動することができる、地図を必要としない自走式機器を提供することを目的とする。【解決手段】機器本体１００の移動手段１０３と、機器本体の走行をコントロールするコントロール手段１０１と、電力を供給する電池１０４と、障害物を検出する障害物検出手段１０２と、機器本体の移動軌跡の重心位置を算出する重心位置算出手段１０５とを備え、コントロール手段１０１は、機器本体の移動軌跡の平均重心位置を中心とした走行到達方向毎の値をカウントすることで次の走行方向を決めるようにした。これによって、例えば、走行到達方向毎のカウントの少ない方向を次の走行方向として決めることで、走行空間の形状や障害物にかかわらず、走行空間の地図を作成することなく走行空間全体を隈無く走行することができる。【選択図】図１
2008107954.tif 000002
【特許請求の範囲】
【請求項１】
機器本体を移動させる移動手段と、前記移動手段を操作して機器本体の走行をコントロールするコントロール手段と、機器本体に電力を供給する電池と、機器本体周辺の障害物を検出する障害物検出手段と、前記移動手段により移動した量から走行毎における機器本体の移動軌跡の重心位置を算出する重心位置算出手段とを備え、前記コントロール手段は、重心位置算出手段にて算出した機器本体の移動軌跡の平均重心位置を中心とした走行到達方向毎の値をカウントすることで次の走行方向を決めるようにした自走式機器。
【請求項２】
走行到達方向毎の値のカウントは、平均重心位置の中心からの方向値を複数象限に分割してカウントする請求項１に記載の自走式機器。
【請求項３】
機器本体の移動軌跡の重心位置または機器本体の移動軌跡の平均重心位置が、所定の距離移動した場合、走行到達方向毎のカウント値をリセットする請求項１または２に記載の自走式機器。
【請求項４】
平均重心位置からの距離に応じて、走行到達方向毎のカウント値を変化させる請求項１〜３のいずれか１項に記載の自走式機器。
【請求項５】
平均重心位置を中心とする円弧と、走行到達方向毎のカウント値を決める分割角度の方向に引いた線分との接点とから、機器本体の走行方向を決定する請求項１〜４のいずれか１項に記載の自走式機器。
【請求項６】
円弧の半径は、平均重心位置の標準偏差の値を利用する請求項５に記載の自走式機器。
【請求項７】
平均重心位置が、所定の距離移動した場合に、平均重心位置をリセットする請求項１〜６のいずれか１項に記載の自走式機器。
【請求項８】
機器本体が所定時間または所定距離移動した場合、平均重心位置をリセットする請求項１〜７のいずれか１項に記載の自走式機器。
【請求項９】
機器本体の次の走行方向は、走行方向を決め方向に対して一定の範囲を持たせた方向の範囲からランダムに選択する請求項１〜８のいずれか１項に記載の自走式機器。
【請求項１０】
機器本体の次の走行方向に走行できなかった場合、さらに次の走行時の走行方向とする請求項１〜９のいずれか１項に記載の自走式機器。
【請求項１１】
機器本体の次の走行方向を決定するタイミングは、一定時間または一定距離毎に行う請求項１〜１０のいずれか１項に記載の自走式機器。
【請求項１２】
機器本体が持上げられたことを検出する持上げ検出手段を備え、持上げ検出手段によって持上げられたことを検出した場合、コントロール手段によって走行を停止させ、走行を再開するときに、走行を最初から開始する請求項１〜１１のいずれか１項に記載の自走式機器。
【請求項１３】
請求項１〜１２のいずれか１項に記載の自走式機器における機能の少なくとも一部をコンピュータにより実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動的に屋内あるいは屋外を移動して清掃や巡回などの作業を行う自走式機器およびそのプログラムに関するものである。
【背景技術】
【０００２】
従来、この種の自走式機器は、走行空間全体を隈無く走行するために、さまざまな方式が提案されている。例えば、走行空間内をらせん状に徐々に回転半径を大きくしながら走行させる方式（例えば、特許文献１参照）や、障害物を見つけるまで直進を行い障害物検出後にランダムな角度だけ回転して直進する動作を繰り返す走行させる方式（例えば、特許文献２参照）がある。
【特許文献１】特許第３３７５８４３号公報
【特許文献２】特表２００４−５２２２３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前記従来のいずれの走行方式でも、走行空間である部屋の形状や障害物の位置によっては、自走式機器がはまり込んで同じところばかり走行してしまい効率が悪い場合が生じる。例えば、図１４に示すように、走行空間１４１における障害物によるはまり込みやすい場所１４２や、走行空間の構造によるはまり込みやすい場所１４３がそれである。場所１４２はテーブル下の例を示しており、テーブル１４４のテーブル足１４５や、椅子１４６の椅子足１４７が多くあるような状況であり、場所１４３は走行空間１４１が障害物１４８によって分断されている場合である。この場合、自走式機器１４９の走行軌跡例１５０に示すように移動できる領域が少ないため、自走式機器１４９がはまり込むような現象が発生する。
【０００４】
なお、走行空間１４１の地図を持たせることで部屋全体を隈無く移動させる場合では、走行空間１４１である部屋の形状を認識するための動作や入力手段が必要であり、さらにメモリの使用量や演算量を多く必要とするため安価に作成することが困難である。
【０００５】
本発明は、前記従来の課題を解決するもので、走行空間がどのような形状や障害物の位置であっても、自走式機器がはまり込んで同じところばかり走行せずに、走行空間全体を移動することができる、地図を必要としない自走式機器およびそのプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
前記従来の課題を解決するために、本発明の自走式機器およびそのプログラムは、機器本体を移動させる移動手段と、前記移動手段を操作して機器本体の走行をコントロールするコントロール手段と、機器本体に電力を供給する電池と、機器本体周辺の障害物を検出する障害物検出手段と、前記移動手段により移動した量から走行毎における機器本体の移動軌跡の重心位置を算出する重心位置算出手段とを備え、前記コントロール手段は、重心位置算出手段にて算出した機器本体の移動軌跡の平均重心位置を中心とした走行到達方向毎の値をカウントすることで次の走行方向を決めるようにしたものである。
【０００７】
これによって、例えば、走行到達方向毎のカウントの少ない方向を次の走行方向として決めることで、走行空間がどのような形状や障害物の位置であっても、自走式機器がはまり込んで同じところばかり走行せずに、走行空間の地図を作成することなく走行空間全体を隈無く走行することができる。
【発明の効果】
【０００８】
本発明の自走式機器およびそのプログラムは、走行空間がどのような形状や障害物の位置であっても、走行空間の地図を作成することなく走行空間全体を隈無く走行することができる。
【発明を実施するための最良の形態】
【０００９】
第１の発明は、機器本体を移動させる移動手段と、前記移動手段を操作して機器本体の走行をコントロールするコントロール手段と、機器本体に電力を供給する電池と、機器本体周辺の障害物を検出する障害物検出手段と、前記移動手段により移動した量から走行毎における機器本体の移動軌跡の重心位置を算出する重心位置算出手段とを備え、前記コントロール手段は、重心位置算出手段にて算出した機器本体の移動軌跡の平均重心位置を中心とした走行到達方向毎の値をカウントすることで次の走行方向を決めるようにした自走式機器としたものである。これにより、例えば、走行到達方向毎のカウントの少ない方向を次の走行方向として決めることで、走行空間がどのような形状や障害物の位置であっても、自走式機器がはまり込んで同じところばかり走行せずに、走行空間の地図を作成することなく走行空間全体を隈無く走行することができる。
【００１０】
第２の発明は、特に、第１の発明において、走行到達方向毎の値のカウントは、平均重心位置の中心からの方向値を複数象限に分割してカウントすることにより、走行空間全体を隈無く走行することができる。特に、４、８、１６象限などに分割してカウントするようにすれば、９０度毎に分割されるので、一般家庭の部屋の形状に合いやすく、隈無く走行させることが容易である。
【００１１】
第３の発明は、特に、第１または第２の発明において、機器本体の移動軌跡の重心位置または機器本体の移動軌跡の平均重心位置が、所定の距離移動した場合、走行到達方向毎のカウント値をリセットすることにより、大きく場所が移動した場合に前に走行していた位置の影響を受けずに、同じ場所にはまり込みにくくすることができる。
【００１２】
第４の発明は、特に、第１〜第３のいずれか１つの発明において、平均重心位置からの距離に応じて、走行到達方向毎のカウント値を変化させることにより、重心位置からの離れ度合いを考慮して走行空間全体を隈無く走行することができる。
【００１３】
第５の発明は、特に、第１〜第４のいずれか１つの発明において、平均重心位置を中心とする円弧と、走行到達方向毎のカウント値を決める分割角度の方向に引いた線分との接点とから、機器本体の走行方向を決定することにより、走行空間の形状の情報を持っていなくても目標とする次の到達方向の範囲に行きやすくすることができる。
【００１４】
第６の発明は、特に、第５の発明において、円弧の半径は、平均重心位置の標準偏差の値を利用することにより、走行空間（部屋）の大きさに適した値を使うことになり、次の到達方向の範囲に行きやすくすることができる。
【００１５】
第７の発明は、特に、第１〜第６のいずれか１つの発明において、平均重心位置が、所定の距離移動した場合に、平均重心位置をリセットすることにより、蓄積誤差をリセットすることができる。
【００１６】
第８の発明は、特に、第１〜第７のいずれか１つの発明において、機器本体が所定時間または所定距離移動した場合、平均重心位置をリセットすることにより、蓄積誤差をリセットすることができる。
【００１７】
第９の発明は、特に、第１〜第８のいずれか１つの発明において、機器本体の次の走行方向は、走行方向を決め方向に対して一定の範囲を持たせた方向の範囲からランダムに選択することにより、ランダム性を持たせながら、機器本体がはまり込むことなく、走行空間全体を隈無く走行することができる。
【００１８】
第１０の発明は、特に、第１〜第９のいずれか１つの発明において、機器本体の次の走行方向に走行できなかった場合、さらに次の走行時の走行方向とすることにより、走行空間全体を隈無く走行することができる。
【００１９】
第１１の発明は、特に、第１〜第１０のいずれか１つの発明において、機器本体の次の走行方向を決定するタイミングは、一定時間または一定距離毎に行うことにより、機器本体がはまり込むことなく走行空間全体を隈無く走行することができる。
【００２０】
第１２の発明は、特に、第１〜第１１のいずれか１つの発明において、機器本体が持上げられたことを検出する持上げ検出手段を備え、持上げ検出手段によって持上げられたことを検出した場合、コントロール手段によって走行を停止させ、走行を再開するときに、走行を最初から開始することにより、例えば、ユーザが機器本体を持上げて、走行空間（部屋）を移動させた場合に自動的に最初から走行を開始することができるので、持上げられたことが機器本体位置の変化と自動的に判断して最初から清掃などをすることができる。
【００２１】
第１３の発明は、特に、第１〜第１２のいずれか１つの発明における自走式機器の機能の少なくとも一部をコンピュータで実行させるためのプログラムとしたことにより、汎用的なコンピュータを用いて自走式機器の全てもしくは一部を容易に実現することができる。
【００２２】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、この実施の形態によって本発明が限定されるものではない。
【００２３】
（実施の形態１）
図１〜図３は、本発明の実施の形態１における自走式機器を示すものである。
【００２４】
図１に示すように、本実施の形態における機器本体１００は、機器本体の走行をコントロールするマイクロ・コンピュータよりなるコントロール手段１０１と、機器本体周辺の障害物を検出する障害物検出手段１０２と、機器本体１００を移動させる移動手段１０３と、機器本体１００に電力を供給する電池１０４と、移動手段１０３により移動した量から走行毎における機器本体１００の移動軌跡の重心位置を算出する重心位置算出手段１０５とを少なくとも有している。
【００２５】
そして、前記コントロール手段１０１は、重心位置算出手段１０５にて算出した機器本体１００の移動軌跡の平均重心位置を中心とした走行到達方向毎の値をカウントすることで次の走行方向を決めるようにしている。例えば、コントロール手段１０１によって、移動手段１０３を制御しながら、重心位置算出手段１０５により算出した機器本体１００の移動軌跡の平均重心位置からの方向をコントロール手段１０１でカウントすることで、カウント数の少ない方向を次の走行方向とすることにより、走行空間内の同じ場所にはまり込むことなく走行空間全体を隈無く走行するようにしている。
【００２６】
以下、各構成部の詳細について説明する。
【００２７】
コントロール手段１０１は、例えば、ＣＰＵ、メモリで構成されている。機器本体１００の動作をコントロールするために、移動手段１０３への制御信号を生成する。例えば、障害物検出手段１０２の情報を使って障害物との接触を回避するように駆動させることや、移動量算出手段（図示せず）で算出した移動量から動作を変化させる。構成としては、他にも、ＣＰＵ、メモリを１つにした１チップマイコンや、ＦＰＧＡ、ＤＳＰなどの他の演算可能なものであっても構わない。また、ＨＤＤやＤＶＤやフラッシュメモリなどの記録装置と一緒に構成することで、メモリ容量を大量に利用するような複雑な処理をすることも可能にすることができる。さらに、無線ＬＡＮなどの通信装置と一緒に構成することで、機器本体１００と外部機器との通信が可能になり、蓄積しているデータの送信や、新たな制御パターンの受信など、さらに高度な処理を可能にすることができる。特に、マイクロ・コンピュータを使うことで、移動手段１０３のコントロールには、移動手段として利用する装置にあわせて、ＰＷＭなどによる制御やシリアル通信による移動量の設定などのさまざまな形態の制御をさせることが可能である。他にもコントロール手段１０１は汎用的に利用することができるので、さまざまな装置のコントロールとして一緒に利用することが可能である。
【００２８】
障害物検出手段１０２は、例えば、光の反射を利用して、障害物との距離を計測することが可能な測距センサや、超音波の反射を利用して、障害物との距離を計測することが可能な超音波センサや、障害物が機器本体１００に接触したときのスイッチ作動、あるいは電圧の変化を検出することで、接触を検出するバンパの役割をする接触センサなどによって構成することが可能である。なお、これらのセンサを機器本体１００に複数個組み込んでおくことで、各センサの特性として検出が困難な状態であっても、検出能力の相互補間を行うことができるので、検出精度を上げることが可能になる。他にも、ＣＣＤカメラなどの映像を取り込むセンサや、レーザ、電磁波、磁力などの性質を利用したセンサを障害物の検出を行う機能として利用することが可能である。
【００２９】
移動手段１０３は、例えば、２つのモータと２つの駆動輪を左右に水平に配置するように構成することで、コントロール手段１０１からの制御信号によって、左右のモータの回転数を変化させることにより、駆動輪が動作して、機器本体１００が移動する。移動手段１０３は、モータと駆動輪の組み合わせ以外にも、複数のサーボモータを組み合わせた関節型のアクチュエータを組み合わせた２本足や４本足などの多足移動可能なものや、利用するモータは、リニアモータなど物理的な動作が可能なものであれば構わない。
【００３０】
電池１０４は、例えば、ニッケル水素２次電池にすることで、機器本体１００への電力の供給が可能である。他にも、機器本体１００への電力が供給可能なものであれば、アルカリ乾電池やオキシライド乾電池などの１次電池、ニッケルカドミウム２次電池、リチウムイオン２次電池、リチウムポリマー２次電池、燃料電池などでも構わない。さらに、有線の電線を使って外部のＡＣ電源から電力を供給することや、マイクロウェーブなどの外部から非接触で電力を供給するなど、機器本体１００が動作中に電力を供給できるものであれば構わない。
【００３１】
重心位置算出手段１０５は、例えば、駆動輪などに備え付けた回転数をカウントするエンコーダや移動時の加速度を検出する加速度センサや位置情報を受信するＧＰＳ装置などの移動量の算出を行う装置と演算装置を組み合わせたものである。例えば、２輪駆動の場合、移動手段１０３の左右輪に備え付けたエンコーダの発生するパルスをそれぞれカウントすることで、左右の駆動輪の移動量から機器本体１００の移動量を算出することができる。算出した移動量から、例えば、１回の直進走行毎の重心位置を算出する場合は、開始位置（Ｘｓ，Ｙｓ）、終了位置（Ｘｅ，Ｙｅ）として、重心位置（Ｘｇ，Ｙｇ）は、
Ｘｇ＝（Ｘｅ＋Ｘｓ）／２、Ｙｇ＝（Ｙｅ＋Ｙｓ）／２
から求めることができる。
【００３２】
なお、演算に関してはコントロール手段１０１の演算機能を利用するように構成しても構わない。さらに、移動量については、加速度センサやジャイロのような他の装置と組み合わせることで、移動量の算出精度を高めることができる。また、ＧＰＳ装置のように位置情報を直接受信するような方法で移動量を算出しても構わない。また、他の移動量の算出方法として、移動手段１０３への移動量の命令から移動量を算出して求めることも可能である。例えば、左右２輪の移動手段１０３を持つ機器本体１００の場合は、左右の駆動輪の速度設定と、設定経過時間から移動した距離と回転角度を算出することができる。このようにすると、重心位置算出手段１０５は、コントロール手段１０１で代用することができるのでより安価に作成することも可能となる。
【００３３】
なお、本実施の形態では、重心位置の求め方として、開始位置と終了位置を例として挙げたが、走行位置を随時計算しながら重心を求めることで重心位置の精度を上げることも可能であり、どのような求め方であっても構わない。
【００３４】
なお、本実施の形態では、走行到達数の少ない方向を求めて、走行方向を決定することにあるので、大まかな重心位置の算出であって構わない。
【００３５】
次に、図２の走行到達方向毎の値をカウントして次の走行方向を決める動作のフローチャート、および図３の走行到達方向毎の値をカウントして次の走行方向を決める動作の例を用いて、機器本体１００が移動手段１０３をコントロール手段１０１よりコントロールを行い、走行到達方向毎の値をカウントして次の走行方向を決めながら、機器本体１００の走行空間を隈無く走行する流れについて説明する。
【００３６】
図２のステップＳ２０１から動作が開始する。ステップＳ２０１では、進行方向に対して直進に進む直進走行を行う。コントロール手段１０１によって移動手段１０３をコントロールすることにより走行を行う。なお、本実施の形態では、直進走行を例として挙げているが、どのような走行パターンでも構わない。例えば、回転半径を少しずつ増加あるいは減少させながら走行軌跡として螺旋を描くような走行や、走行軌跡がＳ字になるようなターンを繰り返す動きや、直進や回転などの複数の動きを組み合わせたものでも構わない。
【００３７】
ステップ２０２では、障害物検出手段１０２により走行の妨げとなる障害物があるか判断を行う。走行の妨げとなる障害物がない場合はステップＳ２０１に戻って動作を継続する。走行の妨げとなる障害物がある場合は、ステップＳ２０３に動作を移行する。ステップＳ２０３では、重心位置算出手段１０５により直進走行の開始位置および現在の位置である終了位置から、走行軌跡の重心位置を算出して、ステップＳ２０４へ動作を移行する。
【００３８】
ステップＳ２０４では、ステップＳ２０３で算出した今回の走行軌跡の重心位置から走行軌跡の平均重心位置の計算を行いステップＳ２０５へ動作を移行する。例えば、コントロール手段１０１により算出した重心位置の合計を記憶し、記憶している重心位置の合計に新たに算出した重心位置を足し込んで、さらに足し込んだ重心位置の数で重心位置の合計を割ることで平均重心位置を求めることが可能である。
【００３９】
ステップＳ２０５では、ステップＳ２０４で求めた平均重心位置からの機器本体１００の現在値の方向を求め、走行到達方向の値のカウントを行いステップＳ２０６へ動作を移行する。
【００４０】
例えば、図３に示すように、走行空間３０１を第１象限〜第４象限に４分割してカウントを行う場合は、第１象限〜第４象限のどの方向に到達したかの判断を行うことで、対象となる象限のカウントをアップする。図３の例では４分割の例を挙げているが、８分割や１６分割など細分化していくことで、より細かな角度の方向のカウントを記憶しておくことが可能である。図３には平均重心位置３０２、機器本体の走行開始位置３０３および走行軌跡３０４をあわせて示している。
【００４１】
ステップＳ２０６では、ステップＳ２０５でカウントを行った到達方向毎のカウント値から次の走行方向の決定を行いステップＳ２０７へ動作を移行する。
【００４２】
例えば、図３に示すように、カウント値が一番小さい値である第３象限（カウント１）の方向を選択することで、到達方向毎の到達数を均等にすることができるので、隈無く走行を行うことができる。他にも一番カウントの多い第１象限（カウント３）から離れる方向に走行することでも同様の効果を得ることが可能である。
【００４３】
ステップＳ２０７では、ステップＳ２０６で決めた方向へ機器本体１００の回転を行う。なお、本実施の形態では、左右に車輪を備えた機器本体を想定して説明を行っているが、回転せずに目的の方向へ移動することが可能な構成であれば、本ステップは飛ばして進めることが可能である。ステップＳ２０７の動作が完了するとステップＳ２０１へ動作を戻して繰り返し動作を継続させる。
【００４４】
このように走行方向を決めていくことで、地図のような詳細な情報を持たずに行うことができる。また、単純な重心計算とカウントのみの少ない計算量でかつ、地図の情報を持たずに少ないメモリ使用量で機器本体１００の走行空間３０１を隈無く走行させることができるようになる。
【００４５】
また、本実施の形態では、図３で説明したように４象限に分割することで、９０度毎に分割されるので、一般家庭の部屋の形状に合いやすく、隈無く走行することができる。また、感覚的にユーザにわかりやすくすることができ、メモリの使用量を少なくすることができる。
【００４６】
（実施の形態２）
次に、本発明の実施の形態２における自走式機器について説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【００４７】
本実施の形態における自走式機器は、図４に示すステップＳ４０１から開始する。ステップＳ４０１では、実施の形態１のステップＳ２０１と同様に直進走行を行う。ステップＳ４０２では、障害物検出手段１０２により走行の妨げとなる障害物があるかどうかの判断を行う。走行の妨げとなる障害物がない場合はステップＳ４０１に戻って動作を継続する。走行の妨げとなる障害物がある場合は、ステップＳ４０３に動作を移行する。ステップＳ４０３では、重心位置算出手段１０５により直進走行の開始位置および現在の位置である終了位置から、走行軌跡の重心位置を算出して、ステップＳ４０４へ動作を移行する。
【００４８】
ステップＳ４０４では、ステップＳ４０３で算出した今回の走行軌跡の重心位置から走行軌跡の平均重心位置の計算を行いステップＳ４０５へ動作を移行する。ステップＳ４０５では、平均重心位置が所定距離移動したかどうかの判断を行う。例えば、最初に算出した平均重心位置から、３メートルなどの所定の距離以上移動した場合は、機器本体１００の位置が大きく移動したと判断することができる。なお、所定の距離の値は機器本体１００の大きさや、走行空間（部屋）３０１の大きさや、直進走行を行ったときの走行長さなどをパラメータとして、自動的に決めても構わないし、固定距離としても構わないし、ユーザが選択できるようにしても構わない。
【００４９】
平均重心位置が所定距離移動した場合は、ステップＳ４０６へ動作を移行する。平均重心位置が所定距離移動していない場合は、ステップＳ４０７へ動作を移行する。ステップＳ４０６では、走行到達方向毎に記憶しているカウント値をリセットする。例えば、機器本体１００で記憶している平均重心位置の値をゼロにリセットすることで記憶をリセットすることができる。
【００５０】
ステップＳ４０７では、ステップＳ４０４で求めた平均重心位置からの機器本体１００の現在値の方向を求め、走行到達方向の値のカウントを行いステップＳ４０８へ動作を移行する。ステップＳ４０８では、ステップＳ４０６でカウントを行った到達方向毎のカウント値から次の走行方向の決定を行いステップＳ４０９へ動作を移行する。
【００５１】
ステップＳ４０９では、ステップＳ４０８で決めた方向へ機器本体１００の回転を行う。ステップＳ４０９の動作が完了するとステップＳ４０１へ動作を戻して繰り返し動作を継続させる。
【００５２】
このように方向を決めていくことで、地図のような詳細な情報を持たずに、少ない計算量やメモリ使用量で機器本体の走行空間を隈無く走行させることができるようになり、さらに大きく場所が移動した場合に前に走行していた位置の影響を受けずに、同じ場所にはまり込みにくくすることができる。
【００５３】
（実施の形態３）
次に、本発明の実施の形態３における自走式機器について説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【００５４】
本実施の形態における自走式機器は、平均重心位置からの距離に応じて走行到達方向毎にカウントする値を変化させるものである。
【００５５】
図５の例では、平均重心位置５０２を中心とする距離に応じた５つの円のどの位置に到達位置があるかによって、カウントを１から５の５段階に分けて、重心からの距離ごとのカウント値５０５を大きくしている例である。本例では走行空間５０１における機器本体の走行開始位置５０３、走行軌跡５０４からわかるように、一番到達距離の遠い第１象限のカウントが一番高くなっていることがわかる（カウント１０）。このように距離に応じてカウント値を変えることにより、より遠くまで進んだ象限の方向に対しては次の方向として進む確率を下げる効果があり、到達数が多くても、平均重心位置５０２から近い位置ばかり到達している象限の方向に対しては、より高い確率で次の方向として選択させることが可能になる。
【００５６】
このように、障害物が存在していて、到達方向に対する走行距離に偏りが発生するような場合であっても補正することができるので、平均重心位置を中心とする走行空間全体を隈無く走行することが可能となる。
【００５７】
（実施の形態４）
次に、本発明の実施の形態４における自走式機器について説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【００５８】
本実施の形態における自走式機器は、平均重心位置を中心とする円弧と、走行到達方向毎のカウント値を決める分割角度の方向に引いた線分との接点とから、機器本体の走行方向を決定するものである。
【００５９】
図６の例では、機器本体の現在位置Ａに示す位置に機器本体１００が位置している場合に、次の走行方向が第３象限であった場合は、平均重心位置６０２を中心とする円弧Ｂと、円弧Ｂと走行到達方向毎にカウントしている値を決める分割角度の方向に引いた線分との交点ＣおよびＤから、次の方向範囲Ｅを求めることができる。なお、円弧の半径６０５は、走行空間６０１の大きさなどによって適当に決めても構わないが、平均重心位置６０２と各走行の走行軌跡６０４の重心位置との距離の標準偏差を利用することで、より適当な値とすることができる。
【００６０】
このように、次の走行方向の範囲を決めることで、走行空間の形状の情報を持っていなくても目標とする次の到達方向の範囲に行きやすくすることができる。
【００６１】
（実施の形態５）
次に、本発明の実施の形態５における自走式機器について説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【００６２】
本実施の形態における自走式機器は、平均重心位置が、所定の距離移動した場合に、平均重心位置をリセットするようにしたものである。
【００６３】
動作の流れは、図７のステップＳ７０１から開始する。ステップＳ７０１では、実施の形態１のステップＳ２０１と同様に直進走行を行う。ステップＳ７０２では、障害物検出手段１０２により走行の妨げとなる障害物があるかどうかの判断を行う。走行の妨げとなる障害物がない場合はステップＳ７０１に戻って動作を継続する。走行の妨げとなる障害物がある場合は、ステップＳ７０３に動作を移行する。ステップＳ７０３では、重心位置算出手段１０５により直進走行の開始位置および現在の位置である終了位置から、走行軌跡の重心位置を算出して、ステップＳ７０４へ動作を移行する。
【００６４】
ステップＳ７０４では、ステップＳ７０３で算出した今回の走行軌跡の重心位置から走行軌跡の平均重心位置の計算を行いステップＳ７０５へ動作を移行する。ステップＳ７０５では、平均重心位置が所定距離移動したかどうかの判断を行う。平均重心位置が所定距離移動した場合は、ステップＳ７０６へ動作を移行する。平均重心位置が所定距離移動していない場合は、ステップＳ７０７へ動作を移行する。
【００６５】
ステップＳ７０６では、平均重心位置の値をリセットする。例えば、機器本体１００で記憶している平均重心位置の値をゼロにリセットすることで記憶をリセットすることができる。ステップＳ７０７では、ステップＳ７０４で求めた平均重心位置からの機器本体１００の現在値の方向を求め、走行到達方向の値のカウントを行いステップＳ７０８へ動作を移行する。
【００６６】
ステップＳ７０８では、ステップＳ７０７でカウントを行った到達方向毎のカウント値から次の走行方向の決定を行いステップＳ７０９へ動作を移行する。ステップＳ７０９では、ステップＳ７０８で決めた方向へ機器本体１００の回転を行う。ステップＳ７０９の動作が完了するとステップＳ７０１へ動作を戻して繰り返し動作を継続させる。
【００６７】
このように方向を決めていくことで、地図のような詳細な情報を持たずに、少ない計算量やメモリ使用量で機器本体の走行空間を隈無く走行させることができるようになり、さらに、蓄積誤差をリセットすることができるため、誤差による影響を少なくすることができる。
【００６８】
（実施の形態６）
次に、本発明の実施の形態６における自走式機器について説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【００６９】
本実施の形態における自走式機器は、機器本体が所定距離移動した場合、平均重心位置をリセットするようにしたものである。
【００７０】
動作の流れは、図８のステップＳ８０１から開始する。ステップＳ８０１では、実施の形態１と同様に直進走行を行う。ステップＳ８０２では、障害物検出手段１０２により走行の妨げとなる障害物があるかどうかの判断を行う。走行の妨げとなる障害物がない場合はステップＳ８０１に戻って動作を継続する。走行の妨げとなる障害物がある場合は、ステップＳ８０３に動作を移行する。ステップＳ８０３では、重心位置算出手段１０５により直進走行の開始位置および現在の位置である終了位置から、走行軌跡の重心位置を算出して、ステップＳ８０４へ動作を移行する。
【００７１】
ステップＳ８０４では、ステップＳ８０３で算出した今回の走行軌跡の重心位置から走行軌跡の平均重心位置の計算を行いステップＳ８０５へ動作を移行する。ステップＳ８０５では、機器本体１００が所定の距離を移動したかどうかの判断を行う。なお、本実施の形態では、所定の距離移動した場合を例に挙げているが、所定の時間経過した場合や、所定の回数直進走行を行った場合など、特定の期間毎に行う動作であれば同様の効果を得ることが可能である。
【００７２】
機器本体１００が所定距離移動した場合は、ステップＳ８０６へ動作を移行する。機器本体１００が所定距離移動していない場合は、ステップＳ８０７へ動作を移行する。ステップＳ８０６では、平均重心位置の値をリセットする。ステップＳ８０７では、ステップＳ８０４で求めた平均重心位置からの機器本体の現在値の方向を求め、走行到達方向の値のカウントを行いステップＳ８０８へ動作を移行する。ステップＳ８０８では、ステップＳ８０７でカウントを行った到達方向毎のカウント値から次の走行方向の決定を行いステップＳ８０９へ動作を移行する。
【００７３】
ステップＳ８０９では、ステップＳ８０８で決めた方向へ機器本体１００の回転を行う。ステップＳ８０９の動作が完了するとステップＳ８０１へ動作を戻して繰り返し動作を継続させる。
【００７４】
このように方向を決めていくことで、地図のような詳細な情報を持たずに、少ない計算量やメモリ使用量で機器本体の走行空間を隈無く走行させることができるようになり、さらに、蓄積誤差をリセットすることができるため、誤差による影響を少なくすることができる。
【００７５】
（実施の形態７）
次に、本発明の実施の形態７における自走式機器について説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【００７６】
本実施の形態における自走式機器は、機器本体の次の走行方向は、走行方向を決め方向に対して一定の範囲を持たせた方向の範囲からランダムに選択するようにしたものである。
【００７７】
図９の例では、走行空間９０１内の平均重心位置９０２、機器本体の走行軌跡９０３を示し、機器本体の現在位置Ａに示す位置に機器本体１００が位置している場合の次の方向範囲内からランダムに選択Ｂするものである。
【００７８】
このようにして、ランダム性を持たせながら、機器本体がはまり込むことなく走行空間全体を隈無く走行することができるように構成することができる。なお、走行範囲内に壁などの障害物が含まれている場合は、障害物の存在する方向は省くことで、無駄な動作を少なくすることができる。
【００７９】
（実施の形態８）
次に、本発明の実施の形態８における自走式機器について説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【００８０】
本実施の形態における自走式機器は、機器本体の次の走行方向に走行できなかった場合、さらに次の走行時の走行方向とするようにしたものである。
【００８１】
図１０の例に示すように、走行空間１１０内における次の走行方向が第３象限であった場合に、機器本体の位置Ａでは、障害物である壁Ｃによって位置Ａの方向範囲はすべて移動することができない状態である。このような場合は、次の走行時である機器本体の位置Ｂで再度の走行方向である第３象限の方向への範囲である位置Ｂの方向範囲を求めることによって次の走行時の走行方向とする。
【００８２】
このように、次の走行方向として行けない場合であっても、効率よく移動して、走行空間全体を隈無く走行することができる。なお、次の走行方向として行けない場合は、ランダムに方向を決めて進めたり、壁Ｃを沿うように進めたりすることで次の状態へ移行することができる。
【００８３】
（実施の形態９）
次に、本発明の実施の形態９における自走式機器について説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【００８４】
本実施の形態における自走式機器は、機器本体の次の走行方向を決定するタイミングは、一定時間または一定距離毎に行うようにしたものである。
【００８５】
動作の流れは、図１１のステップＳ１１０１から開始する。ステップＳ１１０１では、実施の形態１のステップＳ２０１と同様に直進走行を行う。ステップＳ１１０２では、障害物検出手段１０２により走行の妨げとなる障害物があるかどうかの判断を行う。走行の妨げとなる障害物がない場合はステップＳ１１０１に戻って動作を継続する。走行の妨げとなる障害物がある場合は、ステップＳ１１０３に動作を移行する。
【００８６】
ステップＳ１１０３では、重心位置算出手段１０５により直進走行の開始位置および現在の位置である終了位置から、走行軌跡の重心位置を算出して、ステップＳ１１０４へ動作を移行する。ステップＳ１１０４では、ステップＳ１１０３で算出した今回の走行軌跡の重心位置から走行軌跡の平均重心位置の計算を行いステップＳ１１０５へ動作を移行する。
【００８７】
ステップＳ１１０５では、ステップＳ１１０４で求めた平均重心位置からの機器本体の現在値の方向を求め、走行到達方向の値のカウントを行いステップＳ１１０６へ動作を移行する。ステップＳ１１０６では、一定時間経過したかどうかの判断を行う。なお、本実施の形態では、一定時間を判断基準としたが、一定距離や一定回数の動作などであっても構わない。
【００８８】
一定時間経過した場合は、ステップＳ１１０８に移行し、一定時間経過していない場合は、ステップＳ１１０７に動作を移行する。ステップＳ１１０７では、ランダムに方向を転換してステップＳ１１０１に動作を戻す。なお、本実施の形態では、ランダムに方向転換としているが、他のどのような動作であっても構わない。
【００８９】
ステップＳ１１０８では、ステップＳ１１０６でカウントを行った到達方向毎のカウント値から次の走行方向の決定を行いステップＳ１１０９へ動作を移行する。ステップＳ１１０９では、ステップＳ１１０８で決めた方向へ機器本体１００の回転を行う。ステップＳ１１０９の動作が完了するとステップＳ１１０１へ動作を戻して繰り返し動作を継続させる。
【００９０】
このように一定時間または一定距離毎に方向を決めていくことで、他の走行動作と組み合わせて、機器本体がはまり込むことなく、走行空間全体を隈無く走行することができる。
【００９１】
（実施の形態１０）
次に、図１２、図１３に基づき本発明の実施の形態１０における自走式機器について説明する。自走式機器の基本構成は、実施の形態１と同様であるので同一要素については同一符号を付してその説明を省略する。
【００９２】
図１２に示すように、本実施の形態における自走式機器は、機器本体１２０が持上げられたことを検出する持上げ検出手段１２１を備えたものである。持上げ検出手段１２１は、機器本体１２０がユーザによって持上げられたことを検出するものであり、例えば、機器本体１２０の底面にスイッチを備え付けることで持上げられたときに変化するスイッチＯＮ／ＯＦＦ状態を検出することで、持上げの検出が可能となる。他にも、移動手段１０３の駆動輪にかかる圧力を圧力センサによって検出することや、測距センサを用いて、床面との距離の変化を非接触で検出することなど、どのような方式であっても持上げられたことを検出する機能を有していれば構わない。
【００９３】
そして、持上げ検出手段１２１によって持上げられたことを検出した場合、コントロール手段１０１によって走行を停止させ、走行を再開するときに、走行を最初から開始するようにしている。
【００９４】
これにより、例えば、ユーザが機器本体１２０を持上げて、走行空間（部屋）を移動させた場合に自動的に最初から走行を開始することができるので、持上げられたことが機器本体１２０位置の変化と自動的に判断して最初から清掃などをすることができるものである。
【００９５】
図１３により、機器本体１２０の持上げ時に走行を最初から行う動作について説明する。
【００９６】
動作はステップＳ１３０１から開始する。ステップＳ１３０１では、実施の形態１のステップＳ２０１と同様に、直進走行を行う。ステップＳ１３０２では、持上げ検出手段１２０により持上げられているかどうかを判断する。持上げられている場合は、ステップＳ１３０３へ動作を移行し、持上げられていない場合はステップＳ１３０４へ動作を移行する。ステップＳ１３０３では、動作を停止させて、走行開始からの状態にリセットする。持上げられた状態が解除された場合は、走行を自動的に再開しても構わないし、停止状態のままユーザからの開始命令を待つ状態になるように構成しても構わない。
【００９７】
ステップＳ１３０４では、障害物検出手段１０２により走行の妨げとなる障害物があるかどうかの判断を行う。走行の妨げとなる障害物がない場合はステップＳ１３０１に戻って動作を継続する。走行の妨げとなる障害物がある場合は、ステップＳ１３０５に動作を移行する。ステップＳ１３０５では、重心位置算出手段１０５により直進走行の開始位置および現在の位置である終了位置から、走行軌跡の重心位置を算出して、ステップＳ１３０６へ動作を移行する。
【００９８】
ステップＳ１３０６では、ステップＳ１３０５で算出した今回の走行軌跡の重心位置から走行軌跡の平均重心位置の計算を行いステップＳ１３０７へ動作を移行する。ステップＳ１３０７では、ステップＳ１３０６で求めた平均重心位置からの機器本体の現在値の方向を求め、走行到達方向の値のカウントを行いステップＳ１３０８へ動作を移行する。
【００９９】
ステップＳ１３０８では、ステップＳ１３０７でカウントを行った到達方向毎のカウント値から次の走行方向の決定を行いステップＳ１３０９へ動作を移行する。ステップＳ１３０９では、ステップＳ１３０８で決めた方向へ機器本体１２０の回転を行う。ステップＳ１３０９の動作が完了するとステップＳ１３０１へ動作を戻して繰り返し動作を継続させる。
【０１００】
このような流れで構成することにより、持上げられたことが、機器本体の位置が変化したものと自動的に判断して最初から清掃することができるので、例えば、ユーザが機器本体を持上げて、走行空間（部屋）を移動させた場合に自動的に最初から走行動作を開始することができるため、より利便性を高めることが可能となる。また、記憶していた平均重心位置をリセットすることで、走行空間と違った平均重心位置を使うことで誤動作してしまうことを避けることが可能となる。
【０１０１】
（実施の形態１１）
次に、本発明の実施の形態１１における自走式機器のプログラムについて説明する。自走式機器の構成は、実施の形態１と同様であるのでその説明を省略する。
【０１０２】
本実施の形態は、各実施の形態１〜１０に示した自走式機器の機能の少なくとも一部をコンピュータで実行させるためのプログラムとしたものである。
【０１０３】
プログラムとしたことにより、汎用的なコンピュータを用いて自走式機器の全てもしくは一部を容易に実現することができる。これにより、さまざまな自走式機器のプラットフォームに対応させることが容易に可能となる。また、例えば、一部を汎用コンピュータで利用可能なプログラムにすることで、無線ＬＡＮなどの通信機能を用いて、汎用コンピュータと自走式機器を通信させて、コントロール手段１０１の走行の制御などを汎用のコンピュータ側で行うことにより、自走式機器のＣＰＵやメモリといった機能の能力を削減することができるので、より安価に本装置を提供することが可能となる。さらに、汎用コンピュータに接続されているインターネットなどの外部との通信機能を介して、外出先からユーザが自走式機器を操作することを可能にすることも容易に実現が可能となる。また、記録媒体に記録したり、通信回線を用いてプログラムを配信したりすることで、プログラムの配布・更新やそのインストール作業が簡単にできる。
【０１０４】
なお、上記した各実施の形態１〜１１の構成は、必要に応じて適宜組み合わせることができるものであり、実施の形態そのものの構成に限られるものではない。
【産業上の利用可能性】
【０１０５】
以上のように、本発明にかかる自走式機器およびそのプログラムは、走行空間がどのような形状や障害物の位置であっても、走行空間の地図を作成することなく走行空間全体を隈無く走行することができるので、掃除ロボットや、草刈ロボットや、片付けロボットや、家事ロボットあるいは監視ロボットなど、家庭内や野外の不特定の空間を自動的に移動しながら作業を行う機器に有用である。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施の形態１における自走式機器の構成を示すブロック図
【図２】同自走式機器における走行到達方向毎の値をカウントして次の走行方向を決める動作を示すフローチャート
【図３】同自走式機器における走行到達方向毎の値をカウントして次の走行方向を決める動作例を示した説明図
【図４】本発明の実施の形態２における自走式機器の走行到達方向毎にカウントしている値をリセットする動作を示すフローチャート
【図５】本発明の実施の形態３における自走式機器の走行到達方向毎の値をカウントして次の走行方向を決める動作例を示した説明図
【図６】本発明の実施の形態４における自走式機器の円弧と分割角度の方向との接点から走行方向を決定する動作例を示した説明図
【図７】本発明の実施の形態５における自走式機器の平均重心位置の移動量から平均重心位置の値をリセットする動作のフローチャート
【図８】本発明の実施の形態６における自走式機器の走行距離により平均重心位置の値をリセットする動作のフローチャート
【図９】本発明の実施の形態７における自走式機器の次の方向範囲内からランダムに選択する動作例を示した説明図
【図１０】本発明の実施の形態８における自走式機器の走行方向に走行できなかった場合はさらに次の走行時の走行方向とする動作例を示した説明図
【図１１】本発明の実施の形態９における自走式機器の一定時間毎に次の方向を決定する動作のフローチャート
【図１２】本発明の実施の形態１０における自走式機器の構成を示すブロック図
【図１３】同自走式機器の持上げ時に自動的に検出を行う動作のフローチャート
【図１４】従来の自走式機器の走行で同じ場所にはまり込む例を示した説明図
【符号の説明】
【０１０７】
１００、１２０  機器本体
１０１  コントロール手段
１０２  障害物検出手段
１０３  移動手段
１０４  電池
１０５  重心位置算出手段
１２１  持上げ検出手段
【図１】
2008107954.tif 000003
【図２】
2008107954.tif 000004
【図３】
2008107954.tif 000005
【図４】
2008107954.tif 000006
【図５】
2008107954.tif 000007
【図６】
2008107954.tif 000008
【図７】
2008107954.tif 000009
【図８】
2008107954.tif 000010
【図９】
2008107954.tif 000011
【図１０】
2008107954.tif 000012
【図１１】
2008107954.tif 000013
【図１２】
2008107954.tif 000014
【図１３】
2008107954.tif 000015
【図１４】
2008107954.tif 000016