iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

Nvidia Isaacの概要

皆様、はじめまして。
入社7か月目の深澤と申します。

前職では鉄道の施工監督の仕事を行っていました。
鉄道の工事とは言ってもレールや信号、駅、など様々な工事があります。
そんな多種多様な工事の中で私は架線関係の施工監督を行ってました。
下記の写真で言うと赤く囲っている部分ですね。
鉄道業界からの転職で、まだまだ分からないことがありご迷惑をお掛けしますが
何卒宜しくお願い致します。

f:id:ipx-writer:20191025100207j:plain:w360


さて、挨拶はこれぐらいにして、本題に入りたいと思います。

概要

第2回オートモーティブワールド@名古屋で弊社はNvidia Isaacというものを使ってロボットのシミュレーションの展示を行いました。
今回はこのNvidia Isaacがどんなものなのかお話ししていきたいと思います。
Nvidia Isaacをざっくり説明しますと2019年1月にリリースされたロボティクス開発者向けのロボットエンジンやライブラリが組み込まれているツールキットです。
このツールキットを使うことで、今まで時間が掛かったロボットの制御部分の構築が手軽に作成することが可能です。
Nvidia IsaacではIsaacSDKとIsaacSimという2つのツールに分かれており、それぞれ制御部分とシミュレーション用のツールとなっています。

developer.nvidia.com
またようなツールで有名なものですとROS(Robot Operating System)というものがあります。
こちらも同様にロボティクス開発者のためのライブラリが公開されています。
wiki.ros.org



IsaacSDK

IsaacSDKではロボットの制御を行う部分を開発することができます。
IsaacSDKにはGEMと呼ばれる高品質な機能ライブラリがあり、ナビゲーションスタックやタグ認識、物体認識、音声認識といった機能があらかじめ用意されています。
これらの機能を組み合わせることで様々なロボットを作成することができます。
ROSと比較するとIsaacSDK自体に備わっているライブラリの数は少ないですが、ROSとブリッジをしてROSにあるライブラリを使用することも可能であるため、そこまで不便しません。
また、Nvidiaのホームページを見てみると以下のようなポーズや視線、ジェスチャーの検知などについての画像があるため、今後追加されていくと思います。
ライブラリの機能が増えれば、今まで以上にロボット開発に様々なアプローチができそうなのでとても楽しみです。
f:id:ipx-writer:20191025101106j:plain:w360
https://www.nvidia.com/ja-jp/deep-learning-ai/industries/robotics/

IsaacSim

IsaacSimはIsaacSDKで作成したロボットの動作確認をするためにシミュレーション環境を作成するツールです。
IsaacSimはゲームエンジンであるUE4(Unreal Engine4)をベースとして作成されています。
そのため、IsaacSimではMarketPlaceで購入したアセットやブループリントを使った環境の構築が可能です。
UE4に詳しい人が環境構築すれば、様々なテストケースでのロボットシミュレーションができそうです。
ロボット向け機械学習の学習環境の構築などにはよいかもしれません。
デフォルトで用意されている環境は倉庫、オフィス、病院の合計3つあり、かなりリアルに作られています。
・倉庫
f:id:ipx-writer:20191025142313p:plain:w360
・オフィス
f:id:ipx-writer:20191025142517p:plain:w360
・病院
f:id:ipx-writer:20191025142638p:plain:w360
人間をスポーンする機能をついているので、そのうちジェスチャー検知の機能があればそこに向かわせるといったことも可能だと思います。
ROSの動作検証で使われる3DシミュレーションツールとしてGazeboというツールがあるのですが、そちらに比べるとかなり動作が軽く、大量のアクターを出現させてもスムーズに動きます。
さすがゲームエンジンで使われているだけのことはあります。

まとめ

Isaacはロボティクス開発でシミュレーションを行いたい場合、とても有用なツールだと思います。
しかし、ライブラリの数はROSと比べるとまだ数が少ないためROSブリッジを使い、併用しながら実装していくか、ライブラリの機能の追加を待つ必要があります。
まだ、不十分なところがありますが将来性はあると思いますので今後も動向を見守りつつ情報の発信をしていきたいと思います。