誰もが手軽にROSロボット/IoTシステムの開発に取り組める「RDBOX」とは:仮想環境を使ったクラウド時代の組み込み開発のススメ(5)(4/4 ページ)
IoT/クラウドロボティクス時代のシステム開発を加速化する仮想環境の活用について解説する本連載。第5回は、“現実のインフラレイヤー”の構築と運用を含めて、自動化する「ツラさ」を乗り越えるための策として、筆者らが研究開発に取り組んでいるOSS「RDBOX」について紹介する。
クラウドネイティブがもたらすうまみ
Kubernetesでは、1つ以上のコンテナの集合である「Pod」を、ワークロードリソース(≒アプリケーション)の最小かつ最も基本的な実行単位として扱います。実行するためにはManifestに、ワークロードの“望ましい状態”をYAML/JSON形式で記述します(詳細は前回の記事を参照してください)。
今回のデモで使用したGitLabの場合、40程度のワークロードリソース、サービスリソース(≒ネットワーク)の組み合わせによる「マイクロサービス・アーキテクチャ」によって一つのシステムを提供しています。従来はこれを、手動で構築/運用する必要があり多大な労力を要しました。
一方で、Kubernetesの場合、GitLabをはじめ「クラウドネイティブなアプリケーションの供給元」(elastic、jupyterなど他多数)が、Manifestファイルを併せて公開しています。これらを使うと、エンジニアチームは、使いたいアプリケーションを数ステップで構築できます。また、これらのManifestファイルは、Helmというツールをかませて使われることが事実上の標準となっています。Helmでは、複数のManifestファイルをまとめて1つのバージョンとして管理し、アップデートやロールバックといった運用もサポートします。このことから、Kubernetes向けのパッケージマネジャーとも呼ばれています。併せてテンプレートエンジンを使って、Manifestファイルを出力する仕組みを取っており、環境に合わせたマイグレーションを容易にしています。クラウドネイティブなアプリケーション供給元はHelmの「Chart」も合わせて提供しているケースが多く見られます。
このように、Kubernetesのエコシステムを活用することで、エンジニアチームにとって使いやすいクラウドネイティブなアプリケーションを選択し、構築/運用することが簡単に行えるようになります。IT分野でよく使われているツールを活用することはもちろん、ROSロボット/IoTシステムに最適なアプリケーションをHelmチャートとして流通させて、業界全体で開発効率を上げていく世界も実現できると考えられます。
シミュレーション環境を使ったCIパイプラインの課題
前回の記事では、シミュレーション環境と現実の作業環境の間にギャップについて整理しました。その際に着目したギャップ要因は次の通りです。
- 各環境の“可観測性”のギャップ
- 環境同士のギャップ
可観測性が高い状態とは「開発対象となるROSロボットやIoTシステムの動作が、内界および外界から正確に計測されて、検証に必要な計測結果が適宜アウトプットできる状態」と本連載では定義します。この状態は「機械的に」フィードバックサイクルを回す上で重要になります。それは、「早く」「確実に」という、相反する要件を満たすためには「機械的に処理する」というアプローチが有効であるという筆者らの仮説に基づきます。
一方で「シミュレーション環境」と「現実の作業環境」とで大きく異なる事情として、動作結果の計測項目を現実の作業環境ではシミュレーション環境ほど容易には増やせない点にも考慮が必要です。特に外界からの計測は難しい部分も多く、コストも掛かるため、機械的処理の一部に、人間の判断(目視によるテストなど)も組み込まなければならないと考えられます。
進化の速い情報技術(IT)分野で、着実に成果を積み重ねていくためには、CI/CD(Continuous Delivery、継続的デリバリー)をはじめとする開発技法の活用はもはや欠かせません。今後に向けて、人間の判断を極力機械的に行えるような情報提示方法や、承認シーケンスのデザインも重要な要素になってくると考えられます。
おわりに
IoT(Internet of Things、モノのインターネット)は情報技術(IT)の総合格闘技です。
今回の記事で紹介した、シミュレーション環境と現実の作業環境の架け橋となるRDBOXは、OSS正規版(v1.0)リリースに向けて、「ユーザビリティの改善」「信頼して使い続ける仕組みの整備」の2本柱を軸に、設計、開発に関する作業が絶賛進行中です。
シミュレーション環境:箱庭は、Unityコミュニティー、ROSコミュニティー、クラウドコミュニティー、組み込みコミュニティーといったさまざまなソフトウェアドメイン内のメンバーが協力し、開発しています。教育用途でのパッケージ構築と普及を目指す一方で、製品開発への展開も視野に入れた研究開発も進めています。
今後、箱庭およびRDBOXでは「クロスコミュニティー・プロトタイピング・ガーデン」を中長期コンセプトに掲げて活動を進めていきます。ここには、ソフトウェアコミュニティーのみならず、工学分野全般の技術者コミュニティー、さらには街づくり、施設管理、デザイナーなど非技術者コミュニティーも含めた「世界中の叡智」が集い、さまざまな課題を解決する際の出発点となるにふさわしい「場」を作っていきたいと考えています。これからの発展にご期待ください。
(連載完)
謝辞、特記事項
本記事で紹介した「箱庭」におけるUnityパッケージの設計と作成に当たっては、宝塚大学 東京メディア芸術学部 准教授の吉岡章夫氏および学部生の杉粼涼志さん、木村明美さん、千葉純平さんにご協力いただきました。
HackEVのUnityアセットは、ETロボコン実行委員会からご提供いただいたデータを基に作成しています。実行委員会の皆さまに深く感謝いたします。ただし、本アセットはETロボコンの本番環境とは異なりますので、大会に参加予定の方はご注意ください。また、本アセットは、個人利用または教育利用に限定してご利用ください
TurtleBot3のUnityアセットは、株式会社ロボティズからご提供いただいたデータを基に作成しています。ご協力いただき深く感謝いたします。
本記事記載の社名、製品名、ロゴは各社の商標または登録商標です。
筆者プロフィール
福田 竜也(ふくた たつや)株式会社インテック 先端技術研究所
ロボティクス分野におけるITの利活用についての研究開発に従事。ロボット開発プラットフォームROS(Robot Operating System)やクラウドネイティブ技術(Kubernetesなど)のエッジ延伸について強い関心がある。研究成果としてOSS(RDBOX)を公開中。TOPPERSプロジェクトの箱庭ワーキンググループに参画して活動中。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「仮想環境を使ったクラウド時代の組み込み開発のススメ」バックナンバー
- クラウドネイティブで実現する、シミュレーションと実機テストのボーダーレス開発
IoT/クラウドロボティクス時代のシステム開発を加速化する仮想環境の活用について解説する本連載。第4回は、前回紹介した「クラウドネイティブ」の考え方に基づき、製品開発の課題になっている、シミュレーション環境と実機テストの間にあるギャップを埋める方法を紹介する。 - 組み込みエンジニアも知っておきたい「クラウドネイティブ」とは
IoT/クラウドロボティクス時代のシステム開発を加速化する仮想環境の活用について解説する本連載。第3回は、IT分野で浸透してきている「クラウドネイティブ」という考え方とその狙い、支える技術などについて紹介した上で、組み込み分野におけるクラウドネイティブの可能性について説明する。 - 日本の伝統を受け継ぐ仮想環境「箱庭」でIoTシステムの統合開発を加速する
IoT/クラウドロボティクス時代のシステム開発を加速化する仮想環境の活用について解説する本連載。第2回は、IT分野と組み込み分野の相克を乗り越えて、IoTのシステム開発/サービス構築をスムーズに進めるための「箱庭」を紹介する。 - IoTシステムの開発はなぜ難しいのか、ITと組み込みの相克を克服せよ
IoT/クラウドロボティクス時代のシステム開発を加速化する仮想環境の活用について解説する本連載。第1回は、IoTのシステム開発/サービス構築の難しさや、その原因になっているIT分野と組み込み分野の相克について紹介する。 - ロボット開発プラットフォーム「ROS」はどのように進化してきたのか
ロボットの開発に広く利用されるようになっているロボット開発プラットフォーム「ROS(Robot Operating System)」の活用について解説する本連載。今回は、ROSがオープンソースソフトウェアとしてどのように進化してきたのについて紹介する。