3Dシミュレーション環境とAIを活用したロボット開発ワークフローのご紹介

MathWorks アプリケーションエンジニアリング部 Nobuaki Fukuchi
2023/09/11© 2023 The MathWorks, Inc.
1

自律ロボティクス開発ワークフロー
3Dシミュレーション

Simulink®
MATLAB®
システムエンジニアリング
System Composer™
連成

プラットフォーム設計

シーン・環境AI・自律系設計

オブジェクト・アクター

ロボットとの接続

ロボットモデル

認識・自己位置推定

制御

モーションプランニングテスト

ハードウェアへの実装

検証と妥当性確認
実装

Raspberry Pi™

ASIC, FPGANVIDIA® Jetson®

PLC

ROS Nodes

PX4 Autopilot

Speedgoat2

ばら積み物体ピッキングロボットのフルシミュレーション

実機
適用

認知・判断・制御を全てシミュレーションで検証し、実機の課題をフロントローディング
3

ロボット開発・AI活用における課題
1.

2.

ロボットに必要な要素技術は多様→集中したい要素技術が1つであってもロボットシステム全体の準備・検証が必要

AIの学習・検証に必要な教師データの用意にかかる労力大4

ロボットシステムのシステムフロー

プラットフォーム
(シミュレーション or実機)

センサ計測

これら全てが研究・開発したい技術でしょうか？

認識

状態遷移・管理
行動計画

ロボットシステム全体の要素技術は多い→注力領域以外はすぐに活用可能な技術資産を賢く流用

5

自律システム分野におけるAI活用の流れ
データ取得 データアノテーション💦

アルゴリズム開発

開発の本質！

💦

非本質的な作業

本質的な課題6

自律システム分野におけるAI活用の流れ
データ取得 データアノテーション

アルゴリズム開発💦

開発の本質！

💦

3Dシミュレーション

大量のデータ自動取得

非本質的な作業

最小限の非本質的な作業

本質的な課題

本質的な課題ボトルネックであるデータ取得プロセスを効率化し、開発全体を効率化
7

3Dシミュレーション環境（仮想環境）活用のメリット
開発の課題
▪
▪
▪

実機(ハードウェア)・データがないと試験できない
実験は安全なもの、かつ、データ数が限られる
再現性の確保、課題発見時の解析が困難

仮想環境活用の利点▪
▪
▪
▪

実機がなくても試験ができる
危険なシナリオやバリエーションを振った試験の実行
真値を使った、正確な評価・比較
Deep Learningの教師データ、アルゴリズム検証用の正解ラベル付けが不要
8

ロボット開発・AI活用における課題
1.

2.

ロボットに必要な要素技術は多様→集中したい要素技術が1つであってもロボットシステム全体の準備・検証が必要⇒MATLAB/Simulinkには豊富なロボットライブラリ・例題がご用意

AIの学習・検証に必要な教師データの用意にかかる労力大⇒MATLAB/Simulinkの3Dシミュレーション活用で労力を最小化

9AI駆動ロボットシステムの設計ワークフロー

1

データ準備

2

AI
モデリング

3

シミュレーション

4実装

AI駆動ロボットシステムの設計ワークフロー

1

データ準備

2

AI
モデリング

3

シミュレーション

4実装

学習データをどのように準備するか？

シミュレータによる教師データの自動生成

Simulink 3D Animation
Robotics System Toolbox
Computer Vision Toolbox

ハードウェア連携による自動撮影

12物体検出/セグメンテーション Deep Learningの教師データ作成

sparseInst:instance segmentation用
Deep Learningモデル

RGB画像

depth画像(点群化可能)

物体検出用矩形データsegmentation画像

手間がかかる教師データ作成を”リアル”なシミュレーションで大量作成
13

Metallic, Shininessプロパティによる見た目の変化

Metallic

Shininess

14

Metallic, Shininessプロパティによる見た目の変化

Metallic

見た目のバリエーションを増やし、学習データのDomain randomizationに寄与
Shininess

15

合成データの利用例

教師データの自動生成⇒リアルデータと合わせる

合成画像を生成物体検出器を学習

誤ったラベルのみ修正

現実のデータを自動ラベリング
16

AI駆動ロボットシステムの設計ワークフロー

1

データ準備

2

AI
モデリング

3

シミュレーション

4

実装

ロボットシステム内でのAI活用

プラットフォーム
(シミュレーション or実機)

センサ計測
AI model認識

状態遷移・管理
行動計画

18

物体検出/セグメンテーション Deep Learningの教師データ作成
Deep Learningモデルによる検証

GitHub - hustvl/SparseInst:
SparseInst: Sparse Instance
Activation for Real-Time InstanceSegmentation, CVPR 2022

sparseInst: instance segmentation用Deep Learningモデル
使用したモデルはSimulation生成画像900枚で学習

物体検出用矩形データ
segmentation画像

sparseInstでのSim画像推定結果

sparseInstでの実画像推定結果

実画像のアノテーションなしで実画像の検出・セグメンテーションが可能！
19

実績のあるAIモデルを試す
YOLOv4による物体検出
Mask R-CNNによるインスタンス
セグメンテーション
U-Netによるセマンティック
セグメンテーション

Deep Learning Toolbox
Image Processing Toolbox
Computer Vision Toolbox
20学習、チューニング、可視化を行うアプリ

Deep Network Designer app tobuild, visualize, and edit deeplearning networks.

Classification Learner app totry different classifiers and findthe best fit for data sets.

