説明

無人搬送車および走行制御方法

【課題】運用が容易な無人搬送車および走行制御方法を提供する。
【解決手段】自身が走行する経路の情報である経路データ133に沿って走行する無人搬送車であって、自身の目的地に関する情報を取得し、現在位置を始点とし、目的地を終点として有する基本経路データ134がメモリデータ130に存在するか否かを判定し、存在しない場合、現在位置を始点として有する基本経路データ134をデータメモリ130から取得する取得処理と、取得した基本経路データ34の終点を新たな始点とする別の基本経路データ134をデータメモリ130から新たに取得して、終点を目的地に向けて、順に伸ばしていくつなぎ処理を、新たに取得した別の基本経路データ134の終点が、目的地に一致するまで実行し、取得した各基本経路データ134を経路データ133とするつなぎ処理部120を有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無人搬送車および走行制御方法の技術に関する。
【背景技術】
【0002】
工場の生産ラインや倉庫等において、省人化や搬送の正確性を向上させるため、自動制御で、目標走行経路上を自動的に走行させ、荷物の積み降ろしを行う無人搬送車(AGV:Automatic Guided Vehicle)が導入されている。このような無人搬送車の目標走行経路の誘導方式として各種のものが開発・適用されている。
【0003】
例えば、電磁誘導方式は、床に埋設された電線から発信される誘導磁界を無人搬送車に搭載したコイルにより検出し、無人搬送車の走行速度制御と操舵制御を行い、目標走行経路に追従した走行を行うものであり、光学方式は、床面に貼り付けられた反射テープからの反射光を無人搬送車に搭載した光学センサにより検出し、無人搬送車の走行速度制御と操舵制御を行い、目標走行経路に追従した走行を行うものである(例えば、特許文献1参照)。
【0004】
また、磁気誘導方式は、床に埋設された永久磁石または、床面に貼り付けられた磁気テープの磁気を無人搬送車に搭載した磁気検出センサにより検出し、無人搬送車の走行速度制御と操舵制御を行い、目標走行経路に追従した走行を行うものである(例えば、特許文献2参照)。
【0005】
さらに、ジャイロ方式は、無人搬送車に搭載したジャイロセンサ、および、床に埋め込んだ位置補正用の基準位置マーカを無人搬送車に搭載したセンサにより検出し、無人搬送車の走行速度制御と操舵制御を行い、目標走行経路に追従した走行を行うものである(例えば、特許文献3参照)。
【0006】
その他に、走行経路周辺の壁・柱・設備などに無人搬送車から発せられるレーザ光を反射するための反射板を取り付け、無人搬送車から発せられたレーザ光の反射光を無人搬送車に搭載したレーザ反射光検出センサにより検出しその反射光の受光角度に基づく三角測量法等の演算処理により位置を特定し、無人搬送車の走行速度制御と操舵制御を行い、目標走行経路に追従した走行を行うレーザ方式がある。
【0007】
一方、特許文献4には、レーザ距離センサで収集した計測データと、予め設定されている地図データとをマッチングさせて、現在位置を算出することによって、経路上を自律移動する移動ロボットが開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特公平4−6966号公報
【特許文献2】特開2005−339582号公報
【特許文献3】特開2001−350520号公報
【特許文献4】特許第4375320号明細書
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1〜4に記載の技術において、走行経路は予め設定されており、ユーザは、その中から、無人搬送車を走行させる走行経路を選択する。そのため、すべての走行経路について、予め設定しておかなければならず、ユーザの負担がかかるばかりか、走行経路のために大きな記憶容量を用意しなければならないという課題があり、運用が容易ではない。この課題の詳細については後記して説明する。
【0010】
このような背景に鑑みて本発明がなされたのであり、本発明は、運用が容易な無人搬送車および走行制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
前記課題を解決するため、本発明は、基本経路データを接続することによって、つなぎデータを生成し、そのつなぎデータを、無人搬送車が走行する際の経路データとすることを特徴とする。
その他の解決手段については、実施形態中で適宜記載する。
【発明の効果】
【0012】
本発明によれば、運用が容易な無人搬送車および走行制御方法を提供することができる
【図面の簡単な説明】
【0013】
【図1】本実施形態に係る無人搬送システムの構成例を示す図である。
【図2】本実施形態に係る無人搬送車におけるコントローラの構成例を示すブロック図である。
【図3】走行エリアの例を示す図である。
【図4】基本経路の例を示す図である。
【図5】これまでの経路設定方法における課題を示す図である。
【図6】本実施形態に係る無人搬送車の走行時における処理の手順を示すシーケンス図である。
【図7】本実施形態に係る走行制御処理の手順を示すフローチャートである。
【図8】第1実施形態に係る経路データ作成処理の手順を示すフローチャートである。
【図9】つなぎデータの例を示す図である。
【図10】基本経路データと、応用経路データの例を示す図である。
【図11】第2実施形態に係る経路データ作成処理の手順を示すフローチャートである。
【図12】第2実施形態に係るつなぎデータ作成処理の手順を示すフローチャートである(その1)。
【図13】第2実施形態に係るつなぎデータ作成処理の手順を示すフローチャートである(その2)。
【図14】第2実施形態に係るつなぎデータ作成処理の別の手順を示すフローチャートである。
【図15】第2実施形態に係るつなぎデータ作成処理によって作成されたつなぎデータの例を示す図である。
【発明を実施するための形態】
【0014】
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。なお、各図において同様の構成要素には同一の符号を付して、説明を省略する。
【0015】
(システム構成)
図1は、本実施形態に係る無人搬送システムの構成例を示す図である。
無人搬送システム9は、無人搬送車1、ホストコンピュータ2および運行管理コンピュータ3を有している。さらに、ホストコンピュータ2の上に上位ホストを設置することもある(図示省略)。
無人搬送車1は、経路データ133(図2)に従って走行エリア内を移動し、積荷を積んで移動したり、卸したりするものである。
ホストコンピュータ2は、LAN(Local Area Network)などのネットワーク5を介して運行管理コンピュータ3と接続しており、運行管理コンピュータ3と同じく無人搬送車1から送られた計測データ131(図2)などから地図データ132を作成したり、ユーザによる経路データ133の作成を行ったりする機能を有する。
運行管理コンピュータ3は、ホストコンピュータ2と同じく無人搬送車1から送られた計測データ131(図2)などから地図データ132を作成したり、無線親局4を介した無線LANなどによって、無人搬送車1に対し指示を送ったり、無人搬送車1から状態報告を受けたりする機能を有している。
【0016】
無人搬送車1は、コントローラ10、レーザ距離センサ20、プログラマブルコントローラ30、操舵輪40、走行輪50、タッチパネルディスプレイ60および無線子局70を有している。
コントローラ10は、無人搬送車1の動作を制御する装置である。なお、コントローラ10の詳細は図2を参照して後記する。
レーザ距離センサ20は、物体までの距離を測定可能なセンサであり、レーザや、ミリ波などを発射し、その反射光を検知して障害物までの距離を測定するセンサである。レーザ距離センサ20は、無人搬送車1の180度以上計測可能な位置に取り付けられ、180度以上のレンジで回転することができ、所定の角度ごとにレーザを発射することができるようになっている。
プログラマブルコントローラ30は、操舵角をパラメータとして制御される操舵輪40および速度をパラメータとして制御される走行輪50の制御を行う装置である。
タッチパネルディスプレイ60は、無人搬送車1の各種設定や、保守などを行う際の情報入出力装置である。
無線子局70は、無線親局4から送信される通信伝文を受信し、コントローラ10へわたす装置である。
【0017】
(コントローラ構成)
次に、図1を参照しつつ、図2に沿ってコントローラ10の構成を説明する。
図2は、本実施形態に係る無人搬送車におけるコントローラの構成例を示すブロック図である。
コントローラ10は、ROM(Read Only Memory)などのプログラムメモリ110と、RAM(Random Access Memory)などのデータメモリ(記憶部)130と、図示しないCPU(Central Processing Unit)とを有している。
データメモリ130には、計測データ131、地図データ132、経路データ133、基本経路データ134およびつなぎデータ135が格納されている。
計測データ131は、レーザ距離センサ20により測定した障害物までの距離に関するデータである。
地図データ132は、計測データ131に基づき、認識処理された結果作成され、ホストコンピュータ2、運行管理コンピュータ3あるいは図示しない地図データ作成用パソコンにて作成され、伝送された地図情報であり、無人搬送車1が走行する走行エリアの地図情報である
経路データ133は、地図データ132上に作成された無人搬送車1の走行を予定している経路の情報である。本実施形態において、経路データ133は、基本経路データ134、もしくは基本経路データ134を接続したつなぎデータ135の2種類がある。
【0018】
基本経路データ134は、プリセットされている経路の情報である。
つなぎデータ135は、基本経路データ134にない経路が選択されたときに、つなぎ処理部120によって、基本経路データ134をつないで生成される情報である。
基本経路データ134およびつなぎデータ135については、後記して説明する。
【0019】
プログラムメモリ110には、無人搬送車1を制御するための各プログラムが格納されており、これらのプログラムが実行されることにより、情報を処理する処理部(制御部)111を具現化している。処理部111は、座標変換部112、データ取得部113、計測データ取得部114、マッチング部115、位置推定部116、走行経路決定部117、走行制御部118、停止制御部119およびつなぎ処理部120を含んでいる。
【0020】
座標変換部112は、ホストコンピュータ2から取得した作業指示に含まれている目的番地を地図データ132で定義されている(すなわち、走行エリアに設定されている)座標に変換する機能を有する。ここで、番地とは、無人搬送車1が走行する走行エリアにおける所定の場所である。なお、座標変換部112は省略可能である。
データ取得部113は、データメモリ130から経路データ133や、基本経路データ134や、つなぎデータ135や、地図データ132などの各種データを取得する機能を有する。
計測データ取得部114は、リモコンによる手動運転時や、無人搬送車1の走行制御時(無人走行時)に、レーザ距離センサ20で収集された計測データ131を取得する機能を有する。
マッチング部115は、無人搬送車1の走行制御時にレーザ距離センサ20から送られた計測データ131と、地図データ132とをマッチングさせる機能を有する。
位置推定部116は、マッチング部115によるマッチング結果を基に、無人搬送車1の現在位置を推定する機能を有する。
【0021】
走行経路決定部117は、経路データ133に含まれている無人搬送車1の速度情報と、位置推定部116で推定された現在位置に基づいて、経路上における次の移動先位置を決定する機能を有する。また、無人搬送車1の経路からのずれから、ずれを修正するような操舵角を算出する機能も有している。
走行制御部118は、経路データ133に含まれている速度情報や、走行経路決定部117が算出した操舵角をプログラマブルコントローラ30へ指示する機能を有する。
停止制御部119は、無人搬送車1が目的番地に達したか否かを判定し、達していれば無人搬送車1を停止させる機能を有する。
【0022】
つなぎ処理部120は、基本経路データ134にない経路が、ホストコンピュータ2から指示されたとき、基本経路データ134を接続したつなぎデータ135を生成する機能などを有する。
【0023】
地図データ132は、ユーザが手動コントローラや、リモートコントローラなどで、無人搬送車1を手動コントロール走行させることによって収集・生成される。無人搬送車1は、手動コントロール走行しているときに、レーザ距離センサ20からレーザを発射し、その反射光を基に、障害物までの距離を計測し、計測データ131としてデータメモリ130に格納する。この計測データ131は、ホストコンピュータ2、運行管理コンピュータ3あるいは図示しない地図データ作成用パソコンにおける地図作成ソフトウェアによって、ユーザの手作業で地図データ132に編集される。編集された地図データ132は、無人搬送車1に送られ、データメモリ130に格納される。
生成された地図データ132は、壁や、障害物の輪郭の情報となる。
【0024】
基本経路データ134は、前記したようにプリセットされているデータであり、ユーザが基本経路作成ソフトウェアなどを使用して作成する。基本経路作成ソフトウェアは、ユーザが経路作成ソフトウェアで表示している地図データ(例えば、地図データ132)を参照し、地図画面上をマウスなどのポインティングデバイスでなぞることにより、簡単に基本経路データ134を作成できる機能を有している。
なお、本実施形態では、基本経路はユーザが認識する走行経路とし、コンピュータにおいて使用される基本経路の情報を基本経路データ134として、基本経路と区別することとする。
基本経路データ134は、ユーザによって番地を設定されたり、基本経路(基本経路データ134)内の区間毎に無人搬送車1の速度を設定されたりすることができる。
【0025】
(基本経路データ例)
次に、図3および図4を参照して走行エリアおよび基本経路データ134の例を説明する。
図3は、走行エリアの例を示す図である。
図3では無人搬送車1の走行エリアである工場内における経路の例を示しており、「A」〜「H」は「A番地」〜「H番地」を示している。
また、図3の「A番地」、「C番地」、「E番地」および「G番地」は「卸作業」が行われる箇所を示している。また、図3の「B番地」、「D番地」、「F番地」および「H番地」は「積作業」が行われる箇所を示している。なお、走行エリアは図3の矢印方向に一方通行である。
【0026】
図4は、基本経路の例を示す図である。
図4において、「B」、「C」、「E」、「G」は図3の「B」、「C」、「E」、「G」に対応するものである。
図4(a)では、「B番地」で荷を積んで、「C番地」で卸す基本経路を示している(B→C)。
同様に、図4(b)では、「B番地」で荷を積んで、「E番地」で卸す基本経路を示しており(B→E)、図4(c)では、「B番地」で荷を積んで、「G番地」で卸す基本経路を示している(B→G)。
このように、基本経路は積箇所→卸箇所あるいは卸箇所→積箇所で指定することができる。
【0027】
図3の例で、設定可能な基本経路は、例えば以下の通りとなる。
(1)卸→積
A→B、A→D、A→F、A→H
C→B、C→D、C→F、C→H
E→B、E→D、E→F、E→H
G→B、G→D、G→F、G→H
【0028】
(2)積→卸
B→A、B→C、B→E、B→G
D→A、D→C、D→E、D→G
F→A、F→C、F→E、F→G
H→A、H→C、H→E、H→G
【0029】
地図データ132と、基本経路データ134の作成は、前記したように、1台の無人搬送車1で収集した計測データ131を基にホストコンピュータ2、運行管理コンピュータ3あるいは図示しない地図データ作成用パソコンで行われ、使用するすべての無人搬送車1に適用する。
なお、地図データ132と基本経路データ134の作成は、任意の1台を用いて行うのではなく、オンライン投入するすべての無人搬送車1毎について行うこともできる。なぜならば、無人搬送車1毎に基本経路データ134を作成することは、レーザ距離センサ20や走行系(操舵輪40、走行輪50)の固体差が大きい場合は、1台の無人搬送車1で収集した地図データ132をすべての無人搬送車1に適用することが困難な場合に有効だからである。
【0030】
なお、以下の説明では、前記した設定可能な基本経路から、A→B、B→C、C→D、D→E、E→F、F→G、G→H、H→Aが基本経路(つまり、基本経路データ134)として設定されているものとする。これらの基本経路は、例えば、頻繁に使用する走行経路などである。
【0031】
(これまでの方法の課題)
以下、図5を参照して、磁気誘導体を使用した、これまでの経路設定方法における課題を説明する。
図5に示すような走行経路の例で、分岐イ〜ハが存在するとき、前記した設定可能な基本経路は分岐を考慮して以下のようになる。
(卸→積)
A→B:分岐無し
A→D:イ/直進
A→F:イ/直進、ロ/右
A→H:イ/右
C→B:ロ/右、ハ/右
C→D:分岐無し
C→F:ロ/右
C→H:ロ/右
E→B:ハ/右
E→D:ハ/右、イ/直進
E→F:分岐無し
E→H:分岐無し
G→B:ハ/右
G→D:ハ/右、イ/直進
G→F:ハ/右、イ/直進、ロ:右
G→H:分岐無し
【0032】
(積→卸)
B→A:イ/右、ハ/右
B→C:イ/直進
B→E:イ/直進、ロ/右
B→G:イ/右
D→A:ロ/右、ハ/右
D→C:ロ/右、ハ/右、イ/直進
D→E:ロ/右
D→G:ロ/右
F→A:ハ/右
F→C:ハ/右、イ/直進
F→E:ハ/右、イ/直進、ロ/右
F→G:分岐無し
H→A:ハ/右
H→C:ハ/右、イ/直進
H→E:ハ/右、イ/直進、ロ/右
H→G:ハ/右、イ/右
【0033】
以上のように、すべての走行経路を網羅しようとすると、分岐点まで含めて考慮しなければならないので、基本経路データ134の数が増大し、基本経路データ134を設定するユーザの負担になるとともに、データメモリ130の容量も大きなものにしなければならない。図5の例は、単純な走行経路を示しているが、特に、走行経路が複雑なものは、設定する基本経路データ134の数が膨大なものとなってしまう。
【0034】
(走行時における制御処理)
次に、図1および図2を参照しつつ、図6および図7に沿って無人搬送車1を走行させる際の処理を説明する。
図6は、本実施形態に係る無人搬送車の走行時における処理の手順を示すシーケンス図である。
オンライン投入する際、まず、ユーザが無人搬送車1をある番地まで持っていき、例えばタッチパネルディスプレイ60を介して現在番地を入力する。なお、このとき、基本経路データ134は、無人搬送車1にプリセットされている。
これにより、無人搬送車1はホストコンピュータ2へオンライン投入した旨の情報を送る(S301)。ここで、オンライン投入した旨の情報は、次作業の問い合わせを兼ねている。
運行管理コンピュータ3を介して、無人搬送車1からの兼・次作業問い合わせを受信したホストコンピュータ2は無人搬送車1へ作業指示を送信する(S302)。この作業指示には、目的番地と、その目的番地で行われる作業内容に関する情報が格納されている(ステップS302の例では積作業が行われる)。
運行管理コンピュータ3を介して作業指示を受信した無人搬送車1は、図7で後記する走行制御を行い(S303)、現在の状態(番地通過情報、作業完了情報など)を運行管理コンピュータ3へ報告する(S304)。
無人搬送車1は、目的番地へ到着するまでステップS303およびステップS304の処理を繰り返す。
【0035】
そして、走行制御(S305)後、目的番地へ到着し、作業(ここでは、積作業)が完了すると、無人搬送車1は積作業が完了した旨の状態報告を運行管理コンピュータ3へ送信する(S306)。
積作業が完了した旨の状態報告を受信した運行管理コンピュータ3は、同様の状態報告をホストコンピュータ2へ送信する。
次に、ホストコンピュータ2は、次作業として卸作業の作業指示を運行管理コンピュータ3を介して無人搬送車1へ送信する(S307)。この作業指示には、目的番地と作業内容(ステップS307の例では卸作業)に関する情報が格納されている。
運行管理コンピュータ3を介して作業指示を受信した無人搬送車1は、図7で後記する走行制御を行い(S308)、現在の状態(番地通過情報、作業完了情報など)を運行管理コンピュータ3へ報告する(S309)。
無人搬送車1は、目的番地へ到着するまでステップS308およびステップS309の処理を繰り返す。
【0036】
そして、走行制御(S310)後、目的番地へ到着し、作業(ここでは、卸作業)が完了すると、無人搬送車1は卸作業が完了した旨の状態報告(卸作業完了報告)を運行管理コンピュータ3へ送信する(S311)。これは、次作業の問い合わせを兼ねている。
卸作業が完了した旨の状態報告を受信した運行管理コンピュータ3は、同様の状態報告をホストコンピュータ2へ送信する。
【0037】
運行管理コンピュータ3を介して、卸作業完了報告を受信したホストコンピュータ2は無人搬送車1へ、次の作業指示を送信する(S312)。
ここでは、作業内容として移動(積作業および卸作業を行わない)を指示することとする。
運行管理コンピュータ3を介して作業指示を受信した無人搬送車1は、図7で後記する走行制御を行い(S313)、現在の状態(番地通過情報、作業完了情報など)を運行管理コンピュータ3へ報告する(S314)。
無人搬送車1は、目的番地へ到着するまでステップS313およびステップS314の処理を繰り返す。
【0038】
そして、走行制御(S315)後、目的番地へ到着すると、無人搬送車1は目的番地へ到着した旨の状態報告(移動作業完了報告)を運行管理コンピュータ3へ送信する(S316)。これは、次作業の問い合わせを兼ねている。
移動作業が完了した旨の状態報告を受信した運行管理コンピュータ3は、同様の状態報告をホストコンピュータ2へ送信する。
運行管理コンピュータ3を介して移動作業完了報告を受信したホストコンピュータ2は、次作業の確認を行う(S317)。
【0039】
なお、図6では、ステップS306で積作業の完了報告を受けたホストコンピュータ2が、すぐに次作業である卸作業の指示を無人搬送車1に送信しているが、無人搬送車1からの次作業問い合わせを受信してから次作業の指示を無人搬送車1へ送信するようにしてもよい。なお、卸作業や、移動作業の場合も同様である。
また、図6で目的番地に到達していない場合、無人搬送車1は状態報告を行わないようにしてもよい。
【0040】
さらに、無人搬送車1に異常が発生した場合、オンライン投入時と同じように例えばタッチパネルディスプレイ60を介して無人搬送車1に現在番地を入力することによって、無人搬送車1が自律的に現在位置を取得する。
【0041】
(走行制御処理)
図7は、本実施形態に係る走行制御処理の手順を示すフローチャートである。なお、図7の処理は、図6のステップS303,S305,S308,S310,S313,S315の処理の詳細に該当する処理である。
まず、無人搬送車1は運行管理コンピュータ3を介して作業指示を受信する(S401)。
そして、無人搬送車1のコントローラ10におけるつなぎ処理部120が、経路データ作成処理を行う(S402)。ステップS402の処理については、図8〜図15を参照して後記する。なお、このとき、無人搬送車1の座標変換部112は、経路データ133に格納されている番地と座標との対応情報に従って、作業指示に含まれている目的番地を座標に変換する。
無人搬送車1のデータ取得部113は、作成された経路データ133を取得する(S403)。
【0042】
続いて、レーザ距離センサ20が、図4で説明したレーザ測距を行い、計測データ取得部114がレーザ測距の結果(計測データ131)を取得する位置決定用レーザ距離センサ測定を行う(S404)。
そして、マッチング部115が、データメモリ130に格納されている地図データ132と、ステップS404で取得した計測データ131とのマッチングを行い(S405)、位置推定部116が、ステップS405のマッチング結果を基に現在の無人搬送車1の現在位置(X,Y)を推定する(S406)。ステップS405およびステップS406の処理は特許文献4に記載の技術であるため詳細な説明を省略するが、概略すると計測データ131の形状に合致する箇所を地図データ132上で検索し、その検索結果から無人搬送車1の現在位置を推定する。推定された現在位置は、座標の形で得られる。
【0043】
次に、走行経路決定部117が、経路データ133に設定されている速度情報vに基づき、移動距離d、実際の移動距離daを決定する(S407)。
移動距離の決定は、経路データ133に設定されている速度が大きいほど、移動距離が大きくなるようにする。例えば、速度と移動距離を正比例の関係を持たせるようにしてもよいし、速度と移動距離の関係を二次関数や、さらに、高次の関数の関係を有するようにしてもよい。
【0044】
ステップS407の後、走行経路決定部117は、ステップS407で求めた移動距離dと、現在位置座標(X,Y)に基づいて、経路上に目標となる移動先座標を決定することによって当面の移動先位置を決定する(S408)。
【0045】
次に、走行経路決定部117は、現在座標(X,Y)とステップS408で決定した移動先座標を基に、移動先座標に向かう角θである操舵角θを決定する(S409)。ステップS409の処理は、図12および図5を参照して後記する。
また、走行経路決定部117は、現在座標(X,Y)に基づき、経路上に設定されている速度vを経路データ133から再度取得することによって速度を決定する(S410)。
【0046】
この段階で、無人搬送車1を動かすための操舵角θ、速度vが決定されたので、走行制御部118は、これらのパラメータをプログラマブルコントローラ30に送ることにより、移動距離dの終点である移動先を目指して、無人搬送車1を移動させる(S411)。実際には、移動距離d分の移動時間より早いタイミングで、次のレーザ距離センサ20の計測が行われる。
【0047】
次のレーザ距離センサ計測時(30msec後)、停止制御部119は、無人搬送車1が目的番地(目的番地に対応した座標)に到達したか否かを判定する(S412)。
ステップS412の結果、無人搬送車1が目的番地に到達していない場合(S412→No)、処理部111はステップS404へ処理を戻す。
ステップS412の結果、無人搬送車1が目的番地に到達している場合(S412→Yes)、処理部111は走行制御処理を終了する。
【0048】
(経路データ作成処理)
以下、図1、図2を参照しつつ、経路データ作成処理(図7のステップS402)の説明を第1実施形態、第2実施形態に分けて説明する。
なお、第1実施形態および第2実施形態における経路データ作成処理を実行する無人搬送車1およびコントローラ10の構成は、図1および図2で前記した通りである。
【0049】
[第1実施形態]
図8は、第1実施形態に係る経路データ作成処理の手順を示すフローチャートである。なお、第1実施形態では、基本経路データ134は、一方向のデータのみを有している。
まず、つなぎ処理部120は、作業指示に含まれる目的番地を取得する(S501)。
次に、つなぎ処理部120は、現在停止している位置(現在停止位置)を開始位置とする(S502)。
そして、つなぎ処理部120は、基本経路データ134を参照して、開始位置(現在停止位置)から目的番地までの基本経路データ134が存在するか否かを判定する(S503)。
ステップS503の結果、開始位置から目的番地までの基本経路データ134が存在する場合(S503→Yes)、つなぎ処理部120は、その基本経路データ134を経路データ133とし(S504)、処理部111は図8の処理を終え、図7のステップS403へ処理を戻す。
【0050】
ステップS503の結果、開始位置から目的番地までの基本経路データ134が存在しない場合(S503→No)、つなぎ処理部120は、現在の開始位置を始点とする基本経路データ134が存在するか否か(流用可能な基本経路データ134が存在するか否か)を判定する(S505)。
ステップS505の結果、現在の開始位置を始点とする基本経路データ134が存在しない場合(S505→No)、つなぎ処理部120はタッチパネルディスプレイ60などにエラー表示を行い(S506)、処理部111は走行制御処理を強制終了する(S507)。
【0051】
ステップS505の結果、現在の開始位置を始点とする基本経路データ134が存在する場合(S505→Yes)、つなぎ処理部120は、その基本経路データ134を取得する(S508)。なお、現在の開始位置を始点として有する基本経路データ134が、複数存在する場合については第2実施形態で後記する。
そして、つなぎ処理部120は、ステップS508で取得した基本経路データ134と同じ基本経路データ134がつなぎデータ135中に既に存在するか否かを判定する(S509)。つまり、つなぎ処理部120は、つなぎデータ135内において、基本経路データ134がループしていないか否かを判定する。なお、最初の処理ループでは、ステップS509の判定は、必ず「No」となり、2回目以降の処理ループから「Yes」と判定される可能性がでてくる。
【0052】
ステップS509の結果、ステップS508で取得した基本経路データ134と同じ基本経路データ134がつなぎデータ135中に既に存在する場合(S509→Yes)、つなぎ処理部120はタッチパネルディスプレイ60などにエラー表示を行い(S506)、走行制御処理を強制終了する(S507)。走行制御処理を強制終了を行うわけは、本実施形態では、基本経路データ134の分岐などを想定していないため、つなぎデータ135内において、基本経路データ134がループしてしまうと、始点を同じにする他の基本経路データ134を検索することが不可能なためである。なお、始点を同じにする複数の基本経路データ134が存在する場合については、第2実施形態で説明する。
【0053】
ステップS509の結果、ステップS508で取得した基本経路データ134と同じ基本経路データ134がつなぎデータ135中に存在しない場合(S509→No)、つなぎ処理部120は、取得した基本経路データ134をつなぎデータ135に格納する(S510)。処理ループが最初であれば、つなぎ処理部120は取得した基本経路データ134をつなぎデータ135の一番最初に格納し、処理ループが2番目以降であれば、つなぎ処理部120はつなぎデータ135における前の基本経路データ134の次に、取得した基本経路データ134を順に格納する。
【0054】
次に、つなぎ処理部120は、ステップS510で格納した基本経路データ134の終点が、目的番地と一致するか否かを判定する(S511)。
ステップS511の結果、ステップS510で格納した基本経路データ134の終点が、目的番地と一致する場合(S511→Yes)、つなぎ処理部120は現在のつなぎデータ135を経路データ133とし(S512)、データメモリ130に経路データ133として保存した後、図8の処理を終え、図7のステップS403へ処理を戻す。
【0055】
ステップS511の結果、ステップS510で格納した基本経路データ134の終点が、目的番地と一致しない場合(S511→No)、つなぎ処理部120は、ステップS510で格納した基本経路データ134の終点を開始位置とし(S513)、ステップS505へ処理を戻す。
【0056】
図9は、つなぎデータの例を示す図である。
図9に示すように、つなぎデータ135は基本経路(基本経路データ134)が、順番に格納された構成となっている。
【0057】
(第1実施形態のまとめ)
第1実施形態によれば、設定されていない経路については、基本経路データ134を接続することで、新たに経路データ133を作成することができるので、経路データ133を設定するユーザの負担を軽減することができるとともに、データメモリ130の容量を小さくすることができる。
例えば、頻繁に使用する走行経路を、基本経路データ134として設定しておき、あまり使用しない走行経路は、つなぎデータ135として生成することなどが可能となる。
【0058】
《第2実施形態》
次に、図10〜図15を参照して、本発明に係る第2実施形態を説明する。
第2実施形態では、同じ始点を有する基本経路が複数ある場合におけるつなぎデータ135の作成方法である。
【0059】
図10は、基本経路データと、応用経路データの例を示す図である。
各基本経路に対し、基本経路のバリエーションを応用経路と称することとする。図10の例では、「基本経路B→C」の応用経路が「応用経路B→G」となる。つまり、同じ始点「B」を有する「基本経路B→C」のバリエーションを「応用経路B→G」とする。このとき、始点「B」を重複始点と称することとする。つまり、応用経路とは、基本経路の一種である。
【0060】
図11は、第2実施形態に係る経路データ作成処理(図7のステップS402)の手順を示すフローチャートである。
まず、つなぎ処理部120は、図12〜図14で後記する処理を行って、つなぎデータ作成処理を行う(S601)。
次に、つなぎ処理部120は、つなぎデータ135が複数存在するか否かを判定する(S602)。
ステップS602の結果、つなぎデータ135が複数存在しない場合(S602→No)、つまり、つなぎデータ135が1つしか作成されなかった場合、つなぎ処理部120は、当該つなぎデータ135を経路データ133とする(S606)。
【0061】
ステップS602の結果、つなぎデータ135が複数存在する場合(S602→Yes)、後記するつなぎデータ選択処理のためのつなぎデータ計算を行う(S603)。つなぎデータ計算の計算対象は、次に説明するつなぎデータ選択処理の選択基準による。本実施形態では、つなぎデータ選択処理の選択基準として、つなぎデータ135における始点から終点までの経路の距離を採用しているため、ステップS603において、つなぎ処理部120は、ステップS601で作成した各々のつなぎデータ135における始点から終点までの経路の距離を計算する。
【0062】
そして、ステップS601で作成された複数のつなぎデータ135から最適な(予め設定されている条件を満たす)つなぎデータ135を選択するつなぎデータ選択を行う(S604)。最適なつなぎデータ135の選択方法は、例えば、つなぎデータ135における始点から終点までの経路の距離が短い方を最適なつなぎデータ135とする。この他に、つなぎデータ135の始点から終点まで到達する時間の短いつなぎデータ135を最適なつなぎデータ135としてもよい。この場合は、ステップS603において、つなぎ処理部120はつなぎデータ135の始点から終点まで到達する時間を計算することとなる。
【0063】
続いて、つなぎ処理部120は、ステップS604で選択したつなぎデータ135を経路データ133とし(S605)、データメモリ130に経路データ133として保存すると、処理部111は図11の処理を終え、図7のステップS403へ処理を戻す。
【0064】
図12および図13は、第2実施形態に係るつなぎデータ作成処理(図11のステップS601)の手順を示すフローチャートである。
図12のステップS701〜S707の処理は、図8のステップS501〜S507と同様の処理であるため、説明を省略する。
【0065】
ステップS705の結果、現在の開始位置を始点とする基本経路データ134が存在する場合(S705→Yes)、つなぎ処理部120は現在の開始位置が重複始点であるか否かを判定する(S708)。重複始点であるか否かの判定は、現在の開始位置を始点として有する基本経路データ134および応用経路データが複数存在するか否かを、つなぎ処理部120が判定することによって行う。
ステップS708の結果、現在の開始位置が重複始点ではない場合(S708→No)、つなぎ処理部120は現在の開始位置を始点とする基本経路データ134を取得する(S709)。
【0066】
ステップS708の結果、現在の開始位置が重複始点である場合(S708→Yes)、つなぎ処理部120は対象となっている始点(つまり、現在の開始位置)を重複始点として登録する(S710)。登録は、例えば、重複始点を示すフラグなどを付すことによって行われる。
次に、つなぎ処理部120は、複数存在する基本経路データ134から、基本経路データ134を選択し(S711)、取得する。このとき選択される基本経路データ134は、例えば、基本経路データ134のリスト(図10参照)の最も上位にある基本経路データ134などである。以降、ここで選択されなかった基本経路データ134のバリエーションを応用経路データと称する。
【0067】
次に、つなぎ処理部120は、ステップS709で取得した基本経路データ134、あるいはステップS711で選択され、取得された基本経路データ134と同じ基本経路データ134がつなぎデータ135中に既に存在するか否かを判定する(S712)。
ステップS712の結果、取得された基本経路データ134と同じ基本経路データ134がつなぎデータ135中に既に存在する場合(S712→Yes)、つなぎ処理部120はタッチパネルディスプレイ60などにエラー表示を行い(S706)、走行制御処理を強制終了する(S707)。
【0068】
ステップS712の結果、取得された基本経路データ134と同じ基本経路データ134がつなぎデータ135中に存在しない場合(S712→No)、つなぎ処理部120は、取得した基本経路データ134をつなぎデータ135に格納する(S713)。一番最初であれば、つなぎ処理部120は取得した基本経路データ134をつなぎデータ135の一番最初に格納し、2番目以降であれば、つなぎ処理部120はつなぎデータ135における前の基本経路データ134の次に、取得した基本経路データ134を順に格納する。
【0069】
次に、つなぎ処理部120は、ステップS713で格納した基本経路データ134の終点が、目的番地と一致するか否かを判定する(S714)。
ステップS714の結果、ステップS713で格納した基本経路データ134の終点が、目的番地と一致しない場合(S714→No)、つなぎ処理部120は、ステップS713で格納した基本経路データ134の終点を開始位置とし(S715)、ステップS705へ処理を戻す。
【0070】
ステップS714の結果、ステップS713で格納した基本経路データ134の終点が、目的番地と一致する場合(S714→Yes)、つなぎ処理部120は、登録された重複始点のうち、未使用の重複始点が存在するか否かを判定する(図13のS801)。未使用の重複始点とは、例えば、「使用済」のフラグが付されていない重複始点のことである。
【0071】
ステップS801の結果、未使用の重複始点が存在しない場合(S801→No)、つなぎ処理部120は、図13の処理を終え、図11のステップS602へ処理を戻す。
ステップS801の結果、重複始点が存在する場合(S801→Yes)、つなぎ処理部120は、該始点(すなわち、重複始点)直前までの基本経路データ134を追加つなぎデータにコピーする(S802)。ここで、追加つなぎデータとは、追加して作成されるつなぎデータ135のことである。
【0072】
次に、つなぎ処理部120は、重複始点を始点とする応用経路データの終点を始点とする基本経路データ134が、コピー元のつなぎデータ135中に存在するか否かを判定する(S803)。
ステップS803の結果、重複始点を始点とする応用経路データの終点を始点とする基本経路データ134が、コピー元のつなぎデータ135中に存在する場合(S803→Yes)、つなぎ処理部120は、応用経路データの区間に相当する基本経路データ134を、該当する応用経路データに置換し(S804)、それ以降の基本経路データ134を追加つなぎデータにコピーし、ステップS801へ処理を戻す。このとき、つなぎ処理部120は処理の対象となった重複始点に「使用済」のフラグを付す。
【0073】
ステップS803の結果、重複始点を始点とする応用経路データの終点を始点とする基本経路データ134が、コピー元のつなぎデータ135中に存在しない場合(S803→No)、つなぎ処理部120は、応用経路データを追加つなぎデータに追加格納する(S805)。
そして、つなぎ処理部120は、格納した応用経路データの終点(つまり、追加つなぎデータの終点)を開始位置とする(S806)。
【0074】
次に、つなぎ処理部120は、現在の開始位置を始点とする基本経路データ134が存在するか否か(流用可能な基本経路データ134が存在するか)を判定する(S807)。
ステップS807の結果、現在の開始位置を始点とする基本経路データ134が存在しない場合(S807→No)、つなぎ処理部120は、現在、処理の対象となっている重複始点に対し、「使用済」のフラグ(「使用済」フラグ)を付し(S808)、作成している追加つなぎデータを削除した(S809)後、ステップS801へ処理を戻す。
ステップS807の結果、現在の開始位置を始点とする基本経路データ134が存在する場合(S807→Yes)、つなぎ処理部120は現在の開始位置が登録されていない重複始点であるか否かを判定する(S810)。重複始点であるか否かの判定は、図12のステップS708と同様の手順で行われる。
ステップS810の結果、現在の開始位置が登録されていない重複始点ではない場合(S810→No)、つなぎ処理部120は現在の開始位置(すなわち、処理対象となっている重複始点)を始点とする基本経路データ134を取得する(S811)。
【0075】
ステップS810の結果、現在の開始位置が登録されていない重複始点である場合(S810→Yes)、つなぎ処理部120は対象となっている始点(つまり、現在の開始位置)を重複始点として登録する(S812)。前記したように、登録は、例えば、重複始点を示すフラグなどを付すことによって行われる。
次に、つなぎ処理部120は、複数存在する基本経路データ134を選択し(S813)、取得する。このとき選択される基本経路データ134は、例えば、基本経路データ134のリスト(図10参照)の最も上位にある基本経路データ134などである。以降、ここで選択されなかった基本経路データ134のバリエーションを応用経路データと称する。
【0076】
そして、つなぎ処理部120は、ステップS811で取得した基本経路データ134、あるいはステップS813で選択され、取得された基本経路データ134と同じ基本経路データ134が、処理対象となっている追加つなぎデータ中に既に存在するか否かを判定する(S814)。
ステップS814の結果、取得された基本経路データ134と同じ基本経路データ134が追加つなぎデータ中に既に存在する場合(S814→Yes)、つなぎ処理部120は、現在、処理の対象となっている重複始点に対し、「使用済」のフラグ(「使用済」フラグ)を付し(S808)、作成している追加つなぎデータを削除した(S809)後、ステップS801へ処理を戻す。
【0077】
ステップS814の結果、取得された基本経路データ134と同じ基本経路データ134が追加つなぎデータ中に存在しない場合(S814→No)、つなぎ処理部120は、取得した基本経路データ134を追加つなぎデータに追加格納する(S815)。
次に、つなぎ処理部120は、ステップS815で格納した基本経路データ134の終点が、目的番地と一致するか否かを判定する(S816)。
ステップS816の結果、ステップS815で格納した基本経路データ134の終点が、目的番地と一致しない場合(S816→No)、つなぎ処理部120は、ステップS815で格納した基本経路データ134の終点を開始位置とし(S817)、ステップS807へ処理を戻す。
ステップS816の結果、ステップS815で格納した基本経路データ134の終点が、目的番地と一致する場合(S816→Yes)、つなぎ処理部120は、ステップS801へ処理を戻す。
【0078】
次に、図12を参照しつつ、図14に沿って第2実施形態に係るつなぎデータ作成処理の別の手順を説明する。
図14は、第2実施形態に係るつなぎデータ作成処理の別の手順を示すフローチャートである。
図12のステップS715までは、前記した第2実施形態(基本例)の処理と同様である。
図12のステップS714の結果、ステップS713で格納した基本経路データ134の終点が、目的番地と一致する場合(S714→Yes)、つなぎ処理部120は、登録された重複始点のうち、未使用の重複始点が存在するか否かを判定する(図14のS901)。未使用の重複始点とは、例えば、「使用済」のフラグが付されていない重複始点のことである。
【0079】
ステップS901の結果、重複始点が存在しない場合(S901→No)、処理部111は図14の処理を終え、図11のステップS602へ処理を戻す。
ステップS901の結果、重複始点が存在する場合(S901→Yes)、つなぎ処理部120は、現在停止している位置(現在停止位置)を開始位置とする(S902)。
続いて、つなぎ処理部120は、現在の開始位置が重複始点であるか否かを判定する(S903)。重複始点であるか否かは、処理対象となっている開始位置が、図12のステップS710で重複始点として登録されているか否かをつなぎ処理部120が判定することによって行われる。
ステップS903の結果、現在の開始位置が重複始点ではない場合(S903→No)、つなぎ処理部120は現在の開始位置を始点とする基本経路データ134を取得する(S904)。
【0080】
ステップS903の結果、現在の開始位置が重複始点である場合(S903→Yes)、つなぎ処理部120は、応用経路データを1つ選択し(S905)、取得する。このとき、つなぎ処理部120は、例えば、応用経路データのうち、リストの上位に存在する応用経路データを選択する。また、つなぎ処理部120は、該当する重複始点に、例えば、「使用済」のフラグを付す。
ステップS904またはステップS905の処理後、つなぎ処理部120は、取得した基本経路データ134あるいは応用経路データと同じ基本経路データ134あるいは応用経路データが追加つなぎデータ中に既に存在するか否かを判定する(S906)。
【0081】
ステップS906の結果、追加つなぎデータ中に既に存在する場合(S906→Yes)、つなぎ処理部120は、処理の対象となっている重複始点に対し、「使用済」のフラグ(「使用済」フラグ)を付し(S907)、作成している追加つなぎデータを削除した(S908)後、ステップS901へ処理を戻す。
ステップS906の結果、追加つなぎデータ中に存在しない場合(S906→No)、つなぎ処理部120は、取得した基本経路データ134または応用経路データを追加つなぎデータに格納する(S909)。一番最初であれば、つなぎ処理部120は取得した基本経路データ134または応用経路データを追加つなぎデータの一番最初に格納し、2番目以降であれば、つなぎ処理部120は追加つなぎデータにおける前の基本経路データ134または応用経路データの次に、取得した基本経路データ134または応用経路データを格納する。
【0082】
次に、つなぎ処理部120は、ステップS909で格納した基本経路データ134または応用経路データの終点が、目的番地と一致するか否かを判定する(S910)。
ステップS910の結果、ステップS909で格納した基本経路データ134または応用経路データの終点が、目的番地と一致しない場合(S910→No)、つなぎ処理部120は、ステップS909で格納した基本経路データ134または応用経路データの終点を開始位置とし(S911)、ステップS903へ処理を戻す。
ステップS910の結果、ステップS909で格納した基本経路データ134または応用経路データの終点が、目的番地と一致する場合(S910→Yes)、つなぎ処理部120は、ステップS901へ処理を戻す。
【0083】
図15は、第2実施形態に係るつなぎデータ作成処理によって作成されたつなぎデータの例を示す図である。
図15(a)がつなぎデータ135を示しており、図15(b)が追加つなぎデータを示す。
ここで、例えば、各基本経路の長さが以下のようであるとする。
A→B:1,000mm
B→C:8,000mm
C→D:1,000mm
D→E:5,000mm
E→F:1,000mm
F→G:8,000mm
G→H:1,000mm
H→A:5,000mm
【0084】
さらに、応用経路の長さが以下のようであるとする。
B→G:10,000mm
【0085】
これらの距離から、図15(a)に示すつなぎデータ135における経路の合計距離は、30,000mmとなり、図15(b)に示す追加つなぎデータにおける経路の合計距離は、17,000mmとなる。
この場合、追加つなぎデータの方の距離が短いため、つなぎ処理部120は図11のステップS604で追加つなぎデータを選択する。
【0086】
(第2実施形態のまとめ)
第2実施形態によれば、同一の始点を有する複数の基本経路データ134(応用経路データ)が存在する場合、それぞれの基本経路データ134(応用経路データ)を有するつなぎデータ135(追加つなぎデータ)を作成した後、より最適なつなぎデータ135(ここでは、距離の短いつなぎデータ135)を、最終的な経路データ133とすることで、始点が同じ基本経路データ134が複数存在しても、経路データ133を作成することができる。そして、さらに、より最適な経路データ133を作成することができる。
【符号の説明】
【0087】
1 無人搬送車
2 ホストコンピュータ
3 運行管理コンピュータ
4 無線親局
5 ネットワーク
9 無人搬送システム
10 コントローラ
20 レーザ距離センサ
30 プログラマブルコントローラ
40 操舵輪
50 走行輪
70 無線子局
110 プログラムメモリ
111 処理部
112 座標変換部
113 データ取得部
114 計測データ取得部
115 マッチング部
116 位置推定部
117 走行経路決定部
118 走行制御部
119 停止制御部
120 つなぎ処理部
130 データメモリ(記憶部)
131 計測データ
132 地図データ
133 経路データ
134 基本経路データ
135 つなぎデータ

