Advent Calendar 2020 16日目担当の ソリューションアーキテクトの岩坪です。
aptpodのソリューションアーキテクトという役割は、自社プロダクトであるIoTプラットフォーム intdash をベースに、お客様の課題解決やDX(Digital Transformation)実現に向けたソリューション提案、システム全体のアーキテクチャ設計を行い、納品までのプロジェクトリードを行っていきます。
今回は弊社のintdashと、近年ロボット開発だけでなく自動運転車両開発など様々な産業で採用されているROS(Robot Operating System )との連携についてご紹介します。
はじめに
ソリューションアーキテクトである我々の仕事は お客様の課題に対して、いかに自社プロダクトintdashを効果的かつ効率的に活用した解決手段をご提案できるか に尽きると考えています。
お客様のニーズ、課題、悩みは様々ですが、それぞれに対して全てをただ求められるままに対応していたのでは、費用と期間がいくらあっても足りませんし、出来上がったものもお客様にとって本当に望んでいたものになるとは限りません。 そこで提案に当たっては次のようなことを考えていく必要があります。
- お客様に対してintdashが最大限に価値提供できるのはどの領域であるか
- 要件に対してintdashの特長が当てはまる領域はどこであるか
- 短期間でお客様の求めるシステムを提供する為に自社とお客様側システム/機器との境界をどこに持つべきか
- その産業のプロフェッショナルであるお客様に実現頂くべき領域はどこまでの範囲であるか
- 自社以外の技術/サービスで優れている領域があれば、その技術/サービスといかに連携を行うべきか
- その道のエキスパートの会社があるのであればその会社の技術に頼るべき
これらを考える上で重要なのは、自社の技術/自社のプロダクトの特長を意識しつつ、 お客様 ↔︎ aptpod、世の中の技術 ↔︎ intdashの技術 との適切な境界を考え、また、その境界をいかにスムーズに繋ぐことができるか?ということです。
境界をスムーズに繋ぐ為には、自社プロダクト以外との連携を行いやすいように、プロダクトとして 世の中の標準的な技術 への対応を進めていく必要があります。それにより、新規にお客様へシステム提供するに当たってのコスト、リードタイムは大幅に削減できます。弊社のintdashもこういった進化を徐々に行っています。
前置きが長くなってしまいましたが、今回は自社プロダクト intdash と、 近年、ロボット開発だけでなく自動運転車両開発などでも採用されている ROS(Robot Operating System ) との連携について自社の取り組みをご紹介したいと思います。
intdashのシステム構成
弊社のプロダクトであるIoTプラットフォーム intdash の特長としては以下があげられます。
- 高いリアルタイム性でデータ伝送できること
- サーバを介しても低遅延でデータを届けることができる
- 伝送時にパケロスしたデータの完全回収ができること
- 不安定な通信環境化においても全てのデータを回収できる
- 多種多様なデータに対して時刻を同期してデータ管理が行えること
- エッジサイドでデータに対してタイムスタンプを付与することで種々のデータを同一の時間軸で扱うことができる
- サーバに保存されたデータを利活用できること
- リアルタイムのデータ活用だけでなく、保存された過去データも容易に分析、学習などに利活用できる
intdashのシステムでは、データが実際に流れている自動車、ロボット、建機などの ターゲットデバイスに intdash Server と接続するためのゲートウェイデバイスを配置して、ゲートウェイデバイス上に自社プロダクトであるエッジ向けのミドルウェア intdash Edge を搭載することで、デバイスに流れるデータを intdash Serverまで伝送することが可能になります。
また、intdash Serverに伝送されたデータを、WebベースのダッシュボードアプリケーションであるVisual M2M Data Visualizer を使用することで、多彩に可視化することができます。
intdash Edgeが扱うデータはお客様側のシステム、デバイスにより様々であり、自動車業界におけるCANなど、intdash Edgeが標準で対応しているデータ形式もあれば、お客様ごとにカスタム開発することで対応するケースもあります。 intdash Edgeでは、デバイスとデータをやり取りする機能部位を、 Device Connector と呼んでいます。上記の カスタム開発 の対応を少しでも減らして、お客様に取って 短期・低コスト でシステムに導入ができるものを提供する為には、世の中で求められるデータ形式に対してプロダクトとして標準対応を進めておく必要があります。
そして近年、ROSを取り扱うシステムが多く見られるようになってきたこともあり、 弊社のプロダクトとしてintdash Edgeにおいて、Device ConnectorがROSに標準対応しました。 ROS nodeとしての ROS用のDevice Connector ができたことで、お客様のROSを取り扱うシステムに、intdash Edge搭載のゲートウェイデバイスを接続し、容易に、すぐに、低コストでintdash ServerへのROSメッセージのリアルタイム伝送が可能となりました。
また、複数台のデバイス上にROS用のDevice Connecterを使用したintdash Edgeを搭載することで、遠隔のデバイス間におけるintdash Serverを介したROSメッセージのやり取りも可能になります。 これは、 遠隔制御、協調制御、遠隔監視や、遠隔におけるROSのデータ利用 などのユースケースが考えられ、ROSを取り扱うシステムの用途を大きく広げることができます。
『intdash x ROS』で実現できること
これまでにご紹介の通り、intdash EdgeのROS用のDevice Connectorを使用することでROSを取り扱うシステムの様々な連携の可能性を広げることができます。
一般的にROSを取り扱うシステムのアプリケーション開発のワークフローは、下記のような流れになると思います。
特徴としては、開発しているアプリケーションをシミュレータ上で検証を行い、ソフトウェアの修正を進めます。さらに、実機を用いてフィジカル環境における検証を行い、またここでのフィードバックをソフトウェアに反映します。これらの作業を繰り返すことで、開発が進み、アプリケーションが成熟していきます。
このワークフローの中には下記のような要素が必要となると考えられます。
要素として、 「可視化」「シミュレーション」「テスト」「学習」「エッジ管理」 など多岐に渡りますが、これらに共通することは、エッジサイドのデバイス性能には限界があることから、様々なクラウドサービス等と連携してこれらの要素を実現する必要があることです。また、クラウド上のシミュレーション環境と連携して実機を開発・検証することで、フィジカル(実機)とバーチャル(シミュレーション)のデータを統合管理できるようになり、フィジカルとバーチャルの比較や相互フィードバックが容易になる利点もあります。
そして、これらクラウドサービスとの連携には、システム間のスムーズなデータ伝送なしには実現が難しいという課題があげられます。
『intdash x ROS』ではまさにこの「 スムーズなデータ伝送 」の手段を提供できます。 『intdash x ROS』で提供できる価値は具体的には下記の内容があげられます。
- 遠隔のROS空間を繋ぐ
- 同一のROS空間同様にintdash Serverを介してROSメッセージのやり取りを実現することが可能
- リアルタイムデータ伝送
- リアルタイムの遠隔制御、遠隔監視などの用途に耐えうる低遅延によるデータ伝送を実現することが可能
- ROSのデータ利活用
- intdash Serverに保存したROSメッセージを可視化・分析・学習・シミュレーションなどに活用することが可能
『intdash x ROS』のユースケース例
『intdash x ROS』の具体的なシステム構成の一例として、こちらの記事 『AWS re:Invent 2019 で AWS RoboMakerとintdash によるTurtlebot3の遠隔制御の展示を行いました!』でも紹介している「intdash x AWS RoboMaker」による Turtlebot3の遠隔制御、デジタルツイン環境のシステム構成を紹介します。
実際にTurtlebot3とAWS RoboMakerのシミュレーションが動いている動画はこちらです。 後ろのモニタに表示されているのが、Visual M2M Data Visualizerと、AWS RoboMaker上のGazeboの画面表示です。
Visualize remote control TurtleBot3 with AWS RoboMaker+intdash
RoboMakerのシミュレーション環境(Gazebo)と、実環境のController、Turtlebot3を各デバイスに搭載されたintdash Edgeがintdash Serverを介して接続することで、 実環境のTurtlebot3の遠隔制御、データ可視化だけでなく、シミュレーション環境のロボットに対する遠隔制御、データ可視化までを行うことができます。
一例ではありますが、『intdash x ROS』が実環境とシミュレーション環境である他システムを スムーズなデータ伝送により連携 できることがお分かり頂けたのではないでしょうか。
おわりに
今回は弊社のIoTプラットフォーム intdash とROSの連携についてご紹介しました。 繰り返しになりますが、『intdash x ROS』で解決することは下記です。
- 遠隔のROS空間を繋ぐことができる
- リアルタイムデータ伝送することができる
- ROSのデータ利活用ができる
ROSを取り扱うシステムを開発される中で課題をお持ちで、『intdash x ROS』の世界観に興味を 持たれた方はぜひaptpodへコンタクト下さい。
弊社では、intdashを AWSマーケットプレイス でも順次提供していきますので、興味ある方には 容易にお試しいただける環境をご用意できます。 『アプトポッド、高速IoTプラットフォーム「intdash」を AWS Marketplaceで提供開始』
また、ロボティクスでバリバリROSを扱っています!や、ROSって興味あったんだよね。というような方やintdashの技術、価値に興味を持って頂けたエンジニアの方は是非、こちらの弊社採用ページもご覧になって頂けましたらと。
aptpodと一緒にリアルタイムデータ伝送が実現する明るい未来をめざしましょう。