(57)【要約】    【課題】進行方向の定まらない被牽引物を牽引しても、簡易な制御で蛇行を抑制できて目標に沿い走行する自動走行装置を提供する。    【解決手段】被牽引物を牽引して走行ルートからのズレを左右の旋回動作により補正しながら走行ルートに沿って走行する自動走行装置であって、各時点での旋回量を記録する記録部と、走行ルートからのズレ量を検出するズレ量検出部と、自動走行装置の走行動作を制御する走行制御部とを備え、走行制御部は、現時点から所定の時間遡った第１時点における第１の旋回量に基づいて、第１旋回量未満の大きさでかつ第１時点での旋回とは逆方向の旋回に対応する補償旋回量を算出し、少なくとも補償旋回量に基づいて出力旋回量を算出し、該出力旋回量に応じた旋回動作を行うように自動走行装置の走行動作を制御する自動走行装置。【選択図】図６Ａ
2018185659.tif 000002
【特許請求の範囲】
【請求項１】
被牽引物を牽引して走行ルートからのズレを左右の旋回動作により補正しながら前記走行ルートに沿って走行する自動走行装置であって、
各時点での旋回量を記録する記録部と、
前記走行ルートからのズレ量を検出するズレ量検出部と、
前記自動走行装置の走行動作を制御する走行制御部とを備え、
前記走行制御部は、
現時点から所定の時間遡った第１時点における第１の旋回量に基づいて、前記第１旋回量未満の大きさでかつ前記第１時点での旋回とは逆方向の旋回に対応する補償旋回量を算出し、
少なくとも前記補償旋回量に基づいて出力旋回量を算出し、該出力旋回量に応じた旋回動作を行うように前記自動走行装置の走行動作を制御する自動走行装置。
【請求項２】
前記走行制御部は、
前記補償旋回量を前記出力旋回量として算出する請求項１に記載の自動走行装置。
【請求項３】
前記走行制御部は、
前記ズレ量に基づいて基本旋回量を算出し、
前記基本旋回量と前記補償旋回量とに基づいて前記出力旋回量を算出する請求項１に記載の自動走行装置。
【請求項４】
前記補償旋回量は、前記第１の旋回量に対して単調増加の相関関係を有することを特徴とする請求項１から３の何れか一つに記載の自動走行装置。
【請求項５】
前記補償旋回量は、前記第１の旋回量に対して比例の相関関係を有することを特徴とする請求項４に記載の自動走行装置。
【請求項６】
前記自動走行装置の蛇行を検出する蛇行検出部をさらに備え、
前記走行制御部は、
前記蛇行検出部が蛇行を検出した場合には前記補償旋回量を有効にし、
前記蛇行検出部が蛇行を検出しない場合には前記補償旋回量を無効にする請求項１から５何れか一つに記載の自動走行装置。
【請求項７】
前記走行ルート上に配されたラインに沿って走行する自動走行装置であって、
前記ズレ量検出部は、前記ラインからのズレ量を検出する請求項１から６の何れか一つに記載の自動走行装置。
【請求項８】
前記被牽引物に接続する接続部をさらに備え、
前記接続部は、第１部分と、前記第１部分よりも前記自動走行装置の進行方向に対して後側に位置する第２部分とを有し、
前記第１部分と前記第２部分とによって前記被牽引物の被接続部位を前後方向に挟み込むことにより、前記被牽引物に接続する請求項１から７の何れかに記載の自動走行装置。
【請求項９】
前記第１部分と前記第２部分との間の前後方向の間隔は、前記被接続部の前後方向の幅よりも大きい請求項８に記載の自動走行装置。
【請求項１０】
前記被牽引物の第１の被接続部位と接続する第１の接続部と、第１の接続部よりも進行方向に対して右側に位置する第２の被接続部位と接続する第２の接続部とを備える請求項８または９に記載の自動走行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、被牽引物を牽引して走行ルートに沿って走行する自動走行装置に関する。
【背景技術】
【０００２】
工場や倉庫で、無人搬送車を用いた自動搬送システムが用いられている。前記無人搬送車は、指定された走行ルートに沿って自律走行するものである。
複数の車輪を有する無人搬送車をライン（誘導線あるいはガイドともいう）に沿ってうまく走行させるように車輪の操舵角を制御する手法が提案されている（例えば、特許文献１、２参照）
特許文献１においては、制御系が非線形のために、従来の制御系では誘導線に沿わせる操舵制御ができなくなったりハンチングしたりする恐れがあるところ、ファジイ推論を施し、推論結果に基づいて操舵角を制御することが記載されている。
特許文献２においては、３輪操舵の無人フォークリフト（無人搬送車）において、ガイドに沿うための操舵制御でのオーバーシュートを少なく、修正距離を短く、また、車体姿勢角移動を小さくするために３つある各車輪を操舵制御する手法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許２７１２７３９号公報
【特許文献２】特開２０００−１４８２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
工場や倉庫で用いられる無人搬送車を用いた自動搬送システムには様々なタイプのものがあるが、無人搬送車自体に貨物を直接積載して搬送する方式以外に、貨物を積載した台車を牽引して搬送する方式に対する強い要望がある。
発明者らは台車を牽引する構成を採用して無人搬送車の検討を行ったところ、直線状の走行ルートに沿って走行すべき台車が蛇行する場合があることを経験した。この原因は、台車の持つ大きな慣性力が自動搬送車の走行状態に対して大きな影響を与えるためであり、この問題は無人搬送車の重量に対する台車の重量の比率が大きくなるほど顕著となる。  一旦、蛇行が始まると次第に揺れ幅が増大して蛇行が収束せず、無人搬送車では台車の走行を制御できなくなり、極端な場合においては走行ルートから逸脱してしまうことがある。このような台車を牽引する無人搬送車において、蛇行の発生を抑制して走行を制御することは一般的に非常に困難であり、可能であったとしても非常に複雑な制御が要求される。
【０００５】
例えば、特許文献１や特許文献２の制御方法は、そもそも台車を牽引することによる蛇行の発生を想定していないし、仮に蛇行の発生を抑制することに用いるにしても、制御に用いるパラメータが多く煩雑化するなど、非常に複雑な制御方法となってしまう。
この発明は、以上のような事情を考慮してなされたものであって、台車を牽引する無人搬送車において、簡易な制御で蛇行を抑制でき、走行ルートに沿って走行可能な自動走行装置を提供するものである。
【課題を解決するための手段】
【０００６】
この発明は、被牽引物を牽引して走行ルートからのズレを左右の旋回動作により補正しながら前記ラインに沿って走行する自動走行装置であって、各時点での旋回量を記録する記録部と、前記走行ルートからのズレ量を検出するズレ量検出部と、前記自動走行装置の走行動作を制御する走行制御部とを備え、前記走行制御部は、現時点から所定の時間遡った第１時点における第１の旋回量に基づいて、前記第１旋回量未満の大きさでかつ前記第１時点での旋回とは逆方向の旋回に対応する補償旋回量を算出し、少なくとも前記補償旋回量に基づいて出力旋回量を算出し、該出力旋回量に応じた旋回動作を行うように前記自動走行装置の走行動作を制御する自動走行装置を提供する。
【発明の効果】
【０００７】
この発明による自動走行装置において、走行制御部は、現時点から所定の時間遡った第１時点における第１の旋回量に基づいて、前記第１旋回量未満の大きさでかつ前記第１時点での旋回とは逆方向の旋回に対応する補償旋回量を算出し、少なくとも前記補償旋回量に基づいて出力旋回量を算出し、該出力旋回量に応じた旋回動作を行うように前記自動走行装置の走行動作を制御するので、被牽引物を牽引しても、簡易な制御で蛇行を抑制でき走行ルートに沿い走行することができる。
【図面の簡単な説明】
【０００８】
【図１Ａ】この実施形態による無人搬送車が台車を牽引する様子を示す側面図である。
【図１Ｂ】この実施形態による無人搬送車が台車を牽引する様子を示す正面図である。
【図１Ｃ】この実施形態による無人搬送車が台車を牽引する様子を示す平面図である。
【図１Ｄ】この実施形態による無人搬送車の牽引アームの部分を拡大した説明図である。
【図１Ｅ】この実施形態による無人搬送車を示す側面図である。
【図２】図１Ａ〜図１Ｃに示す台車の外観を示す側面図である。
【図３】この実施形態による無人搬送車を底面側から見た各部の配置を示す説明図である。
【図４】図１Ａ〜図１Ｅに示す無人搬送車の構成を示すブロック図である。
【図５Ａ】図３に示すラインセンサーの拡大図である。
【図５Ｂ】図５Ａに示すラインセンサーの各検出素子が出力する信号を示す説明図である。
【図６Ａ】この実施形態に係る走行制御部が蛇行を収束させながら無人搬送車を走行させる様子を示す説明図である。
【図６Ｂ】図６Ａに対する比較例として、蛇行制御値算出部の構成を欠く場合に走行に伴い蛇行が増幅する様子を示す説明図である。
【図７】この実施形態において走行制御部が無人搬送車をラインに沿って走行させる処理を示すフローチャートである。（実施の形態１）
【図８Ａ】この実施形態において、基本旋回量に基づく走行制御を示すフローチャートである。（実施の形態２）
【図８Ｂ】この実施形態において、補償旋回量に基づく走行制御を示すフローチャートである。
【図９】この実施形態において、無人搬送車の車輪の構成を示す説明図である。（実施の形態３）
【図１０】この実施形態において、図７に対応する処理を示すフローチャートである。（実施の形態３）
【図１１】図４に対応して、この実施形態による蛇行判定部を備える構成のブロック図である。（実施の形態４）
【図１２】この実施形態において、図７に対応する処理を示すフローチャートである。（実施の形態４）
【発明を実施するための形態】
【０００９】
（実施の形態１）
この実施形態では、自動走行装置の一態様としての無人搬送車が、被牽引物の一態様として台車（ロールボックス台車）を牽引する場合を例に、この発明の特徴を説明する。なお、以下の説明は、すべての点で例示であって、この発明を限定するものと解されるべきではない。
まず初めに、ロールボックス台車について以下に説明する。ロールボックス台車（ロールボックスパレットあるいは「かご台車」とも呼ばれ、この明細書で単に台車ともいう）とは主に仕分け場の一時保管や、トラックへの積み込み場までの搬送等に広く用いられるカゴ状の荷物積載部を備えた台車であり、荷物を積載した状態で人力での移動が可能となっている。この種の台車は、狭い空間での定置旋回（スピンターン）などの取り回し性を考慮して全ての車輪が自在キャスターのものが多い。また、この種の台車は本来人力での運搬を想定しており、自律走行は想定していないことが一般的であるが、多量の荷物を扱う工場や倉庫等においては、貨物が積載された台車を、無人搬送車を用いて効率的に搬送することが要望される場合がある。
その場合、次のような手法をとり得る。例えば、無人搬送車が連結器を介して台車と連結し、牽引する手法である。また、別の方法としては、無人搬送車が昇降装置を備え、台車を下方から完全に持ち上げて搬送する手法もある。
【００１０】
台車を下方から完全に持ち上げて搬送する手法は、台車を牽引することがないので、スピンターンは比較的容易に実現可能であるものの、荷物を収容した台車を持ち上げ得る強力な昇降機を無人搬送車が有する必要があり、無人搬送車が大型化しコストが高くなる。
一方で、無人搬送車が台車を牽引する手法はスピンターン性と直進走行性の両立が困難であるという問題がある。
その理由は、第１に、スピンターンを実現するために台車の全ての車輪が自在キャスターであるため、前輪または後輪の可動範囲を制限する形態と比較して、そもそも台車自体の直進安定性が非常に悪いことにある。
【００１１】
第２に、スピンターン性を良くするためには無人搬送車の旋回中心を台車のスピンターンの旋回中心に可能な限り近づけることが理想的であり、また狭い空間でスピンターンした際に無人搬送車が障害物に衝突しないようするためにも、無人搬送車の大部分（半分以上）が台車の下に潜り込むような形態をとることが望ましい。また、スピンターンのための回転力を無人搬送車から台車に対して効率よく伝えるには、無人搬送車は、台車の１点の部位とだけでなく、台車のスピンターンの旋回中心から離間した２点以上の部位と連結することが望ましい。しかし、上述のようなスピンターン性向上のための特徴は、無人搬送車側の旋回力を台車側のスピンターンするための旋回力として効率良く伝達することに寄与するが、逆をいうと台車側が慣性として持つ旋回力が無人搬送車側に伝達されやすくもなるので、無人搬送車が台車の慣性の影響を受けやすくなり、これが直進安定性悪化の要因となる。
【００１２】
また、貨物を積載した台車は無人搬送車よりも大きな質量を有することがある（例えば、無人搬送車の２〜４倍程度の質量）。このような場合、台車を下方から完全に持ち上げて搬送する手法では、台車を牽引することが無いのであまり問題とならないが、無人搬送車が台車を牽引する手法では、台車の質量の分だけ台車が大きな慣性力をもつこととなり、上述のスピンターン性に起因した直進安定性の低さとあいまって、急激な進行方向の変化の際に台車の慣性力の影響により無人搬送車が本来進むべき進行方向に進むことが困難になる場合がある。そのような場合、一旦、蛇行が始まると次第に揺れ幅が増大して蛇行が収束せず、台車に比べて小型軽量な無人搬送車では台車の走行を制御できず、極端な場合は走行ルートから完全に逸脱してしまうことがある。
このように、台車を牽引して走行ルートに沿って走行させることは容易でない。
【００１３】
次に、以下に図面を用いてこの発明を詳述する。
図１Ａ〜図１Ｅは、この実施形態による無人搬送車が台車を牽引する様子を示す説明図である。なお、牽引アームとアーム拘束部材との接続の様子がわかるように図１Ａおよび図１Ｂではそれぞれ手前側のアーム拘束部材１７Ｇおよび１７Ｗを鎖線で示して透視状態で示している。同様に、図１Ｃでは平面視手前側の台車を鎖線で示して透視状態で示している。なお、図１Ｃで駆動輪および補助輪は無人搬送車１１の平面視奥側に隠れているが、その位置がわかるように鎖線で示している。図２は、図１Ａ〜図１Ｃで簡略化して示されている台車１３の外観を示す側面図である。
【００１４】
図１Ａ〜図１Ｅに示すように、無人搬送車１１は、床面と台車１３の底面との間に潜り込める低背の直方体形状をしている。無人搬送車１１の上面には、台車１３の底面を牽引するための左右一対の牽引アーム１５が昇降可能に設けられている。昇降機構１６は、牽引アーム１５を昇降させる。
台車１３と接続する際、台車１３はライン上の所定の位置に所定の方向で静止しているものとする。無人搬送車１１はラインに沿って走行し、静止している台車１３の下へ図１Ｃに矢印Ｄｇで示す方向から潜り込む。
牽引アーム１５の上部には、台車１３の底面の近接を検知する近接センサー２７（図１Ｅ参照）が配置されている。無人搬送車１１が台車１３の下に潜り込んで近接センサー２７が台車１３の底面の後端を検出すると、無人搬送車１１はその位置からさらに所定の距離だけ前方にある接続位置までゆっくりと進んで停止する。図１Ｃに示すように、台車１３の底面の下側には、縦横にアーム拘束部材１７Ｇおよび１７Ｗが配置されている。
【００１５】
無人搬送車１１は、接続位置で停止して牽引アーム１５を上昇させ、図１Ｃの矢印Ｄｗ方向（即ち、左右方向）に延びるアーム拘束部材１７Ｗを前後から挟む。即ち、牽引アーム１５は、前方の第１部分１５Ａと後方の第２部分１５Ｂとがアーム拘束部材１７Ｗの前後に位置する。これによって、無人搬送車１１と台車１３とが前後方向に所定間隔の余裕をもって接続される。また、牽引アーム１５は、図１Ｃで矢印Ｄｇ方向に延びる４つのアーム拘束部材１７Ｇによって左右方向に所定間隔の余裕をもって接続される。図１Ａおよび図１Ｂは、牽引アーム１５が上昇してアーム拘束部材１７Ｗを前後に挟んだ状態、即ち、無人搬送車１１と台車１３とが接続された状態を示している。
【００１６】
台車１３は、倉庫で一般的に用いられているタイプのもので、自在輪であるキャスター１３Ａが４輪付いている。キャスター１３Ａは、一般的に車輪径がφ１５０ｍｍのものが多用されている。その場合、床面からのフレーム高さは２１０ｍｍである。
台車１３は、底板の上についているかご部が折りたたみ可能な構造になっている。無人搬送車１１はこの台車１３を牽引する際に、台車１３の底板１３Ｂの下に潜り込む構造になっている。このため、無人搬送車１１は、前述したフレーム高さ２１０ｍｍ未満の低背設計で構成されており、荷物を満載した台車１３に比べて小型軽量である。
【００１７】
図１Ｂおよび図１Ｃに示すように、この実施形態において牽引アーム１５は左右の２か所で台車１３のアーム拘束部材１７Ｗと接続する。ただし、牽引アーム１５を左右方向に長く延びる一体の部材で構成する態様も考えられる。いずれの態様であっても、左右方向に広がりをもって接続することが台車１３をスピンターンさせるために望ましい。
【００１８】
この理由を以下に説明する。仮に無人搬送車１１が１か所で台車１３と接続すると、直進牽引状態において、台車１３に働く回転モーメントがゼロになるように、接続位置は必然的に台車１３の底面の中心（すなわちスピンターンの旋回中心）から進行方向に伸ばした直線上に位置することとなる。
このような場合、無人搬送車１１が旋回を行ったとしても、台車１３に伝わる力は進行方向から少しだけずれた方向に力が加わるだけであり、無人搬送車１１の旋回力を効率的に台車に伝えることができないし、進行方向への力成分を完全にゼロにすることが技術的に難しく、旋回時に進行方向にある程度進んでしまう。このような理由により、無人搬送車１１が１か所で台車１３と接続する方式では定置旋回（スピンターン）が困難になってしまうのである。
【００１９】
一方で、無人搬送車１１が２か所で台車１３と接続すると、接続位置は必然的に台車１３の底面の中心（すなわちスピンターンの旋回中心）から進行方向に伸ばした直線に対して対称な２か所が接続位置となる。直進牽引状態においてはこの２か所の接続位置に均等に力が加わることにより台車１３に働く回転モーメントがゼロとなって安定して直進が可能となり、かつ旋回時には台車１３の底面の中心（すなわちスピンターンの旋回中心）から進行方向に伸ばした直線上からずれた位置に力が加わることとなるので、無人搬送車１１の旋回力を効率的に台車に伝えることができる。
さらには、例えば右旋回時には、左側の接続位置が進行方向前方、右側の接続位置が進行方向後方、というようにそれぞれの接続位置において台車１３に加わる力の向きを逆方向にすることができるので、進行方向への力成分をそれぞれの接続位置に加わる力で互いに打ち消しあってゼロにすることが比較的容易となる。このような理由により、無人搬送車１１が２か所で台車１３と接続する方式では定置旋回（スピンターン）が容易となる。
【００２０】
また、牽引アーム１５と台車１３側のアーム拘束部材１７Ｗとが接合した状態で、前後方向にある程度の隙間が確保されることが望ましい。
図１Ｄに、前後方向の隙間をそれぞれＤ１およびＤ２で示している。牽引アーム１５が、アーム拘束部材１７Ｗと隙間を空けつつ、アーム拘束部材１７Ｗを前後に挟み込むようにして接続することにより、アーム拘束部材１７Ｗは、牽引アーム１５に対して完全にリジッドに固定されず、隙間の分だけ自由に可動な状態で牽引アーム１５に対して接続される。すなわち、無人搬送車１１が台車１３に対して自由度（遊び）を持って接続される。仮に前後方向の隙間がない場合は、無人搬送車１１と台車１３との間に自由度（遊び）が全く無くなってしまい、無人搬送車１１の走行性能が低下する。
【００２１】
この理由を以下に説明する。一例では、無人搬送車１１の質量６０ｋｇに対して、貨物を満載した台車１３の質量が２５０ｋｇである。仮に無人搬送車１１と台車１３との間に自由度（遊び）が全く無い場合、無人搬送車１１の進行方向は台車１３の進行方向と全く同じとなるように拘束を受けるものであり、走行中に自動走行装置の旋回時に、大きな重量を持つ台車１３の進行方向への慣性力による全負荷が何ら緩和される時間的な猶予なく瞬時に無人搬送車１１側に伝わることとなる。この場合、無人搬送車１１がこの負荷に相当する駆動力を持たない場合、旋回ができずに走行ルートから外れてしまう。台車１３に比べて小型の無人搬送車１１に強力な駆動部を搭載することは容易でなく、仮に搭載できたとしても大きな駆動力を発生するために大きなモータ出力やバッテリー容量を必要とし、エネルギーの使用効率も低下する。また、たとえ駆動力が十分に強力であっても、無人搬送車１１の重量よりも台車１３の重量の方が圧倒的に大きいので、車輪の空転を起こして駆動力を発揮できない場合もある。
【００２２】
一方で、無人搬送車１１と台車１３との間に自由度（遊び）がある場合には、無人搬送車１１の進行方向は台車１３の進行方向と全く同じである必要はなく、可動範囲で自由度を持つこととなる。この場合、走行中に自動走行装置の旋回時に台車１３の慣性力に相当する全負荷が瞬時に無人搬送車１１側に伝わることはなく、無人搬送車１１が旋回を開始して旋回力を台車１３に対して伝え始めてから可動範囲を使いきって拘束を受けるまでに猶予時間を持つこととなる。この猶予時間内に無人搬送車１１が台車１３に伝えた積算旋回力が十分な大きさであれば制動が可能となるので、無人搬送車１１と台車１３との間に自由度（遊び）が無い場合に比べて、無人搬送車１１が遥かに小さな駆動力で走行を制御することができ、走行性能が向上するのである。ただし、無人搬送車１１と台車１３との間に自由度（遊び）を持たせるということは、無人搬送車１１と台車１３の進行方向が異なることを許容するということであり、この事を考慮して好適に制御を行わないと台車１３が左右に振れて蛇行の原因となる場合があるなど、制御面で難しくなる点もあることに留意する必要がある。
【００２３】
≪無人搬送車の構成≫
この実施形態による無人搬送車１１の構成についてさらに説明する。
この実施形態に係る無人搬送車１１は、床面に敷設された走行ガイド用のライン５１に沿って走行する。
ライン５１は、無人搬送車１１が通る走行ルート上に配されており、本実施形態では走行ルート上に貼付された磁気テープから構成されている。
【００２４】
図３は、無人搬送車１１のうちで走行に係る無人搬送車１１を底面側からみた際の各部の配置を示す説明図である。図４は、無人搬送車１１の構成を示すブロック図である。
図３および図４に示される様に、無人搬送車１１は、前進、旋回等の動作を担う左側のモータ４５Ｌおよび右側のモータ４５Ｒを備える。さらに、モータ４５Ｌにより駆動される左側の駆動輪１９Ｌおよびモータ４５Ｒにより駆動される右側の駆動輪１９Ｒならびに従動の補助輪２１を備える。
また、無人搬送車１１は、走行面に配されたライン５１を検出するラインセンサー２５および近接センサー２７を含むセンサー部２３を備える。
【００２５】
さらにまた、無人搬送車１１は制御基板３０（図３参照）を備える。制御基板３０には、走行および動作を制御する回路である走行制御部３１、制御用のデータ等を記憶する記憶部３７、モータ４５Ｌおよび４５Ｒを作動させる走行駆動部４３および外部の機器と通信する通信部４９が実装されている。
さらに、無人搬送車１１は、制御基板３０、センサー部２３、走行駆動部４３、モータ４５Ｌおよび４５Ｒなど、各部へ電力を供給するバッテリー４７を備える。
モータ４５Ｌおよび４５Ｒは、走行制御部３１が正逆の回転方向および回転速度を独立に制御できる。走行制御部３１は、駆動輪１９Ｌおよび１９Ｒに対応する２つのモータ４５Ｌおよび４５Ｒの回転方向および回転速度を互いに関連付けて制御することで、無人搬送車１１を前進、後退および旋回させる。
【００２６】
無人搬送車１１は、駆動輪１９Ｌおよび１９Ｒと共に無人搬送車１１を支える補助輪２１によって床面上を走行する。補助輪２１は自在キャスターであってもよいが、定置旋回時に床面上を滑るのであれば車輪の方向が変わらなくてもよい。
走行制御部３１は、ラインセンサー２５によるライン５１（図３参照）の検出結果に基づいて、無人搬送車１１をライン５１に沿って走行させるように制御する。さらに、図示しない外部の管理装置と通信部４９を介して通信し、目標の走行ルートを決定したり、所定の位置で静止している台車１３と接続したり、台車１３との接続を解除したりする。
【００２７】
図４に示すように、走行制御部３１は、走行制御値算出部３３および蛇行制御値算出部３５の機能を含む。記憶部３７は、制御値バッファ３９およびパラメータ格納部４１を含む。
この実施形態において、走行制御部３１はＣＰＵやマイクロコンピュータなどのコンピュータを中心とし、ＲＡＭ、入出力インターフェイス回路やタイマー回路等の周辺回路を含んで構成される。また、記憶部３７は、不揮発性の記憶装置であって、この実施形態ではフラッシュメモリあるいはハードディスク装置が適用される。
走行制御値算出部３３は、ＰＩＤ制御など公知のフィードバック制御手法を用いて矢印Ｄｗ方向の目標位置であるライン５１に対する基準位置と無人搬送車１１との位置ズレを補正するために必要な左右の駆動輪１９Ｌおよび１９Ｒの回転方向および回転速度を求める処理を行う。なお、フィードバック制御の手法は上述のＰＩＤ制御に限らず、ＰＩ制御、Ｐ制御、オンオフ制御、ＰＤ制御などでもよい。
【００２８】
無人搬送車１１が台車１３を牽引せず単体で走行する場合、ライン５１に沿って走行させるには、走行制御値算出部３３の処理だけで足りる。蛇行制御値算出部３５の機能はなくてもよい。
一般に、無人搬送車１１の走行制御にはＰＩＤ制御が広く用いられている。ＰＩＤ制御は、目標値に対する出力のズレ量（偏差）に基づいて、前記偏差の比例（Ｐｒｏｐｏｔｉｏｎ）、積分（Ｉｎｔｅｇｒａｌ）および微分（Ｄｉｆｆｅｒｅｎｔｉａｌ）の３つの要素を好適な割合で組み合わせてフィードバックする制御手法である。無人搬送車が確実かつ滑らかにラインに沿って走行するように偏差の比例要素のフィードバック量、積分要素のフィードバック量および微分要素のフィードバック量の比率を適宜選択する。そうすることで、正確かく迅速に無人搬送車を目標のラインに沿って走行させることができる。好適なフィードバック量の比率を選択する手法は、線形制御理論として知られている。
【００２９】
ところが、無人搬送車１１が台車１３を牽引しながら走行する場合、上述したように牽引アーム１５とアーム拘束部材１７Ｗとの間に隙間が必要になる。隙間の存在は即ち、フィードバック量に対して制御系が線形に応答しないことを意味する。そのため、貨物を積載した大きな質量の台車１３を牽引する制御系は、線形制御から逸脱した非線形制御系になる。非線形制御系に適用可能な公知の制御手法もいくつかあるが、複雑な処理を伴うために走行制御部の処理負荷が大きくなる。
そこで、この実施形態においては走行制御値算出部３３の処理に蛇行制御値算出部３５の処理を付加することによって、単純な処理で台車１３の蛇行を抑制する。
【００３０】
詳細については後述するが、蛇行制御値算出部３５は、直近の状態と所定時間遡った過去の状態と無人搬送車１１の走行特性に関連するパラメータとに基づいて蛇行を抑制するための制御値を算出する。
制御値バッファ３９は、走行制御値算出部３３が得た制御に係る数値（例えば、旋回量）を保存しておくためのメモリバッファである。公知のリングバッファなどの手法で所定数（所定時間）の数値を連続して保存できるように構成されている。制御値バッファ３９に格納されたデータを参照して、過去の状態を用いて蛇行を抑制することができる。
パラメータ格納部４１は、無人搬送車１１の走行制御に係るパラメータを格納する。パラメータは予め格納された固定値でもよいが、例えば、牽引する台車１３の特性等に応じて走行制御部３１により適宜更新されてもよい。例えば、牽引アーム１５とアーム拘束部材１７Ｗとの前後方向の隙間の大きさが予め格納される。すべての台車１３が同寸法であれば、このパラメータは固定値で足りる。牽引する台車１３の荷重をパラメータとして格納してもよい。その場合、荷重は台車１３に積載された貨物の量に応じて変化する。従って、新たな台車１３と接続した際、走行制御部３１が牽引時の起動に要するモータ４５Ｌおよび４５Ｒの電力を測定してパラメータを更新してもよい。
【００３１】
走行駆動部４３は、モータ４５Ｌおよび４５Ｒを作動させるための回路であって、一般にモータドライバまたはモータコントローラと呼ばれるものである。走行制御部３１から電圧やＰＷＭ信号のデューティー比が変化する信号を受けて、その電圧やデューティー比に応じてモータ４５Ｌおよび４５Ｒをそれぞれの回転方向および回転速度で回転させあるいは停止させる。
通信部４９は、通信インターフェイス回路である。通信方式は問わないが、一例として無線ＬＡＮで多用されるＩＥＥＥ８０２．１１ｎ規格やそれに類する通信規格に準拠したものである。
バッテリー４７は、好ましくは充電式で、例えばエネルギー容量に対して小型軽量なリチウムイオン電池が適用される。
【００３２】
≪ラインセンサー≫
図５Ａは、ラインセンサー２５の拡大図である。ラインセンサー２５は、無人搬送車１１の底面に設けられて床面と対向する。ラインセンサー２５は、図５Ａに矢印Ｄｗで示す方向であって、ライン５１の幅方向に一列に配された複数の検出素子２５Ａから構成されている。矢印Ｄｗは、矢印Ｄｇで示す無人搬送車１１の前進方向に対して垂直な方向である。検出素子２５Ａの各々は、対向する床面にライン５１が存在する場合に検出信号を出力する素子である。本実施形態において、検出素子２５Ａの各々は、ホール素子であり、ライン５１（磁気テープ）と対向したときにそのライン５１の磁気を検出して検出信号を出力する。
【００３３】
より詳細には検出素子２５Ａの数や間隔は、ラインセンサー２５において、その幅がライン５１のＤｗ方向の幅より大きく、かつ、ライン５１のＤｗ方向においてライン５１の左右両端の検出が可能となる様に設定されている。
図５Ｂは、無人搬送車１１がライン５１の幅方向に対して基準の位置にある場合に各検出素子２５Ａが走行制御部３１に出力する信号を示す説明図である。図５Ｂに示す数字の「０」（ゼロ）は、対応する検出素子２５Ａがライン５１を検出しない場合の出力信号を表す。それに対して、数字の「１」は、対応する検出素子２５Ａがライン５１を検出した場合の出力信号を表す。即ち、各検出素子２５Ａの出力信号は、ライン５１の検出の有無に対応する２値の信号である。
【００３４】
図５Ｂに示すように、ライン５１の左端部と右端部に対応する箇所で、隣り合う検出素子２５Ａの信号が「０」から「１」に変化する。即ち、ラインセンサー２５は、ライン５１の幅方向において無人搬送車１１が基準位置にある場合、所定の検出素子２５Ａが、ライン５１の左右両端部を検出する。
無人搬送車１１がライン５１の幅方向において基準位置からずれても、ラインセンサー２５がライン５１の左右何れかの端を検出している限り、隣り合う各検出素子２５Ａの出力信号が「０」から「１」に変化している箇所が存在する。変化の箇所および変化の方向に基づいて、走行制御部３１は、基準位置からのズレの方向とズレの量を得ることができる。変化の方向とは、「０」から「１」であるか「１」から「０」であるかである。
走行制御部３１は、時間の経過に伴って変化の箇所が移動するのを記憶しておくことでズレ量の変化を得ることができる。ズレ量の変化から、無人搬送車１１が基準位置に近づいているか、基準位置から遠ざかっているかを判断できる。
【００３５】
≪走行制御部の処理≫
この実施形態において台車１３が接続された無人搬送車１１を走行制御部３１が制御してライン５１に沿って走行させる制御を説明する。
図６Ａは、この実施形態に係る走行制御部３１が蛇行を収束させながら直線のライン５１に沿い無人搬送車１１を走行させる様子を示す説明図である。図６Ｂは、図６Ａに対する比較例であって、走行制御部３１が蛇行制御値算出部３５の構成を欠く場合に走行に伴い蛇行が増幅する様子を示す説明図である。
【００３６】
図６Ａは、時刻Ｔ１〜Ｔ４の各時刻においてライン５１に対する無人搬送車１１および台車１３の位置を示している。また、無人搬送車１１の左右の駆動輪１９Ｌおよび１９Ｒの各車軸の延長上であって左右の駆動輪１９Ｌおよび１９Ｒの中間点が通る位置を２点鎖線で示している。図６Ｂは、図６Ａと同様に、時刻Ｔ１’〜Ｔ４ ’の各時刻においてライン５１に対する無人搬送車１１および台車１３の位置を示している。
理解を容易にするために、比較例である図６Ｂに示す制御について先に説明する。図６Ｂに示す制御は、走行制御部３１が蛇行制御値算出部３５の構成を欠き走行制御値算出部３３のみによる走行制御、即ち、線形制御系を前提とした制御に対応する図である。図６Ｂに示す時系列の時刻Ｔ１’〜Ｔ４’の挙動を下記に述べる。
【００３７】
時刻Ｔ１’：ライン５１から離れたので、走行制御値算出部３３は、離れた分に見合った旋回をして無人搬送車１１をライン５１に近づけるようにその時点で算出された基本旋回量Ｒｂ’を算出する。式で表すと、
Ｒｏ’（Ｔ１’）＝Ｒｂ’（Ｔ１’）        （１’）
である。
（１’）式で、Ｒｏ’（Ｔ１’）は時刻Ｔ１’における出力旋回量を表し、Ｒｂ’（Ｔ１’）は時刻Ｔ１’における基本旋回量Ｒｂ’を表す。得られた出力旋回量Ｒｏ’で無人搬送車１１を旋回させる。
時刻Ｔ１’の旋回によって、牽引アーム１５の左側前部がアーム拘束部材１７Ｗの前方と接触しかつ牽引アーム１５の右側後部がアーム拘束部材１７Ｗの後方と接触し、台車１３は平面視で反時計回りに回転させる力を無人搬送車１１から受ける。無人搬送車１１は、ライン５１に近づく方へ旋回し、ズレ量は極大値の距離ｄ１’をとる。
【００３８】
時刻Ｔ２’：時刻Ｔ１’でライン５１に近づく方向へ旋回した無人搬送車１１はライン５１に漸近すべく略直進する。一方、時刻Ｔ１’で加えられた回転の慣性により台車１３は反時計回りの旋回を続けながら進もうとする。そのため、牽引アーム１５の左側前部と接触していたアーム拘束部材１７Ｗが後方へずれていき、時刻Ｔ２’で牽引アームの後部に接触する。その接触により無人搬送車１１は、ライン５１を超えてオーバーシュートする方向に力を受ける。即ち、目標のライン５１を超えてオーバーシュートする方向へ押される。
【００３９】
時刻Ｔ３’：台車１３からオーバーシュートする方向へ押されて進んだ無人搬送車１１の走行制御値算出部３３は、フィードバック制御によって、無人搬送車１１をライン５１寄りの進路に修正する。そのために、その時点で算出された旋回方向（時刻Ｔ３’では時計回り）と旋回量である基本旋回量Ｒｂで旋回させる。すると、牽引アーム１５の右側前部がアーム拘束部材１７Ｗの前方と接触しかつ牽引アーム１５の左側後部がアーム拘束部材１７Ｗの後方と接触し、台車１３は時計回りに回転させる力を無人搬送車１１から受ける。無人搬送車１１は、ライン５１に近づく方へ旋回し、ズレ量は極大値の距離ｄ２’をとる。
【００４０】
時刻Ｔ４’：時刻Ｔ３’でライン５１に近づく方向へ旋回した無人搬送車１１はライン５１に漸近すべく略直進するが、時刻Ｔ３’で加えられた回転の慣性により台車１３は時計回りの旋回を続けながら進もうとする。そのため、牽引アーム１５の右側前部と接触していたアーム拘束部材１７Ｗが後方へずれていき、時刻Ｔ４’で牽引アームの後部に接触する。その接触の影響で無人搬送車１１は、ライン５１を超えてオーバーシュートする方向に力を受ける。即ち、目標のライン５１を超えてオーバーシュートする方向へ押される。
以上のようにして、オーバーシュートする方向への力が時間の経過とともに次第に増大していくと、蛇行が収束せず無人搬送車１１はライン５１に沿った走行ができない状態になる。
そこで、この実施形態による走行制御部３１は、蛇行制御値算出部３５を加えて走行制御を行う。以下、図６Ａを用いて蛇行制御値算出部３５を備えた走行制御を説明する。
【００４１】
時刻Ｔ１：ライン５１から離れたので、走行制御値算出部３３は、離れた分に見合った旋回をして無人搬送車１１をライン５１に近づけるようにその時点で算出された基本旋回量Ｒｂを算出する。そして、時刻Ｔ１で算出した基本旋回量Ｒｂを制御値バッファ３９に格納する。蛇行制御値算出部３５は、算出された基本旋回量Ｒｂと時刻Ｔ１から所定の時間遡った時点における旋回量に基づく補償旋回量Ｒｃとに基づいて無人搬送車１１を旋回させるべき出力旋回量Ｒｏを算出する。説明を単純にするため、時刻Ｔ１においては補償旋回量Ｒｃがゼロとする。
【００４２】
Ｒｏ（Ｔ１）＝Ｒｂ（Ｔ１）         （１）
（１）式で、Ｒｏ（Ｔ１）は時刻Ｔ１における出力旋回量を表し、Ｒｂ（Ｔ１）は時刻Ｔ１における基本旋回量Ｒｂを表す。
時刻Ｔ１で算出された出力旋回量Ｒｏを、制御値バッファ３９に格納する。そして、得られた出力旋回量Ｒｏで無人搬送車１１を旋回させる。
【００４３】
時刻Ｔ１の旋回によって、牽引アーム１５の左側前部がアーム拘束部材１７Ｗの前方と接触しかつ牽引アーム１５の右側後部がアーム拘束部材１７Ｗの後方と接触して、台車１３に平面視で反時計回りの回転を加える。無人搬送車１１は、ライン５１に近づく方へ旋回し、ズレ量は極大値の距離ｄ１をとる。
【００４４】
時刻Ｔ２：時刻Ｔ１でライン５１に近づく方向へ旋回した無人搬送車１１はライン５１に漸近すべく直進する。一方、時刻Ｔ１で加えられた回転の慣性により台車１３は反時計回りの旋回を続けて進もうとする。そのため、牽引アーム１５の左側前部と接触していたアーム拘束部材１７Ｗが後方へずれていき、時刻Ｔ２で牽引アームの後部に接触する。
一方、蛇行制御値算出部３５は、所定時間遡った時刻Ｔ１における旋回量を制御値バッファ３９から読み出して補償旋回量Ｒｃを得る。ここで、制御値バッファ３９から読み出す旋回量は、基本旋回量Ｒｂであってもよく、出力旋回量Ｒｏであってもよい。
【００４５】
この理由は基本旋回量Ｒｂが分かれば関係式を用いて出力旋回量Ｒｏを算出することができるからであり、特に今回の場合は（１）式よりＲｏ（Ｔ１）＝Ｒｂ（Ｔ１）であるため、どちらの値も等しくなる。時刻Ｔ２で牽引アームの後部に接触するオーバーシュートの力の大きさは時刻Ｔ１の出力旋回量Ｒｏ（Ｔ１）の大きさが大きいほど大きくなる正の相関を持っており、出力旋回量Ｒｏ（Ｔ１）の値との相関関係からオーバーシュートの大きさを算出することができる。ここでは出力旋回量Ｒｏ（Ｔ１）の値とオーバーシュートの相関関係を比例と仮定してその倍率をαとする。オーバーシュートを打ち消すように、補償旋回量Ｒｃは、制御値バッファ３９から読み出された時刻Ｔ１の旋回量と逆方向であって、その大きさは以下の関係を満たすように設定される。
【００４６】
Ｒｃ（Ｔ２）＝−αＲｏ（Ｔ１）     （２）
正負の符号は旋回方向の正逆に対応する。
ここで時刻Ｔ２における基本旋回量をＲｂ（Ｔ２）とし、時刻Ｔ２での出力旋回量をＲｏ（Ｔ２）とすると、Ｒｏ（Ｔ２）は以下の式で表わされる。
Ｒｏ（Ｔ２）＝Ｒｂ（Ｔ２）＋Ｒｃ（Ｔ２）  （３）
【００４７】
蛇行制御値算出部３５は、算出された補償旋回量Ｒｃに応じた旋回方向、旋回量で無人搬送車１１を旋回させる。
ここで（２）式より
Ｒｏ（Ｔ２）＝Ｒｂ（Ｔ２）−αＲｏ（Ｔ１）（４）
時刻Ｔ２において基本旋回量をＲｂ（Ｔ２）だけでなく、オーバーシュートを打ち消すため、出力旋回量時刻Ｔ１での旋回量Ｒｏ（Ｔ１）の大きさに比例した補償旋回量を考慮して旋回を制御しているため、オーバーシュートの影響を小さく抑えることができる。
【００４８】
時刻Ｔ３：時刻Ｔ２における補償旋回量Ｒｃに応じた旋回によって台車１３の慣性による旋回が抑制され、時刻Ｔ３時点での無人搬送車１１のズレ量はＴ２時点でのずれ量よりも小さくなる。時刻Ｔ３においても時刻Ｔ２と同様にオーバーシュートの補正を行うため、Ｔ３以降ずれ量は次第に小さくなっていく。
時刻Ｔ４：無人搬送車１１がライン５１に接近しズレ量が十分に小さくなると、無人搬送車１１の蛇行が十分に減衰した状態となり、以降はライン５１に沿って正常に走行する
【００４９】
図６Ａに示すように無人搬送車１１をライン５１に沿って走行させる場合、走行制御部３１は直進成分と出力旋回量に基づく旋回成分とを加えてモータ４５Ｌとモータ４５Ｒのそれぞれの回転数を逐次算出し、更新する。直進成分は、前進のためにモータ４５Ｌ、４５Ｒを同一の所定速度で回転させるための回転速度である。出力旋回量に基づく旋回成分は、無人搬送車１１の進路を変更するための回転速度であって、モータ４５Ｌとモータ４５Ｒの回転速度の差分として逐次算出される。
【００５０】
本実施形態の特徴は、時刻Ｔ２でアーム拘束部材１７Ｗが牽引アームの後部に接触することによりオーバーシュートする方向に力が加わることを考慮して、このタイミングで逆方向の旋回の制御を行うことによりオーバーシュートの発生を防ぐことにある。発明者の観察によると、多くの場合オーバーシュートの力の大きさは時刻Ｔ１での旋回力に略比例するが、オーバーシュートのタイミングＴ２は旋回力の大きさに依存せず略一定である。このため、このような単純な制御方法が非常に有効である。
【００５１】
≪フローチャート≫
以下、この実施形態に係る走行制御部３１がライン５１に沿って無人搬送車１１を走行させる制御を、フローチャートを用いて説明する。
図７は、この実施形態において走行制御部３１が無人搬送車１１をライン５１に沿って走行させる処理を示すフローチャートである。
図７のフローチャートは、全体の処理が無限にループするように表している。このループは詳細には、図７に示す処理がタイマー割込み等の手段により好ましくは略一定の時間間隔で、繰り返し実行されることを示す。一例として、図７の処理を繰り返し実行する時間間隔は１０ミリ秒である。走行制御部３１は、図７に示す処理を繰り返す間に並行して他の処理をマルチタスク処理する。他の処理の例は、起動や停止の指示に応答して前記直進成分を変更する処理や、ライン５１の分岐点で何れか一つのラインに沿って走行すべき場合に目標を選択する処理等である。
【００５２】
図７で、走行制御部３１は、無人搬送車１１に対する指示を参照する（ステップＳ１１）。指示とは、例えば、外部の管理装置から通信部４９を介して受信した指示であって、ライン５１に沿った走行ルートを示す指示や、起動および停止の指示である。
その指示に基づいて、現時点でライン５１に沿って走行すべきか否かを判断する（ステップＳ１３）。ラインに沿って走行すべき場合でなければ（ステップＳ１３のＮｏ）、その時点の処理をスキップして、次の回（例えば１０ミリ秒後）の処理まで他のタスクを処理しながら待機する。
【００５３】
一方、ライン５１に沿って走行すべき場合であれば（ステップＳ１３のＹｅｓ）、走行制御値算出部３３として走行制御部３１は、ラインセンサー２５の各検出素子２５Ａの信号を読み取る。そして、無人搬送車１１の現時点の位置について目標のライン５１の位置からのズレ量を取得する（ステップＳ１５）。ズレ量は、ライン５１の基準位置からのズレの大きさとズレの方向を含む。
【００５４】
取得したズレ量に基づいて、無人搬送車１１を目標のライン５１に近づけるための、前記ズレ量に見合った旋回量を基本旋回量Ｒｂとして算出する（ステップＳ１７）。基本旋回量Ｒｂの算出は、例えば公知のＰＩＤ制御を用いて算出すればよい。基本旋回量Ｒｂは、上述の旋回成分と同種の量であって、最終的にモータ４５Ｌとモータ４５Ｒの回転速度の差分として算出される。回転速度の差分は、単なる数値だけでなく、モータ４５Ｌとモータ４５Ｒの何れをより速くし、何れをより遅くするかを含む。言い換えれば、基本旋回量Ｒｂは、旋回の大きさだけでなく旋回の方向を含む。
【００５５】
そして、走行制御値算出部３３として走行制御部は３１、現時点で算出した基本旋回量Ｒｂを制御値バッファ３９に格納する（ステップＳ１９）。
続いて蛇行制御値算出部３５として走行制御部３１は、予め定められた時間だけ遡った過去の旋回量（第１時点の第１の旋回量）を制御値バッファ３９から読み出す（ステップＳ２１）。どれだけの時間遡るべきかについては、無人搬送車１１が台車１３を牽引する際の走行速度や貨物を含んだ台車１３の質量を考慮して決定することが望ましい。一例として、遡るべき時間は５００ミリ秒である。発明者の経験によれば、無人搬送車１１を単体でライン５１に沿って走行させた場合に観察されるオーバーシュートまたはアンダーシュートの最も短い周期、あるいはオーバーシュートまたはアンダーシュートの力が最も大きくなる周期と同じ程度の時間に設定することが好ましい。
【００５６】
この実施形態で、制御値バッファ３９はリングバッファとして構成され、予め定められた時間（例えば前述の５００ミリ秒）だけ遡るのに十分な数の旋回量を格納できる容量を有している。例えば、１０ミリ秒毎に基本旋回量Ｒｂを算出して制御値バッファ３９に格納し、５００ミリ秒遡った過去の基本旋回量Ｒｂを読み出す場合、制御値バッファ３９は、５０個の基本旋回量Ｒｂを格納する容量を少なくとも有している。
なお、制御値バッファ３９は、基本旋回量Ｒｂに加えて、あるいは基本旋回量Ｒｂに代えて後述する出力旋回量Ｒｏが格納されてもよい。そして、ステップＳ２１で制御値バッファ３９から読み出す旋回量は、基本旋回量Ｒｂであってもよいが、出力旋回量Ｒｏであってもよい。
【００５７】
続いて、蛇行制御値算出部３５として走行制御部３１は、制御値バッファ３９から読み出した旋回量に基づいて、補償旋回量Ｒｃを算出する（ステップＳ２３）。
制御値バッファ３９から読み出す旋回量が基本旋回量Ｒｂの場合、補償旋回量Ｒｃの算出は、上述の（２）式と同様である。即ち、
Ｒｃ（Ｔ２）＝−αＲｂ（Ｔ１）     （２）
ここで、現在の時刻がＴ２であり、参照する過去の時刻がＴ１である。    
【００５８】
そして、蛇行制御値算出部３５として走行制御部３１は、現時点で出力すべきモータ４５Ｌとモータ４５Ｒの回転速度の差分、即ち出力旋回量Ｒｏを算出する（ステップＳ２５）。制御値バッファ３９から読み出す旋回量が基本旋回量Ｒｂの場合、出力旋回量Ｒｏの算出は前述の（４）式と同様である。即ち、
Ｒｏ（Ｔ２）＝Ｒｂ（Ｔ２）−αＲｏ（Ｔ１）       （４）
図７には図示していないが、制御値バッファ３９から読み出す旋回量が出力旋回量Ｒｏの場合は、ステップＳ１９の処理に代えて、あるいはステップＳ１９の処理に加えて、この時点で出力旋回量を制御値バッファ３９に格納すればよい。
【００５９】
続いて走行制御部３１は、算出された出力旋回量を旋回成分とし、直進成分に旋回成分を加えてモータ４５Ｌとモータ４５Ｒの回転速度を算出し、算出された回転速度でモータ４５Ｌとモータ４５Ｒの回転を制御する（ステップＳ２７）。
例えば、直進成分がモータ４５Ｌ、４５Ｒ共に６０ｒｐｍであるとする。そして、現時点で無人搬送車１１がライン５１から右側にズレているものとする。その場合、走行制御部３１が算出した出力旋回量Ｒｏは、回転速度の差分が−４ｒｐｍであったとする。その出力旋回量Ｒｏは、無人搬送車１１は左側、即ち反時計回りに旋回させるものである。
結果的に、前記ステップＳ２７で走行制御部３１は、モータ４５Ｌの回転速度を直進成分から出力旋回量Ｒｏの１／２だけ減速させる５８ｒｐｍに更新する。一方、モータ４５Ｒの回転速度を直進成分から出力旋回量Ｒｏの１／２だけ増速させる６２ｒｐｍに更新する。
そして、ルーチンは先頭へ戻り、所定の時間（例えば、１０ミリ秒後）の経過後に次の回の処理を実行する。
【００６０】
（実施の形態２）
実施の形態１は、基本旋回量Ｒｂと補償旋回量Ｒｃを合成した出力旋回量Ｒｏを算出して、基本旋回量Ｒｂに係るフィードバック制御と、補償旋回量Ｒｃに係る補正を常に同時におこなっているが、両者を異なるタイミングで実行する態様も考えられる。
図８Ａおよび図８Ｂは、実施の形態１に対応するこの実施の形態の処理を示すフローチャートである。図８Ａは、基本旋回量に基づいて走行動作のフィードバック制御を行い、図８Ｂは補償旋回量に基づく走行動作の補償制御を行う。図８Ａおよび図８Ｂで、図７に対応する処理には図７と同様の符号を付している。
【００６１】
図８Ａにおいては、基本旋回量のみに基づいたフィードバック制御を行っているので、基本旋回量を出力旋回量としている。
一方、図８Ｂにおいては補償旋回量のみに基づいた補償制御を行っているので、補償旋回量を出力旋回量としている。
それらの点において、図８Ａおよび図８ＢにおけるステップＳ２５は、いずれも図７におけるステップＳ２５の処理と完全同一ではない。
【００６２】
実施の形態における図７と同様に、図８Ａおよび図８Ｂの処理はいずれもタイマー割込み等の手段により好ましくは略一定の時間間隔で、繰り返し実行される。ただし、両者は個別に実行される。
【００６３】
（実施の形態３）
実施の形態１は、無人搬送車１１の左右の駆動輪１９Ｌおよび１９Ｒが独立に駆動されて旋回したが、この発明の本質はその構成に限定されるものでない。
図９は、この実施形態において無人搬送車１１を走行させる車輪の構成を示す説明図である。例えば、図９に示すように、無人搬送車１１の左右の駆動輪１９Ｌおよび１９Ｒが共通のモータ４５で駆動される。旋回は、補助輪２１の方向を変える操舵用のモータ（図９に図示せず）を用いる。補助輪の操舵角θを制御することにより無人搬送車１１を旋回させる。なお、図９では、補助輪２１が駆動輪１９Ｌおよび１９Ｒよりも前方にあるが、その態様に限らず、補助輪２１が駆動輪１９Ｌおよび１９Ｒよりも後方にあってもよい。
【００６４】
図９に示す構成の無人搬送車１１は、スピンターンできないが、実施の形態１で述べたものと同様の制御を適用して、台車１３を牽引する際の蛇行を抑制できる。
図１０は、この実施形態において、図７に対応する走行制御部３１の処理を示すフローチャートである。図１０のステップＳ３１〜Ｓ４７は、図７のステップＳ１１〜Ｓ２７とそれぞれ同様であるが、図７における旋回量に対して、図１０では操舵角が種々の制御量として用いられる。詳細には、基本旋回量に対応する基本操舵角が、補償旋回量に対する補償操舵量が、出力旋回量に対応する出力操舵角が図１０で用いられる。
実施の形態１の旋回量に代えて操舵角が制御量として用いられるが、走行制御の思想は実施の形態１と同様である。
【００６５】
（実施の形態４）
この実施の形態では、実施の形態１の図４に示す構成に加えて、無人搬送車１１が蛇行しているか否かを判定する蛇行判定部を走行制御部３１がさらに備える。
無人搬送車１１が蛇行した場合にのみ蛇行制御値算出部３５が機能する。この理由は、蛇行が十分に小さい状態では、本発明の蛇行制御は必ずしも必要ではなく、従来のＰＩＤ制御で走行を制御可能であるし、実際には蛇行していない状態で蛇行制御を行うと、不必要な旋回動作を頻繁に繰り返し行うことになるが、これは望ましいことではなく、場合によってはかえって走行安定性が損なわれることがあるためである。
蛇行判定部は、無人搬送車１１が走行中に、蛇行しているか否かを走行制御値またはラインセンサー２５の検出により判定する。
【００６６】
蛇行の判定は、例えば、無人搬送車１１の走行中にライン５１が基準位置よりも右側から左側に予め定められた期間内に変化したことに基づいて行える。さらに、予め定められた期間内に基準位置よりも右側から左側へ移動し、その後左側から右側へ移動する挙動が所定の回数を超えて続いた事に基づいて判定を行ってもよい。
【００６７】
図１２は、この実施形態において、図７に対応する走行制御部３１の処理を示すフローチャートである。図１２のステップＳ５１〜Ｓ５９、Ｓ６１〜Ｓ６７は、図７のステップＳ１１〜Ｓ１９、Ｓ２１〜Ｓ２７にそれぞれ対応する。図１２のステップＳ６０は、図７に対応する処理がない。
図１２で、走行制御部３１は、蛇行判定部３６として無人搬送車１１が蛇行しているか否かを判断する。蛇行していると判断した場合（ステップＳ６０のＹｅｓ）、ルーチンはステップＳ６１へ進み、その後は図７と同様の処理を行う。
【００６８】
一方、ステップＳ６０で無人搬送車１１が蛇行していないと判断した場合は、ルーチンはステップＳ６５へ進む。この場合、（１）式および（４）式でα＝０（従って、補償旋回量Ｒｃ＝０）とした場合と同様に出力旋回量を算出し（ステップＳ６５）、その結果に基づいてモータ４５Ｌおよび４５Ｒの回転速度を更新する。
【００６９】
即ち、蛇行判定部３６としての走行制御部３１が、無人搬送車１１が蛇行していないと判断した場合は、走行制御値算出部３３としての制御、例えば公知のＰＩＤ制御で走行制御を行う。α＝０の場合、補償旋回量Ｒｃは常にゼロ、即ち無効である。
この実施形態によれば、無人搬送車が蛇行している場合に限って蛇行を抑制する制御が実行される。
【００７０】
以上に述べたように、
（i）この発明による自動走行装置は、被牽引物を牽引して走行ルートからのズレを左右の旋回動作により補正しながら前記走行ルートに沿って走行する自動走行装置であって、各時点での旋回量を記録する記録部と、前記走行ルートからのズレ量を検出するズレ量検出部と、前記自動走行装置の走行動作を制御する走行制御部とを備え、前記走行制御部は、現時点から所定の時間遡った第１時点における第１の旋回量に基づいて、前記第１旋回量未満の大きさでかつ前記第１時点での旋回とは逆方向の旋回に対応する補償旋回量を算出し、少なくとも前記補償旋回量に基づいて出力旋回量を算出し、該出力旋回量に応じた旋回動作を行うように前記自動走行装置の走行動作を制御することを特徴とする。
【００７１】
この発明において、ラインは、自動走行装置の走行面上に目標とする走行ルートに沿って設置された線である。
旋回動作は、自動走行装置が走行方向を変えために車体の向きを変える動作である。その具体的な態様の例は、自動走行装置が左右に独立して駆動可能な駆動輪を備えて左右の駆動輪の回転速度を異ならせ、あるいは、回転方向を異ならせて自動走行装置の方向を転換する動作である。駆動輪または補助輪の向きを変えて方向転換する態様もある。ただし、コンパクトな方向転換である定置旋回を可能とする場合は左右の駆動輪を独立して駆動し両者の回転速度、回転方向を変えて旋回動作を行うことが多い。即ち、駆動輪の方向を変えて旋回する構成は採用しないことが多い。
【００７２】
また、各時点での旋回量は、走行制御部が内部的に有するデータであって、自動走行装置をどちら側へどれだけの大きさで変えるべきかを表すものである。例えば、前記旋回量はラインからのズレ量に基づいて算出される基本旋回量であってもよく、あるいはその基本旋回量と前記補償旋回量とに基づいて得られる出力旋回量であってもよい。
各時点での旋回量を記録する記録部は、時間が経過した将来の時点で格納された旋回量を提供するものである。上述の実施形態における制御値バッファは、この記録部に相当する。
さらにまた、ラインからのズレ量は、目標の走行ルートからどちらの側へどれだけの大きさでズレているかを表す。ズレ量検出部は、ラインからのズレ量を検出する手段であって、上述の実施形態におけるラインセンサーはこのズレ量検出部に相当する。
【００７３】
第１の旋回量は、現時点から所定の時間遡った第１の時点における上記旋回量である。即ち、第１の時点における前記基本旋回量であってもよく、第１の時点における前記出力旋回量であってもよい。
また、補償旋回量は、過去の第１時点で行った旋回動作を補償して蛇行を防止するための、第１の旋回量と逆方向で第１の旋回量未満の大きさの旋回量である。
さらにまた、出力旋回量は、ある時点において自動走行装置が行うべき旋回動作の方向および大きさを表すものである。
【００７４】
さらに、この発明の好ましい態様について説明する。
（ii）前記走行制御部は、前記補償旋回量を前記出力旋回量として算出してもよい。
このようにすれば、現時点から所定の時間遡った第１時点における旋回動作を補償して自動走行装置の蛇行を防止できる。
【００７５】
（iii）前記走行制御部は、前記ズレ量に基づいて基本旋回量を算出し、前記基本旋回量と前記補償旋回量に基づいて前記出力旋回量を算出してもよい。
ここで、基本旋回量は、ある時点のラインからのズレ量に基づいて自動走行装置のラインからのズレを補正するのに好適な旋回量である。
このようにすれば、現時点のラインからのズレ量に基づいて自動走行装置の進路をラインからのズレが補正される方向に定めると共に、現時点から所定の時間遡った第１時点における旋回動作を補償して自動走行装置の蛇行を防止できる。
【００７６】
（iv）前記補償旋回量は、前記第１の旋回量に対して単調増加の相関関係を有するように定められたものであってもよい。
このようにすれば、過去の第１時点における第１の旋回量が大きいほど大きな補償旋回量が算出されるので、第１時点における旋回動作を適切に補償できる。
【００７７】
（v）前記補償旋回量は、前記第１の旋回量に対して比例の相関関係を有するように定められたものであってもよい。
このようにすれば、過去の第１時点における第１の旋回量に比例した補償旋回量が算出されるので、第１時点における旋回動作を適切に補償できる。
【００７８】
（vi）前記自動走行装置の蛇行を検出する蛇行検出部をさらに備え、前記走行制御部は、前記蛇行検出部が蛇行を検出した場合には前記補償旋回量を有効にし、前記蛇行検出部が蛇行を検出しない場合には前記補償旋回量を無効にしてもよい。
ここで、蛇行は、自動走行装置が目標の走行ルートに沿って走行できず、目標を行き過ぎてオーバーシュート、アンダーシュートを繰り返しながら走行することである。また、補償旋回量を有効にするとは、出力旋回量の算出に際して補償旋回量に係る要素を組み入れて算出することを意味し、補償旋回量を無効にするとは、出力旋回量の算出に際して補償旋回量に係る要素を組み入れずに算出することを意味する。
このようにすれば、自走走行装置が蛇行している場合のみ補償旋回量を有効にして現時点から所定の時間遡った第１時点における旋回動作を補償し、蛇行していない場合は補償旋回量を無効にして単純な制御を行うことができる。
【００７９】
（vii）前記自動走行装置は、前記走行ルート上に配されたラインに沿って走行するものであって、前記ズレ量検出部は、前記ラインからのズレ量を検出してもよい。
このようにすれば、走行面にラインを配置することで走行ルートを指定でき、その走行ルートに沿って自動走行装置を走行させることができる。
（viii）牽引のため前記被牽引物に接続する接続部をさらに備え、前記接続部は、第１部分と、前記第１部分よりも前記自動走行装置の進行方向に対して後側に位置する第２部分とを有し、前記第１部分と前記第２部分とによって前記被牽引物の被接続部位を前後方向に挟み込むことにより、前記被牽引物に接続してもよい。
このようにすれば、被牽引物の被接続部位を前後方向に挟み込むことによって左右の旋回動作に対して被牽引物を確実に牽引して旋回動作によりズレを補正しながら走行させることが可能になる。
【００８０】
（ix）前記第１部分と前記第２部分との間の前後方向の間隔は、前記被接続部の前後方向の幅よりも大きくてもよい。
このようにすれば、前後方向において自動走行装置の接続部と被牽引物の被接続部位との間に余裕があるので、例えば被牽引物の自重が自動走行装置の自重より大きくてもスムーズに牽引できる。
【００８１】
（x）前記被牽引物の第１の被接続部位と接続する第１の接続部と、第１の接続部よりも進行方向に対して右側に位置する第２の被接続部位と接続する第２の接続部とを備えてもよい。
このようにすれば、左右に位置する第１接続部および第２接続部とで被牽引物を牽引するので、旋回動作に伴って被牽引物を旋回させ、スムーズに走行できる。
この発明の好ましい態様には、上述した複数の態様のうちの何れかを組み合わせたものも含まれる。
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
【符号の説明】
【００８２】
１１：無人搬送車、    １３：台車、    １３Ａ：キャスター、    １３Ｂ：底板、    １５：牽引アーム、    １５Ａ：第１部分、  １５Ｂ：第２部分、    １６：昇降機構、    １７Ｇ、１７Ｗ：アーム拘束部材、    １９Ｌ，１９Ｒ：駆動輪、    ２１：補助輪、    ２３：センサー部、    ２５：ラインセンサー、    ２５Ａ：検出素子、    ２７：近接センサー、    ３０：制御基板、    ３１：走行制御部、    ３３：走行制御値算出部、    ３５：蛇行制御値算出部、    ３６：蛇行判定部、    ３７：記憶部、    ３９：制御値バッファ、    ４１：パラメータ格納部、    ４３：走行駆動部、    ４５，４５Ｌ，４５Ｒ：モータ、    ４７：バッテリー、    ４９：通信部
５１：ライン、    ５１Ａ：検出素子
Ｔ１，Ｔ２，Ｔ３，Ｔ４：時刻
ｄ１，ｄ２，ｄ３：距離
【図１Ａ】
2018185659.tif 000003
【図１Ｂ】
2018185659.tif 000004
【図１Ｃ】
2018185659.tif 000005
【図１Ｄ】
2018185659.tif 000006
【図１Ｅ】
2018185659.tif 000007
【図２】
2018185659.tif 000008
【図３】
2018185659.tif 000009
【図４】
2018185659.tif 000010
【図５Ａ】
2018185659.tif 000011
【図５Ｂ】
2018185659.tif 000012
【図６Ａ】
2018185659.tif 000013
【図６Ｂ】
2018185659.tif 000014
【図７】
2018185659.tif 000015
【図８Ａ】
2018185659.tif 000016
【図８Ｂ】
2018185659.tif 000017
【図９】
2018185659.tif 000018
【図１０】
2018185659.tif 000019
【図１１】
2018185659.tif 000020
【図１２】
2018185659.tif 000021