IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シンフォニアテクノロジー株式会社の特許一覧

<>
  • 特開-運行管理装置、運行管理システム 図1
  • 特開-運行管理装置、運行管理システム 図2
  • 特開-運行管理装置、運行管理システム 図3
  • 特開-運行管理装置、運行管理システム 図4
  • 特開-運行管理装置、運行管理システム 図5
  • 特開-運行管理装置、運行管理システム 図6
  • 特開-運行管理装置、運行管理システム 図7
  • 特開-運行管理装置、運行管理システム 図8
  • 特開-運行管理装置、運行管理システム 図9
  • 特開-運行管理装置、運行管理システム 図10
  • 特開-運行管理装置、運行管理システム 図11
  • 特開-運行管理装置、運行管理システム 図12
  • 特開-運行管理装置、運行管理システム 図13
  • 特開-運行管理装置、運行管理システム 図14
  • 特開-運行管理装置、運行管理システム 図15
  • 特開-運行管理装置、運行管理システム 図16
  • 特開-運行管理装置、運行管理システム 図17
  • 特開-運行管理装置、運行管理システム 図18
  • 特開-運行管理装置、運行管理システム 図19
  • 特開-運行管理装置、運行管理システム 図20
  • 特開-運行管理装置、運行管理システム 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025006347
(43)【公開日】2025-01-17
(54)【発明の名称】運行管理装置、運行管理システム
(51)【国際特許分類】
   G05D 1/43 20240101AFI20250109BHJP
