ROS 2のコンポーネントとワークフロー

The ROS 2 system for new applications

図1. 新しいアプリケーション向けのROS 2

サポート対象ハードウェア
プラットフォーム:

  • Arm64
  • RISC-V
  • Real-time systems
  • Intel® x86-64

サポート対象オペレーティング
システム:

  • Ubuntu Linux
  • Yocto Project Linux
  • QNX
  • VxWorks®

サポート対象ミドルウェア
サービス(DDS):

  • Cyclone DDS
  • Fast DDS
  • Connext DDS
  • Eclipse iceoryx

ROSコミュニティーからの、その他の利用可能なコンポーネント:

  • MOVEit
  • Nav2
  • Control

ROS 2とYocto Project Linuxビルドシステム

the Yocto build system and its layers

図2. Yocto Projectのビルドシステムとそのレイヤを表した図

レイヤは、機能によって結合されたお客様のパッケージのコレクションです。例えば、meta-ROSレイヤはROS 2ディストリビューションのすべてのパッケージを含んでいます。このパッケージの中には、個々のパッケージの様々なレシピがあり、どのようにパッケージを構築、インストール、および/または変更したいかを記述することができます。

Yocto Projectのビルドシステムを使用すると、レイヤ単位でのビルドが可能です。レイヤを追加すると、機能も追加されますが、その下にある既存のレイヤ内の特定のコンポーネントはレイヤ追加後も変更可能です。

Yocto Project LinuxとROS 2向けLinuxデスクトップの比較

  Yocto Project Linux Desktop Linux
ROS 2 meta-ros rosdistro
Distribution Source Binary
Compilation Cross Native
Silicon Vendor ARM, Intel, Nvidia, NXP, RISC-V Intel, ARM
Build System BitBake colcon
ROS 2 meta-ros rosdistro
Performance Tuning Easy (flexible) Middle
Footprint Tuning Easy (multiple profiles) Difficult
Learning Curve Difficult (layers, recipes, etc.) Middle (colcon, bloom, packages)
Licenses SPDX generation Possible
SDK Available N/A
Security Updates Available Available

図3. Yocto Project LinuxとROS 2向けLinuxデスクトップの比較

Yocto Project LinuxとLinuxデスクトップの比較で、以下のような重要な点がわかります。

  • Linuxデスクトップでは、用意されたバイナリパッケージの変更は容易ではありません。一方、Yocto Project Linuxは、ソースディストリビューションを提供し、開発者が特定のパッケージをベースに依存関係を選択・変更できる「レシピ」を提供します。
  • クロスコンパイルモデルとネイティブモデルの比較では、クロスコンパイルはホストを必要とします。つまり、あるコンピュータが他のコンピュータのためのディストリビューションをコンパイルする責任を負うことになります。
  • Yocto Project Linux は、Linuxデスクトップに比べて、シリコンベンダーのサポートが大幅に充実しています。
  • Linuxデスクトップのパフォーマンスを上げるためのチューニングは骨が折れますが、不可能ではありません。しかし、Yocto Project Linuxのチューニングは簡単です。
  • Yocto Project Linux では、アプリケーションを開発するためのSDKが提供されますが、Linuxデスクトップでは提供されません。

多くの違いがあるにもかかわらず、どちらもメタデータ情報を読み取り、ユースケースに基づいてパッケージをコンパイルするといった、同じようなビルドシステムを共有しています。

ウインドリバーのアプローチ

Wind River Studio

Studio offers cloud-native platform for developing

Wind River Studioは、インテリジェントエッジシステムの開発、デプロイ、運用、サービスを行うための、初のクラウドネイティブプラットフォームです。

Wind River® Studioは、セキュリティ、安全性、信頼性を必要とするミッションクリティカルなインテリジェントエッジシステムの開発、デプロイ、運用、サービスを行うための、初のクラウドネイティブプラットフォームです。変革的なビジネスの成功を加速するために、一元管理によって、ライフサイクル全体にわたりデジタルスケールを可能にするよう設計されています。

» 詳細はこちら

RTOS

Wind River Studioには、市場をリードするリアルタイムOSのVxWorksが搭載されており、VxWorks向けROS 2(ROS 2 for VxWorks)が追加されました。ROS 2は技術的にはRTOS製品の一部ではありませんが、ROS 2 for VxWorksではROS 2のフレームワークをRTOSに統合するために必要な修正と、ビルドスクリプトが提供されています。ロボットプラットフォームやアプリケーションの開発者で、SDK、Visual Studio Code、およびリアルタイムコンテナを使用してVxWorksが提供する最新の開発ワークフローをご利用になりたい方は、こちらから詳細情報をダウンロードしてください。

ROS 2 for VxWorksは、2つの方法で構築することができます。

  1. 無償かつ非商用利用のライセンスで提供されているVxWorks SDKを使用する
  2. 商用ライセンスのVxWorks製品を使用する

VxWorks SDKビルドは、従来のコマンドラインレシピとCMakeなどのツールを使用します。2つ目のビルドオプションは、VxWorksのソースおよびイメージビルドプロジェクトと統合されています。

このプロジェクトは、ROS 2のビルドに必要な依存関係を提供しますが、ROS 2は特定のビルドホスト上の特定のビルドツールも必要とします。このため、ウインドリバーでは、ROS 2のビルドを自動化するビルドスクリプトを提供しています。これには、ビルドに再利用可能なサンドボックス環境を使用したい開発者向けのDockerコンテナも含まれます。

» 詳細はこちら

Wind River Labs

ROS 2 for VxWorksは、Wind River Labsのテクノロジーとしても含まれています。その他のロボット工学のデモやプレゼンテーションについては、 Wind River Resource Libraryでご覧いただけます。

» 詳細はこちら

LINUX OS

Wind River StudioのLinux OSは、Wind River Linuxをご利用いただけます。堅牢で信頼性が高く、セキュアなLinuxベースの組込みデバイスやシステムを、自社開発(RYO)に伴うリスクや開発の労力なくビルド、デプロイすることを可能にします。ウインドリバーは、お客様のコードベースを最新の状態に保ち、不具合の追跡と修正、セキュリティパッチの適用、厳しい市場の要件や認証に準拠したランタイムのカスタマイズ、IPおよび輸出コンプライアンスの円滑化、コストの大幅な削減を実現します。

Wind River Linuxの主な機能:

  • 堅牢性、信頼性、安全性に優れたLinux ベースのエッジデバイスやシステムを、RYO (Roll-your-own) のようなリスクや開発の労力なしにビルド、デプロイ可能です。
  • 市場投入までの時間を短縮し、総所有コストを削減し、組込みシステム用オープンソフトウェアの可能性を最大限に引き出します。
  • デプロイしたデバイスのロイヤリティやサブスクリプションから解放されます。
  • 完全なオープンソースやYocto Project互換のツールで動作します。
  • 小容量のディスク、小さいメモリサイズ、リアルタイム(preempt_rt)、高可用性に対応した構築が可能な独自のLinuxを活用します。
  • すべてのウインドリバー製パッケージのコンテンツ、著作権、ライセンスに関する情報により、責任やコンプライアンスに関する問題を回避することができます。

» 詳細はこちら