(57)【特許請求の範囲】
【請求項１】
ロボットを動作させるコンピュータに処理を実行させるロボット制御プログラムであって、
前記ロボットとは異なる複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と前記ロボットのクロック情報とが同期するように前記ロボットのクロック情報を調整し、
前記複数のロボットのうち搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて前記ロボットを移動する、
処理を前記コンピュータに実行させ、
前記別のロボットが前記搬送物を置く前記受け渡し位置から見て、前記搬送物の搬送目標地点が、水平面内において第１軸方向と第２軸方向に交差する方向にあり、かつ、前記別のロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか一方である場合に、前記ロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか他方である、
ロボット制御プログラム。
【請求項２】
前記調整する処理は、前記ロボットとは異なる複数のロボットとの間で、各ロボットの現在時刻とクロックの進む速さとを交換し合い、交換し合った情報に基づいて、前記ロボットのクロックの進む速さを調整して、前記複数のロボット間で相対的にクロックを同期させる、ことを特徴とする請求項１に記載のロボット制御プログラム。
【請求項３】
前記ロボットが前記受け渡し位置で前記搬送物を受け取るタイミングに応じて、前記ロボットが前記搬送物を受け渡すロボットに対して起動を指示することを特徴とする請求項１又は２に記載のロボット制御プログラム。
【請求項４】
ロボットを動作させるロボット制御方法であって、
前記ロボットとは異なる複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と前記ロボットのクロック情報とが同期するように前記ロボットのクロック情報を調整し、
前記複数のロボットのうち搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて前記ロボットを移動する、
処理をコンピュータが実行し、
前記別のロボットが前記搬送物を置く前記受け渡し位置から見て、前記搬送物の搬送目標地点が、水平面内において第１軸方向と第２軸方向に交差する方向にあり、かつ、前記別のロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか一方である場合に、前記ロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか他方である、
ロボット制御方法。
【請求項５】
搬送物を搬送するロボットであって、
複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と自己のクロック情報とが同期するように自己のクロック情報を調整する同期部と、
前記複数のロボットのうち搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて移動する移動部と、を備え、
前記別のロボットが前記搬送物を置く前記受け渡し位置から見て、前記搬送物の搬送目標地点が、水平面内において第１軸方向と第２軸方向に交差する方向にあり、かつ、前記別のロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか一方である場合に、前記ロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか他方である、
ロボット。
【請求項６】
搬送物を搬送するロボットと、
前記ロボットに対して、前記搬送物の搬送を指示する搬送指示装置と、を備え、
前記ロボットは、
複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と自己のクロック情報とが同期するように自己のクロック情報を調整する同期部と、
前記複数のロボットのうち搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて移動する移動部と、を有し、
前記別のロボットが前記搬送物を置く前記受け渡し位置から見て、前記搬送物の搬送目標地点が、水平面内において第１軸方向と第２軸方向に交差する方向にあり、かつ、前記別のロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか一方である場合に、前記ロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか他方である、
ことを特徴とする搬送システム。
【請求項７】
前記所定の軌道式を、前記搬送物が存在する空間内のレイアウトと、前記ロボットの移動可能範囲とに基づいて算出し、前記ロボットに送信する算出装置を更に備える請求項６に記載の搬送システム。
【請求項８】
前記ロボットを複数備えるとともに、前記所定の軌道式に基づかずに移動する他のロボットを複数備え、
前記搬送指示装置は、前記複数のロボットと前記複数の他のロボットに対して、前記搬送物の搬送を指示し、
前記他のロボットの前記空間内における配置領域は、前記ロボットの前記空間内における配置領域よりも前記搬送物の搬送目標地点から離れた位置に設定されていることを特徴とする請求項７に記載の搬送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御プログラム、ロボット制御方法、ロボット、及び搬送システムに関する。
【背景技術】
【０００２】
従来、倉庫内の荷物を多数のロボットにより自動搬送するシステムが知られている（例えば、特許文献１参照）。このようなシステムにおいては、１台のロボットが搬送物を目的地まで搬送するのが一般的である。
【０００３】
また、非特許文献１には、倉庫内を小さいエリアに分割し、各エリアにロボットを割り当て、２つのエリアが重複するポイントにおいて、搬送物をロボット間で受け渡すことで搬送物を搬送する点が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２２４０００号公報
【特許文献２】特開平１−８８８０９号公報
【特許文献３】特開２０１４−１４４４９３号公報
【非特許文献】
【０００５】
【非特許文献１】Norisuke Fujii, Reiko Inoue, and Jun Ota "Multiple Robot Rearrangement Problem Using an Extended Project-Scheduling Problem Solver” Proceedings of the 2008 IEEE International Conference on Robotics and Biomimetics Bangkok, Thailand, February 21 - 26, 2009, pp. 2007-2012
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のような搬送システムにおいては、システム全体のパフォーマンス（搬送効率）を向上することが好ましい。ここで、システム全体の単位時間あたりの搬送個数をｐ、単位面積当たりのロボット数をｃとすると、ｐ＝Ｌ・〈ｖ〉・ｃと表すことができる。なお、Ｌは、移動距離を示す定数であり、〈ｖ〉は、搬送時のロボットの平均速度である。したがって、ロボット数ｃを抑えつつ搬送のパフォーマンスを向上するためには、ロボットの平均速度を上げることが必要となる。なお、ロボット間で搬送物を受け渡す搬送システムの場合には、ロボットの平均速度は、搬送物の受け渡しの際にロスする時間の影響を受ける。
【０００７】
なお、特許文献２，３には、２つのロボットの制御に関する技術が開示されている。
【０００８】
１つの側面では、本発明は、搬送物の搬送効率を向上することが可能なロボット制御プログラム、ロボット制御方法、ロボット、及び搬送システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様では、ロボット制御プログラムは、ロボットを動作させるコンピュータに処理を実行させるロボット制御プログラムであって、前記ロボットとは異なる複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と前記ロボットのクロック情報とが同期するように前記ロボットのクロック情報を調整し、前記複数のロボットのうち搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて前記ロボットを移動する、処理を前記コンピュータに実行させ、前記別のロボットが前記搬送物を置く前記受け渡し位置から見て、前記搬送物の搬送目標地点が、水平面内において第１軸方向と第２軸方向に交差する方向にあり、かつ、前記別のロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか一方である場合に、前記ロボットの移動方向が前記第１軸方向と前記第２軸方向のいずれか他方である、プログラムである。
【発明の効果】
【００１０】
搬送物の搬送効率を向上することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る搬送システムの構成を概略的に示す図である。
【図２】図２（ａ）は、ロボットのハードウェア構成を示す図であり、図２（ｂ）は、ロボットを模式的に示す図及びロボットが棚を保持した状態を模式的に示す図である。
【図３】ロボットの機能ブロック図である。
【図４】図４（ａ）は、搬送指示装置のハードウェア構成を示す図であり、図４（ｂ）は、設計装置のハードウェア構成を示す図である。
【図５】倉庫内のレイアウトの一例を示す図である。
【図６】図６（ａ）は、同期処理を示すフローチャートであり、図６（ｂ）は、図６（ａ）の処理と同時並行的に実行される処理を示すフローチャートである。
【図７】図７（ａ）、図７（ｂ）は、直線ルート搬送を説明するための図であり、図７（ｃ）、図７（ｄ）は、ジグザグルート搬送を説明するための図である。
【図８】図８（ａ）〜図８（ｄ）は、位置Ｂにおいて棚をやりとりする４つのロボットのシーケンスについて説明するための図である。
【図９】倉庫全体に軌道式を展開する例について説明するための図である。
【図１０】搬送処理を示すフローチャートである。
【図１１】図１１（ａ）〜図１１（ｆ）は、比較例について説明するための図である。
【図１２】ロボット数に対する単位時間当たりの搬送個数について示すグラフである。
【図１３】図１３（ａ）〜図１３（ｄ）は、変形例１を説明するための図である。
【図１４】図１４（ａ）〜図１４（ｄ）は、変形例２を説明するための図である。
【図１５】変形例３を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、搬送システムの一実施形態について、図１〜図１２に基づいて詳細に説明する。図１には、一実施形態に係る搬送システム１００の構成が概略的に示されている。図１の搬送システム１００は、図５に示すような倉庫内において、搬送対象の商品をロボット１０を用いて目標地点まで搬送するシステムである。なお、本実施形態の搬送対象の商品は、倉庫内に設けられた棚５０に格納されている。ロボット１０は、搬送対象の商品が格納されている棚５０ごと目標地点まで搬送する。すなわち、本実施形態では、ロボットが搬送する搬送物は棚５０である。また、本実施形態では、各ロボット１０は、Ｘ軸方向に延びる通路又はＹ軸方向に延びる通路を移動することで棚５０を搬送する動作と、通路と通路の交差点において他のロボット１０に対して棚５０を受け渡す動作とを繰り返す。
【００１３】
搬送システム１００は、図１に示すように、複数のロボット１０と、搬送指示装置７０と、算出装置としての設計装置７５と、を備える。なお、ロボット１０と搬送指示装置７０と設計装置７５は、インターネットやＬＡＮ（Local Area Network）などのネットワーク８０に接続されている。
【００１４】
ロボット１０は、搬送対象の棚５０を保持した状態又は保持しない状態で、倉庫内を移動する。各ロボット１０の移動範囲は、それぞれ図５において破線で示す領域内であり、各ロボット１０は、当該移動範囲内を直線的に移動する。
【００１５】
図２（ａ）には、ロボット１０のハードウェア構成が示されている。また、図２（ｂ）の左図には、ロボット１０が模式的に示され、図２（ｂ）の右図には、ロボット１０が棚５０を保持した状態が模式的に示されている。
【００１６】
図２（ａ）に示すように、ロボット１０は、ＣＰＵ（Central Processing Unit）３０、ＲＯＭ（Read Only Memory）３２、ＲＡＭ（Random Access Memory）３４、記憶部（ここではＨＤＤ（Hard Disk Drive））３６、ネットワークインタフェース３７、可搬型記憶媒体用ドライブ３９、動作部１８、認識部２０、等を備えている。これらロボット１０の構成各部は、バス３８に接続されている。ロボット１０では、ＲＯＭ３２あるいはＨＤＤ３６に格納されているプログラム（ロボット制御プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体３１から読み取ったプログラム（ロボット制御プログラムを含む）をＣＰＵ３０が実行することにより、図３に示す、通信部１２、同期部１４、指示部としての制御部１６、として機能する。なお、図３には、動作部１８及び認識部２０についても図示されている。
【００１７】
通信部１２は、ネットワークインタフェース３７を介して、同期部１４からのリクエストや制御部１６からの指示を他のロボット１０に対して送信する。また、通信部１２は、他のロボット１０から送信されてきたレスポンスや情報、指示などを同期部１４や制御部１６に送信する。
【００１８】
同期部１４は、他のロボット１０からのリクエストに応じて自己のクロック情報を通信部１２を介して送信する。なお、クロック情報には、現在時刻とクロックの進む速さの情報が含まれる。また、同期部１４は、他のロボット１０に対してクロック情報を送信するよう、通信部１２を介してリクエストを送信する。また、同期部１４は、他のロボット１０のクロック情報に基づいて、自己のクロック情報を調整することで、他のロボット１０とのクロック同期を実行する。
【００１９】
制御部１６は、搬送指示装置７０からの指示や、他のロボット１０の制御部１６からの指示に応じて、認識部２０の認識結果に基づき、動作部１８を動作させる。なお、制御部１６は、搬送指示装置７０からの指示を受信した場合には、「運び出しモード」に切り替え、倉庫内に整列されている棚を運び出す動作を実行する。また、制御部１６は、他のロボット１０の制御部１６からの指示を受信した場合や、運び出しが終了した場合には、「搬送モード」に切り替える。「搬送モード」では、制御部１６は、設計装置７５から与えられる軌道式に基づいて移動範囲内を移動し、交差点と交差点（又は目標地点）との間で棚５０を搬送する。
【００２０】
ここで、認識部２０は、カメラなどのセンサを含み、ロボット１０の位置を認識する機能を有する。動作部１８は、ロボット本体４０内に設けられ、図２（ｂ）に示す車輪を回転駆動したり、ロボット本体４０の上面側に設けられた支持部４２を上下に駆動したりする。ロボット１０は、図２（ｂ）の左図の状態で棚５０の下に入り込み、図２（ｂ）の右図のように支持部４２を上昇させることで、棚５０を保持する。そして、図２（ｂ）の右図の状態で車輪を回転駆動して移動することで、棚５０を搬送する。なお、ロボット１０は、各車輪４４の回転速度を異ならせることにより、進行方向を変更することも可能である。なお、本実施形態では、制御部１６と動作部１８とを含んで、移動部の機能が実現されている。
【００２１】
図１に戻り、搬送指示装置７０は、ＰＣ（Personal Computer）等であり、ユーザが倉庫内から取り出したい商品（搬送対象の商品）の情報の入力を受け付け、いずれかのロボット１０に対して当該商品の搬送を指示する装置である。図４（ａ）には、搬送指示装置７０のハードウェア構成が示されている。搬送指示装置７０は、図４（ａ）に示すように、ＣＰＵ１９０、ＲＯＭ１９２、ＲＡＭ１９４、記憶部（ＨＤＤ）１９６、ネットワークインタフェース１９７、可搬型記憶媒体１９１に格納されたデータを読み取り可能な可搬型記憶媒体用ドライブ１９９、表示部１９３、入力部１９５等を備えている。これら搬送指示装置７０の構成各部は、バス１９８に接続されている。表示部１９３は、液晶ディスプレイ等を含み、入力部１９５は、キーボードやマウス、タッチパネル等を含む。なお、搬送指示装置７０のＨＤＤ１９６等においては、どの商品がどの棚５０に格納されているかの情報や、各棚５０が倉庫内のどこに配置されているかの情報（座標情報）、各ロボットの移動範囲の情報などが管理されている。搬送指示装置７０では、ＣＰＵ１９０がプログラムを実行することで、制御部として機能する。
【００２２】
設計装置７５は、ＰＣ等であり、倉庫内のレイアウトや各ロボットの移動範囲などに基づいて各ロボットの軌道式を決定し、決定した軌道式を各ロボット１０の制御部１６に送信する。図４（ｂ）には、設計装置７５のハードウェア構成が示されている。図４（ｂ）に示すように、設計装置７５は、図４（ａ）の搬送指示装置７０と同様、ＣＰＵ２９０、ＲＯＭ２９２、ＲＡＭ２９４、記憶部（ＨＤＤ）２９６、ネットワークインタフェース２９７、可搬型記憶媒体２９１に格納されたデータを読み取り可能な可搬型記憶媒体用ドライブ２９９、表示部２９３、入力部２９５等を備えている。設計装置７５は、例えば倉庫内のレイアウトが変更される度に、各ロボット１０の軌道式を更新する。
【００２３】
次に、搬送システム１００の処理について、図６、図１０のフローチャートに沿って、その他図面を参照しつつ詳細に説明する。
【００２４】
（同期処理）
以下、同期処理について、図６（ａ）、図６（ｂ）のフローチャートに沿って詳細に説明する。図６（ａ）、図６（ｂ）の処理は、同時並行的に実行される処理である。なお、同期処理は、各ロボットの動作の同期に用いられるクロックを一致させる処理であり、全ロボットにおいて、図６（ａ）、図６（ｂ）の処理がほぼ同時に実行される。
【００２５】
図６（ａ）の処理は、搬送システム１００の立ち上げ時や、倉庫内に新たなロボットが導入されたとき、同期処理を前回実行してから所定時間が経過したときなどに実行される処理である。
【００２６】
図６（ａ）の処理では、まず、ステップＳ１０において、同期部１４が、通信部１２を介して、倉庫内の他の全てのロボットに対し、現在時刻とクロックの進む速さについて送信するようリクエストを送信（ブロードキャスト）する。その後、同期部１４は、ステップＳ１２において、他の全てのロボット１０からのレスポンスを受信するまで待機する。
【００２７】
なお、図６（ｂ）に示すように、各ロボット１０では、同期部１４は、リクエストが送信されるまで待機している。同期部１４は、リクエストが送信されてくると（Ｓ２０：肯定）、ステップＳ２２に移行し、自己の現在時刻とクロックの進む速さをリクエスト先に送信する。
【００２８】
他の全てのロボット１０において、図６（ｂ）のステップＳ２２の処理が行われると、図６（ａ）のステップＳ１２の判断は肯定され、ステップＳ１４に移行する。ステップＳ１４に移行すると、同期部１４は、自己のクロックの進む速さを調整する。
【００２９】
本実施形態では、同期処理において、同一の台上に置いた振り子の振動が相互作用により揃う現象（同期現象）を応用する。すなわち、本実施形態では、ロボット間で互いに現在時刻やクロックの進む速さを交換し合い、各々が交換し合った情報に基づいて自身のクロックの進む速さを調整することで、相対的にクロック同期を実行するようにしている。なお、同期部１４は、他のロボットから取得した現在時刻を、ロボット間の通信遅延に基づいて補正しておく。
【００３０】
例えば、自己（ｉ番目のロボット）が持つクロックの進む速さを調整する式として、蔵元モデルの式（次式（１））が挙げられる。
【００３１】
【数１】
0006634787.tif 000002
【００３２】
ここで、上式（１）の左辺の、ｔiの上にドットを付して示す記号は、ｉ番目のロボット（自己）が持つクロックの進む速さを意味する。また、上式（１）の右辺の、ｔi0の上にドットを付して示す記号は、ｉ番目のロボット（自己）のクロックの進む速さの初期値を意味する。また、Ｎは、倉庫内のロボットの数、ωは、クロックの基準周波数、ｔjは、他のロボットの現在時刻、ｔiは、ｉ番目のロボット（自己）の現在時刻を意味する。
【００３３】
また、Ｋは調整パラメータ（ゲイン）を意味する。Ｋを十分大きく取ると、上記の定常解は
【００３４】
【数２】
0006634787.tif 000003
のような同期状態となる
【００３５】
なお、上式（２）の右辺の、ｔ0の上にドットを付し山括弧で囲んだ記号は、全ロボットのクロックの進む速さの初期値の平均値を意味する。
【００３６】
同期部１４が、ステップＳ１４において上式（１）に基づいてクロックの進む速さを調整すると、ステップＳ１６に移行し、同期部１４は、同期条件が満たされたか否かを判断する。
【００３７】
ここで、同期条件は以下のように設定することができる。
【００３８】
【数３】
0006634787.tif 000004
【００３９】
なお、ε1，ε2は予め定められている要求精度であり、Ｔは次式（５）のように表される。
【００４０】
【数４】
0006634787.tif 000005
【００４１】
上式（３）、（４）の少なくとも一方を満たさない場合には、ステップＳ１６の判断は否定され、制御部１６は、ステップＳ１０に戻り、上述したステップＳ１０〜Ｓ１６の処理・判断を繰り返す。一方、上式（３）、（４）の両方を満たし、ステップＳ１６の判断が肯定された場合には、制御部１６は、図６（ａ）の全処理を終了する。
【００４２】
このように、全ロボット１０において同期処理を行うことで、同期処理のためにマスターとなるロボットや装置を用意しなくてもよいため、マスターがなくなったり、交換されたりした場合に、改めて同期処理を行わなくてもよくなる。また、全ロボットのクロックを外部参照信号（標準電波やＧＰＳ（Global Positioning System）等）に同期させなくてもよいので、倉庫内においても同期処理を行うことが可能である。
【００４３】
（搬送処理）
次に、ロボット１０による棚５０の搬送処理について、詳細に説明する。
【００４４】
まず、搬送処理の前提について説明する。図５に示すように、本実施形態では、倉庫内に２０台のロボット１０が存在しており、各ロボットに破線で示す移動範囲が設定されているものとする。また、倉庫内には、ロボット１０の通路を確保した状態で多数の棚５０が配列されているものとする。
【００４５】
棚５０の搬送方法として、本実施形態では、移動範囲が重複するロボット間で棚５０を受け渡しながら、目標地点まで棚５０を搬送する方法を採用する。このようなロボット間で棚５０の受け渡しを行う搬送方法には、直線ルート搬送と、ジグザグルート搬送がある。
【００４６】
直線ルート搬送では、図７（ａ）において実線矢印で示すようにＸ軸方向に沿って搬送されてきた棚５０を、破線矢印で示すように次のロボットが更にＸ軸方向に沿って搬送する。また直線ルート搬送では、図７（ｂ）において実線矢印で示すようにＹ軸方向に沿って搬送されてきた棚５０を、破線矢印で示すように次のロボットがＹ軸方向に沿って搬送する。一方、ジグザグルート搬送では、図７（ｃ）において実線矢印で示すようにＸ軸方向に沿って搬送されてきた棚５０を、破線矢印で示すように次のロボットがＹ軸方向に沿って搬送する。またジグザグルート搬送では、図７（ｄ）において実線矢印で示すようにＹ軸方向に沿って搬送されてきた棚５０を、破線矢印で示すように次のロボットがＸ軸方向に沿って搬送する。
【００４７】
本実施形態では、直線ルート搬送と、ジグザグルート搬送のいずれを採用してもよいが、ジグザグルート搬送（図７(ｃ)、図７（ｄ））を採用する場合について説明する。なお、直線ルート搬送の場合、搬送対象の棚５０が倉庫の端に集中して渋滞する可能性がある。
【００４８】
ジグザグルート搬送を実現するには、１つの交差点で移動範囲が交わる４つのロボットにおいて、図８（ａ）〜図８（ｄ）に示すようなシーケンスを採用する。例えば、図８（ａ）に示すように、移動範囲Ｌ０をロボット０が移動可能であり、移動範囲Ｌ１をロボット１が移動可能であり、移動範囲Ｌ２をロボット２が移動可能であり、移動範囲Ｌ３をロボット３が移動可能であるとする。そして、交差点（位置Ｂ）が、棚５０の受け渡しを行う場所であるとする。また、ロボット０が位置Ｂまで＋Ｘ方向に沿って搬送した棚５０は、ロボット１が受け取り、＋Ｙ方向に搬送する。また、ロボット２が位置Ｂまで＋Ｙ方向に沿って搬送した棚５０は、ロボット３が受け取り、＋Ｘ方向に搬送する。
【００４９】
この場合、各ロボットは、具体的に以下のシーケンスを採用する。
【００５０】
（１）図８（ａ）に示すように、ロボット０が位置Ｂに棚５０を置く（０／４周期）。
（２）図８（ｂ）に示すように、ロボット１が位置Ｂにおいて棚５０を取る（１／４周期）。
（３）図８（ｃ）に示すように、ロボット２が位置Ｂに棚５０を置く（２／４周期）。
（４）図８（ｄ）に示すように、ロボット３が位置Ｂにおいて棚５０を取る（３／４周期）。
【００５１】
なお、目標軌道（軌道式）としては、グローバル座標系（倉庫全体をカバーする座標系）を用いる方法と、ローカル座標系（個々のロボットが持つ座標系）を用いる方法とがある。本実施形態では、ローカル座標系を用いた場合を例にとり説明する。
【００５２】
この場合、上記シーケンスを実現するためには、各ロボット０〜３に対し、以下の軌道式（６）〜（９）を与える。
【００５３】
【数５】
0006634787.tif 000006
【００５４】
なお、上式（６）〜（９）の原点は、各ロボットの移動範囲の中心としている。また、振幅Ａ0、Ａ1、Ａ2、Ａ3は各ロボットの移動範囲の大きさに合わせて設定する。また、角振動数ωは各軌道式で共通とし、Ｎは同一の受け渡しポイント（図８（ａ）の位置Ｂ）を利用するロボットの台数（本実施形態ではＮ＝４）とする。なお、グローバル座標系を用いる場合には、単に中心座標を軌道式において考慮するようにすればよい。
【００５５】
本実施形態では、上記軌道に基づいた動作を実行することで、棚５０を受け取るロボットは、別のロボットが位置Ｂに棚５０を置く前から位置Ｂに近づき、棚５０を置いた別のロボットが位置Ｂから離れている間に位置Ｂで棚５０を受け取ることができる（図８（ａ）〜図８（ｄ）参照）。これにより、ロボット間における棚５０の受け渡しに要する時間を短縮することができる。
【００５６】
（倉庫全体のロボットへの拡張）
上記説明においては、１つの交差点における４つのロボットの軌道式について説明したが、この軌道式を倉庫全体のロボットに拡張するには、図９に示すように、各ロボットをグループａ＝１,２,３，…に分割する。なお、グループａ＝０は、斜線Ｍ＝０上に位置する交差点に棚５０を置くロボットのグループである。また、グループａ＝１は、斜線Ｍ＝０上に位置する交差点から棚５０を受け取り、斜線Ｍ＝１上に位置する交差点に棚５０を置くロボットのグループである。また、グループａ＝２は、斜線Ｍ＝１上に位置する交差点から棚５０を受け取り、斜線Ｍ＝２上に位置する交差点に棚５０を置くロボットのグループである。ａ＝３以降についても同様である。
【００５７】
この場合、Ｘ軸方向、およびＹ軸方向の軌道式は次式（１０）、（１１）のように設定することができる。
【００５８】
【数６】
0006634787.tif 000007
【００５９】
なお、ロボットごとに移動範囲の長さが異なる場合には、移動範囲の長さに合わせて振幅Ａ，Ｂをロボットごとに設定するようにすればよい。
【００６０】
（搬送処理の流れについて）
次に、倉庫内における棚５０の搬送処理の流れについて、図１０のフローチャートに沿って詳細に説明する。
【００６１】
搬送指示装置７０（制御部）は、ステップＳ３０において、搬送対象の商品の入力を受け付けるまで待機する。搬送対象の商品がユーザによって入力されると、制御部はステップＳ３２に移行する。ステップＳ３２に移行すると、制御部は、商品と棚の関係を定義するデータベースを参照して、搬送対象の商品が存在する棚を探索する。探索が行われた後は、ステップＳ３４に移行し、制御部は、棚に最も近いロボット１０を特定し、特定したロボット１０に対して動作を指示する。なお、制御部は、各ロボット１０の移動範囲を把握しているため、当該移動範囲と棚５０の位置とから、棚に最も近いロボット１０を特定することができる。
【００６２】
搬送指示装置７０の制御部からの指示を受信したロボット１０の制御部１６は、指示を受信したタイミングで、起動・運び出し処理（Ｓ４０）を実行する。ステップＳ４０では、制御部１６は、ロボット１０を運び出しモードに切り替え、車輪４４の駆動を制御することで、ロボット１０を搬送対象の商品が格納された棚５０の下に潜り込ませる。そして、制御部１６は、図２（ｂ）の右図に示すように支持部４２を上昇駆動することで、ロボット１０に棚５０を保持させる。このようにロボット１０が棚５０を保持した状態で、制御部１６は車輪４４の駆動を制御し、ロボット１０の位置をロボット１０の移動範囲上に戻す。
【００６３】
次いで、ステップＳ４２では、制御部１６は、ロボット１０を運び出しモードから搬送モードへ切り替える。また、制御部１６は、通信部１２を介して、隣のロボット（棚５０を受け渡すロボット）へ起動指示を送信する。
【００６４】
ここで、搬送モードにおいては、制御部１６は、前述した軌道式に基づいた動作を実行する。これにより、ステップＳ４４において、棚５０の受け渡し動作（交差点へ棚５０を置く動作）が実行されることになる。なお、ステップＳ４４の後は、制御部１６は次の指示があるまで待機する。
【００６５】
一方、隣のロボット１０においては、ステップＳ４２が行われたタイミングで、ステップＳ５０以降の処理を実行する。すなわち、制御部１６は、ステップＳ５０において起動した後、ステップＳ５２において、軌道式に基づいて動作を実行し、交差点での棚５０の受け取り動作を実行する。また、制御部１６は、隣のロボットへの起動指示を実行する。そして、ステップＳ５４では、制御部１６は、軌道式に基づいて動作を実行し、次の交差点へ棚５０を置く動作を実行する。その後は、制御部１６は次の指示があるまで待機する。隣のロボット１０においては、上記動作により、交差点での棚５０の受け取り動作と、別の交差点へ棚５０を置く動作とが実行されることになる。
【００６６】
以降、棚５０の搬送経路（ジグザグ状の搬送経路）上に位置するロボット１０により、上記ステップＳ５０〜Ｓ５６と同様の処理が繰り返し実行されることで、棚５０が図５の目標位置に搬送されるようになっている。
【００６７】
以上、詳細に説明したように、本実施形態によると、ロボット１０の同期部１４は、他の全てのロボットから取得したクロック情報と自己のクロック情報とが同期するように自己のクロック情報を調整する（図６）。そして、制御部１６は、別のロボットが交差点（位置Ｂ）に棚５０を置く前から交差点に近づき、棚５０を置いた別のロボットが交差点から離れている間に交差点で棚５０を受け取るように、調整後のクロック情報と軌道式に基づいた動作を実行する。これにより、ロボット間における棚５０の受け渡しに要する時間を短縮することができるので、ロボットの平均速度の向上、ひいては倉庫内における棚５０の搬送効率を向上することが可能となる。また、同期部１４がクロック情報を調整することにより、ロボット１０が上記のような軌道式に基づく動作を行っても、ロボット間における衝突や干渉等が発生することがなくなる。
【００６８】
ここで、比較例として、図１１（ａ）〜図１１（ｆ）に示すようなシーケンスを採用した場合について説明する。比較例では、ロボット０が棚５０を位置Ｂまで移動し、棚５０を置いた後、元の位置に戻るまでの間（図１１（ａ）、図１１（ｂ）、図１１（ｃ））は、他のロボットは衝突を避けるため移動せずに待機する。また、ロボット１が棚５０を位置Ｂまで取りに行き、元の位置に戻るまでの間（図１１（ｄ）、図１１（ｅ）、図１１（ｆ））は、他のロボットは移動せずに待機する。その他のロボット２，３が移動する場合も同様である。このような比較例のシーケンスを採用した場合には、ロボット数と単位時間当たりの搬送個数の関係（すなわち、搬送効率）は、図１２に一点鎖線で示すようになる。一方、本実施形態のように、受け渡しに要する時間を短縮するシーケンスを採用することで、ロボット数と単位時間当たりの搬送個数の関係（すなわち、搬送効率）は、図１２において太線で示すようになる。したがって、本実施形態を採用することで、比較例よりも搬送効率を向上することが可能となっている。なお、単一ロボットが運び出しから目標地点までの搬送を全て行う場合もある。この場合、図１２において破線にて示すように、ロボット数が少なければ搬送効率が高い一方、ロボット数が増えるほどロボットの渋滞が発生するため搬送効率が頭打ちとなる。これに対し、本実施形態では、ロボット数を然程増やさなくても目標とする単位時間当たりの搬送個数を満足することができるようになっている。
【００６９】
また、本実施形態では、クロック同期の際に、クロックの進む速さを調整することとしているので、振り子の同期現象を応用したクロック同期を行うことが可能である。
【００７０】
また、本実施形態では、ロボットが交差点で棚５０を受け取るタイミングで、棚を次に受け渡すロボットに対して起動を指示する（Ｓ５２）。これにより、ロボットは常時動き続けないため、無駄な動きがなくなり、省電力化を図ることが可能となる。
【００７１】
（変形例１）
なお、上記実施形態では、ジグザグルート搬送（図７（ｃ）、（ｄ））を採用する場合について説明したが、直線ルート搬送（図７（ａ）、図７（ｂ））を採用してもよい。この場合、各ロボットは、具体的に以下のシーケンスを採用する。
【００７２】
（１）図１３（ａ）に示すように、ロボット０が位置Ｂに棚５０を置く（０／４周期）。
（２）図１３（ｂ）に示すように、ロボット３が位置Ｂにおいて棚５０を取る（１／４周期）。
（３）図１３（ｃ）に示すように、ロボット２が位置Ｂに棚５０を置く（２／４周期）。
（４）図１３（ｄ）に示すように、ロボット１が位置Ｂにおいて棚５０を取る（３／４周期）。
【００７３】
この場合、軌道式としては、上記実施形態で説明した式（６）〜（９）に代えて、次式（１２）〜（１５）を用いることとすればよい。
【００７４】
【数７】
0006634787.tif 000008
【００７５】
また、軌道式を倉庫全体のロボットに拡張するには、上記実施形態で説明した式（１０）、（１１）に代えて、次式（１６）、（１７）を用いることとすればよい。
【００７６】
【数８】
0006634787.tif 000009
【００７７】
（変形例２）
なお、上記実施形態及び変形例１では、４差路交差点の軌道式について説明したが、これに限らず、軌道式を、Ｎ差路交差点（例えば、図１４（ａ）や図１４（ｃ）に示すような６差路交差点）の軌道式として表すこともできる。
【００７８】
Ｎ差路交差点のｋ番目のロボットの軌道式は、次式（１８）にて表すことができる。
【００７９】
【数９】
0006634787.tif 000010
【００８０】
なお、Ａkは、ｋ番目のロボットの移動方向の振幅である。
【００８１】
この場合、図１４（ａ）のようにロボットに番号ｋ（＝０〜５）を振れば、図１４（ｂ）のようなルートで棚５０を搬送を行うことができるようになる。一方、図１４（ｃ）のようにロボットに番号ｋ（＝０〜５）を振れば、図１４（ｄ）のようなルートで棚５０を搬送することができるようになる。このように、ロボットに対する番号の振り方を変更することで、搬送ルートを簡易に変更することが可能である。なお、搬送ルートについては、（Ｎ／２）！通り存在する。
【００８２】
（変形例３）
なお、上記実施形態では、倉庫内の全ての交差点において棚５０の受け渡しを行う場合について説明したが、これに限られるものではない。例えば、図１５に示すように、領域Ｗにおいては、棚５０の受け渡しは行わないこととし、目標地点に近いため渋滞の起き易い領域Ｚにおいては、上記実施形態のように交差点において棚５０をロボット間で受け渡すようにしてもよい。このようにすることで、より搬送効率を向上することが可能となる。
【００８３】
なお、上記実施形態では、ロボット１０が直線軌道に沿って移動する場合について説明したが、これに限らず、ロボット１０は、長方形軌道や円軌道などのような２次元軌道に沿って移動してもよい。長方形軌道の場合には、直線軌道の組み合わせで実現可能であり、円軌道の場合には、軌道方向を円弧にすれば実現可能である。更に、一定周期で元の状態に戻ってくるような軌道であれば、その他の軌道（直線と円弧の組合せなど）であってもよい。
【００８４】
なお、上記実施形態では、設計装置７５を搬送指示装置７０とは別に用意する場合について説明したが、これに限らず、搬送指示装置７０が設計装置７５の機能を有していてもよい。また、設計装置７５は、他の搬送システムと共用であってもよい。この場合、設計装置７５をクラウドサーバとすることができる。クラウドサーバにおいては、各搬送システムが設置される倉庫のレイアウトに基づいて、各搬送システムに含まれる各ロボットの軌道式を算出し、算出した軌道式を各ロボットに対して送信するようにすればよい。
【００８５】
なお、上記実施形態では、ロボット１０が棚５０を保持したタイミングで、次のロボットに起動指示を送信する場合について説明したが、これに限られるものではない。例えば、ロボット１０が棚５０を保持したタイミングで、次の次のロボットに起動指示を送信するなどしてもよい。
【００８６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００８７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８９】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００９０】
なお、以上の実施形態及び変形例の説明に関して、更に以下の付記を開示する。
（付記１）  ロボットを動作させるコンピュータに処理を実行させるロボット制御プログラムであって、
前記ロボットとは異なる複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と前記ロボットのクロック情報とが同期するように前記ロボットのクロック情報を調整し、
搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて前記ロボットを移動する、
処理を前記コンピュータに実行させるロボット制御プログラム。
（付記２）  前記調整する処理は、前記ロボットのクロックの進む速さを調整することで、前記複数のロボットのクロック情報と前記ロボットのクロック情報とを同期させることを特徴とする付記１に記載のロボット制御プログラム。
（付記３）  前記ロボットが前記受け渡し位置で前記搬送物を受け取るタイミングに応じて、前記ロボットが前記搬送物を受け渡すロボットに対して起動を指示することを特徴とする付記１又は２に記載のロボット制御プログラム。
（付記４）  前記ロボットが移動する方向と、前記別のロボットが移動する方向とが異なることを特徴とする付記１〜３のいずれかに記載のロボット制御プログラム。
（付記５）  ロボットを動作させるロボット制御方法であって、
前記ロボットとは異なる複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と前記ロボットのクロック情報とが同期するように前記ロボットのクロック情報を調整し、
搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて前記ロボットを移動する、
処理をコンピュータが実行するロボット制御方法。
（付記６）  前記調整する処理は、前記ロボットのクロックの進む速さを調整することで、前記複数のロボットのクロック情報と前記ロボットのクロック情報とを同期させることを特徴とする付記５に記載のロボット制御方法。
（付記７）  前記ロボットが前記受け渡し位置で前記搬送物を受け取るタイミングに応じて、前記ロボットが前記搬送物を受け渡すロボットに対して起動を指示することを特徴とする付記５又は６に記載のロボット制御方法。
（付記８）  前記ロボットが移動する方向と、前記別のロボットが移動する方向とが異なることを特徴とする付記５〜７のいずれかに記載のロボット制御方法。
（付記９）  搬送物を搬送するロボットであって、
複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と自己のクロック情報とが同期するように自己のクロック情報を調整する同期部と、
搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて移動する移動部と、
を備えるロボット。
（付記１０）  前記同期部は、前記ロボットのクロックの進む速さを調整することで、前記複数のロボットのクロック情報と前記ロボットのクロック情報とを同期させることを特徴とする付記９に記載のロボット。
（付記１１）  前記ロボットが前記受け渡し位置で前記搬送物を受け取るタイミングに応じて、前記ロボットが前記搬送物を受け渡すロボットに対して起動を指示する指示部（１６）を更に備える付記９又は１０に記載のロボット。
（付記１２）  前記ロボットが移動する方向と、前記別のロボットが移動する方向とが異なることを特徴とする付記９〜１１のいずれかに記載のロボット。
（付記１３）  搬送物を搬送するロボットと、
前記ロボットに対して、前記搬送物の搬送を指示する搬送指示装置と、を備え、
前記ロボットは、
複数のロボットからクロック情報を取得し、前記複数のロボットのクロック情報と自己のクロック情報とが同期するように自己のクロック情報を調整する同期部と、
搬送物を搬送する別のロボットが受け渡し位置に前記搬送物を置く前から前記受け渡し位置に近づき、前記別のロボットが前記搬送物を置いた前記受け渡し位置から離れている間に前記受け渡し位置で前記搬送物を受け取るように、調整後の前記クロック情報と所定の軌道式とに基づいて移動する移動部と、を有することを特徴とする搬送システム。
（付記１４）  前記所定の軌道式を、前記搬送物が存在する空間内のレイアウトと、前記ロボットの移動可能範囲とに基づいて算出し、前記ロボットに送信する算出装置を更に備える付記１３に記載の搬送システム。
（付記１５）  前記所定の軌道式に基づかずに移動し、前記搬送物を搬送する他のロボットを更に備え、
前記他のロボットの配置領域は、前記ロボットの配置領域よりも前記搬送物の搬送目標地点から離れた位置に設定されていることを特徴とする付記１３又は１４に記載の搬送システム。
【符号の説明】
【００９１】
１０  ロボット
１４  同期部
１６  制御部（移動部の一部、指示部）
１８  動作部（移動部の一部）
５０  棚（搬送物）
７０  搬送指示装置
７５  設計装置（算出装置）
１００  搬送システム
【図１】
0006634787.tif 000011
【図２】
0006634787.tif 000012
【図３】
0006634787.tif 000013
【図４】
0006634787.tif 000014
【図５】
0006634787.tif 000015
【図６】
0006634787.tif 000016
【図７】
0006634787.tif 000017
【図８】
0006634787.tif 000018
【図９】
0006634787.tif 000019
【図１０】
0006634787.tif 000020
【図１１】
0006634787.tif 000021
【図１２】
0006634787.tif 000022
【図１３】
0006634787.tif 000023
【図１４】
0006634787.tif 000024
【図１５】
0006634787.tif 000025