オープンソース自動運転シミュレーター「AWSIM」のご紹介と実装事例

83.2K Views

October 25, 22

スライド概要

弊社ではオープンソース自動運転OSのAutowareを開発しており、世界20ヵ国・500以上の企業、団体で使用されています。自動運転の開発において、シミュレーターはコストやリスクの面から非常に重要です。この度は弊社で開発したオープンソース自動運転シミュレーター「AWSIM」の実装事例をご紹介させていただきます。

こんな人におすすめ:
・自動運転に興味がある方
・Unityをデジタルツインに利用したい方
・機械学習データ生成やHILS等、Unityの様々なユースケースを知りたい方

受講者が得られる知見:
・自動運転シミュレーターに求められる技術
・車両/LiDAR Sensor/ROS2/地図・交通等の実装事例
・Unity Sensor SDKの活用事例

出演:
牧野 鷹秋 (株式会社ティアフォー)

--
初出: SYNC 2022 #UnitySYNC
https://events.unity3d.jp/sync/

profile-image

リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
2.

• • • • •

3.

• • https://tier4.jp/ • • • • • 東京大学 大学院情報理工学系研究科 准教授、名古屋 大学未来社会創造機構客員准教授、株式会社ティア フォー 創業者兼CTO、The Autoware Foundation 代表 理事。博士(工学)。 2004年慶応義塾大学理工学部情報工学科卒業、2008 年同大学院理工学研究科 開放環境科学専攻 後期博士 課程修了。カーネギーメロン大学、カリフォルニア 大学の研究員、名古屋大学大学院 情報科学研究科 准 教授を経て、現職。 専門はオぺレーティングシステム、組込みリアルタ イムシステム、並列分散システム。

4.

• • • • •

6.

• • • • • • • • •

7.

60+ MEMBERS • •

8.

20+ COUNTRIES 500+ COMPANIES

9.

30+ Vehicles

10.

• • • • • • • • • ROS2 Documentation: Understanding topics https://docs.ros.org/en/galactic/Tutorials/Beginner-CLITools/Understanding-ROS2-Topics/Understanding-ROS2-Topics.html

11.

① Sensorデータを取得 ② 各モジュールを通して 制御入力値を算出 ③ ステア、アクセルなど を入力して車両制御

12.

① Sensorデータを取得 ② 各モジュールを通して 制御入力値を算出 ③ ステア、アクセルなど を入力して車両制御

13.

① Sensorデータを取得 ② 各モジュールを通して 制御入力値を算出 ③ ステア、アクセルなど を入力して車両制御

14.

① Sensorデータを取得 ② 各モジュールを通して 制御入力値を算出 ③ ステア、アクセルなど を入力して車両制御

17.

NDT Scan Matching

19.

• • • • • •

20.

Clock Sensor Data ROS2 Control Input

22.

実機に代わり、AWSIMで シミュレーション

23.

• •

26.

• • •

27.

Autoware 起動 AWSIM 起動 車両初期 位置 自己位置 推定 自己位置 推定 目的地 セット 自動走行 開始 自動走行 目的地 到達 自動走行 目的地 到達

28.

• • •

29.

• • •

30.

ROSBAG Datasets Annotation Service Evaluation Service Build PreProcess Train Model Service Eval

31.

ROSBAG Datasets ① 機械学習で使 用するログを Annotation Service に登録 ② 学習時に登録 済みAnnotation データを読み込 む Evaluation Service Model Service Annotation Service Build PreProcess Train Eval ③ 学習後のモデ ルを管理する Model Serviceに データを格納

32.

ROSBAG Datasets ① 機械学習で使 用するログを Annotation Service に登録 ② 学習時に登録 済みAnnotation データを読み込 む Evaluation Service Model Service Annotation Service Build PreProcess Train Eval ③ 学習後のモデ ルを管理する Model Serviceに データを格納

33.

ROSBAG Datasets ① 機械学習で使 用するログを Annotation Service に登録 ② 学習時に登録 済みAnnotation データを読み込 む Evaluation Service Model Service Annotation Service Build PreProcess Train Eval ③ 学習後のモデ ルを管理する Model Serviceに データを格納

34.

ROSBAG Datasets ① 機械学習で使 用するログを Annotation Service に登録 ② 学習時に登録 済みAnnotation データを読み込 む Evaluation Service Model Service Annotation Service Build PreProcess Train Eval ③ 学習後のモデ ルを管理する Model Serviceに データを格納

38.

• • • • •

40.

• • • WheelColliderのタイヤ摩擦係数を0にすること で、独自のタイヤモデルを適用できる

41.

• • • WheelColliderのタイヤ摩擦係数を0にすること で、独自のタイヤモデルを適用できる

42.

𝒚 = 𝑫 𝒔𝒊𝒏[𝑪 𝒂𝒓𝒄𝒕𝒂𝒏 𝑩𝒙 − 𝑬 𝑩𝒙 − 𝒂𝒓𝒄𝒕𝒂𝒏 𝑩𝒙 ]

45.

• • • • • • •

47.

① LiDAR情報とメッシュ をUnity → RGLに転送 ② ノイズ適用、 レイトレ点群作成、 データ整形 ③ 点群データを RGL → Unityに転送 VisualizeとPublish ROS2

48.

① LiDAR情報とメッシュ をUnity → RGLに転送 ② ノイズ適用、 レイトレ点群作成、 データ整形 ③ 点群データを RGL → Unityに転送 VisualizeとPublish ROS2

49.

