【製品活用事例】Personal AI Drivers × ラジコン
弊社製品である Personal AI Drivers (PAIDS) を利用した走行デモンストレーションをご紹介します。
デモンストレーション概要
本デモンストレーションではオーバルコースを対象とし、車両運動シミュレータ CarSim にて PAIDS を実行させた結果と、ラジコン実機にて PAIDS を実行させた結果を比較しております。
「PAIDS の AI ドライバーモデル学習時に使用した対象ドライバーの走行ログ」、「CarSim の走行軌跡」、「ラジコンの走行軌跡」を比較することにより、AI ドライバーモデルが「対象ドライバーの操作傾向」を再現している事を体感いただけます。
デモンストレーション構成
【開発事例】構内物流におけるAGV最適化シミュレータ
弊社で開発を行っている「AGV に焦点を当てたシミュレータ」をご紹介します。
本シミュレータでは、お客様の構内環境を再現するとともに、AGV の走行ルートや台数を変更した際の生産に及ぼす影響を事前にシミュレートすることが可能です。
構内物流とは
構内物流とは、1 つの工場・倉庫におけるモノの入庫~出荷までの一連の流れを指します。
今回開発したシミュレータでは、場外の物流(離れた工場間の移動、販売物流)は対象から外れます。
今回紹介するデモンストレーションのシチュエーションは、ある工場内の加工ラインと組み立てライン間の物流が対象となります。
コンセプト
お客様のニーズをお伺いする中で、既存のシミュレーションツールは処理が重いという問題や、AGV 台数の最適化が課題と考え、AGV に焦点を当てたシミュレータの開発に踏み切りました。
AI との連携を見据え、高速に計算・学習を回せることを念頭に置き開発を行っています。
マップをカスタマイズすることで、お客様の構内を再現し、シミュレートを行えます。
Point 1
お客様の構内にて以下を行った際に生産台数へ及ぼす影響を家訓できます。
・AGV の台数を変更
・AGV の走行ルートの変更
Point 2
AGV についてスペックを変更できます。
・速度
・積載量
Point 3
構内における各種要素の設定、可視化ができます。
・積み込み・積み下ろしの所要時間の設定
・AGV ごとの進行方向の設定
・棚在庫状況の可視化
Point 4
シミュレータ内の時間を加速できます。
今後の展望
製品化に向けてアプリケーション化を推進しています。以下の機能を追加していく予定です。
・外部プログラムとの連携
・AGV の充電残量表示、充電機能
・特定の場所への最短ルート検索
【開発事例】ロボットアーム筆跡追従
より柔軟にそして様々な環境でロボットアームを使用したいというニーズが高まりつつある機運において、ロボットアームを操作するソフトウェア側にも環境に対する高度な適用力が求められています。
ここでは人が描いた筆跡をロボットアームがリアルタイムに認識し追従を行うデモンストレーションを紹介します。
強化学習を用いることで様々なパターンの筆跡に対してロボットは柔軟に対応し追従することが可能となります。この仕組みを用いると、例えばワークを「なぞる」タスクの中でも、被加工対象位置が毎回異なるようなケースにおいて、リアルタイムに被加工箇所を認識しライン追従を行うことが可能となります。
様々なパターンの筆跡に対してロボットは柔軟に対応し追従いたします。
強化学習とは
強化学習とはエージェントが、ある環境下において最大の価値を獲得するように試行錯誤を通じて学習する方法です。そのため、目的のエージェントの挙動を記述できなくとも、環境下でのエージェントの挙動の結果を定量的な価値で表現することができれば、学習により目的の挙動を達成できます。
コンセプト
実機を用いたソリューションをコンセプトとしたデモンストレーションとなります。
AI技術が成熟する中で開発のステージも概念実証・検証フェーズから実機への適用というフェーズへ移行しつつあります。
本デモンストレーションでは実機を用いた実装・検証に取り組みました。実機を用いることでよりお客様に近い環境を用意でき、精度の高い検証が可能になると考えております。
今後の展望
今後はより複雑な対象に対しても柔軟にタスクを行えるよう、学習アルゴリズム・学習シミュレーション環境の両側面からエンジニアリングを追究し、実環境において有用に機能するサービスをご提供いたします。
【開発事例】クラウドシミュレーション
車両などの実測データを確認・検証する際に、グラフのみだと振る舞い等イメージが付きにくいという課題があります。そのためシミュレーション上で車両自体の挙動をヴィジュアライズし、同時にグラフを表示することによって、より分かりやすく実測データを確認することができます。
また、クラウド上 (AWS) に実装を行うメリットとして下記の点があります。
・一時的に使用する際にマシンの購入費用がかからない
・開発環境 (OS) に縛られない
・離れた場所でも確認・検証を行うことが可能(リモートワーク等)
デモンストレーション(1) CARLA
実車で取得した CAN 情報やカメラデータを元に CARLA 上で再現しています。
また出力したいデータをダッシュボードに映し出すことが可能です。
走行している状態の車両の状態・カメラ映像からの結果を同時に確認することができます。
デモンストレーション(2) Omniverse
実機で取得したロボットアームの行動情報や指示値を Omniverse 上で再現しています。
また出力したいデータをダッシュボードに映し出すことが可能です。
用語説明
自動運転システムの開発・トレーニング・および検証のためのオープンソースシミュレータです。
今回は、車両の描画を美しいグラフィックで表現するために使用しています。
Omniverse は NVIDIA Isaac に内包されているプラットフォームです。
NVIDIA Isaac はロボティクスのためのプラットフォームとなっており、多様なツールボックスやフォトリアルな 3D 物理シミュレーションを行うことが可能な環境です。
デモンストレーション構成
今後の展望
車載カメラから見ていた映像もシミュレーション上に再現することで外界の状況と合わせて確認することが可能です。走行中の車両や稼働中のロボットの実測データをリアルタイムに取得し、クラウドへアップロードを行い、クラウド上で挙動を確認することができます。
そのため、データを収集しながら分析が可能となり実測データ取得から検証までの一連がスムーズに進めることが可能となります。
ロボットアームであれば、ダッシュボードのグラフと挙動を同時に確認することが可能となり、加重や速度に問題がないか、別々に取得したアームを同時に動かし接触しないかなど確認することができます。
その他、工場から離れた位置にいても状況を確認することが可能となり、不具合等が起こった場合に確認をすることが可能です。
また、クラウド上で上記を行うことでデータの一元管理や個々のマシンへ環境を構築する必要がなくなります。
【開発事例】シミュレーターを活用した複数台カメラによる物体追従
今後スマートシティ(都市 OS)等が進んでいく中で防災や MaaS といったサービスのニーズが高まっており、複数台のカメラ情報から同一のオブジェクトの判定が必要になると考え、 Vissim と CARLA を使用して、異なるカメラによる物体のトラッキングを実現するデモンストレーションを作成いたしました。
デモンストレーション概要
Vissim で現実世界に似た車両交通と歩行者交通を再現し、その車両・歩行者を CARLA に出現させることで、より美しいグラフィックで車両や歩行者を映し出し、現実世界に近いカメラ映像を取得します。
CARLA 上に再現される車両や歩行者を CARLA のカメラ 2 台を使用し、別々の視点からでも同一オブジェクトか判定させる機能を構築しています。
(人の顔が隠れていたり、車のナンバープレートが見えなくても複数台のカメラに写っている特徴を捉えて同一かどうか判定を行うなど。)
用語説明
自動運転システムの開発・トレーニング・および検証のためのオープンソースシミュレータです。
今回は、車両や歩行者の描画を美しいグラフィックで表現するために使用しています。
ドイツの PTV グループが開発・販売しているトラフィックシミュレータです。
学術研究のに基づいた行動モデルを用いて車両・歩行者の移動のシミュレーションが可能です。
Vissim の生み出す仮想の交通環境内でモビリティの制御や運用について検証したり、交通への影響を評価することが出来ます。
物体認識
画像や動画内に映っている特定のクラス(人間や車など)の物体を検出し、矩形で表示する機能です。
デモンストレーション構成
今後の展望
複数台のカメラ情報から同一のオブジェクトの判定ができると、ナンバープレートや人の顔など一意に判定できる部分が隠れていてもオブジェクトトラッキングを行うことが可能となります。危険車両の追跡や、その沿線にいるユーザーへの通知など各サービスに役立てることができます。
本デモンストレーションではシミュレーション環境で実装しましたが、カメラ毎にエッジデバイスへ実装するなど、現実世界で活用できる形で実装し、検証することも可能です。
また、データベースを構築することにより過去に特徴付けたデータを保管することができるようになり、各オブジェクトに対して渋滞回避のサービスを提供することも可能となります。
【開発事例】モデルベース開発 × 深層学習
情報の1例として、弊社で行った開発事例を紹介します。
―「ぶつからずに走る車」をテーマに、MBDと深層学習(Deep Learning)を用いた自動車の自動運転制御開発―
【 モデルベース開発(MBD) 】
・システム設計とモデルベース開発
昨今では、システム自体の複雑化、ステークホルダーの多様化、ユーザーニーズの変化によって、システム設計の重要性が高まっています。
システム設計のフェーズでは、QCDSE(品質、コスト、納期、安全、環境)のバランスを取ることを目的とします。
「メカ」「エレキ」「ソフト(制御)」のドメイン設計に依存せず、システムを「サービス」として捉え、全体最適を目指した検討が必要です。
システムを表現するためには、効率的な表記方法とコミュニケーション方法が必要となります。複雑なシステムでの検討を効率的に行うには、「モデル」を活用する事が求められます。
・モデルベース開発のメリット
「モデル」は、関係者間のコミュニケーションを円滑にするための共通言語です。自然言語による曖昧さを排除し、関係者の共通理解を担保することを目的とします。
【 深層学習(Deep Learning) 】
・なぜ深層学習(Deep Learning)が必要か
昨今では深層学習=AI というピックアップが多くされています。
それは事実の一部ではありますが、深層学習の強みは「ある関数を近似出来る」事です。
ある関数とは既存の関数(アルゴリズム)であったり、人間が作ることが困難な未知の関数であったりと様々で、それら関数を近似し、その推定を行うことが可能です。
前述の通りある関数を近似することが強みですが、それを現実化する為の特徴が大きく分けて3つ存在します。
1、ニューラルネットワークによるデータのみからの関数近似
2、データの抽象化
3、超並列化による高速化
・深層学習のユースケース
深層学習は計算量が膨大な既存アルゴリズムに対しても高速化が有効であり、また人間が開発することが困難な未知の関数に対しても有効です。今回の展示会では、強化学習の中でもQ学習と呼ばれる既存アルゴリズムの膨大な計算量を深層学習により近似・超高速で推論することで、リアルタイムでの処理を可能としています。
また入力が画像データとなりますが、推定結果が各アクションのQ値と出来る柔軟な点も深層学習の面白い特徴です。
・実車構成
実際の開発では、NVIDIA DRIVE PX2、Intel Goなどの自動運転開発プラットフォームや、NVIDIA JETSON TX2、Intel Cyclone V FPGAといったSoCを活用するのが望ましくあります。
デモ開発ではブースの規模等を鑑みて、認知、判断、制御間は無線通信を用いる構成としています。
認知はRCカーへ搭載したRaspberryPiにより実施し、判断は深層強化学習によって学習されたモデルの推論をDRIVE PX2で行います。
RCカーの制御はプロポへの可変抵抗を制御することで間接的に制御することにしました。
【開発事例】逆強化学習を利用したラジコンの自律走行
逆強化学習とは?
まず強化学習とは、人間が与えた報酬関数に従って試行錯誤を繰り返すことにより、報酬を最大化する一連の行動を学習するモデルです。
逆強化学習は、対象となる行動サンプルを元に報酬関数を推定する仕組みになります。
確率モデルと最大エントロピー計算などから人間が設計する事が難しい報酬関数を比較的少ない教師データから生成することができます。
デモンストレーション概要
本デモンストレーションは逆強化学習を用いたラジコンの自動走行を行っております。
障害物・経由地点・ゴール地点のなどの属性を判断し、人間の操作記録から走行ルートを策定後、
ゴール地点へ自動走行します。
実際に障害物・経由地点を自由に配置して頂けます。
逆強化学習の有用性
属性を学習データから見出すことにより、人間が言語化・定義できない事象も抽出することが可能になる。また、学習させたアルゴリズムは一定の汎用性・転用性もある。
逆強化学習の応用事例として、下記領域において活用の可能性があります。
●ワーキングカー等におけるヒューマンナレッジを必要とする動きの再現
●ドライビングテクニックのニュアンス(アグレッシブなドライビング、マイルドなドライビング等)を再現した自動運転
【開発事例】Jetson AGX Xavier – Caffe vs TensorRT –
TensorRTを使用した学習済みモデル速度比較 feat. Jetson AGX Xavier
TensorRTとは?
NVIDIA TensorRT™は、学習済みモデルの最適化を行うツールです。
実車搭載を考慮した際に、エッジデバイス特有のリソース制限の厳しいハードウェアに対するアプローチが可能です。
NVIDIA TensorRT™を使用することでJetsonなどのエッジデバイスに対し学習済みモデルの搭載が容易にできるため、採用しました。
デモンストレーション概要
Jetson AGX Xavierを2台使用し、同じ学習済みモデル(Caffe)で一方はCaffeを使用した推論処理、もう一方はTensorRTを使用した推論処理を動作させています。
画像1枚に対し最も認識率の高いクラスについて、クラス名称と確度(%)を出力しています。
検証用の画像としてThe Oxford-IIIT Pet Dataset(http://www.robots.ox.ac.uk/~vgg/data/pets/)を使用しています。
iPXの今後の取り組み
今後はNVIDIA TensorRT™だけでなく、組み込みソフトウェアへの推論環境の実装などに最適となるツールの選定・実装に取り組んでいきます。
【開発事例】Vissim×CarSim Co-simulation
群でみる、自動運転車両制御
「自動運転車」と「人間が運転する車」が混在している際に、ある一定時間で各車両がどういった挙動を行うか。
トラフィックシミュレーション・路車間・車車間通信に求められるモデル精度やロバスト性を評価するためのシミュレーションを行う連携システムの開発を行っています。
Vissim×CarSim連携概要
PTV Vissim の道路モデルはCarSim 上で描画され、両ツールの同一道路環境を再現しており、自車両・他車両座標情報をリアルタイムで連携させて車両群の中で自車両・他車両の動きをシミュレートする。今回のデモンストレーションでは、PTV Vissim と CarSim 間を連携させており、今後は+Simulink等の制御連携を含めた開発にも取り組んでいきます。
Vissim観点
交通流の中に自動運転車といった特殊車両を配置した際の流量計算を行う。
交通流の変化は勿論、渋滞や事故が発生するか等の検証が行える。
CarSim観点
複数の他車両が存在する環境で、ADAS モデルの検証を実施が可能で他車両の挙動から減速・レーンチェンジなどの妥当性を検証が行える。
PTV Vissimで生成される他車両(交通流)が交通流量計算に基づいて生成される為、実環境により近いシミュレーション環境が再現される。
【開発事例】PROPHESEE未来の行動予測
イベントベースカメラを用いた移動体行動予測デモンストレーション
従来のカメラではデータ量が重く処理にもある程度の時間を要する為、未来の行動予測を行うのは不向きであるが、PROPHESEEでは画素自体が時系列情報を持っている利点をニューラルネットワークを用いて未来の移動地点の予測をさせる。
PROPHESEEとは?
イベントベース方式のセンサーで、従来のカメラのように一連のコマ画像を処理するフレームレート方式に比べ、イベントベース方式はデータが軽い為、処理が速い。
移動体の光量変化を捉えてビジュアライズしており、下図の“Change Detection”は光量変化のみを映している。
デモンストレーション概要
パスプランニングや落下物の検出など数秒後の移動地点を予測するニーズから光量変化を捉え、変化毎にピクセルを送出するイベントベースカメラPROPHESEEを用いて未来の行動予測のコンセプト実証を行っています。
従来のカメラではデータ量が重く処理時間を要する為、未来の行動予測を行うのは不向きであるがPROPHESEEの処理が軽い利点を用いて数秒後の行動予測を行う。
本デモンストレーションではLSTM(Long short-term memory)を用いて動体の○秒後の移動位置を予測しています。
【開発事例】サーマルセンサーとDeep Learningを利用した一般物体認識
技術情報の1例として、弊社で行った開発事例を紹介します。
―GPUを活用したDeep Learningによる熱情報からの物体認識―
サーマルセンサーから取得できる熱情報により物体をリアルタイムに検出することができます。
この開発を進める中で、多くの苦労した点や工夫した点があります。
先ず工夫した点は、人を映した時に人と判断できるように人以外を含めた20種類のカテゴリー学習だけでなく、人の一部のみ移った画像も学習させることで人の特徴抽出に特化できるようにしたことです。
学習データの撮影は社員に手伝っていただき作成しましたが、人の画像だけでも1,000枚を超えるデータを作成しました。
次に苦労した点は、物体認識の学習済みモデルをサーマル画像用に転移学習させる際、GPUメモリが足りなかったことです。急遽クラウドのGPUインスタンスを活用して先に進めることができました。
また、用意していたサーマルセンサーがWindows専用であり、Linux(Ubuntu)に対応していなかったため、ドライバを作りこむ必要がありました。
しかしここでまた問題が発生しました。当初V4LからはRGB値でセンサーの値が取得できると考えていたのですが、RGBモードに対応していませんでした。そのため、センサーのレンジ情報を加工しました。
テストでは冷凍食品をセンサーの前に持ってきてみたり、ライターで火を撮ったり、熱湯の入れたカップを撮ったりするというような地道な作業もありましたが、無事に開発することができて達成感を感じることができました。
~ 参考動画 ~
参考として、実際に撮影した動画を公開します。
赤色で囲まれた枠の左上に人なら”Person”、車なら”car”と表示されます。