【FI】
G05D1/02 P
G05D1/02 H
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023107080
(22)【出願日】2023-06-29
(71)【出願人】
【識別番号】000002059
【氏名又は名称】シンフォニアテクノロジー株式会社
(74)【代理人】
【識別番号】100142022
【弁理士】
【氏名又は名称】鈴木 一晃
(72)【発明者】
【氏名】山中 悠司
(72)【発明者】
【氏名】中口 和馬
(72)【発明者】
【氏名】孫田 康雄
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301BB05
5H301CC03
5H301CC06
5H301DD01
5H301DD07
5H301DD15
5H301GG08
5H301GG09
5H301GG11
5H301GG14
5H301KK03
5H301KK04
5H301KK08
5H301KK09
5H301KK12
(57)【要約】
【課題】自律走行ロボットの運行管理において、自律走行ロボットの走行渋滞や、走行不能を抑制することを目的とする。
【解決手段】運行管理サーバ90は、タスクで指定された第1登録位置P1にAMR80が到達すると、この第1登録位置P1に到達したAMR80を待機位置へ走行させる。そして、いずれかのAMR80が、第1登録位置P1の次の目的地である第2登録位置P2に位置している場合は、待機位置に待機させたAMR80に、第2登録位置P2へ走行させるための指令を送信しないことで、AMR80を待機させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
通信インタフェースを備え、前記通信インタフェースを介して複数の自律走行ロボットと通信可能な運行管理装置であって、
前記通信インタフェースを介して、運行計画情報に含まれる複数のタスクを実行させるための実行指令を、前記自律走行ロボットに送信する指令値制御部と、
前記自律走行ロボットからの前記タスクの実行状況を示す通知を受信し、受信した前記通知に応じて、前記自律走行ロボットの現在位置や、前記タスクの進捗状況を含む状態情報を管理する進捗管理部と、
を備え、
前記指令値制御部は、
前記状態情報に応じて、複数の前記自律走行ロボットの内いずれかの前記自律走行ロボットが、前記タスクで指定された第1登録位置に到達したことを判断すると、前記第1登録位置に到達した前記自律走行ロボットに、前記第1登録位置に関連付けられた待機位置へ走行させる指令を送信し、
複数の前記自律走行ロボットのうちいずれかの自律走行ロボットが、前記第1登録位置の次の目的地として前記タスクで指定された第2登録位置に位置している場合は、前記待機位置に待機させた前記自律走行ロボットに、前記第2登録位置へ走行させるための指令を送信せず、
複数の前記自律走行ロボットのうちいずれかの自律走行ロボットが、前記第2登録位置に位置していない場合は、前記待機位置に待機させた前記自律走行ロボットに、前記第2登録位置へ走行させるための指令を送信する、ことを特徴とする運行管理装置。
【請求項2】
前記待機位置は複数あり、
複数の前記待機位置に、前記自律走行ロボットが待機しているか否かを監視する待機位置管理部を備え、
前記指令値制御部は、
前記待機位置管理部による監視結果に応じて、前記第1登録位置に到達した前記自律走行ロボットに、複数の前記待機位置のうち前記自律走行ロボットが待機していない待機位置へ走行させる指令を送信し、
前記待機位置に待機させた前記自律走行ロボットに対して、前記第1登録位置に到着した順序に応じて、前記第2登録位置へ走行させるための指令を送信する順序を示す送信順序を設定し、
複数の前記自律走行ロボットの内いずれかの前記自律走行ロボットが、前記第2登録位置に位置していないと判断している場合は、前記待機位置に待機させた複数の前記自律走行ロボットに、前記送信順序に従って、前記第2登録位置へ走行させるための指令を送信する、ことを特徴とする請求項1に記載の運行管理装置。
【請求項3】
前記進捗管理部は、前記状態情報として、前記自律走行ロボットにおける現在のタスクの進捗状況を示す情報を管理し、
前記指令値制御部は、
前記待機位置に待機している複数の前記自律走行ロボットに対して設定される前記送信順序を、前記現在のタスクの進捗状況を示す情報に応じて変更し、
変更された前記送信順序に従って、前記待機位置に待機している前記自律走行ロボットに、前記第2登録位置へ走行させるための指令を送信する、ことを特徴とする請求項2に記載の運行管理装置。
【請求項4】
前記指令値制御部は、
前記状態情報に応じて、前記第2登録位置に、複数の前記自律走行ロボットの内いずれかの自律走行ロボットが位置しているか否かを判断する、請求項1~3のいずれか一項に記載の運行管理装置。
【請求項5】
前記指令値制御部は、
複数の前記自律走行ロボットの内いずれかの前記自律走行ロボットが、前記第1登録位置へ到達したことを判断したときに、前記第1登録位置に到着した前記自律走行ロボット以外の自律走行ロボットが、前記待機位置に待機しておらず、かつ前記第2登録位置に位置していない場合は、前記第1登録位置に到着した前記自律走行ロボットを、前記待機位置に移動させることなく、前記第2登録位置へ走行させるための指令を送信する、ことを特徴とする請求項1に記載の運行管理装置。
【請求項6】
複数の自律走行ロボットと、
通信インタフェースを備え、前記通信インタフェースを介して複数の前記自律走行ロボットと通信可能な運行管理装置と、を備える運行管理システムであって、
前記運行管理装置は、
前記通信インタフェースを介して、運行計画情報に含まれる複数のタスクを実行させるための実行指令を、前記自律走行ロボットに送信する指令値制御部と、
前記自律走行ロボットからの前記タスクの実行状況を示す通知を受信し、受信した前記通知に応じて、前記自律走行ロボットの現在位置や、前記タスクの進捗状況を含む状態情報を管理する進捗管理部と、
を備え、
前記指令値制御部は、
前記状態情報に応じて、複数の前記自律走行ロボットの内いずれかの前記自律走行ロボットが、前記タスクで指定された第1登録位置に到達したことを判断すると、前記第1登録位置に到達した前記自律走行ロボットに、前記第1登録位置に関連付けられた待機位置へ走行させる指令を送信し、
複数の前記自律走行ロボットの内いずれかの自律走行ロボットが、前記第1登録位置の次の目的地として前記タスクで指定された第2登録位置に位置している場合は、前記待機位置に待機させた前記自律走行ロボットに、前記第2登録位置へ走行させるための指令を送信せず、
複数の前記自律走行ロボットの内いずれかの自律走行ロボットが、前記第2登録位置に位置していない場合は、前記待機位置に待機させた前記自律走行ロボットに、前記第2登録位置へ走行させるための指令を送信する、ことを特徴とする運行管理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律走行ロボットの運行を管理する技術に関する。
【背景技術】
【0002】
地図情報や外界センサを用いて自律走行を行うことが可能な自律走行ロボットが知られている。また、自律走行ロボットの運行を管理する運行管理装置も知られている。運行管理装置では、ネットワークを介して複数の自律走行ロボットと通信することが可能であり、各自律走行ロボットに対して、自律走行ロボットの目的地や、自律走行ロボットが実行すべき動作等を示すタスクの実行指示を送信する。例えば、特許文献1には、複数台の自律走行ロボットの運行を管理可能な装置を備える運行管理システムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022―175875号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
運行管理装置が、複数の自律走行ロボットの運行を管理する場合、いずれかの自律走行ロボットが、他の自律走行ロボットの走行の障害となる場合がある。例えば、道幅の狭い走路を、複数の自律走行ロボットが、走行する状況下では、一度に複数の自律走行ロボットが走路を走行できないため、自律走行ロボットの渋滞や、走行不能が発生することが懸念される。
【0005】
本発明は、上記課題に鑑みたものであり、自律走行ロボットの運行管理において、自律走行ロボットの渋滞や、走行不能を抑制することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するための本実施形態で開示された運行管理装置は、通信インタフェースを備え、通信インタフェースを介して複数の自律走行ロボットと通信可能である。運行管理装置は、通信インタフェースを介して、運行計画情報に含まれるタスクを実行させるための実行指令を、自律走行ロボットに送信する指令値制御部と、自律走行ロボットからのタスクの実行状況を示す通知を受信し、受信した通知に応じて、自律走行ロボットの現在位置や、タスクの進捗状況を含む状態情報を管理する進捗管理部と、を備えている。指令値制御部は、状態情報に応じて、複数の自律走行ロボットの内いずれかの自律走行ロボットが、タスクで指定された第1登録位置に到達したことを判断すると、第1登録位置に到達した自律走行ロボットに、第1登録位置に関連付けられた待機位置へ走行させる指令を送信する。指令値制御部は、複数の自律走行ロボットの内いずれかの自律走行ロボットが、第1登録位置の次の目的地としてタスクで指定された第2登録位置に位置している場合は、待機位置に待機させた自律走行ロボットに、第2登録位置へ走行させるための指令を送信せず、複数の自律走行ロボットの内いずれかの自律走行ロボットが、第2登録位置に位置していない場合は、待機位置に待機させた自律走行ロボットに、第2登録位置へ走行させるための指令を送信する。
【0007】
上記構成では、タスクで指定された第1登録位置に自律走行ロボットが到達すると、この第1登録位置に到達した自律走行ロボットを待機位置へ走行させる。そして、いずれかの自律走行ロボットが、第1登録位置の次の目的地である第2登録位置に位置している場合は、待機位置に待機させた自律走行ロボットに、第2登録位置へ走行させるための指令を送信しないことで、自律走行ロボットを待機させる。一方、いずれかの自律走行ロボットが、第2登録位置に位置していない場合は、待機位置に待機させた自律走行ロボットに、第2登録位置へ走行させるための指令を送信する。これにより、運行管理装置が、複数の自律走行ロボットの運行を管理する場合において、複数の自律走行ロボットが、タスクで指定された第1登録位置から第2登録位置に向けて一度に走行することがなくなり、自律走行ロボットの走行渋滞や、走行不能を抑制することができる。
【0008】
待機位置は複数あり、運行管理装置は、複数の待機位置に、自律走行ロボットが待機しているか否かを監視する待機位置管理部を備えている。指令値制御部は、待機位置管理部による監視結果に応じて、第1登録位置に到達した自律走行ロボットに、複数の待機位置のうち自律走行ロボットが待機していない待機位置へ走行させる指令を送信し、待機位置に待機させた自律走行ロボットに対して、第1登録位置に到着した順序に応じて、第2登録位置へ走行させるための指令を送信する順序を示す送信順序を設定し、複数の自律走行ロボットの内いずれかの自律走行ロボットが、第2登録位置に位置していないと判断している場合は、待機位置に待機させた複数の自律走行ロボットに、送信順序に従って、第2登録位置へ走行させるための指令を送信する。
上記構成では、複数の自律走行ロボットが、第1登録位置に向けて走行してくる場面においても、自律走行ロボットを各待機位置に待機させることができる。そして、定められた送信順序に従って、各待機位置に待機させた自律走行ロボットを、待機位置から第2登録位置へ向けて走行させることができる。これにより、複数の自律走行ロボットが、第1登録位置に向けて一度に走行している場面でも、自律走行ロボットの走行渋滞や、走行不能を抑制することができる。
【0009】
進捗管理部は、状態情報として、自律走行ロボットにおける現在のタスクの進捗状況を示す情報を管理し、指令値制御部は、待機位置に待機している複数の自律走行ロボットに対して設定される送信順序を、現在のタスクの進捗状況を示す情報に応じて変更し、変更された送信順序に従って、待機位置に待機している自律走行ロボットに、第2登録位置へ走行させるための指令を送信する。
上記構成では、自律走行ロボットにおける現在のタスクの進捗状況に応じて、待機位置から第2登録位置へ走行させる順序を柔軟に変更することができる。
【0010】
指令値制御部は、状態情報に応じて、第2登録位置に、複数の自律走行ロボットの内いずれかの自律走行ロボットが位置しているか否かを判断する。
上記構成では、運行管理装置が自律走行ロボットの運行管理のために使用している状態情報を流用して、第2登録位置に自律走行ロボットが位置しているか否かを判断することができる。
【0011】
指令値制御部は、状態情報により、複数の自律走行ロボットの内いずれかの自律走行ロボットが、第1登録位置へ到達したことを判断したときに、第1登録位置に到着した自律走行ロボット以外の自律走行ロボットが、待機位置に待機しておらず、かつ第2登録位置に位置していない場合は、第1登録位置に到着した自律走行ロボットを、待機位置に移動させることなく、第2登録位置へ走行させるための指令を送信する。
上記構成では、第1登録位置に到着した自律走行ロボットを、待機位置に走行させる必要がない場面では、自律走行ロボットをそのまま第2登録位置に走行させることができるため、運行管理における不要な時間の遅延を抑制することができる。
【0012】
本発明は、運行管理装置と、複数の自律走行ロボットとを備える、運行管理システムとしても適用することができる。
【発明の効果】
【0013】
本発明によれば、運行管理装置により運行が管理される複数の自律走行ロボットにおいて、自律走行ロボットの走行渋滞や、走行不能を抑制することができる。
【図面の簡単な説明】
【0014】
図1】運行管理システムの構成図である。
図2】自律走行ロボットのブロック図である。
図3】運行管理サーバとPCとのブロック図である。
図4】運行計画情報の概念図である。
図5】自律走行ロボットの運航経路を説明する図である。
図6】運行管理を説明するタイミングチャートである。
図7】メモリに記憶された各情報を説明する図である。
図8】運行管理を説明するタイミングチャートである。
図9図8のS30で実行される処理を説明するフローチャートである。
図10】第1登録位置を説明する図である。
図11】自律走行ロボットの運航管理を説明する図である。
図12】自律走行ロボットの運航管理を説明する図である。
図13】自律走行ロボットの運航管理を説明する図である。
図14】自律走行ロボットの運航管理を説明する図である。
図15】自律走行ロボットの運航管理を説明する図である。
図16】自律走行ロボットの運航管理を説明する図である。
図17】運航管理を説明するタイミングチャートである。
図18】自律走行ロボットの運航管理を説明する図である。
図19】自律走行ロボットの運航管理を説明する図である。
図20】第1登録位置と第2登録位置とが定められた走路の別例を説明する図である。
図21】第1登録位置と第2登録位置とが定められた走路の別例を説明する図である。
【発明を実施するための形態】
【0015】
(第1実施形態)
本実施形態に係る運行管理システムを、図面を参照しつつ説明する。図1に示す運行管理システム100は、複数台の自律走行ロボット80の運行を管理することで、所定のサービスを提供するシステムである。運行管理システム100で提供可能なサービスの一例として、荷物配送サービス、出前サービス、ごみ収集サービス等の配送サービスがある。以下では、自律走行ロボット80を、AMR80とも記載する。
【0016】
運行管理システム100は、運行管理サーバ90と、PC93と、複数のAMR80と、を主に備え、各装置は通信インタフェースを介して接続されている。なお、運行管理サーバ90、PC93、及びAMR80は、ネットワーク(インターネット等を含む)を介して通信可能に接続されている。ネットワークは、有線ネットワーク91、及び無線AP92により構成されており、全体として、4Gや5G、W i-Fi(登録商標)等の無線通信ネットワークを構成している。なお、図1では、3台のAMR80A,80B,80Cが図示されているが、運行管理システム100により運行が管理されるAMR80の数は、3台に限らない。また、PC93は、デスクトップ型、ラップトップ型の装置や、タブレット端末、スマートフォン等の携帯可能な装置であってもよい。また、PC93の数は、1台に限らず、複数台がネットワークに接続されていてもよい。
【0017】
まずは、AMR80の構成を説明する。図2に示されるように、AMR80は、コントローラ10と、外界センサ11と、走行部12と、ユーザIF13と、通信IF14と、メモリ15と、内界センサ16とを主に備えている。AMR80を構成する各部は、不図示の筐体内部に収容されている。なお、IFは、インタフェースの略称である。
【0018】
外界センサ11は、例えば、LiDAR(Light Detection and Ranging/Laser Imaging Detection and Ranging)であり、周囲に近赤外光や可視光を出射し、反射光を光センサで捉えることで、自装置周囲の物体の相対座標を含むスキャンデータを取得する。スキャンデータは、周囲の物体における計測点の2次元座標と、外界センサ11の出射方向を示す情報とが関連付けられた状態で含まれるデータである。これ以外にも、外界センサ11が、3次元方向に光を出射する構成であれば、スキャンデータには、計測点の3次元座標が含まれていてもよい。コントローラ10は、スキャンデータに含まれる各計測情報により自装置から周囲の物体までの相対距離や、複数の計測点の位置関係により物体の形状を判断することが可能である。外界センサ11は、LiDAR以外にも、レーダーセンサ、カメラ、更にはこれらを組み合わせて使用するものであってもよい。
【0019】
走行部12は、AMR80の走行を可能にする部位であり、一組の車輪と、モータと、モータドライバとを備えている。走行部12による駆動方式として、差動二輪駆動を用いる。差動二輪駆動では、コントローラ10から入力された指令速度により、モータドライバを駆動し、モータに駆動力を配分することで,車輪による直進動作や旋回動作を行うことが可能である。なお、走行部12は、2つの車輪を有することに限定されず、2つ以上の車輪を有していてもよい。更には、駆動方式は、差動二輪式に限定されず、全方向移動型など他の方式でもよく、走行部12は、クローラ等を備えていてもよい。
【0020】
内界センサ16は、走行部12の車輪の回転角から、AMR80の速度及び角速度を検出し、検出された速度及び角速度からオドメトリ情報を算出するセンサである。オドメドリ情報には、所定周期での走行部12の移動量や向きが含まれている。
【0021】
ユーザIF13は、コントローラ10とオペレータとの間のインタフェースとして機能する。ユーザIF13は、例えば、操作キーや、タッチパネルを含んでおり、オペレータによる操作に応じたコントローラ10への指示や、コントローラ10からの指示に応じた、テキストや、アイコンを表示させることができる。本実施形態では、ユーザIF13は、筐体の上部前側において、表示面が前方に向くように取り付けられている。
【0022】
通信IF14は、AMR80をネットワークに接続することで、運行管理サーバ90や、PC93との無線通信を可能にする。
【0023】
コントローラ10は、不図示のCPUや、揮発性メモリ等の内部メモリを含んでいる。コントローラ10は、CPUが、メモリ15に記憶されたプログラムを実行することにより、指令受信部20、情報送信部21、タスク実行制御部23、状態監視部25としても機能する。なお、上述する各機能ブロックの一部が、コントローラ10が備えるハードウェアにより実現されていてもよい。なお、各部20~25の詳細は後述する。
【0024】
メモリ15には、地図情報MPが記憶される。地図情報MPは、2次元データであり、走路、壁、階段、その他の物体を示す点群と、この点群の絶対座標とが対応づけて記憶されている。地図情報MPには、各点群に関連付けて、物体の種別を識別するためのタグ情報や、AMR80が守るべき走行速度や、目的地の位置等を対応づけた目的地情報が記憶されていてもよい。
【0025】
また、メモリ15には、AMR情報D11も記憶される。AMR情報D11は、サービスが提供されている期間でのAMR80の状態を示す情報であり、後述するように、状態監視部25による監視結果に応じて、所定周期で蓄積記憶されていく。AMR情報D11には、例えば、AMR80の現在位置(絶対座標)、姿勢(θ)、タスクの進捗状況、状態情報(正常、異常)を示す情報が含まれている。「状態情報」には、通信IF14を介した通信の通信状態(通信可、遮断)を示す情報も含まれている。本実施形態では、AMR情報が、状態情報の一例である。
【0026】
次に、運行管理サーバ90の構成を説明する。図3に示すように、運行管理サーバ90は、サーバ装置であり、メモリ70、コントローラ72、通信IF73を備えている。本実施形態では、運行管理サーバ90は、一つのサーバ装置として説明を行うが、これに限らず、複数のサーバ装置が、個別の機能を実行することで、全体として、運行管理サーバ90を構成するものであってもよい。また、運行管理サーバ90は、クラウドサーバー等で構成するものであってもよい。
【0027】
通信IF73は、AMR80の通信IF14と同様、運行管理サーバ90をネットワークに接続する。
【0028】
コントローラ72は、不図示のCPUや、RAM、ROM等のメモリを有している。コントローラ72は、CPUが、ROMに記憶されたプログラムを実行することにより、指令値制御部75、進捗管理部76、待機位置管理部77として機能する。なお、各部75,76,77の詳細は後述する。
【0029】
メモリ70には、運行計画情報D1、運行管理情報D2、目的地情報D3、待機位置情報D4、待機位置使用状況情報D5、登録位置使用状況情報D6といった各種の情報が記憶される。運行計画情報D1は、サービスを提供するために、AMR80が実行する具体的な運行計画を示す情報である。後述するように、運行計画情報D1には、複数のタスクが実行順序に応じて登録されている。各タスクは、AMR80の目的地を指定する情報や、目的地での動作を指定する情報により構成されている。目的地を指定する情報は、地図情報MP上での、目的地を識別するための目的地ID、絶対座標、AMR80の向き、目的地の名称に関する情報である。目的地での動作を指定する情報は、例えば、目的地で待機、集荷や荷下ろし時に荷室の開閉等の作業、受取人や配送先への荷物引き渡し作業等を示す情報である。これ以外にも、各タスクには、AMR80の走行速度や走行経路に関する情報が含まれていてもよい。
【0030】
なお、本実施形態では、運行管理システム100は配送サービスを提供するため、運行計画情報D1には、AMR80を、指定された目的地まで走行させるタスクと、到着した目的地で物品を配送するためのタスクとが登録されている。例えば、タスクが、目的地までの走行を指定する場合、タスク実行制御部23は、地図情報MPを参照しつつ、走行部12の駆動を制御して、AMR80を目的地まで自律走行させる。
【0031】
運行管理情報D2は、サービス提供中における、各AMR80の運行状況を管理するための情報である。本実施形態では、運行管理情報D2は、各AMR80から所定周期で送信されるAMR情報D11で示される情報を蓄積したデータベースとして構成されている。例えば、運行管理システム100が3台のAMR80の運行を管理する場合は、メモリ70には、各AMR80に対応する運行計画情報D1や、運行管理情報D2が記憶される。目的地情報D3、待機位置情報D4、待機位置使用状況情報D5、登録位置使用状況情報D6については後述する。
【0032】
次に、PC93の構成を説明する。図3に示すように、PC93は、コントローラ60、操作部61、表示部62、通信IF63を備えている。コントローラ60は、不図示のCPUや、メモリを備えている。コントローラ60のメモリには、運行管理アプリケーションプログラム64が記憶されている。以下では、運行管理アプリケーションプログラムを、「運行管理アプリケーション」とも記載する。
【0033】
コントローラ60は、運行管理アプリケーション64を実行することにより、運行計画作成処理や、運行状況表示処理を行うことができる。運行計画作成処理では、AMR80が実行する具体的なタスクを含んだ運行計画情報D1を作成する。運行状況表示処理では、サービスの実行中に、様々な情報を表示装置である表示部62に表示させる。具体的には、運行状況表示処理では、運行管理サーバ90により蓄積保存された運行管理情報D2を用いて、各AMR80の現在の位置、タスクの実行状況、更にはAMR80の状態を、表示部62に表示させることができる。オペレータは、表示部62に表示された情報により、運行計画の進捗度合いや、各AMR80の運行状況を確認することが可能となる。
【0034】
次に、PC93のコントローラ60が実行する運行計画作成処理の詳細を説明する。以下では、プログラムを実行するコントローラ60のことを、単にプログラム名でも記載する場合がある。例えば、「運行管理アプリケーション64が」という記載は、「運行管理アプリケーション64を実行するコントローラ60が」ということを意味する場合がある。ここでは、運行計画作成処理により、図4に示す運行計画情報D1を作成する場合を例に説明を行う。図5は、図4で示される運行計画情報D1により実行されるタスクの例示であり、地図情報MPに含まれる運行管理エリアを示している。本実施形態では、一例として、地図情報MPには、F1,F2,F3,F4の各フロアーに関する情報により構成されている。また、各フロアーは、エレベータにより行き来することが可能である。このうち、初期位置Psは、AMR80の充電スポットである。
【0035】
まず、オペレータは、PC93を操作することで、運行管理アプリケーション64を起動させる。運行管理アプリケーション64は、表示部62に、操作画面を表示させる。操作画面は、オペレータによる操作部61の操作に応じて、運行計画情報D1に含ませることができるタスクの入力を受付ける画面である。なお、本実施形態では、オペレータがPC93を操作することで、運行計画情報D1に含まれる全てのタスクを登録する場合を例に説明を行う。これに代えて、PC93により、全てのタスクを登録するのではなく、例えば、目的地での動作を指定する情報に関するタスクを、PC93とは異なり、運行管理システム100に関連する別システムの指示に基づいて登録してもよい。
【0036】
運行管理アプリケーション64は、オペレータによる各タスクの入力を受付けることで、図4で示す運行計画情報D1を作成する。運行計画情報D1には、複数のタスクが、実行順序に応じて登録されている。具体的には、運行計画情報D1には、N個(Nは自然数)のタスクにより構成されている。運行計画情報D1において、タスクTsk1は、AMR80を、目的地Aまで走行させることを示す情報である。タスクTsk2は、AMR80を、目的地Aから目的地Bに走行させることを示す情報である。タスクTsk3は、AMR80を、目的地Bから目的地Cに走行させることを示す情報である。タスクTskNは、AMR80を、初期位置Psまで走行させることを示す情報である。
【0037】
運行管理アプリケーション64は、オペレータによる操作に応じて、全てのタスクTskの入力完了を判断すると、各タスクTsk1~TskNを含む、運行計画情報D1を作成し保存する。また、PC93のコントローラ60は、作成された運行計画情報D1を、通信IF63を介して運行管理サーバ90に送信する。運行管理サーバ90のコントローラ72は、運行計画情報D1を受信すると、この運行計画情報D1をメモリ70に保存する。
【0038】
次に、運行管理システム100により実行されるAMR80A,80B,80Cの運行管理を、図6を用いて説明する。この例では、3台のAMR80A、80B、80Cの運行管理を例に説明を行う。3台のAMR80A,80B,80Cは、タスクで指定された同じ目的地に向けて走行する場合を例示するが、これに限らず、目的地が異なっていてもよい。ここでは、まず、AMR80Aを、図5で示した、フロアー1Fの初期位置Psから、タスクで指定された目的地であるエレベータ(後述する、第2登録位置P2の一つ)に向けて走行させる場面を例に説明を行う。なお、説明は省略するが、運行管理サーバ90は、AMR80B,80Cに対しても、各AMR80に対応する運行管理情報D2を参照して、タスクの実行指示を行っているものとする。
【0039】
まず、オペレータが、PC93の運行管理アプリケーション64に対して登録された運行計画情報D1の実行を開始するための操作を行った場合、運行管理アプリケーション64は、運行管理サーバ90に対して、登録済みの運行計画情報D1の実行指示を送信する。運行管理サーバ90では、運行計画情報D1の実行指示を受信すると、ステップ10(以下、「ステップ」を「S」とも記載する。)で、指令値制御部75は、タスク実行指令を生成するための指令値生成処理を実行する。タスク実行指令は、AMR80Aを運行計画情報D1に含まれるタスクの内容に従って動作させるための指令である。指令値制御部75は、メモリ70に保存された運行計画情報D1と、運行管理情報D2とを参照することで実行すべきタスクを判断し、このタスクに応じたタスク実行指令を生成する。タスク実行指令には、タスクの内容を示す情報や、実行を指示するタスクを識別するタスクIDを含んでいる。更には、タスクが、AMR80Aを、地図情報MPに登録された目的地までの走行を示す場合、タスクの内容を示す情報には、目的地を識別する情報である目的地IDが含まれている。ここでは、図4に示す運行計画情報D1において、タスクTsk1を実行させるためのタスク実行指令を作成するものとする。
【0040】
S11では、指令値制御部75は、S10で作成されたタスク実行指令を、通信IF73を介してAMR80Aに送信する。AMR80Aの指令受信部20は、タスク実行指令を受信すると、タスク実行指令をタスク実行制御部23に送信する。タスク実行制御部23は、S20で、タスク実行指令を解釈し、このタスク実行指令により指定される内容(ここでは、タスクTsk1の内容)に従って、目的地IDで指定される目的地に向けて、走行部12の駆動を制御する。これにより、AMR80Aは、初期位置Psから、タスクで指定された目的地Aに向けて自律走行を開始する。
【0041】
S21で、状態監視部25は、自装置の状態を監視しており、監視結果であるAMR情報D11をメモリ15に記憶する。S22で、情報送信部21は、メモリ15に記憶されたAMR情報D11を、通信IF14を介して、運行管理サーバ90に送信する。
【0042】
運行管理サーバ90では、AMR情報D11を受信すると、S12で、進捗管理部76は、受信したAMR情報D11を用いて、メモリ70に記憶されたAMR80Aに対応する運行管理情報D2を更新する。
【0043】
運行管理サーバ90の進捗管理部76は、S13で、更新された運行管理情報D2を、PC93に送信する。PC93の運行管理アプリケーション64は、運行管理情報D2を用いた運行状況表示処理により、AMR80Aの運行状態を表示部62に表示していく。なお、S21,S22,S12,S13の一連の処理は、AMR80Aが運行管理サーバ90とネットワークを介して通信可能になった時点から、定期通信により所定周期で繰返し実行されるが、本実施形態では、説明の便宜のため、以後の記載を省略している。
【0044】
S23で、状態監視部25は、現在実行中のタスクの完了を判断すると、S24で、状態監視として、AMR情報D11をメモリ15に記憶する。S23で記憶されるAMR情報D11には、AMR80Aの現在位置(この例では、タスクTsk1で指定された「目的地A」)と、目的地AでのAMR80Aの向きと、タスクTsk1の実行が完了したことを示す情報を含んでいる。
【0045】
S25では、情報送信部21は、S24での状態監視により記憶されたAMR情報D11を、タスクが完了したことを示す完了通知と共に、運行管理サーバ90に送信する。S25で送信されるタスク完了通知は、運行管理サーバ90に、運行計画情報D1で示される実行順序に従った次のタスクをAMR80に送信させるための情報である。運行管理サーバ90では、タスク完了通知と共に、AMR情報D11を受信すると、S14で、進捗管理部76は、メモリ70に記憶された運行管理情報D2を更新する。
【0046】
進捗管理部76は、S15で、AMR情報D11で指定された完了済みのタスクが、最後のタスク、即ち、タスクTskNであるか否かを判断する。ここでは、AMR情報D11で示された完了済みのタスクが、タスクTskNでないとして(S15:NO)、進捗管理部76は、S16に進む。
【0047】
S16では、指令値制御部75は、AMR80Aが、目的地情報D3に登録された第1登録位置P1に到着しているか否かを判断する。具体的には、指令値制御部75は、S14で更新された運行管理情報D2により特定されるAMR80Aの現在の位置を指定する目的地IDが、目的地情報D3に登録された第1登録位置P1の目的地IDと一致するか否かを判断する。図7は、メモリ70に記憶された目的地情報D3、待機位置情報D4、待機位置使用状況情報D5、登録位置使用状況情報D6を示している。図7(a)に示すように、目的地情報D3には、タスクで指定される目的地のうち、所定の第1登録位置P1に関する情報が登録されている。具体的には、目的地情報D3には、項目である「目的地ID」、「目的地名」、「座標、向き」に対応する登録値が登録されている。項目「目的地ID」には、登録値として、地図情報MP上での第1登録位置P1を特定する目的地IDが登録されている。項目「目的地名」には、登録値として、地図情報MP上での第1登録位置P1を特定する名称が登録されている。項目「座標、向き」には、登録値として、地図情報MP上での第1登録位置P1の座標と、この第1登録位置P1でAMR80に指定された「向き」が登録されている。
【0048】
S16では、指令値制御部75は、AMR80Aが、目的地情報D3で登録された第1登録位置P1に到達しているか否かを判断する。ここでは、指令値制御部75は、AMR80Aが第1登録位置P1に到着していないと判断し(S16:NO)、S17に進み、既に説明したS10での指令値生成処理と同様、次のタスクに応じたタスク実行指令を生成する。指令値制御部75は、S18で、S17で生成されたタスク実行指令を、AMR80Aに送信する。AMR80Aは、タスク実行指令を受信すると、タスク実行制御部23は、S26で、受信したタスク実行指令を解釈して、タスク(この例では、タスクTsk2)を実行する。以下、S27で、タスク実行制御部23は、S23と同様、タスクの完了を判断すると、S28で、S24と同様、状態監視を行う。そして、情報送信部21は、S29で、AMR情報D11を運行管理サーバ90に送信する。
【0049】
以下、運行管理サーバ90と、AMR80Aとの間で、既に説明した、S14~S18での処理、及びS26~S29での処理が繰り返されることで、AMR80Aの運行管理が継続される。
【0050】
タスクに従って、AMR80Aの自律走行が継続することで、AMR80Aが、目的地情報D3の項目「目的地ID」の登録値に一致する目的地(即ち、第1登録位置P1)に到着したとする。この場合、AMR80Aの既に説明した、この場合、AMR80Aの状態監視部25は、既に説明した、S24での処理により、AMR情報D11(AMR80Aの現在位置が第1登録位置P1であることを含む)をメモリ15に記憶する。情報送信部21は、既に説明したS25での処理により、メモリ15に記憶されたAMR情報D11を、運行管理サーバ90に送信する。運行管理サーバ90では、AMR情報D11を受信すると、進捗管理部76は、既に説明したS14で、受信したAMR情報D11を用いて、メモリ70に記憶されたAMR80Aに対応する運行管理情報D2を更新する。その後、S16で、指令値制御部75は、AMR80Aが、第1登録位置P1への到着を判断し(S16:YES)、図8に示すS30に進み、AMR80Aに対して、待機位置監視処理を実行する。
【0051】
図9は、待機位置管理部77が、S30で実行する待機位置監視処理の手順を説明するフローチャートである。また、図10は、目的地ID「1」で特定される第1登録位置P1を説明する平面図である。第1登録位置P1は、タスクで指定される目的地のうち、第1登録位置P1の次の目的地としてタスクで指定されている第2登録位置P2(この例では、エレベータ)の特徴に応じて事前に登録された位置である。第2登録位置P2は、複数のAMR80が走行する場合に、AMR80の走行渋滞や、走行遅延を生じさせると想定されている位置であり、例示するエレベータ以外にも、道幅の狭い走路や、袋小路、交互通路のように複数のAMR80が一度に並走できない走路である。また、第1登録位置P1は、第2登録位置P2よりも走路幅が広く、複数のAMR80が一度に並走しても、AMR80の走行渋滞や、走行遅延を生じさせない位置であることが望ましい。
【0052】
待機位置管理部77は、図9のS40で、メモリ70に記憶された待機位置情報D4を参照して、現在、AMR80Aが位置している第1登録位置P1に関連付けられた待機位置を特定する。まずは、待機位置について説明する。図10において、目的地ID「1」で特定される第1登録位置P1には、3つの待機位置(後述する、待機位置ID「Pw1」,「Pw2」,「Pw3」で特定される位置)が関連付けられている。便宜上、待機位置を区別する場合に、末尾にこの待機位置に対応する待機位置IDを付して説明を行う。なお、待機位置は、地図情報MP上で、運行計画情報D1の各タスクで指定される目的地とは異なる位置である。この例では、3つの待機位置Pw1,Pw2,Pw3は、第1登録位置P1と、タスクで指定される第2登録位置P2であるエレベータとの間において、走路であるエレベータに向かう直進路の延びる方向に沿って配列している。
【0053】
図7(b)に示すように、待機位置情報D4には、第1登録位置P1に関連付けられた待機位置に関する登録値が登録されている。具体的には、待機位置情報D4には、項目として、「待機位置を関連づける第1登録位置」、「待機位置ID」、「名称」、「優先度」、「座標、向き」がある。項目「待機位置を関連付ける第1登録位置」には、目的地情報D3に登録されている第1登録位置P1の目的地IDが登録値として登録されている。項目「待機位置ID」には、地図情報MP上で待機位置を識別する待機位置IDが登録値として登録されている。項目「名称」には、地図情報MP上で待機位置を識別する名称が登録値として登録されている。項目「座標、向き」には、地図情報MP上での座標、及び待機位置でのAMR80に指定された向きが登録値として登録されている。なお、項目「優先度」については後述する。
【0054】
待機位置管理部77は、S40で、待機位置情報D4における項目「待機位置を関連付ける第1登録位置」で特定された行のうち、現在の位置に対応する目的地IDが登録された行を特定する。そして、特定された行における、項目「待機位置ID」の登録値(待機位置ID)を取得する。この例では、AMR80Aは、現在、目的地情報D3において、目的地ID「1」で特定される第1登録位置P1に位置しており、待機位置情報D4には、この目的地ID「1」に対応する項目「待機位置ID」の登録値として、「Pw1」,「Pw2」,「Pw3」が登録されている。
【0055】
待機位置管理部77は、S41で、待機位置使用状況情報D5を参照して、S40で、特定された待機位置のうち、AMR80Aを待機させることが可能な位置を特定する。図7(c)で示されるように、待機位置使用状況情報D5には、項目「待機位置ID」、「使用状況」の各登録値が登録されている。項目「待機位置ID」は、既に説明した待機位置情報D4において、項目「待機位置ID」に登録された待機位置IDである。項目「使用状況」は、待機位置IDで特定される待機位置における、使用状況を示す登録値が登録されている。具体的には、項目「使用状況」に登録値「空き」が登録されていれば、この項目「使用状況」に対応する項目「待機位置ID」の登録値で特定される待機位置にAMR80が待機していないことを示している。一方、項目「使用状況」に登録値「使用中」が登録されていれば、この項目「使用状況」に対応する項目「待機位置ID」の登録値で特定される待機位置にAMR80が待機していることを示している。待機位置管理部77は、待機位置使用状況情報D5を参照して、S40で特定された待機位置のうち、項目「使用状況」に登録値「空き」が登録されている待機位置IDを特定する。そして、待機位置管理部77は、待機位置使用状況情報D5において、特定された待機位置IDのうち、項目「優先度」に最も高い優先度を示す登録値が登録されている待機位置IDに対応する待機位置を、AMR80Aを待機させる位置として特定する。
【0056】
項目「優先度」には、登録値として、一つの第1登録位置P1に関連付けられた複数の待機位置の中での優先度が登録されている。具体的には、登録値である数値が小さくなるほど、優先度が高くなる。例えば、目的地ID「1」で特定される第1登録位置P1に関連付けられた3つの待機位置ID「Pw1」,「Pw2」,「Pw3」では、対応する項目「使用状況」に全て登録値「空き」が登録されている。このため、項目「優先度」に登録された項目「優先度の登録値「1」に従い、待機位置Pw1がAMR80Aを待機させる位置として特定される。
【0057】
待機位置管理部77は、S42で、待機位置使用状況情報D5に対して、S41で特定された待機位置に対応する項目「使用状況」の登録値を「空き」から「使用中」に更新する。待機位置管理部77は、S43で、AMR80が第1登録位置P1に到着した順序に応じて、メモリ70に記憶された送信順序を設定する。送信順序については、後述する図8のS37で、待機位置で待機するAMR80に、第2登録位置P2への走行を開始するためのタスク指令値を送信する順序を示す情報である。ここでは、AMR80Aに対して送信順序を、最も早い順序である「1」に設定する。
【0058】
なお、待機位置管理部77は、S43で、運行管理情報D2に保存されているAMR80Aのタスクの進捗状況を考慮して、送信順序を定めるものであってもよい。例えば、AMR80Aのタスクの進捗状況として、荷物の搬送が完了している場合、荷物の搬送が完了していない他のAMR80が待機位置に待機していれば、このAMR80よりも送信順序を遅くするものであってもよい。これ以外にも、待機位置管理部77は、例えば、AMR80から送信されたAMR情報D11が、故障等の異常を示している場合に、異常を示すAMR80の送信順序を、異常を示さない他のAMR80の送信順序よりも後に定めてもよい。
【0059】
図8に戻り、指令値制御部75は、S31で、AMR80Aを、S30で特定した待機位置に走行させるための指令値を生成する指令値生成処理を実行する。具体的には、指令値制御部75は、S41で特定された待機位置に対応する、待機位置情報D4の項目「座標、向き」の各登録値を用いて、AMR80Aを、特定された待機位置へ走行させる指令値を生成する。
【0060】
指令値制御部75は、S32で、特定された待機位置へ走行させるための指令値を、AMR80Aに送信する。AMR80Aのタスク実行制御部23は、指令値を受信すると、S50で、受信した指令値を解釈して、待機位置Pw1への走行を開始する。これにより、図11に示されるように、AMR80Aは、待機位置Pw1に向けて走行する。
【0061】
AMR80Aの状態監視部25は、S51で、待機位置への到着を判断すると、S52で、AMR80Aの監視結果に応じて、AMR情報をメモリ70に記憶する。情報送信部21は、S53で、待機位置へ到着したことを示す完了通知と共に、AMR情報を運行管理サーバ90に送信する。
【0062】
運行管理サーバ90では、AMR80Aから待機位置Pw1に到着したことを示す完了通知を受信すると、指令値制御部75は、S33で、メモリ70に記憶された運行管理情報D2を更新する。具体的には、指令値制御部75は、AMR80Aに対応する運行管理情報D2に、現在の位置である待機位置Pw1の座標と、向きとを記憶する。
【0063】
指令値制御部75は、S34で、運行計画情報D1を参照して、タスクで指定される次の目的地である第2登録位置P2を特定する。S35で、指令値制御部75は、特定された第2登録位置P2へ走行するためのタスク指令を解釈して走行している他のAMR80がいるか否かを判断する。この例では、タスクで指定された次の第2登録位置P2は、エレベータである。具体的には、指令値制御部75は、メモリ70に記憶された登録位置使用状況情報D6を参照して、特定された第2登録位置P2の空き状況を判断する。図7(d)に示される登録位置使用状況情報D6には、項目「目的地ID」、「使用状況」に対応する登録値が登録されている。項目「目的地ID」には、登録値として、地図情報MP上での第2登録位置P2を特定する目的地IDが登録されている。項目「使用状況」は、登録値として目的地IDで特定される第2登録位置P2の使用状況が登録されている。なお、項目「使用状況」に登録値「空き」が登録されていれば、この項目「使用状況」に対応する項目「目的地ID」の登録値で特定される第2登録位置P2に他のAMR80が位置していないことを示している。一方、項目「使用状況」に登録値「使用中」が登録されていれば、この項目「使用状況」に対応する項目「目的地ID」の登録値で特定される第2登録位置P2に他のAMR80が位置していることを示している。なお、登録位置使用状況情報D6には、タスクで指定されている第1登録位置の目的地IDを登録値とする項目を含んでいてもよい。
【0064】
ここでは、登録位置使用状況情報D6において、特定された第2登録位置P2に対応する項目「使用状況」に登録値「空き」が登録されており(S35:NO)、指令値制御部75は、S37に進む。指令値制御部75は、S37で、メモリ70に記憶された送信順序に従って、AMR80Aにタスクで指定される第2登録位置P2(この例では、エレベータ)に走行させるためのタスク実行指令を生成する。AMR80Aに対応する送信順序は、最も送信順序が早いことを示す「1」に設定されている。
【0065】
指令値制御部75は、S38で、生成したタスク実行指令を、AMR80Aに送信する。AMR80Aは、タスク実行指令を受信すると、既に説明したように、受信したタスク実行指令を解釈して、図12に示すように、待機位置Pw1からエレベータへ向けて自律走行を開始する。
【0066】
待機位置管理部77は、S39で、メモリ70に記憶された送信順序を更新する。この例では、AMR80Aを、待機位置Pw1から第2登録位置P2に走行させるため、AMR80Aに対して指定した送信順序を「1」から「0」に変更し、送信順序で管理される対象からAMR80Aを除外する。また、待機位置使用状況情報D5に対して、S42で更新したAMR80Aを待機させる位置として特定した待機位置Pwに対応する項目「使用状況」の登録値を「使用中」から「空き」に更新する。
【0067】
S38でのタスク実行指令の送信により、AMR80Aは、タスクで指定されているエレベータ(第2登録位置P2)に向けて走行を開始し、指令値制御部75は、図6のS14に戻る。即ち、AMR80Aは、運行管理サーバ90により、既に説明した、図6で示す、タスクを指定した処理に従って、運行が管理されることとなる。
【0068】
次に、図13に示すように、エレベータに、AMR80Aが位置している状態で、AMR80Bが、タスクで指定された第1登録位置P1に向けて自律走行している場面を説明する。なお、この例では、第1登録位置P1に関連付けられた待機位置Pw1,Pw2,Pw3には、他のAMR80が待機していないものとする。
【0069】
図8のS30で実行される待機位置監視処理において、待機位置管理部77は、S40で、待機位置情報D4から、AMR80Bの現在の位置(即ち、第1登録位置P1)に関連付けられた待機位置を特定する。待機位置管理部77は、S41で、メモリ70に記憶された待機位置使用状況情報D5を参照して、S40で特定した待機位置のうち、AMR80Bを待機させることが可能な位置を特定する。この例では、目的地ID「1」で指定される第1登録位置P1に関連付けられた3つの待機位置Pw1,Pw2,Pw3には、項目「使用状況」の登録値が全て「空き」であるため、項目「優先度」の登録値が最も優先度が高い待機位置Pw1を、AMR80Bを待機させる位置として特定する。
【0070】
待機位置管理部77は、S42で、待機位置使用状況情報D5を更新する。この例では、待機位置管理部77は、S41で特定された待機位置Pw1に対応する項目「使用状況」の登録値を、「空き」から「使用中」に変更する。S43で、待機位置管理部77は、AMR80Bに対応する送信順序を設定し、メモリ70に記憶する。
【0071】
図8のS31で、指令値制御部75は、AMR80Bを、特定した待機位置Pw1に走行させるための指令値を生成する。指令値制御部75は、S32で、AMR80Bを特定された待機位置Pw1へ走行させるための指令値を、AMR80Bに送信する。AMR80Bは、指令値を受信すると、S50で、受信した指令値を解釈して、待機位置Pw1まで自律走行する。S51~S53の処理は、既に説明している。
【0072】
運行管理サーバ90の指令値制御部75は、AMR80Bから待機位置に到着したことを示す完了通知を受信すると、S33で、メモリ70に記憶された運行管理情報D2を更新する。指令値制御部75は、S34で、運行計画情報D1を参照して、タスクで指定される次の目的地である第2登録位置P2を特定する。指令値制御部75は、S35で、メモリ70に記憶された登録位置使用状況情報D6を参照して、特定された第2登録位置P2の空き状況を判断する。この例では、図13で示されるように、エレベータ(第2登録位置P2)には、AMR80Aが位置しているため、登録位置使用状況情報D6において、エレベータを識別する目的地IDに対応する項目「使用状況」には、「使用中」が登録されている(S35:YES)。そのため、指令値制御部75は、S36で、AMR80Bを待機位置で待機させるための指令値を、AMR80Bに送信する。
【0073】
AMR80Bは、S36で送信された指令値を受信すると、図14に示されるように、指令値により指定された待機位置Pw1まで走行し、この待機位置Pw1に待機する。また、AMR80Bは、待機位置Pwに待機している期間において、既に説明した、S21,S22での定期送信により、AMR情報D11を運行管理サーバ90に送信する。運行管理サーバ90では、AMR80Bの待機期間において、受信したAMR情報D11を用いて、運行管理情報D2を更新する。また、S36で送信される指令値は、例えば、AMR80Bを、消費電力を低下させるスリープモードに変化させた状態で、待機位置に待機させる指令値であってもよい。これ以外にも、指令値制御部75は、AMR80Bを待機させる期間では、AMR80Bに対して指令値を送信しなくともよい。この場合において、S36の処理は省略される。
【0074】
次に、図15に示すように、エレベータ(第2登録位置P2)に、AMR80Aが位置している状態で、AMR80Cが、タスクで指定された第1登録位置P1に向けて自律走行している場面を説明する。なお、この例では、第1登録位置P1に関連付けらえた待機位置Pw1には、AMR80Bが待機しているものとする。
【0075】
運行管理サーバ90の待機位置管理部77は、既に説明したように、図9のS40で、AMR80Cの現在の第1登録位置P1に応じて、待機位置を特定する。待機位置管理部77は、S41で、メモリ70に記憶された待機位置使用状況情報D5を参照して、S40で特定した待機位置のうち、AMR80Cを待機させることが可能な位置を特定する。この例では、目的地ID「1」で指定される第1登録位置P1に関連付けられた項目「待機位置」の登録値「Pw1」,「Pw2」,「Pw3」で特定される待機位置のうち、待機位置Pw1には、AMR80Bが待機しており、待機位置Pw2,Pw3のみ項目「使用状況」に「空き」が登録されている。そのため、待機位置管理部77は、待機位置Pw2,Pw3のうち、優先度が最も高い(この例では、「2」)待機位置Pw2を、AMR80Cを待機させる位置として特定する。
【0076】
待機位置管理部77は、S42で、待機位置使用状況情報D5に対して、特定した待機位置に対応する項目「使用状況」の登録値を「空き」から「使用中」に更新する。待機位置管理部77は、S43で、待機位置に待機するAMR80のうち、第1登録位置P1に到着した順序に応じて、AMR80Cに対応する送信順序を「2」に設定し、メモリ70に記憶する。
【0077】
図8に戻り、指令値制御部75は、S31で、AMR80Cを特定した待機位置Pw2に走行させるための指令値を生成する。指令値制御部75は、S32で、特定された待機位置Pw2へ走行させるための指令値を、AMR80Cに送信する。AMR80Cは、指令値を受信すると、S50で、受信した指令値を解釈して、図16に示されるように、AMR80Cを待機位置Pw2へ走行させる。S51~S53の処理は既に説明している。
【0078】
運行管理サーバ90の指令値制御部75は、AMR80Cから待機位置に到着したことを示すAMR情報を受信すると、図8のS33で、メモリ70に記憶された運行管理情報D2を更新する。指令値制御部75は、S34で、運行計画情報D1を参照して、タスクで指定される次の目的地である第2登録位置P2を特定する。指令値制御部75は、S35で、メモリ70に記憶された登録位置使用状況情報D6を参照して、特定された第2登録位置P2の空き状況を判断する。この例では、エレベータには、AMR80Aが位置しているため、登録位置使用状況情報D6において、エレベータを識別する目的地IDに対応する項目「使用状況」には「使用中」が登録されている。そのため、指令値制御部75は、S36に進み、AMR80Cに対して待機位置Pw2で待機させるための指令値を送信する。
【0079】
既に説明したように、この例においても、AMR80Aがエレベータに位置している期間では、AMR80Cは、待機位置Pw2での待機を継続する。これにより、待機位置Pw1には、AMR80Bが待機し、待機位置Pw2には、AMR80Cが待機することになる。
【0080】
エレベータがフロアーF2に到達し、AMR80Aが、タスクで指定されたエレベータからの降車完了を示す完了通知を運行管理サーバ90に送信したとする。なお、AMR80Aに対する運行制御は、図6を用いて既に説明している。この例では、待機位置Pw1にAMR80Bが待機し、待機位置Pw2にAMR80Cが待機しているものとする。
【0081】
AMR80Aが、エレベータからの降車完了を判断すると、情報送信部21は、降車完了を示す完了通知、及び現在の位置を含むAMR情報を運行管理サーバ90に送信する。運行管理サーバ90の待機位置管理部77は、AMR80Aから、エレベータの降車を示す完了通知を受信すると、図17のS60に進み、メモリ70に記憶された、登録位置使用状況情報D6に対して、AMR80Aに対応する値を更新する。具体的には、待機位置管理部77は、登録位置使用状況情報D6において、AMR80Aが降車した第2登録位置P2の目的地IDに対応する項目「使用状況」の登録値を、「使用中」から、「空き」に変更する。待機位置管理部77は、既に説明した、AMR80Aから、S25でのエレベータへの乗車完了(即ち、第2登録位置P2への到着)を示す完了通知と、S25でのエレベータの降車完了を示す完了通知とを共に受信していることを条件に、S60で、登録位置使用状況情報D6の項目「使用状態」の登録値を、「使用中」から「空き」に変更するものであってもよい。
【0082】
なお、AMR80Aのタスク実行制御部23は、指定されたタスクによりエレベータの降車を判断する以外にも、以下の方法でエレベータの降車を判断してもよい。具体的には、タスク実行制御部23は、エレベータの出入口に向けて走行する際に、予め登録されているエレベータの特徴情報を外界センサ11により検出できなくなった場合に、エレベータの降車を判断し、エレベータの降車完了を示す完了通知を運行管理サーバ90に送信するものであってもよい。これ以外にも、運行管理サーバ90の指令値制御部75は、AMR80Aからエレベータの降車完了を示す通知を受け付けることに代えて、図6で説明した定期通信(S21,S22)において、AMR80Aの位置が予め登録されているエレベータの座標から離れ始めたことを判断した場合に、S60の処理を開始してもよい。
【0083】
指令値制御部75は、S61で、メモリ70に記憶された送信順序を参照し、待機位置Pwに待機するAMR80のうち、第2登録位置P2に向けて走行させるAMR80を特定する。この例では、送信順序「1」は、待機位置Pw1に待機するAMR80Bであるため、待機位置管理部77は、AMR80Bをエレベータに向けて走行させるAMR80として特定する。
【0084】
指令値制御部75は、S62で、特定されたAMR80Bを、待機位置Pwからエレベータ(第2登録位置P2)に向けて走行させるための指令値を生成する。指令値制御部75は、S63で、生成された指令値を、AMR80Bに送信する。AMR80Bは、指令値を受信すると、S70で、受信した指令値を解釈して、図18で示されるように、待機位置Pw1から、エレベータに向けて自律走行を開始する。
【0085】
AMR80Bの状態監視部25は、S71で、エレベータへの到着を判断すると、S72で、監視結果に応じて、AMR情報をメモリ70に記憶する。情報送信部21は、S73で、エレベータに到着したことを示す完了通知と共に、AMR情報を運行管理サーバ90に送信する。なお、既に説明したように、AMR80Bが、エレベータ(第2登録位置P2)に到着した後は、図6で示す処理に従って、運行管理サーバ90により、AMR80Bの運行が制御される。
【0086】
運行管理サーバ90では、AMR80Bからエレベータに到着したことを示す完了通知を受信すると、進捗管理部76は、S64で、メモリ70に記憶されたAMR80Bに対応する運行管理情報D2を更新する。待機位置管理部77は、S65で、メモリ70に記憶された待機位置使用状況情報D5を更新する。この例では、AMR80Bが、待機位置Pw1から離れたため、待機位置Pw1に対応する目的地IDに対応する項目「使用状況」の登録値を「使用中」から「空き」に変更する。また、待機位置管理部77は、S66で、メモリ70に記憶された登録位置使用状況情報D6に対して、AMR80Bに対応する値を更新する。具体的には、待機位置管理部77は、登録位置使用状況情報D6において、AMR80Bが到着した第2登録位置P2の目的地IDに対応する項目「使用状況」の登録値を、「空き」から、「使用中」に変更する。
【0087】
待機位置管理部77は、S67で、待機位置Pwに待機するAMR80に対して送信順序の変更を行う。指令値制御部75は、S68で、待機位置Pwに待機するAMR80に対して、待機位置を優先度が高い位置に変更させるための指令値を生成する。具体的には、待機位置に待機するAMR80のうち、最も送信順序の早いAMR80から順番に、待機位置使用状況情報D5の項目「使用状況」に「空き」が登録され、かつ待機位置情報D4の項目「優先度」に最も高い優先度が登録された新たな待機位置を特定する。そして、待機位置に待機するAMR80を、特定された新たな待機位置に移動させるための指令値を生成する。指令値制御部75は、S69で、生成した指令値を送信する。
【0088】
これにより、図19に示されるように、待機位置Pw2に待機していた、AMR80Cは、待機位置Pw2よりも優先度が高い待機位置Pw1に移動する。なお、説明が省略するが、運行管理サーバ90は、その後に、AMR80Bがエレベータから降車したことを判断すると、待機位置Pw1に待機するAMR80Cに対しても、指令値を送信し、AMR80Cをエレベータに向けて走行させる。
【0089】
以上説明した本実施形態では、以下の効果を奏することができる。
運行管理サーバ90は、タスクで指定された第1登録位置P1にAMR80が到達すると、この第1登録位置P1に到達したAMR80を待機位置へ走行させる。そして、いずれかのAMR80が、第1登録位置P1の次の目的地である第2登録位置P2に位置している場合は、待機位置に待機させたAMR80に、第2登録位置P2へ走行させるための指令を送信しないことで、AMR80を待機させる。一方で、いずれかのAMR80が、第2登録位置P2に位置していない場合は、待機位置に待機させたAMR80に、第2登録位置P2へ走行させるための指令を送信する。これにより、運行管理サーバ90が、複数のAMR80の運行を管理する場合において、複数のAMR80が、タスクで指定された第1登録位置P1から第2登録位置P2に向けて一度に走行することがなく、AMR80の走行渋滞や、走行不能を抑制することができる。
【0090】
待機位置管理部77は、複数の待機位置に、AMR80が待機しているか否かを監視する。指令値制御部75は、待機位置管理部77による監視結果に応じて、第1登録位置P1に到達したAMR80に、複数の待機位置のうちAMR80が待機していない待機位置へ走行させる指令を送信し、待機位置に待機させたAMR80に対して、第1登録位置P1に到着した順序に応じて、第2登録位置P2へ走行させるための指令を送信する順序を示す送信順序を設定する。指令値制御部75は、複数のAMR80の内いずれかのAMR80が、第2登録位置P2に位置していないと判断している場合は、待機位置に待機させた複数のAMR80に、送信順序に従って、第2登録位置P2へ走行させるための指令を送信する。これにより、複数のAMR80が、第1登録位置P1に向けて走行してくる場面においても、AMR80を各待機位置に待機させることができる。そして、定められた送信順序に従って、各待機位置に待機させたAMR80を、第2登録位置P2へ向けて走行させることができる。
【0091】
指令値制御部75は、待機位置に待機している複数のAMR80に対して設定される送信順序を、運行管理情報D2に保存された現在のタスクの進捗状況を示す情報に応じて変更し、変更された送信順序に従って、待機位置に待機しているAMR80に、第2登録位置P2へ走行させるための指令を送信する。例えば、図18において、AMR80Cに設定された送信順序が、AMR80Bに設定された送信順序よりもタスクの進捗状況を示す情報に応じて早く変更された場合、指令値制御部75は、S63で、生成された指令値を、AMR80Cに送信する。AMR80Cは、S70で、受信した指令値を解釈して、待機位置Pw2から、エレベータに向けて自律走行を開始する。これにより、AMR80における現在のタスクの進捗状況に応じて、各待機位置から第2登録位置P2へ走行させる順序を柔軟に変更することができる。
【0092】
指令値制御部75は、運行管理情報D2に保存された現在のAMR80の位置に応じて、第2登録位置P2に、複数のAMR80の内いずれかのAMR80が位置しているか否かを判断する。これにより、運行管理サーバ90がAMR80の運行管理のために使用している状態情報を流用することができる。
【0093】
(第1実施形態の変形例)
上述の実施形態では、運行管理サーバ90は、第1登録位置P1に到着したAMR80を、必ず、待機位置に走行させた。これに代えて、運行管理サーバ90は、AMR80が第1登録位置P1に到着したときに、第2登録位置P2にAMR80が位置してなければ、第1登録位置P1に到着したAMR80を待機位置に走行させることなく、第2登録位置P2に走行させてもよい。
【0094】
この場合において、図8のS30を実行する前に、指令値制御部75は、登録位置使用状況情報D6を参照する。指令値制御部75は、第2登録位置P2に他のAMR80が位置していない場合、S37に進み、第1登録位置P1に到着したAMR80を、第2登録位置へ走行させるためのタスク実行指令を生成する。S38で、指令値制御部75は、タスク実行指令をAMR80に送信することで、AMR80を、第1登録位置P1の次の目的地として指定されている第2登録位置P2に走行させる。これにより、第1登録位置P1に到着したAMR80を、待機位置に走行させる必要がない場面では、AMR80をそのまま第2登録位置P2に走行させることができるため、AMR80の運行管理における不要な時間の遅延を抑制することができる。
【0095】
上述の実施形態では、運行管理サーバ90の指令値制御部75は、図8のS35で、登録位置使用状況情報D6を参照して、第2登録位置P2であるエレベータに他のAMR80が位置しているか否かを判断した。これに代えて、指令値制御部75は、S35において、メモリ70に記憶された運行管理情報D2を直接参照して、現在、運行管理を行っているAMR80の中に、第2登録位置P2であるエレベータにAMR80が位置しているか否かを判断するものであってもよい。この場合において、指令値制御部75は、S35で、運行管理情報D2に蓄積された各AMR80の現在の位置として、エレベータに対応する目的地ID、名称、座標が保存されていれば(S35:YES)、S36に進めばよい。
【0096】
(その他の実施形態) 本明細書で開示される技術は、上述の実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の形態に変形することができ、例えば次のような変形も可能である。
地図情報MP上で登録される第1登録位置P1と、第2登録位置P2とを、走路の形状や、走路の種別に合わせて、以下のように配置するものであってもよい。図20は、別例として、地図情報MP上で、第1登録位置P1と第2登録位置P2とが登録された交互通路を示している。図20に示す交互通路は、道幅の広い第1幅広路R1及び第2幅広路R2と、第1幅広路R1と第2幅広路R2との間に位置し、第1,第2幅広路よりも道幅の狭い幅狭路R3とにより構成されている。なお、第1,第2幅広路R1,R2は、複数のAMR80が並列走行可能な道幅の走路である。図20で示す交互通路では、第1幅広路R1において第1登録位置P1が定められ、第2幅広路R2において第2登録位置P2が登録されている。また、第1幅広路R1に待機位置Pw1,Pw2,Pw3が位置している。これ以外にも、第2幅広路R2に第1登録位置P1が定められ、第1幅広路R1に第2登録位置P2が定められていてもよい。この場合において、第2幅広路R1に待機位置Pw1,Pw2,Pw3が位置している。更には、第1幅広路R1に待機位置が位置していることに加えて、第2幅広路R2においても待機位置が位置していてもよい。
【0097】
図21は、別例として、地図情報MP上で、第1登録位置P1と第2登録位置P2とが登録された袋小路を示している。図21に示す袋小路は、直進路R4と、この直進路R4にのみ連なる行止り路R5とにより構成されている。図21で示す袋小路では、地図情報MP上で、直進路R4に第1登録位置P1が登録され、行止り路R5において第2登録位置P2が登録されている。また、直進路R4に待機位置Pw1,Pw2,Pw3が位置している。
【0098】
上述の実施形態では、図10に示されるように、一つの第1登録位置P1に関連付けられた待機位置は、第2登録位置P2であるエレベータに近いほど、優先度が高く設定されていた。これに代えて、待機位置は、エレベータに遠くなるほど、優先度が高く設定されていてもよい。この例では、待機位置Pw3,Pw2,Pw1の順で、待機位置情報D4の項目「優先度」に優先度が高い値が登録されることとなる。また、一つの第1登録位置P1に関連付けられた複数の待機位置の配置は、図10で示すように、第2登録位置P2であるエレベータの出入口の開口に対して垂直となる配列態様に限らない。例えば、エレベータの出入口の開口に対して、3つの待機位置Pwが平行に配列していてもよい。この場合において、3つの待機位置における優先度の高低は、その使用状態に応じて、適宜設定されるものであればよい。
【0099】
上述の実施形態では、3台のAMR80の運行制御を例に説明を行ったが、これに限らず、3台以上のAMR80の運行制御を行うものであってもよい。この場合においても、一つの第1登録位置P1に関連付けられた待機位置の数は、運行管理サーバ90により運行が管理されるAMRの数だけ配置されればよい。
【0100】
上述の実施形態では、運行管理サーバ90は、図8のS35で、運行管理情報D2に保存されたAMR80の位置に応じて定められた登録位置使用状況情報D6から、第2登録位置P2にAMR80が位置しているか否かを判断した。これに代えて、第2登録位置P2に、AMR80を検出するセンサが配置されている場合に、運行管理サーバ90は、S35で、このセンサからの出力に応じて、第2登録位置P2にAMR80が位置しているか否かを判断してもよい。
【0101】
上述の実施形態では、AMR80は、運行管理サーバ90から送信された運行計画情報D1を受信し、メモリ15に保存した。これに代えて、AMR80のサービス内容に変更がない場合に、工場出荷時から、AMR80のメモリ15に運行計画情報D1が保存されていてもよい。
【0102】
上述の実施形態では、運行管理アプリケーションプログラム64は、PC93のメモリに記憶されていたが、運行管理サーバ90のメモリ(不図示)に記憶されていてもよい。この場合において、運行管理サーバ90のコントローラ72は、運行管理アプリケーションプログラム64を実行することにより、運行計画作成処理による運行計画情報D1の作成や、運行状況表示処理による表示をネットワークを介して行うことができる。
【0103】
上述の実施形態では、自律走行ロボットに適用していたが、自律走行車両や無人搬送車両などにも適用可能である。
【符号の説明】
【0104】
10…コントローラ、14…通信IF、20…指令受信部、21…情報送信部、23…タスク実行制御部、25…状態監視部、75…指令値制御部、76…進捗管理部、77…待機位置管理部、80…自律走行ロボット、90…運行管理サーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21