30.6K Views
April 26, 22
スライド概要
2022/4/25に開催した「TIER IV自動運転向けRTL-FPGA開発テックミートアップ」の資料です。
Autoware紹介と 自動運転ハードウェアアーキテクチャ TIER IV 自動運転向け RTL-FPGA 開発 テックミートアップ 2022/4/25 株式会社ティアフォー 技術本部 Computing Team 濱田貴之 1
おしながき 0 / About speaker 1 / TIER IV について 2 / Autoware 基本情報 3 /自動運転システム効率化への取り組み 4/自動運転ハード開発者にとって重要なこと 2
東京東部エリアの ビアバー・イベント等でたまに出現する About speaker 濱田 貴之 技術本部 Computing Team 所属 大学はソフトメインの情報系なのにハードウェア研究 (Reconfigurable Architecture) 前職はH社系列のグループ会社に所属 マイコン業務、AIエッジ装置・FPGAデバイス調査やプロトタイプ開発に従事 TIER IV では、エンベデッド系列の業務を担当 Autoware 新規ハードウェアアーキテクチャ構築、社外研究連携などを遂行 『 TIER IV 』でチャレンジしたいこと • 業界の最前線で、技術連携&社会実装を達成 • 社内外の(技術のわかる)方とハイレベルなワークに携わる • 自動運転を提供し易くしたい。汎用、安価、安全、とにかく広げたい 3
1. TIER IV について ◆ミッション、ビジョン、企業概要 ◆関連活動紹介 4
1. TIER IVについて ミッション・ビジョン・企業概要 Mission 創造と破壊 誰もやったことの無いやりかたで、既存の価値を壊すのは繊細に。新しい価値を創るのは大胆に Vision 自動運転の民主化 テクノロジーを開放し、様々な組織、個人がその発展に貢献できる持続的なエコシステムを構築する 概要・特徴 ◆ 自動運転について総合的な知見を持つ、ディープテック企業 ◆ 自動運転システムの開発、MaaS事業を展開 ◆ 自動運転に対する明確な要件定義、リファレンスシステム提示可能 ◆ 技術領域:Autoware活用・改善、AI処理、Webシステム、実車実験、車両構築、シミュレータ開発、セン サー/ECU検討、遠隔5G連携、クラウド活用 (CI/CD)、OS改良、自動運転規格制定活動、自動運転ビジネ ス相談や研究活動 (ソフトウェア連携、ハードウェア組み込み、新規チップ活用) ◆ Autoware に対して所有/支配的関係は全く無い 5
1. TIER IVについて- 関連活動紹介 ◆ 日本・世界両方で 自動運転ビジネス化を推進中 6
2. Autoware 基本情報 ◆自動運転OSS Autoware 概要、特徴 ◆概略アーキテクチャ ◆Autoware 視点の世界 7
2. Autoware 基本情報 - 自動運転OSS Autoware 概要、特徴 PERCEPTION PLANNING CONTROL LOCALIZATION SENSING SENSORS MAP DATA VEHICLE INTERFACE VEHICLE ◆ 自動運転のOSS (Open-Source Software) である ◆ オープンである (世界中だれもが参加 & 改善可能) ◆ 検証追跡が可能 (ブラックボックス化回避) ◆ 特定企業の意向を受けない (システム、要件の依存性が少ない) ◆ ROS(Robot Operating System)ベースに設計されている ◆ ロボット設計ベースの分散システム (ロボットとの連携容易) ◆ 可視化ツール(Rviz) での確認が容易 (デバッグが容易) ◆ ROS2 対応 (リアルタイム性の向上) 8
2. Autoware 基本情報 - 概略アーキテクチャ Perception Planning Scenario Dynamic Object Scenario Selector Detection Tracking Prediction Control Mission Traffic Light Detection Lane Driving Classifier Parking Etc. Localization Sensing Sensors Map Data Vehicle Interface Vehicle 点群マップをもっと詳しく見てみたい方 MAP IV ⇒ https://www.map4.jp/technology 9
10
11
12
13
14
15
16
3.自動運転システム効率化への取り組み ◆実証実験車両紹介 ◆センサー構成 ◆基本方針 ◆ハードウェア・ソフトウェア分析 ◆新規アーキテクチャの構築 ◆研究開発フローとFPGAの役割 17
3.自動運転システム効率化への取り組み - 実証実験車両紹介 • ベース車両:TOYOTA、DAA-NTP10 JPN TAXI(ジャパンタクシー) 匠 ● 市販車以外でも、EV車両、改造が容易な車両 (ゴルフカート、レクサス)、小型の運搬用 車両など、顧客要望 / ODD要件に応じて様々な車両で実験している ⇒ Autoware 改造実績車両は多い 18
3.自動運転システム効率化への取り組み - センサー構成 u-blox F9P TamagawaSeiki TAG300N (GNSS / Localization) (IMU/ Localization) Velodyne VLS-128 Alpha Prime (LiDAR / 360° Detection) Livox Horizon Livox Horizon Leopard Imaging 38 deg + 65 deg FLIR BlackflyS 70 deg x 6 Velodyne VLP-16 (LiDAR / Side/Rear Detection) Leopard Imaging w/ FlickerMitigation Livox Horizon (LiDAR / Long-range Detection) (Camera / Traffic Light Recognition) FLIR BlackflyS w/ JetsonAGX (Camera / Object Recognition) 19
3.自動運転システム効率化への取り組み - 基本方針 Perception Planning Detection Tracking 既存ECUシステム Scenario Dynamic Object Scenario Selector Prediction Control Mission Traffic Light Detection Lane Driving Parking Etc. Classifier (システムに応じて) 装置多数 Localization Sensing Map Data Sensors Vehicle Interface Vehicle 高性能な汎用PC (x86) & GPUベースのアクセラレータ 複数台が必要 ◆ ハードウェア分析が必要な理由 ➢ 実証実験ベースのシステムは開発中ソフトウェアをベースにある程度余裕を持たせた構成で高コスト ➢ ECUスペースを小さくしたい ◆ ソフトウェア分析が必要な理由 ➢ 実証実験システムでのCPU、メモリなどの計算リソースで高負荷箇所を洗い出す ➢ レイテンシ、ネック箇所 20
3.自動運転システム効率化への取り組み - ハードウェア・ソフトウェア分析 HMI HMI goal /perceptio... mission_planner /... /perception/object_recognition/ /planning/mission_planning/route... /perception/object_recognition/detection/euclidean/ trajectory_follower /perception/object_recognition/detection/... <Lane Driving> route,... <Parking> external_cmd_... behavior_path_planner voxel_grid_filter lateral_controller lane_following lidar_drivers... lidar_driver lane_change /perception/traffic_light_... lidar/*/velodyne_packets /external/selected/external_control_cmd... /control/trajectory_follower/longitudinal/control_cmd... outlier_filter packets_to_... top/pointcloud_raw crop_box_... top/self_cropped/pointcloud /... traffic_light_detection/rough/rois tensorrt_yolo latlon_muxer side_shift lane_departure_... traffic_light_... /lidar/cluster /control/trajectory_follower/control_cmd... behavior_planning/path_with_lane_id /rois* crop_box_... crop_box_... */mirror_cropped/pointcloud top/mirror_cropped/pointcloud fix_distortion fix_distortion shape_estimation /diagnostics behavior_velocity_planner traffic_light_... blind_spot object_range_splitter ring_outlier_filter /control/shift_decider/gear_cmd... /... top/rectified/pointcloud lidar_centerpoint /... shift_decider detection_area roi_cluster_fusion /sensing/top/rectified/pointcloud */rectified/pointcloud predicted_trajectory costmap_generator pull_over/out euclidean/clustering/outlier_filter/pointcloud euclidean_cluster crop_box_... */self_cropped/pointcloud external_cmd_... obstacle_avoidance traffic_light_map_... packets_to_... cross_walk ring_outlier_filter traffic_light_states centerpoint/objects gnss_driver /control/trajectory_follower/lateral/control_cmd... costmap_generator/occupancy_grid top/velodyne_packets */pointcloud_raw longitudinal_controller freespace_planner euclidean/clustering/downsampled/pointcloud /autoware/engage [Engage]... traffic_light c... vehicle_cmd_gate HMI intersection concat_filter imu_driver object_association... concatenated/pointcloud c... occlusion_spot /system/emergency/control_cmd [AckermannControlCommand]... detection_by_tracker/objects /sensing/imu/imu_raw detection/objects no_stopping_area /current_gate_mode [GateMode]... gnss_poser detection_by_... multi_object_... stop_line tracking/objects virtual_stop_line accel_map_calibrator system_monitors raw_vehicle_cmd_... imu_corrector autoware_process_... emergency_handler /vehicle/command/actuation_cmd autoware_gpu_... /sensing/lidar/pointcloud /system/emergency/hazard_status behavior_planning/path map_based_... autoware_mem_... /vehicle/s... /sensing/gnss/... /sensing/imu/imu_data autoware_error_... /perception/object_recognition/objects /vehicle/status/velocity_report autoware_hdd_... motion_planning/obstacle_avoidance_planner/trajectory [Trajectory] autoware_net_... surround_... vehicle_velocity_converter crop_box_filter_... /diagnostics obstacle_... /concatena... vehicle_interface pacmod_interface /diagnostics_err g30_interface /control/c... motion_planning/surround_obstacle_checker/trajectory [Trajectory] autoware_ntp_... vehicle_velocity_converter/... measurement_range/pointcloud /perception/obstacle_segmentation/ /pacmod/** obstacle_stop_... gyro_odometer voxel_grid_... pose_initializer /planning/scenario_planning/max_velocity_candidates... lane_driving/trajectory [Trajectory] parking/trajectory [Trajectory] crop_box_filter pacmod3 voxel_grid_downsample/pointcloud range_cropped/pointcloud <pose_initializer_srv> <CAN> random_... scenario_selector /initialpose3d /contr... YMC GolfCart trajectory [Trajectory] /perception/occupancy_grid_map/ twist_estimator/twist_with_covariance no_ground/oneshot/pointcloud ndt_scan_matcher ad_service_... external_velocity_... pointcloud_to_... pose_estimator/... JapanTaxi common_... downsample/pointcloud /initialpose /planning/scenario_planning/max_velocity... motion_velocity_... /vehicle/engage /autoware/engage pose_twist_fusion_filter/... /planning/scenario_planning/trajectory [Trajectory] /autoware/state /... HMI laserscan_to_... ekf_localizer HMI pose_twist_fusion_filter/... o... pose_twist_fusion_filter/... occupancy_grid_... /planning/scenario_planning/max_velocity_candidates... /tf... stop_filter localization_error_monitor Sensing /localization/kinematic_state... /diagnostics /perception/occupancy_grid_map/map /perception/obstacle_segmentation/pointcloud Localization Perception Planning Control System VehicleInterface Vehicle HMI XX1 X2 X1 S1 Autoware Node Diagram 実証実験向け自動運転タクシー ECU&ハードウェア ◆ 既存システムの要改良点を洗い出す ➢ ➢ ➢ ➢ GPUベース処理 センサー処理 Localization x86 CPU :カメラ画像認識、Perception :LiDARセンサー前/後処理。GPU、CPUリソース消費大 :点群処理による自己位置推定 :ハードウェアIPビジネス推進を見据え、ARMへの置き換え、RISC-Vコアの活用 21
3.自動運転システム効率化への取り組み - 新規アーキテクチャの構築 Perception ③ Tracking Scenario Selector Prediction ④ Mission Traffic Light Detection Lane Driving ① Sensors Parking Control Etc. Classifier ② Sensing 自動運転アクセラレータ Scenario Dynamic Object Detection 自動運転システムオンチップ Planning 位置推定 NDT 画像認識 yolo v3 状態推定 EKF 点群処理 Acc 制御用 ECU ARM or RISC-V リアルタイム処理用メニーコア(RISC-V) Localization Map Data Vehicle Interface PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU PU Vehicle ◆ Autoware システムに対し、性能分析を実施した結果 ① ② ③ ④ 高スループットを要求されるセンサー処理 LiDAR主体の自己位置推定 GPUによる処理高速化が有効だが既存GPUでは性能過剰な処理 安全性に直結する処理のリアルタイム化 SoC 化価値アリ 22
3.自動運転システム効率化への取り組み - 研究開発フローとFPGAの役割 ECU&FPGA実験 実車両での 実証実験データ 性能解析 • Autoware解析 • CPU負荷確認 • SoC開発方針決定 ハードウェア検討 • • • • チップ設計 アクセラレータ開発 SoCアーキテクチャ構成 ハードウェア選定 試験フィードバック・改善 試験性能確認後 SoCをロールアウト ソフトウェア検討 FPGA 動作確認 • OS、ミドルウェア開発 • ROS2 対応 • ライブラリ設計 アプリケーション開発 • アクセラレータ設計 • ECU検討 • シミュレータ開発 ARM コア Host 動作試験 実証実験データ + 実験装置 シミュレータ試験 新規SoC を搭載したシステムで実車 実証実験 (22年度目標) 車両ECUを 段階的に SoC 置き換え FPGA の役割と 開発内容 GPU/AI チップでの高速化が 難しく、計算資源が多く必 要な処理を選別 FPGA実験 • RTL 設計 + FPGA 実験 • x86PC との通信 組み込み試験 • システム組み込み • 他装置との I/F 調整 • ARMコアとの通信 • RISC-V 連携 • 単体/結合試験 23
4.自動運転ハード開発者にとって重要なこと ※ (私見) 24
4.自動運転ハードウェア開発者にとって重要なこと (私見) ◆ 前提知識・心構え ➢ 自動運転システム要件の前提を把握する。ODD (Operational Design Domain) ターゲット ✓ 分類例:私有地 (人が居ない/居る)、公道(歩行者扱い/一般道路)、 ✓ 自動車の大きさやセンサー構成 (例:バスなどは多数のセンサーが必要、低速のみ車両なら少なく済む) ➢ 関連知識を得る:全性、拡張性、冗長性、通信、コスト、法律 ➢ 横方向連携はすごく重要! ◆ 自動運転ソフトウェアアルゴリズムは頻繁に更新され、演算ライブラリの更新などでスペックが変 わる事は多い。全体システムを把握できる or 把握しようとし続ける能力が重要 CONTACT US https://tier4.jp/ Thanks Again ! ◆ 4月新入社員取り組み紹介 25