以下、図面を参照して本発明の実施形態について説明する。以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。なお、以下の実施の形態において、その構成要素(処理ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須ではない。
また、以下の実施の形態における各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路その他のハードウェアとして実現しても良い。また、後述する各構成、機能、処理部等は、コンピュータ上で実行されるプログラムとして実現しても良い。すなわち、ソフトウェアとして実現しても良い。各構成、機能、処理部等を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記憶装置、ICカード、SDカード、DVD等の記憶媒体に格納することができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
<第一実施形態>
第一実施形態は、鉱山においてショベルやホイールローダ等の積込機が積み込んだ土砂や鉱石を搬送し、運転手が搭乗することなく自律走行する自律走行運搬車両と、自律走行運搬車両の交通管制を行う管制サーバと、を無線通信回線で接続した自律走行システムにおいて、システムの構成要素、例えば自律走行運搬車両の稼働台数や地図データ、を変更した際のシミュレーション機能を管制サーバに備える点に特徴がある。
まず、図1に基づいて、本発明の第一実施形態に係る管制サーバを含む自律走行システムの概略構成について説明する。図1は、自律走行システムの概略構成を示す図である。
図1に示す自律走行システム1は、鉱山などの採石場で、掘削及び積込作業を行うショベル10−1、10−2から積み込まれた土砂や鉱石等の積荷を搬送するための鉱山用の自律走行運搬車両(実車両)20−1、20−2と、採石場の近傍若しくは遠隔の管制センタ30に設置された管制サーバ31とを、無線通信回線40を介して互いに通信接続して構成される。自律走行運搬車両としてダンプトラックを用いるので、以下では自律走行運搬車両をダンプと称する。また、後述する仮想的な運搬車両と区別するために、実在するダンプは実車両、実在しない仮想的な運搬車両を仮想車両という。管制サーバ31は、ダンプの走行制御を行う管制制御装置であり、仮想車両を用いた走行シミュレーション機能を有する。
各ダンプ20−1、20−2は、鉱山内で予め設定された搬送路60に沿ってショベル10−1又は10−2、及び図示しない放土場の間を往復し、積荷を搬送する。
鉱山内には、複数の無線基地局41−1、41−2、41−3が設置される。そしてこれらの無線基地局41−1、41−2、41−3を経由して、無線通信の電波が送受信される。
ショベル10−1、10−2及び各ダンプ20−1、20−2は、全地球航法衛星システム(GNSS:Global Navigation Satellite System)の少なくとも3つの航法衛星50−1、50−2、50−3から測位電波を受信して自車両の位置を取得するための位置算出装置(図1では図示を省略する)を備える。GNSSとして、例えばGPS(Global Positioning System)、GLONASS、GALILEOを用いてもよい。ダンプ20−1、20−2の構成は同じであるので、以下ではダンプ20−1、20−2を区別することなく総称する場合はダンプ20と記載する。またショベル10−1、10−2の構成も同じであるので、以下ではショベル10−1、10−2を区別することなく総称する場合はショベル10と記載する。
ダンプ20は、本体を形成するフレーム21と、前輪22及び後輪23と、フレーム21の後方部分に設けられたヒンジピン(図示せず)を回動中心として上下方向に回動可能な荷台24と、この荷台24を上下方向に回動させる左右一対のホイストシリンダ(図示せず)と、を含む。また、ダンプ20は、見通しの良い場所、例えば、ダンプ20の上面前方に、無線通信回線40に接続するためのアンテナ25が設置される。
更にダンプ20は、管制サーバ31からの指示に従って自律走行をするため走行制御装置200を搭載する。
管制サーバ31は、無線通信回線40に接続するためのアンテナ32に接続される。そして、管制サーバ31は、アンテナ32、無線基地局41−1、41−2、41−3を経由してダンプ20と通信する。
次に図2及び図3を参照して、図1の管制サーバ31及びダンプ20のハードウェア構成について説明する。図2は、管制サーバ31及びダンプ20のハードウェア構成図であって、(a)は管制サーバ、(b)はダンプを示す。図3は、ダンプ20の外観を示す図である。
図2の(a)に示すように、管制サーバ31は、CPU311、RAM(Random
Access Memory)312、ROM(Read Only Memory)313、HDD(Hard Disk Drive)314、I/F315、バス318を含む。そして、CPU311、RAM312、ROM313、HDD314、及びI/F315がバス318を介して接続されて構成される。
更に、管制サーバ31は、表示装置316、及び入力装置317を備え、これらがI/F315に接続される。
CPU311は演算部であり、管制サーバ31全体の動作を制御する。
RAM312は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU311が情報を処理する際の作業領域として用いられる。
ROM313は、読み出し専用の不揮発性記憶媒体であり、本実施形態の特徴をなすシミュレーション機能を含む自律走行制御プログラムが格納されている。
HDD314は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納されている。
表示装置316は、ユーザが鉱山内のダンプの走行状況を確認したり、シミュレーション機能を実行する際に仮想車両の追加位置を指定したりするためのユーザインターフェースであり、例えばLCD(Liquid Crystal Display)により構成される。
入力装置317は、ユーザが管制サーバ31に情報を入力するためのユーザインターフェースであり、例えばマウス、キーボードやLCDに積層されたタッチパネル(図示を省略)を用いて構成される。
管制サーバ31のI/F315には、無線通信回線40に接続するためのサーバ側通信装置390が接続される。
一方、ダンプ20は、図2の(b)に示すように自律走行のための制御処理を行う走行制御装置200と、走行制御装置200からの制御指示に従ってダンプ20を走行駆動するための走行駆動装置210と、ダンプ20の自車両の位置を算出するための位置算出装置220と、ダンプ20の周辺環境を認識するためのミリ波センサ等の車載センサ230と、無線通信回線40に接続するためのダンプ側通信装置240と、を備える。
走行駆動装置210は、ダンプ20に対して制動をかける制動装置211、ダンプ20の操舵角を変更するための操舵モータ212、及びダンプ20を走行させるための走行モータ213を含む。
位置算出装置220は自己位置を特定する手段であり、本実施形態では、航法衛星50−1、50−2、50−3からの測位電波を受信して自車両の位置を算出するGPS装置を用いるので、ダンプ20にはGPSアンテナ221(図3参照)を備える。位置算出装置220はGPSである必要はなく、例えば、慣性計測装置(IMU:Inertial
Measurement Unit)や、地上に設置された基地局からの電波を用いて位置を特定するシステムによるものであってもよい。その場合、ダンプ20は、GPSアンテナ221に代わり、そのシステム用のアンテナやジャイロセンサや車輪の回転数を検知するセンサを備える。
車載センサ230は、ダンプ20の速度や周辺の環境を認識・推定するためのものであり、例えば、路肩検出手段や前方障害物の検出を行う手段が相当する。路肩検出手段として、本実施形態ではレーザーレーダセンサ231L、231R(図3参照)を備えるが、これに限らずカメラを用いた画像処理により路肩を検出するものであってもよい。その場合、レーザーレーダセンサ231L、231Rは車体側方を見下ろすように設置されたカメラに代わる。また、前方障害物の検出手段として、本実施形態ではミリ波レーダセンサ232を備えており、この出力を用いてダンプ20の走行方向前方の障害物を検出するが、ミリ波レーダセンサ232に代わり前方に向けられた複数のカメラを備えてもよい。この場合、複数のカメラの取り付け位置は図3に示す位置よりもさらに上方にあって前方を見下ろすように設置したものであってもよい。
車載センサ230の検知結果は走行制御装置200に出力され、通常時は走行路から離脱しないように走行位置の監視や加減速に用いられ、緊急時には緊急回避行動に必要な制動動作に用いられる。
走行制御装置200は、CPU201、RAM202、ROM203、HDD204、I/F205、及びバス208を含む。そして、CPU201、RAM202、ROM203、HDD204、及びI/F205がバス208を介して接続されて構成される。更に、走行駆動装置210、位置算出装置220、車載センサ230、及びダンプ側通信装置240が、I/F205に接続される。
このようなハードウェア構成において、ROM203、313やHDD204、314若しくは図示しない光学ディスク等の記録媒体に格納された自律走行制御プログラムがRAM202、312に読み出され、CPU201、311の制御に従って動作することにより、自律走行制御プログラム(ソフトウェア)とハードウェアとが協働して、管制サーバ31及び走行制御装置200の機能を実現する。なお、本実施形態では、管制サーバ31及び走行制御装置200の構成をソフトウェアとハードウェアとの組み合わせにより説明したが、特にダンプ20は、ダンプ側で実行される自律走行制御プログラムの機能を実現する集積回路を用いて構成してもよい。
次に図4及び図5を参照して、管制サーバ31及びダンプ20の機能構成について説明する。図4は、管制サーバの主な機能を示す機能ブロック図である。図5は、ダンプ20の主な機能を示す機能ブロック図である。
図4に示すように、管制サーバ31は、実際のダンプ20(以後、ダンプ20を「実車両20」と記載する)との実際の無線通信及び仮想車両との仮想通信を行うための制御を行うサーバ側通信制御部310、実車両20及び仮想車両の目的地とそこへ至る走行路を決定し、また相互に干渉しないように交通管制を行う管制制御部320、実車両20と独立して管制制御部320の指示に基づき実車両20と同じ鉱山内を走行する仮想車両の走行状態をシミュレーションする仮想車両シミュレーション部330、表示装置316に対する表示制御処理を行う表示制御部340、実車両20が走行する搬送路の地図データを格納するマスタ地図データデータベース(以下データベースを「DB」と記載する)314a、及び実車両20及び仮想車両の其々に対して設定された走行許可区間を格納する区間情報DB314bを備える。上記仮想通信とは、サーバ側通信制御部310との間でデータの出入力を意味する。また、搬送路とは、積込場や放土場、また不図示の駐機場など、実車両20の出発点、終点を結ぶ道路であり、この道路上に形成された実車両20の進行方向に従った車線が走行路に相当する。
サーバ側通信制御部310は、サーバ側通信装置390に接続されて実車両20との間で実際の無線通信を行うための制御を行うと共に、仮想車両シミュレーション部330(より具体的は後述する仮想車両通信部331)との間で仮想車両の走行シミュレーションに必要なデータの出入力処理(仮想通信)を行う。
管制制御部320は、配車管理部321、走行許可区間設定部322、及び地図データ生成部323を含む。
配車管理部321は、実車両20及び仮想車両の目的地を設定し、マスタ地図データDB314aに格納された地図データを参照して現在位置から目的地に至る走行路を決定する。
配車管理部321の処理例として、例えば実車両20又は仮想車両が駐機場にいる場合には、積込位置を含む積込場の入口を目的として設定する。そして配車管理部321は駐機場から積込上の入口に至るまでの走行路を設定する。この走行路の設定に際し、配車管理部321は、積込位置の移動に伴って動的に走行路を生成してもよい。更に、配車管理部321は、実車両20又は仮想車両が積込位置にいる場合には、積載物の内容によって放土場62、63のいずれかを目的地として設定し、それに至るまでの走行路を生成する。
走行許可区間設定部322は、実車両20又は仮想車両に対し、マスタ地図データDB314aに格納された地図データを参照し、上記で決定された走行路上の部分区間を実車両20又は仮想車両の走行を許可する走行許可区間として設定し、当該走行許可区間の位置を示す区間情報を生成する。走行許可区間設定部322は、区間情報DB314bに格納された区間情報に対し、新たに生成した区間情報を上書きして更新する。区間情報には、走行許可区間の最前端のノードである前方境界点のノードID、及び最後端のノードである後方境界点のノードIDが含まれる。走行許可区間設定部322は、実車両20又は仮想車両から新たな走行許可区間の設定を要求する情報(以下「区間要求メッセージ」という)を受信すると、これに応じて走行許可区間の設定処理を行う。走行許可区間設定部322は、新たな走行許可区間を設定した際にはその走行許可区間を示す情報(以下「区間応答メッセージ」という)を生成し、出来なかった場合には走行不許可を示す不許可応答メッセージを生成する。
地図データ生成部323は、実在の走行路を設置する位置を実走して収集した位置座標を基に走行路を規定する実地図データを生成、更新、及び格納する。本実施形態では、実在する走行路を規定する地図情報を実地図データといい、実在しない走行路(仮想の走行路)を規定する地図情報を仮想地図データと称する。地図データ生成部323は、入力装置317から実在する走行路に対して実在しない仮想の走行路を追加する設定操作を受け付けると、実在の走行路及び仮想の走行路の双方を規定する仮想地図データの生成を行う。地図データ生成部323は、実地図データ及び仮想地図データを、マスタ地図データDB314a及び後述する仮想地図データDB335に格納する処理を行う。
仮想車両シミュレーション部330は、入力装置317から走行路を仮想的に走行する仮想車両の設定操作を受け付けると、仮想車両のシミュレーションした走行状態を規定する走行パラメータ及び地図データ(実地図データ及び仮想地図データの双方を含む)を用いて、仮想車両が走行路を仮想的に走行した際のシミュレーションを行い、走行路上の仮想車両の仮想位置や速度、加速度等の走行状態を算出する。このとき、仮想車両シミュレーション部330は、仮想車両に対して設定された走行許可区間に基づいてシミュレーションを行う。例えば、走行許可区間の最前端に近づきつつあるにも関わらず、走行許可区間が設定されない場合には減速、停止の制動指令と、それに従った減速、停止動作をシミュレートする。仮想車両シミュレーション部330は、サーバ側通信制御部310と仮想通信を行うための機能を備えた仮想車両通信部331、仮想通信を介した管制制御部320からの指示(走行許可区間)や仮想車両の仮想位置を基に仮想車両の走行を制御する仮想走行制御部332、仮想走行制御部332の指示に基づき、仮想車両のシミュレーションした走行状態を規定する走行パラメータを用いて仮想車両の走行シミュレーションを行う走行シミュレーション部333、仮想車両のシミュレーションした走行状態を基に仮想位置や速度をシミュレーションするセンサシミュレーション部334、及び仮想車両が走行する走行路の情報を格納する仮想地図データDB335を含む。
仮想車両通信部331は、サーバ側通信制御部310に対して仮想車両の仮想位置や区間要求メッセージを出力するとともに、サーバ側通信制御部310から区間応答メッセージ情報又は不許可応答メッセージを取得する。
仮想走行制御部332は、センサシミュレーション部334から自車両の現在位置(仮想位置)を取得し、仮想地図データDB335の地図データを参照して、走行許可区間に従って仮想車両を走行させるための制御を走行シミュレーション部333に対して行う。
走行シミュレーション部333は、あらかじめ設定した仮想車両の車体情報である、車両の重量、加速度、減速度、操舵速度等の性能(走行パラメータ)と、仮想走行制御部332からの制御指令に基づき、仮想車両の走行状態(加速、減速、停車)や位置を計算する。
センサシミュレーション部334は、走行シミュレーション部333の計算結果に基づく地図データ上の仮想車両の位置に対して、実際のセンシング誤差を模擬して確率的に誤差を加える補正を行うものであってもよく、あるいはGPS衛星の軌道を計算し、仮想車両の位置においてその時刻に捕捉できるGPS衛星の数や角度を取得し、GPS衛星捕捉状況に応じた誤差を加える補正を行うものであってもよい。これにより、例えば、崖や山影などの影響により、走行路上の各点において測位電波の捕捉状況にばらつきが生じることに鑑みて、運搬車両にGPS及びIMUを搭載し、相互の出力値を補間して運搬車両の位置算出精度の向上を図る場合であっても、仮想車両の位置を実車両で算出される位置により近づけて、シミュレーション結果の精度を向上させることができる。
またこれに加え、センサシミュレーション部334は、仮想車両の位置と周囲の環境データに基づき、レーザーレーダセンサやミリ波レーダ、ステレオカメラ等のセンサによるセンシング状況をシミュレーションして、仮想センシングデータを生成し、仮想走行制御部332に計算結果を渡してもよい。
仮想地図データDB335は、仮想地図データを格納する。仮想地図データの例として、例えば、鉱山の掘削を進めていく計画上で生成予定にある走行路の地図データがある。また地図データは、センサのシミュレーションで使用するための座標位置に応じた周囲の地形などの環境データを含んでもよい。なお、仮想地図データDB335が仮想地図データを格納し、実在する地図データを用いて実車両20を稼働しながら、仮想地図データを仮想車両の走行シミュレーションを行う場合には、マスタ地図データDB314aも仮想地図データを格納する。
表示制御部340は、実地図データ、仮想地図データ、ダンプ20及び仮想車両の其々の位置、及び各車両に対して設定された走行許可区間の情報を取得し、走行路を示す地図画像上にダンプ20及び仮想車両を示す画像、及び設定された走行許可区間を示す画像を重畳表示する。このとき実際の走行路及び仮想走行路、また、ダンプ20及び仮想車両は、弁別可能に表示態様を変えてもよい。図4では説明の便宜上、表示制御部340は、サーバ側通信制御部310及びI/F315に接続して図示したが、表示制御部340は、管制制御部320や仮想車両シミュレーション部330、またこれらに含まれる構成要素から表示対象となるデータを取得するように構成してもよい。
管制サーバ31が備えるサーバ側通信制御部310、管制制御部320(配車管理部321、走行許可区間設定部322)、仮想車両シミュレーション部330(仮想地図データDB335を除く)は、これらの機能を実現するソフトウェアが図2に示すCPU311(ハードウェア)により実行されることにより構成される。また、マスタ地図データDB314a、区間情報DB314b、及び仮想地図データDB335は、情報を固定的に格納可能な記憶装置、例えばHDDにより構成される。
また仮想車両シミュレーション部330は、いくつかのソフトウェアのセットで構成されてもよく、稼働する仮想車両の台数に応じて前述のセットが複数あってもよい。または、一つのソフトウェア上で複数の仮想車両が稼働するものでもよい。あるいは、仮想車両シミュレーション部330は、管制サーバ31と独立して管制センタ30(図1参照)に置かれるコンピュータにより構成し、管制サーバ31とイーサネット(登録商標)ケーブル、あるいは無線通信によって通信接続してもよい。マスタ地図データDB314a、仮想地図データDB335に格納される地図データは、HDD314やマイクロプロセッサ上に格納されたデータとして構成される。
実車両20に搭載される走行制御装置200は、図5に示すようにダンプ側通信制御部250、要求情報処理部260、自律走行制御部270、及びダンプ地図データDB204aを備える。
ダンプ側通信制御部250は、管制サーバ31との間で行う無線通信の制御を行う。ダンプ側通信制御部250は区間要求メッセージの送信及び区間応答メッセージ又は不許可応答メッセージの受信を行う。
要求情報処理部260は、ダンプ地図データDB204aに格納された地図データ及び位置算出装置220(図2参照)が算出した現在位置を基に、実車両20が要求メッセージを送信する地点に到達したかを判断し、要求地点に到達すると要求メッセージを生成してダンプ側通信制御部250を介して管制サーバ31に対して要求メッセージを送信する。
自律走行制御部270は、位置算出装置220から自車両の現在位置を取得し、ダンプ地図データDB204aの地図データを参照して、区間応答メッセージに含まれる走行許可区間に従って自車両を走行させるための制御を走行駆動装置210(図2参照)に対して行う。また、自律走行制御部270は、車載センサ230の検知結果に基づいて前方障害物の有無を判定し、障害物との干渉、衝突の回避動作の有無も判定し、必要があれば制動動作のための制御を行う。更に自律走行制御部270は、管制サーバ31からの指示に従って、制動装置211に対する駆動制御を行い、減速動作、通常停止動作、又は緊急停止動作を行う。
ダンプ側通信制御部250、要求情報処理部260、及び自律走行制御部270は、これらの機能を実現するソフトウェアが図2の(b)に示すCPU201(ハードウェア)により実行されることにより構成される。ダンプ地図データ204aに格納される地図データは、HDD204やマイクロプロセッサ上に格納されたデータとして構成される。
次に、図6乃至図8を参照して、実車両及び仮想車両が実際の走行及び仮想走行をする際の管制サーバとの間の処理について説明する。本実施形態では、実車両を実際に走行させながら仮想車両の走行シミュレーションも合わせて行うので、以下の説明では、2台の実車両20−1、20−2と1台の仮想車両70とを走行させた状態を例に挙げて説明する。図6は、実車両が実際に走行する露天掘り鉱山現場の構成例を示す図である。図7は、自律走行開始時における実車両及び仮想車両と管制サーバとの間の通信動作を示す図であって、(a)は実車両から目的地の要求メッセージを送信する状態を示し、(b)は管制サーバからの応答状態を示し、(c)は走行許可区間の要求及び応答状態を示す。図8は、走行許可区間の設定の詳細を示す図であって、(a)は実車両から目的地の要求メッセージを送信する状態を示し、(b)は管制サーバからの応答メッセージを示し、(c)は走行許可区間の要求及び応答状態を示す。
図6に示す符号61は、ショベル10などの鉱山機械による掘削現場及び鉱山機械がダンプ20に積み込む積込場61を示す。積込場61のうち、ショベル10の周辺にダンプ20が停車し、積込作業が行われる位置を積込位置(図6のLPに相当する)と称する。ショベル10が掘った表土や鉱石は、積込場61で実車両20に積み込まれる。符号62は、表土を展開する放土場であり、積込場61から運び込まれた表土などは、この場所で放土され、層状あるいは放射状に展開される。符号63は鉱石を破砕処理するクラッシャなどが設置された放土場であり、破砕された鉱石はベルトコンベアなどにより貨車による積み出し場あるいは処理設備などに搬送される。
また、図6のQPは、積込場61への入口であり、かつショベル10からダンプに対して積込位置への進入許可(CALL)がされるまで、ダンプ20が停車して待つ待機位置を示す。図6のEXITは、積込場61からダンプ20が退出する出口である。
実車両20−1、20−2や仮想車両70は、積込場61で表土や鉱石を積込み、搬送路60を走行してそれらを放土場62や63に搬送する。搬送路60には、走行路64が設定されており、実車両20および仮想車両70は、走行路64に沿って走行する。走行路64は、地図上で設定された座標値として与えられる。実車両20−1、20−2は、GPSや他の位置算出装置により特定した自己位置と走行路64の座標値を比較しながら加減速やステアリングを制御することにより、走行路64に沿って自律走行する。
また、仮想車両70も同様に、仮想走行制御部332がセンサシミュレーション部334により特定した自己位置と走行路64の座標値を比較して走行制御を行い、走行シミュレーション部333が仮想的な車両の走行を計算する。
また、走行路64上には走行路の区間の境界を示すノード65と、隣接するノード65を接続するリンク66が設けられている。実在する走行路64とノード65、リンク66の情報は、マスタ地図データDB314a、仮想地図データDB335、及びダンプ地図データDB204aに同一の地図データとして格納されている。ただし、仮想車両シミュレーション部330の仮想地図データDB335が仮想の走行路を含む場合は、仮想地図データは、マスタ地図データDB314a及びダンプ地図データDB204aに格納される実地図データよりも多い走行路の情報を含んでもよい。
管制サーバ31は、管制制御部320によって、隣接する2つのノード65及び1つのリンク66を含む走行区間毎に走行許可の付与・解除を行い、その情報を区間情報として実車両20と仮想車両70に通知する。これにより、実車両および仮想車両同士の衝突を避けるように走行を制御する。また走行路64は区間ごとに制限速度が設けられており、実車両20および仮想車両70はそれぞれダンプ地図データDB204a及び仮想地図データDB335の制限速度情報を参照しながら、適切な速度で走行又は仮想走行する。
実車両20(以下、仮想車両70についても同様)は、積込場61で表土や鉱石を積み込み完了した状態、あるいは放土場62や63において放土し終わった状態において、実車両20は図7の(a)に示すように管制サーバ31に対して目的地を要求するメッセージ(目的地要求メッセージ)を送信する。これは、実車両20の場合、実車両20の走行制御装置200に含まれる要求情報処理部260が現在の自己位置や車両の状況(停車中)を判断してダンプ側通信制御部250を介して発信するものである。仮想車両70の場合も同様に、仮想走行制御部332が自車状況を判断して仮想車両通信部331を介して発信する。
この目的地要求メッセージは、管制サーバ31上のサーバ側通信制御部310により受け取られ、管制制御部320に伝えられる。管制制御部320内の配車管理部321は、区間情報DB314bの区間情報を参照し、他の実車両20及び仮想車両70の状況などを考慮して、目的地を要求してきたダンプトラックの目的地とそこへ至る経路を決定し、目的地80とそこへ至る経路81を示す目的地応答メッセージをダンプトラックへ伝達するようにサーバ側通信制御部310に指示する。サーバ側通信制御部310は、無線通信回線40を介して実車両20に対し目的地応答メッセージを発信する(図7の(b)参照)。
すると、実車両20上の要求情報処理部260が、走行許可区間の設定要求をするメッセージ(区間要求メッセージ)を管制サーバ31に送信する。サーバ側通信制御部310は、区間要求メッセージを管制制御部320に伝える。管制制御部320の走行許可区間設定部322は、以下に説明する処理に基づいて走行許可区間82を設定し、設定した走行許可区間を示すメッセージ(区間応答メッセージ)を実車両20に送信する(図7の(c))。区間応答メッセージは、走行許可区間の最前端のノードを固有に識別する情報(ノードID)、最後端のノードID、及び走行許可区間に含まれるリンクを固有に識別する情報(リンクID)が含まれる。実車両20は、走行許可区間を得て初めて走行を開始することができる。
走行路64のどの区間が、どの車両(実車両及び仮想車両の双方を含む)に対して走行許可を与えられているかは、走行許可区間設定部322が走行許可区間の付与及び削除をする度に区間情報DB314bに格納された区間情報を随時更新して管理する。そして走行許可区間設定部322は車両からの走行許可要求があると、区間情報及びマスタ地図データDB314aに格納された地図データを参照して走行許可区間の設定を行う。
走行許可区間の設定に際し、走行許可区間設定部322は、既に他の車両に対して許可されている区間については、車両からの要求があっても走行許可しないように制御を行うことで、同一の区間内に車両が複数台進入しないようにする。
一方、車両側では、管制サーバ31から受信した走行許可区間を車両上のマスタ地図データDB314a(仮想車両70の場合は、仮想地図データDB335)に記録し、これを参照しながら自律走行又は仮想走行することで、どこまで走行することができるかを判断する。
走行許可区間の設定状況は、区間応答メッセージに含まれる最前端ノードID、最後端ノードID、及びそれらの間に位置するリンクIDを走行許可区間に含まれるリンク66を固有に示す固有情報(リンクID)を用いて管理する。管制サーバ31は区間情報DB314bの区間情報に上記最前端ノードID、最後端ノードID、及びそれらの間に位置するリンクIDを記録するが、管制制御部320の走行許可区間設定部322が一次的に記録することで管理する。また、各車両側については実車両20の場合は自律走行制御部270、仮想車両70の場合は仮想走行制御部332が一次的に最前端ノードID、最後端ノードID、及びそれらの間に位置するリンクIDを記録して、マスタ地図データDB314aや仮想地図データDB335には記録しないように構成してもよい。
新しい走行許可区間が設定されると同時に、既に通過し終えた走行許可区間は解放される。
次に、走行許可区間の設定の詳細について図8を参照して説明する。図8の(a)において、実車両20−1、20−2は走行中の車両であり、符号81−1、81−2はそれぞれの車両に許可されている走行許可区間である。実車両20−1、20−2は、いずれも矢印Aに示す方向に走行しているものとする。符号83は、実車両20−1の現在位置から走行許可区間81−1の最前端(終端)までの走行路に沿った距離を示す走行許可残存距離である。符号84は、最前端(終端)から実車両20−1が区間要求メッセージの送信を開始する点までの距離を示す走行許可要求開始距離である。
走行許可要求開始距離84は、実車両が停止可能な距離よりも長い距離であり、例えば停止可能距離に所定のオフセット距離を加えたものである。実車両の停止可能な距離Lは、例えば、車両の積荷を含めた質量をm、車両の現在の速度をv、車両の制動力をf、安全率に対応して規定されるオフセット係数cとすると、下式(1)により求められる。
オフセット係数cは1以上の値であって、例えば無線通信にかかる時間や無線通信の障害の発生度合いなどを考慮して設定する。車両の速度は、車両の現在速度を車輪の回転数などから測定したものであってもよく、また、車両の現在の走行位置に対して地図データで規定されている制限速度(最大許容速度)を用いてもよい。
図8の(a)に示すように、実車両20−1の走行許可残存距離83が走行許可要求開始距離84以下となったとき、実車両20−1は、管制サーバ31に対して区間要求メッセージを送信する。この区間要求メッセージには、実車両20−1の現在位置情報も含まれる。
管制サーバ31は、実車両20−1から区間要求メッセージを受け取ると、送られてきた現在位置情報を用いて実車両20−1が存在する走行区間を特定する。そして、実車両20−1の進行方向に沿って、実車両20−1の存在する区間の終端から予め定められた走行許可区間として与えられる最短距離(走行許可付与長さ)以上となる区間に対して走行許可を与える。但し、他の車両(実車両又は仮想車両)に許可が与えられている区間がある場合には、その手前までについて走行許可を与える。
図8の(b)に示す例では、実車両20−1が存在する区間は85であり、その終端から走行許可付与長さ90以上の区間は、86、87、88、89となる。但し、区間88、89は既に実車両20−2に走行許可が与えられているので、86、87の走行許可が与えられる。なお、区間86は既に走行許可が与えられているので、この場合、結果として区間87が新たな走行許可区間として与えられることになる。
走行許可を与えられた区間は、車両がその区間を通過した後に、車両の位置から区間の終端までの距離が走行許可解除距離以上となったときに解除される。図8の(c)の例では、実車両20−1に走行許可が与えられていた区間88は、実車両20−2と区間終端までの距離91が走行許可解除距離92以上となった段階で走行許可が解除され、後続の実車両20−1への走行許可割り当てが可能となる。
次に、本実施形態に係る自律走行システムの動作手順の概略を、図9を参照して説明する。図9は、本実施形態に係る管制サーバを含む自律走行システムの動作手順の概略を示すフローチャートである。
まず、地図データ生成部323による地図データ生成処理を行う(S901)。地図データ生成処理の詳細については後述する。
次いで実車両20を必要な台数分稼動させる(S902)。本ステップでは、管制サーバ31により実車両だけの管制制御処理(詳細は後述する)が継続的に行われる。
仮想車両を混走させてシミュレーションをしない場合(S903/No)、ステップS902へ戻り、管制サーバ31のシミュレーション機能を用いることなく実車両のみを対象とした管制制御処理を続行する。
仮想車両を混走させてシミュレーションをする場合(S903/Yes)、ダンプ20を実走させた状態で、ユーザは管制サーバ31のGUI(グラフィカルインターフェース:表示装置316及び入力装置317に相当する)を用いて仮想車両を実車両の運行状況に追加する(S904)。
仮想車両シミュレーション部330により走行シミュレーションを行い、その結果を管制制御部320に出力する。管制制御部320は、実際に走行中の車両(実車両)と仮想車両シミュレーション部330から取得した仮想車両とを混走させて管制制御処理を行う(S905)。ここでの実車両及び仮想車両を混走させた管制制御処理の詳細については後述する。
ユーザは、仮想車両を削除したい場合(S906/Yes)、削除した仮想車両を指定して削除処理を行う(S907)。仮想車両を削除したい場合とは、例えば、仮想車両を用いたシミュレーション処理を終了して、実車両のみの管制制御処理に戻したい場合の他、複数の仮想車両を加えてシミュレーションを行ったが望ましい結果が得られない場合に、仮想車両の台数を減らして再度シミュレーションを行う場合などがある。その後、ステップS902へ戻る。
仮想車両を削除しない場合(S906/No)、ステップS905へ戻り、実車両と仮想車両を混走させて管制制御処理を続行する。
(地図データ生成処理)
図10及び図11を参照して、地図データ生成処理について説明する。図10は、地図データ生成処理の流れを示すフローチャートである。図11を参照して地図データの構成例について説明する。図11は、地図データの一例を示す図であって、(a)はリンク情報を示し、(b)はノード情報を示す。以下で説明する地図データ生成処理は、地図データ生成部323を用いて仮想地図を生成し、仮想車両を用いた走行シミュレーションを経てマスタ地図データDB314aに実地図データとして格納する処理である。
まず、地図データを生成するに当たり、GPSを搭載した車両で新たに追加する走行路を有人走行し、その結果に基づき、地図データを生成するためのセンサデータを収集する。GPSを搭載した車両は、例えば地図を生成するためのデータ収集専用の車両(航測車)でもよいし、自律走行ダンプトラックを地図計測モードに設定し、ダンプに搭載されたGPSを用いて位置情報を収集しながら有人走行を行ってもよい。またGPS以外にも、レーザレーダなどのセンサを用いて周囲の地形形状を計測するようにしてもよい。
次いで地図データ生成部323は、収集したセンサデータを用いて地図データを生成する(S1001)。この処理は例えば、時系列の座標点列からクラスタリングを行い、搬送路の形状に応じて適切な間隔でノードを生成し、走行路を生成するような処理であってもよい。地図データ生成部323は、生成した地図データを仮想地図データDB335に格納する。この地図データは仮想地図データに相当する。
地図データは、走行路上のノードとそのつながりを示すリンクで表されている。図11の(a)に示すように、地図データにはリンクを識別するためのリンクID1101とそのリンクが始まる座標にあるノードID1102、リンクの終わる座標にあるノードID1103、リンク始点に接続される別のリンクID1104(複数存在する場合もある。)、及びリンク終点に接続される別のリンクID1105(複数存在する場合もある。)を規定するテーブルがある。更に図11の(b)に示すように、ノードID1106に対応する座標値1107、その属性1108のテーブルが存在する。このノードIDのうち、いずれかを積載地点もしくは放土地点として属性1108に設定されている。
仮想地図データが生成されると、仮想走行制御部332は仮想地図データDB335に格納された仮想地図を参照し、走行シミュレーション部333に対して仮想地図に沿って仮想車両を走行させるシミュレーション処理を実行させ、ダンプトラックのモデルが、生成した走行路データに適切に追従できることを確認する(S1002)。これは、例えば生成した走行路のカーブがきつ過ぎて車両が旋回し切れなかったり、ノードの間隔が不適切なために管制制御がうまくいかなかったりといった不具合がないことを確認するために必要である。この確認の際のシステム構成としては、管制サーバ31に対し仮想車両1台でもよいし、複数台を同時に管制する形でもよい。また、鉱山内の地図更新に関係のないエリアについては、既存の搬送路や既存の実車が稼働し続けるような構成としてもよい。仮想車両のシミュレーションが正常に行えると、地図データ生成部323は、検証した仮想地図をマスタ地図データDB314aに実地図データとして格納する。
管制制御部320はマスタ地図データDB314aに格納された実地図データを参照しながら、自律走行ダンプトラックの実車両1台を走行させ、地図データと実際の搬送路が一致しているかを確認する(S1003)。地図データを生成する際、例えばGPSによるデータ取得では、その時の衛星配置や周囲の地形による遮蔽により、データに誤差が乗る場合がある。またソフトウェアで走行路を生成する処理によっても、誤差が乗ってしまう場合がある。もちろんそのようなことのないように、正しい走行路を生成するような地図データ生成ソフトウェアとすることが望ましいが、信頼性を完全に保証することは難しく、動作確認は必要である。実車両1台で走行する際には、万が一走行路のデータが搬送路上の正しい位置から外れていたとしても、例えばレーザレーダによる路肩検出機能によって、走行路の位置が正しくないことを検出することができる。
走行路の位置が正しくないことが判明した場合(S1004/No)、もう一度GPSデータ等の収集、地図データ生成を行う(S1001)。
実車両1台で走行路に対する実地図データの正しさを確認できたら(S1004/Yes)、稼働させたい必要な台数と同数の仮想車両で走行シミュレーションを行う(S1005)。この段階において、例えば合流地点や狭路など、実車両複数台での稼働では衝突の懸念がある地点が残っていないかを検証する。
複数台のシミュレーション結果が良好(実車両の走行が可能)であれば(S1006/Yes)、地図データ生成処理を終了する。複数台のシミュレーション結果が不良(実車両の走行に支障がある)であれば(S1006/No)、ステップS1001へ戻り、再度地図データの生成を行う。
以上、地図データ生成時の車両の動作確認を行うことで、鉱山の地形変化に対して安全に対応することができる。特に本実施形態では、実車両の管制制御を行う管制サーバにシミュレーション機能を実装することにより、外部にシミュレーション機能を備えたソフトウェアを用意することなく、仮想車両を利用して素早く動作確認を行うことができる。
(実車両だけの管制制御処理)
次に図12を参照して実車両だけの管制制御処理について説明する。図12は、実車両だけの管制制御処理の流れを示すフローチャートである。なお、図12では、実車両20の走行制御装置200及び管制サーバ31で実施される処理の流れを示すが、実車両に対する管制制御処理と仮想車両に対する管制制御処理とは同様の処理であるため、走行制御装置200及びその構成要素を仮想車両シミュレーション部330及びその構成要素に読みかえることで、仮想車両の管制制御も行える。以下、図12の各ステップ順に沿って説明する。
まず、実車両20の目的地が設定されていない場合(S1201/No)、走行制御装置200の要求情報処理部260は、無線通信回線40を介して管制サーバ31に目的地要求メッセージ(現在位置情報を含む)を送信する(S1202)。実車両20の目的地が設定されている場合(S1201/Yes)は、ステップS1204へ進む。
管制サーバ31の配車管理部321が実車両20の現在位置情報とマスタ地図データDB314aの実地図データを参照して目的地を設定し、その結果を示す目的地応答メッセージを実車両20に対して送信する(S1203)。
区間要求メッセージの送信が必要な場合、例えば実車両20は走行許可区間が設定されていない場合、または現在の走行許可区間から走行許可残存距離が走行許可要求開始距離以下である場合(図8の(a)参照、S1204/Yes)は、要求情報処理部260から区間要求メッセージを送信する(S1205)。
区間要求メッセージの送信が不必要な場合、即ち、既に走行許可区間が設定されており、走行許可残存距離が走行許可要求開始距離より長い場合(S1204/No)や、区間要求メッセージを受信した場合、自律走行をする(S1206)。
実車両20は区間要求メッセージを送信後、現在付与されている走行許可区間に従って走行を続けながら、管制サーバ31からの区間応答メッセージの受信を待機する。実車両20は走行中に定期的に現在位置を管制サーバ31に送信する。自律走行制御部270は、位置算出装置220からの現在位置とダンプ地図データDB204a、及び現在付与されている走行許可区間とを比較し、走行許可残存距離が停止可能距離以下である場合(S1207/Yes)、走行許可区間内で停止するように走行駆動装置210の制動装置211に対して制動指示を行い、実車両20が減速を開始する(S1208)。
管制サーバ31は区間要求メッセージを受信すると、走行許可区間設定部322が実車両20の現在位置及びマスタ地図データDB314aに格納された地図情報に基づいて、走行許可区間を設定し、その内容を示す区間応答メッセージを実車両20に対して送信する(S1209)。走行許可区間設定部322は、受信した車両の現在位置と区間情報DB314bの区間情報を用いて、車両の進行方向に対して車両の存在する区間の終端から走行許可付与長さ以上となる区間について、他の車両に許可が与えられていない限り、あるいは他の車両に許可が与えられている区間がある場合はその手前までについて走行許可区間として設定する。更に走行許可区間設定部322は、どの区間に走行許可区間を設定したかを示す情報を区間情報DB31bに格納されている区間情報に追加する。
実車両20は、区間応答メッセージを受信すると(S1210/Yes)、区間応答メッセージに示される新たな走行許可区間に従って走行を開始する(S1211)。実車両20が、区間応答メッセージを受信しない場合、ステップS1205へ戻る(S1210/No)。区間応答メッセージを受信しない場合とは、例えば通信エラーにより区間要求メッセージが管制サーバ31に届いていない、また区間応答メッセージが実車両20に届いていない場合がある。
走行許可区間設定部322は、実車両20の現在位置から区間の終端までの距離が走行許可解除距離以上となると(図8の(c)参照、S1212/Yes)、走行許可区間の設定を解除する(S1213)。走行許可区間設定部322は、区間情報から解除した走行許可区間を示す情報を削除する。その後ステップS1201へ戻る。また、走行許可区間設定部322は、実車両20の現在位置から区間の終端までの距離が走行許可解除距離未満の場合(S1212/No)、走行許可解除距離以上となるまで解除せずに、ダンプが走行する(S1212)。
(実車両及び仮想車両を混走させた管制制御処理)
次に図13乃至図15を参照して、実車両及び仮想車両を混走させた管制制御処理について説明する。図13は、実車両及び仮想車両を用いてシステム動作検証を行う際の、管制制御装置と自律走行ダンプトラックと仮想車両の関係を説明するための図である。図14は、実車両及び仮想車両に対して設定された走行許可区間の情報を格納する区間情報の例を示す図であって、(a)は、仮想車両(ID:V01)が待機位置で待機中の状態における区間情報例を示し、(b)は、(a)から仮想車両(ID:V01)が1動作(1フェーズ)遷移した状態における区間情報を示す。図15は、実車両及び仮想車両を混走させて管制制御処理の流れを示すフローチャートである。
図13では、現在5台の実車両20−1、20−2、20−3、20−4、20−5が稼働している鉱山において、新たに3台の自律走行ダンプトラックの導入を検討している場合を想定する。新規車両を導入する理由としては、例えば搬送路の長さ・制限速度から見てダンプトラックの数が少なく、積込場においてショベルが1台のダンプトラックに積み込みをしてから、次のダンプトラックが到着するまでの時間が長いために、ショベルがダンプトラックを待つ時間が発生し、生産効率が低い、といったことが挙げられる。このような場合、新規にダンプトラックを追加することで搬送路に対するダンプトラックの密度を上げ、ショベルの待ち時間を減らして生産効率を上げることができる。
しかしながら、実際に新規車両を導入した場合に、全ての車両が効率よく動作できることは簡単には保証できない。それは、実環境における天候・気温・路面状況などといった様々な外乱要素があり、車両の走行速度に影響を与えることや、各車両が走行許可区間に基づき自車の前方車両に衝突しないように走行しており、あまりに搬送路に対する車両密度が高すぎる場合、減速と加速を繰り返すような走行をしてしまうといった理由からである。また一方で、ダンプトラックは非常に高価であり、このような懸念がある限り安易に新規車両の導入を決断することは難しい。
この解決策として、新規車両を導入した場合に上記のような問題が起こらないかを、本発明で提案する仮想車両を用いて検証することができる。ここでは、新規に導入する計画の3台の自律走行ダンプトラックの動作を、仮想車両70−1、70−2,70−3でシミュレーションする。
このシミュレーションに際して、自律走行システム1は、図13に示すように管制サーバ31に対して5台の実車両20−1〜20−5のそれぞれが実際に無線通信接続され、3台の仮想車両70−1〜70−3のそれぞれが仮想通信接続(サーバ側通信制御部310を介して仮想車両シミュレーション部330及び管制制御部320の間のデータの出入力)される。仮想車両70−1〜70−3の実体は、仮想車両シミュレーション部330上のデータであり、前述の通り、管制サーバ31上で動作する。実車両及び仮想車両にはそれぞれ重複の無いように車両IDが割り当てられており、管制サーバ31は車両IDによって通信を行う対象の車両が実車両であるか仮想車両であるかを判別することができる。
図14の(a)に実車両及び仮想車両に対して設定された走行許可区間の情報を格納する区間情報の一例を示す。図14の(a)のR01〜R05は実車両を固有に識別する車両ID1401であり、V01は仮想車両を固有に識別する車両ID1401である。図14では走行許可区間を示す情報として、走行許可区間の最前端に位置するノード(前方境界点)、及び最後端に位置するノード(後方境界点)を格納する。また図14の(a)では説明の便宜のため各車両の稼働状態を記載しているが、稼働状態を示す情報はノードIDをキーレコードにして図11の(b)に示すノードの属性情報と関連付けることにより不要となる。以下図14の(b)、図22、図23の(a)、(b)についても同様である。
管制サーバ31と実車両、および仮想車両は全く同じフォーマットで、車両IDを始めとし、走行許可区間を表すノードやリンクのIDや実車両、仮想車両の其々の位置情報(地図上のどこに存在するか)等の情報を通信し合うことができる。このような構成において、後述する図15に示す管制制御処理を実施することにより、実車両と仮想車両とが互いに衝突することのないように走行許可区間を設定する。その結果、新規の実車両を導入する前に仮想車両を用いてあらかじめ導入後の動作を検証することができる。
次に図15の各ステップ順に沿って実車両と仮想車両とを混在させた管制制御処理について説明する。
管制サーバ31の走行許可区間設定部322は、実車両20、即ち要求情報処理部260(図5参照)から走行許可要求があったか(S1501/Yes)、又は仮想車両70、即ち仮想走行制御部332から走行許可要求があったかどうかを判定する(S1501/No、かつS1502/Yes)。どちらからも走行許可要求がない場合(S1502/No)は、処理をせず要求を待ち続ける。
走行許可区間設定部322は、いずれかの車両から走行許可要求があった場合(S1501/Yes、S1502/Yes)、以下の処理を実行する。実車両と仮想車両の優先順位は逆でもよく、また特に区別せずにいずれかからの走行許可要求の有無を判定してもよい。以下、実車両と仮想車両を含む概念として、車両という言葉を用いる。走行許可区間設定部322は、車両から走行許可要求があったら、既述のステップS1209と同様、受信した車両の現在位置と区間情報DB314bの情報を用いて、車両の進行方向に対して車両の存在する区間の終端から走行許可付与長さ以上となる区間について、他の車両に許可が与えられていない限り、あるいは他の車両に許可が与えられている区間がある場合はその手前までについて走行許可区間として設定する処理を実行する(S1503)。
この処理において、車両が現在存在する走行区間のすぐ隣の区間が他の車両に許可されているなどして、走行許可区間設定部322は走行許可区間を設定できない場合(S1504/No)、走行許可区間が設定できなかったことを示す不許可応答メッセージを生成し、車両に送信又は出力してS1501へ戻る。
走行許可区間設定部322は、走行許可区間を設定できた場合は(S1504/Yes)、その走行許可区間を示す区間応答メッセージを生成し、車両に送信または出力する(S1505)。
また、走行許可を与える区間に合流する区間がある場合、走行許可区間設定部322は、その区間を同一の車両に対する走行許可区間として設定し、区間情報に格納する(S1506)。また、走行許可を与える区間と交差する区間がある場合、走行許可区間設定部322は、その区間を同一の車両に対する走行許可区間としてマスタ地図データDB314a上に設定する(S1507)。これらの処理は、合流点又は交差点に他の車両が進入し、走行許可区間の設定対象となった車両と干渉することを防ぐための処理であり、走行許可区間の設定対象となった車両に対しては、車両の進行方向に沿った走行許可区間だけを通知すればよいので、本ステップで設定した走行許可区間は区間応答メッセージに含まず、管制サーバ31の処理に完結する。
走行許可区間設定部322は、ステップS1212と同様、車両の現在位置から既に通過した走行許可区間の終端までの距離が走行許可解除距離以上になると、通過した区間の走行許可を解除して区間情報を更新する(S1508)。
図14の(b)は、各車両が前進して、走行許可区間が再設定された状態を示す。例えば、図14の(a)では実車両(R01)に対してnode_1からnode_2までが走行許可区間として設定されているが、実車両(R01)がnode_1を通過後、node_1からnode_2が開放される。そして図14の(b)では実車両(R02)に対してnode_1からnode_2が走行許可区間として設定される。
実車両20及び管制サーバ31は以上の処理を繰り返す。この繰返処理の過程において、仮想車両に設定された走行許可区間に従って走行路を走行した際の走行状態や位置を含む走行状態のシミュレーションが行われ、その結果(特に仮想車両の位置)が走行許可区間設定部に返される。
走行許可区間設定部322は、要求を行った車両が自律走行ダンプトラックであるか、仮想車両であるかを特に区別せずに、即ち両車両に対して同一の処理で走行許可区間の設定をする。またこれにより、現実に走行する自律走行ダンプトラックと、シミュレーション上の仮想車両についても、互いに衝突を防止するように管制制御される。
次に、図16を参照して単一の搬送路の鉱山にて実車両と仮想車両が混走する場合について、管制サーバ31のユーザインターフェースである表示装置316(図2参照)に表示される画面を説明する。図16は仮想車両の設定入力画面の一例を示す図である。図16の画面1601には、鉱山内の積込場61、放土場62と、それらを結ぶ搬送路60とを含む地図画面1602が表示される。走行許可区間設定部322は、表示装置316(図2参照)に画面1601を表するための制御も行う。本図では明示しないが、搬送路上には、座標データとして走行路と、その区間を表すためのノードが設定されている。走行許可区間設定部322は、マスタ地図データDB314aの地図データに実車両20及び仮想車両70の位置及び区間情報DB314bに格納された走行許可区間を重畳表示することにより、地図画面1602を生成・表示する。また、実車両20と仮想車両70とは表示態様を変えて地図画面に重畳表示される。
図16では、鉱山エリア内において、実車両20−1〜20−5の5台と、仮想車両70−1〜70−3の3台とが、それぞれ管制サーバ31から指示された走行許可区間81−1〜81−8に従って混走している。
仮想車両を追加する際の処理について説明する。画面1601には、仮想車両アイコンを表示するツールボックス1603を表示する。ユーザがマウスカーソル1604により仮想車両アイコンを搬送路60上において、走行許可区間が未設定の位置にドラッグする。
また、画面1601に、ノードIDの入力欄1605を設けてもよい。ユーザが入力欄1605にノードIDを入力すると、そのノードIDのX座標1606、Y座標1607を仮想走行制御部332が地図データを参照して表示し、その位置に仮想車両のアイコンを表示してもよい。
仮想車両アイコンが地図画像に重畳表示された状態で、実行ボタン1608が操作されると、仮想走行制御部332及び走行シミュレーション部333を含む仮想車両シミュレーション部330が処理を開始する。
上記の例では、実車両5台に対して仮想車両3台を加える構成としたが、実車両・仮想車両のそれぞれの台数は、管制サーバ31の計算処理性能、あるいは通信手段の性能を越えない限り、任意に設定可能である。
本実施形態によれば、実際に走行中の運搬車両の位置及び仮想車両の仮想位置を基に、運搬車両及び仮想車両に走行許可区間を設定するので、実際に運搬車両を走行させながら、仮想車両を追加した際の走行許可区間の設定可否の検証を行うことができる。またこの検証に際して、運搬車両を稼働させた状態を維持できるので、運搬車両の稼働停止に伴う鉱山の生産性の低下を抑制することができる。
<第二実施形態>
第二実施形態は、既存の地図データに、新たな走行路を追加するための検証を行う実施形態である。以下、図17乃至図19を参照して第二実施形態について説明する。図17は、仮想走行路を追加するための画面表示例である。図18は、第二実施形態の処理の概要を示すフローチャートである。図19は、仮想走行路追加処理の詳細を示すフローチャートである。
鉱山は、掘削が進むにつれて鉱石のある掘削場所が変化し、ショベルが掘削・積込みを実施する積込み場の位置も変化する。一般的に露天掘り鉱山においては、すり鉢状に掘削を進め、次第に深い位置での掘削を行うようになる。この掘削位置を変更する際、合わせてそこに至るまでの搬送路も生成しなければならない。自律走行ダンプトラックであるダンプ20は、地図データを基にして自律走行を行うため、新しく生成した搬送路に対しては、合わせて地図データを生成する必要がある。また、生成した地図データは、そのデータに基づいて走行することで実際の搬送路を正しい位置で走行できるかどうかについてもあらかじめ確認し、システムの正常動作を確認する必要がある。そこで、本実施形態ではダンプを稼働させている状態を維持しつつ、新たな走行路を追加した場合の走行シミュレーションを行う。
図17に仮想走行路追加処理で表示される画面表示例を示す。図17の画面1702は、計画中の搬送路を含む鉱山にて実車両と仮想車両が混走する場合において、実際の走行路に仮想走行路を追加した際に管制サーバ31の表示装置316に表示される画面である。実際の走行路と仮想走行路とは表示態様を変えて表示される。画面1702は、図16で説明した積込場61、放土場62、搬送路60の構成に加え、新たに仮想の積込場68を設けている。放土場62は積込場61、68からの運搬の共通の放土場とする。また、搬送路60から分岐して仮想の搬送路67を設け、積込場68にアクセスできるようにしている。5台のダンプ20−1〜20−5は、もともとある積込場61と放土場62の間を往復し、3台の仮想車両70−1〜70−3は仮想の積込場68と放土場62の間を往復する。
この仮想地図データ(積込場68及び搬送路67)を含む鉱山エリア内において、ダンプ20−1〜20−5、仮想車両70−1〜70−3は、それぞれ管制サーバ31から指示された走行許可区間81―1〜81−8に従って走行する。
次に図18を参照して第二実施形態に係る処理の概要について説明する。なお図18の各処理において第一実施形態(図9の各ステップ)と同処理については同じステップ番号を付け、重複説明を省略する。
図18に示すように、地図データ生成処理を行い(S901)、仮想の走行路を追加しない場合は(S1801/No)、第一実施形態と同様、ステップS902〜S907の処理を行う。
生成された地図データに対して仮想の走行路を追加する場合(S1801/Yes)、仮想走行路追加処理を行う(S1802)。ここでいう仮想走行路追加処理とは、鉱山内に既に走行路が設定されている状態で、実際には存在しない搬送路や積込場、放土場の形状を設定する処理である。
仮想走行路追加処理では、図19に示すように、まず、地図データ生成部323が、例えば管制サーバ31に外付けされた記憶装置から仮想地図設定の際に用いる鉱山の航空写真などの参考データと、既存の地図データ(マスタ地図データDB314aからでも仮想地図データDB335のどちらに格納されたものでもよい)を読み込む(S1901)。参考データは、写真に限らず開発計画の鉱山地形の情報を持つCADデータなどでもよい。地図データ生成部323は、表示装置316の画面にこれらデータに基づく地図画像を表示する。地図画像には、航空写真等を用いた地形情報に、マスタ地図データDB314a等に格納された地図データを重畳表示してもよい。
ユーザは入力装置317を用いて地図画像上に既存の走行路に対して追加する仮想走行路のノード座標をプロットする(S1902)。プロットされたノード座標は地図データ生成部323が格納する。
ユーザは入力装置317を用いてプロットしたノード間の接続関係を設定する(S1903)。例えば、1つのノードをクリックした後でそれに接続したいノードをクリックすることで設定してもよいし、2つのノードを選択して実行処理をすることで設定してもよい。またこの時、既存の地図データが含むノードから搬送路を分岐する場合は、既存の地図データとの接続関係を設定してもよい。
ユーザは入力装置317を用いてプロットしたノードのパラメータを設定する(S1904)。これにより、プロットしたノードに積込み地点や放土地点などの、車両に指示を与えるための属性(図11の符号1108に相当)を持たせる。
最後に、地図データ生成部323は、生成された地図データを仮想地図データDB335及びマスタ地図データDB314aに格納する(S1905)。このとき、実在しない(仮想の)ノード及びリンクは、実在するノード及びリンクとは弁別可能なデータとして定義する。例えば、車両IDと同様、実在するノードID、リンクIDと仮想のノードID、リンクIDに両者を区別可能な文字を加えておき、シミュレーション走行において走行許可区間を設定する際、実車両は実在するノードIDだけを用いて走行許可区間を設定し、仮想車両は実在するノードID及び仮想ノードIDの両者を用いて走行許可区間を設定する。
上記で格納された地図データはあくまで仮想の走行路の情報であり、実際に開発した搬送路等における走行路のデータは改めてGPSやレーザレーダ等のセンサによって、定められた地図生成の処理手順で生成する必要がある。
仮想走行路追加処理S1802を行ってから仮想車両と実車両とを混送させる管制制御処理では(図18のステップS905)、走行許可区間設定部322が区間情報の車両IDとノードID、リンクIDを基に仮想車両は仮想地図データを参照して仮想走行路に走行許可区間を設定し、実車両に対しては実地図データを参照し、実在する走行路上に走行許可区間を設定する。
なお、ダンプ地図データDB204aは、実地図データのみを記憶しており、自律走行制御部270は位置算出装置220の位置データと実地図データとを比較しながら走行制御し、両者が一致しない場合は停車するので、仮想走行路上に実車両が迷い込むことは回避できる。
本実施形態によれば、運搬車両は実際の走行路に設定された走行許可区間に従って走行し、仮想車両は仮想の走行路に設定された走行許可区間に従って走行するので、運搬車両が仮想の走行路に間違って侵入することがない。そして、既存の搬送路に加え、実在しない搬送路等における走行路を事前に想定して仮想の地図データを生成し、それに基づいて実車両と仮想車両が管制制御に基づき走行するようなシステム構成とすることにより、開発計画中である搬送路を実際に開発し、新規車両を導入した場合の管制制御、および既存の実車両の動作を事前に確認することが可能となる。
<第三実施形態>
第三実施形態は、自律走行ダンプトラックの実際の走行データ、又はユーザからの入力操作に基づき仮想車両の走行モデルを修正する実施形態である。以下図20及び図21を参照して第三実施形態について説明する。図20は、第三実施形態に係る管制サーバ31の機能ブロック図である。図21は、第三実施形態で表示される画面表示例である。
図20に示すように、管制サーバ31は、第一実施形態の管制サーバ31の構成に加え、走行中の前記運搬車両から受信した当該運搬車両の走行データを用いて、仮想車両のシミュレーションした走行状態が前記実車両の走行状態と一致するように、走行パラメータを修正する走行パラメータ修正部350を更に備える。走行パラメータとは、仮想車両のシミュレーションした走行状態に影響を与えるパラメータであって、例えば、車両の重量、加速度、勾配、路面の摩擦係数μ等を修正する。摩擦係数μの設定は、その点における車輪の回転数とトルクとを用いて設定する。
実車両20は、走行中に車載センサ230により検出した車両の座標に応じた速度や加速度、傾き、荷重センサのデータなどを一時的に記録する走行データ格納部(不図示)を備える。実車両20は、走行中に車載センサ230からの出力を、無線通信回線40を介して送信する。
走行パラメータ修正部350は、センサの値を受信し、その値を基に仮想車両70がダンプ20と異なる走行の仕方をする地点を特定し、その地点における勾配や車両の加速度から、仮想車両70がより実際の車両に近い走行状態になるよう、仮想車両の走行パラメータを算出する。そして、走行シミュレーション部333の走行パラメータを算出値に修正する。これにより、仮想車両のシミュレーションした走行状態を走行中の運搬車両の走行状態により近づけることができ、シミュレーション結果の信頼性をより高くすることができる。
また、走行モデルの他の修正例として、入力装置317からユーザが走行パラメータを入力できるように構成してもよい。図21に、走行パラメータの入力画面例を示す。図21の画面2101は、車両スペックを規定するパラメータの入力画面を示す。車両スペックのうち、仮想車両のシミュレーションした走行状態に影響を与えるパラメータ例として、車体重量、最大積載量、ホイールベース、最小回転半径を例示したが、走行パラメータはこれに限定されない。例えば、加速度、減速度(制動量)、操舵速度などがあってもよい。走行シミュレーション部333は、画面2101から走行パラメータが入力され、実行ボタン2102が操作されると、走行シミュレーション部333で用いる走行パラメータを入力値に更新する。そして、走行シミュレーション部333は入力値を用いて仮想車両の走行シミュレーションを行う。その際も、実車両20から受信したセンサ値に基づいて、走行路の状態に由来するパラメータ、例えば路面の勾配や摩擦係数を随時修正してもよい。
また、路面の摩擦係数を規定する走行パラメータ、例えば車輪回転数やトルクは、走行路のノード、リンクごとに異なるので、ノードIDやリンクIDを指定して走行パラメータを設定できるように構成してもよい。
図21の例では、ユーザが走行パラメータを修正できるようにすることで、実車両により近い状態での走行シミュレーションや、実車両とは異なるスペックの車両を新規に投入した際のシミュレーションが行える。
<第四実施形態>
本実施形態は、仮想車両シミュレーション時において仮想車両が特定の動作を瞬時に終わらせたように処理を行う(スキップ処理を行う)実施形態である。以下、図22及び図23を参照して第四実施形態について説明する。図22は、仮想車両に対して積込場において設定される走行許可区間を時系列に沿って記載した区間情報の例である。図23は、仮想車両をスキップ処理した際の区間情報の例を示す図であって、(a)はスキップ処理のみを行った状態を示し、(b)はスキップ処理時にタイムラグ調整処理を行った状態を示す。
走行許可区間設定部322はスキップ処理をしない場合では、実車両と同スペックの仮想車両に対して、図22に示すように、「フェーズ1:待機位置で待機」、「フェーズ2;待機位置での待機から積込位置に向かって走行中」、「フェーズ3:積込作業中(停車中)」、「フェーズ4:積込位置から出口に向かって出発」、「フェーズ5:出口から放土場に向かって走行」するための走行許可区間を実車両に対する動作と同様のタイミングで設定する。
しかし、仮想車両に対し、図22に示す各走行許可区間を実車両と同じ時間を空けて設定すると、例えば積込作業中は実際にはショベルが稼働できずに鉱山の生産性が低下する。
そこで、走行許可区間設定部322は仮想車両に対しては、例えばフェーズ1,2,3は瞬時に終了したものとし、フェーズ1からフェーズ4にスキップさせ、フェーズ1の走行許可区間を設定した後、フェーズ4の走行許可区間を設定してもよい(図23の(a)参照)。
但し、図23の(a)に示すように、仮想車両の前に位置する車両との関係上、フェーズ4にスキップした場合、直前車両の位置を飛び越えてしまう場合がある(図23の(a)の車両ID:V01、R04参照)。この場合、実車両と仮想車両との前後関係が変わり、走行シミュレーションの正確性に支障をきたすことがある。
そこで、管制サーバ31にタイマーを備え、走行許可区間設定部322は、スキップ処理に際して仮想車両が直前車両(特に実車両)を飛び越さない時間を計測してから、スキップ処理を行うように構成してもよい。図23の(b)は、仮想車両(V01)の直前の実車両(R04)が積込場の出口から退出してから、仮想車両(V01)のスキップ処理を行った際の区間情報を示す。この区間情報では、仮想車両(V01)と直前の実車両(R04)との前後関係が維持される。走行許可区間設定部322は、計時処理に代わり、直前の実車両(R04)から受信する現在位置が出口を退出したことを確認して、スキップ処理を実行してもよい。
本実施形態によれば、仮想車両シミュレーション時におけるショベルの不稼働時間をより短くし、シミュレーションが実際の鉱山の稼働状況に与える影響を減らすことができる。
上記各実施形態は、本発明の実施態様の一例を示すにすぎず、本発明を限定するものではない。実施形態には上記に記載したものの他、本発明の要旨を変更しない範囲で様々な変形例があり、それらも本発明に含まれるものである。
例えば、図16の仮想車両を追加するGUIでは走行路上に仮想車両を追加したが、仮想車両を追加する操作を行うと、予め決められた出発点、例えば駐機場から仮想車両が出発するように構成してもよい。
また第四実施形態のスキップ動作例として積込動作に関するものを例示したが、放土動作に関連する動作をスキップしてもよい。
更に、図16、図17の表示画面において、走行許可区間が設定できない状況が生じると警告表示を行うようにしてもよい。この場合も、仮想車両及び直後の後続車両(実車両、及び仮想車両を含む)に対して上記状況が生じた場合に限定してもよい。これにより、仮想車両を追加したことに起因する走行許可区間設定不可な状況が把握しやすくなり、自律走行システムの動作検証に好適な表示画面を提供できる。