CPS・自動運転プロジェクト

CPS(Cyber Physical System)

CPSは,現実世界(Physical-world)とデータ化されたコンピュータ世界(Cyber-world)が密接に連携する仕組みのことです.CPSの目的は実世界の情報を取得し,適切な情報処理を行い,その結果に基づいて実世界を操作することです.

CPSの代表例としては,自動運転カーや,交通システム,スマートホームや,エネルギーシステムなどがあります.近年IoT(Internet of Things)が盛んとなり,現実世界の情報を取得することは容易となっています.その中では,情報技術だけでなく,統計学など多岐に渡る分野・技術と密に連携することでより効果の高い現実世界へのフィードバックが実現されます.

しかし,実世界を操作するためには,決められた時間内に処理を完了させる必要があり,情報処理の基盤がCPSの実現に無くてはなりません.

現実世界を操作するというと,よく組込みシステムを思い浮かべられます.

確かにCPSは,次世代の組込みシステムのあり方といっても良いです. しかし,実世界の情報量は果てしなく,組込みシステムの域をはるかに超えており, 従来の情報基盤では成り立ちません. したがって我々は,この情報基盤の形成について取り組んでいます.

共同研究

名古屋大学,九州大学,慶応大学などと共同でCS005と呼ばれる共同研究室を立ち上げ,共同研究やワークショップなどを実施しています.前述したとおり,CPSは多岐に渡る様々な分野の知識が必要です.そのため,単独の研究室ではそれらの知識をカバー出来ないといった理由から,Computer Scienceにおいて重要となる以下の5つのドメインの協調を目的とするということでCS005と名付けられました.

〜CS005によって共同研究の輪を広げ,世界に通用する研究へ〜

Embedded Systems

Operating Systems

Programming Languages

High-Performance Computing

Computer Architecture

自動運転プロジェクト

オープンソースソフトウェア自動運転システム:Autoware<https://github.com/CPFL/Autoware>

Autowareは自動車の自動運転用に名古屋大学などを中心に,本研究室も開発に携わり産官学が一体となって開発したオープンソースソフトウェアです.実際の車両を用いた研究も進めています.

AutowareはLinuxとROSをベースとした自動運転システム用のソフトウェアです.レーザレーダ,カメラ,GNSSなどの環境センサを利用して、自車位置や周囲物体を認識しながら、カーナビから与えられたルート上を自律走行できます。

自動運転に用いられている技術の一部

    • Robot Operating System(ROS)

自動運転にはRobot Operating System(以下、ROS)と呼ばれるメタ・オペレーティングシステムが主に利用されています。 ハードウェア抽象化、低レベルなデバイス制御、一般的な機能性、プロセス間通信、そして、パッケージ管理など、一般的なオペレーティングシステムに要求されるサービスを提供します。 また、コードを複数台のコンピュータにわたって保持・ビルド・記述・実行するためのツールやライブラリも提供しています。 ROSはロボット分野で培った豊富なライブラリが提供されており、自動運転のプラットフォームにおいてデファクトスタンダードとなっています。

    • Hadoop

Apache Hadoopは大規模データの分散処理を支えるオープンソースのソフトウェアフレームワークです。 Hadoopでは, 大量のサーバを協調的に動作させることでペタバイト級のデータを処理することを可能とします。 自動運転プロジェクトでは, Hadoopを利用し, 複数の車両から得られるデータを元に3次元マップを生成しています.

CPS・自動運転プロジェクトに関する研究

CPSにおける情報分野は様々な研究要素があります.本分野では,オペレーティングシステムからミドルウェアまで幅広い範囲での研究を行っています.

近年,本研究室ではAutowareに用いられるROSや,GPGPU*の研究が盛んです.

*GPGPU(General Purpose computing on GPUs)と言われるGPUを汎用計算に用いる技術で近年着目されている.GPUは,大量のプロセッサコアを搭載しているため,そのコアを用いて高速な計算を行うことができ,さらに近年ではグラフィックにかぎらず汎用的な計算が可能である.CPSのような大量の情報を扱う場合,高度な計算資源が必要となりGPUを用いることが多い.

  • リアルタイムROS

ROSは自動運転においてデファクトスタンダードになっていますが、Linux上での動作しか保証していません。さらに、リアルタイム性を保証していません。 そのため、現状ではシステム動作が間に合わず事故が発生する危険性があり、自動運転に利用するための弊害になっています。 そこでリアルタイムOS上にROSを移植し、リアルタイム性を保証したROSを開発しています。

関連卒論:「Robot Operating Systemのリアルタイム性の検証と向上手法(2014年度)」

  • ROS向けのタスクスケジューリング

