<実施例1>
以下、本発明の実施例について添付図面を参照しつつ説明する。
本発明の実施例1に係る運搬システム1は、注文の対象とされた商品の運搬を制御する、図1に示すような制御装置100を備える。また、運搬システム1は、商品の注文を行う注文者によって携帯される端末装置200と、商品を販売する店舗に設置された端末装置300と、を備える。さらに、運搬システム1は、店舗で販売された商品を、注文者によって指定された運搬先まで運搬するため、商品を格納し、かつ、制御装置100の制御に従って移動する移動機800及び900を備える。
制御装置100は、サーバ機であり、例えば、商品の販売を仲介する仲介業者のオフィスビルに設置されている。制御装置100は、ハードウェアである、図2に示すような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に接続された端末装置200及び300、並びに、移動機800及び900とデータ通信を行う。
制御装置100のビデオカード105aは、CPU101から出力されたデジタル信号に基づいて画像をレンダリングすると共に、レンダリングされた画像を示す画像信号を出力する。表示装置105bは、EL(Electroluminescence)ディスプレイ、PDP(Plasma Display Panel)、又は、LCD(Liquid Crystal Display)であり、ビデオカード105aから出力された画像信号に従って画像を表示する。入力装置105cは、キーボード、マウス、タッチパッド、及び、ボタンのいずれか1つ以上であり、仲介業者の従業員の操作に応じた信号を入力する。
制御装置100のデータ通信回路104が、商品の注文を受け付けるように求める注文リクエストを注文者の端末装置200から受信すると、当該商品の運搬が開始される開始位置へ移動機800又は900を移動させる制御を行う、図3に示すような移動制御処理を実行する。
本実施例において、商品は、飲食物であり、運搬の開始位置は、注文された飲食物を販売する店舗のエントランスの位置であるが、これに限定される訳では無い。
移動制御処理の実行により、制御装置100のCPU101は、注文が受け付けられた場合に、移動機800の位置を示す移動機位置情報、及び、移動機900の位置を示す移動機位置情報と、運搬の開始位置を示す開始位置情報と、注文の対象とされた商品の状態を運搬が開始可能な状態にするための準備に要する準備時間を示す準備情報と、を取得する、図4に示すような取得部110として機能する。
本実施例において、運搬が開始可能な商品の状態は、商品の配達の開始までに調理される必要性が当該商品にあれば、調理がされた状態を含む。また、運搬が開始可能な商品の状態は、当該商品の配達の開始までに包装される必要性が当該商品にあれば、包装された状態を含む。調理される必要性の有無、及び、包装される必要性の有無は、当該商品の注文の受付時に注文者と店舗の従業員との間で明示的若しくは黙示的に合意がなされる、又は、商慣習上予め定められている。また、運搬が開始可能な商品の状態は、当該商品が運搬の開始位置に位置している状態を含む。
これらのため、調理及び包装の必要性が無い商品であれば、当該商品の状態を運搬が開始可能な状態にするための準備は、例えば、倉庫の棚から当該商品を探し出すこと、及び、探し出された商品を開始位置まで運搬することを含む。このため、準備時間は、当該商品の探出に要する探出時間と、探し出された商品の開始位置への運搬に要する開始位置運搬時間と、を含む。
また、調理の必要性が無いが、包装の必要性がある商品であれば、当該商品の準備は、当該商品の探出と、当該商品の包装と、開始位置までの運搬と、を含む。このため、当該商品の準備時間は、当該商品の探出時間と、探し出された商品の包装に要する包装時間と、包装された当該商品の開始位置運搬時間と、の合計を含む。
さらに、調理及び包装の必要性がある商品であれば、当該商品の準備は、当該商品の調理と、調理された商品の包装と、包装された商品の開始位置までの運搬と、を含む。このため、当該商品の準備時間は、当該商品の調理に要する調理時間と、調理された商品の包装時間と、包装された商品の開始位置運搬時間と、の合計を含む。
制御装置100のCPU101は、注文が受け付けられた商品の準備時間と、当該商品を格納可能な移動機800の位置から運搬の開始位置まで移動機800が移動するために消費すると推定されるエネルギー量と、に基づいて、移動機800の移動制御情報を生成する生成部120としてさらに機能する。移動機800が消費するエネルギー量は、生成部120によって推定される。また、移動機800の移動制御情報は、移動機800の位置から運搬の開始位置まで移動機800を移動させるための情報である。
制御装置100の生成部120は、同様に、移動機900の位置から運搬の開始位置まで移動機900が移動するために消費するエネルギー量を推定し、推定されるエネルギー量と、当該商品の準備時間と、に基づいて、移動機900の移動制御情報を生成する。
また、制御装置100のCPU101は、生成部120で生成された移動機800の移動制御情報の評価値と、移動機900の移動制御情報の評価値と、に基づいて、注文された商品を運搬させる移動機を、移動機800及び900から選択する選択部130として機能する。
本実施例において、移動機800の移動制御情報の評価値は、当該移動制御情報がどの程度適切であるかを示す指標であるため、移動制御情報の評価値は、移動制御情報がより適切である程、より高い値に決定される。また、本実施例において、移動制御情報に基づいて移動機800が移動する場合に移動機800で消費されると推定されるエネルギー量がより少ない程、当該移動制御情報がより適切であるため、当該移動制御情報の評価値がより高く決定される。移動機900の移動制御情報の評価値も同様である。
さらに、制御装置100のCPU101は、選択された移動機800又は900の位置から運搬の開始位置まで移動させる制御を、移動制御情報に基づいて移動機800又は900に行う制御部140として機能する。
さらに、制御装置100のハードディスク103bは、移動制御処理の実行に用いられる情報を記憶する情報記憶部190として機能する。情報記憶部190は、商品に関する情報が予め保存されている、図5に示すような商品テーブルを予め記憶している。
商品テーブルには、複数のレコードが予め保存されている。商品テーブルの各レコードには、商品を識別する商品ID(Identification)と、当該商品の名称を示す情報と、当該商品の準備時間を示す準備情報と、当該商品の準備が完了してから当該商品の運搬が開始されるまでの時間として許容される最長の時間(以下、最長許容時間という)を示す情報と、当該商品の準備時間と最長許容時間との合計時間を示す合計情報と、が互いに対応付けられて予め保存されている。
本実施例では、商品は、トマト、パン、ハンバーガー、ラーメン、及び、ステーキを含む。また、本実施例では、トマト及びパンの状態を、運搬が開始可能な状態にするための準備には、調理が含まれないが、ハンバーガー、ラーメン、及び、ステーキの準備には、調理が含まれる。これらのため、トマト及びパンの準備時間は、ハンバーガー、ラーメン、及び、ステーキの準備時間よりも短く予め設定されている。
また、本実施例では、最長許容時間は、運搬される商品の特性に応じて予め定められており、商品の特性は、時間の経過に伴って商品の状態が変化する性質を含む。例えば、ラーメンの特性は、時間の経過に伴って麺が伸びるという性質を含む。麺が伸びるとは、単位長さ当たり予め定められた水分量より少ない量の水分を含む状態から、予め定められた水分量以上の量の水分を含む状態に麺の状態が変化することを意味する。このため、ラーメンの最長許容時間は、例えば、トマト、パン、ハンバーガー、及び、ステーキといった麺が伸びる性質を有さない商品の運搬の最長許容時間以下に予め設定されている。
また、例えば、ハンバーガー、ラーメン、及び、ステーキの特性は、商品の温度を予め定められた温度よりも高い温度にする調理の必要性(以下、暖める調理の必要性)と、調理によって当該予め定められた温度よりも高くされた商品の温度が時間の経過に伴って当該予め定められた温度以下の温度になるという性質(以下、冷める性質)を含む。このため、ハンバーガー、ラーメン、及び、ステーキの最長許容時間は、例えば、トマト及びパンといった暖める調理の必要性及び冷める性質を有さない商品の運搬の最長許容時間以下に予め設定されている。
商品及び商品の性質は、これらに限定される訳では無い。商品は、冷製スープ又はアイスリームであっても良いし、商品の性質は、商品の温度を予め定められた温度よりも低い温度にする調理又は保管の必要性(以下、冷やす調理又は保管の必要性)と、当該予め定められた温度よりも低くされた商品の温度が時間の経過に伴って当該予め定められた温度以上の温度になるという性質(以下、暖まる性質)を含んでも良い。
図3の移動制御処理の実行が開始されると、制御装置100の取得部110は、注文者の端末装置200から受信された注文リクエストをデータ通信回路104から取得し、取得された注文リクエストを、店舗の端末装置300を宛先としてデータ通信回路104へ出力する。これにより、注文リクエストが店舗へ転送される(ステップS01)。
注文リクエストが転送されてから予め定められた時間が経過するまでに、注文が店舗によって受け付けられたことを知らせる受付通知を当該店舗の端末装置300から制御装置100のデータ通信回路104が受信しないと、取得部110は、注文が受け付けられなかったと判別する(ステップS02;No)。その後、取得部110は、注文が受け付けられなかったことを知らせる非受付通知を注文者の端末装置200を宛先としてデータ通信回路104へ出力した後に、移動制御処理の実行を終了する。
これに対して、注文リクエストの転送から予め定められた時間が経過するよりも前に、受付通知が受信されると、制御装置100の取得部110は、注文が受け付けられたと判別する(ステップS02;Yes)。次に、取得部110は、注文された商品に関する情報を取得する、図6に示すような情報取得処理を実行する(ステップS03)。
情報取得処理の実行を開始すると、制御装置100の取得部110は、図3のステップS01で取得された注文リクエストから、注文された商品の商品IDと、当該商品の運搬先を住所で示す情報と、を取得する(ステップS21)。次に、取得部110は、運搬先の住所を示す情報に情報記憶部190が予め対応付けて記憶している緯度、経度、及び、高度を示す情報を取得することで、運搬先の位置を緯度、経度、及び、高度で示す運搬先情報を取得する。
その後、本実施例において、制御装置100の取得部110は、図5の商品テーブルにおいて、取得された商品IDと対応付けられている準備情報と合計情報とを取得するが(ステップS22)、これに限定される訳では無い。取得部110は、商品IDと対応付けられている準備情報と最長許容時間を示す情報を取得し、取得された情報で示される最長許容時間と、準備情報で示される準備時間と、を合計することで、合計時間を示す合計情報を取得しても良い。
その後、制御装置100の取得部110は、情報記憶部190が予め記憶している情報であり、かつ、運搬の開始位置を緯度、経度、及び、高度で示す開始位置情報を取得する(ステップS23)。
次に、制御装置100の取得部110は、移動機800の位置を緯度、経度、及び、高度で示す移動機位置情報の送信を求める送信リクエストを、移動機800を宛先としてデータ通信回路104へ出力する。制御装置100のデータ通信回路104が送信リクエストを移動機800へ送信した後に移動機位置情報を受信すると、取得部110は、データ通信回路104から移動機800の移動機位置情報を取得する。同様に、取得部110は、移動機900の移動機位置情報を取得する(ステップS24)。
その後、制御装置100の取得部110は、情報記憶部190が予め記憶しているモード情報を取得してから(ステップS25)、情報取得処理の実行を終了する。
本実施例において、モード情報は、移動機800又は900の位置から運搬の開始位置まで、移動機800又は900が商品を格納して移動する際の挙動に係る動作モード示す情報である。本実施例では、情報記憶部190が予め記憶しているモード情報は、移動時における移動機800又は900の移動速度として、予め定められた基準の速度が移動機800又は900に設定される基準モードを示している。本実施例では、設定される移動機800又は900の移動速度は、移動機800又は900の平均速度であるが、これに限定される訳ではなく、移動機800又は900の最高速度又は制限速度であっても良い。
図3のステップS03で情報取得処理が実行された後、制御装置100の生成部120は、移動機800又は900を識別する変数mを、移動機800を識別する番号「1」で初期化する(ステップS04)。次に、生成部120は、変数mの値「1」が、運搬システム1が備える移動機の数「2」以下であると判別する(ステップS05;Yes)。
その後、制御装置100の生成部120は、変数mで識別される移動機800の位置から運搬の開始位置に到る経路を複数探索し、探索された複数の経路から、基準の速度で移動機800が移動する場合に準備時間以上、かつ、合計時間以下の移動時間を要する経路をN個(但し、Nは、自然数)、移動機800の移動経路として選択する(ステップS06)。
このために、制御装置100の取得部110は、情報記憶部190が予め記憶している部分経路テーブルから複数のレコードを読み出す。部分経路テーブルの複数のレコードには、例えば、道路及び歩道といった移動機800及び900が移動可能な部分経路に関する情報がそれぞれ保存されている。部分経路に関する情報は、部分経路であるエッジの始点ノードの緯度、経度、及び、高度と、当該エッジの終点ノードの緯度、経度、及び、高度と、当該エッジの距離を示す情報と、が対応付けられた情報である。
次に、制御装置100の生成部120は、読み出された部分経路テーブルの各レコードに保存されているエッジの距離と、当該エッジの始点ノード及び終点ノードの緯度、経度、及び、高度と、移動機800の位置を示す緯度、経度、及び、高度と、運搬の開始位置を示す緯度、経度、及び、高度と、を用いて、例えば、ダイクストラ法を含む公知の経路探索アルゴリズムを実行する。これにより、生成部120は、部分経路を組み合わせることで、移動機800の位置から開始位置へ到る全体経路を複数探索する。
次に、制御装置100の生成部120は、探索された複数の全体経路について、総距離を算出し、算出された距離と基準の速度とに基づいて、移動機800が基準モードで移動するのに要する移動時間を算出する。
次に、制御装置100の生成部120は、探索された複数の全体経路の内で、算出された移動時間が準備時間以上、かつ、合計時間以下である全体経路をN個、移動経路として選択する。本実施例では、生成部120は、移動時間が短い順にN個の全体経路を選択するが、これに限定される訳では無い。生成部120は、例えば、移動時間が短い順以外の予め定められた規則に基づいて、又は、ソフトウェア乱数に基づいて、N個の全体経路を選択しても良い。
その後、制御装置100の生成部120は、例えば、選択された順を含む予め定められた規則又はソフトウェア乱数に基づいて、1番目からN番目の番号をN個の移動経路に付与する。次に、生成部120は、1番目の移動経路を示す情報を含んだ、移動機800の移動制御情報の1番目の候補を生成する。同様に、生成部120は、移動機800の移動制御情報の2番目からN番目の候補を生成する(ステップS07)。本実施例において、移動経路を示す情報には、当該移動経路に含まれるノードの位置を緯度、経度、及び、高度で示す情報と、当該ノードの到着順を示す情報と、が含まれている。
制御装置100の生成部120は、移動制御情報の候補を識別する変数nを、1番目の候補を識別する番号「1」で初期化する(ステップS08)。次に、生成部120は、変数nの値「1」が、候補の数「N」以下であると判別し(ステップS09;Yes)、変数nで識別される候補が、移動制御情報としてどの程度適切であるかを示す評価値を算出する、図7に示すような評価値算出処理を実行する(ステップS10)。
図7の評価値算出処理の実行を開始すると、制御装置100の取得部110は、情報記憶部190が予め記憶している変換係数αt、αl、及び、αhを取得する(ステップS31)。
変換係数αtは、移動機800が進行方向を変更する回数を、当該回数に亘って進行方向を変更するために移動機800が消費すると推定されるエネルギー量に変換するための係数である。また、変換係数αlは、移動機800が移動する距離を、当該距離を移動するために移動機800が消費すると推定されるエネルギー量に変換するための係数である。さらに、変換係数αhは、移動機800の高度の変化量を、当該量だけ移動機800の高度を変化させるために移動機800で消費されると推定されるエネルギー量に変換するための係数である。
次に、制御装置100の生成部120は、移動機800の推定消費エネルギー量を示す変数CEを値「0」で初期化する(ステップS32)。変数CEで示される移動機800の推定消費エネルギー量は、変数nで識別される候補に含まれる移動経路を、移動機800が移動するために移動機800で消費されると推定されるエネルギー量である。
その後、制御装置100の生成部120は、移動経路に含まれる複数のノードに、通過順が早い順に、1番からND番の番号を付与する(但し、NDは、自然数)。その後、生成部120は、ノードを識別する変数ndを、1番目のノードを識別する番号「1」で初期化する(ステップS33)。
次に、制御装置100の生成部120は、変数ndの値「1」が、ノードの数「ND」よりも小さいと判別する(ステップS34;Yes)。その後、生成部120は、変数ndの値が「1」であるため(ステップS35;Yes)、変数ndで識別されるノードが最初のノードであると判別する。このため、生成部120は、当該ノードを始点とするエッジ(以下、当該ノードより後のエッジという)が存在するに過ぎず、当該ノードを終点とするエッジ(以下、当該ノードより前のエッジという)が存在しないと判別する。生成部120は、当該ノードより前のエッジが存在しないため、当該ノードより前のエッジから当該ノードより後のエッジに移動するため、移動機800が当該ノードで進行方向を変更する必要がないと判別する。
次に、制御装置100の取得部110は、当該ノードを始点ノードとし、当該ノードの1つ後のノードを終点ノードとする、当該ノードより後のエッジの距離Lを取得する(ステップS38)。このために、取得部110は、始点ノードの緯度、経度、及び、高度と、終点ノードの緯度、経度、及び、高度と、に対応付けられた距離Lを不図示の部分経路テーブルから取得する。本実施例では、変数ndで識別されるノードよりも1つ後のノードは、変数nd+1で識別されるノードを意味する。
その後、制御装置100の生成部120は、取得されたエッジの距離Lに、ステップS31で読み出された変換係数αlを乗算することで、当該距離Lを移動機800が移動するために移動機800で消費されるエネルギー量がαl×Lであると推定する。次に、生成部120は、推定されたエネルギー量αl×Lを、移動機800の推定消費エネルギー量を示す変数CEに加算する(ステップS39)。
次に、制御装置100の生成部120は、始点ノードの高度が終点ノードの高度よりも低いか否かに基づいて、エッジが上り坂であるか否かを判別する(ステップS40)。このとき、生成部120は、始点ノードの高度が終点ノードの高度よりも低いため、当該エッジが上り坂であると判別すると(ステップS40;Yes)、始点ノードの高度と終点ノードの高度との高度差Hを算出する(ステップS41)。次に、生成部120は、算出された高度差Hに、ステップS31で読み出された変換係数αhを乗算することで、当該高度差Hだけ移動機800の高度を変化させるために移動機800で消費されるエネルギー量がαh×Hであると推定する。次に、生成部120は、推定されたエネルギー量αh×Hを変数CEに加算する(ステップS42)。
ステップS40において、制御装置100の生成部120は、始点ノードの高度が終点ノードの高度以上であるため、当該エッジが上り坂でないと判別した場合(ステップS40;No)、又は、ステップS42を実行した後に、変数ndの値を値「1」だけインクリメントして値「2」に更新してから(ステップS43)、ステップS34の処理を再度実行する。
このとき、制御装置100の生成部120は、変数ndの値「2」がノードの数「ND」よりも小さいと判別する(ステップS34;Yes)。次に、生成部120は、変数ndの値が「1」でなく、「2」であるため(ステップS35;No)、変数ndで識別されるノードが最初のノードでないと判別する。このため、生成部120は、当該ノードより前のエッジから当該ノードより後のエッジに移動するため、移動機800が当該ノードで進行方向を変更する必要が有る場合があると判別する。
次に、制御装置100の生成部120は、変数ndで識別されるノードへ、当該ノードの1つ前のノードから向かうベクトルと、変数ndで識別されるノードから、当該ノードの1つ後のノードから向かうベクトルと、を、これら3つのノードの緯度、経度、及び、高度を用いて算出する。本実施例では、変数ndで識別されるノードよりも1つ前のノードは、変数nd-1で識別されるノードを意味する。その後、生成部120は、算出された2つのベクトルに基づいて、変数ndで識別されるノードより前のエッジから当該ノードより後のエッジに移動するために移動機800が進行方向を変更させる角度を算出する。
その後、制御装置100の生成部120は、情報記憶部190に予め記憶されている変数で示される設定角度よりも、算出された角度が小さい場合に、進行方向が変更されないと判別する(ステップS36;No)。次に、生成部120は、ステップS38からS43の処理を実行した後に、ステップS34から上記処理を繰り返す。
これに対して、制御装置100の生成部120は、算出された角度が設定角度以上である場合に、進行方向が変更されると判別する(ステップS36;Yes)。次に、生成部120は、進行方向の変更回数「1」に、ステップS31で読み出された変換係数αtを乗算することで、当該進行方向を移動機800が「1」回変更するために移動機800で消費されるエネルギー量がαtであると推定する。次に、生成部120は、推定されたエネルギー量αtを変数CEに加算した後に(ステップS37)、ステップS38からS43の処理を実行してから、ステップS34から上記処理を繰り返す。
ステップS34において、制御装置100の生成部120は、変数ndの値がノードの数「ND」以上であると判別すると(ステップS34;No)、移動機800の推定消費エネルギー量を示す変数CEの値に基づいて、変数nで識別される候補の評価値を決定する(ステップS44)。本実施例において、生成部120は、例えば、変数CEの逆数を評価値に決定することで、移動機800で消費されると推定されるエネルギー量がより少ない程、評価値をより高い値に決定するが、評価値の決定方法は、これに限定される訳では無い。その後、生成部120は、評価値算出処理の実行を終了する。
図3のステップS10で評価値算出処理が実行された後、制御装置100の生成部120は、移動制御情報の候補を識別する変数nの値を値「1」だけインクリメントした後に(ステップS11)、ステップS09から上記処理を繰り返す。
ステップS09において、制御装置100の生成部120は、変数nの値が候補の数「N」よりも大きいと判別すると(ステップS09;No)、ステップS10で決定された評価値に基づいて、N個の候補から1つの候補を選択することで(ステップS12)、移動機800の移動制御情報を生成する。本実施例では、生成部120は、最も高い評価値が決定された候補を、移動機800の移動制御情報として選択する。その後、生成部120は、生成された移動制御情報の評価値を、移動制御情報の生成に用いられた評価値と同じ値に決定する。移動制御情報の生成に用いられた評価値は、ステップS12で選択された候補の評価値を意味する。
このようにして、制御装置100の生成部120は、移動機800の候補をN個生成し、生成されたN個の候補のそれぞれに対して評価値を決定し、かつ、決定された評価値に基づいてN個の候補から1つの候補を選択することで、移動機800の移動制御情報を生成する。
その後、制御装置100の生成部120は、変数mの値を値「1」だけインクリメントすることで、移動機900を識別する値「2」に更新する(ステップS13)。次に、制御装置100は、ステップS05からS13の処理を実行してから、ステップS05の処理を再度実行する。これにより、生成部120は、移動機900の移動制御情報を生成し、生成された移動制御情報の評価値を決定する。
その後、制御装置100の選択部130は、ステップS05において、変数mの値が移動機の数「2」より大きいと判別すると(ステップS05;No)、移動機800の移動制御情報の評価値と、移動機900の移動制御情報の評価値と、に基づいて、移動機800又は900のいずれかを、注文された商品を運搬させる移動機として選択する(ステップS14)。
本実施例では、移動機800の移動制御情報の評価値が、移動機900の移動制御情報の評価値以上の場合に、制御装置100の選択部130は、移動機800を選択する。これに対して、移動機800の移動制御情報の評価値が、移動機900の移動制御情報の評価値よりも低い場合に、選択部130は、移動機900を選択する。
その後、制御装置100の制御部140は、選択された移動機800又は900を宛先として、移動機800又は900の移動制御情報をデータ通信回路104へ出力する。これにより、制御部140は、移動機800又は900の移動制御情報に基づいて、移動機800又は900の位置から運搬の開始位置まで移動させる制御を移動機800又は900に行う(ステップS15)。その後、制御部140は、移動制御処理の実行を終了する。
商品の注文者によって携帯される端末装置200、及び、商品の販売が行われる店舗の端末装置300は、例えば、スマートフォン、又は、タブレット型若しくはノートブック型のパーソナルコンピュータである。注文者の端末装置200は、注文者の操作に従って注文リクエストを制御装置100へ送信する。店舗の端末装置300は、制御装置100で転送された注文リクエストを受信すると、受信された注文リクエストを表示する。店舗の従業員は、表示された注文リクエストを視認すると、注文が受け付けられたことを知らせる受付通知を送信させるための操作を端末装置300に行う。その後、従業員は、注文された商品の状態を運搬可能な状態とするための準備を開始する。
移動機800は、図8に示すような無人地上車両であり、予め定められた駐車場に駐車又は停車している。移動機800は、車輪801及び802を含む複数の車輪を備える車台810と、車台810の上面に設置された格納庫820と、格納庫820に内蔵された制御装置890と、を備える。
移動機800の格納庫820は、商品を格納可能な1つの格納ボックス821を備える。格納ボックス821は、不図示の1枚の底板、天板、及び、背板、並びに、2枚の側板を備え、これらの板により閉塞されて前方が開放された空間を形成する箱体を備える。箱体の開口部には、扉821aを受け止める扉枠821bが設置されている。
移動機800は、車台810の前面に設置されたLiDAR(Light Detection and Ranging)センサ831と、車台810の後面に設置された不図示のLiDARセンサと、をさらに備える。
移動機800が備える前面のLiDARセンサ831は、移動機800の前方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、移動機800の前方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へレーザー光を照射する。前面のLiDARセンサ831は、照射されたレーザー光の反射光を受光し、レーザー光の照射から反射光の受光までの時間に基づいて、レーザー光が反射された複数の反射点までの距離を計測する。次に、前面のLiDARセンサ831は、レーザー光の照射方向と計測された距離とに基づいて、移動機800の中心点を原点として用いた三次元座標系における座標値を、複数の反射点について算出する。その後、前面のLiDARセンサ831は、算出された複数の反射点の座標値を移動機800の制御装置890へ出力する。
移動機800が備える後面のLiDARセンサは、移動機900の後方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、移動機900の後方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へ赤外線のレーザー光を照射する。また、後面のLiDARセンサは、照射されたレーザー光の複数の反射点について移動機800の三次元座標系における座標値を算出し、算出された複数の反射点の座標値を移動機800の制御装置890へ出力する。
移動機800が備える前面のLiDARセンサ831及び後面のLiDARセンサが複数の反射点の座標値を制御装置890へ出力するのは、例えば、障害物等の物体を回避して走行するために、移動機800の制御装置890が、移動機800を基準として用いた全方向にある物体の三次元空間における座標値及びサイズ等を特定するためである。
移動機800の制御装置890は、図9に示すようなハードウェアである、CPU891、RAM892、ROM893a、フラッシュメモリ893b、データ通信回路894、ビデオカード895a、表示装置895b、入力装置895c、位置計測回路896、方位角センサ897、入出力ポート898、及び、駆動回路899を備える。移動機800は、複数のCPUを備えても良いし、複数のRAM及びフラッシュメモリを備えても良い。
移動機800のCPU891、RAM892、ROM893a、データ通信回路894、ビデオカード895a、表示装置895b、及び、入力装置895cの構成及び機能は、制御装置100のCPU101、RAM102、ROM103a、データ通信回路104、ビデオカード105a、表示装置105b、及び、入力装置105cの構成及び機能と同様である。
移動機800のフラッシュメモリ893bは、各種のプログラムと、プログラムの実行に用いられる各種のデータやデータが保存されたテーブルと、を記憶している。移動機800は、フラッシュメモリ893bの代わりに、ハードディスクを備えても良い。
移動機800の位置計測回路896は、QZSS(Quasi-Zenith Satellite System)回路である。位置計測回路896は、準天頂衛星から発せられた信号を受信し、受信された信号に基づいて移動機800の位置を示す緯度、経度、及び、高度を計測し、計測された緯度、経度、及び、高度を示す信号を出力する。位置計測回路896は、QZSS回路ではなく、GPS(Global Positioning System)衛星から発せられたGPS信号を受信し、受信されたGPS信号に基づいて端末装置300の位置を示す緯度、経度、及び、高度を計測するGPS回路であっても良い。
移動機800の方位角センサ897は、例えば、磁気センサであり、移動機800の前方向である進行方向と、例えば、北である基準の方位と、がなす方位角θを、基準の方位から反時計回り又は時計回りに計測し、計測された方位角θを示す方信号を出力する。
移動機800の入出力ポート898は、前面のLiDARセンサ831及び後面のLiDARセンサとそれぞれ接続された不図示のケーブルに接続されている。入出力ポート898は、前面のLiDARセンサ831及び後面のLiDARセンサがそれぞれ出力する座標値を示す信号をCPU891へ入力する。
移動機800の駆動回路899は、複数の車輪を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路899は、CPU891が出力する制御信号に従って当該モータを駆動させることで、複数の車輪を回転させる。複数の車輪を回転させる不図示のモータは、移動機800が備える、例えば、リチウムイオン電池である不図示のバッテリから供給される電力エネルギーを消費して駆動する。
移動機800のデータ通信回路894が、図6のステップS24で出力された送信リクエストを制御装置100から受信すると、移動機800のCPU891は、位置計測回路896から出力される信号に基づいて、移動機800の緯度、経度、及び、高度を特定する。次に、CPU891は、移動機800の位置を、緯度、経度、及び、高度で示す移動機位置情報を生成し、生成された移動機位置情報を、制御装置100を宛先としてデータ通信回路894へ出力する。その後、移動機800のデータ通信回路894は、移動機800の移動機位置情報を制御装置100へ送信する。
その後、移動機800のデータ通信回路894が、図3のステップS15で出力された移動制御情報を受信すると、移動機800のCPU891は、当該移動制御情報に従って移動するために、図10に示すような移動処理を実行する。
移動処理の実行を開始すると、移動機800のCPU891は、データ通信回路894から移動制御情報を取得し、取得された移動制御情報から移動経路を示す情報を取得する(ステップS51)。
次に、移動機800のCPU891は、位置計測回路896から出力される信号に基づいて、移動機800の緯度、経度、及び、高度を特定する。次に、CPU891は、特定された緯度、経度、及び、高度と、移動経路に含まれる複数の未到着のノードの内で最も到着順が早いノードの緯度、経度、及び、高度と、に基づいて、移動機800の位置から最も到着順が早い未到着のノードへ向かう方向と、基準の方位と、がなす方位角φを算出する。
その後、移動機800のCPU891は、方位角センサ897から出力される信号で示される方位角θと、算出された方位角φと、を一致させるための制御信号を生成する。その後、CPU891は、生成された制御信号を駆動回路899へ出力し(ステップS52)、駆動回路899は、制御信号に従って複数の車輪を回転させる。これにより、移動機800は、移動機800の進行方向を、移動機800の位置から最も到着順が早い未到着のノードへ向かう方向に変更する。
次に、移動機800のCPU891は、移動機800の緯度、経度、及び、高度と、最も到着順が早い未到着のノードの緯度、経度、及び、高度と、の相違を縮小させるように基準の速度で移動するための制御信号を生成し、生成された制御信号を駆動回路899へ出力する(ステップS53)。これにより、移動機800は、最も到着順が早い未到着のノードへ向かって基準の速度で移動する。
その後、移動機800のCPU891は、移動経路に含まれる複数のノードの全てに到着したか否かに基づいて、移動経路の終点である運搬の開始位置に到着したか否かを判別する(ステップS54)。このとき、複数のノードの全てに到着した訳ではないため、運搬の開始位置に到着していないと判別すると(ステップS54;No)、ステップS52から上記処理を繰り返す。これに対して、CPU891は、複数のノードの全てに到着したため、運搬の開始位置に到着したと判別すると(ステップS54;Yes)、運搬の開始位置で駐車又は停車するための制御信号を駆動回路899へ出力する。その後、CPU891は、制御装置100を宛先として、移動機800が運搬の開始位置に到着したことを告げる到着報告をデータ通信回路894へ出力してから(ステップS55)、移動処理の実行を終了する。
移動機900の構成及び機能は、移動機800の構成及び機能と同様である。
制御装置100のデータ通信回路104が到着報告を受信すると、制御装置100のCPU101は、到着報告をデータ通信回路104から取得し、取得された到着報告を、店舗の端末装置300を宛先としてデータ通信回路104へ出力する。端末装置300は、制御装置100で転送された到着報告を受信すると、受信された到着報告を表示する。
店舗の従業員は、表示された到着報告を視認すると、運搬の開始位置に到着した移動機800の格納ボックス821又は移動機900の不図示の格納ボックスに、準備が完了した商品を格納させる。その後、従業員が、商品の格納が完了したことを知らせる格納完了通知を送信させる操作を端末装置300に行うと、端末装置300は、当該操作に応じて、格納完了通知を制御装置100へ送信する。
制御装置100のデータ通信回路104が格納完了通知を受信すると、制御装置100の生成部120は、図6のステップS21で取得された運搬先情報と、ステップS23で取得された開始位置情報と、に基づいて、図3のステップS06と同様の処理を実行する。これにより、生成部120は、注文された商品の運搬の開始位置から当該商品の運搬先に到る最短の運搬経路を生成する。次に、生成部120は、生成された運搬経路を示す情報を含み、運搬の開始位置から運搬先まで、商品を格納した移動機800又は900を移動させるための運搬制御情報を生成する。
その後、制御装置100の制御部140は、生成された運搬制御情報を、移動機800又は900を宛先としてデータ通信回路104へ出力する。これにより、制御部140は、運搬の開始位置から運搬先まで商品を運搬させる制御を移動機800又は900に行う。
移動機800のデータ通信回路894が、運搬制御情報を制御装置100から受信すると、移動機800のCPU891は、運搬制御情報に基づいて、図10に示した移動処理と同様の処理を実行する。これにより、移動機800は、運搬制御情報に従って、運搬の開始位置から運搬先まで商品を運搬する。
本実施例において、商品の運搬先は、注文者によって指定された受取人、又は、受取人に代わって商品を受け取る代理人が居住するマンションのエントランスである。このため、運搬先に移動機800が到着すると、受取人又は代理人は、移動機800の格納ボックス821から商品を受け取る。その後、受取人又は代理人は、商品の受取が完了したことを知らせる信号を出力させる操作を、移動機800の入力装置895cに行う。入力装置895cが当該信号を出力すると、移動機800のCPU891は、予め定められた駐車場へ帰還してから、新たな移動制御情報を受信するまで駐車場で停車若しくは駐車を続ける。
これらの構成によれば、制御装置100は、注文が受け付けられた場合に、注文の対象とされた商品を格納可能な移動機800又は900の位置を示す移動機位置情報と、当該商品の運搬が開始される開始位置を示す開始位置情報と、商品の状態を運搬が開始可能な状態にするための準備に要する準備時間を示す準備情報と、を取得する取得部110を備える。また、制御装置100は、取得された移動機位置情報で示される位置から、開始位置情報で示される運搬の開始位置まで、移動機800又は900が移動するために消費すると推定されるエネルギー量と、準備情報で示される準備時間と、に基づいて、移動機800又は900の位置から開始位置まで移動機800又は900を移動させるための移動制御情報を生成する生成部120を備える。このため、制御装置100は、運搬の開始の遅れを抑制しながら、移動機800又は900が運搬の開始位置まで移動するために消費するエネルギー量の増加を抑制する移動制御情報を生成できる。
また、これらの構成によれば、制御装置100の生成部120は、移動機800又は900の位置から運搬の開始位置に到る移動経路を含む、移動制御情報のN個の候補を生成する。また、生成部120は、生成されたN個の候補のそれぞれに対して、移動機800又は900が移動経路を移動する場合に、移動機800又は900が消費すると推定されるエネルギー量に基づく評価値を決定する。さらに、生成部120は、決定された評価値に基づいて、N個の候補から1つの候補を選択することで、移動制御情報を生成する。このため、制御装置100は、移動機800又は900が運搬の開始位置まで移動するために消費するエネルギー量の増加を確実に抑制する移動経路を含んだ移動制御情報を生成できる。
さらに、これらの構成によれば、制御装置100の生成部120は、移動機800又は900が消費するエネルギー量を、移動経路の距離に基づいて推定する。また、生成部120は、移動機800又は900が消費するエネルギー量を、移動機800又は900が移動経路を移動する間に生じる移動機800又は900の高度の変化に基づいて推定する。これらのため、制御装置100は、移動機800又は900が消費するエネルギー量を正確に推定できる。
また、これらの構成によれば、制御装置100の生成部120は、移動機800及び900のそれぞれについて移動制御情報を生成する。また、制御装置100は、移動制御情報の生成に用いられた評価値に基づいて、移動機800及び900から注文の対象とされた商品を運搬させる移動機800又は900を選択する選択部130を備える。このため、制御装置100は、移動機800及び900の内で、運搬の開始位置まで移動するために消費するエネルギー量の増加を確実に抑制できる移動機800又は900を、商品を運搬させる移動機として選択できる。
さらに、これらの構成によれば、制御装置100は、選択された移動機800又は900の位置から運搬の開始位置まで移動させる制御を、移動制御情報に基づいて、選択された移動機800又は900に行う制御部140をさらに備える。このため、制御装置100は、運搬の開始の遅れを抑制しながら、商品を運搬させる移動機800又は900が運搬の開始位置まで移動するために消費するエネルギー量の増加を抑制できる。
<実施例1の変形例1>
実施例1では、制御装置100の取得部110は、注文された商品の状態を運搬が開始可能な状態にするための準備に要する準備時間を示す準備情報を取得し、生成部120は、準備情報で示される準備時間に基づいて移動制御情報を生成すると説明した。
しかし、これに限定される訳では無く、本変形例では、制御装置100の取得部110は、商品の状態を運搬が開始可能な状態にするための準備が完了する準備完了時刻を示す準備情報を取得し、生成部120は、準備情報で示される準備完了時刻に基づいて移動制御情報を生成する。
このために、制御装置100の取得部110は、図6のステップS21を実行した後に、例えば、OS(Operating System)から、注文が受け付けられた時刻(以下、注文受付時刻という)としてシステム時刻を取得する。次に、取得部110は、ステップS22を実行することで、注文された商品の準備時間、及び、準備時間と最長許容時間との合計時間を情報記憶部190から取得する。その後、取得部110は、注文受付時刻に準備時間を加算することで準備完了時刻を示す準備情報を取得し、注文受付時刻に準備時間と最長許容時間との合計時間を加算することで運搬の開始期限を示す開始情報を取得する。
また、制御装置100の生成部120は、図3のステップS06で、移動機800又は900の位置から運搬の開始位置に到る全体経路を複数探索する。また、生成部120は、基準の速度で移動機800又は900が移動する場合に、運搬の開始位置への移動機800又は900の到着時刻が、準備完了時刻以降、かつ、開始期限以前となる全体経路を、探索された複数の全体経路からN個、移動経路として選択する。
このために、制御装置100の生成部120は、実施例1と同様に、移動機800又は900の位置から開始位置へ到る全体経路を複数探索し、探索された複数の全体経路について移動時間を算出する。次に、生成部120は、注文受付時刻に対して複数の全体経路の移動時間のそれぞれを加算することで、複数の全体経路それぞれの到着時刻を算出する。その後、生成部120は、探索された複数の全体経路の内で、算出された到着時刻が準備完了時刻以降、かつ、運搬の開始期限以前である全体経路をN個、例えば、到着時刻が早い順を含む予め定められた規則に基づいて、又は、ソフトウェア乱数に基づいて、移動経路として選択する。
<実施例1の変形例2>
実施例1では、制御装置100の生成部120は、図7のステップS44において、移動制御情報のn番目の候補に含まれる移動経路を移動機800又は900が移動した場合に移動機800又は900で消費されると推定されるエネルギー量に基づいて、当該候補の評価値を決定すると説明したが、これに限定される訳では無い。
本変形例に係る制御装置100の生成部120は、移動機800又は900で消費されると推定されるエネルギー量と、注文された商品の準備が完了してから当該商品の運搬が移動機800又は900によって開始されるまでの開始待ち時間と、に基づいて、評価値を決定する。
このために、制御装置100の生成部120は、ステップS44で、移動制御情報のn番目の候補について、移動機800又は900で消費されると推定されるエネルギー量に基づいて評価値を決定する。その後、生成部120は、n番目の候補に含まれる移動経路の移動時間から、注文された商品の準備時間を減算することで、商品の準備が完了してから、運搬の開始位置へ移動機800又は900が到着するまでの到着待ち時間を算出する。生成部120は、運搬の開始位置へ移動機800又は900の到着時刻から準備完了時刻を減算することで、到着待ち時間を算出しても良い。
次に、制御装置100の取得部110は、注文された商品を販売する店舗の従業員が、準備された商品を移動機800又は900へ格納させるために要する格納時間を表す情報を情報記憶部190から取得する。また、取得部110は、格納完了通知を送信させる操作を従業員が端末装置300に行うために要する操作時間を表す情報を情報記憶部190から取得する。さらに、取得部110は、制御装置100が格納完了通知を受信してから、移動機800又は900に運搬制御情報を送信することで移動機800又は900に運搬を開始させるまでに要する運搬制御開始時間を表す情報を取得する。
本変形例において、格納時間を表す情報、操作時間を表す情報、及び、運搬制御開始時間を表す情報は、それぞれ情報記憶部190によって予め記憶されている。また、格納時間、操作時間、及び、運搬制御開始時間の好適な値は、当業者が実験により定めることができる。さらに、格納時間、操作時間、及び、運搬制御開始時間の1つ以上は、「0」分であっても構わない。
その後、制御装置100の生成部120は、算出された到着待ち時間に、取得された情報で表される格納時間、操作時間、及び、運搬制御開始時間を加算することで、準備の完了から当該商品の運搬が開始されるまでの開始待ち時間を算出する。
次に、制御装置100の生成部120は、算出された開始待ち時間に基づいて、n番目の候補の評価値の補正値を算出する。本変形例で算出される補正値は、評価値の減算による補正に用いられる。このため、生成部120は、例えば、開始待ち時間に予め定められた定数を加算することで、開始待ち時間がより長い程、補正値をより高い値に算出するが、補正値の算出方法は、これに限定されるわけでは無い。
次に、制御装置100の取得部110は、情報記憶部190が予め記憶する補正値の正の重付係数を取得する。その後、生成部120は、算出された補正値を、取得された重付係数で重み付けし、重み付けされた補正値を、ステップS44で決定された評価値から減算することで、補正後の評価値を決定する。その後、生成部120は、評価値算出処理の実行を終了する。
本変形例では、商品の準備の完了から当該商品の運搬が開始されるまでの開始待ち時間がより長い程、補正値がより高い値に算出されるため、開始待ち時間がより長い程、補正前よりもより低い値に補正後の評価値は決定される。このように評価値が補正されるのは、開始待ち時間をより長くする移動制御情報程、運搬の開始をより遅くするため、より適切で無いからである。
これらの構成によれば、制御装置100の取得部110は、注文された商品の準備が完了してから当該商品の運搬が開始されるまでの開始待ち時間にさらに基づく評価値を、N個の候補のそれぞれに対して決定する。このため、制御装置100は、商品の運搬の開始の遅れを確実に抑制する移動制御情報を生成できる。
また、時間の経過に伴って商品の状態が変化する性質を、注文された商品が有する場合には、制御装置100は、運搬の開始までに、商品の状態が準備完了時の状態と異なる状態に変化してしまうことを抑制できる。すなわち、例えば、時間の経過に伴って麺が伸びるという性質を有する商品が、運搬の開始までに麺が伸びていない状態から麺が伸びた状態へ変化してしまうことを、制御装置100は抑制できる。また、例えば、暖める調理の必要性、及び、時間の経過に伴って冷める性質を有する商品の温度が、運搬の開始までに、予め定められた温度よりも高い温度から、当該予め定められた温度以下の温度へ変化してしまうことを、制御装置100は抑制できる。
さらに、制御装置100は、商品の運搬の開始の遅れを抑制するため、移動機800又は900による商品の運搬効率を向上できる。本変形例において、移動機800又は900の運搬効率は、単位時間当たりに移動機800又は900が運搬する商品の個数で表されるが、これに限定される訳では無い。
本変形例において、制御装置100の生成部120は、開始待ち時間がより長い程、補正値をより高い値に算出すると説明したが、これに限定される訳では無い。制御装置100の生成部120は、例えば、開始待ち時間の逆数を補正値とすることで、開始待ち時間がより長い程、補正値をより低い値に算出しても良い。また、生成部120は、算出された補正値を正の重付係数で重み付けてから、重み付けられた補正値を、ステップS44で決定された評価値に加算しても良い。
<実施例1の変形例3>
実施例1では、制御装置100の生成部120は、図7のステップS44において、移動機800又は900で消費されると推定されるエネルギー量に基づいて評価値を決定すると説明したが、これに限定される訳では無い。
本変形例に係る制御装置100の生成部120は、移動機800又は900で消費されると推定されるエネルギー量と、移動機800又は900が運搬の開始位置へ到着してから運搬の開始期限が経過するまでの猶予時間と、に基づいて評価値を決定する。
このために、制御装置100の取得部110は、実施例1の変形例1と同様の処理を実行することで、運搬の開始期限を示す開始情報を取得する。また、生成部120は、図3のステップS06で、実施例1の変形例1と同様に、移動機800又は900の移動制御情報のN個の候補について、運搬の開始位置への移動機800又は900の到着時刻を算出する。
その後、制御装置100の生成部120は、図7のステップS44で、移動制御情報のn番目の候補について、移動機800又は900で消費されると推定されるエネルギー量に基づいて評価値を決定した後に、当該候補について算出された到着時刻から開始情報で示される開始期限までの猶予時間を算出する。生成部120は、準備時間と最長猶予時間との合計時間から移動時間を減算することで猶予時間を算出しても良い。
次に、制御装置100の生成部120は、算出された猶予時間に基づいて、n番目の候補の評価値の補正値を算出する。本変形例で算出される補正値は、評価値の加算による補正に用いられる。このため、生成部120は、例えば、猶予時間に予め定められた定数を加算することで、猶予時間がより長い程、補正値をより高い値に算出するが、補正値の算出方法は、これに限定されるわけでは無い。
次に、制御装置100の取得部110は、情報記憶部190が予め記憶する補正値の正の重付係数を取得する。その後、生成部120は、算出された補正値を、取得された重付係数で重み付けし、重み付けされた補正値を、ステップS44で算出された評価値に加算する。本変形例では、猶予時間がより長い程、補正値がより高い値に算出されるため、猶予時間がより長い程、補正前よりもより高い値に補正後の評価値は決定される。このように評価値が補正されるのは、猶予時間をより長くする移動制御情報程、運搬の開始をより早くするため、より適切だからである。
これらの構成によれば、制御装置100の取得部110は、注文の対象とされた商品の運搬の開始期限を示す開始情報をさらに取得し、生成部120は、開始情報にさらに基づく評価値を、移動制御情報のN個の候補のそれぞれに対して決定する。このため、制御装置100は、商品の運搬の開始の遅れを確実に抑制する移動制御情報を生成できる。
本変形例において、制御装置100の生成部120は、猶予時間がより長い程、補正値をより高い値に算出すると説明したが、これに限定される訳では無い。生成部120は、例えば、猶予時間に予め定められた正の定数を加算した値の逆数を補正値とすることで、猶予時間がより長い程、補正値をより低い値に算出しても良い。猶予時間に正の定数が加算されるのは、猶予時間が「0」分であっても補正値を算出可能にするためである。また、生成部120は、猶予時間に基づいて算出された補正値を正の重付係数で重み付けてから、重み付けられた補正値を、ステップS44で算出された評価値から減算しても良い。
<実施例1の変形例4>
実施例1の変形例2では、制御装置100の生成部120は、移動機800又は900で消費されると推定されるエネルギー量と開始待ち時間とに基づいて評価値を決定すると説明した。また、実施例1の変形例3では、生成部120は、消費されると推定されるエネルギー量と開始期限までの猶予時間とに基づいて評価値を決定すると説明した。
しかし、これらに限定される訳では無く、本変形例に係る制御装置100の生成部120は、消費されると推定されるエネルギー量と、開始待ち時間又は猶予時間と、運搬される商品の最長許容時間と、に基づいて評価値を決定する。
このために、制御装置100の取得部110は、図5の商品テーブルにおいて、注文された商品の商品IDと対応付けられた最長許容時間を示す情報を取得し、生成部120は、取得された情報で示される最長許容時間に基づいて正の重付係数を算出する。
本変形例では、制御装置100の生成部120は、最長許容時間の逆数に予め定められた正の定数を乗算することで、最長許容時間がより短い程、補正値の重付係数をより高い値に算出するが、重付係数の算出方法は、これに限定されるわけでは無い。このように重付係数が算出されるのは、商品の最長許容時間は、当該商品の特性に応じて予め定められており、かつ、商品の特性は、時間の経過に伴って商品の状態が変化する性質を含むためである。すなわち、準備が完了してから運搬が開始されるまでの時間として許容される最長の時間である最長許容時間がより短い商品程、より短い時間の経過によって商品の状態が変化する性質を有するためである。
その後、制御装置100の生成部120は、算出された重付係数で、開始待ち時間又は猶予時間に基づいて算出された補正値を重み付けし、重み付けされた補正値を、ステップS44で算出された評価値に加算する。本変形例では、最長許容時間がより短い程、重付係数がより大きい値に算出されるため、移動機800又は900で消費されると推定されるエネルギー量に基づいて決定された評価値の重みと比較して、開始待ち時間又は猶予時間に基づいて算出された補正値の重みがより重くなる。このため、制御装置100は、移動機800又は900が運搬の開始位置まで移動するために消費するエネルギー量の増加を抑制しながら、運搬の開始位置への移動機800又は900の到着までに生じる商品の状態の変化を確実に抑制できる。
<実施例1の変形例5>
実施例1では、図3のステップS06において、移動機800又は900の位置から運搬の開始位置に到る経路であり、かつ、移動機800が基準の速度で移動する場合に、準備時間以上、かつ、合計時間以下の移動時間を要する移動経路がN個選択されると説明した。
しかし、これに限定される訳では無い。本変形例では、移動機800又は900の位置から運搬の開始位置に到る移動経路と、予め定められた制限速度以下の速度であり、かつ、当該移動経路を準備時間以上、かつ、準備時間と最長許容時間との合計時間以下の移動時間で移動機800又は900が移動するための移動速度と、の組合せがN個生成される。
このために、制御装置100の生成部120は、ステップS06において、移動機800又は900の位置から開始位置へ到る全体経路を複数探索し、探索された複数の全体経路について総距離を算出する。その後、生成部120は、複数の全体経路のそれぞれについて、算出された総距離に基づいて、移動時間が準備時間以上、かつ、合計時間以下となる移動速度を算出する。これにより、生成部120は、全体経路と移動速度との複数の組合せを生成する。
本変形例では、制御装置100の生成部120は、移動時間が準備時間以上、かつ、合計時間以下となる移動速度の内で、最も遅い速度を算出するが、これに限定される訳ではない。生成部120が算出する速度は、移動時間が準備時間以上、かつ、合計時間以下となる移動速度であれば、どのような速度であっても良い。例えば、生成部120は、移動時間が準備時間以上、かつ、合計時間以下となる移動速度の内で、予め定められた規則又はソフトウェア乱数に基づく速度を算出しても良い。
その後、制御装置100の取得部110は、情報記憶部190が予め記憶する制限速度を示す情報を取得する。次に、生成部120は、取得された情報で示される制限速度よりも大きい移動速度を含む組合せを、生成された複数の組合せから除外する。次に、生成部120は、除外後の組合せからN個の組合せを、移動機800又は900の移動経路と移動速度との組合せとして選択する。本変形例では、移動速度が遅い順にN個の組合せが選択されるが、これに限定される訳では無く、例えば、移動速度が予め定められた速度よりも遅い複数の組合せから、予め定められた規則に基づいて又はソフトウェア乱数に基づいて、N個の組合せが選択されても良い。
その後、制御装置100の生成部120は、ステップS07において、1番目からN番目の番号をN個の組合せに付与する。次に、生成部120は、1番目の組合せに含まれる移動経路を示す情報と、移動速度を示す情報と、を含んだ、移動機800又は900の移動制御情報の1番目の候補を生成する。同様に、生成部120は、移動機800又は900の移動制御情報の2番目からN番目の候補を生成する。
その後、制御装置100は、図7のステップS31を実行することで、移動機800が移動する距離を、当該距離を移動するために移動機800又は900が消費すると推定されるエネルギー量に変換するための変換係数αlを取得した後、取得された変換係数αlを移動速度に基づいて補正する。本変形例において、制御装置100の生成部120は、例えば、移動速度を基準の速度で除算した値を補正前の変換係数αlに乗算する。これにより、生成部120は、移動速度が基準の速度よりもより速い程、変換係数αlを補正前よりもより大きい値に補正し、かつ、移動速度が基準の速度よりもより遅い程、変換係数αlを補正前よりもより小さい値に補正するが、変換係数αlの補正方法は、これに限定されるわけでは無い。
その後、制御装置100の生成部120は、ステップS32からS44の処理を実行することで、補正後の変換係数αlを用いてn番目の候補の評価値を決定する。次に、生成部120は、図3のステップS12で、補正後の変換係数αlを用いて決定された評価値に基づいて候補を選択することで、移動機800及び900の移動制御情報を生成する。また、選択部130は、ステップS14で、補正後の変換係数αlを用いて決定された評価値に基づいて、商品を運搬させる移動機800又は900を選択する。その後、制御部140は、ステップS15で、移動経路を示す情報と、移動速度を示す情報と、を含んだ移動制御情報を、選択された移動機800又は900を宛先としてデータ通信回路104へ出力する。これにより、制御部140は、当該移動経路を当該移動速度で移動させる制御を移動機800又は900に行う。
移動機800のCPU891は、図10のステップS51において、制御装置100から受信された移動制御情報から、移動経路を示す情報と、移動速度を示す情報と、を取得する。次に、CPU891は、ステップS53において、取得された情報で示される移動速度で、取得された情報で示される移動経路を順行するための制御信号を、複数の車輪を回転させる不図示のモータに接続された駆動回路899へ出力する。
<実施例1の変形例6>
実施例1では、移動機800及び900は、基準モードで移動経路を移動すると説明したが、これに限定される訳では無い。本変形例では、移動機800及び900は、低速モード、基準モード、及び、高速モードのいずれか1つのモードで移動経路を移動する。
低速モードは、基準の速度よりも遅い予め定められた速度(以下、低速度という)が移動機800又は900に設定される動作モードであり、高速モードは、基準の速度よりも速い予め定められた速度(以下、高速度という)が移動機800又は900に設定される動作モードである。
このため、本変形例に係る制御装置100の生成部120は、図3のステップS06において、移動機800又は900の位置から運搬の開始位置へ到る全体経路をN’個探索し(但し、N’は、自然数)、探索されたN’個の全体経路について総距離を算出する。次に、制御装置100の生成部120は、探索されたN’個の全体経路のそれぞれについて、移動時間を準備時間以上、かつ、合計時間以下とする速度が設定される動作モードの内で、最も遅い速度が設定される最遅モードを特定する。
このため、制御装置100の取得部110は、情報記憶部190が予め記憶する低速度を示す情報、基準の速度を示す情報、及び、高速度を示す情報を取得する。次に、生成部120は、1番からN’番の番号をN’個の全体経路に付与した後に、全体経路の番号を識別する変数n’を値「1」で初期化する。
その後、制御装置100の生成部120は、変数n’の値が、全体経路の数N’以下であるか否かを判別する。このとき、生成部120は、変数n’の値が数N’以下であると判別すると、変数n’で識別される番号の全体経路の総距離と、低速モードで設定される低速度と、に基づいて、移動機800又は900が低速度で当該全体経路を移動した場合に、移動時間が準備時間以上、かつ、合計時間以下となるか否かを判別する。
このとき、制御装置100の生成部120は、移動時間が準備時間未満となると判別すると、移動時間を準備時間以上、かつ、合計時間以下とする速度が設定される動作モードが存在しないと判別する。その後、生成部120は、変数n’の値を値「1」だけインクリメントした後に、変数n’の値が数N’以下であるか否かを判別する処理から上記処理を繰り返す。
これに対して、制御装置100の生成部120は、移動時間が準備時間以上、かつ、合計時間以下となると判別すると、最遅モードが低速モードであると特定する。次に、生成部120は、変数n’の値で識別される番号の全体経路を移動経路として選択し、選択された移動経路と低速モードとの組合せを生成する。その後、変数n’の値を値「1」だけインクリメントした後に、変数n’の値が数N’以下であるか否かを判別する処理から上記処理を繰り返す。
またこれに対して、制御装置100の生成部120は、移動時間が合計時間よりも長くなると判別すると、変数n’で識別される番号の全体経路を移動機800又は900が基準の速度で移動した場合に、移動時間が準備時間以上、かつ、合計時間以下となるか否かを判別する。
このとき、制御装置100の生成部120は、移動時間が準備時間以上、かつ、合計時間以下となると判別すると、最遅モードが基準モードであると特定する。次に、生成部120は、当該全体経路を移動経路として選択し、選択された移動経路と基準モードとの組合せを生成する。その後、変数n’の値を値「1」だけインクリメントした後に、変数n’の値が数N’以下であるか否かを判別する処理から上記処理を繰り返す。
またこれに対して、制御装置100の生成部120は、移動時間が合計時間よりも長くなると判別すると、当該全体経路を移動機800又は900が高速度で移動した場合に、移動時間が準備時間以上、かつ、合計時間以下となるか否かを判別する。
このとき、制御装置100の生成部120は、移動時間が準備時間以上、かつ、合計時間以下となると判別すると、最遅モードが高速モードであると特定する。次に、生成部120は、当該全体経路を移動経路として選択し、選択された移動経路と高速モードとの組合せを生成する。その後、変数n’の値を値「1」だけインクリメントした後に、変数n’の値が数N’以下であるか否かを判別する処理から上記処理を繰り返す。
これに対して、制御装置100の生成部120は、移動時間が合計時間よりも長くなると判別すると、移動時間を準備時間以上、かつ、合計時間以下とする速度が設定される動作モードが存在しないと判別する。その後、生成部120は、変数n’の値を値「1」だけインクリメントした後に、変数n’の値が数N’以下であるか否かを判別する処理から上記処理を繰り返す。
制御装置100の生成部120は、変数n’の値が数N’より大きいと判別すると、生成された組合せの数Nを計数し、生成されたN個の組合せに1番からN番の番号を付与する。次に、生成部120は、ステップS07において、1番目の組合せに含まれる移動経路を示す情報と、最遅モードを示すモード情報と、を含んだ、移動機800又は900の移動制御情報の1番目の候補を生成する。同様に、生成部120は、移動機800又は900の移動制御情報の2番目からN番目の候補を生成する。
その後、制御装置100の取得部110は、図7のステップS31で、n番目の候補に含まれるモード情報に情報記憶部190が対応付けて予め記憶している変換係数αlを取得する。本変形例において、情報記憶部190が、高速モードを示すモード情報に対応付けて記憶している変換係数αlは、基準モードを示すモード情報に対応付けて記憶している変換係数αlよりも値が大きい。このような変換係数αlを情報記憶部190が記憶しているのは、高速モードで設定される高速度は、基準モードで設定される基準の速度よりも速いため、高速モードで移動機800又は900が単位距離だけ移動するために消費すると推定されるエネルギー量は、基準モードで移動機800又は900が単位距離だけ移動するために消費すると推定されるエネルギー量よりも多いからである。
また、情報記憶部190が、低速モードを示すモード情報に対応付けて記憶している変換係数αlは、基準モードを示すモード情報に対応付けて記憶している変換係数αlよりも値が小さい。このような変換係数αlを情報記憶部190が記憶しているのは、低速モードで移動機800又は900が単位距離だけ移動するために消費すると推定されるエネルギー量は、基準モードで移動機800又は900が単位距離だけ移動するために消費すると推定されるエネルギー量よりも少ないからである。
その後、制御装置100は、ステップS32からS44の処理を実行することで、最遅モードに応じた変換係数αlを用いてn番目の候補の評価値を決定する。次に、生成部120は、図3のステップS12で、最遅モードに応じた変換係数αlを用いて決定された評価値に基づいて候補を選択することで、移動機800及び900の移動制御情報を生成する。また、選択部130は、ステップS14で、最遅モードに応じた変換係数αlを用いて決定された評価値に基づいて、商品を運搬させる移動機800又は900を選択する。その後、制御部140は、ステップS15で、移動経路を示す情報と、最遅モードを示すモード情報と、を含んだ移動制御情報を、移動機800又は900を宛先としてデータ通信回路104へ出力する。これにより、制御部140は、移動経路を最遅モードで移動させる制御を、選択された移動機800又は900に行う。
本変形例に係る移動機800のCPU891は、図10のステップS51において、制御装置100から受信された移動制御情報から、移動経路を示す情報と、最遅モードを示すモード情報と、を取得する。次に、CPU891は、フラッシュメモリ893bが、取得されたモード情報と予め対応付けて記憶する情報であり、かつ、当該モード情報で示される最遅モードにおいて設定される速度を示す情報を取得する。その後、CPU891は、ステップS53において、取得された情報で示される速度で、取得された情報で示される移動経路を順行するための制御信号を駆動回路899へ出力する。
これらの構成によれば、移動機800又は900の移動制御情報のN個の候補のそれぞれは、移動経路の移動時における移動機800又は900の動作モードを示す情報をさらに含む。また、制御装置100の生成部120は、N個の候補のそれぞれに対して、移動機800又は900が移動経路を当該動作モードで移動する場合に移動機800又は900で消費されると推定されるエネルギー量に基づく評価値を決定する。このため、制御装置100は、移動機800又は900が運搬の開始位置まで移動するために消費するエネルギー量の増加を確実に抑制できる。
<実施例1の変形例7>
実施例1の変形例6では、制御装置100の生成部120は、図3のステップS06において、移動機800又は900の位置から開始位置へ到るN個の移動経路のそれぞれについて、移動時間を準備時間以上、かつ、合計時間以下とする速度が設定される動作モードの内で、最も遅い速度が設定される最遅モードを特定すると説明した。
しかし、これに限定される訳では無く、本変形例に係る制御装置100の生成部120は、移動機800又は900の位置から開始位置へ到るN個の移動経路のそれぞれについて、移動時間を準備時間以上、かつ、合計時間以下とする速度が設定される動作モードを1又は複数特定する。
このために、本変形例に係る制御装置100の生成部120は、ステップS06において、全体経路をN’個探索し(但し、N’は自然数)、変数n’を値「1」で初期化する。次に、生成部120は、変数n’の値が、全体経路の数N’以下であるか否かを判別する。このとき、生成部120は、変数n’の値が数N’以下であると判別すると、変数n’の値で識別される番号の全体経路の移動時間を準備時間以上、かつ、合計時間以下とする速度が設定される動作モード(以下、候補モードという)が存在するか否かを判別する。
このとき、制御装置100の生成部120は、候補モードが存在しないと判別すると、変数n’の値を値「1」だけインクリメントした後に、変数n’の値が数N’以下であるか否かを判別する処理から上記処理を繰り返す。
これに対して、制御装置100の生成部120は、候補モードが存在すると判別すると、候補モードの数Iを計数する。次に、生成部120は、変数n’の値で識別される番号の全体経路を移動経路として選択し、選択された移動経路と、I個の候補モードと、のI個の組合せを生成する。その後、生成部120は、変数n’の値を値「1」だけインクリメントした後に、変数n’の値が数N’以下であるか否かを判別する処理から上記処理を繰り返す。
制御装置100の生成部120は、変数n’の値が数N’より大きいと判別すると、実施例1の変形例6と同様に、ステップS07からS15の処理を実行する。これにより、生成された組合せの数Nを計数し、生成されたN個の組合せに1番からN番の番号を付与する。次に、生成部120は、N番目の組合せに含まれる移動経路を示す情報と、動作モードを示すモード情報と、を含んだ、移動機800又は900の移動制御情報の1番目の候補を生成する。同様に、生成部120は、移動機800又は900の移動制御情報の2番目からN番目の候補を生成する。その後、制御装置100は、N個の候補に基づいて、移動経路を示す情報と、動作モードを示すモード情報と、を含んだ移動制御情報を生成し、生成された移動制御情報を移動機800又は900へ送信する。
本変形例に係る移動機800のCPU891は、移動制御情報が受信されると、実施例1の変形例6と同様に、図10に示した移動処理を実行する。これにより、移動機800は、移動制御情報から動作モードを示す情報と、移動経路を示す情報と、を取得し、取得された情報で示される動作モードの設定速度で移動経路を順行する。
<実施例1の変形例8>
実施例1では、移動機800及び900は、注文者に指定された運搬先まで商品を運搬すると、予め定められた駐車場まで移動し、移動制御情報を制御装置100から受信するまで、駐車場で駐車又は停車を続けると説明した。
しかし、これに限定される訳では無く、移動機800又は900は、商品の運搬後、駐車場へ到着するまでの移動中に、移動制御情報を制御装置100から受信すると、受信された移動制御情報に従って運搬の開始位置への移動を開始しても良い。また、商品の運搬後に移動機800及び900が駐車場へ移動することに限定される訳では無く、移動機800が駐車可能又は停車可能な位置であれば、商品の運搬後に何処へ移動しても良い。
さらに、移動機800及び900は、運搬先まで商品を運搬すると、新たな移動制御情報を制御装置100から受信するまで、運搬先の近傍、又は、予め定められた地点の近傍を予め定められた速度で周回又は往復走行しても良い。本変形例において、運搬先の近傍は、運搬先から予め定められた距離だけ離れた境界線よりも運搬先側の領域を意味する。また、予め定められた地点の近傍は、当該地点から予め定められた距離だけ離れた境界線よりも当該地点側の領域を意味する。
さらに、移動機800及び900は、運搬先の近傍、又は、予め定められた地点の近傍で一旦停車した後に、運搬先の近傍、又は、予め定められた地点の近傍を周回又は往復走行しても良いし、周回又は往復走行した後に停車しても良いし、停車と周回又は往復走行とを繰り返しても良い。
<実施例1の変形例9>
実施例1では、運搬システム1は、無人地上車両である移動機800及び900を備えると説明した。しかし、これに限定される訳ではなく、本変形例に係る運搬システム1は、図11に示すような、例えば、ドローン等の無人航空機である移動機700と、無人地上車両である移動機900と、を備える。
移動機700は、移動機700の姿勢及び飛行を制御する制御装置790と、制御装置790の前面から右前方及び左前方、並びに、制御装置790の後面から左後方及び右後方にそれぞれ突出したプロペラアーム701及び702、並びに、703及び704と、を備える。また、移動機700は、プロペラアーム701から704の先端にそれぞれ設置されたプロペラ711から714、及び、制御装置790の制御に従ってプロペラ711から714を回転させる不図示のモータを備える。プロペラ711から714を回転させる当該モータは、移動機700が備える不図示のバッテリに蓄積された電力エネルギーを消費して駆動する。
さらに、移動機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は、制御装置790の前面に設けられたLiDARセンサ731と、制御装置790の後面に設けられた不図示のLiDARセンサと、を備える。移動機700が備える前面のLiDARセンサ731と後面のLiDARセンサとの構成及び機能は、それぞれ移動機800が備える前面のLiDARセンサ831と後面のLiDARセンサとの構成及び機能と同様である。
移動機700の制御装置790は、ハードウェアである不図示のCPU、RAM、ROM、フラッシュメモリ、データ通信回路、ビデオカード、表示装置、入力装置、位置計測回路、方位角センサ、入出力ポート、及び、駆動回路を備える。移動機700の制御装置790が備えるこれらのハードウェアの構成及び機能は、図9に示した移動機800の制御装置890が備えるハードウェアの構成及び機能と同様である。
移動機700の駆動回路は、プロペラ711から714を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路は、CPUが出力する信号に従って、プロペラ711から714を回転させる不図示のモータを駆動させる。また、移動機700の駆動回路は、CPUが出力する信号に従って、第1囲持枠721aと第2囲持枠721bとを移動させる不図示のモータを駆動させる。
移動機700が備える不図示のデータ通信回路が移動制御情報を受信すると、移動機700のCPUは、図10に示した移動処理を実行する。これにより、移動機700は、移動制御情報に含まれる移動経路を基準の速度で飛行して運搬の開始位置へ移動する。
本変形例に係る制御装置100の生成部120は、図7のステップS40において、始点ノードの高度が、終点ノードの高度よりも低いか否かに基づいて、当該エッジで示される空路が上昇勾配を有するか否かを判別する(ステップS40)。このとき、生成部120は、始点ノードの高度が終点ノードの高度よりも低いため、当該空路が上昇勾配を有すると判別すると(ステップS40;Yes)、実施例1と同様に、始点ノードの高度と終点ノードの高度との高度差Hを算出する(ステップS41)。次に、生成部120は、算出された高度差Hに変換係数αhを乗算することで、当該高度差Hだけ上昇するために移動機800で消費されるエネルギー量がαh×Hであると推定する。次に、生成部120は、推定されたエネルギー量αh×Hを変数CEに加算する(ステップS42)。
本変形例では、移動機700は、制御装置790の下面に、商品を囲持する第1囲持枠721a及び第2囲持枠721bと、第1囲持枠721a及び第2囲持枠721bの移動方向を定めるガイドレール722a及び722bと、を備えると説明した。しかし、これに限定される訳では無く、移動機700は、制御装置790の下面に、商品を格納する不図示の格納庫を備えても良い。移動機700が備える格納庫の構成及び機能は、移動機800が備える格納庫820の構成及び機能と同様である。
本変形例では、移動機900は、地上走行車両であると説明したが、これに限定される訳ではない。移動機900は、移動機700の構成及び機能と同様の構成及び機能を有する無人航空機であっても良い。
また、本変形例では、移動機700は、無人航空機であると説明したが、これに限定される訳ではなく、無人飛翔体であっても良い。さらに、本変形例では、移動機700は、プロペラ711から714で揚力及び推力を得るドローンであると説明したが、これに限定される訳ではない。移動機700は、翼を備え、翼で揚力を得えても良いし、空気よりも比重の小さい気体で満たされた気嚢を備え、気嚢で揚力を得えても良い。また、移動機700は、ジェットエンジン又はロケットエンジンを備え、ジェットエンジン又はロケットエンジンで推力を得ても良い。
<実施例1の変形例10>
実施例1では、移動機800及び900が備えるバッテリは、リチウムイオン電池であると説明したが、これに限定される訳では無い。移動機800及び900が備えるバッテリは、どのような蓄電池であっても良く、例えば、鉛蓄電池又はニッケル水素電池であっても良い。
<実施例1の変形例11>
実施例1において、基準モードでは、予め定められた基準の速度が移動機800又は900に設定されると説明したが、これに限定される訳では無い。基準モードでは、予め定められた基準の加速度が移動機800又は900にさらに設定されても良い。また、基準モードでは、予め定められた基準の減速度が移動機800又は900にさらに設定されても良い。
また、これらに限定される訳では無く、基準モードでは、方向変換時における移動機800又は900の進行方向を示す方位角の単位時間当たりの変化量として、予め定められた基準の角速度が移動機800又は900にさらに設定されても良い。また、基準モードでは、予め定められた基準の角加速度が移動機800又は900にさらに設定されても良いし、予め定められた基準の角減速度が移動機800又は900にさらに設定されても良い。
実施例1の変形例6において、高速モードでは、基準の速度よりも速い速度である高速度が移動機800又は900に設定されると説明したが、これに限定される訳では無い。高速モードでは、基準の加速度よりも大きい加速度が移動機800又は900にさらに設定されても良いし、基準の減速度よりも大きい減速度が移動機800又は900にさらに設定されても良い。また、高速モードでは、基準の角速度よりも速い角速度が移動機800又は900にさらに設定されても良いし、基準の角加速度及び基準の角減速度よりもそれぞれ大きい角加速度及び角減速度が移動機800又は900にさらに設定されても良い。
実施例1の変形例6において、低速モードでは、基準の速度よりも遅い速度である低速度が移動機800又は900に設定されると説明したが、これに限定される訳では無い。低速モードでは、基準の加速度よりも小さい加速度及び減速度が移動機800又は900にさらに設定されても良い。また、低速モードでは、基準の角速度よりも遅い角速度が移動機800又は900にさらに設定されても良いし、基準の角加速度及び基準の角減速度よりもそれぞれ小さい角加速度及び角減速度が移動機800又は900にさらに設定されても良い。
<実施例1の変形例12>
実施例1では、移動制御情報の候補がより適切である程、当該候補の評価値がより高く決定されると説明したが、これに限定される訳では無い。移動制御情報の候補がより適切である程、当該候補の評価値がより低く決定されても良い。
この場合、制御装置100の生成部120は、図3のステップS12において、より高い評価値が決定された候補よりも、より低い評価値が決定された候補を優先して選択するならば、どのように候補を選択しても良い。例えば、生成部120は、最も低い評価値が決定された候補を、移動機800又は900の移動制御情報として選択すれば良い。また、生成部120は、ステップS14において、移動機800の移動制御情報の評価値が、移動機900の移動制御情報の評価値以下の場合に、移動機800を、注文された商品を運搬させる移動機として選択すれば良い。
<実施例1の変形例13>
実施例1では、制御装置100の生成部120は、最も高い評価値が決定された候補を、移動機800又は900の移動制御情報として選択すると説明したが、これに限定される訳では無い。生成部120は、より低い評価値が決定された候補よりも、より高い評価値が決定された候補を優先して選択するならば、どのように候補を選択しても良い。例えば、生成部120は、予め定められた評価値よりも高い評価値が決定された1又は複数の候補から、予め定められた規則又はソフトウェア乱数に基づいて1つの候補を選択しても良い。
<実施例1の変形例14>
実施例1では、運搬の開始位置は、端末装置300が設置された店舗のエントランスの位置であると説明したが、これに限定される訳ではない。本変形例に係る運搬の開始位置は、注文者によって指定された店舗のエントランスの位置である。
このため、本変形例に係る制御装置100の取得部110は、図3のステップS01で、注文者によって指定された店舗を識別する店舗IDと、当該店舗で販売される商品の商品IDと、当該商品の運搬先を示す運搬先情報と、を含む注文リクエストを取得する。次に、取得部110は、店舗IDで識別される店舗に設置された端末装置300又は不図示の端末装置を宛先として、注文リクエストをデータ通信回路104へ出力することで、注文リクエストを転送する。
さらに、制御装置100の取得部110は、図6のステップS22で、注文リクエストから取得された店舗ID及び商品IDと情報記憶部190が予め対応付けて記憶している準備情報及び合計情報を取得する。このようにして、注文者によって指定された店舗で販売される商品の準備時間を示す準備情報、及び、準備時間と最大許容時間との合計時間を示す合計情報が取得される。
また、制御装置100の取得部110は、ステップS23で、店舗IDと情報記憶部190が予め対応付けて記憶している開始位置情報を取得する。このようにして、注文者によって指定された店舗で販売される商品の運搬が開始される開始位置を示す開始位置情報が取得される。
<実施例1の変形例15>
実施例1では、注文の対象は、商品であると説明したが、これに限定される訳では無い。注文の対象は、どのような物であっても良く、例えば、商取引の対象とされない物であっても良い。また、注文の対象は、物でなく、生き物であっても良い。
実施例1では、商品は、飲食物であると説明したが、これに限定される訳では無く、例えば、書籍又は家電機器といった飲食物と異なる物であっても良い。また、実施例1では、運搬の開始位置は、注文された飲食物を販売する店舗のエントランスの位置であると説明したが、これに限定される訳では無い。運搬の開始位置は、移動機800及び900が停車可能若しくは駐車可能な位置、又は、移動機700が着陸可能な位置であれば、どのような位置であっても良く、例えば、注文された商品を保管している倉庫の搬出口の位置であっても良い。
また、実施例1では、運搬先は、受取人又は代理人が居住するマンションのエントランスであると説明したが、これに限定される訳では無い。運搬先は、移動機800及び900が停車可能若しくは駐車可能な位置、又は、移動機700が着陸可能な位置であれば、どのような位置であっても良い。
移動機800及び900が停車又は駐車可能な位置は、例えば、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のエントランス、又は、一軒家の玄関先であっても良い。また、移動機800及び900が停車又は駐車可能な位置は、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のロビーであっても良いし、一軒家、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設の庭、駐車場、河原、又は、公園であっても良い。
また、移動機700が着陸可能な位置は、移動機800及び900が停車又は駐車できる位置に加え、一軒家、共同住宅、オフィスビル、ホテル、商業施設、又は、公共施設のベランダ、又は、屋上であっても良い。
また、移動機800及び900は、運搬の開始位置に到着すると当該開始位置で停車又は駐車するのではなく、開始位置の近傍を予め定められた速度で周回又は往復走行しても良い。運搬の開始位置の近傍は、当該開始位置から予め定められた距離D1だけ離れた境界線よりも当該開始位置側の領域を意味する(但し、D1は正数)。また、移動機800及び900は、運搬の開始位置の近傍で一旦停車した後に、運搬の開始位置の近傍を周回又は往復走行しても良いし、周回又は往復走行した後に停車しても良いし、停車と周回又は往復走行とを繰り返しても良い。
さらに、移動機700は、運搬の開始位置又は運搬先に到着すると当該開始位置又は運搬先に着陸するのではなく、当該開始位置の近傍又は運搬先の近傍を、予め定められた速度以下の速度で周回若しくは往復飛行しても良いし、又は、予め定められた範囲内の高度でホバリング飛行しても良い。当該開始位置の近傍又は運搬先の近傍は、当該開始位置又は運搬先から予め定められた距離だけ離れた境界線よりも当該開始位置又は運搬先側の空域を意味する。
<実施例1の変形例16>
本実施例では、移動機800及び900は、無人地上車両であると説明した。また、実施例1の変形例9では、移動機700は、無人航空機であると説明した。しかし、移動機700、800、及び、900は、必ずしも無人である必要はなく、制御装置100による制御を除き、自律して移動する物体であれば、人が乗っていても良い。
<実施例1の変形例17>
本実施例では、制御装置100は、情報記憶部190を備えると説明したが、これに限定される訳ではない。本変形例に係る制御装置100は、情報記憶部190を備えない。本変形例に係る制御装置100は、例えば、NAS(Network Attached Storage)であり、かつ、情報記憶部190の機能と同様の機能を有する不図示の情報記憶装置とインターネットINを介して接続されており、情報記憶装置が記憶する情報を用いて、図3に示した移動制御処理、図6に示した情報取得処理、及び、図7に示した評価値算出処理を実行する。本変形例に係る運搬システム1は、情報記憶装置を備えても良いし、情報記憶装置を備えなくても良い。
<実施例1の変形例18>
実施例では、運搬システム1は、制御装置100を備えると説明したが、これに限定される訳ではなく、制御装置100を備えなくとも良い。この場合、図3に示した移動制御処理、図6に示した情報取得処理、及び、図7に示した評価値算出処理は、移動機800が備える制御装置890のCPU891によって実行されても良い。このため、移動機800のCPU891が、制御装置100の取得部110、生成部120、選択部130、及び、制御部140に相当する不図示の機能部として機能しても良い。また、移動機800のフラッシュメモリ893bが、制御装置100の情報記憶部190に相当する不図示の機能部として機能しても良い。
<実施例2>
実施例1では、図3のステップS06において、制御装置100の生成部120は、移動機800又は900の位置から運搬の開始位置に到る複数の全体経路から、基準の速度で移動機800が移動する場合に、準備時間以上、かつ、合計時間以下の移動時間を要する移動経路をN個、移動経路として選択すると説明した。
しかし、これに限定される訳では無く、本実施例に係る制御装置100の生成部120は、移動機800が基準の速度で移動する場合に、準備時間よりも短い移動時間を要する全体経路と、準備時間以上、かつ、合計時間以下の移動時間を要する全体経路と、を合計N個、移動経路として選択する。以下、実施例1と同様の構成については、実施例1で用いた符号と同一の符号を用いて説明するが、本実施例と実施例1との相違について主に説明する。
このため、本実施例に係る制御装置100の生成部120は、ステップS06において、移動機800又は900の位置から開始位置へ到る全体経路を複数探索し、探索された複数の全体経路について移動時間を算出する。次に、生成部120は、探索された複数の全体経路の内で、算出された移動時間が合計時間以下である全体経路をN個、移動経路として選択する。その後、生成部120は、1番からN番の番号をN個の移動経路に付与する。
その後、制御装置100の生成部120は、図7のステップS44で、移動制御情報のn番目の候補について、移動機800又は900で消費されると推定されるエネルギー量に基づいて評価値を決定する。次に、生成部120は、図6のステップS22で取得された準備情報で示される準備時間が、当該候補について算出された移動時間以下であるか否かを判別する。
このとき、生成部120は、準備時間が移動時間以下であると判別すると、当該候補に含まれる移動経路を基準の速度で移動した場合に、移動機800又は900が運搬の開始位置へ到着したときに、運搬される商品の準備が完了していると判別する。このため、生成部120は、移動機800又は900が運搬の開始位置へ到着してから、運搬される商品の準備が完了するまでの準備待ち時間が「0」分であると判別する。これに対して、生成部120は、準備時間が移動時間よりも長いと判別すると、移動時間から準備情報を減算することで、準備待ち時間を算出する。生成部は、準備完了時刻から到着時刻を減算することで、準備待ち時間を算出しても良い。
次に、制御装置100の生成部120は、算出された準備待ち時間に基づいて、n番目の候補の評価値の補正値を算出する。本実施例で算出される補正値は、評価値の加算による補正に用いられる。このため、生成部120は、例えば、準備待ち時間に予め定められた正の定数を加算した値の逆数を補正値とすることで、準備待ち時間がより短い程、補正値をより高い値に算出する。準備待ち時間に正の定数が加算されるのは、準備待ち時間が「0」分であっても補正値を算出可能にするためである。本実施例において、補正値は、準備待ち時間に正の定数を加算した値の逆数として算出されるが、補正値の算出方法は、これに限定される訳では無い。
次に、制御装置100の取得部110は、情報記憶部190が予め記憶する補正値の正の重付係数を取得する。その後、生成部120は、算出された補正値を、取得された重付係数で重み付けし、重み付けされた補正値を、ステップS44で算出された評価値に加算する。本実施例では、準備待ち時間がより短い程、補正値がより高い値に算出されるため、準備待ち時間がより短い程、補正前よりもより高い値に補正後の評価値は決定される。
これらの構成によれば、制御装置100の生成部120は、移動機800又は900が移動経路を移動する場合に、移動機800又は900で消費されると推定されるエネルギー量と、移動機800又は900が運搬の開始位置へ到着してから注文の対象とされた商品の準備が完了するまでの準備待ち時間と、に基づく評価値を決定する。このため、制御装置100は、運搬の開始の遅れを抑制しながら、移動機800又は900が運搬の開始位置まで移動するために消費するエネルギー量の増加を抑制する移動制御情報を生成できる。
また、これらの構成によれば、制御装置100の生成部120は、移動機800又は900が運搬の開始位置に到着してから注文された商品の準備が完了するまでの準備待ち時間がより短い程、評価値をより高く決定する。このため、移動機800又は900が運搬の開始位置に到着してから商品の運搬が開始されるまでの時間が増長することを抑制できるため、運搬の開始位置の使用効率の低下を抑制する移動制御情報を生成できる。
本実施例において、運搬の開始位置の使用効率は、当該開始位置の付近を利用する人が使用できる領域の面積を、当該付近に含まれる領域の面積で除算することで算出される。また、開始位置の付近に含まれる領域は、開始位置から予め定められた距離D2だけ離れた境界線よりも開始位置側の領域を意味する(但し、D2は正数)。本実施例において、開始位置の付近を定める距離D2は、開始位置の近傍を定める距離D1よりも短いが、これに限定される訳ではない。距離D2は、距離D1に等しくても良いし、距離D1よりも長くても良い。
また、本実施例では、運搬の開始位置は、注文された商品を販売する店舗のエントランスの位置であるため、開始位置の付近に含まれる領域は、店舗のエントランス内の領域を含む。さらに、当該開始位置の付近を利用する人が使用できる領域の面積は、例えば、移動機800及び900を含む物が置かれていない領域の面積を含む。これらのため、制御装置100は、客又は従業員を含む店舗に出入りする人の通行を移動機800又は900が妨げる、又は、妨げる可能性がある時間の増長を抑制できる。
本実施例において、制御装置100の生成部120は、準備待ち時間がより短い程、補正値をより高い値に決定すると説明したが、これに限定される訳では無い。生成部120は、例えば、準備待ち時間に予め定められた定数を加算した値を補正値とすることで、準備待ち時間がより短い程、補正値をより低い値に算出しても良い。また、生成部120は、準備待ち時間に基づいて算出された補正値を正の重付係数で重み付けてから、重み付けられた補正値を、ステップS44で決定された評価値から減算しても良い。
<実施例2の変形例1>
実施例2では、制御装置100の生成部120は、図7のステップS44において、移動機800又は900で消費されると推定されるエネルギー量と、運搬の開始位置での準備待ち時間と、に基づいて評価値を決定すると説明したが、これに限定される訳では無い。
本変形例に係る制御装置100の生成部120は、移動機800又は900で消費されると推定されるエネルギー量と、運搬の開始位置での準備待ち時間と、運搬の開始位置の近傍の位置に待機場所があるか否かと、に基づいて評価値を決定する。本変形例において、待機場所は、移動機800及び900が停車又は駐車することが許可されている駐車場であるが、これに限定される訳では無く、移動機800及び900が停車又は駐車可能な場所であれば、どのような場所であっても良い。
このために、制御装置100の取得部110は、図6のステップS23において、運搬の開始位置を示す開始位置情報を取得した後に、移動機800及び900が待機するための待機場所が当該開始位置の近傍に存在するか否かを示す待機場所フラグを情報記憶部190から取得する。また、取得部110は、待機場所の位置を緯度、経度、及び、高度で示す情報を情報記憶部190から取得する。本変形例において待機場所フラグ及び待機場所の位置を示す情報は、情報記憶部190によって予め記憶されている。
その後、制御装置100の生成部120は、図7のステップS44で、移動制御情報のn番目の候補について、移動機800又は900で消費されると推定されるエネルギー量に基づいて評価値を決定する。次に、生成部120は、取得された待機場所フラグによって待機場所が存在しないことが示される場合に、実施例2で説明した処理を実行することで、準備待ち時間を算出し、算出された準備待ち時間に基づいて補正値を算出する。本変形例で算出される補正値は、評価値の加算による補正に用いられるため、準備待ち時間がより短い程、より高い値に算出される。
これに対して、制御装置100の生成部120は、取得された待機場所フラグによって待機場所が存在することが示される場合に、準備待ち時間が「0」分である場合に算出される最大の補正値を算出する。このような補正値が算出されるのは、注文された商品の準備が完了するまで、移動機800又は900が待機場所で待機すれば、運搬の開始位置の利用効率を低下させないためである。
その後、制御装置100の生成部120は、実施例2と同様に、算出された補正値を正の重付係数で重み付けし、重み付けされた補正値を評価値に加算することで、評価値を補正する。本変形例では、運搬の開始位置に待機場所が存在する場合に、重み付けされた最大の補正値が評価値に加算される。その後、生成部120は、評価値算出処理の実行を終了する。
その後、制御装置100の生成部120は、図3のステップS12において、補正された評価値に基づいて移動機800及び900の移動制御情報を生成する。また、選択部130は、ステップS14において、補正された評価値に基づいて移動機800又は900を選択する。次に、生成部120は、ステップS15において、選択された移動機800又は900の移動制御情報に、準備待ち時間を示す情報を追加する。
その後、制御装置100の生成部120は、準備待ち時間が「0」分よりも長いか否かを判別する。このとき、生成部120は、準備待ち時間が「0」分よりも長いと判別すると、待機場所フラグに基づいて運搬の開始位置の近傍の位置に待機場所が存在するか否かを判別する。生成部120は、待機場所が存在すると判別すると、図3のステップS06と同様の処理を実行することで、運搬の開始位置から待機場所に到る最短の全体経路(以下、待機経路という)を探索する。次に、生成部120は、移動機800又は900の移動制御情報に待機経路を示す情報を追加する。
これに対して、準備待ち時間が「0」分であると判別された場合、待機場所が存在しないと判別された場合、又は、移動制御情報に待機経路を示す情報が追加された後、制御装置100の制御部140は、移動機800又は900を宛先として、移動制御情報をデータ通信回路104へ出力する。これにより、準備待ち時間が「0」分であると判別された場合、制御部140は、運搬の開始位置へ移動させる制御を移動機800又は900に行う。また、準備待ち時間が「0」分より長く、かつ、運搬の開始位置の近傍の位置に待機場所が存在しない場合、制御部140は、運搬の開始位置へ移動させる制御、及び、開始位置で準備待ち時間に亘って待機させる制御を移動機800又は900に順に行う。さらに、準備待ち時間が「0」分より長く、かつ、運搬の開始位置の近傍の位置に待機場所が存在する場合、制御部140は、運搬の開始位置へ移動させる制御、開始位置から待機場所へ移動させる制御、待機場所で準備待ち時間に亘って待機させる制御、及び、待機場所から開始位置へ移動させる制御を移動機800又は900に順に行う。
本変形例に係る移動機900の機能は、移動機800の機能と同様であるため、以下、移動機800について主に説明する。移動機800のCPU891は、図10のステップS51で、制御装置100から受信された移動制御情報を取得し、取得された移動制御情報から移動経路を示す情報と、準備待ち時間を示す情報と、を取得した後に、待機経路を示す情報の取得を試行する。
このとき、待機経路を示す情報が取得されると、移動機800のCPU891は、移動経路を示す情報に基づいて、ステップS52からS54の処理を実行する。これにより、移動機800は、運搬の開始位置へ移動経路を移動する。運搬の開始位置に到着したと判別すると(ステップS54;Yes)、移動機800のCPU891は、待機経路を示す情報に基づいて、ステップS52からS54と同様の処理を実行する。これにより、移動機800は、運搬の開始位置から待機場所へ待機経路を順行移動する。
その後、移動機800のCPU891は、停車又は駐車するための制御信号を駆動回路899へ出力した後に、計時を開始する。次に、移動機800のCPU891は、計時された時間が準備待ち時間を超えたと判別すると、待機経路を示す情報に基づいて、ステップS52からS54と同様の処理を実行する。これにより、移動機800は、待機経路を逆行して待機場所から開始位置へ移動する。その後、CPU891は、ステップS55の処理を実行した後に、移動処理の実行を終了する。
このようにして、移動機800は、待機経路を示す情報が移動制御情報から取得された場合、当該移動制御情報に従って、商品の準備が完了する前に運搬の開始位置に到着し、開始位置から待機場所へ移動し、商品の準備が完了するまで待機場所で待機してから、待機場所から開始位置へ移動する。
これに対して、待機経路を示す情報が取得されないと、移動機800は、ステップS52からS54の処理を実行することで、運搬の開始位置へ移動経路を移動する。移動機800は、運搬の開始位置に到着したと判別すると、運搬の開始位置で停車又は駐車した後に、計時を開始する。その後、移動機800のCPU891は、計時された時間が準備待ち時間を超えたと判別すると、ステップS55の処理を実行した後に、移動処理の実行を終了する。
このようにして、待機経路を示す情報が移動制御情報から取得されず、かつ、準備待ち時間が「0」分よりも長い場合に、移動機800は、移動制御情報に従って、商品の準備が完了する前に運搬の開始位置に到着し、商品の準備が完了するまで開始位置で待機する。これに対して、待機経路を示す情報が移動制御情報から取得されず、かつ、準備待ち時間が「0」分である場合に、移動機800は、商品の準備が完了した時、又は、準備が完了した後に、運搬の開始位置に到着する。
これらの構成によれば、制御装置100の生成部120は、運搬の開始位置から予め定められた距離D1よりも短い距離に在る近傍の位置に、移動機800及び900が待機するための待機場所が存在するか否かに基づく評価値を、移動制御情報のN個の候補のそれぞれに対して決定する。このため、制御装置100は、運搬の開始位置の使用効率の低下を抑制する移動制御情報を生成できる。
本変形例において、制御装置100の生成部120は、準備待ち時間がより短い程、補正値をより高い値に算出すると説明した。しかし、これに限定される訳で無く、生成部120は、準備待ち時間がより短い程、補正値をより低い値に算出しても良い。また、生成部120は、待機場所フラグによって待機場所が存在することが示される場合に、最小の補正値を算出しても良い。さらに、生成部120は、算出された補正値を正の重付係数で重み付けてから、重み付けられた補正値を評価値から減算しても良い。
<実施例2の変形例2>
運搬の開始位置が注文者によって指定された店舗のエントランスの位置である実施例1の変形例14と、運搬の開始位置の近傍の位置に待機場所があるか否かに基づいて移動制御情報の候補の評価値を決定する実施例2の変形例1と、は、組み合わせることができる。
この場合、制御装置100の取得部110は、注文リクエストから店舗IDを取得し、取得された店舗IDと情報記憶部190が予め対応付けて記憶している待機場所フラグを取得すれば良い。本変形例において、店舗IDと対応付けられている待機場所フラグは、当該店舗IDで識別される店舗の近傍の位置に移動機800及び900が待機するための待機場所が存在するか否かを表すフラグである。
また、この場合、制御装置100の取得部110は、取得された店舗IDと情報記憶部190が予め対応付けて記憶している待機場所の位置を示す情報を取得すれば良い。本変形例において、店舗IDと対応付けられている待機場所の位置を示す情報は、当該店舗IDで識別される店舗の近傍の位置に存在する待機場所の位置を緯度、経度、及び、高度で示す情報である。
<実施例2の変形例3>
実施例2の変形例1では、制御装置100の生成部120は、運搬の開始位置の近傍の位置に待機場所があるか否かに基づいて評価値を決定すると説明したが、これに限定される訳では無い。
制御装置100の生成部120は、運搬の開始位置が待機場所の位置であるか否かに基づいて評価値を決定しても良い。すなわち、生成部120は、運搬の開始位置に待機場所が存在するか否かに基づいて評価値を決定しても良い。また、生成部120は、運搬の開始位置に、若しくは、開始位置の近傍の位置に待機場所が存在するか、又は、運搬の開始位置及び開始位置の近傍の位置に待機場所が存在しないか、に基づいて評価値を決定しても良い。
<実施例2の変形例4>
実施例2の変形例1では、制御装置100の生成部120によって算出される補正値は、評価値の加算による補正に用いられるため、運搬の開始位置の近傍の位置に待機場所が存在する場合に、最大の補正値が算出されると説明したが、これに限定される訳では無い。
本変形例に係る補正値は、評価値の加算による補正に用いられる点で、実施例2の変形例1に係る補正値と同じである。しかし、本変形例に係る補正値は、運搬の開始位置の近傍の位置に待機場所が存在する場合に、当該近傍の位置に待機場所が存在しない場合に算出される補正値よりも高い値に算出される点で、実施例2の変形例1に係る補正値と異なる。
このために、制御装置100の生成部120は、待機場所フラグによって待機場所が存在しないことが示される場合に、例えば、準備待ち時間に予め定められた正の定数C1を加算した値の逆数を補正値とする。準備待ち時間に正の定数C1が加算されるのは、準備待ち時間が「0」分であっても補正値を算出可能にするためである。
これに対して、制御装置100の生成部120は、待機場所フラグによって待機場所が存在することが示される場合に、例えば、値「1」よりも小さい予め定められた正の定数C2を準備待ち時間に乗算することで、準備待ち時間を補正前よりも短い時間に補正する。その後、生成部120は、補正された準備待ち時間に正の定数C1を加算した値の逆数を補正値とする。このようにして、準備待ち時間の長さが同じであれば、運搬の開始位置の近傍の位置に待機場所が存在する場合に算出される補正値の方が、当該近傍の位置に待機場所が存在しない場合に算出される補正値よりも高く算出される。
その後、制御装置100の生成部120は、実施例2の変形例1と同様に、算出された補正値を正の重付係数で重み付けし、重み付けされた補正値を評価値に加算することで評価値を補正する。
本変形例において、制御装置100の生成部120は、運搬の開始位置の近傍の位置に待機場所が存在する場合に、当該近傍の位置に待機場所が存在しない場合に算出される補正値よりも高い補正値を算出すると説明した。しかし、これに限定される訳で無く、生成部120は、当該近傍の位置に待機場所が存在する場合に、待機場所が存在しない場合に算出される補正値よりも低い補正値を算出しても良い。
このために、制御装置100の生成部120は、待機場所フラグによって待機場所が存在しないことが示される場合に、例えば、準備待ち時間に予め定められた定数C3を加算した値を補正値とする。これに対して、生成部120は、待機場所フラグによって待機場所が存在することが示される場合に、値「1」よりも小さい予め定められた正の定数C4を準備待ち時間に乗算することで、準備待ち時間を補正前よりも短い時間に補正する。次に、生成部120は、補正された準備待ち時間に定数C3を加算した値を補正値とする。このようにして、準備待ち時間の長さが同じであれば、運搬の開始位置の近傍の位置に待機場所が存在する場合に算出される補正値の方が、当該近傍の位置に待機場所が存在しない場合に算出される補正値よりも低く算出される。その後、生成部120は、算出された補正値を正の重付係数で重み付けし、重み付けされた補正値を評価値から減算することで評価値を補正する。
<実施例2の変形例5>
実施例2の変形例1では、制御装置100の制御部140は、開始位置で、又は、開始位置の近傍の位置に存在する待機場所で、準備待ち時間に亘って待機させる制御を移動機800又は900に行うと説明したが、これに限定される訳では無い。
制御装置100の制御部140は、移動機位置情報で示される位置(以下、移動の開始位置という)、又は、移動の開始位置の近傍の位置に存在する待機場所で、準備待ち時間に亘って待機させる制御を移動機800又は900に行っても良い。この場合、制御装置100の生成部120は、移動機800又は900で消費されると推定されるエネルギー量と、移動機位置情報で示される移動の開始位置に、又は、当該移動の開始位置の近傍の位置に待機場所があるか否かと、当該待機場所での準備待ち時間と、に基づいて評価値を決定しても良い。
また、制御装置100の制御部140は、移動機800又は900の移動の開始位置から運搬の開始位置までの移動経路上の位置(以下、途中の位置という)、又は、当該途中の位置の近傍の位置に存在する待機場所で、準備待ち時間に亘って待機させる制御を移動機800又は900に行っても良い。
さらに、制御装置100の生成部120は、移動の開始位置及び移動の開始位置の近傍の位置、途中の位置及び途中の位置の近傍の位置、並びに、運搬の開始位置及び開始位置の近傍の位置の2つ以上から、待機場所が存在する位置を、待機場所フラグに基づいて1又は複数特定しても良い。この場合、選択部130は、特定された1又は複数の位置にそれぞれ存在する待機場所から、移動機800又は900を待機させる場所を、予め定められた規則又はソフトウェア乱数に基づいて選択しても良い。また、制御部140は、選択された場所で、準備待ち時間に亘って待機させる制御を移動機800又は900に行っても良い。
本発明の実施例1、実施例1の変形例1から18、実施例2、及び、実施例2の変形例1から5は、互いに組み合わせることができる。すなわち、制御装置100の生成部120は、推定消費エネルギー量、準備待ち時間、開始待ち時間、猶予時間、最大許容時間、及び、運搬の開始位置又はその近傍の位置に待機場所が存在するか否かのいずれか1つ以上に基づいて移動制御情報の候補の評価値を決定しても良い。
本発明の実施例1、実施例1の変形例1から17、実施例2、及び、実施例2の変形例1から5のいずれかに係る機能を実現するための構成を備えた制御装置100、並びに、本実施例1の変形例18に係る機能を実現するための構成を備えた制御装置890として提供できることはもとより、複数の装置で構成されるシステムであって、本発明の実施例1、実施例1の変形例1から18、実施例2、及び、実施例2の変形例1から5のいずれかに係る機能を実現するための構成をシステム全体として備えたシステムとして提供することもできる。
本発明の実施例1、実施例1の変形例1から17、実施例2、及び、実施例2の変形例1から5のいずれかに係る機能を実現するための構成を予め備えた制御装置100として提供できる。また、プログラムの適用により、既存の制御装置を本発明の実施例1、実施例1の変形例1から17、実施例2、及び、実施例2の変形例1から5のいずれかに係る制御装置100として機能させることもできる。すなわち、本発明の実施例1、実施例1の変形例1から17、実施例2、及び、実施例2の変形例1から5のいずれかで例示した制御装置100による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行することで、本発明の実施例1、実施例1の変形例1から17、実施例2、及び、実施例2の変形例1から5のいずれかに係る制御装置100として機能させることができる。
本発明の実施例1の変形例18に係る機能を実現するための構成を予め備えた制御装置890として提供できる。また、プログラムの適用により、既存の制御装置を実施例1の変形例18に係る制御装置890として機能させることもできる。すなわち、上記実施例1の変形例18で例示した制御装置890による各機能構成を実現させるためのプログラムを、既存の制御装置を制御するコンピュータ(CPUなど)が実行することで、実施例1の変形例18に係る制御装置890として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD(Compact Disc)-ROM、又は、DVD(Digital Versatile Disc)-ROMなどの記録媒体に収納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
本発明に係る方法は、本発明の実施例1、実施例1の変形例1から17、実施例2、及び、実施例2の変形例1から5のいずれかに係る制御装置100、並びに、本実施例1の変形例18に係る制御装置890を用いて実施できる。また、本発明に係る方法は、本発明の実施例1、実施例1の変形例1から18、実施例2、及び、実施例2の変形例1から5のいずれかに係る運搬システム1を用いて実施できる。
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
(付記)
(付記1)
注文が受け付けられた場合に、前記注文の対象を格納可能な移動機の位置を示す移動機位置情報と、前記対象の運搬が開始される開始位置を示す開始位置情報と、前記対象の状態を運搬が開始可能な状態にするための準備に要する準備時間又は前記準備が完了する準備完了時刻を示す準備情報と、を取得する取得部と、
取得された前記移動機位置情報で示される前記位置から、前記開始位置情報で示される前記開始位置まで、前記移動機が移動するために消費すると推定されるエネルギー量と、前記準備情報で示される前記準備時間又は前記準備完了時刻と、に基づいて、前記移動機の前記位置から前記開始位置まで前記移動機を移動させるための移動制御情報を生成する生成部と、
を備える制御装置。
(付記2)
前記生成部は、
前記移動機の前記位置から前記開始位置に到る移動経路を含む、前記移動制御情報の複数の候補を生成し、
生成された前記複数の候補のそれぞれに対して、前記移動機が前記移動経路を移動する場合に、前記移動機が消費すると推定される前記エネルギー量に基づく評価値を決定し、
決定された前記評価値に基づいて、前記複数の候補から1つの候補を選択することで、前記移動制御情報を生成する、
付記1に記載の制御装置。
(付記3)
前記生成部は、前記移動機が前記移動経路を移動する場合に、前記移動機が前記開始位置へ到着してから前記準備が完了するまでの準備待ち時間にさらに基づく前記評価値を決定する、
付記2に記載の制御装置。
(付記4)
前記複数の候補のそれぞれは、前記移動経路の移動時における前記移動機の動作モードをさらに含み、
前記生成部は、前記複数の候補のそれぞれに対して、前記移動機が前記移動経路を前記動作モードで移動する場合において、前記移動機で消費されると推定される前記エネルギー量に基づく前記評価値を決定する、
付記2又は3に記載の制御装置。
(付記5)
前記生成部は、前記開始位置に、又は、前記開始位置から予め定められた距離よりも短い距離に在る近傍の位置に、前記移動機が待機するための待機場所が存在するか否かにさらに基づく前記評価値を、前記複数の候補のそれぞれに対して決定する、
付記2から4のいずれか一つに記載の制御装置。
(付記6)
前記生成部は、前記準備が完了してから前記運搬が開始されるまでの開始待ち時間にさらに基づく前記評価値を、前記複数の候補のそれぞれに対して決定する、
付記2から5のいずれか一つに記載の制御装置。
(付記7)
前記取得部は、前記対象の運搬の開始期限を示す開始情報をさらに取得し、
前記生成部は、前記開始情報にさらに基づく前記評価値を、前記複数の候補のそれぞれに対して決定する、
付記2から6のいずれか一つに記載の制御装置。
(付記8)
前記生成部は、前記移動機が消費する前記エネルギー量を、前記移動経路の距離に基づいて推定する、
付記2から7のいずれか一つに記載の制御装置。
(付記9)
前記生成部は、前記移動機が消費する前記エネルギー量を、前記移動機が前記移動経路を移動する間に生じる前記移動機の高度の変化に基づいて推定する、
付記2から8のいずれか一つに記載の制御装置。
(付記10)
前記生成部は、複数の移動機のそれぞれについて前記移動制御情報を生成し、
前記移動制御情報の生成に用いられた前記評価値に基づいて、前記複数の移動機から前記対象を運搬させる移動機を選択する選択部、
をさらに備える付記2から9のいずれか一つに記載の制御装置。
(付記11)
選択された前記移動機の位置から前記開始位置まで移動させる制御を、前記移動制御情報に基づいて、選択された前記移動機に行う制御部、
をさらに備える付記10に記載の制御装置。
(付記12)
前記生成部は、前記移動制御情報の複数の候補を生成し、生成された前記複数の候補のそれぞれに対して評価値を決定し、かつ、決定された前記評価値に基づいて前記複数の候補から1つの候補を選択することで、前記移動制御情報を生成し、
前記複数の候補は、前記移動機の前記位置から前記開始位置に到る経路であり、かつ、前記移動機の移動時間が前記準備時間以上となる、又は、前記移動機の前記開始位置への到着時刻が前記準備完了時刻以降となる移動経路をそれぞれ含み、
前記生成部は、前記移動機が前記移動経路を移動する場合に前記移動機が消費すると推定される前記エネルギー量に基づいて前記評価値を決定する、
付記1に記載の制御装置。
(付記13)
前記生成部は、前記移動制御情報の複数の候補を生成し、生成された前記複数の候補のそれぞれに対して評価値を決定し、かつ、決定された前記評価値に基づいて前記複数の候補から1つの候補を選択することで、前記移動制御情報を生成し、
前記複数の候補は、前記移動機の前記位置から前記開始位置に到る移動経路をそれぞれ含み、
前記生成部は、前記移動機が前記移動経路を移動する場合に、前記移動機が消費すると推定される前記エネルギー量と、前記移動機が前記開始位置に到着してから前記準備が完了するまでの準備待ち時間と、に基づいて、前記評価値を決定する、
付記1に記載の制御装置。
(付記14)
注文の対象を格納可能な移動機と、
前記注文が受け付けられた場合に、前記移動機の位置を示す移動機位置情報と、前記対象の運搬が開始される開始位置を示す開始位置情報と、前記対象の状態を運搬が開始可能な状態にするための準備に要する準備時間又は前記準備が完了する準備完了時刻を示す準備情報と、を取得する取得部と、
取得された前記移動機位置情報で示される前記位置から、前記開始位置情報で示される前記開始位置まで、前記移動機が移動するために消費すると推定されるエネルギー量と、前記準備情報で示される前記準備時間又は前記準備完了時刻と、に基づいて、前記移動機の前記位置から前記開始位置まで前記移動機を移動させるための移動制御情報を生成する生成部と、
を備えるシステム。
(付記15)
制御装置又はシステムが実行する方法であって、
注文が受け付けられた場合に、前記注文の対象を格納可能な移動機の位置を示す移動機位置情報と、前記対象の運搬が開始される開始位置を示す開始位置情報と、前記対象の状態を運搬が開始可能な状態にするための準備に要する準備時間又は前記準備が完了する準備完了時刻を示す準備情報と、を取得するステップと、
取得された前記移動機位置情報で示される前記位置から、前記開始位置情報で示される前記開始位置まで、前記移動機が移動するために消費すると推定されるエネルギー量と、前記準備情報で示される前記準備時間又は前記準備完了時刻と、に基づいて、前記移動機の前記位置から前記開始位置まで前記移動機を移動させるための移動制御情報を生成するステップと、
を有する方法。