"平面内を移動可能に配置された第1移動体及び第2移動体と、前記第1移動体が移動を開始する前に、前記第1移動体の移動予定経路における前記第1移動体と前記第2移動体との干渉を確認する制御部とを備え、前記制御部は、前記移動予定経路における時間又は距離を複数のステップに分割するステップ分割部と、前記第1移動体及び前記第2移動体の相互距離、移動向き、速度を考慮することで、干渉が生じる可能性がないステップを算出するステップ算出部と、前記第1移動体及び前記第2移動体の位置を計算することで干渉の有無を判断するものであり、前記干渉が生じる可能性がないステップについての前記第1移動体及び第2移動体の位置計算を省略する干渉判断部と、を有する、移動体システム。前記ステップ算出部は、前記第1移動体及び前記第2移動体の相互距離、移動向き、速度を考慮することで、干渉が生じる可能性があるステップを算出し、さらに干渉が生じる可能性があるステップより前のステップを干渉が生じる可能性がないステップとして選択する、請求項1に記載の移動体システム。前記ステップ算出部は、前記速度として最高速度仕様値を用いる、請求項1又は2に記載の移動体システム。前記ステップ算出部は、前記第1移動体又は前記第2移動体が停止している場合には、停止している状態から直ちに加速を開始するという条件を採用する、請求項1~3のいずれかに記載の移動体システム。前記制御部は、前記第2移動体の動作が完了するステップを把握する把握部をさらに有し、前記ステップ算出部は、前記第2移動体の動作が完了するステップより前のみならず、前記第2移動体の動作が完了するステップにおける前記第1移動体及び前記第2移動体の相互距離、移動向き、速度を考慮することで前記第2移動体の動作が完了するステップより後においても、干渉が生じる可能性があるステップを算出する、請求項1~4のいずれかに記載の移動体システム。前記制御部は、前記第1移動体と前記第2移動体がそれぞれの目標位置において干渉すると判断されれば、前記第1移動体を前記目標位置から所定距離離れた位置で待機させる待機位置設定部をさらに有している、請求項1~5のいずれかに記載の移動体システム。前記制御部は、前記第1移動体と前記第2移動体がそれぞれの目標位置において干渉すると判断されれば、前記第1移動体と前記第2移動体の移動時間又は移動距離同士を比較する比較部をさらに備え、前記待機位置設定部は、前記第1移動体の移動時間又は移動距離が前記第2移動体の移動時間又は移動距離より長ければ前記第1移動体の待機位置を前記目標位置から所定距離離れた位置に設定し、前記第1移動体の移動時間又は移動距離が前記第2移動体の移動時間又は移動距離より短ければ前記第1移動体の待機位置を現在の位置に設定する、請求項6に記載の移動体システム。前記制御部は、前記第1移動体と第2移動体が干渉しない軌道を算出する軌道算出部と、前記軌道算出の制限時間を管理する制限時間管理部と、前記制限時間内で前記軌道算出部に軌道算出を繰り返し実行させる繰り返し実行部と、前記軌道算出部が算出した複数の軌道の中から最適な軌道を選択する軌道選択部と、をさらに有している、請求項1~7のいずれかに記載の移動体システム。一般に、複数の移動体の干渉を防止するためには、複数の移動体の経路探索処理を行う必要があり、最適な経路探索を行うためには制御装置内の演算部に大きな負荷がかかってしまう。本発明の課題は、平面内に移動可能に配置された第1移動体と第2移動体とを有する移動体システムにおいて、移動体の干渉を移動開始前に判断するときの演算量を減らすことにある。以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合わせることができる。本発明の一見地に係る移動体システムは、第1移動体及び第2移動体と、制御部とを備えている。第1移動体及び第2移動体は、平面内を移動可能に配置されている。制御部は、第1移動体が移動を開始する前に、第1移動体の移動予定経路における第1移動体と第2移動体との干渉を確認する。制御部は、ステップ分割部と、ステップ算出部と、干渉判断部とを有している。ステップ分割部は、移動予定経路における時間又は距離を複数のステップに分割する。ステップ算出部は、第1移動体及び第2移動体の相互距離、移動向き、速度を考慮することで、干渉が生じる可能性がないステップを算出する。干渉判断部は、第1移動体及び第2移動体の位置を計算することで干渉の有無を判断するものであり、干渉が生じる可能性がないステップについての第1移動体及び第2移動体の位置計算を省略する。この移動体システムでは、最初に第1移動体の移動予定経路における時間又は距離が複数のステップに分割され、次に、干渉が生じる可能性がないステップが算出される。干渉の可能性がないステップについては、第1移動体及び第2移動体の位置計算が省略される。したがって、移動体の干渉を移動開始前に判断するときの演算量が減らされる。その結果、上記の移動体システムは、計算機の資源が豊富でない汎用基板による組み込み制御への実装が可能になる。ステップ算出部は、第1移動体及び第2移動体の相互距離、移動向き、速度を考慮することで、干渉が生じる可能性があるステップを算出し、さらに干渉が生じる可能性があるステップより前のステップを干渉が生じる可能性がないステップとして選択してもよい。この移動体システムでは、最初に第1移動体の移動予定経路における時間又は距離が複数のステップに分割され、次に、干渉が生じる可能性があるステップが算出される。干渉の可能性があるステップより前のステップについては、第1移動体及び第2移動体の位置計算が省略される。したがって、移動体の干渉を移動開始前に判断するときの演算量が減らされる。その結果、上記の移動体システムは、計算機の資源が豊富でない汎用基板による組み込み制御への実装が可能になる。ステップ算出部は、速度として最高速度仕様値を用いてもよい。この移動体システムでは、速度の値として最高速度仕様値が計算に用いられるので、演算処理の負荷を減らすことができる。ステップ算出部は、第1移動体又は第2移動体が停止している場合には、停止している状態から直ちに加速を開始するという条件を採用してもよい。この移動体システムでは、第1移動体及び第2移動体が停止している状態から直ちに加速を開始するという条件を採用しているので、干渉がないステップ以外のステップの値を小さく設定できる。そのため、干渉の可能性があるステップを確実に選択できる。制御部は、第2移動体の動作が完了するステップを把握する把握部をさらに有していてもよい。その場合、ステップ算出部は、第2移動体の動作が完了するステップより前のみならず、第2移動体の動作が完了するステップにおける第1移動体及び第2移動体の相互距離、移動向き、速度を考慮することで、第2移動体の動作が完了するステップより後においても、干渉が生じる可能性があるステップを算出する。この移動体システムでは、第2移動体の動作が完了するステップが把握されれば、第2移動体の動作が完了するステップより後においても干渉が生じる可能性があるステップが算出される。このようにする理由は、第2移動体の動作が完了することで第2移動体の経路が大きく変わると予想されるので、第2移動体の動作が完了するステップより後で干渉が生じる可能性があるステップを算出することが好ましいからである。制御部は、待機位置設定部をさらに有していてもよい。その場合、待機位置設定部は、第1移動体と第2移動体がそれぞれの目標位置において干渉すると判断されれば、第1移動体を目標位置から所定距離離れた位置に待機させる位置を設定する。ここで、待機とは、いずれかの位置で停止して、干渉が回避されるまでは次の移動を行わないことをいう。この移動体システムでは、第1移動体と第2移動体がそれぞれの目標位置において干渉すると判断されれば、第1移動体は目標位置から所定距離離れた位置に待機させられる。したがって、これにより、目標位置において干渉が生じる場合に干渉を避けるために必要となる複雑な軌道計算を行う必要が無くなる。制御部は、比較部をさらに有していてもよい。その場合、比較部は、第1移動体と第2移動体がそれぞれの目標位置において干渉すると判断されれば、第1移動体と第2移動体の移動時間又は移動距離同士を比較する。待機位置設定部は、第1移動体の移動時間又は移動距離が第2移動体の移動時間又は移動距離より長ければ第1移動体の停止位置を目標位置から所定距離離れた位置に設定し、第1移動体の移動時間又は移動距離が第2移動体の移動時間又は移動距離より短ければ第1移動体の待機位置を現在の位置に設定する。この移動体システムでは、第1移動体が第2移動体より早く目標位置に到達できない場合は目標位置から所定距離離れた位置まで移動させて停止させられる。したがって、第1移動体がその後に目標位置に移動する際に回避動作を行う必要があったとしても、回避のための時間又は距離の量を小さくできる。一方、第2移動体より早く目標位置に到達できる場合は、第1移動体は現在の位置で待機させられる。それにより、目標位置において移載部同士が干渉する場合の複雑な軌道計算を行わなくてもよくなる。制御部は、軌道算出部と、制限時間管理部と、繰り返し実行部と、軌道選択部と、をさらに有していてもよい。軌道算出部は、第1移動体と第2移動体が干渉しない軌道を算出する。制限時間管理部は、軌道算出の制限時間を管理する。繰り返し実行部は、制限時間内で軌道算出部に軌道算出を繰り返し実行させる。軌道選択部は、軌道算出部が算出した複数の軌道の中から最適な軌道を選択する。この移動体システムでは、第1移動体と第2移動体が干渉しない軌道は、制限時間内で何度も算出される。そして、複数の軌道から最適な軌道が選択される。そのため、稼働効率が高い軌道を選択できる。本発明に係る移動体システムでは、干渉しないステップについての複数の移動体の位置計算を省略しているので、移動体の干渉を移動開始前に判断するときの演算量が減らされる。1自動倉庫全体図1~図3を用いて、本発明の第1実施形態としての自動倉庫1を説明する。図1は、本発明の第1実施形態が採用された自動倉庫の概略平面図である。図2は、図1のII矢視図であり、ラックとスタッカクレーンを説明するための図である。図3は、自動倉庫の一部省略側面図であり、ラックとスタッカクレーンを説明するための図である。この実施形態において、図1及び図2の左右方向が自動倉庫1の前後方向Xであり、図1の上下方向及び図3の左右方向が自動倉庫1の左右方向Yである。自動倉庫1は、主に、一対のラック2第1ラック2A、第2ラック2Bと、一対のスタッカクレーン3第1スタッカクレーン3A、第2スタッカクレーン3Bとから構成されている。2ラック第1ラック2A、第2ラック2Bは、自動倉庫1の左右方向Yに延びるスタッカクレーン通路5を挟むように配置されている。第1ラック2A、第2ラック2Bは、所定間隔で左右方向Yに沿って並ぶ多数の前側支柱7と、前側支柱7の後方にそれとの間に所定間隔をあけて並ぶ後側支柱9と、前側支柱7及び後側支柱9に設けられた多数の物品支承部材11とを有している。左右一対の物品支承部材11によって、物品収納棚13が構成されており、それらの間は後述のスライドフォーク31の上下方向の移動を許容するフォーク通過間隙15となっている。各物品収納棚13には、図から明らかなように、左右上下に多数配置されており、それぞれに物品Wを載置可能である。各物品Wは、パレットP図2を参照。上に載置され、パレットPと共に移動させられる。なお、第2ラック2Bの片側に入庫ステーション17が配置され、第1ラック2Aの片側に出庫ステーション19が配置されている。3スタッカクレーン次に、図1~図3を用いて、第1スタッカクレーン3A、第2スタッカクレーン3Bについて説明する。なお、図1及び図2では、第1スタッカクレーン3A、第2スタッカクレーン3Bの構造は簡略化されている。第1スタッカクレーン3Aと、第2スタッカクレーン3Bは、ラック2の近傍を平行して走行するともに物品Wをラック2との間で移載可能である。以下、スタッカクレーンについてより詳細に説明する。第1ラック2A、第2ラック2Bの間に、スタッカクレーン通路5に沿って、自動倉庫1の前後方向Xに並んだ第1走行レール21A、第2走行レール21Bが設けられている。第1走行レール21A、第2走行レール21Bは、それぞれ上下一対のレール26を有しており、これらレール26によって、第1スタッカクレーン3A及び第2スタッカクレーン3Bが、自動倉庫1の左右方向Yに移動可能に案内されている。第1スタッカクレーン3A、第2スタッカクレーン3Bは、主に、走行台車22と、走行台車22に設けられた一対のマスト23左側マスト23A、右側マスト23Bと、左側マスト23A及び右側マスト23Bの上端を連結する上側フレーム25と、走行台車22に設けられた走行車輪27と、左側マスト23A及び右側マスト23Bに昇降自在に装着された昇降台29と、昇降台29に進退機構図6の移載モータ67を含むによって前後方向Xに摺動自在に設けられたスライドフォーク31とを有している。昇降台29は、左側マスト23A及び右側マスト23Bにガイドされる昇降ガイドローラ34を有する。スライドフォーク31は、前後方向Xの両側にスライド可能であるので、第1ラック2A及び第2ラック2Bの両方にアクセス可能である。つまり、スライドフォーク31は自機が走行する走行レールに隣接するラックと、他機が走行する走行レールに隣接するラックのいずれとの間で物品Wを移載可能である。なお、図2及び図3において、昇降台29のスライドフォーク31の上には、パレットPと物品Wが載っている。以下の説明では、昇降台29とスライドフォーク31をまとめて、移載部として説明する。移載部には、物品W及びパレットPが搭載されている場合と、搭載されていない場合とがある。なお、以下、第1スタッカクレーン3Aの移載部を第1移載部32Aとして、第2スタッカクレーン3Bの移載部を第2移載部32Bとする。第1移載部32A及び第2移載部32Bは、水平昇降方向により形成される二次元平面図3のY-Z平面内を移動して、物品Wの搬出入を行っている。第1移載部32A及び第2移載部32Bは、走行台車22の走行動作と昇降装置の昇降動作の組み合わせによって、平面内で自由に移動可能である。また、第1移載部32Aと第2移載部32Bは前述の二次元平面内において干渉しない限りどの位置にも存在することができる。ただし、図2から明らかなように、第1移載部32A及び第2移載部32Bの前後方向Xの位置は互いに重なっている。したがって、第1移載部32A及び第2移載部32B同士が上下方向に完全にずれている場合にのみ、第1スタッカクレーン3Aと第2スタッカクレーン3Bは、左右方向Yにすれ違い走行が可能である。第1スタッカクレーン3A、第2スタッカクレーン3Bは、図3に詳細に示すように図1及び図2では省略、制御盤33と、走行モータ35と、昇降モータ37とを有している。制御盤33は、右側マスト23Bのさらに後側に設けられている。走行モータ35は、左側マスト23Aに設けられている。昇降モータ37は、左側マスト23Aに設けられている。制御盤33は、内部に、走行モータ35や昇降モータ37用のインバータ、コンバータ、ブレーカ等の電装機器を有している。制御盤33には、後述するクレーンコントローラが収納されている。昇降モータ37は、図3に示すように、ドラム41を駆動可能である。ドラム41からは、ワイヤ43が延びている。ワイヤ43は、上側フレーム25に設けられたローラ44に掛け回され、さらに昇降台29に連結されている。4スタッカクレーンの制御構成次に、図4及び図5を用いて、自動倉庫1の制御構成を説明する。図4は、第1実施例としての自動倉庫制御構成を示す機能ブロック図である。図5は、第2実施例としての自動倉庫制御構成を示す機能ブロック図である。図4では、システムコントローラ45、第1クレーンコントローラ47A、第2クレーンコントローラ47Bが示されている。第1クレーンコントローラ47Aは、第1スタッカクレーン3Aに搭載されおり、第1スタッカクレーン3Aの動作を制御する。第2クレーンコントローラ47Bは、第2スタッカクレーン3Bに搭載されており、第2スタッカクレーン3Bの動作を制御する。システムコントローラ45は、第1クレーンコントローラ47A、第2クレーンコントローラ47Bより上位のコントローラであり、第1クレーンコントローラ47A、第2クレーンコントローラ47Bと交信可能である。図4に示す第1実施例では、第1クレーンコントローラ47A、第2クレーンコントローラ47Bはシステムコントローラ45を介してのみ互いに交信する。図5に示す第2実施例では、第1クレーンコントローラ47A、第2クレーンコントローラ47Bは、システムコントローラ45を介さずに直接交信可能である。なお、第1クレーンコントローラ47Aと第2クレーンコントローラ47Bが互いに送受信するデータには、正常異常を知らせる状態データ、実行中の搬送データ、現在位置が含まれている。次に、図6を用いて、制御盤33内に配置された第1クレーンコントローラ47Aについて説明する。図6は、スタッカクレーンの制御部の機能ブロック図である。なお、第2クレーンコントローラ47Bは、第1クレーンコントローラ47Aと同様であるので、説明を省略する。また、第1クレーンコントローラ47A、第2クレーンコントローラ47Bは、スタッカクレーンに搭載されていなくてもよい。第1クレーンコントローラ47Aは、メインコントローラ53と、走行制御部55と、昇降制御部57と、移載制御部59とを有している。これら制御部は、CPUやメモリ等のコンピュータハードウェアを含んでおり、図6においてはコンピュータハードウェアとソフトウェアの協働によって実現される機能ブロックとして表現されている。なお、これら制御部は、複数の機能を持つ単独のコンピュータによって実現されてもよい。メインコントローラ53は、走行制御部55,昇降制御部57及び移載制御部59と交信可能である。さらに、メインコントローラ53は、システムコントローラ45及び第2クレーンコントローラ47Bとも交信可能である。交信は定期的に又は必要に応じて行われる。走行制御部55は、走行車輪27の走行停止を制御するための制御部であり、走行モータ35と、ロータリエンコーダ63に接続されている。昇降制御部57は、昇降台29を左側マスト23A及び右側マスト23Bに沿って上下動させるための制御部であり、昇降モータ37と、ロータリエンコーダ65に接続されている。移載制御部59は、スライドフォーク31を前後方向Xに移動させるための制御部であり、移載モータ67と、ロータリエンコーダ69に接続されている。第1クレーンコントローラ47Aは、さらに、記憶部70を有している。記憶部70は、RAM又はハードディスクといった書き換え可能な記録媒体である。記憶部70には、後述するFreeStepテーブル71が保存されている。図7を用いてメインコントローラ53の機能を説明する。図7は、メインコントローラの機能ブロック図である。メインコントローラ53は、軌道算出部72と、軌道選択部73と、ステップ分割部74と、ステップ算出部75と、干渉判断部76と、他号機動作完了把握部77と、停止位置設定部78と、比較部79とを有している。軌道算出部72は、第1移載部32Aの候補となる軌道を算出する。軌道選択部73は、軌道算出部72が算出した複数の軌道の中から最適な軌道を選択する。ステップ分割部74は、移動予定経路における時間又は距離を複数のステップに分割する。ステップ算出部75は、両移載部の相互距離、移動向き、速度を考慮することで干渉が生じる可能性があるステップFreeStepを算出する。干渉判断部76は、FreeStepについて両移載部の位置を計算することで干渉の有無を判断する。他号機動作完了把握部77は、他号機の動作が完了するStepを把握する。停止位置設定部78は、両移載部がそれぞれの目標位置において干渉すると判断されれば、自号機の停止位置を目標位置から所定距離離れた位置に変更する。比較部79は、両移載部がそれぞれの目標位置において干渉すると判断されれば、両移載部の移動時間又は移動距離同士を比較する。5軌道決定処理の概要説明図8を用いて、移載部が停止したアイドル状態から移動を開始する前の軌道決定処理を説明する。図8は、メインコントローラによる軌道決定処理を示すフローチャートである。なお、以下の説明では、第1スタッカクレーン3Aの第1移載部32Aを移動対象として説明する。メインコントローラ53の軌道算出部72は、S1において普通軌道計算を行い、次にS2において干渉判定部75が第1移載部32Aが第2移載部32Bと干渉するか否かを判断する。普通軌道計算とは、軌道の選択による干渉の判定である。なお、S3においてYesとは、部分移動時間の普通軌道計算において第1移載部32Aと第2移載部32Bの干渉を避けることができる軌道を選択できなかったことを意味する。S2においてYesであればプロセスはS4に移行する。S2においてNoであれば、プロセスはS3に移行して、メインコントローラ53は全移動時間での計算が完了したが否かを判断する。S3においてNoであれば、プロセスはS1に戻ってメインコントローラ53は普通軌道計算及び干渉判定を行う。S3においてYesであればつまり、軌道の選択で干渉を回避可能であると判断されれば、プロセスはS10に移行する。S10では、メインコントローラ53は、計算結果を走行制御部55に送信する。この結果、走行制御部55は、選択された軌道に沿って第1移載部32Aを走行させる。軌道算出部72はS4において回避軌道を計算し、干渉判断部76はS5において回避軌道の計算によって干渉するか否かを判断する。回避軌道の計算とは、選択した軌道において軌道条件を修正することで干渉を回避できる軌道を計算によって求めることである。なお、S5においてYesとは、部分移動時間の回避軌道計算において第1移載部32Aと第2移載部32Bの干渉を避けることができる回避軌道を得られなかったことを意味する。なお、ここでの回避軌道を得られなかったとは、例えば、目標位置が近接しており回避不可能だった場合以外に、効率を考慮して設定した範囲計算時間と迂回距離を超えた場合を含む。S5においてYesであればプロセスはS7に移行し、S5においてNoであればプロセスはS6に移行する。S6において、メインコントローラ53は全移動時間での計算が完了したが否かを判断する。S6においてYesであればつまり、軌道条件の修正によって干渉を回避可能であると判断されれば、プロセスはS10に移行する。これにより、最適な軌道は保証されないものの、その条件の下で第1移載部32Aがより早く目標位置に到達できるようになる。その後、走行制御部55は、修正された軌道条件に基づいて第1移載部32Aを走行させる。S5においてYesであればつまり、軌道条件の修正によって干渉を回避不可能であると判断されれば、プロセスはS7に移行する。S7では、軌道算出部72は、delay軌道計算を行う。delay軌道計算とは、干渉を回避するための移動開始遅延時間の計算である。なお、S8においてYesとは、部分移動時間のdelay軌道計算において第1移載部32Aと第2移載部32Bの干渉を避けることができる軌道を得られなかったことを意味する。S8において、メインコントローラ53は、干渉が生じるか否かを判断する。S8においてYesであればプロセスはS11に移行し、S8においてNoであればプロセスはS9に移行する。S11において、第1クレーンコントローラ47Aは、第1移載部32Aを待機状態にする。S9において、メインコントローラ53は全移動時間での計算が完了したが否かを判断する。S9においてYesであればプロセスはS10に移行する。その結果、第1移載部32Aは、計算によって得られた時間だけ遅れて、目標位置に向かって移動を開始する。S9でNoであればプロセスはS7に移行する。上述したように、図8に示した軌道決定アルゴリズムでは、普通軌道、回避軌道計算、delay軌道計算の順番で干渉があるか否かを判断している。このように回避軌道計算をdelay軌道計算の前に置くことができるようになった理由は、後述するように迂回軌道の選択を所定の順番で行うようにすることで、回避軌道計算において計算時間を短縮できるようになったからである。6干渉判定以下、図9を用いて、FreeStepの取得及び両移載部の位置計算による干渉判定を行うアルゴリズムについて説明する。図9は、メインコントローラの干渉判定処理を示すフローチャートである。図9に示すアルゴリズムは、図8で示した干渉判定フローの普通軌道計算において、第1移載部32Aと第2移載部32Bの干渉判定に用いられる。このアルゴリズムは、第1クレーンコントローラ47A及び第2クレーンコントローラ47Bの各メインコントローラ53によってそれぞれ実行される。以下、第1クレーンコントローラ47のメインコントローラ53が第1移載部32Aの干渉判定を行う場合を説明する。第1移載部32Aが移動を開始して目標位置に到達するまでの時間又は距離は、複数のStepに分割して取り扱われる。例えば、1Stepは5msである。メインコントローラ53は、第1移載部32Aが移動開始後に第2スタッカクレーン3Bの第2移載部32Bとの干渉が発生しないStepをFreeStepとして求め、FreeStepにおいて第1移載部32Aと第2移載部32Bが存在する予定位置を算出することで干渉の有無を判定する。つまり、このアルゴリズムでは、FreeStepより前のStepに関しては第1移載部32A及び第2移載部32Bの位置計算は、行われない。したがって、メインコントローラ53の計算負荷が低減される。図9のS21では、メインコントローラ53のステップ分割部74は、移動予定経路における時間又は距離を複数のStepに分割する。次に、メインコントローラ53は、記憶部70に保存されているFreeStepテーブル71を初期化する。FreeStepテーブル71は、例えば、配列FreeStep[0]~FreeStep[2999]からなる。さらに、S21では、メインコントローラ53は、FreeStep[i]の添え字iに0を代入するi=0ことで、FreeStep[0]を初期値に設定する。S22では、メインコントローラ53は、FreeStepと、第2スタッカクレーン3Bの第2移載部32B他号機の現在動作が完了するStepとを取得する。この実施形態では、FreeStepは、maxX_freestep,Y_freestepと表される。FreeStepであるmaxX_freestep,Y_freestepは、メインコントローラ53のステップ算出部75によって得られる。ステップ算出部75は、両移載部の相互距離、移動向き、速度を考慮することで干渉の可能性が高いステップとしてのFreeStepを選択する。より具体的には、FreeStepは以下のようにして求められる。最初に、第1移載部32Aと第2移載部32Bが干渉する条件下において、X軸走行軸のStepであるX_freestepとY軸昇降軸のStepであるY_freestepとが別々に算出される。次に、X_freestepとY_freestepの大小が比較されて、大きい値がFreeStepとして選ばれる。X軸FreeStepとY軸FreeStepが同じ値の場合は、その値がFreeStepとして選ばれる。X軸とY軸とでFreeStepの算出を分けている理由は、計算を簡単にするためである。干渉の判定対象となる2つの物体は平面上を移動するので、干渉となるのはX軸とY軸が重なる状態である。このようにX軸とY軸が互いに重なることが干渉の条件なので、双方のうち大きい方の値に注目して位置を求めれば、干渉のおそれがあるStepとしてのFreeStepとして適切である。X_freestep又はY_freestepの算出方法は、以下の4つの場合でそれぞれ異なる式を用いて求められる。以下の式では、第1移載部32Aの速度をV1とし、第2移載部32Bの速度をV2とし、双方の加減速度をaとし、第1移載部32Aと第2移載部32Bとの間の距離をdxとする。そして、V1とV2は、干渉を見逃さないように条件を厳しく設定する目的で、Vmax最大速度としている。1V1とV2が同一方向を向いている場合V1とV2の速度差の最大値Vmax以下の速度で両者は近づいていく2V1とV2が反対方向互いに接近する側を向いている場合V1とV2の速度輪の最大値2VAmax以下の速度で両者は近づく3V1とV2の一方が0の場合V1とV2の一方が突然発進した場合を想定している4V1とV2の両方が0の場合V1とV2の両方が突然発進した場合を想定しているなお、基準距離は、第1移載部32A及び第2移載部32Bが、加速度aで加速し、次に速度がVmaxに到達し、その後に減速度aで減速して、最後に停止するまでの距離を表している。なお、以上の数式は一例であって、他の数式を採用してもよい。S23では、メインコントローラ53は、FreeStepをFreeStepテーブル71に昇順に代入する。したがって、最も小さい値のFreeStepがFreeStep[0]に代入される。S24では、メインコントローラ53は、未処理のすなわち、干渉チェックを行っていないFreeStepがあるか否かを判断する。具体的には、メインコントローラ53は、FreeStep[i]が存在するか否かを判断する。未処理のFreeStepがあればYesの場合プロセスはS25に移行する。一方、未処理のFreeStepがなければNoの場合プロセスは終了する。このプロセス終了の場合は、全てのFreeStepにおいて干渉なしと判断されたことになるので、当該軌道計算が採用される。S25では、メインコントローラ53の他号機動作完了把握部77は、対象となるFreeStepと次のFreeStepとの間で第2スタッカクレーン3Bの第2移載部32Bが現在行っている動作移動又は移載を完了するか否かを判断する。第2移載部32Bが現在行っている動作の完了があればYesの場合、プロセスはS22に戻る。これは、第2移載部32Bが現在行っている動作を完了すれば、メインコントローラ53は、第2移載部32Bの次の動作におけるFreeStepの有無を調べる必要があるからである。S22では、メインコントローラ53のステップ算出部75は、FreeStepを再取得する。具体的には、第2移載部32Bが次の動作を行っている状態におけるmaxX_freestep,Y_freestepを求める。一方、第2移載部32Bが現在行っている動作の完了がなければNoの場合、プロセスはS26に移行する。S26では、メインコントローラ53の干渉判断部76は、は、位置計算処理FreeStep[i]を実行する。位置計算処理FreeStep[i]では、FreeStep[i]における第1移載部32Aと第2移載部32Bのそれぞれの位置計算が行われる。位置計算の結果は、x,y座標値で得られる。S27では、干渉判断部76は、対象になっているFreeStepについて両移載部の位置を計算することで、第1移載部32Aと第2移載部32Bとが干渉するか否かを判断する。この場合、第1移載部32Aと第2移載部32Bは互いの面積が一部でも重なっていれば干渉していると判断される。第1移載部32Aと第2移載部32Bが干渉しなければNoの場合プロセスはS29に移行し、第1移載部32Aと第2移載部32Bが干渉すればプロセスはS28に移行する。S29では、メインコントローラ53は、直前に位置計算を行ったFreeStepを処理済みにする。具体的にメインコントローラ53は、FreeStep[i]の添え字iをインクリメントする。S28では、プロセスは次の軌道計算処理に移行する。これは、現在の軌道計算方式では第1移載部32Aと第2移載部32Bの干渉が生じることが判明したからである。7実施例以下のような実施例を説明する。Step240において第2移載部32Bが現在の動作を行っている状態である、第1移載部32Aと第2移載部32Bが干渉するおそれがある。Step1000において、第2移載部32Bが現在の動作例えば、移動を完了する。Step1500において第2移載部32Bが次の動作を行っている状態である、第1移載部32Aと第2移載部32Bが干渉するおそれがある。Step2600において、第1移載部32Aが移動を完了するつまり、第1移載部32Aが目標位置に到着する。以下、上記の場合について、メインコントローラ53の制御動作を、図9のフローチャートを用いて説明する。なお、以下の説明では重要なポイントに焦点を当てて説明を行う。最初に、S22において、メインコントローラ53は、Step240をFreeStepとして取得し、さらにStep1000も取得する。なお、Step1000は他号機が動作を完了するStepであってFreeStepではないが、この実施例では処理の便宜上FreeStepと共通の扱いになっている。S23において、メインコントローラ53は、FreeStepテーブルに各FreeStepの値を昇順で代入する。その結果、例えば、FreeStep[0]には240が代入され、FreeStep[1]には1000が代入される。S24では、FreeStep[0]が未処理であるので、プロセスはS25に移行するS24においてYes。そして、この場合ではStep240とStep1000との間で第2移載部32Bが現状動作を完了することがないので、プロセスはS26に移行する。S26では、メインコントローラ53は、Step240における第1移載部32Aと第2移載部32Bの位置を計算し、さらにS27で第1移載部32Aと第2移載部32Bが干渉するか否かを判断する。Step240において干渉が生じると判断されると、現在取得中の軌道計算処理では干渉を避けられないことが分かったので、プロセスはS28に移行して次の種類の軌道計算処理を行う。第1移載部32Aと第2移載部32Bが干渉しない場合は、プロセスはS29を通ってS24に戻る。S24では、FreeStep[1]が未処理なので、S25に移行する。S25では、処理済みのStep240より後のStep1000において第2移載部32Bが現在の動作例えば、移動を完了すると判断されるので、プロセスはS22に戻る。S22では、メインコントローラ53は、FreeStepを再取得する。具体的には、第2移載部32Bが次の動作を行っている状態におけるmaxX_freestep,Y_freestepを求める。実際には、Step1500が、第2移載部32Bが次の動作を行っている状態において、第1移載部32Aと第2移載部32Bが干渉するおそれがあるStepであるとして、FreeStepであると判断される。S23では、メインコントローラ53は、FreeStep[2]に1500を代入する。なお、この実施例では、メインコントローラ53は、S26及びS27において、Step1000において干渉が生じるか否かを判断するが、これはFreeStepと処理を共通化した結果そうなるのであって、本来は他号機動作を完了したStepの干渉判断は行わなくてもよい。さらに、メインコントローラ53は、S26及びS27においてStep1500において干渉が生じるか否かを判断する。なお、本実施例では、Step2600以降のStepにおいて第2移載部32Bが次の動作を完了しても、干渉判定に影響を与えない。以上に述べたように、第2移載部32Bが動作を完了して次の動作を開始するタイミングより後のFreeStepが位置計算の対象になる場合はS25のYes、その位置計算実行の前に、上記タイミングと当該FreeStepとの間に新たなFreeStepが生じるか否かが判断されるS22。そして、新たなFreeStepが得られた場合には、新たなFreeStepにおける位置計算が行われるS27。別の実施例として、最初のFreeStepの取得時において第2移載部32Bが次の状態に移行するか否かを確認して、もしも次の状態に移行すると判断されれば、次の状態でのFreeStepも取得してもよい。その場合は、図9においてS25が省略される。8軌道選択動作図8のS1及びS2図10~図12を用いて、普通軌道計算及び干渉判定軌道選択動作について詳細に説明する。図10は、メインコントローラの軌道選択処理を示すフローチャートである。図11は、出発位置と目標位置との間にある複数の軌道を示す模式図である。図12は、出発位置と目標位置との間にある2つの軌道を示す模式図である。第1クレーンコントローラ47Aのメインコントローラ53は、第1移載部32Aの移動開始前に、複数の最短時間経路の中から、第2移載部32Bとの干渉を回避できる最短時間経路を探索する。選択の対象となる最短時間経路は、出発位置から目標位置までを対角とする上下左右の領域の境界ラインを構成する2つの最短時間経路第1軌道181、第2軌道182のみである。以下、選択処理について詳細に説明する。第1移載部32Aは、走行昇降のいずれの方向に移動可能である。走行昇降方向の制御は独立しており、台形近似された速度テーブルが各軸の移動距離に応じて与えられる。図11では、出発位置191から目標位置193までの間に、複数の軌道第1軌道181、第2軌道182、第3軌道183、第4軌道184が示されている。この場合、走行方向の距離が昇降方向の距離に比べて長いので、走行方向の移動時間が昇降方向の移動時間より長くなっている。これら軌道は、いずれも、走行方向にかかる時間が一定であり、昇降方向動作の開始タイミングのみ又は昇降方向動作の開始タイミング及び速度を変更することで異なるものになっている。具体的には、昇降軸方向の移動開始を遅らせていくことで、軌道は右側にシフトしていく。このことは、走行軸の移動時間-昇降軸の移動時間の範囲内では走行又は昇降の移動開始時刻を調整することで、最短時間が保証された軌道を複数の候補から選択できることを意味する。前述の2つの最短時間経路は、言い換えると、出発位置から目標位置までの走行時間と昇降時間を比較して長い方の時間に対する短い方の開始時間を最も早くした場合の第1の軌道と、最も遅くした場合の第2の軌道である。これら複数の軌道の中で実際にメインコントローラ53が選択において考慮するのは、出発位置から目標位置までの軌道の集合が構成する四角形又は平行四辺形の領域の最も外側を通る第1軌道181及び第4軌道184だけである。これら第1軌道181と第4軌道184は、2つの軌道の組としては最も離れた2つの軌道からなる組み合わせである。したがって、両方の軌道のいずれにおいても干渉が発生する場合には、干渉を回避できる軌道は存在しない。つまり、軌道選択という観点では、第1軌道181又は第4軌道184のいずれかを選択すれば十分である。この自動倉庫1では、メインコントローラ53は2つの最短時間経路のみを探索する。したがって、軌道探索処理にかかる演算量が少なくなる。その結果、メインコントローラ53は短期間で軌道を決定できる。なお、軌道の数は通常は2つであるが、例えば水平方向又は垂直方向に移動する場合は、軌道は1つになる。図10のS31では、メインコントローラ53は、他号機である第2移載部32Bの位置を把握し、第2移載部32Bに対して、第1移載部32Aは、第1軌道181及び第4軌道184のいずれが外回りの軌道になるかを判断する。具体的には、出発位置と目的位置を結ぶ直線のどちらの側に第2移載部32Bが存在するか否かを判断し、さらに前記直線の第2移載部32Bと反対側にある軌道を外回りの軌道として選択する。図12のような例では、第1軌道181が第2移載部32Bに対して外回りの軌道になる。S31では、メインコントローラ53は、第2移載部32Bに対して外回りの軌道になる第1軌道181が安全であるか否かを判断する。この判断時に、図9の干渉判断処理が実行される。安全であると判断されれば、プロセスはS32に移行する。S32では、メインコントローラ53は第1軌道181を軌道として選択する。S31で第1軌道181が安全ではないと判断されれば、プロセスはS33に移行する。S33では、第4軌道184が安全であるか否かを判断する。この判断時に、図9の干渉判断処理が実行される。第4軌道184が安全であると判断されれば、プロセスはS32に移行する。S32では、メインコントローラ53は第4軌道184を軌道として選択する。S33で第4軌道184が安全ではないと判断されれば、プロセスはS34に移行する。S34では、第1クレーンコントローラ47Aは軌道選択を行わないことを決定する。以上に述べたように、選択する軌道の数を制限しているので、演算の負荷が少なくなっている。さらに選択する軌道の順序を選択しているので、結果として最初に判断した軌道を選択する可能性が高くなり、演算の負荷が少なくなっている。9軌道条件の変更による回避手法の選択図8のS4及びS5図13を用いて、回避軌道計算及び干渉判定軌道条件の変更による回避手法の選択を説明する。図13は、移載部同士が干渉する可能性がある場合に一方の移載部が迂回経路を走行する手法を説明するための模式図である。図13の実施例において、第2移載部32Bの走行予定軌道は、第1移載部32Aの走行予定軌道に含まれている。より具体的には、第1移載部32Aは、目標位置は第2移載部32Bの後側にあり、第2移載部32Bに向かって走行する。第2移載部32Bは、目標位置が第1移載部32Aの前側にあり、第1移載部32Aに向かって走行する。ただし、第1移載部32Aと第2移載部32Bは、干渉位置195において衝突することが予測されている。この実施例では、第1移載部32Aの移動を考えると、走行開始時間を遅らせても干渉を回避できないので、第1移載部32Aが経由位置120を通る迂回経路121を走行する手法を採用する。図14は、移載部同士が干渉する可能性がある場合に一方の移載部の走行開始タイミングを遅らせる手法を説明するための模式図である。図14の実施例において、第1移載部32Aと第2移載部32Bの走行予定軌道は、一部重なっているが、互いに重なっていない部分もある。より具体的には、第1移載部32Aは、第2移載部32Bの反対側の位置を目標位置にしており、第2移載部32Bに向かって走行する。第2移載部32Bは、第1移載部32Aの横側の位置を目標位置にしており、最初は第1移載部32Aに向かって走行して途中から図上側にそれていく。ただし、第1移載部32Aと第2移載部32Bは、干渉位置197において衝突することが予測されている。この実施例では、第1移載部32Aの移動を考えると、第1移載部32Aの走行開始タイミングを送らせる手法によって干渉を回避できる。10二分法次に、図15を用いて、二分法を説明する。図15は、二分法による最適値を決定する処理を示すフローチャートである。二分法は、迂回経路の経由位置設定及び出発開始遅れ時間の設定の両方に適用可能である。最初に、一般的な二分法の処理について説明する。S41では、メインコントローラ53は、最大値を設定する。S42では、メインコントローラ53は、中間点を探索する。S53では、メインコントローラ53は、中間点の条件で走行させた場合に第1移載部32Aと第2移載部32Bの干渉があるか否かを判断する。干渉があると判断されればプロセスはS44に移行して、メインコントローラ53は基準の中間点から見て値が大きい側の領域の中間点を探索する。干渉がないと判断されればプロセスはS45に移行する。S45では、メインコントローラ53は、直前の分割による分割後長さ探索の刻み幅が所定値以下であるか否かを判断する。所定値以下であると判断されれば、プロセスは終了する。所定値を超えると判断されれば、プロセスはS46に移行して、メインコントローラ53は基準の中間点から見て値が小さい側の領域の中間点を探索する。S44又はS46の終了後、プロセスはS43に戻る。10-1迂回経路の経由位置の設定次に、図16を用いて、迂回経路の経由位置の設定に二分法を用いた場合を説明する。図16は、走行予定軌道から離れた経由位置を決定するプロセスを示す模式図である。以下、第1移載部32Aのメインコントローラ53について説明する。図15のS41では、図16において、メインコントローラ53は、第1移載部32Aの出発位置173と目標位置175を結ぶベクトル176における中間点177の法線178の延びる方向に最大値としてのdmaxを設定する。dmaxは、レイアウト上で可能な最大距離であり、その方向はベクトル176で分割された2つの領域のうち第2移載部32Bが存在しない又は第2移載部32Bの影響が少ない領域側に設定される。これにより、第1移載部32Aと第2移載部32Bの干渉がより確実に防止される。dmaxは、十分大きな固定値として例えば3000mmでもよい。以上に述べたように、経由位置を求めるための法線を引く点が出発位置と目標位置とを結ぶ直線の中間点であるので、経路探索にかける時間が短縮される。S42では、メインコントローラ53は、中間点を探索する。図16では、中間点は1で示されている。S43では、メインコントローラ53は、第1中間点1の距離だけ離れて走行させた場合に第1移載部32Aと第2移載部32Bの干渉があるか否かを判断する。この場合は、干渉はないので、プロセスはS45に移行して、メインコントローラ53は、直前の分割による分割後長さが所定値以下であるか否かを判断する。所定値は、例えば10mmである。この場合は所定値を超えるので、プロセスはS46に移行する。S46では、メインコントローラ53は直前に探索した中間点から見て値が小さい側の領域の中間点を探索する。この場合は、第2中間点2が選択される。以下、S43~S46の流れを繰り返して、中間点は1、2、3と移動していく。そして、S44で第3中間点3が探索されると、S43で干渉がないと判断され、さらにS45で直前の分割による分割後長さが所定値以下になると判断され、その結果、S47で第3中間点3の値が経由位置に設定される。経由位置は、干渉が起こらない範囲で走行予定軌道から最も近くなっている。その結果、移動経路を短く設定できる。なお、迂回経路の経由位置は、出発位置と目標位置との間に形成される線上の一点の法線上にあればよい。したがって、例えば、メインコントローラ53は、遅れなしで移動開始した場合の衝突地点を始点として、出発位置と干渉位置とを結ぶベクトルの干渉位置における法線上に経由位置を設定してもよい。そのような場合を、図17を用いて、説明する。図17は、走行予定軌道から離れた経由位置を決定するプロセスを示す模式図である。以下、第1移載部32Aのメインコントローラ53について説明する。S41では、図17において、メインコントローラ53は、第1移載部32Aと第2移載部32Bが干渉すると予想される干渉位置122において出発位置と干渉位置とを結ぶベクトル上の干渉位置122に直交する方向に法線123の延びる方向に最大値としてのdmaxを設定する。dmaxは前述の実施例と同様である。以上に述べたように、経由位置を求めるための法線を引く点が衝突地点であるので、経路探索にかける時間が短縮される。S42では、メインコントローラ53は、中間点を探索する。図17は、中間点は1で示されている。S43では、メインコントローラ53は、第1中間点1の距離だけ離れて走行させた場合に第1移載部32Aと第2移載部32B同士の干渉があるか否かを判断する。この場合は、干渉はないので、プロセスはS45に移行して、メインコントローラ53は、直前の分割による分割後長さが所定値以下であるか否かを判断する。所定値は、例えば10mmである。この場合は所定値を超えるので、プロセスはS46に移行する。S46では、メインコントローラ53は直前に探索した中間点から見て値が小さい側の領域の中間点を探索する。この場合は、第2中間点2が選択される。以下、S43~S46の流れを繰り返して、中間点は1、2、3と移動していく。そして、S44で第3中間点3が探索されると、S43で干渉がないと判断され、さらにS45で直前の分割による分割後長さが所定値以下になると判断され、その結果、S47で第3中間点3の値が経由位置に設定される。経由位置は、干渉が起こらない範囲で走行予定軌道から最も近くなっている。その結果、移動経路を短く設定できる。経由位置が定まると、出発点から経由位置までの軌道として最短時間移動可能領域の境界を構成する2つの軌道を選択可能であり、さらに経由位置から目標位置までの軌道として最短時間移動可能領域の境界を構成する2つの軌道を選択可能である。図18を用いて、経由点を通る迂回軌道の選択動作を説明する。図18は、経由位置を通る迂回軌道の選択判断を示す模式図である。図18では、第1移載部32Aが第2移載部32Bとの干渉を避けるために、経由位置115を設定した状態を示している。図から明らかなように、第1移載部32Aが出発位置114から経由位置115に移動する軌道としては第1迂回軌道112Aと第2迂回軌道112Bとがあり、第1移載部32Aが経由位置115から目標位置116に移動する軌道としては第3迂回軌道113Aと第4迂回軌道113Bとがある。メインコントローラ53は、最初に、出発位置114と経由位置115を結ぶ直線のいずれ側に干渉位置122が存在するかを判定し、次に直線に対して干渉位置122と反対側の軌道である第1迂回軌道112Aを外回り軌道として選択する。さらに、メインコントローラ53は、最初に、経由位置115と目標位置116を結ぶ直線のいずれ側に干渉位置122が存在するかを判定し、次に直線に対して干渉位置122と反対側の軌道である第3迂回軌道113Aを外回り軌道として選択する。このように選択された第1迂回軌道112Aと第3迂回軌道113Aは最も干渉の可能性が低い軌道の組み合わせなので、安全性が向上する。軌道の選択順序については、各迂回軌道を任意に選択して順番に干渉チェックしていく方法と、干渉可能性が低い迂回軌道から干渉チェックしていく方法とがある。後者の場合は、最も干渉可能性が低い迂回軌道の組み合わせについて最初に干渉判定を行い、そこで干渉があると判断されれば他の軌道の組み合わせについて干渉判定を行う方法がある。干渉判定には、図9の干渉判定アルゴリズムを用いてもよい。軌道の決定方法としては、最初に干渉がないと判断された迂回軌道を最終的なものとして決定する方法と、全ての迂回軌道の組み合わせに干渉があるか否かをさらに判断する方法がある。この自動倉庫1では、移載部が経由する経由位置を選択した最短時間経路の一点の法線上の点とすることで、メインコントローラによる経路探索に関する演算処理の負荷が少なくなる。したがって、経路探索にかかる時間が短縮される。10-2出発開始遅れ時間の設定次に、図19を用いて、出発開始遅れ時間の設定に二分法を用いた場合を説明する。図19は、干渉ありの0から干渉なしのtmaxまでの時間軸である。時間軸171に基づいて説明する。S41では、メインコントローラ53は、最大値として図19のtmaxを設定する。tmaxは、例えば、移動予定時間の2倍に設定される。tmaxは、第2移載部32Bの移動が完了するまでの時間であってもよい。S42では、メインコントローラ53は、時間軸171全体の中間点を探索する。図19では、中間点は1で示されている。S43では、メインコントローラ53は、第1中間点1の時間だけ走行を遅らせた場合に第1移載部32Aと第2移載部32Bの干渉があるか否かを判断する。この場合は、干渉はないので、プロセスはS45に移行して、メインコントローラ53は、直前の分割による分割後長さが所定値以下であるか否かを判断する。所定値は、例えば0.1秒である。この場合は所定値を超えているので、プロセスはS46に移行する。S46では、メインコントローラ53は、直前に探索した中間点から見て値が小さい側の領域の中間点を探索する。この場合は、第2中間点2が選択される。以下、S43~S46の流れを繰り返して、中間点は1、2、3、4、5と移動していく。そして、S44で第5中間点5が探索されると、S43で干渉がないと判断され、さらにS45で中間点4、5の間の長さが所定値以下になると判断され、その結果、S47で第5中間点5の値が走行開始遅れ時間に設定される。この値は、干渉が起こらない範囲で遅延時間を可能な限り短くした時間となっている。以上に述べたように、メインコントローラ53は移動開始を遅らす時間を決定するのに二分法を用いるので、経路探索にかける時間が短縮される。11回避軌道計算の特別な場合図20を用いて、第1移載部32Aと第2移載部32Bとの目標位置が互いに干渉する場合の回避軌道計算について説明する。その場合は、ほとんど、通常軌道計算において干渉すると判断され、さらに回避軌道において計算時間が長時間になってしまう。そこで、ここでは、特別に回避軌道を設定する。図20は、2つの移載部が同一又は干渉が生じる物品収納棚にアクセスしようとした場合の待機動作を示す模式図である。図20において、目標位置117に対して、第1移載部32Aと、第2移載部32Bが接近しようとしている。以下、第1移載部32Aのメインコントローラ53について説明する。第1移載部32Aの移動開始前に、メインコントローラ53は、以下の制御を行う。比較部79は、両移載部がそれぞれの目標位置128において干渉すると判断されれば、両移載部の移動時間又は距離同士を比較する。第1移載部32Aが目標位置128に向かって移動する移動時間又は移動距離が第2移載部32Bに比べて大きいと判断されれば、停止位置設定部78は、自号機の停止位置を目標位置128から所定距離離れた待機位置129に変更する。待機位置129は、現在地と目標位置128とを結ぶ直線上であって目標位置128から距離rだけ離れた位置である。距離rは、目標位置128の近傍であって目標位置128に向かって移動する他の移載部と接触が生じにくい距離である。したがって、第1移載部32Aがその後に目標位置128に移動する際に回避動作を行う必要があったとしても、回避のための時間又は距離の量を小さくできる。なお、停止位置設定部78は、第1移載部32Bが目標位置128に向かって移動する移動時間又は移動距離が第2移載部32Bに比べて小さいと判断されれば、第1移載部32Aを現在の位置に待機させておく。その理由は、第2移載部32Bの軌道に対して、第1移載部32Aの適切な待機軌道を算出するのに時間がかかるからである。第1移載部32Aが待機位置129で待機している状態において、メインコントローラ53は、第2移載部32Bが目標位置128から他の位置に向けて移動を開始して、第1移載部32Aが目標位置128に移動しても両移載部が干渉しなくなるまで待つ。具体的には、第2移載部32Bが目標位置128から離れたことを知らせる情報を受信してから、第1移載部32Aは移動を開始する。12第2実施形態図21及び図22を用いて、第2実施形態における軌道決定動作を説明する。この実施形態では、回避軌道計算及びdelay軌道計算が所定時間内で繰り返し計算をすることで準最適解を選び出せるようになっている。図21は、第2実施形態におけるメインコントローラの機能ブロック図である。図22は、第2実施形態における軌道決定処理を示すフローチャートである。図21に示すように、メインコントローラ153は、第1実施形態に示した機能に加えて、制限時間管理部155と、繰り返し実行部156とを有している。制限時間管理部155は、軌道算出の制限時間を管理する。繰り返し実行部156は、制限時間内で軌道算出部72に軌道算出を繰り返し実行させる。第1クレーンコントローラ47Aのメインコントローラ53は、S51において普通軌道計算を行い、次にS52で部分移動時間の普通軌道計算において第1移載部32Aが第2移載部32Bと干渉するか否かを判断する。S52においてYesであればプロセスはS34に移行する。S52においてNoであれば、プロセスはS53に移行して、メインコントローラ53は全移動時間での計算が完了したが否かを判断する。S53においてNoであれば、プロセスはS51に戻ってメインコントローラ53は普通軌道計算及び干渉判定を行う。S53においてYesであればつまり、軌道の選択で干渉を回避可能であると判断されれば、プロセスはS62に移行する。S62では、メインコントローラ53は、計算結果を走行制御部55に送信する。この結果、走行制御部55は、選択された軌道に沿って第1移載部32Aを走行させる。軌道算出部72がS54において回避軌道を計算し、制限時間管理部155がS55において許容計算時間αを越えたか否かを判断する。この実施形態では、αは0.09秒である。S55でYesであればプロセスはS60に移行する。S55でNoであればプロセスはS56に移行する。S56では、繰り返し実行部156が、終了条件に達したか否かを判断する。終了条件とは、例えば、繰り返し位置計算の回数が所定回数に達した場合である。S56でYesであればプロセスはS57に移行する。S56でNoであれば、プロセスはステップ54に戻り回避軌道計算が再度行われる。回避軌道計算は回を重ねるごとに他の解を求める。他の解とは、例えば、まだ選んでいない迂回軌道を選択することであったり、又は、二分法であれば、二度目の計算では一度目の計算より計算停止の基準となる所定値を小さくすることでさらに細かく経由点の位置を設定しそれにより得られた軌道である。軌道算出部72がS57でdelay軌道計算を行い、制限時間管理部155がS58で所定時間αを越えたか否かを判断する。S58でYesであればプロセスはS50に移行する。S58でNoであればプロセスはS59に移行する。S59では、繰り返し実行部156が、終了条件に達したか否かを判断する。終了条件とは、例えば、繰り返し位置計算の回数が所定回数に達した場合である。S59でYesであればプロセスはS60に移行する。S59でNoであれば、プロセスはS57に戻りdelay軌道計算が再度行われる。delay軌道計算は回を重ねる毎に位置計算の精度をより高めていく。例えば、二分法であれば、二度目の計算では一度目の計算より中間点の位置を求める計算回数を増やす。S60では、メインコントローラ53の軌道選択部73は、解があるか否かを判断する。解とは、回避軌道計算又はdelay軌道計算において干渉がない経路が得られたことを意味する。S60でYesであればプロセスはS61に移行し、NoであればプロセスはS52に移動する。S61ではメインコントローラ53は、複数の解の中から最適の解を選択する。最適の解とは、干渉の危険性が十分に低いことを前提としてさらに移動時間が少ない移動経路である。S52では、メインコントローラ53は、第1移載部32Aを待機状態にする。S61が終了するとプロセスはS62に移行する。S62では、メインコントローラ53は、計算結果を走行制御部55に送信する。この結果、走行制御部55は、選択された軌道に沿って第1移載部32Aを走行させる。以上に述べたように、第1実施形態では最初に選んだ軌道によって干渉判定を行うが、第2実施形態では、回避軌道計算及びdelay軌道計算において、干渉判定を行わずに、許容計算時間α内で演算を繰り返し行う。そして、干渉があると判断すれば次の軌道計算に移行し、干渉がないと判断すればその軌道計算を選択する。第2実施形態では、許容計算時間内で複数の軌道計算を行い、その中から最適なものを選ぶ。したがって、例えば、第1実施形態の干渉判定では選択されないが実際には干渉せずにしかも移動時間が短くつまり稼働効率が高い軌道を選択することができる。13他の実施形態以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合わせ可能である。a前記実施形態では、普通軌道計算、回避軌道計算、delay軌道計算を一定の順序で組み合わせて実現しているが、これら動作は個々別々に実現されてもよいし、他の順番の組み合わせで実現されてもよい。b前記実施形態では、移動体システムとして移載部が走行昇降動作を行う自動倉庫を採用したが、本発明はそれに限定されない。例えば、地面を複数の搬送車が走行する搬送車システムにも本発明を適用できる。その場合は、搬送車同士の水平面内での干渉防止制御が行われる。"