<実施例>
以下、本発明の実施例について添付図面を参照しつつ説明する。
本発明の実施例に係る配達システム1は、物品を格納して移動する第1移動体100及び第2移動体200と、第1移動体100及び200の移動を制御する制御装置500と、制御装置500によって物品の配達状態を通知される携帯端末901から905と、を備える。
第1移動体100と第2移動体200とは、互いに同じ大きさ、構成、及び、機能を有するため、第1移動体100の構成と同じ第2移動体200の構成については、第1移動体100で用いた符号と対応する符号を用いて説明する。
第1移動体100は、地上を走行する無人地上車両である。第1移動体100は、図2に示すような車輪111及び112を含む複数の車輪を備える車台110と、車台110の上に設置された立方体形状のロッカー装置170と、を備える。
車台110は、車台110の前面に設置され、かつ、前方に光軸を向けられた撮像装置119を備える。本明細書において、例えば、撮像装置119等の撮像装置の光軸を、車台110の前方等の特定の方向へ向けることは、当該撮像装置の撮像範囲に当該特定の方向にある被写体の一部が少なくとも含まれるように当該光軸を変更することを含むとして説明する。
ロッカー装置170は、ロッカー装置170の右側面に設置され、かつ、外側に向かう右側面の法線方向に光軸を向けられた撮像装置181と、ロッカー装置170の左側面に設置され、かつ、外側に向かう左側面の法線方向に光軸を向けられた撮像装置182と、を備える。また、ロッカー装置170は、撮像装置119、181、及び、182がそれぞれ出力する画像に基づいて、障害物を避けながら走行するように、複数の車輪にそれぞれ内蔵された不図示の複数のモータを駆動させる制御装置190を備える。
また、ロッカー装置170は、右側面及び左側面に、3行2列の行列を形成して配置されたボックスであって、荷物の格納に用いられる格納ボックス160をそれぞれ備えている。本実施例において、第1行は、最も上の行であり、第3行は、最も下の行であり、第2行は、第1行と第3行との中間の行であり、第1列は、前側の列であり、第2列は、後側の列であるとして説明する。
格納ボックス160は、図3A及び図3Bに示すような、背板161a、底板161b及び天板161c、並びに、側板161d及び側板161eを備え、これらの板により閉塞されて前方が開放された空間を形成する箱体161を備える。格納ボックス160は、底板161bが水平となるように、ロッカー装置170に設置される。
箱体161の開口部には、図3Aに示すような2つの軸穴163aが形成された扉枠163が設置されている。この2つの軸穴163aには、図3C示すような扉162の両側面の下方から、外側にそれぞれ突出した2つの突出部162aが挿通される。これにより、扉枠163は、開口部から背板161aへ向かう方向である内側と、当該方向と反対の方向である外側と、に扉162を搖動可能に軸持する。
格納ボックス160は、制御装置190から出力される信号に従って突出部162aに形成された不図示の歯車を回転させることで、扉162を揺動させる不図示のモータを内蔵している。このモータは、扉162の状態を、図3Dに示すように、内側へ倒れて扉162の裏側の面が、箱体161の底板161bの表面と面接触する内側開放状態から、図3Eに示すように、扉162が直立して開口部を塞ぐ閉鎖状態を経て、図3Fに示すように、外側へ倒れて扉162の表側の面が、箱体161の底板161bの表面と面接触する外側開放状態になるまでのいずれかの状態に変更させる。
扉162は、図3Cに示すようなカンヌキであるデッドボルト162bを上面162cに備え、扉枠163は、デッドボルト162bの受座である不図示のストライクを上枠に備える。
格納ボックス160は、扉162の状態が閉鎖状態である場合に、制御装置190から出力される信号に従ってデッドボルト162bをストライクへ挿入させることで、扉162を施錠する不図示のモータをさらに備えている。当該モータは、制御装置190から出力される信号に従って、デッドボルト162bを不図示のストライクから抜出させることで、扉162を解錠する。
箱体161の背板161aには、図3B及び図3Dから図3Eに示すような伸縮機構165の一端が固定されている。伸縮機構165の他端は、箱体161の底板161bの表面を、伸縮機構165に押されてスライドするスライド板164に固定されている。
本実施例では、伸縮機構165は、菱形の格子が直列に複数組み合わされたラチス格子式の伸縮機構であって、格子によって形成される菱形の互いに対向する2頂点間の距離を変化させることで、伸縮機構165を伸縮させる不図示のネジを備えているとして説明する。しかし、これに限定される訳では無く、例えば、伸縮機構165は、複数のパンタグラフが直列に組み合わされた伸縮機構を含む公知の伸縮機構であれば、どのような機構でも良い。また、伸縮方式は、ネジ式に限定される訳では無く、例えば、油圧式を含む公知の伸縮の方式であれば、どのような方式であっても良い。
格納ボックス160は、伸縮機構165のネジを回転させる不図示のモータをさらに内蔵している。当該モータによって、図3Eに示すように伸縮機構165が収縮させられて、スライド板164が扉162よりも内側に移動すると、スライド板164、底板161b及び天板161c、側板161d及び161e、並びに、扉162で閉塞された空間が形成され、当該空間が物品を格納するための格納空間として使用される。
扉162の底面162dは、図3Eに示すように、扉162の下方から上方へ向かうにつれて扉162の表側の面から離れる方向の勾配を有している。このため、図3Fに示すように、扉162の状態が外側に倒れた外側開放状態となり、扉162の表側の面が箱体161の底板161bの表面と面接触している場合には、扉162の底面162dは、伸縮機構165の伸張方向に向かうにつれて、底板161bの表面から離れる方向の勾配を有する。
このため、格納空間に物品が格納されている場合であって、かつ、扉162が、図3Fに示すような外側開放状態である場合に、不図示のモータによって伸縮機構165が伸張させられると、スライド板164は、伸縮機構165に押されて底板161bの表面を外側に向かってスライドする。その後、スライド板164は、伸縮機構165にさらに押されて、外側開放状態の扉162の底面162dをさらにスライドした後に、扉162の裏面をスライドすることで、格納空間に格納されていた物品を箱体161の外へ押し出す。
伸縮機構165は、完全に伸張した完全伸張状態になると、伸縮機構165の伸縮方向の長さが、完全に収縮した完全収縮状態よりも、値「D+2H」以上長くなる。但し、値「D」は、図3Eに示すような完全収縮状態における格納空間の奥行きを表し、値「H」は、扉162の高さを表す。
完全伸張状態における伸縮機構165の長さがこのように設計されているのは、図4に示すように、第1移動体100の格納ボックス160を、第2移動体200の格納ボックス260と、扉162の高さHよりも短い距離dだけ離れて正対させた状態で、第1移動体100の格納ボックス160から第2移動体200の格納ボックス260へ物品の積み替えが行われるからである。
つまり、物品を積み替えるためには、格納ボックス160の扉162の状態を外側開放状態することで、扉162を、格納ボックス160と格納ボックス260とに架かる橋として機能させる必要がある。また、扉162が外側開放状態となることを妨げないために、格納ボックス260の扉262の状態を内側開放状態にする必要がある。これらのため、格納ボックス160に格納されていた物品を、扉162及び扉262よりもさらに格納ボックス260の内側の位置まで、伸縮機構165がスライド板164に押し出させるためには、伸縮機構165は、格納空間の奥行き「D」と、扉162の高さ「H」、扉262の高さ「H」と、の総和「D+2H」以上、伸張しなければならないためである。
撮像装置119、181、及び、182は、デジタル式のステレオカメラであり、制御装置190から出力される信号に応じて第1移動体100の前方、右側方、及び、左側方をそれぞれ撮像し、撮像により得られた互いに視差を有する2枚の画像を制御装置190へそれぞれ出力する。撮像装置119、181、及び、182が互いに視差を有する2枚の画像を制御装置190へそれぞれ出力するのは、制御装置190が、視差に基づいて第1移動体100の前方、右側方、及び、左側方にある物体の3次元空間における位置座標及びサイズ等を特定し、特定された位置座標及びサイズに基づいて進行方向等を決定するためである。
第1移動体100が備える制御装置190は、図5に示すようなCPU(Central Processing Unit)191、RAM(Random Access Memory)192、ROM(Read Only Memory)193a、フラッシュメモリ193b、第1データ通信回路194a、第2データ通信回路194b、タッチスクリーン195、GPS(Global Positioning System)回路196、入出力ポート198、及び、駆動回路199を備える。本実施例では、制御装置190は、1つのCPU191を備えるとして説明するが、これに限定される訳ではなく、複数のCPUを備えても良い。
CPU191は、ROM193a又はフラッシュメモリ193bに保存されたプログラムを実行することで、第1移動体100の全体制御を行う。RAM192は、CPU191によるプログラムの実行時において、処理対象とされるデータを一時的に記憶する。
ROM193a及びフラッシュメモリ193bは、各種のプログラムを記憶している。また、フラッシュメモリ193bは、プログラムの実行に用いられる各種のデータやデータが保存されたテーブルをさらに記憶している。第1移動体100は、フラッシュメモリ193bの代わりに、ハードディスクを備えても良い。
第1データ通信回路194aは、NIC(Network Interface Card)であり、例えば、LTE(Long Term Evolution)及び5G(5th Generation)といった通信規格に従って、インターネットINに接続された不図示の基地局と電波を用いたデータ通信を行う。このようにして、第1移動体100の第1データ通信回路194aは、インターネットINに接続された制御装置500とデータ通信を行う。第2データ通信回路194bは、NICであり、例えば、ブルートゥースといった通信規格に従って、第2移動体200と電波を用いたデータ通信を行う。
タッチスクリーン195は、ビデオカード195a、表示装置195b、及び、入力装置195cを備える。ビデオカード195aは、CPU191から出力されたデジタル信号に基づいて画像をレンダリングすると共に、レンダリングされた画像を表す画像信号を出力する。表示装置195bは、EL(Electroluminescence)ディスプレイであり、ビデオカード195aから出力された画像信号に従って画像を表示する。携帯端末901は、ELディスプレイの代わりに、PDP(Plasma Display Panel)又はLCD(Liquid Crystal Display)を備えても良い。入力装置195cは、ボタン及びタッチパネルのいずれか1つ以上であり、入力装置195cに対する操作に応じた信号を入力する。
GPS回路196は、GPS衛星から発せられたGPS信号を受信し、受信されたGPS信号に基づいて第1移動体100の位置を表す緯度及び経度を計測し、計測された緯度及び経度を表す信号を出力する。
入出力ポート198は、車台110の前面に設置された撮像装置119、並びに、ロッカー装置の右側面及び左側面にそれぞれ設置された撮像装置181及び182とそれぞれ接続された不図示のケーブルに接続されている。入出力ポート198は、CPU191が出力する信号を撮像装置119、181、及び、182にそれぞれ出力し、撮像装置119、181、及び、182がそれぞれ出力する2枚の画像をCPU191へ入力する。
駆動回路199は、車輪111及び112を含む複数の車輪をそれぞれ回転させる、複数の不図示のモータにそれぞれ接続されたケーブルに接続されており、CPU191が出力する信号に従って当該複数のモータを駆動させる。また、駆動回路199は、ロッカー装置170が備える扉162を揺動させる不図示のモータ、デッドボルト162bをストライクから抜出させる又はストライクに挿入させる不図示のモータ、及び、伸縮機構165を伸縮させる不図示のモータにそれぞれ接続されたケーブルに接続されており、CPU191が出力する信号に従って当該複数のモータを駆動させる。
第2移動体200は、第1移動体100のロッカー装置170と同じ大きさ、構成、及び、機能を有するロッカー装置270を備えている。ロッカー装置270は、第1移動体100のロッカー装置170と同様に、右側面及び左側面に、3行2列の行列を形成して配置された格納ボックス260をそれぞれ備えている。また、第2移動体200のロッカー装置270は、第1移動体100のロッカー装置170と同様に、格納ボックス260の施錠等を制御する制御装置290を備えている。
制御装置500は、サーバ機であり、図6に示すようなCPU501、RAM502、ROM503a、ハードディスク503b、データ通信回路504a、ビデオカード505a、表示装置505b、及び、入力装置505cを備える。本実施例では、制御装置500は、1つのCPU501を備えるとして説明するが、これに限定される訳ではなく、複数のCPUを備えても良い。
制御装置500が備えるCPU501、RAM502、ROM503a、ビデオカード505a、表示装置505b、及び、入力装置505cの構成及び機能は、図5に示した第1移動体100の制御装置190が備えるCPU191、RAM192、ROM193a、ビデオカード195a、表示装置195b、及び、入力装置195cの構成及び機能と同様である。入力装置505cは、キーボード、マウス、タッチパッド、及び、ボタンのいずれか1つ以上であっても良い。
制御装置500が備えるハードディスク503bは、各種のプログラム、及び、各種のプログラムの実行に用いられる各種のデータやデータが保存されたテーブルを記憶している。制御装置500は、ハードディスク503bの代わりに、フラッシュメモリを備えても良い。
制御装置500が備えるデータ通信回路504aは、NICであり、例えば、LTE及び5Gといった通信規格に従って、インターネットINに接続された第1移動体100、第2移動体200、及び、携帯端末901から905と無線でデータ通信を行う。
制御装置500は、例えば、物品の配達を行う配達業者の営業所に設置されている。当該営業所に物品が運び込まれると、営業所に勤務する従業員は、物品を梱包する段ボールに貼られた伝票を読み、物品の配達先の住所と、物品の配達を希望する時間帯として指定された指定時間帯と、当該物品の受取人の連絡先と、を確認する。その後、従業員は、制御装置500の入力装置505cに配達先の住所、指定時間帯の開始時刻及び終了時刻、並びに、連絡先を入力させる操作を行う。
制御装置500の入力装置505cが従業員の操作に応じた信号を入力すると、制御装置500のCPU501は、物品に関する情報を保存する不図示の物品情報保存処理を実行する。これにより、CPU501は、入力装置505cによって入力された信号に基づいて物品に関する情報を取得する、図7に示すような取得部510、及び、物品に関する情報をハードディスク503bに保存する保存部520として機能する。また、ハードディスク503bは、物品に関する情報が保存される、図8に示すような物品テーブルを記憶している情報記憶部590として機能する。
物品に関する情報は、物品を識別する識別情報である物品ID(IDentification)と、当該物品の配達先であり、かつ、当該物品が受け取られる場所である受取場所を識別する識別情報と、当該物品の指定時間帯の開始時刻を表す情報及び終了時刻を表す情報と、当該物品の受取人の連絡先を表す情報と、当該物品の配達状態を表す状態情報と、を含む。
本実施例では、受取場所は、受取場所ごとに予め定められた範囲を有するエリアであり、共同住宅及びオフィスビルのエントランス及びロビー、並びに、一軒家の玄関前を含むとして説明するが、これに限定される訳ではない。
取得部510は、物品情報保存処理の実行を開始すると、入力された信号に基づいて、当該物品の配達先の住所を表す情報と、当該物品の指定時間帯の開始時刻を表す情報及び終了時刻を表す情報と、当該物品の受取人の連絡先を表す情報と、を取得する。次に、取得部510は、情報記憶部590から、取得された住所と予め対応付けて記憶されている、当該住所にある受取場所の識別情報を取得する。その後、取得部510は、例えば、乱数を生成させ、生成させた乱数に基づいて物品IDを生成する。次に、取得部510は、物品の状態情報を、未配達の状態を表す状態情報とする。
次に、保存部520は、生成された物品IDと、取得された受取場所の識別情報と、指定時間帯の開始時刻を表す情報及び終了時刻を表す情報と、連絡先を表す情報と、未配達の状態を表す状態情報と、を対応付けて、新規のレコードに保存した後に、当該レコードを、図8の物品テーブルに追加する。その後、保存部520は、不図示の物品情報保存処理の実行を終了する。
制御装置500のCPU501は、例えば、10分といった予め定められた時間間隔で、第1移動体100及び第2移動体200の予定を生成する不図示の予定生成処理を実行する。これにより、CPU501は、第1移動体100及び第2移動体200の予定を生成する、図7に示すような予定生成部530として機能する。
情報記憶部590は、予定に関する情報が保存される、図9に示すような予定テーブルを記憶している。予定テーブルには、複数のレコードが保存され、各レコードには、第1移動体100又は第2移動体200の識別情報「100」又は「200」と、受取場所の識別情報と、第1移動体100又は第2移動体200が当該受取場所へ向けて移動を開始する時刻である移動開始時刻を表す情報と、が対応付けられて保存される。また、識別情報「100」又は「200」と、受取場所の識別情報と、に対して、第1移動体100又は第2移動体200の当該受取場所への到着が予定される時刻である到着予定時刻を表す情報と、当該受取場所からの退去が予定される時刻である退去予定時刻を表す情報と、が対応付けられて保存される。さらに、識別情報「100」又は「200」と、受取場所の識別情報と、に対して、第1移動体100又は第2移動体200が当該受取場所まで格納して配達する予定の物品を識別する物品IDと、第1移動体100又は第2移動体200による当該受取場所への移動状態を表す状態情報と、が対応付けられて保存される。
予定生成処理の実行が開始されると、予定生成部530は、図9に示した予定テーブルに、第1移動体100の識別情報「100」が保存されたレコードが存在するか否かを判別する。このとき、予定生成部530は、そのようなレコードが存在しないと判別すると、第1移動体100が未実行の予定及び実行中の予定の双方が無いと判別して、第1移動体100の予定の生成を開始する。
第1移動体100の予定の生成を開始すると、予定生成部530は、図8の物品テーブルに保存されたレコードの内で、未配達の状態を表す状態情報が保存された1又は複数のレコードを取得し、取得された1又は複数のレコードに対して公知のスケジューリング技術を用いることで、第1移動体100の予定を生成する。
本実施例では、予定生成部530が、図10に示すような予定を生成した場合を例に挙げて説明する。図10に示す予定は、第1移動体100が物品ID「G1」及び「G3」でそれぞれ識別される第1物品と第3物品とを格納して、識別情報「P1」で識別される第1受取場所へ向けて、「09:00」に移動を開始し、「09:10」に第1受取場所へ到着し、物品ID「G1」で識別される第1物品が受け取られるまで、又は、「09:50」になるまで、第1受取場所に滞在する予定を含んでいる。
第1受取場所への到着予定時刻が「09:10」であるのは、図8の物品テーブルには、物品ID「G1」と、第1受渡場所の識別情報「P1」と、に対応付けられて、指定時間帯の開始時刻「09:20」を表す情報が保存されているため、指定時間帯の開始時刻「09:20」よりも予め定められた余裕時間「00:10」だけ早い時刻「09:10」に第1受取場所へ到着する予定が生成されたからである。また、第1受取場所からの退去予定時刻が「09:50」であるのは、物品テーブルには、物品ID「G1」と、第1受渡場所の識別情報「P1」と、に対応付けられて、指定時間帯の終了時刻「09:50」を表す情報が保存されているためである。尚、余裕時間は、「00:10」に限定される訳では無く、好適な余裕時間は、当業者が実験により定めることができる。
このため、予定生成部530は、図9の予定テーブルに、第1移動体100の識別情報「100」、第1受取場所の識別情報「P1」、第1移動体100の第1受取場所への移動開始時刻「09:00」を表す情報、到着予定時刻「09:10」を表す情報、及び、退去予定時刻「09:50」を表す情報を対応付けて保存する。また、予定生成部530は、第1移動体100の識別情報「100」及び第1受取場所の識別情報「P1」に対応付けて、第1受取場所で第1移動体100から受け取られる予定の物品の物品ID「G1」、及び、第1移動体100が未だ第1受取場所へ向けて出発していない未出発の状態であることを表す状態情報を対応付けて保存する。次に、予定生成部530は、物品テーブルにおいて、物品ID「G1」に対応付けられた状態情報を、配達中の状態を表す状態情報に更新する。
同様に、予定生成部530は、第1移動体100の識別情報「100」、第2受取場所の識別情報「P2」、移動開始時刻「10:10」を表す情報、到着予定時刻「10:20」を表す情報、及び、退去予定時刻「11:20」を表す情報、物品ID「G3」、及び、未出発の状態を表す状態情報を対応付けて、スケジュールテーブルに保存する。また、予定生成部530は、物品テーブルにおいて、物品ID「G3」に対応付けられた状態情報を、配達中の状態を表す状態情報に更新する。
また、予定生成部530は、識別情報「100」、営業所の識別情報「P0」、移動開始時刻「11:20」を表す情報、到着予定時刻「11:30」を表す情報、及び、未出発の状態を表す状態情報を対応付けて、スケジュールテーブルに保存する。その後、予定生成部530は、第1移動体100の予定の生成が終了したと判別する。
予定生成部530は、図9に示した予定テーブルに第1移動体100の識別情報「100」が保存されたレコードが存在すると判別した場合、第1移動体100の未実行の予定又は実行中の予定が有ると判別する。
予定生成部530は、第1移動体100の予定の生成が終了したと判別した場合、又は、第1移動体100の未実行又は実行中の予定が有ると判別した場合、予定テーブルに、第2移動体200の識別情報「200」が保存されたレコードが存在するか否かを判別する。このとき、予定生成部530は、そのようなレコードが存在すると判別すると、第2移動体200の未実行又は実行中の予定が有ると判別して、不図示の予定生成処理の実行を終了する。
これに対して、予定生成部530は、そのようなレコードが存在しないと判別すると、第2移動体200の未実行又は実行中の予定が無いと判別して、図10に示したような第2移動体200の予定を生成する。
図10に示した予定は、第2移動体200が物品ID「G2」、「G4」、及び「G5」でそれぞれ識別される第2物品と第4物品と第5物品とを格納して、「09:20」に第1受取場所へ向けて移動を開始し、「09:30」に第1受取場所へ到着し、物品ID「G2」で識別される第2物品が受け取られるまで、又は、「10:00」になるまでに第1受取場所に滞在する予定を含んでいる。
このため、予定生成部530は、第2移動体200の識別情報「200」、第1受取場所の識別情報「P1」、移動開始時刻「09:20」を表す情報、到着予定時刻「09:30」を表す情報、及び、退去予定時刻「10:00」を表す情報、物品ID「G2」、及び、未出発の状態を表す状態情報を対応付けて、図9のスケジュールテーブルに保存する。また、予定生成部530は、図8の物品テーブルにおいて、物品ID「G2」に対応付けられた状態情報を、配達中の状態を表す状態情報に更新する。
同様に、予定生成部530は、第2移動体200の識別情報「200」、第2受取場所の識別情報「P2」、移動開始時刻「10:10」を表す情報、到着予定時刻「10:20」を表す情報、及び、退去予定時刻「10:50」を表す情報、物品ID「G4」、及び、未出発の状態を表す状態情報をスケジュールテーブルに保存し、物品テーブルにおいて、物品ID「G4」に対応付けられた状態情報を、配達中の状態を表す状態情報に更新する。
さらに、予定生成部530は、第2移動体200の識別情報「200」、第3受取場所の識別情報「P3」、移動開始時刻「10:50」を表す情報、到着予定時刻「11:00」を表す情報、及び、退去予定時刻「11:20」を表す情報、物品ID「G5」、及び、未出発の状態を表す状態情報を対応付けてスケジュールテーブルに保存し、物品テーブルにおいて、物品ID「G5」に対応付けられた状態情報を、配達中の状態を表す状態情報に更新する。
また、予定生成部530は、第2移動体200の識別情報「200」、営業所の識別情報「P0」、移動開始時刻「11:20」を表す情報、到着予定時刻「11:30」を表す情報、及び、未出発の状態を表す状態情報を対応付けて、スケジュールテーブルに保存する。その後、予定生成部530は、第2移動体200の予定の生成が終了したと判別して、不図示の予定生成処理の実行を終了する。
予定生成処理の実行を終了すると、制御装置500のCPU501は、図9の予定テーブルに保存された予定に関する情報を取得し、取得された情報を、図6に示した表示装置505bに表示させる。このため、表示装置505bには、第1移動体100の識別情報「100」と、第1物品の物品ID「G1」及び第3物品の物品ID「G3」と、が対応付けられて表示されているので、表示装置505bを視認した従業員は、第1物品と第3物品とを、第1移動体100の格納ボックス160に格納させる。その後、従業員は、第1物品及び第3物品をそれぞれ格納させた格納ボックス160に関する情報を入力させる操作を制御装置500の入力装置505cに行う。
制御装置500の入力装置505cが従業員の操作に応じた信号を入力すると、制御装置500のCPU501は、格納ボックス160に関する情報を保存する不図示のボックス情報保存処理を実行する。情報記憶部590は、ボックス情報保存処理で格納ボックス160に関する情報が保存される、図11に示すような格納ボックステーブルを記憶している。
格納ボックステーブルには、複数のレコードが予め保存されており、各レコードには、第1移動体100又は第2移動体200の識別情報「100」又は「200」と、第1移動体100又は第2移動体200が備える格納ボックス160又は260を識別するボックスIDと、が対応付けられて予め保存されている。また、第1移動体100又は第2移動体200の識別情報「100」又は「200」と、ボックスIDと、には、当該ボックスIDで識別される格納ボックス160又は260が第1移動体100又は第2移動体200に配置されている位置を表す情報が、予め対応付けられている。さらに、識別情報「100」又は「200」と、ボックスIDと、には、初期状態において、当該格納ボックスに格納された物品が格納されていないことを表す記号「-」と、当該物品の受取人であることを認証するために用いられるパスワードが設定されていないことを表す文字「NULL」と、が予め対応付けられている。またさらに、識別情報「100」又は「200」と、ボックスIDと、には、初期状態において、当該物品が積み替えの対象とされる積替物品ではないことを表す値「false」の積替フラグが予め対応付けられている。
本実施例では、従業員が、ボックスID「B01」で識別される第1移動体100の格納ボックス160に第1物品を格納させ、かつ、ボックスID「B03」で識別される格納ボックス160に第3物品を格納させた場合を例に挙げて以下説明する。
不図示のボックス情報保存処理の実行が開始されると、制御装置500のCPU501は、入力された信号に基づいて、第1移動体100の識別情報「100」と、第1物品の物品ID「G1」と、第1物品が格納された格納ボックス160のボックスID「B01」と、を、格納ボックスに関する情報として取得する。次に、CPU501は、第1物品の受取人であることを認証するために用いられるパスワードを表す文字列「password1」を、例えば、乱数に基づいて生成する。その後、CPU501は、図11に示した格納ボックステーブルにおいて、第1移動体100の識別情報「100」と、ボックスID「B01」と、に対応付けられた記号「-」と、文字「NULL」と、を、第1物品の物品ID「G1」と、生成されたパスワードを表す文字列「password1」と、で更新する。
同様に、制御装置500のCPU501は、入力された信号に基づいて、第1移動体100の識別情報「100」と、第3物品の物品ID「G3」と、ボックスID「B03」と、を取得し、パスワードを表す文字列「password3」を生成する。また、CPU501は、格納ボックステーブルにおいて、識別情報「100」と、ボックスID「B03」と、に対応付けられた記号「-」及び文字列「NULL」を、第3物品の物品ID「G3」及び文字列「password3」で更新する。その後、CPU501は、不図示のボックス情報保存処理の実行を終了する。
同様に、表示装置505bには、第2移動体200の識別情報「200」と、第2物品の物品ID「G2」及び第4物品の物品ID「G4」と、が対応付けられて表示されるので、表示装置505bを視認した作業員は、第2物品と第4物品とを、第2移動体200に格納させる。
同様に、本実施例では、従業員が、ボックスID「B12」で識別される第2移動体200の格納ボックス260に第2物品を格納させ、ボックスID「B14」で識別される第2移動体200の格納ボックス260に第4物品を格納させ、かつ、ボックスID「B15」で識別される第2移動体200の格納ボックス260に第5物品を格納させた場合を例に挙げて以下説明する。
従業員は、第2物品及び第4物品をそれぞれ格納させた格納ボックス260に関するボックス情報を入力させる操作を制御装置500の入力装置505cにさらに行う。制御装置500の入力装置505cが操作に応じた信号を入力すると、制御装置500のCPU501は、不図示のボックス情報保存処理を再度実行する。これにより、CPU501は、格納ボックステーブルにおいて、第2移動体200の識別情報「200」と、ボックスID「B12」と、に対応付けられた記号「-」及び文字列「NULL」を、第2物品の物品ID「G2」及びパスワードを表す文字列「password2」で更新し、識別情報「200」と、ボックスID「B14」と、に対応付けられた記号「-」及び文字列「NULL」を、第4物品の物品ID「G4」及び文字列「password4」で変更する。また、CPU501は、第2移動体200の識別情報「200」と、ボックスID「B15」と、に対応付けられた記号「-」及び文字列「NULL」を、第5物品の物品ID「G5」及びパスワードを表す文字列「password5」で更新する。
制御装置500のCPU501は、起動すると、第1移動体100及び第2移動体200を制御する、図12に示すような移動体制御処理を実行する。これにより、CPU501は、第1移動体100及び第2移動体200を受取場所へ移動させる、図7に示すような移動制御部540として機能する。また、CPU501は、第1移動体100と第2移動体200とが同じ受取場所に滞在する場合に、第1移動体100と第2移動体200のいずれか一方を、受取場所に残留する残留移動体として選択し、他方を、当該受取場所から退去する退去移動体として選択する選択部550として機能する。
さらに、制御装置500のCPU501は、退去移動体が格納している物品を、退去移動体から残留移動体に積み替えられる積替物品と特定し、特定された積替物品を残留移動体に格納させる格納制御部560、及び、残留移動体に当該積替物品が格納されると、退去移動体の受取場所からの退去予定時刻を、変更前よりも早い時刻に変更する変更部570として機能する。また、CPU501は、退去移動体の退去予定時刻が変更されると、残留移動体に格納された積替物品の受取期間が終了する時刻が、当該受取場所における残留移動体の退去予定時刻まで延長されたことを知らせる延長通知を出力する通知部580として機能する。
図12に示す移動体制御処理の実行が開始されると、移動制御部540は、例えば、OS(Operating System)からシステム時刻を取得する。本実施例では、具体例として、「09:00」というシステム時刻が取得された場合を挙げて以下説明する。
移動制御部540は、図9に示した予定テーブルから、未出発の状態を表す状態情報に対応付けられた移動開始時刻の内で、システム時刻「09:00」以前の時刻「09:00」を1つ取得する。取得された移動開始時刻「09:00」には、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、が対応付けられているため、移動制御部540は、第1移動体100が第1受取場所へ移動を開始する移動開始時刻「09:00」が到来したと判別する(ステップS01;Yes)。
次に、移動制御部540は、受取場所に関する情報が予め保存された不図示の受取場所テーブルを参照する。不図示の受取場所テーブルは、情報記憶部590に予め記憶されており、受取場所テーブルには、複数のレコードが予め保存されている。受取場所テーブルの各レコードには、受取場所の識別情報と、受取場所の代表地点の緯度及び経度を表す代表地点情報と、当該受取場所の範囲を表す範囲情報と、が対応付けられて保存されている。
本実施例では、受取場所の代表地点は、例えば、当該受取場所の出入口であるとして説明するが、これに限定される訳ではなく、受取場所の代表地点は、当該受取場所と、第1移動体100及び第2移動体200が移動可能な経路と、が接する地点であれば、どのような地点であっても構わない。また、受取場所の代表地点は、当該受取場所と、第1移動体100及び第2移動体200が移動可能な経路と、が接する地点に限定される訳ではなく、例えば、当該受取場所を包含する最小の円の中心点、又は、当該受取場所に包含される最大の円の中心点であっても良い。
また、本実施例では、受取場所の形状が多角形状であるため、受取場所の範囲情報は、代表地点を原点とした座標系の座標値を用いて、当該受取場所が有する複数の頂点の位置を表す情報であるとして説明する。しかし、これに限定される訳ではなく、例えば、受取場所の形状が円形状であり、かつ、当該受取場所の代表地点が当該受取場所の中心点であれば、当該受取場所の範囲情報は、当該受取場所の半径を表す情報であっても良い。さらに、例えば、受取場所の形状が楕円形状であり、かつ、当該受取場所の代表地点が当該受取場所の有する長軸と短軸との交点であれば、当該受取場所の範囲情報は、当該長軸及び短軸の長さを表す情報であっても良い。
移動制御部540は、参照した受取場所テーブルから、第1受取場所の識別情報「P1」に対応付けられた第1受取場所の代表地点情報と範囲情報とを取得する。その後、移動制御部540は、第1受取場所の識別情報「P1」と代表地点情報と範囲情報とを含み、第1受取場所へ移動することを命じる移動命令を生成する。次に、移動制御部540は、生成された移動命令を、第1移動体100を宛先として、図6に示したデータ通信回路504aへ出力することで、第1移動体100の移動制御を行う(ステップS02)。
その後、変更部570は、図9の予定テーブルにおいて、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた状態情報を、移動中を表す状態情報に変更した後に(ステップS03)、ステップS01から上記処理を繰り返す。
第1移動体100が備える第1データ通信回路194aが、制御装置500から移動命令を受信すると、第1移動体100のCPU191は、移動命令に従って移動するために、複数の車輪を回転させる不図示のモータを制御する、図13に示すような走行制御処理を実行する。
走行制御処理の実行が開始されると、第1移動体100のCPU191は、第1データ通信回路194aから移動命令を取得し(ステップS21)、取得された移動命令に含まれる第1受取場所の識別情報「P1」、代表地点情報、及び、範囲情報を取得する。次に、第1移動体100のCPU191は、GPS回路196から出力される信号に基づいて、第1移動体100の緯度及び経度を特定する。
その後、第1移動体100のCPU191は、例えば、道路といった第1移動体100が移動可能な部分経路に関する情報が予め保存されている不図示の部分経路テーブルから複数のレコードを読み出す。部分経路テーブルは、フラッシュメモリ193bに予め保存されており、部分経路テーブルの各レコードには、部分経路の始点ノードの緯度及び経度と、当該部分経路の終点ノードの緯度及び経度と、当該部分経路であるエッジの長さと、が対応付けられて予め保存されている。
第1移動体100のCPU191は、特定された第1移動体100の緯度及び経度と、読み込まれた複数のレコードにそれぞれ保存されている部分経路であるエッジの長さ並びにノードの緯度及び経度と、代表地点情報で表される第1受取場所の代表地点の緯度及び経度と、を用いて、例えば、ダイクストラ法といった経路探索アルゴリズムを実行する。これにより、CPU191は、第1移動体100の現在位置から、第1受取場所の代表地点までの最短の全体経路を算出し、算出された全体経路を移動経路として決定する(ステップS22)。
次に、第1移動体100のCPU191は、移動経路を順行させるために、GPS回路196から信号を取得し、取得された信号で表される第1移動体100の緯度及び経度と、移動経路に含まれる複数の未通過のノードの内で最も近いノードの緯度及び経度と、の相違を縮小させる走行をするための制御信号を生成する。その後、CPU191は、生成された制御信号を、車輪111及び112を含む複数の車輪を回転させる不図示のモータを駆動させる駆動回路199へ出力する(ステップS23)。次に、第1移動体100のCPU191は、未通過のノードが存在する間、GPS回路196から信号を取得する処理から上記処理を繰り返す。
その後、第1移動体100のCPU191は、未通過のノードが存在しなくなると、第1移動体100が第1受取場所に到着したと判別する。次に、CPU191は、第1受取場所の識別情報「P1」と、第1移動体100の識別情報「100」と、を含み、第1受取場所に第1移動体100が到着したことを告げる到着報告を生成する。その後、CPU191は、生成された到着報告を、制御装置500を宛先として第1データ通信回路194aへ出力した後に(ステップS24)、走行制御処理の実行を終了する。
制御装置500の移動制御部540は、図12のステップS02及びステップS03を実行することで移動命令を出力した後に、ステップS01の処理を再度実行する。このとき、移動制御部540は、システム時刻を再度取得し、図9の予定テーブルにおいて、未出発の状態を表す状態情報と対応付けられた情報で表される移動開始時刻の内で、システム時刻よりも遅い時刻が無いと判別する。これにより、移動制御部540は、未実行の予定に関する移動開始時刻が到来していないと判別する(ステップS01;No)。
次に、制御装置500の移動制御部540は、第1移動体100から送信された到着報告がデータ通信回路504aで受信されたと判別して(ステップS04;Yes)、データ通信回路504aから到着報告を取得する(ステップS05)。その後、移動制御部540は、取得された到着報告から第1移動体100の識別情報「100」と、第1移動体100が到着した第1受取場所の識別情報「P1」と、を取得する。
次に、変更部570は、図9に示した予定テーブルにおいて、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた状態情報を、到着済みの状態を表す状態情報に変更する(ステップS06)。
その後、通知部580は、予定テーブルから、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた物品ID「G1」を取得し、図8に示した物品テーブルにおいて、物品ID「G1」と対応付けられた連絡先を表す情報を取得する。また、通知部580は、図11に示した格納テーブルから、物品ID「G1」と対応付けられたパスワードを表す文字列「password1」を取得する。その後、通知部580は、物品ID「G1」で識別される第1物品が、第1受取場所に到着したこと、及び、第1物品の受取人の認証に用いられるパスワードを表す文字列「password1」を知らせる、例えば、電子メール又はアプリケーションのメッセージ等の到着通知を生成する。次に、通知部580は、生成された到着通知を、取得された情報で表される受取人の連絡先を宛先として、データ通信回路504aへ出力する(ステップS07)。
第1物品の受取人は、図1に示した携帯端末901を携帯している。携帯端末901は、スマートフォンであり、図5に示した第1移動体100のCPU191、RAM192、ROM193a、フラッシュメモリ193b、第1データ通信回路194a、及び、タッチスクリーン195と同様の構成及び機能を有する不図示のCPU、RAM、ROM、フラッシュメモリ、データ通信回路、及び、タッチスクリーンを備える。また、携帯端末901は、周囲の音声を表す信号を入力する不図示のマイクロフォン、不図示の基地局と電波を用いた音声通信を行う不図示の音声通信回路、及び、CPUが出力する信号に従って音声を出力する不図示のスピーカを備える。尚、携帯端末902から905は、第2物品から第5物品の受取人によって携帯されており、携帯端末901が有する構成及び機能と同様の構成及び機能を有する。
携帯端末901の不図示のデータ通信回路が、制御装置500から到着通知を受信すると、不図示のCPUは、通到着知をタッチスクリーンに表示させる。このため、例えば、到着通知を受取人が視認し、かつ、受取人の都合が合えば、受取人は、第1物品を受け取るために第1受取場所へ移動する。
図12のステップS07で到着通知を出力した後に、移動制御部540は、第1受取場所に滞在することを命じる滞在命令を生成し、生成された滞在命令を、第1受取場所に到着した第1移動体100を宛先としてデータ通信回路504aに出力する。このようにして、移動制御部540は、第1移動体100を第1受取場所に滞在させる滞在制御を実行する(ステップS08)。
第1移動体100の第1データ通信回路194aが滞在命令を受信すると、第1移動体100のCPU191は、撮像装置119、181、及び、182へ撮像を命じる信号を出力した後に、撮像装置119、181、及び、182によってそれぞれ出力される2枚の画像を取得する。次に、CPU191は、取得された2枚の画像に対して、テンプレートマッチングを行うことで、例えば、床、及び、壁、椅子、テーブル、及び、インターフォン等の設備、並びに、第1移動体100と異なる移動体といった第1移動体100の周辺にある物体に対応する画像領域を特定する。その後、CPU191は、特定された画像領域の2枚の画像における位置の相違(つまり、視差)に基づいて、代表地点を原点とする3次元空間における物体の座標範囲を算出する。その後、CPU191は、算出された座標範囲と、第1受取場所の範囲を表す範囲情報と、に基づいて、第1移動体100の滞在位置を、例えば、第1受取場所の壁際の位置といった第1受取場所の通行の妨げとなり難い位置に決定し、決定された滞在位置の位置座標を算出する。
次に、CPU191は、第1移動体100の位置座標を算出し、決定された滞在位置の位置座標と、第1移動体100の位置座標と、の相違を縮小させる走行をするための制御信号を生成し、生成された制御信号を駆動回路199へ出力する。このようにして、第1移動体100は、決定された第1受取場所の滞在位置に移動する。その後、第1移動体100のCPU191は、例えば、複数の車輪を回転させる制御信号の出力を停止する等して、第1移動体100を第1受取場所に滞在させる。
ステップS08で滞在命令が出力された後に、選択部550は、図9の予定テーブルから、第1受取場所の識別情報「P1」と、到着済みの状態を表す状態情報と、に対応付けられた識別情報を検索する。これにより、選択部550は、第1移動体100の識別情報「100」を取得するが、第2移動体200の識別情報「200」を取得しない。識別情報「200」が取得されないのは、第2移動体200が第1受取場所に到着していないためである。
このため、選択部550は、第1受取場所に第1移動体100しか滞在しておらず、他の移動体である第2移動体200が滞在していないと判別する(ステップS09;No)。選択部550は、第1受取場所に第2移動体200が滞在していないため、第1移動体100と第2移動体200との間で物品の積み替えができないと判別する。その後、ステップS01から上記処理が繰り返される。
その後、システム時刻が「09:20」になると、移動制御部540は、図9に示した予定テーブルから、未出発の状態を表す状態情報に対応付けられた移動開始時刻の内で、システム時刻「09:20」以前の時刻であって、第2移動体200の識別情報「200」と、第1受取場所の識別情報「P1」と、に対応付けられた移動開始時刻「09:20」を取得する。このため、移動制御部540は、第2移動体200が第1受取場所への移動を開始する予定の時刻である移動開始時刻「09:20」が到来したと判別する(ステップS01;Yes)。
次に、移動制御部540は、第1受取場所へ移動することを命じる移動命令を、第2移動体200を宛先として出力する。(ステップS02)。その後、変更部570は、予定テーブルにおいて、第2移動体200の識別情報「200」と、第1受取場所の識別情報「P1」と、に対応付けられた状態情報を、移動中を表す状態情報に変更する(ステップS03)。その後、ステップS01から上記処理が繰り返される。
第2移動体200は、移動命令を受信すると、図13に示した走行制御処理を実行することで、第1受取場所に向かって移動を開始する。その後、第2移動体200は、第1受取場所に到着すると、第1受取場所の識別情報「P1」と、第2移動体200の識別情報「200」と、を含んだ到着報告を制御装置500へ送信する。
図12のステップS03が実行された後、制御装置500の移動制御部540は、ステップS01及びS04の処理を順に実行することで、第2移動体200によって送信された到着報告が受信されたと判別する(ステップS04;Yes)。
その後、ステップS05からS08の処理が再度実行される。これにより、図9の予定テーブルにおいて、第2移動体200の識別情報「200」と、第1受取場所の識別情報「P1」と、に対応付けられた状態情報が、到着済みの状態を表す状態情報に変更され、第2移動体200を第1受取場所に滞在させる滞在制御が実行される。また、第2物品が第1受取場所に到着したこと、及び、第2物品の受取人の認証に用いられるパスワードを知らせる到着通知が、第2物品の受取人が携帯する携帯端末902へ送信される。
次に、選択部550は、図9に示した予定テーブルから、第1受取場所の識別情報「P1」と、到着済みの状態を表す状態情報と、に対応付けられた、第1移動体100の識別情報「100」と、第2移動体200の識別情報「200」と、を取得する。これにより、選択部550は、第1受取場所に第1移動体100と第2移動体200とが滞在していると判別する(図12のステップS09;Yes)。その後、同じ受取場所に第1移動体100と第2移動体200とが滞在する場合に、当該受取場所で、第1移動体100に格納された物品と、第2移動体200に格納された物品と、を積み替えさせる、図14に示すような積替制御処理が実行される(ステップS10)。
積替制御処理の実行が開始されると、第1移動体100及び第2移動体200の内で、一方を、第1受取場所に残留する残留移動体として選択し、かつ、他方を、第1受取場所から退去する退去移動体として選択する、図15に示すような選択処理が実行される(ステップS31)。
選択処理の実行が開始されると、取得部510は、図9の予定テーブルから、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた、退去予定時刻「09:50」を表す情報を取得する。このようにして取得される情報は、第1受取場所からの第1移動体100の退去予定時刻を表す情報である(ステップS51)。同様に、取得部510は、予定テーブルから、第2移動体200の識別情報「200」と、第1受取場所の識別情報「P1」と、に対応付けられた退去予定時刻を表す情報を取得することで、第1受取場所からの第2移動体200の退去予定時刻「10:00」を表す情報を取得する(ステップS52)。
次に、選択部550は、第1受取場所からの第1移動体100の退去予定時刻「09:50」が、第1受取場所からの第2移動体200の退去予定時刻「10:00」よりも早いと判別する(ステップS53;Yes)。その後、選択部550は、第2移動体200を残留移動体として選択し(ステップS54)、第1移動体100を退去移動体として選択する(ステップS55)。
その後、格納制御部560は、退去移動体として選択された第1移動体100に格納されている第1物品を、退去移動体から残留移動体へ積み替えられる積替物品と特定する(ステップS56)。第1物品が積替物品と特定されるのは、残留移動体として選択された第2移動体200に、第1物品を積み替えれば、第1移動体100は、第1受取場所で受け取られる予定の物品を格納していない状態となるため、第1物品の積み替えが終われば、第1受取場所から退去できるようになるからである。
その後、変更部570は、図11に示した格納ボックステーブルにおいて、積替物品と特定された第1物品の物品ID「G1」に対応付けられた積替フラグ「false」を、積替物品であることを表すフラグ「TRUE」に変更した後に、選択処理の実行を終了する。
図14のステップS31で、選択処理が実行された後、第1受取場所以外の受取場所で受け取られる物品から積替物品を特定する、図16に示すような積替物品特定処理が実行される(ステップS32)。
積替物品特定処理の実行が開始されると、格納制御部560は、図9に示した予定テーブルから、第1移動体100の識別情報「100」と、第1受取場所の到着予定時刻「09:00」よりも遅い到着予定時刻「10:10」を表す情報と、に対応付けられた第2受取場所の識別情報「P2」を取得する。これによって、格納制御部560は、第1移動体100が第1受取場所を退去した後に到着する予定の受取場所として、第2受取場所を特定する。
同様に、格納制御部560は、第2移動体200が第1受取場所を退去した後に到着する予定の受取場所として、第2受取場所及び第3受取場所を特定する。その後、格納制御部560は、第1移動体100と、第2移動体200と、の双方が到着する予定の第2受取場所を共通の受取場所と特定する(ステップS61)。これに対して、格納制御部560は、第2移動体200が到着する予定があるが、第1移動体100が到着する予定が無い、第3受取場所を共通の受取場所と特定しない。
次に、格納制御部560は、特定された共通の受取場所の内で、第2受取場所について未だ注目していないため、未注目の共通の受取場所があると判別し(ステップS62;Yes)、未注目の共通の受取場所の1つとして第2受取場所に注目し、第2受取場所を注目受取場所とする(ステップS63)。
その後、取得部510は、図9の予定テーブルにおいて、第1移動体100の識別情報「100」と、注目受取場所である第2受取場所の識別情報「P2」と、に対応付けられた到着予定時刻「10:20」と、退去予定時刻「11:20」と、を取得する。次に、格納制御部560は、第1移動体100が注目受取場所に滞在する予定の期間である滞在予定期間を、到着予定時刻「10:20」から退去予定時刻「11:20」までであると特定する(ステップS64)。同様に、取得部510は、第2移動体200の識別情報「200」と、注目受取場所の識別情報「P2」と、に対応付けられた到着予定時刻「10:20」と、退去予定時刻「10:50」と、を取得する。次に、格納制御部560は、第2移動体200の注目受取場所に対する滞在予定期間を、到着予定時刻「10:20」から退去予定時刻「10:50」までであると特定する(ステップS65)。
その後、格納制御部560は、第1移動体100の当該滞在予定期間が第2移動体200の当該滞在予定期間を包含していると判別する(ステップS66;Yes)。このように判別されるのは、第1移動体100の当該滞在予定期間が開始する時刻「10:20」と、第2移動体200の当該滞在予定期間が開始する時刻「10:20」と、が一致しているが、第1移動体100の当該滞在予定期間が終了する時刻「11:20」が、第2移動体200の当該滞在予定期間が終了する時刻「10:50」よりも遅いためである。
このため、格納制御部560は、第2受取場所で第2移動体200から引き取られる予定の第4物品を、第1移動体100へ積み替えれば、第2移動体200が第2受取場所へ移動する必要が無くなるため、第4物品を積替物品と特定する(ステップS67)。次に、変更部570は、図11に示した格納ボックステーブルにおいて、積替物品と特定された第4物品の物品ID「G4」に対応付けられた積替フラグ「false」を、積替物品であることを表すフラグ「TRUE」に変更する。
その後、格納制御部560は、図16のステップS62に戻り、未注目の共通の受取場所がないと判別し(ステップS62;No)、積替物品特定処理の実行を終了する。
図14のステップS32で、積替物品特定処理が実行された後、変更部570は、積み替えが行われたか否かを表す積替済フラグを、積み替えが行われていないことを表すフラグ「false」に初期化する(ステップS33)。
次に、格納制御部560は、図11の格納ボックステーブルにおいて、退去移動体として選択された第1移動体100の識別情報「100」と、積替物品であることを表す積替フラグ「TRUE」と、に対応付けられた第1物品の物品ID「G1」を取得することで、退去移動体の積替物品を特定する(ステップS34)。
次に、格納制御部560は、取得された積替物品の内で、第1物品について未だ注目していないため、未注目の積替物品があると判別し(ステップS35;Yes)、未注目の積替物品の1つとして第1物品に注目し、第1物品を注目物品とする(ステップS36)。
次に、格納制御部560は、格納ボックステーブルにおいて、注目物品である第1物品の物品ID「G1」に対応付けられた格納ボックス160の配置位置「左1行1列」を表す情報を取得する。格納制御部560は、取得された情報に基づいて、第1物品が、第1移動体100の左側面の1行1列の位置に配置された格納ボックス160(以下、左1行1列のボックス160という)に格納されていることを特定する。
次に、格納制御部560は、取得された配置位置「左1行1列」を表す情報に基づいて、第1移動体100の左1行1列のボックス160から、積み替えのために押し出される第1物品を受け止めることが可能な受止可能ボックスとして、第2移動体200の右側面の1行1列及び1行2列、並びに、左側面の1行1列及び1行2列に配置された格納ボックス260を特定する。これらの格納ボックス260が受止可能ボックスとして特定されるのは、図4を参照して説明したように、第1移動体100の格納ボックス160は、第1物品を水平方向に押し出すため、格納ボックス160と正対させることが可能な格納ボックス260が、押し出された第1物品を受け止めることができるからである。
第2移動体200の右側面の1行1列の格納ボックス260と、第1移動体100の左1行1列のボックス160と、を、互いに正対させるには、例えば、以下のような手順に従って、第1移動体100と第2移動体200との進行方向及び相対的な位置を調整すれば良い。そのような手順は、先ず、図2に示したように、第1移動体100と第2移動体200との進行方向を同じ方向とし、次に、第1移動体100のロッカー装置170の前側の面と、第2移動体200のロッカー装置270の前側の面と、が同一平面を形成するように、第1移動体100と第2移動体200との位置を調整する手順である。
また、第2移動体200の右側面の1行2列の格納ボックス260と、第1移動体100の左1行1列のボックス160と、を、互いに正対させるには、第1移動体100と第2移動体200との進行方向を同じ方向とした状態で、第1移動体100の位置を第2移動体200よりも進行方向に向かって後側の位置に調整すれば良い。
さらに、左側面の1行2列の格納ボックス260と、左1行1列のボックス160と、を互いに正対させるには、第1移動体100と第2移動体200との進行方向を互いに対向させた状態で、ロッカー装置170の前側の面と、ロッカー装置270の後側の面と、が同一平面を形成するように、第1移動体100と第2移動体200との位置を調整すれば良い。
またさらに、左側面の1行1列の格納ボックス260と、左1行1列のボックス160とを互いに正対させるには、第1移動体100の進行方向と第2移動体200の進行方向とを互いに対向させた状態で、第1移動体100の位置を第2移動体200よりも第1移動体100の進行方向に向かって後ろの位置に調整すれば良い。
その後、格納制御部560は、図11の格納ボックステーブルにおいて、第2移動体200の識別情報「200」と、受止可能ボックスとして特定された格納ボックス260の内の1つの配置位置「右1行1列」を表す情報と、に対して、物品が格納されていないことを表す記号「-」が対応付けられているため、残留移動体として選択された第2移動体200の受止可能ボックス260に空きがあると判別する(図14のステップS37;Yes)。尚、格納制御部560は、全ての受止可能ボックス260に空きがないと判別すると(ステップS37;No)、別の積替物品を積み替えるため、ステップS35から上記処理を繰り返す。
受止可能ボックス260に空きがあると判別すると(ステップS37;Yes)、格納制御部560は、第1移動体100の左1行1列のボックス160から、第2移動体200の右側面の1行1列の位置に配置された格納ボックス260(以下、右1行1列のボックス260という)へ、第1物品を積み替えることを命じる積替命令を生成する。次に、格納制御部560は、積替命令に、第1移動体100の識別情報「100」、及び、配置位置「左1行1列」を表す情報を対応付けた情報と、第2移動体200の識別情報「200」、及び、配置位置「右1行1列」を表す情報を対応付けた情報と、を追加した後に、第1移動体100及び第2移動体200を宛先として積替命令をデータ通信回路504aに出力する。これにより、格納制御部560は、退去移動体として選択された第1移動体100が格納している第1物品を、残留移動体として選択された第2移動体200に格納させる格納制御を行う(ステップS38)。
第1移動体100の第1データ通信回路194aが積替命令を受信すると、第1移動体100のCPU191は、積替命令を取得し、積替命令に含まれる情報を取得する。その後、CPU191は、撮像装置119、181、及び、182へ撮像を命じる信号を出力した後に、撮像装置119、181、及び、182によってそれぞれ出力される2枚の画像を取得し、取得された2枚の画像の視差に基づいて、第2移動体200の位置座標及び進行方向を特定する。次に、CPU191は、特定された第2移動体200の位置座標及び進行方向と、積替命令から取得された情報と、に基づいて制御信号を生成し、生成された制御信号を、複数の車輪を回転させる不図示のモータに接続された駆動回路199へ出力する。これにより、第1移動体100のCPU191は、第1移動体100の左1行1列のボックス160と、第2移動体200の右1行1列のボックス260と、が、扉162の高さHよりも短い距離dだけ離れて正対するように、第1移動体100の位置及び進行方向を変更する。第2移動体200は、積替命令を受信すると、第1移動体100と同様に、第2移動体200の位置及び進行方向を変更する。
第1移動体100のCPU191は、車台110の左側面に設置された撮像装置182へ撮像を命じる信号を再度出力した後に、撮像装置182から出力される2枚の画像を取得する。次に、CPU191は、取得された2枚の画像の視差に基づいて、第1移動体100の左1行1列のボックス160と、第2移動体200の右1行1列のボックス260と、が距離dだけ離れて正対しているか否かを判別する。このとき、CPU191は、左1行1列のボックス160と、右1行1列のボックス260と、が距離dだけ離れて正対していないと判別すると、第1移動体100の位置及び進行方向を変更する処理から上記処理を繰り返す。
第1移動体100のCPU191は、左1行1列のボックス160と、右1行1列のボックス260と、が距離dだけ離れて正対していると判別すると、左1行1列のボックス160の扉162を解錠させる制御信号と、扉162の状態を外側開放状態とする制御信号とを、不図示のモータに接続された駆動回路199へ出力する。これにより、扉162は、図4に示したような、左1行1列のボックス160と右1行1列のボックス260とに架かる橋として機能する。第2移動体200は、第1移動体100と同様に、左1行1列のボックス160と、右1行1列のボックス260と、が正対していると判別した後に、右1行1列のボックス260の伸縮機構の状態を完全収縮状態とし、扉262を解錠し、かつ、扉262の状態を内側開放状態にする。
第1移動体100のCPU191は、撮像装置182へ制御信号を再度出力した後に、撮像装置182から出力される画像に基づいて、右1行1列のボックス260が内側開放状態となったか否かを判別する。CPU191は、右1行1列のボックス260が内側開放状態となっていないと判別すると、撮像装置182へ制御信号を出力する処理から上記処理を繰り返す。CPU191は、右1行1列のボックス260が内側開放状態となったと判別すると、左1行1列のボックス160の伸縮機構165を完全伸張状態とさせる制御信号を駆動回路199へ出力する。
図4に示すように、伸縮機構165が伸張させられると、伸縮機構165に押されたスライド板164が、左1行1列のボックス160の底板161bの表面、扉162の裏側の面、及び、右1行1列のボックス260の扉262の表側の面をスライドする。これにより、左1行1列のボックス160に格納されていた第1物品が、扉262よりも右1行1列のボックス260の内側まで、スライド板164によって押し出されることで、積み替えが行われる。
その後、第1移動体100のCPU191は、左1行1列のボックス160の伸縮機構165の状態を完全収縮状態とする制御信号と、扉162の状態を閉鎖状態とする制御信号と、扉162を施錠させる制御信号と、を駆動回路199へ順に出力する。第2移動体200は、ロッカー装置270の右側面に設置された不図示の撮像装置から出力された画像に基づいて、第1移動体100の左1行1列のボックス160が備える扉162の状態が閉鎖状態となったと判別すると、積み替えが終了したと判別する。その後、第2移動体200は、右1行1列のボックス260の扉262の状態を閉鎖状態とした後に、扉262を施錠する。
第1物品の積み替えが終了すると、変更部570は、積替済フラグの値を、積み替えが行われたことを表す値「TRUE」に変更する(図14のステップS39)。次に、変更部570は、図11の格納ボックステーブルにおいて、第1移動体100の識別情報「100」と、積み替え前に第1物品が格納されていた格納ボックス160の配置位置「左1行1列」を表す情報と、に対応付けられた第1物品の物品ID「G1」及びパスワードを表す文字列「password1」を取得する。次に、変更部570は、第2移動体200の識別情報「200」と、積み替えにより第1物品が格納されるようになった格納ボックス260の配置位置「右1行1列」を表す情報と、に対応付けられた記号「-」及び文字列「NULL」を、取得された第1物品の物品ID「G1」及びパスワードを表す文字列「password1」に変更する。その後、変更部570は、格納ボックステーブルにおいて、第1移動体100の識別情報「100」と、格納ボックス160の配置位置「左1行1列」を表す情報と、に対応付けられた物品ID「G1」、文字列、及び、積替フラグ「TRUE」を、物品が格納されていないことを表す記号「-」、パスワードが設定されていないことを表す文字列「NULL」、及び、積替物品でないことを表すフラグ「false」に変更する。
また、変更部570は、図9の予定テーブルにおいて第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられていた第1物品の物品ID「G1」を削除することで、図9の予定テーブルを図17に示すような予定テーブルに変更する。このような変更及び削除が行われるのは、退去移動体として選択された第1移動体100が、積み替えにより、第1物品を格納しなくなったからである。
変更部570は、予定テーブルにおいて、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、到着済みの状態を表す状態情報と、に対応付けられた物品IDが無くなったため、第1移動体100が滞在している第1受取場所で、第1移動体100から受け取られる物品が無くなったと判別する。このため、変更部570は、退去移動体として選択された第1移動体100が第1受取場所から退去可能になったと判別する。
次に、変更部570は、システム時刻を取得する。本実施例では、具体例として、「09:40」というシステム時刻が取得された場合を挙げて以下説明する。変更部570は、図9の予定テーブルにおいて、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられていた退去予定時刻「09:50」を、システム時刻「09:40」に変更することで、図9の予定テーブルから図17の予定テーブルに変更する。これにより、変更部570は、「09:50」を第1受取場所からの退去予定時刻とする、図10に示した第1移動体100の予定を、「09:40」を第1受取場所からの退去予定時刻とする、図18に示すような予定に変更する(図14のステップS40)。
また、変更部570は、第2移動体200の識別情報「200」と、第1受取場所の識別情報「P1」と、に対応付けられた第2物品の物品ID「G2」を存置したまま、第1物品の物品ID「G1」を、第2移動体200の識別情報「200」と、第1受取場所の識別情報「P1」と、に対応付けて保存することで、図9の予定テーブルから図17の予定テーブルに変更する。このような変更及び保存が行われるのは、第1受取場所に残留する残留移動体として選択された第2移動体200が、積み替えにより、第2物品だけでなく、第1物品も格納するようになったからである。
第2移動体200の第1受取場所からの退去予定時刻「10:00」は、第1移動体100の変更前の退去予定時刻「09:50」よりも遅いため、第1移動体100から第2移動体200へ積み替えられた第1物品は、積み替え前よりも遅くまで、第1受取場所で受け取られることができる。このため、通知部580は、第1物品を受け取ることができる受取期間の終了時刻が「09:50」から「10:00」まで延長されたことを知らせる延長通知を生成する。次に、通知部580は、図8に示した物品テーブルから、第1物品の物品ID「G1」に対応付けられた受取人の連絡先を取得し、生成された延長通知を、当該連絡先を宛先として、データ通信回路504aへ出力する(図14のステップS41)。
次に、ステップS35に戻り、格納制御部560は、退去移動体が唯1つ格納していた積替物品について既に注目したため、退去移動体が格納する未注目の積替物品がないと判別する(ステップS35;No)。
次に、格納制御部560は、図11の格納ボックステーブルにおいて、残留移動体として選択された第2移動体200の識別情報「200」と、積替物品であることを表す積替フラグ「TRUE」と、に対応付けられた第4物品の物品ID「G4」を取得することで、残留移動体の積替物品を特定する(ステップS42)。
次に、格納制御部560は、ステップS35からS41と同様の処理を実行する(ステップS43からS49)。これにより、格納制御部560は、第2移動体200に格納された積替物品である第4物品を、第1移動体100に格納させてから、積替済フラグの値を「TRUE」とする。
本実施例では、具体例として、第4物品は、第2移動体200の右側面の1行2列の位置に配置された格納ボックス260に格納されており、積み替えにより、第1移動体100の左側面の1行2列の位置に配置された格納ボックス160に格納された場合を挙げて以下説明を行う。
変更部570は、図11の格納ボックステーブルにおいて、第2移動体200の識別情報「200」と、積み替え前に第4物品が格納されていた格納ボックス260の配置位置「右1行2列」を表す情報と、に対応付けられた第4物品の物品ID「G4」及びパスワードを表す文字列「password4」を取得する。次に、変更部570は、第1移動体100の識別情報「100」と、積み替えにより第4物品が格納されるようになった格納ボックス160の配置位置「左1行2列」を表す情報と、に対応付けられた記号「-」及び文字列「NULL」を、取得された第4物品の物品ID「G4」及びパスワードを表す文字列「password4」に変更する。その後、変更部570は、格納ボックステーブルにおいて、第2移動体200の識別情報「200」と、格納ボックス260の配置位置「右1行2列」を表す情報と、に対応付けられた物品ID「G4」、文字列「password4」、及び、積替フラグ「TRUE」を、物品が格納されていないことを表す記号「-」、パスワードが設定されていないことを表す文字列「NULL」、及び、積替物品でないことを表すフラグ「false」に変更する。
また、変更部570は、図9の予定テーブルにおいて、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、に対応付けられた第4物品の物品ID「G4」を削除する。このような変更及び削除が行われるのは、第2移動体200が、積み替えにより、第4物品を格納しなくなったからである。
さらに、変更部570は、予定テーブルにおいて、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、未出発の状態を表す状態情報と、に対応付けられた物品IDが無くなったため、第2移動体200の第2受取場所に関する予定が不要になったと判別する。次に、変更部570は、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、が保存されたレコードを削除することで、図9の予定テーブルから図17の予定テーブルに変更し、図18に示すように、第2移動体200の予定から第2受取場所に関する予定を削除する。
また、変更部570は、図9の予定テーブルにおいて、第1移動体100の識別情報「100」と、第2受取場所の識別情報「P2」と、に対応付けられた第3物品の物品ID「G3」を存置したまま、第4物品の物品ID「G4」を、第1移動体100の識別情報「100」と、第2受取場所の識別情報「P2」と、に対応付けて保存する。このようにして、図9の予定テーブルが図17の予定テーブルに変更される。このような変更及び保存が行われるのは、第2受取場所へ移動する第1移動体100が、積み替えにより、第3物品だけでなく、第4物品も格納するようになったからである。
その後、通知部580は、第4物品を受け取ることができる受取期間の終了時刻が、第4物品を格納していた第2移動体200が第2受取場所から退去する予定の時刻である退去予定時刻「10:50」から、積み替えにより第4物品を格納した第1移動体100の第2受取場所からの退去予定時刻「11:20」まで延長されたことを知らせる延長通知を出力する。
次に、格納制御部560は、図14のステップS43に戻り、残留移動体が唯1つ格納していた積替物品について既に注目したため、残留移動体が格納する未注目の積替物品がないと判別する(ステップS43;No)。
その後、格納制御部560は、積替済フラグの値が、積替が行われたことを表す「TRUE」であるが、図11の格納ボックステーブルにおいて、積替物品であることを表す値「TRUE」の積替フラグが保存されていないため、積替物品がないと判別し(ステップS50;No)、積替制御処理の実行を終了する。
尚、格納制御部560は、受止可能ボックスに空きがなかったため積み替えられなかった積替物品が有り、かつ、積替済フラグの値が「TRUE」であると判別すると(ステップS50;Yes)、当該積替物品の積み替えの際に空きがなかったと判別された受止可能ボックスに、別の積替物品の積み替えによって空きが生じた可能性があるため、ステップS33から上記処理を繰り返す。
図12のステップS10で積替制御処理が実行された後、制御装置500の移動制御部540は、ステップS01及びS04の処理を順に実行することで、到着報告が受信されなかったと判別する(ステップS04;No)。次に、移動制御部540は、システム時刻を取得する。本実施例では、具体例として「09:41」というシステム時刻が取得された場合を挙げて以下説明する。
移動制御部540は、図17の変更後の予定テーブルから、到着済みの状態情報に対応付けられた退去予定時刻の内で、システム時刻「09:41」以前の時刻を検索し、変更部570によって変更された後の退去予定時刻「09:40」を取得する。退去予定時刻「09:40」は、退去移動体として選択された第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられているため、移動制御部540は、第1移動体100による第1受取場所の退去予定時刻「09:40」が到来したと判別する(図12のステップS11;Yes)。
次に、移動制御部540は、第1受取場所から退去することを命じる退去命令を生成し、生成された退去命令を、第1移動体100を宛先としてデータ通信回路504aへ出力する。これにより、移動制御部540は、第1移動体100を第1受取場所から退去させる退去制御を実行する(ステップS12)。
第1移動体100の第1データ通信回路194aが退去命令を受信すると、第1移動体100のCPU191は、GPS回路196から信号を取得し、取得された信号で表される緯度及び経度と、第1受取場所の出入口である代表地点の緯度及び経度を表す代表地点情報と、の相違を縮小させる走行をするための制御信号を生成する。次に、CPU191は、生成された制御信号を、複数の車輪を回転させるモータ等に接続された駆動回路199に出力する。このようにして、第1移動体100は、第1受取場所を退去するために、第1受取場所の出入口へ移動する。
本実施例において、第1受取場所を含む受取場所を退去した第1移動体100は、制御装置500から移動命令を受信するまでの間、例えば、駐車及び停車が禁止されていない道路、河原、若しくは、公園、又は、第1移動体100の駐車が許可された駐車場に停車すると説明する。しかし、これに限定される訳ではなく、受取場所を退去した第1移動体100は、予め定められた速度で、退去した受取場所の付近の道路を周回しても良い。受取場所を退去した第2移動体200も同様である。
このため、第1移動体100のCPU191は、フラッシュメモリ193bに予め保存された第1移動体100の停車位置の緯度及び経度を表す情報を読み出す。次に、CPU191は、読み出された情報と、第1受取場所の出入口である代表地点の緯度及び経度を表す代表地点情報と、不図示の部分経路テーブルに保存された情報と、を用いて、第1受取場所の出入口から停車位置までの移動経路を決定する。その後、CPU191は、決定された移動経路を順行させるための制御信号を生成し、生成された制御信号を駆動回路199へ出力する。このようにして、第1移動体100は、第1受取場所から退去して、第1移動体100の停車位置へ移動する。
ステップS12で、退去移動体として選択された第1移動体100に対して、第1受取場所から退去させる退去制御が実行された後、変更部570は、図17の予定テーブルにおいて、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた状態情報を、退去済みを表す状態情報に変更する(図12のステップS13)。
本実施例では、退去移動体として選択された第1移動体100が第1受取場所を退去した後から、残留移動体として選択された第2移動体200が第1受取場所から退去する予定の時刻「10:00」までに、第2物品の受取人が第1受取場所に到着する場合を具体例として挙げて以下説明する。
当該受取人は、第1受取場所に到着すると、第1受取場所で滞在を続ける第2移動体200を確認する。その後、当該受取人は、第2移動体200が備える不図示のタッチスクリーンに対して、携帯端末902に表示されたパスワードを入力する操作を行う。タッチスクリーンが当該操作に応じた信号を入力すると、第2移動体200が備える不図示のCPUは、入力された信号に基づいて、入力されたパスワードを表す文字列「password2」を取得する。その後、CPUは、第2移動体200の識別情報「200」と、取得された文字列「password2」と、を含み、当該受取人の認証を求める認証要求を生成し、生成された認証要求を、制御装置500を宛先として、不図示の第1データ通信回路に出力する。
図12のステップS13が実行された後、制御装置500の移動制御部540は、ステップS01、S04、及び、S11の処理を順に実行することで、退去予定時刻が到来していないと判別する(ステップS11;No)。次に、格納制御部560は、認証要求がデータ通信回路504aで受信されたと判別して(ステップS14;Yes)、データ通信回路504aから認証要求を取得する(ステップS15a)。その後、格納制御部560は、取得された認証要求から、第2移動体200の識別情報「200」と、パスワードを表す文字列「password2」と、を取得する。次に、格納制御部560は、図11の格納ボックステーブルに、第2移動体200の識別情報「200」と、取得された文字列「password2」と、が保存されたレコードが保存されているため、受取人の認証が成功したと判別する(ステップS15b;Yes)。
尚、格納制御部560は、格納ボックステーブルに、識別情報「200」と、文字列「password2」と、が保存されたレコードが保存されていないと判別する場合、受取人の認証が失敗したと判別し(ステップS15b;No)、第2移動体200を宛先として、認証が失敗したことを知らせる失敗報告をデータ通信回路504aに出力する。その後、ステップS01から上記処理が繰り返される。また、第2移動体200の不図示の第1データ通信回路が失敗報告を受信すると、第2移動体200の不図示のCPUは、エラーメッセージを不図示の表示装置に表示させる。
認証が成功したと判別されると(ステップS15b;Yes)、格納制御部560は、図11の格納ボックステーブルにおいて、第2移動体200の識別情報「200」と、文字列「password2」と、に対応付けられたボックスID「B12」又は配置位置「右1行2列」を表す情報を取得する。次に、格納制御部560は、認証が成功したことを知らせる成功報告と、ボックスID「B12」又は配置位置「右1行2列」を表す情報を含み、当該情報によって識別される格納ボックス260に格納された第2物品を受取人に受け渡すことを命じる受渡命令と、を生成する。その後、格納制御部560は、成功報告と受渡命令とを、第2移動体200を宛先としてデータ通信回路504aに出力することで、物品を受取人に受け渡させる受渡制御を行う(図12のステップS16)。
第2移動体200の不図示の第1データ通信回路が、成功報告と受渡命令とを受信すると、第2移動体200の不図示のCPUは、第1データ通信回路から受渡命令を取得し、受渡命令に含まれるボックスID「B12」又は配置位置「右1行2列」を表す情報を取得する。その後、CPUは、当該情報で識別される格納ボックス260の扉262を解錠させる制御信号と、扉262の状態を外側開放状態とさせる制御信号と、を不図示の駆動回路へ出力する。その後、CPUは、ロッカー装置270の右側面に設置された不図示の撮像装置に撮像を命じる信号を出力した後、撮像装置から出力される画像を取得し、取得された画像に基づいて、受取人が第2物品を受け取ったと判別する。その後、CPUは、第2移動体200の識別情報「200」とボックスID「B12」又は配置位置「右1行2列」を表す情報とを含み、当該情報で識別される格納ボックス260に格納されていた第2物品を受け渡したことを知らせる受渡報告を、制御装置500を宛先として第1データ通信回路へ出力する。
制御装置500のデータ通信回路504aが受渡報告を受信すると、変更部570は、データ通信回路504aから受渡報告を取得する。次に、変更部570は、受渡報告に含まれる第2移動体200の識別情報「200」と、ボックスID「B12」と、に対応付けられた第2物品の物品ID「G2」を取得する。その後、識別情報「200」と、ボックスID「B12」と、に対応付けられた物品ID「G2」及び文字列「password2」を、記号「-」及び文字列「NULL」に変更する。
また、変更部570は、図17の変更後の予定テーブルにおいて、第2移動体200の識別情報「200」と、第1受取場所の識別情報「P1」と、に対応付けられた第2物品の物品ID「G2」を削除する(図12のステップS17)。次に、変更部570は、第2移動体200の識別情報「200」と、第1受取場所の識別情報「P1」と、に対して、第1物品の物品ID「G1」が対応付けられているため、第1受取場所で受け取られる予定の第1物品を、第2移動体200が格納していると判別する(ステップS18;Yes)。その後、ステップS01から上記処理が繰り返される。
本実施例では、残留移動体として選択された第2移動体200の第1受取場所からの退去予定時刻「10:00」までに、第1物品の受取人が第1受取場所に現れなかった場合を具体例として挙げて以下説明する。
システム時刻が「10:00」となると、制御装置500の移動制御部540は、ステップS01、S04、及び、S11の処理を順に実行することで、残留移動体として選択された第2移動体200の第1受取場所からの退去予定時刻「10:00」が到来したと判別する(ステップS11;Yes)。その後、ステップS12及びS13の処理が実行されることで、第1物品を格納したままの第2移動体200を第1受取場所から退去させる退去制御が実行される。
その後、ステップS01に戻り、システム時刻が「10:10」となると、移動制御部540は、第1移動体100の第2受取場所への移動開始時刻「10:10」が到来したと判別する(ステップS01;Yes)。その後、ステップS02及びS03の処理が実行されることで、受取人が現れなかった第1物品と、第2受取場所で受け取られる予定の第3物品及び第4物品と、を格納した第1移動体100を第2受取場所へ移動させる移動制御が実行されるが、第2移動体200を第2受取場所へ移動させる移動制御は、実行されない。このような移動制御が実行されるのは、第2移動体200の第2受取場所に関する予定が削除されたため、図17の変更後の予定テーブルには、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、第2移動体200の第2受取場所への移動開始時刻「10:10」を表す情報と、が保存されたレコードが保存されていないためである。
その後、ステップS01から上記処理が繰り返された後、移動制御部540は、第2受取場所に到着した第1移動体100から到着報告が受信されたと判別し(ステップS04;Yes)、ステップS05からS07の処理が実行される。これにより、第3物品が第2受取場所に到着したことを知らせる到着通知が第3物品の受取人の携帯端末903に送信され、第4物品が第2受取場所に到着したことを知らせる到着通知が第4物品の受取人の携帯端末904に送信される。
その後、移動制御部540は、第1移動体100を第2受取場所に滞在させる滞在制御を実行し(ステップS08)、選択部550は、第2受取場所に第1移動体100しか滞在しておらず、他の移動体である第2移動体200が滞在していないと判別する(ステップS09;No)。その後、ステップS01から上記処理が繰り返される。
その後、システム時刻が「10:50」となると、第2移動体200の第3受取場所への移動開始時刻「10:50」が到来したと判別されて(ステップS01;Yes)、ステップS02及びS03の処理が実行される。
その後、ステップS01から上記処理が繰り返された後、ステップS01及びS04が順に実行されることで、第3受取場所に到着した第2移動体200から到着報告が受信されたと判別され(ステップS04;Yes)、ステップS05からS09の処理が実行される。これにより、第5物品が第3受取場所に到着したことを知らせる到着通知が第5物品の受取人の携帯端末905に送信される。その後、第3受取場所に第2移動体200しか滞在していないと判別されて(ステップS09;No)、ステップS01から上記処理が繰り返される。
本実施例では、第1移動体100の第2受取場所からの退去予定時刻「11:20」までに、第3物品の受取人及び第4物品の受取人が第2受取場所に現れず、第2移動体200の第3受取場所からの退去予定時刻「11:20」までに、第5物品の受取人が第3受取場所に現れた場合を具体例として挙げて以下説明する。
ステップS01、S04、及び、S11の処理が順に実行されることで、第5物品の受取人に対する認証要求が受信されたと判別され(ステップS14;Yes)、ステップS15aからS16の処理が実行される。これにより、第2移動体200に格納されていた第5物品が受取人によって受け取られる。
その後、変更部570は、図17の変更後の予定テーブルにおいて、第2移動体200の識別情報「200」と、第3受取場所の識別情報「P3」と、に対応付けられた第5物品の物品ID「G5」を削除する(ステップS17)。次に、変更部570は、第2移動体200の識別情報「200」と、第3受取場所の識別情報「P3」と、に対して、物品IDが対応付けられていないため、第3受取場所で受け取られる予定の物品を、第2移動体200が格納していないと判別する(ステップS18;No)。
その後、ステップS12及びS13の処理が実行されることで、第2移動体200を第3受取場所から退去させる退去制御が実行された後に、ステップS01から上記処理が繰り返される。
その後、システム時刻が「11:20」となると、ステップS01、S04、及び、S11の処理が順に実行されることで、第1移動体100の第2受取場所からの退去予定時刻「11:20」が到来したと判別された後に(ステップS11;Yes)。ステップS12及びS13の処理が実行される。これによって、第1移動体100は、第2受取場所から退去させられる。
その後、ステップS01で、第1移動体100及び第2移動体200が営業所へ移動を開始する移動開始時刻「11:20」が到来したと判別されて(ステップS01;Yes)、ステップS02及びS03の処理が実行される。これにより、第1移動体100及び第2移動体200を営業所に移動させる移動制御が実行される。第1移動体100のCPU191は、GPSから出力される信号に基づいて、営業所に到着したと判別すると、第1移動体100の識別情報「100」を含み、営業所に帰還したことを知らせる帰還報告を、制御装置500を宛先としてデータ通信回路504aに出力する。その後、制御装置500のデータ通信回路504aは、帰還報告を制御装置500へ送信する。第2移動体200は、第1移動体100と同様に、第2移動体200の識別情報「200」を含む帰還報告を送信する。
その後、ステップS01、S04、S11、S14、及び、S19が順に実行されると、制御装置500の変更部570は、帰還報告がデータ通信回路504aで受信されたと判別して(ステップS19;Yes)、データ通信回路504aから帰還報告を取得する(ステップS20a)。その後、変更部570は、取得された到着報告に含まれる第1移動体100の識別情報「100」又は第2移動体200の識別情報「200」が保存されたレコードを、図17の予定テーブルから削除することで、第1移動体100又は第2移動体200が実行した予定を削除する(ステップS20b)。その後、ステップS01から上記処理が繰り返される。尚、帰還報告が受信されなかったと判別された場合(ステップS19;No)、ステップS01から上記処理が繰り返される。
これらの構成によれば、制御装置500は、第1物品及び第2物品が受け取られる第1受取場所に、第1物品を格納した第1移動体100が滞在する間に、第2物品を格納した第2移動体200が第1受取場所に到着すると、第1移動体100と第2移動体200のいずれか一方を、第1物品と第2物品とを格納して第1受取場所に残留する残留移動体として選択し、他方を、第1受取場所から退去する退去移動体として選択する選択部550を備えている。また、制御装置500は、選択された退去移動体が格納している第1物品又は第2物品を、退去移動体から残留移動体に積み替えられる積替物品と特定し、特定された積替物品を残留移動体に格納させる格納制御部560と、残留移動体に積替物品が格納されると、退去移動体を第1受取場所から退去させる移動制御部540と、を備える。このため、制御装置500は、退去移動体として選択された第1移動体100又は第2移動体200を第1受取場所から退去させても、残留移動体として選択された第2移動体200又は第1移動体100が積替物品を格納して第1受取場所に滞在し続けるので、積替物品を第1受取場所で受け取らせることができる。よって、制御装置500は、積替物品を第1受取場所で受け取らせるために第1移動体100及び第2移動体によって占拠される第1受取場所の領域面積を軽減できるので、第1受取場所の使用効率の低下を抑制できる。
本実施例において、受取場所の使用効率は、受取場所を利用する人が使用できる領域面積を、受取場所の面積で除算することで算出されると説明するが、これに限定される訳ではない。また、受取場所を利用する人が使用できる領域面積は、例えば、第1移動体100及び第2移動体200を含む物が置かれていない領域面積を含む。
また、これらの構成によれば、制御装置500の取得部510は、図9に示した予定テーブルにおいて、第1移動体100を識別する識別情報「100」と、第1受取場所を第1移動体100が退去する予定の時刻である退去予定時刻「09:50」を表す情報と、を対応付けて取得する。また、取得部510は、第2移動体200を識別する識別情報「200」と、第1受取場所を第2移動体200が退去する予定の時刻である退去予定時刻「10:00」と、を対応付けて取得する。さらに、制御装置500の選択部550は、第1移動体100の識別情報「100」と対応付けられた第1受取場所の退去予定時刻「09:50」が、第2移動体200の識別情報「200」と対応付けられた第1受取場所の退去予定時刻「10:00」よりも早いと判別すると、第1移動体100を退去移動体として選択し、かつ、第2移動体200を残留移動体として選択する。このため、制御装置500は、第1移動体100が格納していた第1物品を、第1移動体100の退去予定時刻「09:50」よりも遅い第2移動体200の退去予定時刻「10:00」まで第1受取場所に留めておくことができる。すなわち、制御装置500は、第1移動体100の稼働効率の低下を抑制しながら、第1物品の受取人が、第1物品を第1受取場所で受け取ることができる時間を延長できる。
これらの構成によれば、制御装置500の移動制御部540は、第1移動体100が第1受取場所に到着すると、第1移動体100を第1受取場所に滞在させ、かつ、第2移動体200が第1受取場所に到着すると、第2移動体200を第1受取場所に滞在させる。また、制御装置500の移動制御部540は、第2移動体200が残留移動体として選択され、退去移動体として選択された第1移動体100に格納された第1物品が積替物品と特定され、かつ、当該積替物品が第2移動体200に格納されると、図9の予定テーブルから、第1移動体100の識別情報「100」に対応付けて取得された第1受取場所の退去予定時刻「09:50」よりも早い時刻「09:40」に、第1移動体100に第1受取場所を退去させる。このため、制御装置500は、第1物品が受取人によって受け取られていなくとも、変更前の退去予定時刻「09:50」よりも早い時刻に第1移動体100を第1受取場所から退去させることができる。
これらの構成によれば、制御装置500の通知部580は、第2移動体200が残留移動体として選択され、かつ、退去移動体として選択された第1移動体100から第2移動体200に、積替物品と特定された第1物品が格納されると、第1物品の受取期間が終了する時刻「09:50」が、第2移動体200の識別情報「200」の第1受取場所からの退去予定時刻「10:00」まで延長されたことを知らせる通知を出力する。このため、第1物品の受取人が当該通知を確認すれば、延長前の時刻「09:50」を経過したとしても、延長後の時刻「10:00」を経過していなければ、第1受取場所で第1物品を受け取ることができることを知れる。このため、制御装置500は、ユーザの利便性を向上させることができるだけでなく、第1物品が受け取られる可能性を向上できるので、例えば、第1物品を再配達する可能性を低下させることができ、配達効率を向上できる。
本実施例において、配達効率は、第1移動体100と第2移動体200とから受け取られた物品の総数を、第1移動体100が営業所を出発してから営業所に帰還するまでの総配達時間と、第2移動体200が営業所を出発してから営業所に帰還するまでの総配達時間と、の和で除算することで算出されると説明するが、これに限定される訳ではない。
これらの構成によれば、第1移動体100は、第3物品をさらに格納して第1受取場所に到着し、第2移動体200は、第4物品をさらに格納して第1受取場所に到着する。また、制御装置500の取得部510は、図9の予定テーブルから、第1移動体100の識別情報「100」と、第3物品及び第4物品が受け取られる第2受取場所を識別する識別情報「P2」と、第1移動体100の第2受取場所への到着予定時刻「10:20」と、第1移動体100の第2受取場所からの退去予定時刻「11:20」と、を対応付けてさらに取得する。さらに、制御装置500の取得部510は、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、第2移動体200の第2受取場所への到着予定時刻「10:20」と、第2移動体200の第2受取場所からの退去予定時刻「10:50」と、を対応付けてさらに取得する。制御装置500の格納制御部560は、第1移動体100の識別情報「100」と第2受取場所の識別情報「P2」とに対応付けられた到着予定時刻「10:20」から退去予定時刻「11:20」までの期間である、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の識別情報「200」と第2受取場所の識別情報「P2」とに対応付けられた到着予定時刻「10:20」から退去予定時刻「10:50」までの期間である、第2移動体200の第2受取場所に対する滞在予定期間を包含する場合に、第2移動体200に格納されている第4物品を積替物品と特定し、特定された積替物品を、第1受取場所で、第1移動体100へ格納させる。また、制御装置500の移動制御部540は、第3物品が格納された第1移動体100へ積替物品である第4物品が格納された後に、第3物品及び第4物品が受け取られる第2受取場所へ第1移動体100を移動させる。このため、第1移動体100及び第2移動体200の配達効率及び稼働効率を向上できる。
<実施例の変形例1>
本実施例では、制御装置500の予定生成部530は、図10に示したように、第1移動体100が第1受取場所から退去予定時刻「09:50」に退去した後に、第2移動体200が第1受取場所から退去予定時刻「10:00」に退去する予定を生成すると説明したが、これに限定される訳では無い。
また、本実施例では、予定生成部530は、第1移動体100と第2移動体200とが第2受取場所へ到着予定時刻「10:20」に到着し、第2移動体200が第2受取場所から退去予定時刻「10:50」に退去した後に、第1移動体100が第2受取場所から退去予定時刻「11:20」に退去する予定を生成すると説明した。つまり、本実施例では、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間を包含していると説明した。しかし、これらに限定される訳ではない。
本変形例に係る制御装置500の予定生成部530は、図19に示すような、第2移動体200が第1受取場所から退去予定時刻「09:50」に退去した後に、第1移動体100が第1受取場所から退去予定時刻「10:00」に退去する予定を生成する。
また、本変形例に係る予定生成部530は、第1移動体100と第2移動体200とが第2受取場所へ到着予定時刻「10:20」に到着し、第1移動体100が第2受取場所から退去予定時刻「10:50」に退去した後に、第2移動体200が第2受取場所から退去予定時刻「11:20」に退去する予定を生成する。つまり、本変形例では、第2移動体200の第2受取場所に対する滞在予定期間が、第1移動体100の第2受取場所に対する滞在予定期間を包含している。
このため、本変形例に係る不図示の予定テーブルには、第1移動体100を識別する識別情報「100」と、第1受取場所を識別する識別情報「P1」と、第1移動体100が第1受取場所を退去する予定の時刻である退去予定時刻「10:00」を表す情報と、が対応付けられて保存されている。また、不図示の予定テーブルには、第2移動体200を識別する識別情報「200」と、第1受取場所を識別する識別情報「P1」と、第2移動体200が第1受取場所を退去する予定の時刻である退去予定時刻「09:50」を表す情報と、が対応付けられて保存されている。
また、不図示の予定テーブルには、第1移動体100の識別情報「100」と、第3物品及び第4物品が受け取られる第2受取場所を識別する識別情報「P2」と、第1移動体100の第2受取場所への到着予定時刻「10:20」と、第1移動体100の第2受取場所からの退去予定時刻「10:50」と、が対応付けられて保存されている。また、不図示の予定テーブルには、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、第2移動体200の第2受取場所への到着予定時刻「10:20」と、前記第2移動体の前記第2受取場所からの退去予定時刻「11:20」と、が対応付けられて保存されている。
このため、本変形例に係る制御装置500の取得部510は、図15に示した選択処理において、不図示の予定テーブルから、第1移動体100を識別する識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた退去予定時刻「10:00」を表す情報を取得する(ステップS51)。また、取得部510は、不図示の予定テーブルから、識別情報「200」と、識別情報「P1」と、に対応付けられた退去予定時刻「09:50」を表す情報を取得する(ステップS52)。
その後、選択部550は、第1受取場所からの第1移動体100の退去予定時刻「10:00」が、第1受取場所からの第2移動体200の退去予定時刻「09:50」よりも早くないと判別する(ステップS53;No)。次に、選択部550は、第1移動体100を第1受取場所に残留する残留移動体として選択し(ステップS57)、第2移動体200を第1受取場所から退去する残留移動体として選択する(ステップS58)。
その後、格納制御部560は、退去移動体として選択された第2移動体200に格納されている第2物品を、退去移動体から残留移動体へ積み替えられる積替物品と特定する(ステップS59)。その後、変更部570は、図11に示した格納ボックステーブルにおいて、積替物品であると特定された第2物品の物品ID「G2」と対応付けられた積替フラグ「false」を、積替物品であることを表す値「TRUE」のフラグに変更した後に、選択処理の実行を終了する。
その後、本変形例に係る格納制御部560は、図16の積替物品特定処理において、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間を包含していないと判別する(ステップS66;No)。次に、格納制御部560は、第2移動体200の当該滞在予定期間が、第1移動体100の当該滞在予定期間を包含していると判別する(ステップS68;Yes)。
その後、格納制御部560は、第2受取場所で第1移動体100から受け取られる予定の第3物品を積替物品と特定する(ステップS69)。次に、格納制御部560は、未注目の共通の受取場所が無くなるまで、ステップS62から上記処理を繰り返した後に、積替物品特定処理の実行を終了する。
次に、本変形例に係る制御装置500の格納制御部560は、図14のステップS38で、退去移動体として選択された第2移動体200に格納された積替物品である第2物品を、残留移動体として選択された第1移動体100に格納させる格納制御を行う。次に、本変形例に係る制御装置500の変更部570は、ステップS40で、不図示の予定テーブルにおいて、第2移動体200の識別情報「200」に対応付けて記憶された退去予定時刻「09:50」を、変更前よりも早い時刻に変更する。その後、本変形例に係る制御装置500の通知部580は、ステップS41で、第2物品の受取期間が終了する時刻「09:50」が、第1移動体100の第1受取場所からの退去予定時刻「10:00」まで延長されたことを知らせる延長通知を出力する。
その後、格納制御部560は、ステップS46で、残留移動体として選択された第1移動体100に格納されている積替物品である第3物品を、第1受取場所で、退去移動体として選択された第2移動体200へ格納させる格納制御を行う。次に、本変形例に係る制御装置500の変更部570は、ステップS48で、不図示の予定テーブルにおいて、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、に対応付けられた第4物品の物品ID「G4」を存置したまま、第3物品の物品ID「G3」を、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、に対応付けて保存する。
さらに、変更部570は、第1移動体100の識別情報「100」と、第2受取場所の識別情報「P2」と、に対応付けられた第3物品の物品ID「G3」を削除する。さらに、変更部570は、不図示の予定テーブルにおいて、第1移動体100の識別情報「100」と、第2受取場所の識別情報「P2」と、未出発の状態を表す状態情報と、に対応付けられた物品IDが無くなったため、第1移動体100の第2受取場所に関する予定が不要になったと判別する。このため、変更部570は、第1移動体100の識別情報「100」と、第2受取場所の識別情報「P2」と、が保存されたレコードを削除することで、第1移動体100の第2受取場所に関する予定を削除する。
その後、本変形例に係る制御装置500の通知部580は、ステップS49で、第3物品の受取期間が終了する時刻「10:50」が、第2移動体200の第2受取場所からの退去予定時刻「11:20」まで延長されたことを知らせる延長通知を出力する。
次に、本変形例に係る制御装置500の移動制御部540は、図12のステップS11で、変更された第2移動体200の退去予定時刻が到来したと判別すると、第2移動体200に第1受取場所を退去させる退去制御を実行する。
その後、移動制御部540は、ステップS01で、第2移動体200の移動開始時刻「10:10」が到来したと判別すると、第2移動体200を第2受取場所へ移動させる移動制御を実行する。しかし、第1移動体100の第2受取場所への移動開始時刻「10:10」が保存されたレコードは、不図示の予定テーブルから削除されているため、移動制御部540は、第1移動体100を第2受取場所へ移動させる移動制御を実行しない。
<実施例の変形例2>
本実施例及び本実施例の変形例1では、制御装置500の予定生成部530は、図10及び図19に示したような、第1移動体100の第2受取場所への到着予定時刻と、第2移動体200の第2受取場所への到着予定時刻と、が同じであり、かつ、第1移動体100の第2受取場所からの退去予定時刻と、第2移動体200の第2受取場所からの退去予定時刻と、が異なる予定を生成すると説明した。
しかし、これに限定される訳ではなく、予定生成部530は、第1移動体100の第2移動体200への到着予定時刻と、第2移動体200の第2移動体200への到着予定時刻と、が異なるが、第1移動体100の第2受取場所からの退去予定時刻と、第2移動体200の第2受取場所からの退去予定時刻と、が同じ予定を生成しても良い。
第1移動体100の第2移動体200への到着予定時刻が、第2移動体200の第2移動体200への到着予定時刻よりも早ければ、格納制御部560は、図16の積替物品特定処理において、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間を包含していると判別する(ステップS66;Yes)。その後、格納制御部560は、第2受取場所で第2移動体200から受け取られる予定の第4物品を積替物品と特定する(ステップS67)。
これに対して、第1移動体100の第2移動体200への到着予定時刻が、第2移動体200の第2移動体200への到着予定時刻よりも遅ければ、格納制御部560は、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間を包含していないと判別する(ステップS66;No)。次に、格納制御部560は、第2移動体200の第2受取場所に対する滞在予定期間が、第1移動体100の第2受取場所に対する滞在予定期間を包含していると判別する(ステップS68;Yes)。その後、格納制御部560は、第2受取場所で第1移動体100から受け取られる予定の第3物品を積替物品と特定する(ステップS69)。
<実施例の変形例3>
本実施例では、制御装置500の予定生成部530は、図10に示したような、第1移動体100が第1受取場所から退去予定時刻「09:50」に退去した後に、第2移動体200が第1受取場所から退去予定時刻「10:00」に退去する予定を生成すると説明したが、これに限定される訳ではない。
また、本実施例では、制御装置500の予定生成部530は、第1移動体100と第2移動体200とが第2受取場所へ到着予定時刻「10:20」に到着し、第2移動体200が第2受取場所から退去予定時刻「10:50」に退去した後に、第1移動体100が第2受取場所から退去予定時刻「11:20」に退去する予定を生成すると説明した。しかし、これらに限定される訳ではない。
本変形例に係る制御装置500の予定生成部530は、図20に示すような、第1移動体100と第2移動体200とが第1受取場所から退去予定時刻「10:00」に退去する予定を生成する。
また、本変形例に係る制御装置500の予定生成部530は、第1移動体100と第2移動体200とが第2受取場所へ到着予定時刻「10:20」に到着し、第1移動体100と第2移動体200とが第2受取場所から退去予定時刻「11:20」に退去する予定を生成する。
このため、本変形例に係る制御装置500の選択部550は、図15に示した選択処理において、第1受取場所からの第1移動体100の退去予定時刻「10:00」が、第1受取場所からの第2移動体200の退去予定時刻「10:00」よりも早くないと判別する(ステップS53;No)。その後、選択部550は、ステップS57からS59を実行することで、第1移動体100を残留移動体として選択し、第2移動体200を残留移動体として選択する。
しかし、これに限定される訳ではなく、選択部550は、第1受取場所からの第1移動体100の退去予定時刻「10:00」が、第1受取場所からの第2移動体200の退去予定時刻「10:00」と同じであると判別すると、第2移動体200を残留移動体として選択し、第1移動体100を残留移動体として選択しても良い。
また、本変形例に係る格納制御部560は、図16の積替物品特定処理において、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間と一致するため、第1移動体100の当該滞在予定期間は、第2移動体200の当該滞在予定期間を包含していると判別する(ステップS66;Yes)。次に、格納制御部560は、第2受取場所で第2移動体200から受け取られる予定の第4物品を積替物品と特定する(ステップS67)。
しかし、これに限定される訳ではなく、格納制御部560は、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間と一致すると判別すると、第2受取場所で第1移動体100から受け取られる予定の第3物品を積替物品と特定しても良い。
さらに、これらに限定される訳ではなく、制御装置500の選択部550は、第1受取場所からの第1移動体100の退去予定時刻「10:00」が、第1受取場所からの第2移動体200の退去予定時刻「10:50」と同じであると判別すると、予め定められた規則に従って、又は、乱数に基づいて、第1移動体100及び第2移動体200の内で、一方を残留移動体として選択し、他方を残留移動体として選択しても良い。
予め定められた規則は、例えば、第1移動体100及び第2移動体200の内で、第1受取場所への到着予定時刻がより遅い移動体を残留移動体として選択し、到着予定時刻がより早い移動体を退去移動体と選択する規則であっても良い。このような規則に従って制御装置500が選択をするのは、到着予定時刻がより遅い移動体は、到着予定時刻がより早い移動体よりも、移動のために発熱したモータがより冷えていないからである。この構成によれば、制御装置500は、連続した又は間隔がより短い駆動によって第1移動体100及び第2移動体200が備える不図示のモータが故障することを防止できる。
また、制御装置500の格納制御部560は、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間と一致すると判別すると、予め定められた規則に従って、又は、乱数に基づいて、第1移動体100及び第2移動体200の内で、一方を積替元として選択し、他方を積替先として選択しても良い。つまり、格納制御部560は、積替元として選択された移動体から第2受取場所で受け取られる予定の物品を積替物品と特定しても良い。
<実施例の変形例4>
本実施例では、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間を包含していると説明した。また、本実施例の変形例1では、第2移動体200の第2受取場所に対する滞在予定期間が、第1移動体100の第2受取場所に対する滞在予定期間を包含していると説明した。
しかし、本実施例の変形例では、制御装置500の予定生成部530は、例えば、第1移動体100が第2受取場所へ到着予定時刻「09:50」に到着した後に、第2受取場所から退去予定時刻「10:50」に退去する予定を生成する。また、予定生成部530は、第2移動体200が第2受取場所へ到着予定時刻「10:20」に到着した後に、第2受取場所から退去予定時刻「11:20」に退去する予定を生成する。つまり、本実施例では、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間を包含しておらず、かつ、第2移動体200の当該滞在予定期間が第1移動体100の当該滞在予定期間を包含していない。
このため、本変形例に係る格納制御部560は、図16の積替物品特定処理において、第1移動体100の第2受取場所に対する滞在予定期間が、第2移動体200の第2受取場所に対する滞在予定期間を包含していないと判別する(ステップS66;No)。次に、格納制御部560は、第2移動体200の当該滞在予定期間が、第1移動体100の当該滞在予定期間を包含していないと判別する(ステップS68;No)。その後、格納制御部560は、積替物品を特定することなく、ステップS62から処理を繰り返す。
<実施例の変形例5>
本実施例に係る第1移動体100及び第2移動体200は、第1受取場所を退去してから、第2受取場所又は第3受取場所への移動を開始する移動開始時刻が到来するまでの間、例えば、道路等に停車する、又は、道路等を周回すると説明した。しかし、これに限定される訳ではなく、本変形例に係る第1移動体100及び第2移動体200は、第1受取場所を退去すると、第2受取場所又は第3受取場所への移動を開始する。
このため、本変形例に係る制御装置500の予定生成部530は、不図示の予定生成処理を実行することで、図10に示したような第1移動体100及び第2移動体200の予定を生成した後に、生成された予定を、図21に示すような予定に修正する。このため、予定生成部530は、図9に示した予定テーブルにおいて、第1移動体100の識別情報「100」と、第2受取場所の識別情報「P2」と、に対応付けられた移動開始時刻「10:10」を、識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた退去予定時刻「09:50」と同じ時刻に修正する。予定生成部530がこのような修正を行うのは、第1移動体100を第1受取場所から退去させると共に、第2受取場所への移動を開始させるためである。
また、予定生成部530は、図9の予定テーブルにおいて、識別情報「100」と、識別情報「P2」と、に対応付けられた到着予定時刻「10:20」から移動開始時刻「10:10」を減算することで、第1移動体100の第1受取場所から第2受取場所までの移動予定時間「00:10」を算出する。次に、予定生成部530は、識別情報「100」と、識別情報「P2」と、に対応付けられた到着予定時刻「10:20」を、修正後の移動開始時刻「09:50」よりも移動予定時間「00:10」だけ遅い時刻「10:00」に修正する。
その後、予定生成部530は、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、に対応付けられた移動開始時刻「10:10」を、識別情報「200」と第1受取場所の識別情報「P1」と、に対応付けられた退去予定時刻「10:00」と同じ時刻に修正し、かつ、到着予定時刻「10:20」を「10:10」に修正する。
次に、本変形例に係る制御装置500の変更部570は、図14に示した積替制御処理のステップS40で、図21に示した予定を、図22に示すような予定に変更する。このため、変更部570は、退去移動体として選択された第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた退去予定時刻「09:50」を、本実施例と同様に、システム時刻「09:40」に変更する。その後、変更部570は、第1移動体100の識別情報「100」と、第2受取場所の識別情報「P2」と、に対応付けられた移動開始時刻「09:50」を、変更後の退去予定時刻「09:40」と同じ時刻に変更する。
また、本変形例に係る変更部570は、ステップS48で、本実施例と同様に、物品の積み替えにより、第2移動体200の第2受取場所に関する予定が不要になったと判別し、第2移動体200の識別情報「200」と、第2受取場所の識別情報「P2」と、が保存されたレコードを、図9の予定テーブルから削除する。その後、変更部570は、第2移動体200の識別情報「200」と、第3受取場所の識別情報「P3」と、に対応付けられた移動開始時刻「10:50」を、第1受取場所からの退去予定時刻「10:00」と同じ時刻に変更し、第3受取場所への到着予定時刻「11:00」を「10:10」に変更する。
これらの構成によれば、制御装置500が備える変更部570は、第1移動体100が退去移動体として選択された場合に、第1移動体100の識別情報「100」と、第1受取場所の識別情報「P1」と、に対応付けられた第1受取場所からの退去予定時刻「09:50」を、変更前よりも早い時刻「09:40」へ変更する。また、変更部570は、第1移動体100の識別情報「100」と、第2受取場所の識別情報「P2」と、に対応付けられた第2受取場所への移動開始予定時刻「09:50」を、変更後の第1受取場所からの退去予定時刻「09:40」と同じ時刻に変更し、第2受取場所への到着予定時刻「10:00」を、変更前よりも早い時刻「09:50」へ変更する。これらのため、制御装置500は、第2受取場所で受け取られる第3物品及び第4物品を、変更前の到着予定時刻「10:00」よりも早い時刻「09:50」から退去予定時刻「12:20」まで第2受取場所に留めておくことができるので、受取人が第3物品又は第4物品を第2受取場所で受け取ることができる時間を延長できる。
<実施例の変形例6>
本実施例では、退去移動体として選択された第1移動体100に格納されていた物品であって、第1受取場所で受け取られる予定の第1物品のみが、残留移動体として選択された第2移動体200に積み替えられると説明したが、これに限定される訳ではない。
また、本実施例では、第2移動体200に格納されていた物品であって、第2受取場所で受け取られる予定の第4物品のみが、第1移動体100に積み替えられると説明したが、これに限定される訳ではない。
例えば、第1受取場所で受け取られる予定の物品Aと物品Bとが、退去移動体として選択された第1移動体100に格納されていれば、物品Aと物品Bとが、残留移動体として選択された第2移動体200に積み替えられても良い。
また例えば、第2受取場所で受け取られる予定の物品Cと物品Dとが、第2移動体200に格納されていれば、物品Cと物品Dとが、第1受取場所で、第1移動体100に積み替えられても良い。
この場合、図15のステップS56において、退去移動体として選択された第1移動体100に格納されている物品の内で、第1受取場所で受け取られる予定の物品Aと物品Bとが積替物品と特定されれば良い。
またこの場合、図16のステップS67において、第2移動体200に格納されている物品の内で、注目受取場所である第2受取場所で受け取られる予定の物品Cと物品Dとが積替物品と特定されれば良い。
その後、図14のステップS35からS41の処理が繰り返されることで、物品Aが格納された格納ボックス160の受止可能ボックス260に空きがあれば、物品Aが第1移動体100から第2移動体200に積み替えられ、物品Bが格納された格納ボックス160の受止可能ボックス260に空きがあれば、物品Bが積み替えられる。
また、図14のステップS43からS49の処理が繰り返されることで、物品Cが格納された格納ボックス260の受止可能ボックス160に空きがあれば、物品Cが第2移動体200から第1移動体100に積み替えられ、物品Dが格納された格納ボックス260の受止可能ボックス160に空きがあれば、物品Dが積み替えられる。
<実施例の変形例7>
本実施例では、配達システム1は、第1移動体100及び第2移動体200という2台の移動体と、2台の移動体を制御する制御装置500と、を備えると説明したが、これに限定される訳ではない。
本変形例に係る配達システム1は、k台(但し、kは3以上の整数)の移動体と、制御装置500と、を備える。制御装置500は、第1受取場所にl台(但し、lは3以上かつk以下の整数)の移動体が滞在する場合、以下の手順に従って、図15に示した積替制御処理をl−1回繰り返し実行する。
先ず、制御装置500は、第1受取場所に1番目に到着した移動体を第1移動体100とし、かつ、第1受取場所に2番目に到着した移動体を第2移動体として、1回目の積替制御処理を実行する。
次に、制御装置500は、積替制御処理を実行した回数を表す変数mの値を値「1」で初期化する。その後、制御装置500は、m回目の積替制御処理で残留移動体と選択された移動体を第1移動体100とし、かつ、第1受取場所に2+m番目に到着した移動体を第2移動体として、m+1番目の積替制御処理を実行する。
その後、制御装置500は、変数mの値を値「1」増加させた後、変数mの値がl−1以上であるか否かを判別する。このとき、制御装置500は、変数mの値がl−1よりも少ないと判別すると、第1受取場所に滞在するl台の移動体の全てについて積替制御処理が実行されていないと判別して、m+1番目の積替制御処理を実行する処理から上記処理を繰り返す。
これに対して、制御装置500は、変数mの値がl−1以上であると判別すると、第1受取場所に滞在するl台の移動体の全てについて積替制御処理が実行されたと判別して、積替制御処理の繰り返しの実行を終了する。
<実施例の変形例8>
本実施例に係る第1移動体100の格納ボックス160は、物品の積み替えに用いられる、図4に示したような伸縮機構165と、伸縮機構165の伸張により格納ボックス160の外側へ向かってスライドさせられるスライド板164と、を備えると説明した。
しかし、本変形例に係る第1移動体100は、物品の積み替えに用いられる、図23に示すようなロボットアーム140を、ロッカー装置170の上面にさらに備える。本変形例に係る第2移動体200は、ロボットアームを備えていない。
ロボットアーム140は、垂直多関節ロボットであり、制御装置190から出力される信号に従って不図示のモータを駆動させる駆動回路と、モータによって平行に開閉させられる二爪式のグリッパー141と、を備える。また、ロボットアーム140は、グリッパー141に搭載され、光軸をグリッパー141の爪先に向けられた撮像装置150と、モータによって可動させられる複数の関節構造及び関節構造を中心として可動する複数のアーム142と、を備える。グリッパー141は、二爪式に限定される訳で無く、三本以上の爪を有しても良いし、二本の爪の代わりに複数本の指を有しても良い。
ロボットアーム140が備える撮像装置150は、デジタル式のステレオカメラであり、制御装置190から出力される信号に応じて撮像を行い、互いに視差を有する2つの画像を制御装置190へ出力する。視差に基づいて、グリッパー141の摘持対象物とされる物品の3次元空間における位置座標及びサイズ等を、制御装置190が特定するためである。
図5に示した制御装置190の入出力ポート198は、不図示の通信ケーブルを介して、ロボットアーム140が備える不図示の駆動回路及び撮像装置150に接続されている。入出力ポート198は、CPU191から出力された制御信号をロボットアーム140の駆動回路又は撮像装置150へ出力し、撮像装置150から出力された信号をCPU191へ入力する。
本変形例では、本実施例と同様に、第1移動体100の左1行1列のボックス160から、第2移動体200の右1行1列のボックス260へ、第1物品を積み替えることを命じる積替命令が、制御装置500から送信された場合を例に挙げて説明する。
第1移動体100は、積替命令を受信すると、積替命令に従って、左1行1列の格納ボックス160と、右1行1列の格納ボックス260と、が正対するように、位置及び進行方向を変更する。第2移動体200も同様に位置及び進行方向を変更する。
次に、第1移動体100のCPU191は、左1行1列の格納ボックス160の扉162を解錠させる制御信号と、扉162の状態を外側開放状態とする制御信号と、を、不図示のモータに接続された駆動回路199へ出力する。第2移動体200は、同様に、右1行1列のボックス260の扉262を解錠し、扉262の状態を外側開放状態とする。
その後、第1移動体100のCPU191は、左1行1列のボックス160の開口部を撮像可能な方向へ撮像装置150の光軸を向けさせる制御信号を、ロボットアーム140に接続された入出力ポート198へ出力する。その後、CPU191は、撮像を命じる信号を、入出力ポート198を介して撮像装置150へ出力し、撮像装置150から出力された信号を、入出力ポート198を介して入力される。CPU191は、入力された信号に基づいて2枚の画像を取得し、取得された2枚の画像の視差に基づいて、左1行1列のボックス160の開口部、及び、当該開口部よりもボックス160の内側に格納された第1物品の3次元空間における位置座標及びサイズを算出する。同様に、第1移動体100のCPU191は、右1行1列のボックス260の開口部の3次元空間における位置座標及びサイズを算出する。本実施例では、算出される位置座標は、ロボットアーム140を基準とした相対座標であると説明するが、これに限定される訳ではない。
次に、CPU191は、左1行1列のボックス160の開口部、第1物品、及び、右1行1列のボックス260の開口部の位置座標及びサイズに基づいて、左1行1列のボックス160に格納された第1物品を掴んで、右1行1列のボックス260に格納させるための制御信号を生成する。その後、CPU191は、生成した制御信号を、入出力ポート198を介してロボットアーム140へ出力し、ロボットアーム140は、制御信号に従って動作することで、第1物品を左1行1列のボックス160から右1行1列のボックス260に積み替える。
<実施例の変形例9>
本実施例の変形例8に係る第1移動体100は、物品の積み替えに用いられる、図23に示すようなロボットアーム140を、ロッカー装置170の上面に備え、本実施例の変形例8に係る第2移動体200は、ロボットアームを備えていないと説明した。
しかし、本変形例に係る第2移動体200は、第1移動体100と同様に、不図示のロボットアームを、ロッカー装置270の上面に備えている。このため、第1移動体100と第2移動体200とが制御装置500から積替命令を受信すると、第1移動体100のCPU191は、第1移動体100及び第2移動体200の内で、積替物品を格納している積替元の移動体が、積替元のロボットアームを用いて、積替物品を積替元から取り出し、積替先の移動体に格納すると決定する。第2移動体200の不図示のCPUも同様に決定する。
しかし、これに限定される訳ではなく、第1移動体100のCPU191は、第1移動体100及び第2移動体200の内で、積替先の移動体が、積替先のロボットアームを用いて、積替物品を積替元から取り出し、積替先の移動体に格納すると決定しても良い。この場合、第2移動体200の不図示のCPUも同様に決定する。
さらに、これに限定される訳ではなく、第1移動体100のCPU191と、第2移動体200の不図示のCPU191と、は、物品の積み替えのために、第1移動体100のロボットアーム140及び第2移動体200のロボットアームの内のいずれを使用するかを、乱数に基づいて決定しても良い。
この場合、第1移動体100の第1データ通信回路194aが積替命令を受信すると、第1移動体100のCPU191は、乱数を生成し、生成した乱数を、第2移動体200を宛先として第2データ通信回路194bへ出力する。第2移動体200は、第1移動体100と同様に、乱数を生成し、生成された乱数を第1移動体に送信する。その後、第1移動体100の第2データ通信回路194bが、第2移動体200から乱数を受信すると、第1移動体100のCPU191は、自機が生成した乱数が、受信された乱数よりも大きいか否か判別する。
このとき、第1移動体100のCPU191は、自機が生成した乱数が、受信された乱数よりも大きいと判別すると、自機が親機となり、物品の積み替えのために、自機のロボットアーム140を使用すると決定する。第2移動体200も同様に、自機が生成した乱数が、受信された乱数よりも小さいと判別すると、自機が子機となり、物品の積み替えのために、自機のロボットアームを使用しないと決定する。
これに対して、第1移動体100のCPU191は、自機が生成した乱数が、受信された乱数よりも小さいと判別すると、自機が子機となり、自機のロボットアーム140を使用しないと決定する。第2移動体200も同様に決定する。
また、第1移動体100のCPU191は、自機が生成した乱数と、受信された乱数とが等しい判別すると、乱数を生成する処理から上記処理を繰り返す。
<実施例の変形例10>
実施例の変形例8では、配達システム1は、走行体であり、かつ、図23に示すようなロボットアーム140を備えた第1移動体100と、走行体であり、かつ、ロボットアームを備えていない第2移動体200と、を備えると説明した。
しかし、これに限定される訳ではなく、本変形例に係る配達システム1は、走行体であり、かつ、ロボットアーム140を備えた第1移動体100と、図24に示すような飛行体である第2移動体300と、を備える。
本変形例に係る第2移動体300は、無人航空機であり、ロッカー装置370が下面に固定された制御装置310を備えている。ロッカー装置370の前面には、2行1列の行列を形成して配置された格納ボックス360を備えている。格納ボックス360の構成及び機能は、図2に示した格納ボックス160の構成及び機能と同様である。
第2移動体300は、制御装置310の前面から右前方及び左前方、並びに、制御装置310の後面から左後方及び右後方にそれぞれ突出したプロペラアーム321及び322、並びに、323及び324を備える。さらに、第2移動体300は、プロペラアーム321から324の先端にそれぞれ設置されたプロペラ331から334、及び、制御装置310の制御に従ってプロペラ331から334を回転させる不図示のモータと、を備える。
さらに、第2移動体300は、制御装置310の下面から下方に突出しており、制御装置310を支持する支持脚343を備えている。支持脚343の鉛直方向の長さは、ロッカー装置370の鉛直方向の長さよりも予め定められた長さだけ長く設計されている。支持脚343がこのように設定されているのは、第2移動体300が受取場所に着陸する際に、第2移動体300のロッカー装置370が受取場所の表面に衝突することを防止するためである。
またさらに、第2移動体300は、制御装置310の上面に設けられ、第2移動体300の前方に光軸が向けられた撮像装置351を備える。撮像装置351は、デジタル式のステレオカメラであり、制御装置310から出力される信号に応じて撮像を行い、撮像により得られた互いに視差を有する2枚の画像を制御装置310へ出力する。
制御装置310は、第1移動体100の制御装置190が備えるCPU191、RAM192、ROM193a、フラッシュメモリ193b、第1データ通信回路194a、第2データ通信回路194b、タッチスクリーン195、及び、GPS回路196の構成及び機能と同様の構成及び機能を有する不図示のCPU、RAM、ROM、フラッシュメモリ、第1データ通信回路、第2データ通信回路、タッチスクリーン、及び、GPS回路を備える。本変形例において、制御装置310は、1つのCPUを備えるとして説明するが、これに限定される訳ではなく、複数のCPUを備えても良い。
また、制御装置310は、撮像装置351と接続された不図示のケーブルに接続されており、不図示のCPUが出力する信号を撮像装置351に出力し、撮像装置351が出力する画像をCPUへ入力する不図示の入出力ポートを備えている。
さらに、制御装置310は、プロペラ331から334を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている不図示の駆動回路を備えている。駆動回路は、CPUが出力する信号に従って、プロペラ331から334を回転させる不図示のモータを駆動させる。
第2移動体300の不図示の第1データ通信回路が、受取場所への移動命令を制御装置500から受信すると、受取場所までの飛行経路を決定し、決定された飛行経路を順行するための制御信号を、プロペラ331から334を回転させる不図示のモータを駆動させる不図示の駆動回路へ出力する。
その後、第2移動体300が受取場所へ到着すると、第2移動体300のCPUは、第2移動体300を受取場所に着陸させるようにプロペラ331から334を制御する制御信号を生成して不図示の駆動回路へ出力する。このようにして、第2移動体300は、受取場所へ移動し、受取場所に着陸して滞在する。
第2移動体300が滞在する受取場所は、飛行体が離着陸を行う場所であるポートを含む。ポートは、エントランス及びロビーに限定される訳ではなく、例えば、ベランダ、屋上、庭、駐車場、公園、校庭、又は、河原であっても良い。
<実施例の変形例11>
実施例の変形例10では、配達システム1は、走行体であり、かつ、図23に示すようなロボットアーム140を備えた第1移動体100と、飛行体であり、かつ、図24に示すような第2移動体300と、を備えると説明したが、これに限定される訳ではない。
配達システム1は、走行体であり、かつ、図23に示したようなロボットアーム140を備えていない第1移動体100と、図24に示したような飛行体であり、かつ、ロッカー装置370の下面に、図23に示したような不図示のロボットアームを備えた第2移動体300と、を備えても良い。
また、これに限定される訳ではなく、配達システム1は、飛行体である不図示の第1移動体と、飛行体であり、かつ、不図示のロボットアームを備えた第2移動体300と、を備えても良い。
<実施例の変形例12>
本実施例では、第1移動体100と第2移動体200とは、図4に示したように、扉162の状態が、外側に倒された外側開放状態である格納ボックス160と、扉262の状態が、内側に倒された内側開放状態である格納ボックス260と、を、扉162の高さHよりも短い距離dだけ離れて正対させた状態で、物品の積み替えを行うと説明した。扉162の状態を外側開放状態としたのは、扉162を、第1移動体100の格納ボックス160と、第2移動体200の格納ボックス260と、に架かる橋とするためである。
しかし、これに限定される訳ではなく、本変形例に係る第1移動体100と第2移動体200とは、図25に示すように、扉162の状態が外側開放状態である格納ボックス160と、扉262の状態が外側開放状態である格納ボックス260と、を、扉162の高さHの2倍よりも短い距離d’だけ離れて正対させた状態で、物品の積み替えを行う。このように、第1移動体100が扉162の状態を外側開放状態とするだけでなく、第2移動体200も扉262の状態を外側開放状態とするため、扉162と扉262とで、格納ボックス160と格納ボックス260とに架かる橋を形成することができる。このため、扉162だけを橋とする本実施例に比べて、第1移動体100と第2移動体200との距離が長くとも物品を積み替えることができる。
<実施例の変形例13>
本実施例では、受取場所は、共同住宅及びオフィスビルのエントランス及びロビー、並びに、一軒家の玄関前を含むとして説明したが、これに限定される訳ではない。受取場所は、学校、病院、役所、裁判所、駅、及び、空港等の公共施設、並びに、百貨店、ホテル、及び、アウトレットモール等の商業施設のエントランス及びロビーを含む。また、受取場所は、一軒家、共同住宅、オフィスビル、公共施設、及び、商業施設の庭及び駐車場であっても良い。さらに、受取場所は、公園、河原、山林、及び、山であっても良い。
<実施例の変形例14>
本実施例では、第1移動体100及び第2移動体200は、図2に示すような車輪111及び112を含む複数の車輪を備えると説明したが、これに限定される訳ではない。第1移動体100及び第2移動体200は、複数の関節を有する二本の脚を備え、二足歩行しても良い。また、第1移動体100及び第2移動体200が備える脚の数は、二本に限定される訳ではなく、三本以上であっても良い。さらに、第1移動体100及び第2移動体200は、例えば、複数の車輪を囲むキャタピラー(登録商標)等の無限軌道をさらに備えても良い。
<実施例の変形例15>
実施例の変形例10では、第2移動体300は、無人航空機であると説明したが、これに限定される訳ではなく、無人飛翔体であっても良い。
また、第1移動体100及び第2移動体200は、走行体である必要はなく、航走体、又は、潜水体であっても良い。
さらに、第1移動体100、並びに、第2移動体200及び300は、必ずしも無人である必要はなく、制御装置500による制御を除き、自律して走行又は飛行する物体であれば、人が乗っていても良い。
<実施例の変形例16>
本実施例に係る制御装置500のCPU501は、図12に示したような移動体制御処理を実行することで、図7に示すような取得部510、移動制御部540、選択部550、格納制御部560、変更部570、及び、通知部580として機能すると説明したが、これに限定される訳ではない。
本変形例に係る制御装置500のCPU501は、図12に示したような移動体制御処理を実行しない。このため、本変形例に係る第1移動体100のCPU191が、図26に示すような移動体制御処理を実行する。これにより、第1移動体100のCPU191は、図27に示すような移動制御部940、選択部950、格納制御部960、変更部970、及び、通知部980として機能する。また、第1移動体100のフラッシュメモリ193bは、情報記憶部990として機能する。第2移動体200の不図示のCPU及びフラッシュメモリも第1移動体100のCPU191及びフラッシュメモリ193bと同様に機能するため、以下、第1移動体100について主に説明する。
第1移動体100の情報記憶部990は、不図示の予定テーブルを予め記憶している。制御装置500のCPU501は、本実施例と同様に、不図示の予定生成処理を実行することで、第1移動体100の予定を生成すると、生成された予定に関する情報を、第1移動体100を宛先としてデータ通信回路504aへ出力する。第1移動体100の第1データ通信回路194aが、第1移動体100の予定に関する情報を受信すると、第1移動体100のCPU191は、第1データ通信回路194aから予定に関する情報を取得し、情報記憶部990が記憶する不図示の予定テーブルに保存する。このため、第1移動体100の情報記憶部990が記憶する予定テーブルには、第1移動体100の予定に関する情報が保存されているが、第2移動体200の予定に関する情報が保存されていない。
第1移動体100の情報記憶部990は、不図示の格納ボックステーブルを予め記憶している。第1移動体100に物品を格納させた従業員は、物品を格納させた格納ボックス160に関する情報を入力させる操作を第1移動体100の入力装置195cに行う。第1移動体100の入力装置195cが当該操作に応じた信号を入力すると、第1移動体100のCPU191は、本実施例で説明した不図示のボックス情報保存処理を実行することで、格納ボックス160に関する情報を格納ボックステーブルに保存する。このため、第1移動体100の情報記憶部990が記憶する格納ボックステーブルには、第1移動体100の格納ボックス160に関する情報が保存されているが、第2移動体200の格納ボックス260に関する情報が保存されていない。
第1移動体100のCPU191は、起動すると、図26に示す移動体制御処理を実行する。移動体制御処理が開始されると、第1移動体100の移動制御部940は、OSから取得したシステム時刻と、第1移動体100の情報記憶部990が記憶する不図示の予定テーブルの移動開始時刻を表す情報と、に基づいて、第1移動体100の第1受取場所への移動開始時刻が到来したか否かを判別する(ステップS71)。
このとき、移動制御部940は、移動開始時刻が到来したと判別すると(ステップS71;Yes)、図12のステップS02及びS03と同様の処理を実行する(ステップS72及びS73)。これにより、移動制御部940は、図13に示した走行制御処理の実行を開始して、第1受取場所まで走行する。その後、ステップS71から上記処理が繰り返される。
移動制御部940は、ステップS71で、移動開始時刻が到来していないと判別した後に(ステップS71;No)、GPS回路196から出力される信号に基づいて、第1移動体100が第1受取場所に到着したと判別すると(ステップS74;Yes)、図12のステップS07及びS08の処理と同様の処理を実行することで(ステップS75及びS76)、第1受取場所での滞在を開始する。
次に、第1移動体100の選択部950は、第1受取場所に、他の移動体である第2移動体200が滞在しているか否かを判別する(ステップS77)。この判定のために、第1移動体100の選択部950は、例えば、撮像装置119、181、及び、182へ撮像を命じる信号を出力した後に、撮像装置119、181、及び、182から出力される画像を取得する。次に、選択部950は、テンプレートマッチングに用いられる第2移動体200のテンプレート画像を、フラッシュメモリ193bから読み出す。その後、選択部950は、取得された画像と、読み出されたテンプレート画像と、に基づいて、テンプレートマッチングを行うことで、テンプレート画像に対応する画像領域を検出する。このとき、選択部950は、テンプレート画像に対応する画像領域が検出されると、第2移動体200が第1受取場所に滞在していると判断する。
このとき、第1移動体100の選択部950は、第1受取場所に、他の移動体である第2移動体200が滞在していないと判別すると(ステップS77;No)、ステップS71から上記処理を繰り返す。これに対して、選択部950は、第1受取場所に、第2移動体200が滞在していると判別すると(ステップS77;Yes)、第2移動体200を認証するために、認証コードの送信を求めるコード送信リクエストを、第2移動体200を宛先として、第2データ通信回路194bへ出力する。
第1移動体100の第2データ通信回路194bがコード送信リクエストを第2移動体200へ送信した後に、予め定められた時間が経過しても、第2データ通信回路194bが認証コードを受信しないと、第1移動体100の選択部950は、第2移動体200の認証が失敗したと判別する(ステップS78a;No)。これに対して、第2データ通信回路194bが、第2移動体200から認証コードを受信すると、選択部950は、フラッシュメモリ193bに予め記憶されている第2移動体200の認証コードを取得する。次に、選択部950は、受信された認証コードと、予め記憶されている認証コードと、が一致しないと判別すると、第2移動体200の認証が失敗したと判別する(ステップS78a;No)。選択部950は、認証が失敗したと判別した場合、認証に失敗したことを知らせる失敗報告を、第2移動体200を宛先として第2データ通信回路194bへ出力する。その後、ステップS71から上記処理が繰り返される。
これに対して、第1移動体100の選択部950は、受信された認証コードと、予め記憶されている認証コードと、が一致すると判別すると、第2移動体200の認証が成功したと判別する(ステップS78a;Yes)。その後、選択部950は、認証に成功したことを知らせる成功報告を、第2移動体200を宛先として第2データ通信回路194bへ出力する。
また、第1移動体100の選択部950は、第2データ通信回路194bが、コード送信リクエストを第2移動体200から受信すると、フラッシュメモリ193bに予め記憶されている第1移動体100の認証コードを取得し、取得された認証コードを、第2移動体200を宛先として、第2データ通信回路194bへ出力する。その後、第1移動体100の第2データ通信回路194bが失敗報告を第2移動体200から受信すると、認証を失敗したと判別する(ステップS78a;No)。その後、ステップS71から処理が繰り返される。
これに対して、第1移動体100の第2データ通信回路194bが成功報告を第2移動体200から受信すると、第1移動体100の選択部950は、第1移動体100と第2移動体200とが互いに認証を成功させたと判別する(ステップS78a;Yes)。
次に、第1移動体100の選択部950と、第2移動体200の不図示の選択部と、は、実施例の変形例9で説明した乱数を用いる処理で、第1移動体100及び第2移動体200のどちらか一方を後続の積替制御処理を実行する親機に決定し、他方を積替制御処理を実行しない子機に決定する。
このとき、自機が親機に決定されず、第2移動体200が親機に決定されると(ステップS78b;No)、第1移動体100の選択部950は、不図示の予定テーブルから第1移動体100の予定に関する情報を取得し、不図示の格納ボックステーブルから格納ボックス160に関する情報を取得する。その後、選択部950は、取得された情報を、第2移動体200を宛先として、第2データ通信回路194bへ出力する(ステップS79a)。
その後、第1移動体100の第2データ通信回路194bが、積替制御処理を実行した第2移動体200から積替命令を受信すると、第1移動体100のCPU191が、本実施例で説明した処理と同様の処理を実行することで、積替命令に従った積み替えが行われる。また、第1移動体100の第2データ通信回路194bが、積替制御処理の実行によって変更された第1移動体100の予定に関する情報及び格納ボックス160に関する情報を、第2移動体200から受信すると、受信された情報で、不図示の予定テーブル及び不図示の格納ボックステーブルが更新される。その後、ステップS71から上記処理が繰り返される。
これに対して、自機である第1移動体100が親機に決定されると(ステップS78b;Yes)、第1移動体100の選択部950は、第2移動体200の予定に関する情報、及び、格納ボックス260に関する情報の送信を求める予定送信リクエストを、第2移動体200を宛先として、第2データ通信回路194bへ出力する。その後、第1移動体100の第2データ通信回路194bが予定送信リクエストを送信した後に、第2移動体200の予定に関する情報及び格納ボックス260に関する情報を第2移動体200から受信すると、第1移動体100の選択部950は、受信された第2移動体200の予定に関する情報を取得し、第1移動体100の予定に関する情報しか保存されていなかった不図示の予定テーブルに保存する。また、第1移動体100の選択部950は、受信された格納ボックス260に関する情報を取得し、第1移動体100の格納ボックス160に関する情報しか保存されていなかった不図示の格納ボックステーブルに保存する(ステップS79b)。
その後、第1移動体100のCPU191は、図14に示した積替制御処理を実行する(ステップS80)。これにより、CPU191は、第1移動体100及び第2移動体200の内で、第1受取場所の退去予定時刻が遅い方の移動体を残留移動体として選択し、退去予定時刻が早い方の移動体を退去移動体として選択する。
また、CPU191は、第1移動体100の予定に関する情報及び格納ボックス160に関する情報と、第2移動体200の予定に関する情報及び格納ボックス160に関する情報と、に基づいて積替物品を特定し、特定された積替物品の積み替えることを命じる積替命令を、第2移動体200を宛先として、第2データ通信回路194bへ出力する。その後、CPU191が、本実施例で説明した処理と同様の処理を実行することで、積替命令に従った積み替えが行われる。
さらに、物品の積み替えに応じて、CPU191は、第1移動体100の予定に関する情報及び格納ボックス160に関する情報と、第2移動体200の予定に関する情報及び格納ボックス260に関する情報を変更する。その後、変更された第2移動体200の予定に関する情報及び格納ボックス260に関する情報を、第2移動体200を宛先として第2データ通信回路194bへ出力する。その後、CPU191は、第2移動体200の予定に関する情報及び格納ボックス260に関する情報を、不図示の予定テーブル及び格納ボックステーブルから削除する。その後、ステップS71から上記処理が繰り返される。
ステップS71が実行された後に、第1移動体100が第1受取場所に既に到着している又は第1受取場所と異なる場所にいるため、第1受取場所に到着した訳では無いと判別すると(ステップS74;No)、第1移動体100の選択部950は、第1受取場所に他の移動体である第2移動体200が到着したか否かを判別する(ステップS81)。選択部950は、例えば、ステップS77で説明したテンプレートマッチングを予め定められた周期で実行し、前回の実行でテンプレート画像に対応する画像領域が検出されなかったが、今回の実行でそのような画像領域が検出されると、第2移動体200が到着したと判別する(ステップS81;Yes)。その後、選択部950は、第2移動体200を認証するステップS78aから処理を継続する。
ステップS71及びS74が実行された後に、第1移動体100の選択部950が、第2移動体200が第1受取場所に到着した訳では無いと判別すると(ステップS81;No)、移動制御部940は、OSから取得したシステム時刻と、不図示の予定テーブルの退去予定時刻を表す情報と、に基づいて、第1移動体100の第1受取場所からの退去予定時刻が到来したか否かを判別する(ステップS82)。このとき、移動制御部940は、退去予定時刻が到来したと判別すると(ステップS82;Yes)、図12のステップS12及びS13と同様の処理を実行する(ステップS83及びS84)。これにより、第1移動体100は、第1受取場所から退去する。その後、ステップS71から上記処理が繰り返される。
ステップS71、S74、及び、S81が実行された後に、第1移動体100の移動制御部940が、第1移動体100の第1受取場所からの退去予定時刻が到来した訳ではないと判別すると(ステップS82;No)、第1移動体100の格納制御部960は、入力装置195cが入力する信号に基づいて、物品の受取人によって物品の受け渡しが求められているか否かを判別する(ステップS85)。このとき、格納制御部960は、物品の受け渡しが求められていると判別すると(ステップS85;Yes)、図12のステップS15bと同様の処理を実行する(ステップS86)。これにより、格納制御部960は、受取人によって入力されたパスワードを表す文字列を取得し、不図示の格納ボックステーブルに、取得された文字列が保存されたレコードが存在しない場合に、受取人の認証が失敗したと判別する(ステップS86;No)。その後、ステップS71から上記処理が繰り返される。
これに対して、格納制御部960は、格納ボックステーブルに、取得された文字列が保存されたレコードが存在する場合に、受取人の認証が成功したと判別する(ステップS86;Yes)。その後、格納制御部960は、図12のステップS16からS18の処理と同様の処理を実行する(ステップS87からS89)。これにより、格納制御部960は、格納ボックステーブルにおいて、パスワードを表す文字列と対応付けられたボックスIDを取得し、取得されたボックスIDで識別される格納ボックス160の扉162を解錠させる制御信号と、扉262の状態を外側開放状態とさせる制御信号と、を駆動回路199へ出力する。その後、受取人が格納ボックス160から物品を取り出すことで、物品の受け渡しが終了する。その後、ステップS71から上記処理が繰り返される。
ステップS71、S74、S81、及び、S82が実行された後に、第1移動体100の格納制御部960が、物品の受け渡しが求められている訳ではないと判別すると(ステップS85;No)、第1移動体100が営業所に帰還したか否かを、GPS回路196から出力される信号に基づいて、移動制御部940が判別する(ステップS90)。このとき、第1移動体100が営業所に帰還していないと判別すると(ステップS90;No)、S71から上記処理が繰り返される。これに対して、営業所に帰還したと判別すると(ステップS90;Yes)、変更部970は、図12のステップS20bと同様の処理を実行する(ステップS91)。これにより、変更部970は、不図示の予定テーブルに保存されているレコードを削除することで、第1移動体100の予定を削除する。その後、ステップS71から上記処理が繰り返される。
<実施例の変形例17>
本実施例の変形例16に係る第1移動体100のCPU191は、図26に示すような移動体制御処理を実行することで、図27に示すような移動制御部940、選択部950、及び、格納制御部960として機能すると説明した。
しかし、これらに限定される訳ではなく、本変形例に係る制御装置500のCPU501は、選択部550及び格納制御部560として機能し、本変形例に係る第1移動体100のCPU191は、移動制御部940として機能する。本変形例に係る第2移動体200の不図示のCPUは、第1移動体100のCPU191と同様に機能するため、以下、第1移動体100について主に説明する。
本実施例の変形例16と同様に、第1移動体100の情報記憶部990は、不図示の予定テーブルを予め記憶している。第1移動体100の予定テーブルには、制御装置500で生成された第1移動体100の予定に関する情報が保存されているが、第2移動体200の予定に関する情報が保存されていない。また、第1移動体100の情報記憶部990は、不図示の格納ボックステーブルを予め記憶している。第1移動体100の格納ボックステーブルには、第1移動体100の格納ボックス160に関する情報が保存されているが、第2移動体200の格納ボックス260に関する情報が保存されていない。
本実施例の変形例16と同様に、第1移動体100のCPU191は、起動すると、図26に示したような移動体制御処理を実行する。移動体制御処理において、第1移動体100の移動制御部940は、第1移動体100が第1受取場所に到着したと判別すると(ステップS74;Yes)、第1受取場所の識別情報「P1」と、第1移動体100の識別情報「100」と、を含む到着報告を、制御装置500を宛先として第1データ通信回路194aへ出力する。次に、第1移動体100の移動制御部940は、不図示の予定テーブルから第1移動体100の予定に関する情報を取得し、不図示の格納ボックステーブルから格納ボックス160に関する情報を取得し、取得されたこれらの情報を、制御装置500を宛先として、第1データ通信回路194aへ出力する。その後、移動制御部940は、ステップS75及びS76の処理を実行することで、第1受取場所での滞在を開始した後に、ステップS71から上記処理を繰り返す。
制御装置500のデータ通信回路504aが到着報告を受信すると、制御装置500のCPU501は、受取場所に到着した第1移動体100及び第2移動体200の1つ以上を制御する不図示の到着時制御処理を実行する。到着時制御処理の実行を開始すると、制御装置500の取得部510は、データ通信回路504aから到着報告を取得し、取得された到着報告から第1移動体100の識別情報「100」と第1受取場所の識別情報「P1」とを取得する。次に、データ通信回路504aが第1移動体100の予定に関する情報及び格納ボックス160に関する情報を受信すると、取得部510は、これらの情報を取得する。その後、保存部520は、第1移動体100の識別情報「100」と、第1移動体100の予定に関する情報と、を対応付けて、情報記憶部590に保存する。また、保存部520は、識別情報「100」と、格納ボックス160に関する情報と、を対応付けて情報記憶部590に保存する。
次に、選択部550は、OSからシステム時刻を取得し、第1受取場所の識別情報「P1」と、システム時刻よりも早い到着予定時刻と、システム時刻よりも遅い退去予定時刻と、に対応付けられた識別情報を、情報記憶部590から取得する。このとき、選択部550は、第1移動体100の識別情報「100」のみが取得されると、第1受取場所に第1移動体100しか滞在しておらず、他の移動体である第2移動体200が滞在していないと判別し、不図示の到着時制御処理の実行を終了する。
これに対して、選択部550は、第1移動体100の識別情報「100」と、第2移動体200の識別情報「200」と、が取得されると、第1受取場所に第1移動体100と第2移動体200とが滞在していると判別する。その後、図15に示した選択処理、及び、図16に示した積替物品特定処理が実行される。これにより、選択部550は、第1移動体100及び第2移動体200のいずれか一方を退去移動体として選択し、他方を残留移動体として選択する。また、変更部570は、選択された退去移動体の第1受取場所からの退去予定時刻を、変更前よりも早い時刻に変更する。さらに、格納制御部560は、積替命令を第1移動体100及び第2移動体200を宛先として出力することで、第1移動体100及び第2移動体200に積替物品を積み替えさせる。変更部570は、物品の積み替えに応じて、第1移動体100の識別情報「100」に対応付けられた予定に関する情報、及び、格納ボックス160に関する情報、並びに、第2移動体200の識別情報「200」に対応付けられた予定に関する情報、及び、格納ボックス260に関する情報を変更する。
その後、変更部570は、変更された第1移動体100の予定に関する情報及び格納ボックス160に関する情報を、第1移動体100を宛先として、データ通信回路504aへ出力する。次に、変更部570は、変更された第2移動体200の予定に関する情報及び格納ボックス260に関する情報を、第2移動体200を宛先として、データ通信回路504aへ出力した後に、不図示の到着時制御処理の実行を終了する。
図26の移動体制御処理において、第1移動体100の変更部970は、ステップS81の処理に代えて、第1移動体100の第1データ通信回路194aが、変更された第1移動体100の予定に関する情報及び格納ボックス160に関する情報を受信したか否かを判別する処理を実行する。このとき、変更部970は、第1データ通信回路194aがこれらの情報を受信したと判別すると、これらの情報を第1データ通信回路194aから取得し、不図示の予定テーブル及び不図示の格納ボックステーブルに保存された情報を、取得されたこれらの情報に変更する。その後、ステップS71から上記処理が繰り返される。
<実施例の変形例18>
本実施例の変形例17に係る制御装置500のCPU501は、選択部550及び格納制御部560として機能し、本実施例の変形例17に係る第1移動体100のCPU191は、移動制御部940として機能すると説明した。また、本実施例の変形例17に係る第2移動体200の不図示のCPUは、本実施例の変形例17に係る第1移動体100のCPU191と同様に機能すると説明した。
しかし、これらに限定される訳では無く、制御装置500のCPU501は、選択部550として機能し、本実施例の変形例17に係る第1移動体100のCPU191は、移動制御部940及び格納制御部960として機能しても良い。また、第2移動体200の不図示のCPUは、第1移動体100のCPU191と同様に、不図示の移動制御部及び格納制御部として機能しても良い。
しかし、これらに限定される訳では無く、制御装置500のCPU501は、格納制御部560として機能し、本実施例の変形例17に係る第1移動体100のCPU191は、移動制御部940及び選択部950として機能しても良い。また、第2移動体200の不図示のCPUは、第1移動体100のCPU191と同様に、不図示の移動制御部及び選択部として機能しても良い。
本実施例及び本実施例の変形例1から18は、互いにそれぞれ組み合わせることができる。本実施例及び本実施例の変形例1から15、17、及び、18のいずれかに係る機能を実現するための構成を備えた制御装置500、本実施例及び本実施例の変形例1から18に係る機能を実現するための構成を備えた制御装置190、本実施例及び本実施例の変形例1から9及び12から18に係る機能を実現するための構成を備えた制御装置290、並びに、本実施例の変形例10及び11に係る機能を実現するための構成を備えた制御装置310として提供できることはもとより、複数の装置で構成されるシステムであって、本実施例及び本実施例の変形例1から18のいずれかに係る機能を実現するための構成をシステム全体として備えたシステムとして提供することもできる。
また、プログラムの適用により、既存の制御装置を本実施例及び本実施例の変形例1から15、17、及び、18のいずれかに係る制御装置500としてそれぞれ機能させることもできる。すなわち、本実施例及び本実施例の変形例1から15、17、及び、18のいずれかで例示した制御装置500による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、本実施例及び本実施例の変形例1から15、17、及び、18のいずれかに係る制御装置500としてそれぞれ機能させることができる。
さらに、プログラムの適用により、既存の制御装置を本実施例及び本実施例の変形例1から18に係る制御装置190として機能させることもできる。すなわち、本実施例及び本実施例の変形例1から18で例示した制御装置190による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、本実施例及び本実施例の変形例1から18に係る制御装置190として機能させることができる。
またさらに、プログラムの適用により、既存の制御装置を本実施例及び本実施例の変形例1から9及び12から18に係る制御装置290として機能させることもできる。すなわち、本実施例及び本実施例の変形例1から9及び12から18で例示した制御装置290による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、本実施例及び本実施例の変形例1から9及び12から18に係る制御装置290として機能させることができる。
さらに、プログラムの適用により、既存の制御装置を本実施例の変形例10及び11に係る制御装置310として機能させることもできる。すなわち、本実施例の変形例10及び11で例示した制御装置310による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、本実施例の変形例10及び11に係る制御装置310として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD−ROM(Compact Disc Read Only Memory)、又はDVD−ROM(Digital Versatile Disk Read Only Memory)などの記録媒体に格納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
本発明に係る方法は、本実施例及び本実施例の変形例1から18のいずれかに係る配達システム1を用いて実施できる。また、本発明に係る方法は、本実施例及び本実施例の変形例1から15のいずれかに係る制御装置500、及び、本実施例の変形例16に係る第1移動体100の制御装置190及び第2移動体200の制御装置290を用いて実施できる。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
(付記)
(付記1)
第1物品及び第2物品が受け取られる受取場所に、前記第1物品を格納した第1移動体が滞在する間に、前記第2物品を格納した第2移動体が前記受取場所に到着すると、前記第1移動体と前記第2移動体のいずれか一方を、前記第1物品と前記第2物品とを格納して前記受取場所に残留する残留移動体として選択し、他方を、前記受取場所から退去する退去移動体として選択する選択部と、
選択された前記退去移動体が格納している前記第1物品又は前記第2物品を、前記退去移動体から前記残留移動体に積み替えられる積替物品と特定し、特定された前記積替物品を前記残留移動体に格納させる格納制御部と、
前記残留移動体に前記積替物品が格納されると、前記退去移動体を前記受取場所から退去させる移動制御部と、を備える、
制御装置。
(付記2)
前記第1移動体を識別する識別情報と、前記受取場所を前記第1移動体が退去する予定の時刻である退去予定時刻と、を対応付けて取得し、かつ
前記第2移動体を識別する識別情報と、前記受取場所を前記第2移動体が退去する予定の時刻である退去予定時刻と、を対応付けて取得する取得部、をさらに備え、
前記選択部は、
前記第1移動体の前記識別情報と対応付けられた前記退去予定時刻が、前記第2移動体の前記識別情報と対応付けられた前記退去予定時刻よりも遅い場合に、前記第1移動体を前記残留移動体として選択し、かつ、前記第2移動体を前記退去移動体として選択し、
前記第1移動体の前記識別情報と対応付けられた前記退去予定時刻が、前記第2移動体の前記識別情報と対応付けられた前記退去予定時刻よりも早い場合に、前記第1移動体を前記退去移動体として選択し、かつ、前記第2移動体を前記残留移動体として選択する、
付記1に記載の制御装置。
(付記3)
前記移動制御部は、
前記第1移動体が前記受取場所に到着すると、前記第1移動体を前記受取場所に滞在させ、
前記第2移動体が前記受取場所に到着すると、前記第2移動体を前記受取場所に滞在させ、かつ、
前記第2移動体が前記残留移動体として選択され、前記退去移動体として選択された前記第1移動体に格納された前記第1物品が前記積替物品と特定され、かつ、前記積替物品が前記第2移動体に格納されると、前記第1移動体の前記識別情報に対応付けて取得された前記退去予定時刻よりも早い時刻に、前記第1移動体に前記受取場所を退去させる、
付記2に記載の制御装置。
(付記4)
前記移動制御部は、前記第1移動体が前記残留移動体として選択され、前記退去移動体として選択された前記第2移動体に格納された前記第2物品が前記積替物品と特定され、かつ、前記積替物品が前記第1移動体に格納されると、前記第2移動体の前記識別情報に対応付けて取得された前記退去予定時刻よりも早い時刻に、前記第2移動体に前記受取場所を退去させる、
付記3に記載の制御装置。
(付記5)
前記第1移動体は、第3物品をさらに格納して前記受取場所である第1受取場所に到着し、
前記第2移動体は、第4物品をさらに格納して前記第1受取場所に到着し、
前記取得部は、
前記第1移動体の前記識別情報と、前記第3物品及び前記第4物品が受け取られる第2受取場所を識別する識別情報と、前記第1移動体の前記第2受取場所への到着予定時刻と、前記第1移動体の前記第2受取場所からの退去予定時刻と、を対応付けてさらに取得し、
前記第2移動体の前記識別情報と、前記第2受取場所の前記識別情報と、前記第2移動体の前記第2受取場所への到着予定時刻と、前記第2移動体の前記第2受取場所からの退去予定時刻と、を対応付けてさらに取得し、
前記格納制御部は、前記第1移動体の前記識別情報と前記第2受取場所の前記識別情報とに対応付けられた前記到着予定時刻から前記退去予定時刻までの期間である、前記第1移動体の前記第2受取場所に対する滞在予定期間が、前記第2移動体の前記識別情報と前記第2受取場所の前記識別情報とに対応付けられた前記到着予定時刻から前記退去予定時刻までの期間である、前記第2移動体の前記第2受取場所に対する滞在予定期間を包含する場合に、前記第2移動体に格納されている前記第4物品を前記積替物品と特定し、特定された前記積替物品を前記第1受取場所で、前記第1移動体へ格納させ、
前記移動制御部は、
前記第3物品が格納された前記第1移動体へ前記積替物品である前記第4物品が格納された後に、前記第3物品及び前記第4物品が受け取られる前記第2受取場所へ前記第1移動体を移動させる、
付記2から4のいずれか一つに記載の制御装置。
(付記6)
前記格納制御部は、前記第2移動体の前記第2受取場所に対する前記滞在予定期間が、前記第1移動体の前記第2受取場所に対する前記滞在予定期間を包含する場合に、前記第1移動体に格納されている前記第3物品を前記積替物品と特定し、特定された前記積替物品を前記第1受取場所で、前記第2移動体へ格納させ、
前記移動制御部は、前記第4物品が格納された前記第2移動体へ前記積替物品である前記第3物品が格納された後に、前記第3物品及び前記第4物品が受け取られる前記第2受取場所へ前記第2移動体を移動させる、
付記5に記載の制御装置。
(付記7)
前記第1移動体が前記残留移動体として選択され、かつ、前記退去移動体として選択された前記第2移動体から前記第1移動体に前記積替物品と特定された前記第2物品が格納されると、前記第2物品の受取期間が終了する時刻が、前記第1移動体の前記識別情報に対応付けられた前記退去予定時刻まで延長されたことを知らせる通知を出力し、かつ、
前記第2移動体が前記残留移動体として選択され、かつ、前記退去移動体として選択された前記第1移動体から前記第2移動体に前記積替物品と特定された前記第1物品が格納されると、前記第1物品の受取期間が終了する時刻が、前記第2移動体の前記識別情報に対応付けられた前記退去予定時刻まで延長されたことを知らせる通知を出力する通知部、をさらに備える、
付記2から6のいずれか一つに記載の制御装置。
(付記8)
前記第1移動体及び前記第2移動体のいずれか1つ以上は、走行して移動する走行体、又は、空中を飛行して移動する飛行体である、
付記1から7のいずれか一つに記載の制御装置。
(付記9)
前記第1移動体及び前記第2移動体のいずれか1つ以上は、無人機である、
付記1から8のいずれか一つに記載の制御装置。
(付記10)
物品を格納可能な移動体であって、
第1物品及び第2物品が受け取られる受取場所に、前記移動体であって、かつ、前記第1物品を格納した第1移動体が滞在する間に、前記第1移動体と異なる移動体であって、かつ、前記第2物品を格納した第2移動体が前記受取場所に到着すると、又は、前記第2移動体が滞在している間に前記第1移動体が前記受取場所に到着すると、前記第1移動体と前記第2移動体のいずれか一方を、前記第1物品と前記第2物品とを格納して前記受取場所に残留する残留移動体として選択し、他方を、前記受取場所から退去する退去移動体として選択する選択部と、
選択された前記退去移動体が格納している前記第1物品又は前記第2物品を、前記退去移動体から前記残留移動体に積み替えられる積替物品と特定し、特定された前記積替物品を前記残留移動体に格納させる格納制御部と、
前記残留移動体に前記積替物品が格納されると、前記退去移動体を前記受取場所から退去させる移動制御部と、を備える、
移動体。
(付記11)
物品を格納可能な第1移動体及び第2移動体と、
第1物品及び第2物品が受け取られる受取場所に、前記第1物品を格納した前記第1移動体が滞在する間に、前記第2物品を格納した前記第2移動体が前記受取場所に到着すると、前記第1移動体と前記第2移動体のいずれか一方を、前記第1物品と前記第2物品とを格納して前記受取場所に残留する残留移動体として選択し、他方を、前記受取場所から退去する退去移動体として選択する選択部と、
選択された前記退去移動体が格納している前記第1物品又は前記第2物品を、前記退去移動体から前記残留移動体に積み替えられる積替物品と特定し、特定された前記積替物品を前記残留移動体に格納させる格納制御部と、
前記残留移動体に前記積替物品が格納されると、前記退去移動体を前記受取場所から退去させる移動制御部と、
を含む制御装置と、を備える、
システム。
(付記12)
1又は複数のコンピュータが、
第1物品及び第2物品が受け取られる受取場所に、前記第1物品を格納した第1移動体が滞在する間に、前記第2物品を格納した第2移動体が前記受取場所に到着すると、前記第1移動体と前記第2移動体のいずれか一方を、前記第1物品と前記第2物品とを格納して前記受取場所に残留する残留移動体として選択し、他方を、前記受取場所から退去する退去移動体として選択すること、
選択された前記退去移動体が格納している前記第1物品又は前記第2物品を、前記退去移動体から前記残留移動体に積み替えられる積替物品と特定し、特定された前記積替物品を前記残留移動体に格納させること、及び、
前記残留移動体に前記積替物品が格納されると、前記退去移動体を前記受取場所から退去させること、を含む、
方法。