導入
20年以上の歴史を持つMontaVistaは、世界中の多様な業界で数百万台のデバイスを支えていることを誇りに思っています。
近年、最も急速に進化している技術分野の一つは、機械学習(ML)と人工知能(AI)の分野であり、これらはますます複雑化する分散型センサーおよびアクチュエーターのコンピューティングノードと組み合わされています。この文脈における「ロボット」という言葉は、多様な固定式および移動式のコンピューティングモジュールが連携して、ますます複雑なタスクを実行する複雑な集合体を指します。
この技術の応用範囲は、インテリジェント倉庫や工業生産ラインから、遠隔医療や自動運転車まで多岐にわたります。これらのタスクを支援する技術は、単純なコンピュータビジョンから、同時位置推定と地図作成(SLAM)、AI推論、さらには対話型ユーザーインターフェースまで多岐にわたります。
最高レベルの信頼性を誇るLinux組み込みアプリケーションが必要な時はいつでも、MontaVistaのエキスパートが最適なソリューションを見つけるお手伝いをいたします。
ロボットOS(ROS):
ロボットオペレーティングシステム(ROS)は、ロボットおよびロボットに類似した産業用アプリケーション向けのソフトウェア開発を容易にするオープンソースのロボットミドルウェアスイートです。ROS2はリアルタイムのユースケースをサポートするように設計されており、開発者はより堅牢で予測可能なロボットアプリケーションを構築できます。
ROS自体はオペレーティングシステムではありませんが、Linuxオペレーティングシステム上で頻繁に使用されています。サポートされているROSリリースは通常、AMD64およびARM64(最近ではWindows版も)向けの最新バージョンのUbuntu Linuxディストリビューション向けに、ビルド済みのディストリビューションとして提供されています。
このドキュメントでは、Robot OS(バージョン2)をベースとしたシステム設計のコンテキストにおいて、MontaVistaのCGX LinuxおよびMVSecureサービスの概要を説明します。
ROS2システムの構造
ROS2ベースのシステムは、ロボットアプリケーションを実現するために連携して動作する、相互接続された複数のコンポーネントで構成されています。以下に、典型的なROS2ベース(分散型)システムの構造の概要を示します。
ノード:
ノードはROS2における計算の基本単位です。ノードは、センサーの制御、データの処理、アルゴリズムの実行など、特定のタスクを実行する個々のプロセスです。
ROS2システム内では通常、複数のノードが同時に動作し、それぞれがロボットの機能の異なる側面を担当します。
ニーズに応じて、ノードは専用ハードウェア(例えば、AIやコンピュータビジョンなどのGPU負荷の高いタスク向けにハードウェアアクセラレーションを備えたNVIDIA Jetson)から、中規模の組み込みシステム(例えば、センサーやアクチュエータとの通信用)を経て、共有ハードウェア上で動作するコンテナ化または仮想化されたノードまで、幅広く利用できます。
ノードは、トピックを公開および購読することでメッセージを送受信し、相互に通信します。
トピックとメッセージ:
メッセージは、ノード間で交換される情報を表すために使用されるデータ構造です。各メッセージタイプは、センサーの読み取り値、モーターコマンド、ロボットの姿勢など、特定のデータ形式に対応しています。
トピックとは、ノード間でメッセージを交換するための名前付きバスのことです。ノードは、トピックにメッセージをパブリッシュしてデータを共有したり、トピックを購読してデータを受信したりできます。トピックはノード間の非同期通信を可能にし、ノードが独立してデータを送受信できるようにします。
データ配信サービス(DDS):
DDSは、分散型ROSシステムの異なるノード間でのデータ交換を容易にする、標準化されたデータ中心のミドルウェアです。ROSシステムの通信インフラストラクチャにおいて重要な役割を果たします。
ROS2は、さまざまなDDS実装の利用をサポートしています。ノード間の通信を処理するための一般的な選択肢としては、Fast RTPSやCyclone DDSなどがあります。これらは、ノード間でメッセージを効率的に交換するための、検出、シリアル化、転送といった機能を提供します。
ユーザーは、パフォーマンス、信頼性、拡張性といったニーズに最適なDDS実装を選択できます。高度なDDS実装は、数百から数千のノードを持つ大規模なロボットシステムにおける通信を処理し、堅牢性と耐障害性を確保します。
ROS-Industrial (ROS-I):
ROS-Industrialは、ROS2の機能を基盤とし、ROSの高度な機能を製造自動化およびロボット工学の分野に拡張するオープンソースプロジェクトです。ROS-Industrialリポジトリには、一般的な産業用マニピュレータ、グリッパー、センサー、およびデバイスネットワーク用のインターフェースが含まれています。
ROS-Iに関する詳細については、 https://rosindustrial.org/を参照してください。
解決策の説明
ROSベースのロボットのハードウェアは、通常、高性能なARMプロセッサまたは組み込み型x86プロセッサを中心に構築され、一般的にはLinux OSのいずれかのバージョンが動作します。
このセクションでは、ROS2ベースのロボットのライフサイクルにおける典型的な使用例をいくつか紹介します。
研究室でロボットのプロトタイプを作成する:
ROS2エコシステムの大きな強みは、オープンソースで利用可能なハードウェアセンサーとアクチュエーターの種類の豊富さです。これにより、ROSに付属するさまざまなシミュレーション環境を使用して、実際のハードウェアまたは仮想ハードウェアで非常に迅速なプロトタイピングが可能になります。
利用可能なハードウェアドライバの概要については、以下をご覧ください。
https://github.com/orgs/ros-drivers/repositories
研究室で開発したロボットを現実世界に持ち出す:
ROS2のドキュメントでは現在、Ubuntu(Debian Linuxベース)上でROSワークスペースをセットアップする方法が説明されていますが、プロフェッショナルなCICD開発ワークフローには、Yoctoベースのビルドシステムを使用することをお勧めします。MontaVistaのYoctoエキスパートが、ROSランタイムを組み込み開発フローに統合するお手伝いをいたします。
利用可能な Yocto バージョンと ROS メタパッケージのサポート状況の概要については、こちらをご覧ください: https://github.com/ros/meta-ros?tab=readme-ov-file#meta-ros
ロボットを健康に保つ
ロボットが産業環境に設置されると、リモートアクセス、メンテナンス、サービスのためにインターネットに接続されることがほとんどです。
現時点で最も重要なことは、ROSとLinux OSが最高のサイバーセキュリティガイドラインに沿って設計および実装されていることを確認することです。例えば、電源投入から起動までの信頼の連鎖を確保すること、そして適切に構成されたSELinux設定を使用することなどが挙げられます。
ロボットの耐用期間中、ロボット上で動作するソフトウェアはリモートで更新可能である必要があり、製造元は既知の脆弱性をすべて修正し、現場のロボットに適用することを保証しなければなりません。米国と欧州は最近、サイバーセキュリティに関する最新のガイドラインを発表しました。以下を参照してください。
https://www.cisa.gov/sites/default/files/2023-10/SecureByDesign_1025_508c.pdf
これらの要件を満たすことは、中小規模のエンジニアリングチームにとっては困難な場合があります。MontaVistaは、通信インフラのような過酷な環境下でもLinuxシステムを安定稼働させ続けるための数十年の実績を持っています。
まとめ
ROS2は、ロボットやその他の産業用分散型デバイスのプロトタイプ開発や開発を迅速に行うための優れたツールキットおよびミドルウェアプラットフォームです。
MontaVistaのCGX Linuxは、比類のない堅牢性と接続性を備え、厳しい産業ニーズに対応するように設計された組み込み産業システムを強化します。
MontaVistaのCGXの安全な環境は、セキュアブートと包括的なセキュリティ機能によって支えられており、現場のロボットに対して堅牢な保護とデータの完全性を保証します。
安全で信頼性が高く、接続性に優れた産業用堅牢組み込みシステムソリューションをお探しなら、MontaVistaのCGX Linuxはこれらの要求をすべて満たし、さらに多くのメリットを提供します。MontaVistaのセキュアなLinuxプラットフォーム上でROSの独自の利点を活用するために、ぜひ今すぐお問い合わせください。
Please reach out to discuss your particular scenario today.