JPH08286744A - 自律走行車 - Google Patents

自律走行車

Info

Publication number
JPH08286744A
JPH08286744A JP7089679A JP8967995A JPH08286744A JP H08286744 A JPH08286744 A JP H08286744A JP 7089679 A JP7089679 A JP 7089679A JP 8967995 A JP8967995 A JP 8967995A JP H08286744 A JPH08286744 A JP H08286744A
Authority
JP
Japan
Prior art keywords
wall
contact
traveling
distance
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP7089679A
Other languages
English (en)
Inventor
Yuichi Kawakami
雄一 川上
Yasuhisa Kanefuji
靖尚 金藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Minolta Co Ltd
Original Assignee
Minolta Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Minolta Co Ltd filed Critical Minolta Co Ltd
Priority to JP7089679A priority Critical patent/JPH08286744A/ja
Priority to US08/631,014 priority patent/US5947225A/en
Publication of JPH08286744A publication Critical patent/JPH08286744A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 常に正確に対象物に沿って自律走行を行なう
ことができる自律走行車を提供する。 【構成】 作業部本体1の両側に非接触センサ18a、
18bをそれぞれ配置する。自律走行車が走行時、非接
触センサ18aにより壁W2までの距離を測定し、非接
触センサ18bが壁W1までの距離を測定する。非接触
センサ18a、18bにより測定された測定値Sr1、
Sl1にそれぞれSS1を加算し、自律走行車の代表位
置C0から壁W2、W1までの距離を計算し、さらに、
壁W2に対応する距離割合値を演算し、求めた距離割合
値を用いて壁W2に沿って自律走行させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、自律走行車に関し、特
に、対象物に沿った走行が可能な自律走行車に関するも
のである。
【0002】
【従来の技術】周囲の障害物の存在を検知しながら自律
的に走行する自律走行車としては、壁等の対象物に沿っ
て走行しながら所定の作業、たとえば、清掃作業、運搬
作業等を行なうものが種々開発されている。この種の従
来の自律走行車としては、特開平4−84207号公報
に側方の周囲状況を計測する装置を具備し、側方の壁に
沿った壁倣い走行を行なう自律走行車が開示されてい
る。また、特開平3−160507号公報には、片側の
前後に測距センサを設け、前後の測距センサにより検出
された測定距離から自律走行車の位置と方向を求め、壁
に倣い走行する自律走行車が開示されている。
【0003】
【発明が解決しようとする課題】上記の特開平4−84
207号公報に開示される自律走行車では、片側の壁に
ついてのみ距離を測定しているため、自律走行車が壁に
対して平行でない場合に壁までの距離が測定できないと
いう問題点があった。
【0004】また、特開平3−160507号公報に開
示される自律走行車では、前後に測距センサを設ける
が、自律走行車自体が小型で前後長が短い場合、前後の
長さが十分にとれないため、自律走行車の姿勢を高精度
に測定できないという問題点があった。
【0005】したがって、従来の自律走行車では、壁ま
での距離を測定できない場合があったり、または、自律
走行車の姿勢を高精度に測定できないため、常に正確に
壁に沿って自律走行を行なうことはできないという問題
点があった。
【0006】本発明の目的は、常に正確に対象物体に沿
って自律走行を行なうことができる自律走行車を提供す
ることである。
【0007】
【課題を解決するための手段】請求項1記載の自律走行
車は、第1対象物に沿った走行が可能な自律走行車であ
って、第1対象物までの第1距離を測定する第1距離測
定手段と、第1対象物の反対側に位置する第2対象物ま
での第2距離を測定する第2距離測定手段と、第1およ
び第2距離測定手段の測定結果を基に第1距離と第2距
離との比率に対応する値を求め、この比率に対応する値
を用いて第1対象物に沿って自律走行させるための自律
走行手段とを含む。
【0008】
【作用】請求項1記載の自律走行車においては、第1対
象物までの第1距離を測定するとともに、第1対象物の
反対側に位置する第2対象物までの第2距離を測定し、
この測定結果を基に第1距離と第2距離との比率に対応
する値を求めている。この比率に対応する値は、自律走
行車が壁に対して平行でない場合でも平行な場合と同じ
値となるため、自律走行車が壁に対して平行でない場合
でも、また、自律走行車が小型で前後長が短い場合で
も、常に正確に第1対象物に沿った自律走行を行なうこ
とが可能となる。
【0009】
【実施例】
(1) 自律走行車の全体構成 以下、本発明の一実施例の自律走行車について図面を参
照しながら説明する。図1は、本発明の一実施例の自律
走行車の全体構成を示す斜視図であり、図2は、図1に
示す自律走行車の全体構成を示す上面図である。
【0010】図1および図2を参照して、自律走行車
は、作業部本体1、作業用アーム2、駆動部3を含む。
作業部本体1は、駆動部3の上部に取付けられ、駆動部
3の回転中心と同じ軸を中心として矢印で示すように回
転可能に構成されている。作業用アーム2は、作業部本
体1の後方に取付けられ、矢印で示すように左右方向に
スライド可能に設けられている。
【0011】本実施例の自律走行車は、種々の用途に用
いられるが、その一例として、以下の実施例では、清掃
およびワックス掛け用の自律走行車について詳細に説明
する。図3は、本発明が適用される清掃およびワックス
掛け用の自律走行車の全体構成を示す図である。
【0012】図3を参照して、作業部本体1は、タンク
11、ホース12、ポンプ13、スライド機構14、ス
ライド機構用モータ15、コントローラ16、接触セン
サ17を含む。作業用アーム2は、接触センサ17を含
む。
【0013】タンク11には、洗剤(またはワックス)
が貯蔵されている。タンク11に貯蔵されている洗剤
は、ホース12を介してポンプ13により作業用アーム
2へ導かれる。作業用アーム2は、スライド機構14に
より作業部本体1の左右方向に移動可能な状態で支持さ
れている。作業用アーム2は、モータ15によりスライ
ド機構14を介して左右方向に駆動される。コントロー
ラ16は、ポンプ13、スライド機構用モータ15、作
業用アーム2のブラシ21(図4参照)の動作をコント
ロールする。作業部本体1および作業用アーム2の外周
部には、障害物を検出するための接触センサ17が設け
られている。
【0014】次に、図3に示す作業用アーム2について
詳細に説明する。図4および図5は、図3に示す作業用
アームの構成を示す側面図および下面図である。図4お
よび図5を参照して、作業用アーム2は、ブラシ21、
ノズル22、ホース23、ブラシ駆動用モータ24を含
む。
【0015】作業用アーム2の下部には、4つのブラシ
21が回転可能に取付けられている。また、各ブラシ2
1の近傍には4つに分配されたホース23を介してポン
プ12により押出された洗剤を噴出させるためのノズル
22がそれぞれ備えられている。4つのブラシ21は、
図示しない連結機構によりブラシ駆動用モータ24の回
転軸と連結され、ブラシ駆動用モータ24により回転駆
動される。また、4つのブラシ21により清掃およびワ
ックス掛けの作業が行なわれる作業面積を広くするた
め、4つのブラシ21による作業幅は、作業部本体1の
幅より広くなっている。
【0016】次に、図1に示す駆動部3についてさらに
詳細に説明する。図6は、図1に示す駆動部の構成を示
す図である。
【0017】図6を参照して、駆動部3は、従動輪31
F、31B、駆動輪32R、32L、駆動輪用モータ3
3R、33L、連結機構34R、34L、エンコーダ3
5R、35L、回転支持機構36、回転駆動用モータ3
7、コントローラ38を含む。
【0018】駆動部3の前方には、従動輪31Fが任意
の方向に回転可能に取付けられている。同様に駆動部3
の後方に従動輪31Bが取付けられている。駆動部3の
右側には駆動輪32Rが取付けられている。駆動輪32
Rには、連結機構34Rを介して駆動輪用モータ33R
の回転が伝達される。駆動輪用モータ33Rの駆動軸の
他端にはエンコーダ35Rが備えられており、駆動輪モ
ータ33Rの回転量および回転速度を検出することがで
きる。また、エンコーダ35Rの出力として、検出した
回転量から走行距離を算出し、走行距離を出力すること
も可能である。同様に駆動部3の左側には、駆動輪32
L、駆動輪用モータ33L、連結機構34L、エンコー
ダ35Lがそれぞれ備えられている。駆動部3の中心部
には、作業部本体1を回転自在に支持する回転支持機構
36が備えられ、回転支持機構36を介して作業部本体
1を回転させるための回転駆動用モータ37が備えられ
ている。また、駆動部3には、駆動輪用モータ33R、
33L、および回転駆動用モータ37の動作を制御する
コントローラ38が備えられている。なお、左右の駆動
輪32R、32Lの取付幅はWであり、駆動輪32R、
32Lの直径はDICある。
【0019】(2) 自律走行車の駆動制御 次に、上記のように構成された自律走行車の駆動制御方
法について説明する。駆動制御方法としては、直進制
御、カーブ制御、第1スピンターン制御、第2スピンタ
ーン制御、第3スピンターン制御の5種類の制御方法が
あり、以下各制御方法について説明する。なお、以下に
述べる各制御方法は、コントローラ38内部に予め記憶
されたプログラムにより駆動輪用モータ33R、33
L、回転駆動用モータ37を制御することにより行なわ
れる。
【0020】まず、直進制御について説明する。自律走
行車が直進するためには、左右の駆動輪32R、32L
が、駆動を開始してから常に同じ回転量回転するように
制御を行なう必要がある。この制御は、左右の駆動輪3
2R、32Lの回転動作を速度制御することにより達成
することができるが、より確実に左右の駆動輪32R、
32Lの回転量を一致させ、より正確に直進させるため
以下に示す方法により直進制御を行なっている。
【0021】具体的には、片方の駆動輪を基準輪とし、
この基準輪が目標速度で回転するよう制御する。また、
もう一方の駆動輪(制御輪)を駆動輪と同じ速度でかつ
回転量が同じになるように制御する。ここで、駆動輪用
モータ33R,33Lとしては直流モータを用い、PW
M(Pulse Width Modulation)制御によりモータに通電
する時間割合(デューティ比)を変化させることにより
モータに流す電流を増減させて制御する。
【0022】以下、上記の制御方法により左側の駆動輪
32Lを制御輪とし、右側の駆動輪32Rを基準輪とし
た場合の直進制御の方法について説明する。図7は、上
記の直進制御の方法を説明するためのフローチャートで
ある。なお、以下の説明では、エンコーダ35R、35
Lから出力されるパルスを走行中にカウンタ(図示省
略)で計数し、このカウント値をエンコーダ値と呼び、
右側の駆動輪32Rに対するエンコーダ値をEr、左側
の駆動輪32Lに対するエンコーダ値をElとする。ま
た、以下に示す直進制御は、所定時間t1ごとに繰返し
行なわれ、所定時間t1当りのエンコーダ値の変化量を
駆動輪の速度と呼び、右側の駆動輪32Rの速度をV
r、左側の駆動輪32Lの速度をVlとする。また、左
右の駆動輪用モータ33R、33Lに流す電流値を制御
するためのPWM制御量(デューティ比)をそれぞれD
r、Dlとする。なお、直進スタート時に、左右のエン
コーダ値Er,Elはリセットされ、その後、所定時間
t1ごとに以下に説明する制御ルーチンが実行される。
【0023】まず、ステップS1において、左右のエン
コーダ値Er、Elを読込む。次に、左右の駆動輪の速
度Vr、Vlを求める。具体的には、ステップS1で読
込んだエンコーダ値Er、Elから所定時間t1前のエ
ンコーダ値PEr、PElをそれぞれ減算することによ
り左右の速度Vr、Vlを求める。
【0024】次に、ステップS3において、制御輪のエ
ンコーダ値El、基準輪のエンコーダ値Erの差ΔEを
求める。次に、ステップS4において、制御輪の速度V
lと基準輪の速度Vrとの差ΔVを求める。
【0025】次に、ステップS5において、ステップS
3で求めたエンコーダ値の差ΔEとステップS4で求め
た速度の差ΔVとにそれぞれゲインGE、GVを掛けた
量だけ制御輪のデューティ比Dlから減算しその値を制
御輪のデューティ比Dlとする。次に、現在のエンコー
ダ値Er、Elを所定時間t1前のエンコーダ値PE
r、PElとしてそれぞれ記憶する。上記の処理に従い
制御輪32Lのデューティ比Dlを制御することによ
り、制御輪32Lは、基準輪32Rと同じ速度でかつ同
じ回転数になるように制御される。
【0026】次に、カーブ制御について説明する。カー
ブ制御は、自律走行車をカーブさせるため、左右の駆動
輪32R、32Lの速度比率を一定の割合になるように
制御している。具体的には、制御輪32Lの速度および
回転量を基準輪32Rの速度の10%増になるように制
御することにより、自律走行車を基準輪側にカーブさ
せ、制御輪32Lの速度および回転量を基準輪32Rの
速度の10%減になるように制御することにより自律走
行車を制御輪側にカーブさせている。カーブ半径Cは、
左右両輪の速度比Rと左右両輪の取付幅Wから次式で計
算される。
【0027】C=R×W/(R−1) …(1) したがって、左側の駆動輪32Lを基準輪とする場合
は、R>1にすることで自律走行車は左にカーブし、R
<1とすることで右にカーブさせる。また、カーブ半径
も速度比Rの値によって定まり、C>0のとき左へカー
ブする場合のカーブ半径が表わされ、C<0のとき右へ
カーブする場合のカーブ半径が表わされる。また、直進
の場合はカーブ半径Cは無限大となる。したがって、上
記に説明した直進制御の場合は、カーブ制御の特殊な場
合となり、速度比Rが1の場合となる。
【0028】図8は、上記のカーブ制御の方法を説明す
るためのフローチャートである。カーブ制御の方法は、
基本的には直進制御の方法と同様である。
【0029】まず、ステップS11およびS12におい
て、図7に示すステップS1およびS2と同様の処理を
行なう。次に、ステップS13において、制御輪32L
のエンコーダ値Elと基準輪32Rのエンコーダ値Er
に速度比Rを掛けた値を減算し、ΔEを求める。
【0030】次に、ステップS14において、制御輪の
速度Vlから基準輪の速度Vrに速度比Rを掛けた値を
減算し、ΔVを求める。次に、ステップS15およびS
16において、図7に示すステップS5およびS6と同
様の処理を行なう。
【0031】次に、第1スピンターン制御について説明
する。第1スピンターン制御は、駆動部3をスピンター
ンさせるための制御である。駆動部3をスピンターンす
るためには、左右の駆動輪32R、32Lが互いに逆方
向に駆動を開始し、常に同じ回転量だけ回転させるよう
に制御を行なう必要がある。このため、基準輪と駆動輪
とを逆向きに回転させ、直進制御と同様の制御を行なう
ことにより第1スピンターン制御を実行している。第1
スピンターン制御では、左右の駆動輪32R、32Lの
中点を中心として回転し、回転角度は、ジャイロセンサ
等の角度センサ(図示省略)を用いるか、または、駆動
輪用モータ33R、33Lの回転数から左右の駆動輪3
2R、32Lの回転数Nを求め、左右の駆動輪32R、
32Lの幅Wとその車輪直径DIとから回転角度θ(ラ
ジアン)を以下の式により計算することができる。
【0032】θ=N×DI/W …(2) 次に、第2スピンターン制御について説明する。第2ス
ピンターン制御は、作業部本体1を回転制御する。作業
部本体1の回転動作は、回転駆動用モータ37を回転さ
せることにより行なう。回転駆動用モータ37として
は、たとえば、ステッピングモータが用いられる。した
がって、作業部本体1の回転角度は、ステッピングモー
タに与えるパルス数を設定することにより任意に設定す
ることができる。
【0033】次に、第3スピンターン制御について説明
する。第3スピンターン制御は、駆動部3のみをスピン
ターンし、作業部本体1は駆動部3のスピンターンにか
かわらずそのままの姿勢を保持させる制御である。駆動
部3のみをスピンターンするためには、駆動部3のスピ
ンターンと作業部本体1のスピンターンとを同時に同じ
速度で逆向きに回転させるように制御する必要がある。
具体的には、駆動部3を上記の第1スピンターン制御の
方法で回転させ、その回転量と回転速度を検出し、それ
に対応した周期のパルスを回転駆動用モータ37に与え
ることにより行なっている。
【0034】図9は、第3スピンターン制御の方法を説
明するためのフローチャートである。本制御は、直進制
御と同様に所定時間t2ごとに繰返し実行される。ま
た、制御のスタート時には、左右のエンコーダ値Er、
El、およびパルスモータに与えるパルス数の累算値P
Sはリセットされる。
【0035】まず、ステップS21において、左右のエ
ンコーダ値Er、Elがそれぞれ読込まれる。次に、ス
テップS22において、左右のエンコーダ値Er、El
から駆動輪32R、32Lの回転数Nを求め、(2)式
によって駆動部3の回転角度θを求める。次にステップ
S23において、ステップS22で求めた回転角度θか
ら所定時間t2前の回転角度Pθを減算することにより
回転角速度Δθを求める。次に、ステップS24におい
て、回転角度θに所定の係数cを乗算することにより回
転角度θを回転駆動用モータ37のパルス数に変換し目
標パルス数P0を求める。
【0036】駆動部3が現在求めた回転速度で回転を続
けようとすると、所定時間t2後には、駆動部3はθ+
Δθの角度分だけ回転しているはずである。したがっ
て、回転駆動用モータ37には、次の所定時間t2後に
は、P0+ΔP0パルス分だけ回転させる必要がある。
ここで、ステップS26において、P0+ΔP0から現
在までに回転駆動用モータ37に与えたパルス数PSを
減算したパルス数Pを計算し、次の所定時間t2に与え
ることとする。次に、現在の回転角度θをPθとして記
憶する。次に、ステップS28において、所定時間t2
をパルス数Pで乗算しパルス間隔TWを計算する。次
に、ステップS29において、次の所定時間t2にパル
ス間隔TWで回転駆動用モータ37を駆動する。回転駆
動用モータ37の駆動時には、パルスを与えるたびにパ
ルス数PSの値をインクリメントする。上記の処理によ
り、回転角度θおよび回転角速度Δθに応じて作業部本
体1を回転駆動する回転駆動用モータ37に与えるパル
ス間隔を調整することにより、駆動部3の回転と同期し
た作業部本体1の回転が実現される。
【0037】(3) 作業中の動作例 本実施例の自律走行車は、上記した5種類の制御方法に
基づく駆動部3の動作および作業用アーム2の動作の組
合せにより清掃(またはワックス掛け)作業を行なう。
図10は、本実施例の自律走行車の作業中の動作例を説
明するための図である。図10に示す例では、自律走行
車100が両側の壁W1、W2で囲まれた清掃領域CA
の中をジグザグに走行しながら清掃作業を行なう。
【0038】まず、スタート地点STから壁W1に沿い
ながら直進する(La)。次に、設定距離L0だけ進ん
だところで停止する(Lb)。次に、壁W1沿いからU
ターン動作しながら、所定距離Pだけ右横に移動する
(Lc)。ここで、所定距離Pは作業用アーム2の幅か
らオーバーラップ部分が少ない距離に設定する。次に、
前進動作を行なう(Ld)。次に、設定距離Lだけ進ん
だ位置で停止する(Le)。次にUターン動作しながら
所定距離Pだけ右横に移動する(Lf)。次に、前進動
作を行なう(Lg)。次に、設定距離L0だけ進んだ位
置で停止する(Lh)。次に、上記のLf〜Lhまでの
動作を繰返す。次に、Uターン動作しながら壁W2に沿
う(Li)。次に、壁W2に沿いながら直進する(L
j)。最後に、設定距離L0だけ進んだ位置ですなわち
ゴール地点(GL)で停止する。以上の動作により清掃
領域CA全面の清掃作業が終了する。
【0039】次に、図10に示す壁沿いからのUターン
動作Lcについて詳細に説明する。図11は、壁沿いか
らのUターン動作を説明するための図である。なお、図
11に示す作業部本体1上の矢印は、作業部本体1の下
部に配置される駆動部3の前方向を示しており、以下の
各図についても同様である。
【0040】まず、図11の(a)に示すように、自律
走行車100は直進動作を停止する。次に、図11の
(b)に示すように、駆動部3のみ90°右方向に回転
する。次に、図11の(c)に示すように、一定距離た
とえば次の動作で作業用アーム2が壁W1にあたらない
距離だけ右方向に前進する。そのとき同時に作業用アー
ム2を中心位置に戻す。次に、図11の(d)に示すよ
うに、作業部本体1を90°右方向に回転する。次の、
図11の(e)に示すように、作業用アーム2が壁W1
にあたるまで後退する。次に、図11の(f)に示すよ
うに、上記の所定距離Pだけ右方向に移動する。次に、
図11の(g)に示すように、装置全体を90°右方向
に回転させる。最後に、図11の(h)に示すように、
移動動作を開始する。
【0041】次に、図10に示すUターン動作Lfにつ
いて詳細に説明する。図12は、Uターン動作を説明す
るための図である。
【0042】まず、図12の(a)に示すように、直進
動作を停止する。次に、図12の(b)に示すように、
装置全体を90°左方向に回転させる。次に、図12の
(c)に示すように、上記した所定距離Pだけ右方向に
移動する。次に、図12の(d)に示すように、装置全
体を90°左方向に回転させる。最後に、図12の
(e)に示すように、移動動作を開始する。
【0043】次に、図10に示すUターン動作しながら
壁W2に沿う動作Liについて詳細に説明する。図13
は、Uターン動作しながら壁に沿う動作を説明するため
の図である。なお、この動作は、上記した所定距離Pだ
け横方向に移動すると壁沿い走行になる場合に使用す
る。
【0044】まず、図13の(a)に示すように、直進
動作を停止する。次に、図13の(b)に示すように、
装置全体を90°左方向に回転させる。次に、図13の
(c)に示すように、作業部本体1の先端が壁W2にぶ
つかるまで前進する。次に、図13の(d)に示すよう
に、所定距離だけ後退する。次に、図13の(e)に示
すように、装置全体を90°右方向に回転させる。ま
た、このとき同時に作業用アーム2を中心位置から壁W
2に当接しない位置まで移動させる。最後に、図13の
(f)に示すように、壁沿い移動動作Ljを開始する。
【0045】なお、本実施例の自律走行車は、上記に説
明したような場所に限らず、四方壁に囲まれた部屋の内
部でも同様に作業することが可能である。また、上記し
た5種類の基本動作の組合せにより任意の形状を有する
領域においても同様に作業可能である。この場合、作業
パターンは、予めプログラムしておくこともできるし、
ティーチングや作業地図から作業パターンを自動作成す
る機能等を用いることにより容易に設定することができ
る。
【0046】(4) 非接触倣い制御 図10に示した作業例の中の壁に沿って長距離移動する
部分Ld、Lgにおいて直進走行がうまくいかず、ジグ
ザグに作業していく過程で既に作業を行なった領域と次
に作業を行なう領域とがオーバーラップせず、作業のや
り直し部分が生じてしまう場合がある。これは、Uター
ン動作後正確に壁に平行な状態になっていないために平
行走行にならなかったり、駆動輪32R、32Lと作業
領域の床との間に滑りが生じ、直進制御により左右の駆
動輪を等速に回転させても正確に直進走行できないこと
による。したがって、本実施例の自律走行車では、非接
触方式で壁までの距離を測定できる非接触センサを用い
て壁に倣いながら走行を行なう非接触倣い制御により、
常に正確に直進走行できるようにしている。
【0047】本実施例に用いられる非接触センサとして
は、超音波式の測距センサ、光源を投光し対象物から反
射光を捕らえその位置から対象物までの距離を導き出す
アクティブタイプの三角測距センサ、対象物の像を2つ
の撮像系で捕らえその位相差から距離を導き出すパッシ
ブタイプの三角測距センサ等の種々のセンサを用いるこ
とができる。ただし、パッシブタイプの三角測距センサ
を用いる場合は、測距対象物にコントラストが必要とな
り、対象物が壁等のように無地のものの場合は、パター
ン光を照射する必要がある。
【0048】次に、上記の非接触センサを用いた非接触
倣い制御について詳細に説明する。本実施例の自律走行
車は、進行方向に垂直な方向の距離を測定できる非接触
方式の測距センサを作業部本体1の両側に設け、左右の
壁までの距離Dr、Dlを測定し、以下に説明する壁と
の距離に対応する数値(以下、距離割合値と称す)を求
め、この距離割合値を用いて倣い走行している。この結
果、本実施例では、安価なセンサを用いても正確に壁倣
い走行を行なうことが可能となる。
【0049】まず、本実施例の非接触倣い走行の原理に
ついて説明する。図14は、非接触倣い走行制御の原理
を説明するための図である。走行時に左右の測距センサ
により、両側の壁までの距離Dr、Dlを測定し、自律
走行車から壁までの距離に対応する距離割合値Rpを次
式により求める。
【0050】 Rp=Dr/(Dr+Dl) …(3) 上記の距離割合値は、一般的な廊下や部屋のように壁が
平行である場所では、壁からの距離と等価な数値として
取扱うことができる。このようにすることで、自律走行
車が倣うべき壁に平行にある場合と平行でない場合とで
その値が変化しないという利点を得る。なお、Rpは上
記した(3)式の値に限らず、Dr/Dl等、DrとD
lとの比に対応した値であれば他の式から求められる値
でもよい。
【0051】図14を参照して、まず、図14の(a)
に示すように、走行前に走行開始時の距離割合値Rp0
を算出する。次に、図14の(b)に示すように、走行
中の距離割合値Rpを計算する。この場合、自律走行車
は、壁に対して平行ではないが、距離割合値Rpは、自
律走行車が壁に対して平行である場合と同じ距離割合値
を表わしている。また、この場合、Rp>Rp0となっ
ているので自律走行車100を右にカーブさせる。次
に、図14の(c)に示すように、上記と同様に走行時
の距離割合値Rpを計算する。この場合、自律走行車1
00は、壁に対して平行となっているが、Rp>Rp0
となっているのでさらに右にカーブを続ける。次に、図
14の(d)に示すように、上記と同様に走行時の距離
割合値Rpを計算する。この場合、Rp<Rp0となっ
ているので自律走行車100を左にカーブさせる。次
に、図14の(e)に示すように、上記と同様に走行時
の距離割合値Rpを計算する。この場合、Rp=Rp0
となっているので自律走行車100を直進させる。
【0052】上記のように走行中に両側の壁までの距離
を測定し、各測定時点での距離割合値Rpを計算し、計
算した距離割合値Rpが走行開始時の距離割合値Rp0
と同じになるように制御することにより壁に沿った正確
な直進走行が可能となる。
【0053】次に、測距センサである非接触センサの取
付位置について説明する。まず、非接触センサを作業部
本体1の回転中心(以下、代表位置と称す)の両側に非
接触センサを配置した場合について説明する。図15お
よび図16は、非接触センサを代表位置の両側に配置し
た例を示す第1および第2の図である。また、図15
は、自律走行車が両側の壁W1、W2に対して平行にあ
る場合を示しており、図16は、平行でない場合を示し
ている。図15および図16に示す場合、壁W1、W2
から代表位置までの距離Dr、Dlは、非接触センサ1
8a、18bの実際の測距値Sr1、Sl1に代表位置
C0からの各非接触センサの位置SS1を加算すること
により求めることができる。この場合、代表位置C0が
壁W1、W2に対して同じ位置にある場合、自律走行車
が壁に対して平行である場合(図15)でも傾いている
場合(図16)でも同じ距離割合値が得られる。
【0054】次に、非接触センサを代表位置の前方に配
置した場合について説明する。図17および図18は、
非接触センサを代表位置の前方に配置した例を示す第1
および第2の図である。また、図17は、自律走行車が
壁W1、W2に対して平行にある場合を示しており、図
18は、平行でない場合を示している。壁W1、W2か
ら代表位置C0の前方にある前方代表位置C1までの距
離Dr、Dlは、非接触センサ18a、18bによる実
際の測距値Sr2、Sl2に前方代表位置C1から各非
接触センサ18a、18bの位置までの距離SS2を加
算することによって求めることができる。
【0055】図17に示すように自律走行車が壁W1、
W2に対して平行となっている場合の距離割合値は、代
表位置C0を基準として測定した距離割合値と同じ値と
なる。一方、図18に示すように自律走行車が壁W1、
W2に対して平行でない場合の距離割合値は、自律走行
車の進行方向成分を含み、代表位置C0を基準として算
出した距離割合値より少なめの値となる。したがって、
代表位置C0が発進時の距離割合値Rp0の位置にある
とき、自律走行車が壁W1、W2に対して平行となって
いる場合は前方代表位置C1を基準として算出した距離
割合値は、発進時の距離割合値Rp0と同じ値となる
が、自律走行車が右向きに傾いている場合は、前方代表
位置C1を基準として算出した距離割合値は発進時の距
離割合値Rp0より少ない値となる。したがって、本例
のように非接触センサを代表位置の前方に配置すること
により自律走行車の代表位置C0の動きの予測が可能と
なる。この結果、前方代表位置C1を基準とした距離割
合値を用いて非接触倣い走行制御を行なうことにより、
走行制御の遅れを減少させ、自律走行車を滑らかに走行
させることが可能となる。
【0056】次に、図17および図18に示す非接触セ
ンサを用いた走行方向の傾き検出処理について説明す
る。清掃やワックス塗布等の作業では、作業後の美観が
重要視される。したがって、このような作業を行なう場
合、できるだけ壁に平行な直進走行を維持するように制
御する必要がある。このため、本実施例の自律走行車で
は、図17および図18に示すように配置された非接触
センサを用いて壁に対する走行方向傾きVRpを検出
し、発進時の距離割合値と走行時の距離割合値の偏差と
ともに以下に説明する非接触倣い走行制御に使用してい
る。非接触倣い走行制御は、所定時間t3ごとに繰返し
行ない、走行方向傾きVRpは、所定時間t3前に測定
した壁からの距離割合値PRpと現在の距離割合値Rp
との差から求める。また、倣い直進スタート時に左右の
壁までの距離を測定し、基準となる距離割合値RP0を
求めておき、その後所定時間t3ごとに以下に示す非接
触倣い走行制御を行なう。
【0057】次に、上記の非接触倣い走行制御について
詳細に説明する。図19は、図17および図18に示す
非接触センサを用いた非接触倣い走行制御を説明するた
めのフローチャートである。
【0058】図19を参照して、まず、ステップS31
において、非接触センサ18a、18bを用いて左右の
壁までの距離をそれぞれ測定し前方代表位置C1から各
壁までの距離Dr、Dlを算出する。次に、ステップS
32において、(3)式に従い距離割合値Rpを算出す
る。次に、ステップS33において、距離割合値Rpと
基準距離割合値Rp0との差である距離割合値の偏差Δ
Rpを算出する。次に、ステップS34において、距離
割合値Rpから所定時間t3前の距離割合値PRpを減
算し走行方向傾きVRpを算出する。次に、ステップS
35において、後述する滑り検出ルーチンを実行する。
【0059】次に、ステップS36において、評価関数
を計算する。ここで、評価関数は、距離割合値の偏差Δ
Rpに走行方向傾きVRpに所定の重み付けVGを乗算
したものを加算して使用する。評価関数の値が所定の設
定値v1より大きければステップS39において左カー
ブ制御を行ない、設定値−v1から設定値v1との間に
あるときステップS38において直進制御を実行し、設
定値−v1より小さい場合はステップS37において右
カーブ制御をそれぞれ実行する。なお、カーブ量(カー
ブ半径)は、評価関数の値の大きさに応じて増減させる
ことができる。次に、ステップS40において、現在の
距離割合値RpをPRpとして記憶する。
【0060】上記の制御により、壁からの位置だけでな
く、進行方向に平行に配置されている壁との平行度合い
に重きをおいた制御を行なうことが可能となる。逆に、
上記のような特徴を持つ制御を行なうことができれば、
図19に示す方法に限定されず、たとえば、壁からの位
置、および走行方向の壁との平行度合いからカーブ制御
量を求めるテーブルを用いた制御を行なってもよい。
【0061】次に、上記の滑り検出ルーチンについて詳
細に説明する。駆動輪と床の間に滑りが生じるとカーブ
走行において、左右両輪の速度が一定の比率になるよう
に回転させても、実際にはカーブできない場合やカーブ
し過ぎる場合がある。また直進制御しているにもかかわ
らず実際にはカーブしてしまう場合がある。したがっ
て、本実施例では、カーブ制御や直進制御などの駆動制
御時に発生する滑りの影響を上記に説明した非接触セン
サの測距結果から判断し、必要に応じてカーブ制御量を
増減させている。
【0062】まず、駆動輪の滑りを検出する原理につい
て説明する。図20は、カーブ走行時の移動軌跡を説明
するための図である。所定時間t3における自律走行車
の進行方向の変化量ΔTを曲がり具合とし、自律走行車
の進行速度をVとすると、左右両輪の速度比Rでカーブ
走行しているときに期待される曲がり具合ΔTは、
(1)式で求められるカーブ半径Cを用いて次式により
求めることができる。
【0063】ΔT=V×t3/C …(4) 曲がり具合ΔTの単位はラジアンであり、左側の駆動輪
32Lを基準輪とする場合は左方向へ曲がる場合プラス
方向となる。
【0064】また、走行時、非接触センサの出力から求
められる走行方向傾きVRpの変化量ΔVRpから実際
の曲がり具合ΔTr(ラジアン)は次式で近似的に求め
ることができる。
【0065】 ΔTr=ΔVRp×(Dr+Dl)/(V×t3) …(5) カーブ制御の制御量から求められる曲がり量ΔTと、走
行時に測距値から求められる曲がり具合ΔTrとを比較
し、両者の値に差がなければ車輪の滑りが発生していな
いと考えられ、一方、大きく差がある場合は車輪の滑り
が発生していると考えられる。
【0066】次に、上記の車輪の滑りの検出原理を用い
た滑り検出ルーチンについて詳細に説明する。図21
は、図19に示す滑り検出ルーチンを説明するためのフ
ローチャートである。
【0067】まず、ステップS41において、現在走行
に使用している制御量から曲がり具合ΔTを求める。次
に、ステップS42において、非接触センサの出力から
求められる走行方向傾きVRpから所定時間t3前の走
行方向傾きPVRpを減算し走行方向傾きの変化量ΔV
Rpを求める。次に、ステップS43において、走行方
向傾きの変化量ΔVRpから(5)式を用いて実際の曲
がり具合ΔTrを求める。次に、ステップS44におい
て、実際の曲がり具合ΔTrと実際の制御量から求めた
曲がり具合ΔTとを比較する。両者の差が所定の設定値
v2より大きければ左方向にカーブし過ぎているので、
ステップS46において右方向のカーブ度合いを増やす
ようにカーブ制御量(左右両輪の速度比)を小さくす
る。両者の差が設定値−v2とv2との間にあるとき
は、車輪の滑りは発生していないと判断しそのまま走行
を継続する。また、両者の差が設定値−v2より小さい
場合は右方向にカーブし過ぎているので、ステップS4
5において、左方向にカーブ度合いを増やすようにカー
ブ制御量を大きくする。次に、ステップS47におい
て、現在の走行方向傾きVRpをPVRpとして記憶し
ておく。
【0068】上記の制御により、実際の曲がり具合が制
御量から予想される曲がり具合に比べて大きい場合(左
に曲がり気味の場合)、右カーブのつもりがあまりカー
ブしないかまたは左にカーブしてしまい、あるいは、直
進のつもりが左にカーブしたり、または左カーブのとき
に曲がり過ぎる等の場合、右にカーブ度合いを増やすよ
うに左右両輪の速度比Rを大きくし、本来の制御動作を
実現することができる。また、逆に実際の曲がり具合が
制御量から予想される曲がり具合に比べて小さい場合
(右に曲がり気味の場合)、左カーブのつもりがあまり
カーブしないかまたは右にカーブしてしまい、あるい
は、直進のつもりが右にカーブしまたは右カーブのとき
に曲がり過ぎる等の場合、左方向のカーブ度合いを増や
すように左右両輪の速度比Rを小きくし、この場合でも
本来の制御動作を実現することが可能となる。
【0069】(5) 非接触倣い例外処理 上記の非接触センサを用いた本実施例の自律走行車で
は、上記した非接触倣い制御以外に、測距距離が急変し
た場合、測距距離が急変した後さらに安定した場合、非
接触センサの測距可能な距離範囲から外れた場合、以下
に説明する種々の非接触倣い例外処理を行なっている。
【0070】まず、非接触センサの測距結果が急変した
場合、上記した非接触倣い走行制御を停止し直進運転を
行なっている。したがって、清掃やワックス塗布等の作
業後の美観が重視される作業を行ないながら走行する場
合、直進走行が重要視されるため、作業範囲のドア部な
どの壁の凹み、人、消火栓等の壁以外のものに対しても
影響されずに直進走行を行なうことができる。
【0071】また、非接触センサの測距結果が急変し上
記のように直進運転した後、測距結果が安定した場合、
その時点での距離を基準距離として上記の非接触倣い走
行制御を再開している。したがって、壁の急激な変化が
なくなったことを検出し、再び壁を利用して非接触倣い
走行制御を行なうことにより直進走行における走行誤差
を少なくすることが可能となる。
【0072】さらに、非接触センサの測距可能な距離範
囲から外れた場合、非接触センサの測距範囲に自律走行
車を戻すように制御している。非接触センサを用いた非
接触倣い走行制御を行なう場合、壁に接近し過ぎて倣い
走行を行ない、非接触センサの測距範囲より壁に近づき
過ぎて測距不能となり倣い走行を行なうことができなく
なる場合がある。本実施例の自律走行車では、このよう
な場合には、非接触センサの測定範囲に自律走行車が移
動するように制御することにより非接触倣い走行制御を
継続するようにしている。
【0073】次に、上記の各動作を行なうための走行状
態の遷移関係について説明する。図22は、走行状態の
遷移関係を示す図である。図22を参照して、上記の各
動作を実行するため、本実施例の自律走行車は、走行ス
タートモードM1、基準値記憶モードM2、倣い走行モ
ードM3、直進走行モードM4、カーブ走行モードM5
の5つの走行状態に分類される。
【0074】まず、走行スタートモードM1において走
行動作が開始される。次に、基準値記憶モードM2にお
いて、距離割合値の基準値Rp0が求められる。この基
準値記憶モードM2においては、走行スタートから基準
値記憶モードM2に入ったときに、今回求めた基準値を
記憶し、続く倣い走行モードM3の基準値とする。走行
スタート時以外から基準値記憶モードM2に入ったとき
は、今回求めた基準値と前回まで倣い走行モードM3で
使用していた基準値とを比較し、両者の値が近ければ元
の壁に戻ったと判断し、前回まで倣い走行モードM3で
使用していた基準値をそのまま使用する。一方、両者の
値が異なっている場合は、壁に段差等があると判断し、
今回求めた基準値を記憶し、続く倣い走行モードM3の
基準値とする。
【0075】次に、倣い走行モードM3において、距離
割合値が基準値Rp0になるように倣い走行を行なう。
また、直進走行モードM4においては、直進走行を実行
する。また、カーブ走行モードM5では、壁等に自律走
行車が近づき過ぎて壁までの距離を測定できない場合、
測定できない非接触センサと反対方向にカーブ走行を実
行する。
【0076】次に、各モード間での遷移関係について説
明する。倣い走行モードM3の実行時に測距値が急変し
た場合、壁が平坦ではないと判断し、壁倣い走行を中断
して直進走行モードM4へ移行する。また、直進走行モ
ードM4の実行時に、測距値が安定した場合、両側に平
坦な壁があると判断し基準値記憶モードM2へ移行す
る。また、倣い走行モードM3の実行時に、非接触セン
サの壁に近接している側の壁までの距離が測距限界より
近くなって片側の非接触センサにより測距できなくなっ
た場合は、カーブ走行モードM5に移行する。さらに、
カーブ走行モードM5の実行時に、両側の非接触センサ
がともに測定可能となった場合、基準値記憶モードM2
へ移行し距離割合値の基準値を記憶する。
【0077】次に、上記の基準値記憶モードについて詳
細に説明する。図23は、基準値記憶モードにおける処
理を説明するためのフローチャートである。まず、ステ
ップS51において、距離割合値Rpを求める。次に、
ステップS52において、移行してきた元のモードが走
行スタートモードM1であるか否かが判断される。走行
スタートモードM1の場合、ステップS54において、
距離割合値の基準値Rp0をRpとし処理を終了する。
一方、走行スタートモードM1でない場合、ステップS
53において、ステップS51で求めた距離割合Rpか
ら距離割合値の基準値Rp0を減算し、その値の絶対値
が所定の設定値xより大きいか否かが判断される。設定
値xより大きい場合ステップS54においてRp0をR
pとし、小さい場合はそのまま処理を終了する。
【0078】次に、上記のモード遷移に従った動作例に
ついて説明する。図24は、図22に示すモード遷移に
従った動作例を説明するための図である。
【0079】まず、図24の(a)に示すように、走行
開始時、距離割合値の基準値Rp0を求め記憶する。次
に、図24の(b)に示すように、倣い走行モードM3
において距離割合値が基準値Rp0になるように倣い制
御を行なう。次に、図24の(c)に示すように、壁に
小さな凹凸があった場合、測距値が急変するため直進走
行モードM4へ移行する。次に、図24の(d)に示す
ように、壁の凹凸を通過した直後も測距値が急変するた
め、直進走行モードM4を継続する。
【0080】次に、図24の(e)に示すように、壁の
凹凸を通過した後、測距値が安定するため、基準値記憶
モードM2を経て倣い走行モードM3へ移行する。この
とき、元の壁に戻っているので、今回測定した距離割合
値Rp1は、走行開始時の距離割合値の基準値Rp0と
ほぼ同じ値となっているので、基準値をRp0のまま使
用する。次に、図24の(f)に示すように、倣い走行
モードM3において、距離割合値が基準値Rp0になる
ように非接触倣い走行制御を行なう。
【0081】次に、図24の(g)に示すように、壁に
段差があった場合、測距値が急変するため、直進走行モ
ードM4へ移行する。次に、図24の(h)に示すよう
に、壁の段差を通過した後、測距値が安定するため、基
準値記憶モードM2を経て倣い走行モードM3へ移行す
る。このとき、壁の段差を通過しており、今回測定した
距離割合値Rp2と前回使用していた距離割合値の基準
値Rp0とでは値が異なるため、新たに測定した距離割
合値Rp2を基準値として記憶する。
【0082】次に、図24の(i)に示すように、倣い
走行モードM3において、距離割合値が基準値Rp2に
なるように非接触倣い走行制御を行なう。次に、図24
の(j)に示すように、倣い走行中、自律走行車が壁に
近づき過ぎ、非接触センサの近接側の測距限界より近く
なり片側が測距できなくなった場合、カーブ走行モード
M5に移行する。すなわち、非接触倣い走行制御を続行
するため、近づいた壁と反対側に走行する。
【0083】最後に、図24の(k)に示すように、再
び両側の非接触センサの測距が可能となった時点で、基
準値記憶モードM2を経て倣い走行モードM3へ移行す
る。この場合、自律走行車の位置は元の位置に戻ってい
るので、今回測定した距離割合値Rp3は、以前の距離
割合値の基準値Rp2とほぼ同じ値であるので、基準値
Rp2をそのまま使用し非接触倣い走行制御を継続す
る。
【0084】(6) 接触倣い制御 図10に示す作業例の中の壁沿いに直進する部分La、
Ljにおいて直進制御を行なう場合、以下の理由により
壁にぶつかったり、壁から離れていったりする場合があ
る。これは、上記に説明した非接触センサでは、壁とセ
ンサとの間が近距離の場合は測距可能な距離範囲から外
れるため測定することができず、非接触センサによる倣
い走行が行なえず、そのためUターン動作後正確に壁に
平行な状態になっていないため平行走行にならなかった
り、駆動輪と床との間に滑りが生じ左右の両輪を等速に
回転させ直進制御しても正確に直進走行できないからで
ある。したがって、本実施例の自律走行車では、上記し
た非接触センサ以外または非接触センサに換えて壁まで
の距離を測定できる接触タイプの接触センサを用いて壁
に沿いながら直進走行を行なっている。すなわち、壁の
隅まできれいに清掃作業を行なうために、接触センサを
用いて壁に沿って作業用アーム2を壁に沿うように制御
している。
【0085】以下、上記の接触センサについて詳細に説
明する。図25は、ばね式の触角センサである接触セン
サの構成を示す斜視図である。接触センサは、以下に説
明するように作業部本体1の左右両側の前後等に設けら
れる。
【0086】図25を参照して、触角センサは、台板4
1、台板つめ42、ポテンショメータ43、シャフト4
4、シャフト位置決め用つめ45、ねじりコイルバネ4
6、接触子47を含む。ポテンショメータ43の上部に
は接触センサの台板41が固定され、ポテンショメータ
43の回転軸はシャフト44と連結されている。シャフ
ト44の先端には接触子47が設けられ、たとえば壁に
接触する。ねじりコイルバネ46は、ポテンショメータ
43の回転軸に回転自在に取付けられ、台板つめ42と
シャフト位置決め用つめ45とを挟み込むことによりシ
ャフト44の位置を固定している。
【0087】次に、上記のように構成された接触センサ
の動作について説明する。図26は、接触センサの動作
を説明するための図である。
【0088】図26の(a)に示すように、接触子47
が壁に接触していない場合、ねじりコイルバネ46が台
板つめ42とシャフト位置決め用つめ45とを挟み込む
ことにより、シャフト44が台板つめ42の方向に固定
される。次に、図26の(b)に示すように接触子47
が壁W1に接触すると、壁W1に押されてシャフト44
がポテンショメータ43の回転軸を中心に回転する。こ
の回転角をA、シャフトの長さをLs、接触子47の半
径をdとすると、ポテンショメータ43の回転軸の中心
から壁W1までの距離Dは次式で表わされる。
【0089】D=d+Ls×cosA …(6) 上式によりポテンショメータ43の回転角を基に壁W1
までの距離を測定することが可能となる。
【0090】次に、上記の接触センサを用いた接触倣い
制御について説明する。図27は、図25に示す接触セ
ンサを用いた接触倣い走行の原理を説明するための図で
ある。図27を参照して、接触センサ4a〜4dは作業
部本体1の両側の前後位置に2個ずつ取付けられてい
る。この場合、左の壁W1を倣い走行する場合、左側の
前後の接触センサ4a、4bを使用し、右の壁を倣い走
行する場合は、右側の前後の接触センサ4c、4dを使
用する。
【0091】図27では、左の壁W1に沿って走行して
いる様子を表わしている。接触センサを用いる倣い走行
制御では、基準距離D0に走行時の測距距離Df、Db
が等しくなるように、または、壁に対する走行方向傾き
Kを検出し走行方向傾きKが0になるように制御してい
る。ここで、前後の接触センサの間隔をLとすると、自
律走行車の走行方向傾きKは次式で近似的に計算するこ
とができる。
【0092】K=(Df−Db)/L …(7) 次に、上記の原理に基づき接触倣い走行制御について詳
細に説明する。図28は、図25に示す接触センサを用
いた接触倣い走行制御を説明するためのフローチャート
である。本制御ルーチンは、接触倣い走行時に所定時間
t4ごとに実行される。
【0093】まず、ステップS61において、壁に接触
する側の前後の接触センサにより壁までの距離Df、D
bを測距する。次に、ステップS62において、壁に接
触する側の前方の接触センサの測距値Dfと基準距離D
0との差である距離の偏差ΔDを求める。次に、ステッ
プS63において、(7)式により走行方向傾きKを求
める。次に、ステップS64において、評価関数を計算
する。ここで、評価関数は、距離の偏差ΔDに走行方向
傾きKに所定のゲインKGを乗算したものを加えた値を
用いる。評価関数の値が所定の設定値v3より大きけれ
ば、ステップS67において、左カーブ制御を実行し、
設定値−v3とv3との間にあるときはステップS66
において直進制御を実行し、設定値−v3より小さい場
合は、ステップS65において右カーブ制御を実行す
る。なお、カーブ量(カーブ半径)は、評価関数の値の
大きさに応じて増減させる。
【0094】上記の制御を行なうことにより、左側の前
方の接触センサの測距Dfおよび左側の後方の接触セン
サの測距Dbを用いて制御し、測距値Dfが基準値D0
より大きいときは壁に近づく方向(左方向)にカーブ走
行させ、小さいときは離れる方向(右方向)にカーブ走
行させることができる。また、測距値Dfと測距値Db
との差によって自律走行車の壁に対する傾きを検出し、
Df>Dbの場合は自律走行車が壁から離れる方向に傾
いているので壁に近づく方向(左方向)にカーブ走行さ
せ、逆の場合は壁から離れる方向(右方向)にカーブ走
行させることができる。したがって、非接触センサでは
測距できないほど壁に近接した場合でも常に正確に壁に
平行な直進走行すなわち接触倣い走行制御を行なうこと
が可能となる。
【0095】なお、接触センサの場合でも非接触センサ
による壁倣い走行と同様に、カーブ走行や直進制御等の
駆動制御時に発生する滑りの影響を接触センサの測距結
果から判断し、必要に応じてカーブ制御量を増減させる
ようにしてもよい。この場合、走行時に接触センサの出
力から求められる走行方向傾きKの変化量ΔKが実際の
曲がり具合ΔTrを近似的に表わしている。したがっ
て、カーブ制御の制御量から(4)式により求められる
曲がり具合ΔTと、走行時に測距値から求められる曲が
り具合ΔTrとを比較し、両方の値に差がなければ車輪
の滑りが発生していないと判断し、大きく差がある場合
は車輪の滑りが発生していると判断することができる。
上記の滑りの検出処理は、非接触センサによる壁倣い走
行制御と同様に、図28に示すステップS63とS64
との間に挿入することにより滑りの検出を考慮した接触
倣い走行制御を実現することができる。
【0096】(7) 接触倣い例外処理 次に、上記の接触倣い走行制御以外の処理である接触倣
い例外処理について説明する。まず、壁の途切れ検出処
理について説明する。壁の途切れ検出処理とは、接触セ
ンサの出力の変化速度により壁が途切れたことを検出す
る処理である。すなわち壁倣い走行中に壁が途切れた場
合、接触センサの出力が大きく振動するためこれを利用
して、壁が途切れたことを検出する。また、接触センサ
が振動している場合は、接触センサの出力だけでは壁に
接触しているのか離れているのかを判断できない。した
がって、壁倣い走行中に壁が途切れた場合、壁倣い走行
制御を停止し、直進制御を実行する。このとき、直進モ
ードに切換わった直前での自律走行車の進行方向によっ
ては、あまり長く直進すると直進経路からずれてしまう
場合がある。そこで、直進モードの切換わる直前の前後
の接触センサの測距値から自律走行車の壁に対する傾き
を記憶しておき、その傾きを補正するような操舵をした
後に直進するようにしている。
【0097】図29は、上記の壁の途切れ検出処理を説
明するためのフローチャートである。図29の(a)
は、壁W1が途切れたところを通過するときの接触セン
サ4の動きを示しており、(b)は、壁W1が途切れた
ところを通過するときのポテンショメータの出力値から
得られるセンサ角度Aの出力を表わしており、(c)
は、壁W1が途切れたところを通過するときのセンサ角
度から得られる距離値Dの出力を示している。図29を
参照して、〜では、接触センサ4は壁W1に接して
おり、の時点で壁W1から離れている。接触センサ4
が壁から離れると、ねじりコイルバネ47によってシャ
フト44は中央方向に戻されるがこのとき安定するまで
所定の間振動する。したがって、ポテンショメータ43
の出力から得られるセンサ角度Aおよび距離値Dは、
〜の間に示される波形となる。振動時は、センサ角度
Aから壁までの距離を演算しても意味がないが、センサ
出力、たとえば、センサ角度Aまたは距離値Dの出力が
振動的な振舞いをするためその変化速度により壁が途切
れたことを検出することができる。
【0098】次に、壁の接触検出処理について説明す
る。壁の接触検出処理とは、壁倣い走行中に壁に接触し
たことを検出する処理である。本処理は、接触センサの
角度情報により壁との接触を検出している。なお、接触
センサの角度を直接検出する方が距離に変換した後検出
する方よりも高感度に接触状態を検出することができ
る。また、本実施例では、接触センサが壁に接触したこ
とを検出した後、一定距離進んだ後にその距離情報に基
づいた接触倣い走行制御を行なっている。
【0099】壁の接触検出処理は以下のようにして行な
う。進行方向に垂直な壁に接触した場合、一定距離進行
して進行方向に平行な部分に接触させてから測距を行な
う必要があるが、壁に接触したことを検出しただけで
は、壁の進行方向に対して垂直な部分と平行な部分との
いずれに接触したのかを判定することができない。した
がって、本実施例では、接触を検出した壁が垂直な壁で
あるか否かにかかわらず一定距離進行してから距離情報
に基づく制御を行なっている。
【0100】次に、壁の接触検出処理の原理について説
明する。図30は、壁の接触検出処理の原理を説明する
ための図である。図30の(a)は、進行方向に垂直な
壁W1のあるところを通過するときの接触センサ4の動
きを示しており、(b)は、進行方向に垂直な壁W1の
あるところを通過するときのポテンショメータ43の出
力から得られるセンサ角度Aを表わしており、(c)
は、進行方向に垂直な壁W1のあるところを通過すると
きのセンサ角度Aから得られる距離値Dをそれぞれ表わ
している。
【0101】図30において、〜では、接触センサ
4は壁W1に接触していないが、の時点で壁W1に接
触する。接触センサ4が壁W1に接触した後自律走行車
が前進を続けると、ねじりコイルバネ47に抗してシャ
フト44が回転する。このとき、ポテンショメータ43
の出力から得られるセンサ角度Aおよび距離値Dは、
〜の間に示される波形となる。の直後のセンサ角度
値Aおよび距離値D(それぞれ円で囲んだ部分)に注目
すると、センサ角度値Aに比べて距離値Dの変化率は少
なく、ほぼ0に近い値となっている。このため、接触セ
ンサ4の壁W1への接触は、センサ角度値Aの変化を用
いた方がより早くかつ正確に検出することができる。
【0102】また、〜の間は、センサ角度値Aから
計算された距離値Dは、自律走行車と壁W1との距離を
表わしていないため、接触センサ4が壁W1に接触した
ことを検出した後、所定距離直進走行させてから壁との
距離を測定し上述した接触倣い走行制御を行なう。
【0103】次に、壁の接触検出処理について具体的に
説明する。図31は、壁の接触検出処理を説明するため
のフローチャートである。なお、図31に示す壁の接触
検出処理では、所定時間t5ごとに以下の処理を実行し
ている。
【0104】まず、ステップS71において、ポテンシ
ョメータ43の出力からセンサ角度値Aを求める。次
に、ステップS72において、センサ角度値Aの変化量
ΔAを、センサ角度値Aから所定時間t5前のセンサ角
度値PAを減算することにより求める。次に、ステップ
S73において、センサ角度値の変化量ΔAの絶対値が
所定の設定値v4より大きいか否かが判断される。大き
ければ急に離れたと判断し、ステップS77において壁
が途切れたことを検出する。一方、大きくない場合、ス
テップS74において、センサ角度値Aの絶対値が0に
近い所定の設定値v5より大きいか否かが判断され、大
きければステップS75において壁に接触センサが接触
していると判断する。一方、大きくない場合はステップ
S76において壁から接触センサがゆっくり離れたと判
断する。次に、ステップS78において、現在のセンサ
角度値AをPAとして記憶しておく。
【0105】上記の処理により、センサ角度値Aの値に
より、接触センサが壁に接触しているか、壁が途切れた
か、壁からゆっくり離れたか等の状態を検出することが
でき、正確にかつ高速に壁と接触センサとの接触状態を
検出することが可能となる。
【0106】次に、非接触センサの測距範囲を超えて自
律走行車が壁に接近した場合、非接触センサの測距範囲
に戻す制御方法について説明する。本実施例の自律走行
車では、接触センサを用いた倣い走行の場合、壁からゆ
っくりと接触センサが離れていったことを検出した場合
には、接触センサの測定範囲に入るように制御すること
により接触倣い走行制御を続行するようにしている。
【0107】次に、上記の動作を行なうための走行状態
の遷移関係について説明する。図32は、上記の動作を
行なうための走行状態の遷移関係を示す図である。接触
倣いモードM6では、壁に接触しながら接触センサを用
いて接触倣い走行制御を行なう。直進モードM8は、壁
が途切れたときの走行モードであり、倣ってきた壁に平
行な方向に直進走行を行なう。探索モードM7は、壁が
見つからないときの走行モードであり、壁の方向にカー
ブ走行を行なう。
【0108】第1の接触倣いモードM11では、前後の
接触センサを用いて図28に示す接触倣い走行制御を用
いて走行させる。第2の接触倣いモードM12では、探
索モードM7から接触倣いモードM6に移行するとき、
前方の接触センサが壁までの距離を測定できるまで直進
走行した後、第1の接触倣いモードに移行する。第3の
接触倣いモードM13では、直進モードM8から接触倣
いモードM6に移行するとき、前方の接触センサが壁ま
での距離を測定できるまで直進走行した後、第1の接触
倣いモードM11に移行する。
【0109】第1の直進モードM14では、直進動作を
実行する。第2の直進モードM15では、接触倣いモー
ドM6から直進モードM8に移行するとき、自律走行車
が倣ってきた壁に平行になるように壁から離れる方向に
カーブ走行させた後、第1の直進モードM15に移行す
る。第3の直進モードM16では、接触倣いモードM6
から直進モードM8に移行するとき、自律走行車が倣っ
てきた壁に平行になるように壁に近づく方向にカーブ走
行させた後、第1の直進モードM14に移行する。
【0110】次に、上記の各モードからの遷移状態につ
いて説明する。スタート時、前方の接触センサが壁に接
触している場合、接触倣いモードM6へ移行し、接触し
ていない場合探索モードM7へ移行する。接触倣いモー
ドM6において、前方の接触センサが壁から急に離れた
場合、直進モードM8へ移行する。また、接触倣いモー
ドM6から直進モードM8に移行する際、離れる直前の
前後の接触センサがほぼ同じ測距値で、自律走行車が壁
に平行にある場合、第1の直進モードM14へ移行す
る。さらに、接触倣いモードM6から直進モードM8に
移行する際、前方の接触センサの測距値が後方の接触セ
ンサの測距値に比べて小さい場合、第2の直進モードM
15に移行する。また、接触倣いモードM6から直進モ
ードM8に移行する際、前方の接触センサの測距値が後
方の接触センサの測距値に比べて大きい場合、第3の直
進モードM16へ移行する。
【0111】直進モードM8にあるとき、前方の接触セ
ンサが壁に接触したことを検出したとき、接触倣いモー
ドM6に移行する。また、接触倣いモードM6にあると
き、前方の接触センサが壁からゆっくり離れた場合、探
索モードM7へ移行する。さらに、探索モードM7にあ
るとき、前方の接触センサが壁に接触したことを検出し
たとき、接触倣いモードM6に移行する。上記のように
各モードを遷移することにより、接触センサの測距範囲
を超えた場合でも接触センサの測距範囲に戻すように操
舵され、常に正確に接触倣い走行制御を実行することが
できる。
【0112】次に、上記のモード遷移関係に従った動作
例について説明する。図33は、図31に示すモード遷
移に従った動作例を説明するための図である。まず、図
33の(a)に示すように、走行開始時、前方の接触セ
ンサが壁から離れていることを検出し、探索モードM7
に移行する。次に、図33の(b)に示すように、探索
モードM7で壁に近づく方向にカーブ走行する。次に、
図33の(c)に示すように、探索モードM7で走行
時、前方の接触センサが壁に接触したことを検出し、第
2の接触倣いモードM12へ移行する。次に、図33の
(d)に示すように、第2の接触倣いモードM12を経
て第1の接触倣いモードM11に移行し、倣い走行を行
なう。次に、図33の(e)に示すように、倣い走行中
前方の接触センサが壁の途切れを検出した場合、直進モ
ードM8へ移行する。次に、図33の(f)に示すよう
に、壁の途切れを検出した直前の前後の接触センサの出
力を比較し、ほぼ同じ値であった場合、第1の直進モー
ドM14へ移行し直進走行を実行する。次に、図33の
(g)に示すように、直進走行中、前方の接触センサが
壁に接触したことを検出した場合、第3の接触倣いモー
ドM13へ移行する。最後に、図33の(h)に示すよ
うに、第3の接触倣いモードM13を経て第1の接触倣
いモードM11に移行し、倣い走行を行なう。
【0113】(8) 接触倣い走行制御と非接触倣い走
行制御との併用について 上記の説明では、接触センサを用いた倣い走行制御にお
いて壁が途切れたことを検出した時点で、直進モードに
切換えて走行を行なうようにしているが、直進モードに
切換わった時点での自律走行車の走行方向によっては、
あまり長く直進すると直進経路からずれてしまう場合が
ある。そこで、接触センサを用いた壁倣い走行制御にお
いて、壁が途切れたことを検出した後、非接触センサを
用いて非接触倣い走行制御を行なう。したがって、壁の
途切れがなくなったことを検出して、再び壁を利用して
倣い走行することができ、直進走行の誤差を少なくする
ことができる。
【0114】次に、上記の動作を行なうための走行状態
の遷移関係について説明する。図34は、接触および非
接触倣い走行制御を併用した場合の走行状態の遷移関係
を示す図である。図34を参照して、非接触倣いモード
M9では、非接触センサを用いて倣い走行を行なう。接
触倣いモードM6にあるとき、前方の接触センサが壁か
ら急に離れた場合、非接触センサで左右にある壁までの
距離を測定し、測定可能であった場合には非接触倣いモ
ードM9へ移行する。非接触倣いモードM9にあると
き、前方の接触センサが壁に接触したことを検出したと
き、接触倣いモードM6へ移行する。上記のように各モ
ードを遷移することにより、接触倣い走行制御および非
接触倣い走行制御を併用することができ、接触センサを
用いることができる場合は、接触センサにより接触倣い
走行制御を行ない、接触センサを用いることができない
場合は、非接触センサを用いて非接触倣い走行制御を行
なうことができ、常に正確に倣い走行制御を行なうこと
が可能となる。
【0115】次に、上記のモード遷移に従った動作例に
ついて説明する。図35は、図34に示すモード遷移に
従った動作例を説明するための図である。まず、図35
の(a)に示すように、接触倣いモードM6において接
触センサを用いて倣い走行を行なう。次に、図35の
(b)に示すように、倣い走行中前方の接触センサが壁
W1の途切れを検出する。次に、図35の(c)に示す
ように、左右の非接触センサにより左右の壁W1、W2
までの距離を測定する。この場合、左右ともに測定可能
であるので非接触倣いモードM9に移行する。次に、図
35の(d)に示すように、非接触センサによる壁倣い
走行制御を実行する。次に、図35の(e)に示すよう
に、非接触倣い走行中、前方の接触センサが壁W1に接
触したことを検出すると、接触倣いモードM6に移行す
る。最後に、図35の(f)に示すように、接触倣いモ
ードM6により倣い走行を行なう。
【0116】(9) 作業用アームの制御について 次に、作業用アーム2の制御方法について説明する。作
業用アーム2の制御としては、接触センサによって壁倣
い走行を行なう際、作業部本体1に取付けられた触角セ
ンサが測定可能なところに接近できるように作業用アー
ム2を壁と反対方向に移動させる。そして、倣い走行中
には、作業用アーム2は、前後の接触センサにより得ら
れた距離情報に基づいて作業用アーム2の位置を調整す
る。したがって、自律走行車が壁と平行な位置にない場
合でも、作業用アーム2を壁に密着させることができ、
壁にある凸凹を予め検出することもできるので、作業用
アームが壁の突起物に引っかかることもない。
【0117】次に、上記の制御を行なうための作業用ア
ーム2の具体例について説明する。図36は、作業用ア
ームの構成を示す上面図である。図36を参照して、自
律走行車は、さらに、アーム取付部材25、アーム固定
ばね19、アームスライド軸20を含む。スライド機構
14にアーム取付部材25がスライド可能に保持されて
いる。作業用アーム2は、アーム取付部材25に設置さ
れたアームスライド軸20にスライド可能に保持されて
いる。作業用アーム2の位置は、アームスライド軸2の
外周に配置されたアーム固定ばね19に挟まれる形で位
置決めされている。上記の構成により、作業用アーム2
は、横方向からの力に対してある程度スライド可能な状
態で作業部本体1に取付けられる。
【0118】以下、上記のように構成された作業用アー
ムの第1の制御例について説明する。本例では、片側に
前後2箇所の接触センサを設け、この2つの接触センサ
を用いて作業用アーム2の位置を計算する。作業用アー
ム2は、上記のように横方向からの力に対して、ある程
度横方向にスライド可能なようにバネを介して作業部本
体1に取付けられている。
【0119】まず、作業用アーム2と前後の2つの接触
センサの位置関係について説明する。図37は、作業用
アームと接触センサとの位置関係を示す図である。図3
7を参照して、作業用アーム2の位置と、前後の接触セ
ンサ4c、4dのポテンショメータの軸の中心位置との
距離をdf、dbとすると、前後の距離センサ4c、4
dの先端位置(xf、yf)、(xb、yb)は、セン
サ角度tf、tbからtfとtbとの差があまりないと
きには次式で近似的に計算することができる。
【0120】 xf=df−lf×sin(tf) …(8) yf=−lf×cos(tf)−d …(9) xb=db−lb×sin(tb) …(10) yb=−lb×cos(tb)−d …(11) 前後の接触センサ4c、4dの先端位置(xf、y
f)、(xb、yb)を通る直線上に、作業用アーム2
の先端位置がくるように作業用アーム2の位置を次式に
より求める。
【0121】 AM=(yf×xb−yb×xf)/(xb−xf) …(12) 平坦な壁に倣い走行する場合には、(12)式で求めら
れるアーム位置に作業用アーム2の先端がくるように作
業用アーム2を移動させることにより、倣い走行中に自
律走行車が壁に平行でない場合でもまた所定距離離れて
いない場合でも、作業用アーム2は、壁に対して常に接
触しながら作業を行なうことが可能となる。ところで、
壁に小さな突起状のものが突き出ている場合、接触セン
サがその突起を乗り越えた後、作業用アーム2が通過す
るが作業用アーム2は小さな突起に衝突してしまう。し
たがって、この不具合を解消するため、本実施例では、
移動させるアーム位置AMは、後方の接触センサ4dか
らアーム位置までの距離を自律走行車が進む時間t8だ
け前のデータを使用している。この遅延を実現するた
め、本実施例では、FIFO(ファーストインファース
トアウト)メモリ(図示省略)を使用し、ある時点で、
センサ出力からアーム位置を計算した結果をFIFOメ
モリにプッシュすると同時に、FIFOメモリから所定
時間t8前に計算したアーム位置を読出して読出したア
ーム位置に作業用アーム2の先端を移動させている。
【0122】次に、上記の作業用アームの制御方法につ
いて具体的に説明する。図38は、上記した作業用アー
ムの第1の制御方法を説明するためのフローチャートで
ある。この作業用アームの制御は、所定時間t6ごとに
実行している。
【0123】まず、ステップS81において、前後の接
触センサの角度値Af、Abを求める。次に、ステップ
S82において、求めた前後の接触センサの角度値A
f、Abから(8)式〜(12)式を基にアーム位置A
Mを計算する。次に、ステップS83において、アーム
位置AMをFIFOメモリにプッシュする。次に、ステ
ップS84において、FIFOメモリから所定時間t8
前の時点で計算されたアーム位置AM0を読出す。最後
に、ステップS85において、作業用アーム2の先端位
置がアーム位置AM0の位置にくるように移動させる。
【0124】次に、上記の作業用アームの第1の制御方
法による作業用アームの動作例について説明する。図3
9は、図38に示す制御方法による作業用アームの動作
例を説明するための図である。まず、図39の(a)に
示すように、平坦な壁に倣い走行中、作業用アーム2の
先端は、前後の接触センサ4a、4bの先端を通る直線
上にあって壁に接触している。次に、図39の(b)に
示すように、前方の接触センサ4aが壁の突起物に接触
する。このとき、作業用アーム2の先端が前後の接触セ
ンサ4a、4bの先端を通る直線上にくるようにアーム
位置が計算される。次に、図39の(c)に示すよう
に、前方の接触センサ4aが壁の突起物を越える。次
に、上記図39の(b)で示した処理により計算された
アーム位置に作業用アーム2を移動させようとするが、
作業用アーム2がバネ力に抗してスライドした状態で壁
に接触している。
【0125】次に、図39の(d)に示すように、後方
の接触センサ4bが壁の突起物に接触する。このとき、
作業用アーム2の先端が前後の接触センサ4a、4bの
先端を通る直線上にくるようにアーム位置が計算され
る。次に、図37の(e)に示すように、後方の接触セ
ンサ4bが壁の突起を越える。しかし、この場合、直前
に図39の(d)で計算されたアーム位置に作業用アー
ム2を移動させるため、作業用アームは壁の突起物に接
触しない。最後に、図39の(f)に示すように、作業
用アーム2が壁の突起物を越え、再び作業用アーム2の
先端が壁に接触する位置に移動される。
【0126】次に、作業用アームの第2の制御方法につ
いて説明する。作業用アームの第1の制御方法では、壁
の突起物と壁に対する自律走行車の傾きを判別していな
いため、壁に突起物がある場合には倣い制御およびアー
ム位置の計算が正確に行なわれない場合がある。したが
って、第2の制御方法では、作業部本体1の両側に前、
中、後の3箇所にそれぞれ接触センサを設けて作業部本
体1の傾きおよび壁の凹凸をそれぞれ独立に検出し、こ
の検出結果に基づき作業用アームの位置を制御する。
【0127】まず、作業用アームと6つの接触センサと
の位置関係について説明する。図40および図41は、
作業用アームと6つの接触センサとの位置関係を示す第
1および第2の図である。図40および図41を参照し
て、左の壁W1を倣い走行する場合には、左側の前、
中、後の3つの接触センサ4a〜4cを使用し、右の壁
を倣い走行する場合には、右側の3つのセンサ4d〜4
fを使用する。図40に示すように、平坦な壁に沿って
いる場合、3つの接触センサ4a〜4cの先端は一直線
上にある。また、図41に示すように、後部の接触セン
サ4cが壁の突起物の上を通過しているとき、3つの接
触センサ4a〜4cの先端は、一直線上にない。この場
合、前の接触センサ4aと中の接触センサ4bとの2つ
の接触センサを用いて自律走行車の壁W1からの位置お
よび自律走行車の壁W1に対する傾きを計算する。
【0128】次に、作業用アーム2を3つの接触センサ
4a〜4cの出力から計算されたアーム位置AMから突
起物の高さhを差し引いた位置に移動させる場合につい
て詳細に説明する。まず、センサ出力から計算されたア
ーム位置AMの求め方は以下の方法による。アーム位置
を計算する接触センサは、突起物に接していない(壁に
接している)2つの接触センサを選択してその先端を通
る直線上にアームの先端がくるように(12)式を用い
て計算する。
【0129】ある接触センサが突起物に接触しているか
どうかは、接触センサの先端位置を計算することによっ
て判別する。どの接触センサも突起物に接触していない
場合は、3つの接触センサの先端位置は一直線上に並
ぶ。また、ある接触センサが突起物に接触すると3つの
接触センサの先端位置は、一直線上には並ばない。
【0130】したがって、接触センサの先端位置が一直
線上に並んでいないとき、どの接触センサが突起物に接
触しているかを判別する必要があり、本実施例では、自
律走行車と壁との傾きが、十分短い時間ではあまり変化
しないということを利用して判別している。すなわち、
3つの接触センサの中から2つの接触センサの組をつく
り、それぞれの接触センサの組から自律走行車の進行方
向の傾きKfc、Kcb、Kfbを求め、この中から前
回求めた進行方向の傾きK0に最も近い値を持つセンサ
のペアを突起物に接していないセンサとして判別してい
る。
【0131】また、突起物の高さhの求め方は以下の方
法による。突起物の高さhは、後方の接触センサ4cに
より検出する。上記の処理で選択した2つの接触センサ
の先端位置を結んだ直線と後方の接触センサの先端位置
との差を後方の接触センサの位置にある突起物の高さh
bとする。図40では、hb=0となり、図41では、
hb=hとなる。また、後方の接触センサと作業用アー
ムの先端との位置は異なるため、後方の接触センサから
作業用アームの先端位置までの距離を自律走行車が進む
時間t9だけ前の時点でのデータを使用する。この時間
遅延を実現するため、第1の制御方法と同様にFIFO
メモリを使用する。具体的には、ある時点で後方の接触
センサの位置にある突起物の高さhbをFIFOメモリ
にプッシュすると同時に、FIFOメモリから所定時間
t9前に計算した突起物の高さhを読出す。
【0132】次に、上記に説明した作業用アームの第2
の制御方法についてさらに具体的に説明する。図42
は、作業用アームの第2の制御方法を説明するためのフ
ローチャートである。第2の制御方法では、所定時間t
7ごとに以下の処理を実行している。
【0133】まず、ステップS91において、前、中、
後の3つの接触センサの角度値Af、Ac、Abをそれ
ぞれ求める。次に、ステップS92において、センサペ
アの先端位置の傾き角Kfc、Kcb、Kfbをそれぞ
れ求める。次に、ステップS93において、Kfc≒K
fb(≒Kcb)であるか否かが判断され、Kfc≒K
fbのときステップS94において前の接触センサおよ
び後の接触センサが選択され、Kfc≒Kfbでない場
合ステップS95において、Kfc、Kcb、Kfbの
中からK0に最も近いセンサペアを選択する。次に、ス
テップS96において、上記の処理により選択した進行
方向の傾きKをK0として記憶する。
【0134】次に、ステップS97において、選択され
た接触センサの角度値A1、A2からアーム位置AMを
計算する。次に、ステップS98において、後の接触セ
ンサの高さhbを計算する。次に、ステップS99にお
いて、計算した後の接触センサの高さhbをFIFOメ
モリにプッシュする。次に、ステップS100におい
て、FIFOメモリから所定時間t9前の時点で計算さ
れた後の接触センサの高さhを読出す。最後に、ステッ
プS101において、作業用アーム2の先端位置がAM
−hの位置にくるように移動させる。
【0135】次に、上記の第2の制御方法による作業用
アームの動作例について説明する。図43は、図42に
示す制御による作業用アームの動作例を説明するための
図である。まず、図43の(a)に示すように、平坦な
壁に倣い走行中、作業用アーム2の先端が前、中、後ろ
の3つの接触センサの先端を通る直線上にくるようにア
ーム位置が計算される。次に、図43の(b)に示すよ
うに、前の接触センサ4aが壁の突起物に接触する。こ
のとき、作業用アーム2の先端が中、後の接触センサ4
b、4cの先端を通る直線上にくるようにアーム位置が
計算される。次に、図43の(c)に示すように、前の
接触センサ4aが壁の突起物を乗り越えて、中の接触セ
ンサ4bが壁の突起物に接触する。このとき、作業用ア
ーム2の先端が前および後の接触センサ4a、4cの先
端を通る直線上にくるようにアーム位置が計算される。
【0136】次に、図43の(d)に示すように、中の
接触センサ4bが壁の突起物を乗り越えて、後の接触セ
ンサ4cが突起物に接触する。このとき、作業用アーム
2の先端が前、中の接触センサ4a、4bの先端を通る
直線上にくるようにアーム位置が計算される。また、こ
の状態で突起物の高さが記憶される。次に、図43の
(e)に示すように、後ろの接触センサ4cが壁の突起
物を越える。このとき、作業用アーム2の先端が前、後
ろの接触センサ4a、4cの先端を通る直線上にくるよ
うにアーム位置が計算されるが、図43の(e)に示す
状態で記憶された突起物の高さ分だけ作業用アーム2を
移動させるため作業用アーム2は壁の突起物に接触しな
い。最後に、図43の(f)に示すように、作業用アー
ム2が突起物が越える。このとき、作業用アーム2の先
端は、前、中、後の接触センサ4a〜4cの先端の延長
線上にあって壁に接触している。
【0137】なお、上記の作業用アームの制御では、接
触センサを用いたが、非接触センサを用いても上記と同
様に構成することにより、同様の効果を得ることができ
る。
【0138】(10) 以上の実施例から以下のような
項目の発明の保護が考えられる。 項目1.第1対象物に沿った走行が可能な自律走行車で
あって、前記自律走行車を移動させるための移動手段
と、前記自律走行車を回転させる回転部材と、前記自律
走行車の回転中心より進行方向の前方に配置され、前記
第1対象物までの距離を測定する第1距離測定手段と、
前記自律走行車の回転中心より前記進行方向の前方に配
置され、前記第1対象物の反対側に位置する第2対象物
までの距離を測定する第2距離測定手段と、前記第1お
よび第2距離測定手段の測定結果をもとに前記第1対象
物に沿って自律走行させるための自律走行手段とを含む
自律走行車。
【0139】項目1記載の自律走行車においては、第1
および第2距離測定手段が自律走行車の回転中心より進
行方向の前方に配置されているので第1および第2距離
測定手段の測定結果に自律走行車の傾き成分が含まれ、
自律走行車の回転中心部の動きを予測することができ
る。したがって、自律走行車の制御の遅延を減少させ、
常に正確に第1対象物に沿って自律走行を行なうことが
可能となる。
【0140】
【発明の効果】請求項1記載の自律走行車においては、
自律走行車の第1対象物に対する傾きに影響されず、常
に正確に第1距離と第2距離との比率に対応する値を用
いて自律走行しているので、常に正確に第1対象物に沿
って自律走行を行なうことが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例の自律走行車の全体構成を示
す斜視図である。
【図2】図1に示す自律走行車の全体構成を示す上面図
である。
【図3】清掃およびワックス掛け用の自律走行車の全体
構成を示す図である。
【図4】図3に示す作業用アームの構成を示す側面図で
ある。
【図5】図3に示す作業用アームの構成を示す下面図で
ある。
【図6】図1に示す駆動部の構成を示す図である。
【図7】直進制御の方法を説明するためのフローチャー
トである。
【図8】カーブ制御の方法を説明するためのフローチャ
ートである。
【図9】第3スピンターン制御の方法を説明するための
フローチャートである。
【図10】自律走行車の作業中の動作例を説明するため
の図である。
【図11】壁沿いからのUターン動作を説明するための
図である。
【図12】Uターン動作を説明するための図である。
【図13】Uターンして壁に沿う動作を説明するための
図である。
【図14】非接触倣い走行制御の原理を説明するための
図である。
【図15】非接触センサを代表位置の両側に配置した例
を示す第1の図である。
【図16】非接触センサを代表位置の両側に配置した例
を示す第2の図である。
【図17】非接触センサを代表位置の前方に配置した例
を示す第1の図である。
【図18】非接触センサを代表位置の前方に配置した例
を示す第2の図である。
【図19】図17および図18に示す非接触センサを用
いた非接触倣い走行制御の方法を説明するためのフロー
チャートである。
【図20】カーブ走行の移動軌跡を説明するための図で
ある。
【図21】図19に示す滑り検出ルーチンを説明するた
めのフローチャートである。
【図22】走行状態の遷移関係を示す図である。
【図23】基準値記憶モードにおける処理を説明するた
めのフローチャートである。
【図24】図22に示すモード遷移に従った動作例を説
明するための図である。
【図25】接触センサの構成を示す斜視図である。
【図26】接触センサの動作を説明するための図であ
る。
【図27】図25に示す接触センサを用いた接触倣い走
行の原理を説明するための図である。
【図28】図25に示す接触センサを用いた接触倣い走
行制御の方法を説明するためのフローチャートである。
【図29】壁の途切れ検出処理を説明するための図であ
る。
【図30】壁の接触検出処理の原理を説明するための図
である。
【図31】壁の接触検出処理を説明するためのフローチ
ャートである。
【図32】走行状態の遷移関係を示す図である。
【図33】図32に示すモード遷移に従った動作例を説
明するための図である。
【図34】接触および非接触倣い走行制御を併用した場
合の走行状態の遷移関係を示す図である。
【図35】図34に示すモード遷移に従った動作例を説
明するための図である。
【図36】作業用アームの取付け部分の構成を示す図で
ある。
【図37】作業用アームと4つの接触センサの位置関係
を示す図である。
【図38】作業用アームの第1の制御方法を説明するた
めのフローチャートである。
【図39】図38に示す制御による作業用アームの動作
例を説明するための図である。
【図40】作業用アームと6つの接触センサとの位置関
係を示す第1の図である。
【図41】作業用アームと6つの接触センサとの位置関
係を示す第2の図である。
【図42】作業用アームの第2の制御方法を説明するた
めのフローチャートである。
【図43】図42に示す制御による作業用アームの動作
例を説明するための図である。
【符号の説明】
1 作業部本体 2 作業用アーム 3 駆動部 4a〜4f 接触センサ 11 タンク 12 ホース 13 ポンプ 14 スライド機構 15 スライド機構用モータ 16 コントローラ 17 接触センサ 18a,18b 非接触センサ 21 ブラシ 22 ノズル 23 ホース 24 ブラシ駆動用モータ 31F、31B 従動輪 32R、32L 駆動輪 33R、33L 駆動輪用モータ 34R、34L 連結機構 35R、35L エンコーダ 36 回転支持機構 37 回転駆動用モータ 38 コントローラ 41 台板 42 台板つめ 43 ポテンショメータ 44 シャフト 45 シャフト位置決め用つめ 46 ねじりコイルバネ 47 接触子 100 自律走行車
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G01C 21/00 G01C 21/00 A

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 第1対象物に沿った走行が可能な自律走
    行車であって、 前記第1対象物までの第1距離を測定する第1距離測定
    手段と、 前記第1対象物の反対側に位置する第2対象物までの第
    2距離を測定する第2距離測定手段と、 前記第1および第2距離測定手段の測定結果を基に前記
    第1距離と前記第2距離との比率に対応する値を求め、
    前記比率に対応する値を用いて前記第1対象物に沿って
    自律走行させるための自律走行手段とを含む自律走行
    車。
