複数のAGVによる協調搬送制御に関する研究

もくじ

Intoroduction
What's AGV
outline of System
AGV 's routing function
AGV models for simulation
Simulation
Conclusion

Intoroduction

今日、大量生産による画一的な製品から人々の好みに応じた製品が求められるようになり、 多品種少量生産に対応できる生産システムが必要になりました。 これまでは専用工作機械をつなげた生産システムが利用されてきましたが、 これを中品種中量生産に用いると人手による作業が多くなり、 生産が低下してしまう問題が生じてしまいました。
そこで登場したのがFMS(Flexible Manufacturing System)です。 できるだけ工程の自動化、無人化を達成しながら、 多品種少量生産に対応できるような生産システムのことを言います。 NC工作機械、産業用ロボット、自動搬送システム、自動倉庫・・・などを導入して、 製品の加工、物流、組み立てを無人かつ様々の製品に対して行うのがFMSの目指すものなのです。
FMSがどのようなものになっているのかを、 SNK(新日本工機株式会社) さんのホームページでかいま見る事ができます。「FMS?なにそれ??」という人には、ちょっとイメージが付くと思います。

しかしFMSは様々の製品に対応できる一方、 工作に使う機械や製作中の製品(半製品 , 仕掛品などといい、英語では Work In Process:WIP(ウィップ)といいます)の流れが固定されないため、 工程のスケジュールや物流に用いるAGV(Automated Guided Vehicle:自動搬送台車)の制御が問題になっています。
さらに、様々の大きさ・重量の仕掛品が発生するような場合、それを運ぶことの出来るAGVが必要になってしまいます。 特に大型の仕掛品には、大型のAGVが必要になってしまいます。 しかし、小型や大型の仕掛品が発生する中で大型の仕掛品の発生頻度が小さければ、 大型のAGVをせっかく用意しても、利用頻度が少なくなり、導入時のコストなどを 考慮すると”もったいない”話になってしまいます。
そこで本研究では、様々の仕掛品に複数のAGVが協調作業を行うことによって対応できる搬送システムの構築を目標にしています。

What's AGV ?

もうちょっとAGVについて話をしましょう。

AGVとは"Automated Guided Vehicle"のことで、「本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し人手または自動で荷下ろしをする無軌道車両」と定義されています。
右図のように荷台があり、そこに仕掛品などを載せて搬送します。 動力源は内蔵のバッテリーで、走行路面上を無人誘導で専用の軌道をもたず自由に走行できるため、 機動性・融通性が高く、生産・流通など広範囲に使用されています。 工場の中のみならず病院の給食ワゴンの搬送などにも利用されているようです。
移動速度はだいたい 1[m/sec]。人が歩くくらいのスピードです。 人間に対する安全を確保するために、様々の規定を基にして作られています。

さらに詳しいスペックなどを知りたい方は、AGV Productsという名前そのまんまの会社がありますから、 そちらのほうを参考にしてください。 各種製品のスペックがPDF形式で落とせます。

AGV Products, Inc. http://www.agvp.com/

本研究では、このようなAGVがよってたかって作業することができれば、 大きな仕掛品でも小さなものでも運べる!!と考え、 まず、そのベースとなるシステムの構築を目的にしています。

outline of System

FMSの環境を現実に手にいれることはなかなか難しい(金銭的・政治的パワーが必要)ため、 実験ならびに評価方法はコンピュータ上で仮想的に行うことにしました。 このとき、FMSに必要な要素をプログラムによって実現しなければならないのですが、 それらはエージェントベースで作成することにします。
モジュール化されたシステムに必要な機能を一つのエージェントとして作成し、 エージェント同士がコミュニケーションを行うことによって、システム全体を構成します。 そのエージェント間のコミュニケーションの場として、 本研究室で開発されたFA用分散並列支援環境GlueLogicを利用します。 GlueLogicを利用することによって、複数のエージェントを並列に動作させることができるほか、 それらのエージェント同士のコミュニケーションが可能になります!(すんばらしい)
システムを構成するエージェントは主に以下の4種類です。

AGVエージェント
FMSにおけるAGVを制御するエージェントです。経路探索の機能を備えています。
AGVManagerエージェント
AGVを管理し、AGVに対して作業依頼を行ないます。作業内容はJobManagerから受け取ります。
workcellエージェント
FMSのワークセル(工作機械とか)を制御するエージェントです。作業シーケンスに沿ってjobを発生します。
JobManagerエージェント
ワークセルで発生したjobを管理します。AGVManagerと通信を行ない、それが待ち状態の時に管理しているjobを受け渡します。
そして、これら4つのエージェントの相関図を下に示します。


