本連載は、「システム開発」をテーマとしたコーナーです。フォーラムエイトのシステム開発の実績にもとづいて、毎回さまざまなトピックを紹介していきます。今回は、鉄道シミュレータをカスタマイズして、AIの強化学習に用いるデータを提供するシステム開発事例についての紹介です。UC-win/Roadの既存プラグインの利用やカスタマイズにより、自動運転のための強化学習用に活用できるシステムを構築することが可能です。
鉄道の自動運転に向けた強化学習システム開発
はじめに
AIによる高度な機能実現のためには、AI自体に様々なデータを与え学ばせる強化学習が有効です。単に画像を識別させるAIでは、画像データを与えるだけで済みます。しかし、自動運転のように複雑な状況把握と運転判断が必要になる場合は、学習させるデータの作成は複雑かつ高難度になってきます。
今回は弊社の鉄道シミュレータをカスタマイズし、AIの強化学習に用いるデータを提供するシステム開発事例についてご紹介します。
鉄道シミュレータについて
まずは鉄道シミュレータについてご紹介します。弊社開発の3DVRソフトウェア「UC-win/Road」をカスタマイズし、実際の鉄道運転を模擬したシミュレータです。
実物大の計器やマスコン(マスターコントローラー)による運転が行えます。実際の運転を想定して、正面ディスプレイに加えて左側面(乗降口側)にもディスプレイを設置しています。
東京本社ショールーム、および関連の展示会にて設置しておりますので、お立ち寄りの際はぜひご体験ください。
図1 鉄道シミュレータ概要 | 図2 操作に使用できるマスコン(小型) |
図3 駅のホームを再現したVR空間 | 図4 運転曲線の表示 |
システム概要
強化学習システムは大きく分けて、学習と運転の機能に分けられます。
●学習:マスコン→UC-win/Road→強化学習システム
●運転:強化学習システム→UC-win/Road
学習では、人間がマスコンによる操作で運転したデータ・評価された値を強化学習システムに送信する機能です。これにより、良い運転・悪い運転を実際の走行データと共に学習していきます。
運転では、強化学習システムがアクセル・ブレーキの操作情報をUC-win/Roadに送信し、実際に車両を運転する機能です。
強化学習システムが学習と運転を繰り返すことで、より質の高い鉄道運転技術を獲得するシステムです。
プログラム構成
本システムのプログラムは表1で構成されております。鉄道シミュレータのマスコン操作は鉄道シミュレータプラグインにより動作させていました。これにAI強化学習用のプラグインを開発し、強化学習システムとの通信を行うものとなっています。また、強化学習システムに送信するデータの元データとして、ログ出力プラグインと運転診断プラグインを活用しています。
プログラム |
役割 |
|
---|---|---|
UC-win/Road本体 | シミュレーション、描画などのメイン処理を行う | |
AI 強化学習用プラグイン | 強化学習システムとの通信、運転診断の設定と評価、高速シミュレーション | |
鉄道シミュレータプラグイン | 鉄道(電車)シミュレーション、マスコン操作 | |
シナリオプラグイン | 鉄道パラメータ設定、シナリオによるシミュレーション実行 | |
ログ出力プラグイン | 運転中の走行情報をCSV ログで出力 今回は強化学習システムに送信する走行データの元データとして使用 |
|
リプレイプラグイン | シミュレーション実行後にリプレイ | |
運転診断プラグイン | シミュレーション結果を評価 今回は強化学習システムに送信する評価値の元データとして使用 |
|
表1 プログラム一覧 |
機能詳細
(1)強化学習システム通信連携機能
鉄道車両の制御値やシミュレーション中の環境情報について、UDP通信にて学習用PCへ送信する機能です。また、学習用PCから、鉄道シミュレータ側のシナリオ再生・リセット、鉄道車両の運転(アクセル、ブレーキ)の制御を行います。
表2に強化学習システムに送信するデータを示します。「速度」「加速度」など鉄道車両の走行情報に関するデータはログ出力プラグインから、「車両速度評価点」「急ブレーキ評価点」は運転診断プラグインから取得するデータです。
時刻 |
鉄道シミュレータPC時刻 |
シミュレーション内時刻[ms] |
到着予定時刻[ms] |
---|---|---|---|
速度 | 速度[km/h] | 加速度[km/h/s] | 制限速度情報 |
距離 | スタート地点からの距離[m] | 次駅までの距離[m] | - |
制御 | 制御コマンド | 制御変数 | 緊急信号の有無 |
評価点 | 車両速度評価点 | 急ブレーキ評価点 | - |
ノッチ | 力行ノッチ | ブレーキノッチ | - |
レール諸元 | レール傾き(カント)[mm] | レール勾配(ピッチ)[‰ ] | レール曲率半径[m] |
表2 強化学習システムに送信するデータ |
(2)運転評価機能
「車両速度評価点」「急ブレーキ評価点」の設定画面を図6、図7に示します。評価値は減点方式です。車両速度評価点では制限速度との差が、急ブレーキ評価点では急ブレーキの回数が評価されます。これらの評価値に加えて走行データを強化学習システムに送信することで、より良い運転方法を学習できるようになります。
図6 「車両速度評価点」の設定 | 図7 「急ブレーキ評価点」の設定 |
(3)高速シミュレーション
より効率よく学習を行うために、高速シミュレーション機能を開発しました。人間がUC-win/Roadで運転を行う場合の動作周波数(1秒間に運動計算を行う回数)を60Hzとすると、学習システム側の周波数は120Hzとなり、通常の2倍速でシミュレーションが行えます。より短い時間で多くの強化学習が行えるメリットがあります。
図8 高速シミュレーション イメージ図
(4)使用ノッチの表示
運転状況に応じて、使用しているノッチを色分けで表示します。ノッチとは、電車の減加速の状態を1つの尺度で表したものであり、自動車のギアやアクセル・ブレーキの状態をひとまとめにしたようなものです。「B」はブレーキ(減速)、「P」はパワー(加速)、「N」はニュートラル(惰行運転時)、「EB」は緊急ブレーキを意味します。この表示により、強化学習による運転が適正かどうか判断できます。
図9 使用ノッチ表示 イメージ図
(5)ログ出力
強化学習に用いるデータは、CSV形式でログ出力することも可能です。鉄道の運転シナリオ終了時、またはバッファーサイズごとに出力することが可能になっています。
図10 強化学習データ ログ出力UIイメージ
おわりに
今回は弊社開発の鉄道シミュレータをカスタマイズして、AIの強化学習に用いるデータを提供するシステム開発事例をご紹介しました。
元々は鉄道運転士の教育訓練や展示用途として開発したシミュレータでしたが、UC-win/Roadの既存プラグインの利用およびカスタマイズにより、自動運転のための強化学習用に活用できるシステムを構築することができました。また、鉄道のみならず自動車の運転、船舶や飛行機などあらゆる分野の強化学習にも応用できます。今後の開発に、ぜひご期待ください。
(Up&Coming '24 秋の号掲載)
|
Up&Coming |
LOADING