ROSはノードと呼ばれる依存関係をもつ小さな機能集合としてシステム全体を構築しています. 依存関係とは,複数の入力を必要とするノードすべての入力が到着次第実行が可能となる制限のことです. 自動運転システムのように複数の出力が存在し,かつ異なるリアルタイム制約が求められるシステムに対するスケジューリング手法は確立されていません.そこで,リアルタイム制約の混在するシステムに対して依存関係を考慮したスケジューリング手法を研究しています。

関連卒論:「異なるデッドラインが混在する DAG スケジューリング(2015年度)」

  • Gdev:CUDA実行環境のオープンソース実装

私たちの,研究の最も基盤となっているのがGdevです. Gdevは, 現在,GPUの有名なベンダーにはNVIDIAがあります.このNVIDIAは,GPUをグラフィック以外の汎用的な処理に利用するためにCUDAと呼ばれるプラットフォームを提供しています.このCUDAはその内部構造が全て非公開であり,オープンソースで実装することで,その処理基盤の研究が可能にし,これによって今後の研究への発展を目指しています. 私たちは,このGdevの開発者の一員として,現在は最新のGPUアーキテクチャへの対応を進めています. https://github.com/CS005/gdev

  • GPUマイコンを用いたGPGPU環境における資源管理

GPUにはオンチップにマイクロコントローラが搭載されています.私たちはこのマイクロコントローラを制御し,今までの組込みシステムで培った知識を用いてGPU資源の管理を行い,CPSに適したGPU処理を可能とするGPGPU環境の構築を目指しています.具体的には,PC側で行うGPUの制御処理を,GPUチップに搭載されるマイクロコントローラにオフロードすることで,GPU自身が制御を行うようになります. これによって,効率的なGPU処理が可能になると考えています.

関連卒論:「GPU オンチップマイクロコントローラへの資源管理処理オフローディング(2012年度)」

      • Yusuke Fujii, Takuya Azumi, Nobuhiko Nishio, Shinpei Kato. "Exploring Microcontrollers in GPUs", to appear at the 4th Asia-Pacific Workshop on Systems(APSYS 2013), Singapore, 2013

      • 藤居 祐輔, 安積 卓也, 西尾 信彦, 加藤 真平, "GPU制御用ファームウェア開発環境", 組込みシステムシンポジウム2012 , 2012年10月

      • 藤居 祐輔, 安積 卓也, 西尾 信彦, 加藤 真平, "GPU制御用ファームウェア開発環境", 第14回 組込みシステム技術に関するサマーワークショップ (SWEST14) 予稿集,pp. 102-105.

  • Ghost GPU: 仮想GPUフレームワークの構築

近年では, スマートフォンの普及は著しく, ウェアラブル・コンピュータなども登場してきました. それらモバイル端末を利用し, 環境認識, つまり画像認識などを行うことも増えてきました. しかし, モバイル端末には多くの計算資源がなく, 多くの計算資源を要する画像認識といったCPSアプリケーションを動作させることは困難です. そこで, 本研究ではスマートフォンやウェアラブルコンピュータなどのモバイル端末において、外部のGPUの計算資源を利用するを可能とするフレームワークを構築.

関連卒論:「GPGPU のクラウド化による計算オフローディング(2013年度)」

      • Yuki Iida, Manato Hirabayashi, Takuya Azumi, Nobuhiko Nishio, Shinpei Kato. "Connected Smartphones and High-Performance. Servers for Remote Object Detection", to appear at the IEEE International Conference on Cyber-Physical Systems, Networks, and Applications(CPSNA), 2014

  • Zero I/O copy

上記の「仮想GPUフレームワーク」のようなネットワークを経由してGPUを扱うということが今後増えてくることが予想されます. そうしたネットワークを経由してGPUを利用する場合は, レイテンシが大きな問題となります.そこで, 本研究はEthernetとGPUメモリ間で直接データを送受信することで、ネットワークを介する処理における高速化を目指す。

関連卒論:「Exploring Reduced Data Copying Transmission for GPU Computing over the Ethernet Network Interface Controller(2013年度)」

  • ヘテロジニアス環境におけるHadoop のスケジューリング手法

分散処理技術であるHadoopとメニーコアであるGPUを協調的に利用することで, より高速かつスケーラビリティに富んだ処理を実現する. これらを実現するために, GPUの資源を考慮したスケジューリングアルゴリズムの考案及びプラットフォームの研究を行う.

関連修論:「異種大規模分散処理環境に適した資源管理機構の構築(2015年度)」

  • Linux-RTXG:CPU/GPU協調スケジューリング

近年GPUはより一般的に使用されるようになり、高いリアルタイム性が必要とされるようになりました。 しかし既存研究ではLinuxカーネルの修正を必要とするためシステムの管理が容易ではありませんでした。そのためカーネルの修正を行うことなくGPUのリアルタイムリソース管理を行うローダブルカーネルモジュール(LKM)を実現。

関連修論:「Loadable Real-Time Extension for CPU/GPU Resource Coordination(2014年度)」