AGVManagerはJobManagerよりjobを受け取ると、まずその内容から仕掛品を搬送するのに必要なAGVの台数を算出します。 次に、待機状態にある全てのAGVに対して"経路コスト"の算出を要求します。 この経路コストとは、AGVの現在地からjobの発生したworkcellの位置までの移動時間の事をいいます。 AGVエージェントには経路探索機能が備わっているため、 AGVManagerから経路コストの算出要求があると同時に目的地までの経路を探索し、 その結果とAGV自身の移動速度から目的地までの移動時間を算出します。 そして、この経路コストはAGVManagerに返されます。
AGVManagerは受け取った経路コストの結果から、 コストの小さい順番(つまり目的地に速く到着する順ばん)に必要台数だけAGVに対して作業依頼を行ないます。 こうして作業依頼を受けたAGVは、一つのチームとなって作業を行ないます。

AGV 's routing function

AGVエージェントには経路探索の機能が備わっていると少し触れました。 では、それがいったいどのようなものなのかを、ここで簡単に説明したいと思います。
まず、AGVの現在地から目的地までの経路を探索するための方法として、 以下のような事が考えられます。
全ての経路パターンの中から最短のものを選ぶ方法
目的地までの距離が長かろうと短かろうと、とにかく目的地にたどり着ける経路を見つける方法
まずはじめの方法ですが、全ての経路パターンを探索(これを"全探索"といいます)し、 最短のものを探す事ができるのであれば、それに越した事はありません。 しかし、考えるマップの規模が大きくなればなるほど経路パターンは多くなり、 それが無限大に近づいていきます。 結果として、"組合せ爆発"が生じ、現実的な時間内に最短の経路を見つける事ができなくなってしまいます。

では、二番目の方法ではどうでしょう。 どんな経路であっても見つかってしまえば"良し"とする方法では、現実的な時間内に探索結果を得る事ができます。 しかし、非常に近い経路があるのにも関わらず、迂回経路を偶然見つけてしまう可能性もあります。 目的地までの経路は保証されますが、せっかくだったら近い方を見つけたい!ですよね。

このようなことから、今回は以下のような方法を用いて経路探索を行ないました。
マップ上に位置座標情報を持たせる
"枝刈り"という探索空間縮小化の方法を用いる
探索時の概略図を下に示します。


マップ上に位置座標を持たせているため、目的地の方向を知る事ができます。 このため方向性を持った経路探索ができるので、 間違ってもアサッテの方向に行ってしまうような経路を選ぶ事はありません。
また、"枝刈り"という方法で探索空間を小さくします。 できるだけ迂回経路はとりたくないので、「関係のない所は考慮しない」方法です。 今回は、現在地から目的地までの直線距離を計算し、 その半径(実際は "半径 + α")で描かれる円弧の外側にあるものは「考慮しない」方法をとっています。
以上のような方法を用いる事によって、

「短い時間 & 最適ではないかも知れないけれど、できるだけ短い経路」

を得る事ができるようになります。

AGV models for simulation

AGVエージェントには以上に説明したような機能が備わっています。 しかし、このようなAGVがよってたかってお御輿をかつぐように大型の仕掛品を 搬送する事が本当にいいのか?、 大型の仕掛品を運ぶ時はそれに適した大型のAGVを用意した方がいいんじゃない?? という問題があります。 このようなことを検証するために、二つのAGVモデルを用意しました。
協調作業型(model-1)
本研究のテーマとなるAGVモデルです。 このモデルのAGVは、単独では小型の仕掛品(WIP)しか運べませんが、 右図のように大型のWIPが発生した時は複数のAGVが協調して作業を行ないます。
このAGVモデルを"model-1"としました。

では実際にどのような挙動を示すのか、ということをお話しましょう。
図1は3台のAGVを用意し、大型のWIP(WIP_type3:AGVが3台必要)が発生した時のそれぞれのエージェントの挙動を表しています。 横軸に時間、縦軸にエージェントの状態をとっています。
まず、時刻11のときに大型のWIPが発生し、 AGVManagerによってそのjob内容が各AGVに受け渡されます。 すると、3台のAGVは移動をはじめます。 それぞれのAGVの初期位置、移動速度は異なるため、 速く目的地に到着したAGVは他のAGVを待ち合わせます。 そして時刻が118のとき、協調作業が開始されます。
まず、WIPの積み込み。次に荷降ろし先までの搬送。そして積み降ろし。 以上の作業ステップを踏んで作業完了となります。
ただし現段階では、移動時におけるAGVチームのフォーメーション、 カーブを曲がる時の速度制御、といったハードウェアレベルの制御は一切無視しています。

