JP7436334B2 - 自動走行システムおよび走行指示方法 - Google Patents

自動走行システムおよび走行指示方法 Download PDF

Info

Publication number
JP7436334B2
JP7436334B2 JP2020151057A JP2020151057A JP7436334B2 JP 7436334 B2 JP7436334 B2 JP 7436334B2 JP 2020151057 A JP2020151057 A JP 2020151057A JP 2020151057 A JP2020151057 A JP 2020151057A JP 7436334 B2 JP7436334 B2 JP 7436334B2
Authority
JP
Japan
Prior art keywords
driving
agv
parameters
travel
automatic
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.)
Active
Application number
JP2020151057A
Other languages
English (en)
Other versions
JP2022045454A (ja
Inventor
裕樹 大澤
テイン グエンクアン
将弘 榊原
博 山内
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2020151057A priority Critical patent/JP7436334B2/ja
Priority to US17/411,500 priority patent/US20220073325A1/en
Priority to CN202110989374.0A priority patent/CN114228739A/zh
Publication of JP2022045454A publication Critical patent/JP2022045454A/ja
Application granted granted Critical
Publication of JP7436334B2 publication Critical patent/JP7436334B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/063Automatically guided
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/075Constructional features or details
    • B66F9/0755Position control; Position detectors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/075Constructional features or details
    • B66F9/07568Steering arrangements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/075Constructional features or details
    • B66F9/20Means for actuating or controlling masts, platforms, or forks
    • B66F9/24Electrical devices or systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0291Fleet control
    • G05D1/0297Fleet control by controlling means in a control room

Description

この発明は、自動走行システムおよび走行指示方法に関し、特にたとえば、走行指示装置からの走行指示に基づいて自動走行装置を走行させる、自動走行システムおよび走行指示方法に関する。
背景技術の一例が特許文献1に開示される。特許文献1に開示される無人搬送車は、外部の管理装置からの走行に指示に従って、予め格納された無人搬送車の走行制御に係るパラメータを用いて自動走行し、牽引または積載した荷物を搬送する。
特開2018-185659号公報
従来の無人搬送車は、走行ルートを走行する際に走行ルートに応じた適切な走行制御に係るパラメータが指定されていないという問題があった。
一例を挙げて説明すると、工場または倉庫で用いられる無人搬送車を用いた自動搬送システムには様々なタイプのものがあるが、無人搬送車自体に貨物を直接積載して搬送する方式以外に、貨物を積載した台車を牽引して搬送する方式に対する強い要望がある。
発明者らは台車を牽引する構成を採用して無人搬送車の検討を行ったところ、直線状の走行ルートに沿って走行すべき台車が蛇行する場合があることを経験した。この原因は、台車の持つ大きな慣性力が無人搬送車の走行状態に対して大きな影響を与えるためであり、この問題は無人搬送車の重量に対する台車の重量の比率が大きくなるほど顕著となる。
一旦、蛇行が始まると、次第に揺れ幅が増大して蛇行が収束せず、無人搬送車では台車の走行を制御できなくなり、極端な場合においては走行ルートから逸脱してしまうことがある。このような台車を牽引する無人搬送車において、蛇行の発生を抑制して走行を制御することは一般的に非常に困難であり、可能であったとしても非常に複雑な制御が要求される。
上記の特許文献1では、現時点から所定の時間遡った第1時点における第1の旋回量に基づいて、第1旋回量未満の大きさでかつ第1時点での旋回とは逆方向の旋回に対応する補償旋回量を算出し、少なくとも補償旋回量に基づいて出力旋回量を算出し、該出力旋回量に応じた旋回動作を行うことにより、蛇行を抑制している。
しかし、直線が多い長い走行ルート(直進走行ルート)では、高速で走行しても安全であるため、走行開始の直後において大きく加速させ、速度が最大となる中盤において比較的高速で移動させ、走行ルートの中盤を越えたあたりから次第に減速させることが考えられる。一方、カーブが多い短い走行ルート(曲進走行ルート)では、高速で走行すると蛇行し易く危険であるため、走行開始の直後において直進する場合よりも小さく加速させ、速度が最大となる中盤において前述の直進走行ルートよりも低速で移動させ、走行ルートの終盤で減速させることが考えられる。このような制御を行うためには、走行ルートごとに対応して適切な走行制御に係るパラメータを指定することが望ましい。このように、走行ルートによって、制御方法が異なるため、走行ルート毎に、適切な走行パラメータは異なる。上記の特許文献1では、走行ルート毎に走行パラメータを指定することは想定されていないため、改善の余地がある。また、たとえば、工場出荷時に格納された走行パラメータは、無人搬送車が実際に走行する環境に適応するように、継続的に最適化(更新)される。 しかし、上記の特許文献1では、各無人搬送車に走行パラメータが格納されるため、走行パラメータを更新した場合に、各無人搬送車に格納された走行パラメータを更新する必要があり、走行パラメータの一元管理が困難である。
それゆえに、この発明の主たる目的は、新規な、自動走行システムおよび走行指示方法を提供することである。
この発明の他の目的は、走行ルートごとに適切な走行パラメータを指定することができる、自動走行システムおよび走行指示方法を提供することである。
第1の発明は、自動走行装置と、走行ルートを指定して走行を指示する走行ルート指定情報を自動走行装置に対して送信するとともに、走行ルート指定情報を自動走行装置に対して送信するごとに、指定された走行ルートを走行する際に走行を制御するための走行パラメータを指定する走行パラメータ指定情報を自動走行装置に対して送信する、走行指示装置と、自動走行装置が走行ルート指定情報で指定された走行ルートを走行する際、当該自動走行装置の少なくとも前後揺れ値と振れ幅値を含む走行状態を反映した当該前後揺れ値と当該振れ幅値である測定値を取得する取得装置と、を備え、走行指示装置は、取得装置によって取得された測定値で反映される自動走行装置の走行状態に応じて変更した走行パラメータ指定情報を自動走行装置に送信することを特徴とする、自動走行システムである。
第2の発明は、第1の発明に従属し、走行指示装置は、走行パラメータ指定情報として、走行パラメータの数値データを自動走行装置に対して送信することを特徴とする。
第3の発明は、第1または第2の発明に従属し、走行指示装置は、各走行ルートおよび当該各走行ルートに対応する各走行パラメータの対応関係を記憶する走行パラメータ記憶部を備える。
第4の発明は、第1から第3の発明までのいずれかに従属し、走行パラメータは、それぞれ自動走行装置の走行における異なる制御を行うための複数種類のパラメータの組からなる。
第5の発明は、第1から第4の発明までのいずれかに従属し、走行パラメータは、走行ルートごとに異なる走行パラメータが設定されるものである。
第6の発明は、第1から第5の発明までのいずれかに従属し、走行パラメータは、自動走行装置に牽引または積載される荷物の重量である荷重の区分ごとに異なる走行パラメータが設定されるものである。
第7の発明は、第1から第6の発明までのいずれかに従属し、走行パラメータは、速度の区分ごとに異なる走行パラメータが設定されるものである。
第8の発明は、第1から第7の発明までのいずれかに従属し、走行パラメータは、自動走行装置が指定された線状の走行ルートに沿って走行する際の操舵制御のパラメータを含むことを特徴とする。
第9の発明は、第1から第8の発明までのいずれかに従属し、走行パラメータは、自動走行装置が走行する際の加速または減速の加速度制御のパラメータを含むことを特徴とする。
10の発明は、第3の発明に従属し、自動走行装置が走行ルート指定情報で指定された走行ルートを走行する際、当該自動走行装置の走行状態を反映した測定値を取得する取得装置と、取得装置によって取得された測定値に基づき走行ルート毎に最適化された走行パラメータをそれぞれ算出する走行パラメータ最適化装置と、記憶部に記憶された各走行ルートに対応する各走行パラメータを、走行パラメータ最適化装置により走行ルート毎にそれぞれ算出された最適化された走行パラメータに更新する走行パラメータ更新装置と、をさらに備える。
11の発明は、第10の発明に従属し、走行パラメータ最適化装置は、設定された期間内において取得装置により取得された測定値に基づき走行ルート毎に最適化された走行パラメータを算出し、走行パラメータ更新装置は、記憶部に記憶された走行ルートに対応する走行パラメータを設定された期間毎に定期的に更新することを特徴とする。
12の発明は、自動走行装置の走行指示方法であって、走行ルートを指定して走行を指示する走行ルート指定情報を自動走行装置に対して送信するとともに、走行ルート指定情報を自動走行装置に対して送信するごとに、指定された走行ルートを走行する際に走行を制御するための走行パラメータを指定する走行パラメータ指定情報を自動走行装置に対して送信し、自動走行装置が前記走行ルート指定情報で指定された走行ルートを走行する際、当該自動走行装置の少なくとも前後揺れ値と振れ幅値を含む走行状態を反映した当該前後揺れ値と当該振れ幅値である測定値を取得し、取得した前記測定値で反映される前記自動走行装置の走行状態に応じて変更した走行パラメータ指定情報を前記自動走行装置に送信する、走行指示方法である。
この発明によれば、走行ルートごとに適切な走行パラメータを指定することができる。
図1はこの発明の実施例に係る走行パラメータ最適化システムの構成の一例を示す図である。 図2は図1に示す最適化サーバの電気的な構成の一例を示すブロック図である。 図3は図1に示す管理サーバの電気的な構成の一例を示すブロック図である。 図4は図1に示すAGVの外観構成の右側面の一例を示す図である。 図5は図1に示すAGVの外観構成の下面の一例を示す図である。 図6は図1に示すAGVの電気的な構成の一例を示すブロック図である。 図7はAGVの使用環境の一例の概略を示す図である。 図8はAGVが牽引する台車の外観構成の一例を示す図である。 図9はAGVが台車を牽引する場合のAGVと台車の接続状態の一例を説明するための図である。 図10はAGVが台車を牽引する場合のAGVと台車の接続状態の一例を説明するための他の図である。 図11はラインセンサで検出されるAGVの進行方向に対する左右のずれ量を説明するための図である。 図12はAGVに設定される走行パラメータの一部を説明するための図である。 図13は使用環境においてAGVが荷物を搬送する場合の走行ルートおよび荷重の有無の一例の概略を示す図である。 図14は最適化パラメータテーブルの一例を示す図である。 図15は走行パラメータテーブルAの一例を示す図である。 図16は図2に示す最適化サーバのRAMのメモリマップの一例を示す図である。 図17は図3に示す管理サーバのRAMのメモリマップの一例を示す図である。 図18は図2に示す最適化サーバのCPUのパラメータ最適化処理の一例を示すフロー図である。 図19は図3に示す管理サーバのCPUのAGV制御処理の一例の一部を示すフロー図である。 図20は図3に示す管理サーバのCPUのAGV制御処理の他の一部であって、図19に後続するフロー図である。 図21は図3に示す管理サーバのCPUのAGV制御処理のその他の一部であって、図20に後続するフロー図である。
図1は、この発明の実施例に係る走行パラメータ最適化システム(以下、「最適化システム」という)10の構成の一例を示す図である。最適化システム10は、後述する自動走行装置(自律搬送装置または無人搬送装置とも呼ばれる。(以下、「AGV」という))の開発元または納品先に適用され、AGVの走行に関するパラメータ(以下、「走行パラメータ」という)の適正化を行うとともに、AGVの走行を管理および制御する。
ただし、AGVの納品先は、工場または倉庫であり、AGVは、工場または倉庫において、或る拠点から他の拠点まで走行(または移動)する。ここで、拠点とは、AGVの待機場所、荷物の搬送先(積み下ろし場所を含む)および荷物の積載場所を意味する。この実施例では、AGVは、待機場所から荷物の積載場所まで移動したり、積載場所から搬送先まで荷物を搬送したり、搬送先から待機場所に戻ったりする。
図1に示すように、最適化システム10は、最適化サーバ12を含み、最適化サーバ12は、インターネット、WANまたはLANのようなネットワーク14を介して管理サーバ16と通信(送信および/または受信)可能に接続される。また、データベース18が、ネットワーク14上に設けられ、最適化サーバ12および管理サーバ16は、それぞれ、データベース18と通信可能に接続される。
また、管理サーバ16は、複数のAGV20のそれぞれと無線で通信可能に接続される。ただし、AGV20が自律走行または自動走行する工場または倉庫などの場所には、複数のアクセスポイントが設けられ、各AGV20は、アクセスポイントを含む他のネットワーク(上記のネットワーク14とは異なるネットワーク)を介して、管理サーバ16と通信を行う。この実施例では、管理サーバ16と各AGV20が通信するデータには、各AGV20の識別情報が含まれており、AGV20を指定してデータを送信したり、受信したデータからAGV20を特定(識別)したりすることができる。
なお、この実施例では、複数のAGV20を示すが、AGV20は一台でもよい。
さらに、管理サーバ16は、ネットワーク14を介して、複数のコンピュータ22と通信可能に接続される。複数のコンピュータ22は、複数のAGV20が配置される工場または倉庫などの場所の各拠点に配置される。ただし、工場の場合には、コンピュータ22は、各拠点に配置される部品等の製造装置に組み込まれる場合もある。また、倉庫の場合には、コンピュータ22として、棚を管理する者が所持する端末が使用されることもある。
なお、この実施例では、管理サーバ16は、ネットワーク14を介して、複数のコンピュータ22と通信可能に接続されるようにしてあるが、これに限定される必要はない。上述したように、工場または倉庫などの場所には、他のネットワークが設けられるため、管理サーバ16は、この他のネットワークを介して、一部または全部のコンピュータ22と通信可能に接続されてもよい。
また、管理サーバ16と、1または複数のAGV20によって、自動走行システム10aが構成される。
最適化サーバ12は、AGV20の走行パラメータの最適化または適正化を行う走行パラメータ最適化装置と、走行パラメータの最適化または適正化を行うための実験走行における実験走行計画を作成する実験走行計画作成装置と、実験走行において測定された測定値(後述する実験結果)に基づいて評価値を算出する評価値算出装置として機能する装置であり、汎用のサーバを用いることができる。図2は最適化サーバ12の電気的な構成の一例を示すブロック図である。図2に示すように、最適化サーバ12は、CPU30含み、内部バスを介して、RAM32および通信装置34に接続される。図示は省略するが、補助記憶装置のHDDおよびROMなども設けられる。
CPU30は、最適化サーバ12の全体的な制御を司るプロセッサである。RAM32は、最適化サーバ12の主記憶装置であり、CPU30のバッファ領域およびワーク領域として機能する。通信装置34は、イーサネットまたはWi-Fiのような通信方式に従って有線または無線で通信するための通信モジュールである。
なお、後述する管理サーバ16およびAGV20のブロック図を説明する場合には、同じ回路コンポーネントについての説明は省略することにする。
管理サーバ16は、AGV20の走行を管理する装置であり、より具体的には、AGV20の走行(または、移動)を指示または制御する走行指示装置と、AGV20の走行状態を反映した測定値をAGV20から取得する取得装置として機能する装置であり、汎用のサーバを用いることができる。図3に示すように、管理サーバ16は、CPU50を含み、CPU50は内部バスを介してRAM52、第1通信装置54および第2通信装置56に接続される。
管理サーバ16では、第1通信装置54は、ネットワーク14との間で通信するための通信モジュールであり、上記の通信装置34と同じ機能を有する。第2通信装置56は、他の装置(ここでは、AGV20)と無線で通信するための通信モジュールである。第2通信装置56は、LAN接続可能な無線の通信モジュールであり、この通信モジュールの通信方式は、たとえば、Wi-FiまたはZigBee(登録商標)である。
データベース18は、汎用のデータベースであり、この実施例では、最適化サーバ12および管理サーバ16がアクセス可能である。データベース18は、最適化処理を施されたAGV20の走行パラメータおよびAGV20の走行状態(状態データ)の履歴を記憶する。つまり、過去に最適化された走行パラメータがデータベース18に記憶される。AGV20の走行状態は、AGV20の識別情報を対応付けた、AGV20が搬送する荷物の荷重、AGV20の走行速度、AGV20の現在位置、前後揺れ値、振れ幅値、走行ルートおよび実施日時についてのデータである。ただし、これは一例であり、限定される必要はない。この実施例では、上記のようなAGV20の走行状態として記憶し、走行状態に基づいて走行パラメータを最適化することにより、様々な使用環境でAGV20を安定して走行させるようにしてある。たとえば、荷重が同じあっても、直線の走行ルートと曲がり角の多い走行ルートでは、適切な走行パラメータが異なる。
この実施例では、AGV20の走行状態は、AGV20が走行するときに、第1所定時間(この実施例では、2秒)毎に第1所定時間分記憶される。ただし、データベース18に記憶されるAGV20の走行状態は、実験室すなわち実験環境においてAGV20を走行させた場合のAGV20の走行状態または/および工場または倉庫などの場所すなわち使用環境においてAGV20を走行させた場合のAGV20の走行状態である。
AGV20は、自律走行可能なロボットであり、この実施例では、必要に応じて、被牽引物としての台車200を牽引する。台車200の構成については後述する。図4はAGV20の外観構成のうちの右側面についての図であり、図5はAGV20の外観構成のうちの下面についての図である。図4では、右方向がAGV20の前方であり、左方向がAGV20の後方である。また、図5では、上方向がAGV20の前方であり、下方向がAGV20の後方である。
AGV20は、床面または地面と台車200の下面の間に潜り込める低背の直方体形状を有する車本体20aを含み、車本体20aの上部には、台車200を牽引するための左右一対の牽引アーム26が昇降可能に設けられる。詳細な説明は省略するが、牽引アーム26は、油圧シリンダ260と台車200を接続する接続部262で構成され、油圧シリンダ260が油圧駆動装置80によって昇降され、接続部262も昇降される。接続部262は、台車200(または、牽引アーム26)を側面から見た場合に、その端面が凹の字の形状を有している。
なお、使用される台車200は予め決まっているため、牽引アーム26を上昇または下降させる長さは予め決まっている。そして、その長さに応じて、油圧駆動装置80に内蔵される油圧ポンプを駆動する駆動モータの回転数も決まっている。図示は省略するが、油圧駆動装置80は、油圧ポンプおよびこの油圧ポンプを駆動する駆動モータを含む。
また、図4(後述する図8および図9も同じ)では、牽引アーム26が上昇した状態を示してある。
牽引アーム26の接続部262は、前方の第1部分26aと後方の第2部分26bを有し、第1部分26aの上部には近接センサ28が設けられ、第2部分26bの前方側の側面には荷重センサ86が設けられる。
近接センサ84は、一例として、透過型または反射型の光センサであり、台車200をAGV20に接続する際、台車200の下面を検出する。AGV20が台車200(または、台座202)の下に潜り込み、近接センサ84によって台車200の下面の後端が検出されると、AGV20は、その位置からさらに所定の距離だけ前方に設けられる接続位置まで進んで停止する。
台座202の下面には、牽引アーム26が接続(または、係合)される接続部212が配置されている(図9および図10参照)。したがって、AGV20が停止された後に、牽引アーム26を上昇させると、接続部212を構成する板部材212aが牽引アーム26(接続部262)の第1部分26aと第2部分26bの間に配置され、AGV20が移動する場合に、板部材212aが第2部分26bに係合し、したがって、AGV20によって台車200が牽引される。
荷重センサ86は、汎用の荷重センサであり、台車200を牽引する際にAGV20(または、牽引アーム26)にかかる荷重を検出する。ただし、荷重は、台車200を含む荷物の荷重である。以下、この明細書において、台車200および台車200に載せられた荷物の荷重を言う場合には、単に「荷物の荷重」ということにする。
また、図5に示すように、AGV20は、車本体20aの下面に3つの車輪が設けられる。この実施例では、1つの前輪122と左右の後輪124L、124Rが設けられる。1つの前輪122は補助輪であり、車本体20aに対して回動可能に設けられる。左右の後輪124L、124Rは駆動輪であり、車本体20aに対して固定的に設けられる。
したがって、左右の後輪124L、124Rの回転速度を異ならせることにより、AGV20の移動方向を変えることができる。たとえば、左の後輪124Lの回転を停止させ(回転速度を0にし)、右の後輪124Rを回転させる(回転速度を0よりも大きくする)と、AGV20は左旋回する。また、右の後輪124Rの回転を停止させ(回転速度を0にし)、左の後輪124Lを回転させる(回転速度を0よりも大きくする)と、AGV20は右旋回する。
また、車本体20aの内部には、左の車輪モータ78Lおよび右の車輪モータ78Rが設けられる。左の車輪モータ78Lは左の後輪124Lに連結され、右の車輪モータ78Rは右の後輪124Rに連結される。また、車輪モータ78Lおよび78Rは、車輪駆動回路76に接続される。
さらに、車本体20aには、バッテリ94および制御基板100が設けられる。制御基板100には、後述するCPU70、RAM72、通信装置74および慣性センサ90などの回路コンポーネントが組み込まれる。
また、車本体20aの下面には、ラインセンサ88およびRFタグリーダ92が設けられる。この実施例では、ラインセンサ88は、AGV20の前側の端部であり、左右方向における中央に配置される。また、この実施例では、RFタグリーダ92は、AGV20の前後方向における中央から前寄りであり、左右方向における中央から左寄りに配置される。ラインセンサ88およびRFタグリーダ92の配置位置は一例であり、限定される必要はない。
図6は図1に示したAGV20の電気的な構成の一例を示すブロック図である。図6に示すように、AGV20は、CPU70を含み、CPU70はバスを介して、RAM72、通信装置74、車輪駆動回路76、油圧駆動装置80、近接センサ84、荷重センサ86、ラインセンサ88、慣性センサ90およびRFタグリーダ92に接続される。また、車輪駆動回路76は車輪モータ78に接続される。また、上記のバッテリ94は、AGV20の各コンポーネントに接続される。
CPU70およびRAM72は、上述したとおりである。なお、図示は省略するが、AGV20には、RAM72以外のHDDおよびROMなどのメモリも設けられる。RAM72には、AGV20が走行する実験環境または使用環境のマップおよび走行ルートのデータが記憶される。
通信装置74は、他の装置(ここでは、管理サーバ16)と無線で通信するための通信モジュールである。たとえば、通信装置74は、管理サーバ16の第2通信装置56と同じ通信方式(たとえば、Wi-FiまたはZigBee(登録商標))の通信モジュールである。
車輪駆動回路76は、CPU50の指示の下、車輪モータ78の駆動電圧を生成し、生成した駆動電圧を車輪モータ78に印加するための駆動回路である。車輪モータ78は、AGV20の車輪を回転させるためのモータである。図6では省略するが、上述したように、車輪モータ78は、AGV20に設けられる2つの後輪(124L、124R)のうち、左側の後輪124Lを駆動する左側の車輪モータ78Lと、右側の後輪124Rを駆動する右側の車輪モータ78Rで構成される。車輪モータ78Lと車輪モータ78Rは車輪駆動回路76によって個別に駆動され、AGV20は、直進、左旋回、右旋回、加速、減速および停止される。図示は省略するが、車輪モータ78Lおよび車輪モータ78Rのそれぞれにはエンコーダが設けられており、それぞれの回転数がエンコーダで検出され、CPU50に通知される。また、図示は省略するが、車輪モータ78Lの回転軸には左側の後輪124Lが直接接続され、車輪モータ78Rの回転軸には右側の後輪124Rが直接接続される。したがって、CPU50は、車輪モータ78Lおよび車輪モータ78Rの回転数を検出することにより、後輪124Lおよび後輪124Rの回転数を知ることができる。
油圧駆動装置80は、CPU50の指示の下、駆動モータの駆動電圧を生成し、生成した駆動電圧を駆動モータに印加するための駆動回路を含み、駆動モータが、油圧ポンプを駆動し、牽引アーム26の油圧シリンダ260を昇降させる。
近接センサ84は、上述したように、この実施例では、透過型または反射型の光センサである。荷重センサ86は、上述したように、この実施例では、汎用の荷重センサである。
ラインセンサ88は、複数(この実施例では、8個)の検出素子88a、88b、88c、88d、88e、88f、88g、88hが横一列に並べられた磁気センサであり、工場または倉庫内の床面に施設された(または、貼り付けられた)移動用のライン(誘導線またはガイドとも呼ばれる)を検出する。この実施例では、検出素子88a~88hはホール素子であり、隣接する検出素子88a~88hの間隔は所定の長さに設定される。また、ラインは磁気テープで構成され、所定の幅でAGV20が移動(または、走行)可能なコース上に設けられる。したがって、AGV20は、後述するように、ラインに沿って移動する。
慣性センサ90は、加速度センサであり、AGV20の加速度を検出する。この実施例では、慣性センサ90は、AGV20の急加速および急減速の回数を検出するのに用いられる。したがって、加速度センサとしては、AGV20の前後方向についての加速度を検出可能な1軸の加速度センサを用いることができる。この加速度センサで検出される加速度の第1所定時間(この実施例では、2秒)における平均値を、第1所定時間で積分することにより、AGV20の走行速度を知ることができる。ただし、AGV20の走行速度は、管理サーバ16が算出するようにしてもよい。
RFタグリーダ92は、倉庫内の床面に施設された(または、貼り付けられた)RFIDタグのタグ情報を読み取る。この実施例では、RFIDタグは、ラインの近傍であり、AGV20に通常の移動とは異なる所定動作を行わせたい位置に施設される。所定動作を行わせたい位置は、たとえば、拠点の位置、旋回動作(左旋回、右旋回)をさせたい位置および走行速度(加速、減速)を変更させたい位置が該当する。ただし、拠点の位置は、AGV20の停止位置である。
したがって、AGV20は、RFタグリーダ92によってRFIDタグのタグ情報を読み取り、読み取ったタグ情報に基づいて管理サーバ16とやり取りする。管理サーバ16は、各AGV20の位置(すなわち、現在位置)を把握して走行指示を各AGV20に送信し、所定の位置で所定動作(停止、左旋回、右旋回および速度変更(すなわち加速および減速))の指示を各AGV20に送信する。
また、各AGV20は、自身の走行ルートを把握しており、また、車輪モータ78の回転数を知ることができる。このため、各AGV20は、タグ情報を読み取れない場所においては、タグ情報を読み取ってからの車輪モータ78の回転数に基づいて移動した距離を算出し、マップのデータを参照することにより、現在位置を知ることができる。
バッテリ94は、充電可能な2次電池であり、一例として、リチウムイオン電池を用いることができる。バッテリ94は、AGV20の各回路コンポーネントに電力を供給する。図6では、信号線と区別するために電線を破線で示してある。
このような構成の最適化システム10では、管理サーバ16は、走行ルートを指定するとともに、予め用意された走行パラメータを用いてAGV20の走行を制御する。AGV20は、配置された工場または倉庫などの場所において、無荷重で、または、台車200を牽引して移動する。
AGV20が配置および走行される場所の一例が図7にされる。図7において、待機場所は、荷物の搬送を行っていない、1または複数のAGV20が待機する位置ないし領域である。積み下ろし場所は、荷物を他の場所に配送(または、出荷)するための荷物を集める場所である。マットリックス状に記載された実線は、AGV20が配置および走行される場所に設けられたラインである。上述したように、AGV20は、ラインに沿って走行するため、マトリックス状に記載された実線は、AGV20が走行するコースとも言える。また、ライン上に記載した点A、B、C、D、E、F、G、H、I、J、KおよびLは、曲がり角または交差点である。また、括弧書きの数字が付された四角形の枠は、工場または倉庫などの場所に配置された装置または棚を示す。
装置または棚を管理する者から荷物を搬送する要求(以下、「搬送要求」という)が有ると、管理サーバ16は、空いているAGV20を制御して荷物を搬送する。装置または棚を管理する者は、搬送先を指定して搬送要求を出す。ただし、装置は自動的に搬送要求を出すようにしてもよい。棚を管理する者は、自身が所持する端末(コンピュータ22に相当する)を用いて搬送要求を出す。また、搬送要求は、管理サーバ16の管理者が管理サーバ16に入力してもよい。
管理サーバ16は、搬送要求があると、AGV20の走行ルートを決定する。詳細な説明は省略するが、管理サーバ16は、予め設定された複数の走行ルートのうち、最短距離であり、他のAGV20の走行に影響しない走行ルートを選択する。
管理サーバ16は、図7に示すような場所についてのマップのデータを記憶しており、AGV20の現在位置(この実施例では、待機場所、積載場所または搬送先)から移動先または目的位置(この実施例では、積載場所、搬送先または待機場所)の2つの拠点間の最短の走行ルートを、他のAGV20の現在位置および移動先を考慮して選択する。ただし、走行ルートは、2つの拠点に応じて予め決定されていてもよい。
また、管理サーバ16が決定した走行ルートは、走行ルートの始点および終点と、走行ルートに沿って移動する場合に通過または方向転換する位置に対応する複数の点(点A~点Lのいずれか2つ以上)を時系列に従って並べた情報である。
たとえば、(3)の装置または棚を管理する管理者から(6)の装置または棚を指定した搬送要求があると、管理サーバ16は、待機場所から(3)の装置または棚までの走行ルートを決定する。一例として、走行ルートとして、待機場所、点A、点B、点Eおよび(3)の装置または棚の位置の識別情報を時系列に並べた情報が決定される。そして、管理サーバ16は、決定した走行ルートと、待機場所から(3)の装置または棚までの走行パラメータを含む走行指示を、空いているAGV20に送信する。つまり、この実施例では、走行指示は、AGV20の識別情報、走行ルートおよび走行パラメータを指定するための情報(「走行パラメータ指定情報」に相当する)を含む。
AGV20が走行ルートに沿って待機場所から(3)の装置または棚まで移動すると、荷物が積載される。ただし、AGV20の走行中では、管理サーバ16は、AGV20の現在位置に応じて所定動作を実行するための動作指示を送信する。以下、AGV20の走行中において、同じである。また、この実施例では、「積載」とは、AGV20が、荷物が載せられた台車200を牽引アーム26に接続することを意味する。AGV20は、荷物が積載されたことを管理サーバ16に通知する。ただし、荷物が積載されたことは、装置または棚の管理者から管理サーバ16に通知されてもよい。
AGV20は、上述したように、自身が配置された工場または倉庫などの場所についてのマップのデータをRAM72に記憶しており、マップは、上述したコース、曲がり角および交差点の位置、待機場所および積み下ろし場所の情報を含む。したがって、AGV20は、管理サーバ20から走行指示を受信すると、RAM72に記憶しているマップのデータを参照しながら、走行指示に含まれる走行ルートに従って走行する。このとき、車輪モータ78の駆動が、走行指示に含まれる走行パラメータに基づいて制御される。
ただし、AGV20は、走行中において、第1所定時間毎に、自身の走行状態(AGV20の走行状態)を管理サーバ16に送信(または、通知)し、管理サーバ16はAGV20の走行状態を受信(または、取得)し、その都度または或る程度まとめて、AGV20の走行状態をデータベース18に送信する。
したがって、管理サーバ16は、AGV20が搬送中の荷物(台車200を含む)の荷重を知ることができる。また、管理サーバ16は、第1所定時間毎のAGV20の現在位置およびAGV20の走行速度を知ることができる。
また、管理サーバ16は、荷物が積載されたことの通知を受けると、(3)の装置または棚から(6)の装置または棚までの走行ルートを決定する。一例として、走行ルートとして、(3)の装置または棚の位置、点H、点Iおよび(6)の装置または棚の位置の識別情報を時系列に並べた情報が決定される。そして、管理サーバ16は、決定した走行ルートと、(3)の装置または棚から(6)の装置または棚までの走行パラメータを含む走行指示を、荷物を積載したことの通知を受信したAGV20に送信する。
AGV20が走行ルートに沿って(3)の装置または棚から(6)の装置または棚まで移動すると、(6)の装置または棚の位置で荷物が下ろされる。この実施例では、AGV20は、荷物が載せられた台車200と牽引アーム26の接続状態を解除する。AGV20は、荷物が下ろされたことを管理サーバ16に通知する。ただし、荷物が下ろされたことは、装置または棚の管理者から管理サーバ16に通知されてもよい。
管理サーバ16は、荷物が下ろされたことの通知を受けると、(6)の装置または棚から待機場所までの走行ルートを決定する。一例として、走行ルートとして、(6)の装置または棚の位置、点L、点K、点J、点G、点Dおよび待機場所の識別情報を時系列に並べた情報が決定される。そして、管理サーバ16は、決定した走行ルートと、(6)の装置または棚から待機場所までの走行パラメータを含む走行指示を、荷物を下ろしたことの通知を受信したAGV20に送信する。
したがって、AGV20が走行ルートに沿って(6)の装置または棚から待機場所まで移動する。つまり、荷物の搬送を終えたAGV20は、待機場所に戻る。
なお、これは一例であり、或る拠点から他の拠点まで荷物を搬送したAGV20を、さらに、他の拠点から別の拠点まで荷物を搬送させるようにしてもよい。また、荷物の搬送先は、積み下ろし場所であってもよい。
ここで、この実施例の台車200について説明する。図8に示すように、この実施例の台車200は、ロールボックス台車であり、ロールボックスパレットまたはかご台車とも呼ばれる。台車200は、台座202を含み、台座202の下面の四隅のそれぞれに自在輪であるキャスター204が設けられる。また、台座202の上面には、かご206が設けられる。
図9は台車200を牽引可能に接続したAGV20を右側面から見た図であり、図10は台車200を牽引可能に接続したAGV20を後側面から見た図である。図9および図10では、牽引アーム26および接続部212を示すために、台座202を鎖線で示すことにより、それらを透視状態にしてある。また、図9および図10では、牽引アーム26および接続部212の接続状態を示すために、接続部212については断面を示してある。さらに、図9および図10では、かご206の上部の一部を省略してある。
図9および図10に示すように、台車200の台座202の下面の前端部には、牽引アーム26を接続するための左右一対の接続部212が設けられている。接続部212は、断面が四角形の筒状に形成され、下端は解放された開口を有している。したがって、上述したように、AGV20の牽引アーム26が上昇されると、その第2部分26bが開口から接続部212の内部に侵入する。このため、AGV20が移動する場合に、牽引アーム26が接続部212に係合し、台車200がAGV20に追従して移動する。また、接続部212は、筒状に形成されるため、台車200が蛇行した場合であっても、牽引アーム26が接続部212から離脱しない。
上述したように、AGV20は、ラインに沿って移動する。AGV20が牽引する台車200に荷物が積載されると、AGV20よりも質量が大きくなることがある。一例として、荷物を積載した台車200の質量は、AGV20の質量の2~4倍程度になることがある。この場合、台車200の質量の分だけ台車200が大きな慣性力を持つこととなり、台車200の直進安定性の低さとあいまって、急激な進行方向の変化の際に台車200の慣性力によってAGV20が進行すべき方向からずれてしまう場合がある。このような場合、一旦、蛇行が始まると次第に揺れ幅が増大し、蛇行は収束せずに、台車200に比べて質量の小さいAGV20では台車200の走行を制御できず、極端な場合、AGV20は走行ルートから完全に逸脱してしまうことがある。
なお、台車200は、狭い空間での定置旋回(すなわち、スピンターン)などの取り回し性を考慮してすべての車輪が自在輪のキャスター204にされる。このため、上記のように、直進安定性が低い。
したがって、この実施例のAGV20では、自動走行する際、PID制御による公知のフィードバック制御の手法を用いて、ラインに対するAGV20の位置ずれを補正するように、左右の駆動輪すなわち後輪124Lおよび124Rの回転方向および回転速度を算出する処理を行う。
ラインに対するAGV20の位置ずれは、ラインセンサ88の出力に基づいて検出される。上述したように、ラインセンサ88は、検出素子88a~88hが横一例に並んで構成される。ただし、AGV20の進行方向に垂直な方向が検出素子88a~88hが並ぶ方向(すなわち、横(左右)方向)である。
図11はラインに対するAGV20の位置ずれを説明するための図である。図11では、右上部に、ラインセンサ88における検出素子88a~88hの並びを示してある。また、図11に示す例では、AGV20を省略し、ラインセンサ88のみを示してある。さらに、図11に示す例では、図11の上方がAGV20の進行方向であり、以下の説明では、その進行方向を基準に左方向および右方向という。さらにまた、図11に示す例では、ラインを検出している検出素子88a~88fに「1」を記載し、ラインを検出していない検出素子88a~88fに「0」を記載してある。また、図11では、ラインを灰色で示してある。
ラインの横幅の中央とラインセンサ88の横幅の中央が一致している場合に、AGV20の横幅の中央の位置(以下、「中央位置」という)が、ラインの横幅の中央の位置(以下、「基準位置」という)と一致する。この場合、AGV20はラインに沿って真っすぐ進行している。また、このとき、中央位置と基準位置のずれ量は0であり、図11に示すように、検出素子88c~88fはラインを検出しているが、検出素子88a、88b、88gおよび88hはラインを検出していない。
左方向へのずれ量が1である場合には、検出素子88d~88gはラインを検出しているが、検出素子88a~88cおよび88hはラインを検出していない。右方向へのずれ量が1である場合には、検出素子88b~88eはラインを検出しているが、検出素子88aおよび88f~88hはラインを検出していない。
説明は省略するが、同様に、左方向および右方向のそれぞれにずれ量が2~6である場合について図示してある。
なお、図11では、AGV20がラインに対して左右に平行にずれているように示してあるが、上述したように、AGV20が蛇行するため、実際には、ラインに対してAGV20の進行方向が左方向または右方向に傾き、それに従ってラインセンサ88も傾き、ラインを検出する検出素子88a~88hが変化する。
また、この実施例では、フィードバック制御の手法として、PID制御を用いるようにしてあるが、他の実施例では、PI制御、P制御、オンオフ制御、PD制御を用いることもできる。
ここで、PID制御とは、目標値に対する出力のずれ量(偏差)に基づいて、この偏差の比例(P:Propotion)、積分(I:Integral)および微分(D:Differential)の3つの要素を好適な割合で組み合わせてフィードバックする制御手法である。この実施例では、AGV20がラインに沿って走行するように、偏差の比例要素のフィードバック量、積分要素のフィードバック量および微分要素のフィードバック量の比率を適宜選択する。
ただし、PID制御による操舵制御の走行パラメータが適切でない場合、台車200が大きく蛇行してしまう。このような場合、PID制御を行ったとしても、AGV20がラインに沿って走行せずに、ラインから外れてしまうことがある。また、PID制御による加速制御の走行パラメータが適切でない場合、進行方向に急激に加速したり、急激に減速したりすることもある。
したがって、この実施例では、AGV20の走行状態に応じた適切な走行パラメータを算出し、これを用いてAGV20の移動を制御することにより、台車200が大きく蛇行したり、急激に加速または減速したりすることを未然に防止し、AGV20を、PID制御により、ラインに沿って確実に滑らかに移動させることができるようにしてある。
次に、AGV20の走行パラメータ、走行パラメータの最適化処理および最適化された走行パラメータを用いたAGV20の走行制御のそれぞれについて説明する。
図12はAGV20の走行パラメータの一例を示すテーブルである。図12に示すように、走行パラメータは、それぞれAGV20の走行における異なる制御を行うための複数種類のパラメータ(以下、各々のパラメータを「個別パラメータ」ということがある)の組からなり、各個別パラメータに対応して、最小値、最大値および代表値が記述される。ただし、図12に示す複数の個別パラメータは、走行パラメータの一部であり、他にも多数の個別パラメータが設けられる。図12に示す複数の個別パラメータは、AGV20の走行をPID制御によるフィードバック制御を行うためのPID走行制御パラメータと、それ以外の基本走行パラメータに大別される。
PID走行パラメータとしては、軌道ずれ量についてのPID走行制御パラメータである、Pゲイン調整(操舵P値)、Iゲイン調整(操舵I値)およびDゲイン調整(操舵D値)の各個別パラメータ、およびモータ回転数についてのPID走行制御パラメータである、Pゲイン調整(速度P値)、Iゲイン調整(速度I値)およびDゲイン調整(速度D値)の各個別パラメータを含み、これらの個別パラメータは、さらに、各走行速度について設定される。この実施例では、走行速度(分速)は、最小値が5m/minであり、最大値が100m/minであり、各走行速度は5m/min刻みで設定される。つまり、これらのパラメータは、各重量の区分に対応した異なるパラメータの組が設定される。
ここで、軌道ずれ量についてのPゲイン調整、Iゲイン調整およびDゲイン調整の各個別パラメータとは、軌道ずれ量が0に近づくように左右の車輪の回転数の差の大きさを制御することにより、AGV20がラインに沿って走行するように、AGV20の左右の進行方向を制御するための操舵制御パラメータである。
また、モータ回転数についてのPゲイン調整、Iゲイン調整およびDゲイン調整の各個別パラメータとは、モータ回転数(すなわち、AGV20の速度)が目標値に近づくように左右の車輪の回転数の平均値の大きさを制御し、AGV20が目標の速度で走行するように、AGV20の左右の進行方向を制御するための速度制御パラメータである。
つまり、AGV20の左右の車輪の回転数は、モータ回転数の走行パラメータのPID制御により算出した左右の車輪の回転数の平近値に対して、軌道ずれ量の走行パラメータのPID制御により算出した左右の車輪の回転数の差の大きさだけそれぞれ減算および加算することにより算出される。
軌道ずれ量のPゲイン調整、Iゲイン調整およびDゲイン調整のパラメータは、基準位置に対する中央位置のずれを調整するためのパラメータであり、Pゲイン調整およびDゲイン調整は、値が大きいほど軌道ずれ量の修正力が強く、Iゲイン調整は、値が小さいほど軌道ずれ量の修正力が強い。これらの個別パラメータによって、軌道ずれ量が0に近づくように左右の車輪モータ78L、78Rの回転数の差が制御される。つまり、AGV20がラインに沿って走行するようにAGV20の操舵が制御される。この制御によってAGV20が蛇行を繰り返すことによる横方向の揺れが小さくなり、AGV20が滑らかに走行することが可能となる。
モータ回転数のPゲイン調整(速度P値)、Iゲイン調整(速度I値)およびDゲイン調整(速度D値)のパラメータは、左右の車輪モータ78L、78Rの回転数の平均値、すなわちAGV20の速度の目標値に対するずれ量を調整するためのパラメータであり、Pゲイン調整およびDゲイン調整は、値が大きいほど速度の目標値に対するずれ量の修正力が強く、Iゲイン調整は、値が小さいほど速度の目標値に対するずれ量の修正力が強い。これらの個別パラメータによって、左右の車輪モータ78L、78Rの回転数の平均値、つまり、AGV20の速度が制御される。この制御によってAGV20の加速および減速による縦揺れが小さくなり、AGV20が滑らかに走行することが可能となる。
なお、後述するように、軌道ずれ量およびモータ回転数のそれぞれについての、Pゲイン調整、Iゲイン調整およびDゲイン調整の各個別パラメータは、後述するように、AGV20の左右方向に旋回を交互に繰り返す蛇行に関する評価値(揺れ幅値)と前後方向に加速と減速を繰り返す前後揺れの大きさに関する評価値(前後揺れ値)を小さくするように設定される。その理由は、Pゲイン調整、Iゲイン調整およびDゲイン調整の各個別パラメータが適切でない場合、走行をつづけているうちに蛇行または前後揺れが増幅していき、最終的にAGV20の走行支障をきたしてしまうためである。
また、基本走行パラメータとして、AGV走行速度、加速度、減速度、スピン速度、スピン加速度、脱線時停止距離、障害物検知による停止減速度の各個別パラメータをさらに含む。これらのパラメータは、さらに、各重量について設定される。この実施例では、荷重は、最小値が0kg(荷重無し)であり、最大値が200kgであり、各重量は10kg刻みで設定される。つまり、これらのパラメータは、各重量の区分に対応した異なるパラメータの組が設定される。
AGV走行速度のパラメータは、AGV20の走行目標速度(m/min)についての個別パラメータであり、この個別パラメータによって、左右の車輪モータ78L、78Rの平均回転数が制御される。
加速度のパラメータは、AGV20が目標速度に到達するまでの加速度(mm/sec)についての個別パラメータであり、この個別パラメータによって、左右の車輪モータ78L、78Rの平均回転数が制御される。
減速度のパラメータは、AGV20が目標速度に到達するまでの減速度(mm/sec)についての個別パラメータであり、この個別パラメータによって、左右の車輪モータ78L、78Rの平均回転数が制御される。
スピン速度のパラメータは、AGV20がスピン(つまり、左旋回または右旋回)するときの角速度(deg./sec)についての個別パラメータであり、この個別パラメータによって、左右の車輪モータ78L、78Rの回転数が制御される。
スピン加速度のパラメータは、AGV20がスピンを開始するときの各加速度(deg./sec)についての個別パラメータであり、この個別パラメータによって、左右の車輪モータ78L、78Rの回転数が制御される。
基本走行制御パラメータとPID走行制御パラメータの関係について以下に述べる。基本走行制御パラメータのみで左右の車輪モータ78L、78Rの回転数を算出することを試みる場合、ラインに沿って蛇行せずに走行することや、急加速や急減速のない目的の速度で滑らかに走行させることができない。このため、左右の車輪モータ78L、78Rの回転数をPID走行制御パラメータを用いてPID制御によるフィードバック制御を行うことにより、ラインに沿って蛇行せずに走行することや、急加速や急減速のない目的の速度で滑らかに走行させることを可能としている。
次に、走行パラメータの最適化処理について説明する。ただし、走行パラメータの最適化は、AGV20が配置および使用される工場または倉庫などの場所に適した走行パラメータを設定することが目的である。
走行パラメータの最適化の処理は、AGV20の走行状態に対応して割り当てられた走行パラメータ毎に実行される。上述したように、AGV20の走行状態は、搬送している荷物の荷重、AGV20の走行速度、AGV20の現在位置、前後揺れ値、振れ幅値、走行ルートおよび実施日時が該当する。
以下においては、AGV20の走行状態として、AGV20が搬送している荷物の荷重のみに着目して、走行パラメータの最適化の処理について説明するが、実際の最適化の処理では、他の走行状態、すなわち、AGV20の走行速度、AGV20の現在位置、およびAGV20の走行ルートについても考慮される。
走行パラメータの最適化処理を実行する場合には、AGV20の走行状態に応じて割り当てた走行パラメータを用いて、所定の走行ルートでAGV20を複数回走行させ、走行時における前後の揺れ(縦揺れ)の値(以下、「前後揺れ値」という)と、左右の揺れ(横揺れ)幅の値(以下、「揺れ幅値」という)を評価値として計測し、評価値が最も高くなるように、走行パラメータが最適化される。ただし、或る個別パラメータの最適化処理を実行する場合には、他のすべての個別パラメータは固定値に設定される。たとえば、軌道ずれ量のPゲイン調整の個別パラメータを最適化する場合には、これ以外の他の個別パラメータの値は固定にされる。他の個別パラメータを最適化する場合についても同様である。
ここで、前後揺れ値は、走行時においてAGV20が急激に加速または急激に減速した回数(または、度合い)を意味する。上述したように、慣性センサ(加速度センサ)90の出力に基づいて、急激に加速または急激に減速したことが判断される。また、急激に加速または急激に減速した回数は、第2所定時間(たとえば、10msec)毎にカウントされる。
また、揺れ幅値は、走行時においてAGV20の中央位置がラインの基準位置からずれるずれ量(度合)である。ずれ量は、図11を参照して説明したとおりであり、この実施例では、走行中に第2所定時間毎に検出されるずれ量の第1所定時間毎の平均値(または、最大値)が揺れ幅値として計測される。ただし、ずれ量が6を超える場合には、ラインセンサ88で検出できないため、その場合には、ずれ量は6にされる。
なお、実験室での実験結果データに基づいて走行パラメータの最適化を行う方法としては、一例として、蓄積された実験結果を周知のベイズ推定法に当て嵌めることにより行う方法がある。実験結果データに基づいて走行パラメータの初期値を設定する場合には、AGV20を工場から出荷するまでに最適化の処理(以下、「最適化処理」ということがる)が実行される。
また、他の実施例では、既に工場または倉庫などの場所で使用されている、同類のAGVに設定される走行パラメータを初期値として設定することもできる。ただし、この走行パラメータは、AGV20が搬送する荷物の荷重に応じた走行パラメータである。
ここで、ベイズ推定法を用いて実験結果データを最適化する方法について説明する。最適化の対象となる実験結果データが入力され、最適化の条件が設定される。最適化の条件は、出力定義および目的関数であり。この実施例では、出力定義は、荷重範囲(たとえば、0~50、50~100、100~150、150~200Kg)であり、目的関数は前後揺れ値と振れ幅の和である。したがって、実験結果データに対して最適化処理が施されると、走行状態(ここでは、荷重の範囲)毎に、目的関数で指定された条件すなわち前後揺れ値と振れ幅の和の期待値が最小となる走行パラメータを算出される。
[初期値の決定]
まず、走行パラメータの初期値が決定される。走行パラメータの初期値とは、走行パラメータの最適化前に設定される暫定の走行パラメータである。走行パラメータの初期値は、AGV20が通常に走行する限りにおいてはどのような数値を入力してもよいが、可能なかぎり尤もらしい数値を入力した方が走行パラメータを最適化するための実験の回数を減らすことができるので望ましい。一例として、走行パラメータの初期値は、実験環境(実験室)において、AGV20の走行試験を事前に行うことにより得られた実験結果のデータ(以下、「実験結果データ」という)に基づいて過去に最適化した走行パラメータを走行パラメータの初期値に代入することにより設定することができる。
このとき、AGV20が搬送している荷物の荷重は、実験計画として設定された荷重である。一例として、データベース18に実験結果データに基づいて最適化した走行パラメータおよび走行ルートやAGVの構成などの実験条件を記録しておき、走行ルートやAGVの構成などの実験条件が近い過去に最適化した走行パラメータを走行パラメータの初期値に代入することにより設定してもよい。その理由は、実験条件が近い過去に最適化した走行パラメータはある程度尤もらしい数値であるとみなせるからである。
[実験計画の作成]
次に、最適化サーバ12は、走行パラメータの初期値と事前に設定された実験計画作成条件に基づき実験計画を作成する。ここでいう実験計画作成条件とは、一例としては、1つの走行パラメータを最適化するための実験回数などである。また、荷重範囲ごとにそれぞれ対応した複数の走行パラメータの数値の組が設定される。
この実施例においては、走行パラメータの最適化は、一つの荷重範囲毎、一つの個別パラメータ毎に、設定された実験回数の実験走行を繰り返すことにより行われる。なお、本実施例では説明を割愛するが、複数の荷重範囲、複数の個別パラメータを同時に最適化することも可能である。
最適化サーバ12は、最適化を行う一つの荷重範囲および一つの個別パラメータを選択する。そして、選択した荷重範囲に対応する複数の走行パラメータの数値の組のうち選択した一つの個別パラメータの値を変数値として設定し、その他の個別パラメータを固定値として設定する。
そして、選択した一つの個別パラメータを変数値として変化させて設定された実験回数分の評価値のサンプルを取得するための実験走行を行うための実験計画を作成する。なお、その他の個別パラメータを固定値として初期値を代入する。
複数回の実験走行のうち、最初の1回目の実験走行においては、選択した一つの個別パラメータの変数値として初期値を設定し、2回目以降の実験走行においては、Beysian Optimization(ベイズ推定法)を用いたDesign of Experiments(実験計画法)により、選択した一つの個別パラメータの変数値を設定する。
一例としては、実験結果を周知のGausian Process Regression(ガウス過程回帰)の推定エンジンに当て嵌めることにより、次の実験に使用する走行パラメータを推定する。たとえば、操舵P値を変数として選択した場合、操舵P値を説明変数とし、前後揺れ値と振れ幅値の和を目的変数として、ガウス過程による回帰により説明変数と目的変数との間で回帰モデルを構築する。そして、回帰モデルに基づき獲得関数(acquisition function)を算出し、獲得関数に基づき次の実験に使用する走行パラメータを算出する。
次の実験に使用する走行パラメータにおいて選択した一つの個別パラメータの変数値を設定するということは、言い換えると既存のサンプルに基づき次のサンプルとして目的変数を改善するために妥当なサンプルを設定することに相当する。
獲得関数とは、サンプル候補の妥当性を評価するための指標であって、具体的には、Probability of Improvement (PI)、Expected Improvement (EI)、またはMutual Information (MI)などを適用することができる。一例としては、Probability of Improvement (PI)においては、サンプル候補が回帰モデルを改善する可能性の大きさに基づきサンプル候補の妥当性を評価する。
つまり、最適化サーバ12は、1回目の走行では、変数として選択した走行パラメータとして初期値を設定する。そして、最適化サーバ12は、1回目からN(Nは1以上の整数)回目までの走行毎に使用した走行パラメータを説明変数とし、1回目からN回目までの走行毎に評価した評価値を目的変数として、ガウス過程回帰により回帰モデルを構築し、構築した回帰モデルに基づき獲得関数を算出し、獲得関数に基づいてN+1回目の走行の走行パラメータすなわち次の実験に使用する走行パラメータを決定(推定)する。
このようにして、実験走行計画として、走行パラメータを走行毎に変化させた複数回(実験回数分)の走行が計画される。実験走行計画とは、具体的には、複数の固有パラメータのうち、変数値として選択した固有パラメータを複数回の実験走行毎にBeysian Optimization(ベイズ推定法)を用いたDesign of Experiments(実験計画法)により決定された値とし、それ以外の固有パラメータを固定値とした走行パラメータの計画である。
上述したように、実験開始当初では、走行パラメータの初期値が設定され、2回目以降では、後述するように、実験結果データに基づいた実験計画法により走行パラメータが自動的に設定される。このようにして、実験走行計画として、走行パラメータを走行毎に変化させた複数回(実験回数分)の走行が計画される。
[実験走行の実施]
最適化サーバ12は、実験走行計画として荷重値の範囲と複数回の実験走行における各走行における走行パラメータを管理サーバ16に送信する。
管理サーバ16は、AGV20から走行状態を取得し、各AGV20が搬送する荷物の荷重、および走行状況(または、使用状況)を観測する。そして、使用されていない(走行命令を実施していない)すなわち待ち状態であり、かつ、実験走行計画における荷重値の範囲の荷重の荷物を搬送するAGV20を、実験走行を行うAGV20として指定する。そして、管理サーバ16は、指定したAGV20に、実験走行計画を行うための移動ルートと移動ルートを走行するための走行パラメータを指定する走行指示を送信する。
AGV20は、走行指示に従って工場または倉庫などにおける指定された走行ルートを指定された走行パラメータにより走行し、実験結果として、前後揺れ値と、振れ幅値を検出する。前後揺れ値および揺れ幅値は、それぞれ、第1所定時間よりも短い第2所定時間(たとえば、10msec)毎に検出され、測定される。ただし、実験結果は第1所定時間毎に、管理サーバ16に送信される。
上記のように、実験走行が実験回数だけ実行される(つまり、繰り返される)ことにより、設定された実験回数分の実験結果データが取得される。なお、実験結果データは、その都度、または、実験走行が実験回数だけ実行されてから最適化処理が実行されるまでの適宜のタイミングでまとめて、管理サーバ16からデータベース18に記憶される。
[最適パラメータの算出]
また、最適化サーバ12は、実験結果をベイズ推定法に当て嵌めることにより、走行パラメータの最適化を行い、最適化された走行パラメータ(または、対象の個別パラメータ)を記憶する。具体的には、最適化サーバ12は、M回の実験走行が行われた場合に、1回目からM(Mは2以上の整数)回目までの走行毎に使用した走行パラメータを説明変数とし、1回目からM回目までの走行毎に評価した評価値を目的変数として、ガウス過程回帰により回帰モデルを構築し、構築した回帰モデルに基づいて目的変数の期待値が設定値に最も近づく走行パラメータを最適化された走行パラメータとして算出する。つまり、最適化サーバ12は、管理サーバ16からデータベース18に記憶される実験結果に基づき評価値を算出し、算出した評価値に基づいて最適化された走行パラメータを算出する。設定値としては、AGV20の走行にとって好ましい状態の値を設定する。例えば、目的変数(評価値)を前後揺れ値と振れ幅値の和とする場合には、目的変数(評価値)が小さければ小さいほどAGV20の走行にとって好ましい状態である。このような場合、設定値として0が設定され、これにより目的変数(評価値)が最小となる走行パラメータを最適化された走行パラメータとして算出する。また、別の例としては、目的変数(評価値)が大きければ大きいほどAGV20の走行にとって好ましい状態である場合には、設定値として無限大と同等とみなせる程に十分に大きい値が設定され、これにより目的変数(評価値)が最大となる走行パラメータを最適化された走行パラメータとして算出する。目的変数が最大または最小となる説明変数の期待値を最適化した走行パラメータとして算出するのは、評価の仕方で評価値の大小が逆になるからである。ただし、実験走行は、様々な荷重について行われており、各荷重についての実験結果がデータベース18に記憶されている。したがって、走行パラメータの最適化処理は、各荷重の範囲について、目的関数の期待値が設定値に最も近づく走行パラメータを算出することにより行われる。
なお、上述のように走行パラメータの最適化は、一つの個別パラメータ毎、一つの荷重範囲毎に、設定された実験回数の実験走行を繰り返すことにより行われるものである。一つの個別パラメータに対して、一つの荷重範囲について、最適パラメータが算出された後は、他の一つの個別パラメータに対して、一つの荷重範囲について、最適パラメータが算出されるように、最適化サーバ12は、最適化を行う一つの荷重範囲または一つの個別パラメータの選択を変化させて、上述の実験計画の作成から最適パラメータの算出までを繰り返し実行する。このようにして、最終的には全ての個別パラメータに対して、全ての荷重範囲について、最適パラメータが算出される。
[最適化パラメータを用いたAGV20の走行制御]
次に、AGV20の走行制御について説明する。ここでは、AGV20が工場または倉庫などの場所において、最適化パラメータを用いて、実際に荷物を搬送する場合の走行制御を説明する。この実施例では、最適化処理を施された走行パラメータを使用して、使用環境におけるAGV20の走行が制御される。また、上述したように、搬送要求は、管理サーバ16の管理者が入力してもよい。したがって、使用環境においてAGV20が走行される場合には、少なくとも、管理サーバ16とAGV20が通信可能に接続された自動走行システム10aがその使用環境に適用される。
図13は、装置(2)から装置(3)まで荷物を搬送する、装置(2)からの搬送要求に応じて、指定されたAGV20が待機場所から積載場所まで移動し、積載場所から搬送先まで荷物を搬送し、搬送先から待機場所に帰還するまでの各走行ルートの例を示す。
なお、図13では、荷重をAGV20の上に記載することにより、AGV20が台車200を牽引していることを示してある。また、図13では、旋回する点であっても単に通過するように記載してあるが、実際には、図7に示したように、左旋回または右旋回する点も含まれる。
したがって、図13に示す走行ルートの例では、図7も参照して分かるように、管理サーバ16からの走行指示に基づいて、指定されたAGV20は、まず、待機場所から直進して点Aおよび点Bを通過し、点Cで左旋回して、積載場所である装置(2)が配置される場所まで直進する。次に、このAGV20は、荷物を積載して(つまり、台車200を牽引可能に接続して)、積載場所から直進して点Fに向かい、点Fで左旋回し、点Eまで直進して、点Eで右旋回し、点Eから搬送先である装置(3)が配置される位置まで直進する。そして、このAGV20は、搬送先で、台車200の接続状態を解除し、搬送先から直進で点Hに向かい、点Hで左旋回し、点Gまで直進して、点Gで左旋回し、点Gから直進して点Dを通過し、待機場所に戻る。
この場合、待機場所から積載場所まで走行する場合と、搬送先から待機場所まで走行する場合(ここでは、これらの場合をまとめて「場合1」という)では、AGV20は台車200および荷物を牽引していない。一方、積載場所から搬送先までの走行する場合(ここでは、「場合2」という)では、AGV20は台車200および荷物を牽引している。したがって、場合1と場合2とでは、少なくとも荷重が異なる。
また、直線が多い長い走行ルートでは、高速で走行しても安全であるため、走行開始の直後において大きく加速させ、比較的高速で移動させ、走行ルートの中盤を越えたあたりから次第に減速させることが考えられる。一方、カーブが多い短い走行ルートでは、高速で走行すると蛇行し易く危険であるため、走行開始の直後において直進する場合よりも小さく加速させ、直進する場合よりも低速で移動させ、走行ルートの終盤で減速させることが考えられる。
このように、走行ルート毎であり、荷重および走行速度に応じて、AGV20の走行制御は異なるため、走行パラメータも異なる。したがって、この実施例では、走行ルート毎に、荷重および走行速度に応じた走行パラメータを用いてAGV20の走行を制御するようにしてある。
この実施例では、AGV20を走行させる場合には、管理サーバ16は、AGV20の走行ルートを決定し、決定した走行ルートに対応する、走行パラメータのテーブル(図14参照)をAGV20に送信するようにしてある。以下、走行パラメータのテーブル(走行パラメータ指定情報に相当する)を、「走行パラメータテーブル」という。
図14は最適化パラメータテーブルの一例を示す図である。図14に示すように、最適化パラメータテーブルは、最適化処理を施された走行パラメータを用いて生成されたテーブルであり、走行ルートのIDに対応して、走行パラメータテーブルが記述される。
走行ルートのIDは、走行ルートに割り当てられた識別情報であり、たとえば、図7に示したマップにおいて、複数(一例として、20)通りの走行ルートが有る場合には、最適化パラメータテーブルには、20通りの走行ルートのIDが記述される。
走行パラメータテーブルは、AGV20が搬送する荷物の荷重の区分と、AGV20の走行速度の区分で決まる走行パラメータの識別情報を記載したテーブルである。この走行パラメータが、上記の最適化処理で決定される。ただし、走行パラメータは、図12に示した複数の個別パラメータを含む。
図15は、走行パラメータテーブルAの一例を示す図である。走行パラメータテーブルAは、荷重の区分と走行速度の区分に対応して走行パラメータの数値の組が記載されている。ただし、図15では、走行パラメータの識別情報(ここでは、アルファベットと数字)のみを示してある。これは、各走行パラメータが異なることを意味する。図15に示す例では、荷重の区分は、4つの区分であり、具体的には、0~50kg、50~100kg、100~150kgおよび150~200kgの区分に分類される。
ただし、荷重の区分のうち、数値範囲の右側に記載の数値はその区分に含まれない。したがって、0~50Kgの場合には、0Kg以上50Kg未満を意味する。このことは、後述する走行速度の区分についても同様である。
また、走行速度の区分は、4つの区分であり、具体的には、0~5m/min、5~10m/min、10~15m/minおよび15~20m/minの区分に分類される。
なお、図14に示す最適化パラメータテーブルおよび図15に示す走行パラメータテーブルは一例であり、限定されるべきでない。走行ルートは、使用環境に応じて適宜変化され、荷重の区分または/および走行速度の区分はさらに細分化されてもよい。また、使用環境によっては、荷重の区分または/および走行速度の区分は統合されてもよい。
AGV20は、管理サーバ16から、走行ルートと走行パラメータテーブルを含む走行指示を受信すると、走行ルートに従って走行する。この実施例では、走行指示は、待機場所から積載場所まで走行するための積載指示、積載場所から搬送先まで走行するための搬送指示、または、搬送先から待機場所まで走行するための帰還指示を意味する。
また、AGV20は、走行ルートに沿って走行している場合には、管理サーバ16からの指示に従って所定動作(この実施例では、停止、左旋回、右旋回および速度変更)を行う。
AGV20は、管理サーバ16から受信した走行パラメータテーブルのうち、荷重の区分と走行速度の区分で決まる走行パラメータを使用して走行を制御される。ただし、AGV20は、荷重センサ86の出力から検出した荷重が含まれる荷重の区分と、管理サーバ16から指示された走行速度が含まれる走行速度の区分に応じて、使用する走行パラメータを決定する。つまり、走行状態のうち、荷重または/および走行速度に応じて走行パラメータが決定される。
たとえば、走行中に、走行速度が変化し、走行パラメータテーブルにおける走行速度の区分が変化すると、使用する走行パラメータが荷重の区分と変化した走行速度の区分とで決まる走行パラメータに変更される。
なお、走行中に、荷重が変化することは考えにくいが、荷重が変化し、走行パラメータテーブルにおける荷重の区分が変化する場合には、使用する走行パラメータが変化した荷重の区分と走行速度の区分とで決まる走行パラメータに変更される。
また、この実施例では、工場または倉庫などの場所において、AGV20が荷物を搬送する場合にも、AGV20の走行状態が検出されるため、これをデータベース18に蓄積し、定期的に(たとえば、一カ月に一回)、走行パラメータを最適化することにより、AGV20の使用環境に、より適した走行パラメータを生成および設定することができる。
この場合、最適化サーバ12は、最適化パラメータテーブルに記載されている走行パラメータと、前回の最適化から今回の最適化までの走行状態を用いて、上記のベイズ推定法により、最適化パラメータテーブルの走行パラメータテーブルに記述された各走行パラメータを最適化する。したがって、経時的に変化する使用環境に応じて、より適正な走行パラメータが設定される。
なお、当然のことではあるが、この最適化処理では、実験計画は不要であるため、実験計画および走行実験が行われることはない。
また、最適化パラメータテーブルに、走行パラメータテーブルの識別情報を記述し、AGV20に、走行ルートに対応する識別情報が示す走行パラメータテーブルを送信してもよい。
図16は図2に示した最適化サーバ12に含まれるRAM32のメモリマップ500の一例を示す図である。図16に示すように、RAM32はプログラム記憶領域502およびデータ記憶領域504を含む。
プログラム記憶領域502は、最適化サーバ12のCPU30によって実行されるプログラム(情報処理プログラム)を記憶し、情報処理プログラムは、通信プログラム502a、初期値決定プログラム502b、結果収集プログラム502c、推定プログラム502dおよび最適化プログラム502eなどを含む。
通信プログラム502aは、通信装置34を用いて、データベース18などの他の装置またはコンピュータと通信するためのプログラムである。初期値決定プログラム502bは、最適化処理を実行する場合の走行パラメータの初期値を決定するためのプログラムである。
結果収集プログラム502cは、データベース18から実験結果(実験結果データ)を収集するためのプログラムである。ただし、管理サーバ16から実験結果を収集してもよい。
推定プログラム502dは、実験結果から次の実験すべき情報すなわち実験すべき走行パラメータをガウス過程回帰(機械学習)により推定するためのプログラムである。
最適化プログラム502eは、実験結果から対象の走行パラメータを最適化するためのプログラムである。また、最適化プログラム502eは、最適化走行パラメータテーブルの走行パラメータテーブルに記述された走行パラメータを最適化するためのプログラムでもある。上述したように、最適化の処理は、実験結果をベイズ推定法に当てはめることにより実行される。
なお、プログラム記憶領域502には、情報処理プログラムの実行に必要な他のプログラムも記憶される。
データ記憶領域504には、初期データ504a、実験結果データ504b、推定データ504cおよび最適化データ504dが記憶される。
初期データ504aは、走行パラメータの初期値についてのデータである。実験結果データ504bは、実験結果についてのデータである。推定データ504cは、実験結果に基づいて推定された走行パラメータについてのデータである。最適化データ504dは、最適化された走行パラメータについてのデータである。
なお、データ記憶領域504には、情報処理プログラムの実行に必要な他のデータが記憶されたり、情報処理プログラムの実行に必要なタイマ(カウンタ)およびフラグなどが設けられたりする。
図17は図3に示した管理サーバ16に含まれるRAM52のメモリマップ600の一例を示す図である。図17に示すように、RAM52はプログラム記憶領域602およびデータ記憶領域604を含む。
プログラム記憶領域602は、管理サーバ16のCPU50によって実行されるプログラム(管理プログラム)を記憶し、管理プログラムは、通信プログラム602a、受付プログラム602b、AGV状態管理プログラム602c、AGV選択プログラム602d、走行ルート決定プログラム602e、パラメータ選択プログラム602fおよびAGV制御プログラム602gなどを含む。
通信プログラム602aは、第1通信装置54を用いて、AGV20などの他の装置またはコンピュータと通信するためのプログラムである。ただし、アクセスポイントを介して通信する場合もある。また、通信プログラム602aは、第2通信装置56を用いて、データベース18などの他の装置またはコンピュータと通知するためのプログラムでもある。
受付プログラム602bは、搬送要求を受け付けるためのプログラムである。AGV状態管理プログラム602cは、工場または倉庫などの場所に配置された複数のAGV20のうち、搬送作業に使用されている1または複数のAGV20の各々についての走行状態を管理するためのプログラムである。具体的には、各AGV20から所定時間毎に送信されるAGV20の走行状態を受信して、RAM52に記憶するとともに、データベース18に記憶(登録)する。
AGV状態管理プログラム602cは、各AGV20から送信される各AGV20の走行状態を取得するとともに、データベース18に記憶するためのプログラムである。
AGV選択プログラム602dは、各AGV20の使用状況に基づいて、荷物の搬送に使用するAGV20を選択するためのプログラムである。
走行ルート決定プログラム602eは、待機場所から積載場所までのAGV20の走行ルート、積載場所から搬送先までのAGV20の走行ルートおよび搬送先から待機場所までの走行ルートを決定するためのプログラムである。
パラメータ選択プログラム602fは、AGV20の走行を制御する場合に、走行ルートに応じた走行パラメータテーブルを選択するためのプログラムである。
AGV制御プログラム602gは、制御対象のAGV20を指定するとともに、決定した走行ルートおよび選択した走行パラメータテーブルを含む走行指示および所定動作の動作指示を当該AGV20に送信するためのプログラムである。ただし、上述したように、実験時には、最適化サーバ12によって走行ルートが指定(決定)され、最適化サーバ12によって設定された走行パラメータが走行パラメータテーブルに代えて走行指示に含まれる。
なお、プログラム記憶領域602には、管理プログラムの実行に必要な他のプログラムも記憶される。たとえば、走行中のAGV20(説明の都合上、「対象AGV20」という)の前方に、他のAGV20が停止していたり、交差点に他のAGV20が先に侵入したりしている場合には、対象AGV20を一時的に停止させるためのプログラムなども記憶される。
データ記憶領域604には、要求データ604a、状態データ604b、選択AGVデータ604cおよび最適化パラメータテーブルデータ604dが記憶される。
要求データ604aは、工場または倉庫などの場所に配置されたコンピュータ22からの搬送要求についてのデータである。ただし、複数のコンピュータ22から同時または同期に搬送要求があった場合には、要求データ604aは複数の搬送要求についてのデータである。
状態データ604bは、各AGV20についての走行状態のデータである。選択AGVデータ604cは、搬送要求に応じて、使用することを選択されたAGV20についての識別情報についてのデータである。
最適化パラメータテーブルデータ604dは、図14に示したような最適化パラメータテーブルのデータである。この最適化パラメータテーブルデータ604eは、AGV20の走行を制御するのに先立って、データベース18から取得される。
なお、データ記憶領域604には、管理プログラムの実行に必要な他のデータが記憶されたり、管理プログラムの実行に必要なタイマ(カウンタ)およびフラグなどが設けられたりする。
図18は図2に示した最適化サーバ12に内蔵されるCPU30によって実行される情報処理の一例であるパラメータ最適化処理を示すフロー図である。図18に示すように、CPU30は、パラメータ最適化処理を開始すると、ステップS1で、走行パラメータの初期値を決定する。走行パラメータの初期値の決定方法は上述したとおりである。
次のステップS3では、実験の実行を指示(実験指示)する。ここでは、CPU30は、通信装置34を使用して、実験する荷重値と走行パラメータを含む実験指示を管理サーバ16に送信する。ただし、パラメータ最適化処理の開始時には、実験指示には、走行パラメータの初期値が含まれる。2回目以降では、実験指示には、機械学習により推定された走行パラメータが含まれる。これに応じて、管理サーバ16では、CPU70は、実験指示に含まれる荷重値の荷重を牽引するAGV20を使用するAGV20として決定し、決定したAGV20に実験指示に含まれる走行パラメータを設定する。
続くステップS5では、荷重値を取得する。つまり、CPU30は、実験開始時に、実験に使用するAGV20が搬送する荷物の荷重値を管理サーバ16から取得する。続いて、ステップS7で、管理サーバ16から実験結果を収集し、ステップS9で、計画した実験回数を達成したかどうかを判断する。つまり、ステップS9では、CPU30は、実験を完了したかどうかを判断する。
ステップS9で“NO”であれば、つまり、計画した実験回数を達成していなければ、ステップS11で、実験結果から、次に実験すべき走行パラメータを機械学習により推定する。一方、ステップS9で“YES”であれば、つまり、計画した実験回数を達成していれば、ステップS13で、実験結果から、走行パラメータを最適化する。そして、ステップS15で、最適化した走行パラメータをデータベース18に記憶(登録または更新)して、パラメータ最適化処理を終了する。
図19~図21は図3に示した管理サーバ16に内蔵されるCPU50によって実行されるAGV制御処理の一例を示すフロー図である。ただし、このAGV制御処理は、AGV20が工場または走行などの場所において、最適化パラメータを使用して、実際に荷物を搬送する場合の走行制御の処理である。
図19に示すように、管理サーバ16のCPU50はAGV制御処理を開始すると、ステップS51で、AGV20の走行状態を受信したかどうかを判断する。
ステップS51で“NO”であれば、つまり、AGV20の走行状態を受信していなければ、ステップS57に進む。一方、ステップS51で“YES”であれば、つまり、AGV20の走行状態を受信すれば、ステップS53で、受信したAGV20の走行状態を記憶(更新)し、ステップS55で、受信したAGV20の走行状態をデータベース18に記憶して、ステップS57に進む。ステップS53では、状態データ604bが更新され、ステップS55では、データベース18に記憶された状態データの履歴が更新される。
ステップS57では、いずれかのコンピュータ22から搬送要求があるかどうかを判断する。ステップS57で“NO”であれば、つまり、いずれのコンピュータ22からも搬送要求が無ければ、ステップS59で、搬送中のAGV20が有るかどうかを判断する。ただし、ここでの「搬送中」とは、実際に荷物を搬送している走行状態のみならず、荷物を積載するために積載場所に移動している走行状態および荷物を搬送先に搬送した後に待機場所に帰還するために移動している走行状態を含む。
ステップS59で“NO”であれば、つまり、搬送中のAGV20が無ければ、ステップS51に戻る。一方、ステップS59で“YES”であれば、つまり、搬送中のAGV20があれば、図19に示すステップS71に進む。
また、ステップS57で“YES”であれば、つまり、いずれかのコンピュータ22から搬送要求が有れば、ステップS61で、各AGV20の使用状況を確認する。ここでは、CPU50は、選択AGVデータ604cを参照して、各AGV20の使用状況を確認する。CPU50は、選択AGVデータ604cに識別情報(AGV_ID)が記載されているAGV20は使用中であり、識別情報が記載されていないAGV20は使用していないと判断する。
続くステップS61では、搬送可能かどうかを判断する。つまり、CPU50は、使用していないAGV20が有るかどうかを判断する。ステップS61で“NO”であれば、つまり、搬送不能であれば、ステップS59に進む。この場合、搬送できない搬送要求を送信したコンピュータ22に通知するようにしてもよい。
一方、ステップS61で“YES”であれば、つまり、搬送可能であれば、ステップS65で、待機場所から積載場所までの走行ルートを決定する。続くステップS67では、図14に示した最適化パラメータテーブルから走行ルートに応じた走行パラメータテーブルを決定し、ステップS69で、対象のAGV20に積載指示を送信して、ステップS51に戻る。この実施例では、ステップS69では、CPU50は、ステップS65で決定した走行ルートと、ステップS67で決定した走行パラメータテーブルを含む走行指示を対象のAGV20に送信する。このことは、後述するステップS81、S89も同様である。
図20に示すように、ステップS71では、所定動作の実行かどうかを判断する。ここでは、対象のAGV20が、停止、左旋回、右旋回または速度変更する位置に到達したかどうかを判断する。ステップS71で“NO”であれば、つまり、所定動作の実行でなければ、ステップS75に進む。一方、ステップS71で“YES”であれば、つまり、所定動作の実行であれば、ステップS73で、所定動作の実行を対象のAGV20に指示してからステップS75に進む。
ステップS75では、AGV20が積載場所に到達したかどうかを判断する。ステップS75で“NO”であれば、つまり、AGV20が積載場所に到達していなければ、図21に示すステップS83に進む。一方、ステップS75で“YES”であれば、つまり、AGV20が積載場所に到達すれば、ステップS77で、積載場所から搬送先までの走行ルートを決定し、ステップS79で、走行ルートに応じた走行パラメータテーブルを決定し、ステップS81で、対象のAGV20に搬送指示を送信して、ステップS83に進む。
なお、AGV20では、搬送指示を受信すると、牽引アーム26を台車200と接続した状態にしてから走行(すなわち、搬送)を開始する。
図21に示すように、ステップS83では、AGV20が搬送先に到着したかどうかを判断する。ステップS83で“NO”であれば、つまり、AGV20が搬送先に到着していなければ、ステップS91に進む。
一方、ステップS83で“YES”であれば、つまり、AGV20が搬送先に到着すれば、ステップS85で、搬送先から待機場所までの走行ルートを決定し、ステップS87で、走行ルートに応じた走行パラメータテーブルを決定し、ステップS89で、対象のAGV20に帰還指示を送信する。
なお、AGV20は、帰還指示を受信すると、牽引アーム26を台車200と接続しない状態にしてから走行を開始する。
続くステップS91では、待機場所に到達したかどうかを判断する。ステップS91で“NO”であれば、つまり、待機場所に到達していなければ、ステップS51に戻る。一方、ステップS91で“YES”であれば、つまり、待機場所に到達していれば、ステップS93で、対象のAGV20の使用状況を不使用に変更して、ステップS51に戻る。
なお、ステップS57~S93の処理は、走行制御するAGV20毎に実行される。また、図19~図21に示すAGV制御処理では、搬送要求があると、待機場所から積載場所までの走行ルート、積載場所から搬送先までの走行ルートおよび搬送先から待機場所までの走行ルートを、待機場所、積載場所および搬送先のそれぞれで決定するようにしたが、搬送要求があったときに、すべての走行ルートを決定してもよい。また、この場合には、すべての走行ルートを決定したときに、各走行ルートに応じた走行パラメータテーブルも決定してもよい。
この実施例によれば、走行ルートごとに、走行ルートに応じた走行パラメータテーブルをAGVに送信するので、走行ルートごとに異なる走行パラメータを指定することができる。つまり、走行ルートごとに適切な走行パラメータを指定または設定することができる。
また、この実施例によれば、データベースから取得した最適化パラメータテーブルを使用して管理サーバがAGVの走行を制御するとともに、データベースに記憶された最適化パラメータテーブルを、AGVの走行状態の履歴を用いて定期的に最適化(更新)するので、走行パラメータを一元的に管理することにより、走行パラメータを容易に管理することができる。
なお、上述の実施例では、AGVを使用環境で走行させて、荷物を搬送させる場合には、走行ルートに応じた走行パラメータテーブルを含む走行指示をAGVに送信するようにしたが、これに限定される必要はない。予めAGVに最適化パラメータテーブルをダウンロードしておき、走行ルートに応じた走行パラメータテーブルを指定する情報を含む走行指示をAGVに送信するようにしてもよい。
この場合、管理サーバは、走行状態に含まれる荷重および走行速度を参照して、走行パラメータを指定することもできる。したがって、AGVが走行中においても、走行状態に含まれる荷重および走行速度を参照して、荷重または走行速度が使用中の走行パラメータの荷重の区分または走行速度の区分を超えた値に変化したときに、変化後の荷重の区分および走行速度の区分に応じた走行パラメータを指定することできる。
また、上述の実施例で示した最適化システムおよびAGVの具体的な構成は実際の製品において適宜変更することができる。
たとえば、AGVは台車を牽引するようにしたが、荷物をAGVに積載できる構成にしてもよい。かかる場合には、荷重センサは、積載された荷物の荷重を計測できるものが用いられる。また、荷重センサで荷重を検出するようにしたが、使用される台車がすべて同じであり、また、拠点ごとに積載される荷物の荷重が決まっている場合には、管理サーバで荷重を算出するようにしてもよい。ただし、荷物をAGVに積載したり、管理サーバで荷重を算出する場合には、荷物を積載したときに、荷重に応じた走行パラメータを指定することができる。
また、上述の実施例では、最適化サーバと管理サーバを個別に設けるようにしたが、これらの両方の機能を備える一台のサーバを設けるようにしてもよい。また、データベースは、最適化サーバまたは管理サーバに内蔵されてもよい。
さらに、上述の実施例では、実験結果をベイズ推定法に当て嵌めることにより、荷重範囲の毎に、目的関数の期待値が最小となる走行パラメータを算出することにより、走行パラメータの最適化を行うようにしたが、これに限定される必要はない。他の実施例では、ベシアン推定法を用いずに、単に、過去の実験データから前後揺れ値と振れ幅値の和が最小となる場合の走行パラメータを選択して、最適な走行パラメータとして決定するようにしてもよい。
10 …最適化システム
10a …自動走行システム
12 …最適化サーバ
16 …管理サーバ
20 …AGV
22 …コンピュータ
30、50、70 …CPU
32、52、72 …RAM
34、54、56、74 …通信装置
76 …車輪駆動回路
78 …車輪モータ
80 …昇降駆動回路
82 …昇降モータ
84 …近接センサ
86 …荷重センサ
88 …ラインセンサ
90 …慣性センサ
92 …RFタグリーダ
94 …バッテリ

Claims (12)

  1. 自動走行装置と、
    走行ルートを指定して走行を指示する走行ルート指定情報を前記自動走行装置に対して送信するとともに、前記走行ルート指定情報を前記自動走行装置に対して送信するごとに、前記指定された走行ルートを走行する際に走行を制御するための走行パラメータを指定するための走行パラメータ指定情報を前記自動走行装置に対して送信する、走行指示装置と、
    前記自動走行装置が前記走行ルート指定情報で指定された走行ルートを走行する際、当該自動走行装置の少なくとも前後揺れ値と振れ幅値を含む走行状態を反映した当該前後揺れ値と当該振れ幅値である測定値を取得する取得装置と、
    を備え、
    前記走行指示装置は、前記取得装置によって取得された測定値で反映される前記自動走行装置の走行状態に応じて変更した走行パラメータ指定情報を前記自動走行装置に送信することを特徴とする、自動走行システム。
  2. 前記走行指示装置は、前記走行パラメータ指定情報として、走行パラメータの数値データを前記自動走行装置に対して送信することを特徴とする、請求項1に記載の自動走行システム。
  3. 前記走行指示装置は、各前記走行ルートおよび当該各走行ルートに対応する各前記走行パラメータの対応関係を記憶する走行パラメータ記憶部を備える、請求項1または2に記載の自動走行システム。
  4. 前記走行パラメータは、それぞれ前記自動走行装置の走行における異なる制御を行うための複数種類のパラメータの組からなる、請求項1から3のいずれか1項に記載の自動走行システム。
  5. 前記走行パラメータは、走行ルートごとに異なる走行パラメータが設定されるものである、請求項1から4のいずれか1項に記載の自動走行システム。
  6. 前記走行パラメータは、前記自動走行装置に牽引または積載される荷物の重量である荷重の区分ごとに異なる走行パラメータが設定されるものである、請求項1から5のいずれか1項に記載の自動走行システム。
  7. 前記走行パラメータは、速度の区分ごとに異なる走行パラメータが設定されるものである、請求項1から6のいずれか1項に記載の自動走行システム。
  8. 前記走行パラメータは、前記自動走行装置が指定された線状の走行ルートに沿って走行する際の操舵制御のパラメータを含むことを特徴とする、請求項1から7のいずれか1項の自動走行システム。
  9. 前記走行パラメータは、前記自動走行装置が走行する際の加速または減速の加速度制御のパラメータを含むことを特徴とする、請求項1からのいずれか1項の自動走行システム。
  10. 前記自動走行装置が前記走行ルート指定情報で指定された走行ルートを走行する際、当該自動走行装置の走行状態を反映した測定値を取得する取得装置と、
    前記取得装置によって取得された測定値に基づき走行ルート毎に最適化された走行パラメータをそれぞれ算出する走行パラメータ最適化装置と、
    前記記憶部に記憶された前記各走行ルートに対応する前記各走行パラメータを、前記走行パラメータ最適化装置により走行ルート毎にそれぞれ算出された前記最適化された走行パラメータに更新する走行パラメータ更新装置と、
    をさらに備える、請求項3に記載の自動走行システム。
  11. 前記走行パラメータ最適化装置は、設定された期間内において前記取得装置により取得された測定値に基づき走行ルート毎に最適化された走行パラメータを算出し、
    前記走行パラメータ更新装置は、前記記憶部に記憶された前記走行ルートに対応する前記走行パラメータを前記設定された期間毎に定期的に更新することを特徴とする、請求項10に記載の自動走行システム。
  12. 自動走行装置の走行指示方法であって、
    走行ルートを指定して走行を指示する走行ルート指定情報を前記自動走行装置に対して送信するとともに、前記走行ルート指定情報を前記自動走行装置に対して送信するごとに、前記指定された走行ルートを走行する際に走行を制御するための走行パラメータを指定するための走行パラメータ指定情報を前記自動走行装置に対して送信し、
    前記自動走行装置が前記走行ルート指定情報で指定された走行ルートを走行する際、当該自動走行装置の少なくとも前後揺れ値と振れ幅値を含む走行状態を反映した当該前後揺れ値と当該振れ幅値である測定値を取得し、
    取得した前記測定値で反映される前記自動走行装置の走行状態に応じて変更した走行パラメータ指定情報を前記自動走行装置に送信する、走行指示方法。
JP2020151057A 2020-09-09 2020-09-09 自動走行システムおよび走行指示方法 Active JP7436334B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020151057A JP7436334B2 (ja) 2020-09-09 2020-09-09 自動走行システムおよび走行指示方法
US17/411,500 US20220073325A1 (en) 2020-09-09 2021-08-25 Automatic traveling system and traveling instruction method
CN202110989374.0A CN114228739A (zh) 2020-09-09 2021-08-26 自动行驶系统以及行驶指示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020151057A JP7436334B2 (ja) 2020-09-09 2020-09-09 自動走行システムおよび走行指示方法

Publications (2)

Publication Number Publication Date
JP2022045454A JP2022045454A (ja) 2022-03-22
JP7436334B2 true JP7436334B2 (ja) 2024-02-21

Family

ID=80469498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020151057A Active JP7436334B2 (ja) 2020-09-09 2020-09-09 自動走行システムおよび走行指示方法

Country Status (3)

Country Link
US (1) US20220073325A1 (ja)
JP (1) JP7436334B2 (ja)
CN (1) CN114228739A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114648278B (zh) * 2022-05-13 2022-08-05 泗水县瑞安建材有限公司 一种基于智能仓储的建材出入库管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000357194A (ja) 1999-06-16 2000-12-26 Fujitsu Ltd 公衆自動搬送システム
JP2014211810A (ja) 2013-04-19 2014-11-13 株式会社ダイフク 走行車制御システム
JP2015194924A (ja) 2014-03-31 2015-11-05 日立建機株式会社 作業機械の地図編集システム
WO2017154566A1 (ja) 2016-03-11 2017-09-14 パナソニックIpマネジメント株式会社 自動車両配車システム及びサーバ装置
JP2019021271A (ja) 2017-07-21 2019-02-07 村田機械株式会社 搬送車システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262903A (ja) * 1985-05-17 1986-11-20 Komatsu Ltd 無人車両の交通管制方法
JPS6258313A (ja) * 1985-09-09 1987-03-14 Hitachi Ltd 無人搬送車の操舵制御方法
JPS63147206A (ja) * 1986-12-11 1988-06-20 Toshiba Corp 無人走行車装置
JP2771893B2 (ja) * 1990-07-25 1998-07-02 日本輸送機株式会社 無人搬送システムにおける走行管理のシミュレーション方法
JP5783786B2 (ja) * 2011-04-28 2015-09-24 ニチユ三菱フォークリフト株式会社 ハイブリッド型産業車両
US9460410B2 (en) * 2011-11-02 2016-10-04 Wal-Mart Stores, Inc. Systems, devices and methods for integrated display and management of transportation resources
US11222299B1 (en) * 2017-08-31 2022-01-11 Amazon Technologies, Inc. Indoor deliveries by autonomous vehicles
JP6954180B2 (ja) * 2018-02-27 2021-10-27 トヨタ自動車株式会社 自動運転システム
CN108897317B (zh) * 2018-06-14 2021-03-26 上海大学 一种自动导引小车agv的路径寻优方法、相关装置及存储介质
JP7068240B2 (ja) * 2019-07-30 2022-05-16 株式会社東芝 自動走行車、自動走行車の制御システム、自動走行車の制御方法、自動走行車の制御プログラム、および記憶媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000357194A (ja) 1999-06-16 2000-12-26 Fujitsu Ltd 公衆自動搬送システム
JP2014211810A (ja) 2013-04-19 2014-11-13 株式会社ダイフク 走行車制御システム
JP2015194924A (ja) 2014-03-31 2015-11-05 日立建機株式会社 作業機械の地図編集システム
WO2017154566A1 (ja) 2016-03-11 2017-09-14 パナソニックIpマネジメント株式会社 自動車両配車システム及びサーバ装置
JP2019021271A (ja) 2017-07-21 2019-02-07 村田機械株式会社 搬送車システム

Also Published As

Publication number Publication date
JP2022045454A (ja) 2022-03-22
CN114228739A (zh) 2022-03-25
US20220073325A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
US11543818B2 (en) Cargo transport system and automated guided vehicle
US9864371B2 (en) Automated guided vehicle system
CN209946707U (zh) 一种用于仓库或车间自动运输的agv小车的车载控制系统
JP2022518012A (ja) 自動運転車用自律放送システム
JP7436334B2 (ja) 自動走行システムおよび走行指示方法
EP3705971A1 (en) Virtual coupling
US20220076579A1 (en) Automatic vehicle dispatching system and automatic vehicle dispatching method
US20220043452A1 (en) Agv having dynamic safety zone
JP7469195B2 (ja) 走行パラメータ最適化システムおよび走行パラメータ最適化方法
US20240053754A1 (en) Conveyance system and conveyance control method
CN109782761A (zh) 一种agv物流运载系统及其控制方法
US20220075381A1 (en) Required transfer time prediction device and required transfer time prediction method
JP7112803B1 (ja) 搬送システム、及び搬送制御方法
CN114296464B (zh) 一种基于二维码导航的agv控制系统及方法
US11983013B2 (en) Traveling parameter optimization system and traveling parameter optimization method
US20210362957A1 (en) Article Transport Facility
CN108803631B (zh) 一种agv小车的控制方法及装置
CN114237209B (zh) 移动时间预测装置和移动时间预测方法
JP7301409B2 (ja) 搬送システム、及び搬送制御方法
CN116848033A (zh) 移动体
JPH11134028A (ja) 自走台車の走行システム
WO2022244422A1 (ja) 走行経路設定装置およびこれを備える自律移動ロボット制御システム、走行経路設定方法、並びに走行経路設定プログラム
WO2022149285A1 (ja) 搬送システム、及び搬送制御方法
JP7415869B2 (ja) 無人搬送システム
JP7076935B1 (ja) 無人移送車走行用床装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240208

R150 Certificate of patent or registration of utility model

Ref document number: 7436334

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150