本文へ移動
_7S_2609

役割

自動運転システム全体ではさまざまなモジュールがあり、それらがPub/Sub間通信でやりとりしています。依存関係はできる限りシンプルに開発しているものの、自動運転モデル開発やモデル精度向上のためにはさまざまなソフトウェアイシューを解決する必要があります。

さまざまなイシュー例:MLモデルの学習パイプライン構築・モデルの量子化/最適化・センサーデータキャリブレーション・車両運動制御実装など

業務内容

下記のすべてを担当するわけではなく、自身の強みを活かしたドメインで開発を進めつつ、他領域にも染み出しながら開発を進めています。

  • データキャリブレーションや異なるセンサデバイス間の座標変換
  • 画像、動画データ処理パイプラインの高速化
  • データセットの作成・改善
  • 論文や既存実装の調査・再現・実装
  • 自社データセットを利用した既存実装の評価
  • モデル量子化/最適化
  • 実車でのモデル評価・実験管理
  • 車両運動制御システムやアルゴリズムの設計・実装
  • 実車両を用いた制御性能の評価・チューニング

ソフトウェアエンジニアとして働くメリット

チューリングのソフトウェアエンジニア(最適化・高速化)として働くメリットは、End-to-End自動運転モデル開発という、機械学習の分野で他に類を見ない先進的な開発手法に携われる点です。

また、開発したシステムやモジュールが現実世界の車に搭載され、公道で実際に動作することを試せる点も大きな魅力です。車という、多くの人を乗せ、社会や産業に貢献するプロダクトの、非常に重要なコンポーネントの開発に携わることは、自身の技術が社会に与える影響の大きさを実感させ、強いやりがいにつながります。

この職種のミッションは、チームで作ったモデルを自分の作ったシステムや実車テストを繰り返して改善サイクルを回していくことです。机上だけでなく、現実世界からのフィードバックを開発に活かし、自動運転開発を強力に推進することができます。

この職種にマッチする人材

  • 自動運転領域で開発経験のある機械学習/ソフトウェアエンジニア
  • 自動車会社で機械学習/ソフトウェア/制御開発をしてきたエンジニア
  • システム開発会社での機械学習/ソフトウェア/制御開発をしてきたエンジニア
  • 制御レイヤーの完全自動化という野心的な目標に挑戦したい人
  • 車両ダイナミクスの領域に幅広く取り組む意欲がある人
  • 制御モジュール開発を通じて完全自動運転の基盤作りに貢献したい人

他職種連携の魅力とやりがい

MLエンジニア

主に制御モジュールと自動運転モデル(ニューラルネットワーク)が吐き出すトラジェクトリー(軌道)との接続を行います。具体的には、モデルが出力する軌道情報を基に、縦制御と横制御を適切に開発し、実際の車両が乗り心地良く、かつ安全に動作するように調整する業務が中心となります。これは、MLモデルの意図を車両の実際の挙動に正確に反映させるための、システムの「橋渡し」となる重要な部分です。

制御の知見から機械学習の領域に深く踏み込んでいけるという面白さがあります。また、将来的に制御レイヤーを完全自動化するという野心的な目標に向かって、自身の制御システムの開発が完全自動運転を支える基盤となるという、非常に大きなやりがいを感じられます。車両運動性や車両ダイナミクスといった領域に幅広く取り組める点も、技術者としての探求心を刺激します

ソフトウェアエンジニア(ドライビングシステム)

開発した制御モジュールアプリケーションと、他のモジュールとのPUB/SUB通信などの連携部分の調整を行います。自動運転システム全体のソフトウェアアーキテクチャやシステム全体の整合性を保つことが主な業務内容となります。複数のコンポーネントやモジュールから成り立つシステムにおいて、自分のモジュールが他のシステムに悪影響を与えないよう、全体を考慮した開発が求められます。

自動運転システム全体を俯瞰しながら、個々のモジュールの開発を行うことが求められます。疎結合なシステムにおいて、自身の開発が全体に与える影響を常に意識し、他のシステムや仕組みの解像度を高めながら、システム全体の完成度の高いものを構築していく過程が、技術的な面白さと達成感につながります。システム全体を理解し、その中で自分のモジュールを最適化していくスキルが磨かれます。