以下、本発明による移動体配置装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態による移動体配置装置は、移動体の経路に応じた要求度マップを管理しており、その要求度マップを用いて、タスクの割り当てられていない移動体が要求度の高いところに配置されるようにするものである。
図1は、本実施の形態による移動体配置装置1の構成を示すブロック図である。本実施の形態による移動体配置装置1は、受付部11と、経路取得部12と、経路情報記憶部13と、管理部14と、要求度マップ記憶部15と、配置部16と、出力部17とを備える。
受付部11は、移動体に関する複数の経路情報を受け付ける。経路情報は、タスクを実行する移動体の経路の出発地と目的地とを少なくとも有する情報である。経路情報には、例えば、出発地から目的地までの経路を示す情報(以下、単に「経路」と呼ぶこともある)も含まれていてもよい。その経路は、例えば、移動体の移動のために探索された経路であってもよく、または、移動体の実際の移動に応じて記録された経路であってもよい。経路情報に経路が含まれない場合には、経路情報に含まれる出発地から目的地までの経路が移動体配置装置1や他の装置において生成されてもよい。本実施の形態では、経路情報に経路が含まれておらず、その経路情報に対応する経路が移動体配置装置1で生成される場合について主に説明する。この経路情報は、その経路に応じた移動体の移動が完了した後に受け付けられてもよく、または、完了前に受け付けられてもよい。後者の場合には、例えば、移動体へのタスクの割り当て前に、そのタスクに応じた経路情報が受け付けられてもよく、または、タスクの割り当て後に、そのタスクに応じた経路情報が受け付けられてもよい。本実施の形態では、前者の場合について主に説明する。また、受付部11は、経路情報と共に経路情報に対応する時点をも受け付けてもよい。その時点は、例えば、時刻を示すものであってもよく、日時を示すものであってもよく、年月日を示すものであってもよい。受付部11は、例えば、経路情報と時点とを同時に受け付けてもよく、そうでなくてもよい。後者の場合には、例えば、経路情報の入力元と、時点の入力元とが異なっていてもよい。具体的には、受付部11は、経路情報を受け付けた時に、図示しないカレンダー部や時計部から、その経路情報に対応する時点を読み出してもよい。本実施の形態では、その場合について主に説明する。受付部11で受け付けられる時点は、例えば、経路情報が受け付けられた時点を示すものであってもよく、経路情報に応じたタスクが発生した時点を示すものであってもよく、経路情報に応じたタスクが完了した時点を示すものであってもよく、その時点に対応する経路情報に関するその他の時点を示すものであってもよい。受付部11は、受け付けた経路情報や、経路情報に対応する時点を経路情報記憶部13に蓄積する。受付部11は、例えば、移動体や、移動体による移動を管理しているサーバ等から経路情報を受け付けてもよく、タスクを管理しているサーバや、タスクの入力を行うオペレータ等から経路情報を受け付けてもよく、その他の装置等から経路情報を受け付けてもよい。
受付部11は、ある移動体によるタスクの実行が終了し、その移動体がタスクの割り当てられていない移動体(以下、「フリーの移動体」と呼ぶこともある)となった場合に、その移動体から、タスクの実行が完了してフリーになった旨や、その移動体の現在位置、識別子などを受け付けてもよい。そして、受付部11は、そのフリーになった移動体の現在位置等を配置部16に渡してもよい。また、受付部11は、経路情報と共に、その経路情報に対応するタスクをも受け付けてもよい。
移動体は、例えば、走行する走行体であってもよく、または、飛行する飛行体であってもよい。また、移動体は、例えば、台車であってもよく、ロボットであってもよい。ロボットは、例えば、エンターテインメントロボットであってもよく、監視ロボットであってもよく、搬送ロボットであってもよく、清掃ロボットであってもよく、その他のロボットであってもよい。移動体の移動領域は、例えば、移動体が監視を行う領域や、移動体が搬送を行う領域、移動体が掃除を行う領域などであってもよい。また、移動体は、自動車であってもよい。移動体が自動車である場合に、その自動車は、例えば、人間が運転するものであってもよく、または、人間が運転しないもの(例えば、自動運転車等)であってもよい。その自動車は、例えば、タクシーであってもよい。また、飛行体は、例えば、回転翼機であってもよく、飛行機であってもよく、飛行船であってもよく、その他の飛行体であってもよい。任意の位置に移動可能であるという観点からは、飛行体は、回転翼機であることが好適である。回転翼機は、例えば、ヘリコプターであってもよく、3個以上の回転翼(ロータ)を有するマルチコプターであってもよい。マルチコプターは、例えば、4個の回転翼を有するクワッドロータであってもよく、その他の個数の回転翼を有するものであってもよい。走行体である移動体は、例えば、走行部(例えば、車輪や無限軌道など)と、その走行部を駆動する駆動手段(例えば、モータやエンジンなど)とを有していてもよい。また、飛行体である移動体は、例えば、回転翼と、その回転翼を駆動する駆動手段とを有していてもよく、プロペラと、そのプロペラを駆動する駆動手段とを有していてもよい。本実施の形態では、移動体が搬送台車である場合について主に説明する。
移動体の実行するタスクは、その移動体の種類に応じたものとなる。例えば、搬送台車である移動体のタスクは搬送であり、監視ロボットである移動体のタスクは監視であり、清掃ロボットである移動体のタスクは清掃であり、エンターテインメントロボットである移動体のタスクは人々を楽しませることである。そのタスクには、経路が対応付けられているものとする。例えば、搬送台車である移動体の経路は搬送経路であり、監視ロボットである移動体の経路は監視経路であり、清掃ロボットである移動体の経路は清掃経路であり、エンターテインメントロボットである移動体の経路は巡回経路である。移動体は、ある経路に沿って自律的に移動することができるものである。移動体は、例えば、経路と、取得した現在位置とを用いて、その経路に沿った移動を行ってもよい。その現在位置は、例えば、GPS(Global Positioning System)や、屋内GPS等によって取得されてもよい。移動体は、その経路を受け付けてもよく、または、生成してもよい。本実施の形態では、移動体が経路を移動体配置装置1から受け付ける場合について主に説明する。また、移動体が、ある経路に沿って移動中に障害物を検知した場合には、例えば、障害物を回避する経路を新たに生成することや、その検知した位置に所定の期間停止することなどによって障害物を回避してもよい。
受付部11は、例えば、入力デバイス(例えば、キーボードやマウス、タッチパネルなど)から入力された情報を受け付けてもよく、有線または無線の通信回線を介して送信された情報を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された情報を受け付けてもよい。なお、受付部11は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、または含まなくてもよい。また、受付部11は、ハードウェアによって実現されてもよく、または所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
経路取得部12は、経路情報に含まれる出発地から目的地までの経路を取得する。経路取得部12は、例えば、ラプラスポテンシャル法や、A*アルゴリズム、RRT(Rapidly-exploring Random Tree)などの公知の方法を用いて、経路を生成してもよい。経路取得部12は、経路の生成時に地図情報を用いてもよい。地図情報を用いる場合には、移動体配置装置1において地図情報が保持されていてもよい。その地図情報は、例えば、図2Aで示されるものであってもよい。なお、図2Aにおいて、斜線の網掛け領域は、走行体である移動体が通過できない障害物を示している。また、経路取得部12は、他の装置やサーバに出発地と目的地とを送信し、それに応じて、他の装置で生成された経路を受信することによって経路を取得してもよい。経路取得部12は、例えば、出発地P3から目的地P1までの図2Bで示される経路を取得してもよい。その経路は、例えば、出発地P3から目的地P1までの搬送のタスクに対応した経路であってもよい。経路取得部12は、取得した経路を、その経路に対応する経路情報に対応付けて経路情報記憶部13に蓄積してもよい。経路を蓄積するとは、厳密には、経路を示す情報を蓄積することである。また、経路取得部12は、タスクを割り当てる移動体の現在位置から、そのタスクの出発地までの経路も取得してもよい。また、経路取得部12は、移動体の現在位置から配置位置までの経路も取得してもよい。その配置位置については後述する。
経路情報記憶部13では、受付部11で受け付けられた経路情報や、経路情報に対応する時点などが記憶される。また、経路情報に経路が含まれていない場合には、経路情報記憶部13において、その経路情報に対応付けられて経路が記憶されてもよい。経路情報記憶部13での記憶は、RAM等における一時的な記憶でもよく、または、長期的な記憶でもよい。経路情報記憶部13は、所定の記録媒体(例えば、半導体メモリや磁気ディスクなど)によって実現されうる。
管理部14は、要求度マップにおいて、受付部11によって受け付けられた各経路情報に対応する経路に応じた要求度を管理する。要求度マップとは、移動体の移動領域に対応するマップであって、要求度の分布のマップである。その要求度は、移動体が要求される程度を示す値である。したがって、要求度マップにおいて要求度の高いところに、フリーの移動体が存在するようになることが好適である。その要求度は、上限及び下限を有する値である。その上限及び下限は特に限定されないが、本実施の形態では、上限が正の実数であり、下限が0である場合について主に説明する。ここで、要求度に上限の存在する理由について簡単に説明する。要求度に上限がなかった場合には、ある地点の要求度が非常に高くなることがありうる。そのようになると、後述するように、その箇所に多くのフリーの移動体を配置させても、その箇所の要求度が他の箇所に比べてまだ高いこともありうる。その結果、フリーの移動体が一箇所に密集してしまうことになり、移動体の移動に支障が生じる可能性がある。そのような移動体の密集を避けるため、要求度に上限を設けている。その要求度マップは、要求度マップ記憶部15で記憶されているものとする。要求度マップにおける要求度は、例えば、図3Aで示されるような要求度マップの部分領域ごとに管理されていてもよく、図3Bで示されるような要求度マップに配置された複数の点ごとに管理されていてもよい。部分領域や複数の点は、図3A,図3Bで示されるように、規則的に配置されることが好適である。要求度マップは、例えば、部分領域ごとの要求度を有する情報であってもよく、要求度マップに配置された複数の点ごとに要求度を有する情報であってもよい。本実施の形態では、部分領域ごとに要求度が管理されている要求度マップについて主に説明する。なお、要求度が管理されているとは、要求度が記憶されており、経路情報の受け付け等に応じて適宜、更新されることあってもよい。
管理部14は、要求度マップにおいて、経路情報に対応する経路の出発地から目的地に向かって要求度が下がるように要求度マップを管理するものとする。すなわち、出発地S1から目的地G1までの経路に対応する経路情報が受け付けられた場合には、管理部14は、その経路に応じた要求度を、要求度マップに加算する。その加算対象の要求度は、出発地S1に近いほど要求度が高くなり、目的地G1に近いほど要求度が低くなる要求度である。その加算対象の要求度は、例えば、図4Aで示されるように、出発地からの距離に応じて減少する要求度であってもよい。図4Aでは、縦軸は要求度であり、横軸は出発地からの距離である。なお、要求度は、出発地S1からの距離に対して単調減少であると考えてもよく、単調非増加であると考えてもよい。また、図4Aにおいては、出発地S1における要求度と、単位距離あたりの要求度の減少幅(すなわち、図4Aのグラフの傾き)とが設定されていてもよい。出発地S1から目的地G1まで、ある移動体が移動したとすると、その後、同様の移動が要求される可能性もあると考えられる。そのように、同じ経路での移動が要求される場合には、フリーの移動体が出発地S1付近に存在することによって、より早くタスクに対応できるようになる。そのため、例えば、図4Aで示されるように、出発地S1に近いほど要求度が高くなるようになっている。管理部14は、例えば、図2Cで示されるように複数の経路に対応する経路情報が受け付けられている場合に、図2Dで示されるように、各経路に応じた要求度を要求度マップに加算してもよい。なお、図4Aで示される出発地からの距離と要求度との関係の場合には、例えば、目的地においても、下限値より大きい目的地が追加される可能性もある。しかしながら、目的地において移動体が要求されることはないため、管理部14は、例えば、図4Bで示されるように、目的地において要求度が0になるように経路に応じた要求度の加算を行ってもよく、図4Cで示されるように、目的地よりも出発地に近いところで要求度が0になるように経路に応じた要求度の加算を行ってもよい。図4Bや図4Cの場合には、単位距離あたりの要求度の減少幅は、経路ごとに異なっていてもよい。また、距離と要求度との関係は、図4A〜図4Cで示されるような線形でなくてもよい。具体的には、距離と要求度との関係は、図4Dや図4Eで示されるように、非線形のものであってもよい。また、例えば、移動体のタスクの実行能力に応じて、距離と要求度との関係を変化させてもよい。例えば、搬送能力が高い移動体に対応する経路情報に応じた要求度は、図4Dで示されるように変化させ、その移動体よりも搬送能力が低い移動体に対応する経路情報に応じた要求度は、図4Eで示されるように変化させてもよい。
図3Aで示されるように部分領域ごとに要求度が管理されている場合には、管理部14は、例えば、ある部分領域を経路が通過する場合に、その部分領域に含まれる部分経路における最大の要求度と、最低の要求度とを特定し、両者の平均を、その部分領域に対応する要求度としてもよい。なお、平均に代えて、部分経路の他の代表値、例えば、最大値や最小値を、その部分領域に対応する要求度としてもよい。また、管理部14は、例えば、ある部分領域を経路が通過する場合に、その部分領域に含まれる部分経路の代表点(例えば、出発地側の端点や、目的側の端点、両端点の中点など)に対応する要求度を、その部分領域に対応する要求度としてもよい。また、各経路に幅を設定し、その幅の設定された経路の通過する部分領域において、同様のことを行ってもよい。なお、その幅は、例えば、移動体の幅や移動体が通る通路の幅と同じであってもよく、または、それとは異なる幅であってもよい。後者の場合には、例えば、その経路の幅は、通路の幅よりも広く設定されてもよい。図2Dにおいても、幅の設定された経路について、要求度を加算している。なお、図2Dでは、色の濃い箇所が要求度の高い箇所となっている。また、その幅は、出発地から目的地に向かって狭くなるように設定されてもよい。また、ある部分領域の一部にのみ、幅の設定された経路が通過する場合には、その部分領域に含まれる経路の面積の割合に応じて、その部分領域に対応する要求度を決定してもよい。具体的には、ある部分領域jを通過する経路の最大値がHV1であり、最小値がLV1であり、その部分領域jのうち、経路の通過している面積の割合がRA1である場合には、その部分領域jに対応する要求度を、RA1×(HV1+LV1)/2としてもよい。なお、0≦RA1≦1としている。また、図3Bで示されるように複数の点ごとに要求度が管理されている場合には、管理部14は、例えば、幅のある経路がある点を通過するときに、その点の位置における要求度を、その点に対応する要求度としてもよい。なお、ここで説明した以外の方法によって、経路に応じた要求度が決められてもよいことは言うまでもない。
また、経路情報に応じた要求度は、例えば、その経路情報が有する出発地及び目的地の少なくとも一方に応じて異なってもよい。具体的には、ある出発地S1からの経路には、要求度が全体として高い値に設定されており、別の出発地S2からの経路には、出発地S1からの経路に応じた要求度よりも低い要求度が設定されていてもよい。このように、出発地や目的地に応じて要求度を変えることにより、例えば、より重要な出発地の付近の要求度が高くなるようにすることができる。その結果、その重要な出発地からの経路に応じたタスクが発生した場合に、フリーの移動体がより早く、その出発地に到達することができるようになりうる。また、経路情報に応じた要求度は、例えば、その経路情報に対応するタスクの重要度に応じて異なってもよい。経路情報に対応するタスクとは、その経路情報に応じた経路をある移動体が移動する際に実行されるタスクのことであってもよい。このように、タスクの重要度に応じて要求度が異なることにより、例えば、重要なタスクに対応する要求度のほうが、そのタスクよりも重要度の低いタスクに対応する要求度よりも高くなるようにすることができる。その結果、重要なタスクが同じ経路で繰り返して発生する場合に、フリーの移動体がより早く、そのタスクに対応する経路の出発地に到達することができるようになりうる。なお、出発地や目的地に応じて、または、タスクの重要度に応じて、経路情報に応じた要求度が異なるとは、例えば、出発地等に応じて、出発地からの距離に応じた要求度の変化の最大値(すなわち、出発地における要求度)が異なることであってもよく、距離に応じた要求度の減少の程度(すなわち、傾き)が異なることであってもよく、その他の要素が異なることであってもよい。
受付部11によって経路情報に対応する時点も受け付けられる場合には、管理部14は、経路情報に応じた要求度が、経路情報に対応する時点からの経過時間が長くなるほど低くなるように管理してもよい。すなわち、経路情報の受け付けに応じて経路に沿って要求度を加算した後に、管理部14は、要求度マップにおいて、その経路情報に対応する時点からの経過時間が長くなるほど、その加算された要求度が少なくなるように要求度を更新してもよい。このようにすることで、現在の状況に応じた要求度マップの管理を実現できるようになる。具体的には、午前中には部品の保管場所からの部品搬送のタスクが多く、午後には製品の組立場所からの製品搬送のタスクが多い場合などのように、時間の経過に応じて経路が変化するような場合には、時間の経過に応じて要求度を変化させることによって、状況の変化に応じた要求度マップの管理が可能になる。ある経路情報に応じた要求度は、例えば、図5Aで示されるように、その経路情報に対応する時点からの経過時間に応じて減少されてもよい。図5Aでは、縦軸は要求度であり、横軸は時間である。例えば、図5Aにおける要求度の傾きが−bである場合に、ある時点の部分領域jにおける経路情報に対応した要求度がD1であるとすると、その時点からΔTだけ経過した後の部分領域jにおける経路情報に対応した要求度は、D1−b×ΔTとなる。ここで、bは正の実数である。なお、図5Aでは、単位時間あたりの要求度の減少量が一定である場合について示しているが、そうでなくてもよい。例えば、図5Bで示されるように、出発地からの距離に応じた要求度が、時間の経過に応じて、実線51から、破線52〜55のように減少し、最後には0になってもよい。また、例えば、ある時点の部分領域jにおける経路情報に対応した要求度がD1であるとすると、その時点からΔTだけ経過した後の部分領域jにおける経路情報に対応した要求度は、e×D1となってもよい。すなわち、所定の時間の経過ごとに、一定の割合だけ要求度が減るように管理されてもよい。ここで、eは0より大きく1未満である実数である。
管理部14は、例えば、次式のように各部分領域jにおける現在の時点Tkの要求度D1j(Tk)を算出してもよい。
D1j(Tk)=Σrijmax{Dmax−aLij−b(Tk−Ti 0)),0}
ただし、Dmaxは出発地の要求度であり、Lijはi番目の経路における出発地から部分領域jまでの距離(例えば、出発地から、その部分領域jに含まれる部分経路の代表点までの距離であってもよい)であり、aは距離に応じた要求度の減少の程度を示す正の実数であり、Ti 0はi番目の経路に対応する時点であり、bは時間の経過に応じた要求度の減少の程度を示す正の実数である。なお、i番目の経路が部分領域jを通過しない場合には、Lij=0としてもよい。rijはi番目の経路に応じて部分領域jに要求度が加算される場合には1となり、そうでない場合には0となる。例えば、i番目の経路が部分領域jを通過する場合には、rij=1となり、そうでない場合には、rij=0となってもよい。なお、rijを、例えば、i番目の経路と部分領域jとの重なりの割合(例えば、0以上1以下の実数)としてもよい。i番目の経路は、前述のように、幅を有する経路であってもよい。総和は要求度の加算を行う対象となるすべての経路に関するiについてとられる。また、max{α,β}は、α,βのうち、最大値を返す関数である。この関数を用いることにより、要求度D1j(Tk)が負にならないようにしている。管理部14は、各時間Tkにおいて、すべての部分領域jについて要求度D1j(Tk)を算出することによって、要求度マップを更新することができる。そのようにして算出された各要求度D1j(Tk)は、要求度マップ記憶部15で記憶されることになる。
管理部14は、例えば、経路情報の受信に応じて要求度マップを更新してもよく、または、要求度が経路情報に対応する時点からの経過時間に応じて変化する場合には、所定の時間の経過に応じて要求度マップを更新してもよい。
要求度マップ記憶部15では、要求度マップが記憶される。その要求度マップは、管理部14によって管理されている、受付部11で受け付けられた経路情報に応じた要求度の分布を示すものである。要求度マップが記憶されるとは、例えば、部分領域ごとに、部分領域の要求度が記憶されることであってもよい。要求度マップ記憶部15での記憶は、RAM等における一時的な記憶でもよく、または、長期的な記憶でもよい。要求度マップ記憶部15は、所定の記録媒体(例えば、半導体メモリや磁気ディスクなど)によって実現されうる。
配置部16は、要求度マップの要求度が全体として低くなるように、タスクの割り当てられていない移動体の配置位置を決める。すなわち、配置部16は、フリーの移動体がタスク待ちを行う配置位置を決定することになる。なお、フリーの移動体の配置に応じて、要求度マップにおいて、フリーの移動体の配置位置を含む所定の範囲における要求度は下げられるものとする。移動体の配置位置の要求度のみが減少されるのではなく、移動体の配置位置を含む所定の範囲の要求度が減少されるため、その範囲を適切に設定することによって、配置されるフリーの移動体の衝突を防止することができ、また、配置されるフリーの移動体が一箇所に密集することを避けることができる。フリーの移動体の配置位置を含む所定の範囲は、例えば、移動体の大きさ程度に設定されてもよく、または、移動体の大きさよりも大きい範囲に設定されてもよい。本実施の形態では、後者の場合について主に説明する。その範囲の形状は、例えば、円形状や、正方形状、矩形状、三角形状、多角形状、楕円形状などの任意の形状であってもよい。また、配置位置は、例えば、その配置位置を含む所定の範囲の中心に位置してもよく、重心に位置してもよく、その他の箇所に位置してもよい。また、フリーの移動体の配置位置を含む所定の範囲において、要求度が下げられる程度は、一定であってもよく、または、変化してもよい。後者の場合には、例えば、フリーの移動体の配置位置における要求度の低下の程度が最も大きく、所定の範囲の外縁に近づくほど要求度の低下の程度が小さくなるように変化してもよい。本実施の形態では、説明の簡単のため、フリーの移動体の配置位置を含む所定の範囲において、要求度の低下の程度が一定である場合について主に説明する。また、あるフリーの移動体の配置位置を含む所定の範囲と、別のフリーの移動体の配置位置を含む所定の範囲とは、一部が重なってもよい。
フリーの移動体の配置に応じた要求度の減少の程度が一定であるとすると、要求度には下限があるため、下限に近い要求度の箇所にフリーの移動体を配置させても、要求度マップの全体としては、要求度が下がらないことになる。したがって、要求度マップの要求度が全体として低くなるようにフリーの移動体を配置させるためには、配置部16は、より要求度の高い箇所にフリーの移動体を配置すればよいことになる。このように、要求度に下限が存在することによって、要求度のより高いところにフリーの移動体が配置されるようにすることができる。また、フリーの移動体の配置に応じた要求度の減少の程度が小さい場合には、その減少の程度よりも大きい要求度の箇所にフリーの移動体を配置させるのであれば、どこに配置させても要求度マップの全体としての要求度が変化しないことになる。そのため、フリーの移動体の配置に応じた要求度の減少の程度は、それなりに大きいことが好適である。例えば、要求度の上限値から下限値までの幅(=上限値−下限値)がW1である場合に、フリーの移動体の配置に応じた要求度の減少の程度は、W1と同じであってもよく、W1に1より小さい正の実数を掛けた値であってもよい。その正の実数は特に限定されないが、例えば、0.5以上であることが好適であり、0.7以上であることがより好適であり、0.8以上であることがさらに好適である。そのようにしてフリーの移動体の配置が行われることによって、より要求度の高いところにフリーの移動体が配置されることになる。なお、要求度マップの要求度が全体として低くなるとは、例えば、部分領域ごとの要求度の合計値が低くなることであってもよく、複数の点ごとの要求度の合計値が低くなることであってもよい。また、要求度マップにおいて、タスクの割り当てられていない移動体の配置位置を含む所定の範囲において要求度が下げられる程度及びその範囲の少なくとも一方は、移動体の種類に応じて異なってもよい。例えば、移動体がタスクの実行能力の高い種類のものであれば、そうでない種類の移動体と比較して、要求度の下げられる程度が大きくなってもよく、要求度の下げられる範囲が大きくなってもよい。具体的には、移動体が搬送台車である場合に、搬送量の多い種類のフリーの移動体については、搬送量の少ない種類のフリーの移動体と比較して、要求度の下げられる程度が大きくてもよく、要求度の下げられる範囲が大きくてもよく、または、その両方であってもよい。
配置部16は、要求度マップ記憶部15で記憶されている、経路情報に応じた要求度の分布を示す要求度マップを読み出し、フリーの移動体を配置した後の要求度マップの要求度が全体として低くなるように、フリーの移動体を配置する。そのため、配置部16は、例えば、複数のフリーの移動体を配置する際に、要求度マップにおいて最も要求度の高いところから順番に、フリーの移動体を配置してもよい。具体的には、配置部16は、要求度マップにおいて要求度が最も高い位置を特定し、その位置を含むように1番目のフリーの移動体を配置する。そして、その配置に応じて要求度マップの要求度を更新した後に、配置部16は、要求度が最も高い位置を特定し、その位置を含むように2番目のフリーの移動体を配置する。このようにして、配置部16は、要求度マップの更新と、フリーの移動体の配置とを繰り返すことによって、複数のフリーの移動体を配置してもよい。なお、フリーの移動体の配置に応じた要求度の減少の程度が、フリーの移動体に応じて異なる場合には、配置部16は、例えば、その要求度の減少の程度が大きいフリーの移動体から順番に、上述した配置を行うようにしてもよい。また、フリーの移動体を配置するとは、その移動体の配置位置を決めることである。配置位置を決めるとは、例えば、その配置位置の座標を取得して所定の記録媒体に蓄積することであってもよい。また、配置部16は、例えば、フリーの移動体を配置した要求度マップの要求度に関する合計に応じた目的関数を最適化するように、フリーの移動体の配置位置を決めてもよい。要求度に関する合計は、要求度の合計そのものであってもよく、または、要求度に応じた値の合計であってもよい。要求度に応じた値とは、要求度を引数とする関数の値であってもよい。具体的には、図6で示されるように、要求度と重みとが対応付けられている場合に、要求度に応じた値は、要求度に対応する重みであってもよい。要求度と重みとの関係が、実線61で示されるように線形である場合には、通常、要求度に関する合計として、要求度の合計そのものを用いた場合と同様の結果になる。一方、要求度と重みとの関係が、破線62で示されるように非線形である場合には、通常、要求度に関する合計として、要求度の合計そのものを用いた場合とは異なる結果になる。破線62の関係の場合には、要求度の高いところの影響が、要求度の低いところと比較して大きくなるため、要求度の高いところをより少なくするようにフリーの移動体の配置位置が決定されることになる。また、要求度に関する合計に応じた目的関数は、例えば、その合計を引数とする関数であってもよい。その目的関数は、例えば、その合計そのものであってもよい。また、その目的関数が要求度に関する合計を引数とする場合に、その目的関数は、増加関数であってもよく、または、そうでなくてもよい。目的関数が、要求度に関する合計を引数とする増加関数である場合には、目的関数を最小化するように最適解が求められることになる。一方、目的関数が、要求度に関する合計を引数とする減少関数である場合には、目的関数を最大化するように最適解が求められることになる。最適解を求めるとは、フリーの移動体の各配置位置を求めることである。その目的関数を最適化するための最適化手法は問わない。また、その最適化における初期値として、前回の配置位置を用いてもよく、または、そうでなくてもよい。フリーの移動体の現在位置の付近において新たな配置位置を決めることによって、フリーの移動体の移動距離を短くすることができ、その結果、タスクを実行している移動体の移動を妨げる可能性を低減できるという観点からは、前者のように配置位置を決めることが好適である。また、その最適化において、配置位置が完全に収束する前に処理を終了した場合には、厳密な意味での最適化にはならないが、配置部16による最適化には、そのような最適化が含まれてもよい。その最適化を合理的な時間内で終了させることが求められるからである。
配置部16は、例えば、次式の目的関数Sを用いて、M個のフリーの移動体の配置位置(X1,Y1)…(XM,YM)を決定してもよい。
S(X1,Y1,…,XM,YM)=ΣD2j(X1,Y1,…,XM,YM)
ただし、D2j(X1,Y1,…,XM,YM)は次式の通りであり、また、上式の右辺における総和は要求度マップにおけるすべての部分領域のjについてとられる。
D2j(X1,Y1,…,XM,YM)=max{D1j(Tk)−Σc×qj(Xm,Ym),0}
ただし、Tkは現在の時点であり、(Xm,Ym)はm番目のフリーの移動体の要求度マップにおける配置位置である。qj(Xm,Ym)は、配置位置(Xm,Ym)を含む所定の範囲に部分領域jが含まれる場合には1となり、そうでない場合には0となる。なお、部分領域jの一部が、配置位置(Xm,Ym)を含む所定の範囲と重なる場合には、例えば、qj(Xm,Ym)=1としてもよく、qj(Xm,Ym)=0としてもよく、または、qj(Xm,Ym)を、部分領域jにおける重なりの割合(例えば、0より大きく1より小さい実数)としてもよい。cはフリーの移動体の配置位置を含む所定の範囲において要求度が下げられる程度を示す正の実数である。また、総和はすべてのフリーの移動体に関するmについてとられる。上式では、mは1からMまでの整数であるとしている。なお、Mは1以上の整数である。また、フリーの移動体が存在しない場合には、配置部16は、配置位置の決定を行わなくてもよい。
配置部16は、例えば、要求度マップ記憶部15で記憶されている要求度マップが図2Dで示される場合に、図2Eで示されるように3個のフリーの移動体の配置位置A1〜A3を決定してもよい。なお、各配置位置A1〜A3に対応して、所定の範囲R1〜R3が設定されている。また、図2Eにおいては、その所定の範囲内の要求度はすべて0になるように低減される場合について示している。すなわち、フリーの移動体の配置に応じた要求度の減少の程度が、上述したW1である場合について示している。また、配置部16は、要求度マップが更新されたタイミングで、フリーの移動体の配置位置を決定してもよい。また、配置部16は、移動体が新たにフリーとなった場合に、フリーの移動体の配置位置を決定してもよい。その決定は、例えば、新たにフリーとなった移動体の配置位置のみの決定であってもよく、すべての移動体の配置位置の決定であってもよい。また、配置部16は、現在、どの移動体がフリーであるのかを管理していることが好適である。そのため、例えば、配置部16は、フリーの移動体の識別子を図示しない記録媒体で保持していてもよい。そして、配置部16は、例えば、移動体が新たにフリーになった場合には、その移動体の識別子を追記し、移動体に新たなタスクが割り当てられた場合には、その移動体の識別子を削除してもよい。
出力部17は、配置部16によって決められたフリーの移動体の配置位置を出力する。その出力は、例えば、フリーの移動体に、その移動体の配置位置を送信することであってもよく、フリーの移動体を管理しているサーバ等に、フリーの移動体の配置位置を送信することであってもよい。具体的には、配置部16によって、フリーの移動体ごとに配置位置が決められた場合には、出力部17は、フリーの各移動体に対して、その移動体に対応する配置位置を送信してもよく、または、フリーの移動体の識別子と、その識別子で識別される移動体の配置位置とを対応付ける情報を、サーバ等に送信してもよい。また、出力部17は、フリーの移動体の識別子と、その識別子で識別される移動体の配置位置とを対応付けて経路情報記憶部13等に蓄積してもよい。フリーの移動体の最新の配置位置が分かるようにするためである。なお、出力部17がフリーの移動体に配置位置を送信する場合には、その移動体の現在位置から、配置位置までの経路も一緒に送信してもよい。その経路は、経路取得部12によって取得されたものであってもよい。また、出力対象の配置位置(X1,Y1)等が、移動体が実世界において移動に用いる座標値(例えば、緯度や経度など)である場合には、出力部17は、その配置位置をそのまま出力してもよい。一方、出力対象の配置位置(X1,Y1)等が、移動体が実世界において移動に用いる座標値ではない場合、例えば、要求度マップの座標値などである場合には、出力部17は、その座標値を、緯度や経度などの実世界における座標値に変換して出力してもよく、または、そうでなくてもよい。後者の場合には、例えば、移動体等において、座標値の変換が行われてもよい。
また、出力部17は、受付部11で受け付けられた経路情報に応じた経路が取得された場合に、その経路を、その経路の出発地に最も近い配置位置のフリーの移動体に送信してもよい。なお、その経路に応じたタスクを実行できる移動体が限定される場合には、そのタスクを実行できる移動体のうち、出発地に最も近い配置位置のフリーの移動体に経路を送信してもよい。その場合には、例えば、移動体配置装置1において、移動体の識別子と、移動体の種類とを対応付ける情報が保持されていてもよい。また、例えば、経路情報と共にタスクの内容を示す情報も受け付けられている場合には、出力部17は、そのタスクの内容を示す情報も送信してもよい。また、出力部17は、送信先の移動体の現在の配置位置から、タスクに応じた経路の出発地までの経路も一緒に送信してもよい。現在の配置位置からタスクに応じた経路の出発地までの経路は、経路取得部12によって取得されたものであってもよい。なお、出力部17は、経路の送信に代えて、移動体に出発地や目的地を送信してもよい。その場合には、経路の取得は移動体において行われてもよい。その場合には、移動体における経路の取得のアルゴリズムと、経路取得部12による経路の取得のアルゴリズムとが同じであることが好適である。両者でそれぞれ取得された経路が同様のものになるようにするためである。また、経路や経路情報等がフリーの移動体に送信された場合には、その移動体はフリーでなくなることになるため、その後、その移動体は、フリーの移動体として取り扱われないようになることが好適である。
ここで、この出力は、例えば、前述のように、通信回線を介した送信でもよく、または、表示デバイスへの表示や、プリンタによる印刷、記録媒体への蓄積、他の構成要素への引き渡しなどであってもよい。なお、出力部17は、出力を行うデバイス(例えば、送信デバイスなど)を含んでもよく、または含まなくてもよい。また、出力部17は、ハードウェアによって実現されてもよく、または、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
なお、経路情報記憶部13と、要求度マップ記憶部15とは、同一の記録媒体によって実現されてもよく、または、別々の記録媒体によって実現されてもよい。前者の場合には、経路情報等を記憶している領域が経路情報記憶部13となり、要求度マップを記憶している領域が要求度マップ記憶部15となる。
次に、移動体配置装置1の動作について図7のフローチャートを用いて説明する。
(ステップS101)受付部11は、経路情報を受け付けたかどうか判断する。そして、経路情報を受け付けた場合には、その経路情報を経路取得部12に渡すと共に、その時点の時刻を図示しない時計部から取得し、取得した時刻と受け付けた経路情報とを経路情報記憶部13に蓄積してステップS102に進み、そうでない場合には、ステップS107に進む。
(ステップS102)経路取得部12は、ステップS101で受け付けられた経路情報に含まれる出発地から目的地までの経路を取得し、ステップS101で蓄積された経路情報に対応付けて経路情報記憶部13に蓄積する。
(ステップS103)出力部17は、経路情報記憶部13に新たに蓄積された経路情報と、経路とを読み出し、その経路情報に含まれる出発地に最も近いフリーの移動体に、それらの情報を送信する。その際に、出力部17は、送信先の移動体の現在の配置位置から、経路情報に含まれる出発地までの経路の取得を経路取得部12に指示し、その指示に応じて取得された経路も一緒に送信してもよい。また、その送信に応じて、配置部16は、その送信先の移動体をフリーでない移動体に設定してもよい。
(ステップS104)管理部14は、経路情報記憶部13に新たに蓄積された経路に応じて、要求度マップ記憶部15で記憶されている要求度マップを更新する。その更新は、例えば、新たに蓄積された経路に応じた要求度を加算することによって行われてもよい。なお、初めて経路情報が受け付けられた場合には、管理部14は、要求度がすべて下限値である要求度マップに、初めて受け付けられた経路情報に対応する要求度を加算してもよい。
(ステップS105)配置部16は、更新された要求度マップを用いて、フリーの移動体の配置位置を決定する。ステップS109からステップS105に進んだ場合には、配置部16は、例えば、新たにフリーとなった移動体の配置のみを行ってもよい。
(ステップS106)出力部17は、ステップS105で決定された各配置位置を出力する。なお、配置位置の変更されなかったフリーの移動体については、その配置位置の出力が行われなくてもよい。
なお、フリーの移動体が存在しない場合には、ステップS105,S106の処理はスキップされてもよい。すなわち、ステップS104,S108からステップS101に戻ってもよい。
(ステップS107)管理部14は、要求度マップを更新するかどうか判断する。そして、要求度マップを更新する場合には、ステップS108に進み、そうでない場合には、ステップS109に進む。なお、管理部14は、要求度マップを更新すると定期的に判断してもよい。
(ステップS108)管理部14は、要求度マップを更新する。この更新は、時間の経過に応じて、経路に対応する要求度を減少させることに関する更新である。そして、ステップS105に進む。
(ステップS109)受付部11は、タスクの実行が完了したことに応じてフリーとなった移動体から、フリーとなった旨と現在位置とを受け付けたかどうか判断する。そして、フリーとなった旨などを受け付けた場合には、ステップS105に進み、そうでない場合には、ステップS101に戻る。なお、その受け付けに応じて、配置部16は、その移動体をフリーの移動体に設定してもよい。
なお、図7のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。なお、図7のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以上のように、本実施の形態による移動体配置装置1によれば、経路情報に応じた要求度の高い位置にフリーの移動体を配置することができるようになる。その結果、新たなタスクが発生した際に、フリーの移動体がタスクの出発地に到達するまでの時間を全体として短縮することができ、効率的な移動体の移動を実現できるようになる。また、フリーの移動体が一箇所に集中し、タスクを実行している移動体の移動を妨げることも回避することができる。また、要求度を用いることによって、そのようなフリーの移動体の効率的な配置を、簡単な構成で実現することができる。また、経路情報に応じた要求度を、時間の経過に応じて低下させることによって、経路情報に応じた要求度マップが、その時点の状況により適合するものとなる。その結果、移動体のより効率的な移動を実現できるようになる。また、経路情報に応じた要求度が、出発地や目的地に応じて異なることにより、または、経路情報に対応するタスクの重要度に応じて異なることにより、出発地や目的地の重要性や、タスクの重要性に応じて、フリーの移動体の配置を変えることができるようになる。また、移動体の種類に応じて、フリーの移動体の配置位置を含む所定の範囲や、その範囲における要求度の減少の程度を変更することによって、配置対象の移動体の能力等に応じた配置が可能となる。例えば、要求度の高い箇所に、能力の高い少数の移動体を配置したり、能力のあまり高くない多くの移動体を配置したりすることができる。
なお、本実施の形態では、要求度マップの要求度が全体として低くなるようにフリーの移動体を配置する場合について説明したが、配置部16は、要求度マップの要求度が全体として低くなると共に、要求度マップにおける要求度の最大値が小さくなるようにフリーの移動体を配置してもよい。その場合に用いる目的関数は、例えば、要求度に関する合計と、要求度の最大値とを引数とする関数であってもよい。具体的には、目的関数は、要求度に関する合計の増加関数であり、また、要求度の最大値の増加関数であってもよい。その場合には、目的関数を最小化するように最適解が求められることになる。このように、要求度マップにおける要求度の最大値が小さくなるようにフリーの移動体を配置する場合には、フリーの移動体の配置に応じた要求度の減少の程度は、上述の説明の場合と比較して小さくてもよい。例えば、フリーの移動体の配置に応じた要求度の減少の程度は、W1に0.5より小さい正の実数を掛けた値であってもよく、または、そうでなくてもよい。
また、本実施の形態では、経路情報に応じた要求度が時間の経過に応じて低くなるように管理する際に、受付部11によって経路情報に応じた時点が受け付けられ、管理部14が、その時点と、現時点との差を用いて要求度を減少させる場合について説明したが、そうでなくてもよい。例えば、図5Aで示されるように単位時間あたりの要求度の減少の量が決まっている場合や、単位時間あたりの要求度の減少の割合が決まっている場合には、管理部14は、要求度マップを更新するごとに、経路情報に応じた要求度を所定の減少量や所定の減少割合で減少させるようにしてもよい。その場合には、経路情報に応じた時点を用いなくてもよいため、受付部11は、経路情報に応じた時点を受け付けなくてもよい。すなわち、管理部14は、経路情報に応じた要求度が、時間の経過に応じて低くなるように管理する際に、経路情報に応じた時点を用いてもよく、または、用いなくてもよい。後者の場合には、受付部11は、時点の受け付けを行わなくてもよい。
また、本実施の形態では、経路情報に応じた要求度が時間の経過に応じて低くなる場合について主に説明したが、そうでなくてもよい。経路情報に応じた要求度は、時間の経過に応じても低下しないようにしてもよい。その場合には、例えば、要求度マップで考慮する経路情報の範囲を制限してもよい。具体的には、ある期間TE1に受け付けられた経路情報を用いて生成された要求度マップを用いて次の期間TE2におけるフリーの移動体の配置を行い、その期間TE2に受け付けられた経路情報を用いて生成された要求度マップを用いて次の期間TE3におけるフリーの移動体の配置を行うことを繰り返してもよい。
また、本実施の形態では、移動体配置装置1において経路情報に応じた経路を取得する場合について説明したが、そうでなくてもよいことは前述の通りである。移動体配置装置1において経路の取得を行わない場合には、移動体配置装置1は、経路取得部12を備えていなくてもよい。
また、移動体配置装置1を、移動体の移動領域におけるレイアウト変更等を最適化するために用いてもよい。例えば、第1のレイアウトに応じた地図情報を用いて、複数のタスクを実行するためのフリーの各移動体の配置をシミュレーションし、また、第2のレイアウトに応じた地図情報を用いて、同じ複数のタスクを実行するためのフリーの各移動体の配置をシミュレーションし、各シミュレーションにおける要求度の合計値や、要求度の合計値の時間変化を比較することによって、どちらのレイアウトのほうが移動体の配置に適しているのかを知ることができるようになる。なお、要求度の合計値などに代えて、目的関数の値を用いてもよい。また、フリーの各移動体を配置した後の要求度マップにおける要求度の合計値などが低いレイアウトのほうが、より効率のよいレイアウトであると考えられる。
また、移動体がセンサを用いて現在位置を取得する場合、例えば、周囲の複数方向の障害物までの距離を測定するレーザーレンジセンサ(レーザーレンジスキャナ)や、周囲の画像を撮影するイメージセンサ(撮像素子)を用いて現在位置を取得する場合には、移動体配置装置1は、それに応じた経路を移動体に出力するようにしてもよい。その場合に、経路取得部12は、上述のように、要求度マップの管理のための経路の取得と共に、移動体の移動のためのシミュレーションによる経路の取得も行ってもよい。すなわち、経路取得部12は、地図と取得した経路とを用いて、移動体がその経路に応じて移動する際に、移動体に装着されているセンサによって取得される値をシミュレーションによって取得してもよい。例えば、センサがレーザーレンジセンサである場合には、経路取得部12は、経路上の複数地点において、移動体の位置から障害物までの複数方向に関する距離を計算し、その結果をセンサの取得する値としてもよい。その経路上の複数地点は、例えば、経路上の一定の間隔ごとの地点であってもよく、または、そうでなくてもよい。また、この場合には、出力部17は、経路取得部12によって取得されたセンサの値を含む経路を出力することになる。また、経路取得部12によるシミュレーションを行う場合には、地図に含まれる障害物に、高さの情報が含まれていてもよい。そして、経路取得部12は、その高さの情報を用いて、障害物を含む領域に関する仮想3次元空間を生成し、それを用いて、例えば、レーザーレンジセンサの値や、イメージセンサの値(撮影画像)を取得してもよい。その場合に、経路取得部12は、センサの高さの情報、すなわち、地面や床面からのセンサの高さを示す情報を用いてもよい。なお、撮影画像の取得は、例えば、その仮想3次元空間における移動体の位置を視点とするレンダリングによって行ってもよい。
また、本実施の形態では、移動体が搬送台車である場合について主に説明したため、経路は2次元平面上での経路であったが、移動体が飛行体である場合には、経路は、3次元空間上での経路であってもよい。その場合に、高度は、例えば、あらかじめ決められた値に設定されてもよく、または、障害物を超える高さに適宜、設定されてもよい。また、高さ方向(鉛直方向)の位置は、例えば、海抜高度で示されてもよく、地面や床面からの高さで示されてもよい。前者の場合には、飛行体である移動体は、気圧計などを用いて移動体の海抜高度を取得し、高さ方向の位置の制御を行ってもよい。また、高さ方向の位置が地面からの高さで示される場合には、飛行体である移動体は、距離計などを用いて地面からの高さを取得し、高さ方向の位置の制御を行ってもよい。
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
また、上記実施の形態において、移動体配置装置1に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現されうる。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。