【特許請求の範囲】
【請求項1】
物体までの距離を測定可能なセンサにより周辺環境の状況を計測して、地図データと前記計測により得られる計測データとをマッチングすることによって、自身の現在位置を求め、前記求めた現在位置を基に、自身が走行する経路の情報である経路データに沿って走行する無人搬送車であって、
予め設定されている基本経路データを有している記憶部と、
自身の目的地に関する情報を取得し、
前記現在位置を始点とし、前記目的地を終点として有する基本経路データが前記記憶部に存在するか否かを判定し、存在しない場合、前記現在位置を始点として有する前記基本経路データを前記記憶部から取得する取得処理と、
前記取得した基本経路データの終点を新たな始点とする別の基本経路データを前記記憶部から新たに取得して、終点を前記目的地に向けて、順に伸ばしていくつなぎ処理を、前記新たに取得した別の基本経路データの終点が、前記目的地に一致するまで実行し、前記取得した各基本経路データを前記経路データとするつなぎ処理部と、
を有することを特徴とする無人搬送車。
【請求項2】
前記つなぎ処理部は、
前記取得した基本経路データを、つなぎデータに格納し、当該つなぎデータを経路データとする
ことを特徴とする請求項1に記載の無人搬送車。
【請求項3】
前記つなぎ処理部は、
前記現在位置を始点とし、前記目的地を終点として有する基本経路データが前記記憶部に存在する場合、該基本経路データを前記経路データとする
ことを特徴とする請求項1または請求項2に記載の無人搬送車。
【請求項4】
前記つなぎ処理部は、
始点が同じ基本経路データが複数存在する場合、前記始点が同じ基本経路データのそれぞれを含む前記つなぎデータを複数生成し、前記つなぎデータのうち、予め設定されている条件を満たすつなぎデータを選択する
ことを特徴とする請求項1から請求項3のいずれか一項に記載の無人搬送車。
【請求項5】
前記条件を満たすつなぎデータとは、複数のつなぎデータの中で、最も距離の短いつなぎデータ、または目的地までの到達時間が最も短いつなぎデータである
ことを特徴とする請求項4に記載の無人搬送車。
【請求項6】
物体までの距離を測定可能なセンサにより周辺環境の状況を計測して、地図データと前記計測により得られる計測データとをマッチングすることによって、自身の現在位置を求め、前記求めた現在位置を基に、自身が走行する経路の情報である経路データに沿って走行する無人搬送車による走行制御方法であって、
前記無人搬送車は、
予め設定されている基本経路データを記憶部に保持しており、
前記無人搬送車の処理部が、
自身の目的地に関する情報を取得し、
前記無人搬送車のつなぎ処理部が、
前記現在位置を始点とし、前記目的地を終点として有する基本経路データが前記記憶部に存在するか否かを判定し、存在しない場合、前記現在位置を始点として有する前記基本経路データを前記記憶部から取得する取得処理と、
前記取得した基本経路データの終点を新たな始点とする別の基本経路データを前記記憶部から新たに取得して、終点を前記目的地に向けて、順に伸ばしていくつなぎ処理を、前記新たに取得した別の基本経路データの終点が、前記目的地に一致するまで実行し、前記取得した各基本経路データを前記経路データとする経路データ作成処理と、
を実行することを特徴とする走行制御方法。
【請求項7】
前記つなぎ処理部が、
前記取得した基本経路データを、つなぎデータに格納し、当該つなぎデータを経路データとする
ことを特徴とする請求項6に記載の走行制御方法。
【請求項8】
前記つなぎ処理部が、
前記現在位置を始点とし、前記目的地を終点として有する基本経路データが前記記憶部に存在する場合、該基本経路データを前記経路データとする
ことを特徴とする請求項6または請求項7に記載の走行制御方法。
【請求項9】
前記つなぎ処理部が、
始点が同じ基本経路データが複数存在する場合、前記始点が同じ基本経路データのそれぞれを含む前記つなぎデータを複数生成し、前記つなぎデータのうち、予め設定されている条件を満たすつなぎデータを選択する
ことを特徴とする請求項6から請求項8のいずれか一項に記載の走行制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate