<実施例>
以下、本発明の実施例について添付図面を参照しつつ説明する。
本発明の実施例に係る情報処理システム1は、注文を行うユーザによって携帯される、図1に示すような端末装置100と、注文を受け付ける情報処理装置200と、注文の対象を当該ユーザによって指定された運搬先まで運搬するため、当該対象を格納して移動する移動機800及び900と、を備える。
端末装置100は、スマートフォンであり、図2に示すような、ハードウェアであるCPU(Central Processing Unit)101、RAM(Random Access Memory)102、ROM(Read Only Memory)103a、フラッシュメモリ103b、データ通信回路104a、音声通信回路104b、ビデオカード105a、表示装置105b、入力装置105c、位置計測回路106、スピーカ109a、及び、マイクロフォン109bを備える。本実施例では、端末装置100は、1つのCPU101を備えるが、複数のCPUを備えても良い。また、端末装置100は、複数のRAM及びフラッシュメモリを備えても良い。
端末装置100のCPU101は、ROM103a又はフラッシュメモリ103bに保存されたプログラムを実行することで、端末装置100の全体制御を行う。RAM102は、CPU101によるプログラムの実行時において、処理対象とされるデータを一時的に記憶する。
端末装置100のROM103a及びフラッシュメモリ103bは、各種のプログラムを記憶している。また、フラッシュメモリ103bは、プログラムの実行に用いられる各種のデータやデータが保存されたテーブルをさらに記憶している。端末装置100は、フラッシュメモリ103bの代わりに、ハードディスクを備えても良い。
端末装置100のデータ通信回路104aは、NIC(Network Interface Card)であり、例えば、LTE(Long Term Evolution)及び5G(5th Generation)といった通信規格に従って、インターネットINに接続された不図示の基地局と電波を用いてデータ通信を行う。このようにして、端末装置100のデータ通信回路104aは、インターネットINに接続された情報処理装置200、並びに、移動機800及び900とデータ通信を行う。音声通信回路104bは、不図示の基地局と電波を用いた音声通信を行う。
端末装置100のビデオカード105aは、CPU101から出力されたデジタル信号に基づいて画像をレンダリングすると共に、レンダリングされた画像を表す画像信号を出力する。表示装置105bは、EL(Electroluminescence)ディスプレイであり、ビデオカード105aから出力された画像信号に従って画像を表示する。端末装置100は、ELディスプレイの代わりに、PDP(Plasma Display Panel)又はLCD(Liquid Crystal Display)を備えても良い。入力装置105cは、タッチパッド及びボタンのいずれか1つ以上であり、ユーザの操作に応じた信号を入力する。
端末装置100の位置計測回路106は、QZSS(Quasi-Zenith Satellite System)回路である。位置計測回路106は、準天頂衛星から発せられた信号を受信し、受信された信号に基づいて端末装置100の位置を表す緯度、経度、及び、高度を計測し、計測された緯度、経度、及び、高度を表す信号を出力する。位置計測回路106は、QZSS回路ではなく、GPS(Global Positioning System)衛星から発せられたGPS信号を受信し、受信されたGPS信号に基づいて端末装置100の位置を表す緯度、経度、及び、高度を計測するGPS回路であっても良い。
端末装置100のスピーカ109aは、CPU101が出力する信号に従って音声を出力し、マイクロフォン109bは、端末装置100の周囲の音声を表す信号を出力する。
端末装置100には、サービスの提供に用いられるアプリケーション(以下、アプリという)が複数インストールされている。端末装置100を携帯するユーザは、インストールされている複数のアプリの内で、ユーザが所望するサービスの提供に用いられるアプリを選択し、選択されたアプリを起動させる操作を端末装置100に行う。
本実施例では、商品の販売及び運搬を行うサービス(以下、販売サービスという)の提供に用いられるアプリが選択された場合を例に挙げて説明を行う。このため、本実施例では、販売サービスの提供に用いられるアプリ(以下、販売アプリという)が選択されて起動される。また、本実施例では、注文は、商品の販売及び運搬を求める依頼であり、かつ、注文の対象は、販売及び運搬が求められた商品である。
これらのため、端末装置100の入力装置105cが販売アプリを起動させる操作に応じた信号を出力すると、端末装置100のCPU101は、販売アプリの実行を開始することで、販売アプリによって規定された、図3に示すような注文処理の実行を開始する。
注文処理の実行が開始されると、端末装置100のCPU101は、ユーザを識別するユーザID(IDentification)と、当該ユーザが予め設定したパスワードと、を含む認証情報の入力を促すメッセージを、表示装置105bに表示させる。当該メッセージを視認したユーザが入力装置105cを操作すると、入力装置105cは、当該の操作に応じた信号を出力し、CPU101は、当該信号に基づいて当該ユーザの認証情報を取得する。
次に、端末装置100のCPU101は、例えば、販売アプリのバイナリデータから、販売サービスを識別するサービスIDを読み出す。その後、CPU101は、取得された認証情報と、読み出された販売サービスのサービスIDと、を含み、かつ、ユーザの認証が成功した場合に注文を受け付けて販売サービスを提供するように求める注文受付要求を生成する。次に、CPU101は、生成された注文受付要求を、情報処理装置200を宛先としてデータ通信回路104aへ出力する(ステップS01)。
端末装置100のデータ通信回路104aが注文受付要求を情報処理装置200へ送信してから予め定められた時間が経過しても、注文が受け付けられたことを告げる受付報告を受信しないと、端末装置100のCPU101は、認証が失敗したため注文が受け付けられなかったと判別する(ステップS02;No)。その後、CPU101は、認証が失敗したため注文が受け付けられなかった旨のメッセージを表示装置105bに表示させてから、注文処理の実行を終了する。
これに対して、端末装置100のデータ通信回路104aが認証要求を送信してから予め定められた時間が経過する以前に受付報告を受信すると、端末装置100のCPU101は、認証が成功したため、注文が受け付けられたと判別する(ステップS02;Yes)。次に、認証されたユーザのショッピングカートに関するカート情報をデータ通信回路104aが受信するまで、CPU101はスリープする。データ通信回路104aがカート情報を受信すると、CPU101は、スリープから復帰してデータ通信回路104aからカート情報を取得する(ステップS03)。
本実施例では、ユーザのショッピングカートに商品が入っているとは、当該ユーザによって購入が検討されている商品を識別する商品IDが当該ユーザのユーザIDと対応付けられて情報処理装置200に記憶されていることを意味する。このため、端末装置100を使用するユーザのショッピングカートに1又は複数の商品が入っている場合、当該ユーザのカート情報は、当該ユーザのユーザIDと情報処理装置200が対応付けて記憶している1又は複数の商品IDを含む。これに対して、当該ユーザのショッピングカートに商品が入っておらず、ショッピングカートが空の場合に、当該ユーザのカート情報は、商品IDを含まない。
このため、カート情報を取得すると、端末装置100のCPU101は、取得されたカート情報に商品IDが含まれているか否かに基づいて、ショッピングカートに商品が入っているか否かを判別する。
本実施例では、説明を簡単にするため、端末装置100のユーザが初めて販売アプリを実行させたため、ショッピングカートに商品が入っていない場合を具体例として挙げて説明する。このため、端末装置100のCPU101は、カート情報に商品IDが含まれていないので、ショッピングカートに商品が入っていないと判別する。次に、CPU101は、注文の対象とされる商品の検索に用いられる検索画面をフラッシュメモリ103bから取得する。その後、CPU101は、ショッピングカートに入っている商品を購入するための操作(以下、購入操作という)に用いられる、例えば、ボタンオブジェクト又はリンクといったオブジェクトを無効にする設定を検索画面に行う。
これに対して、端末装置100のCPU101は、商品の検索に用いられるキーワードを入力するための操作(以下、キーワード入力操作という)に用いられるオブジェクト、及び、販売アプリの実行を終了させるための操作(以下、終了操作という)に用いられるオブジェクトを有効にする設定を検索画面に行う。その後、CPU101は、設定がされた検索画面を表示装置105bに表示させる(ステップS04)。
その後、検索画面を視認したユーザによって操作された端末装置100の入力装置105cが当該操作に応じた信号を出力すると、CPU101は、出力された信号に基づいてキーワード入力操作が行われたか否かを判別する(ステップS05)。
本実施例では、注文の対象とする商品を検索するため、キーワード入力操作が行われた場合を具体例として挙げて説明する。このため、端末装置100のCPU101は、キーワード入力操作が行われたと判別すると(ステップS05;Yes)、入力装置105cから出力される信号に基づいてキーワードを取得する。次に、CPU101は、取得されたキーワードを含み、かつ、当該キーワードに基づく商品の検索結果を表す情報の送信を求める検索要求を生成する。その後、CPU101は、生成された検索要求を、情報処理装置200を宛先としてデータ通信回路104aへ出力する(ステップS06)。
本実施例において、キーワードに基づく商品の検索結果は、当該キーワードに基づいて検索された1又は複数の商品それぞれの大要を含み、商品の大要は、当該商品を識別する商品IDと、当該商品の名称及び値段と、を含むとして説明するが、これらに限定される訳では無い。
端末装置100のデータ通信回路104aが検索要求を情報処理装置200へ送信してから、検索結果を表す情報を情報処理装置200から受信すると、端末装置100のCPU101は、当該情報をデータ通信回路104aから取得する。
次に、端末装置100のCPU101は、検索結果の表示に用いられる検索結果画面をフラッシュメモリ103bから取得する。その後、CPU101は、ステップS04でショッピングカートに商品が入っていないと判別したため、購入操作に用いられるオブジェクトを無効にする設定を検索結果画面に行う。
これに対して、CPU101は、検索された1又は複数の商品の内の1つを選択し、かつ、選択された商品の大要よりも詳細な説明が記載された詳細画面を表示させる操作(以下、商品選択操作という)に用いられるオブジェクトを有効にする設定を検索結果画面に行う。また、CPU101は、終了操作に用いられるオブジェクトを有効にする設定を検索結果画面に行う。その後、CPU101は、設定がされた検索結果画面を表示装置105bに表示させる(ステップS07)。
その後、検索結果画面を視認したユーザによって操作された端末装置100の入力装置105cが当該操作に応じた信号を出力すると、CPU101は、当該信号に基づいて商品選択操作が行われたか否かを判別する(ステップS08)。
本実施例では、検索された1又は複数の商品の1つが所望の商品であるか否かを判断するため、ユーザが商品選択操作を行った場合を具体例として挙げて説明する。このため、端末装置100のCPU101は、商品選択操作が行われたと判別すると(ステップS08;Yes)、入力装置105cから出力された信号に基づいて、選択された商品の商品IDを取得する。次に、CPU101は、取得された商品IDを含み、かつ、当該商品IDで識別される商品の詳細な説明を表す詳細情報の送信を求める詳細送信要求を生成する。その後、CPU101は、生成された詳細送信要求を、情報処理装置200を宛先としてデータ通信回路104aへ出力する(ステップS09)。本実施例において、商品の詳細な説明は、当該商品の色、形状、大きさ、使用方法、使用条件、販売方法、及び、販売条件のいずれか1つ以上の説明を含むが、これらに限定される訳では無い。
端末装置100のデータ通信回路104aが詳細送信要求を情報処理装置200へ送信してから、商品の詳細情報を情報処理装置200から受信すると、端末装置100のCPU101は、当該詳細情報をデータ通信回路104aから取得する。
次に、端末装置100のCPU101は、詳細な説明の表示に用いられる詳細画面を表示させるステップS10の処理を実行する(ステップS10)。ステップS10の処理では、CPU101は、ショッピングカートに商品が入っているか否かの判別を行う。当該判別がステップS10で行われるのは、ステップS10の処理は、商品をショッピングカートに入れるための検討操作が行われた後に再度実行される場合があるため、ステップS04で行われた判別の結果と異なる結果がステップS10で得られる可能性があるからである。
本実施例では、ステップS04でショッピングカートに商品が入っていないと判別されてから、検討操作が行われていないため、端末装置100のCPU101は、ショッピングカートに商品が入っていないと判別する。このため、CPU101は、詳細画面をフラッシュメモリ103bから取得し、ショッピングカートの商品を購入するための購入操作に用いられるオブジェクトを無効にする設定を詳細画面に行う。
これに対して、端末装置100のCPU101は、購入を検討する商品をショッピングカートに入れるための検討操作に用いられるオブジェクト有効にする設定を詳細画面に行う。また、CPU101は、商品の検索を再度行うため、検索画面を再表示させるための操作(以下、再表示操作という)に用いられるオブジェクト、及び、終了操作に用いられるオブジェクトを有効にする設定を詳細画面に行う。その後、CPU101は、設定がされた詳細画面に、取得された詳細情報で表される商品の詳細な説明を追加し、説明が追加された詳細画面を表示装置105bに表示させる。
その後、詳細画面を視認したユーザによって操作された端末装置100の入力装置105cが当該操作に応じた信号を出力すると、CPU101は、当該信号に基づいて、検討操作が行われたか否かを判別する(ステップS11)。
本実施例では、検討操作が行われた場合を具体例として挙げて説明する。このため、端末装置100のCPU101は、検討操作が行われたと判別すると(ステップS11;Yes)、ステップS03で取得されたカート情報に、購入が検討された商品の商品IDを追加する。その後、CPU101は、カート情報に追加された商品IDを含み、当該商品IDで識別される商品の購入が検討されていることを知らせる検討報告を生成する。
次に、端末装置100のCPU101は、生成された検討報告を、情報処理装置200を宛先としてデータ通信回路104aへ出力する(ステップS12)。検討報告を受信した情報処理装置200は、当該検討報告に含まれる商品IDを、端末装置100を使用するユーザのユーザIDに対応付けて記憶する。これにより、当該商品IDで識別される商品が当該ユーザのショッピングカートに入れられる。
その後、端末装置100のCPU101は、ステップS10に戻り、ショッピングカートに商品が入っているか否かの判別を行い、ショッピングカートに商品が入っていると判別する。このため、CPU101は、ショッピングカートの商品を購入するための購入操作に用いられるオブジェクト及び再表示操作に用いられるオブジェクト等を有効にする設定を詳細画面に行う。その後、CPU101は、設定がされた詳細画面を表示させる(ステップS10)。
その後、本実施例では、ショッピングカートに追加された商品と異なる商品を検索するため、検索画面を再度表示させる再表示操作が行われた場合を具体例として挙げて説明する。このため、端末装置100のCPU101は、検討操作及び終了操作が行われず、再表示操作が行われたと判別する(ステップS11;No、ステップS13;No、及び、ステップS14;Yes)。
その後、端末装置100のCPU101は、ステップS04に戻り、検索画面を取得し、ショッピングカートに商品が入っていると判別し、購入操作及びキーワード入力操作のそれぞれに用いられるオブジェクト等を有効にする設定を検索画面に行う。その後、CPU101は、設定された検索画面を表示させる(ステップS04)。
ショッピングカートに追加された商品と異なる商品を検索するため、キーワード入力操作が入力装置105cに行われると、端末装置100のCPU101は、キーワード入力操作が行われたと判別し(ステップS05;Yes)、ステップS06及びS07の処理を実行する(ステップS06及びS07)。これにより、CPU101は、商品選択操作及び購入操作のそれぞれに用いられるオブジェクト等が有効に設定された検索結果画面を表示させる。
本実施例では、検索結果画面を視認したユーザが、カートに入れられた商品と異なる商品であり、かつ、購入を希望する商品を検索結果から見つけられなかった場合を具体例として挙げて説明する。このため、ユーザは、商品選択操作をせず、カートに入れた商品のみを購入するため、購入操作を行う。
このため、端末装置100のCPU101は、入力装置105cから出力された信号に基づいて、商品選択操作、終了操作、及び、再表示操作が行われず(ステップS08;No、ステップS13;No、及び、ステップS14;No)、購入操作がされたと判別する(ステップS15)。その後、CPU101は、ユーザIDを含み、当該ユーザIDで識別されるユーザの注文を完了させることを求める注文完了要求を生成する。
本実施例では、ユーザの注文を完了するとは、当該ユーザのショッピングカートに入れられている商品を当該ユーザに販売し、かつ、販売された商品を当該ユーザに指定された運搬先まで運搬する契約を、ユーザと商品の販売業者との間で締結することを意味する。その後、CPU101は、生成された注文完了要求を、情報処理装置200を宛先としてデータ通信回路104aへ出力した後に(ステップS16)、注文処理の実行を終了する。
情報処理装置200は、サーバ機であり、商品の販売を行う販売業者の倉庫、又は、オフィスビルに設置されている。情報処理装置200は、ハードウェアである、図4に示すようなCPU201、RAM202、ROM203a、ハードディスク203b、データ通信回路204a、ビデオカード205a、表示装置205b、及び、入力装置205cを備える。本実施例では、情報処理装置200は、1つのCPU201を備えるが、複数のCPUを備えても良い。また、情報処理装置200は、複数のRAM及びフラッシュメモリを備えても良い。
情報処理装置200が備えるCPU201、RAM202、ROM203a、データ通信回路204a、ビデオカード205a、及び、表示装置205bの構成及び機能は、図2に示した端末装置100が備えるCPU101、RAM102、ROM103a、データ通信回路104a、ビデオカード105a、及び、表示装置105bの構成及び機能と同様である。
情報処理装置200のハードディスク203bは、各種のプログラムと、各種のプログラムの実行に用いられる各種のデータ及びデータが保存されたテーブルと、を記憶している。情報処理装置200は、ハードディスク203bの代わりに、フラッシュメモリを備えても良い。
情報処理装置200の入力装置205cは、キーボード、マウス、タッチパッド、及び、ボタンのいずれか1つ以上であり、販売業者の従業員の操作に応じた信号を入力する。
情報処理装置200のデータ通信回路204aが、図3のステップS01で出力された注文受付要求を受信すると、情報処理装置200のCPU201は、注文受付要求をデータ通信回路204aから取得する。次に、CPU201は、取得された注文受付要求から、サービスIDを取得し、取得されたサービスIDが販売サービスのサービスIDであると判別すると、販売サービスを提供するために、図5及び図6に示すような販売処理を実行する。
これにより、情報処理装置200のCPU201は、販売サービスの提供を求めるユーザの認証情報を取得する、図7に示すような取得部210、及び、取得された認証情報に基づいて認証を行う認証部220として機能する。また、情報処理装置200のCPU201は、認証を成功させたユーザによって行われる注文のステータスを更新する更新部230として機能する。さらに、CPU201は、注文の対象とされた商品を運搬させる移動機(以下、運搬移動機という)を、移動機800及び900から選択する選択部240として機能する。
情報処理装置200のハードディスク203bは、販売処理の実行に用いられる情報を記憶する情報記憶部290として機能する。情報処理装置200の情報記憶部290は、注文のステータスに関する情報が予め保存されている、図8に示すようなステータステーブルを予め記憶している。
本実施例において、注文のステータスは、注文が完了した状態である完了ステータスの前の複数のステータスを経て、完了ステータスに遷移させられる。完了ステータスの前のステータスには、注文の対象とされた商品の販売及び運搬を行う販売サービスが選択された状態であるサービス選択ステータス、1又は複数の商品が検索された状態である検索ステータス、検索された1又は複数の商品の1つが選択された状態である商品選択ステータス、商品の購入が検討された状態である検討ステータス、及び、商品の購入代金の決済が行われている状態である決済ステータスが存在する。本実施例において、購入代金の決済が行われている状態とは、購入代金の決済が求められてから、当該決済が成功又は失敗するまでの状態を意味するが、これに限定される訳ではない。
このため、ステータステーブルには、複数のレコードが予め保存されており、ステータステーブルの1番目のレコードには、サービス選択ステータスを識別するステータスID「S1」と、サービス選択ステータスの名称を表す情報と、が予め対応付けられて保存されている。また、2番目のレコードには、検索ステータスのステータスID「S2」及び名称を表す情報が予め保存されており、3番目のレコードには、商品選択ステータスのステータスID「S3」及び名称を表す情報が予め保存されている。さらに、4番目のレコードには、検討ステータスのステータスID「S4」及び名称を表す情報が予め保存されており、5番目のレコードには、決済ステータスのステータスID「S5」及び名称を表す情報が予め保存されている。また、6番目のレコードには、完了ステータスのステータスID「S6」及び名称を表す情報が予め保存されている。
さらに、情報処理装置200の情報記憶部290は、ユーザに関する情報が予め保存されている、図9に示すようなユーザテーブルを予め記憶している。ユーザテーブルには、複数のレコードが予め保存されており、各レコードには、ユーザを識別するユーザIDと、当該ユーザによって予め設定されたパスワードを表す情報、及び、運搬先を住所で表す情報と、当該ユーザの購入代金の決済に用いられる決済情報と、が予め対応付けられて保存されている。本実施例では、運搬先は、端末装置100を使用するユーザが居住するマンションのエントランスであると説明するが、これに限定される訳では無い。また、決済情報は、例えば、ユーザが購入代金の決済に用いるクレジットカードのカード番号を表す情報及び有効期限を表す情報を含むが、これらに限定される訳では無い。
さらに、情報処理装置200の情報記憶部290は、注文に関する情報が保存される、図10に示すような注文テーブルを予め記憶している。注文テーブルには、複数のレコードが予め保存されており、注文テーブルの各レコードには、注文を行うユーザのユーザIDが予め保存されている。注文が受け付けられたユーザのユーザIDが保存されたレコードには、当該ユーザIDと対応付けられて、当該注文のステータスを識別するステータスIDと、当該ユーザのショッピングカートに入れられた商品の商品IDと、が保存される。また、当該ユーザIDが保存されたレコードには、当該ユーザIDと対応付けられて、当該商品を運搬させる運搬移動機として選択された移動機800又は900を識別する機体IDと、当該ステータスに応じた運搬移動機800又は900の移動制御が未実行である否かを表す未実行フラグと、が保存される。
本実施例では、運搬移動機800又は900の移動制御とは、移動機800又は900の位置から運搬の開始位置までの移動距離の増長を抑制させる制御であり、かつ、注文のステータスに応じて行われる制御である。本実施例では、移動制御は、完了ステータスに遷移させられる前のステータスに応じて行われても良いし、完了ステータスに応じて行われても良いが、これに限定される訳ではない。移動制御は、完了ステータスに遷移させられる前のステータスに応じて行われるが、完了ステータスに応じて行われなくとも良い。
これに対して、注文が受け付けられていないユーザのユーザIDが保存されたレコードには、当該ユーザIDと対応付けられて、注文が受け付けられていないため、ステータスが存在しないこと、カートに商品が入れられていないこと、及び、商品を運搬させる移動機が選択されていないこと、及び、ステータスに応じた移動制御が存在しないことをそれぞれ表す文字列「NULL」が保存される。
図5及び図6に示す販売処理の実行が開始されると、情報処理装置200の取得部210は、情報処理装置200のデータ通信回路204aから注文受付要求を取得し、取得された注文受付要求からユーザの認証情報を取得する(ステップS21)。次に、取得部210は、図9のユーザテーブルから、認証情報に含まれるユーザIDと対応付けられたパスワードを表す情報を取得する。その後、認証部220は、ユーザテーブルから取得された情報で表されるパスワードと、認証情報に含まれる情報で表されるパスワードと、が一致しないと判別すると、ユーザ認証が失敗したと判別し(ステップS22;No)、注文の受け付けをせずに販売処理の実行を終了する。
これに対して、情報処理装置200の認証部220は、これらのパスワードが一致すると判別すると、端末装置100を使用するユーザの認証が成功したと判別する(ステップS22;Yes)。次に、更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDに商品IDが対応付けられているか否かに基づいて、当該ユーザのカートに商品が入れられているか否かを判別する(ステップS23)。
本実施例では、図3の注文処理を説明するために用いた具体例(以下、注文処理の具体例という)と同じ例を挙げて、図5及び図6の販売処理の説明を行う。このため、情報処理装置200の更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDに商品IDが対応付けられておらず、文字列「NULL」が対応付けられているため、ショッピングカートに商品が入っていないと判別する(ステップS23;No)。
次に、情報処理装置200の更新部230は、注文テーブルにおいて、当該ユーザのユーザIDと対応付けられており、かつ、注文が受け付けられていないことを表す文字列「NULL」を、販売サービスが選択された状態であるサービス選択ステータスのステータスID「S1」に更新する(ステップS25)。これにより、更新部230は、注文受付要求に従って注文を受け付け、受け付けられた注文のステータスをサービス選択ステータスとする。その後、更新部230は、注文が受け付けられたことを告げる受付報告を、端末装置100を宛先としてデータ通信回路204aへ出力する(ステップS26)。
次に、情報処理装置200の取得部210は、注文テーブルにおいて、端末装置100を使用するユーザのユーザIDと対応付けられた商品IDとして文字列「NULL」を取得し、取得された文字列「NULL」を含むカート情報を生成する。次に、取得部210は、生成されたカート情報を、端末装置100を宛先としてデータ通信回路204aへ出力する(ステップS27)。
次に、情報処理装置200の取得部210は、商品の運搬が開始される開始位置(以下、運搬の開始位置という)を表す情報を、情報記憶部290から取得する。運搬の開始位置は、本実施例において、商品が保管されている倉庫の搬出口の位置であるが、これに限定される訳では無い。
次に、情報処理装置200の選択部240は、移動機800の位置を表す位置情報の送信を求める位置送信要求を生成し、生成された位置送信要求を、移動機800を宛先としてデータ通信回路204aへ出力する。データ通信回路204aが位置送信要求を移動機800に送信した後に、移動機800の位置情報を受信すると、取得部210は、当該位置情報をデータ通信回路204aから取得する。
情報処理装置200の選択部240は、移動機900を宛先として位置送信要求を出力し、取得部210は、移動機900の位置情報を取得する。その後、選択部240は、取得された位置情報で表される移動機800の位置と、移動機900の位置と、運搬の開始位置と、に基づいて、注文の対象とされる商品を運搬させる運搬移動機を選択する(ステップS28)。
本実施例では、移動機800及び900は、情報処理装置200によって設定された経路を通って運搬の開始位置まで移動している間、運搬の開始位置から運搬先まで注文の対象とされた商品を運搬している間、及び、注文の対象とされた商品の運搬を終えて運搬の開始位置へ帰還している間を除き、情報処理装置200に制御されず自律的に、予め設定された循環経路を循環移動する。移動機800及び900の循環経路は、予め定められた循環経路の開始位置から開始し、かつ、当該循環経路の開始位置で終了する予め定められた環状の経路である。本実施例では、循環経路の開始位置は、運搬の開始位置と同じ位置に予め設定されている。
本実施例では、移動機800及び900の車体に、販売業者の広告、販売業者が販売する商品の広告、又は、販売業者の顧客の広告が掲載されている。このため、循環経路は、広告の対象とされる性別及び年齢層の人の平均密度が予め定められた密度よりも高い対象地域を通過するように予め設定されており、移動機800及び900は、商品を格納していない空の状態で当該循環経路を移動する。
広告は、例えば、通信サービスを提供する移動体通信事業者の広告であって良い。この場合、移動体通信事業者の広告は、通信サービスの申込みに用いられるウェブ頁のURL(Uniform Resource Locator)を表し、かつ、当該ウェブ頁へのリンクとして機能する二次元コードを含んでも良い。二次元コードは、QR(Quick Response)コード等のマトリックス式のコードであっても良いし、PDF(Portable Data File)417等のスタック式のコードであっても良い。また、広告は、二次元コードでなく、例えば、バーコード等の1次元コード、又は、電話番号、電子メールアドレス、若しくは、URLを表す文字列を含んでも良い。
本実施例では、移動機800及び900は、空の状態で循環経路を移動するが、これに限定される訳では無く、商品を格納した状態で循環経路を移動しても良い。この場合、移動機800及び900は、例えば、広告される商品の試供品又は見本を、広告を視認した人が取り出せるように無施錠の状態で格納して循環経路を移動しても良い。
また、本実施例では、循環経路は、広告の対象地域を通る経路であるが、これに限定される訳では無く、例えば、注文の対象とされた商品と同じ又は異なる予め定められた商品が定期購入される複数の購入位置を含むように予め設定されていても良い。この場合、移動機800及び900は、当該複数の購入位置のそれぞれについて予め定められた時刻に当該複数の購入位置のそれぞれに到着するように、当該予め定められた商品を格納して循環経路を移動しても良い。
また、例えば、循環経路は、広告される商品の試供品又は見本が配布される複数の配布位置を含むように予め設定されていても良い。この場合、移動機800及び900は、当該複数の配布位置のそれぞれについて予め定められた時刻、又は、例えば、ソフトウェア乱数若しくは予め定められた規則に基づいて決定された時刻に、当該複数の配布位置のそれぞれに到着するように、広告される商品の試供品又は見本を格納して循環経路を移動しても良い。
これらのため、循環経路は、広告を視認する人、定期購入する人、又は、通行人と、移動機800及び900と、の接触を抑制するため、予め定められた幅よりも広い経路幅を有し、かつ、循環移動に要する移動機800及び900のエネルギー消費量を抑制するため、予め定められた高低差よりも小さい高低差を有するように予め設定されている。
情報処理装置200の選択部240は、図10の注文テーブルにおいて、移動機800の機体ID及び移動機900の機体IDが、運搬移動機の機体IDとして保存されていないと判別すると、移動機800と移動機900との双方が運搬移動機として選択可能であると判別する。
次に、情報処理装置200の取得部210は、情報記憶部290が予め記憶する循環経路を表す情報を取得する。循環経路を表す情報には、循環経路に含まれる複数のノードの位置を緯度、経度、及び、高度で表す情報と、複数のノードの到着順を表す情報と、が含まれている。その後、情報処理装置200の選択部240は、取得された循環経路を表す情報と、移動機800の位置情報と、開始位置を表す情報と、に基づいて、移動機800の位置から開始位置までの循環経路上の最短距離を算出する。本実施例では、循環経路上の最短距離は、予め定められた順方向に計測される循環経路上の距離と、順方向と反対の逆方向に計測される循環経路上の距離と、の内で、いずれか短い方の距離を意味する。
次に、情報処理装置200の選択部240は、移動機900の位置から開始位置までの循環経路上の最短距離を算出する。その後、選択部240は、移動機800の最短距離が、移動機900の最短距離以下である場合に、運搬移動機として移動機800を選択する。これに対して、選択部240は、移動機800の最短距離が、移動機900の最短距離よりも長い場合に、移動機900を選択する。
これに対して、情報処理装置200の選択部240は、図10の注文テーブルに、移動機800の機体IDが保存されていないが、移動機900の機体IDが保存されていると判別すると、移動機900は、運搬移動機として選択不能であるが、移動機800は、選択可能であると判別する。このため、選択部240は、
移動機800を運搬移動機として選択する。またこれに対して、選択部240は、注文テーブルに、移動機800の機体IDが保存されているが、移動機900の機体IDが保存されていないと判別すると、移動機900を運搬移動機として選択する。さらにこれに対して、選択部240は、注文テーブルに、移動機800及び900の機体IDが保存されていると判別すると、運搬移動機を選択できないと判別する。その後、選択部240は、予め定められた時間だけスリープしてから、移動機800及び900の機体IDが注文テーブルに保存されているか否かを判別する処理から上記処理を繰り返す。
情報処理装置200の選択部240が、運搬移動機として移動機800又は900を選択すると、更新部230は、注文テーブルに、選択された移動機800又は900の機体IDを、運搬移動機の機体IDとして、端末装置100のユーザを識別するユーザIDと対応付けて保存する。
その後、情報処理装置200の取得部210は、情報処理装置200のデータ通信回路204aが端末装置100からデータを受信するまでスリープする。注文処理の具体例では、先ず、キーワードに基づく商品の検索を求める検索要求が端末装置100から送信される。このため、情報処理装置200のデータ通信回路204aが、図3のステップS06で出力された検索要求を受信すると、取得部210は、スリープから復帰し、受信されたデータをデータ通信回路204aから取得し、取得されたデータが検索要求であると判別する(ステップS29;Yes)。
その後、情報処理装置200の取得部210は、取得された検索要求からキーワードを取得し、情報記憶部290が予め記憶する不図示の商品テーブルから、取得されたキーワードと対応付けられた1又は複数の商品の大要を表す大要情報を検索する。商品テーブルには、複数のレコードが予め保存されており、各レコードには、商品を説明するキーワードと、当該商品の大要情報と、当該商品の詳細情報と、が予め対応付けられて保存されている。
その後、情報処理装置200の取得部210は、検索された1又は複数の商品の大要情報を含んだ検索結果を表す情報を生成し、生成された情報を、端末装置100を宛先としてデータ通信回路204aへ出力する(ステップS30)。
次に、情報処理装置200の更新部230は、ステップS23と同様の処理を実行することで、ショッピングカートに商品が入っているか否かの判別を行う(ステップS31)。当該判別がステップS31で行われるのは、検索要求が繰り返し受信されると、ステップS31の処理は、繰り返し実行されるため、ステップS23で行われた判別の結果と異なる結果がステップS31で得られる可能性があるからである。
注文処理の具体例では、ステップS23でショッピングカートに商品が入っていないと判別されてから最初の検索要求が送信されるまでに、商品がショッピングカートに入れられない。このため、情報処理装置200の更新部230は、ショッピングカートに商品が入っていないと判別する(ステップS31;No)。その後、更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと対応付けられたステータスIDを、注文の対象とされる商品が検索された状態である検索ステータスのステータスID「S2」に更新する(ステップS32)。これにより、更新部230は、注文のステータスを検索ステータスに遷移させる。その後、情報処理装置200は、ステップS29に戻り、データが受信されるまでスリープする処理から上記処理を繰り返す。
次に、注文処理の具体例では、検索された商品の詳細情報を送信するように求める詳細送信要求が端末装置100から送信される。このため、情報処理装置200のデータ通信回路204aが、図3のステップS09で出力された詳細送信要求を受信すると、取得部210は、スリープから復帰し、受信されたデータをデータ通信回路204aから取得する。次に、取得部210は、受信されたデータが、検索要求ではなく詳細送信要求であると判別する(ステップS29;No及びステップS33;Yes)。次に、取得部210は、取得された詳細送信要求から、ユーザによって選択された商品の商品IDを取得し、情報記憶部290が記憶する不図示の商品テーブルから、当該商品IDと対応付けられた詳細情報を取得する。その後、取得部210は、取得された詳細情報を、端末装置100を宛先としてデータ通信回路204aへ出力する(ステップS34)。
次に、情報処理装置200の更新部230は、ショッピングカートに商品が入っていないと判別すると(ステップS35;No)、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと対応付けられたステータスIDを、商品が選択された状態である商品選択ステータスのステータスID「S3」に更新する(ステップS36)。これにより、更新部230は、注文のステータスを商品選択ステータスに遷移させる。その後、情報処理装置200は、ステップS29に戻り、データが受信されるまでスリープする処理から上記処理を繰り返す。
次に、注文処理の具体例では、商品の購入が検討されたことを告げる検討報告が端末装置100から送信される。このため、情報処理装置200のデータ通信回路204aが、図3のステップS12で出力された検討報告を受信すると、取得部210は、スリープから復帰し、受信されたデータをデータ通信回路204aから取得する。次に、取得部210は、取得されたデータが、検索要求及び詳細送信要求ではなく、検討報告であると判別する(ステップS29;No、ステップS33;No、及び、ステップS37;Yes)。その後、取得部210は、取得された検討報告から、購入が検討されている商品の商品IDを取得する。次に、更新部230は、取得された商品IDを、端末装置100のユーザを識別するユーザIDと対応付けて、図10の注文テーブルへ保存する(ステップS38)。これにより、当該商品IDで識別される商品が当該ユーザのショッピングカートに入れられる。
その後、情報処理装置200の更新部230は、注文テーブルにおいて、当該ユーザのユーザIDと対応付けられたステータスIDを、商品の購入が検討された状態である検討ステータスのステータスID「S4」に更新する(ステップS39)。これにより、更新部230は、注文のステータスを検討ステータスに遷移させる。
次に、情報処理装置200の更新部230は、注文テーブルにおいて、当該ユーザIDと対応付けられた未実行フラグの値を、検討ステータスに応じた移動制御が未実行であることを表す値「true」に更新する。その後、情報処理装置200は、ステップS29に戻り、データが受信されるまでスリープする処理から上記処理を繰り返す。
次に、注文処理の具体例では、検索要求が端末装置100から送信される。検索要求が送信されるのは、ショッピングカートに入れられた商品と異なる商品を情報処理装置200に検索させるためである。このため、情報処理装置200は、検索要求を受信すると、スリープから復帰してステップS29及びS30の処理を実行することで(ステップS29及びS30)、検索要求に応じて行われた検索の結果を表す情報を出力する。その後、情報処理装置200の更新部230は、ショッピングカートに商品が入っていると判別し(ステップS31;Yes)、注文のステータスを検索ステータスに遷移させず、検討ステータスのまま維持する。その後、情報処理装置200は、ステップS29に戻り、データが受信されるまでスリープする処理から上記処理を繰り返す。
次に、注文処理の具体例では、注文完了要求が端末装置100から送信される。注文完了要求が送信されるのは、検索結果を視認した端末装置100のユーザが、ショッピングカートに入れられた商品のみを購入することを決断したためである。このため、情報処理装置200のデータ通信回路204aが、図3のステップS16で出力された注文完了要求を受信すると、取得部210は、スリープから復帰し、受信されたデータをデータ通信回路204aから取得する。次に、取得部210は、取得されたデータが、検索要求、詳細送信要求、及び、検討報告でなく、注文完了要求であると判別する(ステップS29;No、ステップS33;No、ステップS37;No、及び、ステップS40;Yes)。
次に、情報処理装置200の取得部210は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと対応付けられている商品IDを取得することで、注文の対象とされた商品を特定する。次に、取得部210は、情報記憶部290が記憶する不図示の商品テーブルにおいて、取得された商品IDと対応付けられている大要情報を取得し、取得された大要情報から商品の値段を表す情報を取得する。その後、取得部210は、取得された情報で表される値段に基づいて、注文の対象とされた商品を購入するためにユーザが支払う購入代金の金額を算出する。
次に、情報処理装置200の取得部210は、図9のユーザテーブルにおいて、当該ユーザのユーザIDと対応付けられている決済情報を取得する。その後、取得部210は、取得された決済情報と、算出された購入代金の金額を表す情報と、を含み、当該決済情報を用いて当該金額の購入代金を決済することを求める決済要求を生成する。次に、取得部210は、情報記憶部290が予め記憶する決済サーバのURLを取得し、取得されたURLを宛先として、生成された決済要求をデータ通信回路204aへ出力する(ステップS41)。
次に、情報処理装置200の更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDに対応付けられたステータスIDを、決済ステータスのステータスID「S5」に更新する(ステップS42)。これにより、更新部230は、注文のステータスを決済ステータスに遷移させる。次に、更新部230は、注文テーブルにおいて、当該ユーザIDと対応付けられた未実行フラグの値を、決済ステータスに応じた移動制御が未実行であることを表す値「true」に更新する。
情報処理装置200のデータ通信回路204aが決済要求を決済サーバへ送信した後に、決済の失敗を告げる決済失敗報告を受信すると、情報処理装置200の更新部230は、決済が成功しなかったと判別し(ステップS43;No)、注文を取り消すことを決定する。
このため、更新部230は、注文テーブルにおいて、端末装置100のユーザを識別するユーザIDに対応付けられたステータスIDを、注文が受け付けられていないことを表す文字列「NULL」に更新する(ステップS44)。これにより、更新部230は、注文のステータスを、注文が受け付けられていない状態に遷移させる。
また、情報処理装置200の更新部230は、当該ユーザIDに対応付けられた機体IDと未実行フラグとを文字列「NULL」に更新する。これに対して、更新部230は、当該ユーザIDに対応付けられた商品IDを文字列「NULL」で更新せずに維持する。これにより、当該商品IDで識別される商品が、ショッピングカートに入れられたまま維持される。
その後、情報処理装置200の更新部230は、決済が失敗したこと、及び、注文が取り消されたことを告げるメッセージを、端末装置100を宛先としてデータ通信回路204aへ出力した後に、販売処理の実行を終了する。端末装置100のデータ通信回路104aが当該メッセージを受信すると、端末装置100のCPU101は、当該メッセージを表示装置105bに表示させる。当該メッセージを視認したユーザは、例えば、決済情報に含まれる番号が割り当てられているクレジットカードの利用限度額を引き上げることで、当該クレジットカードを用いた決済を可能にする。その後、ユーザは、再度、販売アプリを起動させる操作、及び、購入操作を端末装置100に行うことで、ショッピングカートに入れられている商品を、決済を可能としたクレジットカードの決済情報を用いて決済させる。
これに対して、情報処理装置200のデータ通信回路204aが決済の成功を告げる決済成功報告を受信すると、情報処理装置200の更新部230は、決済が成功したと判別する(ステップS43;Yes)。その後、更新部230は、注文テーブルにおいて、端末装置100のユーザを識別するユーザIDに対応付けられたステータスIDを、完了ステータスのステータスID「S6」に更新する(ステップS45)。これにより、更新部230は、注文のステータスを完了ステータスに遷移させることで、注文を完了させる。次に、更新部230は、注文テーブルにおいて、当該ユーザIDと対応付けられた未実行フラグの値を、完了ステータスに応じた移動制御が未実行であることを表す値「true」に更新する。その後、更新部230は、販売処理の実行を終了する。
本実施例において、情報処理装置200は、ステップS43で、決済が成功したと判別してから注文を完了させるため、注文のステータスは、ステップS42で決済ステータスに遷移させられた後でなければ、ステップS45で完了ステータスに遷移させられない。また、本実施例では、情報処理装置200は、ステップS41で、ショッピングカートに入れられた商品について購入代金の決済を求める決済要求を出力するため、注文のステータスは、ステップS39で検討ステータスに遷移させられた後でなければ、決済ステータスに遷移させられない。すなわち、注文のステータスは、決済ステータスを経なければ、検討ステータスから完了ステータスに遷移させられない。
このため、注文のステータスが、決済ステータスから完了ステータスに遷移させられる蓋然性(以下、決済ステータスの蓋然性という)は、検討ステータスから完了ステータスに遷移させられる蓋然性(以下、検討ステータスの蓋然性という)よりも高い。また、注文のステータスが、決済ステータスから完了ステータスに遷移させられるのに要する時間(以下、決済ステータスの遷移時間という)は、検討ステータスから完了ステータスに遷移させられるのに要する時間(以下、検討ステータスの遷移時間という)よりも短い。
さらに、本実施例において、検索された商品が選択されなければ、ショッピングカートに商品が入れられない。また、商品が検索されなければ、検索された商品が選択されず、販売サービスが選択されなければ、注文の対象とされる商品が検索されない。これらのため、注文のステータスは、ステップS36で商品選択ステータスに遷移させられた後でなければ、検討ステータスに遷移させられず、ステップS32で検索ステータスに遷移させられた後でなければ、商品選択ステータスに遷移させられず、かつ、ステップS25でサービス選択ステータスに遷移させられた後でなければ、検索ステータスに遷移させることができない。
これらのため、注文のステータスが、サービス選択ステータスから完了ステータスに遷移させられる蓋然性(以下、サービス選択ステータスの蓋然性という)よりも、検索ステータスから完了ステータスに遷移させられる蓋然性(以下、検索ステータスの蓋然性という)の方が高い。また、検索ステータスの蓋然性よりも、商品選択ステータスから完了ステータスに遷移させられる蓋然性(以下、商品選択ステータスの蓋然性という)の方が高く、かつ、商品選択ステータスの蓋然性よりも検討ステータスの蓋然性の方が高い。
同様の理由から、注文のステータスが、サービス選択ステータスから完了ステータスに遷移するのに要する時間(以下、サービス選択ステータスの遷移時間という)よりも、検索ステータスから完了ステータスに遷移するのに要する時間(以下、検索ステータスの遷移時間という)の方が短い。また、検索ステータスの遷移時間よりも、商品選択ステータスから完了ステータスに遷移するのに要する時間(以下、商品選択ステータスの遷移時間という)の方が短く、商品選択ステータスの遷移時間よりも検討ステータスの遷移時間の方が短い。
これらのため、情報処理装置200のCPU201は、注文のステータスに応じて移動機800又は900の移動を制御する、図11に示すような移動制御処理を、予め定められた時間間隔で実行する。これにより、情報処理装置200のCPU201は、商品を運搬させる移動機800又は900の位置から運搬の開始位置までの移動距離の増長を抑制させる移動制御を、注文のステータスに応じて移動機800又は900に行う、図7に示すような制御部250として機能する。
図11の移動制御処理の実行が開始されると、情報処理装置200の取得部210は、図10の注文テーブルから、注文が受け付けられていないことを表す文字列「NULL」と異なるステータスIDが保存されたレコードを1又は複数取得する。次に、取得部210は、取得された1又は複数のレコードの内で、未注目のレコードがあるか否かを判別する(ステップS51)。このとき、取得部210は、未注目のレコードがあると判別すると(ステップS51;Yes)、未注目のレコードの1つに注目して注目レコードとする(ステップS52)。
次に、情報処理装置200の取得部210は、注目レコードに保存された機体IDと、注文のステータスIDと、を取得する(ステップS53及びS54)。次に、取得部210は、取得されたステータスIDが、第1ステータスとも称されるサービス選択ステータスのステータスID「S1」であるか否かを判別する(ステップS55)。
このとき、情報処理装置200の取得部210は、取得されたステータスIDが第1ステータスのステータスID「S1」であると判別すると(ステップS55;Yes)、ステップS28と同様の処理を実行する。これにより、取得部210は、取得された機体IDで識別される運搬移動機800又は900の位置情報を取得する。また、取得部210は、位置情報が取得されてから予め定められた時間が経過すると、再度、運搬移動機800又は900の位置情報を取得する(ステップS56)。
次に、情報処理装置200の制御部250は、ステップS28と同様の処理を実行することで、1回目に取得された位置情報で表される運搬移動機800又は900の位置から運搬の開始位置までの循環経路上の最短距離(以下、1回目の距離という)と、2回目に取得された位置情報で表される位置から開始位置までの循環経路上の最短距離(以下、2回目の距離という)と、を算出する。
その後、情報処理装置200の制御部250は、1回目の距離が2回目の距離よりも短いか否かに基づいて、運搬移動機800又は900が運搬の開始位置から遠ざかっているか否かを判別する(ステップS57)。このとき、1回目の距離の長さが2回目の距離の長さ以上であるため、運搬移動機800又は900が開始位置から遠ざかっていない、と情報処理装置200の制御部250が判別すると(ステップS57;No)、取得部210は、情報記憶部290が予め記憶する基準の速度を表す情報を取得する。
次に、情報処理装置200の制御部250は、運搬移動機800又は900の移動速度を、取得された情報で表される基準の速度にさせる速度制御(以下、基準速度制御という)を行う(ステップS58)。このために、制御部250は、基準の速度で移動することを命じる基準速度命令を、運搬移動機800又は900を宛先としてデータ通信回路204aへ出力する。その後、情報処理装置200は、ステップS51から上記処理を繰り返す。
ステップS57において、1回目の距離が2回目の距離よりも短いため、運搬移動機800又は900が開始位置から遠ざかっている、と情報処理装置200の制御部250が判別すると(ステップS57;Yes)、取得部210は、情報記憶部290が予め記憶する低速度を表す情報を取得する。低速度とは、基準の速度よりも遅い速度である。次に、制御部250は、運搬移動機800又は900の移動速度を、取得された情報で表される低速度にさせる速度制御(以下、低速度制御という)を行う(ステップS59)。このために、制御部250は、低速度を表す情報を含み、かつ、低速度で移動することを命じる低速度命令を、運搬移動機800又は900を宛先としてデータ通信回路204aへ出力する。その後、情報処理装置200は、ステップS51から上記処理を繰り返す。
本実施例において、運搬移動機800又は900が運搬の開始位置から遠ざかっている場合に、第1ステータスに応じた移動制御である低速度制御が未実行であるか否かに関わらず、当該低速度制御が実行される。また、運搬移動機800又は900が運搬の開始位置から遠ざかっていない場合に、第1ステータスに応じた基準速度制御が未実行であるか否かに関わらず、当該基準速度制御が実行される。このように低速度制御及び基準速度制御が未実行であるか否かに関わらず実行されるのは、運搬移動機800又は900は、循環移動を継続するため、時間の経過にともなって運搬の開始位置に近づいたり遠ざかったりするからである。
ステップS55において、情報処理装置200の取得部210は、取得されたステータスIDが、第1ステータスのステータスID「S1」でないと判別すると(ステップS55;No)、取得されたステータスIDが、第2ステータスと称される検索ステータスのステータスID「S2」、又は、同じく第2ステータスと称される商品選択ステータスのステータスID「S3」であるか否かを判別する(ステップS60)。このとき、取得部210は、取得されたステータスIDがステータスID「S2」又は「S3」であると判別すると(ステップS60;Yes)、ステップS56及び57と同様の処理を実行することで(ステップS61及びS62)、運搬移動機800又は900が運搬の開始位置から遠ざかっているか否かを判別する。
このとき、情報処理装置200は、運搬移動機800又は900が運搬の開始位置から遠ざかっていないと判別すると(ステップS62;No)、ステップS51から上記処理を繰り返す。これに対して、制御部250は、運搬移動機800又は900が遠ざかっていると判別すると(ステップS62;Yes)、運搬移動機800又は900の移動方向を、運搬の開始位置から遠ざかる方向から開始位置へ近づく方向へ変更する方向制御を行う(ステップS63)。
方向制御は、運搬移動機800又は900の移動方向を運搬の開始位置へ近づく方向へ変更する制御である。このため、運搬移動機800又は900の移動方向が運搬の開始位置から遠ざかる方向である場合に運搬移動機800又は900の移動速度を低速度にする低速度制御よりも、運搬移動機800又は900の位置から運搬の開始位置までの移動距離の増長を抑制させる。
本実施例では、方向制御は、運搬移動機800又は900が循環経路を予め定められた順方向に移動している場合に、運搬移動機800又は900の移動方向を順方向と反対の逆方向に変更させ、かつ、運搬移動機800又は900が逆方向に移動している場合に、運搬移動機800又は900の移動方向を順方向に変更させる制御である。運搬移動機800又は900は、順方向に循環経路を移動することで循環経路の順路を移動し、かつ、逆方向に循環経路を移動することで循環経路の逆路を移動する。このため、方向制御は、運搬移動機800又は900が順路を移動している場合に、運搬移動機800又は900に逆路を移動させ、かつ、運搬移動機800又は900が逆路を移動している場合に、運搬移動機800又は900に順路を移動させる制御でもある。
また、本実施例では、方向制御は、運搬移動機800又は900の移動方向を、順方向から逆方向に変更させるために、又は、逆方向から順方向に変更させるために、運搬移動機800又は900の移動方向を反転させる反転制御である。このため、ステップS63において、制御部250は、移動方向を反転させることを命じる反転命令を、運搬移動機800又は900を宛先としてデータ通信回路204aへ出力する。
次に、情報処理装置200の制御部250は、ステップS58と同様の処理を実行することで、運搬移動機800又は900を基準の速度で移動させる基準速度制御を行う(ステップS64)。その後、情報処理装置200は、ステップS51から上記処理を繰り返す。
本実施例において、運搬移動機800又は900が運搬の開始位置から遠ざかっている場合に、第2ステータスに応じた移動制御である方向制御及び基準速度制御が未実行であるか否かに関わらず、方向制御及び基準速度制御が実行される。このように、方向制御及び基準速度制御が未実行であるか否かに関わらず実行されるのは、運搬移動機800又は900は、循環移動を継続するためである。
ステップS55及びS60において、情報処理装置200の取得部210は、取得されたステータスIDが、ステータスID「S1」から「S3」でないと判別した後(ステップS55;No及びステップS60;No)、取得されたステータスIDが、第3ステータスと称される検討ステータスのステータスID「S4」であるか否かを判別する(ステップS65)。このとき、取得部210は、取得されたステータスIDがステータスID「S4」であると判別すると(ステップS65;Yes)、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと、第3ステータスのステータスID「S4」と、に対応付けられた未実行フラグを取得する。このとき、取得部210は、取得された未実行フラグの値に基づいて、第3ステータスに応じた移動制御が未実行であるか否かを判別する(ステップS66)。このとき、未実行フラグの値が値「false」であるため、当該移動制御が実行済みであると判別されると(ステップS66;No)、情報処理装置200は、ステップS51から上記処理を繰り返す。
これに対して、情報処理装置200の取得部210は、未実行フラグの値が値「true」であるため、第3ステータスに応じた移動制御が未実行であると判別すると(ステップS66;Yes)、当該移動制御として、運搬移動機800又は900の移動速度を、基準の速度よりも速い高速度にさせる速度制御(以下、高速度制御という)を行う(ステップS67)。
ここで、注文のステータスは、第2ステータスを経て第3ステータスに遷移させられる。このため、ステップS60で注文のステータスが第2ステータスであると判別され、ステップS63及びS64でそれぞれ方向制御及び基準速度制御が行われた後に、ステップS65で注文のステータスが第3ステータスであると判別され、ステップS67で高速度制御が実行される。すなわち、方向制御及び基準速度制御が行われることで、運搬移動機800又は900の移動方向が運搬の開始位置に近づく方向に変更され、移動速度が基準の速度に変更された後に、高速度制御が行われる。このため、運搬移動機800又は900は、運搬の開始位置に近づく方向に基準の速度よりも速い高速度で移動させられる。よって、高速度制御は、方向制御及び基準速度制御よりも、運搬移動機800又は900の位置から運搬の開始位置までの移動時間を短縮させる。
高速度制御を行うために、情報処理装置の取得部210は、情報記憶部290が予め記憶する高速度を表す情報を取得する。次に、制御部250は、高速度を表す情報を含み、かつ、高速度で移動することを命じる高速度命令を、運搬移動機800又は900を宛先としてデータ通信回路204aへ出力する。次に、更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと、第3ステータスのステータスID「S4」と、に対応付けられた未実行フラグの値を、第3ステータスに応じた移動制御が実行済みであることを表す値「false」に更新する。その後、情報処理装置200は、ステップS51から上記処理を繰り返す。
ステップS55、S60、及び、S65において、情報処理装置200の取得部210は、取得されたステータスIDが、ステータスID「S1」から「S4」でないと判別した後(ステップS55;No、ステップS60;No、及び、ステップS65;No)、取得されたステータスIDが、第4ステータスと称される決済ステータスのステータスID「S5」であるか否かを判別する(ステップS68)。このとき、取得部210は、取得されたステータスIDがステータスID「S5」であると判別すると(ステップS68;Yes)、ステップS66と同様の処理を実行することで、第4ステータスに応じた移動制御が未実行であるか否かを判別する(ステップS69)。このとき、当該移動制御が実行済みであると判別されると(ステップS69;No)、情報処理装置200は、ステップS51から上記処理を繰り返す。
これに対して、情報処理装置200の取得部210は、第4ステータスに応じた移動制御が未実行であると判別すると(ステップS69;Yes)、ステップS28と同様の処理を実行することで、運搬移動機800又は900の位置を緯度、経度、及び、高度で表す位置情報を取得する(ステップS70)。
次に、情報処理装置200の制御部250は、運搬移動機800又は900の移動経路を再設定する経路制御が行われない場合に運搬移動機800又は900の位置から運搬の開始位置まで、移動経路として循環経路が設定されている運搬移動機800又は900が当該循環経路に沿って移動する距離(すなわち、循環経路上の最短距離)よりも短い距離の第1経路を決定する(ステップS71)。
このために、取得部210は、情報記憶部290から運搬の開始位置を緯度、経度、及び、高度で表す情報を取得する。次に、取得部210は、情報記憶部290が予め記憶している部分経路テーブルに保存されている複数のレコードを読み出す。部分経路テーブルには、例えば、道路及び歩道といった移動機800及び900が移動可能な部分経路に関する情報が保存された複数のレコードが予め保存されている。
部分経路テーブルの各レコードには、部分経路であるエッジの始点ノードの緯度、経度、及び、高度と、当該エッジの終点ノードの緯度、経度、及び、高度と、当該エッジの距離を表す情報と、が対応付けられて予め保存されている。また、始点ノード及び終点ノードの緯度、経度、及び、高度には、例えば、道路又は歩道であるエッジの幅を表す情報と、が予め対応付けられている。
次に、情報処理装置200の制御部250は、読み出された部分経路テーブルの各レコードに保存されているエッジの距離と、当該エッジの始点ノード及び終点ノードの緯度、経度、及び、高度と、運搬移動機800又は900の位置を表す緯度、経度、及び、高度と、運搬の開始位置を表す緯度、経度、及び、高度と、を用いて、例えば、ダイクストラ法といった経路探索アルゴリズムを実行する。これにより、制御部250は、部分経路を組み合わせることで、運搬移動機800又は900の位置から開始位置へ到る全体経路を複数探索する。
その後、情報処理装置200の取得部210は、情報記憶部290から循環経路を表す情報を取得する。次に、制御部250は、循環経路を表す情報と、運搬移動機800又は900の位置情報と、運搬の開始位置を表す情報と、に基づいて、運搬移動機800又は900の位置から運搬の開始位置まで循環経路を移動するのに要する最短距離(以下、循環経路上の距離という)を算出する。
その後、情報処理装置200の制御部250は、探索された複数の全体経路の内で、循環経路上の距離よりも総距離が短い全体経路を、総距離が短い順にN個(但し、Nは、自然数)特定する。これにより、循環経路と異なる全体経路がN個特定される。
その後、情報処理装置200の制御部250は、運搬移動機800又は900を移動させる経路としてどの程度適切であると評価されたかを表す評価値を、N個の全体経路のそれぞれについて算出する。本実施例では、より適切であると評価された全体経路程、より高い評価値が算出されるが、これに限定される訳では無く、より適切であると評価された全体経路程、より低い評価値が算出されても良い。
N個の全体経路のそれぞれについて評価値を算出するため、情報処理装置200の制御部250は、特定されたN個の全体経路に、総距離が短い順に1番からN番までの番号を割り当てる。その後、制御部250は、全体経路の番号を表す変数nを値「1」で初期化する。次に、制御部250は、n番目の全体経路について、総距離に基づく第1の評価値、安全性に基づく第2の評価値、及び、エネルギー消費量に基づく第3の評価値を算出する。
総距離に基づく第1の評価値を算出するために、情報処理装置200の制御部250は、n番目の全体距離の総距離がより短い程、より高い値に第1の評価値を算出する。制御部250がこのように第1の評価値を算出するのは、総距離がより短い程、運搬移動機800又は900は、より早く運搬の開始地点に移動できるからである。
本実施例において、情報処理装置200の制御部250は、第1の評価値の算出方法として、総距離の逆数を第1の評価値とする方法を用いるが、これに限定される訳では無い。制御部250は、総距離がより短い程、より高い正の値に第1の評価値を算出する方法であれば、どのような算出方法を用いても構わない。
次に、安全性に基づく第2の評価値を算出するために、情報処理装置200の制御部250は、n番目の全体経路に含まれるエッジを複数特定する。その後、制御部250は、特定された複数のエッジのそれぞれについて、不図示の部分経路テーブルから、エッジの始点ノードの緯度、経度、及び、高度と、終点ノードの緯度、経度、及び、高度と、に対応付けられたエッジの距離を表す情報と、エッジの幅を表す情報と、を取得する。その後、制御部250は、複数のエッジのそれぞれについて、エッジの幅に距離を乗算することで面積を算出する。その後、制御部250は、n番目の全体経路に含まれる複数のエッジの面積の総和を算出し、算出された総和を総距離で除算することで、全体経路の幅の平均値を算出する。次に、制御部250は、算出された幅の平均値がより大きい程、安全性に基づく第2の評価値をより高い値に算出する。制御部250がこのように第2の評価値を算出するのは、全体経路の幅の平均値が大きい程、運搬移動機800又は900が全体経路を移動中に、例えば、人、動物、障害物、又は、車両と接触する蓋然性が低いためである。
本実施例において、情報処理装置200の制御部250は、第2の評価値の算出方法として、全体経路の幅の平均値に対して、予め定められた正の定数C1を加算することで得られた値を第2の評価値とする方法を用いる。しかし、この方法に限定される訳では無く、制御部250は、全体経路の幅の平均値が大きい程、より高い正の値に第2の評価値を算出する方法であれば、どのような算出方法を用いても構わない。
次に、エネルギー消費量に基づく第3の評価値を算出するために、情報処理装置200の取得部210は、情報記憶部290が予め記憶する運搬移動機800又は900の重さを表す情報を取得する。次に、制御部250は、n番目の全体経路に含まれる複数のエッジのそれぞれについて、終点ノードの高度がエッジの始点ノードの高度よりも高い場合に、終点ノードの高度から始点ノードの高度を減算する。これにより、制御部250は、エッジを運搬移動機800又は900が移動した場合に生じる運搬移動機800又は900の高度の増加量を算出する。その後、制御部250は、複数のエッジのそれぞれについて、運搬移動機800又は900の重さを高度の増加量に乗算することで、エッジを移動した場合に生じる運搬移動機800又は900の位置エネルギーの増加量を算出する。次に、制御部250は、算出された位置エネルギーの増加量の総和を、例えば、運搬移動機800又は900が備えるバッテリに蓄積されたエネルギーの消費量として算出する。
その後、制御部250は、算出されたエネルギーの消費量がより小さい程、第3の評価値をより高い値に算出する。本実施例において、情報処理装置200の制御部250は、第3の評価値の算出方法として、算出されたエネルギーの消費量に対して、予め定められた正の定数C2を加算することで得られた値の逆数を第3の評価値とする方法を用いる。しかし、この方法に限定される訳では無く、制御部250は、算出されたエネルギーの消費量が小さい程、より高い正の値に第3の評価値を算出する方法であれば、どのような算出方法を用いても構わない。
第1から第3の評価値を算出した後、情報処理装置200の取得部210は、第1の評価値の重み付けに用いられる第1の重付係数について、正の第1の初期値を表す情報を情報記憶部290から取得する。同様に、取得部210は、第2の評価値及び第3の評価値の重み付けにそれぞれ用いられる第2の重付係数及び第3の重付係数について、正の第2の初期値を表す情報及び正の第3の初期値を表す情報を情報記憶部290から取得する。その後、制御部250は、取得された情報で表される第1の初期値で第1の重付係数を初期化し、第2の初期値及び第3の初期値で第2の重付係数及び第3の重付係数をそれぞれ初期化する。
その後、情報処理装置200の制御部250は、第1の評価値を第1の重付係数で重み付けた値と、第2の評価値を第2の重付係数で重み付けた値と、第3の評価値を第3の重付係数で重み付けた値と、の総和を、n番目の全体経路の総合評価値として算出する。次に、情報処理装置200の制御部250は、変数nの値を「1」だけ増加させてから、変数nの値が全体経路の総数Nよりも大きくなるまで、第1の個別評価値を算出する処理から上記処理を繰り返す。
N個の全体経路について総合評価値が算出されると、情報処理装置200の制御部250は、N個の総合評価値の内で最も高い総合評価値が算出された全体経路を、移動機800又は900に移動させる第1経路に決定する。しかし、これに限定される訳では無く、制御部250は、N’番目(但し、N’は、2以上かつN未満の自然数)に高い総合評価値が算出された全体経路、又は、1番目からN’番目に高い総合評価値が算出されたN’個の全体経路の内から、例えば、ソフトウェア乱数又は予め定められた規則に基づいて選択された全体経路を第1経路として決定しても良い。
その後、情報処理装置200の制御部250は、第4ステータスに応じた移動制御として、第1経路を運搬移動機800又は900に移動させる経路制御(以下、第1経路制御という)を行う(ステップS72)。第1経路制御は、運搬移動機800又は900の移動経路を、循環経路上の距離よりも短い距離の第1経路へ変更する制御である。このため、循環経路を移動する運搬移動機800又は900の移動速度を高速度にする高速度制御よりも、第1経路制御は、運搬移動機800又は900の位置から運搬の開始位置までの移動距離を短縮させる。
第1経路制御を行うために、情報処理装置の制御部250は、第1経路に含まれる複数のノードの位置を緯度、経度、及び、高度で表す情報と、複数のノードの到着順を表す情報と、を含む、第1経路を表す情報を生成する。次に、制御部250は、生成された第1経路を表す情報を含み、当該第1経路を移動することを命じる第1経路命令を、運搬移動機800又は900を宛先としてデータ通信回路204aへ出力する。次に、更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと、第4ステータスのステータスID「S5」と、に対応付けられた未実行フラグの値を値「false」に更新する。その後、情報処理装置200は、ステップS51から上記処理を繰り返す。
ステップS55、S60、S65、及び、S68において、情報処理装置200の取得部210は、取得されたステータスIDが、ステータスID「S1」から「S5」でないと判別すると(ステップS55;No、ステップS60;No、ステップS65;No、及び、ステップS68;No)、取得されたステータスIDが、第5ステータスと称される完了ステータスのステータスID「S6」であると判別する。次に、取得部210は、ステップS66と同様の処理を実行することで、第5ステータスに応じた移動制御が未実行であるか否かを判別する(ステップS73)。このとき、当該移動制御が実行済みであると判別されると(ステップS73;No)、情報処理装置200は、ステップS51から上記処理を繰り返す。
これに対して、情報処理装置200の取得部210は、第5ステータスに応じた移動制御が未実行であると判別すると(ステップS73;Yes)、ステップS70と同様の処理を実行することで、運搬移動機800又は900の位置情報を取得する(ステップS74)。
次に、情報処理装置200の制御部250は、第1経路よりも距離が短いが、第1経路よりもエネルギーの消費量が多く、かつ、第1経路よりも安全性が低い第2経路を決定する(ステップS75)。このために、制御部250は、ステップS71と同様の処理を実行することで、運搬移動機800又は900の位置から運搬の開始位置までの全体経路であり、かつ、第1経路よりも総距離が短い経路を、総距離が短い順にM個特定する(但し、Mは、1以上かつN未満の自然数)。
その後、情報処理装置200の制御部250は、M個の全体経路のそれぞれについて、総距離に基づく第1の評価値、安全性に基づく第2の評価値、及び、エネルギー消費量に基づく第3の評価値を算出する。次に、制御部250は、第1の重付係数を第1の初期値で初期化し、第2の重付係数及び第3の重付係数をそれぞれ第2の初期値及び第3の初期値で初期化する。
その後、情報処理装置200の制御部250は、総距離に基づく第1の評価値の重み付けに用いられる第1の重付係数を補正せず、安全性に基づく第2の評価値の重み付けに用いられる第2の重付係数、及び、エネルギー消費量に基づく第3の評価値の重み付けに用いられる第3の重付係数をそれぞれ補正前よりも小さい値に補正する。制御部250がこのような補正を行うのは、運搬移動機800又は900が運搬の開始位置まで移動しなければ、注文が完了していても、商品の運搬が開始されないためである。このため、注文の完了後は、総距離が短い経路の方が、総距離が長く、かつ、安全性が高い経路、及び、総距離が長く、かつ、エネルギー消費量が少ない経路よりも、運搬移動機800又は900に移動させる経路として相対的に適しているからである。
次に、情報処理装置200の制御部250は、補正されていない第1の重付係数で第1の評価値を重み付けた値と、補正された第2の重付係数で第2の評価値を重み付けた値と、補正された第3の重付係数で第3の評価値を重み付けた値と、の総和を、M個の全体経路のそれぞれについて、総合評価値として算出する。その後、制御部250は、M個の総合評価値の内で最も高い総合評価値が算出された全体経路を、移動機800又は900に移動させる第2経路に決定する。しかし、これに限定される訳では無く、制御部250は、M’番目(但し、M’は、2以上かつM未満の自然数)に高い総合評価値が算出された全体経路、又は、1番目からM’番目に高い総合評価値が算出されたM’個の全体経路の内から、例えば、ソフトウェア乱数又は予め定められた規則に基づいて選択された全体経路を第2経路として決定しても良い。
その後、情報処理装置200の制御部250は、第5ステータスに応じた移動制御として、第2経路を運搬移動機800又は900に移動させる経路制御(以下、第2経路制御という)を行う(ステップS76)。第2経路制御は、運搬移動機800又は900の移動経路を、第1経路よりもの距離よりも短い距離の第2経路へ変更する制御である。このため、第2経路制御は、第1経路制御よりも、運搬移動機800又は900の位置から運搬の開始位置までの移動距離を短縮させる。
第2経路制御を行うために、情報処理装置200の制御部250は、第2経路に含まれる複数のノードの位置を緯度、経度、及び、高度で表す情報と、複数のノードの到着順を表す情報と、を含む、第2経路を表す情報を生成する。次に、制御部250は、生成された第2経路を表す情報を含み、当該第2経路を移動することを命じる第2経路命令を、運搬移動機800又は900を宛先としてデータ通信回路204aへ出力する。次に、更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと、第5ステータスのステータスID「S6」と、に対応付けられた未実行フラグの値を値「false」に更新する。その後、情報処理装置200は、ステップS51から上記処理を繰り返す。
ステップS51において、取得部210は、未注目のレコードが無いと判別すると(ステップS51;No)、移動制御処理の実行を終了する。
情報処理装置200によって移動を制御される移動機800は、例えば、無人地上車両であり、無人で地上を走行可能な走行機である。移動機800は、図12に示すような車輪801及び802を含む複数の車輪を備える車台810と、車台810の上面に設置された格納庫820と、格納庫820に内蔵された情報処理装置890と、を備える。
移動機800の格納庫820は、1つの格納ボックス821を備える。格納ボックス821は、不図示の1枚の底板、天板、及び、背板、並びに、2枚の側板を備え、これらの板により閉塞されて前方が開放された空間を形成する箱体を備える。箱体の開口部には、扉821aを受け止める扉枠821bが設置されている。扉821aは、カンヌキであるデッドボルト821cを備え、扉枠821bは、デッドボルト821cの受座であるストライク821dを備える。
移動機800が備える格納庫820の扉821aは、移動機800の情報処理装置890から出力される信号に従って、扉821aを施錠するため、デッドボルト821cをストライク821dへ挿入させる不図示のモータをさらに備えている。当該モータは、情報処理装置890から出力される信号に従って、扉821aを解錠するため、デッドボルト821cをストライク821dから抜出させる。
移動機800は、車台810の前面に設置されたLiDAR(Light Detection and Ranging)センサ831と、車台810の後面に設置された不図示のLiDARセンサと、をさらに備える。
移動機800が備える前面のLiDARセンサ831は、移動機800の前方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、移動機900の前方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へレーザー光を照射する。前面のLiDARセンサ831は、照射されたレーザー光の反射光を受光し、レーザー光の照射から反射光の受光までの時間に基づいて、レーザー光が反射された複数の反射点までの距離を計測する。次に、前面のLiDARセンサ831は、レーザー光の照射方向と計測された距離とに基づいて、移動機800の中心点を原点として用いた三次元座標系における座標値を、複数の反射点について算出する。その後、前面のLiDARセンサ831は、算出された複数の反射点の座標値を移動機800の情報処理装置890へ出力する。
移動機800が備える後面のLiDARセンサは、移動機800の後方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、移動機900の後方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へ赤外線のレーザー光を照射する。また、後面のLiDARセンサは、照射されたレーザー光の複数の反射点について移動機800の三次元座標系における座標値を算出し、算出された複数の反射点の座標値を移動機800の情報処理装置890へ出力する。
移動機800が備える前面のLiDARセンサ831及び後面のLiDARセンサが複数の反射点の座標値を情報処理装置890へ出力するのは、例えば、障害物等の物体を回避して走行するために、移動機800の情報処理装置890が、移動機800を基準として用いた全方向にある物体の三次元空間における座標値及びサイズ等を特定するためである。
移動機800の情報処理装置890は、図13に示すようなハードウェアであるCPU891、RAM892、ROM893a、フラッシュメモリ893b、データ通信回路894a、ビデオカード895a、表示装置895b、入力装置895c、位置計測回路896、入出力ポート898、及び、駆動回路899を備える。本実施例では、移動機800は、1つのCPU891を備えるが、複数のCPUを備えても良い。また、移動機800は、複数のRAM及びフラッシュメモリを備えても良い。
移動機800のCPU891、RAM892、ROM893a、フラッシュメモリ893b、データ通信回路894a、ビデオカード895a、表示装置895b、入力装置895c、及び、位置計測回路896の構成及び機能は、端末装置100のCPU101、RAM102、ROM103a、フラッシュメモリ103b、データ通信回路104a、ビデオカード105a、表示装置105b、入力装置105c、及び、位置計測回路106の構成及び機能と同様である。
移動機800の入出力ポート898は、不図示のケーブルを介して、前面のLiDARセンサ831及び後面のLiDARセンサとそれぞれ接続された不図示のケーブルに接続されている。入出力ポート898は、前面のLiDARセンサ831及び後面のLiDARセンサがそれぞれ出力する座標値を表す信号をCPU891へ入力する。
移動機800の駆動回路899は、複数の車輪を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路899は、CPU891が出力する制御信号に従って当該モータを駆動させることで、複数の車輪を回転させる。複数の車輪を回転させる不図示のモータは、移動機800が備える不図示のバッテリから供給される電力を用いて駆動する。
また、移動機800の駆動回路899は、扉821aが備えるデッドボルト821cをストライク821dから抜出させる又はストライク821dに挿入させる不図示のモータに接続されたケーブルに接続されており、CPU891が出力する信号に従って当該モータを駆動させる。
販売業者の従業員が、移動機800を循環移動させるための操作を移動機800に行うと、移動機800の入力装置895cは、当該操作に応じた信号を出力する。移動機800のCPU891は、入力装置895cから当該信号が出力されると、移動機800を循環移動させる、図14及び図15に示すような循環移動処理を実行する。
循環移動処理の実行が開始されると、移動機800のCPU891は、フラッシュメモリ893bに予め記憶されている循環経路を表す情報を取得する。次に、CPU891は、移動機800に移動させる移動経路を表す情報がロードされるRAM892の記憶領域に循環経路を表す情報を保存することで、移動経路を循環経路に設定する(ステップS81)。
その後、移動機800のCPU891は、循環経路を繰り返し移動するか否かを表す循環継続フラグの値を、繰り返し移動することを表す値「true」で初期化する(ステップS82)。また、CPU891は、循環経路を予め定められた順方向に移動するか否かを表す順方向フラグの値を、順方向に移動することを表す値「true」で初期化する(ステップS83)。
次に、移動機800のCPU891は、フラッシュメモリ893bに予め記憶されている基準の速度を表す情報を取得し、移動機800の移動速度を表す情報がロードされるRAM892の記憶領域に基準の速度を表す情報を保存することで、移動速度を基準の速度に設定する(ステップS84)。
次に、移動機800のCPU891は、移動機800のデータ通信回路894aから、情報処理装置200から受信された命令の取得を試行する。このとき、CPU891は、命令を取得すると(ステップS85;Yes)、取得された命令が、基準の速度よりも遅い低速度で移動することを命じる低速度命令であるか否かを判別する(ステップS86)。このとき、CPU891は、取得された命令が低速度命令であると判別すると(ステップS86;Yes)、低速度命令から低速度を表す情報を取得する。その後、CPU891は、ステップS84と同様の処理を実行することで、移動機800の移動速度を、取得された情報で表される低速度に設定した後(ステップS87)、後述するステップS102の処理を実行する。
ステップS86において、移動機800のCPU891は、取得された命令が、低速度命令ではないと判別した後(ステップS86;No)、基準速度命令であると判別すると(ステップS88;Yes)、ステップS84と同様の処理を実行することで、移動機800の移動速度を基準の速度に設定する(ステップS89)。その後、CPU891は、後述するステップS102の処理を実行する。
ステップS86、S88、及び、S90において、移動機800のCPU891は、取得された命令が、低速度命令及び基準速度命令でなく(ステップS86;No及びステップS88;No)、反転命令であると判別すると(ステップS90;Yes)、順方向フラグの値が、順方向に移動することを表す値「true」であるか否かを判別する(ステップS91)。このとき、CPU891は、順方向フラグの値が値「true」であると判別すると(ステップS91;Yes)、順方向フラグの値を、順方向と反対の逆方向に移動することを表す値「false」に設定する(ステップS92)。これに対して、CPU891は、順方向フラグの値が値「false」であると判別すると(ステップS91;No)、順方向フラグの値を値「true」に設定する(ステップS93)。
ステップS92又はS93の処理が実行された後、移動機800のCPU891は、循環経路を繰り返し移動するか否かを表す循環継続フラグの値を、循環経路の移動を繰り返さないことを表す値「false」に設定する(ステップS94)。循環継続フラグの値が値「false」に設定されるのは、移動機800が運搬の開始位置に到着した後、循環経路の移動を繰り返すことで、開始位置から移動機800が遠ざかることを抑制するためである。その後、移動機800のCPU891は、移動機800の移動速度を基準の速度に設定してから(ステップS95)、後述するステップS102の処理を実行する。
ステップS86、S88、S90、及び、S96において、移動機800のCPU891は、取得された命令が、低速度命令、基準速度命令、及び、反転命令ではなく(ステップS86;No、ステップS88;No、及び、ステップS90;No)、高速度命令であると判別すると(ステップS96;Yes)、高速度命令から高速度を表す情報を取得する。その後、CPU891は、移動機800の移動速度を、取得された情報で表される高速度に設定してから(ステップS97)、後述するステップS102の処理を実行する。
ステップS86、S88、S90、S96、及び、S98において、移動機800のCPU891は、取得された命令が、低速度命令、基準速度命令、反転命令、及び、高速度命令ではなく(ステップS86;No、ステップS88;No、ステップS90;No、及び、ステップS96;No)、第1経路命令であると判別すると(ステップS98;Yes)、第1経路命令から第1経路を表す情報を取得する。その後、CPU891は、ステップS81と同様の処理を実行することで、移動機800の移動経路を、取得された情報で表される第1経路に再設定する(ステップS99)。
その後、移動機800のCPU891は、第1経路を順方向に移動するため、順方向フラグの値を値「true」に設定した後に(ステップS100)、後述するステップS102の処理を実行する。
ステップS86、S88、S90、S96、及び、S98において、移動機800のCPU891は、取得された命令が、低速度命令、基準速度命令、反転命令、高速度命令、及び、第1経路命令ではないと判別すると(ステップS86;No、ステップS88;No、ステップS90;No、ステップS96;No、及び、ステップS98;No)、取得された命令が第2経路命令であると判別する。次に、CPU891は、第2経路命令から第2経路を表す情報を取得し、移動機800の移動経路を、取得された情報で表される第2経路に再設定する(ステップS101)。その後、CPU891は、後述するステップS102の処理を実行する。
ステップS85において、命令が取得されない場合(ステップS85;No)、又は、ステップS87、S89、S95、S97、S100、若しくは、S101の処理が実行された後に、移動機800のCPU891は、循環継続フラグの値が値「true」であるか否かを判別する(ステップS102)。このとき、CPU891は、循環継続フラグの値が値「true」であると判別すると(ステップS102;Yes)、循環経路の移動を継続するために、後述するステップS104の処理を実行する。
これに対して、移動機800のCPU891は、循環継続フラグの値が値「false」であると判別すると(ステップS102;No)、移動機900のCPU891は、位置計測回路896から出力される信号に基づいて、移動機800の緯度、経度、及び、高度を特定する。次に、CPU891は、運搬の開始位置の緯度、経度、及び、高さと、移動機800の緯度、経度、及び、高度と、に基づいて、移動機800から開始位置までの距離を算出する。その後、CPU891は、算出された距離が予め定められた距離以下であるか否かに基づいて、移動機800が運搬の開始位置に到着したか否かを判別する(ステップS103)。このとき、CPU891は、移動機800から開始位置までの距離が予め定められた距離よりも長いため、移動機800が運搬の開始位置に到着していないと判別すると(ステップS103;No)、循環経路、第1経路、又は、第2経路の移動を継続するために、後述するステップS104の処理を実行する。
ステップS102において、循環継続フラグの値が値「true」であると判別された場合(ステップS102;Yes)、又は、移動機800が運搬の開始位置に到着していないと判別された場合(ステップS103;No)、移動機800のCPU891は、順方向フラグの値が値「true」であるか否かを判別する(ステップS104)。
このとき、移動機800のCPU891は、順方向フラグの値が値「true」であると判別すると(ステップS104;Yes)、ステップS81、S99、又は、S101で設定された移動経路を、ステップS84、S87、S89、S95、又は、S97で設定された移動速度で、順方向に移動するための制御信号を出力する(ステップS105)。
このために、移動機800のCPU891は、位置計測回路896から出力される信号に基づいて、移動機800の緯度、経度、及び、高度を特定する。次に、CPU891は、特定された緯度、経度、及び、高度と、設定された移動経路に含まれる複数のノードの緯度、経度、及び、高度と、に基づいて、移動機800の位置よりも移動経路上で順方向にあり、かつ、移動経路上で移動機800の位置に最も近いノードを特定する。その後、CPU891は、特定されたノードの緯度、経度、及び、高度と、移動機800の緯度、経度、及び、高度と、の相違を短縮させるように、設定された移動速度で移動機800を移動させるための制御信号を生成する。その後、CPU891は、生成された制御信号を駆動回路899へ出力する。駆動回路899は、当該制御信号に従って複数の車輪を回転させる。その後、CPU891は、ステップS85から上記処理を繰り返す。
これに対して、移動機800のCPU891は、順方向フラグの値が値「false」であると判別すると(ステップS104;No)、設定された移動経路を、設定された移動速度で、逆方向に移動するための制御信号を出力する(ステップS106)。
このために、移動機800のCPU891は、移動機800の位置よりも移動経路上で逆方向にあり、かつ、移動経路上で移動機800の位置に最も近いノードを特定する。その後、CPU891は、特定されたノードの緯度、経度、及び、高度と、移動機800の緯度、経度、及び、高度と、の相違を短縮させるように、設定された移動速度で移動機800を移動させるための制御信号を駆動回路899へ出力する。その後、CPU891は、ステップS85から上記処理を繰り返す。
ステップS103において、移動機800のCPU891は、移動機800から運搬の開始位置までの距離が予め定められた距離以下であるため、移動機800が開始位置に到着したと判別すると(ステップS103;Yes)、フラッシュメモリ893bが予め記憶している移動機800の機体IDを取得する。次に、CPU891は、移動機800の機体IDを含み、かつ、開始位置に移動機800が到着したことを告げる到着報告を生成する。その後、CPU891は、生成された到着報告を、情報処理装置200を宛先としてデータ通信回路204aへ出力した後に(ステップS107)、循環移動処理の実行を終了する。
移動機800のCPU891が循環移動処理を実行している間に、移動機800のデータ通信回路894aが位置送信要求を情報処理装置200から受信すると、CPU891は、循環移動処理を実行するスレッドと異なるスレッドを生成する。次に、CPU891は、生成されたスレッドで、位置計測回路896から出力される信号に基づいて移動機800の位置を緯度、経度、及び、高度で表す位置情報を取得する処理を実行する。次に、CPU891は、取得された位置情報を、情報処理装置200を宛先としてデータ通信回路894aへ出力する処理を、生成されたスレッドで実行した後、生成されたスレッドを削除する。
移動機900の構成及び機能は、移動機800の構成及び機能と同様である。
情報処理装置200のデータ通信回路204aが到着報告を受信すると、情報処理装置200の取得部210は、データ通信回路204aから到着報告を取得し、取得された到着報告に含まれる機体IDを取得する。次に、取得部210は、図10の注文テーブルにおいて、当該機体IDと対応付けられた商品IDを取得する。その後、CPU201は、取得された機体IDと商品IDとを含み、当該機体IDで識別される運搬移動機800又は900に、商品IDで識別される商品を積み込むように促すメッセージを表示装置205bに表示させる。当該メッセージを視認した販売業者の従業員は、倉庫から当該商品から見つけ出し、見つけ出した商品を運搬移動機800又は900に積み込んだ後に、商品が積み込まれた運搬移動機800又は900の機体IDを入力するための操作を情報処理装置200に行う。
情報処理装置200の入力装置205cが従業員の操作に応じた信号を出力すると、取得部210は、当該信号に基づいて機体IDを取得する。次に、取得部210は、図10の注文テーブルから、取得された機体IDに対応付けられたユーザIDを取得し、図9のユーザテーブルにおいて、取得されたユーザIDと対応付けられている運搬先を住所で表す情報を取得する。これにより、取得部210は、運搬移動機800又は900に積み込まれた商品の運搬先を特定する。
その後、情報処理装置200の取得部210は、運搬先を住所で表す情報と情報記憶部290が予め対応付けて記憶する運搬先の緯度、経度、及び、高度を表す情報を取得する。次に、情報処理装置200の制御部250は、図11のステップS71と同様の処理を実行することで、運搬移動機800又は900の位置から運搬先までの運搬経路を決定する。その後、制御部250は、運搬経路を表す情報を含み、運搬経路を移動して運搬先まで移動することを命じる運搬命令を、運搬移動機800又は900を宛先としてデータ通信回路204aへ出力する。その後、更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDに対応付けられたステータスIDと商品IDとを文字列「NULL」に更新するが、機体IDを文字列「NULL」に更新せずに維持する。機体IDが更新されないのは、商品の運搬が完了していないため、当該機体IDで識別される移動機800又は900が運搬移動機として選択され続けているからである。
移動機800のデータ通信回路894aが、情報処理装置200から送信された運搬命令を受信すると、移動機800のCPU891は、運搬命令に従って移動機800に物品を運搬させる、図16に示すような運搬処理を実行する。
移動機800のCPU891は、運搬処理の実行を開始すると、デッドボルト821cをストライク821dに挿入させる信号を駆動回路899に出力することで、格納庫820の扉を施錠する(ステップS111)。
次に、移動機800のCPU891は、データ通信回路894aから運搬命令を取得し、取得された運搬命令から運搬経路を表す情報を取得する(ステップS112)。
次に、移動機800のCPU891は、位置計測回路896から出力される信号に基づいて移動機800の位置を緯度、経度、及び、高度で表す情報を取得する。その後、CPU891は、運搬経路に含まれる1又は複数の未到着のノードの内で最も到着順序の早いノードの位置を緯度、経度、及び、高度で表す情報を特定する。次に、CPU891は、移動機800の位置を緯度、経度、及び、高度で表す情報と、特定された情報と、に基づいて、移動機800から最も到着順序の早い未到着のノードまでの距離を短縮させるように、基準の移動速度で移動するための制御信号を生成する。その後、CPU891は、生成された制御信号を駆動回路899へ出力することで(ステップS113)、移動機800に運搬経路を順行させる。
その後、移動機800のCPU891は、運搬経路に含まれる1又は複数のノードの全てに到着した訳ではないため、運搬先に到着していないと判別すると(ステップS114;No)、ステップS113から上記処理を繰り返す。これに対して、CPU891は、運搬経路に含まれる1又は複数のノードの全てに到着したため、運搬先に到着したと判別すると(ステップS114;Yes)、運搬先で停車又は駐車するための制御信号を駆動回路899に出力する。その後、CPU891は、デッドボルト821cをストライク821dから抜出させる信号を駆動回路899に出力することで、格納庫820の扉を解錠する(ステップS115)。
その後、端末装置100のユーザであり、かつ、運搬先に居る第1ユーザ、又は、第1ユーザに商品の受け取りを依頼された運搬先に居る第2ユーザは、移動機800の格納庫820から商品を取り出した後に、移動機800の入力装置895cを操作する。入力装置895cが当該操作に応じた信号を出力すると、CPU891は、運搬経路を逆行して運搬の開始位置まで帰還するための制御信号を駆動回路899へ出力する(ステップS116)。
その後、CPU891は、運搬の開始位置に到着したと判別すると、移動機800の機体IDを含み、運搬の開始位置に帰還したことを告げる帰還報告を、情報処理装置200を宛先としてデータ通信回路894aに出力してから(ステップS117)、運搬処理の実行を終了する。その後、移動機800は、図14及び図15に示した循環移動処理の実行を開始することで、循環経路の移動を再開する。
情報処理装置200のデータ通信回路204aが帰還報告を受信すると、情報処理装置200の取得部210は、帰還報告をデータ通信回路204aから取得し、取得された帰還報告に含まれる移動機800の機体IDを取得する。次に、更新部230は、図10の注文テーブルに保存された移動機800の機体IDを文字列「NULL」に更新する。これにより、移動機800は、運搬移動機としての選択から解除される。
これらの構成によれば、情報処理装置200は、注文のステータスを取得する取得部210を備える。また、情報処理装置200は、注文の対象とされた商品を運搬させる運搬移動機800又は900の位置から運搬の開始位置までの移動距離の増長を抑制させる移動制御を、取得されたステータスが、注文が完了された状態である完了ステータスに遷移する前の第1から第4ステータスである場合に、取得されたステータスに応じて運搬移動機800又は900に行う制御部250を備える。このため、情報処理装置200は、運搬が開始される開始位置まで運搬移動機800又は900を移動させるのに要する所要時間の増長を抑制できるので、注文の完了から運搬の開始までに要する運搬開始待ち時間の増長を抑制できる。
ここで、注文は、完了されない可能性があるため、注文のステータスは、完了ステータスに遷移しない可能性がある。このため、注文の完了前に移動制御をすると、運搬移動機800又は900の利用効率が低下する。しかし、これらの構成によれば、完了ステータスに遷移する前のステータスには、第1ステータスと第2ステータスとが存在し、第2ステータスは、完了ステータスに遷移する蓋然性が、第1ステータスの蓋然性よりも高い。また、第2ステータスに応じた移動制御は、第1ステータスに応じた移動制御よりも移動距離の増長を抑制する。これらのため、情報処理装置200は、運搬移動機800又は900の利用効率の低下を抑制しながら、運搬移動機800又は900を運搬の開始位置まで移動させるのに要する所要時間の増長を抑制できる。
本実施例において、運搬移動機800又は900の利用効率は、運搬移動機800又は900の広告効率を含み、広告効率は、例えば、1日といった予め定められた期間において、機体に広告が表示された運搬移動機800又は900が循環経路を移動した時間の総和で表される。しかし、これに限定される訳では無く、運搬移動機800又は900の利用効率は、例えば、運搬効率を含み、運搬効率は、予め定められた期間において、運搬移動機800又は900が注文の対象と異なる対象を運搬するために循環経路を移動した時間の総和で表されても良い。また、運搬効率は、予め定められた期間において、注文の対象と異なる対象を運搬移動機800又は900が運搬した回数、又は、運搬された注文の対象と異なる対象の数で表されても良い。注文の対象と異なる対象は、例えば、定期購入される商品であっても良いし、広告される商品の試供品又は見本であっても良い。また、注文の対象と異なる対象は、循環経路に沿って運搬移動機800又は900と共に移動する人物の荷物であっても良いし、運搬移動機800又は900が乗車スペース又は座席を備える場合には、当該人物であっても良い。
またこれらの構成によれば、ステータスに応じた移動制御は、運搬移動機800又は900の移動速度を制御する速度制御と、運搬移動機800又は900の移動方向を制御する方向制御と、運搬移動機800又は900の移動経路が設定されている場合に、設定されている移動経路を再設定する経路制御と、を含む。
さらにこれらの構成によれば、速度制御は、運搬移動機800又は900が運搬の開始位置から遠ざかっている場合に、運搬移動機800又は900の移動速度を、基準の速度よりも遅い低速度にさせる低速度制御と、運搬移動機800又は900が開始位置に近づいている場合に、運搬移動機800又は900の移動速度を、基準の速度よりも速い高速度にさせる高速度制御と、を含む。また、方向制御は、運搬移動機800又は900が運搬の開始位置から遠ざかっている場合に、運搬移動機800又は900の移動方向を、運搬移動機800又は900が開始位置に近づく方向に変更させる制御を含む。さらに、経路制御は、経路制御が行われない場合に運搬移動機800又は900の位置から運搬の開始位置まで、移動経路が設定されている運搬移動機800又は900が移動経路に沿って移動する距離よりも短い距離の第1経路を運搬移動機800又は900に移動させる第1経路制御を含む。これらのため、情報処理装置200は、運搬移動機800又は900を運搬の開始位置まで移動させるのに要する所要時間の増長を確実に抑制できる。
またこれらの構成によれば、経路制御は、第1経路よりも距離が短いが、エネルギーの消費量が多く、かつ、安全性が低い第2経路を運搬移動機800又は900に移動させる第2経路制御をさらに含む。このため、情報処理装置200は、第2経路よりも距離が長いが、エネルギーの消費量が少なく、かつ、安全性が高い第1経路を運搬移動機800又は900に移動させる第1経路制御、又は、第2経路を移動させる第2経路制御を、注文のステータスに応じて行う。よって、情報処理装置200は、運搬移動機800又は900を運搬の開始位置まで移動させるのに要する所要時間を短縮しながら、エネルギーの消費量の増加及び安全性の低下を抑制できる。
さらにこれらの構成によれば、運搬移動機800又は900は、循環移動する。また、方向制御は、循環移動する運搬移動機800又は900が運搬の開始位置から遠ざかる場合に、運搬移動機800又は900の移動方向を反転させる反転制御を含む。さらに、第1経路及び第2経路の距離は、運搬移動機800又は900が循環移動する場合に、運搬移動機800又は900の位置から運搬の開始位置まで運搬移動機800又は900が移動する距離よりも短い。これらのため、情報処理装置200は、運搬移動機800又は900を運搬の開始位置まで移動させるのに要する所要時間を確実に短縮できる。
またこれらの構成によれば、情報処理装置200の制御部250は、取得されたステータスが第1ステータスであり、かつ、運搬移動機800又は900が運搬の開始位置から遠ざかっていると判別すると、低速度制御を移動制御として行う。また、制御部250は、取得されたステータスが第2ステータスであり、かつ、運搬移動機800又は900が開始位置から遠ざかっていると判別すると、反転制御を移動制御として行うことで、第1ステータスに応じた移動制御よりも移動距離を短縮させる。さらにこれらの構成によれば、完了ステータスに遷移する前のステータスには、第3ステータスがさらに存在し、第3ステータスは、完了ステータスに遷移する蓋然性が、第2ステータスの蓋然性よりも高い。また、制御部250は、取得された注文のステータスが第3ステータスであると、高速度制御を移動制御として行うことで、第2ステータスに応じた移動制御よりも移動時間を短縮させる。
またこれらの構成によれば、完了ステータスに遷移する前のステータスには、第4ステータスがさらに存在し、第4ステータスは、完了ステータスに遷移する蓋然性が、第3ステータスの蓋然性よりも高い。また、情報処理装置200の制御部250は、取得された注文のステータスが第4ステータスであると、第1経路制御を移動制御として行うことで、第3ステータスに応じた高速度制御よりも移動距離を短縮させる。さらにこれらの構成によれば、制御部250は、取得された注文のステータスが、完了ステータスである第5ステータスであると、第2経路制御を移動制御として行うことで、第4ステータスに応じた第1経路制御よりも移動距離を短縮させる。これらのため、情報処理装置200は、運搬移動機800又は900の利用効率の低下を抑制しながら、運搬移動機800又は900を運搬の開始位置まで移動させるのに要する所要時間を短縮できる。
またこれらの構成によれば、情報処理装置200は、移動機800及び900である複数の移動機から注文の対象を運搬させる運搬移動機800又は900を選択する選択部240をさらに備える。このため、情報処理装置200は、注文の対象とされた商品の運搬効率を向上できる。注文の対象とされた商品の運搬効率は、予め定められた期間において、運搬移動機800又は900が当該商品を運搬するために移動した時間の総和で表されても良い。また、運搬効率は、予め定められた期間において、運搬移動機800又は900が注文の対象を運搬した回数、又は、運搬移動機800又は900が運搬した注文の対象の数で表されても良い。
<実施例の変形例1>
本実施例では、端末装置100を使用するユーザは、ショッピングカートに商品を入れた後に、ショッピングカートに入れた商品と異なる商品の検索結果を視認したと説明した。また、本実施例では、検索結果を視認したユーザは、購入を希望する商品を見つけられなかったため、カートに入れた商品のみを購入するために購入操作を行ったと説明した。
しかし、これに限定される訳では無く、本変形例では、検索結果を視認しても購入を希望する商品を見つけられなかったユーザが、販売アプリの実行を終了させるための終了操作を行った場合を具体例として挙げて説明を行う。
本変形例において、端末装置100のCPU101は、図3のステップS07で検索結果画面を表示させた後に、入力装置105cから出力される信号に基づいて、商品選択操作が行われなかったと判別すると(ステップS08;No)、終了操作が行われたと判別する(ステップS13;Yes)。その後、CPU101は、端末装置100のユーザの注文を取り消すことを求める注文取消要求を、情報処理装置200を宛先としてデータ通信回路104aに出力した後に(ステップS17)、注文処理の実行を終了する。
本変形例において、情報処理装置200は、図6のステップS30で、検索結果を端末装置100へ送信した後に、ステップS31及びS32の処理を実行する(ステップS31及びS32)。その後、情報処理装置200は、ステップS29に戻り、データが受信されるまでスリープする。
情報処理装置200のデータ通信回路204aが、図3のステップS17で出力された注文取消要求を受信すると、取得部210は、スリープから復帰し、受信されたデータをデータ通信回路204aから取得する。次に、取得部210は、取得されたデータが、検索要求、詳細送信要求、検討報告、及び、注文完了要求ではないため、注文取消要求であると判別する(ステップS29;No、ステップS33;No、ステップS37;No、及び、ステップS40;No)。その後、更新部230は、端末装置100を使用するユーザの注文を取り消すため、ステップS44の処理を実行する(ステップS44)。これにより、図10の注文テーブルにおいて、当該ユーザのユーザIDに対応付けられたステータスIDが、注文が受け付けられていないことを表す文字列「NULL」に更新されるが、当該ユーザIDに対応付けられた商品IDが文字列「NULL」で更新されずに維持される。すなわち、当該商品IDで識別される商品が、ショッピングカートに入れられたままの状態で維持される。
本変形例では、端末装置100のユーザが、販売アプリの実行を終了させた後、ショッピングカートに入れられたままの商品のみを購入することを決断し、販売アプリを起動させる操作を端末装置100に行った場合を具体例として挙げてさらに説明する。
端末装置100の入力装置105cがユーザの操作に応じた信号を出力すると、端末装置100のCPU101は、販売アプリで規定された、図3の注文処理の実行を開始する。その後、CPU101は、ステップS01からS03の処理を実行することで(ステップS01からS03)、端末装置100のユーザのショッピングカートに入れられたままの商品を識別する商品IDを含むカート情報を取得する。
次に、端末装置100のCPU101は、フラッシュメモリ103bから検索画面を取得してから、カート情報に基づいて、ショッピングカートに商品が入れられていると判別し、購入操作に用いられるオブジェクト等を有効にする設定を検索画面に行う。その後、CPU101は、設定が行われた検索画面を表示装置105bに表示させる(ステップS04)。
本実施例では、検索画面を視認したユーザは、ショッピングカートに入れられたままの商品を購入するため、購入操作を端末装置100に行う。このため、端末装置100のCPU101は、入力装置105cから出力された信号に基づいて、購入操作が行われたと判別する(ステップS05;No、ステップS13;No、ステップS14;No、及び、ステップS15)。その後、CPU101は、注文完了要求を、情報処理装置200を宛先としてデータ通信回路104aへ出力した後に(ステップS16)、注文処理の実行を終了する。
情報処理装置200のデータ通信回路204aが、図3のステップS01で出力された注文受付要求を受信すると、情報処理装置200のCPU201は、図5及び図6の販売処理の実行を開始する。その後、ステップS21及びS22の処理が実行された後に(ステップS21及びS22)、更新部230は、図10の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと商品IDが対応付けられているため、当該ユーザのカートに商品が入れられていると判別する(ステップS23;Yes)。
次に、情報処理装置200の更新部230は、注文テーブルにおいて、当該ユーザのユーザIDと対応付けられ、かつ、注文が受け付けられていないことを表す文字列「NULL」を、ショッピングカートに入れられた商品の購入が検討されている状態である検討ステータスのステータスID「S4」に更新する(ステップS24)。これにより、更新部230は、注文受付要求に従って注文を受け付け、受け付けられた注文のステータスを検討ステータスとする。
その後、情報処理装置200は、ステップS26からS29、S33、S37、及び、S40からS42の処理を実行する(ステップS26からS29、S33、S37、及び、S40からS42)。これにより、情報処理装置200は、ショッピングカートに入れられた商品の購入代金が決済されている状態である決済ステータスに注文のステータスを遷移させる。
その後、情報処理装置200は、ステップS43及びS45の処理を実行することで(ステップS43及びS45)、注文のステータスを完了ステータスに遷移させてから、販売処理の実行を終了する。
<実施例の変形例2>
本実施例では、端末装置100を使用するユーザが、ショッピングカートに商品を入れた後に、ショッピングカートに入れた商品と異なる商品の検索結果を表示させるため、キーワード入力操作を行ったと説明した。
しかし、これに限定される訳では無く、本変形例では、ユーザがショッピングカートに商品を入れた後に、ショッピングカートに入れた商品と異なる商品を選択する商品選択操作を行う場合を具体例として挙げて説明する。
本変形例において、端末装置100は、図3のステップS08で、ショッピングカートに入れた商品と異なる商品を選択する商品選択操作が行われたと判別すると(ステップS08;Yes)、選択された商品の詳細情報を送信するように求める詳細送信要求を、情報処理装置200を宛先として出力する(ステップS09)。
本変形例において、情報処理装置200の取得部210は、端末装置100から受信されたデータが詳細送信要求であると判別すると(図6のステップS33;Yes)、選択された商品の詳細情報を、端末装置100を宛先として出力する(ステップS34)。次に、情報処理装置200の更新部230は、ショッピングカートに商品が入っていると判別し(ステップS35;Yes)、注文のステータスを商品選択ステータスに遷移させず、検討ステータスのまま維持する。その後、情報処理装置200は、ステップS29に戻り上記処理を繰り返す。
<実施例の変形例3>
本実施例では、注文のステータスは、サービス選択ステータスとなった後、検索ステータス、商品選択ステータス、検討ステータス、決済ステータス、及び、完了ステータスという5つのステータスに、順番に遷移すると説明した。
しかし、これに限定される訳では無く、注文のステータスは、サービス選択ステータスとなった後、商品が検索された状態である検索ステータスと、詳細情報の確認のため、検索された商品が選択されている状態である商品選択ステータスと、に順に遷移することをm回繰り返してから(但し、mは2以上の自然数)、検討ステータス、決済ステータス、及び、完了ステータスの順に遷移しても良い。
<実施例の変形例4>
本実施例では、完了ステータスに遷移する前のステータスには、サービス選択ステータス、検索ステータス、商品選択ステータス、検討ステータス、及び、決済ステータスという5つのステータスが存在すると説明したが、これに限定される訳では無い。完了ステータスに遷移する前のステータスには、これら5つのステータス以外の1又は複数のステータスがさらに存在しても良い。また、完了ステータスに遷移する前のステータスには、これら5つのステータスのいずれか1つ以上、かつ、4つ以下のみが存在しても良い。さらに、完了ステータスに遷移する前のステータスには、これら5つのステータスのいずれか1つ以上、かつ、4つ以下と、これら5つのステータス以外の1又は複数のステータスと、を含んでも良い。
<実施例の変形例5>
本実施例では、サービス選択ステータスが第1ステータスと称され、検索ステータス及び商品選択ステータスが第2ステータスと称され、検討ステータスが第3ステータスと称され、決済ステータスが第4ステータスと称され、かつ、完了ステータスが第5ステータスと称されると説明した。
しかし、これに限定される訳では無く、サービス選択ステータスよりも後であり、完了ステータスよりも前である1又は複数のステータス(すなわち、検索ステータス、商品選択ステータス、検討ステータス、及び、決済ステータス)のいずれか1つ以上が第1ステータスと称されても良い。
また、第1ステータスよりも後であり、かつ、完了ステータスよりも前である1又は複数のステータスのいずれか1つ以上が第2ステータスと称されても良い。すなわち、検索ステータスが第1ステータスと称される場合には、商品選択ステータス、検討ステータス、及び、決済ステータスのいずれか1つ以上が第2ステータスと称されても良い。
さらに、第2ステータスよりも後であり、かつ、完了ステータスよりも前である1又は複数のステータスのいずれか1つ以上が第3ステータスと称されても良い。またさらに、第3ステータスよりも後であり、かつ、完了ステータスよりも前である1又は複数のステータスのいずれか1つ以上が第4ステータスと称されても良い。
また、第5ステータスは、完了ステータスに限定される訳では無く、第4ステータスよりも後であり、かつ、完了ステータスよりも前である1又は複数のステータスのいずれか1つ以上が第5ステータスと称されても良い。
<実施例の変形例6>
本実施例では、移動制御は、運搬移動機800又は900の移動速度を制御する速度制御と、運搬移動機800又は900の移動方向を制御する方向制御と、運搬移動機800又は900に設定されている移動経路を再設定する経路制御と、の全てを含むと説明した。しかし、これに限定される訳では無く、移動制御は、速度制御と、方向制御と、経路制御と、のいずれか1つ又は2つであっても良い。
また、本実施例では、速度制御は、第1ステータスに応じた速度制御と、第3ステータスに応じた速度制御と、の双方を含むと説明したが、これに限定される訳では無く、第1ステータスに応じた速度制御と、第3ステータスに応じた速度制御と、の一方のみを含んでも良い。さらに、第1ステータスに応じた速度制御は、運搬移動機800又は900が運搬の開始位置から遠ざかっている場合に、運搬移動機800又は900の移動速度を、基準の速度よりも遅い速度にさせる低速度制御と、運搬移動機800又は900が運搬の開始位置から遠ざかっていない場合に、運搬移動機800又は900の移動速度を、基準の速度にさせる基準速度制御との双方を含むと説明したが、これに限定される訳では無く、運搬移動機800又は900が運搬の開始位置から遠ざかっている場合に行われる低速度制御のみを含んでも良い。
また本実施例では、経路制御は、第4ステータスに応じた第1経路制御と、第5ステータスに応じた第2経路制御と、の双方を含むと説明したが、これに限定される訳では無く、第4ステータスに応じた第1経路制御のみを含んでも良い。
<実施例の変形例7>
本実施例では、第2経路制御は、第1経路よりも距離が短いが、エネルギーの消費量が多く、かつ、安全性が低い経路であると説明した。しかし、これに限定される訳では無く、第2経路制御は、第1経路よりも距離が短いが、エネルギーの消費量が多い経路であっても良い。
この場合、情報処理装置200の制御部250は、図11のステップS75において、総距離に基づく第1の評価値の重み付けに用いられる第1の重付係数、安全性に基づく第2の評価値の重み付けに用いられる第2の重付係数、及び、エネルギー消費量に基づく第3の評価値の重み付けに用いられる第3の重付係数を、それぞれ第1から第3の初期値で初期化する。その後、制御部250は、第1の重付係数と、第2の重付係数と、を補正しないが、第3の重付係数を補正前よりも小さい値に補正する。
次に、情報処理装置200の制御部250は、第1経路よりも距離が短いM個の全体経路のそれぞれについて、補正されていない第1の重付係数及び第2の重付係数と、補正された第3の重付係数と、を用いて第1から第3の評価値をそれぞれ重み付けた値の総和を総合評価値として算出する。その後、制御部250は、M個の総合評価値の内で最も高い総合評価値が算出された全体経路を、移動機800又は900に移動させる第2経路に決定する。
また、第2経路制御は、第1経路よりも距離が短いが、安全性が低い経路であっても良い。この場合、情報処理装置200の制御部250は、安全性に基づく第2の評価値の重み付けに用いられる初期化された第2の重付係数を、補正前よりも小さい値に補正する。これに対して、制御部250は、総距離に基づく第1の評価値の重み付けに用いられる初期化された第1の重付係数、及び、エネルギー消費量に基づく第3の評価値の重み付けに用いられる初期化された第3の重付係数を補正しない。
次に、情報処理装置200の制御部250は、第1経路よりも距離が短いM個の全体経路のそれぞれについて、補正されていない第1の重付係数及び第3の重付係数と、補正された第2の重付係数と、を用いて第1から第3の評価値をそれぞれ重み付けた値の総和を総合評価値として算出する。その後、制御部250は、総合評価値に基づいて、M個の全体経路から第2経路を決定する。
<実施例の変形例8>
本実施例では、移動機800及び900は、移動経路が循環経路に設定された場合に、当該移動経路を移動することで循環移動すると説明したが、これに限定される訳では無い。移動機800及び900は、移動経路が設定されていない場合に、循環移動しても良い。
このために、移動機800及び900は、移動経路が設定されていない場合に、下記の第1処理と、下記の第2処理と、を繰り返すことで、循環移動すれば良い。第1処理とは、移動機800及び900が移動可能な方向であり、かつ、移動の開始位置から遠ざかる複数の方向から、例えば、ソフトウェア乱数又は予め定められた規則に基づいて選択された1つの方向へ向かって、予め定められた距離を移動することを、予め定められた時間に亘り繰り返す処理である。また、第2処理は、移動機800及び900が移動可能な方向であり、かつ、当該移動の開始位置に近づく複数の方向から、例えば、ソフトウェア乱数又は予め定められた規則に基づいて選択された1つの方向へ向かって、予め定められた距離を移動することを、当該移動の開始位置に到着するまで繰り返す処理である。
この場合、情報処理装置200の制御部250は、第4ステータスに応じた移動制御として、経路制御が行われない場合に運搬移動機800又は900の位置から運搬の開始位置まで、移動経路が設定されていない運搬移動機800又は900が移動すると予測される予測距離よりも短い距離の第1経路を決定し、運搬移動機800又は900の未設定の移動経路を、決定された第1経路に設定する第1経路制御を実行すれば良い。
予測距離を算出するために、情報処理装置200の制御部250は、例えば、確率モデルとソフトウェア乱数とを用いたシミュレーションを複数回実行することにより、運搬移動機800又は900が移動する距離を予め定められた回数算出し、算出された複数の距離の平均値を予測距離とすれば良い。また、これに限定される訳では無く、制御部250は、運搬移動機800又は900が移動する距離の期待値を、例えば、確率モデルを用いて理論的に算出し、算出された期待値を予測距離としても良い。
また、情報処理装置200の制御部250は、第5ステータスに応じた移動制御として、運搬移動機800又は900の未設定の移動経路を第2経路に設定する、又は、第1経路に設定された移動経路を第2経路に再設定する第2経路制御を実行すれば良い。
また、移動機800及び900は、移動経路が設定されていないが、第1目的地と第2目的地とが設定されている場合、下記の第3処理と、下記の第4処理と、を繰り返すことで、第1目的地と第2目的地とを循環移動しても良い。第3処理とは、移動機800及び900が移動可能な方向であり、かつ、第1目的地に近づく複数の方向から、例えば、ソフトウェア乱数又は予め定められた規則に基づいて選択された1つの方向へ向かって、予め定められた距離を移動することを、第1目的地に到着するまで繰り返す処理である。また、第4処理は、移動機800及び900が移動可能な方向であり、かつ、第2目的地に近づく複数の方向から、例えば、ソフトウェア乱数又は予め定められた規則に基づいて選択された1つの方向へ向かって、予め定められた距離を移動することを、第2目的地に到着するまで繰り返す処理である。
さらに、移動機800及び900は、循環移動しなくとも良く、例えば、設定された目的地まで移動経路を設定せずに移動しても良い。この場合、移動機800及び900は、移動機800及び900が移動可能な方向であり、かつ、目的地に近づく複数の方向から、例えば、ソフトウェア乱数又は予め定められた規則に基づいて選択された1つの方向へ向かって、予め定められた距離を移動することを、目的地に到着するまで繰り返しても良い。
<実施例の変形例9>
本実施例では、移動機800及び900は、循環移動すると説明した。循環移動は、予め定められた移動の開始位置から出発し、予め定められた複数の通過位置を、予め定められた順に通過し、当該移動の開始位置に到着する巡回移動を繰り返すことを含んでも良い。この場合、予め定められた複数の通過位置を、予め定められた順に通過するための移動方向が順方向であり、予め定められた順の逆に通過するための移動方向が逆方向である。
また、循環移動は、予め定められた1つの経路を、当該経路の開始位置から当該経路の終了位置まで移動する往路移動をした後、当該経路を、当該終了位置から当該開始位置まで移動する復路移動をすることを繰り返す往復移動を含んでも良い。
さらに、本実施例では、循環経路の形状は、環状であると説明した。環状は、例えば、円形状、及び、楕円形状を含むが、循環経路の形状は、これらに限定される訳では無い。循環経路の形状は、例えば、8の字形状を含む、経路が交差している形状であっても良いし、例えば、三角形状を含む、多角形状であっても良い。
<実施例の変形例10>
本実施例では、情報処理装置200は、循環移動している運搬移動機800又は900に対して、注文のステータスに応じた移動制御を行うと説明した。しかし、これに限定される訳では無く、商品の運搬を終えて運搬の開始位置、又は、循環経路上の位置まで移動している運搬移動機800又は900に対して、注文のステータスに応じた移動制御を行っても良い。
また、情報処理装置200は、運搬の開始位置と異なる位置で停車、駐車、又は、往復移動している運搬移動機800又は900に対して、注文のステータスに応じた移動制御を行っても良い。
<実施例の変形例11>
本実施例では、商品の販売及び運搬を行う販売サービスの提供に用いられる販売アプリが実行されると説明した。また、本実施例において、注文は、商品の販売及び運搬を求める依頼であり、かつ、注文の対象は、販売及び運搬が求められた商品であると説明した。
しかし、本変形例では、例えば、ユーザの運搬を行う乗車サービスの提供に用いられる乗車アプリが実行される場合を具体例として挙げて説明する。また、本変形例では、注文は、ユーザを運搬する移動機800又は900の配車を求める依頼であり、かつ、注文の対象は、ユーザ自身である場合を具体例として挙げて説明する。
本変形例では、ユーザの運搬は、有償で行われるため、運搬移動機800又は900は、無人タクシーとして機能すると説明するが、これに限定される訳では無い。ユーザの運搬は、無償で行われるため、運搬移動機800又は900は、無料無人送迎車として機能しても良い。
本変形例に係る端末装置100を使用するユーザは、乗車サービスの提供に用いられる乗車アプリを起動させる操作を端末装置100に行う。このため、端末装置100は、乗車アプリの実行を開始することで、乗車アプリによって規定された、不図示の注文処理の実行を開始する。
注文処理の実行を開始すると、端末装置100は、位置計測回路106から出力される信号に基づいて、端末装置100の位置を緯度、経度、及び、高度で表す位置情報を取得する。次に、端末装置100は、図3のステップS01と同様の処理を実行することで、乗車サービスのサービスIDと、端末装置100の位置情報と、を含み、かつ、注文を受け付けて乗車サービスを提供するように求める注文受付要求を情報処理装置200へ送信する。その後、端末装置100は、ステップS02及びS03と同様の処理を実行することで、情報処理装置200によって注文が受け付けられたと判別すると、情報処理装置200からカート情報を受信する。
本変形例において、端末装置100を使用するユーザのショッピングカートには、当該ユーザによって選択された運搬先へ到る運搬経路の候補が入れられる。このため、本変形例では、ユーザのショッピングカートに運搬経路の候補が入っているとは、運搬経路の候補を表す情報が当該ユーザのユーザIDと対応付けられて情報処理装置200に記憶されていることを意味する。このため、当該ユーザのショッピングカートに運搬経路の候補が入っている場合に、当該ユーザのカート情報には、当該ユーザのユーザIDと情報処理装置200が対応付けて記憶している運搬経路の候補を表す情報が含まれている。これに対して、ショッピングカートが空であり、運搬経路の候補が入っていない場合には、カート情報には、運搬経路の候補を表す情報が含まれていない。
本変形例では、説明を簡単にするため、端末装置100のユーザが初めて配車アプリを実行させたため、ショッピングカートが空である場合を具体例として挙げて説明する。このため、端末装置100は、運搬先の検索に用いられる検索画面をフラッシュメモリ103bから取得してから、ショッピングカートが空であると判別すると、ショッピングカートに入っている運搬経路の候補に、運搬経路を決定するための操作(以下、決定操作という)に用いられるオブジェクトを無効にする設定を検索画面に行う。これに対して、端末装置100は、運搬先の検索に用いられるキーワードを入力するためのキーワード入力操作に用いられるオブジェクトを有効にする設定を検索画面に行う。その後、端末装置100は、ステップS04と同様の処理を実行することで、設定がされた検索画面を表示する。
次に、本変形例では、運搬先を検索するためにキーワード入力操作が行われた場合を具体例として挙げて説明する。このため、端末装置100は、ステップS05と同様の処理を実行することで、キーワード入力操作が行われたと判別すると、ステップS06と同様の処理を実行することで、運搬先の検索に用いられるキーワードを取得する。その後、端末装置100は、取得されたキーワードを表す情報を含み、かつ、当該キーワードに基づく運搬先の検索結果を表す情報の送信を求める検索要求を生成する。その後、端末装置100は、生成された検索要求を、ステップS06と同様に、情報処理装置200へ送信する。
端末装置100は、検索結果を表す情報を情報処理装置200から受信すると、検索結果画面をフラッシュメモリ103bから取得し、ショッピングカートが空であるため、決定操作に用いられるオブジェクトを無効にする設定を検索結果画面に行う。これに対して、端末装置100は、検索された1又は複数の運搬先の1つを選択し、かつ、選択された運搬先に到る運搬経路の候補が記載された詳細画面を表示させる操作(以下、運搬先選択操作という)に用いられるオブジェクトを有効にする設定を検索結果画面に行う。その後、端末装置100は、ステップS07と同様の処理を実行することで、設定がされた検索結果画面を表示させる。
次に、本変形例では、運搬先選択操作が行われた場合を具体例として挙げて説明する。このため、端末装置100は、ステップS08と同様の処理を実行することで、運搬先選択操作が行われたと判別すると、入力装置105cから出力された信号に基づいて、選択された運搬先を特定する。その後、端末装置100は、特定された運搬先を表す情報を含み、かつ、運搬先に到る運搬経路の候補を表す情報の送信を求める経路送信要求を生成する。その後、端末装置100は、生成された経路送信要求を、ステップS09と同様に、情報処理装置200へ送信する。
端末装置100は、情報処理装置200から運搬経路の候補を表す情報を1又は複数受信すると、ステップS10と同様に、詳細画面をフラッシュメモリ103bから取得する。次に、端末装置100は、ショッピングカートが空であると判別し、決定操作に用いられるオブジェクトを無効にする設定を詳細画面に行う。これに対して、端末装置100は、1又は複数の運搬経路の候補から1つを選択し、選択された運搬経路の候補をショッピングカートに入れるための経路選択操作に用いられるオブジェクトを有効にする設定を詳細画面に行う。次に、端末装置100は、設定がされた詳細画面に、取得された1又は複数の情報でそれぞれ表される運搬経路の候補を追加する。その後、端末装置100は、1又は複数の運搬経路の候補が追加された詳細画面を表示させる。
次に、本変形例では、経路選択操作が行われた場合を具体例として挙げて説明する。このため、端末装置100は、ステップS11と同様の処理を実行することで、経路選択操作が行われたと判別すると、カート情報に、選択された運搬経路の候補を表す情報を追加する。その後、端末装置100は、ステップS12と同様に、カート情報に追加された運搬経路の候補を表す情報を含み、当該運搬経路の候補を運搬経路に決定することが検討されていることを知らせる検討報告を情報処理装置200へ送信する。
次に、端末装置100は、ステップS10と同様の処理を実行することで、ショッピングカートに運搬経路の候補が入っていると判別する。その後、端末装置100は、ショッピングカートの運搬経路の候補を運搬経路に決定するための決定操作に用いられるオブジェクトを有効にする設定を詳細画面に行う。
次に、本変形例では、決定操作が行われる場合を具体例として挙げて説明する。このため、端末装置100は、ステップS11及びS13からS16と同様の処理を実行することで、決定操作がされたと判別すると、注文完了要求を情報処理装置200へ送信した後に、注文処理の実行を終了する。
本変形例に係る情報処理装置200は、図9のユーザテーブルに代えて、不図示のユーザテーブルを予め記憶している。不図示のユーザテーブルの各レコードには、ユーザを識別するユーザIDと、当該ユーザのパスワードを表す情報、及び、当該ユーザの決済情報と、が対応付けられて予め保存されているが、運搬先を表す情報が予め保存されていない。運搬先を表す情報がユーザテーブルに予め保存されていないのは、本変形例において、運搬先は、注文処理が実行される前にユーザによって指定されるのではなく、注文処理の実行中に指定されるからである。
また、情報処理装置200の情報記憶部290は、図10の注文テーブルに代えて、不図示の注文テーブルを記憶している。不図示の注文テーブルの各レコードには、本実施例と同様に、注文を行うユーザのユーザIDが予め保存されている。また、注文が受け付けられたユーザのユーザIDが保存されたレコードには、当該ユーザIDと対応付けられて、当該注文のステータスを識別するステータスIDと、当該ユーザのショッピングカートに入れられた運搬経路の候補を表す情報と、が保存される。また、当該ユーザIDが保存されたレコードには、当該ユーザIDと対応付けられて、当該ユーザを運搬させる運搬移動機として選択された移動機800又は900の機体IDと、当該ステータスに応じた移動制御が未実行である否かを表す未実行フラグと、が保存される。これに対して、注文が受け付けられていないユーザのユーザIDが保存されたレコードには、当該ユーザIDと対応付けられて文字列「NULL」が保存される。
情報処理装置200は、端末装置100から注文受付要求を受信すると、受信された注文受付要求に含まれるサービスIDが乗車サービスのサービスIDであると判別する。次に、情報処理装置200は、乗車サービスを提供するために、不図示の配車処理を実行する。
情報処理装置200は、配車処理の実行を開始すると、図5のステップS21及びS22と同様の処理を実行することで、注文受付要求を取得し、注文受付要求に含まれる認証情報に基づいて端末装置100のユーザを認証する。
次に、情報処理装置200の更新部230は、不図示の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと、運搬経路の候補を表す情報と、が対応付けられているか否かに基づいて、当該ユーザのショッピングカートに運搬経路の候補が入れられているか否かを判別する。
本変形例では、不図示の注文処理を説明するために用いた具体例と同じ例を挙げて、配車処理の説明を行う。このため、情報処理装置200は、ステップS23と同様の処理を行うことで、ショッピングカートに運搬経路の候補が入っていないと判別する。次に、情報処理装置200の更新部230は、ステップS25と同様の処理を実行することで、不図示の注文テーブルにおいて、端末装置100のユーザを識別するユーザIDと対応付けられた文字列「NULL」を、乗車サービスが選択された状態であるサービス選択ステータスのステータスIDに更新する。尚、情報処理装置200は、ショッピングカートに運搬経路の候補が入っていると判別すると、ステップS24と同様の処理を実行することで、ユーザIDと対応付けられたステータスIDを検討ステータスのステータスIDに更新する。これらのようにして、情報処理装置200は、注文受付要求に従って注文を受け付ける。
その後、情報処理装置200は、ステップS26及びS27と同様の処理を実行することで、受付報告及びカート情報を端末装置100へ送信する。次に、情報処理装置200の取得部210は、注文受付要求から端末装置100の位置情報を取得する。その後、制御部250は、取得された位置情報と、情報記憶部290が予め記憶している移動機800及び900が停車又は駐車可能な位置を表す情報と、に基づいて、端末装置100の位置から最も近く、かつ、移動機800及び900が停車又は駐車可能な位置を特定する。
その後、情報処理装置200の制御部250は、特定された位置を、運搬の開始位置に決定するが、これに限定される訳では無い。制御部250は、端末装置100の位置から予め定められた距離だけ離れた位置よりも端末装置100の位置に近く、かつ、移動機800及び900が停車又は駐車可能な位置を、運搬の開始位置として決定しても良い。
次に、情報処理装置200は、ステップS28と同様の処理を実行することで、移動機800の位置と、移動機900の位置と、運搬の開始位置と、に基づいて、ユーザを運搬させる運搬移動機を選択する。
次に、本変形例では、キーワードに基づく運搬先の検索を求める検索要求が端末装置100から送信される。このため、情報処理装置200は、検索要求を受信すると、ステップS29及びS30と同様の処理を実行する。これにより、情報処理装置200の取得部210は、情報記憶部290が予め記憶する不図示の住所テーブルから、検索要求に含まれるキーワードと対応付けられた住所を表す情報を、運搬先を表す情報として1又は複数検索する。住所テーブルには、複数のレコードが予め保存されており、各レコードには、住所を表す情報と、当該住所又は当該住所にある施設を説明するキーワードと、が予め対応付けられて保存されている。
その後、情報処理装置200の取得部210は、ステップS30と同様の処理を実行することで、検索された1又は複数の運搬先を表す情報を、検索結果を表す情報として、端末装置100を宛先としてデータ通信回路204aへ出力する。次に、情報処理装置200は、ステップS31及びS32と同様の処理を実行することで、注文のステータスを検索ステータスに遷移させる。
次に、本変形例では、検索された1又は複数の運搬先からユーザによって選択された運搬先に到る運搬経路の候補を特定し、特定された運搬経路の候補を表す情報を送信するように求める経路送信要求が端末装置100から送信される。このため、情報処理装置200は、経路送信要求を受信すると、ステップS29、S33、及び、S34と同様の処理を実行する。これにより、情報処理装置200の取得部210は、経路送信要求に含まれる運搬先を表す情報を取得する。次に、制御部250は、図11のステップS71と同様の処理を実行することで、運搬の開始位置から運搬先までの運搬経路の候補を1つ、又は、総距離が短い順に複数特定する。その後、取得部210は、検索された1又は複数の運搬経路の候補をそれぞれ表す情報を、端末装置100を宛先としてデータ通信回路204aへ出力する。次に、情報処理装置200は、ステップS35及びS36と同様の処理を実行することで、注文のステータスを運搬先選択ステータスに遷移させる。
次に、本変形例では、1又は複数の運搬経路の候補からユーザによって選択された1つに運搬経路を決定することが検討されていることを告げる検討報告が、端末装置100から送信される。このため、情報処理装置200は、検討報告を受信すると、ステップS29、S33、S37、及び、S38と同様の処理を実行することで、検討されている運搬経路の候補を表す情報を検討報告から取得する。その後、情報処理装置200の更新部230は、取得された運搬経路の候補を表す情報を、端末装置100のユーザを識別するユーザIDと対応付けて、不図示の注文テーブルへ保存する。これにより、当該運搬経路の候補が当該ユーザのショッピングカートに入れられる。その後、情報処理装置200は、ステップS39と同様の処理を実行することで、注文のステータスを検討ステータスに遷移させる。
次に、本変形例では、注文完了要求が端末装置100から送信される。このため、情報処理装置200は、注文完了要求を受信すると、ステップS29、S33、S37、S40からS42の処理を実行する。これにより、情報処理装置200は、ユーザの運搬代金の決済を求める決済要求を送信した後、注文のステータスを決済ステータスに遷移させる。その後、情報処理装置200は、ステップS43及びS45の処理を実行することで、決済が成功すると、注文のステータスを完了ステータスに遷移させた後、配車処理の実行を終了する。
本変形例では、本実施例と同様に、注文のステータスは、決済ステータスに遷移させられた後でなければ、完了ステータスに遷移させられない。また、注文のステータスは、検討ステータスに遷移させられた後でなければ、決済ステータスに遷移させられない。このため、本実施例と同様に、注文のステータスが、決済ステータスから完了ステータスに遷移させられる蓋然性は、検討ステータスから完了ステータスに遷移させられる蓋然性よりも高い。また、注文のステータスが、決済ステータスから完了ステータスに遷移させられるのに要する遷移時間は、検討ステータスから完了ステータスに遷移させられるのに要する遷移時間よりも短い。
さらに、本変形例では、注文のステータスは、運搬先選択ステータスに遷移させられた後でなければ、検討ステータスに遷移させられず、検索ステータスに遷移させられた後でなければ、運搬先選択ステータスに遷移させられず、かつ、サービス選択ステータスに遷移させられた後でなければ、検索ステータスに遷移させられない。
これらのため、サービス選択ステータスの蓋然性よりも、検索ステータスの蓋然性の方が高い。また、検索ステータスの蓋然性よりも、運搬先選択ステータスから完了ステータスに注文のステータスが遷移させられる蓋然性(以下、運搬先選択ステータスの蓋然性という)の方が高い。さらに、運搬先選択ステータスの蓋然性よりも検討ステータスの蓋然性の方が高い。
同様の理由から、サービス選択ステータスの遷移時間よりも検索ステータスの遷移時間の方が短い。また、検索ステータスの遷移時間よりも、運搬先選択ステータスから完了ステータスに注文のステータスが遷移するのに要する時間(以下、運搬先選択ステータスの遷移時間という)の方が短い。さらに、運搬先選択ステータスの遷移時間よりも検討ステータスの遷移時間の方が短い。
これらのため、本変形例では、本実施例と同様に、注文のステータスに応じて移動機800又は900の移動を制御する不図示の移動制御処理を予め定められた時間間隔で実行する。本変形例では、本実施例と同様に、サービス選択ステータスが第1ステータスと称され、検討ステータスが第3ステータスと称され、決済ステータスが第4ステータスと称され、かつ、完了ステータスが第5ステータスと称される。これに対して、本変形例では、検索ステータス及び運搬先選択ステータスが第2ステータスと称される。
本変形例に係る移動制御処理の実行を開始すると、情報処理装置200は、図11のステップS51からS55と同様の処理を実行することで、不図示の注文テーブルから、注文のステータスIDが保存された1又は複数のレコードを取得する。次に、情報処理装置200は、取得された1又は複数のレコードの内で、未注目のレコードの1つに注目し、注目されたレコードからステータスIDを取得する。
その後、情報処理装置200は、取得されたステータスIDが第1ステータスのステータスIDであると判別すると、ステップS56と同様の処理を実行する。これにより、情報処理装置200は、予め定められた時間を空けて、運搬移動機800又は900の位置情報を2度取得する。
次に、情報処理装置200の取得部210は、情報記憶部290から循環経路を表す情報を取得する。その後、制御部250は、運搬の開始位置と、循環経路を表す情報と、に基づいて、循環経路上で運搬の開始位置の近傍にある位置(以下、近傍位置という)を特定する。近傍位置が特定されるのは、本実施例では、循環経路の開始位置が、端末装置100の位置に基づいて決定された運搬の開始位置とは無関係な位置に予め設定されているからである。
本変形例において、近傍位置は、循環経路上で、移動機800及び900が停車又は駐車可能な位置であり、かつ、運搬の開始位置と最も近い最近位置である。しかし、これに限定される訳では無く、近傍位置は、最近位置から予め定められた距離だけ離れた境界線から最近位置までの循環経路上の位置であり、かつ、移動機800及び900が停車又は駐車可能な位置であれば、どのような位置であっても良い。
その後、情報処理装置200の制御部250は、図5のステップS28と同様の処理を実行することで、1回目に取得された位置情報で表される運搬移動機800又は900の位置から近傍位置までの循環経路上の最短距離を、1回目の距離として算出する。次に、制御部250は、2回目に取得された位置情報で表される位置から近傍位置までの循環経路上の最短距離を、2回目の距離として算出する。その後、制御部250は、図11のステップS57と同様の処理を実行することで、1回目の距離が2回目の距離よりも短いか否かに基づいて、運搬移動機800又は900が近傍位置から遠ざかっているか否かを判別する。
このとき、情報処理装置200は、運搬移動機800又は900が近傍位置から遠ざかっていないと判別すると、運搬移動機800又は900が運搬の開始位置から遠ざかっていないと判別する。次に、情報処理装置200は、ステップS58と同様の処理を実行することで、基準速度制御を行う。これに対して、情報処理装置200は、運搬移動機800又は900が近傍位置から遠ざかっていると判別すると、運搬移動機800又は900が運搬の開始位置から遠ざかっていると判別する。次に、情報処理装置200は、ステップS59と同様の処理を実行することで、低速度制御を行う。基準速度制御又は低速度制御を実行した後に、情報処理装置200は、ステップS51と同様の処理から上記処理を繰り返す。
ステップS55と同様の処理を実行することで、情報処理装置200は、取得されたステータスIDが、第1ステータスのステータスIDでないと判別すると、ステップS60と同様の処理を実行することで、取得されたステータスIDが第2ステータスのステータスIDであるか否かを判別する。このとき、情報処理装置200は、取得されたステータスIDが第2ステータスのステータスIDであると判別すると、ステップS61からS64と同様の処理を実行する。これにより、情報処理装置200は、運搬移動機800又は900が運搬の開始位置から遠ざかっていると判別すると、方向制御及び基準速度制御を行う。その後、情報処理装置200は、ステップS51と同様の処理から上記処理を繰り返す。
ステップS55及びS60と同様の処理を実行することで、情報処理装置200は、取得されたステータスIDが、第1ステータス及び第2ステータスのステータスIDでないと判別すると、ステップS65と同様の処理を実行することで、取得されたステータスIDが第3ステータスのステータスIDであるか否かを判別する。このとき、情報処理装置200は、取得されたステータスIDが第3ステータスのステータスIDであると判別すると、ステップS66及びS67と同様の処理を実行する。これにより、情報処理装置200は、第3ステータスに応じた移動制御である高速度制御が未実行であると判別すると、高速度制御を実行する。このとき、情報処理装置の制御部250は、高速度を表す情報と、近傍位置を表す情報と、を含み、かつ、近傍位置まで高速度で循環経路を移動することを命じる高速度命令を、運搬移動機800又は900を宛先としてデータ通信回路204aへ出力する。その後、情報処理装置200は、ステップS51と同様の処理から上記処理を繰り返す。
ステップS55、S60、及び、S65と同様の処理において、情報処理装置200は、取得されたステータスIDが第1から第3ステータスのステータスIDでないと判別すると、ステップS68と同様の処理を実行することで、取得されたステータスIDが第4ステータスのステータスIDであるか否かを判別する。このとき、情報処理装置200は、取得されたステータスIDが第4ステータスのステータスIDであると判別すると、ステップS69からS72と同様の処理を実行する。これにより、情報処理装置200は、第4ステータスに応じた移動制御である第1経路制御が未実行であると判別すると、第1経路制御を実行する。その後、情報処理装置200は、ステップS51と同様の処理から上記処理を繰り返す。
これに対して、情報処理装置200は、取得されたステータスIDが第4ステータスのステータスIDでないと判別すると、取得されたステータスIDが第5ステータスのステータスIDであると判別した後、ステップS73からS76と同様の処理を実行する。これにより、情報処理装置200は、第5ステータスに応じた移動制御である第2経路制御が未実行であると判別すると、第2経路制御を実行する。その後、情報処理装置200は、ステップS51と同様の処理から上記処理を繰り返す。
ステップS51と同様の処理において、情報処理装置200は、未注目のレコードが無いと判別すると、移動制御処理の実行を終了する。
本変形例に係る移動機800のCPU891は、図17に示すような循環移動処理を実行する。図17の循環移動処理の実行を開始すると、CPU891は、本実施例で説明されたステップS81からS102の処理を実行する(ステップS81からS102)。その後、CPU891は、循環継続フラグの値が値「true」であると判別すると(ステップS102;Yes)、循環経路の移動を継続するために、本実施例で説明されたステップS104からS106の処理を実行する。その後、CPU891は、ステップS85から上記処理を繰り返す。
これに対して、移動機800のCPU891は、循環継続フラグの値が値「false」であると判別すると(ステップS102;No)、移動経路が循環経路に設定されているか否かを判別する(ステップS102a)。このとき、CPU891は、移動経路が循環経路に設定されていると判別すると(ステップS102a;Yes)、高速度命令に含まれる近傍位置を表す情報を取得する。次に、CPU891は、本実施例で説明されたステップS103と同様の処理を実行することで、移動機800が近傍位置に到着したか否かを判別する(ステップS102b)。このとき、CPU891は、移動機800が近傍位置に到着していないと判別すると(ステップS102b;No)、循環経路を近傍位置に近づく方向に移動するために、本実施例で説明されたステップS104からS106の処理を実行する。その後、CPU891は、ステップS85から上記処理を繰り返す。
これに対して、移動機800のCPU891は、運搬の開始位置の近傍にある近傍位置に移動機800が到着したと判別すると(ステップS102b;Yes)、近傍位置で停車又は駐車するための制御信号を駆動回路899に出力した後に(ステップS102c)、ステップS85から上記処理を繰り返す。
ステップS102aにおいて、移動機800のCPU891は、移動経路が循環経路に設定されていないと判別すると(ステップS102a;No)、移動経路が第1経路又は第2経路に再設定されていると判別する。次に、CPU891は、第1経路又は第2経路の終点である運搬の開始位置に到着していないと判別すると(ステップS103;No)、第1経路又は第2経路の移動を継続するために、本実施例で説明されたステップS104からS106の処理を実行する。その後、CPU891は、ステップS85から上記処理を繰り返す。
これに対して、移動機800のCPU891は、運搬の開始位置に到着したと判別すると(ステップS103;Yes)、ステップS107の処理を実行することで到着報告を出力してから、循環移動処理の実行を終了する。
本変形例に係る移動機800は、複数の車輪を備える車台810の上面に、格納庫820ではなく、不図示の座席と、当該座席を覆う不図示の車体と、を備える。車体は、不図示のインストルメントパネルを備え、インストルメントパネルは、座席に着座したユーザが操作可能な位置に情報処理装置890を備えている。また、車体は、不図示の扉を備えており、運搬の開始位置に移動機800が到着すると、ユーザは、扉を開けて移動機800に乗車し、座席に着座してから、情報処理装置890に移動を開始させるための操作を行う。情報処理装置890の入力装置895cが当該操作に応じた信号を出力すると、情報処理装置890のCPU891は、図16に示した運搬処理を実行することで、ユーザを運搬先まで運搬する。
<実施例の変形例12>
本実施例では、情報処理システム1は、無人地上車両である移動機800及び900を備えると説明した。しかし、これに限定される訳ではなく、本変形例に係る情報処理システム1は、図18に示すような、例えば、ドローン等の無人航空機である移動機500と、無人地上車両である移動機900と、を備える。
本変形例において、情報処理装置200の情報記憶部290は、エッジの始点ノードの緯度、経度、及び、高度と、終点ノードの緯度、経度、及び、高度と、エッジの距離を表す情報と、エッジの混雑度を表す情報と、が予め対応付けられて保存されている不図示の部分経路テーブルを予め記憶している。
本変形例では、混雑度は、移動機500が当該エッジを単位距離だけ飛行する間に、移動機500以外の移動機又は鳥や猫等の動物等との接触を防止するために減速又は飛行高度の変更といった回避動作を行った回数で表されるが、これに限定される訳では無い。また、本変形例では、混雑度は、移動機500の飛行履歴に基づいて算出された単位距離当たりの回避動作の実行回数の実績値の平均値又は最大値であるが、これに限定される訳では無い。
本変形例において、情報処理装置200の制御部250は、図11のステップS71において、移動機500に移動させる第1経路を決定する場合、安全性に基づく第2の評価値を、不図示の部分経路テーブルを用いて算出する。同様に、制御部250は、ステップS75において、移動機500に移動させる第2経路を決定する場合、安全性に基づく第2の評価値を、当該部分経路テーブルを用いて算出する。
これらのために、情報処理装置200の制御部250は、n番目の全体経路に含まれる複数のエッジのそれぞれについて、当該部分経路テーブルから、エッジの始点ノードの緯度、経度、及び、高度と、終点ノードの緯度、経度、及び、高度と、に対応付けられたエッジの距離を表す情報と、エッジの混雑度を表す情報と、を取得する。
その後、情報処理装置200の制御部250は、複数のエッジのそれぞれについて、エッジの混雑度に距離を乗算することで、混雑度を距離で重み付ける。その後、制御部250は、全体経路に含まれる複数のエッジの重み付けられた混雑度の総和を算出し、算出された総和を総距離で除算することで、全体経路の混雑度の平均値を算出する。次に、制御部250は、算出された混雑度の平均値がより小さい程、安全性に基づく第2の評価値をより高い値に算出する。その後、制御部250は、総距離に基づいて算出された第1の評価値、混雑度に基づいて算出された第2の評価値、及び、エネルギー消費量に基づいて算出された第3の評価値に基づいて、第1経路又は第2経路を決定する。
本変形例に係る移動機500は、移動機500の姿勢及び飛行を制御する情報処理装置590と、情報処理装置590の前面から右前方及び左前方、並びに、情報処理装置590の後面から左後方及び右後方にそれぞれ突出したプロペラアーム501及び502、並びに、503及び504と、を備える。また、移動機500は、プロペラアーム501から504の先端にそれぞれ設置されたプロペラ511から514、及び、情報処理装置590の制御に従ってプロペラ511から514を回転させる不図示のモータを備える。プロペラ511から514を回転させる当該モータは、移動機500が備える不図示のバッテリに蓄積された電力を用いて駆動する。
さらに、移動機500の情報処理装置590の下面には、商品を格納する格納庫520が設置されている。移動機500が備える格納庫520の構成及び機能は、移動機800が備える格納庫820の構成及び機能と同様である。
また、移動機500は、情報処理装置590の前面に設けられたLiDARセンサ531と、情報処理装置590の後面に設けられた不図示のLiDARセンサと、を備える。移動機500が備える前面のLiDARセンサ531と後面のLiDARセンサとの構成及び機能は、それぞれ移動機800が備える前面のLiDARセンサ831と後面のLiDARセンサとの構成及び機能と同様である。
また、移動機500は、情報処理装置590の下面から下方に突出しており、情報処理装置590を支持する支持脚560をさらに備えている。
移動機500の情報処理装置590は、ハードウェアである不図示のCPU、RAM、ROM、フラッシュメモリ、データ通信回路、ビデオカード、表示装置、入力装置、位置計測回路、入出力ポート、及び、駆動回路を備える。移動機500の情報処理装置590が備えるこれらのハードウェアの構成及び機能は、図13に示した移動機800の情報処理装置890が備えるハードウェアの構成及び機能と同様である。
移動機500の駆動回路は、プロペラ511から514を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路は、CPUが出力する信号に従って、プロペラ511から514を回転させる不図示のモータを駆動させる。
販売業者の従業員が、移動機500を循環飛行させるための操作を移動機500に行うと、移動機500のCPUは、図14及び図15に示した循環移動処理を実行する。これにより、移動機500は、循環経路を循環飛行し、情報処理装置200から命令を受信すると、受信された命令に従って循環経路、第1経路、又は、第2経路を飛行する。
その後、移動機500のCPUが循環移動処理の実行を終了した後に、移動機500のデータ通信回路が、情報処理装置200から送信された運搬命令を受信すると、移動機500のCPUは、運搬命令に従って商品を運搬するために、不図示の運搬処理を実行する。
運搬処理の実行を開始すると、移動機500のCPUは、図16のステップS111からS114と同様の処理を実行する。これにより、CPUは、運搬命令を取得し、運搬経路を表す情報を運搬命令から取得し、離陸のための制御信号及び運搬経路を基準の移動速度で順行飛行するための制御信号を順に駆動回路へ出力する。駆動回路は、制御信号に従って、プロペラ511から514を回転させるモータを駆動させる。
その後、移動機500のCPUは、運搬先に到着したと判別すると、運搬先に着陸するための制御信号を駆動回路へ出力する。その後、移動機500のCPUは、ステップS115からS117と同様の処理を実行する。これにより、端末装置100のユーザである第1ユーザ、又は、第1ユーザに商品の受け取りを依頼された第2ユーザが移動機500の格納庫520から商品を取り出した後に、移動機500は、運搬先を離陸し、運搬経路を逆行飛行して運搬の開始位置に帰還する。その後、移動機500は、帰還報告を送信してから、運搬処理の実行を終了する。これにより、商品の運搬を終えた移動機500は、図14及び図15に示した循環移動処理の実行を開始することで、循環経路の移動を再開する。
本実施例及び本変形例では、移動機900は、地上走行車両であると説明したが、これに限定される訳ではない。移動機900は、移動機500の構成及び機能と同様の構成及び機能を有する無人航空機であっても良い。
また、本変形例では、移動機500は、無人航空機であると説明したが、これに限定される訳ではなく、無人飛翔体であっても良い。さらに、本変形例では、移動機500は、プロペラ511から514で揚力及び推力を得るドローンであると説明したが、これに限定される訳ではない。移動機500は、翼を備え、翼で揚力を得えても良いし、空気よりも比重の小さい気体で満たされた気嚢を備え、気嚢で揚力を得えても良い。また、移動機500は、ジェットエンジン又はロケットエンジンを備え、ジェットエンジン又はロケットエンジンで推力を得ても良い。
移動機900は、移動機500と同様に、無人飛翔体でも良いし、翼を備え、翼で揚力を得えても良いし、気嚢を備え、気嚢で揚力を得えても良いし、ジェットエンジン又はロケットエンジンを備え、ジェットエンジン又はロケットエンジンで推力を得ても良い。
<実施例の変形例13>
実施例の変形例12では、移動機500は、情報処理装置590の下面に、商品を格納する格納庫520を備えると説明したが、これに限定される訳ではない。本変形例に係る移動機500は、情報処理装置590の下面に、商品を囲持する、図19に示すような第1囲持枠521aと、第2囲持枠521bと、を備える。
移動機500の第1囲持枠521aは、商品を梱包する直方体形状の段ボールの側面の内の1つが有する4辺を囲持し、第2囲持枠521bは、第1囲持枠521aによって囲持される面(以下、第1囲持面という)と対向する側面(以下、第2囲持面という)が有する4辺を囲持する。
また、本変形例に係る移動機500は、商品の第1囲持面及び第2囲持面の法線方向に延設され、第1囲持枠521aと第2囲持枠521bとを吊持し、かつ、第1囲持枠521aと第2囲持枠521bとの移動方向を延設方向にするガイドレール522a及び522bを、情報処理装置590の下面に備える。
さらに、移動機500は、情報処理装置590の制御に従って、第1囲持枠521aと第2囲持枠521bとを互いに近づく方向へ移動させることで、第1囲持枠521aと第2囲持枠521bとに商品を囲持させる不図示のモータを備える。この不図示のモータは、情報処理装置590の制御に従って、第1囲持枠521aと第2囲持枠521bとを互いに遠ざかる方向に移動させることで、囲持された商品を第1囲持枠521aと第2囲持枠521bとに開放させる。
移動機500の不図示の駆動回路は、不図示のCPUが出力する信号に従って、第1囲持枠521aと第2囲持枠521bとを移動させる不図示のモータを駆動させる。
<実施例の変形例14>
本実施例、並びに、本実施例の変形例12及び13では、運搬の開始位置は、倉庫の搬出口の位置であると説明したが、これに限定される訳では無い。また、本実施例、並びに、本実施例の変形例12及び13では、運搬先は、端末装置100を使用するユーザが居住するマンションのエントランスであると説明したが、これに限定される訳では無い。運搬の開始位置、及び、運搬先は、移動機800及び900が停車若しくは駐車可能な位置、又は、移動機500が着陸可能な位置であれば、どのような位置でも良い。
移動機800及び900が停車又は駐車可能な位置は、例えば、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のエントランス、又は、一軒家の玄関先であっても良い。また、移動機800及び900が停車又は駐車可能な位置は、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のロビーであっても良いし、一軒家、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設の庭、駐車場、河原、又は、公園であっても良い。
また、移動機500が着陸できる位置は、移動機800及び900が停車又は駐車できる位置に加え、一軒家、共同住宅、オフィスビル、ホテル、商業施設、又は、公共施設のベランダ、又は、屋上であっても良い。
また、移動機800及び900は、運搬先に到着すると運搬先で停車又は駐車するのではなく、運搬先から予め定められた距離だけ離れた境界線よりも運搬先側の領域を、予め定められた速度以下の速度で循環走行若しくは往復走行しても良い。
さらに、移動機500は、運搬先に到着すると運搬先に着陸するのではなく、運搬先から予め定められた距離だけ離れた境界面よりも運搬先側の空域を、予め定められた速度以下の速度で循環飛行若しくは往復飛行しても良いし、又は、予め定められた範囲内の高度で、当該空域でホバリング飛行しても良い。
<実施例の変形例15>
本実施例では、移動機800及び900は、無人地上車両であると説明した。また、実施例の変形例12及び13では、移動機500は、無人航空機であると説明した。しかし、移動機500、800、及び、900は、必ずしも無人である必要はなく、情報処理装置200による制御を除き、自律して移動する物体であれば、人が乗っていても良い。
<実施例の変形例16>
本実施例では、情報処理装置200の制御部250は、全体経路の幅の平均値がより大きい程、安全性に基づく第2の評価値をより高い値に算出すると説明したが、これに限定される訳では無い。制御部250は、全体経路の幅に基づいていれば、どのような算出方法で第2の評価値を算出しても良く、例えば、全体経路の幅の最小値がより大きい程、安全性に基づく第2の評価値をより高い値に算出しても良い。
<実施例の変形例17>
本実施例では、情報処理装置200の制御部250は、全体経路の幅の平均値がより大きい程、安全性に基づく第2の評価値をより高い値に算出すると説明したが、これに限定される訳では無い。本変形例に係る制御部250は、全体経路の混雑度の平均値がより小さい程、安全性に基づく第2の評価値をより高い値に算出する。
本変形例では、混雑度は、予め定められた面積の路面を通行する人の数で表されるが、これに限定される訳では無く、混雑度は、予め定められた面積の路面を通行する車の数で表されても良い。
このため、本変形例に係る不図示の部分経路テーブルには、始点ノード及び終点ノードの緯度、経度、及び、高度と、例えば、道路又は歩道であるエッジで過去に計測された混雑度を表す情報と、が予め対応付けられている。
本変形例に係る情報処理装置200の制御部250は、安全性に基づく第2の評価値を算出するために、全体経路に含まれるエッジを複数特定する。その後、制御部250は、特定された複数のエッジのそれぞれについて、部分経路テーブルから、エッジの始点ノードの緯度、経度、及び、高度と、終点ノードの緯度、経度、及び、高度と、に対応付けられた混雑度を表す情報と、エッジの距離を表す情報と、を取得する。その後、制御部250は、複数のエッジのそれぞれについて、混雑度に距離を乗算することで、混雑度をエッジの距離で重み付ける。その後、制御部250は、全体経路に含まれる複数のエッジの重み付けられた混雑度の総和を算出し、算出された総和を総距離で除算することで、全体経路の混雑度の平均値を算出する。次に、制御部250は、算出された混雑度の平均値がより小さい程、安全性に基づく第2の評価値をより高い値に算出する。制御部250が、このように第2の評価値を算出するのは、全体経路の混雑度の平均値が小さい程、運搬移動機800又は900が全体経路を移動中に、例えば、人又は車両と接触する蓋然性が低いためである。
本変形例では、情報処理装置200の制御部250は、全体経路の混雑度の平均値がより小さい程、安全性に基づく第2の評価値をより高い値に算出すると説明したが、これに限定される訳では無い。制御部250は、全体経路の混雑度に基づいていれば、どのような算出方法で第2の評価値を算出しても良く、例えば、全体経路の混雑度の最大値がより小さい程、安全性に基づく第2の評価値をより高い値に算出しても良い。
<実施例の変形例18>
本実施例では、方向制御は、運搬移動機800又は900の移動方向を反転させる反転制御であると説明したが、これに限定される訳では無い。方向制御は、運搬移動機800又は900の移動方向を、循環経路の形状に基づく角度だけ変更させる角度制御であっても良い。角度制御は、例えば、運搬移動機800又は900が直角に曲がる曲がり角に位置している場合に、運搬移動機800又は900の移動方向を90度変更させる制御を含む。
<実施例の変形例19>
本実施例では、ユーザのショッピングカートに商品が入っているとは、当該商品の商品IDが当該ユーザのユーザIDと対応付けられて情報処理装置200に記憶されていることであると説明した。しかし、これに限定される訳では無く、端末装置100のユーザのショッピングカートに商品が入っているとは、当該商品の商品IDが当該ユーザのユーザIDと対応付けられて端末装置100に記憶されていることであっても良い。
<実施例の変形例20>
本実施例では、注文の対象とされた商品は1つであり、運搬移動機800は、1つの商品を運搬すると説明したが、これに限定される訳では無い。注文の対象とされる商品は複数であっても良く、運搬移動機800は、格納ボックス821に当該複数の商品を格納して運搬しても良い。
<実施例の変形例21>
本実施例では、端末装置100は、スマートフォンであると説明したが、これに限定される訳ではなく、タブレット型のパーソナルコンピュータ、又は、ノートブック型のパーソナルコンピュータであっても良い。
<実施例の変形例22>
本実施例では、情報処理装置200は、注文のステータスのステータスIDが、第1ステータスのステータスID「S1」であると判別した後(図11のステップS55;Yes)、運搬移動機800又は900が運搬の開始位置から遠ざかっていると判別すると(ステップS57;Yes)、低速度制御を行う(ステップS59)と説明した。これに対して、情報処理装置200は、運搬移動機800又は900が運搬の開始位置から遠ざかっていないと判別すると(ステップS57;No)、基準速度制御を行う(ステップS58)と説明した。
しかし、これに限定される訳では無く、本変形例において、情報処理装置200の取得部210は、注文のステータスのステータスIDが第1ステータスのステータスID「S1」であると判別された後、注文のステータスが第1ステータスから完了ステータスに遷移させられる蓋然性を表す確率を取得する。
本変形例において、第1ステータスの蓋然性を表す確率は、過去に注文のステータスが第1ステータスに遷移させられた回数に対する、過去に注文のステータスが第1ステータスから完了ステータスに遷移させられた回数の割合であるが、これに限定される訳では無い。
また、本変形例において、情報処理装置200の情報記憶部290が予め記憶する不図示のステータステーブルには、第1ステータスのステータスID「S1」と、第1ステータスの蓋然性を表す確率を表す情報と、が予め対応付けられて保存されている。このため、取得部210は、ステータステーブルにおいて、ステータスID「S1」に対応付けられた確率を表す情報を取得する。
また、情報処理装置200の制御部250は、取得された確率が予め定められた第1閾値以上であり、かつ、予め定められた第2閾値よりも小さい場合に、運搬移動機800又は900が運搬の開始位置から遠ざかっていると判別すると(ステップS57;Yes)、低速度制御を行う(ステップS59)。これに対して、制御部250は、取得された確率が予め定められた第1閾値以上であり、かつ、予め定められた第2閾値よりも小さい場合に、運搬移動機800又は900が運搬の開始位置から遠ざかっていないと判別すると(ステップS57;No)、基準速度制御を行う(ステップS58)。
また、情報処理装置200の取得部210は、注文のステータスのステータスIDが第2ステータスのステータスID「S2」又は「S3」であると判別された後、不図示のステータステーブルにおいて、ステータスID「S2」又は「S3」と予め対応付けられている第2ステータスの蓋然性を表す確率を取得する。同様に、情報処理装置200は、注文のステータスのステータスIDが第3ステータスのステータスID「S4」であると判別すると、ステータステーブルにおいて、ステータスID「S4」と予め対応付けられている第3ステータスの蓋然性を表す確率を取得する。さらに、情報処理装置200は、注文のステータスのステータスIDが第4ステータスのステータスID「S5」であると判別すると、ステータステーブルにおいて、ステータスID「S5」と予め対応付けられている第4ステータスの蓋然性を表す確率を取得する。またさらに、情報処理装置200は、注文のステータスのステータスIDが第5ステータスである完了ステータスのステータスID「S6」であると判別すると、ステータステーブルにおいて、ステータスID「S6」と予め対応付けられている確率「100%」を取得する。
また、情報処理装置200の制御部250は、取得された確率が予め定められた第2閾値以上であり、かつ、予め定められた第3閾値よりも小さい場合に、ステップS61からS64の処理を実行することで、方向制御及び基準速度制御を行う。さらに、情報処理装置200は、取得された確率が予め定められた第3閾値以上であり、かつ、予め定められた第4閾値よりも小さい場合に、ステップS66及びS67の処理を実行することで、高速度制御を行う。またさらに、情報処理装置200は、取得された確率が予め定められた第4閾値以上であり、かつ、予め定められた第5閾値よりも小さい場合に、ステップS69からS72の処理を実行することで、第1経路制御を行う。また、情報処理装置200は、取得された確率が予め定められた第5閾値以上である場合に、ステップS73からS76の処理を実行することで、第2経路制御を行う。
尚、本変形例において、第1閾値から第5閾値は、「0%」以上かつ「100%」以下の値であり、第2閾値は第1閾値よりも大きく、第3閾値は第2閾値よりも大きく、第4閾値は第3閾値よりも大きく、かつ、第5閾値は第4閾値よりも大きい。第1閾値から第5閾値の好適な値は、当業者が実験により定めることができる。
<実施例の変形例23>
本実施例では、情報処理装置200は、注文のステータスのステータスIDが、第1ステータスのステータスID「S1」であると判別した後(図11のステップS55;Yes)、ステップS56からS59の処理を実行することで、低速度制御又は基準速度制御を行うと説明した。
しかし、これに限定される訳では無く、本変形例において、情報処理装置200の取得部210は、注文のステータスのステータスIDが第1ステータスのステータスID「S1」であると判別された後、注文のステータスが第1ステータスから完了ステータスに遷移させられるのに要する遷移時間の予測値を表す情報を取得する。
本変形例において、第1ステータスの遷移時間の予測値は、過去に注文のステータスが第1ステータスとなってから完了ステータスに遷移させられるまでに要した時間の平均値であるが、これに限定される訳では無く、中央値であっても良い。本変形例において、情報処理装置200の情報記憶部290が予め記憶する不図示のステータステーブルには、第1ステータスのステータスID「S1」と、第1ステータスの遷移時間の予測値を表す情報と、が予め対応付けられて保存されている。このため、取得部210は、ステータステーブルにおいて、ステータスID「S1」に対応付けられた第1ステータスの遷移時間の予測値を表す情報を取得する。
また、情報処理装置200の制御部250は、取得された情報で表される遷移時間の予測値が、予め定められた第1閾値未満、かつ、第2閾値以上である場合に、ステップS56からS59の処理を実行することで、低速度制御又は基準速度制御を、運搬移動機800又は900の移動制御として行う。
また、情報処理装置200の取得部210は、注文のステータスのステータスIDが第2ステータスのステータスID「S2」又は「S3」であると判別された後、不図示のステータステーブルにおいて、ステータスID「S2」又は「S3」と予め対応付けられている第2ステータスの遷移時間の予測値を表す情報を取得する。同様に、情報処理装置200は、注文のステータスのステータスIDが第3ステータスのステータスID「S4」であると判別すると、ステータステーブルにおいて、ステータスID「S4」と予め対応付けられている第3ステータスの遷移時間の予測値を表す情報を取得する。さらに、情報処理装置200は、注文のステータスのステータスIDが第4ステータスのステータスID「S5」であると判別すると、ステータステーブルにおいて、ステータスID「S5」と予め対応付けられている第4ステータスの遷移時間の予測値を表す情報を取得する。またさらに、情報処理装置200は、注文のステータスのステータスIDが第5ステータスである完了ステータスのステータスID「S6」であると判別すると、ステータステーブルにおいて、ステータスID「S6」と予め対応付けられている遷移時間の予測値「0分」を取得する。
また、情報処理装置200の制御部250は、取得された情報で表される遷移時間の予測値が予め定められた第2閾値未満、かつ、第3閾値以上である場合に、ステップS61からS64の処理を実行する。これにより、制御部250は、方向制御及び基準速度制御を行うことで、ステップS58で実行される基準速度制御、及び、ステップS59で実行される低速度制御よりも、運搬移動機800又は900の位置から運搬の開始位置までの移動距離の増長を抑制させる。
さらに、情報処理装置200は、遷移時間の予測値が予め定められた第3閾値未満、かつ、第4閾値以上である場合に、ステップS66及びS67の処理を実行する。これにより、制御部250は、高速度制御を行うことで、ステップS63で実行される方向制御、及び、ステップS64で実行される基準速度制御よりも、運搬移動機800又は900の位置から運搬が開始される開始位置までの移動時間を短縮させる。
またさらに、情報処理装置200は、遷移時間の予測値が予め定められた第4閾値未満、かつ、第5閾値以上である場合に、ステップS69からS72の処理を実行する。これにより、制御部250は、第1経路制御を行うことで、高速度制御よりも移動距離を短縮させる。また、情報処理装置200は、遷移時間の予測値が予め定められた第5閾値未満である場合に、ステップS73からS76の処理を実行する。これにより、制御部250は、第2経路制御を行うことで、第1経路制御よりも移動距離を短縮させる。
尚、本変形例において、第1閾値から第5閾値は、「0」以上の値であり、第2閾値は第1閾値よりも小さく、第3閾値は第2閾値よりも小さく、第4閾値は第3閾値よりも小さく、かつ、第5閾値は第4閾値よりも小さい。第1閾値から第5閾値の好適な値は、当業者が実験により定めることができる。
<実施例の変形例24>
本実施例では、情報処理装置200は、情報記憶部290を備えると説明したが、これに限定される訳ではない。本変形例に係る情報処理装置200は、情報記憶部290を備えない。本変形例に係る情報処理装置200は、例えば、NAS(Network Attached Storage)であり、かつ、情報記憶部290の機能と同様の機能を有する不図示の情報記憶装置とインターネットINを介して接続されており、情報記憶装置が記憶する情報を用いて、図5及び図6に示した販売処理と、図11に示した移動制御処理と、を実行する。本変形例に係る情報処理システム1は、情報記憶装置を備えても良いし、情報記憶装置を備えなくても良い。
<実施例の変形例25>
実施例では、情報処理システム1は、情報処理装置200を備えると説明した。また、実施例では、情報処理装置200のCPU201は、図5及び図6に示した販売処理と、図11に示した移動制御処理と、を実行することで、図7に示した取得部210、認証部220、更新部230、選択部240、及び、制御部250として機能すると説明した。また、情報処理装置200のハードディスク203bは、情報記憶部290として機能すると説明した。
しかし、これらに限定される訳ではなく、情報処理システム1は、情報処理装置200を備えなくとも良い。この場合、図5及び図6に示した販売処理、並びに、図11に示した移動制御処理は、移動機800が備える情報処理装置890のCPU891によって実行されても良い。このため、移動機800のCPU891が、情報処理装置200の取得部210、認証部220、更新部230、選択部240、及び、制御部250に相当する不図示の機能部として機能しても良い。また、移動機800のフラッシュメモリ893bが、情報処理装置200の情報記憶部290に相当する不図示の機能部として機能しても良い。
また、これに限定される訳ではなく、図5及び図6に示した販売処理、並びに、図11に示した移動制御処理は、情報処理装置200のCPU201と、移動機800のCPU891と、端末装置100のCPU101と、の2つ以上によって分散実行されても良い。
本発明の実施例及び実施例の変形例1から25は、互いに組み合わせることができる。
本実施例及び本実施例の変形例1から24のいずれかに係る機能を実現するための構成を備えた情報処理装置200、並びに、本実施例の変形例25に係る機能を実現するための構成を備えた情報処理装置890として提供できることはもとより、複数の装置で構成されるシステムであって、本発明の実施例及び実施例の変形例1から25のいずれかに係る機能を実現するための構成をシステム全体として備えたシステムとして提供することもできる。
本実施例及び本実施例の変形例1から24のいずれかに係る機能を実現するための構成を予め備えた情報処理装置200として提供できる。また、プログラムの適用により、既存の情報処理装置を本実施例及び本実施例の変形例1から24のいずれかに係る情報処理装置200として機能させることもできる。すなわち、本実施例及び本実施例の変形例1から24のいずれかで例示した情報処理装置200による各機能構成を実現させるためのプログラムを、既存の情報処理装置を制御するコンピュータ(CPUなど)が実行することで、本実施例及び本実施例の変形例1から24のいずれかに係る情報処理装置200として機能させることができる。
本発明の実施例の変形例25に係る機能を実現するための構成を予め備えた情報処理装置890として提供できる。また、プログラムの適用により、既存の情報処理装置を実施例の変形例25に係る情報処理装置890として機能させることもできる。すなわち、上記実施例の変形例25で例示した情報処理装置890による各機能構成を実現させるためのプログラムを、既存の情報処理装置を制御するコンピュータ(CPUなど)が実行することで、実施例の変形例25に係る情報処理装置890として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD(Compact Disc)-ROM、又は、DVD(Digital Versatile Disc)-ROMなどの記録媒体に収納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
本発明に係る方法は、本実施例及び本実施例の変形例1から24のいずれかに係る情報処理装置200、並びに、本実施例の変形例25に係る情報処理装置890を用いて実施できる。また、本発明に係る方法は、本実施例及び本実施例の変形例1から25のいずれかに係る情報処理システム1を用いて実施できる。
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
(付記)
(付記1)
注文のステータスを取得する取得部と、
前記注文の対象を運搬させる移動機の位置から前記運搬が開始される開始位置までの移動距離の増長を抑制させる移動制御を、取得された前記ステータスが、前記注文が完了された状態である完了ステータスに遷移する前のステータスである場合に、取得された前記ステータスに応じて前記移動機に行う制御部と、を備える、
ことを特徴とする情報処理装置。
(付記2)
前記完了ステータスに遷移する前の前記ステータスには、第1ステータスと第2ステータスとが存在し、
前記第2ステータスは、前記完了ステータスに遷移する蓋然性が、前記第1ステータスの蓋然性よりも高く、かつ、
前記第2ステータスに応じた前記移動制御は、前記第1ステータスに応じた前記移動制御よりも前記移動距離の増長を抑制する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)
前記ステータスに応じた前記移動制御は、前記移動機の移動速度を制御する速度制御と、前記移動機の移動方向を制御する方向制御と、前記移動機の移動経路が設定されていない場合に、前記移動機の前記移動経路を設定する、又は、前記移動機の前記移動経路が設定されている場合に、設定されている前記移動経路を再設定する経路制御と、のいずれか1つ以上を含む、
ことを特徴とする付記2に記載の情報処理装置。
(付記4)
前記速度制御は、前記移動機が前記開始位置から遠ざかっている場合に、前記移動機の前記移動速度を、基準の速度よりも遅い速度にさせる低速度制御と、前記移動機が前記開始位置に近づいている場合に、前記移動機の前記移動速度を、前記基準の速度よりも速い速度にさせる高速度制御と、のいずれか1つ以上を含み、
前記方向制御は、前記移動機が前記開始位置から遠ざかっている場合に、前記移動機の前記移動方向を、前記移動機が前記開始位置に近づく方向に変更させる制御を含み、かつ、
前記経路制御は、前記経路制御が行われない場合に前記移動機の前記位置から前記開始位置まで、前記移動経路が設定されている前記移動機が前記移動経路に沿って移動する距離、又は、前記移動経路が設定されていない前記移動機が移動すると予測される距離、よりも短い距離の第1経路を前記移動機に移動させる第1経路制御を含む、
ことを特徴とする付記3に記載の情報処理装置。
(付記5)
前記経路制御は、前記第1経路よりも距離が短いが、エネルギーの消費量が多い、若しくは、安全性が低い、又は、前記エネルギーの消費量が多く、かつ、安全性が低い第2経路を前記移動機に移動させる第2経路制御をさらに含む、
ことを特徴とする付記4に記載の情報処理装置。
(付記6)
前記移動機は、循環移動し、
前記方向制御は、循環移動する前記移動機が前記開始位置から遠ざかる場合に、前記移動機の前記移動方向を反転させる反転制御を含み、かつ、
前記第1経路及び前記第2経路の距離は、前記移動機が循環移動する場合に前記移動機の位置から前記開始位置まで前記移動機が移動する距離よりも短い、
ことを特徴とする付記5に記載の情報処理装置。
(付記7)
前記制御部は、
取得された前記ステータスが前記第1ステータスであり、かつ、前記移動機が前記開始位置から遠ざかっていると判別すると、前記低速度制御を前記移動制御として行い、かつ、
取得された前記ステータスが前記第2ステータスであり、かつ、前記移動機が前記開始位置から遠ざかっていると判別すると、前記反転制御を前記移動制御として行うことで、前記第1ステータスに応じた前記移動制御よりも前記移動距離を短縮させる、
ことを特徴とする付記6に記載の情報処理装置。
(付記8)
前記完了ステータスに遷移する前の前記ステータスには、第3ステータスがさらに存在し、
前記第3ステータスは、前記完了ステータスに遷移する蓋然性が、前記第2ステータスの蓋然性よりも高く、かつ、
前記制御部は、取得された前記注文の前記ステータスが前記第3ステータスであると、前記高速度制御を前記移動制御として行うことで、前記第2ステータスに応じた前記移動制御よりも、前記移動機の前記位置から前記開始位置までの移動時間を短縮させる、
ことを特徴とする付記6又は7に記載の情報処理装置。
(付記9)
前記完了ステータスに遷移する前の前記ステータスには、第4ステータスがさらに存在し、
前記第4ステータスは、前記完了ステータスに遷移する蓋然性が、前記第3ステータスの蓋然性よりも高く、かつ、
前記制御部は、取得された前記注文の前記ステータスが前記第4ステータスであると、前記第1経路制御を前記移動制御として行うことで、前記第3ステータスに応じた前記移動制御よりも前記移動距離を短縮させる、
ことを特徴とする付記8に記載の情報処理装置。
(付記10)
前記制御部は、取得された前記注文の前記ステータスが、前記完了ステータスに遷移する前の前記ステータスに存在する、又は、前記完了ステータスである第5ステータスであると、前記第2経路制御を前記移動制御として行うことで、前記第4ステータスに応じた前記第1経路制御よりも前記移動距離を短縮させる、
ことを特徴とする付記9に記載の情報処理装置。
(付記11)
前記第1ステータスは、前記対象を運搬するサービスが選択された状態であるサービス選択ステータスであり、
前記第2ステータスは、前記対象、又は、前記対象の運搬先が検索された状態である検索ステータスであり、
前記第3ステータスは、前記対象の購入、又は、前記運搬先までの運搬経路の決定が検討された状態である検討ステータスであり、かつ、
前記第4ステータスは、前記対象の購入代金、又は、前記運搬先までの運搬代金の決済が求められてから、前記決済が成功又は失敗するまでの状態である決済ステータスである、
ことを特徴とする付記10に記載の情報処理装置。
(付記12)
複数の移動機から前記対象を運搬させる前記移動機を選択する選択部をさらに備える、
ことを特徴とする付記1から11のいずれか一つに記載の情報処理装置。
(付記13)
前記対象は、人を含み、かつ、
前記注文は、前記対象を運搬させる移動機の配車依頼である、
ことを特徴とする付記1から12のいずれか一つに記載の情報処理装置。
(付記14)
前記移動機は、無人で走行可能である、
ことを特徴とする付記1から13のいずれか一つに記載の情報処理装置。
(付記15)
前記移動機は、地上を走行する走行機である、
ことを特徴とする付記1から14のいずれか一つに記載の情報処理装置。
(付記16)
前記ステータスに応じた前記移動制御は、前記移動機の移動速度を制御する速度制御と、前記移動機の移動方向を制御する方向制御と、前記移動機の移動経路が設定されていない場合に、前記移動機の前記移動経路を設定する、又は、前記移動機の前記移動経路が設定されている場合に、設定されている前記移動経路を再設定する経路制御と、のいずれか1つ以上を含む、
ことを特徴とする付記1に記載の情報処理装置。
(付記17)
注文のステータスを取得する取得部と、
前記注文の対象を運搬させる移動機と、
前記移動機の位置から前記運搬が開始される開始位置までの移動距離の増長を抑制させる移動制御を、取得された前記ステータスが、前記注文が完了された状態である完了ステータスに遷移する前のステータスである場合に、取得された前記ステータスに応じて前記移動機に行う制御部と、を備える、
ことを特徴とするシステム。
(付記18)
情報処理装置が、注文のステータスを取得する取得ステップと、
前記情報処理装置が、前記注文の対象を運搬させる移動機の位置から前記運搬が開始される開始位置までの移動距離の増長を抑制させる移動制御を、取得された前記ステータスが、前記注文が完了された状態である完了ステータスに遷移する前のステータスである場合に、取得された前記ステータスに応じて、前記移動機に行う制御ステップと、を有する、
ことを特徴とする方法。