<実施例>
以下、本発明の実施例について添付図面を参照しつつ説明する。
本発明の実施例に係る配送システム1は、注文された荷物の配送を制御する、図1に表すような制御装置100と、注文された荷物を配送先まで配送するため、当該荷物を格納し、かつ、制御装置100の制御に従って移動する配送機600と、を備える。本実施例では、荷物が注文された商品である場合を具体例として挙げて以下の説明を行う。また、商品の注文は、商品の出荷を依頼する出荷依頼、出荷された商品を集荷する集荷依頼、並びに、出荷及び集荷された商品の配送先への配送を依頼する配送依頼を含むとして以下の説明を行う。
また、配送システム1は、商品の注文を行う注文者によって携帯される端末装置800を備える。さらに、配送システム1は、注文される商品を販売する店舗ST1の従業員によって携帯される端末装置901と、注文される商品を販売する店舗ST2の従業員によって携帯される端末装置902と、を備える。
店舗ST1は、商品が出荷される、図2に表すような出荷場所R1であるエントランスを有している。店舗ST2は、出荷場所R2であるエントランスを有している。
制御装置100は、サーバ機であり、例えば、商品の販売を仲介する仲介業者のオフィスビルに設置されている。制御装置100は、ハードウェアである、図3に表すようなCPU(Central Processing Unit)101、RAM(Random Access Memory)102、ROM(Read Only Memory)103a、ハードディスク103b、データ通信回路104、ビデオカード105a、表示装置105b、及び、入力装置105cを備える。制御装置100は、複数のCPUを備えても良いし、複数のRAM及びフラッシュメモリを備えても良い。
制御装置100のCPU101は、ROM103a又はハードディスク103bに保存されたプログラムを実行することで、制御装置100の全体制御を行う。RAM102は、CPU101によるプログラムの実行時において、処理対象とされるデータを一時的に記憶する。ROM103a及びハードディスク103bは、各種のプログラムと、プログラムの実行に用いられる各種のデータ及びデータが保存されたテーブルと、を記憶している。
制御装置100のデータ通信回路104は、NIC(Network Interface Card)であり、例えば、LTE(Long Term Evolution)及び5G(5th Generation)といった通信規格に従って、インターネットINに接続された不図示の基地局と電波を用いてデータ通信を行う。これにより、制御装置100のデータ通信回路104は、インターネットINに接続された配送機600、並びに、端末装置800、901、及び、902とデータ通信を行う。
制御装置100のビデオカード105aは、CPU101から出力されたデジタル信号に基づいて画像をレンダリングすると共に、レンダリングされた画像を表す画像信号を出力する。表示装置105bは、EL(Electroluminescence)ディスプレイ、PDP(Plasma Display Panel)、又は、LCD(Liquid Crystal Display)であり、ビデオカード105aから出力された画像信号に従って画像を表示する。入力装置105cは、キーボード、マウス、タッチパッド、及び、ボタンのいずれか1つ以上であり、仲介業者の従業員の操作に応じた信号を入力する。
制御装置100のCPU101は、起動すると、図2に表すような目的地の地点PDを決定する、図4に表すような目的地決定処理を実行する。これにより、制御装置100のCPU101は、商品の注文において指定可能な2個の出荷場所R1及びR2のそれぞれについて、推定準備時間を表す推定準備時間情報を取得する、図5に表すような取得部110として機能する。推定準備時間とは、注文されると推定される商品(以下、推定商品という)の出荷依頼が受け付けられたと仮定した場合に、出荷依頼が受け付けられてから、推定商品の準備が終了して当該推定商品が出荷可能になるまでに要する準備時間である。
本実施例において、商品が出荷可能になるとは、配送機600が受取可能な状態に商品の状態が変化することを意味する。また、本実施例において、配送機600が受取可能な商品の状態は、配送機600が商品の配送を開始可能な状態を含む。
本実施例において、商品は、飲食物である。このため、配送を開始可能な商品の状態は、当該商品の配送の開始までに調理される必要性が当該商品にあれば、調理がされた状態を含む。また、配送を開始可能な商品の状態は、当該商品の配送の開始までに包装される必要性が当該商品にあれば、包装された状態を含む。調理される必要性の有無、及び、包装される必要性の有無は、当該商品の注文の受付時に注文者と店舗ST1又はST2の従業員との間で明示的若しくは黙示的に合意がなされる、又は、商慣習上予め定められている。また、配送を開始可能な商品の状態は、当該商品の注文において指定された店舗ST1又はST2の出荷場所R1又はR2に当該商品が位置している状態を含む。
これらのため、調理及び包装の必要性が無い商品であれば、当該商品を出荷可能にするための準備は、例えば、倉庫の棚から当該商品を探し出すこと、及び、探し出された商品を、当該商品の出荷場所R1又はR2まで運搬することを含む。このため、準備時間は、当該商品の探出に要する探出時間と、探し出された商品の出荷場所R1又はR2への運搬に要する運搬時間と、を含む。
また、調理の必要性が無いが、包装の必要性がある商品であれば、当該商品の準備は、当該商品の探出と、当該商品の包装と、出荷場所R1又はR2までの運搬と、を含む。このため、当該商品の準備時間は、当該商品の探出時間と、探し出された商品の包装に要する包装時間と、包装された当該商品の出荷場所R1又はR2までの運搬時間と、の合計を含む。
さらに、調理及び包装の必要性がある商品であれば、当該商品の準備は、当該商品の調理と、調理された商品の包装と、包装された商品の出荷場所R1又はR2までの運搬と、を含む。このため、当該商品の準備時間は、当該商品の調理に要する調理時間と、調理された商品の包装時間と、包装された商品の出荷場所R1又はR2までの運搬時間と、の合計を含む。
制御装置100のCPU101は、出荷場所R1及びR2についてそれぞれ取得された推定準備時間情報に基づいて、配送機600の目的地の地点PDを決定する決定部120として機能する。また、CPU101は、決定された地点PDに向けて配送機600を移動させる制御を行う制御部130として機能する。
制御装置100のハードディスク103bは、目的地決定処理の実行に用いられる情報を記憶する情報記憶部190として機能する。情報記憶部190は、推定準備時間情報が予め保存されている、図6に表すような推定準備時間テーブルを予め記憶している。
推定準備時間テーブルには、複数のレコードが予め保存されている。推定準備時間テーブルの各レコードには、店舗ST1又はST2を識別する店舗ID(IDentification)と、店舗ST1又はST2の推定準備時間を表す推定準備時間情報と、が予め対応付けられて保存されている。
本実施例では、店舗ST1の推定商品は、店舗ST1で販売される複数の商品の内で、注文が確定される確率が最も高い商品である。店舗ST1で販売される商品の注文が確定される確率は、店舗ST1に在る出荷場所R1を指定し、かつ、当該商品を指定する過去に確定された注文の数を、店舗ST1に在る出荷場所R1を指定する過去に確定された注文の数で、除算した値である。店舗ST2の推定商品は、同様に、店舗ST2で販売される複数の商品の内で、注文が確定される確率が最も高い商品である。
図4の目的地決定処理の実行が開始されると、制御装置100の取得部110は、2個の出荷場所R1及びR2のそれぞれについて、図6の推定準備時間テーブルから推定準備時間情報を取得する(ステップS01)。このために、決定部120は、予め定められた規則、又は、ソフトウェア乱数に従って、出荷場所R1及びR2の番号を決定する。本実施例では、出荷場所R1の番号が1番に決定され、出荷場所R2の番号が2番に決定された場合を例に挙げて以下の説明を行う。
次に、制御装置100の取得部110は、1番の出荷場所R1が在る店舗ST1の店舗IDに対応付けられた推定準備時間情報(以下、1番の推定準備時間情報という)を推定準備時間テーブルから取得する。同様に、取得部110は、2番の出荷場所R2が在る店舗ST2の店舗IDに対応付けられた推定準備時間情報(以下、2番の推定準備時間情報という)を推定準備時間テーブルから取得する。
次に、制御装置100の取得部110は、1番の出荷場所R1が在る店舗ST1の店舗IDに対して情報記憶部190が予め対応付けて記憶している位置情報を取得することで、出荷場所R1の位置を緯度、経度、及び、高度で表す位置情報を取得する。次に、決定部120は、k=1の場合及びk=2の場合のそれぞれについて、k番の出荷場所まで配送機600が移動するのに要する時間が、当該k番の推定準備時間情報で表される推定準備時間以下である近傍領域(以下、k番の近傍領域という)を決定する。
本実施例では、配送機600は、予め設定された設定速度で移動する。このために、制御装置100の取得部110は、情報記憶部190が予め記憶する配送機600の設定速度を表す情報を取得する。その後、決定部120は、取得された情報で表される配送機600の設定速度に、1番の推定準備時間情報で表される推定準備時間を乗算することで、当該推定準備時間において配送機600が移動する距離D1を算出する。
次に、制御装置100の決定部120は、取得された位置情報で表される出荷場所R1の位置から、算出された距離D1だけ離れた、図2に表すような境界B1を決定する。その後、決定部120は、決定された境界B1と、境界B1よりも出荷場所R1側の領域を、1番の近傍領域N1に決定する。
その後、制御装置100の決定部120は、同様に、2番の出荷場所R2まで配送機600が移動するのに要する時間が、当該2番の推定準備時間情報で表される推定準備時間以下である近傍領域(以下、2番の近傍領域という)N2を決定する(ステップS02)。
このために、制御装置100の決定部120は、2番の推定準備時間情報で表される推定準備時間において配送機600が移動する距離D2を算出し、出荷場所R2の位置から距離D2だけ離れた境界B2を決定する。その後、決定部120は、境界B2と、境界B2よりも出荷場所R2側の領域を2番の近傍領域N2に決定する。
本実施例では、距離D1及びD2は、三次元空間におけるユークリッド距離であるため、近傍領域N1及びN2は球体領域であり、近傍領域N1及びN2それぞれの境界B1及びB2は球面である。
制御装置100の制御部130は、1番の近傍領域N1を表す近傍領域情報を、1番の出荷場所R1が在る店舗ST1の店舗IDに対応付けて情報記憶部190へ保存する。同様に、制御部130は、2番の近傍領域N2を表す近傍領域情報を、2番の出荷場所R2が在る店舗ST2の店舗IDに対応付けて情報記憶部190へ保存する(ステップS03)。本実施例では、1番の近傍領域N1を表す近傍領域情報は、1番の近傍領域N1の境界B1を定める方程式を表す情報であり、かつ、2番の近傍領域N2を表す近傍領域情報は、2番の近傍領域N2の境界B2を定める方程式を表す情報であるが、これらに限定される訳ではない。
その後、制御装置100の決定部120は、目的地の地点PDから2個の境界B1及びB2のそれぞれまでの距離である領域距離L1及びL2が予め定められた条件を満足するように地点PDを決定する(ステップS04)。本実施例では、領域距離L1及びL2は、三次元空間におけるユークリッド距離である。
本実施例では、予め定められた条件は、目的地の地点PDから境界B1までの領域距離L1と、地点PDから境界B2までの領域距離L2と、の和が最小であるという条件である。このため、決定部120は、例えば、最小自乗法を含む公知のアルゴリズムを用いて、領域距離L1と領域距離L2との和を最小にする目的地の地点PDを決定する。
その後、制御装置100の制御部130は、決定された目的地の地点PDの位置を緯度、経度、及び、高度で表す位置情報を情報記憶部190に保存した後に(ステップS05)、目的地決定処理の実行を終了する。
目的地決定処理の実行を終了すると、制御装置100のCPU101は、配送機600の移動を制御する、図7から図9に示すような移動制御処理を実行する。情報記憶部190は、移動制御処理の実行に用いられる、図10に示すようなタスクテーブルを予め記憶している。タスクテーブルには、注文が確定された商品の集荷配送タスクを識別するタスクIDと、当該注文を行った注文者のユーザIDと、当該商品の商品IDと、当該商品の注文において指定された出荷場所R1又はR2の位置情報と、当該商品の配送先の位置情報と、が対応付けられて保存されたレコードが追加される。本実施例において、注文の確定とは、注文に含まれる出荷依頼、集荷依頼、及び、配送依頼の全てが受け付けられることを意味する。
集荷配送タスクは、集荷タスクと、配送タスクと、を含む。商品の集荷タスクとは、当該商品の注文において指定された出荷場所R1又はR2で当該商品を配送機600に集荷させるタスクである。また、商品の配送タスクとは、集荷された当該商品を、当該商品の配送先へ配送機600に配送させるタスクである。本実施例では、移動制御処理の実行開始時には、集荷配送タスクが未だ生成されていないため、タスクテーブルには、レコードが保存されていないとして以下の説明を行う。
図7の移動制御処理の実行が開始されると、制御装置100の制御部130は、配送機600の状態が、集荷タスク又は配送タスクの実行のために、出荷場所R1若しくはR2、又は、配送先を移動先として受け付けている状態(以下、受付状態という)と異なる状態(以下、非受付状態という)であると判別する(ステップS11)。非受付状態とは、出荷場所R1及びR2、並びに、配送先のいずれも、移動先として受け付けていない状態である。その後、制御部130は、情報記憶部190が予め記憶しているフラグであり、かつ、配送機600の状態が受付状態であるか、非受付状態であるかを表す状態フラグの値を、非受付状態を表す値で初期化する
次に、制御装置100の取得部110は、図10のタスクテーブルからタスクIDを取得することを試行する(ステップS12)。次に、取得部110は、タスクIDを取得したか否かを判別する(ステップS13)。このとき、タスクIDを取得しなかったと判別されると(ステップS13;No)、制御部130は、集荷配送タスクが存在しない、すなわち、集荷タスク及び配送タスクが存在しない、と判別する。
次に、制御装置100の取得部110は、配送機600の位置を緯度、経度、及び、高度で表す位置情報の送信を求める送信リクエストを、配送機600を宛先としてデータ通信回路104へ出力する。制御装置100のデータ通信回路104が送信リクエストを配送機600へ送信した後に配送機600から位置情報を受信すると、取得部110は、データ通信回路104から配送機600の位置情報を取得する。また、取得部110は、図4のステップS05で保存された目的地の地点PDの位置情報を情報記憶部190から取得する(ステップS14)。
その後、制御装置100の制御部130は、取得された位置情報で表される配送機600の位置と、位置情報で表される目的地の地点PDの位置と、が一致するか否かを判別する(ステップS15)。このとき、制御部130は、配送機600の位置と、地点PDの位置と、が一致すると判別すると(ステップS15;Yes)、配送機600が目的地の地点PDに位置すると判別する。このため、配送機600を地点PDへ向けて移動させる処理を実行せずに、ステップS12から上記処理を繰り返す。
これに対して、制御装置100の制御部130は、配送機600の位置と、地点PDの位置と、が相違すると判別すると(ステップS15;No)、配送機600が目的地の地点PDと異なる地点に位置すると判別する。次に、制御部130は、目的地の地点PDの位置情報を含み、地点PDへ向かって移動することを命じる移動命令を生成し、生成された移動命令を、配送機600を宛先としてデータ通信回路104へ出力する(ステップS16)。これにより、制御部130は、配送機600を目的地の地点PDへ向けて移動させる制御を行う。
次に、制御装置100の取得部110は、データ通信回路104から到着報告を取得することを試行する。当該到着報告は、配送機600から受信される報告であり、かつ、配送機600が目的地の地点PDに到着したことを告げる報告である。このとき、取得部110は、到着報告を取得したと判別すると(ステップS17;Yes)、ステップS12から上記処理を繰り返す。
これに対して、制御装置100の取得部110は、到着報告を取得しなかったと判別すると(ステップS17;No)、ステップS12と同様の処理を実行することで、タスクIDの取得を試行する(ステップS18)。タスクIDの取得が試行されるのは、配送機600が目的地の地点PDへ向かっている間に、集荷配送タスクが生成される場合があるためである。このとき、制御装置100の取得部110は、タスクIDを取得しなかったと判別すると(ステップS19;No)、ステップS17から上記処理を繰り返す。
ステップS13又はS19で、タスクIDが取得されたと判別された後に実行される処理について説明する前に、移動制御処理の説明を中断して、配送機600の説明等を行う。
配送機600は、図11に表すような無人地上車両である。配送機600は、車輪601及び602を含む複数の車輪を備える車台610と、車台610の上面に設置された格納庫620と、格納庫620に内蔵された制御装置690と、を備える。
配送機600の格納庫620は、商品を格納可能な1つの格納ボックス621を備える。格納ボックス621は、不図示の1枚の底板、天板、及び、背板、並びに、2枚の側板を備え、これらの板により閉塞されて前方が開放された空間を形成する箱体を備える。箱体の開口部には、扉621aを受け止める扉枠621bが設置されている。
扉621aは、カンヌキであるデッドボルト621cを裏面に備え、扉枠621bは、デッドボルト621cの受座であるストライク621dを備える。扉621aは、制御装置690から出力される信号に従って、デッドボルト621cをストライク621dへ挿入させることで、扉621aを施錠する不図示のモータをさらに備えている。当該モータは、制御装置690から出力される信号に従って、デッドボルト621cをストライク621dから抜出させることで、扉621aを解錠する。
配送機600の格納庫620は、例えば、デジタルカメラである撮像装置630を、扉621aが設置されている面に備える。撮像装置630の光軸及び画角は、格納ボックス621に格納された商品を受け取る受取人が撮像範囲に含まれるように調整されている。撮像装置630は、予め定められた周期で撮像を行い、撮像により得られた画像を表す信号を制御装置690へ出力する。
配送機600は、車台610の前面に設置されたLiDAR(Light Detection and Ranging)センサ641と、車台610の後面に設置された不図示のLiDARセンサと、をさらに備える。
配送機600が備える前面のLiDARセンサ641は、配送機600の前方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、配送機600の前方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へレーザー光を照射する。前面のLiDARセンサ641は、照射されたレーザー光の反射光を受光し、レーザー光の照射から反射光の受光までの時間に基づいて、レーザー光が反射された複数の反射点までの距離を計測する。次に、前面のLiDARセンサ641は、レーザー光の照射方向と計測された距離とに基づいて、配送機600の中心点を原点として用いた三次元座標系における座標値を、複数の反射点について算出する。その後、前面のLiDARセンサ641は、算出された複数の反射点の座標値を配送機600の制御装置690へ出力する。
配送機600が備える後面のLiDARセンサは、配送機600の後方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、配送機600の後方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へ赤外線のレーザー光を照射する。また、後面のLiDARセンサは、照射されたレーザー光の複数の反射点について配送機600の三次元座標系における座標値を算出し、算出された複数の反射点の座標値を配送機600の制御装置690へ出力する。
配送機600が備える前面のLiDARセンサ641及び後面のLiDARセンサが複数の反射点の座標値を制御装置690へ出力するのは、例えば、障害物等の物体を回避して走行するために、配送機600の制御装置690が、配送機600を基準として用いた全方向にある物体の三次元空間における座標値及びサイズ等を特定するためである。
配送機600の制御装置690は、図12に表すようなハードウェアである、CPU691、RAM692、ROM693a、フラッシュメモリ693b、データ通信回路694、ビデオカード695a、表示装置695b、入力装置695c、位置計測回路696、入出力ポート698、及び、駆動回路699を備える。配送機600は、複数のCPUを備えても良いし、複数のRAM及びフラッシュメモリを備えても良い。
配送機600のCPU691、RAM692、ROM693a、データ通信回路694、ビデオカード695a、表示装置695b、及び、入力装置695cの構成及び機能は、制御装置100のCPU101、RAM102、ROM103a、データ通信回路104、ビデオカード105a、表示装置105b、及び、入力装置105cの構成及び機能と同様である。
配送機600のフラッシュメモリ693bは、各種のプログラムと、プログラムの実行に用いられる各種のデータやデータが保存されたテーブルと、を記憶している。配送機600は、フラッシュメモリ693bの代わりに、ハードディスクを備えても良い。
配送機600の位置計測回路696は、QZSS(Quasi-Zenith Satellite System)回路である。位置計測回路696は、準天頂衛星から発せられた信号を受信し、受信された信号に基づいて配送機600の位置を表す緯度、経度、及び、高度を計測し、計測された緯度、経度、及び、高度を表す信号を出力する。位置計測回路696は、QZSS回路ではなく、GPS(Global Positioning System)衛星から発せられたGPS信号を受信し、受信されたGPS信号に基づいて配送機600の位置を表す緯度、経度、及び、高度を計測するGPS回路であっても良い。
配送機600の入出力ポート698は、撮像装置630に接続された不図示のケーブルに接続されており、撮像装置630が出力する信号をCPU691へ入力する。また、入出力ポート698は、前面のLiDARセンサ641及び後面のLiDARセンサとそれぞれ接続された不図示のケーブルに接続されている。入出力ポート698は、前面のLiDARセンサ641及び後面のLiDARセンサがそれぞれ出力する座標値を表す信号をCPU691へ入力する。
配送機600の駆動回路699は、複数の車輪を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路699は、CPU691が出力する制御信号に従って当該モータを駆動させることで、複数の車輪を回転させる。
また、配送機600の駆動回路699は、扉621aが備えるデッドボルト621cをストライク621dから抜出させる又はストライク621dに挿入させる不図示のモータにそれぞれ接続されたケーブルに接続されており、CPU101が出力する制御信号に従って当該モータを駆動させる。
配送機600のデータ通信回路694が、図7のステップS14で出力された送信リクエストを制御装置100から受信すると、配送機600のCPU691は、位置計測回路696から出力される信号に基づいて、配送機600の緯度、経度、及び、高度を特定する。次に、CPU691は、配送機600の位置を、緯度、経度、及び、高度で表す位置情報を生成し、生成された位置情報を、制御装置100を宛先としてデータ通信回路694へ出力する。その後、配送機600のデータ通信回路694は、配送機600の位置情報を制御装置100へ送信する。
配送機600のデータ通信回路694が、図7のステップS16で出力された移動命令を受信すると、配送機600のCPU691は、当該移動命令に従って移動するために、図13に表すような目的地移動処理を実行する。
目的地移動処理の実行を開始すると、配送機600のCPU691は、データ通信回路694から移動命令を取得し、取得された移動命令から目的地の地点PDの位置情報を取得する(ステップS51)。次に、CPU691は、位置計測回路696から出力される信号に基づいて、配送機600の緯度、経度、及び、高度を特定する。その後、CPU691は、特定された配送機600の位置から目的地の地点PDに到る移動経路を決定する。
このために、配送機600のCPU691は、フラッシュメモリ693bが予め記憶している部分経路テーブルから複数のレコードを読み出す。部分経路テーブルの複数のレコードには、例えば、道路及び歩道といった配送機600が移動可能な部分経路に関する情報がそれぞれ保存されている。部分経路に関する情報は、部分経路であるエッジの始点ノードの緯度、経度、及び、高度と、当該エッジの終点ノードの緯度、経度、及び、高度と、当該エッジの距離を表す情報と、が対応付けられた情報である。
次に、配送機600のCPU691は、読み出された部分経路テーブルの各レコードに保存されているエッジの距離と、当該エッジの始点ノード及び終点ノードの緯度、経度、及び、高度と、配送機600の位置を表す緯度、経度、及び、高度と、目的地の地点PDを表す緯度、経度、及び、高度と、を用いて、例えば、ダイクストラ法を含む公知の経路探索アルゴリズムを実行する。これにより、CPU691は、部分経路を組み合わせることで、配送機600の位置から目的地の地点PDへ到る最短の全体経路を探索し、探索された全体経路を配送機600の移動経路に決定する(ステップS52)。その後、配送機600のCPU691は、決定された移動経路に含まれるノードの位置を緯度、経度、及び、高度で表す情報と、当該ノードの通過順番を表す情報と、が含まれる移動経路を表す情報を生成する。
次に、配送機600のCPU691は、フラッシュメモリ693bが予め記憶している配送機600の設定速度を表す情報を取得する。その後、CPU691は、位置計測回路696から出力される信号に基づいて、配送機600の緯度、経度、及び、高度を特定する。次に、CPU691は、特定された緯度、経度、及び、高度と、移動経路に含まれる複数の未通過のノードの内で最も通過順が早いノードの緯度、経度、及び、高度と、の相違を縮小させるように設定速度で移動するための制御信号を生成し、生成された制御信号を駆動回路699へ出力する(ステップS53)。これにより、配送機600は、最も通過順が早い未通過のノードへ向かって設定速度で移動する。
その後、配送機600のCPU691は、データ通信回路694からの受付命令の取得を試行する。当該受付命令は、制御装置100から受信される命令であり、かつ、出荷場所R1若しくはR2、又は、配送先を移動先として受け付けることを命じる命令である。本実施例では、受付命令は、移動命令の受信から目的地の地点PDへの到着までの間において注文が確定された場合に、確定された注文において指定された出荷場所R1又はR2を移動先として配送機600に受け付けさせるために、制御装置100から配送機600へ送信される。
配送機600のCPU691は、受付命令を取得したと判別すると(ステップS54;Yes)、目的地移動処理の実行を終了する。これにより、配送機600は、目的地の地点PDへ向かう移動を中止する。その後、配送機600は、移動先である出荷場所R1若しくはR2、又は、配送先へ制御装置100の制御に従って移動する。
これに対して、配送機600のCPU691は、受付命令を取得しなかったと判別すると(ステップS54;No)、移動経路に含まれる複数のノードの全てに到着したか否かに基づいて、移動経路の終点である目的地の地点PDに到着したか否かを判別する(ステップS55)。このとき、複数のノードの全てに到着した訳ではないため、移動経路の終点に到着していないと判別すると(ステップS55;No)、ステップS53から上記処理を繰り返す。
これに対して、配送機600のCPU691は、複数のノードの全てに到着したため、移動経路の終点に到着したと判別すると(ステップS55;Yes)、終点の位置で駐車又は停車するための制御信号を駆動回路699へ出力する。その後、CPU691は、制御装置100を宛先として、配送機600が移動経路の終点である目的地の地点PDに到着したことを告げる到着報告をデータ通信回路694へ出力してから(ステップS56)、目的地移動処理の実行を終了する。
制御装置100のデータ通信回路104が、注文リクエストを注文者の端末装置800から受信すると、注文された商品の集荷タスク及び配送タスクを生成する、図14に表すようなタスク生成処理を実行する。タスク生成処理は、移動命令が送信されてから、当該移動命令に従って配送機600が目的地の地点PDに到着する前に行われても良いし、目的地の地点PDに到着した時に行われても良いし、目的地の地点PDに到着した後に行われても良い。
本実施例では、注文リクエストで受付が求められた注文において、店舗ST1と、店舗ST1で販売される不図示の商品I1と、が指定される場合を具体例として挙げて以下の説明を行う。また、本実施例では、店舗ST1の指定は、店舗ST1に在る出荷場所R1を指定することを意味するとして以下の説明を行う。
タスク生成処理の実行により、制御装置100のCPU101は、注文された商品I1の出荷依頼が店舗ST1で受け付けられたか否かを判別する、図5に表すような判別部140としてさらに機能する。
タスク生成処理の実行が開始されると、制御装置100の取得部110は、注文者の端末装置800から受信された注文リクエストをデータ通信回路104から取得する。次に、取得部110は、取得された注文リクエストから、注文者のユーザIDと、指定された店舗ST1を識別する店舗IDと、指定された商品I1を識別する商品IDと、商品I1の配送先を住所で表す情報と、を取得する。次に、取得部110は、配送先の住所を表す情報に情報記憶部190が予め対応付けて記憶している緯度、経度、及び、高度を表す情報を取得することで、配送先の位置を緯度、経度、及び、高度で表す位置情報を取得する(ステップS61)。
次に、制御装置100の制御部130は、取得された店舗IDで識別される店舗ST1の端末装置901を宛先として、注文リクエストをデータ通信回路104へ出力する。これにより、注文リクエストが店舗ST1へ転送される(ステップS62)。
注文リクエストが転送されてから予め定められた時間が経過するまでに、受付通知を制御装置100のデータ通信回路104が受信しないと、判別部140は、注文が確定しなかったと判別する(ステップS63;No)。このような場合に、注文が確定しなかったと判別されるのは、注文リクエストによって受け付けが求められた注文に含まれる出荷依頼、集荷依頼、及び、配送依頼の内で、出荷依頼が受け付けられなかったと、判別部140が判別するためである。その後、制御部130は、注文が受け付けられなかったことを知らせる非受付通知を注文者の端末装置800を宛先としてデータ通信回路104へ出力した後に、タスク生成処理の実行を終了する。
これに対して、注文リクエストの転送から予め定められた時間が経過するよりも前に、受付通知が受信されると、制御装置100の判別部140は、出荷依頼が受け付けられたと判別する。次に、判別部140は、出荷される商品の集荷依頼及び配送依頼を受け付けると判別し、注文が確定したと判別する(ステップS63;Yes)。
次に、制御装置100の取得部110は、ステップS61で取得された店舗ST1の店舗IDと情報記憶部190が予め対応付けて記憶している出荷場所R1の位置情報を取得する(ステップS64)。店舗ST1の店舗IDと、出荷場所R1の位置情報と、が対応付けられているのは、店舗ST1のエントランスが出荷場所R1だからである。
その後、制御装置100の制御部130は、予め定められた規則又はソフトウェア乱数に基づいてタスクIDを生成し、取得部110は、例えば、OS(Operation System)からシステム日時を、タスクの生成日時として取得する。次に、制御部130は、図10のタスクテーブルに、タスクの生成日時を表す情報と、生成されたタスクIDと、ステップS61で取得されたユーザID及び商品IDと、取得された出荷場所R1の位置情報と、取得された配送先の位置情報と、を対応付けて保存する。このようにして、制御部130は、商品I1を注文者に指定された出荷場所R1で配送機600に集荷させる集荷タスクと、集荷された商品I1を注文者に指定された配送先まで配送機600に配送させる配送タスクと、を含む集荷配送タスクを生成する(ステップS65)。その後に、制御部130は、タスク生成処理の実行を終了する。
次に、中断させた移動制御処理の説明を再開する。図7のステップS13又はS19において、制御装置100の取得部110は、図14のステップS65で生成されたタスクのタスクIDを取得したと判別すると(ステップS13;Yes又はステップS19;Yes)、集荷配送タスクが存在する、すなわち、集荷タスク及び配送タスクの少なくとも1つが存在する、と判別する。その後、決定部120は、取得されたタスクIDの内で、実行するタスク(以下、実行タスクという)のタスクIDを決定する。このとき、決定部120は、図10のタスクテーブルにおいてタスクIDと対応付けられている情報によって表される日時が最も早いタスクIDを、実行タスクのタスクIDとして決定すれば良い。次に、決定部120は、決定されたタスクIDで識別される集荷配送タスクを実行タスクに決定する(図8のステップS20)。
本実施例では、実行タスクが、注文者によって指定された出荷場所R1で商品I1を配送機600に集荷させる集荷タスクと、集荷された商品I1を注文者によって指定された配送先へ配送機600に配送させる配送タスクと、を含む集荷配送タスクである場合を例に挙げて以下の説明を行う。
このため、制御装置100の取得部110は、図10のタスクテーブルから、実行タスクのタスクIDに対応付けられた出荷場所R1の位置情報を取得する。次に、制御部130は、取得された出荷場所R1の位置情報を含み、当該出荷場所R1を移動先として受け付けることを命じる受付命令を生成し、生成された受付命令を、配送機600を宛先としてデータ通信回路104に出力する(ステップS21)。このようにして、制御部130は、配送機600に出荷場所R1を移動先として受け付けさせることで、出荷場所R1で商品I1を配送機600に集荷させる集荷タスクの実行開始する(ステップS22)。
その後、制御装置100の制御部130は、配送機600の状態が、非受付状態から、出荷場所R1を移動先として受け付けている受付状態に変化したと判別し(ステップS23)、情報記憶部190が記憶する状態フラグの値を、受付状態を表す値に変更する。次に、制御部130は、受け付けさせた移動先への移動の開始を命じる移動開始命令を、配送機600を宛先としてデータ通信回路104へ出力する(ステップS24)。
その後、制御装置100の取得部110は、データ通信回路104から到着報告を取得することを試行し、到着報告を取得したか否かを判別する(ステップS25)。このとき、取得部110は、到着報告を取得しなかったと判別すると(ステップS25;No)、ステップS25の処理を繰り返す。
これに対して、制御装置100の取得部110は、到着報告を取得したと判別すると(ステップS25;Yes)、配送機600が出荷場所R1に到着したため、配送機600の状態が、出荷場所R1を移動先として受け付けている状態から、非受付状態に変化したと判別する(ステップS26)。次に、制御部130は、情報記憶部190の状態フラグの値を、非受付状態を表す値に変更する。
その後、制御装置100の取得部110は、図10のタスクテーブルから、実行タスクのタスクIDに対応付けられた商品IDと出荷場所R1の位置情報とを取得し、出荷場所R1の位置情報に情報記憶部190が予め対応付けて記憶している店舗ST1の店舗IDを取得する。次に、制御部130は、取得された商品IDを含み、当該商品IDで識別される商品であり、かつ、準備が終了した商品I1を、配送機600に格納することを求める格納依頼を生成する。その後、制御部130は、取得された店舗IDで識別される店舗であり、かつ、出荷場所R1が在る店舗S1の端末装置901を宛先として、生成された格納依頼をデータ通信回路104へ出力する(ステップS27)。
その後、制御装置100の取得部110は、データ通信回路104から集荷終了報告を取得することを試行し、集荷終了報告を取得したか否かを判別する(ステップS28)。当該集荷終了報告は、配送機600から受信される報告であり、かつ、配送機600による出荷場所R1での商品I1の集荷が終了したことを知らせる報告である。このとき、取得部110は、集荷終了報告を取得しなかったと判別すると(ステップS28;No)、ステップS28の処理を繰り返す。
これに対して、制御装置100の取得部110は、集荷終了報告を取得したと判別すると、(ステップS28;Yes)、集荷タスクの実行が終了したと判別する(ステップS29)。次に、制御部130は、図10のタスクテーブルにおいて、実行タスクのタスクIDに対応付けられた出荷場所R1の位置情報を文字列「NULL」に変更することで、実行が終わった集荷タスクを削除する。
その後、制御装置100の取得部110は、タスクテーブルから、実行タスクのタスクIDに対応付けられた配送先の位置情報を取得する。その後、制御部130は、取得された配送先の位置情報を含み、当該配送先を移動先として受け付けることを命じる受付命令を生成する。次に、制御部130は、生成された受付命令を、データ通信回路104を宛先として出力する(図9のステップS30)。このようにして、制御部130は、配送機600に配送先を移動先として受け付けさせることで、集荷された商品I1を、配送機600に配送先へ配送させる配送タスクの実行を開始する(ステップS31)。
その後、制御装置100の制御部130は、配送機600の状態が、非受付状態から、配送先を移動先として受け付けている受付状態に変化したと判別し(ステップS32)、情報記憶部190が記憶する状態フラグの値を、受付状態を表す値に変更する。次に、制御部130は、受け付けさせた移動先への移動の開始を命じる移動開始命令を、配送機600を宛先としてデータ通信回路104へ出力する(ステップS33)。
その後、制御装置100の取得部110は、到着報告の取得を試行し、到着報告を取得しなかったと判別すると(ステップS34;No)、ステップS34の処理を繰り返す。これに対して、取得部110は、到着報告を取得したと判別すると(ステップS34;Yes)、配送機600が配送先に到着したため、配送機600の状態が、配送先を移動先として受け付けている状態から、非受付状態に変化したと判別する(ステップS35)。次に、制御部130は、情報記憶部190の状態フラグの値を、非受付状態を表す値に変更する。
その後、制御装置100の取得部110は、図10のタスクテーブルから、実行タスクのタスクIDに対応付けられたユーザIDと商品IDとを取得し、取得された商品IDと情報記憶部190が予め対応付けて記憶している商品I1の名称を表す情報を取得する。次に、決定部120は、予め定められた規則、又は、ソフトウェア乱数に基づいて、商品I1を受け取る受取人の認証に用いられるパスワードを決定する。その後、制御部130は、決定されたパスワードを表す情報と、取得された商品I1の名称を表す情報と、を含み、当該パスワードを配送機600に入力して商品I1を配送機600から受け取ることを求める受取依頼を生成する。次に、制御部130は、生成された受取依頼を、取得されたユーザIDで識別される注文者の端末装置800を宛先としてデータ通信回路104へ出力する(ステップS36)。
次に、制御装置100の判別部140は、不図示のハードウェアタイマー又はソフトウェアタイマーを用いて計時を開始することで、到着報告を取得したタイミングから、又は、受取依頼を出力したタイミングからの経過時間を計時する。その後、取得部110は、予め定められた時間を表す情報を情報記憶部190から取得する。次に、制御部130は、計時時間の長さが予め定められた時間の長さ以上であるか否かに基づいて、計時の開始から予め定められた時間が経過したか否かを判別する(ステップS37)。
このとき、制御装置100の制御部130は、計時時間の長さが予め定められた時間の長さよりも短いと、予め定められた時間が経過していないと判別する(ステップS37;No)。次に、取得部110は、認証要求をデータ通信回路104から取得することを試行する。当該認証要求は、配送機600から受信される要求であり、商品I1の注文者によって配送機600に入力されたパスワードを表す情報を含み、かつ、当該パスワードを用いてパスワード認証を行うことを求める要求である。
このとき、制御装置100の取得部110は、認証要求を取得しないと、ユーザ認証が行えないと判別し、ステップS37から上記処理を繰り返す。これに対して、取得部110は、認証要求を取得すると、認証要求からパスワードを表す情報を取得する。次に、制御部130は、取得された情報で表されるパスワードと、制御装置100で決定されたパスワードと、が一致するか否かに基づいてパスワード認証が成功したか否かを判別する(ステップS38)。このとき、制御部130は、これらのパスワードが一致しないため、パスワード認証が成功せず、失敗したと判別すると(ステップS38;No)、配送機600が備える扉621aの施錠を維持する施錠維持命令を、配送機600を宛先としてデータ通信回路104へ出力する。その後、制御装置100は、ステップS37から上記処理を繰り返す。
これに対して、制御装置100の制御部130は、2つのパスワードが一致するため、認証が成功したと判別すると(ステップS38;Yes)、配送機600が備える扉621aの解錠を命じる解錠命令を、配送機600を宛先としてデータ通信回路104へ出力する。次に、制御装置100の取得部110は、データ通信回路104から配送終了報告を取得することを試行し、配送終了報告を取得したか否かを判別する(ステップS39)。当該配送終了報告は、配送機600から受信される報告であり、かつ、注文者への商品I1の受け渡しが終了したため、当該商品の配送が終了したことを知らせる報告である。このとき、取得部110は、配送終了報告を取得しなかったと判別すると(ステップS39;No)、ステップS39の処理を繰り返す。
これに対して、配送終了報告を取得したと判別すると(ステップS39;Yes)、制御部130は、商品I1が配送先で注文者に受け渡されたため、商品I1を配送先へ配送機600に配送させる配送タスクの実行が終了したと判別する(ステップS40)。
これに対して、ステップS37において、制御部130は、計時時間の長さが予め定められた時間の長さ以上であると、予め定められた時間が経過したと判別する(ステップS37;Yes)。次に、制御部130は、商品I1の注文がキャンセルされたとみなし、商品I1を配送機600に配送させる配送タスクの実行が終了したと判別する(ステップS40)。
ステップS40の処理を実行した後に、制御装置100の制御部130は、図10のタスクテーブルから、実行タスクのタスクIDが保存されたレコードを削除することで、実行が終わった配送タスクを削除する(ステップS41)。その後、制御装置100は、図7のステップS12から、上記処理を繰り返す。
ステップS12において、制御装置100は、図10のタスクテーブルからタスクIDを取得することを試行し(ステップS12)、タスクIDを取得しなかったと判別すると(ステップS13;No)、集荷配送タスクが存在しないと判別する。その後、制御装置100は、ステップS14からS16の処理を実行する。これにより、配送機600が目的地の地点PDと異なる地点に位置すると、制御装置100は、出荷場所R1及びR2並びに配送先のいずれも移動先として受け付けていない非受付状態の配送機600を地点PDに向けて移動させる。その後、制御装置100は、配送機600が地点PDに到着したことを告げる到着報告を取得したと判別すると(ステップS17;Yes)、ステップS12及びS13の処理を実行する。これに対して、制御装置100は、到着報告を取得しなかったと判別すると(ステップS17;No)、ステップS12及び13と同様の処理を実行する(ステップS18及びS19)。
ステップS13又はS19で、制御装置100は、タスクIDを取得したと判別すると(ステップS13;Yes又はステップS19;Yes)、1又は複数の集荷配送タスクが存在すると判別する。その後、制御装置100は、ステップS20からS41の処理を実行することで、存在する1又は複数の集荷配送タスクから、1つの実行タスクを決定し、決定された実行タスクを実行する。
このようにして、制御装置100は、出荷場所R1又はR2を移動先として配送機600に受け付けさせることで受付状態となった配送機600を、移動先である出荷場所R1又はR2へ移動させる。次に、制御装置100は、出荷場所R1又はR2に到着することで、非受付状態となった配送機600に出荷場所R1又はR2で商品を集荷させる。その後、制御装置100は、配送先を移動先として配送機600に受け付けさせることで受付状態となった配送機600を、移動先である配送先へ移動させる。次に、制御装置100は、配送先に到着することで、非受付状態となった配送機600に配送先で商品を注文者に受け渡たさせる。その後、制御装置100は、ステップS12から上記処理を繰り返す。
配送機600のデータ通信回路694が、図8のステップS21で出力された命令であり、かつ、出荷場所R1を移動先として受け付けることを命じる受付命令を受信すると、配送機600のCPU691は、当該受付命令に従って移動先を受け付けて移動先まで移動するために、図15に示すような移動先移動処理を実行する。
移動先移動処理の実行を開始すると、配送機600のCPU691は、データ通信回路694から受付命令を取得し、取得された受付命令から出荷場所R1の位置情報を取得する(ステップS71)。次に、CPU691は、受付命令に従って、出荷場所R1を移動先として受け付ける。その後、CPU691は、フラッシュメモリ693bが予め記憶している状態フラグの値を、移動先を受け付けている状態である受付状態を表す値に変更することで、配送機600の状態を受付状態に遷移させる(ステップS72)。状態フラグは、配送機600の状態が、受付状態であるか、移動先を受け付けていない状態である非受付状態であるか、を表すフラグである。
その後、配送機600のCPU691は、データ通信回路694から移動開始命令を取得することを試行し、移動開始命令を取得したか否かを判別する(ステップS73)。このとき、CPU691は、移動開始命令を取得しなかったと判別すると(ステップS73;No)、ステップS73の処理を繰り返す。これに対して、CPU691は、移動開始命令を取得したと判別すると(ステップS73;Yes)、図13のステップS52、S53、S55、及び、S56と同様の処理を実行する(ステップS74からS77)。これにより、配送機600は、移動先に到る移動経路を設定速度で移動し、移動先に到着すると到着報告を制御装置100へ送信する。
その後、配送機600のCPU691は、状態フラグの値を、受付状態を表す値から非受付状態を表す値に変更することで、配送機600の状態を非受付状態に遷移させる(ステップS78)。その後、移動先移動処理の実行を終了する。
制御装置100のCPU101は、図8のステップS21で、商品I1の出荷場所R1を移動先として受け付けることを命じる受付命令を出力した後、商品I1の準備の開始タイミングが到来したことを知らせる通知(以下、開始タイミング通知という)を送信するため、図16に表すような通知制御処理を、図7から図9に示した移動制御処理と並列に実行する。
制御装置100の情報記憶部190は、通知制御処理に用いられる、図17に示すような準備時間テーブルを予め記憶している。準備時間テーブルには、複数のレコードが予め保存されている。準備時間テーブルの各レコードには、店舗IDと、当該店舗IDで識別される店舗ST1又はST2で販売される商品を識別する商品IDと、当該商品の名称を表す情報と、が予め対応付けられて保存されている。店舗ST1又はST2で販売される商品は、店舗ST1又はST2に在る出荷場所R1又はR2で出荷可能な商品である。
また、準備時間テーブルの各レコードには、店舗IDと商品IDとに対して、当該商品IDで識別される商品の出荷依頼が、当該店舗IDで識別される店舗ST1又はST2で受け付けられてから、当該商品の準備が終了し、店舗ST1又はST2に在る出荷場所R1又はR2で当該商品が出荷可能となるのに要する準備時間を表す準備時間情報が予め対応付けられて保存されている。
本実施例では、商品は、ステーキ、ラーメン、ハンバーガー、トマト、及び、パンを含む。また、本実施例では、トマト及びパンの状態を、出荷可能な状態にするための準備には、調理が含まれないが、ステーキ、ラーメン、及び、ハンバーガーの準備には、調理が含まれる。これらのため、トマト及びパンの準備時間は、ステーキ、ラーメン、及び、ハンバーガーの準備時間よりも短く予め設定されている。
また、本実施例では、商品の性質は、時間の経過に伴って商品の状態が変化する性質を含む。例えば、ステーキ、ラーメン、及び、ハンバーガーの性質は、商品の温度を予め定められた温度よりも高い温度にする調理の必要性(以下、暖める調理の必要性)と、調理によって当該予め定められた温度よりも高くされた商品の温度が時間の経過に伴って当該予め定められた温度以下の温度になるという性質(以下、冷める性質)を含む。これに対して、例えば、トマト及びパンの性質は、暖める調理の必要性及び冷める性質を含まない。
さらに、本実施例では、ラーメンの性質は、時間の経過に伴って麺が伸びるという性質を含む。麺が伸びるとは、単位長さ当たり予め定められた水分量より少ない量の水分を含む状態から、予め定められた水分量以上の量の水分を含む状態に麺の状態が変化することを意味する。これに対して、例えば、トマト、パン、ハンバーガー、及び、ステーキの性質は、麺が伸びる性質を含まない。
商品及び商品の性質は、これらに限定される訳では無く、商品は、冷製スープ又はアイスリームであっても良い。また、商品の性質は、商品の温度を予め定められた温度よりも低い温度にする調理、又は、商品の温度を予め定められた温度よりも低い温度にして保管する必要性(以下、冷やす調理又は冷やす保管の必要性)と、当該予め定められた温度よりも低くされた商品の温度が時間の経過に伴って当該予め定められた温度以上の温度になるという性質(以下、暖まる性質)を含んでも良い。
通知制御処理の実行が開始されると、制御装置100の取得部110は、図8のステップS21で、移動先として受け付けることが命じられた出荷場所R1の位置情報に情報記憶部190が予め対応付けて記憶している店舗ST1の店舗IDを取得する。次に、取得部110は、図4のステップS03で保存された情報であり、かつ、店舗ST1の店舗IDに情報記憶部190が対応付けて記憶している近傍領域情報を取得する(ステップS81)。これにより、移動先として受け付けられた出荷場所R1を基準とし、かつ、出荷場所R1が在る店舗S1における推定準備時間に基づいて定められた近傍領域N1が特定される。
次に、制御装置100の取得部110は、図6の推定準備時間テーブルから、店舗ST1の店舗IDに対応付けられた推定準備時間情報を取得する(ステップS82)。その後、取得部110は、図10のタスクテーブルにおいて、図8のステップS20で決定された実行タスクのタスクIDに対応付けられている商品IDを取得する。次に、取得部110は、図17の準備時間テーブルから、店舗ST1の店舗IDと、取得された商品IDと、に対応付けられた準備時間情報を取得する(ステップS83)。これにより、店舗ST1における商品I1の準備時間が特定される。
その後、制御装置100の決定部120は、推定準備時間に基づいて決定された近傍領域N1の境界B1を、出荷が求められた商品(以下、出荷商品とも称する)I1の準備時間に基づいて、図2に示すような境界B1’に補正する(ステップS84)。これにより、決定部120は、出荷場所R1まで配送機600が移動するのに要する時間が出荷商品I1の準備時間以下である、図2に示すような近傍領域N1’の境界B1’を決定する。
このために、制御装置100の決定部120は、ステップS82で取得された推定準備時間情報で表される推定準備時間に対する、ステップS83で取得された準備時間情報で表される準備時間の割合を算出する。本実施例では、配送機600は、予め設定された設定速度で移動するため、配送機600が推定準備時間において移動する距離D1に対する、配送機600が準備時間において移動する距離D1’の割合は、推定準備時間に対する準備時間の割合に等しい。
このため、制御装置100の決定部120は、出荷場所R1を中心として、算出された割合だけ境界B1を縮小又は拡大することで境界B1’を決定する。また、決定部120は、決定された境界B1’と、境界B1’よりも出荷場所R1側の領域と、を出荷場所R1まで配送機600が移動するのに要する時間が、出荷商品I1の準備時間以下である近傍領域N1’と決定する。
その後、制御装置100の取得部110は、図7のステップS14と同様の処理を実行することで、配送機600の位置情報を取得する(ステップS85)。その後、判別部140は、取得された配送機600の位置情報と、近傍領域N1’の境界B1’を表す情報と、に基づいて、配送機600が近傍領域N1’の境界B1’上に、又は、近傍領域N1’の内部に位置するか否かを判別する(ステップS86)。近傍領域N1’の内部は、近傍領域N1’の境界B1’よりも出荷場所R1側の領域を意味する。
このとき、制御装置100の判別部140は、配送機600が近傍領域N1’の境界B1上’、及び、近傍領域N1’の内部のどちらにも位置しないと判別すると(ステップS86;No)、配送機600が近傍領域N1’の外部に位置すると判別する。近傍領域N1’の外部は、近傍領域N1’の境界B1’よりも出荷場所R1と反対側の領域を意味する。
次に、制御装置100は、ステップS85及びS86と同様の処理を実行することで、配送機600の位置情報を再度取得してから(ステップS87)、再度取得された位置情報に基づいて配送機600が近傍領域N1’の境界B1’上又は内部に位置するか否かを判別する(ステップS88)。このとき、制御装置100は、配送機600が近傍領域N1’の外部に位置すると判別すると(ステップS88;No)、ステップS87から上記処理を繰り返す。
これに対して、制御装置100の判別部140は、配送機600が近傍領域N1’の境界B1’上又は内部に位置すると判別すると(ステップS88;Yes)、配送機600が境界B1’に到着したと判別する(ステップS89)。
ステップS86において、配送機600が近傍領域N1’の境界B1’上又は内部に位置すると判別された場合(ステップS86;Yes)、又は、ステップS89の処理が実行された後に、制御装置100の制御部130は、店舗ST1の端末装置901を宛先として開始タイミング通知をデータ通信回路104へ出力する(ステップS90)。次に、制御装置100のデータ通信回路104が開始タイミング通知を端末装置901へ送信してから、制御装置100の制御部130は、通知制御処理の実行を終了する。
注文者によって携帯される端末装置800、店舗ST1の端末装置901、及び、店舗ST2の端末装置902は、例えば、スマートフォン、又は、タブレット型若しくはノートブック型のパーソナルコンピュータである。注文者の端末装置800は、注文者の操作に従って、注文の受付を求める注文リクエストを制御装置100へ送信する。
店舗ST1の端末装置901は、図14のステップS62で制御装置100によって転送された注文リクエストを受信すると、受信された注文リクエストを表示する。店舗ST1の従業員は、表示された注文リクエストを視認すると、注文リクエストによって受付が求められる注文の出荷依頼を受け付けるか否かを判断する。従業員は、出荷依頼を受け付けると判断すると、出荷依頼を受け付けてから、当該出荷依頼が受け付けられたことを知らせる受付通知を送信させるための操作を端末装置901に行う。端末装置901は、当該操作に従って、受付通知を制御装置100へ送信する。
その後、店舗ST1の端末装置901は、図16のステップS90で制御装置100によって送信された開始タイミング通知を受信すると、当該開始タイミング通知を表示出力又は音声出力する。当該開始タイミング通知を確認した店舗ST1の従業員は、商品I1の準備を開始する。
これに対して、従業員は、出荷依頼を受け付けないと判断すると、出荷依頼を受け付けず、受付通知を送信させるための操作を端末装置901に行わず、かつ、商品I1の準備を行わない。
その後、端末装置901は、図8のステップS27で制御装置100によって送信された格納依頼を受信すると、受信された格納依頼を表示出力又は音声出力する。店舗ST1の従業員は、出力された格納依頼を確認すると、店舗ST1に在る出荷場所R1に到着した配送機600の格納ボックス621に、準備が終了した商品I1を格納させる。その後、従業員は、格納ボックス621の扉621aを施錠させる操作を配送機600の入力装置695cに行う。
配送機600の入力装置695cが当該操作に応じた信号を出力すると、配送機600のCPU691は、扉621aを施錠させる制御信号を駆動回路699へ出力した後に、商品I1の集荷が終了したことを知らせる集荷終了報告を、制御装置100を宛先としてデータ通信回路694へ出力する。
配送機600のデータ通信回路694が、配送先を移動先として受け付けることを命じる命令であり、かつ、図9のステップS30で出力された受付命令を制御装置100から受信すると、配送機600のCPU691は、受信された受付命令に基づいて、図15に示した移動先移動処理を実行する。これにより、配送機600は、受付命令に従って、配送先を移動先として受け付け、配送機600の状態を受付状態に遷移させる。次に、配送機600は、移動開始命令を受信すると、出荷場所R1から配送先までの移動を開始する。その後に、配送機600は、配送先に到着すると、配送先へ到着したことを告げる到着報告を制御装置100へ送信してから、配送機600の状態を非受付状態に遷移させる。
注文者の端末装置800は、到着報告を受信した制御装置100から送信された依頼であり、かつ、図9のステップS36で送信された受取依頼を受信すると、受信された受取依頼を表示出力又は音声出力する。本実施例において、商品I1の配送先は、注文者が居住するマンションのエントランスである。このため、注文者は、端末装置800に表示された受取依頼を確認すると、エントランスへ移動し、当該エントランスに到着している配送機600の入力装置695cに、受取依頼に含まれるパスワードを入力するための操作を行う。配送機600の入力装置695cが当該操作に応じた信号を出力すると、配送機600のCPU691は、当該信号に基づいて入力されたパスワードを取得する処理を実行する。次に、CPU691は、取得されたパスワードを含み、かつ、パスワード認証を要求する認証リクエストを、制御装置100を宛先としてデータ通信回路694へ出力する。
認証リクエストを制御装置100へ送信した配送機600のデータ通信回路694が、施錠維持命令を制御装置100から受信する場合、配送機600のCPU691は、パスワード認証が失敗したと判別し、扉621aを解錠させる制御信号を駆動回路699へ出力しない。このため、扉621aの施錠が維持される。その後、配送機600のCPU691は、パスワードの再入力を促すメッセージを表示装置695bに表示させた後に、入力されたパスワードを取得する処理から上記処理を繰り返す。
配送機600のデータ通信回路694が解錠命令を制御装置100から受信すると、配送機600のCPU691は、パスワード認証が成功したと判別し、扉621aを解錠させる制御信号を駆動回路699へ出力する。その後、CPU691は、撮像装置630から出力される信号を取得し、取得された信号で表される画像に基づいて、解錠された格納ボックス621から商品I1が受け取られたか否かを予め定められた周期で判別する。このために、CPU691は、フラッシュメモリ693bに予め記憶されている商品のテンプレート画像を表す情報を取得し、取得された情報で表されるテンプレート画像と、取得された信号で表される撮像装置630で生成された画像と、に基づいてテンプレートマッチングを行う。その後、CPU691は、撮像装置630で生成された画像から、テンプレート画像に対応する画像領域が検出されると、商品I1が受け取られたと判別する。次に、CPU691は、注文者への商品I1の受け渡しが終了したため、当該商品の配送が終了したことを知らせる配送終了報告を、制御装置100を宛先としてデータ通信回路694へ出力する。
これらの構成によれば、制御装置100は、配送機600を制御する。また、制御装置100は、2つの出荷場所R1及びR2のそれぞれを基準として、かつ、2つの出荷場所R1及びR2のそれぞれにおいて出荷依頼を受け付けてから推定商品が出荷可能になるまでの推定準備時間に基づいて、目的地の地点PDを決定する決定部120を備える。さらに、制御装置100は、商品の出荷場所R1若しくはR2、又は、商品の配送先を移動先として配送機600に受け付けさせることで、配送機600の状態を、移動先を受け付けている状態とする制御部130を備える。制御部130は、配送機600の状態が移動先を受け付けている状態の場合、配送機600を移動先へ移動させる。また、制御部130は、配送機600の状態が移動先を受け付けていない状態の場合、配送機600を地点PDへ向けて移動させる。また、商品は、荷物である。これらのため、制御装置100は、配送機600が出荷場所R1又はR2に到着するタイミングと、荷物の準備が終了して当該荷物が出荷場所R1又はR2で出荷可能となるタイミングと、の相違を抑制できる。
これらの構成によれば、制御装置100は、移動先として受け付けられた出荷場所R1を基準とし、かつ、出荷場所R1における準備時間に基づいて定められた近傍領域N1’の境界B1’に配送機600が到着すると、準備の開始タイミングが到来したことを知らせる開始タイミング通知を出荷場所R1の端末装置901へ送信するデータ通信回路104を備える。このため、制御装置100は、配送機600が出荷場所R1に到着するタイミングと、商品の準備が終了して当該商品が出荷場所R1で出荷可能となるタイミングと、の相違を抑制できる準備の開始タイミングを出荷場所R1に通知できる。このため、開始タイミングが通知されたタイミングで、出荷場所R1において商品の準備が開始されれば、出荷場所R1に配送機600が到着してから商品が出荷可能となるまでの準備待ち時間の増長を抑制できるので、出荷場所R1の利用効率の低下を抑制できる。
本実施例において、出荷場所R1の利用効率は、出荷場所R1を利用する人が使用できる領域面積を、出荷場所R1の面積で除算することで算出される。また、出荷場所R1を利用する人が使用できる領域面積は、出荷場所R1の領域面積から、例えば、配送機600を含む物が置かれている領域面積を除外した面積であるが、これらに限定される訳ではない。
ここで、出荷場所R1は、店舗ST1のエントランスの位置であるため、出荷場所R1の領域面積は、店舗ST1のエントランス内の領域面積を含む。さらに、出荷場所R1を利用する人が使用できる領域面積は、店舗ST1のエントランス内の領域面積から、例えば、配送機600を含む物が置かれている領域面積を除外した面積を含む。このため、制御装置100は、客又は従業員を含む店舗ST1に出入りする人の通行を配送機600が妨げる、又は、妨げる可能性がある時間の増長を抑制できる。
また、制御装置100は、配送機600が出荷場所R1又はR2に到着するタイミングと、商品の準備が終了して当該商品が出荷場所R1又はR2で出荷可能となるタイミングと、の相違を抑制できる。このため、制御装置100は、商品が出荷場所R1又はR2で出荷可能となってから、出荷場所R1又はR2に配送機600が到着するまでの到着待ち時間の増長を抑制できる。
さらに、制御装置100は、到着待ち時間の増長を抑制できるため、時間の経過に伴って商品の状態が変化する性質を、注文された商品が有する場合には、配送の開始までに、商品の状態が準備終了時の状態と異なる状態に変化してしまうことを抑制できる。すなわち、例えば、時間の経過に伴って麺が伸びるという性質を有する商品が、配送の開始までに麺が伸びていない状態から麺が伸びた状態へ変化してしまうことを、制御装置100は抑制できる。また、例えば、暖める調理の必要性、及び、時間の経過に伴って冷める性質を有する商品の温度が、配送の開始までに、予め定められた温度よりも高い温度から、当該予め定められた温度以下の温度へ変化してしまうことを、制御装置100は抑制できる。
また、これらの構成によれば、出荷場所R1における推定準備時間は、出荷が依頼されると推定される推定商品が、出荷を依頼されてから出荷可能になるまでの時間である。また、制御装置100の決定部120は、出荷依頼が実際に受け付けられると、出荷依頼の受け付けから、出荷依頼によって出荷が求められた出荷商品が出荷可能になるまで、の時間に基づいて近傍領域N1の境界B1を補正する。データ通信回路104は、補正された境界B1’に配送機600が到着すると開始タイミング通知を行う。このため、制御装置100は、推定商品が出荷商品と相違する場合であっても、配送機600が出荷場所R1に到着するタイミングと、出荷商品の準備が出荷場所R1で終了するタイミングと、の相違を抑制できる準備の開始タイミングを出荷場所R1に通知できる。
これらの構成によれば、制御装置100の決定部120は、2つの出荷場所R1及びR2のそれぞれを基準とし、かつ、2つの出荷場所R1及びR2のそれぞれにおける準備時間に基づいて定められた近傍領域N1及びN2の境界B1及びB2までの領域距離L1及びL2が予め定められた条件を満足するように、目的地の地点PDを決定する。
このため、制御装置100は、注文が複数回確定された場合に生じる総到着待ち時間の増加を抑制できる位置に目的地の地点PDを決定できる。本実施例では、予め定められた条件は、領域距離L1と領域距離L2との和が最小であるという条件であるため、制御装置100は、総到着待ち時間を最小にできる位置に目的地の地点PDを決定できる。
これらの構成によれば、制御装置100の決定部120は、配送機600が出荷場所R1又はR2に到着するタイミングと、商品の準備が終了して当該商品が出荷場所R1又はR2で出荷可能となるタイミングと、の相違を抑制できる位置に目的地の地点PDを決定する。また、制御装置100の制御部130は、決定された目的地の地点PDへ配送機600を移動させる制御と、決定された目的地の地点PDから又は目的地の地点PDへ向かう途中の地点から出荷場所R1又はR2へ配送機600を移動させる制御と、を行う。さらに、制御部130は、商品を格納した配送機600を、出荷場所R1又はR2から配送先まで移動させる制御をさらに行う。これらのため、制御装置100は、商品である荷物の配送効率の低下を抑制できる。本実施例では、荷物の配送効率は、配送機600が配送する荷物の総数を、配送機600が目的地の地点PDを出発してから目的地の地点PDに帰還するまでの配送時間の総和で除算することで算出されるが、これに限定される訳ではない。
<実施例の変形例1>
実施例では、2個の出荷場所R1及びR2が存在する場合について説明したが、これに限定される訳では無く、K個(但し、Kは3以上の整数)の出荷場所が存在しても良い。
すなわち、制御装置100の取得部110は、K個(但し、Kは3以上の整数)の出荷場所のそれぞれについて推定準備時間情報を取得し、決定部120は、K個の出荷場所についてそれぞれ取得された推定準備時間情報に基づいて目的地の地点PDを決定しても良い。
さらに、制御装置100は、例えば、30分といった予め定められた間隔で、K個の出荷場所のそれぞれが指定可能であるか否かを判別しても良い。
このために、本変形例に係る制御装置100の取得部110は、予め定められた間隔で、1番の出荷場所R1が存在する店舗ST1の端末装置901を宛先として、営業中であるか否かを問い合わせる営業問合せをデータ通信回路104へ出力する。
本変形例に係る店舗ST1の従業員は、店舗ST1の営業が開始されるタイミングで、店舗ST1が営業しているか否かを表すフラグの値を、店舗ST1が営業していることを表す値「TRUE」に変更させる操作を、店舗ST1の端末装置901に行う。端末装置901は、当該操作に従って、当該フラグの値を値「TRUE」に変更する。また、店舗ST1の従業員は、店舗ST1の営業が終了されるタイミングで、当該フラグの値を、店舗ST1が営業していないことを表す値「FALSE」に変更させる操作を端末装置901に行う。端末装置901は、当該操作に従って、当該フラグの値を値「FALSE」に変更する。さらに、端末装置901は、営業問合せを制御装置100から受信すると、当該フラグの値が値「TRUE」であると、営業中であることを知らせる営業中通知を返信し、当該フラグの値が値「FALSE」であると、営業中通知を返信しない。
本変形例に係る制御装置100の判別部140は、営業問合せが送信されてから予め定められた時間が経過するまでに営業中通知をデータ通信回路104が受信した場合、店舗ST1が営業しているため、1番の出荷場所R1が指定可能であると判別する。これに対して、判別部140は、営業問合せが送信されてから予め定められた時間が経過するまでに営業中通知をデータ通信回路104が受信しなかった場合、店舗ST1が営業しておらず、1番の出荷場所R1を指定不能であると判別する。同様に、制御装置100は、2番の出荷場所R2と、3番からK番の出荷場所と、が指定可能であるか否かを判別する。
その後、本変形例に係る制御装置100の決定部120は、K個の出荷場所から指定不能であると判別された出荷場所を除外し、除外されなかった複数の出荷場所についてそれぞれ取得された推定準備時間情報に基づいて目的地の地点PDを決定する。
これらの構成によれば、定休日であったり、営業時間外であったりするためでなく、臨時休業のために、K個の出荷場所のいずれか1つ以上が指定不能である場合であっても、配送機600の配送効率の低下を抑制できる位置に目的地の地点PDを決定できる。
<実施例の変形例2>
実施例では、近傍領域N1を決定する基礎とされた距離D1、及び、近傍領域N2を決定する基礎とされた距離D2と、目的地の地点PDから近傍領域N1の境界B1までの領域距離L1、及び、目的地の地点PDから近傍領域N2の境界B2までの領域距離L2と、は、三次元空間におけるユークリッド距離であると説明した。また、近傍領域N1及びN2は、球体領域であると説明した。
しかし、これに限定される訳では無く、距離D1及びD2と、領域距離L1及びL2と、は、水平面におけるユークリッド距離であり、近傍領域N1及びN2は円形領域であり、近傍領域N1及びN2それぞれの境界B1及びB2は円であっても良い。また、距離D1及びD2と、領域距離L1及びL2と、は、水平面におけるマンハッタン距離であっても良いし、三次元空間におけるマンハッタン距離であっても良い。さらに、距離D1及びD2と、領域距離L1及びL2と、は、ユークリッド距離又はマンハッタン距離の二乗であっても良い。
さらに、距離D1及びD2と、領域距離L1及びL2と、は、配送機600が移動可能な経路上の距離であっても良い。この場合、制御装置100の決定部120は、出荷場所R1から距離D1だけ離れた近傍領域N1の境界B1を決定するために、配送機600が行う、図13のステップS52と同様の処理を実行することで、出荷場所R1に到る複数の経路を決定すれば良い。次に、決定部120は、決定された複数の経路それぞれについて、出荷場所R1からの経路上の距離が距離D1である地点を決定し、複数の経路それぞれについて決定された地点を含むように多面体形状又は多角形状の境界B1を決定すれば良い。決定部120は、近傍領域N2の境界B2も同様に決定すれば良い。
さらに、制御装置100の決定部120は、図13のステップS52と同様の処理を実行することで、目的地の地点PDから境界B1に到る複数の経路を決定し、決定された複数の経路それぞれの経路上の距離を算出し、算出された最小の距離を領域距離L1とすれば良い。決定部120は、領域距離L2も同様に決定すれば良い。
これらの構成によれば、制御装置100の決定部120は、推定準備時間に基づいて距離D1を算出し、算出された距離D1に基づいて多面体形状又は多角形状の境界B1を決定する。その後、注文が確定すると、決定部120は、推定準備時間に基づいて決定された近傍領域N1の境界B1を、確定された注文の対象とされた出荷商品の準備時間に基づいて境界B1’に補正する。このため、制御装置100は、既に決定されている境界B1を補正して境界B1’を決定するため、境界B1を補正せずに、多面体形状又は多角形状といった、球体形状又は円形状よりも複雑な形状の境界B1’を決定する場合と比べて、境界B1’の決定に要する計算量を軽減できる。また、制御装置100は、既に決定されている境界B1を補正して境界B1’を決定するため、境界B1を補正せずに境界B1’を決定する場合と比べて、境界B1’の決定に要する時間を短くできる。
<実施例の変形例3>
実施例では、制御装置100の決定部120は、出荷場所R1まで配送機600が移動するのに要する時間を、配送機600の設定速度に基づいて算出すると説明した。しかし、これに限定される訳では無く、決定部120は、出荷場所R1まで配送機600が移動するのに要する時間を、配送機600の移動経路と、当該移動経路の交通状況と、に基づいて算出する。
このために、制御装置100の決定部120は、配送機600が行う、図13のステップS52と同様の処理を実行することで、出荷場所R1に到る複数の経路を決定する。次に、制御部130は、決定された複数の経路に含まれる複数のエッジを表す情報を含み、当該複数のエッジそれぞれの交通状況を表す情報を返信するように求める返信リクエストを生成する。その後、制御部130は、生成された返信リクエストを、不図示の交通サーバを宛先としてデータ通信回路104へ出力する。
本変形例において、エッジを表す情報は、エッジの始点ノードの緯度、経度、及び、高度と、当該エッジの終点ノードの緯度、経度、及び、高度と、を表す情報である。また、エッジの交通状況は、当該エッジを通過するのに要する通過時間を含む。エッジの通過時間は、単位時間当たり当該エッジを通過した複数の配送機及び複数の自動車の1つ以上が当該エッジを通過するのに要した時間の平均値であるが、最大値又は最小値であっても良い。
制御装置100のデータ通信回路104が交通サーバから交通状況を表す情報を受信すると、取得部110は、当該情報をデータ通信回路104から取得する。次に、決定部120は、決定された複数の経路それぞれについて、出荷場所R1まで配送機600が移動するのに要する時間が推定準備時間となる地点を、取得された情報で表されるエッジの通過時間に基づいて決定する。その後、決定部120は、複数の経路それぞれについて決定された地点を含むように近傍領域N1の境界B1を決定する。
同様に、制御装置100は、出荷場所R2まで配送機600が移動するのに要する時間を、配送機600の移動経路と、当該移動経路の交通状況と、に基づいて算出し、算出された時間に基づいて近傍領域N2の境界B2を決定する。
本変形例において、制御装置100の取得部110は、不図示の交通サーバから受信されたエッジの交通状況を表す情報を取得すると説明したが、これに限定される訳ではない。情報記憶部190は、エッジを表す情報と、当該エッジの交通状況を表す情報と、を対応付けて予め複数記憶しており、取得部110は、複数のエッジを表す情報のそれぞれと対応づけられた交通状況を表す情報を情報記憶部190から取得しても良い。
制御装置100の情報記憶部190が記憶しているエッジの交通状況を表す情報は、配送機600が当該エッジを過去に通過するのに要した時間の平均値を表す情報であっても良いし、最小値を表す情報であっても良いし、最大値を表す情報であっても良い。また、情報記憶部190が記憶しているエッジの交通状況を表す情報は、単位時間当たり当該エッジを過去に通過した複数の配送機及び複数の自動車の1つ以上が当該エッジを通過するのに要した時間の平均値を表す情報であっても良いし、最小値を表す情報であっても良いし、最大値を表す情報であっても良い。
本変形例において、エッジの交通状況は、当該エッジの通過時間を含むと説明したが、これに限定される訳ではなく、当該エッジの制限速度を含んでも良い。この場合、制御装置100の決定部120は、決定された複数の経路それぞれについて、出荷場所R1まで配送機600が制限速度で移動するのに要する時間が推定準備時間となる地点を、取得部110で取得された情報で表されるエッジの制限速度に基づいて決定すれば良い。その後、決定部120は、複数の経路それぞれについて決定された地点を含むように近傍領域N1の境界B1を決定すれば良い。
<実施例の変形例4>
実施例では、制御装置100の決定部120は、目的地の地点PDから近傍領域N1の境界B1までの距離である領域距離L1と、目的地の地点PDから近傍領域N2の境界B2までの距離である領域距離L2と、が予め定められた条件を満足するように目的地の地点PDを決定すると説明したが、これに限定される訳では無い。
本変形例に係る制御装置100の決定部120は、目的地の地点PDから近傍領域N1の境界B1まで配送機600が移動するのに要する領域時間T1と、目的地の地点PDから近傍領域N2の境界B2まで配送機600が移動するのに要する領域時間T2と、が予め定められた条件を満足するように目的地の地点PDを決定する。
本変形例では、予め定められた条件は、領域時間T1と領域時間T2との和が最小であるという条件である。また、本変形例では、配送機600は、予め設定された設定速度で移動する。これらのため、目的地の地点PDから境界B1までの領域距離L1と、目的地の地点PDから境界B2までの領域距離L2と、の和を最小にする目的地の地点PDは、領域時間T1と領域時間T2との和を最小にする。逆に、領域時間T1と領域時間T2との和を最小にする目的地の地点PDは、領域距離L1と領域距離L2との和を最小にする。このため、本変形例に係る制御装置100の決定部120は、実施例で説明した公知のアルゴリズムを用いて、領域距離L1と領域距離L2の和を最小にする地点を目的地の地点PDに決定する。
これに対して、配送機600が交通状況に応じた速度で移動する場合、制御装置100の決定部120は、領域距離L1と領域距離L2の和を最小にする地点を決定してから、当該地点と、当該地点から予め定められた距離以下の距離だけ離れたJ個(但し、Jは自然数)の点と、のそれぞれを、目的地の地点PDの候補に決定する。次に、決定部120は、予め定められた規則、又は、ソフトウェア乱数に基づいて、目的地の地点PDのJ+1個の候補の番号を1番からJ+1番のいずれかに決定する。
その後、制御装置100の決定部120は、実施例の変形例3で説明した方法で、1番の候補について、当該1番の候補から近傍領域N1の境界B1まで配送機600が移動するのに要する最短の時間である領域時間T1と、当該1番の候補から近傍領域N2の境界B2まで配送機600が移動するのに要する最短の時間である領域時間T2と、の合計時間を算出する。同様に、決定部120は、2番からJ+1番の候補について合計時間を算出し、算出されたJ+1個の合計時間の内で、最小の合計時間が算出された候補を目的地の地点PDに決定する。
<実施例の変形例5>
実施例では、制御装置100の決定部120は、領域距離L1と領域距離L2とが予め定められた条件を満足するように目的地の地点PDを決定すると説明した。また、実施例では、予め定められた条件は、領域距離L1と領域距離L2との合計が最小であるという条件であると説明したが、これらに限定される訳では無い。予め定められた条件は、配送機600が待機可能な場所(以下、待機場所という)に目的地の地点PDが位置し、かつ、領域距離L1と領域距離L2との合計が最小であるという条件であっても良い。
このために、制御装置100の情報記憶部190は、配送機600が待機可能な場所の位置を緯度、経度、及び、高度で表す位置情報を予めI個(但し、Iは自然数)記憶している。決定部120は、I個の位置情報の番号を1番からI番のいずれかに決定し、1番の位置情報で表される位置に在る待機場所について、当該待機場所から境界B1までの領域距離L1と、当該待機場所から境界B2までの領域距離L2と、の合計距離を算出する。同様に、決定部120は、2番からI番の位置情報について合計距離を算出し、算出されたI個の合計距離の内で、最小の合計距離が算出された待機場所を目的地の地点PDに決定する。
本変形例では、予め定められた条件は、配送機600が待機可能な場所に目的地の地点PDが位置し、かつ、領域距離L1と領域距離L2との合計が最小であるという条件であると説明したが、これに限定される訳では無い。予め定められた条件は、配送機600が待機可能な場所に目的地の地点PDが位置し、かつ、領域距離L1と領域距離L2との合計に基づいて決定される番号が小さい順に1番からN番(Nは、I以下の自然数)であるという条件であっても良い。
このために、制御装置100の決定部120は、I個の待機場所の番号を合計距離が小さい順に1番からI番のいずれかに決定し、N番以下の番号が決定された待機場所の内で、予め定められた規則、又は、ソフトウェア乱数に基づいて選択された1つの待機場所を、目的地の地点PDに決定すれば良い。
本変形例では、制御装置100の決定部120は、配送機600が待機可能な場所に目的地の地点PDが位置し、かつ、領域距離L1と領域距離L2との合計が最小となるように目的地の地点PDを決定すると説明したが、これに限定される訳では無い。決定部120は、配送機600が待機可能な場所に目的地の地点PDが位置し、かつ、領域時間T1と領域時間T2との合計が最小となるように目的地の地点PDを決定しても良い。
また、予め定められた条件は、配送機600が待機可能な場所に目的地の地点PDが位置し、かつ、領域時間T1と領域時間T2との合計に基づいて決定される番号が小さい順に1番からN番(Nは、I以下の自然数)であるという条件であっても良い。
また、予め定められた条件は、領域距離L1と領域距離L2との合計が予め定められた距離よりも短くなるという条件であっても良いし、予め定められた条件は、領域時間T1と領域時間T2との合計が予め定められた時間よりも短くなるという条件であっても良い。
<実施例の変形例6>
実施例では、予め定められた条件は、領域距離L1と領域距離L2との合計が最小となる条件であると説明したが、これに限定される訳では無い。予め定められた条件は、領域距離L1と領域距離L2との合計がより長くなる地点よりも、より短くなる地点を優先して目的地の地点PDに決定するための条件ならば、どのような条件でも良い。
また、予め定められた条件は、領域時間T1と領域時間T2との合計がより長くなる地点よりも、より短くなる地点を優先して目的地の地点PDに決定するための条件ならば、どのような条件でも良い。
<実施例の変形例7>
制御装置100の決定部120は、目的地の地点PDが近傍領域N1の内部に位置する場合、領域距離L1を「0」メートルに補正しても良い。また、決定部120は、目的地の地点PDが近傍領域N2の内部に位置する場合、領域距離L2を「0」メートルに補正しても良い。
目的地の地点PDが近傍領域N1の内部に位置する場合に領域距離L1を「0」メートルに補正するのは、推定商品が、確定された注文の対象とされた出荷商品と同じであり、かつ、出荷場所R1が注文において指定される場合、目的地の地点PDが近傍領域N1の内部に位置している限り、何処に目的地の地点PDが位置していても、配送機600は、出荷場所R1で商品の準備が終わる前に、出荷場所R1へ到着する。このため、目的地の地点PDが近傍領域N1の内部に位置する場合には、領域距離L2に基づいて、出荷場所R2が指定される場合に生じる到着待ち時間を最小にする地点に目的地の地点PDを決定すれば、配送機600の配送効率の低下を確実に抑制できるからである。同様に、目的地の地点PDが近傍領域N2の内部に位置する場合に領域距離L2を「0」メートルとするのは、領域距離L1に基づいて、出荷場所R1が指定される場合に生じる到着待ち時間を最小にする地点に目的地の地点PDを決定すれば、配送機600の配送効率の低下を確実に抑制できるからである。
また、制御装置100の決定部120は、目的地の地点PDが近傍領域N1の内部に位置する場合、領域距離L1を補正前よりも短い距離に補正しても良いし、目的地の地点PDが近傍領域N2の内部に位置する場合、領域距離L2を補正前よりも短い距離に補正しても良い。
さらに、制御装置100の決定部120は、目的地の地点PDが近傍領域N1の外部に位置する場合、領域距離L1を「0」メートルに補正し、目的地の地点PDが近傍領域N2の外部に位置する場合、領域距離L2を「0」メートルに補正しても良い。
目的地の地点PDが近傍領域N1の外部に位置する場合に領域距離L1を「0」メートルに補正するのは、推定商品が出荷商品と同じであり、かつ、出荷場所R1が指定される場合、目的地の地点PDが近傍領域N1の外部に位置している限り、何処に目的地の地点PDが位置していても、配送機600は、出荷場所R1で商品の準備が終わった後に、出荷場所R1へ到着する。このため、目的地の地点PDが近傍領域N1の外部に位置する場合には、領域距離L2に基づいて、出荷場所R2が指定される場合に生じる準備待ち時間を最小にする地点に目的地の地点PDを決定すれば、出荷場所R1及びR2の利用効率の低下を確実に抑制できるからである。
また、制御装置100の決定部120は、目的地の地点PDが近傍領域N1の外部に位置する場合、領域距離L1を補正前よりも短い距離に補正しても良いし、目的地の地点PDが近傍領域N2の外部に位置する場合、領域距離L2を補正前よりも短い距離に補正しても良い。
<実施例の変形例8>
実施例では、予め定められた条件は、領域距離L1と領域距離L2との合計が最小となる条件であると説明したが、これに限定される訳では無い。本変形例に係る予め定められた条件は、1番の出荷場所R1を指定する注文が確定する確率(以下、1番の確率という)で重み付けられた領域距離L1と、2番の出荷場所R2を指定する注文が確定する確率(以下、2番の確率という)で重み付けられた領域距離L2と、の和である領域距離の期待値が最小となる条件である。
本変形例に係る制御装置100の情報記憶部190は、注文が確定された回数を表す総確定回数情報を予め記憶している。また、情報記憶部190は、店舗IDと、当該店舗IDで識別される店舗ST1又はST2に在る出荷場所R1又はR2を指定する注文が確定された回数を表す確定回数情報と、を対応付けて予め記憶している。
制御装置100の判別部140は、図14のステップS63において、注文が受け付けられたと判別すると(ステップS63;Yes)、注文が確定したと判別する。その後、取得部110は、情報記憶部190が記憶する総確定回数情報を取得し、制御部130は、取得された総確定回数情報で表される回数を値「1」だけインクリメントした後に、インクリメント後の回数を表す総確定回数情報に、情報記憶部190が記憶する総確定回数情報を変更する。
また、制御装置100の取得部110は、ステップS61で取得された店舗IDに対応付けて情報記憶部190が記憶している確定回数情報を取得する。次に、制御部130は、取得された確定回数情報で表される回数を値「1」だけインクリメントした後に、インクリメント後の回数を表す確定回数情報に、ステップS61で取得された店舗IDに対応付けて情報記憶部190が記憶している確定回数情報を変更する。
さらに、制御装置100の取得部110は、図4のステップS04において、情報記憶部190が記憶する総確定回数情報を取得する。また、取得部110は、1番の出荷場所R1が在る店舗ST1の店舗IDに対応付けられた確定回数情報(以下、1番の確定回数情報という)を情報記憶部190から取得する。同様に、取得部110は、2番の出荷場所R2が在る店舗ST2の店舗IDに対応付けられた確定回数情報(以下、2番の確定回数情報という)を取得する。
その後、制御装置100の取得部110は、1番の確定回数情報で表される回数を、総確定回数情報で表される回数で除算することで1番の確率を取得する。同様に、取得部110は、2番の確定回数情報で表される回数を、総確定回数情報で表される回数で除算することで2番の確率を取得する。
次に、制御装置100の決定部120は、例えば、最小自乗法を含む公知のアルゴリズムを用いて、1番の確率で重み付けられた領域距離L1と、2番の確率で重み付けられた領域距離L2と、の和を最小にする目的地の地点PDを決定する。
本変形例に係る予め定められた条件は、1番の確率で重み付けられた領域距離L1と、2番の確率で重み付けられた領域距離L2と、の和である領域距離の期待値が最小となる条件であり、かつ、制御装置100の決定部120は、領域距離の期待値が最小となる目的地の地点PDを決定すると説明した。しかし、これらに限定される訳では無い。予め定められた条件は、1番の確率で重み付けられた領域時間T1と、2番の確率で重み付けられた領域時間T2と、の和である領域時間の期待値が最小となる条件であり、かつ、制御装置100の決定部120は、領域時間の期待値が最小となる目的地の地点PDを決定しても良い。
<実施例の変形例9>
実施例では、店舗ST1の推定商品は、店舗ST1で販売される複数の商品の内で、注文が確定される確率が最も高い商品であると説明したが、これに限定される訳では無い。
店舗ST1の推定商品は、店舗ST1で販売される複数の商品の内で、注文が確定される確率が予め定められた確率よりも高い1又は複数の商品の内で、予め定められた規則、又は、ソフトウェア乱数に基づいて選択された1つの商品であっても良い。同様に、店舗ST2の推定商品は、店舗ST2で販売される複数の商品の内で、注文が確定される確率が予め定められた確率よりも高い1又は複数の商品の内で、予め定められた規則、又は、ソフトウェア乱数に基づいて選択された1つの商品であっても良い。
また、店舗ST1の推定商品は、店舗ST1で販売され、かつ、注文が確定される確率が大きい順に1番から予め定められた番号までの1又は複数の商品の内で、予め定められた規則、又は、ソフトウェア乱数に基づいて選択された1つの商品であっても良い。同様に、店舗ST2の推定商品は、店舗ST2で販売され、かつ、注文が確定される確率が大きい順に1番から予め定められた番号までの1又は複数の商品の内で、予め定められた規則、又は、ソフトウェア乱数に基づいて選択された1つの商品であっても良い。
さらに、店舗ST1の推定商品は、店舗ST1で販売される複数の商品の内で、準備時間が最も長い商品であっても良いし、準備時間が最も短い商品であっても良い。同様に、店舗ST2の推定商品は、店舗ST2で販売される複数の商品の内で、準備時間が最も長い商品であっても良いし、準備時間が最も短い商品であっても良い。
また、店舗ST1の推定商品は、準備時間の長さが、店舗ST1で販売される複数の商品の準備時間の平均値に等しい実在の商品、若しくは、仮想の商品、又は、当該平均値に最も近い実在の商品であっても良い。同様に、店舗ST2の推定商品は、準備時間の長さが、店舗ST2で販売される複数の商品の準備時間の平均値に等しい実在の商品、若しくは、仮想の商品、又は、当該平均値に最も近い実在の商品であっても良い。複数の商品の準備時間の平均値は、当該複数の商品の準備時間の合計を、当該複数の商品の数で除算した値であっても良い。
さらに、店舗ST1の推定商品は、準備時間の長さが、店舗ST1で販売される複数の商品の準備時間の期待値に等しい実在の商品、若しくは、仮想の商品、又は、当該期待値に最も近い実在の商品であっても良い。すなわち、推定商品の準備時間の長さは、店舗ST1でM個(但し、Mは自然数)の商品が販売される場合、1番からM番の商品の重付準備時間の総和であっても良い。1番の商品の重付準備時間は、1番の商品の注文が確定される確率で重み付けられた1番の商品の準備時間であり、2番からM番の商品の重付準備時間は、2番からM番の商品の注文が確定される確率でそれぞれ重み付けられた2番からM番の商品の準備時間である。同様に、店舗ST2の推定商品は、準備時間の長さが、店舗ST2で販売される複数の商品の準備時間の期待値に等しい実在の商品、若しくは、仮想の商品、又は、当該期待値に最も近い実在の商品であっても良い。
<実施例の変形例10>
実施例では、制御装置100の決定部120は、店舗ST1の推定準備時間を、店舗ST1に出勤している従業員の数(以下、出勤人数という)に基づいて補正し、補正された推定準備時間に基づいて近傍領域N1を決定しても良い。
このために、店舗ST1に出勤している従業員の内で、管理職に就いている従業員は、例えば、予め定められた時刻に、出勤人数を入力する操作を店舗ST1の端末装置901に行い、端末装置901は、当該操作に従って出勤人数を表す情報を生成し、生成された情報を記憶する。その後、端末装置901は、出勤人数を報告するように求める報告リクエストを制御装置100から受信すると、出勤人数を表す情報を制御装置100へ返信する。
制御装置100の取得部110は、図4のステップS01において、図6の推定準備時間テーブルから店舗ST1の推定準備時間情報を取得した後、店舗ST1の端末装置901を宛先として、報告リクエストをデータ通信回路104へ出力する。その後、制御装置100のデータ通信回路104が、報告リクエストを端末装置901へ送信した後に、出勤人数を表す情報を端末装置901から受信すると、取得部110は、当該情報をデータ通信回路104から取得する。
次に、制御装置100の決定部120は、取得された情報で表される店舗ST1の出勤人数に基づいて、推定準備時間情報で表される店舗ST1の推定準備時間を補正する。このために、取得部110は、店舗ST1の店舗IDと情報記憶部190が予め対応付けて記憶している基準の人数を表す情報を取得する。次に、決定部120は、例えば、店舗ST1の出勤人数と店舗ST1の基準の人数との差の絶対値に正の定数C1を乗算することで、当該差の絶対値が大きい程、大きい補正値を決定する。定数C1の好適な値は、当業者は、実験により定めることができる。
その後、制御装置100の決定部120は、出勤人数が基準の人数よりも多い場合に、決定された正の補正値を推定準備時間から減算することで、補正前よりも短い時間に推定準備時間を補正する。これに対して、決定部120は、出勤人数が基準の人数よりも少ない場合に、決定された正の補正値を推定準備時間に加算することで、補正前よりも長い時間に推定準備時間を補正する。また、これらに対して、決定部120は、出勤人数が基準の人数に等しい場合に、推定準備時間を補正前と同じ時間に補正する。その後、決定部120は、店舗ST1の補正後の推定準備時間に基づいて近傍領域N1を決定する。
また、制御装置100の決定部120は、店舗ST2の推定準備時間を、店舗ST2の出勤人数に基づいて補正し、店舗ST2の補正後の推定準備時間に基づいて近傍領域N2を決定する。
さらに、制御装置100の決定部120は、図16のステップS82において、店舗ST1の推定準備時間を店舗ST1の出勤人数に基づいて補正し、店舗ST2の推定準備時間を店舗ST2の出勤人数に基づいて補正する。さらに、決定部120は、ステップS83において、店舗ST1の準備時間を店舗ST1の出勤人数に基づいて補正し、店舗ST2の準備時間を店舗ST2の出勤人数に基づいて補正する。その後、決定部120は、ステップS84において、補正後の店舗ST1の推定準備時間と、補正後の店舗ST1の準備時間と、に基づいて近傍領域N1の境界B1を補正する。同様に、決定部120は、補正後の店舗ST2の推定準備時間と、補正後の店舗ST2の準備時間と、に基づいて近傍領域N2の境界B2を補正する。
<実施例の変形例11>
実施例の変形例10では、制御装置100の決定部120は、店舗ST1の出勤人数に基づいて、店舗ST1の準備時間及び推定準備時間を補正すると説明したが、これに限定される訳では無い。本変形例に係る決定部120は、注文が確定しているが店舗ST1において準備が終了していない商品の数(以下、準備が未終了の商品数という)に基づいて、店舗ST1の準備時間及び推定準備時間を補正する。確定している注文は、店舗ST1に来店した顧客の注文を含んでも含まなくても良い。
このために、本変形例に係る店舗ST1の端末装置901は、起動すると、準備が未終了の商品数を表すカウンタの値を値「0」で初期化する。次に、店舗ST1の従業員は、注文を受け付けると、当該カウンタの値を値「1」だけ増加させる操作を端末装置901に行い、端末装置901は、当該操作に従って当該カウンタの値を値「1」だけ増加させる。また、従業員は、受け付けられた商品の準備を終了すると、当該カウンタの値を値「1」だけ減少させる操作を行い、端末装置901は、当該操作に従って当該カウンタの値を値「1」だけ減少させる。端末装置901は、準備が未終了の商品数を報告するように求める報告リクエストを制御装置100から受信すると、当該カウンタの値を表す情報を制御装置100へ返信する。
本変形例に係る制御装置100の取得部110は、店舗ST1の端末装置901を宛先として、報告リクエストをデータ通信回路104へ出力する。その後、制御装置100のデータ通信回路104が、準備が未終了の商品数を表す情報を受信すると、取得部110は、データ通信回路104から当該情報を取得する。次に、決定部120は、取得された情報で表される商品数に基づいて、店舗ST1の準備時間及び推定準備時間を補正する。
このために、制御装置100の決定部120は、例えば、店舗ST1における準備が未終了の商品数に正の定数C2を乗算することで、当該商品数が多い程、大きい補正値を決定する。定数C2の好適な値は、当業者は、実験により定めることができる。
その後、制御装置100の決定部120は、決定された正の補正値を準備時間及び推定準備時間にそれぞれ加算することで、補正前よりも長い時間に準備時間及び推定準備時間を補正する。
また、制御装置100の決定部120は、店舗ST2における準備が未終了の商品数に基づいて、店舗ST2の準備時間及び推定準備時間を補正する。
<実施例の変形例12>
店舗ST1の出勤人数に基づいて店舗ST1の準備時間及び推定準備時間を補正する実施例の変形例10に係る制御装置100と、店舗ST1における準備が未終了の商品数に基づいて店舗ST1の準備時間及び推定準備時間を補正する実施例の変形例11に係る制御装置100と、は、組み合わせることができる。このため、本変形例に係る制御装置100の決定部120は、店舗ST1の出勤人数、及び、店舗ST1における準備が未終了の商品数の双方に基づいて、店舗ST1の準備時間及び推定準備時間を補正する。また、本変形例に係る決定部120は、店舗ST2の出勤人数、及び、店舗ST2における準備が未終了の商品数の双方に基づいて、店舗ST2の準備時間及び推定準備時間を補正する。
<実施例の変形例13>
制御装置100は、開始タイミング通知が店舗ST1の端末装置901へ送信されてから、端末装置901から送信された応答が受信されるまでの応答時間に基づいて、出荷場所R1への配送機600の到着時刻を遅延させる制御を行っても良い。
このために、出荷場所R1が在る店舗ST1の端末装置901は、制御装置100から開始タイミング通知を受信すると、当該開始タイミング通知を表示出力又は音声出力する。本変形例では、店舗ST1の従業員は、例えば、店舗ST1に来店した顧客が注文した商品の準備をしていたため、開始タイミング通知が表示出力又は音声出力されたタイミングから「5分」が経過したタイミングで、開始タイミング通知を確認した場合を具体例に挙げて説明する。
店舗ST1の従業員は、開始タイミング通知を確認すると、注文された商品の準備を開始することを知らせる通知を、開始タイミング通知に対する応答として送信させるための操作を端末装置901に行う。端末装置901は、当該操作が行われると、当該応答を制御装置100へ送信する。
本変形例に係る制御装置100の制御部130が、図16のステップS90において、店舗ST1の端末装置901を宛先として、開始タイミング通知をデータ通信回路104へ出力すると、取得部110は、不図示のハードウェアタイマー又はソフトウェアタイマーを用いて計時を開始する。
制御装置100のデータ通信回路104が開始タイミング通知を端末装置901へ送信した後に、端末装置901から応答を受信すると、制御装置100の取得部110は、開始タイミング通知の送信から応答の受信までに計時された時間「5分」を応答時間として取得する。
その後、本変形例では、制御装置100の決定部120は、配送機600の出荷場所R1への到着時刻を遅延させる遅延時間を応答時間「5分」に決定する。しかし、これに限定される訳では無く、決定部120は、応答時間「5分」に基づいていれば、遅延時間の長さをどのような長さに決定しても良い。例えば、決定部120は、遅延時間の長さを、応答時間「5分」よりも長く決定しても良いし、応答時間「5分」よりも短く決定しても良い。
次に、制御装置100の制御部130は、遅延時間「5分」を表す情報を含み、かつ、配送機600が移動中の経路を配送機600が移動し続けた場合に出荷場所R1へ到着する到着時刻が、遅延時間「5分」だけ遅くなる経路(以下、遅延経路という)に、配送機600の移動経路を変更することを命じる経路変更命令を生成する。その後、制御部130は、生成された経路変更命令を、配送機600を宛先としてデータ通信回路104へ出力することで、出荷場所R1への配送機600の到着時刻を遅延させる遅延制御を行ってから、通知制御処理の実行を終了する。
配送機600のCPU691は、図15の移動先移動処理を実行することで出荷場所R1へ移動している間に、データ通信回路694が経路変更命令を受信すると、データ通信回路694から経路変更命令を取得する。次に、CPU691は、位置計測回路696から出力される信号に基づいて配送機600の位置を特定し、移動経路を表す情報に基づいて、配送機600が移動中の移動経路における配送機600の位置から出荷場所R1までの移動距離を算出する。その後、CPU691は、フラッシュメモリ693bが記憶する設定速度を表す情報を取得し、取得された情報で表される設定速度で移動距離を除算する。これにより、CPU691は、配送機600が移動中の移動経路を移動し続けた場合に、配送機600の位置から出荷場所R1まで移動するのに要する移動時間を算出する。
次に、配送機600のCPU691は、経路変更命令から遅延時間「5分」を表す情報を取得した後、配送機600の位置から出荷場所R1への経路を複数探索する。その後、CPU691は、探索された複数の経路の内で、移動に要する時間が、算出された移動時間よりも遅延時間「5分」だけ遅い経路を、遅延経路として決定する。次に、CPU691は、移動経路を遅延経路に変更して、図15の移動先移動処理の実行を継続する。これにより、変更前の移動経路を移動し続けた場合に配送機600が出荷場所R1へ到着するタイミングよりも遅延時間「5分」だけ遅いタイミングであり、かつ、注文された商品の準備が出荷場所R1で終了するタイミングに、配送機600は、出荷場所R1へ到着する。
これらの構成によれば、制御装置100のデータ通信回路104は、開始タイミング通知に対する応答を出荷場所R1の端末装置901から受信し、制御部130は、開始タイミング通知が送信されてから応答が受信されるまでの応答時間に基づいて、出荷場所R1への配送機600の到着時刻を遅延させる制御を行う。このため、制御装置100は、配送機600が出荷場所R1に到着するタイミングと、荷物である商品の準備が終了して当該商品が出荷場所R1で出荷可能となるタイミングと、の相違を確実に抑制できる。このため、制御装置100は、出荷場所R1の利用効率の低下を確実に抑制できる。
本変形例では、制御装置100は、店舗ST1の応答時間に基づいて、店舗ST1に在る出荷場所R1への配送機600の到着時刻を遅延させる制御を行うと説明したが、これに限定される訳では無い。制御装置100のデータ通信回路104は、店舗ST2の端末装置902へ開始タイミング通知を送信した後に、端末装置902から応答を受信し、制御部130は、開始タイミング通知が送信されてから応答が受信されるまでの応答時間に基づいて、店舗ST2に在る出荷場所R2への配送機600の到着時刻を遅延させる制御を行っても良い。
<実施例の変形例14>
実施例の変形例13では、制御装置100は、応答時間に基づいて配送機600の移動経路を制御すると説明したが、これに限定される訳では無い。制御装置100は、応答時間に基づいて配送機600の移動速度を制御しても良い。
このために、制御装置100の制御部130は、遅延時間「5分」を表す情報を含み、かつ、予め設定された設定速度で配送機600が移動し続けた場合に出荷場所R1へ到着する到着時刻が、遅延時間「5分」だけ遅くなる速度(以下、遅延速度という)に、配送機600の移動速度を変更することを命じる速度変更命令を生成する。その後、制御部130は、生成された速度変更命令を、配送機600を宛先としてデータ通信回路104へ出力する。
配送機600のCPU691は、図15の移動先移動処理の処理を実行することで出荷場所R1へ移動している間に、データ通信回路694が速度変更命令を受信すると、データ通信回路694から速度変更命令を取得する。次に、CPU691は、取得された速度変更命令から、遅延時間「5分」を表す情報を取得する。また、CPU691は、配送機600の位置から出荷場所R1までの移動距離を算出する。さらに、CPU691は、フラッシュメモリ693bから配送機600の設定速度を表す情報を取得する。その後、CPU691は、算出された移動距離と、遅延時間「5分」と、設定速度と、に基づいて、配送機600が出荷場所R1へ到着する到着時刻を、遅延時間「5分」だけ遅い時刻とするための減速速度を決定する。
次に、配送機600のCPU691は、設定速度よりも減速速度だけ遅い速度である遅延速度を算出する。その後、CPU691は、図15のステップS75の処理において、算出された遅延速度で移動するための制御信号を駆動回路699へ出力する。これにより、配送機600は、移動速度を設定速度から遅延速度に変えて出荷場所R1まで移動する。
本変形例では、制御装置100は、店舗ST1の応答時間に基づいて、店舗ST1に在る出荷場所R1へ移動する配送機600の移動速度を制御すると説明したが、これに限定される訳ではない。制御装置100は、店舗ST2の応答時間に基づいて、店舗ST2に在る出荷場所R2へ移動する配送機600の移動速度を制御しても良い。
本変形例では、制御装置100は、応答時間に基づいて配送機600の移動速度を制御すると説明したが、これに限定される訳では無い。制御装置100は、応答時間に基づいて決定された停車時間だけ、出荷場所R1又はR2へ移動している配送機600を停車させる制御を行っても良い。停車時間の長さは、応答時間に基づいていれば、どのような長さでも良く、例えば、応答時間の長さと同じであっても良いし、応答時間の長さよりも短くても良いし、応答時間の長さよりも長くても良い。
<実施例の変形例15>
店舗ST1又はST2の応答時間に基づいて、店舗ST1又はST2に在る出荷場所R1又はR2へ移動する配送機600の移動経路を変更させる制御を行う実施例の変形例13に係る制御装置100と、配送機600の移動速度を変更させる制御、又は、配送機600を停止させる制御を行う実施例の変形例14に係る制御装置100と、は、組み合わせることができる。すなわち、本変形例に係る制御装置100の制御部130は、店舗ST1又はST2の応答時間に基づいて、店舗ST1又はST2に在る出荷場所R1又はR2へ移動する配送機600の移動経路を変更させる制御、移動速度を変更させる制御、及び、配送機600を停止させる制御の1つ以上を行う。
<実施例の変形例16>
実施例の説明で参照された図2には、近傍領域N1及びN2の外部に位置する目的地の地点PDが図示されているが、制御装置100の決定部120によって決定される目的地の地点PDの位置は、近傍領域N1及びN2の外部に限定される訳では無い。例えば、図18に示すように、近傍領域N2が近傍領域N1に内包されており、かつ、近傍領域N1の境界B1と近傍領域N2の境界B2とが接点を有さない場合に、決定部120は、近傍領域N1の内部であり、かつ、近傍領域N2の外部の位置に目的地の地点PDを決定する。
また、図19に示すように、近傍領域N1の境界B1と近傍領域N2の境界B2とが接点を有する場合に、制御装置100の決定部120は、当該接点の位置に目的地の地点PDを決定する。さらに、図20に示すように、近傍領域N1の境界B1と近傍領域N2の境界B2とが2つの交点を有する場合に、決定部120は、当該2つの交点の内から、予め定められた規則に基づいて、又は、ソフトウェア乱数に基づいて選択された1つの交点の位置に目的地の地点PDを決定する。
<実施例の変形例17>
実施例では、店舗ST1と、店舗ST1で販売される商品I1と、を指定する注文が受け付けられる場合を具体例として挙げて説明を行ったが、これに限定される訳では無い。店舗ST2と、店舗ST2で販売される不図示の商品I2と、を指定する注文が受け付けられても良い。
また、実施例では、店舗ST1に在る出荷場所R1が指定され、かつ、出荷場所R1の近傍領域N1の境界B1が境界B1’に補正される場合を具体例として挙げて説明を行ったが、これに限定される訳では無い。店舗ST2に在る出荷場所R2が指定され、かつ、出荷場所R2の近傍領域N2の境界B2が補正されても良い。
<実施例の変形例18>
実施例では、制御装置100の決定部120は、推定準備時間に基づいて決定された近傍領域N1の境界B1を、出荷が求められた出荷商品I1の準備時間に基づいて境界B1’に補正し、判別部140は、補正後の境界B1’に配送機600が到着したか否かを判別すると説明した。しかし、これに限定される訳では無い。決定部120は、推定準備時間に基づいて決定された近傍領域N1の境界B1を補正せず、出荷商品I1の準備時間に基づいて新たな近傍領域を決定しても良い。また、判別部140は、決定された新たな近傍領域の境界に配送機600が到着したか否かを判別しても良い。
<実施例の変形例19>
実施例では、配送機600が移動経路を決定すると説明したが、これに限定される訳では無く、制御装置100の決定部120が配送機600の移動経路を決定しても良い。この場合、制御装置100の制御部130は、決定された移動経路を表す情報を含む移動命令、受付命令、又は、移動開始命令を、配送機600を宛先としてデータ通信回路104へ出力すれば良い。また、配送機600は、受信された移動命令、受付命令、又は、移動開始命令に含まれる情報で表される移動経路を移動すれば良い。
<実施例の変形例20>
実施例では、制御装置100は、起動すると、図4に示した目的地決定処理を実行すると説明したが、これに限定される訳では無い。制御装置100は、図7のステップS13でタスクIDを取得しないと判別する(すなわち、集荷配送タスクが存在しないと判別する)タイミングで、予め定められた周期で、又は、仲介業者の従業員によって行われた操作に応じた信号を入力装置105cが出力したタイミングで、目的地決定処理を実行しても良い。
<実施例の変形例21>
実施例では、制御装置100は、配送機600を目的地の地点PDへ移動させるため、図4に示した目的地決定処理を実行し、かつ、準備の開始タイミングを通知するため、図16に示した通知制御処理を実行すると説明した。しかし、これに限定される訳では無く、制御装置100は、目的地決定処理を実行するが、通知制御処理を実行しなくとも良い。また、制御装置100は、通知制御処理を実行するが、目的地決定処理を実行しなくとも良い。
<実施例の変形例22>
実施例では、配送システム1は、無人地上車両である配送機600を備えると説明した。しかし、これに限定される訳ではなく、本変形例に係る配送システム1は、図21に表すような、例えば、ドローン等の無人航空機である配送機700を備える。
配送機700は、配送機700の姿勢及び飛行を制御する制御装置790と、制御装置790の前面から右前方及び左前方、並びに、制御装置790の後面から左後方及び右後方にそれぞれ突出したプロペラアーム701及び702、並びに、703及び704と、を備える。また、配送機700は、プロペラアーム701から704の先端にそれぞれ設置されたプロペラ711から714、及び、制御装置790の制御に従ってプロペラ711から714を回転させる不図示のモータを備える。
さらに、配送機700の制御装置790の下面には、商品を囲持する第1囲持枠721aと、第2囲持枠721bと、を備える。第1囲持枠721aは、商品を梱包する直方体形状の段ボールの側面の内の1つが有する4辺を囲持し、第2囲持枠721bは、第1囲持枠721aによって囲持される面(以下、第1囲持面という)と対向する側面(以下、第2囲持面という)が有する4辺を囲持する。
また、配送機700は、商品の第1囲持面及び第2囲持面の法線方向に延設され、第1囲持枠721aと第2囲持枠721bとを吊持し、かつ、第1囲持枠721aと第2囲持枠721bとの移動方向を延設方向にするガイドレール722a及び722bを、制御装置790の下面に備える。
さらに、配送機700は、制御装置790の制御に従って、第1囲持枠721aと第2囲持枠721bとを互いに近づく方向へ移動させることで、第1囲持枠721aと第2囲持枠721bとに商品を囲持させる不図示のモータを備える。この不図示のモータは、制御装置790の制御に従って、第1囲持枠721aと第2囲持枠721bとを互いに遠ざかる方向に移動させることで、囲持された商品を第1囲持枠721aと第2囲持枠721bとに開放させる。本変形例では、配送機700が商品を集荷するとは、配送機700が第1囲持枠721aと第2囲持枠721bとで商品を囲持することを意味する。
配送機700の制御装置790の上面には、第1囲持枠721aと第2囲持枠721bとに開放された商品を受け取る受取人が撮像範囲に含まれるように光軸及び画角が調整された撮像装置730を備える。配送機700が備える撮像装置730の構成及び機能は、配送機600が備える撮像装置630の構成及び機能と同様である。
配送機700は、制御装置790の下面から下方向に突出しており、制御装置790を支持する支持脚740を備えている。
また、配送機700は、制御装置790の前面に設けられたLiDARセンサ741と、制御装置790の後面に設けられた不図示のLiDARセンサと、を備える。配送機700が備える前面のLiDARセンサ741と後面のLiDARセンサとの構成及び機能は、それぞれ配送機600が備える前面のLiDARセンサ641と後面のLiDARセンサとの構成及び機能と同様である。
配送機700の制御装置790は、ハードウェアである不図示のCPU、RAM、ROM、フラッシュメモリ、データ通信回路、ビデオカード、表示装置、入力装置、位置計測回路、入出力ポート、及び、駆動回路を備える。配送機700の制御装置790が備えるこれらのハードウェアの構成及び機能は、図12に示した配送機600の制御装置690が備えるハードウェアの構成及び機能と同様である。
配送機700の駆動回路は、プロペラ711から714を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路は、CPUが出力する信号に従って、プロペラ711から714を回転させる不図示のモータを駆動させる。また、配送機700の駆動回路は、CPUが出力する信号に従って、第1囲持枠721aと第2囲持枠721bとを移動させる不図示のモータを駆動させる。
配送機700が備える不図示のデータ通信回路が、移動命令を受信すると、配送機700のCPUは、図13に示した目的地移動処理と同様の処理を実行する。これにより、配送機700は、移動命令に従って、設定速度で飛行して、目的地の地点PDへ移動する。
また、配送機700が備えるデータ通信回路が、受付命令を受信すると、配送機700のCPUは、図15に示した移動先移動処理と同様の処理を実行する。これにより、配送機700は、移動命令に従って、出荷場所R1若しくはR2、又は、配送先を移動先として受け付け、配送機の状態を受付状態に遷移させる。次に、配送機700は、設定速度で飛行して、出荷場所R1若しくはR2、又は、配送先である移動先へ移動した後に、配送機の状態を非受付状態に遷移させる。
本変形例では、配送機700は、制御装置790の下面に、商品を囲持する第1囲持枠721a及び第2囲持枠721bと、第1囲持枠721a及び第2囲持枠721bの移動方向を定めるガイドレール722a及び722bと、を備えると説明した。しかし、これに限定される訳では無く、配送機700は、制御装置790の下面に、商品を格納する不図示の格納庫を備えても良い。配送機700が備える格納庫の構成及び機能は、配送機600が備える格納庫620の構成及び機能と同様である。
また、本変形例では、配送機700は、無人航空機であると説明したが、これに限定される訳ではなく、無人飛翔体であっても良い。さらに、本変形例では、配送機700は、プロペラ711から714で揚力及び推力を得るドローンであると説明したが、これに限定される訳ではない。配送機700は、翼を備え、翼で揚力を得えても良いし、空気よりも比重の小さい気体で満たされた気嚢を備え、気嚢で揚力を得えても良い。また、配送機700は、ジェットエンジン又はロケットエンジンを備え、ジェットエンジン又はロケットエンジンで推力を得ても良い。
<実施例の変形例23>
実施例では、注文の対象は、商品であると説明したが、これに限定される訳では無い。注文の対象は、荷物であればどのような物であっても良く、例えば、商取引の対象とされない物であっても良い。また、注文の対象は、物でなく、生き物であっても良い。
実施例では、商品は、飲食物であると説明したが、これに限定される訳では無く、例えば、書籍又は家電機器といった飲食物と異なる物であっても良い。
<実施例の変形例24>
実施例では、出荷場所R1及びR2は、注文された飲食物を販売する店舗ST1及びST2のエントランスの位置であると説明したが、これに限定される訳では無い。出荷場所R1及びR2は、配送機600が停車可能若しくは駐車可能な位置、又は、配送機700が着陸可能な位置であれば、どのような位置であっても良く、例えば、店舗ST1及びST2の店内の位置であっても良いし、店舗ST1及びST2の駐車場の位置であっても良いし、注文された商品を保管している倉庫内の位置であっても良いし、当該倉庫の搬出口の位置であっても良い。
また、実施例では、配送先は、受取人が居住するマンションのエントランスであると説明したが、これに限定される訳では無い。配送先は、配送機600が停車可能若しくは駐車可能な位置、又は、配送機700が着陸可能な位置であれば、どのような位置であっても良い。また、目的地の地点PDも、配送機600が停車可能若しくは駐車可能な位置、又は、配送機700が着陸可能な位置であれば、どのような位置であっても良い。
配送機600が停車又は駐車可能な位置は、例えば、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のエントランス、又は、一軒家の玄関先であっても良い。また、配送機600が停車又は駐車可能な位置は、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のロビーであっても良いし、一軒家、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設の庭、駐車場、河原、又は、公園であっても良い。
また、配送機700が着陸可能な位置は、配送機600が停車又は駐車できる位置に加え、一軒家、共同住宅、オフィスビル、ホテル、商業施設、又は、公共施設のベランダ、又は、屋上であっても良い。
また、配送機600は、目的地の地点PDに到着すると目的地の地点PDで停車又は駐車するのではなく、目的地の地点PDの近傍を予め定められた速度で周回又は往復走行しても良い。目的地の地点PDの近傍は、目的地の地点PDから予め定められた距離だけ離れた境界線よりも当該目的地の地点PD側の領域を意味する。また、配送機600は、目的地の地点PDの近傍で一旦停車した後に、目的地の地点PDの近傍を周回又は往復走行しても良いし、周回又は往復走行した後に停車しても良いし、停車と周回又は往復走行とを繰り返しても良い。
同様に、配送機600は、配送先、又は、出荷場所R1若しくはR2に到着すると、配送先の近傍を、又は、出荷場所R1若しくはR2の近傍を予め定められた速度で周回又は往復走行しても良い。また、配送機600は、配送先の近傍で、又は、出荷場所R1若しくはR2の近傍で一旦停車した後に、配送先の近傍を、又は、出荷場所R1若しくはR2の近傍を周回又は往復走行しても良いし、周回又は往復走行した後に停車しても良いし、停車と周回又は往復走行とを繰り返しても良い。
さらに、配送機700は、目的地の地点PDに到着すると目的地の地点PDに着陸するのではなく、目的地の地点PDの近傍を、予め定められた速度以下の速度で周回若しくは往復飛行しても良いし、又は、予め定められた範囲内の高度でホバリング飛行しても良い。当該目的地の地点PDの近傍は、目的地の地点PDから予め定められた距離だけ離れた境界面よりも目的地の地点PD側の空域を意味する。
同様に、配送機700は、配送先、又は、出荷場所R1若しくはR2に到着すると、配送先の近傍を、又は、出荷場所R1若しくはR2の近傍を、予め定められた速度以下の速度で周回若しくは往復飛行しても良いし、又は、予め定められた範囲内の高度でホバリング飛行しても良い。
<実施例の変形例25>
実施例では、配送機600は、無人地上車両であると説明した。また、実施例の変形例22では、配送機700は、無人航空機であると説明した。しかし、配送機600及び700は、必ずしも無人である必要はなく、制御装置100による制御を除き、自律して移動する物体であれば、人が乗っていても良い。
<実施例の変形例26>
実施例では、制御装置100は、2つの期間において、目的地の地点PDと異なる地点に配送機600が位置すると、配送機600を当該地点PDに向けて移動させる制御(以下、目的地移動制御という)を行うと説明した。
2つの期間の1つは、制御装置100が起動したタイミング(以下、起動タイミングという)から、注文が受け付けられて集荷配送タスクが、起動後最初に、生成されるタイミングまでの第1期間である。注文が受け付けられて集荷配送タスクが生成されると、制御装置100は、出荷場所R1又はR2を移動先として配送機600に受け付けさせるため、第1期間は、起動タイミングから、移動先を配送機600に、起動後最初に、受け付けさせるタイミングまでの期間であっても良い。
2つの期間の残り1つは、生成された全ての集荷配送タスクが削除されるタイミングから、注文が受け付けられて集荷配送タスクが、全集荷配送タスクの削除後最初に、生成されるタイミングまでの第2期間である。商品の配送が終了すると、制御装置100は、集荷配送タスクを削除するため、第2期間は、受け付けられた注文において指定された全配送先について配送機600による配送が終了するタイミングから、移動先を配送機600に、当該全配送先への配送の終了後最初に、受け付けさせるタイミングまでの期間であっても良い。
しかし、制御装置100が目的地移動制御を実行する期間は、これら第1期間と第2期間との双方に限定される訳では無く、第1期間又は第2期間のいずれかであっても良い。
また、実施例では、2つの期間において、目的地移動制御の実行を抑制する、すなわち、目的地移動制御を行わない、と説明した。
2つの期間の1つは、制御装置100の起動後最初に集荷配送タスクが生成されるタイミングから、生成された全ての集荷配送タスクが削除されるタイミングまでの第3期間である。また、2つの期間の残り1つは、生成された全ての集荷配送タスクが削除された後最初に集荷配送タスクが生成されるタイミングから、生成された全ての集荷配送タスクが削除されるタイミングまでの第4期間である。
制御装置100は、集荷配送タスクが生成されると、出荷場所R1又はR2を移動先として受け付けさせ、配送が終了すると、集荷配送タスクを削除する。このため、第3期間は、移動先を配送機600に、起動後最初に、受け付けさせるタイミングから、全ての配送先について配送機600による配送が終了するタイミングまでの期間であっても良い。また、第4期間は、全配送先への配送の終了後最初に、移動先を配送機600に受け付けさせるタイミングから、全配送先について配送機600による配送が終了するタイミングまでの期間であっても良い。
しかし、制御装置100が、目的地移動制御の実行を行わない期間は、これら第3期間と第4期間との双方に限定される訳では無く、第3期間又は第4期間のいずれかであっても良い。
<実施例の変形例27>
実施例では、制御装置100は、状態フラグを記憶しており、図7のステップS11、図8のステップS26、及び、図9のステップS35で、配送機600の状態が非受付状態であると判別すると、状態フラグの値を、非受付状態を表す値に変更すると説明した。しかし、これに限定される訳では無く、制御装置100は、状態フラグを記憶しておらず、かつ、ステップS11、S26、及び、S35の処理を実行しなくとも良い。また、実施例では、制御装置100は、ステップS23及びS32で、配送機600の状態が受付状態であると判別すると、状態フラグの値を、受付状態を表す値に変更すると説明したが、これに限定される訳では無い。制御装置100は、状態フラグを記憶しておらず、かつ、ステップS23及びS32の処理を実行しなくとも良い。
さらに、実施例では、配送機600は、状態フラグを記憶しており、図15のステップS72で、状態フラグの値を、受付状態を表す値に変更することで、配送機600の状態を受付状態に遷移させると説明した。また、実施例では、配送機600は、ステップS78で、状態フラグの値を、非受付状態を表す値に変更することで、配送機600の状態を非受付状態に遷移させると説明した。しかし、これらに限定される訳では無く、配送機600は、状態フラグを記憶しておらず、ステップS72及びS78を実行しなくとも良い。
さらに、実施例では、制御装置100は、図8のステップS21で受付命令を出力した後に、ステップS24で移動開始命令を出力すると説明した。また、制御装置100は、図9のステップS30で受付命令を出力した後に、ステップS33で移動開始命令を出力すると説明した。しかし、これらに限定される訳で無く、制御装置100は、移動開始命令と受付命令とを同時に出力しても良い。
また、これらに限定される訳で無く、制御装置100は、移動開始命令を出力した後に、受付命令を出力しても良い。この場合、配送機600は、移動開始命令を受信すると、図15の移動先移動処理を実行すれば良い。このとき、配送機600は、ステップS73の処理に代えて、受付命令を取得したか否かを判別する処理を実行すれば良い。このとき、配送機600は、受付命令を取得したと判別すると、ステップS71の処理を実行することで、受付命令から移動先の位置情報を取得すれば良い。その後、配送機600は、ステップS74から移動先移動処理の実行を継続すれば良い。
また、これらに限定される訳で無く、制御装置100は、受付命令と移動開始命令とに代えて、出荷場所R1若しくはR2、又は、配送先である移動先の位置情報を含み、当該移動先へ移動することを命じる移動命令を出力しても良い。
<実施例の変形例28>
実施例では、制御装置100は、情報記憶部190を備えると説明したが、これに限定される訳ではない。本変形例に係る制御装置100は、情報記憶部190を備えない。本変形例に係る制御装置100は、例えば、NAS(Network Attached Storage)であり、かつ、情報記憶部190の機能と同様の機能を有する不図示の情報記憶装置とインターネットINを介して接続されており、情報記憶装置が記憶する情報を用いて、図4に示した目的地決定処理、図7から図9に示した移動制御処理、図14に示したタスク生成処理、及び、図16に示した通知制御処理を実行する。本変形例に係る配送システム1は、情報記憶装置を備えても良いし、情報記憶装置を備えなくても良い。
<実施例の変形例29>
実施例では、配送システム1は、制御装置100を備えると説明したが、これに限定される訳ではなく、制御装置100を備えなくとも良い。この場合、図4に示した目的地決定処理、図7から図9に示した移動制御処理、図14に示したタスク生成処理、及び、図16に示した通知制御処理は、配送機600が備える制御装置690のCPU691によって実行されても良い。このため、配送機600のCPU691が、制御装置100の取得部110、決定部120、制御部130、及び、判別部140に相当する不図示の機能部として機能しても良い。また、配送機600のフラッシュメモリ693bが、制御装置100の情報記憶部190に相当する不図示の機能部として機能しても良い。
本発明の実施例及び実施例の変形例1から29は、互いに組み合わせることができる。実施例及び実施例の変形例1から28のいずれかに係る機能を実現するための構成を備えた制御装置100、並びに、実施例の変形例29に係る機能を実現するための構成を備えた制御装置690として提供できることはもとより、複数の装置で構成されるシステムであって、本発明の実施例及び実施例の変形例1から29のいずれかに係る機能を実現するための構成をシステム全体として備えたシステムとして提供することもできる。
実施例及び実施例の変形例1から28のいずれかに係る機能を実現するための構成を予め備えた制御装置100として提供できる。また、プログラムの適用により、既存の制御装置を実施例及び実施例の変形例1から28のいずれかに係る制御装置100として機能させることもできる。すなわち、実施例及び実施例の変形例1から28のいずれかで例示した制御装置100による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行することで、実施例及び実施例の変形例1から28のいずれかに係る制御装置100として機能させることができる。
本発明の実施例の変形例29に係る機能を実現するための構成を予め備えた制御装置690として提供できる。また、プログラムの適用により、既存の制御装置を実施例の変形例29に係る制御装置690として機能させることもできる。すなわち、上記実施例の変形例29で例示した制御装置690による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行することで、実施例の変形例29に係る制御装置690として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD(Compact Disc)-ROM、又は、DVD(Digital Versatile Disc)-ROMなどの記録媒体に収納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
本発明に係る方法は、実施例及び実施例の変形例1から28のいずれかに係る制御装置100、並びに、実施例の変形例29に係る制御装置690を用いて実施できる。また、本発明に係る方法は、実施例及び実施例の変形例1から29のいずれかに係る配送システム1を用いて実施できる。
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
(付記)
(付記1)
配送機を制御する制御装置であって、
複数の出荷場所のそれぞれを基準として、かつ、前記複数の出荷場所のそれぞれにおいて出荷依頼を受け付けてから出荷可能になるまでの準備時間に基づいて、地点を決定する決定部と、
荷物の出荷場所又は前記荷物の配送先を移動先として前記配送機に受け付けさせることで、前記配送機の状態を、前記移動先を受け付けている状態とし、
前記配送機の状態が前記移動先を受け付けている状態の場合、前記配送機を前記移動先へ移動させ、
前記配送機の状態が前記移動先を受け付けていない状態の場合、前記配送機を前記地点へ向けて移動させる、
制御部と、
を備える制御装置。
(付記2)
前記移動先として受け付けられた前記出荷場所を基準とし、かつ、前記出荷場所における前記準備時間に基づいて定められた領域の境界に前記配送機が到着すると、準備の開始タイミングが到来したことを知らせる通知を前記出荷場所の端末装置へ送信する通信部、
をさらに備える付記1に記載の制御装置。
(付記3)
前記制御部は、前記通知が送信されてから、前記通知に対する応答が受信されるまで、の応答時間に基づいて、前記出荷場所への前記配送機の到着時刻を遅延させる制御を行う、
付記2に記載の制御装置。
(付記4)
前記出荷場所における前記準備時間は、出荷が依頼されると推定される推定商品が出荷可能になるまでの時間であり、
前記決定部は、前記出荷依頼が受け付けられると、前記出荷依頼の受け付けから、前記出荷依頼によって出荷が求められた出荷商品が出荷可能になるまで、の時間に基づいて前記領域の前記境界を補正し、
前記通信部は、補正された前記境界に前記配送機が到着すると、前記通知を行う、
付記2又は3に記載の制御装置。
(付記5)
前記決定部は、前記複数の出荷場所のそれぞれを基準とし、かつ、前記複数の出荷場所のそれぞれにおける前記準備時間に基づいて定められた前記領域の境界までの距離、又は、前記境界までの前記配送機の移動時間、が予め定められた条件を満足するように、前記地点を決定する、
付記2から4のいずれか一つに記載の制御装置。
(付記6)
前記決定部は、前記複数の出荷場所のそれぞれについて前記出荷依頼が受け付けられる確率を取得し、取得された前記確率で重み付けられた前記距離又は前記移動時間が前記予め定められた条件を満足するように前記地点を決定する、
付記5に記載の制御装置。
(付記7)
前記予め定められた条件は、前記重み付けられた前記距離又は前記移動時間の総和が最小となる条件である、
付記6に記載の制御装置。
(付記8)
前記地点は、前記領域の内部の地点を含む、
付記2から7のいずれか一つに記載の制御装置。
(付記9)
前記決定部は、前記複数の出荷場所における、出勤中の従業員の数、及び、出荷依頼が受け付けられているが準備が終了していない荷物の数の1つ以上に基づいて、前記複数の出荷場所のそれぞれにおける前記準備時間を補正する、
付記2から8のいずれか一つに記載の制御装置。
(付記10)
前記配送機は、無人機である、
付記1から9のいずれか一つに記載の制御装置。
(付記11)
前記制御部は、
前記制御装置が起動したタイミングから前記移動先を前記配送機に最初に受け付けさせるタイミングまでの期間、及び、前記配送機による前記配送先への配送が終了したタイミングから前記配送機に前記移動先を最初に受け付けさせるタイミングまでの期間、の1つ以上において、前記配送機が、決定された前記地点と異なる地点に位置すると、前記配送機を前記地点に向けて移動させる制御を行い、
前記移動先を前記配送機に最初に受け付けさせる前記タイミングから前記配送機による前記配送先への前記配送が終了する前記タイミングまでの期間において、前記配送機を前記地点に向けて移動させる前記制御を行わない、
付記1から10のいずれか一つに記載の制御装置。
(付記12)
前記制御部は、前記配送機による前記配送先への前記配送が終了したことを告げる配送終了報告が取得されると、又は、前記配送機が前記配送先に到着したことを告げる到着報告が取得されてから予め定められた時間が経過すると、前記配送機による前記配送先への前記配送が終了したと判別する、
付記11に記載の制御装置。
(付記13)
前記制御部は、
前記制御装置が起動すると、前記配送機の状態が、前記移動先を受け付けていない状態であると判別し、
前記出荷依頼が受け付けられると、前記配送機に前記移動先を受け付けさせ、前記配送機の状態が前記移動先を受け付けている状態に変化したと判別し、
前記配送機が前記移動先に到着したことを告げる到着報告が受信されると、前記配送機の状態が、前記移動先を受け付けていない状態に変化したと判別する、
付記1から12のいずれか一つに記載の制御装置。
(付記14)
配送機を制御する制御装置であって、
移動先として受け付けられた出荷場所を基準とし、かつ、前記出荷場所において出荷依頼を受け付けてから出荷可能になるまでの準備時間に基づいて定められた領域の境界に前記配送機が到着すると、準備の開始タイミングが到来したことを知らせる通知を前記出荷場所の端末装置へ送信する通信部、
を備える制御装置。
(付記15)
前記通知が送信されてから前記通知に対する応答が受信されるまでの応答時間に基づいて、前記出荷場所への前記配送機の到着時刻を遅延させる制御を行う制御部、
をさらに備える付記14に記載の制御装置。
(付記16)
配送機を制御するシステムであって、
複数の出荷場所のそれぞれを基準として、かつ、前記複数の出荷場所のそれぞれにおいて出荷依頼を受け付けてから出荷可能になるまでの準備時間に基づいて、地点を決定する決定部と、
荷物の出荷場所又は前記荷物の配送先を移動先として前記配送機に受け付けさせることで、前記配送機の状態を、前記移動先を受け付けている状態とし、
前記配送機の状態が前記移動先を受け付けている状態の場合、前記配送機を前記移動先へ移動させ、
前記配送機の状態が前記移動先を受け付けていない状態の場合、前記配送機を前記地点へ向けて移動させる、
制御部と、
を備えるシステム。
(付記17)
配送機を制御するシステムであって、
移動先として受け付けられた出荷場所を基準とし、かつ、前記出荷場所において出荷依頼を受け付けてから出荷可能になるまでの準備時間に基づいて定められた領域の境界に前記配送機が到着すると、準備の開始タイミングが到来したことを知らせる通知を前記出荷場所の端末装置へ送信する通信部、
を備えるシステム。
(付記18)
配送機を制御する制御装置又はシステムで実行される方法であって、
複数の出荷場所のそれぞれを基準として、かつ、前記複数の出荷場所のそれぞれにおいて出荷依頼を受け付けてから出荷可能になるまでの準備時間に基づいて、地点を決定する決定ステップと、
荷物の出荷場所又は前記荷物の配送先を移動先として前記配送機に受け付けさせることで、前記配送機の状態を、前記移動先を受け付けている状態とし、
前記配送機の状態が前記移動先を受け付けている状態の場合、前記配送機を前記移動先へ移動させ、
前記配送機の状態が前記移動先を受け付けていない状態の場合、前記配送機を前記地点へ向けて移動させる、
制御ステップと、
を有する方法。
(付記19)
配送機を制御するシステムで実行される制御装置又は方法であって、
移動先として受け付けられた出荷場所を基準とし、かつ、前記出荷場所において出荷依頼を受け付けてから出荷可能になるまでの準備時間に基づいて定められた領域の境界に前記配送機が到着すると、準備の開始タイミングが到来したことを知らせる通知を前記出荷場所の端末装置へ送信する通信ステップ、
を有する方法。
(付記20)
配送機を制御する制御装置であって、
複数の出荷場所のそれぞれを基準として、かつ、前記複数の出荷場所のそれぞれにおいて出荷依頼を受け付けてから出荷可能になるまでの準備時間に基づいて、地点を決定する決定部と、
前記配送機に商品を集荷させる集荷タスクと、集荷された前記商品を前記配送機に配送させる配送タスクと、の少なくとも1つが存在する間、前記配送機を前記地点に向けて移動させる制御の実行を抑制し、
前記集荷タスク及び前記配送タスクが存在しない間、決定された前記地点と異なる地点に前記配送機が位置すると、前記配送機を前記地点に向けて移動させる前記制御を行う、
制御部と、
を備える制御装置。
(付記21)
前記制御部は、注文が受け付けられると、前記複数の出荷場所の内で、前記注文において指定された出荷場所で前記商品を前記配送機に集荷させる前記集荷タスクと、前記注文において指定された配送先へ、集荷された前記商品を前記配送機に配送へさせる前記配送タスクと、を生成し、
前記制御装置は、前記商品の集荷が終了したことを告げる集荷終了報告と、前記商品の配送が終了したことを告げる配送終了報告と、を受信する通信部をさらに備え、
前記制御部は、
前記集荷終了報告が受信されると、前記集荷タスクを削除し、
前記配送終了報告が受信されると、前記配送タスクを削除する、
付記20に記載の制御装置。