誰もが手軽にROSロボット/IoTシステムの開発に取り組める「RDBOX」とは:仮想環境を使ったクラウド時代の組み込み開発のススメ(5)(3/4 ページ)
IoT/クラウドロボティクス時代のシステム開発を加速化する仮想環境の活用について解説する本連載。第5回は、“現実のインフラレイヤー”の構築と運用を含めて、自動化する「ツラさ」を乗り越えるための策として、筆者らが研究開発に取り組んでいるOSS「RDBOX」について紹介する。
RDBOXが使うインフラレイヤー向け自動化戦術は“枯れた技術の水平展開”
自動構築/自動運用は、次の技術要素により実現します。
- ROSロボットやIoTシステムに最適化したKubernetesクラスタ、用途別の多種多様なコンピュータ群 の自動構築/自動運用
- IaC(Infrastructure as Code)※2)を指向した、OS/ミドルウェアの自動セットアップスクリプトで実現(図3)
- オンプレミスおよび各クラウドベンダーのIaaS/PaaS/SaaSを最適に組み合わせてKubernetesクラスタを構築する機能を備える
- セキュアで拡張性の高いネットワーク の自動構築/自動運用
- IaC(Infrastructure as Code)を指向した、VPNネットワーク設定の自動セットアップスクリプトで実現
- 物理的な接点(Wi-Fi、イーサネット)を、小型ボードコンピュータ「Raspberry Pi」を使ったエッジコンピューティング端末「RDBOX-Edge」で実現
※2)OSやミドルウェアなどのITインフラの構築と運用をコード化すること
上記で列挙した技術要素は、IT分野で長年にわたって数百〜数千台のサーバ群を構築/運用してきたさまざまなノウハウと、その組み合わせに基づいています。だからと言って、ROSロボット/IoTシステムに大きな方針転換を迫ることは良い選択肢ではありません。
そこで重要になるのが、Raspberry Piで作るエッジコンピューティング端末であるRDBOX-Edgeです。標準インフラレイヤーの拠点では、同一セグメントのプライベートネットワーク制御を担います。この制御がクラウドネイティブな技術/考え方に対する「橋渡し」を担います。ROSロボット/IoTシステムが築いてきたノウハウやエコシステムと、クラウドネイティブなアプリケーション群を共存させることが可能です。
応用例:RDBOX×箱庭によるCIパイプライン構築
ここからは、RDBOXが提供するKubernetesクラスタの応用例を紹介します。
詳細な説明に入る前に、ROSロボットの結合テストを「シミュレーション環境:箱庭」の中で実行し、その結果を活用することで実現しているCI(Continuous Integration、継続的インテグレーション)のデモ動画をご覧ください。
シミュレーション環境:箱庭と組み合わせて、コミュニティー版GitLab(MIT Licence)が提供する、ソースコード管理機能およびCI Runner機能を使ってCIを実現しています。ソースコードをGitLabサーバにプッシュすると「静的解析→ビルド→ユニットテスト」が順に実行されて、最後に結合テストが実行されます。結合テストは、ROSロボット(HackEV)が搭載している照度センサーを使って、オーバルコースをライントレースで規定時間内に一周するという内容です。他にも走行距離の妥当性(遠回りしていないか? など)もテストに含みます。テスト結果は合否の他に、走行中の様子を収録した動画や走行ログなど(GitLabではアーティファクトと呼称)と合わせてソースコードとひも付けた管理が可能です。
Copyright © ITmedia, Inc. All Rights Reserved.