Experiment Manager app to run
deep learning experiments totrain networks and compareresults.

21

OSSフレームワークとの連携▪

他フレームワークによる学習済みモデ
ルの取り込み– Tensorflow, Caffe, PyTorchモデル– ONNXフォーマット

Deep Learning Toolbox

他フレームワークとの連携

net = importTensorFlowNetwork(modelfile)net = importNetworkFromPyTorch(modelfile)net = importONNXNetwork(modelfile, …
'OutputLayerType',outputtype)22

AIモデル＋前処理・後処理によるAI認知アルゴリズムを構築

前処理

後処理

AI モデル
RGB-D 画像点群
再構築

物体検出

CADモデルマッチング

6 自由度の姿勢推定

Deep Learning Toolbox
Image Processing Toolbox
Computer Vision Toolbox

23

AI駆動ロボットシステムの設計ワークフロー

1

データ準備

2

AI
モデリング

3

シミュレーション4実装

ロボットシステム内でのAI活用

プラットフォーム
(シミュレーション or実機)

センサ計測

認識

状態遷移・管理
行動計画

25

Stateflowによる直感的な状態遷移・管理

複雑な状態遷移をGUIでわかりやすく管理26

ロボットシステム内でのAI活用

プラットフォーム(シミュレーション or実機)

センサ計測
認識

状態遷移・管理行動計画

27

ロボット分野の各種アルゴリズム
Robot manipulator algorithm
design◄ Inverse
Kinematics▪ Forward /Inverse
Kinematics(順逆運動学解析)

Trajectory
Tracking►▪ Kinematic constraints(機構制約の設定)▪ Generalized Inverse
Kinematics(汎用IK)▪ Trajectory generation andfollowing(経路計画&追従アルゴリズム)▪ Collision checking(干渉チェック)

Collision
Checking►
28

衝突判定を含めた軌道計画

Pick-And-Place Workflow Using CHOMP for Manipulators - MATLAB & Simulink - MathWorks 日本
Pick and Place Using RRT for Manipulators - MATLAB & Simulink - MathWorks 日本

29

モーションプランニング
逆運動学アプリ

軌道生成アプリジャーク/スナップ
最小軌道の生成

Plan Manipulator Path for
Dispensing Task Using
Inverse Kinematics Designer

Create Constrained Inverse
Kinematics Solver Using
Inverse Kinematics Designer

Generate Minimum Jerk
Trajectory

Robotics System ToolboxTM

Robotics System ToolboxTM

Robotics System ToolboxTM

30

ロボットシステム内でのAI活用

プラットフォーム
(シミュレーション or実機)

センサ計測
認識

状態遷移・管理
行動計画

31

シミュレーションによるセンシング、制御開発

Universal RobotのGazebo シミュレーション▪

▪

ROSによるロボット制御
GazeboとMATLABをROS経由で接続

KinovaのUnreal Engine シミュレーション▪

▪

ROS、または、MATLAB用APIによるロボット制御
MATLABのUnreal Engine連携機能を活用
32

Unreal Engine環境の作成

Object used to define actors in the Unreal Engine
viewer - MATLAB - MathWorks 日本

URDFを指定可能！
% worldの作成» world = sim3d.World();% シーン内にアクターを作成» sphere1 = sim3d.Actor('ActorName', 'sphere’);» sphere1.createShape(“sphere”);» world.add(sphere1);% アニメーションの実行» world.run()worldの作成
シーン内にアクターを作成

3Dシミュレーションの知識なしで容易に環境構築、アクターのスポーンが可能！

33

Unreal Engine連携用センサーモデルの提供
Automated Driving Toolbox
理想のピンホールカメラ

depthカメラ

LiDAR

ミリ波レーダーセマンティック セグメンテーション

魚眼カメラ

超音波センサ

ミリ波レーター
超音波センサ（確率的検出点）（確率的検出点）

カメラ、LiDAR、ミリ波、超音波センサのセンサモデルブロックを用意

34

AI駆動ロボットシステムの設計ワークフロー1データ準備

2

AIモデリング

3

シミュレーション

4実装

実機への接続

Universal Robot▪

▪

ROSによるロボット制御
GazeboとMATLABをROS経由で接続

Kinova▪

▪

ROS、または、MATLAB用APIによるロボット制御
MATLABのUnreal Engine連携機能を活用
36

AIモデルをCUDA ROSノードとしてJetsonに実装
Other ROS
nodes

CUDA ROS node
CUDA
ROSコード生成.cpp

CMakeLists.txt

NVIDIA® Jetson™
37

エッジデバイスへの実装例：SparseInstによるInstance segmentation
ONNX

Copyright (c) 2022 Hust Visual Learning Teamhttps://github.com/hustvl/SparseInst

80種類の物体をピクセル単位で検出可能な最新モデルを取り込みエッジデバイスへの実装までサポート

38

各種ハードウェアへのAIアルゴリズムの実装

CPU

1

Data
Preparation

2

AIModeling3

Simulation
and Test

4

Deployment

CodeGenerationGPUFPGA

詳細は次のセッションでご紹介
39まとめ1.

2.

ロボットに必要な要素技術は多様→集中したい要素技術が1つであってもロボットシステム全体の準備・検証が必要⇒MATLAB/Simulinkには豊富なロボットライブラリ・例題がご用意

AIの学習・検証に必要な教師データの用意にかかる労力大⇒MATLAB/Simulinkの3Dシミュレーション活用で労力を最小化

40

本日のアンケート

QRコード

アンケートご記入の方に講演資料を配布します

41