(57)【特許請求の範囲】
【請求項１】
作業領域内を走行することで作業を行なう移動体の制御を行なう移動体の制御装置であって、
前記移動体が前記作業領域内の第１の領域の作業を行なった後、その一部が前記第１の領域の一部と共通となる第２の領域の作業を行なうように前記移動体を制御する制御手段を備え、
前記第１の領域の作業において前記移動体が前記共通の領域を最初に作業した場所が、前記第２の領域の作業において再度作業されるまでの時間が所定の時間以下となるように、前記第１の領域での前記移動体の走行距離を決定することを特徴とした、移動体の制御装置。
【請求項２】
前記移動体が前記第１の領域の作業を行なった後、前記第１の領域の周辺部分の作業を再度行なうことを特徴とした、請求項１に記載の移動体の制御装置。
【請求項３】
前記所定の時間は、オペレーターが入力した情報に基づいて決定されることを特徴とした、請求項１に記載の移動体の制御装置。
【請求項４】
前記作業領域はオペレーターが入力可能であることを特徴とした、請求項１に記載の移動体の制御装置。
【請求項５】
前記入力される情報は、作業領域の縦長さと横長さであることを特徴とした、請求項４に記載の移動体の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は移動体の制御装置に関し、特に移動体が指定された領域を全面にわたって作業するために、移動体をジグザグ走行させるための移動体の制御装置に関する。
【０００２】
【従来の技術】
指定された領域内を全面にわたって隈無く作業するためのロボット（移動体の一種）が従来より知られている。そのようなロボットの制御方法として、ジグザグ走行が一般的に採用されている。ジグザグ走行とは、指定された領域内を所定の間隔をおいて往復する走行である。ジグザグ走行は、平面上の前進動作と、左右のＵターン動作とを組合せることで実現される。ロボットの作業内容として、清掃や、ワックス塗布や、薬剤の塗布などがある。
【０００３】
図１４は、ジグザグ走行の経路の例を説明するための図である。
ロボット１は、ａ地点より出発し、作業領域Ａの縦方向の長さＬ０  だけ前進した後、左へ９０°ターンし、ピッチｐ前進した後、左へ９０°ターンする。その後、長さＬ０  前進することで、ｂ地点に到達する。その後も、９０°ターン、ピッチｐの前進、９０°ターン、およびＬ０  の前進を繰返すことで、作業領域Ａを隈無く作業することができる。
【０００４】
このような作業において、ロボット１の走行距離や回転角度に誤差が生じたり、ロボット１が走行する床面の状態によって走行距離に差異が生じてしまうことがある。そのようなときにも作業のし残しが生じないように、往復時にロボットが作業する領域は重なるようにピッチｐが定められる。
【０００５】
具体的には、図１５を参照して、ロボット１の１回の走行で作業が行なわれる幅を作業幅Ｙとすると、ピッチｐはＹよりも小さくする。これにより、作業マージン（作業の重なる幅Ｗ）を生じさせる。
【０００６】
【発明が解決しようとする課題】
たとえばロボット１にワックス塗布などの作業を行なわせる場合がある。このとき、塗布されたワックスが乾いた後にその部分にワックスの重ね塗りが行なわれると、その部分は塗られたワックスが厚くなる。これにより他の部分との間に段差が生じてしまう。図１５の例では作業の重なる部分（図１５のＷ）のみが縞状の模様となり、作業の品質が落ちることになる。
【０００７】
したがって、一度目に塗ったワックスが乾かないうちに、重ね塗りする必要がある。また、塗布されたワックスが半乾きのときに重ね塗りが行なわれると、完全にワックスが乾燥したときに艶が失われてしまう。
【０００８】
特に、ワックスの重ね塗りを行なうときに最も長く時間があいてしまうのは、図１４におけるａ地点からｂ地点までの間である。ここに、ロボット１がＬ０  の距離を直進走行するのに必要な時間をｔＬ０とし、ロボット１が９０°回転するのに必要な時間をｔｒとし、ロボット１がｐのピッチを走行するのに必要な時間をｔｐとすると、ａ地点からｂ地点に到達するのに必要な時間は、（０）式で表わされる。
【０００９】
２×ｔＬ０＋ｔｐ＋２×ｔｒ                                    …（０）
この発明は上記問題点を解決するためになされたものであり、移動体が作業を行なうときの品質を向上させることを目的としている。
【００１０】
【課題を解決するための手段】
上記目的を達成するためこの発明のある局面に従うと、移動体の制御装置は、作業領域内を走行することで作業を行なう移動体の制御を行なう移動体の制御装置であって、移動体が作業領域内の第１の領域の作業を行なった後、その一部が第１の領域の一部と共通となる第２の領域の作業を行なうように移動体を制御する制御手段を備え、第１の領域の作業において移動体が共通の領域を最初に作業した場所が、第２の領域の作業において再度作業されるまでの時間が所定の時間以下となるように、第１の領域での移動体の走行距離を決定することを特徴としている。
【００１１】
この発明に従うと、再度作業が行なわれるまでの時間に基づいて移動体の走行距離が決定されるため、作業の品質を向上させることができる。
【００１２】
好ましくは移動体の制御装置は、移動体が第１の領域の作業を行なった後、第１の領域の周辺部分の作業を再度行なうことを特徴としている。
【００１３】
この発明に従うと、第１の領域の作業を行なった後、第１の領域の周辺部分の作業を再度行なうことで、第２の領域における最初に作業した時点を最新にすることができる。これにより、以降の経路計画を制約する大きな要因が取除かれる。
好ましくは所定の時間は、オペレーターが入力した情報に基づいて決定される。
好ましくは作業領域はオペレーターが入力可能である。
好ましくは入力される情報は、作業領域の縦長さと横長さである。
【００１４】
【発明の実施の形態】
以下、この発明の好ましい実施の形態を図面を参照して詳しく説明する。図中同一符号は同一または相当部分を示す。
【００１５】
［第１の実施の形態］
図１は、本発明の第１の実施の形態における自走式ロボット１とそのコントローラ２の外観を示す斜視図である。
【００１６】
図を参照して、ロボット１は壁などとの接触を検知するための接触センサ７と、壁などとの間の距離を測定し、壁などに倣った走行を実現するための倣いセンサ８ａ〜８ｄと、不織布を回転させることにより、床面に対してワックス塗布作業を行なう作業部３１と、ユーザに対しメッセージを表示する表示部１８と、作業を開始させるための作業開始ボタン９０とを備えている。また、メモリカード１３をロボット１に挿入することにより、記憶された命令をロボット１は実行することができる。
【００１７】
ロボット１は、駆動輪を備える走行部と、車体部とから構成される。走行部と車体部とは相対的に回動自在に構成される。作業部３１は車体部に取付けられる。
【００１８】
図２はコントローラ２の平面図である。
図を参照して、コントローラ２はロボット１を遠隔操作したり、走行や作業を教示するために用いられる。コントローラの入力部として、動作シフトボタン群４０と、方向指定のための十字カーソルボタン３５と、モードを切換えるためのモード切換ボタン３６と、ロボットの動作の開始を指示するための開始ボタン３７と、動作の停止を指示するための停止ボタン３８と、動作を一端停止させるための一端停止ボタン３９と、設定の取消を行なう取消ボタン５２と、入力されたデータの設定を行なうための設定ボタン５３と、電源スイッチ４６とが配設されている。
【００１９】
動作シフトボタン群４０は、車体部の向きは変えずに走行部の向きのみを左右に回転させる走行部回転ボタン４１と、車体部と走行部とを同時に回転させる車体部回転ボタン４２と、作業部３１を車体部に対して左右に移動させるための作業部スライドボタン４３と、Ｕターン動作を指定するＵターンボタン４４と、ジグザグ走行を指定するためのジグザグボタン４５とを含む。
【００２０】
これらのボタンを組合せて使用することで、ロボットの遠隔操作、作業の教示、編集および設定が行なわれる。
【００２１】
また、コントローラ２は液晶表示装置により構成される表示部４９を有している。
【００２２】
表示部４９には、図３に示されるようにジグザグ走行の設定メニューなどが表示される。ユーザは表示部４９を見ながら十字カーソルボタン３５や設定ボタン５３などを操作することによりコントローラへデータの入力を行なうことができる。
【００２３】
図４は、図１に示されるロボット１の構成を示すブロック図である。
図を参照して、ロボット１は大きくはロボットの走行制御を行なう走行制御部３２と、ワックス塗布作業の制御を行なう作業制御部３３とから構成される。
【００２４】
走行制御部３２は、走行部の処理を司る走行部ＣＰＵ２７と、左右各々の駆動輪３ａ，３ｂの駆動制御を行なう駆動制御部１４ａ，１４ｂと、車体部と走行部とを相対的に回転させるための車体部回転制御部６９と、走行制御手順などを記憶する走行制御部メモリ２８とから構成される。
【００２５】
走行制御部３２には、左右の駆動輪の回転量からロボットの走行距離を検出する距離検出計７９ａ，７９ｂと、ロボットの周辺の環境を認識するための測距センサ６と、走行部と車体部とを相対的に回転させるための車体部回転モータ６８とが接続されている。
【００２６】
作業制御部３３は、作業部の処理を司る作業部ＣＰＵ１２と、表示部１８での表示の制御を行なう表示制御部１９と、入力部１６での入力制御を行なう入力制御部１７と、メモリカード１３の読取を行なうメモリカード読取部７７と、コントローラとの間で通信を行なう通信部１１と、ワックスを滴下するためのポンプ２２を制御するポンプ制御部２３と、滴下されたワックスを床面に対して広げるとともに、床面の圧擦を行なうロータ９を制御するロータ制御部１５と、作業部を移動させるためのモータ２５を駆動する作業部移動制御部２６と、電源回路２１とを備える。
【００２７】
また、作業制御部３３には、ワックスの滴下を検出する液検出センサ７３と、接触センサ７と、ジャイロセンサ７８と、倣いセンサ８と、バッテリ２０とが接続されている。
【００２８】
作業部ＣＰＵ１２と走行部ＣＰＵ２７とは相互に接続されている。
図５はコントローラ２の構成を示すブロック図である。
【００２９】
図を参照して、コントローラは、コントローラの制御を行なうコントローラ制御部ＣＰＵ５１と、表示部４９の制御を行なう表示制御部８１と、前述のボタンなどにより構成される入力部８０の制御を行なう入力制御部４７と、ロボット１との間で通信を行なうための通信部４８と、通信部の制御を行なう通信制御部８２と、バッテリ８３と、外部インタフェース５０とを備える。
【００３０】
外部インタフェース５０を介して、コントローラ２はパーソナルコンピュータやプリンタなどの外部機器と直接的または間接的に接続可能な構成となっている。
【００３１】
図６は、本実施の形態におけるロボット１の作業経路の一例を示す平面図である。
【００３２】
ロボット１のワックスを塗布する領域（作業領域）Ａが横長さＬｙ、縦長さＬｘであると仮定する。このような作業領域の横長さと縦長さとをユーザがロボット１に入力することによって、ロボット１の移動経路は自動的に決定される。また、ロボット１の行なうジグザグ走行は複数のブロックに分割されるように経路は生成される。
【００３３】
図６の例では、走行経路は縦方向に３つのブロックＢ１〜Ｂ３に分割され、それぞれのブロックにおいてジグザグ走行が行なわれる。ここに、ジグザグ走行の横方向のピッチをｐ、ジグザグ走行の縦方向の長さをＬ１とする。また、ブロックＢ１とブロックＢ２、そしてブロックＢ２とブロックＢ３が接する領域は、ワックスを重ね塗りするところであり、前の作業とその次の作業の共通の領域となる。
【００３４】
このようにジグザグ走行を複数のブロックに分割する理由は、床面にワックスを塗布してから次にワックスを重ね塗りするまでの時間を短縮するためである。すなわち、図１４に示される経路において、ワックスを塗布してから重ね塗りを行なうまでに最も長い時間がかかるのは、ａ地点からｂ地点に至るまでである。これに対して、本実施の形態においては、ジグザグ走行を複数のブロックＢ１〜Ｂ３に区切っているため、図１４のａ地点およびｂ地点に対応するのは、図６のｃ１地点およびｄ１地点である。ここで、ワックスが塗布されてから半乾きになるまでの時間をＴとすると、ロボット１がｃ１地点からｄ１地点にまでに至る時間が、時間Ｔ以下になるように走行経路が決定される。したがって、縦長さＬ１が制約を受けて、作業領域の縦長さＬｘを端まで作業するためには、縦長さＬ１を継ぎ足すことになる。すなわち、ジグザグ走行を複数のブロックに分割して作業することになる。
【００３５】
ここで、ブロックＢ１とブロックＢ２の共通の領域において、ロボット１が最初に作業した時点は、ブロックＢ１でｃ１地点を塗布した時点であり、その地点を再度作業するのは、ブロックＢ２でｄ１地点を塗布するときである。
【００３６】
また、本実施の形態においては、図６におけるｃ１地点のワックス塗布からｄ１地点でワックスの重ね塗りをするまでの時間が最も長くなる。この時間が、ワックスが半乾きとならない時間以下となるように走行経路は決定される。
【００３７】
図７は、ロボット１のワックス塗布作業での処理を示すフローチャートである。
【００３８】
図を参照して、ステップＳ１００で、ワックスを塗布してから重ね塗りをするまでの時間であって、ワックスの乾燥により作業の品質が落ちない最長の時間Ｔを入力する。この値は、ユーザからのコントローラ２を介した入力により行なわれる。この入力は直接時間Ｔを入力するようにしてもよいし、ワックスの種類とそれに対応する時間Ｔとをロボット１に記憶させるようにして、ユーザからはワックスの種類を入力するようにしてもよい。
【００３９】
次に、ステップＳ１０１で、図３に示される表示が表示部４９に行なわれる。ここで、ユーザは作業領域Ａの縦長さＬｘと横長さＬｙとを入力する。ステップＳ１０２で、作業領域の横長さＬｙに基づいて、横移動ピッチｐとレーン数Ｎの算出がなされる。ステップＳ１０３で、ロボット１の進行速度からピッチｐを走行するための時間ｔｐが求められる。
【００４０】
ステップＳ１０４で、ピッチｐを走行するための時間ｔｐ、ロボット１が９０°回転するために要する時間ｔｒ、およびステップＳ１００で入力された時間Ｔを用い、式（１）によってジグザグ走行の縦方向の長さＬ１を走行するための時間ｔＬ１が求められる。
【００４１】
２×ｎ×ｔＬ１＋２×ｎ×ｔｐ＋４×ｎ×ｔｒ＝Ｔ                …（１）
ただし式（１）においてｎ＝（レーン数Ｎ）−１である。
【００４２】
次に、ステップＳ１０５でｔＬ１の値とロボットの速度とから、ジグザグ走行の縦方向の長さＬ１が求められる。
【００４３】
ステップＳ１０６で、変数Ｌ１，ｐ，Ｎに基づいて、図６に示されるロボット１の走行が行なわれる。
【００４４】
図８は、図７のステップＳ１０２で行なわれる横移動ピッチｐとレーン数Ｎの算出処理を示すフローチャートである。
【００４５】
図を参照して、ステップＳ２０１で、入力された作業領域の横長さＬｙからロボット１の作業幅Ｙを引いた値が、基準走行幅Ｗ０として演算される。ここに、作業幅Ｙとは、図９を参照してロボット１が１回の直進走行により作業することができる幅Ｙを示す。これにより、図６を参照して作業領域の横長さＬｙから作業幅Ｙを引くことにより得られた基準走行幅Ｗ０は、ロボット１が作業を開始直後に走行するレーンと作業終了時に走行するレーンとの間の幅を示すこととなる。
【００４６】
再び図８を参照してステップＳ２０２で、作業幅Ｙから最小作業マージンＷ３を引いた値が、最大走行ピッチＰ１として演算される。ここに、最小作業マージンＷ３とは、図９を参照してロボット１がジグザグ走行をするときにその往復運動で重ね合わされる作業幅の最小値を示す。この最小値は、ロボット１の走行に関する誤差に基づいて定められる。また、最大走行ピッチＰ１とは、ジグザグ走行の横方向のピッチｐであって、とり得る最大値を示す。
【００４７】
ステップＳ２０３で、基準走行幅Ｗ０を最大走行ピッチＰ１以下で走行することができる最小のレーン数Ｎが求められる。次に、ステップＳ２０４でジグザグ走行のピッチｐの値にＷ０／（Ｎ−１）が代入される。
【００４８】
このような制御を行なうことにより、図６においてロボット１がｃ１地点からｄ１地点に至るまでの間にワックスが半乾きになったり完全に乾燥したりすることがなくなる。これにより、ワックス塗布面に凹凸が生じることやワックス塗布後の床面の艶が失われてしまうことが防止される。
【００４９】
［第２の実施の形態］
図１０は、第２の実施の形態におけるロボット１の移動経路を示す平面図である。なお、このロボット１のハードウェア構成は第１の実施の形態と同じであるため説明を繰返さない。
【００５０】
この実施の形態では、ロボット１は、１つのブロックでジグザグ走行を終了すると横方向に移動し、開始側のレーンまで戻る（ｄ２地点）。この横方向の移動で、ブロックＢ１の周辺部分を再度作業することになる。そして次のブロックのジグザグ走行を行なう。これにより、ｃ２地点からｄ２地点に至るまでの時間（図６におけるｃ１地点からｄ１地点に対応する時間）を短くすることができる。これにより、ジグザグ走行の縦方向の距離Ｌ２をより長くすることができ、全体の作業をより速く行なうことができる。また、ワックスの塗布作業では、できるだけ長い直進距離で塗布した方が高い品質が得られるので、第１の実施形態に比べ作業品質を向上させることができる。具体的には、距離Ｌ２を走行するための時間ｔＬ２は式（２）により求められる。
【００５１】
ｎ×ｔＬ２＋２×ｎ×ｔｐ＋２×ｎ×ｔｒ＝Ｔ                    …（２）
ただし、ｎ＝（レーンの数Ｎ）−１であり、ｔｐはピッチｐを走行するための時間であり、ｔｒはロボットが９０°回転するために要する時間である。
【００５２】
よって、第１の実施の形態と比較して塗布するワックスの種類が同じでＴが等しいとすると、（１）および（２）式より、
ｎ×ｔＬ２＋２×ｎ×ｔｐ＋２×ｎ×ｔｒ＝２×ｎ×ｔＬ１＋２×ｎ×ｔｐ＋４×ｎ×ｔｒ
であり、
ｔＬ２＝２×ｔＬ１＋２×ｔｒ                                    …（３）
となる。
【００５３】
ロボットの直進に必要な時間は距離に比例するため、第２の実施の形態におけるジグザグ走行の直進距離Ｌ２は、第１の実施の形態における距離Ｌ１に比べ、２倍以上となる。
【００５４】
次に、具体的なロボット１の動作について説明する。
図１１を参照して、ロボット１は左右を壁に挟まれた領域の作業などを行なうために用いられる。領域の縦長さＬｘと横長さＬｙとがコントローラ２から入力されると、その情報はロボット１に送信される。ロボット１は、上述のように各種変数に基づきジグザグ走行のピッチｐと、ジグザグ走行の縦方向の長さＬ２と、レーン数Ｎとを計算し、移動経路を決定する。その移動経路に基づき移動が行なわれる。
【００５５】
移動開始地点ａからの直進動作は右側の倣いセンサ８ｃ，８ｄが用いられて、右側の壁に倣った走行が行なわれる。ｂ地点まで到達すると、ロボット１は一旦停止する。次に、左方向に作業を進めていくために、左回転とピッチｐの直進と、左回転とを行なうことにより、Ｕターンが行なわれる。Ｕターン動作が完了した後、ロボット１はｃ地点からｄ地点に向かう第２レーンを前進走行する。第２レーンでは、測距センサ６を用いて、左右の壁に対して距離を一定に保つように走行が行なわれる。ｄ地点に達すると、ロボット１は右方向のＵターンを行なう。それ以降、この往復動作を繰返すことによりジグザグ走行が行なわれる。ｅ地点からｆ地点に至るジグザグ走行の最後のレーンでは、左方向の倣いセンサ８ａ，８ｂが用いられる。
【００５６】
ｆ地点においてロボット１は右方向に９０°回転する。なお、ここでの９０°回転は左側に壁があるため、ロボット１を一旦壁から離した後に、回転を行なう必要がある。そのため、９０°回転は図１２に示されるステップにより行なわれる。
【００５７】
図１２を参照して、ロボット１がジグザグ走行の最後の地点（ｆ地点）に到達したのであれば（Ａ）、駆動輪３ａ，３ｂの方向を矢印で示されるように右方向に向かうようにする（Ｂ）。次に、駆動輪を回転させることにより、ロボット１は左側にある壁から離れる（Ｃ）。このとき、作業部３１の位置がロボット１の中心に対して右側にずれているときには、作業部３１を左側に移動させ、作業部３１の位置を中央とする（Ｃ）。この状態で、ロボット１の車体部が時計方向に９０°回転する（Ｄ）。次に、作業のし残しが生ずることを防ぐために、ロボット１は壁に接触するまで後退を行なう（Ｅ）。
【００５８】
図１１に戻って、ロボット１はｆ地点からｇ地点まで前進する。ｇ地点において、ロボット１は左に９０°回転を行なった後に少し前進することにより、次のジグザグ走行のブロックの開始位置に移動する。その後、同様にジグザグ走行を繰返すことにより、ｈ地点で作業は終了する。
【００５９】
なお、図１１においては、作業の終了位置（ｈ地点）をロボット１の作業の開始側としたが、図１３に示されるように作業の終了位置（ｈ地点）をロボット１の作業の開始方向とは反対側とすることもできる。また、ユーザによって作業の終了位置を開始位置と同じ側とするか違う側とするかを設定させるようにしてもよい。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるロボットの斜視図である。
【図２】図１におけるコントローラ２の平面図である。
【図３】コントローラ２の表示部１８に表示される画面を示す図である。
【図４】ロボット１の回路構成を示すブロック図である。
【図５】コントローラ２の回路構成を示すブロック図である。
【図６】ロボット１が決定する移動経路の平面図である。
【図７】ロボット１の走行処理を示すフローチャートである。
【図８】図７の横移動ピッチｐとレーン数Ｎの算出ルーチン（Ｓ１０２）のフローチャートである。
【図９】ロボット１の作業幅と作業の重なり領域を説明するための平面図である。
【図１０】第２の実施の形態におけるロボット１の移動経路の平面図である。
【図１１】第２の実施の形態におけるロボット１の作業を説明するための平面図である。
【図１２】図１１のｆ地点でのロボット１の動作を説明するための平面図である。
【図１３】第２の実施の形態における移動経路の変形例を示す図である。
【図１４】従来のロボットが行なうジグザグ走行の例を示す平面図である。
【図１５】ジグザグ走行における作業の重なり領域を説明するための図である。
【符号の説明】
１  ロボット
Ｙ  作業幅
【図１】
0003583588.tif 000002
【図２】
0003583588.tif 000003
【図３】
0003583588.tif 000004
【図４】
0003583588.tif 000005
【図５】
0003583588.tif 000006
【図６】
0003583588.tif 000007
【図７】
0003583588.tif 000008
【図８】
0003583588.tif 000009
【図９】
0003583588.tif 000010
【図１０】
0003583588.tif 000011
【図１１】
0003583588.tif 000012
【図１２】
0003583588.tif 000013
【図１３】
0003583588.tif 000014
【図１４】
0003583588.tif 000015
【図１５】
0003583588.tif 000016