(実施形態1)
以下、本実施形態に係る移動体制御システム1及び移動体システム10について、図1~図18を参照して説明する。
(1)概要
本実施形態に係る移動体制御システム1は、図2に示すように、所定エリアA1(図1参照)内を移動する1台以上の移動体2を制御するためのシステムである。移動体制御システム1は、移動体制御システム1の制御対象となる移動体2と共に移動体システム10を構成する。言い換えれば、本実施形態に係る移動体システム10は、移動体制御システム1と、移動体2と、を備えている。
本開示でいう「移動体」は、無人搬送車(AGV:Automated Guided Vehicle)、移動ロボット及びドローン等を含む。本開示でいう「移動ロボット」は、例えば、車輪型、クローラ型又は脚型の(歩行型を含む)のロボットである。移動体2は、所定エリアA1内を移動するだけでなく、例えば、搬送、ピッキング、溶接、実装、陳列、接客、警備、組立及び検査等の様々な作業を実行する機能を有していてもよい。
移動体制御システム1は、例えば、所定エリアA1内において、第1地点から第2地点に移動体2を移動させるように、移動体2の制御を行う。この場合、移動体制御システム1は、例えば、第1地点から第2地点に至る移動経路等、移動体2の制御に必要な情報を求め、移動体2に移動の指示を与えることにより、移動体2を第1地点から第2地点に移動させる。これにより、移動体2は、移動体制御システム1からの指示に従って、所定エリアA1内を移動することが可能である。
ところで、本実施形態に係る移動体制御システム1は、図2に示すように、制御部42と、ノード生成部32と、パス生成部33と、を備えている。制御部42は、所定エリアA1内を移動する移動体2を制御する。ノード生成部32は、所定エリアA1に対応するマップM1(図5参照)における任意の位置に、それぞれ移動体2を制御可能なノードである一対の指定ノードNdm(図6参照)を生成する。パス生成部33は、一対の指定ノードNdm間にパスPm(図6参照)を生成する。制御部42は、所定エリアA1においてパスPmに対応する移動経路に沿って移動体2を移動させる。
本開示でいう「ノード」(Node)は、移動体制御システム1による移動体2の制御が可能な制御点である。つまり、移動体制御システム1は、ノード単位で移動体2の移動に係る制御が可能である。詳しくは後述するが、本開示でいう「ノード」には、指定ノードNdm、仮想ノードNvm及び例外ノードNemの3種類のノードが含まれる。指定ノードNdm、仮想ノードNvm、例外ノードNem及びパスPmの添え字「m」には、自然数(1,2,3,…)が入る。
本実施形態では特に、ノードは、移動体2の移動速度と進行方向との少なくとも一方を制御可能な制御点である。本開示でいう「移動速度」の制御は、移動速度がゼロ(0)の移動体2を加速させる「発進」、及び移動中の移動体2の移動速度をゼロ(0)まで減速する「停止」を含む。移動体制御システム1は、所定エリアA1においてノードに対応する位置にある移動体2を対象として、例えば、停止又は進行方向の変更(旋回を含む)等の動作を制御する。そのため、例えば、所定エリアA1において、一対のノードに対応する一対の地点間を移動中であって、いずれのノードに対応する位置にもない移動体2については、移動体制御システム1が停止又は進行方向の変更等の制御を行うことはできない。言い換えれば、移動体制御システム1が、ある地点に位置する移動体2について停止又は進行方向の変更等の制御を行うためには、この地点に対応するノードが設定されている必要がある。
本実施形態では、各ノードは、所定エリアA1において、ある大きさを持つ矩形領域と対応付けられている。つまり、所定エリアA1において、各ノードに対応する地点は、「点」で表されるのではなく、ある大きさを持った「矩形領域」で表される。そのため、所定エリアA1において、あるノードに対応する矩形領域内に移動体2の一部又は中心点が位置するときに、移動体制御システム1は、このノードに対応する位置に移動体2がある(存在している)と判断する。
このように、移動体制御システム1がノード単位で移動体2を制御することで、基本的には、移動体2は、一対のノード間に設定されるパス(Path)P1上を移動する。例えば、第1地点から第2地点に移動体2を移動させる場合、少なくとも第1地点に第1ノード、第2地点に第2ノードがそれぞれ設定され、これら第1ノード及び第2ノード間に設定されるパスPmを通って、移動体2は、第1地点から第2地点に移動する。さらに、第1ノード及び第2ノード間のパスPm上に、1つ以上の中間ノードが設定される場合には、移動体制御システム1は、1つ以上の中間ノードにおいて、例えば、停止及び進行方向の変更等の動作が可能になる。
一例として、第1ノード及び第2ノード間に1つの中間ノードが設定されている場合を想定する。この場合、例えば、移動体制御システム1は、まず第1地点から中間ノードに対応する中間地点に移動体2を移動させて停止させ、その後、中間地点から第2地点に移動体2を移動させる、という制御が可能である。これにより、移動体制御システム1は、第1地点から第2地点に移動体2を移動させる場合において、第1地点と第2地点との間の中間地点にて移動体2を一旦停止させる、といった制御が可能になる。
ここにおいて、本実施形態に係る移動体制御システム1では、ノード生成部32は、所定エリアA1に対応するマップM1における任意の位置に、それぞれ移動体2を制御可能なノードである一対の指定ノードNdmを生成する。つまり、移動体制御システム1は、マップM1における任意の位置にノード(指定ノードNdm)を生成するので、グリッド座標を基調として移動体2の制御を行うグリッド方式に比べて、制御の自由度の向上を図ることができる。
要するに、グリッド座標を基調として移動体の制御を行うグリッド方式では、グリッド座標を基調として移動体2の制御を行うため、グリッド線にて規定される位置にしかノードを設定できない、という問題がある。このグリッド方式において、例えば、移動体2の停止位置を細かく調整するためには、グリッド線の間隔を小さくする必要があるが、グリッド線の間隔を小さくすると、その分だけ、演算負荷が大きくなる。
これに対して、本実施形態に係る移動体制御システム1では、グリッド線にかかわらず、マップM1上の任意の位置にノード(指定ノードNdm)を設定することが可能である。すなわち、本実施形態では、グリッド線ありきでノードが設定されるのではなく、まずはノードが設定され、その後に、ノードに基づいてパスPmが生成される。その結果、本実施形態に係る移動体制御システム1によれば、演算負荷の増加を抑制しつつも、制御の自由度の向上を図ることができる、という利点がある。
ここで、本実施形態に係る移動体制御システム1は、グリッド線に拘束されることなく、マップM1の任意の位置にノードを設定できればよく、グリッドレスであることは移動体制御システム1に必須の構成ではない。例えば、ノードを設定する際の目安又は入力支援として、ユーザが、ノード(指定ノードNdm)を設定するための設定画面D1(図5参照)においては、マップM1がグリッド線G1(図5参照)を含んでいてもよい。この場合でも、移動体制御システム1では、設定画面D1において、グリッド線G1に拘束されることなく、マップM1における任意の位置にノードを設定することが可能である。
また、本実施形態に係る設計支援システム100は、所定エリアA1内を移動する移動体2を制御するための制御計画の設計を支援するシステムである。設計支援システム100は、図2に示すように、表示制御部38と、操作部63と、ノード生成部32と、仮想ノード生成部35と、を備える。表示制御部38は、所定エリアA1に対応するマップM1を含む設定画面D1を表示させる。操作部63は、少なくとも設定画面D1におけるマップM1上の一対の指定位置を指定するユーザの操作に応じた操作信号を出力する。ノード生成部32は、操作信号に従って、マップM1における一対の指定位置に、それぞれ移動体2を制御可能なノードである一対の指定ノードNdmを生成する。仮想ノード生成部35は、マップM1における一対の指定ノードNdm間に、一対の指定ノードNdmとは別のノードである仮想ノードNvm(図4参照)を、少なくとも1つ生成する。
このような設計支援システム100によれば、ユーザがマップM1上の一対の指定位置を指定するだけで、まずは、これら一対の指定位置に一対の指定ノードNdmが生成され、さらに、一対の指定ノードNdm間には仮想ノードNvmが少なくとも1つ生成される。そのため、ユーザが、移動体2を制御するための制御計画を設計するに当たり、グリッドマップ上のマス目を1つずつ指定しながら、移動経路を設定する必要があるグリッド方式に比べて、マップM1上でユーザが指定すべき点の数を少なく抑えることができる。要するに、設計支援システム100によれば、例えば、比較的長い直線経路に沿って移動体2を制御させる場合等であっても、ユーザは、この直線経路を指定するために、直線経路の両端(始点及び終点)を規定する一対の指定位置を指定するだけでよい。結果的に、本実施形態に係る設計支援システム100によれば、制御計画の設計の簡易化を図ることができる、という利点がある。
ここで、本実施形態においては、図2から明らかなように、移動体制御システム1と設計支援システム100とで、少なくとも一部の構成要素(ノード生成部32等)が共用されている。詳しくは後述するが、移動体制御システム1と設計支援システム100とで共用される構成要素については、サーバ装置3に設けられている。
(2)構成
以下、本実施形態に係る移動体制御システム1、移動体システム10及び設計支援システム100の構成について、図1~図3を参照して、詳細に説明する。以下に示す、数値、形状、材料、構成要素の位置、複数の構成要素間の位置関係及び接続関係等は、一例であって、本開示を限定する主旨ではない。また、以下で参照する図面は、いずれも模式的な図であり、図中の各構成要素の大きさ及び厚さそれぞれの比が、必ずしも実際の寸法比を反映しているとは限らない。
以下では、移動体制御システム1の制御対象、つまり移動体システム10に含まれる移動体2が、無人搬送車である場合を例として説明する。移動体2としての無人搬送車は、所定エリアA1内を移動しつつ、搬送物92(図3参照)の搬送という作業を実行する。本実施形態で例示する移動体2の構成について詳しくは、「(2.2)移動体」の欄で説明する。
本開示でいう「所定エリア」は、1台以上の移動体2が配備された空間であって、移動体2は、移動体制御システム1からの指示を受けて、この所定エリアA1内を移動する。所定エリアA1は、一例として、倉庫、工場、建設現場、店舗(ショッピングモールを含む)、物流センタ、事務所、公園、住宅、学校、病院、駅、空港又は駐車場等である。さらに、例えば、船舶、電車又は飛行機の内部等、乗り物の内部に移動体2が配備されている場合には、乗り物の内部が所定エリアA1になる。本実施形態では、所定エリアA1が物流倉庫である場合を例に説明する。
(2.1)全体構成
移動体システム10は、図1及び図2に示すように、移動体制御システム1と、1台以上の移動体2と、を備えている。本実施形態では、移動体システム10は、複数台の移動体2を備えている。
図1は、所定エリアA1の模式的な平面図である。本実施形態では、物流倉庫であって、外壁901で囲まれた空間が所定エリアA1となる。本実施形態で想定している所定エリアA1には、搬送物92を所定エリアA1内に搬入するための入口902、及び搬送物92を所定エリアA1から搬出するための出口903がある。さらに、所定エリアA1には、複数本の柱904、隔壁905及びベルトコンベア906が配置されている。
移動体制御システム1は、サーバ装置3と、1以上のクライアント端末4と、1以上の通信端末5と、を備えている。本実施形態では、移動体制御システム1は、複数のクライアント端末4及び複数の通信端末5を備えている。複数のクライアント端末4及び複数の通信端末5は、複数台の移動体2と共に所定エリアA1内に配置されている。サーバ装置3は、所定エリアA1の外に設置され、インターネット等のネットワークNT1を介して、複数の通信端末5に接続されている。
サーバ装置3と複数のクライアント端末4の各々とは、互いに通信可能に構成されている。本開示において「通信可能」とは、有線通信又は無線通信の適宜の通信方式により、直接的、又はネットワークNT1若しくは中継器等を介して間接的に、情報を授受できることを意味する。すなわち、サーバ装置3と複数のクライアント端末4の各々とは、互いに情報を授受することができる。本実施形態では、複数のクライアント端末4の各々は、複数の通信端末5のいずれかと、電波を媒体とする無線通信によって通信を行う。そのため、サーバ装置3と複数のクライアント端末4とは、少なくともネットワークNT1及び通信端末5を介して、間接的に通信を行うことになる。
要するに、各通信端末5は、各クライアント端末4とサーバ装置3との間の通信を中継する機器(アクセスポイント)である。通信端末5は、ネットワークNT1を介して、サーバ装置3と通信する。本実施形態では一例として、通信端末5と移動体2との間の通信には、Wi-Fi(登録商標)、Bluetooth(登録商標)、ZigBee(登録商標)又は免許を必要としない小電力無線(特定小電力無線)等の規格に準拠した、無線通信を採用する。また、ネットワークNT1は、インターネットに限らず、例えば、所定エリアA1内又は所定エリアA1の運営会社内のローカルな通信ネットワークが適用されてもよい。
本実施形態では一例として、クライアント端末4と移動体2とは一対一の関係にある。つまり、1台の移動体2に対して1つのクライアント端末4が搭載されることにより、1台の移動体2と1つのクライアント端末4とが紐付けられている。本実施形態では、クライアント端末4と移動体2とは一体化されている。詳しくは「(2.2)移動体」の欄で説明するが、クライアント端末4は移動体2の車体部22に搭載されることで、移動体2と一体化されている。つまり、移動体2の1つの筐体には、移動体2としての機能を実現するための構成要素と、クライアント端末4の構成要素と、が収容されている。そのため、クライアント端末4を移動体2の一部とみなすこともでき、そうすると、サーバ装置3は、ネットワークNT1及び通信端末5を介して、移動体2と間接的に通信を行うことになる。結果的に、サーバ装置3は、クライアント端末4(移動体2)と通信することにより、このクライアント端末4に対応する移動体2を間接的に制御することが可能である。
また、サーバ装置3は、情報端末6と共に設計支援システム100を構成する。言い換えれば、本実施形態に係る設計支援システム100は、サーバ装置3と、情報端末6と、を備えている。情報端末6は、インターネット等のネットワークNT1を介して、サーバ装置3に接続されている。
サーバ装置3と情報端末6とは、互いに通信可能に構成されている。すなわち、サーバ装置3と情報端末6とは、互いに情報を授受することができる。本実施形態では、情報端末6は、例えば、ルータ等を介してネットワークNT1に接続される。そのため、サーバ装置3と情報端末6とは、少なくともネットワークNT1を介して、間接的に通信を行うことになる。サーバ装置3、通信端末5又は情報端末6と、ネットワークNT1との間の通信には、無線通信又は有線通信の適宜の通信方式が適用される。
本実施形態では、サーバ装置3、クライアント端末4及び情報端末6の各々は、メモリ及びプロセッサを含むコンピュータシステムを主構成とする。すなわち、コンピュータシステムのメモリに記録されたプログラムを、プロセッサが実行することにより、サーバ装置3、クライアント端末4及び情報端末6の各々の機能が実現される。プログラムはメモリに予め記録されていてもよいし、インターネット等の電気通信回線を通して提供されてもよく、メモリカード等の非一時的記録媒体に記録されて提供されてもよい。
サーバ装置3と、クライアント端末4及び情報端末6とは、互いに双方向に通信可能である。そのため、サーバ装置3からクライアント端末4又は情報端末6への情報の送信、更には、クライアント端末4又は情報端末6からサーバ装置3への情報の送信の両方が可能である。
移動体2は、所定エリアA1内で搬送物92を運搬するための無人搬送車であり、搬送物92を積載して目的地まで自律走行する。サーバ装置3は、ネットワークNT1及び通信端末5を介して移動体2(クライアント端末4)と通信し、移動体2を制御する。
(2.2)移動体
次に、本実施形態で例示する移動体2の構成についてより詳細に説明する。
移動体2は、図3に示すように、例えば、所定エリアA1の床面等からなる平坦な移動面91を自律走行する。ここでは一例として、移動体2は、蓄電池を備え、蓄電池に蓄積された電気エネルギを用いて動作することとする。本実施形態では、移動体2は、搬送物92を積載した状態で移動面91上を走行する。これにより、移動体2は、例えば、所定エリアA1における、ある場所に置かれている搬送物92を、所定エリアA1における別の場所に搬送することが可能である。本実施形態では、搬送物92は、一例として、荷物が載せられた、ロールボックスパレット等のパレットである。
移動体2は、本体部21を備えている。本体部21は、平面視において長方形状となる直方体状に形成されている。本実施形態では、本体部21が搬送物92の下方に潜り込んで搬送物92を持ち上げるようにして、搬送物92が本体部21に積載される。そのため、本体部21が搬送物92の下方に生じる隙間に収まるように、本体部21の上下方向の寸法は、平面視における本体部21の短手方向の寸法に比べても小さく設定されている。本実施形態では、本体部21は金属製である。ただし、本体部21は、金属製に限らず、例えば、樹脂製であってもよい。
本体部21は、車体部22と、昇降板23と、を有している。車体部22は、複数(ここでは、4つ)の車輪221、及び検知部222を含んでいる。
複数の車輪221は、平面視において車体部22の四隅に配置されている。本実施形態では、複数の車輪221の全てが駆動輪である。これら複数の車輪221が個別に駆動されることにより、本体部21は、移動面91に沿って全方位に移動可能となる。車体部22は、複数の車輪221が同一方向に同一速度で回転駆動されることによって、直線的に走行し、複数の車輪221間に回転差が与えられることによって、進行方向を変えて旋回等を実行することができる。車体部22は、例えば、クラッチ等を含む駆動機構を介して複数の車輪221を駆動してもよい。つまり、本体部21は、複数の車輪221の各々の回転により、移動面91の上を、前、後、左及び右の全方位に移動可能である。複数の車輪221の各々は、例えば、オムニホイール等の全方向移動型車輪であってもよい。
検知部222は、本体部21の挙動、及び本体部21の周辺状況等を検知する。本開示でいう「挙動」は、動作及び様子等を意味する。つまり、本体部21の挙動は、本体部21が走行中/停止中を表す本体部21の動作状態、本体部21の速度(及び速度変化)、本体部21に作用する加速度、及び本体部21の姿勢等を含む。具体的には、検知部222は、例えば、速度センサ、加速度センサ、ジャイロセンサ等のセンサを含み、これらのセンサにて本体部21の挙動を検知する。また、検知部222は、例えば、イメージセンサ(カメラ)、ソナーセンサ、レーダ、及びLiDAR(Light Detection and Ranging)等のセンサを含み、これらのセンサにて本体部21の周辺状況を検知する。本体部21の周辺状況には、例えば、本体部21の進行方向の前方に存在する物体(障害物等)の有無、及び物体の位置(距離及び方位)等が含まれる。障害物には、他の移動体2及び人も含まれる。
また、検知部222は、本体部21の位置、つまり移動体2の現在位置を特定する位置特定部を有している。位置特定部は、一例として、複数の発信器から電波で送信されるビーコン信号を受信する受信機を含む。複数の発信器は、移動体2が移動する範囲内の複数箇所に配置されている。位置特定部は、複数の発信器の位置と、受信機でのビーコン信号の受信電波強度とに基づいて、本体部21の位置を測定する。位置特定部は、GPS(Global Positioning System)等の衛星測位システムを用いて実現されてもよい。検知部222の検知結果は、クライアント端末4に出力される。
クライアント端末4は、サーバ装置3と協働して、少なくとも本体部21の現在位置に基づいて、目的地までの本体部21の移動経路を決定し(経路計画)、この移動経路に沿って本体部21が移動するように車体部22を動作させる。すなわち、移動体制御システム1は、クライアント端末4にて、移動体2を制御する。本体部21は、クライアント端末4からの制御信号に基づいて、複数の車輪221を個別に駆動することにより、移動面91上を自律的に移動する。これにより、本体部21の自律走行が実現される。
昇降板23は、車体部22の上面の少なくとも一部を覆うように、車体部22の上方に配置されている。本実施形態では、昇降板23は、車体部22の上面の四隅をそれぞれ覆うように設けられている。移動体2にて搬送物92を搬送する際には、昇降板23の上面に搬送物92が積載される。
ここで、昇降板23は、車体部22に対して昇降可能である。このため、本体部が搬送物92の下方に潜り込んだ状態で、昇降板23が上昇することにより、昇降板23にて搬送物92が持ち上げられる。反対に、昇降板23にて搬送物92を持ち上げた状態で、昇降板23が下降することにより、昇降板23から搬送物92が降ろされる。
ところで、移動体2の走行モードは、移動体制御システム1の指令(制御信号)に従う自動走行モードと、リモートコントローラの指令に従う手動走行モードと、を含む。リモートコントローラは、移動体2と無線通信し、操作者による操作で移動体2の動作を制御するための装置である。
また、移動体2は、上記以外の構成、例えば、蓄電池の充電回路、及びユーザインタフェース等を適宜備えている。ユーザインタフェースは、移動体2への指令等の情報を入力するための構成要素である。ユーザインタフェースは、例えば、足踏み式の複数のペダルにて実現される。複数のペダルでは、例えば、移動体2の走行/停止、移動体2の走行モードの切替え、移動体2の移動経路の選択、移動体2の走行方向の変更、昇降板23の昇降、並びに複数の車輪221のロック/解除等のための操作入力が可能である。また、ユーザインタフェースは、移動体2に設定する移動経路の出発点及び目的点の少なくとも一方を設定可能に構成されていてもよい。ユーザインタフェースの構成及び機能は、複数のペダルを用いた上記構成及び機能に限定されない。さらに、移動体2の走行モードに関係なく、移動体2を緊急停止させるための緊急停止装置が設けられていてもよい。緊急停止装置は、移動体2に搭載されていてもよいし、リモートコントローラのように、移動体2と無線通信するように構成されていてもよい。
ところで、本実施形態では、上述したように、クライアント端末4は移動体2に搭載されることで、移動体2と一体化されている。本実施形態では、クライアント端末4が移動体2の動作の邪魔にならないように、クライアント端末4は、本体部21に内蔵されている。つまり、本体部21の外郭を構成する筐体には、移動体2としての機能を実現するための構成要素と、クライアント端末4の構成要素と、が収容されている。
また、移動体2の動力源(電源)となる蓄電池は、クライアント端末4の動力源に兼用されてもよい。つまり、蓄電池は、移動体2とクライアント端末4とで共用可能である。さらに、クライアント端末4の制御機能(制御部42)は、移動体2における車体部22の制御と昇降板23の制御とに兼用されてもよい。
(2.3)クライアント端末
次に、クライアント端末4の構成についてより詳細に説明する。
クライアント端末4は、図2に示すように、第2通信部41と、制御部42と、インタフェース43と、第2記憶部44と、を有している。
第2通信部41は、ネットワークNT1及び通信端末5を介して間接的に、サーバ装置3と通信する。第2通信部41とサーバ装置3との間の通信方式としては、無線通信又は有線通信の適宜の通信方式が採用される。
制御部42は、移動体2の走行モードが自動走行モードにある場合において、サーバ装置3からの指示に従って、移動体2の本体部21に制御信号を出力する。これにより、制御部42は、移動体2を制御する。より詳細には、制御部42は、第2通信部41により、サーバ装置3との間で情報の送受信を行い、インタフェース43により、移動体2との間で情報の送受信を行う。制御部42は、サーバ装置3から取得する指示情報に従って、制御信号を生成する。制御部42は、制御信号を移動体2に出力することによって、指示情報で規定される、発進、停止又は旋回等の動作を移動体2に実行させる。指示情報には、移動体2の移動経路、移動速度及び進行方向等に関する情報も含まれている。制御部42は、指示情報を定期的(例えば、1秒毎)にサーバ装置3から取得する。
また、制御部42は、検知部222の検知結果を移動体2から取得し、取得した検知結果を第2通信部41からサーバ装置3に送信する機能を有している。検知部222の検知結果には、本体部21の挙動、本体部21の周辺状況、本体部21の位置等に関する情報が含まれている。制御部42は、検知部222の検知結果を定期的(例えば、1秒毎)に移動体2から取得する。
本実施形態では、制御部42は、サーバ装置3からの指示に従って、移動体2を制御するので、検知部222の検知結果についても、基本的にはサーバ装置3での演算に用いられる。ただし、検知部222の検知結果は、制御部42での処理に用いられてもよい。この場合、制御部42は、検知部222の検知結果から、例えば、移動体2の周囲における障害物の有無及びその位置等に関する障害物情報を抽出し、障害物情報に従って移動体2を制御する。一例として、制御部42は、移動体2の移動経路、又は移動経路の近傍に障害物の存在を認めた場合に、移動体2を停止させる。その後、制御部42は、検知部222により移動経路、又は移動経路の近傍の障害物が無くなったことをもって、移動体2の移動を再開する。
インタフェース43は、直接的又は間接的に、移動体2と通信する。インタフェース43と移動体2との間の通信方式としては、無線通信又は有線通信の適宜の通信方式が採用される。
第2記憶部44は、例えば、書換可能な不揮発性の半導体メモリ等の非一時的記録媒体にて実現される。第2記憶部44は、例えば、サーバ装置3から取得した指示情報、及び検知部222の検知結果等の情報を記憶する。
(2.4)サーバ装置
次に、サーバ装置3の構成について、図2を参照してより詳細に説明する。
サーバ装置3は、図2に示すように、第1通信部31と、ノード生成部32と、パス生成部33と、予約部34と、仮想ノード生成部35と、例外ノード生成部36と、位置調整部37と、表示制御部38と、第1記憶部39と、を有している。
第1通信部31は、ネットワークNT1及び通信端末5を介して間接的に、クライアント端末4と通信する。さらに、第1通信部31は、ネットワークNT1を介して間接的に、情報端末6と通信する。第1通信部31とクライアント端末4又は情報端末6との間の通信方式としては、無線通信又は有線通信の適宜の通信方式が採用される。
ノード生成部32は、指定ノードNdmを生成する。指定ノードNdmは、移動体2を制御可能な「ノード」の一種である。ノード生成部32は、指定ノードNdmを、所定エリアA1に対応するマップM1における任意の位置に生成する。ここでは、ノード生成部32は、指定ノードNdmを少なくとも2つ(一対)生成する。言い換えれば、一対の指定ノードNdmは、マップM1における任意の位置に生成される。「ノード」は、上述したように、移動体制御システム1による移動体2の制御が可能な制御点である。
パス生成部33は、パスPmを生成する。パス生成部33は、パスPmを、ノード生成部32にて生成された一対の指定ノードNdm間に生成する。本開示でいう「パス」は、所定エリアA1において移動体2を移動させる移動経路を規定する。すなわち、制御部42は、所定エリアA1においてパスPmに対応する移動経路に沿って移動体2を移動させる。言い換えれば、パス生成部33は、移動体2の移動経路を規定するパスPmを一対の指定ノードNdm間に生成する。
予約部34は、予約処理を実行する。予約処理は、複数の移動体2のうちの一の移動体2である対象移動体2t(図4A参照)に対応付けて1以上のノードを占有状態とする処理である。本開示でいう「占有状態」は、対象移動体2tによって占有されている状態を意味し、所定エリアA1において占有状態にあるノードに対応する区域への対象移動体2t以外の進入が制限される。本実施形態では、各移動体2の移動に関する動作は、制御部42によって決定されるので、制御部42は、複数の移動体2のうちの対象移動体2t以外の移動体2の、所定エリアA1において占有状態のノードに対応する区域Zm(図4A参照)への進入を制限する。区域Zmの添え字「m」には、指定ノードNdm等と同様に、自然数(1,2,3,…)が入る。
また、予約部34は、予約処理において、対象移動体2tが位置する区域Zmに対応するノードから数えて進行方向側に予約数分のノードを占有状態とする。そして、予約部34は、対象移動体2tが位置する区域Zmが変わる度に予約処理を実行する。本開示でいう「予約数」は、1台の対象移動体2tに対して同時に占有状態にされるノードの数を意味する。つまり、一例として、予約数が「3」であれば、予約処理において、対象移動体2tが位置する区域Zmに対応するノードから数えて進行方向側に位置する3つ分のノードが占有状態となる。
仮想ノード生成部35は、仮想ノードNvm(図7参照)を生成する。仮想ノードNvmは、移動体2を制御可能な「ノード」の一種であるが、指定ノードNdmとは別のノードである。つまり、仮想ノードNvmと指定ノードNdmとは区別可能である。仮想ノード生成部35は、一対の指定ノードNdmの間隔が上限値以上である場合、パスPm上に、仮想ノードNvmを少なくとも1つ生成する。言い換えれば、仮想ノード生成部35は、パス生成部33にて生成されたパスPm上に、仮想ノードNvmを生成する。
仮想ノード生成部35は、パスPm上における隣接するノード同士の間隔が、下限値以上かつ上限値未満となるように、仮想ノードNvmの個数及び位置を決定する。すなわち、仮想ノード生成部35にてパスPm上に生成される仮想ノードNvmの個数、及びパスPm上での位置については、パスPm上における隣接するノード同士の間隔を基に決定される。言い換えれば、仮想ノードNvmの個数及び位置は、一対の指定ノードNdmの間隔に応じて決まることになる。
例外ノード生成部36は、例外ノードNem(図9参照)を生成する。例外ノードNemは、移動体2を制御可能な「ノード」の一種であるが、指定ノードNdm及び仮想ノードNvmとは別のノードである。つまり、例外ノードNemと、指定ノードNdm及び仮想ノードNvmとは区別可能である。例外ノード生成部36は、例外ノードNemを、マップM1に少なくとも1つ生成する。
ここで、例外ノードNemが下限値未満の間隔で複数生成された場合、隣接する複数の例外ノードNem同士の間隔の合計が下限値以上となるように複数の例外ノードNemがグループ化される。本開示でいう「グループ化」とは、複数の例外ノードNemを1組として、一まとめに取り扱える状態とすることをいう。例えば、予約部34がノードを占有状態とする場合には、グループ化された複数の例外ノードNemについては、予約部34は、一斉に占有状態とする。
位置調整部37は、一対の指定ノードNdmの少なくとも一方の位置を調整する。本実施形態では、マップM1は互いに交差する第1軸Ax(図5参照)及び第2軸Ay(図5参照)を含んでいる。位置調整部37は、一対の指定ノードNdmがマップM1において第1軸Ax又は第2軸Ayに平行に並ぶように、一対の指定ノードNdmの少なくとも一方の位置を調整する。
表示制御部38は、所定エリアA1に対応するマップM1を含む設定画面D1を表示させる。より詳細には、表示制御部38は、第1通信部31により、情報端末6との間で情報の送受信を行い、情報端末6の表示部62に設定画面D1を表示させる。
第1記憶部39は、例えば、書換可能な不揮発性の半導体メモリ等の非一時的記録媒体にて実現される。第1記憶部39は、サーバ装置3内に組み込まれる構成に限らず、例えば、サーバ装置3がアクセス可能なクラウド(クラウドコンピューティング)等に存在してもよい。第1記憶部39は、例えば、所定エリアA1のマップに関する地図情報、各移動体2の移動経路に関する経路情報、各移動体2に関する移動体情報等を記憶する。
サーバ装置3の各部の動作について詳しくは「(3)動作」の欄で説明する。
(2.5)情報端末
情報端末6は、ユーザの操作を受け付ける機能、及びユーザに情報を提示(表示)する機能を有する端末である。ここでいう「ユーザ」は、移動体制御システム1のユーザ、移動体システム10のユーザ、及び設計支援システム100のユーザを含む。
情報端末6は、上述したように、メモリ及びプロセッサを含むコンピュータシステムを主構成とする。本実施形態では、一例として、情報端末6は、パーソナルコンピュータ、スマートフォン又はタブレット端末等の端末であることとして説明する。情報端末6は、専用のアプリケーションソフトをインストールし、このアプリケーションソフトを起動することにより、以下に説明する機能を実現する。
情報端末6は、第3通信部61と、表示部62と、操作部63と、を有している。
第3通信部61は、ネットワークNT1を介して間接的に、サーバ装置3と通信する。ここでは、情報端末6は、例えば、電波を媒体とする無線通信により、ルータ等を介してネットワークNT1に接続される。情報端末6の通信方式は、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、ZigBee(登録商標)又は免許を必要としない小電力無線(特定小電力無線)等の規格に準拠した、無線通信である。さらに、情報端末6は、屋外において、例えば、通信事業者が提供する携帯電話網(キャリア網)又は公衆無線LAN(Local Area Network)を介してネットワークNT1に接続されてもよい。携帯電話網には、例えば、3G(第3世代)回線、LTE(Long Term Evolution)回線等がある。
表示部62は、本実施形態では一例として、設定画面D1(図5参照)等の、ユーザに情報を提示するための画面を表示する。本開示でいう「画面」は、表示部62に映し出される像(画像等)である。表示部62は、例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の画像表示装置により実現される。
操作部63は、人(ユーザ)の操作を受け付ける機能を有している。本実施形態では、操作部63は、例えば、マウス等のポインティングデバイス、キーボード、若しくはメカニカルなスイッチ、又はこれらの組み合わせにて実現される。また、情報端末6がタッチパネルディスプレイを搭載している場合には、タッチパネルディスプレイが表示部62及び操作部63として機能してもよい。この場合、情報端末6は、表示部62に表示される各画面上でのボタン等のオブジェクトの操作(タップ、スワイプ、ドラッグ等)が操作部63で検出されることをもって、ボタン等のオブジェクトが操作されたことと判断する。
(3)動作
以下、本実施形態に係る移動体制御システム1、移動体システム10及び設計支援システム100の動作について、図4A~図18を参照して、詳細に説明する。図5、図6、図8及び図9等は、情報端末6の表示部62に表示される設定画面D1を模式的に表す説明図である。
(3.1)基本動作
まず、移動体制御システム1及び移動体システム10の基本動作について、図4A~図4Eを参照して説明する。
図4A~図4Eは、所定エリアA1を上方から見て、所定エリアA1内を移動体2が移動する様子を概念的に示す模式図である。図4A~図4Eでは、所定エリアA1に対応するマップM1上のノード(指定ノードNdm及び仮想ノードNvm)、各ノードに対応する区域Zm(Z1~Z5)、及び移動経路R10を図示している。各ノードに対応する区域Zm(Z1~Z5)は、例えば、所定エリアA1において移動体2が旋回するのに十分な大きさの正方形状であることが好ましく、一例として、縦180cm、横180cmの正方形状の領域である。ただし、これらのノード(指定ノードNdm及び仮想ノードNvm)を示す「点」、区域Zmを示す「枠」、及び移動経路R10(区分経路R1~R4)を示す「矢印」は、説明のために図示しているに過ぎず、実体を有する訳ではない。
ここでは、所定エリアA1において、指定ノードNd1に対応する地点から、指定ノードNd2に対応する地点へ、移動体2を移動させる場合における、移動体制御システム1及び移動体システム10の動作を例に説明する。この場合、移動体2は、指定ノードNd1と指定ノードNd2との間に生成されるパスP1(図6参照)に対応する移動経路R10に沿って所定エリアA1を移動する。
この場合において、移動体制御システム1は、サーバ装置3にて、所定エリアA1内における移動体2の移動経路R10を決定し、この移動経路R10に基づいて移動体2を移動させるように移動体2を制御する。また、移動体制御システム1は、各移動体2に搭載されたクライアント端末4から、各移動体2の位置、方位及び移動経路R10上の障害物の有無等を含む情報を定期的に受信し、受信した情報に基づき移動経路R10の修正、及び移動体2の制御等を実施する。このとき、移動体制御システム1は、所定エリアA1に対応するマップM1(図5参照)に規定されたノード(指定ノードNdm、仮想ノードNvm及び例外ノードNem)、及びパスPmに従って、移動体2を制御する。
ここでは、出発点となる指定ノードNd1と目的点となる指定ノードNd2との間には、他のノードが少なくとも1つ存在する。図4A~図4Eの例では、一対の指定ノードNd1,Nd2間には、4つの仮想ノードNv1~Nv4が存在する。これら一対の指定ノードNd1,Nd2及び4つの仮想ノードNv1~Nv4の各々は、移動体2の移動速度と進行方向との少なくとも一方を制御可能な制御点(ノード)を構成する。すなわち、これら複数のノード(指定ノードNdm及び仮想ノードNvm)の各々は、移動体2の発進、停止又は進行方向の変更のような、移動体2の動作の変化点となり得る。
ここで、一対の指定ノードNd1,Nd2間のパスP1に対応する移動経路R10は、4つの仮想ノードNv1~Nv4にて、複数の直線的な区分経路R1~R5に分割される。複数(ここでは5つ)の区分経路R1~R5の各々は、隣接するノード間を結ぶ直線状の経路である。そして、これら複数の区分経路R1~R5の各々は、移動体制御システム1が移動体2を移動させるときの最小単位となる。言い換えれば、移動体制御システム1は、区分経路R1~R5単位で、移動体2を移動させることができる。
クライアント端末4の制御部42は、サーバ装置3から定期的(例えば1秒毎)に送信される指示情報に従って、複数の区分経路R1~R5の各々に沿って、移動体2を移動させるための制御信号を生成する。具体的には、制御部42は、指示情報と、移動体2の現在位置等の情報から、移動体2が移動すべき区分経路R1~R5を決定する。さらに、制御部42は、移動体2が次に走行すべき区分経路R1~R5における始点及び終点の位置、走行速度、並びに移動体2の方位等を含む制御信号を生成し、移動体2に出力する。ここで、指示情報は、各区分経路R1~R5で移動体2が移動(走行)すべき速度である移動速度の情報を含んでいてもよい。さらに、指示情報は、各区分経路R1~R5の始点及び/又は終点、つまり各ノードでの移動体2の方位の情報、並びに、各区分経路R1~R5に沿って移動中の移動体2の方位(姿勢)の情報を含んでもよい。
一方で、サーバ装置3は、各移動体2(クライアント端末4)から定期的(例えば1秒毎)に送信される検知部222の検知結果を、各移動体2の識別情報及び時刻等と対応付けて記憶する。これにより、サーバ装置3は、各移動体2の現在位置、現在方位及び現在状態等の情報を、移動体2ごとに、ほぼリアルタイムで取得し、管理できる。移動体2の現在位置は、マップM1上の座標位置(X,Y)で示される。移動体2の現在方位は、方位角で示される。移動体2の現在状態には、走行状態、停止状態、待機中及び異常発生等の移動体2の状態等が含まれる。
本実施形態では、制御部42は、サーバ装置3からの指示に従って、移動体2を制御するので、検知部222の検知結果についても、基本的にはサーバ装置3での演算に用いられる。ただし、検知部222の検知結果は、制御部42での処理に用いられてもよい。この場合、制御部42は、検知部222の検知結果から、例えば、移動体2の周囲における障害物の有無及びその位置等に関する障害物情報を抽出し、障害物情報に従って移動体2を制御する。一例として、制御部42は、移動体2の移動経路、又は移動経路の近傍に障害物の存在を認めた場合に、移動体2を停止させる。その後、制御部42は、検知部222により移動経路、又は移動経路の近傍の障害物が無くなったことをもって、移動体2の移動を再開する。また、制御部42は、障害物情報を移動体2から受け取ると、障害物を回避できるように移動体2の走行速度の変更、又は移動経路の変更等を実行してもよい。
さらに、制御部42は、指示情報で規定されている各区分経路R1~R5又は移動経路R10から、移動体2の現在位置が外れた場合には、移動体2を停止させる。そして、移動体2の現在位置が、各区分経路R1~R5又は移動経路R10から一定距離以内にあれば、制御部42は、移動体2を各区分経路R1~R5又は移動経路R10上に復帰させるように制御する。
次に、移動体2を移動させるための具体的な処理について説明する。
まず、移動体制御システム1は、図4Aに示すように、所定エリアA1内において指定ノードNd1に対応する区域Z1に位置する移動体2を対象移動体2tとして、対象移動体2tに対応付けて1以上のノードを占有状態とする予約処理を実行する。このとき、予約処理により、対象移動体2tが位置する区域Z1に対応するノードから数えて進行方向側に予約数分のノードが、占有状態となる。ここで、予約数には、対象移動体2tが位置する区域Z1に対応するノード(指定ノードNd1)も含まれる。
ここでは一例として、予約数は「3」であって、対象移動体2tが位置する区域Z1に対応するノードから進行方向側の3つ分のノード、つまり指定ノードNd1及び仮想ノードNv1,Nv2という3つのノードが、占有状態となる。そして、所定エリアA1において占有状態にあるノード(指定ノードNd1及び仮想ノードNv1,Nv2)に対応する区域Z1,Z2,Z3への対象移動体2t以外の進入が制限(禁止)される。図4A~図4Eでは、占有状態にあるノードに対応する区域Zmには網掛(ドットハッチング)を付しており、占有状態にない、つまり非占有状態にあるノードに対応する区域Zmには網掛を付していない。
次に、移動体制御システム1は、図4Bに示すように、移動体2(対象移動体2t)に対して、占有状態のノードに対応する区域Z1,Z2,Z3内での移動を指示する。つまり、サーバ装置3は、指定ノードNd1に対応する区域Z1から仮想ノードNv2に対応する区域Z3まで移動体2を移動させるべく、2つの区分経路R1,R2の移動を指示する内容の指示情報を出力する。この指示情報に従って、クライアント端末4の制御部42は、2つの区分経路R1,R2の各々に沿って、移動体2を移動させるための制御信号を生成する。結果的に、移動体2は、区域Z1から区域Z3に向けて2つの区分経路R1,R2を移動する。
ここにおいて、移動体制御システム1は、対象移動体2tが位置する区域Zmが変わる度に予約処理を実行する。つまり、図4Cに示すように、対象移動体2tが区域Z1を離脱すると、対象移動体2tが位置する区域Zmが変わるので、移動体制御システム1は、2回目の予約処理を実行する。
2回目の予約処理では、移動体制御システム1は、区域Z1に対応する指定ノードNd1について、占有状態を解除する。つまり、対象移動体2tが移動し終わった区域Z1については、対象移動体2tに占有させる必要性がないため、この区域Z1に対応する指定ノードNd1の状態は占有状態から非占有状態に切り替えられる。さらに、2回目の予約処理では、移動体制御システム1は、区域Z3に対応する仮想ノードNv2から見て進行方向側に隣接するノード(仮想ノードNv3)を、新たに占有状態とする。その結果、所定エリアA1において占有状態にあるノード(仮想ノードNv1,Nv2,Nv3)に対応する区域Z2,Z3,Z4への対象移動体2t以外の進入が制限(禁止)される。
次に、移動体制御システム1は、図4Cに示すように、移動体2(対象移動体2t)に対して、占有状態のノードに対応する区域Z2,Z3,Z4内での移動を指示する。結果的に、移動体2は、区域Z2から区域Z4に向けて2つの区分経路R2,R3を移動する。
以降は同様に、移動体制御システム1は、対象移動体2tが位置する区域Zmが変わる度に予約処理を実行し、占有状態のノードを継ぎ足しながら、移動体2を区分経路R1~R5単位で移動させる。
すなわち、図4Dに示すように、対象移動体2tが区域Z2を離脱すると、対象移動体2tが位置する区域Zmが変わるので、移動体制御システム1は、3回目の予約処理を実行する。
3回目の予約処理では、移動体制御システム1は、区域Z2に対応する仮想ノードNv1について、占有状態を解除する。さらに、3回目の予約処理では、移動体制御システム1は、区域Z4に対応する仮想ノードNv3から見て進行方向側に隣接するノード(仮想ノードNv4)を、新たに占有状態とする。その結果、所定エリアA1において占有状態にあるノード(仮想ノードNv2,Nv3,Nv4)に対応する区域Z3,Z4,Z5への対象移動体2t以外の進入が制限(禁止)される。
次に、移動体制御システム1は、図4Dに示すように、移動体2(対象移動体2t)に対して、占有状態のノードに対応する区域Z3,Z4,Z5内での移動を指示する。結果的に、移動体2は、区域Z3から区域Z5に向けて2つの区分経路R3,R4を移動する。
その後、対象移動体2tが区域Z3を離脱すると、対象移動体2tが位置する区域Zmが変わるので、移動体制御システム1は、4回目の予約処理を実行する。さらに、図4Eに示すように、対象移動体2tが区域Z4を離脱すると、対象移動体2tが位置する区域Zmが変わるので、移動体制御システム1は、5回目の予約処理を実行する。
5回目の予約処理では、移動体制御システム1は、区域Z4に対応する仮想ノードNv3について、占有状態を解除する。その結果、所定エリアA1において占有状態にあるノード(仮想ノードNv4及び指定ノードNd2)に対応する区域Z5,Z6への対象移動体2t以外の進入が制限(禁止)される。
次に、移動体制御システム1は、図4Eに示すように、移動体2(対象移動体2t)に対して、占有状態のノードに対応する区域Z5,Z6内での移動を指示する。結果的に、移動体2は、区域Z5から区域Z6に向けて区分経路R5を移動する。
このように、移動体制御システム1は、占有状態のノードを継ぎ足しながら移動体2を移動させ、最終的に、移動体2は、所定エリアA1において、指定ノードNd1に対応する区域Z1から、指定ノードNd2に対応する区域Z6に移動する。したがって、移動体制御システム1は、所定エリアA1において、一対の指定ノードNd1,Nd2間に生成されたパスP1に対応する移動経路R10に沿って移動体2を移動させることになる。
(3.2)制御計画の設計
次に、移動体制御システム1にて移動体2を制御するための制御計画の設計について説明する。
(3.2.1)マップ画面
サーバ装置3は、図5に示すように、所定エリアA1に対応するマップM1の情報を第1記憶部39に記憶している。制御計画の設計は、このようなマップM1を含む設定画面D1上で行われる。
マップM1は、所定エリアA1の平面図に相当し、所定エリアA1内における入口902、出口903、柱904、隔壁905及びベルトコンベア906等の情報と、移動体2の進入禁止エリア等の情報を含んでいる。本開示でいう「進入禁止エリア」は、移動体2の進入が制限されるエリアである。
マップM1は、所定エリアA1の平面図と、地図データに重畳して表示されるグリッド線G1と、を含んでいる。グリッド線G1は、第1軸Ax及び第2軸Ayの各々に平行に、かつ略一定の間隔で配置されている。言い換えれば、マップM1は、グリッド線G1によって、格子状に並ぶ複数のマス目に区分けされたグリッドマップを構成している。マス目は、例えば、所定エリアA1において移動体2の進行方向に対する移動体2の幅寸法に対応するような寸法の正方形状であることが好ましく、一例として、移動体2の幅に対応する縦60cm、横60cmの正方形状に形成される。
このマップM1における各位置は、例えば、マップM1上の特定位置に設定された原点を基準に、第1軸Ax及び第2軸Ayの各々における相対位置により座標位置(X,Y)で表される。つまり、マップM1上の各位置は、座標位置(X,Y)にて一意に特定可能である。さらに、マップM1上での方位は「方位角」にて規定される。具体的には、図5の下方から上方に向かう方位、つまり第2軸Ayの矢印の示す方位が、方位角「0度」の方位と規定され、この方位から時計回りに方位角が増加するように、方位角が規定される。第1記憶部39に記憶されているマップM1の情報は、随時更新可能である。
サーバ装置3は、上述したようなマップM1を含む設定画面D1を、表示制御部38にて、情報端末6の表示部62に表示させる。すなわち、情報端末6の表示部62には、例えば、図5に示すような設定画面D1が表示される。設定画面D1が表示された状態において、情報端末6の操作部63を用いることにより、ユーザは、移動体2の移動経路等を設定可能である。つまり、ユーザは、設計支援システム100を用いることにより、設定画面D1上で、所定エリアA1内を移動する移動体2を制御するための制御計画の設計が可能である。
図6は、マップM1の一部を拡大表示したときの設定画面D1である。このような設定画面D1では、情報端末6の操作部63を用いることにより、ユーザは、マップM1上に指定ノードNd1を生成する操作が可能である。
具体的には、ユーザは操作部63を操作して、少なくとも設定画面D1におけるマップM1上の指定位置を指定する。このとき、操作部63は、指定位置を指定するユーザの操作に応じた操作信号を出力する。ノード生成部32は、この操作信号に従って、マップM1における指定位置に、移動体2を制御可能なノードである指定ノードNd1を生成する。このとき、ユーザは、例えば、操作部63としてのマウスを用いて、マップM1における任意の位置を指定位置として指定可能である。そのため、ノード生成部32は、マップM1における任意の位置に、指定ノードNdmを生成することができる。
ここで、本実施形態に係る移動体制御システム1は、グリッド線G1に拘束されることなく、マップM1の任意の位置にノードを設定できる。つまり、本実施形態では、ノードを設定する際の目安又は入力支援として、設定画面D1において、マップM1がグリッド線G1を含んでいる。ただし、ノード生成部32は、グリッド線G1の位置にはかかわらずに指定ノードNdmを生成する。そのため、本実施形態では、グリッド線G1に拘束されることなく、マップM1における任意の位置にノードを設定することが可能である。
同様の操作をユーザが繰り返し行うことで、マップM1上には、複数の指定ノードNdmが生成される。図6の例では、同様の操作をユーザが4回行うことで、マップM1上に、4つの指定ノードNd1~Nd4が生成される。4つの指定ノードNd1~Nd4のうち、隣接する2つの指定ノードNdmが、一対の指定ノードNdmを構成する。つまり、指定ノードNd1,Nd2は一対の指定ノードNdmを構成し、同様に、指定ノードNd2,Nd3、指定ノードNd3,Nd4は、それぞれ一対の指定ノードNdmを構成する。
また、設定画面D1において、各指定ノードNdmの周囲には、各指定ノードNdmを囲む枠体Fmが表示される。枠体Fmの添え字「m」には、自然数(1,2,3,…)が入る。図6の例では、4つの指定ノードNd1~Nd4に対して、それぞれ枠体F1~F4が設定されている。ここで、各枠体Fmは、所定エリアA1における区域Zmに対応している。本実施形態では、各枠体Fmは、例えば、所定エリアA1において移動体2が旋回するのに十分な大きさの正方形状であることが好ましく、一例として、所定エリアA1において縦180cm、横180cmの正方形状の領域を規定する大きさである。各指定ノードNdmは、各指定ノードNdmを囲む枠体Fmの中心に位置する。ここで、複数の枠体Fm同士の重複は制限(禁止)されている。例えば、指定ノードNd1を囲む枠体F1の内側に、指定ノードNd2を囲む枠体F2が重複して設定されることはない。これにより、隣接する一対の指定ノードNdm間の間隔に下限値Lが設定される。本実施形態では、下限値Lは、所定エリアA1における180cmである。
すなわち、隣接する一対の指定ノードNdm同士の間隔が下限値L未満となるような、指定ノードNdmの配置が制限(禁止)される。このように、ユーザが、ノード(指定ノードNdm)を設定するための設定画面D1においては、原則、隣接するノードとの間隔が下限値L以上となるように、指定ノードNdmを設定できる位置が制限される。ただし、後述する例外ノードNemであれば、隣接するノードとの間隔が下限値L未満となる位置にノード(例外ノードNem)を設定することも可能である。
ここにおいて、ユーザは、マップM1上に設定するノードの属性を選択可能である。ノードの属性には、少なくとも指定ノードNdm及び例外ノードNemを含む、ノードの種別が含まれている。一例として、ユーザは、操作部63を操作して、設定画面D1にプルダウンメニューを表示させた状態で、プルダウンメニュー上でノードの属性を選択する。
マップM1に少なくとも2つ(一対)の指定ノードNdmが生成された状態において、設定画面D1では、情報端末6の操作部63を用いることにより、ユーザは、マップM1上にパスPmを生成する操作が可能である。
具体的には、ユーザは操作部63を操作して、少なくとも設定画面D1におけるマップM1上の任意の指定ノードNdmを選択する。このとき、操作部63は、指定ノードNdmを選択するユーザの操作に応じた操作信号を出力する。パス生成部33は、この操作信号に従って、選択された指定ノードNdmを始点とするパスPmを生成する。このとき、ユーザは、例えば、操作部63としてのマウスを用いて、パスPmの始点となる指定ノードNdmを選択した状態で、パスPmの終点となる指定ノードNdmに向かってマウスをドラッグする。これにより、パスPmの始点及び終点となる一対の指定ノードNdmが選択され、この一対の指定ノードNdm間にパスPmが生成される。
図6の例では、一対の指定ノードNd1,Nd2間にパスP1が生成され、一対の指定ノードNd2,Nd3間にパスP2が生成され、一対の指定ノードNd3,Nd4間にパスP3が生成されている。つまり、図6の例では、3つのパスP1~P3が生成されている。
ここにおいて、ユーザは、マップM1上に設定するパスPmの属性を選択可能である。パスPmの属性には、少なくとも双方向と片方向(単方向)とがある。双方向のパスPmは、双方向への移動体2の移動を許容する、つまり移動体2の往復を許容するパスである。単方向のパスPmは、片方向への移動体2の移動のみを許容する、つまり移動体2の往復を禁止するパスである。一例として、ユーザは、操作部63を操作して、設定画面D1にプルダウンメニューを表示させた状態で、プルダウンメニュー上でパスPmの属性を選択する。パスPmの属性は、設定画面D1におけるパスPm中の「矢印」にて表示される。つまり、図6の例では、3つのパスP1~P3のうち、パスP1は双方向、パスP2,P3は片方向のパスである。
ここで、パス生成部33は、マップM1上における出発点のノードと目的点のノードとを最短経路で結ぶパスPmを探索する。さらに、パス生成部33は、第1軸Ax又は第2軸Ayに平行となるように、パスPmを生成する。つまり、パス生成部33で生成されるパスPmは、第1軸Ax又は第2軸Ayに平行に設定される。さらに、パス生成部33は、移動体2のスムーズな移動が可能となる、つまり曲がり角が少ない移動経路を規定するように、パスPmを生成してもよい。
(3.2.2)仮想ノード
本実施形態に係る移動体制御システム1及び設計支援システム100は、一対の指定ノードNdmが設定された場合において、一対の指定ノードNdmの間隔に応じて、一対の指定ノードNdm間に1つ以上の仮想ノードNvmを設定する機能を有している。
つまり、仮想ノード生成部35は、マップM1における一対の指定ノードNdm間に、一対の指定ノードNdmとは別のノードである仮想ノードNvmを、少なくとも1つ生成する。本開示でいう「仮想ノード」は、ノードの一種ではあるものの、指定ノードNdmとは異なり設定画面D1には表示されず、一対の指定ノードNdm間に生成されたパスPm上に自動的に設定される。
具体的には、一対の指定ノードNdmの間隔については、上限値が規定されており、一対の指定ノードNdmの間隔が上限値未満となるように、一対の指定ノードNdm間には、適宜1つ以上の仮想ノードNvmが設定される。本実施形態では、上限値は、隣接する一対の指定ノードNdm間の間隔について設定された下限値Lの2倍、つまり「2L」である。下限値Lが、所定エリアA1における180cmであれば、上限値2Lは、所定エリアA1における360cmである。
これにより、移動体制御システム1は、適当な間隔で設定されるノード(指定ノードNdm及び仮想ノードNvm)ごとに移動体2を制御することが可能である。したがって、グリッドフリーであるが故に、過大な間隔を空けて一対の指定ノードNdmが設定された場合であっても、移動体制御システム1は、適当な地点において、移動体2の停止又は進行方向の変更等の制御を行うことができる。
また、パスPm上における隣接するノード同士の間隔は、原則、下限値L以上かつ上限値2L未満の範囲内に制限されている。このような制限のもとで、一対の指定ノードNdm間の間隔が上限値2L以上である場合には、一対の指定ノードNdm間には、1つ以上の仮想ノードNvmが適宜設定される。そのため、仮想ノード生成部35は、パスPm上における隣接するノード同士の間隔が、下限値L以上かつ上限値2L未満となるように、仮想ノードNvmの個数及び位置を決定する。
図7A~図7Dは、仮想ノードNvmの生成方法を概念的に表す説明図である。ここでは、一対の指定ノードNd1,Nd2間に仮想ノードNvmが生成される場合を例示する。つまり、一対の指定ノードNd1,Nd2の間隔、つまりパスPmの長さ(パス長Lp)が上限値2L以上であることを前提とする。
この場合、仮想ノード生成部35は、まずは図7Aに示すように、一対の指定ノードNd1,Nd2の間隔、つまりパス長Lpを下限値Lで除算したときの商α(ただしαは自然数)及び剰余β(ただしβは自然数)を求める。商αは「9」であるため、一対の指定ノードNd1,Nd2間には、図7Aに示すように、下限値Lに相当する長さを持つ単位パスが9つ収まる。図7Aでは、区間「1」~区間「9」のそれぞれに単位パスが収まっており、区間「10」に剰余βに相当する長さを持つ剰余パスが収まっている。
次に、仮想ノード生成部35は、図7Bに示すように、剰余βを商αにて案分する案分処理を実行する。案分処理により9等分された剰余パスは、図7Cに示すように、複数の区間「1」~区間「9」に振り分けられる。ここで、案分処理にて案分される剰余パスの単位が規定されていてもよい。この場合には、剰余パスは、一例として、5等分され、5等分された剰余パスが複数の区間「1」~区間「5」に振り分けられる。
最後に、各単位パスに、案分された剰余パスが加算されることにより、図7Dに示すように、区間「1」~区間「9」の各々における単位パスが延長される。結果的に、図7Dに示すように、一対の指定ノードNd1,Nd2間が、区間「1´」~区間「9´」に区分され、各区分点に仮想ノードNvmが設定される。要するに、図7Dの例では、一対の指定ノードNd1,Nd2間には、8つの仮想ノードNv1~Nv8が生成される。
(3.2.3)位置調整機能
本実施形態に係る移動体制御システム1及び設計支援システム100は、一対の指定ノードNdmの少なくとも一方の位置を調整する機能を有している。
本実施形態では、位置調整部37は、パスPmを生成する際に、パスPmの始点及び終点となる一対の指定ノードNdmの少なくとも一方の位置を調整する。具体的には、図8に示すように、パスP1の生成時において、パスP1の始点及び終点となる一対の指定ノードNd1,Nd2が、第1軸Axに平行に並ぶように、一対の指定ノードNd1,Nd2の少なくとも一方の位置が調整される。図8では、ユーザが、例えば、操作部63としてのマウスを用いて、カーソルC1を操作し、パスP1の始点となる指定ノードNd1を選択した状態で、パスP1の終点となる指定ノードNd2に向かってマウスをドラッグする様子を表している。
この場合、指定ノードNd2が、元々は、指定ノードNd1と第1軸Axに平行に並ぶ位置になくても、指定ノードNd2は、パスP1の終点として選択された時点で、指定ノードNd1と第1軸Axに平行に並ぶ位置に補正される。つまり、指定ノードNd2は、図8に示すように、下方に位置補正される。これに伴って、一対の指定ノードNd1,Nd2間に生成されるパスP1も、第1軸Axに平行に補正される。
ただし、上述したような補正は、常に実行されるのではなく、一対の指定ノードNd1,Nd2間の位置ずれが補正限界値以上あれば、補正は実行されない。ここで、補正限界値は、枠体Fmの一辺の長さ(所定エリアA1における180cm)と同じ値である。例えば、指定ノードNd1を通る第1軸Axから指定ノードNd2までの距離が補正限界値以上ある場合、第2軸Ayに沿った指定ノードNd2の位置補正は実行されない。同様に、指定ノードNd1を通る第2軸Ayから指定ノードNd2までの距離が補正限界値以上ある場合、第1軸Axに沿った指定ノードNd2の位置補正は実行されない。そして、一対の指定ノードNd1,Nd2間の位置ずれが補正限界値以上あって補正が実行されなかった場合には、一対の指定ノードNd1,Nd2間にパスP1は生成されない。
(3.2.4)例外ノード
本実施形態に係る移動体制御システム1及び設計支援システム100は、例外ノードNemを生成する機能を有している。
本実施形態では、例外ノード生成部36は、図9に示すように、例外ノードNemを生成する。例外ノードNemは、上述したように、隣接するノードとの間隔が下限値L未満となる位置にも生成可能である。本実施形態において、例外ノードNemの場合の、隣接するノードとの最小間隔は、一例として、グリッド線G1の間隔(所定エリアA1における60cm)と同値に規定される。本実施形態では、設定画面D1において、例外ノードNemについては、指定ノードNdmのような枠体Fmは表示されない。
すなわち、図9に示すように、設定画面D1上に、3つの例外ノードNe1~Ne3を生成する場合において、各例外ノードNe1~Ne3における隣接するノードとの間隔については、下限値Lは適用されない。そのため、各例外ノードNe1~Ne3は、隣接するノードとの間隔が下限値L未満となる位置にも生成可能である。
ここで、例外ノードNemが下限値L未満の間隔で複数生成された場合、隣接する複数の例外ノードNem同士の間隔の合計が下限値L以上となるように、複数の例外ノードNemがグループ化される。図9の例では、3つの例外ノードNe1~Ne3は、グリッド線G1の間隔の1.5倍の間隔(所定エリアA1における90cm)で配置されている。そのため、これら3つの例外ノードNe1~Ne3は、グループ化されている。したがって、例えば、予約部34がノードを占有状態とする場合には、これら3つの例外ノードNe1~Ne3は、一斉に占有状態となる。
(3.2.5)予約数の調整機能
次に、予約数の調整機能について、図10A~図10Eを参照して説明する。
図10A~図10Eは、「(3.1)基本動作」の欄で説明した図4A~図4Eと同様に、所定エリアA1を上方から見て、所定エリアA1内を移動体2が移動する様子を概念的に示す模式図である。以下、「(3.1)基本動作」と重複する説明は適宜省略する。
本実施形態では、通信端末5が、電波を媒体とする無線通信により所定エリアA1内の移動体2に搭載されている通信部(第2通信部41)と通信している。そこで、予約部34は、通信端末5における通信部(第2通信部41)との無線通信の状況に応じて予約数を決定する。要するに、本実施形態では、予約処理において、1台の対象移動体2tに対して同時に占有状態にされるノードの数である予約数は、固定値ではなく、無線通信の状況によって変化する可変値である。
ここでは、予約部34は、無線通信における電波強度が小さいほど予約数を多くするように、無線通信の状況に応じて予約数を決定する。具体的には、予約部34は、通信端末5と第2通信部41との間の無線通信における電波強度を、通信端末5又は第2通信部41における受信信号強度(RSSI:Received Signal Strength Indication)にて求めている。無線通信における電波強度が小さいほど、移動体2は、クライアント端末4(第2通信部41)での通信端末5との無線通信が成立しにくい状況にあるので、このような場合には、予約部34での予約数を多くする。
本実施形態では、一例として、電波強度について閾値を設定している。予約部34は、電波強度が閾値以上であれば無線通信の状況が「良好」と判断し、予約数を「2」とし、電波強度が閾値未満であれば無線通信の状況が「不良」と判断し、予約数を「3」とする。
無線通信の状況は、例えば、ノードごとに予め測定され、マップM1に対応付けて第1記憶部39に記憶されている。そのため、マップM1上に生成された複数のノードのうち、いずれのノードにおいて無線通信の状況が良好(電波強度が閾値以上)であるかは、サーバ装置3で既知である。そして、予約部34は、占有状態とするノード中に、無線通信の状況が不良(電波強度が閾値未満)であるノードが含まれている場合には、予約数を少なく、つまり予約数を「3」にする。ただし、無線通信の状況は、例えば、サーバ装置3がリアルタイムに取得してもよい。
次に、予約数を調整するための具体的な処理について説明する。図10A~図10Eでは、複数のノードのうち仮想ノードNv2のみが無線通信の状況が「不良」であって、仮想ノードNv2のノードについては無線通信の状況が「良好」であると仮定する。
まず、移動体制御システム1は、図10Aに示すように、所定エリアA1内において指定ノードNd1に対応する区域Z1に位置する移動体2を対象移動体2tとして、対象移動体2tに対応付けて1以上のノードを占有状態とする予約処理を実行する。このとき、予約処理により、対象移動体2tが位置する区域Z1に対応するノードから数えて進行方向側に予約数分のノードが、占有状態となる。ここで、指定ノードNd1及び仮想ノードNv1は、いずれも無線通信の状況が「良好」である。そのため、このときの予約数は「2」である。
したがって、対象移動体2tが位置する区域Z1に対応するノードから進行方向側の2つ分のノード、つまり指定ノードNd1及び仮想ノードNv1という2つのノードが、占有状態となる。
次に、移動体制御システム1は、図10Bに示すように、移動体2(対象移動体2t)に対して、占有状態のノードに対応する区域Z1,Z2内での移動を指示する。結果的に、移動体2は、区域Z1から区域Z2に向けて区分経路R1を移動する。
ここにおいて、図10Cに示すように、対象移動体2tが区域Z1を離脱すると、対象移動体2tが位置する区域Zmが変わるので、移動体制御システム1は、2回目の予約処理を実行する。
2回目の予約処理では、移動体制御システム1は、区域Z1に対応する指定ノードNd1について、占有状態を解除する。さらに、2回目の予約処理では、移動体制御システム1は、区域Z2に対応する仮想ノードNv1から見て進行方向側に隣接するノード(仮想ノードNv2)を、新たに占有状態とする。ここで、仮想ノードNv2については、無線通信の状況が「不良」である。そのため、このときの予約数は「3」である。
したがって、図10Cに示すように、対象移動体2tが位置する区域Z2に対応するノードから進行方向側の3つ分のノード、つまり仮想ノードNv1,Nv2,Nv3という3つのノードが、占有状態となる。その結果、所定エリアA1において占有状態にあるノード(仮想ノードNv1,Nv2,Nv3)に対応する区域Z2,Z3,Z4への対象移動体2t以外の進入が制限(禁止)される。
次に、移動体制御システム1は、図10Cに示すように、移動体2(対象移動体2t)に対して、占有状態のノードに対応する区域Z2,Z3,Z4内での移動を指示する。結果的に、移動体2は、区域Z2から区域Z4に向けて2つの区分経路R2,R3を移動する。
その後、図10Dに示すように、対象移動体2tが区域Z2を離脱すると、対象移動体2tが位置する区域Zmが変わるので、移動体制御システム1は、3回目の予約処理を実行する。
3回目の予約処理では、移動体制御システム1は、区域Z2に対応する仮想ノードNv1について、占有状態を解除する。さらに、3回目の予約処理では、移動体制御システム1は、区域Z4に対応する仮想ノードNv3から見て進行方向側に隣接するノード(仮想ノードNv4)を、新たに占有状態とする。その結果、所定エリアA1において占有状態にあるノード(仮想ノードNv2,Nv3,Nv4)に対応する区域Z3,Z4,Z5への対象移動体2t以外の進入が制限(禁止)される。
次に、移動体制御システム1は、図10Dに示すように、移動体2(対象移動体2t)に対して、占有状態のノードに対応する区域Z3,Z4,Z5内での移動を指示する。結果的に、移動体2は、区域Z3から区域Z5に向けて2つの区分経路R3,R4を移動する。
その後、対象移動体2tが区域Z3を離脱すると、対象移動体2tが位置する区域Zmが変わるので、移動体制御システム1は、4回目の予約処理を実行する。4回目の予約処理では、無線通信の状況が「不良」である仮想ノードNv2については、占有状態ではない。そのため、このときの予約数は「2」である。
さらに、図10Eに示すように、対象移動体2tが区域Z4を離脱すると、対象移動体2tが位置する区域Zmが変わるので、移動体制御システム1は、5回目の予約処理を実行する。このときの予約数も「2」である。
5回目の予約処理では、移動体制御システム1は、区域Z4に対応する仮想ノードNv3について、占有状態を解除する。さらに、5回目の予約処理では、移動体制御システム1は、区域Z5に対応する仮想ノードNv3から見て進行方向側に隣接するノード(指定ノードNd2)を、新たに占有状態とする。その結果、所定エリアA1において占有状態にあるノード(仮想ノードNv4及び指定ノードNd2)に対応する区域Z5,Z6への対象移動体2t以外の進入が制限(禁止)される。
次に、移動体制御システム1は、図10Eに示すように、移動体2(対象移動体2t)に対して、占有状態のノードに対応する区域Z5,Z6内での移動を指示する。結果的に、移動体2は、区域Z5から区域Z6に向けて区分経路R5を移動する。
(3.2.6)エリアテンプレート機能
次に、エリアテンプレート機能について、図11~図13Bを参照して説明する。
本実施形態では、図11に示すように、制御計画の設計に際して、少なくとも1つのエリアテンプレートT1,T2を使用可能である。エリアテンプレートT1は、複数のノードN11~N16の組み合わせを含み、エリアテンプレートT2は、複数のノードN21~N25の組み合わせを含んでいる。さらに、エリアテンプレートT1,T2の各々は、ノード間をつなぐパスを含んでいる。
ここで、エリアテンプレートT1,T2の各々は、各ノードの属性の一つとして各ノードの「制御方式」を含んでいる。本開示でいう「制御方式」は、各ノードにおける移動体2を制御の内容を意味し、例えば、停止、進行方向の変更(旋回を含む)、整列停止、待機、把持(搬送物92の把持又は積載)待ち又は設置等である。一例として、エリアテンプレートT1の複数のノードN11~N16のうち、ノードN12,N14,N15の「制御方式」は、それぞれ「待機」、「把持待ち」、「設置」である。エリアテンプレートT2の複数のノードN21~N25のうち、ノードN23,N24の「制御方式」は、それぞれ「整列停止」である。
また、エリアテンプレートT1,T2の各々は、エリアテンプレートT1,T2における移動体2の進入口を規定する「入口ノード」、及び移動体2の退出口を規定する「出口ノード」を含んでいる。一例として、エリアテンプレートT1においては、複数のノードN11~N16のうち、ノードN11が「入口ノード」、ノードN16が「出口ノード」である。この場合、移動体2は、ノードN11からエリアテンプレートT1に進入し、ノードN16にてエリアテンプレートT1から退出することになる。同様に、エリアテンプレートT2においては、複数のノードN21~N25のうち、ノードN21が「入口ノード」、ノードN25が「出口ノード」である。この場合、移動体2は、ノードN21からエリアテンプレートT2に進入し、ノードN25にてエリアテンプレートT2から退出することになる。また、エリアテンプレートによっては、1つのノードが、「入口ノード」及び「出口ノード」として兼用されてもよい。
ノード生成部32は、複数のノードN11~N16の組み合わせを含むエリアテンプレートT1が、設定画面D1におけるマップM1上の任意の領域に設定された場合に、複数のノードN11~N16をマップM1における上記領域に生成する。同様に、ノード生成部32は、複数のノードN21~N25の組み合わせを含むエリアテンプレートT2が、設定画面D1におけるマップM1上の任意の領域に設定された場合に、複数のノードN21~N25をマップM1における上記領域に生成する。つまり、本実施形態では、複数のノードN11~N16(又はN21~N25)を1セットにした、エリアテンプレートT1(又はT2)を使用することで、制御計画の設計の作業を簡略化できる。具体的には、エリアテンプレートT1(又はT2)の「入口ノード」及び「出口ノード」を、エリアテンプレートT1(又はT2)外のノードに接続することで、エリアテンプレートT1(又はT2)を、マップM1に組み込むことが可能である。このようなエリアテンプレートが、制御計画の設計前に、1ないし複数用意されていれば、ユーザは、任意のエリアテンプレートを選択して、マップM1に組み込むことで、ノードを1つずつ設定する場合に比べて、作業を簡略化できる。
また、エリアテンプレートT1,T2の各々は、図12A及び図12Bのように、エリアテンプレートT1,T2単位で回転移動させることが可能である。このとき、エリアテンプレートT1,T2の回転方向は時計回り及び反時計回りから選択可能であって、エリアテンプレートT1,T2の回転角度は90度、180度及び270度から選択可能であることが好ましい。例えば、図12Aに示すように、エリアテンプレートT2がマップM1に組み込まれている状態で、エリアテンプレートT2を時計回りに90度回転させる操作がなされたと仮定する。このとき、ユーザは、例えば、操作部63としてのマウスを用いて、エリアテンプレートT2を選択した状態で、回転方向(時計回り)及び回転角度(90度)を指定する。この場合、図12Bに示すように、エリアテンプレートT2に含まれる複数のノードN21~N25が、相互の位置関係を維持したまま、一括して時計回りに90度回転する。このとき、設定画面D1には警告が表示された上で、エリアテンプレートT2のノードN25と指定ノードNd1とをつなぐパスP1、及びノードN21と指定ノードNd2とをつなぐパスP2は、自動的に消去される。
また、エリアテンプレートT1,T2の各々は、図13A及び図13Bのように、エリアテンプレートT1,T2単位で直進移動させることも可能である。例えば、図13Aに示すように、エリアテンプレートT1がマップM1に組み込まれている状態で、エリアテンプレートT1を左方に直進移動させる操作がなされたと仮定する。このとき、ユーザは、例えば、操作部63としてのマウスを用いて、エリアテンプレートT1を選択した状態で、マウスを左方にドラッグする。この場合、図13Bに示すように、エリアテンプレートT1に含まれる複数のノードN11~N16が、相互の位置関係を維持したまま、一括して左方に直進移動する。このとき、エリアテンプレートT1のノードN16と指定ノードNd1とをつなぐパスP1、及びノードN11と指定ノードNd2とをつなぐパスP2は、自動的に延長される。
このように、本実施形態では、エリアテンプレートに含まれる複数のノードは、相互の位置関係を維持した状態で設定画面D1におけるマップM1上を移動可能である。ここでいう「移動」には、図12A及び図12Bに示すような回転移動と、図13A及び図13Bのような直進移動と、の両方を含む。
ところで、本実施形態に係る移動体制御システム1及び設計支援システム100は、制御計画の設計前に用意された複数のエリアテンプレートの中から、ユーザが、任意のエリアテンプレートを選択する際に、選択操作を補助する機能を更に有している。
具体的には、複数のエリアテンプレートは、階層構造(ツリー構造)として管理されている。一例として、階層構造は、複数のエリアテンプレートについて、エリア種別(エリア名)、エリア構成、入口ノード及び出口ノードの向き、列数、の順に細目化された構造を有する。これらのエリア種別(エリア名)、エリア構成、入口ノード及び出口ノードの向き、列数の各々の項目は、例えば、エリアテンプレートの作成時に、作成者(ユーザ)が決定し、エリアテンプレートの名称としてエリアテンプレートと対応付けて登録される。ここでいうエリア種別は、そのエリアの目的を表しており、一例として、把持エリア、流しエリア、シュートエリア、整列停止エリア、充電エリア、シンプル把持エリア及びシンプル流しエリア等を含む。エリア構成は、そのエリアの構成を表しており、一例として、待機区間の有無等を含む。ここでいう列数は、そのエリアにおいて並行するパスの数を意味する。このような階層構造によれば、ユーザは、エリアテンプレートの選択画面において、上位の項目(エリア種別)から順次、選択を行うことにより、順次絞り込みを行いながら、所望のエリアテンプレートに到達することが可能である。一例として、エリア種別として把持エリアが選択されると、選択画面には、把持エリアのエリアテンプレートのみが表示され、把持エリア以外のエリアのエリアテンプレートは非表示となる。
また、複数のエリアテンプレートの中から、ユーザが、任意のエリアテンプレートを選択する際に、選択操作を補助する機能として、サムネイル表示機能を更に有する。すなわち、選択画面において、候補となるエリアテンプレートについては、サムネイル画像を表示することにより、エリアテンプレートの特徴をイメージとして表示する。本開示でいう「サムネイル画像」は、オリジナルの画像から解像度を下げたり、圧縮したりする等の手法で、ファイルサイズを小さくした画像データを意味する。これにより、エリアテンプレートの名称等がテキスト表示される場合に比べて、ユーザは、エリアテンプレートの特徴を視覚的に認識することができ、所望のエリアテンプレートをより選択しやすくなる。エリアテンプレートのサムネイル画像は、少なくともノード及びパスの形状、並びに位置関係といったエリアテンプレートの外観を表す画像である。
また、これと同様のサムネイル表示機能は、例えば、移動経路の確認にも採用される。一例として、ユーザが、移動体2の移動経路の変更等を行うに際して、確認画面にて、現状の移動経路の確認を行うことがある。この場合、確認対象となる移動経路を、確認画面に表示した上で、ユーザは視覚的に移動経路の確認を行う。このような移動経路の確認に際して、確認画面において、確認対象となる移動経路については、サムネイル画像を表示することにより、移動経路の特徴をイメージとして表示する。これにより、移動経路の名称等がテキスト表示される場合に比べて、ユーザは、移動経路の特徴を視覚的に認識することができ、移動経路を確認しやすくなる。移動経路のサムネイル画像は、少なくとも移動経路の形状及び長さといった移動経路の外観を表す画像である。このようなサムネイル画像であれば、マップM1を含む設定画面D1上に移動経路を表示する場合に比べて、移動経路の読み込み処理に要する時間を短縮できる。さらに、サムネイル表示機能では、移動経路の読み込み及び移動経路の再生に係る演算負荷の増加を抑制することができる。
(3.2.7)制限機能
次に、パスPm及び指定ノードNdmの生成時における制限機能について説明する。
1つ目の制限機能として、他のパスPmと交差するパスPmの生成についての制限機能がある。2つのパスPmが交差する場合において、これら2つのパスPmの交点(交差点)に、ノード(指定ノードNdm)が配置されていなければ、2つのパスPmの交点での移動体2の制御ができず、複数台の移動体2が2つのパスPmの交点に同時に進入し得る。そこで、本実施形態に係る設計支援システム100は、第1の制限条件を満たすパスPmをユーザが生成しようとした場合に、第1の制限処理を実行する。
ここでいう第1の制限条件は、あるパスPmが、他のパスPmと交差するパスPmであって、かつ他のパスPmとの交点にノード(指定ノードNdm)が配置されていないことである。第1の制限処理は、例えば、パスPmが交差していることを示すエラー通知を設定画面D1上に表示する処理、又は2つのパスPmの交点にノード(指定ノードNdm)を配置する処理等である。前者(エラー通知)の場合、エラー通知によって訂正のための操作がユーザに促され、後者の場合、自動的に訂正(ノードの生成)がなされることになる。また、本実施形態では、第1の制限処理は、第1の制限条件を満たすパスPmの生成を無効化する処理を含んでいる。そのため、第1の制限処理が実行される場合、第1の制限条件を満たすパスPmの生成は行われない。
2つ目の制限機能として、指定ノードNdmとパスPmとの重畳についての制限機能がある。パスPm上に指定ノードNdmが生成される場合、及び指定ノードNdm上にパスPmが生成される場合に、指定ノードNdmとパスPmとの重畳が生じ得る。指定ノードNdmとパスPmとの重畳が生じていると、パスPmにて規定される移動経路を移動中の移動体2と、指定ノードNdmに対応する区域Zm上の移動体2とで、干渉が起こり得る。そこで、本実施形態に係る設計支援システム100は、第2の制限条件を満たす指定ノードNdm又はパスPmをユーザが生成しようとした場合に、第2の制限処理を実行する。
ここでいう第2の制限条件は、ある指定ノードNdmが、いずれかのパスPm上に配置されること、又はあるパスPmが、いずれかの指定ノードNdm上に配置されることである。第2の制限処理は、例えば、指定ノードNdmとパスPmとが重畳していることを示すエラー通知を設定画面D1上に表示する処理等である。このようなエラー通知によって、訂正のための操作がユーザに促されることになる。また、本実施形態では、第2の制限処理は、第2の制限条件を満たす指定ノードNdm(又はパスPm)の生成を無効化する処理を含んでいる。そのため、第2の制限処理が実行される場合、第2の制限条件を満たす指定ノードNdm(又はパスPm)の生成は行われない。
3つ目の制限機能として、他のノード(指定ノードNdm、仮想ノードNvm又は例外ノードNem)と重畳する指定ノードNdmの生成についての制限機能がある。他のノードと指定ノードNdmとの重畳が生じていると、これら複数のノードに対応する区域Zm上の複数台の移動体2で、干渉が起こり得る。そこで、本実施形態に係る設計支援システム100は、第3の制限条件を満たす指定ノードNdmをユーザが生成しようとした場合に、第3の制限処理を実行する。
ここでいう第3の制限条件は、ある指定ノードNdmが、いずれかのノード上に配置されることである。第3の制限処理は、例えば、ノード同士が重畳していることを示すエラー通知を設定画面D1上に表示する処理等である。このようなエラー通知によって、訂正のための操作がユーザに促されることになる。また、本実施形態では、第3の制限処理は、第3の制限条件を満たす指定ノードNdmの生成を無効化する処理を含んでいる。そのため、第3の制限処理が実行される場合、第3の制限条件を満たす指定ノードNdmの生成は行われない。
また、上記1~3つ目の制限機能は、いずれも位置調整機能が作用した場合にも有効である。すなわち、本実施形態に係る設計支援システム100は、「(3.2.3)位置調整機能」の欄で説明したように、一対の指定ノードNdmの少なくとも一方の位置を調整する機能を有している。これにより、例えば、パスP1の生成時において、パスP1の始点及び終点となる一対の指定ノードNd1,Nd2が、第1軸Axに平行に並ぶように、一対の指定ノードNd1,Nd2の少なくとも一方の位置が調整される。このように、一対の指定ノードNdmの少なくとも一方の位置が調整された結果、一対の指定ノードNdm間に生成されるパスPmの位置も調整(補正)される。そして、位置調整機能により指定ノードNdm及びパスPmの位置が調整された結果、第1~3のいずれかの制限条件を満たすパスPm又は指定ノードNdmが生じる場合には、第1~3のいずれかの制限処理が行われる。一例として、位置調整機能により指定ノードNdmの位置が調整された結果、この指定ノードNdmが他のノードと重畳する場合には、第3の制限条件を満たすので、第3の制限処理が実行される。
以上説明したように、本実施形態に係る設計支援システム100は、パスPm、又は一対の指定ノードNdmの各々が所定の制限条件を満たす場合に、パスPm、又は一対の指定ノードNdmの各々の生成を制限する所定の制限処理を実行する。これにより、制限条件を満たす指定ノードNdm又はパスPmをユーザが生成しようとした場合には、例えば、制限処理により訂正のための操作をユーザに促すことができ、好ましくないパスPm及び指定ノードNdmの生成を回避しやすくなる。
(3.2.8)その他の機能
本実施形態に係る移動体制御システム1及び設計支援システム100は、制御計画の設計に関して以下のような機能を更に有している。
1つ目の機能として、図14A及び図14Bに示すように、パスPmにつながっている指定ノードNdmを移動させた場合に、指定ノードNdmの移動に伴ってパスPmが移動する。具体的には、ユーザは、操作部63としてのマウスを用いて、パスPmにつながっている1つの指定ノードNdmを選択した状態で、マウスをドラッグしてカーソルC1を移動させる。これにより、選択されている1つの指定ノードNdmは、カーソルC1と共に移動し、更に、この指定ノードNdmにつながっているパスPmも自動的に移動する。一例として、図14Aに示すように、指定ノードNd1~Nd4のうち、指定ノードNd1を選択して左上方へ移動させた結果、図14Bに示すように、指定ノードNd1につながっているパスP1,P4も指定ノードNd1と共に移動する。また、このとき、指定ノードNd1にパスP1にて接続されている指定ノードNd2、及び指定ノードNd1にパスP4にて接続されている指定ノードNd4についても、指定ノードNd1と共に移動する。その結果、パスP2,P3も自動的に延長される。
2つ目の機能として、図15A及び図15Bに示すように、パスPmにつながっている指定ノードNdmが削除された場合に、指定ノードNdmの削除に伴ってパスPmも削除される。具体的には、ユーザは、操作部63としてのマウスを用いて、パスPmにつながっている1つの指定ノードNdmを選択した状態で、この指定ノードNdmを削除する操作を行うと、この指定ノードNdmにつながっているパスPmも自動的に削除される。一例として、図15Aに示すように、指定ノードNd1~Nd9のうち、指定ノードNd9を削除した結果、図15Bに示すように、指定ノードNd9につながっているパスP1~P4も指定ノードNd9と共に削除される。
3つ目の機能として、図16A及び図16Bに示すように、指定ノードNdmの生成時に、設定画面D1のマップM1上にガイド枠Fg1が表示される。具体的には、図16Aに示すように、ユーザは、指定ノードNdmの生成時に、例えば、操作部63としてのマウスを用いて、カーソルC1を操作し、カーソルC1の位置に応じてガイド枠Fg1が表示される。そして、ガイド枠Fg1が表示された状態で、ユーザがマウスをクリックすることにより、図16Bに示すように、ガイド枠Fg1内に指定ノードNd3が生成され、ガイド枠Fg1は枠体F3となる。
ここにおいて、ガイド枠Fg1は、隣接するノードの位置に合わせて、マップM1上における位置が自動的に調整される。具体的には、隣接する指定ノードNdmを囲む枠体Fmの一辺と、ガイド枠Fg1の一辺とが、完全に重なる(一致する)ように、ガイド枠Fg1の位置が調整される。例えば、図16Aの状態において、指定ノードNd1を囲む枠体F1の周辺領域H1内にガイド枠Fg1が表示される場合には、枠体F1の上辺、左辺又は下辺のいずれかにガイド枠Fg1の一辺が重なるように、ガイド枠Fg1が表示される。また、図16Aの状態において、指定ノードNd2を囲む枠体F2の周辺領域H2内にガイド枠Fg1が表示される場合には、枠体F2の上辺、右辺又は下辺のいずれかにガイド枠Fg1の一辺が重なるように、ガイド枠Fg1が表示される。図16Aの例では、枠体F2の右辺にガイド枠Fg1の左辺が重なっている。
また、4つ目の機能として、図17に示すように、表示制御部38は、所定エリアA1の平面図からなる地図図面Dr1を、マップM1に重ねてマップM1と共に設定画面D1に表示させる。本実施形態では、マップM1は、所定エリアA1に対応する電子地図である。電子地図からなるマップM1は、上述したようにマップM1上の特定位置に設定された原点を基準にした座標位置(X,Y)にて表されるデータである。電子地図からなるマップM1は、外壁901、柱904及び隔壁905等の構造体の情報を含んでいる。これに対して、地図図面Dr1は、所定エリアA1の見取り図であって、例えば、CAD(Computer-Assisted Drafting)を用いて作成された図面(CAD図面)、又は手描き図面等である。地図図面Dr1には、防火扉、棚及びマテリアルハンドリング(material handling)機器等の、所定エリアA1に設置されている建具、什器及び設備等が記載されている。地図図面Dr1は、単なる画像(図面)データであるため、地図図面Dr1には、座標位置(X,Y)は存在しない。
本実施形態に係る設計支援システム100では、このような地図図面Dr1を読み込むことで、マップM1に重ねて、マップM1と共に地図図面Dr1を設定画面D1に表示させることができる。具体的には、表示制御部38は、半透明化した地図図面Dr1を、マップM1上に重ねて表示することで、設定画面D1において、マップM1及び地図図面Dr1を一緒に表示する。ここにおいて、マップM1に対する地図図面Dr1の相対的な位置、角度(回転角度)、サイズ(大きさ)等については、ユーザが適宜調整可能である。
ユーザは、設定画面D1において、地図図面Dr1を参照して、マップM1上に指定ノードNdm及びパスPm等を生成することが可能である。そのため、ユーザは、マップM1には表れない、所定エリアA1の建具、什器及び設備等の位置を考慮しつつ、移動体2を制御するための制御計画の設計を行うことができ、制御計画の設計の効率の向上を図ることができる。
また、表示制御部38は、マップM1に重ねてマップM1と共に地図図面Dr1を表示すればよいので、マップM1及び地図図面Dr1の少なくとも一方を半透明化すればよい。すなわち、表示制御部38は、例えば、半透明化したマップM1を、地図図面Dr1上に重ねて表示することで、設定画面D1において、マップM1及び地図図面Dr1を一緒に表示してもよい。
また、5つ目の機能として、本実施形態に係る設計支援システム100は、マップM1に含まれる構造体情報を認識する機能を有している。すなわち、電子地図からなるマップM1は、上述したように、外壁901、柱904及び隔壁905等の構造体の情報を含んでいる。本開示でいう「構造体情報」は、マップM1に含まれている、外壁901、柱904及び隔壁905等の構造体の情報を意味する。構造体情報は、少なくともマップM1上での構造体の位置を特定する情報を含んでいる。言い換えれば、マップM1においては、所定エリアA1のどの位置に構造体(外壁901、柱904及び隔壁905等)が存在するかを特定可能である。この構造体情報を利用することで、設計支援システム100は、マップM1に含まれる構造体を自動的に認識する。例えば、図17の例では、設計支援システム100は、外壁901、柱904及び隔壁905等の構造体を、それぞれ構造体として認識する。構造体情報には、マップM1において、例えば、特定のハッチング又は特定の色が付されている。そこで、設計支援システム100は、マップM1について画像処理を実行することにより、特定のハッチング又は特定の色が付された構造体情報を抽出する。
さらに、6つ目の機能として、本実施形態に係る設計支援システム100は、マップM1における構造体情報の位置に基づいて、移動体2の進入を制限する進入禁止エリアA11をマップM1に設定する機能を有している。本実施形態では一例として、マップM1上で認識された構造体(外壁901、柱904及び隔壁905等)が存在する領域、及び構造体から所定距離(例えば30cm)以内の領域に、進入禁止エリアA11が設定される。このように、設計支援システム100は、マップM1に含まれる構造体情報を自動的に認識し、更に、認識した構造体情報を利用して、マップM1上に進入禁止エリアA11を自動的に設定する。そのため、設定画面D1においては、進入禁止エリアA11が設定された構造体及びその周辺へ移動体2が進入しないよう、指定ノードNdm及びパスPm等の生成が制限される。つまり、進入禁止エリアA11に対しては、指定ノードNdm及びパスPm等の生成は制限(禁止)されることになる。
また、構造体情報の位置に基づいて自動的に設定される進入禁止エリアA11以外にも、例えば、段差があるエリア及び人専用エリア等については、移動体2の進入を制限することが好ましい場合がある。そこで、設計支援システム100は、マップM1における構造体情報の位置に基づいて進入禁止エリアA11を自動的に設定する機能に加えて又は代えて、ユーザの操作に基づいて、進入禁止エリアA11を設定する機能を有することが好ましい。具体的には、ユーザは、例えば、操作部63としてのマウスを用いて、マップM1上の任意の領域を指定し、この領域に進入禁止エリアA11を生成する。これにより、マップM1上の任意の範囲に対して、ユーザが、進入禁止エリアA11を手動で設定することが可能となる。したがって、所定エリアA1のうち、例えば、段差があるエリア及び人専用エリア等についても、進入禁止エリアA11を設定することで、指定ノードNdm及びパスPm等の生成を制限(禁止)することが可能である。
7つ目の機能として、移動体制御システム1及び設計支援システム100は、防火シャッタ(防火扉)等の開閉可能なシャッタ907(図17参照)を通過する際の移動体2の特定動作を実現する機能を有している。本実施形態では、電子地図からなるマップM1は、外壁901、柱904及び隔壁905に加えて、構造体としてシャッタ907の情報を含んでいる。そして、各ノードの属性の一つである各ノードの「制御方式」は、シャッタ907を通過する際の移動体2の制御に係る「シャッタ」を含んでいる。つまり、ノード生成部32は、属性として「シャッタ」が指定されたノードであるシャッタノードを、生成可能である。移動体制御システム1は、シャッタノードを通過する際に移動体2が減速し、かつシャッタノードを通過直後に移動体2が一時停止するように、移動体2を制御する。シャッタノード(指定ノードNdm)をシャッタ907に対応する位置に生成すれば、シャッタ907を通過する際には移動体2は減速し、かつシャッタ907を通過後には移動体2は一時停止するように、移動体制御システム1にて移動体2が制御される。したがって、シャッタ907を通過した移動体2が、出会いがしらで人等と接触する可能性を低減することが可能となる。
本実施形態に係る設計支援システム100は、シャッタ907についても、マップM1に含まれる構造体情報として自動的に認識する。そして、マップM1に含まれる構造体情報としてシャッタ907が認識された場合、ノード生成部32は、シャッタ907に対応する位置に、属性が「シャッタ」であるノード(シャッタノード)を自動的に生成する。そのため、ユーザは、シャッタ907が配置されている位置を指定してシャッタノード(指定ノードNdm)を生成しなくても、シャッタ907を通過する際の移動体2の特定動作を実現可能である。
8つ目の機能として、本実施形態に係る設計支援システム100は、移動体2の特定の動作を制限する特定制限エリアA12をマップM1上に設定する機能を有している。特定制限エリアA12は、進入禁止エリアA11とは異なり、移動体2の進入は許容され、移動体2の特定の動作のみが制限(禁止)されるエリアである。特定制限エリアA12で制限される特定の動作の例として、旋回、後退、停止及び把持(搬送物92の把持又は積載)等がある。一例として、特定の動作が「旋回」であって、移動体2は、所定エリアA1のうち特定制限エリアA12に対応する作業区域に「0度」の方位角より進入し、作業区域内で搬送物92を降ろして、作業区域から「0度」の方位角より退出する場合を想定する。この場合、作業区域内での移動体2の動作としては、旋回に代えて、例えば、後退等の代替動作が採用される。これにより、例えば、作業区域に移動体2の旋回に十分なスペースが無い場合であっても、移動体2は、作業区域に「0度」の方位角より進入し、作業区域から「0度」の方位角より退出することが可能となる。
このような特定制限エリアA12は、基本的には、ユーザの操作に基づいて設定される。具体的には、ユーザは、例えば、操作部63としてのマウスを用いて、マップM1上の任意の領域を指定し、この領域に特定制限エリアA12を生成する。これにより、マップM1上の任意の範囲に対して、ユーザが、特定制限エリアA12を手動で設定することが可能となる。特定制限エリアA12で制限される特定の動作についても、ユーザの操作に基づいて決定される。例えば、ユーザは、操作部63を操作して、設定画面D1にプルダウンメニューを表示させた状態で、プルダウンメニュー上で特定の動作を選択する。また、設計支援システム100は、ユーザの操作に基づいて特定制限エリアA12を設定する機能に加えて又は代えて、マップM1における構造体情報の位置に基づいて特定制限エリアA12を自動的に設定する機能を有することが好ましい。この機能によれば、進入禁止エリアA11と同様に、特定制限エリアA12についても、自動的に設定することが可能となる。
(3.3)フローチャート
図18は、上述した移動体制御システム1及び設計支援システム100の動作を簡単にまとめたフローチャートである。言い換えれば、移動体制御システム1の動作に相当する移動体制御方法、及び設計支援システム100の動作に相当する設計支援方法は、図18に示すような流れで概略的に表される。
すなわち、本実施形態に係る方法によれば、まずは、所定エリアA1に対応するマップM1を含む設定画面D1を表示させる(S1:表示制御処理)。本実施形態では、表示制御処理(S1)は、サーバ装置3のプロセッサにて実行され、設定画面D1は情報端末6の表示部62に表示される。
次に、本実施形態に係る方法によれば、少なくとも設定画面D1におけるマップM1上の一対の指定位置を指定するユーザの操作を受け付ける(S2:操作受付処理)。つまり、本実施形態では、操作受付処理(S2)は、情報端末6の操作部63にて実行される。
次に、本実施形態に係る方法によれば、操作受付処理で受け付けたユーザの操作に従って、マップM1における一対の指定位置に、それぞれ移動体2を制御可能なノードである一対の指定ノードNdmを生成する(S3:ノード生成処理)。ここで、操作受付処理において、マップM1上の任意の位置を指定位置として指定できるので、一対の指定ノードNdmは、マップM1における任意の位置に生成されることになる。本実施形態では、ノード生成処理(S3)は、サーバ装置3のプロセッサにて実行される。要するに、ユーザが情報端末6にて、マップM1の任意の位置を指定位置として指定する操作を行うことにより、サーバ装置3にて、マップM1上に一対の指定ノードNdmが生成される。
次に、本実施形態に係る方法では、ノード生成処理で生成された一対の指定ノードNdm間にパスPmを生成する(S4:パス生成処理)。本実施形態では、パス生成処理(S4)は、サーバ装置3のプロセッサにて実行される。要するに、ユーザが情報端末6にて、マップM1の一対の指定ノードNdm間にパスPmを生成するための操作を行うことにより、マップM1上にはパスPmが生成される。つまり、厳密には、ノード生成処理(S3)とパス生成処理(S4)との間には、少なくとも設定画面D1におけるマップM1上の一対の指定ノードNdm間にパスPmを生成するためのユーザの操作を受け付ける操作受付処理が存在する。
ここで、本実施形態に係る方法では、一対の指定ノードNdmの間隔、つまりパスPmの長さ(パス長Lp)が上限値2L以上であるか否かを判断する(S5)。パス長Lpが上限値2L以上である場合(S5:Yes)、マップM1における一対の指定ノードNdm間に、一対の指定ノードNdmとは別のノードである仮想ノードNvmを、少なくとも1つ生成する仮想ノード生成処理(S7)を実行する。
本実施形態では、仮想ノード生成処理(S7)に先立って、パス長Lpを下限値Lで除算したときの商α(ただしαは自然数)及び剰余β(ただしβは自然数)を求める(S6)。このときの商αよりも「1」少ない数が、仮想ノードNvmの個数となる。さらに、剰余βを、商αにて案分する案分処理を行うことで、各仮想ノードNvmの位置を決定する。仮想ノード生成処理(S7)では、このようにして決定される仮想ノードNvmの個数及び位置に従って、一対の指定ノードNdm間、つまりパスPm上に、少なくとも1つの仮想ノードNvmを生成する。
一方、パス長Lpが上限値2L未満である場合(S5:No)、処理S6,S7はスキップして、処理S8に移行する。
その後、本実施形態に係る方法では、上述のようにして生成されたノード(指定ノードNdm及び仮想ノードNvm)、及びパスPmが反映されるように、マップM1を更新する(S8)。処理S2~S8は、適宜繰り返し実行される。
そして、本実施形態に係る方法では、最終的に更新されたマップM1に従って、所定エリアA1内を移動する移動体2を制御する(S9)。このとき、所定エリアA1においてパスPmに対応する移動経路R10に沿って移動体2を移動させることになる。
図18は、本実施形態に係る移動体制御システム1及び設計支援システム100の動作の一例を概略的に示しており、処理が適宜追加、変更又は省略されてもよいし、処理の順番が適宜変更されてもよい。
(4)変形例
実施形態1は、本開示の様々な実施形態の一つに過ぎない。実施形態1は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。
実施形態1に係る移動体制御システム1と同様の機能は、移動体制御方法、コンピュータプログラム、又はコンピュータプログラムを記録した非一時的記録媒体等で具現化されてもよい。一態様に係る移動体制御方法は、所定エリアA1内を移動する移動体2を制御する移動体制御方法であって、ノード生成処理と、パス生成処理と、を有する。ノード生成処理は、所定エリアA1に対応するマップM1における任意の位置に、それぞれ移動体2を制御可能なノードである一対の指定ノードNdmを生成する処理である(図18の「S3」参照)。パス生成処理は、一対の指定ノードNdm間にパスPmを生成する処理である(図18の「S4」参照)。この移動体制御方法は、所定エリアA1においてパスPmに対応する移動経路R10に沿って移動体2を移動させる。一態様に係る(コンピュータ)プログラムは、上記の移動体制御方法をコンピュータシステムに実行させるためのプログラムである。
また、実施形態1に係る設計支援システム100と同様の機能は、設計支援方法、コンピュータプログラム、又はコンピュータプログラムを記録した非一時的記録媒体等で具現化されてもよい。一態様に係る設計支援方法は、所定エリアA1内を移動する移動体2を制御するための制御計画の設計を支援する設計支援方法であって、表示制御処理と、操作受付処理と、ノード生成処理と、仮想ノード生成処理と、を有する。表示制御処理は、所定エリアA1に対応するマップM1を含む設定画面D1を表示させる処理である(図18の「S1」参照)。操作受付処理は、少なくとも設定画面D1におけるマップM1上の一対の指定位置を指定するユーザの操作を受け付ける処理である(図18の「S2」参照)。ノード生成処理は、ユーザの操作に従って、マップM1における一対の指定位置に、それぞれ移動体2を制御可能なノードである一対の指定ノードNdmを生成する処理である(図18の「S3」参照)。仮想ノード生成処理は、マップM1における一対の指定ノードNdm間に、一対の指定ノードNdmとは別のノードである仮想ノードNvmを、少なくとも1つ生成する処理である(図18の「S7」参照)。一態様に係る(コンピュータ)プログラムは、上記の設計支援方法をコンピュータシステムに実行させるためのプログラムである。
以下、実施形態1の変形例を列挙する。以下に説明する変形例は、適宜組み合わせて適用可能である。
本開示における移動体制御システム1及び設計支援システム100は、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、本開示における移動体制御システム1又は設計支援システム100としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されてもよく、電気通信回線を通じて提供されてもよく、コンピュータシステムで読み取り可能なメモリカード、光学ディスク、ハードディスクドライブ等の非一時的記録媒体に記録されて提供されてもよい。コンピュータシステムのプロセッサは、半導体集積回路(IC)又は大規模集積回路(LSI)を含む1ないし複数の電子回路で構成される。ここでいうIC又はLSI等の集積回路は、集積の度合いによって呼び方が異なっており、システムLSI、VLSI(Very Large Scale Integration)、又はULSI(Ultra Large Scale Integration)と呼ばれる集積回路を含む。さらに、LSIの製造後にプログラムされる、FPGA(Field-Programmable Gate Array)、又はLSI内部の接合関係の再構成若しくはLSI内部の回路区画の再構成が可能な論理デバイスについても、プロセッサとして採用することができる。複数の電子回路は、1つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、1つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。
また、移動体制御システム1又は設計支援システム100における複数の構成要素(又は機能)が、1つの筐体内に集約されていることは移動体制御システム1又は設計支援システム100に必須の構成ではない。移動体制御システム1又は設計支援システム100の構成要素(又は機能)は、複数の筐体に分散して設けられていてもよい。さらに、移動体制御システム1又は設計支援システム100の少なくとも一部の機能がクラウド(クラウドコンピューティング)等によって実現されてもよい。
反対に、実施形態1において、複数の装置に分散されている移動体制御システム1又は設計支援システム100の少なくとも一部の機能が、1つの筐体内に集約されていてもよい。例えば、サーバ装置3とクライアント端末4とに分散されている一部の機能が、1つの筐体内に集約されていてもよい。サーバ装置3と情報端末6とに分散されている一部の機能が、1つの筐体内に集約されていてもよい。
また、本開示にて、「略平行」、又は「略直交」のように「略」を伴った表現が、用いられる場合がある。例えば、「略平行」とは、実質的に「平行」であることを意味し、厳密に「平行」な状態だけでなく、数%程度の誤差を含む意味である。他の「略」を伴った表現についても同様である。
また、本開示にて、2値の比較において、「以上」としているところは、2値が等しい場合、及び2値の一方が他方を超えている場合との両方を含む。ただし、これに限らず、ここでいう「以上」は、2値の一方が他方を超えている場合のみを含む「より大きい」と同義であってもよい。つまり、2値が等しい場合を含むか否かは、基準値等の設定次第で任意に変更できるので、「以上」か「より大きい」かに技術上の差異はない。同様に、「未満」においても「以下」と同義であってもよい。
また、サーバ装置3は、所定エリアA1内に設置されていてもよい。さらに、通信端末5は、移動体制御システム1に必須の構成ではなく、適宜省略可能である。この場合に、サーバ装置3は、通信端末5を介さずに、移動体2と直接的に通信してもよい。
また、実施形態1では、予約部34は、無線通信における電波強度が小さいほど予約数を多くするが、この例に限らず、予約部34は、無線通信における電波強度が小さいほど予約数を少なくしてもよい。さらに、通信端末5における通信部(第2通信部41)との無線通信の状況は、電波強度に限らず、例えば、通信端末5における通信部(第2通信部41)との無線通信のエラー率又は変調方式等で判断することも可能である。
また、実施形態1では、仮想ノード生成部35にて生成される仮想ノードNvmは、設定画面D1には表示されないこととして説明したが、この例に限らず、仮想ノードNvmが設定画面D1に表示されてもよい。
また、実施形態1では、位置調整部37は、パスPmの始点及び終点となる一対の指定ノードNdmのうち、パスPmの終点となる指定ノードNdmの位置を調整することとして説明したが、この例に限らない。つまり、位置調整部37は、パスPmの始点及び終点となる一対の指定ノードNdmのうち、パスPmの始点となる指定ノードNdmの位置を調整してもよいし、パスPmの始点及び終点となる一対の指定ノードNdmの両方の位置を調整してもよい。
また、移動体2にて搬送される搬送物92は、ロールボックスパレット等のパレットに限らない。特に、実施形態1で説明したように、本体部21が搬送物92の下方に潜り込んで搬送物92を持ち上げるようにして、搬送物92が本体部21に積載される構成の移動体2に対しては、搬送物92として実装装置又はその関連装置が好適である。ここでいう「実装装置」は、基板に対して部品(電子部品)を実装する作業を行う装置であって、表面実装技術(SMT:Surface Mount Technology)又は挿入実装技術(IMT:Insertion Mount Technology)による部品の実装に用いられる。実装装置の関連装置の例としては、実装装置に部品を供給するための部品供給装置(フィーダ)等がある。
(実施形態2)
本実施形態に係る設計支援システム100は、マップM1において一対の指定ノードNdmを生成可能な位置がグリッド線G1によって制限されている点で、実施形態1に係る設計支援システム100と相違する。以下、実施形態1と同様の構成については、共通の符号を付して適宜説明を省略する。
すなわち、本実施形態に係る設計支援システム100では、マップM1における任意の位置に一対の指定ノードNdmを生成することができず、一対の指定ノードNdmを生成可能な位置は、マップM1に含まれるグリッド線G1によって制限される。具体的には、マップM1においてグリッド線G1にて区分けされた格子状に並ぶ複数のマス目の各々の中央部にのみ、指定ノードNdmが生成可能である。そのため、本実施形態に係る設計支援システム100では、ユーザは、設定画面D1におけるマップM1上に指定位置を指定する際、複数のマス目の中から1つのマス目を選択することによって、このマス目の中央部に指定位置を指定する。これにより、選択されたマス目の中央部に、指定ノードNdmが生成されることになる。
また、本実施形態の構成であっても、仮想ノード生成部35は、マップM1における一対の指定ノードNdm間に、仮想ノードNvmを少なくとも1つ生成する。仮想ノードNvmについては、指定ノードNdmのように、マップM1において生成可能な位置に制限が設けられてもよいし、設けられなくてもよい。
実施形態2で説明した種々の構成は、実施形態1で説明した種々の構成(変形例を含む)と適宜組み合わせて採用可能である。
(まとめ)
以上説明したように、第1の態様に係る設計支援システム(100)は、所定エリア(A1)内を移動する移動体(2)を制御するための制御計画の設計を支援する設計支援システム(100)である。設計支援システム(100)は、表示制御部(38)と、操作部(63)と、ノード生成部(32)と、仮想ノード生成部(35)と、を備える。表示制御部(38)は、所定エリア(A1)に対応するマップ(M1)を含む設定画面(D1)を表示させる。操作部(63)は、少なくとも設定画面(D1)におけるマップ(M1)上の一対の指定位置を指定するユーザの操作に応じた操作信号を出力する。ノード生成部(32)は、操作信号に従って、マップ(M1)における一対の指定位置に、それぞれ移動体(2)を制御可能なノードである一対の指定ノード(Ndm)を生成する。仮想ノード生成部(35)は、マップ(M1)における一対の指定ノード(Ndm)間に、一対の指定ノード(Ndm)とは別のノードである仮想ノード(Nvm)を、少なくとも1つ生成する。
この態様によれば、ユーザがマップ(M1)上の一対の指定位置を指定するだけで、まずは、これら一対の指定位置に一対の指定ノード(Ndm)が生成され、さらに、一対の指定ノード(Ndm)間には仮想ノード(Nvm)が少なくとも1つ生成される。そのため、ユーザが、移動体2を制御するための制御計画を設計するに当たり、グリッドマップ上のマス目を1つずつ指定しながら、移動経路を設定する必要があるグリッド方式に比べて、マップ(M1)上でユーザが指定すべき点の数を少なく抑えることができる。要するに、設計支援システム(100)によれば、例えば、比較的長い直線経路に沿って移動体(2)を制御させる場合等であっても、ユーザは、この直線経路を指定するために、直線経路の両端(始点及び終点)を規定する一対の指定位置を指定するだけでよい。結果的に、設計支援システム(100)によれば、制御計画の設計の簡易化を図ることができる、という利点がある。
第2の態様に係る設計支援システム(100)では、第1の態様において、一対の指定ノード(Ndm)は、マップ(M1)における任意の位置に生成される。
この態様によれば、グリッド線(G1)にかかわらず、マップ(M1)上の任意の位置に指定ノード(Ndm)を設定することが可能である。したがって、演算負荷の増加を抑制しつつも、制御の自由度の向上を図ることができる。
第3の態様に係る設計支援システム(100)では、第1又は2の態様において、ノードは、移動体(2)の移動速度と進行方向との少なくとも一方を制御可能な制御点である。
この態様によれば、一対の指定ノード(Ndm)間に生成された少なくとも1つの仮想ノード(Nvm)についても制御点として利用できるので、移動体(2)の移動速度と進行方向との少なくとも一方を、小刻みに制御可能となる。
第4の態様に係る設計支援システム(100)は、第1~3のいずれかの態様において、移動体(2)の移動経路(R10)を規定するパス(Pm)を一対の指定ノード(Ndm)間に生成するパス生成部(33)を更に備える。仮想ノード生成部(35)は、パス(Pm)上に、仮想ノード(Nvm)を生成する。
この態様によれば、移動体(2)の移動経路(R10)についても設計することができる。
第5の態様に係る設計支援システム(100)は、第4の態様において、パス(Pm)又は一対の指定ノード(Ndm)の各々が所定の制限条件を満たす場合に、パス(Pm)又は一対の指定ノード(Ndm)の各々の生成を制限する所定の制限処理を実行する。
この態様によれば、例えば、2つのパス(Pm)の交差のように、移動体(2)の制御に関して何らかの不都合が生じ得るようなパス(Pm)又は一対の指定ノード(Ndm)については、その生成に制限を設けることができる。そのため、移動体(2)の制御に関して何らかの不都合が生じ得るようなパス(Pm)又は一対の指定ノード(Ndm)をユーザが生成することを抑制できる。
第6の態様に係る設計支援システム(100)は、第1~5のいずれかの態様において、例外ノード生成部(36)を更に備える。例外ノード生成部(36)は、一対の指定ノード(Ndm)及び仮想ノード(Nvm)とは別のノードである例外ノード(Nem)をマップ(M1)に少なくとも1つ生成する。例外ノード(Nem)が下限値(L)未満の間隔で複数生成された場合、隣接する複数の例外ノード(Nem)同士の間隔の合計が下限値(L)以上となるように複数の例外ノード(Nem)がグループ化される。
この態様によれば、例外ノード(Nem)により、下限値(L)未満の間隔であってもノードを生成することが可能になる。
第7の態様に係る設計支援システム(100)は、第1~6のいずれかの態様において、一対の指定ノード(Ndm)の少なくとも一方の位置を調整する位置調整部(37)を更に備える。マップ(M1)は互いに交差する第1軸(Ax)及び第2軸(Ay)を含んでいる。位置調整部(37)は、一対の指定ノード(Ndm)がマップ(M1)において第1軸(Ax)又は第2軸(Ay)に平行に並ぶように、一対の指定ノード(Ndm)の少なくとも一方の位置を調整する。
この態様によれば、ユーザがマップ(M1)上の一対の指定位置をラフに指定した場合でも、一対の指定ノード(Ndm)が第1軸(Ax)又は第2軸(Ay)に対して平行となるように一対の指定ノード(Ndm)の少なくとも一方の位置が調整される。
第8の態様に係る設計支援システム(100)では、第1~7のいずれかの態様において、ノード生成部(32)は、エリアテンプレート(T1,T2)に含まれる複数のノードをマップ(M1)における領域に生成する。つまり、ノード生成部(32)は、複数のノードの組み合わせを含むエリアテンプレート(T1,T2)が、設定画面(D1)におけるマップ(M1)上の任意の領域に設定された場合に、複数のノードをマップ(M1)における上記領域に生成する。
この態様によれば、エリアテンプレート(T1,T2)に含まれる複数のノードをまとめて設定でき、複数のノードを1つずつ設定する場合に比べて、作業を簡略化できる。
第9の態様に係る設計支援システム(100)では、第8の態様において、エリアテンプレート(T1,T2)に含まれる複数のノードは、相互の位置関係を維持した状態で設定画面(D1)におけるマップ(M1)上を移動可能である。
この態様によれば、エリアテンプレート(T1,T2)に含まれる複数のノードをまとめて移動させることができ、複数のノードを1つずつ移動させる場合に比べて、作業を簡略化できる。
第10の態様に係る設計支援システム(100)では、第1~9のいずれかの態様において、表示制御部(38)は、所定エリア(A1)の平面図からなる地図図面(Dr1)を、マップ(M1)に重ねてマップ(M1)と共に設定画面(D1)に表示させる。
この態様によれば、ユーザは、マップ(M1)には表れない、例えば、所定エリア(A1)の建具、什器及び設備等の位置を考慮しつつ、移動体(2)を制御するための制御計画の設計を行うことができ、制御計画の設計の効率の向上を図ることができる。
第11の態様に係る設計支援システム(100)は、第1~10のいずれかの態様において、マップ(M1)に含まれる構造体情報を認識する機能を有する。
この態様によれば、所定エリア(A1)における壁及び柱等の構造体の位置について、ユーザが指定しなくても、マップ(M1)から自動的に認識可能となる。
第12の態様に係る設計支援システム(100)は、第11の態様において、マップ(M1)における構造体情報の位置に基づいて、移動体(2)の進入を制限する進入禁止エリア(A11)をマップ(M1)に設定する機能を有する。
この態様によれば、移動体(2)の進入を制限する進入禁止エリア(A11)をユーザが指定しなくても、マップ(M1)における構造体情報の位置から、進入禁止エリア(A11)を自動的に設定することが可能となる。
第13の態様に係る設計支援システム(100)は、第1~12のいずれかの態様において、移動体(2)の特定の動作を制限する特定制限エリア(A12)をマップ(M1)上に設定する機能を有する。
この態様によれば、特定制限エリア(A12)においては、移動体(2)の特定の動作を制限することが可能となる。
第14の態様に係る設計支援方法は、所定エリア(A1)内を移動する移動体(2)を制御するための制御計画の設計を支援する設計支援方法であって、表示制御処理と、操作受付処理と、ノード生成処理と、仮想ノード生成処理と、を有する。表示制御処理は、所定エリア(A1)に対応するマップ(M1)を含む設定画面(D1)を表示させる処理である。操作受付処理は、少なくとも設定画面(D1)におけるマップ(M1)上の一対の指定位置を指定するユーザの操作を受け付ける処理である。ノード生成処理は、ユーザの操作に従って、マップにおける一対の指定位置に、それぞれ移動体(2)を制御可能なノードである一対の指定ノード(Ndm)を生成する処理である。仮想ノード生成処理は、マップ(M1)における一対の指定ノード(Ndm)間に、一対の指定ノード(Ndm)とは別のノードである仮想ノード(Nvm)を、少なくとも1つ生成する処理である。
この態様によれば、ユーザがマップ(M1)上の一対の指定位置を指定するだけで、まずは、これら一対の指定位置に一対の指定ノード(Ndm)が生成され、さらに、一対の指定ノード(Ndm)間には仮想ノード(Nvm)が少なくとも1つ生成される。そのため、ユーザが、移動体2を制御するための制御計画を設計するに当たり、グリッドマップ上のマス目を1つずつ指定しながら、移動経路を設定する必要があるグリッド方式に比べて、マップ(M1)上でユーザが指定すべき点の数を少なく抑えることができる。要するに、設計支援方法によれば、例えば、比較的長い直線経路に沿って移動体(2)を制御させる場合等であっても、ユーザは、この直線経路を指定するために、直線経路の両端(始点及び終点)を規定する一対の指定位置を指定するだけでよい。結果的に、設計支援方法によれば、制御計画の設計の簡易化を図ることができる、という利点がある。
第15の態様に係るプログラムは、第14の態様に係る設計支援方法をコンピュータシステムに実行させるためのプログラムである。
この態様によれば、ユーザがマップ(M1)上の一対の指定位置を指定するだけで、まずは、これら一対の指定位置に一対の指定ノード(Ndm)が生成され、さらに、一対の指定ノード(Ndm)間には仮想ノード(Nvm)が少なくとも1つ生成される。そのため、ユーザが、移動体(2)を制御するための制御計画を設計するに当たり、グリッドマップ上のマス目を1つずつ指定しながら、移動経路を設定する必要があるグリッド方式に比べて、マップ(M1)上でユーザが指定すべき点の数を少なく抑えることができる。要するに、上記プログラムによれば、例えば、比較的長い直線経路に沿って移動体(2)を制御させる場合等であっても、ユーザは、この直線経路を指定するために、直線経路の両端(始点及び終点)を規定する一対の指定位置を指定するだけでよい。結果的に、上記プログラムによれば、制御計画の設計の簡易化を図ることができる、という利点がある。
上記態様に限らず、実施形態1及び実施形態2に係る設計支援システム(100)の種々の構成(変形例を含む)は、設計支援方法又はプログラムにて具現化可能である。
第2~13の態様に係る構成については、設計支援システム(100)に必須の構成ではなく、適宜省略可能である。