JP7089679A 1995-04-14 1995-04-14 自律走行車 Withdrawn JPH08286744A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7089679A JPH08286744A (ja) 1995-04-14 1995-04-14 自律走行車
US08/631,014 US5947225A (en) 1995-04-14 1996-04-12 Automatic vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7089679A JPH08286744A (ja) 1995-04-14 1995-04-14 自律走行車

Publications (1)

Publication Number Publication Date
JPH08286744A true JPH08286744A (ja) 1996-11-01

Family

ID=13977453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7089679A Withdrawn JPH08286744A (ja) 1995-04-14 1995-04-14 自律走行車

Country Status (1)

Country Link
JP (1) JPH08286744A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008254588A (ja) * 2007-04-05 2008-10-23 Matsushita Electric Ind Co Ltd 走行装置および自走式ロボット
KR101006323B1 (ko) * 2008-06-18 2011-01-06 삼성중공업 주식회사 이동 로봇의 회전 제어 장치 및 그 방법, 이를 위한 기록매체
EP2396608A2 (en) * 2009-02-13 2011-12-21 Esolar, Inc. Heliostat field cleaning system
US8380350B2 (en) 2005-12-02 2013-02-19 Irobot Corporation Autonomous coverage robot navigation system
US8387193B2 (en) 2005-02-18 2013-03-05 Irobot Corporation Autonomous surface cleaning robot for wet and dry cleaning
US8838274B2 (en) 2001-06-12 2014-09-16 Irobot Corporation Method and system for multi-mode coverage for an autonomous robot
US8854001B2 (en) 2004-01-21 2014-10-07 Irobot Corporation Autonomous robot auto-docking and energy management systems and methods
US9622635B2 (en) 2001-01-24 2017-04-18 Irobot Corporation Autonomous floor-cleaning robot
CN107571257A (zh) * 2017-08-04 2018-01-12 广东美的智能机器人有限公司 机器人的控制方法、机器人的控制系统和机器人
US9949608B2 (en) 2002-09-13 2018-04-24 Irobot Corporation Navigational control system for a robotic device
US9955841B2 (en) 2006-05-19 2018-05-01 Irobot Corporation Removing debris from cleaning robots
US10314449B2 (en) 2010-02-16 2019-06-11 Irobot Corporation Vacuum brush
US10470629B2 (en) 2005-02-18 2019-11-12 Irobot Corporation Autonomous surface cleaning robot for dry cleaning
US11072250B2 (en) 2007-05-09 2021-07-27 Irobot Corporation Autonomous coverage robot sensing

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9622635B2 (en) 2001-01-24 2017-04-18 Irobot Corporation Autonomous floor-cleaning robot
US8838274B2 (en) 2001-06-12 2014-09-16 Irobot Corporation Method and system for multi-mode coverage for an autonomous robot
US9949608B2 (en) 2002-09-13 2018-04-24 Irobot Corporation Navigational control system for a robotic device
US8854001B2 (en) 2004-01-21 2014-10-07 Irobot Corporation Autonomous robot auto-docking and energy management systems and methods
US10470629B2 (en) 2005-02-18 2019-11-12 Irobot Corporation Autonomous surface cleaning robot for dry cleaning
US8387193B2 (en) 2005-02-18 2013-03-05 Irobot Corporation Autonomous surface cleaning robot for wet and dry cleaning
US8855813B2 (en) 2005-02-18 2014-10-07 Irobot Corporation Autonomous surface cleaning robot for wet and dry cleaning
US8380350B2 (en) 2005-12-02 2013-02-19 Irobot Corporation Autonomous coverage robot navigation system
US9955841B2 (en) 2006-05-19 2018-05-01 Irobot Corporation Removing debris from cleaning robots
JP2008254588A (ja) * 2007-04-05 2008-10-23 Matsushita Electric Ind Co Ltd 走行装置および自走式ロボット
US11072250B2 (en) 2007-05-09 2021-07-27 Irobot Corporation Autonomous coverage robot sensing
US11498438B2 (en) 2007-05-09 2022-11-15 Irobot Corporation Autonomous coverage robot
KR101006323B1 (ko) * 2008-06-18 2011-01-06 삼성중공업 주식회사 이동 로봇의 회전 제어 장치 및 그 방법, 이를 위한 기록매체
EP2396608A4 (en) * 2009-02-13 2015-01-28 Esolar Inc SYSTEM FOR CLEANING A FIELD OF HELIOSTATS
EP2396608A2 (en) * 2009-02-13 2011-12-21 Esolar, Inc. Heliostat field cleaning system
US10314449B2 (en) 2010-02-16 2019-06-11 Irobot Corporation Vacuum brush
US11058271B2 (en) 2010-02-16 2021-07-13 Irobot Corporation Vacuum brush
CN107571257A (zh) * 2017-08-04 2018-01-12 广东美的智能机器人有限公司 机器人的控制方法、机器人的控制系统和机器人

