(57)【特許請求の範囲】
【請求項１】
平面内を移動可能に配置された第１移動体及び第２移動体と、
前記第１移動体が移動を開始する前に、前記第１移動体の移動予定経路における前記第１移動体と前記第２移動体との干渉を確認する制御部とを備え、
前記制御部は、
前記移動予定経路における時間又は距離を複数のステップに分割するステップ分割部と、
前記第１移動体及び前記第２移動体の相互距離、移動向き、速度を考慮することで、干渉が生じる可能性がないステップを算出するステップ算出部と、
前記第１移動体及び前記第２移動体の位置を計算することで干渉の有無を判断するものであり、前記干渉が生じる可能性がないステップについての前記第１移動体及び第２移動体の位置計算を省略する干渉判断部と、を有し、
前記ステップ算出部は、前記速度として最高速度仕様値を用いる、移動体システム。
【請求項２】
前記ステップ算出部は、前記第１移動体及び前記第２移動体の相互距離、移動向き、速度を考慮することで、干渉が生じる可能性があるステップを算出し、さらに干渉が生じる可能性があるステップより前のステップを干渉が生じる可能性がないステップとして選択する、請求項１に記載の移動体システム。
【請求項３】
前記ステップ算出部は、前記第１移動体又は前記第２移動体が停止している場合には、停止している状態から直ちに加速を開始するという条件を採用する、請求項１又は２に記載の移動体システム。
【請求項４】
前記制御部は、前記第２移動体の動作が完了するステップを把握する把握部をさらに有し、
前記ステップ算出部は、前記第２移動体の動作が完了するステップより前のみならず、前記第２移動体の動作が完了するステップにおける前記第１移動体及び前記第２移動体の相互距離、移動向き、速度を考慮することで前記第２移動体の動作が完了するステップより後においても、干渉が生じる可能性があるステップを算出する、請求項１〜３のいずれかに記載の移動体システム。
【請求項５】
前記制御部は、
前記第１移動体と前記第２移動体がそれぞれの目標位置において干渉すると判断されれば、前記第１移動体を前記目標位置から所定距離離れた位置で待機させる待機位置設定部をさらに有している、請求項１〜４のいずれかに記載の移動体システム。
【請求項６】
前記制御部は、
前記第１移動体と前記第２移動体がそれぞれの目標位置において干渉すると判断されれば、前記第１移動体と前記第２移動体の移動時間又は移動距離同士を比較する比較部をさらに備え、
前記待機位置設定部は、前記第１移動体の移動時間又は移動距離が前記第２移動体の移動時間又は移動距離より長ければ前記第１移動体の待機位置を前記目標位置から所定距離離れた位置に設定し、前記第１移動体の移動時間又は移動距離が前記第２移動体の移動時間又は移動距離より短ければ前記第１移動体の待機位置を現在の位置に設定する、請求項５に記載の移動体システム。
【請求項７】
前記制御部は、
前記第１移動体と第２移動体が干渉しない軌道を算出する軌道算出部と、
前記軌道算出の制限時間を管理する制限時間管理部と、
前記制限時間内で前記軌道算出部に軌道算出を繰り返し実行させる繰り返し実行部と、
前記軌道算出部が算出した複数の軌道の中から最適な軌道を選択する軌道選択部と、
をさらに有している、請求項１〜６のいずれかに記載の移動体システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動体システムに関し、特に、複数の移動体が平面範囲内で移動可能な移動体システムに関する。
【背景技術】
【０００２】
従来の自動倉庫は、例えば、一対のラックと、スタッカクレーンと、入庫ステーションと、出庫ステーションとを備えている。一対のラックは、前後方向に所定間隔をあけるようにして設けられている。スタッカクレーンは、前後のラック間において左右方向に移動自在に設けられている。入庫ステーションは、一方のラックの側方に配置されている。出庫ステーションは、他方のラックの側方に配置されている。ラックは、上下・左右に並んだ多数の物品収納棚を有する。スタッカクレーンは、走行台車と、それに設けられたマストに昇降自在となされた昇降台と、それに設けられた物品移載装置（例えば、前後方向に摺動自在に設けられたスライドフォーク）とを有している。入出庫ステーションにおいては、物品を搬送するのにコンベアが用いられる。
【０００３】
近年は、物品収納作業の効率化を図るため、前後のラック間に例えば２台のスタッカクレーンをすれ違い走行可能とする自動倉庫が提案されている。この自動倉庫は、一対のラックと、その間に平行に並んで走行可能な２台のスタッカクレーンとを有している。スタッカクレーンの物品移載装置は、前後のラックのいずれに対しても物品の入出庫作業が可能である。
【０００４】
この自動倉庫を側方から見ると、２台のスタッカクレーンの昇降台及び物品移載装置からなる各組（以下、この組を「移載部」という。）は、２次元平面内を互いに干渉する可能性がある状態で移動する２つの移動体として認識できる。これら２つの移動体は、走行車の走行動作と昇降装置の昇降動作の組み合わせによって、平面内で自由に移動可能である。そこで、２つの移動体の干渉を防止するためには、移動体の移動を適切に制御する必要がある。
【０００５】
一般に、複数の移動体の干渉を防止するための技術は、自動倉庫のみならず、搬送車システムでも求められている。例えば、特許文献１に記載の搬送車システムでは、搬送車が、所定の時間間隔で現在位置をネットワークに送信し、他の搬送車の位置を傍受し、その速度を元に所定時間後の位置を推定して、自機の走行速度にフィードバックする。また、分岐部や合流部では、搬送車は、分岐後や合流前の２股の走行ルートを１本に重ねたルートマップを使用する。これにより、搬送車が自律的に走行でき、また分岐部や合流部において走行許可待ち状態にする必要が無くなる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３０１３６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、複数の移動体の干渉を防止するためには、複数の移動体の経路探索処理を行う必要があり、最適な経路探索を行うためには制御装置内の演算部に大きな負荷がかかってしまう。
【０００８】
本発明の課題は、平面内に移動可能に配置された第１移動体と第２移動体とを有する移動体システムにおいて、移動体の干渉を移動開始前に判断するときの演算量を減らすことにある。
【課題を解決するための手段】
【０００９】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合わせることができる。
【００１０】
本発明の一見地に係る移動体システムは、第１移動体及び第２移動体と、制御部とを備えている。第１移動体及び第２移動体は、平面内を移動可能に配置されている。制御部は、第１移動体が移動を開始する前に、第１移動体の移動予定経路における第１移動体と第２移動体との干渉を確認する。制御部は、ステップ分割部と、ステップ算出部と、干渉判断部とを有している。ステップ分割部は、移動予定経路における時間又は距離を複数のステップに分割する。ステップ算出部は、第１移動体及び第２移動体の相互距離、移動向き、速度を考慮することで、干渉が生じる可能性がないステップを算出する。干渉判断部は、第１移動体及び第２移動体の位置を計算することで干渉の有無を判断するものであり、干渉が生じる可能性がないステップについての第１移動体及び第２移動体の位置計算を省略する。さらに、ステップ算出部は、速度として最高速度仕様値を用いる。
この移動体システムでは、最初に第１移動体の移動予定経路における時間又は距離が複数のステップに分割され、次に、干渉が生じる可能性がないステップが算出される。干渉の可能性がないステップについては、第１移動体及び第２移動体の位置計算が省略される。したがって、移動体の干渉を移動開始前に判断するときの演算量が減らされる。その結果、上記の移動体システムは、計算機の資源が豊富でない汎用基板による組み込み制御への実装が可能になる。
この移動体システムにおいて、速度の値として最高速度仕様値が計算に用いられるので、さらに演算処理の負荷を減らすことができる。
【００１１】
ステップ算出部は、第１移動体及び第２移動体の相互距離、移動向き、速度を考慮することで、干渉が生じる可能性があるステップを算出し、さらに干渉が生じる可能性があるステップより前のステップを干渉が生じる可能性がないステップとして選択してもよい。
この移動体システムでは、最初に第１移動体の移動予定経路における時間又は距離が複数のステップに分割され、次に、干渉が生じる可能性があるステップが算出される。干渉の可能性があるステップより前のステップについては、第１移動体及び第２移動体の位置計算が省略される。したがって、移動体の干渉を移動開始前に判断するときの演算量が減らされる。その結果、上記の移動体システムは、計算機の資源が豊富でない汎用基板による組み込み制御への実装が可能になる。
【００１３】
ステップ算出部は、第１移動体又は第２移動体が停止している場合には、停止している状態から直ちに加速を開始するという条件を採用してもよい。
この移動体システムでは、第１移動体及び第２移動体が停止している状態から直ちに加速を開始するという条件を採用しているので、干渉がないステップ以外のステップの値を小さく設定できる。そのため、干渉の可能性があるステップを確実に選択できる。
【００１４】
制御部は、第２移動体の動作が完了するステップを把握する把握部をさらに有していてもよい。その場合、ステップ算出部は、第２移動体の動作が完了するステップより前のみならず、第２移動体の動作が完了するステップにおける第１移動体及び第２移動体の相互距離、移動向き、速度を考慮することで、第２移動体の動作が完了するステップより後においても、干渉が生じる可能性があるステップを算出する。
この移動体システムでは、第２移動体の動作が完了するステップが把握されれば、第２移動体の動作が完了するステップより後においても干渉が生じる可能性があるステップが算出される。このようにする理由は、第２移動体の動作が完了することで第２移動体の経路が大きく変わると予想されるので、第２移動体の動作が完了するステップより後で干渉が生じる可能性があるステップを算出することが好ましいからである。
【００１５】
制御部は、待機位置設定部をさらに有していてもよい。その場合、待機位置設定部は、第１移動体と第２移動体がそれぞれの目標位置において干渉すると判断されれば、第１移動体を目標位置から所定距離離れた位置に待機させる位置を設定する。ここで、「待機」とは、いずれかの位置で停止して、干渉が回避されるまでは次の移動を行わないことをいう。
この移動体システムでは、第１移動体と第２移動体がそれぞれの目標位置において干渉すると判断されれば、第１移動体は目標位置から所定距離離れた位置に待機させられる。したがって、これにより、目標位置において干渉が生じる場合に干渉を避けるために必要となる複雑な軌道計算を行う必要が無くなる。
【００１６】
制御部は、比較部をさらに有していてもよい。その場合、比較部は、第１移動体と第２移動体がそれぞれの目標位置において干渉すると判断されれば、第１移動体と第２移動体の移動時間又は移動距離同士を比較する。待機位置設定部は、第１移動体の移動時間又は移動距離が第２移動体の移動時間又は移動距離より長ければ第１移動体の停止位置を目標位置から所定距離離れた位置に設定し、第１移動体の移動時間又は移動距離が第２移動体の移動時間又は移動距離より短ければ第１移動体の待機位置を現在の位置に設定する。
この移動体システムでは、第１移動体が第２移動体より早く目標位置に到達できない場合は目標位置から所定距離離れた位置まで移動させて停止させられる。したがって、第１移動体がその後に目標位置に移動する際に回避動作を行う必要があったとしても、回避のための時間又は距離の量を小さくできる。一方、第２移動体より早く目標位置に到達できる場合は、第１移動体は現在の位置で待機させられる。それにより、目標位置において移載部同士が干渉する場合の複雑な軌道計算を行わなくてもよくなる。
【００１７】
制御部は、軌道算出部と、制限時間管理部と、繰り返し実行部と、軌道選択部と、をさらに有していてもよい。軌道算出部は、第１移動体と第２移動体が干渉しない軌道を算出する。制限時間管理部は、軌道算出の制限時間を管理する。繰り返し実行部は、制限時間内で軌道算出部に軌道算出を繰り返し実行させる。軌道選択部は、軌道算出部が算出した複数の軌道の中から最適な軌道を選択する。
この移動体システムでは、第１移動体と第２移動体が干渉しない軌道は、制限時間内で何度も算出される。そして、複数の軌道から最適な軌道が選択される。そのため、稼働効率が高い軌道を選択できる。
【発明の効果】
【００１８】
本発明に係る移動体システムでは、干渉しないステップについての複数の移動体の位置計算を省略しているので、移動体の干渉を移動開始前に判断するときの演算量が減らされる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１実施形態が採用された自動倉庫の概略平面図。
【図２】図１のＩＩ矢視図であり、ラックとスタッカクレーンを説明するための図。
【図３】自動倉庫の一部省略側面図であり、ラックとスタッカクレーンを説明するための図。
【図４】第１実施例としての自動倉庫制御構成を示す機能ブロック図。
【図５】第２実施例としての自動倉庫制御構成を示す機能ブロック図。
【図６】スタッカクレーンの制御部の機能ブロック図。
【図７】メインコントローラの機能ブロック図。
【図８】メインコントローラによる軌道決定処理を示すフローチャート。
【図９】メインコントローラの干渉判定処理を示すフローチャート。
【図１０】メインコントローラの軌道選択処理を示すフローチャート。
【図１１】出発位置と目標位置との間にある複数の軌道を示す模式図。
【図１２】出発位置と目標位置との間にある２つの軌道を示す模式図。
【図１３】移載部同士が干渉する可能性がある場合に、一方の移載部が迂回経路を走行する手法を説明するための模式図。
【図１４】移載部同士が干渉する可能性がある場合に、一方の移載部の走行開始タイミングを遅らせる手法を説明するための模式図。
【図１５】二分法による最適値を決定する処理を示すフローチャート。
【図１６】走行予定軌道から離れた経由位置を決定するプロセスを示す模式図。
【図１７】走行予定軌道から離れた経由位置を決定するプロセスを示す模式図。
【図１８】経由位置を通る迂回軌道の選択判断を示す模式図。
【図１９】干渉ありの０から干渉なしのｔｍａｘまでの時間軸。
【図２０】２台の移載部が目標位置において干渉する場合の待機動作を示す模式図。
【図２１】第２実施形態におけるメインコントローラの機能ブロック図。
【図２２】第２実施形態におけるメインコントローラの軌道決定処理を示すフローチャート。
【発明を実施するための形態】
【００２０】
（１）自動倉庫全体
図１〜図３を用いて、本発明の第１実施形態としての自動倉庫１を説明する。図１は、本発明の第１実施形態が採用された自動倉庫の概略平面図である。図２は、図１のＩＩ矢視図であり、ラックとスタッカクレーンを説明するための図である。図３は、自動倉庫の一部省略側面図であり、ラックとスタッカクレーンを説明するための図である。この実施形態において、図１及び図２の左右方向が自動倉庫１の前後方向Ｘであり、図１の上下方向及び図３の左右方向が自動倉庫１の左右方向Ｙである。
【００２１】
自動倉庫１は、主に、一対のラック２（第１ラック２Ａ、第２ラック２Ｂ）と、一対のスタッカクレーン３（第１スタッカクレーン３Ａ、第２スタッカクレーン３Ｂ）とから構成されている。
【００２２】
（２）ラック
第１ラック２Ａ、第２ラック２Ｂは、自動倉庫１の左右方向Ｙに延びるスタッカクレーン通路５を挟むように配置されている。第１ラック２Ａ、第２ラック２Ｂは、所定間隔で左右方向Ｙに沿って並ぶ多数の前側支柱７と、前側支柱７の後方にそれとの間に所定間隔をあけて並ぶ後側支柱９と、前側支柱７及び後側支柱９に設けられた多数の物品支承部材１１とを有している。左右一対の物品支承部材１１によって、物品収納棚１３が構成されており、それらの間は後述のスライドフォーク３１の上下方向の移動を許容するフォーク通過間隙１５となっている。各物品収納棚１３には、図から明らかなように、左右上下に多数配置されており、それぞれに物品Ｗを載置可能である。各物品Ｗは、パレットＰ（図２を参照。）上に載置され、パレットＰと共に移動させられる。
なお、第２ラック２Ｂの片側に入庫ステーション１７が配置され、第１ラック２Ａの片側に出庫ステーション１９が配置されている。
【００２３】
（３）スタッカクレーン
次に、図１〜図３を用いて、第１スタッカクレーン３Ａ、第２スタッカクレーン３Ｂについて説明する。なお、図１及び図２では、第１スタッカクレーン３Ａ、第２スタッカクレーン３Ｂの構造は簡略化されている。
【００２４】
第１スタッカクレーン３Ａと、第２スタッカクレーン３Ｂは、ラック２の近傍を平行して走行するともに物品Ｗをラック２との間で移載可能である。以下、スタッカクレーンについてより詳細に説明する。第１ラック２Ａ、第２ラック２Ｂの間に、スタッカクレーン通路５に沿って、自動倉庫１の前後方向Ｘに並んだ第１走行レール２１Ａ、第２走行レール２１Ｂが設けられている。第１走行レール２１Ａ、第２走行レール２１Ｂは、それぞれ上下一対のレール２６を有しており、これらレール２６によって、第１スタッカクレーン３Ａ及び第２スタッカクレーン３Ｂが、自動倉庫１の左右方向Ｙに移動可能に案内されている。
【００２５】
第１スタッカクレーン３Ａ、第２スタッカクレーン３Ｂは、主に、走行台車２２と、走行台車２２に設けられた一対のマスト２３（左側マスト２３Ａ、右側マスト２３Ｂ）と、左側マスト２３Ａ及び右側マスト２３Ｂの上端を連結する上側フレーム２５と、走行台車２２に設けられた走行車輪２７と、左側マスト２３Ａ及び右側マスト２３Ｂに昇降自在に装着された昇降台２９と、昇降台２９に進退機構（図６の移載モータ６７を含む）によって前後方向Ｘに摺動自在に設けられたスライドフォーク３１とを有している。昇降台２９は、左側マスト２３Ａ及び右側マスト２３Ｂにガイドされる昇降ガイドローラ３４を有する。
【００２６】
スライドフォーク３１は、前後方向Ｘの両側にスライド可能であるので、第１ラック２Ａ及び第２ラック２Ｂの両方にアクセス可能である。つまり、スライドフォーク３１は自機が走行する走行レールに隣接するラックと、他機が走行する走行レールに隣接するラックのいずれとの間で物品Ｗを移載可能である。
【００２７】
なお、図２及び図３において、昇降台２９のスライドフォーク３１の上には、パレットＰと物品Ｗが載っている。
【００２８】
以下の説明では、昇降台２９とスライドフォーク３１をまとめて、移載部として説明する。移載部には、物品Ｗ及びパレットＰが搭載されている場合と、搭載されていない場合とがある。なお、以下、第１スタッカクレーン３Ａの移載部を第１移載部３２Ａとして、第２スタッカクレーン３Ｂの移載部を第２移載部３２Ｂとする。
【００２９】
第１移載部３２Ａ及び第２移載部３２Ｂは、水平・昇降方向により形成される二次元平面（図３のＹ−Ｚ平面）内を移動して、物品Ｗの搬出入を行っている。第１移載部３２Ａ及び第２移載部３２Ｂは、走行台車２２の走行動作と昇降装置の昇降動作の組み合わせによって、平面内で自由に移動可能である。また、第１移載部３２Ａと第２移載部３２Ｂは前述の二次元平面内において干渉しない限りどの位置にも存在することができる。
ただし、図２から明らかなように、第１移載部３２Ａ及び第２移載部３２Ｂの前後方向Ｘの位置は互いに重なっている。したがって、第１移載部３２Ａ及び第２移載部３２Ｂ同士が上下方向に完全にずれている場合にのみ、第１スタッカクレーン３Ａと第２スタッカクレーン３Ｂは、左右方向Ｙにすれ違い走行が可能である。
【００３０】
第１スタッカクレーン３Ａ、第２スタッカクレーン３Ｂは、図３に詳細に示すように（図１及び図２では省略）、制御盤３３と、走行モータ３５と、昇降モータ３７とを有している。制御盤３３は、右側マスト２３Ｂのさらに後側に設けられている。走行モータ３５は、左側マスト２３Ａに設けられている。昇降モータ３７は、左側マスト２３Ａに設けられている。
【００３１】
制御盤３３は、内部に、走行モータ３５や昇降モータ３７用のインバータ、コンバータ、ブレーカ等の電装機器を有している。制御盤３３には、後述するクレーンコントローラが収納されている。
【００３２】
昇降モータ３７は、図３に示すように、ドラム４１を駆動可能である。ドラム４１からは、ワイヤ４３が延びている。ワイヤ４３は、上側フレーム２５に設けられたローラ４４に掛け回され、さらに昇降台２９に連結されている。
【００３３】
（４）スタッカクレーンの制御構成
次に、図４及び図５を用いて、自動倉庫１の制御構成を説明する。図４は、第１実施例としての自動倉庫制御構成を示す機能ブロック図である。図５は、第２実施例としての自動倉庫制御構成を示す機能ブロック図である。
【００３４】
図４では、システムコントローラ４５、第１クレーンコントローラ４７Ａ、第２クレーンコントローラ４７Ｂが示されている。第１クレーンコントローラ４７Ａは、第１スタッカクレーン３Ａに搭載されおり、第１スタッカクレーン３Ａの動作を制御する。第２クレーンコントローラ４７Ｂは、第２スタッカクレーン３Ｂに搭載されており、第２スタッカクレーン３Ｂの動作を制御する。システムコントローラ４５は、第１クレーンコントローラ４７Ａ、第２クレーンコントローラ４７Ｂより上位のコントローラであり、第１クレーンコントローラ４７Ａ、第２クレーンコントローラ４７Ｂと交信可能である。
図４に示す第１実施例では、第１クレーンコントローラ４７Ａ、第２クレーンコントローラ４７Ｂはシステムコントローラ４５を介してのみ互いに交信する。図５に示す第２実施例では、第１クレーンコントローラ４７Ａ、第２クレーンコントローラ４７Ｂは、システムコントローラ４５を介さずに直接交信可能である。
なお、第１クレーンコントローラ４７Ａと第２クレーンコントローラ４７Ｂが互いに送受信するデータには、正常・異常を知らせる状態データ、実行中の搬送データ、現在位置が含まれている。
【００３５】
次に、図６を用いて、制御盤３３内に配置された第１クレーンコントローラ４７Ａについて説明する。図６は、スタッカクレーンの制御部の機能ブロック図である。なお、第２クレーンコントローラ４７Ｂは、第１クレーンコントローラ４７Ａと同様であるので、説明を省略する。また、第１クレーンコントローラ４７Ａ、第２クレーンコントローラ４７Ｂは、スタッカクレーンに搭載されていなくてもよい。
【００３６】
第１クレーンコントローラ４７Ａは、メインコントローラ５３と、走行制御部５５と、昇降制御部５７と、移載制御部５９とを有している。これら制御部は、ＣＰＵやメモリ等のコンピュータ・ハードウェアを含んでおり、図６においてはコンピュータ・ハードウェアとソフトウェアの協働によって実現される機能ブロックとして表現されている。なお、これら制御部は、複数の機能を持つ単独のコンピュータによって実現されてもよい。
【００３７】
メインコントローラ５３は、走行制御部５５，昇降制御部５７及び移載制御部５９と交信可能である。さらに、メインコントローラ５３は、システムコントローラ４５及び第２クレーンコントローラ４７Ｂとも交信可能である。交信は定期的に又は必要に応じて行われる。
【００３８】
走行制御部５５は、走行車輪２７の走行・停止を制御するための制御部であり、走行モータ３５と、ロータリエンコーダ６３に接続されている。昇降制御部５７は、昇降台２９を左側マスト２３Ａ及び右側マスト２３Ｂに沿って上下動させるための制御部であり、昇降モータ３７と、ロータリエンコーダ６５に接続されている。移載制御部５９は、スライドフォーク３１を前後方向Ｘに移動させるための制御部であり、移載モータ６７と、ロータリエンコーダ６９に接続されている。
【００３９】
第１クレーンコントローラ４７Ａは、さらに、記憶部７０を有している。記憶部７０は、ＲＡＭ又はハードディスクといった書き換え可能な記録媒体である。記憶部７０には、後述するＦｒｅｅＳｔｅｐテーブル７１が保存されている。
【００４０】
図７を用いてメインコントローラ５３の機能を説明する。図７は、メインコントローラの機能ブロック図である。メインコントローラ５３は、軌道算出部７２と、軌道選択部７３と、ステップ分割部７４と、ステップ算出部７５と、干渉判断部７６と、他号機動作完了把握部７７と、停止位置設定部７８と、比較部７９とを有している。
軌道算出部７２は、第１移載部３２Ａの候補となる軌道を算出する。軌道選択部７３は、軌道算出部７２が算出した複数の軌道の中から最適な軌道を選択する。ステップ分割部７４は、移動予定経路における時間又は距離を複数のステップに分割する。ステップ算出部７５は、両移載部の相互距離、移動向き、速度を考慮することで干渉が生じる可能性があるステップ（ＦｒｅｅＳｔｅｐ）を算出する。干渉判断部７６は、ＦｒｅｅＳｔｅｐについて両移載部の位置を計算することで干渉の有無を判断する。他号機動作完了把握部７７は、他号機の動作が完了するＳｔｅｐを把握する。停止位置設定部７８は、両移載部がそれぞれの目標位置において干渉すると判断されれば、自号機の停止位置を目標位置から所定距離離れた位置に変更する。比較部７９は、両移載部がそれぞれの目標位置において干渉すると判断されれば、両移載部の移動時間又は移動距離同士を比較する。
【００４１】
（５）軌道決定処理の概要説明
図８を用いて、移載部が停止したアイドル状態から移動を開始する前の軌道決定処理を説明する。図８は、メインコントローラによる軌道決定処理を示すフローチャートである。
なお、以下の説明では、第１スタッカクレーン３Ａの第１移載部３２Ａを移動対象として説明する。
【００４２】
メインコントローラ５３の軌道算出部７２は、Ｓ１において普通軌道計算を行い、次にＳ２において干渉判定部７５が第１移載部３２Ａが第２移載部３２Ｂと干渉するか否かを判断する。普通軌道計算とは、軌道の選択による干渉の判定である。なお、Ｓ３において「Ｙｅｓ」とは、部分移動時間の普通軌道計算において第１移載部３２Ａと第２移載部３２Ｂの干渉を避けることができる軌道を選択できなかったことを意味する。Ｓ２において「Ｙｅｓ」であればプロセスはＳ４に移行する。Ｓ２において「Ｎｏ」であれば、プロセスはＳ３に移行して、メインコントローラ５３は全移動時間での計算が完了したが否かを判断する。Ｓ３において「Ｎｏ」であれば、プロセスはＳ１に戻ってメインコントローラ５３は普通軌道計算及び干渉判定を行う。Ｓ３において「Ｙｅｓ」であれば（つまり、軌道の選択で干渉を回避可能であると判断されれば）、プロセスはＳ１０に移行する。Ｓ１０では、メインコントローラ５３は、計算結果を走行制御部５５に送信する。この結果、走行制御部５５は、選択された軌道に沿って第１移載部３２Ａを走行させる。
【００４３】
軌道算出部７２はＳ４において回避軌道を計算し、干渉判断部７６はＳ５において回避軌道の計算によって干渉するか否かを判断する。回避軌道の計算とは、選択した軌道において軌道条件を修正することで干渉を回避できる軌道を計算によって求めることである。なお、Ｓ５において「Ｙｅｓ」とは、部分移動時間の回避軌道計算において第１移載部３２Ａと第２移載部３２Ｂの干渉を避けることができる回避軌道を得られなかったことを意味する。なお、ここでの「回避軌道を得られなかった」とは、例えば、目標位置が近接しており回避不可能だった場合以外に、効率を考慮して設定した範囲（計算時間と迂回距離）を超えた場合を含む。Ｓ５において「Ｙｅｓ」であればプロセスはＳ７に移行し、Ｓ５において「Ｎｏ」であればプロセスはＳ６に移行する。Ｓ６において、メインコントローラ５３は全移動時間での計算が完了したが否かを判断する。Ｓ６において「Ｙｅｓ」であれば（つまり、軌道条件の修正によって干渉を回避可能であると判断されれば）、プロセスはＳ１０に移行する。これにより、最適な軌道は保証されないものの、その条件の下で第１移載部３２Ａがより早く目標位置に到達できるようになる。その後、走行制御部５５は、修正された軌道条件に基づいて第１移載部３２Ａを走行させる。
【００４４】
Ｓ５において「Ｙｅｓ」であれば（つまり、軌道条件の修正によって干渉を回避不可能であると判断されれば）、プロセスはＳ７に移行する。Ｓ７では、軌道算出部７２は、ｄｅｌａｙ軌道計算を行う。ｄｅｌａｙ軌道計算とは、干渉を回避するための移動開始遅延時間の計算である。なお、Ｓ８において「Ｙｅｓ」とは、部分移動時間のｄｅｌａｙ軌道計算において第１移載部３２Ａと第２移載部３２Ｂの干渉を避けることができる軌道を得られなかったことを意味する。Ｓ８において、メインコントローラ５３は、干渉が生じるか否かを判断する。Ｓ８において「Ｙｅｓ」であればプロセスはＳ１１に移行し、Ｓ８において「Ｎｏ」であればプロセスはＳ９に移行する。Ｓ１１において、第１クレーンコントローラ４７Ａは、第１移載部３２Ａを待機状態にする。Ｓ９において、メインコントローラ５３は全移動時間での計算が完了したが否かを判断する。Ｓ９において「Ｙｅｓ」であればプロセスはＳ１０に移行する。その結果、第１移載部３２Ａは、計算によって得られた時間だけ遅れて、目標位置に向かって移動を開始する。Ｓ９で「Ｎｏ」であればプロセスはＳ７に移行する。
【００４５】
上述したように、図８に示した軌道決定アルゴリズムでは、普通軌道、回避軌道計算、ｄｅｌａｙ軌道計算の順番で干渉があるか否かを判断している。このように回避軌道計算をｄｅｌａｙ軌道計算の前に置くことができるようになった理由は、後述するように迂回軌道の選択を所定の順番で行うようにすることで、回避軌道計算において計算時間を短縮できるようになったからである。
【００４６】
（６）干渉判定
以下、図９を用いて、ＦｒｅｅＳｔｅｐの取得及び両移載部の位置計算による干渉判定を行うアルゴリズムについて説明する。図９は、メインコントローラの干渉判定処理を示すフローチャートである。図９に示すアルゴリズムは、図８で示した干渉判定フローの普通軌道計算において、第１移載部３２Ａと第２移載部３２Ｂの干渉判定に用いられる。このアルゴリズムは、第１クレーンコントローラ４７Ａ及び第２クレーンコントローラ４７Ｂの各メインコントローラ５３によってそれぞれ実行される。以下、第１クレーンコントローラ４７のメインコントローラ５３が第１移載部３２Ａの干渉判定を行う場合を説明する。
【００４７】
第１移載部３２Ａが移動を開始して目標位置に到達するまでの時間又は距離は、複数のＳｔｅｐに分割して取り扱われる。例えば、１Ｓｔｅｐは５ｍｓである。メインコントローラ５３は、第１移載部３２Ａが移動開始後に第２スタッカクレーン３Ｂの第２移載部３２Ｂとの干渉が発生しないＳｔｅｐをＦｒｅｅＳｔｅｐとして求め、ＦｒｅｅＳｔｅｐにおいて第１移載部３２Ａと第２移載部３２Ｂが存在する予定位置を算出することで干渉の有無を判定する。つまり、このアルゴリズムでは、ＦｒｅｅＳｔｅｐより前のＳｔｅｐに関しては第１移載部３２Ａ及び第２移載部３２Ｂの位置計算は、行われない。したがって、メインコントローラ５３の計算負荷が低減される。
【００４８】
図９のＳ２１では、メインコントローラ５３のステップ分割部７４は、移動予定経路における時間又は距離を複数のＳｔｅｐに分割する。
次に、メインコントローラ５３は、記憶部７０に保存されているＦｒｅｅＳｔｅｐテーブル７１を初期化する。ＦｒｅｅＳｔｅｐテーブル７１は、例えば、配列（ＦｒｅｅＳｔｅｐ［０］〜ＦｒｅｅＳｔｅｐ［２９９９］）からなる。さらに、Ｓ２１では、メインコントローラ５３は、ＦｒｅｅＳｔｅｐ［ｉ］の添え字ｉに０を代入する（ｉ＝０）ことで、ＦｒｅｅＳｔｅｐ［０］を初期値に設定する。
【００４９】
Ｓ２２では、メインコントローラ５３は、ＦｒｅｅＳｔｅｐと、第２スタッカクレーン３Ｂの第２移載部３２Ｂ（他号機）の現在動作が完了するＳｔｅｐとを取得する。  この実施形態では、ＦｒｅｅＳｔｅｐは、ｍａｘ（Ｘ＿ｆｒｅｅ  ｓｔｅｐ，  Ｙ＿ｆｒｅｅ  ｓｔｅｐ）と表される。
【００５０】
ＦｒｅｅＳｔｅｐであるｍａｘ（Ｘ＿ｆｒｅｅ  ｓｔｅｐ，  Ｙ＿ｆｒｅｅ  ｓｔｅｐ）は、メインコントローラ５３のステップ算出部７５によって得られる。ステップ算出部７５は、両移載部の相互距離、移動向き、速度を考慮することで干渉の可能性が高いステップとしてのＦｒｅｅＳｔｅｐを選択する。より具体的には、ＦｒｅｅＳｔｅｐは以下のようにして求められる。
最初に、第１移載部３２Ａと第２移載部３２Ｂが干渉する条件下において、Ｘ軸（走行軸）のＳｔｅｐであるＸ＿ｆｒｅｅ  ｓｔｅｐとＹ軸（昇降軸）のＳｔｅｐであるＹ＿ｆｒｅｅ  ｓｔｅｐとが別々に算出される。次に、Ｘ＿ｆｒｅｅ  ｓｔｅｐとＹ＿ｆｒｅｅ  ｓｔｅｐの大小が比較されて、大きい値がＦｒｅｅＳｔｅｐとして選ばれる。Ｘ軸ＦｒｅｅＳｔｅｐとＹ軸ＦｒｅｅＳｔｅｐが同じ値の場合は、その値がＦｒｅｅＳｔｅｐとして選ばれる。
【００５１】
Ｘ軸とＹ軸とでＦｒｅｅＳｔｅｐの算出を分けている理由は、計算を簡単にするためである。干渉の判定対象となる２つの物体は平面上を移動するので、干渉となるのはＸ軸とＹ軸が重なる状態である。このようにＸ軸とＹ軸が互いに重なることが干渉の条件なので、双方のうち大きい方の値に注目して位置を求めれば、干渉のおそれがあるＳｔｅｐとしてのＦｒｅｅＳｔｅｐとして適切である。
【００５２】
Ｘ＿ｆｒｅｅ  ｓｔｅｐ又はＹ＿ｆｒｅｅ  ｓｔｅｐの算出方法は、以下の４つの場合でそれぞれ異なる式を用いて求められる。以下の式では、第１移載部３２Ａの速度をＶ１とし、第２移載部３２Ｂの速度をＶ２とし、双方の加減速度をａとし、第１移載部３２Ａと第２移載部３２Ｂとの間の距離をｄｘとする。そして、Ｖ１とＶ２は、干渉を見逃さないように条件を厳しく設定する目的で、Ｖｍａｘ（最大速度）としている。
１）Ｖ１とＶ２が同一方向を向いている場合（Ｖ１とＶ２の速度差の最大値Ｖｍａｘ以下の速度で両者は近づいていく）
0005572104.tif 000002
２）Ｖ１とＶ２が反対方向（互いに接近する側）を向いている場合（Ｖ１とＶ２の速度輪の最大値２ＶＡｍａｘ以下の速度で両者は近づく）
0005572104.tif 000003
３）Ｖ１とＶ２の一方が０の場合（Ｖ１とＶ２の一方が突然発進した場合を想定している）
0005572104.tif 000004
0005572104.tif 000005
４）Ｖ１とＶ２の両方が０の場合（Ｖ１とＶ２の両方が突然発進した場合を想定している）
0005572104.tif 000006
0005572104.tif 000007
なお、基準距離は、第１移載部３２Ａ及び第２移載部３２Ｂが、加速度ａで加速し、次に速度がＶｍａｘに到達し、その後に減速度ａで減速して、最後に停止するまでの距離を表している。
なお、以上の数式は一例であって、他の数式を採用してもよい。
【００５３】
Ｓ２３では、メインコントローラ５３は、ＦｒｅｅＳｔｅｐをＦｒｅｅＳｔｅｐテーブル７１に昇順に代入する。したがって、最も小さい値のＦｒｅｅＳｔｅｐがＦｒｅｅＳｔｅｐ［０］に代入される。
【００５４】
Ｓ２４では、メインコントローラ５３は、未処理の（すなわち、干渉チェックを行っていない）ＦｒｅｅＳｔｅｐがあるか否かを判断する。具体的には、メインコントローラ５３は、ＦｒｅｅＳｔｅｐ［ｉ］が存在するか否かを判断する。未処理のＦｒｅｅＳｔｅｐがあれば（「Ｙｅｓ」の場合）プロセスはＳ２５に移行する。一方、未処理のＦｒｅｅＳｔｅｐがなければ（「Ｎｏ」の場合）プロセスは終了する。このプロセス終了の場合は、全てのＦｒｅｅＳｔｅｐにおいて干渉なしと判断されたことになるので、当該軌道計算が採用される。
【００５５】
Ｓ２５では、メインコントローラ５３の他号機動作完了把握部７７は、対象となるＦｒｅｅＳｔｅｐと次のＦｒｅｅＳｔｅｐとの間で第２スタッカクレーン３Ｂの第２移載部３２Ｂが現在行っている動作（移動又は移載）を完了するか否かを判断する。第２移載部３２Ｂが現在行っている動作の完了があれば（「Ｙｅｓ」の場合）、プロセスはＳ２２に戻る。これは、第２移載部３２Ｂが現在行っている動作を完了すれば、メインコントローラ５３は、第２移載部３２Ｂの次の動作におけるＦｒｅｅＳｔｅｐの有無を調べる必要があるからである。Ｓ２２では、メインコントローラ５３のステップ算出部７５は、ＦｒｅｅＳｔｅｐを再取得する。具体的には、第２移載部３２Ｂが次の動作を行っている状態におけるｍａｘ（Ｘ＿ｆｒｅｅ  ｓｔｅｐ，  Ｙ＿ｆｒｅｅ  ｓｔｅｐ）を求める。一方、第２移載部３２Ｂが現在行っている動作の完了がなければ（「Ｎｏ」の場合）、プロセスはＳ２６に移行する。
【００５６】
Ｓ２６では、メインコントローラ５３の干渉判断部７６は、は、位置計算処理（ＦｒｅｅＳｔｅｐ［ｉ］）を実行する。位置計算処理（ＦｒｅｅＳｔｅｐ［ｉ］）では、ＦｒｅｅＳｔｅｐ［ｉ］における第１移載部３２Ａと第２移載部３２Ｂのそれぞれの位置計算が行われる。位置計算の結果は、（ｘ，ｙ）座標値で得られる。
【００５７】
Ｓ２７では、干渉判断部７６は、対象になっているＦｒｅｅＳｔｅｐについて両移載部の位置を計算することで、第１移載部３２Ａと第２移載部３２Ｂとが干渉するか否かを判断する。この場合、第１移載部３２Ａと第２移載部３２Ｂは互いの面積が一部でも重なっていれば干渉していると判断される。第１移載部３２Ａと第２移載部３２Ｂが干渉しなければ（「Ｎｏ」の場合）プロセスはＳ２９に移行し、第１移載部３２Ａと第２移載部３２Ｂが干渉すればプロセスはＳ２８に移行する。
【００５８】
Ｓ２９では、メインコントローラ５３は、直前に位置計算を行ったＦｒｅｅＳｔｅｐを処理済みにする。具体的にメインコントローラ５３は、ＦｒｅｅＳｔｅｐ［ｉ］の添え字ｉをインクリメントする。
【００５９】
Ｓ２８では、プロセスは次の軌道計算処理に移行する。これは、現在の軌道計算方式では第１移載部３２Ａと第２移載部３２Ｂの干渉が生じることが判明したからである。
【００６０】
（７）実施例
以下のような実施例を説明する。
・Ｓｔｅｐ２４０において（第２移載部３２Ｂが現在の動作を行っている状態である）、第１移載部３２Ａと第２移載部３２Ｂが干渉するおそれがある。
・Ｓｔｅｐ１０００において、第２移載部３２Ｂが現在の動作（例えば、移動）を完了する。
・Ｓｔｅｐ１５００において（第２移載部３２Ｂが次の動作を行っている状態である）、第１移載部３２Ａと第２移載部３２Ｂが干渉するおそれがある。
・Ｓｔｅｐ２６００において、第１移載部３２Ａが移動を完了する（つまり、第１移載部３２Ａが目標位置に到着する）。
【００６１】
以下、上記の場合について、メインコントローラ５３の制御動作を、図９のフローチャートを用いて説明する。なお、以下の説明では重要なポイントに焦点を当てて説明を行う。
【００６２】
最初に、Ｓ２２において、メインコントローラ５３は、Ｓｔｅｐ２４０をＦｒｅｅＳｔｅｐとして取得し、さらにＳｔｅｐ１０００も取得する。なお、Ｓｔｅｐ１０００は他号機が動作を完了するＳｔｅｐであってＦｒｅｅＳｔｅｐではないが、この実施例では処理の便宜上ＦｒｅｅＳｔｅｐと共通の扱いになっている。Ｓ２３において、メインコントローラ５３は、ＦｒｅｅＳｔｅｐテーブルに各ＦｒｅｅＳｔｅｐの値を昇順で代入する。その結果、例えば、ＦｒｅｅＳｔｅｐ［０］には２４０が代入され、ＦｒｅｅＳｔｅｐ［１］には１０００が代入される。
【００６３】
Ｓ２４では、ＦｒｅｅＳｔｅｐ［０］が未処理であるので、プロセスはＳ２５に移行する（Ｓ２４において「Ｙｅｓ」）。そして、この場合ではＳｔｅｐ２４０とＳｔｅｐ１０００との間で第２移載部３２Ｂが現状動作を完了することがないので、プロセスはＳ２６に移行する。Ｓ２６では、メインコントローラ５３は、Ｓｔｅｐ２４０における第１移載部３２Ａと第２移載部３２Ｂの位置を計算し、さらにＳ２７で第１移載部３２Ａと第２移載部３２Ｂが干渉するか否かを判断する。Ｓｔｅｐ２４０において干渉が生じると判断されると、現在取得中の軌道計算処理では干渉を避けられないことが分かったので、プロセスはＳ２８に移行して次の種類の軌道計算処理を行う。
【００６４】
第１移載部３２Ａと第２移載部３２Ｂが干渉しない場合は、プロセスはＳ２９を通ってＳ２４に戻る。Ｓ２４では、ＦｒｅｅＳｔｅｐ［１］が未処理なので、Ｓ２５に移行する。Ｓ２５では、処理済みのＳｔｅｐ２４０より後のＳｔｅｐ１０００において第２移載部３２Ｂが現在の動作（例えば、移動）を完了すると判断されるので、プロセスはＳ２２に戻る。Ｓ２２では、メインコントローラ５３は、ＦｒｅｅＳｔｅｐを再取得する。具体的には、第２移載部３２Ｂが次の動作を行っている状態におけるｍａｘ（Ｘ＿ｆｒｅｅ  ｓｔｅｐ，  Ｙ＿ｆｒｅｅ  ｓｔｅｐ）を求める。実際には、Ｓｔｅｐ１５００が、第２移載部３２Ｂが次の動作を行っている状態において、第１移載部３２Ａと第２移載部３２Ｂが干渉するおそれがあるＳｔｅｐであるとして、ＦｒｅｅＳｔｅｐであると判断される。Ｓ２３では、メインコントローラ５３は、ＦｒｅｅＳｔｅｐ［２］に１５００を代入する。
【００６５】
なお、この実施例では、メインコントローラ５３は、Ｓ２６及びＳ２７において、Ｓｔｅｐ１０００において干渉が生じるか否かを判断するが、これはＦｒｅｅＳｔｅｐと処理を共通化した結果そうなるのであって、本来は他号機動作を完了したＳｔｅｐの干渉判断は行わなくてもよい。
さらに、メインコントローラ５３は、Ｓ２６及びＳ２７においてＳｔｅｐ１５００において干渉が生じるか否かを判断する。なお、本実施例では、Ｓｔｅｐ２６００以降のＳｔｅｐにおいて第２移載部３２Ｂが次の動作を完了しても、干渉判定に影響を与えない。
【００６６】
以上に述べたように、第２移載部３２Ｂが動作を完了して次の動作を開始するタイミングより後のＦｒｅｅＳｔｅｐが位置計算の対象になる場合は（Ｓ２５の「Ｙｅｓ」）、その位置計算実行の前に、上記タイミングと当該ＦｒｅｅＳｔｅｐとの間に新たなＦｒｅｅＳｔｅｐが生じるか否かが判断される（Ｓ２２）。そして、新たなＦｒｅｅＳｔｅｐが得られた場合には、新たなＦｒｅｅＳｔｅｐにおける位置計算が行われる（Ｓ２７）。
別の実施例として、最初のＦｒｅｅＳｔｅｐの取得時において第２移載部３２Ｂが次の状態に移行するか否かを確認して、もしも次の状態に移行すると判断されれば、次の状態でのＦｒｅｅＳｔｅｐも取得してもよい。その場合は、図９においてＳ２５が省略される。
【００６７】
（８）軌道選択動作（図８のＳ１及びＳ２）
図１０〜図１２を用いて、普通軌道計算及び干渉判定（軌道選択動作）について詳細に説明する。図１０は、メインコントローラの軌道選択処理を示すフローチャートである。図１１は、出発位置と目標位置との間にある複数の軌道を示す模式図である。図１２は、出発位置と目標位置との間にある２つの軌道を示す模式図である。
【００６８】
第１クレーンコントローラ４７Ａのメインコントローラ５３は、第１移載部３２Ａの移動開始前に、複数の最短時間経路の中から、第２移載部３２Ｂとの干渉を回避できる最短時間経路を探索する。選択の対象となる最短時間経路は、出発位置から目標位置までを対角とする上下左右の領域の境界ラインを構成する２つの最短時間経路（第１軌道１８１、第２軌道１８２）のみである。
【００６９】
以下、選択処理について詳細に説明する。第１移載部３２Ａは、走行・昇降のいずれの方向に移動可能である。走行・昇降方向の制御は独立しており、台形近似された速度テーブルが各軸の移動距離に応じて与えられる。図１１では、出発位置１９１から目標位置１９３までの間に、複数の軌道（第１軌道１８１、第２軌道１８２、第３軌道１８３、第４軌道１８４）が示されている。この場合、走行方向の距離が昇降方向の距離に比べて長いので、走行方向の移動時間が昇降方向の移動時間より長くなっている。これら軌道は、いずれも、走行方向にかかる時間が一定であり、昇降方向動作の開始タイミングのみ又は昇降方向動作の開始タイミング及び速度を変更することで異なるものになっている。具体的には、昇降軸方向の移動開始を遅らせていくことで、軌道は右側にシフトしていく。このことは、走行軸の移動時間−昇降軸の移動時間の範囲内では走行又は昇降の移動開始時刻を調整することで、最短時間が保証された軌道を複数の候補から選択できることを意味する。
前述の２つの最短時間経路は、言い換えると、出発位置から目標位置までの走行時間と昇降時間を比較して長い方の時間に対する短い方の開始時間を最も早くした場合の第１の軌道と、最も遅くした場合の第２の軌道である。
【００７０】
これら複数の軌道の中で実際にメインコントローラ５３が選択において考慮するのは、出発位置から目標位置までの軌道の集合が構成する四角形（又は平行四辺形）の領域の最も外側を通る第１軌道１８１及び第４軌道１８４だけである。これら第１軌道１８１と第４軌道１８４は、２つの軌道の組としては最も離れた２つの軌道からなる組み合わせである。したがって、両方の軌道のいずれにおいても干渉が発生する場合には、干渉を回避できる軌道は存在しない。つまり、軌道選択という観点では、第１軌道１８１又は第４軌道１８４のいずれかを選択すれば十分である。
【００７１】
この自動倉庫１では、メインコントローラ５３は２つの最短時間経路のみを探索する。したがって、軌道探索処理にかかる演算量が少なくなる。その結果、メインコントローラ５３は短期間で軌道を決定できる。なお、軌道の数は通常は２つであるが、例えば水平方向又は垂直方向に移動する場合は、軌道は１つになる。
【００７２】
図１０のＳ３１では、メインコントローラ５３は、他号機である第２移載部３２Ｂの位置を把握し、第２移載部３２Ｂに対して、第１移載部３２Ａは、第１軌道１８１及び第４軌道１８４のいずれが外回りの軌道になるかを判断する。具体的には、出発位置と目的位置を結ぶ直線のどちらの側に第２移載部３２Ｂが存在するか否かを判断し、さらに前記直線の第２移載部３２Ｂと反対側にある軌道を外回りの軌道として選択する。図１２のような例では、第１軌道１８１が第２移載部３２Ｂに対して外回りの軌道になる。
Ｓ３１では、メインコントローラ５３は、第２移載部３２Ｂに対して外回りの軌道になる第１軌道１８１が安全であるか否かを判断する。この判断時に、図９の干渉判断処理が実行される。安全であると判断されれば、プロセスはＳ３２に移行する。Ｓ３２では、メインコントローラ５３は第１軌道１８１を軌道として選択する。
【００７３】
Ｓ３１で第１軌道１８１が安全ではないと判断されれば、プロセスはＳ３３に移行する。Ｓ３３では、第４軌道１８４が安全であるか否かを判断する。この判断時に、図９の干渉判断処理が実行される。第４軌道１８４が安全であると判断されれば、プロセスはＳ３２に移行する。Ｓ３２では、メインコントローラ５３は第４軌道１８４を軌道として選択する。
【００７４】
Ｓ３３で第４軌道１８４が安全ではないと判断されれば、プロセスはＳ３４に移行する。Ｓ３４では、第１クレーンコントローラ４７Ａは軌道選択を行わないことを決定する。
【００７５】
以上に述べたように、選択する軌道の数を制限しているので、演算の負荷が少なくなっている。さらに選択する軌道の順序を選択しているので、結果として最初に判断した軌道を選択する可能性が高くなり、演算の負荷が少なくなっている。
【００７６】
（９）軌道条件の変更による回避手法の選択（図８のＳ４及びＳ５）
図１３を用いて、回避軌道計算及び干渉判定（軌道条件の変更による回避手法の選択）を説明する。図１３は、移載部同士が干渉する可能性がある場合に一方の移載部が迂回経路を走行する手法を説明するための模式図である。
図１３の実施例において、第２移載部３２Ｂの走行予定軌道は、第１移載部３２Ａの走行予定軌道に含まれている。より具体的には、第１移載部３２Ａは、目標位置は第２移載部３２Ｂの後側にあり、第２移載部３２Ｂに向かって走行する。第２移載部３２Ｂは、目標位置が第１移載部３２Ａの前側にあり、第１移載部３２Ａに向かって走行する。ただし、第１移載部３２Ａと第２移載部３２Ｂは、干渉位置１９５において衝突することが予測されている。この実施例では、第１移載部３２Ａの移動を考えると、走行開始時間を遅らせても干渉を回避できないので、第１移載部３２Ａが経由位置１２０を通る迂回経路１２１を走行する手法を採用する。
【００７７】
図１４は、移載部同士が干渉する可能性がある場合に一方の移載部の走行開始タイミングを遅らせる手法を説明するための模式図である。
図１４の実施例において、第１移載部３２Ａと第２移載部３２Ｂの走行予定軌道は、一部重なっているが、互いに重なっていない部分もある。より具体的には、第１移載部３２Ａは、第２移載部３２Ｂの反対側の位置を目標位置にしており、第２移載部３２Ｂに向かって走行する。第２移載部３２Ｂは、第１移載部３２Ａの横側の位置を目標位置にしており、最初は第１移載部３２Ａに向かって走行して途中から図上側にそれていく。ただし、第１移載部３２Ａと第２移載部３２Ｂは、干渉位置１９７において衝突することが予測されている。この実施例では、第１移載部３２Ａの移動を考えると、第１移載部３２Ａの走行開始タイミングを送らせる手法によって干渉を回避できる。
（１０）二分法
次に、図１５を用いて、二分法を説明する。図１５は、二分法による最適値を決定する処理を示すフローチャートである。二分法は、迂回経路の経由位置設定及び出発開始遅れ時間の設定の両方に適用可能である。
【００７８】
最初に、一般的な二分法の処理について説明する。
Ｓ４１では、メインコントローラ５３は、最大値を設定する。
Ｓ４２では、メインコントローラ５３は、中間点を探索する。
【００７９】
Ｓ５３では、メインコントローラ５３は、中間点の条件で走行させた場合に第１移載部３２Ａと第２移載部３２Ｂの干渉があるか否かを判断する。干渉があると判断されればプロセスはＳ４４に移行して、メインコントローラ５３は基準の中間点から見て値が大きい側の領域の中間点を探索する。干渉がないと判断されればプロセスはＳ４５に移行する。Ｓ４５では、メインコントローラ５３は、直前の分割による分割後長さ（探索の刻み幅）が所定値以下であるか否かを判断する。所定値以下であると判断されれば、プロセスは終了する。所定値を超えると判断されれば、プロセスはＳ４６に移行して、メインコントローラ５３は基準の中間点から見て値が小さい側の領域の中間点を探索する。
Ｓ４４又はＳ４６の終了後、プロセスはＳ４３に戻る。
【００８０】
（１０−１）迂回経路の経由位置の設定
次に、図１６を用いて、迂回経路の経由位置の設定に二分法を用いた場合を説明する。図１６は、走行予定軌道から離れた経由位置を決定するプロセスを示す模式図である。
【００８１】
以下、第１移載部３２Ａのメインコントローラ５３について説明する。図１５のＳ４１では、図１６において、メインコントローラ５３は、第１移載部３２Ａの出発位置１７３と目標位置１７５を結ぶベクトル１７６における中間点１７７の法線１７８の延びる方向に最大値としてのｄｍａｘを設定する。ｄｍａｘは、レイアウト上で可能な最大距離であり、その方向はベクトル１７６で分割された２つの領域のうち第２移載部３２Ｂが存在しない又は第２移載部３２Ｂの影響が少ない領域側に設定される。これにより、第１移載部３２Ａと第２移載部３２Ｂの干渉がより確実に防止される。ｄｍａｘは、十分大きな固定値として例えば３０００ｍｍでもよい。
以上に述べたように、経由位置を求めるための法線を引く点が出発位置と目標位置とを結ぶ直線の中間点であるので、経路探索にかける時間が短縮される。
【００８２】
Ｓ４２では、メインコントローラ５３は、中間点を探索する。図１６では、中間点は（１）で示されている。
【００８３】
Ｓ４３では、メインコントローラ５３は、第１中間点（１）の距離だけ離れて走行させた場合に第１移載部３２Ａと第２移載部３２Ｂの干渉があるか否かを判断する。この場合は、干渉はないので、プロセスはＳ４５に移行して、メインコントローラ５３は、直前の分割による分割後長さが所定値以下であるか否かを判断する。所定値は、例えば１０ｍｍである。この場合は所定値を超えるので、プロセスはＳ４６に移行する。Ｓ４６では、メインコントローラ５３は直前に探索した中間点から見て値が小さい側の領域の中間点を探索する。この場合は、第２中間点（２）が選択される。
【００８４】
以下、Ｓ４３〜Ｓ４６の流れを繰り返して、中間点は（１）、（２）、（３）と移動していく。そして、Ｓ４４で第３中間点（３）が探索されると、Ｓ４３で干渉がないと判断され、さらにＳ４５で直前の分割による分割後長さが所定値以下になると判断され、その結果、Ｓ４７で第３中間点（３）の値が経由位置に設定される。経由位置は、干渉が起こらない範囲で走行予定軌道から最も近くなっている。その結果、移動経路を短く設定できる。
【００８５】
なお、迂回経路の経由位置は、出発位置と目標位置との間に形成される線上の一点の法線上にあればよい。したがって、例えば、メインコントローラ５３は、遅れなしで移動開始した場合の衝突地点を始点として、出発位置と干渉位置とを結ぶベクトルの干渉位置における法線上に経由位置を設定してもよい。そのような場合を、図１７を用いて、説明する。図１７は、走行予定軌道から離れた経由位置を決定するプロセスを示す模式図である。
【００８６】
以下、第１移載部３２Ａのメインコントローラ５３について説明する。Ｓ４１では、図１７において、メインコントローラ５３は、第１移載部３２Ａと第２移載部３２Ｂが干渉すると予想される干渉位置１２２において出発位置と干渉位置とを結ぶベクトル上の干渉位置１２２に直交する方向に法線１２３の延びる方向に最大値としてのｄｍａｘを設定する。ｄｍａｘは前述の実施例と同様である。
以上に述べたように、経由位置を求めるための法線を引く点が衝突地点であるので、経路探索にかける時間が短縮される。
【００８７】
Ｓ４２では、メインコントローラ５３は、中間点を探索する。図１７は、中間点は（１）で示されている。
【００８８】
Ｓ４３では、メインコントローラ５３は、第１中間点（１）の距離だけ離れて走行させた場合に第１移載部３２Ａと第２移載部３２Ｂ同士の干渉があるか否かを判断する。この場合は、干渉はないので、プロセスはＳ４５に移行して、メインコントローラ５３は、直前の分割による分割後長さが所定値以下であるか否かを判断する。所定値は、例えば１０ｍｍである。この場合は所定値を超えるので、プロセスはＳ４６に移行する。Ｓ４６では、メインコントローラ５３は直前に探索した中間点から見て値が小さい側の領域の中間点を探索する。この場合は、第２中間点（２）が選択される。
【００８９】
以下、Ｓ４３〜Ｓ４６の流れを繰り返して、中間点は（１）、（２）、（３）と移動していく。そして、Ｓ４４で第３中間点（３）が探索されると、Ｓ４３で干渉がないと判断され、さらにＳ４５で直前の分割による分割後長さが所定値以下になると判断され、その結果、Ｓ４７で第３中間点（３）の値が経由位置に設定される。経由位置は、干渉が起こらない範囲で走行予定軌道から最も近くなっている。その結果、移動経路を短く設定できる。
【００９０】
経由位置が定まると、出発点から経由位置までの軌道として最短時間移動可能領域の境界を構成する２つの軌道を選択可能であり、さらに経由位置から目標位置までの軌道として最短時間移動可能領域の境界を構成する２つの軌道を選択可能である。
図１８を用いて、経由点を通る迂回軌道の選択動作を説明する。図１８は、経由位置を通る迂回軌道の選択判断を示す模式図である。図１８では、第１移載部３２Ａが第２移載部３２Ｂとの干渉を避けるために、経由位置１１５を設定した状態を示している。図から明らかなように、第１移載部３２Ａが出発位置１１４から経由位置１１５に移動する軌道としては第１迂回軌道１１２Ａと第２迂回軌道１１２Ｂとがあり、第１移載部３２Ａが経由位置１１５から目標位置１１６に移動する軌道としては第３迂回軌道１１３Ａと第４迂回軌道１１３Ｂとがある。メインコントローラ５３は、最初に、出発位置１１４と経由位置１１５を結ぶ直線のいずれ側に干渉位置１２２が存在するかを判定し、次に直線に対して干渉位置１２２と反対側の軌道である第１迂回軌道１１２Ａを外回り軌道として選択する。さらに、メインコントローラ５３は、最初に、経由位置１１５と目標位置１１６を結ぶ直線のいずれ側に干渉位置１２２が存在するかを判定し、次に直線に対して干渉位置１２２と反対側の軌道である第３迂回軌道１１３Ａを外回り軌道として選択する。このように選択された第１迂回軌道１１２Ａと第３迂回軌道１１３Ａは最も干渉の可能性が低い軌道の組み合わせなので、安全性が向上する。
軌道の選択順序については、各迂回軌道を任意に選択して順番に干渉チェックしていく方法と、干渉可能性が低い迂回軌道から干渉チェックしていく方法とがある。後者の場合は、最も干渉可能性が低い迂回軌道の組み合わせについて最初に干渉判定を行い、そこで干渉があると判断されれば他の軌道の組み合わせについて干渉判定を行う方法がある。干渉判定には、図９の干渉判定アルゴリズムを用いてもよい。
軌道の決定方法としては、最初に干渉がないと判断された迂回軌道を最終的なものとして決定する方法と、全ての迂回軌道の組み合わせに干渉があるか否かをさらに判断する方法がある。
【００９１】
この自動倉庫１では、移載部が経由する経由位置を選択した最短時間経路の一点の法線上の点とすることで、メインコントローラによる経路探索に関する演算処理の負荷が少なくなる。したがって、経路探索にかかる時間が短縮される。
【００９２】
（１０−２）出発開始遅れ時間の設定
次に、図１９を用いて、出発開始遅れ時間の設定に二分法を用いた場合を説明する。図１９は、「干渉あり」の０から「干渉なし」のｔｍａｘまでの時間軸である。
【００９３】
時間軸１７１に基づいて説明する。Ｓ４１では、メインコントローラ５３は、最大値として図１９のｔｍａｘを設定する。ｔｍａｘは、例えば、移動予定時間の２倍に設定される。ｔｍａｘは、第２移載部３２Ｂの移動が完了するまでの時間であってもよい。
【００９４】
Ｓ４２では、メインコントローラ５３は、時間軸１７１全体の中間点を探索する。図１９では、中間点は（１）で示されている。
【００９５】
Ｓ４３では、メインコントローラ５３は、第１中間点（１）の時間だけ走行を遅らせた場合に第１移載部３２Ａと第２移載部３２Ｂの干渉があるか否かを判断する。この場合は、干渉はないので、プロセスはＳ４５に移行して、メインコントローラ５３は、直前の分割による分割後長さが所定値以下であるか否かを判断する。所定値は、例えば０．１秒である。この場合は所定値を超えているので、プロセスはＳ４６に移行する。Ｓ４６では、メインコントローラ５３は、直前に探索した中間点から見て値が小さい側の領域の中間点を探索する。この場合は、第２中間点（２）が選択される。
【００９６】
以下、Ｓ４３〜Ｓ４６の流れを繰り返して、中間点は（１）、（２）、（３）、（４）、（５）と移動していく。そして、Ｓ４４で第５中間点（５）が探索されると、Ｓ４３で干渉がないと判断され、さらにＳ４５で中間点（４）、（５）の間の長さが所定値以下になると判断され、その結果、Ｓ４７で第５中間点（５）の値が走行開始遅れ時間に設定される。この値は、干渉が起こらない範囲で遅延時間を可能な限り短くした時間となっている。
以上に述べたように、メインコントローラ５３は移動開始を遅らす時間を決定するのに二分法を用いるので、経路探索にかける時間が短縮される。
【００９７】
（１１）回避軌道計算の特別な場合
図２０を用いて、第１移載部３２Ａと第２移載部３２Ｂとの目標位置が互いに干渉する場合の回避軌道計算について説明する。その場合は、ほとんど、通常軌道計算において干渉すると判断され、さらに回避軌道において計算時間が長時間になってしまう。そこで、ここでは、特別に回避軌道を設定する。図２０は、２つの移載部が同一又は干渉が生じる物品収納棚にアクセスしようとした場合の待機動作を示す模式図である。
【００９８】
図２０において、目標位置１１７に対して、第１移載部３２Ａと、第２移載部３２Ｂが接近しようとしている。以下、第１移載部３２Ａのメインコントローラ５３について説明する。
【００９９】
第１移載部３２Ａの移動開始前に、メインコントローラ５３は、以下の制御を行う。比較部７９は、両移載部がそれぞれの目標位置１２８において干渉すると判断されれば、両移載部の移動時間又は距離同士を比較する。第１移載部３２Ａが目標位置１２８に向かって移動する移動時間又は移動距離が第２移載部３２Ｂに比べて大きいと判断されれば、停止位置設定部７８は、自号機の停止位置を目標位置１２８から所定距離離れた待機位置１２９に変更する。待機位置１２９は、現在地と目標位置１２８とを結ぶ直線上であって目標位置１２８から距離ｒだけ離れた位置である。距離ｒは、目標位置１２８の近傍であって目標位置１２８に向かって移動する他の移載部と接触が生じにくい距離である。したがって、第１移載部３２Ａがその後に目標位置１２８に移動する際に回避動作を行う必要があったとしても、回避のための時間又は距離の量を小さくできる。
なお、停止位置設定部７８は、第１移載部３２Ｂが目標位置１２８に向かって移動する移動時間又は移動距離が第２移載部３２Ｂに比べて小さいと判断されれば、第１移載部３２Ａを現在の位置に待機させておく。その理由は、第２移載部３２Ｂの軌道に対して、第１移載部３２Ａの適切な待機軌道を算出するのに時間がかかるからである。
【０１００】
第１移載部３２Ａが待機位置１２９で待機している状態において、メインコントローラ５３は、第２移載部３２Ｂが目標位置１２８から他の位置に向けて移動を開始して、第１移載部３２Ａが目標位置１２８に移動しても両移載部が干渉しなくなるまで待つ。具体的には、第２移載部３２Ｂが目標位置１２８から離れたことを知らせる情報を受信してから、第１移載部３２Ａは移動を開始する。
【０１０１】
（１２）第２実施形態
図２１及び図２２を用いて、第２実施形態における軌道決定動作を説明する。この実施形態では、回避軌道計算及びｄｅｌａｙ軌道計算が所定時間内で繰り返し計算をすることで準最適解を選び出せるようになっている。図２１は、第２実施形態におけるメインコントローラの機能ブロック図である。図２２は、第２実施形態における軌道決定処理を示すフローチャートである。
【０１０２】
図２１に示すように、メインコントローラ１５３は、第１実施形態に示した機能に加えて、制限時間管理部１５５と、繰り返し実行部１５６とを有している。制限時間管理部１５５は、軌道算出の制限時間を管理する。繰り返し実行部１５６は、制限時間内で軌道算出部７２に軌道算出を繰り返し実行させる。
第１クレーンコントローラ４７Ａのメインコントローラ５３は、Ｓ５１において普通軌道計算を行い、次にＳ５２で部分移動時間の普通軌道計算において第１移載部３２Ａが第２移載部３２Ｂと干渉するか否かを判断する。Ｓ５２において「Ｙｅｓ」であればプロセスはＳ３４に移行する。Ｓ５２において「Ｎｏ」であれば、プロセスはＳ５３に移行して、メインコントローラ５３は全移動時間での計算が完了したが否かを判断する。Ｓ５３において「Ｎｏ」であれば、プロセスはＳ５１に戻ってメインコントローラ５３は普通軌道計算及び干渉判定を行う。Ｓ５３において「Ｙｅｓ」であれば（つまり、軌道の選択で干渉を回避可能であると判断されれば）、プロセスはＳ６２に移行する。Ｓ６２では、メインコントローラ５３は、計算結果を走行制御部５５に送信する。この結果、走行制御部５５は、選択された軌道に沿って第１移載部３２Ａを走行させる。
【０１０３】
軌道算出部７２がＳ５４において回避軌道を計算し、制限時間管理部１５５がＳ５５において許容計算時間αを越えたか否かを判断する。この実施形態では、αは０．０９秒である。Ｓ５５で「Ｙｅｓ」であればプロセスはＳ６０に移行する。Ｓ５５で「Ｎｏ」であればプロセスはＳ５６に移行する。Ｓ５６では、繰り返し実行部１５６が、終了条件に達したか否かを判断する。終了条件とは、例えば、繰り返し位置計算の回数が所定回数に達した場合である。Ｓ５６で「Ｙｅｓ」であればプロセスはＳ５７に移行する。Ｓ５６で「Ｎｏ」であれば、プロセスはステップ５４に戻り回避軌道計算が再度行われる。回避軌道計算は回を重ねるごとに他の解を求める。他の解とは、例えば、まだ選んでいない迂回軌道を選択することであったり、又は、二分法であれば、二度目の計算では一度目の計算より計算停止の基準となる所定値を小さくすることでさらに細かく経由点の位置を設定しそれにより得られた軌道である。
【０１０４】
軌道算出部７２がＳ５７でｄｅｌａｙ軌道計算を行い、制限時間管理部１５５がＳ５８で所定時間αを越えたか否かを判断する。Ｓ５８で「Ｙｅｓ」であればプロセスはＳ５０に移行する。Ｓ５８で「Ｎｏ」であればプロセスはＳ５９に移行する。Ｓ５９では、繰り返し実行部１５６が、終了条件に達したか否かを判断する。終了条件とは、例えば、繰り返し位置計算の回数が所定回数に達した場合である。Ｓ５９で「Ｙｅｓ」であればプロセスはＳ６０に移行する。Ｓ５９で「Ｎｏ」であれば、プロセスはＳ５７に戻りｄｅｌａｙ軌道計算が再度行われる。ｄｅｌａｙ軌道計算は回を重ねる毎に位置計算の精度をより高めていく。例えば、二分法であれば、二度目の計算では一度目の計算より中間点の位置を求める計算回数を増やす。
【０１０５】
Ｓ６０では、メインコントローラ５３の軌道選択部７３は、解があるか否かを判断する。「解」とは、回避軌道計算又はｄｅｌａｙ軌道計算において干渉がない経路が得られたことを意味する。Ｓ６０で「Ｙｅｓ」であればプロセスはＳ６１に移行し、「Ｎｏ」であればプロセスはＳ５２に移動する。Ｓ６１ではメインコントローラ５３は、複数の解の中から最適の解を選択する。最適の解とは、干渉の危険性が十分に低いことを前提としてさらに移動時間が少ない移動経路である。Ｓ５２では、メインコントローラ５３は、第１移載部３２Ａを待機状態にする。Ｓ６１が終了するとプロセスはＳ６２に移行する。Ｓ６２では、メインコントローラ５３は、計算結果を走行制御部５５に送信する。この結果、走行制御部５５は、選択された軌道に沿って第１移載部３２Ａを走行させる。
【０１０６】
以上に述べたように、第１実施形態では最初に選んだ軌道によって干渉判定を行うが、第２実施形態では、回避軌道計算及びｄｅｌａｙ軌道計算において、干渉判定を行わずに、許容計算時間α内で演算を繰り返し行う。そして、干渉があると判断すれば次の軌道計算に移行し、干渉がないと判断すればその軌道計算を選択する。第２実施形態では、許容計算時間内で複数の軌道計算を行い、その中から最適なものを選ぶ。したがって、例えば、第１実施形態の干渉判定では選択されないが実際には干渉せずにしかも移動時間が短くつまり稼働効率が高い軌道を選択することができる。
【０１０７】
（１３）他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合わせ可能である。
（ａ）前記実施形態では、普通軌道計算、回避軌道計算、ｄｅｌａｙ軌道計算を一定の順序で組み合わせて実現しているが、これら動作は個々別々に実現されてもよいし、他の順番の組み合わせで実現されてもよい。
（ｂ）前記実施形態では、移動体システムとして移載部が走行・昇降動作を行う自動倉庫を採用したが、本発明はそれに限定されない。例えば、地面を複数の搬送車が走行する搬送車システムにも本発明を適用できる。その場合は、搬送車同士の水平面内での干渉防止制御が行われる。
【産業上の利用可能性】
【０１０８】
本発明は、複数の移動体が平面範囲内で移動可能な移動体システムに広く適用できる。
【符号の説明】
【０１０９】
１        自動倉庫
２        ラック
２Ａ      第１ラック
２Ｂ      第２ラック
３        スタッカクレーン
３Ａ      第１スタッカクレーン
３Ｂ      第２スタッカクレーン
５        スタッカクレーン通路
７        前側支柱
９        後側支柱
１１      物品支承部材
１３      物品収納棚
１５      フォーク通過間隙
１７      入庫ステーション
１９      出庫ステーション
２１Ａ    第１走行レール
２１Ｂ    第２走行レール
２２      走行台車
２３      マスト
２３Ａ    左側マスト
２３Ｂ    前側マスト
２５      上側フレーム
２６      レール
２７      走行車輪   
２９      昇降台
３１      スライドフォーク
３２Ａ    第１移載部（第１移動体）
３２Ｂ    第２移載部（第２移動体）
３３      制御盤
３４      昇降ガイドローラ
３５      走行モータ
３７      昇降モータ
４１      ドラム
４３      ワイヤ
４４      ローラ
４５      システムコントローラ
４７Ａ    第１クレーンコントローラ
４７Ｂ    第２クレーンコントローラ
５３      メインコントローラ（制御部）
５５      走行制御部
５７      昇降制御部
５９      移載制御部
６３      ロータリエンコーダ
６５      ロータリエンコーダ
６７      移載モータ
６９      ロータリエンコーダ
７０      記憶部
７１      ＦｒｅｅＳｔｅｐテーブル
７２      軌道算出部
７３      軌道選択部
７４      ステップ分割部
７５      ステップ算出部
７６      干渉判断部
７７      他号機動作完了把握部
７８      待機位置設定部
７９      比較部
１１２Ａ  第１迂回軌道
１１２Ｂ  第２迂回軌道
１１３Ａ  第３迂回軌道
１１３Ｂ  第４迂回軌道
１１４    出発位置
１１５    経由位置
１１６    目標位置
１１７    目標位置
１２０    経由位置
１２２    干渉位置
１２３    法線
１２８    目標位置
１５３    メインコントローラ
１５５    制限時間管理部
１５６    繰り返し実行部
１７１    時間軸
１７３    出発位置
１７５    目標位置
１７６    ベクトル
１７７    中間点
１７８    法線
１８１    第１軌道
１８２    第２軌道
１８３    第３軌道
１８４    第４軌道
１９１    出発位置
１９３    目標位置
１９５    干渉位置
１９７    干渉位置
Ｐ        パレット
Ｗ        物品
【図１】
0005572104.tif 000008
【図２】
0005572104.tif 000009
【図３】
0005572104.tif 000010
【図４】
0005572104.tif 000011
【図５】
0005572104.tif 000012
【図６】
0005572104.tif 000013
【図７】
0005572104.tif 000014
【図８】
0005572104.tif 000015
【図９】
0005572104.tif 000016
【図１０】
0005572104.tif 000017
【図１１】
0005572104.tif 000018
【図１２】
0005572104.tif 000019
【図１３】
0005572104.tif 000020
【図１４】
0005572104.tif 000021
【図１５】
0005572104.tif 000022
【図１６】
0005572104.tif 000023
【図１７】
0005572104.tif 000024
【図１８】
0005572104.tif 000025
【図１９】
0005572104.tif 000026
【図２０】
0005572104.tif 000027
【図２１】
0005572104.tif 000028
【図２２】
0005572104.tif 000029