① LiDAR情報とメッシュ をUnity → RGLに転送 ② ノイズ適用、 レイトレ点群作成、 データ整形 ③ 点群データを RGL → Unityに転送 VisualizeとPublish ROS2

50.

① LiDAR情報とメッシュ をUnity → RGLに転送 ② ノイズ適用、 レイトレ点群作成、 データ整形 ③ 点群データを RGL → Unityに転送 VisualizeとPublish ROS2

51.

• • • • • • • • • • • • • • • •

52.

• • • • • • • • • • • • • • • •

53.

• • • • • • • • • • • • • • • •

54.

• • • • • • • • • • • • • • • •

55.

• • • • • • • • • • • • • • • •

56.

TIER IVではレイトレLiDARを使用 • • • • • • • • • • • • • • • •

57.

• • • • •

58.

𝐼𝑛𝑡𝑟𝑖𝑠𝑖𝑐 𝑝𝑎𝑟𝑎𝑚𝑒𝑡𝑒𝑟𝑠 = (𝑓𝑥 𝑓𝑦 𝑐𝑥 𝑐𝑦 ) • • • 𝐷𝑖𝑠𝑡𝑜𝑟𝑡𝑖𝑜𝑛 𝑐𝑜𝑒𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑠 = (𝑘1 𝑘2 𝑝1 𝑝2 𝑘3 ) • • •

64.

• • •

65.

• • • •

66.

• • • • MGRS座標系で原点オフセット

67.

• • •

68.

• • • • • •

69.

3Dモデルから点群を作成

71.

• • • • • • •

72.

*.OSMのParserを通して AWSIMにwaypointを作成

73.

• • •

75.

ros-sharp 通信方式 ROS-TCP-Connector ros2-for-unity Ros bridge 独自TCPプロトコル ROS2 native C#/Msg Generator C#/Msg Generator Msg Generator ライセンス Apache 2.0 Apache 2.0 Apache 2.0 ROS1/ROS2 ROS1 ROS1/ROS2 ROS2 siemens Unity technologies Robotec.AI https://github.com/siemens/ros-sharp https://github.com/UnityTechnologies/ROS-TCP-Connector https://github.com/RobotecAI/ros2-forunity カスタムメッセージの追加 開発元 URL

76.

ros-sharp 通信方式 ROS-TCP-Connector ros2-for-unity Ros bridge 独自TCPプロトコル ROS2 native C#/Msg Generator C#/Msg Generator Msg Generator ライセンス Apache 2.0 Apache 2.0 Apache 2.0 ROS1/ROS2 ROS1 ROS1/ROS2 ROS2 siemens Unity technologies Robotec.AI https://github.com/siemens/ros-sharp https://github.com/UnityTechnologies/ROS-TCP-Connector https://github.com/RobotecAI/ros2-forunity カスタムメッセージの追加 開発元 URL

77.

ros-sharp 通信方式 ROS-TCP-Connector ros2-for-unity Ros bridge 独自TCPプロトコル ROS2 native C#/Msg Generator C#/Msg Generator Msg Generator ライセンス Apache 2.0 Apache 2.0 Apache 2.0 ROS1/ROS2 ROS1 ROS1/ROS2 ROS2 siemens Unity technologies Robotec.AI https://github.com/siemens/ros-sharp https://github.com/UnityTechnologies/ROS-TCP-Connector https://github.com/RobotecAI/ros2-forunity カスタムメッセージの追加 開発元 URL

78.

AWSIMで使用 ros-sharp 通信方式 ROS-TCP-Connector ros2-for-unity Ros bridge 独自TCPプロトコル ROS2 native C#/Msg Generator C#/Msg Generator Msg Generator ライセンス Apache 2.0 Apache 2.0 Apache 2.0 ROS1/ROS2 ROS1 ROS1/ROS2 ROS2 siemens Unity technologies Robotec.AI https://github.com/siemens/ros-sharp https://github.com/UnityTechnologies/ROS-TCP-Connector https://github.com/RobotecAI/ros2-forunity カスタムメッセージの追加 開発元 URL

79.
[beta]
using UnityEngine;
public class HellowWorldPublisher: MonoBehaviour
{
void Start()
{
var stringPublisher = SimulatorROS2Node.CreatePublisher<std_msgs.msg.string>(“hello topic”);
stringPublisher.Publish(“hello world”);
}
}

80.
[beta]
using UnityEngine;
public class HellowWorldPublisher: MonoBehaviour
{
void Start()
{
var stringPublisher = SimulatorROS2Node.CreatePublisher<std_msgs.msg.string>(“hello topic”);
stringPublisher.Publish(“hello world”);
}
}

最小のコードはたった2行!

82.

LTE roter CP Trans OD perception OD perception NW Switch SUB ECU NW Switch OD perception Signage ECU OD perception NW Switch Outer Speaker ECU SUB ECU FOA ECU Display NW Switch NW Switch

83.

• • • • • • Simulated data of a Velodyne Puck in a small room using Unity Sensor SDK https://www.youtube.com/watch?v=ZXzTvtxx1bw&t=45s

84.

• • • • • Unity SystemGraph: Mechatronics systems simulation https://www.youtube.com/watch?v=ZXzTvtxx1bw&t=45s

90.

• Examples : Cut-In • https://releases.asam.net/OpenSCENARIO/1.0.0/ASAM_OpenSCENARIO_BS-1-2_User-Guide_V1-0-0.html • • • • • Examples : Double Lane Changer https://releases.asam.net/OpenSCENARIO/1.0.0/ASAM_OpenSCENARIO_BS-1-2_User-Guide_V1-0-0.html