図1: AGV model-1(協調作業型)の挙動


特定WIP専用型(model-2)
WIPの大きさに応じたAGVが搬送作業をするAGVモデルです。
右図のように大型のWIPが発生した時は、大型のAGVが作業を行ないます。 このような大型のAGVは、当然ながら小型のWIPにも対応する事ができます。 このAGVモデルを"model-2"としました。

Simulation

以上に説明したAGVモデルを用いてシミュレーションを行ないました。
想定する環境は小型と大型のWIPが混在するFMSです。 このような場合、大型のWIPを搬送する事のできるAGVが必要になりますが、 大型WIPの発生頻度が小型WIPのそれに比べて低ければ、大型AGVの作業しない時間 (遊び時間)が大きくなるでしょう。 そこで、協調作業によって大型WIPを搬送するAGVモデルが、特定WIP専用のAGVモデルの 稼働率を上回り、作業時間を縮小する事ができれば、 協調作業による搬送作業の有効性が示される!!と考え、シミュレーションを行ないました。

まず、シミュレーションを行なうにあたっての実験条件です。 使用するレイアウトは右図のようなものにしました。 図中の青色で塗りつぶした矩形型は「作業エリア」を表し、ワークセルを配置する事ができます。 今回は"Loading Area"内にある作業エリアから、60秒の時間間隔でランダムにjobが発生 (大型のWIPが一定の割合で出現)し、 搬送先は"Unloading Area"内の作業エリアとしました。

そして、実験に用いるAGVは3台とし、性能設定は表1〜4のようにしました。
まずmodel-1に関しては、中速型であるmodel-1A、 高速型であるmodel-1Bの二種類を用意しました。 model-2に関しては、大型のAGVが1台含まれるmodel-2Aと、 大型のAGVが2台含まれるmodel-2Bの2種類です。
表1: model-1A(中速型)
可搬WIP速度
小型2
小型2
小型2
表2: model-1B(高速型)
可搬WIP速度
小型3
小型3
小型3

表3: model-2A
可搬WIP速度
小型3
小型3
大型・小型1
表4: model-2B
可搬WIP速度
小型3
大型・小型1
大型・小型1

このような実験条件で行なった実験結果を示します。
大型WIPの発生する割合が一定で、小型と大型のWIPが発生するため、 大型WIPの混在率に対するAGVの作業時間と平均稼働率の関係を調べました。

まず、大型WIPの混在率に対するAGVの作業時間の関係を図2に示します。

図2: model-1(協調作業型)とmodel-2(専用型)における作業時間

このグラフから、model-1Aとmodel-2Bの作業時間がほぼ一致している事から、 両者の作業能力は同等であると言えます。

次に大型WIPの混在率に対するAGVの平均稼働率の関係を図3に示します。

図3: model-1(協調作業型)とmodel-2(専用型)における平均稼働率

model-1の両者の稼働率は増加傾向にあるのに対して、 model-2の両者はほぼ最大値、および減少傾向にあります。 特に大型WIPの混在率が0〜50[%]に注目すると、 model-2の両者は平均稼働率が最大値に達している点があります。 つまりこの範囲において、model-2のAGVは全て休みなく作業をしている事が考えられます。
しかし、この範囲においてもmodel-1の両者は最大値に達していないため、 待ち状態のAGVが発生している事が考えられます。 つまり、その待ち状態のAGVにさらに作業を行なわせる事ができると考えられます。

以上のような事から、大型WIPの混在率が既知である環境では、 その混在率に対する大型の専用AGVを用意した方が作業能率は向上すると考えられるが、 混在率が未知、もしくは頻繁に変化するような環境では、 協調作業型のAGVの方が有効になる事が言えます。

Conclusion

本研究を通しての結論です。

協調搬送システムを構築し、複数のAGVによる協調作業を実現した。
AGVエージェントに経路探索などの機能を持たせる事によって処理を分散化した。
協調作業を行なうことで作業効率向上の可能性を示した。
Back