(58)【調査した分野】(Int.Cl.,DB名)
少なくとも1台の移動体の走行を管理する管理システムであって、前記管理システムは、前記移動体と、前記移動体の走行を管理する走行管理装置とを有し、前記移動体は、モータと、前記モータを制御して前記移動体を移動させる駆動装置と、前記走行管理装置と通信する第1通信回路と、前記駆動装置および前記第1通信回路を制御する制御回路とを有し、前記走行管理装置は、 前記移動体と通信する第2通信回路と、前記移動体を、第n(n:正の整数)位置から第(n+1)位置まで移動させるための第n指令を生成し、前記第2通信回路を介して前記移動体に送信する信号処理回路と、を備え、前記移動体が、前記第n指令に従って第n位置から前記第(n+1)位置に移動する間に前記第(n+1)位置に応じて定められた領域に到達すると、前記制御回路は前記第1通信回路を介して前記走行管理装置に領域到達通知を送信し、前記走行管理装置の前記信号処理回路は、前記第2通信回路を介して前記領域到達通知を受信すると、前記移動体を前記第(n+1)位置から第(n+2)位置まで移動させるための第(n+1)指令を生成し、前記第2通信回路を介して前記移動体に送信する、管理システム。
前記移動体の前記制御回路は、前記第1通信回路を介して前記第(n+1)指令を受け取り、前記移動体を前記第(n+2)位置に移動させるための前処理演算を行う、請求項1に記載の管理システム。
前記半径Rは、前記第n指令の生成時に想定される前記移動体の走行速度および前記前処理演算に要する時間の積に応じて決定される、請求項4または5に記載の管理システム。
前記移動体は、前記第(n+1)位置への到達後、前記前処理演算の結果に従って連続的に動作して、前記第(n+2)位置への走行を開始する、請求項2から7のいずれかに記載の管理システム。
前記移動体は、自己位置を推定する測位装置と、走行する空間の地図データを格納する記憶装置とをさらに備え、前記制御回路は、前記測位装置による前記自己位置の推定結果と前記地図データとに基づいて、前記移動体が前記領域に到達したことを検出する、請求項1から8のいずれかに記載の管理システム。
前記移動体は、実環境の空間データを取得するセンサをさらに備え、前記制御装置は、前記センサによって取得された前記空間データを利用して前記自己位置を推定する、請求項9に記載の管理システム。
少なくとも1台の移動体の走行を管理する管理システムで用いられる走行管理装置であって、前記移動体は、モータと、前記モータを制御して前記移動体を移動させる駆動装置と、前記走行管理装置と通信する第1通信回路と、前記駆動装置および前記第1通信回路を制御する制御回路とを有しており、前記走行管理装置は、 前記移動体と通信する第2通信回路と、前記移動体を、第n(n:正の整数)位置から第(n+1)位置まで移動させるための第n指令を生成し、前記第2通信回路を介して前記移動体に送信する信号処理回路と、を備え、前記移動体が、前記第n指令に従って第n位置から前記第(n+1)位置に移動する間に前記第(n+1)位置に応じて定められた領域に到達したとき、前記移動体の前記第1通信回路は領域到達通知を送信し、前記信号処理回路は、前記第2通信回路を介して前記領域到達通知を受信し、前記移動体を前記第(n+1)位置から第(n+2)位置まで移動させるための第(n+1)指令を生成し、前記第2通信回路を介して前記第(n+1)指令を前記移動体に送信する、走行管理装置。
走行管理装置を有する管理システムを用いて走行が管理される移動体であって、モータと、前記モータを制御して前記移動体を移動させる駆動装置と、前記走行管理装置と通信する通信回路と、前記駆動装置および前記通信回路を制御する制御回路とを有し、前記移動体が、前記走行管理装置から受信した、第n(n:正の整数)位置から第(n+1)位置まで移動させるための第n指令に従って移動しているときにおいて、前記第(n+1)位置に応じて定められた領域に到達すると、前記制御回路は前記通信回路を介して前記走行管理装置に領域到達通知を送信し、前記領域到達通知の送信後、前記通信回路は、前記第(n+1)位置から第(n+2)位置まで移動させるための第(n+1)指令を前記領域到達通知の受信に応答して生成して前記移動体に送信するように構成された前記走行管理装置から、前記第(n+1)指令を受信する、移動体。
少なくとも1台の移動体の走行を管理する管理システムで用いられる走行管理装置に搭載されたコンピュータによって実行されるコンピュータプログラムであって、前記移動体は、モータと、前記モータを制御して前記移動体を移動させる駆動装置と、前記走行管理装置と通信する第1通信回路と、前記駆動装置および前記第1通信回路を制御する制御回路とを有しており、前記走行管理装置は、 前記移動体と通信する第2通信回路と、前記移動体を、第n(n:正の整数)位置から第(n+1)位置まで移動させるための第n指令を生成し、前記第2通信回路を介して前記移動体に送信する前記コンピュータと、を備え、前記移動体が、前記第n指令に従って第n位置から前記第(n+1)位置に移動する間に前記第(n+1)位置に応じて定められた領域に到達したとき、前記移動体の前記第1通信回路は領域到達通知を送信し、前記コンピュータプログラムは、前記コンピュータに、前記第2通信回路を介して前記領域到達通知を取得させ、前記領域到達通知の取得に応答して、前記移動体を前記第(n+1)位置から第(n+2)位置まで移動させるための第(n+1)指令を生成させ、前記第2通信回路を介して、前記第(n+1)指令を前記移動体に送信させる、コンピュータプログラム。
走行管理装置を有する管理システムを用いて走行が管理される移動体に搭載されたコンピュータによって実行されるコンピュータプログラムであって、前記移動体は、モータと、前記モータを制御して前記移動体を移動させる駆動装置と、前記走行管理装置と通信する通信回路と、前記駆動装置および前記通信回路を制御する前記コンピュータとを有し、前記コンピュータプログラムは、前記コンピュータに、前記走行管理装置から受信した、第n(n:正の整数)位置から第(n+1)位置まで移動させるための第n指令に従って移動させ、前記第(n+1)位置に応じて定められた領域に到達したか否かを判定させ、前記領域に到達したと判定したときは、前記通信回路を介して前記走行管理装置に領域到達通知を送信させ、前記領域到達通知の送信後、前記通信回路を介して、前記第(n+1)位置から第(n+2)位置まで移動するための第(n+1)指令を前記領域到達通知の受信に応答して生成して前記移動体に送信するように構成された前記走行管理装置から、前記第(n+1)指令を受信させる、コンピュータプログラム。
【発明を実施するための形態】
【0010】
以下、添付の図面を参照しながら、本開示による移動体および走行管理装置を含む管理システムの一例を説明する。本明細書では、移動体の一例として無人搬送車を挙げる。無人搬送車はAGV(Automated Guided Vehicle)と呼ばれており、本明細書でも「AGV」と記述する。
【0011】
図1は、たとえば工場内の通路1を走行するAGV10を示す。
図2は、本例による、AGV10の走行を管理する管理システム100の概要を示す。図示される例では、AGV10は地図データを有し、自身が現在どの位置を走行しているかを認識しながら走行する。AGV10の走行経路は、走行管理装置20からの指令に従う。AGV10は、指令に従って、内蔵された複数のモータをそれぞれ駆動し、車輪を回転させることによって移動する。指令は無線により、走行管理装置20からAGV10に送られる。AGV10と走行管理装置20との通信は、工場の天井付近に設けられた無線アクセスポイント2a、2b等を利用して行われる。通信は、たとえばWi−Fi(登録商標)規格に準拠する。なお、
図1には1台のAGV10のみが示されているが、複数台のAGV10が走行してもよい。当該複数台のAGV10の各々の走行は、走行管理装置20によって管理されていてもよいし、されていなくてもよい。
【0012】
管理システム100に含まれるAGV10および走行管理装置20の動作の概要は以下のとおりである。なお、AGV10は、走行管理装置20からの指令(第n指令(n:正の整数))に従って、第n位置から、目的位置である第(n+1)位置(以下「位置M
n+1」などと記述する。)に向かって移動中であるとする。
【0013】
AGV10がある領域に到達すると、走行管理装置20に宛てて領域到達通知(以下「通知」と記述する。)を送信する。「ある領域」は、位置M
n+1ごとに定められる領域である。通知は無線アクセスポイント2aを介して走行管理装置20に送られる。AGV10がある領域に到達したか否かの検出方法の一例は、AGV10に周囲をセンシングするセンサの利用が考えられる。AGV10は、当該センサの出力と、地図データとを照合して最も一致する地図データ上の位置を自己位置として推定し、推定した自己位置が当該領域内に入っているか否かを判定すればよい。
【0014】
通知を受信すると、走行管理装置20は、AGV10を位置M
n+1から位置M
n+2まで移動させるための次の指令(第(n+1)指令)を生成する。第(n+1)指令は、位置M
n+2の位置座標を含み、さらに加速時間、定速走行時の移動速度等の数値を含み得る。走行管理装置20は、AGV10に宛てて当該第(n+1)指令を送信する。
【0015】
第(n+1)指令を受信すると、AGV10は、第(n+1)指令を解析して、位置M
n+1から位置M
n+2までの移動に必要な前処理演算を行う。前処理演算は、たとえば、AGV10の各車輪を駆動するための各モータの回転速度、回転時間等を決定するための演算である。前処理演算を位置M
n+1に到達する前に完了させておくことにより、AGV10はスムーズに次の位置M
n+2に向けた移動を開始することができる。前処理演算を行った場合、外部から観察すると、AGV10は停止することなく連続的に走行しているように見える。
【0016】
AGVを、外部からの指示に従ってある位置から次の目的位置まで移動させ、その後、AGVにさらに指示を与えて次の目的位置まで移動させるシステムでは、これまではAGVの連続走行を実現できていなかった。その理由は、AGVは目的位置に到達したとき通知を送信し、その後次の指令を送信していたため、前処理演算は必ず目的位置に到達した後に行っていたからである。AGV10は、当該演算が終了するまでは位置M
n+1に停止せざるを得ない。AGV10は、次の目的位置に到達する度に停止し、その後移動を再開する、という間欠的な動作を行っていた。
【0017】
本開示の例示的な管理システム100では、位置M
n+1から距離Rだけ手前の位置にAGV10が到達したタイミングを契機として、位置M
n+1からの走行に必要とされる指令を受信し、前処理演算を行う。これにより、AGV10は位置M
n+1への到達後、前処理演算の結果に従って連続的に動作して、次の位置M
n+2に向けた走行を開始することができる。ここでいう、連続的に動作する、とは、少なくとも1台のモータの回転を停止させずに、と言う意味である。前処理演算を行っているため、AGV10の全てのモータを停止させる必要はなく、少なくとも1台については回転させ続けることが可能だからである。
【0018】
AGV10は、種々の方向に移動することが可能である。
図3A〜
図3Cは、連続的に移動するAGV10の移動経路の例を示す。
【0019】
図3Aは、直進時のAGV10の移動経路を示す。AGV10は、位置M
n+1への到達後、前処理演算の結果に従って各モータを連続的に動作させて、次の位置M
n+2に直線的に移動を継続することができる。
【0020】
図3Bは、位置M
n+1において左折し、位置M
n+2に向けて移動するAGV10の移動経路を示す。AGV10は、位置M
n+1で一旦停止するが、進行方向右側に位置する少なくとも1台のモータは回転を継続する。そしてその場で角度θだけ半時計回りに回転すると、AGV10は位置M
n+2に向けて全てのモータを等速で回転させ、直進する。前処理演算を行っておくことにより、位置M
n+1到達時に少なくとも1台のモータの回転を継続させることが可能である。
【0021】
図3Cは、位置M
n+1から位置M
n+2まで円弧状に移動する時のAGV10の移動経路を示す。AGV10は、位置M
n+1への到達後、前処理演算の結果に従って内周側のモータよりも外周側のモータの回転速度を速める。これにより、AGV10は次の位置M
n+2に向けて円弧状の経路で移動を継続することができる。
【0022】
図4は、位置M
n+1を中心とする領域S
n+1の例を示す。本例では、領域S
n+1は、位置M
n+1を中心とする半径R
n+1の円である。AGV10は目的位置から距離R
n+1だけ離れた位置に到達したタイミングで上述の通知を走行管理装置20に送信する。半径の一例は50cmである。ただし、領域を区画する半径の値は固定でなくてもよく、目的位置ごとに可変であり得る。
【0023】
図5は、AGV10の走行経路に設定される各目的位置(▲)と、目的位置ごとに設定される領域(破線の円)とを示す。領域の大きさが異なることが理解される。半径Rの決定方法として、たとえば、図示される領域Spのように、隣接する2つの目的位置同士の間隔が長いほど、半径Rを大きくし得る。たとえば領域Spの半径は100cmである。一方、図示される領域Sqのように、隣接する2つの目的位置同士の間隔が短いほど、半径Rを小さくすればよい。たとえば領域Sqの半径は25cmである。走行管理装置20から送信される次の目的位置を指定する指令には、次の目的位置に応じて定まる領域を区画する半径Rのデータも含まれている。
【0024】
図6は、AGV10が、目的位置M
n+1から距離R
n+1離れた領域の端部Mnrに到達した後、目的位置M
n+1に到達するまでに行われるAGV10の演算を示す。
図6の(a)および(b)は、それぞれ、走行位置に応じてAGV10と走行管理装置20との間で送受信されるデータの量、および、AGV10の演算負荷(マイコン使用率)を示す。
図6(a)に示すように、領域の端部Mnrに到達すると、AGV10は、走行管理装置20に通知を送信する。AGV10はその後も走行を継続し、位置Mnr’に到達したとき、走行管理装置20から次の目的位置等の指定を含む指令を受信する。すると
図6(b)に示すように、AGV10のマイコン(後述)は、受信した指令を解析して位置M
n+1から位置M
n+2までの移動に必要な前処理演算を行う。そのためマイコン使用率が上昇する。その後、前処理演算は、位置M
n+1に到達するまでに終了する。これにより、位置M
n+1到達後もすぐに次の位置M
n+2に向けた走行を開始することができる。
【0025】
次に、
図7から
図9を参照しながら、AGV10および走行管理装置20の具体的な構成を説明する。
【0026】
図7は、本実施形態にかかる例示的なAGV10の外観図である。AGV10は、4つの車輪11a〜11dと、フレーム12と、搬送テーブル13と、走行制御装置14と、レーザレンジファインダ15とを有する。なお、AGV10は複数のモータも有するが
図7には示されていない。また、
図7には、前輪11a、後輪11bおよび後輪11c、前輪11dはフレーム12の蔭に隠れているため明示されていない。
【0027】
走行制御装置14は、AGV10の動作を制御する装置であり、主としてマイコン(後述)を含む集積回路、電子部品およびそれらが搭載された基板を含む。走行制御装置14は、上述した、走行管理装置20とのデータの送受信、および、前処理演算を行う。
【0028】
レーザレンジファインダ15は、たとえば赤外のレーザ光15aを目標物に照射し、当該レーザ光15aの反射光を検出することにより、目標物までの距離を測定する光学機器である。本実施形態では、AGV10のレーザレンジファインダ15は、たとえばAGV10の正面を基準として左右135度(合計270度)の範囲の空間に、0.25度ごとに方向を変化させながらパルス状のレーザ光15aを放射し、各レーザ光15aの反射光を検出する。これにより、0.25度ごと、合計1080ステップ分の角度で決まる方向における反射点までの距離のデータを得ることができる。
【0029】
AGV10の位置および姿勢と、レーザレンジファインダ15のスキャン結果とにより、AGVの周囲の物体の配置を得ることができる。一般に、移動体の位置および姿勢は、ポーズ(pose)と呼ばれる。2次元面内における移動体の位置および姿勢は、XY直交座標系における位置座標(x, y)と、X軸に対する角度θによって表現される。AGV10の位置および姿勢、すなわちポーズ(x, y, θ)を、以下、単に「位置」と呼ぶことがある。
【0030】
後述する測位装置は、レーザレンジファインダ15のスキャン結果から作成された局所的地図データを、より広範囲の環境地図データと照合(マッチング)することにより、環境地図上における自己位置(x, y, θ)を同定することが可能になる。
【0031】
なお、レーザ光15aの放射位置から見た反射点の位置は、角度および距離によって決定される極座標を用いて表現され得る。本実施形態では、レーザレンジファインダ15は極座標で表現されたセンサデータを出力する。ただし、レーザレンジファインダ15は、極座標で表現された位置を直交座標に変換して出力してもよい。
【0032】
レーザレンジファインダの構造および動作原理は公知であるため、本明細書ではこれ以上の詳細な説明は省略する。なお、レーザレンジファインダ15によって検出され得る物体の例は、人、荷物、棚、壁である。
【0033】
レーザレンジファインダ15は、周囲の空間をセンシングしてセンサデータを取得するための外界センサの一例である。そのような外界センサの他の例としては、イメージセンサおよび超音波センサが考えられる。
【0034】
走行制御装置14は、レーザレンジファインダ15の測定結果と、自身が保持する地図データとを比較して、自身の現在位置を推定することができる。地図データは、SLAM(Simultaneous Localization and Mapping)技術を用いて、AGV10自身によって取得されてもよい。
【0035】
図8は、AGV110のハードウェアの構成を示す。また
図8には、走行制御装置14の具体的な構成も示されている。
【0036】
AGV10は、走行制御装置14と、レーザレンジファインダ15と、4台のモータ16a〜16dと、駆動装置17とを備えている。
【0037】
走行制御装置14は、マイコン14aと、メモリ14bと、記憶装置14cと、通信回路14dとを有している。マイコン14a、メモリ14b、記憶装置14cおよび通信回路14dは通信バス14eで接続されており、相互にデータを授受することが可能である。またレーザレンジファインダ15もまた通信インタフェース(図示せず)を介して通信バス14eに接続されており、測定結果である測定データを、マイコン14aおよび/またはメモリ14bに送信する。
【0038】
マイコン14aは、走行制御装置14を含むAGV10の全体を制御するための演算を行う制御回路(コンピュータ)である。典型的にはマイコン14aは半導体集積回路である。マイコン14aは、PWM(Pulse Width Modulation)信号を駆動装置17に送信して駆動装置17を制御し、モータに流れる電流を調整させる。これによりモータ16a〜16dの各々が所望の回転速度で回転する。またマイコン14aは、レーザレンジファインダ15から出力された極座標で表現されたセンサデータを直交座標に変換することができる。
【0039】
メモリ14bは、マイコン14aが実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ14bは、マイコン14aが演算を行う際のワークメモリとしても利用され得る。記憶装置14cはたとえば不揮発性の半導体メモリであり、AGV10が走行する環境(工場内部等)の壁、柱等の障害物、および、通路の位置を示す地図データを格納する。通信回路14dは、たとえばWi−Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。
【0040】
4台のモータ16a〜16dは、それぞれ4つの車輪11a〜11dに取り付けられ、各車輪を回転させる。なおモータの数は一例である。2台または3台でもよいし、5台以上であってもよい。
【0041】
駆動装置17は、4台のモータ16a〜16dの各々に流れる電流を調整するためのモータ駆動回路17a〜17dを有する。モータ駆動回路17a〜17dの各々はいわゆるインバータ回路であり、マイコン14aから送信されたPWM信号によって各モータに流れる電流をオンまたはオフし、それによりモータに流れる電流を調整する。
【0042】
図9は、走行管理装置20のハードウェア構成を示す。走行管理装置20は、CPU21と、メモリ22と、位置データベース(位置DB)23と、通信回路24と、領域データベース(領域DB)25と、画像処理回路26とを有する。CPU21、メモリ22、位置DB23、通信回路24、領域DB25および画像処理回路26は通信バス27で接続されており、相互にデータを授受することが可能である。
【0043】
CPU21は、走行管理装置20の動作を制御する信号処理回路(コンピュータ)である。典型的にはCPU21は半導体集積回路である。
【0044】
メモリ22は、CPU21が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ22は、CPU21が演算を行う際のワークメモリとしても利用され得る。
【0045】
位置DB23は、AGV10の行き先となり得る各位置を示す位置データを格納する。位置データは、たとえば管理者によって工場内に仮想的に設定された座標によって表され得る。位置データは管理者によって決定される。
【0046】
通信回路24は、たとえばイーサネット(登録商標)規格に準拠した有線通信を行う。通信回路24は無線アクセスポイント2a、2b等と有線で接続されており、無線アクセスポイント2a、2b等を介して、AGV10と通信することができる。通信回路24は、AGV10に送信すべきデータを、バス27を介してCPU21から受信する。また通信回路24は、AGV10から受信したデータ(通知)を、バス27を介してCPU21および/またはメモリ22に送信する。
【0047】
領域DB25は、位置DB23に格納された位置ごとに、領域の大きさを示すデータを格納する。本明細書では、領域DB25は、各位置を中心にした円の半径の大きさを半径データとして格納する。半径データもまた管理者によって決定される。
【0048】
位置DB23および領域DB25は、不揮発性の半導体メモリ上に構築されてもよいし、ハードディスクに代表される磁気記録媒体、光ディスクに代表される光学式記録媒体上に構築されてもよい。
【0049】
画像処理回路26は外部モニタ29に表示する映像データを生成する回路である。画像処理回路26は、専ら、管理者が走行管理装置20を操作する際に動作する。本実施形態では特にこれ以上の詳細な説明は省略する。なお、モニタ29は走行管理装置20と一体化されていてもよい。また画像処理回路26の処理をCPU21が行ってもよい。
【0050】
なお、走行管理装置20は、AGV10の他の要件を規定するデータおよび当該データを記憶する記憶装置をさらに有していてもよい。「他の要件」の一例は、ある位置から次の位置までに向かう際の、AGV10の加速走行区間、定速走行時の速度、減速走行区間、加速度である。ただし、当該「他の要件」が多くなると、AGV10が行う前処理演算の演算量が増加し得る。そのため当該「他の要件」が多くなる場合には、前処理演算に要する時間を考慮して、直前の位置に対して定められる領域の大きさを大きくすることが好ましい。たとえば、領域の大きさは、走行管理装置20からAGV10に送信される指令の生成時のAGV10の走行速度および前処理演算に要する時間の積に応じて決定され得る。または、他のAGV10の走行状況、高低差のある走行環境間でAGV10の行き来を可能にする、エレベータの扉(またはシャッターカーテン)の開閉状況等のタイミング応じて決定されてもよい。
【0051】
走行管理装置20のCPU21は、領域の大きさを示す領域データを指令に送信した後も、種々の情報、たとえば障害物の発生を示す情報等、に基づいて、領域データを更新してもよい。AGV10が第n番目の指令に基づいて位置M
nから位置M
n+1に向かっている最中であっても、位置M
n+1に対して定められる領域の大きさを変更し、AGV10に通知してもよい。
【0052】
次に、
図10を参照しながら、管理システム100の動作を説明する。
【0053】
図10は、AGV10と走行管理装置20との間で行われる通信処理を示す。また
図10の左列はAGV10のマイコン14aが実行する処理の手順を示し、右列は走行管理装置20のCPU21が実行する処理の手順を示す。なお
図10は、走行管理装置20からのある指令(第n指令)に従ってAGV10が走行している間に行われる処理の例である。
【0054】
ステップS101において、マイコン14aは、第(n+1)位置から半径Rの領域に到達したか否かを判定する。より具体的には以下のとおりである。
【0055】
マイコン14aは、レーザレンジファインダ15に自身の周辺の範囲をスキャンさせ、レーザレンジファインダ15から測定データを取得する。マイコン14aは、レーザレンジファインダ15から取得した測定データと、記憶装置14cに格納された地図データとを比較して、一致度が最も高い地図データの位置が、現在の自身の位置であると推定する。マイコン14aは、推定した現在の位置が第n指令に含まれる第(n+1)位置から半径Rの距離にあるかどうかを判断することにより、第(n+1)位置から半径Rの領域に到達したか否かを判定し、到達するまで上記処理を継続する。
【0056】
AGV10が第(n+1)位置から半径Rの領域に到達すると、処理はステップS102に進む。
【0057】
ステップS102において、マイコン14aは、通知を走行管理装置20に送信する。送信後もAGV10は走行を継続する。次は、走行管理装置20の処理の説明に移る。
【0058】
ステップS201において走行管理装置20のCPU21は、通信回路24を介してAGV10から通知を受信する。
【0059】
ステップS202において、通知の受信に応答して、CPU21は、次の指令である第(n+1)指令を生成する。たとえば管理者が、各AGVが走行する目的位置を予め決定し、入力しておくことにより、CPU21は、AGV10が次にどの位置へ向かうべきかが分かる。CPU21は、位置DB23を参照して指定された位置の座標を読み出す。またCPU21は、領域DB25を参照して、当該位置に対して定められる領域の半径Rの値を読み出す。CPU21は、これらを1つのデータにまとめて第(n+1)指令を生成する。
【0060】
ステップS203において、CPU21は、通信回路24を介して第(n+1)指令をAGV10に送信する。
【0061】
ステップS103において、AGV10のマイコン14aは、通信回路14dを介して走行管理装置20から第(n+1)指令を受信する。
【0062】
ステップS104において、マイコン14aは、第(n+1)指令を解析して前処理演算の実行を開始する。この時点でもAGV10の走行は継続している。走行が継続している間に、ステップS105において、マイコン14aは前処理演算の実行を終了する。この結果、マイコン14aは、次の第(n+1)指令の実行に必要なデータ、たとえば、AGV10の各車輪を駆動するための各モータの回転速度、回転時間等を取得することができる。
【0063】
ステップS106において、マイコン14aは第(n+1)位置に到達したか否かを判定する。本ステップでもまた、ステップS101で説明した処理と同様の処理が行われ、AGV10の現在の位置と、第(n+1)位置とが一致するか否かが判定される。両者が一致するまでマイコン14aは走行を継続し、一致すると処理はステップS107に移行する。なお、両者が完全に一致しておらず、差がある場合であっても、当該差が許容可能値(たとえば10cm)であれば、一致したと見なしてもよい。
【0064】
ステップS107において、マイコン14aは前処理演算の結果を利用して第(n+1)指令に従う走行を開始する。第(n+1)位置に到達した時点で前処理演算を開始する場合には前処理演算が完了するまでAGV10は停止する必要がある。しかしながら本実施形態にかかる処理によれば、第(n+1)位置に到達した時点で前処理演算が完了しているため、スムーズに次の第(n+1)指令に基づく移動を開始することができる。
【0065】
上述の例では、レーザレンジファインダ15の出力結果と地図データとを照合して、最もよく一致する地図データ上の位置を自己位置であると推定した。しかしながら、他の方法を利用して自己位置を推定してもよい。
【0066】
図11は、
図8に示すAGV10の変形例である。走行制御装置14は、測位装置14fを有している。測位装置14fは、AGV10が走行する環境内に設けられたビーコン信号を受信するアンテナ、および、信号処理回路を有している。ビーコン信号には送信される位置に応じて異なる情報が重畳される。信号処理回路は、当該情報を読み出すことにより、自己の位置を推定することができる。マイコン14aは、自己位置の推定結果が、記憶装置14cに格納された地図データ上のどの座標に相当するかを判定する。得られた座標が領域に到達している場合には、自身が当該領域に到達したことを検出することができる。
【0067】
これまで上述した例では、前処理演算が終了した後、第(n+1)位置に到達するとした。しかしながらこれは必須ではない。前処理演算を開始したが、演算が終了する前に第(n+1)位置に到達したとしても、本開示による効果は得られる。第(n+1)位置に到達する前から前処理演算を開始しているため、第(n+1)位置に到達してから前処理演算を行うよりも明らかに早く演算が終了する。これにより、より早く、次の目的位置に向かう動作を開始できるからである。
【0068】
本明細書で例示した処理は、ある区間の走行開始位置からの走行時間が所定値を超えたか否かによって次の目的位置に到達しそうかどうかを判断する場合と比較すると、より適切である。その理由は、走行開始位置から目的位置までの走行にかかる時間は不定だからである。AGV10が途中で障害物に遭遇し、回避のために停止または迂回する等の場合には、次の目的位置に到達する遙か前に走行時間が所定値を超えることがあり得る。不測の事態が生じた時点で、次に向かうべき目的位置、速度等の走行条件が変化し得る。時間の経過によって到達したと見なす処理は走行条件の変化に対応することが困難である。
【0069】
例示した管理システム100によれば、AGV10は、目的位置に応じて定められた領域に到達すると、次の目的位置を示す指令を走行管理装置20から受信することができる。想定されるAGV10の走行速度等に応じて領域の広さを適宜決定することにより、走行管理装置20は、概ね次の目的位置に到達する見込みが充分高くなった場合に次の目的位置を示す指令を送信することができる。
【0070】
なお
図10の処理において、仮に、AGV10の走行不具合等により、ステップS101の判定結果が「Yes」にならない場合があり得る。そのような場合には、走行管理装置20は次の第(n+1)指令を生成せず、AGV10に送信しないため、AGV10は次の目的位置に向かうことはできない。AGV10は、第n指令において指定された区間内で移動を停止することになる。