研究紹介
モデルベース開発
モデルベース開発とは、ブロックから構成されるモデルで開発する手法でシミュレーション技術を取り入れています。 従来の開発手法はハードウェアへの依存度が高く、開発の後半の検証段階で失敗するとハードウェアの追加コストと設計段階まで戻り再設計するためのコストが膨大になります。 モデルベース開発は従来の開発手法とは異なり、設計段階で検証が可能です。そのため出戻りが少なく全体として開発工数/コストの削減につながります。
モデルベース開発の特徴の特徴を挙げます。 利点としては設計段階で網羅的検証が可能であること、モデルを再利用可能であること、システムの構造が可視化され理解しやすいことなどが挙げられます。 一方、欠点としては設計段階の工数増加することや人材育成の時間が必要であることなどが挙げられます。 近年の自動車産業では、システムの複雑化や安全性の観点から様々な状況を想定、大量の検証テストが必要であることからモデルベース開発が採用されつつあります。
MATLAB/Simulink
MATLAB/SimulinkはMathWorks社によって提供されるソフトウェアで、モデルベース開発のデファクトスタンダードとなっています。 MATLABとは数値解析ソフトウェア・その中で使うプログラミング言語の名称で、従来のプログラミング言語より短時間で科学技術計算を行うことが可能です。 Simulinkとはモデルベースデザインのためのブロック線図環境で、組み込みシステムのシミュレーション、自動コード生成が可能です。
Model-Based Parallelizer (MBP)
MBPとはハードウェアを抽象化した記述(SHIM)、モデル情報,Simulinkモデルから自動生成されたCコードを入力としてグラフカットを用いた並列化(処理分散)を実行、マルチコア上で動かす並列Cコードを生成できます。MBPによってハードウェアを意識しないソフトウェア設計が可能になり、開発の生産性が大きく向上します。
共同研究・自動運転
本プロジェクトでは,名古屋大学,九州大学,慶応大学,立命館大学などと共同でCS005と呼ばれる共同研究室を立ち上げ,共同研究やワークショップなども実施しています.前述したとおり,CPSは多岐に渡る様々な分野の知識が必要となります.そのため,単独の研究室ではそれらの知識をカバー出来ないといった理由から,Computer Scienceにおいて重要となる以下の5つのドメインの協調を目的とするということでCS005と名付けられました.
Embedded Systems |
 |
Operating Systems |
Programming Languages |
High-Performance Computing |
Computer Architecture |
最近では,自動車の自動運転についてもCS005を通して我々も携わっており,実際にトヨタ社のプリウスを用いた研究も進めています.
CS005によって異分野の共同研究の輪を広げ、世界に通用する研究へ

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

AutowareはLinuxとROSをベースとした自動運転システム用オープンソースソフトウェアです。 名古屋大学が中心となって開発しており、 自動運転の研究開発用途に無償で公開しています。 本研究室でも名古屋大学やその他の企業とAutowareの開発を共同で行っています。 レーザレーダ、カメラ、GNSSなどの環境センサを利用して、自車位置や周囲物体を認識しながら、カーナビから与えられたルート上を自律走行できます。
本プロジェクトのデモ走行の様子
本プロジェクトの成果を活用したセミナー
ROSは自動運転においてデファクトスタンダードになっていますが、Linux上での動作しか保証していません。さらに、リアルタイム性を保証していません。 そのため、現状ではシステム動作が間に合わず事故が発生する危険性があり、自動運転に利用するための弊害になっています。 そこで研究室では、ROSの通信同期機構や、自動運転向けのスケジューリング、リアルタイムOS上での動作などの研究を行っています。
CPS関係の研究
CPSでは大量の実世界データを扱うために、高度な計算資源が必要となります。その解決として私たちは、GPUを用いることを提案しています。GPUは、大量のプロセッサコアを搭載しており、そのコアを用いて高速な計算を行うことができ、さらに、近年ではグラフィックにかぎらず汎用的な計算できるため、とてもホットなトピックとなっています。しかし、まだまだ、GPUをCPSに適用するには課題が多く存在しており、その課題の解決を目的としています。
GPUのスケジューリング
CPSで必要な計算をGPUで効率的に利用するには、GPUのスケジューリング理論を考える必要があります。
Gdev:CUDA実行環境のオープンソース実装
我々の研究の最も基盤となっているのがGdevです。Gdevは、現在、GPUの有名なベンダーにはNVIDIAがあります。このNVIDIAは、GPUをグラフィック以外の汎用的な処理に利用するためにCUDAと呼ばれるプラットフォームを提供しています。このCUDAはその内部構造が全て非公開であり、オープンソースで実装することで、その処理基盤の研究が可能にし、これによって今後の研究への発展を目指しています。https://github.com/CS005/gdev
GPUマイコンを用いたGPGPU環境における資源管理
GPUにはオンチップにマイクロコントローラが搭載されています。私たちはこのマイクロコントローラを制御し、今までの組込みシステムで培った知識を用いてGPU資源の管理を行い、CPSに適したGPU処理を可能とするGPGPU環境の構築を目指しています。具体的には、PC側で行うGPUの制御処理を、GPUチップに搭載されるマイクロコントローラにオフロードすることで、GPU自身が制御を行うようになります。これによって、効率的なGPU処理が可能になると考えています。

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

自動運転ソフトウェアとMATLAB/Simulinkの連携
一般道自動運転向けオープンソースソフトウェアであるAutowareとMATLAB/Simulinkの連携を行っている。 Autowareは、位置推定、物体認識、経路計画、軌道生成など自動運転システムで必要な機能を提供している。 Autowareのそれぞれの機能はROS(Robot Operating System)のノードとして実装されており、ROSノードとMATLAB/Simulinkのインタフェースを提供するRobotics System Toolbox™を用いることで、MATLAB/Simulinkで作成されたモデルがAutowareと接続可能になる。 Autowareでは実証実験等で得た実データを用いたシミュレーションが可能である。 連携機能を用いることで、MATLAB/Simulinkのモデルに対しても自動運転の実データを用いたシミュレーションが可能になる。 コシュミレーションの様子は下記の動画を参照してください。
自動運転ソフトウェアとMATLAB/Simulinkの連携