Similar Documents

Publication Publication Date Title
US5947225A (en) Automatic vehicle
JPH08286744A (ja) 自律走行車
EP0142594B1 (en) Control system for mobile robot
US5804942A (en) Position determining apparatus and control method of robot
JPH10105236A (ja) 移動体の位置決め装置および移動体の位置決め方法
US7660650B2 (en) Self-propelled working robot having horizontally movable work assembly retracting in different speed based on contact sensor input on the assembly
JPH10240343A (ja) 自律走行車
US7996126B2 (en) Apparatus and method for navigation based on illumination intensity
JP2002333920A (ja) 作業用移動体の移動制御装置
JP2005141636A (ja) 自律走行装置
JP2006164223A (ja) 移動ロボットの物体位置認識装置及びその方法
JPH1055215A (ja) 移動走行車
JPH08286741A (ja) 自律走行車
JP2009037378A (ja) 自律走行装置およびプログラム
JP3218913B2 (ja) 自律走行車
JPH09265319A (ja) 自律走行車
JP3536418B2 (ja) 自律走行車
JP3201216B2 (ja) 自律走行車
JPH10105233A (ja) 自律走行車
JPH09204223A (ja) 自律移動作業車
JP3237500B2 (ja) 自律移動作業車
JP3076648B2 (ja) 自走式掃除機
JP4408872B2 (ja) 自走装置およびその制御方法
KR100619750B1 (ko) 로봇청소기의 위치오차 보정장치 및 방법
JPH06149364A (ja) 無人走行車の制御装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020702