JP7204631B2 - 走行制御装置、方法及びコンピュータプログラム - Google Patents

走行制御装置、方法及びコンピュータプログラム Download PDF

Info

Publication number
JP7204631B2
JP7204631B2 JP2019196647A JP2019196647A JP7204631B2 JP 7204631 B2 JP7204631 B2 JP 7204631B2 JP 2019196647 A JP2019196647 A JP 2019196647A JP 2019196647 A JP2019196647 A JP 2019196647A JP 7204631 B2 JP7204631 B2 JP 7204631B2
Authority
JP
Japan
Prior art keywords
area
travel
moving body
pass
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019196647A
Other languages
English (en)
Other versions
JP2021071795A (ja
Inventor
道生 山下
紀之 平山
英之 愛須
静 榊原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2019196647A priority Critical patent/JP7204631B2/ja
Priority to CN202010894419.1A priority patent/CN112817304A/zh
Priority to US17/007,039 priority patent/US11468770B2/en
Publication of JP2021071795A publication Critical patent/JP2021071795A/ja
Application granted granted Critical
Publication of JP7204631B2 publication Critical patent/JP7204631B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0289Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling with means for avoiding collisions between vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0137Measuring and analyzing of parameters relative to traffic conditions for specific applications
    • G08G1/0145Measuring and analyzing of parameters relative to traffic conditions for specific applications for active traffic flow control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0291Fleet control
    • G05D1/0297Fleet control by controlling means in a control room
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/091Traffic information broadcasting
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/164Centralised systems, e.g. external to vehicles
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/166Anti-collision systems for active traffic, e.g. moving vehicles, pedestrians, bikes
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/20Monitoring the location of vehicles belonging to a group, e.g. fleet of vehicles, countable or determined number of vehicles
    • G08G1/207Monitoring the location of vehicles belonging to a group, e.g. fleet of vehicles, countable or determined number of vehicles with respect to certain areas, e.g. forbidden or allowed areas with possible alerting when inside or outside boundaries

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Multimedia (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明の実施形態は、走行制御装置、方法及びコンピュータプログラムに関する。
運行計画に従って複数の移動体を同時に走行させる場合、これらの移動体が計画された走行ルートを計画通りのタイミングで走行することができれば、計画通りの運行が達成できる。しかしながら、少なくともいずれかの移動体の走行タイミングが計画からずれると、移動体間に競合が発生する場合がある。例えば、移動体同士が衝突又は追突することや、移動体が任意の箇所に移動できなくなるデッドロックが発生することがある。
特許第2692725号
本発明の実施形態は、移動体の競合を回避する運行を可能とする走行制御装置、方法及びコンピュータプログラムを提供する。
本発明の実施形態としての走行制御装置は、複数の第1領域間の複数の走行路の少なくとも1つに第2領域を設定する領域設定部と、第1移動体の走行ルートにおいて前記第1移動体が前記第2領域を通過するタイミングを、前記第2領域の後に位置する前記第1領域の通過順序情報に基づき制御する走行制御部と、を備え、前記通過順序情報は、前記第1移動体を含む複数の移動体が前記第1領域を通過する順序を定めている。
本実施形態に係る走行制御装置としての運行計画装置のブロック図。 複数の移動体の運行を制御する様子を模式的に示した上面図。 図3(A)は衝突の例を示し、図3(B)はデッドロックの例を示す図。 走行路ネットワークの一例を示す図。 走行路ネットワークの構造情報の例を示す図。 図6(A)は走行路の情報の例を示し、図6(B)は基準ノードの情報の例を示す図。 走行路ネットワークの基準領域に結合された各走行路に仮想領域を設定した例を示す図。 仮想領域DBの例を示す図。 走行路ネットワークの構造情報に仮想ノードを追加した例を示す図。 仮想領域設定部の動作の一例のフローチャート。 運行情報の一例を示す図。 運行計画決定部が作成した運行計画の例を示す図。 移動体が出発地点に配置された状態を示す図。 移動指令データの例を示す図。 図1の運行計画装置の動作の一例のフローチャート。 図1の運行計画装置の動作の他の例のフローチャート。 小型の移動体と、大型の移動体を模式的に示す図。 移動体の特性ごとに基準領域から仮想領域までの距離を変更する例を示す図。 走行路の特性に応じて仮想領域を設定する例を示す図。 移動体の進む方向に応じて仮想領域を設定する例を示す図。 方向付き移動指令データの例を示す図。 複数の基準領域を1つの統合領域にまとめる例を示す図。 図1の運行計画装置のハードウェア構成を示す図。
一般的な運行計画システムでは、レール又はテープのような***の単線を走行するガイドライン系の移動体を対象として、運行計画を作成する場合が多い。***の単線を専用的に使う場合、外乱が生じることが少なく、ほぼ正確に移動体を計画通りのタイミングで走行させることが可能である。
一方、自律移動系の移動体は、比較的広い領域を自由に走行し、自己の位置を同定しながら、最適な動線を見つけ、走行する。自律移動系の移動体の例として、工場内で荷物を運搬する無人搬送車(AGV:Automatic Guided Vehicle)などがある。自律移動系の移動体の走行路では、人が歩行したり横切ったりする場合もあり、移動体は走行路に飛び出した人を認識し、停止する機能を有する場合がある。また移動体は、走行路上に置かれた障害物を認識し、回避しながら走行する機能を有する場合がある。
このように、自律移動系の移動体は柔軟性のある走行が可能である反面、走行環境に外乱が多いため、計画したタイミング通りに走行することが難しくなる場合がある。例えば、移動体が障害物を回避しながら走行すると、計画したタイミング通りに走行できなくなる。
移動体のタイミングが計画からずれると、移動体間に競合が生じ得る。例えば、移動体同士が衝突又は追突することがある。また、移動体が任意の箇所(例えば走行路の交差部又は端部)に移動できなくなるデッドロックが発生することがある。
本実施形態では、このように自律移動系の移動体を運行計画の作成対象とする場合にも、移動体間の競合の発生を回避することを実現する。但し、本実施形態で対象とする移動体は自律移動系の移動体に限定されず、ガイドライン系の移動体でもかまわない。以下、図面を参照しながら、本実施形態について詳細に説明する。
図1に、本実施形態に係る走行制御装置としての運行計画装置のブロック図を示す。運行計画装置100は、仮想領域設定部(領域設定部)11、運行計画決定部12、走行制御部13、通信部14、走行路情報データベース(DB)21、基準領域DB22、走行路ネットワーク情報DB23、移動体情報DB24、運行情報DB25、運行計画DB26及び仮想領域DB27を備えている。
運行計画装置100は、一例として自由平面である走行エリア(走行路ネットワーク)を複数の移動体201_1~201_Nが自律走行する場合に、これら複数の移動体に衝突又はデッドロック等の競合を起こさないように、運行を制御するための運行計画を作成する。複数の移動体201_1~201_Nは、AGV、自律型の移動ロボット、自動走行の車両(例えば自動走行車)などの、自律移動可能な移動体である。
複数の移動体201_1~201_Nは、例えば、工場内、倉庫内、施設敷地内などの走行エリア(走行路ネットワーク)を走行する。複数の移動体201_1~201_Nは一例として蓄電池(バッテリー)を搭載し、バッテリーに蓄積された電力を用いて移動等の動作を行う。
図2は、走行路ネットワークにおいて複数の移動体の運行を制御する様子を模式的に示した上面図である。走行路ネットワークに対して、基準となる複数の領域(基準領域)A,B,C,D,E,F,G,Hが設定されている。基準領域間は移動間が走行可能な通路(走行路)である。走行路ネットワーク(走行エリア)は、このように複数の基準領域と、複数の基準領域間の複数の走行路とを含む。基準領域は、例えば走行路の交差部(交差部)や、走行路の端部など、任意の箇所に対応する。基準領域F、Gに対して搬入口が配置されており、基準領域A、E、Hに対して棚が配置されている。基準領域Bは複数の走行路の交差部に対応する。
ここで基準領域は、特定の位置でもよいし、ある範囲を有する領域でもよい。例えば走行路ネットワークをXY平面により表した場合、基準領域は、XY座標により特定される。高さを考慮する場合、基準領域は、XYZ座標により特定される。あるいは、複数のXY座標の組により特定されてもよい。例えば基準領域が矩形の場合、対各頂点のXY座標の組により特定されてもよい。以下では、基準領域がXY座標によって特定される場合を想定する。
複数の基準領域は、走行路ネットワークのマップデータ上の座標に対応付けた形で、基準ノードとして管理されている。基準ノードと基準領域とを、説明の都合上、同じ符号によって表す。基準領域間を結んだ線(アーク)を、移動体が走行する仮想走行路として管理する。基準ノード及び仮想走行路は、予めデータとして格納されている。図の実線及び破線が、基準ノード間を結ぶ線(仮想走行路に対応)である。基準ノード間で2台以上の移動体が併走可能な場合は、基準ノード間が2本以上の線で結ばれてもよい。基準ノード及び仮想走行路のデータは、マップデータ上に定義されている。マップデータは、予めCAD(Computer-Aided Design)等の図面として定義されたものでもよいし、移動体が自己位置検知機能により環境マップを作成する機能を有する場合は、当該機能により作成した環境マップでもよい。なお、仮想走行路の形状は、直線でも、曲線でも、直線と曲線の組み合わせでもよい。
移動体1、2、3は、図1の移動体201_1~201_3に対応する。移動体1~3は、自律走行機能を備えている。より詳細には、移動体1~3は、基準領域間の走行路を走行する動線を移動体自身が生成し、生成した動線に沿って自律的に走行する機能を備えている。一例として、基準領域Bから基準領域Cへ移動する場合、基準領域B及び基準領域C間に障害物等が存在しなければ、基準領域Bの位置と、基準領域Cの位置とを結んだ線分を動線として生成し、当該動線に沿って走行路を自律的に走行する。移動体が生成する動線は、基準ノードB及び基準ノードC間の仮想走行路と一致しても、しなくてもよい。移動体は、仮想走行路を2つの基準ノード間を移動する際の推奨経路として走行し、仮想走行路上に一時的な障害物を発見した場合は、障害物を回避する機能を備えていてもよい。
なお、移動体が障害物を回避して走行する余裕のある走行路を、移動体同士の競合が発生しない走行路として扱うことも可能である。例えば、図2で走行路BE(基準領域B及び基準領域E間の走行路。以下同様)、走行路BA、走行路BHなどの走行路では、例えば相互回避を行うだけの余裕が十分にあるため、2台の移動体が互いに向かい合う方向に走行しても、競合は発生しない。例えば一方の移動体は走行路の脇で待機し、他方の移動体は走行路を動線に沿って移動する。他方の移動体が通過し終わったら、一方の移動体は移動を再開する。一方、走行路BCでは、相互回避を行うだけの余裕がないため、当該走行路で2台の移動体が互いに向かい合う方向に走行すると、衝突等の競合が発生する。
なお移動体は、前方向、後方向又は前後両方向に移動できる。移動体は前後を反転するように回転可能であってもよい。また、移動体は、斜め方向など、前後以外の方向に移動できてもよい。
移動体の状態を検出するセンサ、移動体と通信する通信装置又はこれらの両方が、基準領域、走行路、棚、搬入口、その他の任意の箇所に配置されていてもよい。この場合、センサは、通信装置及び運行計画装置100の少なくとも一方と有線又は無線で接続される。
移動体は、図1の運行計画装置100の管理の元、走行路ネットワークを、割り当てられた運行に従って走行する。例えば、搬入口から受け取った荷物を、別の搬入口まで運ぶ。移動の途中で、棚から荷物を積み下ろしたり、積み上げたりするなどの作業を行う場合もある。このような作業を各移動体は、運行計画装置100から与えられた移動指令データに含まれる命令群を実行することにより行う。なお、移動体は、荷物の搬送を行わず、ただ移動するだけの場合もあり得る。
ここで衝突及びデッドロックについて説明する。
図3(A)は衝突の例を示す。図3(B)はデッドロックの例を示す。図3(A)及び図3(B)では便宜上、走行路を直線によって表している。図3(A)では、交差部につながる2つの走行路を2つの移動体が交差部に向かって走行し、交差部に同時に到着し、互いに衝突している。図3(B)では同一の走行路を2つの移動体が互いに逆方向に走行している。2つの移動体は前進のみ可能であるとすると、2つの移動体は、元の方向に戻れないため、任意の領域(交差部又は端部等)に移動できなくなり、デッドロックが発生する。
移動体の競合は、衝突又はデッドロックに限定されない。例えば、走行路につながる交差部に1台以上の移動体が待機している状態で、他の移動体が当該走行路を走行することでもよい。
図1の運行計画装置100は、各移動体に競合を生じせることなく、各移動体の運行を効率的に行うことを実現する。
走行路ネットワーク情報DB23は、走行路ネットワークの構造情報を内部に記憶している。走行路ネットワークの構造情報は、走行エリアのマップデータに対応づけて配置された、基準ノードと、仮想走行路(アーク)とを含む。基準ノードは、基準領域に対応する。基準領域は、一例として、複数の走行路の交差部又は走行路の端部等に設定される。但し、基準領域は、走行路上の任意の箇所に設定できる。任意の箇所の例として、荷物の積み上げ・積み降ろし場所、待機場所等がある。
図4は、走行路ネットワークの簡単な例を示す。図5は、図4の走行路ネットワークの構造情報の例を示す。図4の走行路ネットワークは5つの基準領域と、4つの走行路とを含む。ここでは便宜上、走行路を直線によって表している。基準領域Naは、4つの走行路が交差する交差部であり、基準領域Pa、Pb、Pc、Pdは4つの走行路の端部である。基準領域Pb、Pdには棚が配置されており、基準領域Pa、Pcには搬入口が存在する。基準領域Pa、Pb、Pc、Pdは、一例として、移動体の出発地点又は到着地点ともなり得る。
図5において、基準ノード間を結合(あるいは接続)する直線によって仮想走行路が表されている。各円が基準ノード(基準領域)を表し、円間をつなぐ直線がアーク(仮想走行路)を表す。基準ノードには基準領域と同じ符号を付してある。
走行路情報DB21は、走行路ネットワークの構造情報における各アーク(仮想走行路)の情報と基準ノードの情報とを走行路情報として記憶している。走行路情報は、アークID(走行路ID)と、アークの両端のノードのID(すなわち走行路の両端の領域のID)とを含む。
図6(A)は各アーク(仮想走行路)の情報の例を示す。図6(A)において、例えば基準ノードPa、Na間のアークIDは1、当該アークの両端の基準ノードはPa及びNaである。アークIDに対応づけて、基準ノード間の距離(走行路の距離)を記憶してもよい。あるいは、アークの両側の基準ノードの位置に基づき、走行路の距離を計算してもよい。また走行路の幅・高さ・材質・摩擦係数・勾配など、走行路の構造・配置に関する情報を記憶していてもよい。
基準領域DB22は、また、走行路ネットワークの構造情報における各基準ノードの情報を記憶している。例えば、基準ノードの情報として、基準ノードID、X座標、Y座標を記憶している。基準ノードの位置は、例えば基準ノードに対応する基準領域の位置(座標)に対応する。
図6(B)は、基準ノードの情報の一例を示す。例えば、基準ノードPbの座標は(X,Y)=(20,20)である。つまり基準ノードPbに対応する基準領域の位置は(X,Y)=(20,20)である。また基準ノードNaの位置は(X,Y)=(20,60)である。つまり、基準ノードNaに対応する基準領域Naの位置は(X,Y)=(20,60)である。
仮想領域設定部11は、走行路ネットワークに設定された基準領域に対して、少なくとも1つの走行路に仮想領域を設定する。仮想領域は、移動体の通過順序を管理するための領域である。ここでは基準領域に結合(あるいは接続)された各走行路において、基準領域から離れた位置に設定される。すなわち、走行路ネットワークの構造情報において、基準ノードに結合される各アーク上に、基準ノードから離れた位置に、仮想ノードを設定する。仮想領域は走行路ネットワークにおける全ての基準領域に対して設定してもよいし、交差部に対応する基準領域、走行路の端部に対応する基準領域又はこれらの両方など、特定の基準領域に対してのみ設定してもよい。仮想領域の設定は、本装置100のオペレータであるユーザが入力装置を用いて指定してもよい。ここでは交差部に対応する基準領域に対して仮想領域を設定する場合を説明する。
図7は、図4の走行路ネットワークの基準領域(交差部)Naに結合された各走行路に仮想領域を設定した例を示す。この例では交差部Naに結合された各走行路において、交差部Naから一定距離離れた位置に仮想領域Ia,Ib,Ic,Idを設定している。
仮想領域DB27は、仮想領域設定部11により設定された仮想領域の情報を記憶する。具体的には、仮想領域DB27は、基準ノードと仮想走行路(アーク)に関連づけて、仮想領域を表す仮想ノードを記憶している。
図8は、仮想領域DB27の一例を示す。ここでは図7の仮想領域(仮想ノード)Iaが基準領域(基準ノード)Naに対して走行路(IDが1のアーク)に設定されている。仮想領域IaのXY座標は(15,60)である。
図9は、図7の例の走行路ネットワークの構造情報に仮想ノードを設定した例を示す。基準ノードNaに結合(あるいは接続)された各アーク上に、基準ノードNaから一定距離離れた位置に仮想ノードIa,Ib,Ic,Idが設定されている。なお、仮想ノードには、当該仮想ノードに対応する仮想領域と同じ符号を付してある。基準ノードPa~Pdに対しても仮想ノードを設定することも可能である。この場合には、例えば、基準ノードPa~Pdに結合された各アークにおいて、基準ノードPa~Pdから一定距離離れた位置に仮想ノードを設定すればよい。
図10は、仮想領域設定部11の動作の一例のフローチャートである。この例では、仮想走行路が直線である場合に、基準ノードから一定距離離れた位置に仮想ノードを設定する。
ステップS101では、仮想ノードを設定する対象となる基準ノードを特定し、特定した基準ノードの座標(Xn、Yn)を特定する。仮想ノードを設定する対象となる基準ノードは、特定の基準ノード(例えば交差部に対応する基準ノード)でもよいし、全ての基準ノードでもよいし、ユーザが指定してもよい。また、特定した基準ノードに結合された各アーク(仮想走行路)の方向(θ)、及び基準ノードと仮想ノードの距離(L)を特定する。
基準ノードの座標は、基準領域DB22から取得する。仮想走行路の方向θは、走行路情報DB21から取得する。距離Lは、予め決められた値である。距離Lは、仮想走行路に対応する走行路の構造・配置等に応じて決められてもよい。また、移動体の特性(大きさなど)に応じて、距離Lが決められてもよい。この場合、移動体ごとに仮想ノードが設定されてもよい。なお、距離Lを一定の値範囲内からランダムに決定することもあり得る。
ステップS102では、基準ノードから仮想ノードまでのX方向の距離Xl及びY方向の距離Ylを算出する。X1=Lcosθ、Y1=Lsinθである。
ステップS103では、仮想ノードの座標を算出する。仮想ノードの座標は(Xn+Xl、Yn+Y1)によって算出される
移動体情報DB24は、1つ以上の移動体の情報を格納している。例えば、移動体の位置情報を格納している。移動体の位置情報は、一例として、リアルタイムの位置情報(最新の位置情報)である。例えば、移動体から一定時間ごとに位置情報を含むデータを受信し、受信したデータから、移動体の位置情報を取得してもよい。あるいは、走行路ネットワークに設けられたセンサが移動体の通過を検知した場合に、センサに接続された通信装置から、移動体の通過を通知するデータを受信してもよい。移動体の位置情報は、まだ運行を割り当てられていない待機中の移動体の位置情報でもよい。この場合、待機中の移動体又は待機場所に設置されたセンサに接続された通信装置から位置情報を含むデータを受信することで、移動体の待機位置を把握してもよい。位置情報を含むデータの受信は、通信部14が行う。位置情報は、移動体がこれまで通過した位置の履歴情報でもよい。位置情報以外の例としては、移動体が搭載するバッテリーの残存電力、移動体が荷物を保有しているか否か(移動体が荷物を搬送する場合)、搬送中の荷物の種類や数等が有り得る。移動体の固有の情報として、例えば、標準速度、最大速度、最低速度、移動体のサイズ、移動可能な方向など、移動体の仕様情報がある。
物の搬送を目的とした移動体であれば、荷物の積み降しに要する作業時間の情報(例えば所定個数の荷物を積み上げ又は積み下ろすのに要する時間)がある。ここに挙げた情報は一例に過ぎず、他の情報でもよい。
運行情報DB25は、1つ以上の移動体に割り当てるべき運行を表した運行情報を格納している。運行情報は、出発地点及び到着地点の情報を含む。運行情報は、出発地点及び到着地点に加えて、移動体が行うべき作業の内容及び作業の順序を含んでいてもよい。運行情報は、ユーザが入力装置を用いて入力してもよいし、外部の装置から有線又は無線の通信により取得してもよい。
図11は、運行情報の一例を示す。図11の運行情報は、図4の走行路ネットワークを想定している。
図11では、2つの運行情報の例が示される。1つ目の運行情報は、出発地点Pa、到着地点Pbを含む。これは出発地点Paを出発して、到着地点Pbまで移動することを表す。2つ目の運行情報は、出発地点Pc、到着地点Pdを含む。これは出発地点Pcを出発して、到着地点Pdまで移動することを表す。
運行計画決定部12は、運行情報DB25内の各運行情報を割り当てるべき移動体を決定し、決定した移動体に運行情報が示す運行を割り当てる。運行計画決定部12は、運行を割り当てられた移動体に対して、当該移動体に割り当てられた運行と、移動体情報DB24における移動体の情報とに基づき、走行計画を作成する。走行計画は、通過する基準領域の順序(走行ルート)と、基準領域を出発又は通過するタイミング(走行タイミング)とを含む。走行タイミングは、一例として運行計画装置100が備える時計の時刻によって特定される。
各移動体の走行ルートと走行タイミングは、移動体間に競合を生じさせないように決定される。すなわち、各移動体が当該走行タイミングで走行ルートを走行すれば、競合は発生しない。走行計画の作成方法として、任意の方法を用いることができる。
例えばシミュレーションにより各移動体のあらゆる移動パターンを探索することにより、競合が発生しない走行ルートと走行タイミングを決定してもよい。この際、移動体の移動速度として標準速度を用いてもよい。標準速度は、移動体の特性、走行路の特性(例えば走行路の材質など)、走行路の勾配などに応じて定められていてもよい。この際、競合が生じる可能性がある条件として競合条件を定義し、競合条件を満たさない移動パターンを探索してもよい。競合条件の例として、同じ走行路上に同時に2台以上の移動体が同じ方向又は逆方向に走行することがある。
あるいは、先に各移動体の走行ルートを決定し、その後、移動体間で競合が生じないように走行ルートに含まれる各基準領域の出発時刻(通過時刻)を決定してもよい。走行ルートは、出発地点から目的地点までの移動距離又は移動時間が最短となるルートでもよい。この際、競合条件を満たさないように各基準領域の出発時刻(通過時刻)をしてもよい。
上述した以外の方法を用いて、走行計画を作成してもよい。
運行計画決定部12は、2以上の移動体の走行ルートに共通に含まれる基準領域を特定する。特定した基準領域から、移動体の通過順序を管理する領域を指定領域(通過管理領域)として決定する。指定領域に対応する基準ノードを、指定ノードと呼ぶ。指定領域は1つの場合も、2以上の場合もある。指定領域は、特定した基準領域の全てでもよいし、一部でもよい。ユーザが指定領域を選択してもよい。運行計画決定部12は、指定ノードの情報を運行計画DB26又は運行計画決定部12の内部バッファ等に格納する。基準領域又は指定領域は一例として第1領域に対応し、仮想領域は一例として第2領域に対応する。後述する第6変形例の統合領域も、一例として第1領域に対応する。
運行計画決定部12は、指定領域(指定ノード)ごとに、各移動体の通過順序を決定する。例えば、走行計画に基づき移動体間で当該指定領域の出発時刻を比較し、出発時刻が早いほど順番が早くなるように、当該指定領域における移動体の通過順序を決定する。決定した通過順序で移動体が通過する必要があるとの制約、すなわち、指定領域における通過順序の制約を表した情報を生成する。この情報を、通過順序情報と呼ぶ。
運行計画決定部12は、各移動体の走行計画に含まれる走行ルートの情報(走行ルート情報)と、通過順序情報とを、運行計画として得る。
運行計画DB26は、運行計画決定部12により作成された運行計画(各移動体の走行ルートの情報と、通過順序情報)を内部に格納する。
以下、運行計画決定部12の動作の具体例を示す。まず、AGV0に図11の1番目の運行、AGV1に図11の2番目の運行を割り当て、AGV0及びAGV1の走行計画を作成する。
図12(A)は、AGV0及びAGV1の走行計画の一例を示す。AGV0の走行ルートは、Pa、Na、Pbであり、Pa、Na、Pbの出発時刻は0、10、20である。つまり地点Paを時刻0で出発し、交差部Naを時刻10で通過(出発)し、地点Pbに時刻20に到着する。AGV1の走行ルートは、Pc、Na、Pdであり、Pc、Na、Pdの出発時刻は10、20、30である。つまり地点Pcを時刻10で出発し、交差部Naを時刻20で通過(出発)し、地点Pdに時刻30で到着する。地点Pa~Pd及び交差部Naはいずれも基準領域である。
AGV0及びAGV1ともに、交差部Naを通過する。このため、運行計画決定部12は、Naを指定領域として特定する。
また、NaにおけるAGV0の出発時刻は10、NaにおけるAGV1の出発時刻は20である。すなわち、交差部Naの通過順序として、AGV0が先に通り、次にAGV1が通過する。よって、運行計画決定部12は、AGV0、AGV1の順にNaを通過するとの制約を含む通過順序情報を生成する。
運行計画決定部12は、作成した走行計画に含まれる走行ルートの情報と、作成した通過順序情報とを運行計画として得る。
図12(B)に、運行計画決定部12により得られた運行計画の例を示す。AGV0の走行ルートは、Pa、Na、Pbであり、AGV1の走行ルートは、Pc、Na、Pdである。通過順序情報において、指定領域が交差部Naであり、交差部Naの通過順序として、AGV0が先に通り、次にAGV1が通過することが、通過順序として特定されている。
図13に、図4に示した走行路ネットワークにおいてAGV0、AGV1がそれぞれ、運行計画に示される出発地点Pa、Pcに配置された状態を示す。図13では便宜上、走行路を直線によって表している。なお、運行計画の作成前に、AGV0、AGV1は出発地点Pa、Pcに存在しており、運行計画決定部12は、AGV0、AGV1が地点Pa、Pcに存在するとの情報を用いて、AGV0、AGV1に運行情報を割り当てている。但し、AGV0、AGV1に運行を割り当てた後に、AGV0、AGV1を地点Pa、Pcに配置してもよい。
走行制御部13は、運行計画DB26における移動体の運行計画(走行ルート情報、通過順序情報)と、仮想領域設定部11により設定された仮想領域とに基づき移動体の走行を制御する。走行制御部13は、仮想領域設定部11により設定された仮想領域の後に位置する基準領域(指定領域)の通過順序情報に基づき、仮想領域の通過タイミングを制御する。これにより、指定領域において複数の移動体が競合しないように、指定領域における移動体の走行タイミングが調整される。以下、詳細を説明する。
運行計画に基づき、移動体の走行ルートを取得する。走行ルートに含まれる複数の基準ノード(基準領域)に対してそれぞれ1つ以上の命令を生成する。
走行ルートにおける最初の基準領域は、本実施形態では移動体の出発地点(開始位置)に対応する。当該最初の基準領域に対しては、出発地点への移動命令を生成する(なお移動体は出発地点に既に位置する場合、移動命令を実行しても移動体は移動しない)。
走行ルートの最後の基準領域は、移動体の到着地点(終了位置)に対応する。最後の基準領域に対しては、到着地点への移動命令を生成する。
最初の基準領域と最後の基準領域以外の基準領域については、当該基準領域が指定領域か否かを判断する。指定領域でない場合は、当該基準領域に対応する基準領域への移動命令を生成する。
基準領域が指定領域の場合(ここでは基準領域Nが指定領域であるとする)、基準領域Nの前に結合されている走行路を特定する。具体的には、基準領域に対応する基準ノードの前に結合されている仮想走行路を特定し、この仮想走行路に対応する走行路を特定する。特定した走行路において基準領域Nに対して設定されている仮想領域(仮想領域Aと記載する)を特定する。また、走行ルートにおいて、基準領域Nの後ろに結合された走行路を特定し、特定した走行路において当該基準領域Nに対して設定されている仮想領域(仮想領域Bとする)を特定する。
そして、仮想領域Aへ移動する命令(第1命令)、基準領域Nを通過することが許可されるか確認する命令(第2命令)、基準領域Nの通過が許可された場合に仮想領域Bへ移動する命令(第3命令)、仮想領域Bへ移動した後に基準領域Nを通過したことを示す情報を本装置100へ送信する命令(第4命令)を生成する。第2命令は、仮想領域Aを出発又は通過することが許可されるかを確認する命令、第3命令は、仮想領域Aを出発又通過する命令であるとも言える。このように1つの基準領域Nに対して、4つの命令が生成される。
走行制御部13は、走行ルートに含まれる複数の基準領域に対してそれぞれ生成した命令を、これら複数の基準領域の配置順序で配置することにより、移動指令データを生成する。
走行制御部13は、移動体に対して生成した移動指令データを、通信部14を介して、当該移動体に送信する。
以上の動作を、運行計画が作成されたすべての移動体に対して行う。これにより各移動体の移動指令データを生成する。
移動指令データに含まれる最初の命令の実行開始時刻を付加してもよい。最初の命令の実行開始時刻は、走行計画における最初の基準領域の出発時刻と同じでもよい。走行計画又は走行ルートに、移動体が行う作業が含まれる場合は、当該作業に対応する命令も、移動指令データに追加される。作業の例として、搬入口から荷物を受け取ること、受け取った荷物を棚に運ぶこと、棚に荷物を積み上げることなどがある。また、棚から荷物を積み降ろすことなどもある。
図14は、図12の運行計画(走行ルート情報、通過順序情報)と、図7の走行路ネットワークとの例において、AGV0及びAGV1に対して生成された移動指令データの例を示す。以下、AGV0及びAGV1の移動指令データを生成する手順を具体的に示す。
AGV0の走行ルートにおいて、最初の基準領域Paは出発地点に対応するため、地点Paへ移動する命令を生成する。図14の“Pa”はPaへ移動する命令を意味する。命令の表記は任意でよく、例えばPaへ移動する命令を、Move_Paなどとしてもよい。なお、本例では、AGV0はすでに出発地点に存在するため、この命令を実行しても実際に移動することはないものとする。したがって、Paへ移動する命令の生成を省略することも可能である。
AGV0の走行ルートにおいて、2番目の領域Naは、通過順序情報で通過順序が定められた領域である。したがって、AGV0の走行ルートにおいて、領域Naの直前に走行する走行路を特定する。特定した走行路において領域Naに対して設定された仮想領域Iaを特定する。具体的な処理としては、基準ノードNaの直前に走行する仮想走行路を特定し、特定した仮想走行路において基準ノードNaに対する仮想ノードIaを特定する。
また、AGV0の走行ルートにおいて、領域Naの後の直後に走行する走行路を特定する。特定した走行路において領域Naに対して設定された仮想領域Ibを特定する。具体的な処理としては、基準ノードNaの直後に走行する仮想走行路を特定し、特定した仮想走行路において、基準ノードNaに対する仮想ノードIbを特定する。
よって、
仮想領域Iaへ移動する命令“Ia”、
指定領域Naを通過する(仮想領域Iaを出発又は通過する)ことが許可されるかを確認する命令“Check(Na)”、
指定領域Naの通過が許可される場合に仮想領域Ibへ移動(仮想領域Iaを出発又は通過)する命令“Ib”、
仮想領域Ibへ移動した後に指定領域Naを通過したこと(仮想領域Ibに到達したこと)を示す情報を本装置100に送信する命令“Notice(Na)”
を生成する。
Check(Na)は、指定領域Naに対する通過確認を行う命令(通過確認命令)、Notice(Na)は、指定領域Naの通過完了通知を行う命令(通過通知命令)に相当する。
なお、AGV0は、Check(Na)の実行により走行制御部13から領域(指定ノード)Naの通過を許可される前は、仮想領域Iaより先に進むことはできないものとする。例えばAGV0は、領域Naの通過の許可を得る前に仮想領域Iaに達した場合は、仮想領域Iaで一時停止する。一方、AGV0は、仮想領域Ibでは、仮想領域Ibに達した時点で、Notice(Na)を実行し、仮想領域Ibで一時停止する必要はない。
AGV0の走行ルートにおいて、3番目の領域Pbは、到着地点であるため、到着地点Pbへ移動する命令“Pd”を生成する。
以上のように生成した命令を、走行ルートに含まれる基準領域の順番に対応して配置することで、図14に示す移動指令データがAGV0に対して生成される。AGV1の場合も、AGV0と同様にして、移動指令データを生成することができる。走行制御部13は、AGV0及びAGV1に対して生成した移動指令データを、通信部14を介して、AGV0及びAGV1に送信する。
走行制御部13は、指定領域(基準領域)に対する通過確認の問合せデータを移動体から受信した場合は、当該指定領域の通過順序情報を確認する。問合せ元の移動体より早い順序の移動体の全てから当該指定領域の通過完了通知を受信済みか、もしくは問合せ元の移動体が1番最初の順序の場合は、指定領域の通過の許可通知(仮想領域の出発又は通過の許可通知)を、問合せ元の移動体に送信する。それ以外のときは、問合せ元の移動体に、指定領域の通過の非許可通知を送信する。運行計画装置100は、指定領域の通過を許可するまで、繰り返し非許可通知を送信してもよい。また走行制御部13は、移動体から指定領域に対する通過完了通知を受信した場合は、通過完了通知に示される指定領域を、通過完了通知の送信元の移動体に関連づけて、運行計画DB26又は内部のバッファ等に格納する。
通信部14は、移動体と無線又は有線の通信を行う。通信の方式は、任意でよい。専用のプロトコルを定義してもよいし、IEEE802.11で定められた無線LAN(Local Area Network)プロトコルでもよい。
運行計画装置100から移動指令データを受信した移動体は、移動指令データに含まれる命令を順番に実行することで、出発地点から到着地点まで走行ルートに沿って走行する。移動体は、最初の命令に時刻が付加されている場合は、当該時刻になった時点で命令の実行を開始する。時刻が付加されていない場合は、移動指令データを受信してから即時又は一定時間後に命令の実行を開始する。ここで記載した以外の方法で最初の命令を実行するタイミングを定義してもよい。AGV0及びAGV1を例に、移動体の動作について、説明する。
AGV0は図14の1番目の移動体指令データを受信し、受信した移動体指令データに含まれる命令を順番に実行する。AGV1は図14の2番目の移動体指令データを受信し、受信した移動体指令データに含まれる命令を順番に実行する。ここでは説明のため、移動体指令データを受信したAGV0及びAGV1が同時に命令の実行を開始する場合を想定する。
[AGV0]
AGV0は、命令Paを実行するが、すでに領域Paに存在するため、次の命令Iaを実行する(あるいは最初の命令はスキップしてもよい)。AGV0は命令Iaの実行により、仮想領域Iaに向かって移動する。AGV0は仮想領域Iaに到着した時又は到着する前に、命令Check(Na)を実行する。AGV0は仮想領域Iaに到着した時点でまだIaの通過許可を得ていない場合は、仮想領域Iaで一時停止する。AGV0は、命令Check(Na)の実行により、領域Naを通過することが許可されるかを確認する。具体的には、AGV0は領域Naを通過する(仮想領域Iaを通過又は出発する)ことが許可されるかの問い合わせデータ(通過確認の問合せデータ)を運行計画装置100に送信する。運行計画装置100の走行制御部13は、通過順序情報に基づき、AGV0の通過順序を確認する。AGV0の通過順序は1番目のため、走行制御部13は、領域Naの通過の許可通知(仮想領域Iaを通過又は出発の許可通知)をAGV0に送信する。AGV0は、領域Naの通過(仮想領域Iaを通過又は出発)を許可されたため、次の命令Ibを実行して、仮想領域Ibに向かう。仮想領域Ibに向かう途中で、領域Naを通過する。仮想領域Ibに到着すると、次の命令Notice(Na)を実行して、運行計画装置100に、領域Naを通過したこと(仮想領域Ibに到達したこと)を示す通過完了通知を送信する。AGV0は、続いて、次の命令Pbを実行して、領域Pbに移動する。領域Pbに到着したら、動作を終了する。例えば、AGV0は運行計画装置100から次の移動指令データを受信するのを待機する。
[AGV1]
AGV1は、命令Pcを実行するが、すでに領域Pcに存在するため、次の命令Icを実行する(あるいは最初の命令はスキップしてもよい)。AGV1は命令Icの実行により、仮想領域Icに向かう。AGV1は仮想領域Icに到着した時又は到着する前に、命令Check(Na)を実行する。AGV1は仮想領域Icに到着した時点でまだIcの通過許可を得ていない場合は、仮想領域Icで一時停止する。AGV1は、次の命令Check(Na)の実行により、領域Naを通過することが許可されるかを確認する。具体的には、AGV1は領域Naを通過する(仮想領域Icを通過又は出発)ことが許可されるかの問い合わせデータ(通過確認の問合せデータ)を運行計画装置100に送信する。運行計画装置100の走行制御部13は、通過順序情報に基づき、AGV1の通過順序を確認する。AGV1の通過順序は2番目のため、走行制御部13は、1番目のAGV0が領域Naを通過済みか調べる。AGV0からは領域Naの通過完了通知を受信している場合は、AGV0は領域Naを通過済みと判断する。この場合、走行制御部13は、AGV1が領域Naを通過することの許可通知(仮想領域Icを通過又は出発の許可通知)をAGV1に送信する。一方、走行制御部13は、AGV0からは領域Naの通過完了通知を受信していない場合は、AGV0がまだ領域Naを通過済みでないと判断し、AGV1に非許可通知を送信するか、もしくは何も応答を送信しない。AGV1は、領域Naの通過を許可された場合(仮想領域Iaの通過又は出発を許可された場合)は、次の命令Idを実行して、仮想領域Idに向かう。AGV1は運行計画装置100から非許可通知を受信したか、もしくは何も応答を受信しない場合は、仮想領域Icで待機したまま、一定時間後に、再度問い合わせデータを送信する。もしくは、運行計画装置100から許可通知を受信するまで仮想領域Icで待機し続ける。AGV1は仮想領域Idに向かう途中で、領域Naを通過する。仮想領域Idに到着すると、次の命令Notice(Na)を実行して、運行計画装置100に、領域Naを通過したこと(仮想領域Ibに到達したこと)を示す通過完了通知を送信する。AGV1は、次の命令Pdを実行して、領域Pdに移動する。領域Pbに到着したら、動作を終了する。例えば、AGV1は運行計画装置100から次の移動指令データを受信するのを待機する。
図15は、運行計画装置100の動作の一例のフローチャートである。仮想領域設定部11は、走行路ネットワーク情報DB23、基準領域DB22及び走行路情報DB21に記憶された情報に基づき、走行路ネットワークにおける各基準領域に対して仮想領域を設定する。具体的な処理としては、走行路ネットワークの構造情報に示される各基準ノードに対して、仮想ノードを設定する(S11)。
運行計画決定部12は、運行情報DB25及び移動体情報DB24に記憶された情報に基づき、運行情報に示される各運行を移動体に割り当てる(S12)。各移動体に割り当てた運行に基づき、各移動体の走行計画を生成する(S13)。走行計画は一例として、走行ルートと走行タイミングとを含む。運行計画決定部12は、各移動体の走行ルートに基づき、複数の移動体が共通に通過する基準領域を特定する(S14)。特定した基準領域を指定領域とする。指定領域を通過する移動体の順序を決定する(S15)。一例として、当該指定領域における複数の移動体の走行タイミングに基づき、走行タイミングが早い順に、移動体の順序を決定する。運行計画決定部12は、各移動体の走行ルートを表す情報(走行ルート情報)と、指定領域の通過順序の制約を表す情報(通過順序情報)とを運行計画として得る(S16)。
走行制御部13は、運行計画における各移動体の走行ルート情報と、仮想領域設定部11により設定された仮想領域の情報とに基づき、各移動体の移動指令データを生成する(S17)。より詳細には、走行ルートの最初の基準領域と最後の基準領域に対しては、最初の基準領域への移動命令と、最後の基準領域の移動命令を生成する。最初の基準領域と最後の基準領域との間の基準領域については、当該基準領域の前の仮想領域(仮想領域Aとする)への移動命令と、基準領域に対する通過確認命令と、通過の許可が得られた後に基準領域の後の仮想領域(仮想領域Bとする)への移動命令(仮想領域Aの出発又は通過の命令)と、仮想領域Bに到達した時点で基準領域の通過完了通知を送信する命令とを生成する。走行制御部13は、走行ルートに含まれる各基準領域に対して生成した命令を基準領域の配置順序に対応して配置することで、移動指令データを生成する。走行制御部13は、生成した各移動体の移動指令データを、通信部14を介して各移動体に送信する(S18)。
図16は、各移動体に移動指令データを送信した後の動作の一例を示すフローチャートである。
走行制御部13は、移動体から指定領域(基準領域)に対する通過確認の問合せデータを受信したかを判断する(S21)。問合せデータを受信していない場合(S21のNO)、ステップS25に進む。問合せデータを受信した場合(S21のYES)は、問合せデータに示される指定領域の通過順序情報を確認する。問合せ元の移動体より早い順序の移動体を全て特定し、特定した全ての移動体から当該指定領域の通過完了通知を受信済みか、もしくは問合せ元の移動体が1番最初の順序かを判断する(S22)。全ての移動体から通過完了通知を受信済みのとき、もしくは問合せ元の移動体が1番最初の順序のときは、問合せ元の移動体に指定領域の通過の許可通知(仮想領域の出発又は通過の許可通知)を送信する(S23)。それ以外のときは、問合せ元の移動体に、指定領域の通過の非許可通知を送信する(S24)。
走行制御部13は、移動体から指定領域に対する通過完了通知を受信したかを判断する(S25)。通過完了通知を受信した場合は(S25のYES)、通過完了通知に示される指定領域を、通過完了通知の送信元の移動体に関連づけて、運行計画DB26又は内部のバッファ等に格納する(S26)。通過完了通知を受信していない場合は(S25のNO)、ステップS21に進む。走行制御部13が、全ての移動体から運行の完了の通知を受信した場合は、本処理を終了する(S27のYES)。まだ運行が完了していない移動体が存在するときは、ステップS21に戻る。
本実施形態では、走行路ネットワークにおける各基準領域に対して仮想領域を事前に設定したが、運行計画作成時に走行ルートに含まれる基準領域を対象に、仮想領域を作成してもよい。
本実施形態では、移動体が指定領域を通過した後に、指定領域の直後に通過する仮想領域で通過完了通知を送信した。本装置100で移動体の位置情報をリアルタイムに管理している場合は、本装置100側で移動体の指定領域の通過を検知することも可能である。この場合、移動体から通過完了通知を送信することを省略してもよい(つまり第4命令を省略してもよい)。
本実施形態では、仮想領域を指定領域に結合されている走行路に設定したが、これに限定されない。例えば、一端側が指定領域に結合されている走行路の他端側が他の基準領域に結合されており、当該他の基準領域に結合されている他の走行路に、指定領域に対する仮想領域を設定してもよい。例えば他の基準領域が移動体の通過順序を管理する必要がなく、他の基準領域を指定領域としない場合にこのようにすることも可能である。
本実施形態では、通過順序を複数の移動体が通過する基準領域(基準ノード)に対して生成したが、1台のみの移動体が通過する基準領域(基準ノード)に対して生成してもよい。また1台のみの移動体が通過する基準領域を指定領域としてもよい。
以上、本実施形態によれば、通過順序情報と、指定領域に対して設定された仮想領域とを用いて移動体の走行を制御することにより、移動体の競合を回避した運行が可能になる。すなわち、移動体が、指定領域の直前の仮想領域で指定領域の通過が許可されるかを確認し、許可される場合のみ、当該仮想領域を出発又は通過する。これにより、指定領域における移動体の通過順序を保証できるため、走行環境の外乱等に拘わらず、移動体の競合を回避した運行が可能になる。
(第1変形例)
上述した実施形態では、走行計画として、各移動体の走行ルートと、走行ルートに含まれる各基準領域の出発時刻とを算出した。別の方法として、複数の移動体の走行ルートと、複数の移動体の走行ルートに共通に含まれる基準領域に対する移動体の通過順序とを、走行計画として算出してもよい。この場合、各基準領域の出発時刻の算出する必要はない。当該基準領域に対する通過順序の情報をそのまま、運行計画の通過順序情報として用いることができる。
(第2変形例)
基準領域は交差部だけではなく、荷積み荷降ろし場所、充電場所、移動体の待機場所など移動体が停止する場所でもよい。また基準領域は、2車線分のルートから1車線分のルートなど道が狭まる場所でもよい。また、基準領域は、走行路の勾配が変化する箇所でもよい。また、基準領域は、曲がり角など、移動体のスピードが変わる箇所でもよい。移動体同士の追突等の起こりえる場所を基準領域とし、基準領域に対して仮想領域を設定することで、通過順序を適正に制御することが考えられる。また移動体の出発地点となる場所、運行情報の到達地点となる場所を基準領域としてよい。また、移動体の現在位置を基準領域としてもよい。
(第3変形例)
工場などでは小型の移動体と大型の移動体が混在する。
図17は、小型の移動体として小型AGV、大型の移動体として大型AGVを模式的に示す。
小型の移動体と大型の移動体では、回転半径や停止制動距離などに違いがある。よって、移動体の特性に合わせて、基準領域から仮想領域までの距離(基準ノードから仮想ノードまでの距離)を変えてもよい。この場合、移動体ごとに、仮想領域を設定してもよい。
図18は、移動体の特性に応じて基準領域から仮想領域までの距離(基準ノードから仮想ノードまでの距離)を変更する例を示す。図18では便宜上、走行路を直線によって表している。
具体的には、大型AGVと小型AGVとで基準領域から仮想領域までの距離を変更する。大型AGVの仮想領域と基準領域Naとの距離をLG、小型AGVの仮想領域と基準領域Naとの距離をLSとすると、LGがLSより大きくなるように、小型AGV及び大型AGVのそれぞれの仮想領域を設定している。大型AGVと小型AGVとで基準領域Naからの仮想領域までの距離を変えることで、移動体間の競合をより確実に阻止できる。例えば、大型AGVでは仮想領域で停止しようとする場合、停止制動距離が長いため、仮想領域を大きく超えてしまうことも想定される。そのような場合にも、基準領域からの距離を長くとることで、競合を阻止できる。
(第4変形例)
走行路の特性(材質、摩擦係数など)に応じて、基準領域から仮想領域までの距離を変えてもよい。
図19(A)は、走行路の床面がアスファルトの場合の仮想領域の設定例を示す。図19(B)は、走行路の床面が砂利道の場合の仮想領域の設定例を示す。図19(A)及び図19(B)では便宜上、走行路を直線によって表している。走行路の床面がアスファルトの場合、基準領域から仮想領域までの距離をMS、走行路の床面が砂利道の場合、基準領域から仮想領域までの距離をMGとする。MGをMSよりも大きくしている。別の例として、走行路の床面がフローリングの場合に、絨毯よりも仮想領域までの距離を長くしてもよい。
また、走行路の特性(材質、摩擦係数など)が変わる部分に基準領域が設定されている場合、移動体の走行方向を加味して、仮想領域を設定してもよい。
図20(A)及び図20(B)は、アスファルトの床面の走行路と、砂利道の床面の走行路との結合部分に基準領域が設定されている例を示す。図20(A)及び図20(B)では便宜上、走行路を直線によって表している。図20(A)は、移動体が、砂利道の走行路からアスファルトの走行路に進む場合、図20(B)は、移動体が、アスファルトの走行路から砂利道の走行路に進む場合を示す。図20(A)における基準領域から砂利道上の仮想領域までの距離PGを、図20(B)における基準領域から砂利道上の仮想領域までの距離PSより長くしている。
(第5変形例)
走行ルートに含まれる基準領域及び仮想領域に通過方向の情報を設定してもよい。
例えば、図7において紙面に沿って上へ向かう方向をUP方向、下へ向かう方向をDOWN方向とする。また紙面に沿って、右へ向かう方向をRIGHT方向、左へ向かう方向をLEFT方向とする。このとき、例えばAGV0の走行ルートは、“Pa,Na_up,Pb”と表記できる。また、AGV1の走行ルートは、“Pa,Na_right,Pb”と表記できる。
同様に、方向付きの仮想領域を用いて、仮想領域への移動の命令も生成できる。
図21は、方向付きの仮想領域を用いた命令群(移動指令データ)の例を示す。図21の移動指令データは、図14のAGV0及びAGV1の移動指令データの命令に方向を追加したものである。
図示のように、AGV0の移動指令データは、“Pa,Ia_right,Check(Na),Ib_up,Notice(Na),Pb”と表される。また、AGV1の移動指令データの場合、“Pc,Ic_up,Check(Na),Id_right,Notice(Na),Pd”と表される。
これにより、移動体の走行を制御しやすくなる。例えば、図14のAGV1の移動指令データでは、移動体の状況によっては、図7の仮想領域Idに右側から左側に進入し、進入直後後に、右側へ向いて、次の領域Pdに進むような動きをすることもあり得る。これに対して、仮想領域Idに方向を設定し、仮想領域Id_rightすることで、移動体に、仮想領域Id_rightに左側から進入させることができる。これによって、効率的な走行を実現できる。
(第6変形例)
基準領域を複数まとめた統合領域を定義し、統合領域を用いて走行ルートの生成及び仮想領域の設定を行うことも可能である。統合領域は、一例として、第1領域に対応する。本装置100の内部の処理としては、複数の基準ノードを複数まとめた統合ノードを定義し、統合ノードを用いて走行ルートの生成及び仮想ノードの設定を行う。なお、以下の説明においても、本装置100の内部の処理としては、領域及び走行路を、ノード及び仮想走行路に読み替えた処理が行われる。
図22は、複数の基準領域を1つの統合領域にまとめる例を示す。この例では、基準領域Naと基準領域Nbとをまとめて1つの統合領域Ncとしている。移動体の走行ルートでは、NaとNbとを通過する場合、NaとNbを指定するのではなく、Ncを指定する。
仮想領域は、統合領域Ncに外側から結合している各走行路上に設定する。設定の方法は上述した実施形態又は各変形例と同様である。図22の例では指定領域Ncに6つの走行路が結合されている。6つの走行路のそれぞれに統合領域Ncに対する仮想領域が設定されている。統合領域Nc内に含まれる各基準領域間には仮想領域は設定しない。
このように個々の基準領域ではなく、複数の基準領域を1つにまとめて通過順序を管理すればよい場合は、本変形例を用いることで、仮想領域の個数を減らし、より簡単な走行制御を実現できる。複数の基準領域を統合領域にまとめる具体例としては、複数の基準領域が狭い範囲に密集している場合などに、当該複数の基準領域を1つの統合領域にまとめることがあり得る。
また基準領域間の走行路の距離が閾値より短い場合には、当該走行路への仮想領域の設定を省略してもよい。これにより、仮想領域の個数を減らし、より簡単な走行制御を実現できる。閾値は、走行路の特性又は移動体の特性に応じて変更してもよい。
(ハードウェア構成)
図23に、図1の運行計画装置100のハードウェア構成を示す。図1の運行計画装置100は、コンピュータ装置300により構成される。コンピュータ装置300は、CPU301と、入力インタフェース302と、表示装置303と、通信装置304と、主記憶装置305と、外部記憶装置306とを備え、これらはバス307により相互に接続されている。
CPU(中央演算装置)301は、主記憶装置305上で、コンピュータプログラムである運行計画プログラム(情報処理プログラム)を実行する。運行計画プログラムは、運行計画装置100の上述の各機能構成を実現するプログラムのことである。運行計画プログラムは、1つのプログラムではなく、複数のプログラムやスクリプトの組み合わせにより実現されていてもよい。CPU301が、運行計画プログラムを実行することにより、各機能構成は実現される。
入力インタフェース302は、キーボード、マウス、およびタッチパネルなどの入力装置からの操作信号を、運行計画装置100に入力するための回路又は入力装置である。
表示装置303は、運行計画装置100から出力されるデータを表示する。表示装置303は、例えば、LCD(液晶ディスプレイ)、有機エレクトロルミネッセンスディスプレイ、CRT(ブラウン管)、またはPDP(プラズマディスプレイ)であるが、これに限られない。コンピュータ装置300から出力されたデータは、この表示装置303に表示することができる。
通信装置304は、運行計画装置100が外部装置と無線または有線で通信するための回路である。データは、通信装置304を介して外部装置から入力することができる。外部装置から入力したデータを、主記憶装置305や外部記憶装置306に格納することができる。
主記憶装置305は、運行計画プログラム、運行計画プログラムの実行に必要なデータ、および運行計画プログラムの実行により生成されたデータなどを記憶する。運行計画プログラムは、主記憶装置305上で展開され、実行される。主記憶装置305は、例えば、RAM、DRAM、SRAMであるが、これに限られない。図1の各DB又は記憶部は、主記憶装置305上に構築されてもよい。
外部記憶装置306は、運行計画プログラム、運行計画プログラムの実行に必要なデータ、および運行計画プログラムの実行により生成されたデータなどを記憶する。これらの運行計画プログラムやデータは、運行計画プログラムの実行の際に、主記憶装置305に読み出される。外部記憶装置306は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。図1の各DB又は各記憶部は、外部記憶装置306上に構築されてもよい。
なお、運行計画プログラムは、コンピュータ装置300に予めインストールされていてもよいし、CD-ROMなどの記憶媒体に記憶されていてもよい。また、運行計画プログラムは、インターネット上にアップロードされていてもよい。
また、運行計画装置100は、単一のコンピュータ装置300により構成されてもよいし、相互に接続された複数のコンピュータ装置300からなるシステムとして構成されてもよい。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
11:仮想領域設定部
12:運行計画決定部
13:走行制御部
14:通信部
21:走行路情報データベース(DB)
22:基準領域DB
23:走行路ネットワーク情報DB
24:移動体情報DB
25:運行情報DB
26:運行計画DB
201_1~201_3:移動体
100:運行計画装置
300:コンピュータ装置
301:CPU
302:入力インタフェース
303:表示装置
304:通信装置
305:主記憶装置
306:外部記憶装置

Claims (14)

  1. 複数の第1領域間の複数の走行路の少なくとも1つの途中に第2領域を設定する領域設定部と、
    第1移動体の走行計画と第2移動体の走行計画とに基づき、前記第1移動体の走行ルートである第1走行ルートと前記第2移動体の走行ルートである第2走行ルートとに共通に含まれる前記第1領域である第3領域を前記第1移動体と前記第2移動体とが通過する順序を定めた通過順序情報を生成する運行計画決定部と、
    前記第1移動体に、
    前記第1走行ルートにおいて前記第3領域に結合されかつ前記第3領域を通過する前に走行する走行路、に設定された第2領域へ移動する移動命令と、
    前記第2領域に到着したら前記第3領域を通過してよいかの確認をする確認命令と、
    前記第3領域の通過の許可が得られたら前記第2領域を出発し前記第3領域を通過する通過命令と
    を含む命令群を含む移動指令データを送信し、
    前記移動指令データにおける前記命令群を実行する前記第1移動体から前記第3領域を通過してよいかの確認を求める要求を受信したら、前記通過順序情報と、前記第2移動体が前記第3領域を通過済みかの情報とに基づき、前記第1移動体が前記第3領域を通過してよいかを決定し、決定の結果を示す情報を前記第1移動体に送信する、走行制御部と、
    を備えた走行制御装置。
  2. 前記走行制御部は、前記第1移動体前記第領域を通過することを許可する場合に、前記第1移動体に前記第領域の通過許可する許可通知を送信する
    請求項1に記載の走行制御装置。
  3. 前記通過順序情報は、前記第1移動体より前に前記第2移動体が前記第領域を通過することを定め、
    前記走行制御部は、前記第2移動体が前記第領域を通過済みである場合に、前記許可通知を送信する
    請求項に記載の走行制御装置。
  4. 前記走行制御部は、前記第2移動体から前記第2走行ルートにおいて前記第領域に結合されかつ前記第2移動体が前記第3領域の後に通過する走行路に設定された前記第2領域に到達したことの通知を受信した場合、前記第2移動体が前記第領域を通過済みであることを決定する
    請求項に記載の走行制御装置。
  5. 前記領域設定部は、前記走行路において前記走行路に結合された前記第1領域から第1距離だけ離れた位置に前記第2領域を設定する、
    請求項1~のいずれか一項に記載の走行制御装置。
  6. 前記領域設定部は、前記第1距離を前記第1移動体の特性に応じて決定する
    請求項に記載の走行制御装置。
  7. 前記領域設定部は、前記走行路の特性に応じて前記第1距離を決定する
    請求項に記載の走行制御装置。
  8. 前記領域設定部は、前記走行路の走行方向に応じて前記第1距離を決定する
    請求項に記載の走行制御装置。
  9. 前記第2領域には、前記第2領域へ進入する方向、及び前記第2領域から脱出する方向の少なくとも一方が設定されており、
    前記走行制御部は、前記第1移動体が前記設定された方向に沿って前記第2領域へ進入又は前記第2領域から脱出するように前記第1移動体の前記第1走行ルートを決定する
    請求項1~のいずれか一項に記載の走行制御装置。
  10. 前記第1領域は、複数の走行路が結合する交差部に設定されている
    請求項1~のいずれか一項に記載の走行制御装置。
  11. 前記第1領域は、複数の前記交差部を含む領域である
    請求項10に記載の走行制御装置。
  12. 前記第1移動体は、自律移動系の移動体である
    請求項1~11のいずれか一項に記載の走行制御装置。
  13. 複数の第1領域間の複数の走行路の少なくとも1つの途中に第2領域を設定し、
    第1移動体の走行計画と第2移動体の走行計画とに基づき、前記第1移動体の走行ルートである第1走行ルートと前記第2移動体の走行ルートである第2走行ルートとに共通に含まれる前記第1領域である第3領域を前記第1移動体と前記第2移動体とが通過する順序を定めた通過順序情報を生成し
    前記第1移動体に、
    前記第1走行ルートにおいて前記第3領域に結合されかつ前記第3領域を通過する前に走行する走行路、に設定された第2領域へ移動する移動命令と、
    前記第2領域に到着したら前記第3領域を通過してよいかの確認をする確認命令と、
    前記第3領域の通過の許可が得られたら前記第2領域を出発し前記第3領域を通過する通過命令と
    を含む命令群を含む移動指令データを送信し、
    前記移動指令データにおける前記命令群を実行する前記第1移動体から前記第3領域を通過してよいかの確認を求める要求を受信したら、前記通過順序情報と、前記第2移動体が前記第3領域を通過済みかの情報とに基づき、前記第1移動体が前記第3領域を通過してよいかを決定し、決定の結果を示す情報を前記第1移動体に送信する、
    コンピュータが実行する、方法。
  14. 複数の第1領域間の複数の走行路の少なくとも1つの途中に第2領域を設定する領域設定ステップと、
    第1移動体の走行計画と第2移動体の走行計画とに基づき、前記第1移動体の走行ルートである第1走行ルートと前記第2移動体の走行ルートである第2走行ルートとに共通に含まれる前記第1領域である第3領域を前記第1移動体と前記第2移動体とが通過する順序を定めた通過順序情報を生成する運行計画決定ステップと、
    前記第1移動体に、
    前記第1走行ルートにおいて前記第3領域に結合されかつ前記第3領域を通過する前に走行する走行路、に設定された第2領域へ移動する移動命令と、
    前記第2領域に到着したら前記第3領域を通過してよいかの確認をする確認命令と、
    前記第3領域の通過の許可が得られたら前記第2領域を出発し前記第3領域を通過する通過命令と
    を含む命令群を含む移動指令データを送信するステップと、
    前記移動指令データにおける前記命令群を実行する前記第1移動体から前記第3領域を通過してよいかの確認を求める要求を受信したら、前記通過順序情報と、前記第2移動体が前記第3領域を通過済みかの情報とに基づき、前記第1移動体が前記第3領域を通過してよいかを決定し、決定の結果を示す情報を前記第1移動体に送信するステップと、
    をコンピュータに実行させるためのコンピュータプログラム。
JP2019196647A 2019-10-29 2019-10-29 走行制御装置、方法及びコンピュータプログラム Active JP7204631B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019196647A JP7204631B2 (ja) 2019-10-29 2019-10-29 走行制御装置、方法及びコンピュータプログラム
CN202010894419.1A CN112817304A (zh) 2019-10-29 2020-08-31 行驶控制装置、方法以及计算机程序
US17/007,039 US11468770B2 (en) 2019-10-29 2020-08-31 Travel control apparatus, travel control method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019196647A JP7204631B2 (ja) 2019-10-29 2019-10-29 走行制御装置、方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2021071795A JP2021071795A (ja) 2021-05-06
JP7204631B2 true JP7204631B2 (ja) 2023-01-16

Family

ID=75586859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019196647A Active JP7204631B2 (ja) 2019-10-29 2019-10-29 走行制御装置、方法及びコンピュータプログラム

Country Status (3)

Country Link
US (1) US11468770B2 (ja)
JP (1) JP7204631B2 (ja)
CN (1) CN112817304A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7417500B2 (ja) 2020-09-14 2024-01-18 株式会社東芝 情報処理装置、情報処理方法、コンピュータプログラム及び走行管理システム
KR102462491B1 (ko) * 2021-05-06 2022-11-03 네이버랩스 주식회사 지정 구역을 주행하는 다수의 로봇들을 제어하는 방법 및 시스템
WO2023063149A1 (ja) * 2021-10-12 2023-04-20 ソニーグループ株式会社 情報処理装置、情報処理方法およびプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017117328A (ja) 2015-12-25 2017-06-29 日立建機株式会社 鉱山機械運行管理システム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0719177B2 (ja) * 1988-09-13 1995-03-06 株式会社椿本チエイン 移動体の運行管理方法
JP2953282B2 (ja) * 1993-12-10 1999-09-27 神鋼電機株式会社 運行管理制御装置およびその方法
JP2692725B2 (ja) 1993-09-21 1997-12-17 工業技術院長 自律型移動ロボット群システムの制御方法
US7873469B2 (en) * 2006-06-19 2011-01-18 Kiva Systems, Inc. System and method for managing mobile drive units
CN101777264A (zh) * 2010-01-28 2010-07-14 鲁启寰 交通信号灯智能显示的控制方法
CA2816752C (en) * 2012-05-28 2022-07-05 Well.Ca Inc. Order processing systems using picking robots
US9836974B2 (en) * 2012-09-20 2017-12-05 Toyota Jidosha Kabushiki Kaisha On-demand vehicle operation management device, on-demand vehicle operation management method, and on-demand vehicle operation management system
WO2016113891A1 (ja) * 2015-01-16 2016-07-21 三菱電機株式会社 走行計画作成装置および走行計画作成方法
US9829333B1 (en) * 2016-09-13 2017-11-28 Amazon Technologies, Inc. Robotic traffic density based guidance
US10642282B2 (en) * 2017-04-12 2020-05-05 X Development Llc Roadmap annotation for deadlock-free multi-agent navigation
US20190286145A1 (en) * 2018-03-14 2019-09-19 Omron Adept Technologies, Inc. Method and Apparatus for Dynamic Obstacle Avoidance by Mobile Robots
US20210018912A1 (en) * 2018-04-10 2021-01-21 Fetch Robotics, Inc. Robot Management System
US11237008B2 (en) * 2018-12-22 2022-02-01 International Institute Of Information Technology, Hyderabad System and method for controlling vehicular pollution concentration and providing maximum traffic flow throughput
JP7228420B2 (ja) 2019-03-13 2023-02-24 株式会社東芝 情報処理装置、情報処理方法、情報処理システム及びコンピュータプログラム
US11293152B2 (en) * 2019-04-09 2022-04-05 Abb Schweiz Ag Robotic restocking and safety systems for automated retail store environments
US11602847B2 (en) * 2019-07-30 2023-03-14 Tata Consultancy Services Limited Method and system for robotic task planning

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017117328A (ja) 2015-12-25 2017-06-29 日立建機株式会社 鉱山機械運行管理システム

Also Published As

Publication number Publication date
US20210125493A1 (en) 2021-04-29
CN112817304A (zh) 2021-05-18
JP2021071795A (ja) 2021-05-06
US11468770B2 (en) 2022-10-11

Similar Documents

Publication Publication Date Title
JP7228420B2 (ja) 情報処理装置、情報処理方法、情報処理システム及びコンピュータプログラム
KR102415096B1 (ko) 교착 없는 다중 동작자 내비게이션을 위한 로드맵 주석부기
JP7204631B2 (ja) 走行制御装置、方法及びコンピュータプログラム
US11860621B2 (en) Travel control device, travel control method, travel control system and computer program
KR102160968B1 (ko) 자율주행 로봇 장치 및 자율 주행 방법
JP7328923B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP7237799B2 (ja) 走行制御装置及び運行システム
JP2024045465A (ja) 走行制御装置、走行制御方法及びコンピュータプログラム
JP7481903B2 (ja) 情報処理装置、情報処理方法、情報処理システム及びコンピュータプログラム
Sharma Control classification of automated guided vehicle systems
CN116166029A (zh) 一种兼容局部避障功能的多agv导航方法及***
JP2022047944A (ja) 情報処理装置、情報処理方法、コンピュータプログラム及び走行管理システム
WO2023136047A1 (ja) 情報処理装置、情報処理方法およびプログラム
TWI820594B (zh) Agv運行管控方法、電子設備及計算機可讀存儲介質
US20240152148A1 (en) System and method for optimized traffic flow through intersections with conditional convoying based on path network analysis
WO2023228669A1 (ja) エージェント管理システム及び方法
WO2023157510A1 (ja) 経路計画装置、その適用設備、並びに経路計画方法
JP2023162890A (ja) 移動体制御システム及び設計支援システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221228

R151 Written notification of patent or utility model registration

Ref document number: 7204631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151