コンテンツにスキップ
【祝発売!】ROS概論:ROSを使うメリット、使わない場合との違い【RDK X5 / OriginBot Pro JP 発売記念記事 第一弾】

【祝発売!】ROS概論:ROSを使うメリット、使わない場合との違い【RDK X5 / OriginBot Pro JP 発売記念記事 第一弾】

こんにちは、牧井です。

D-Robotics社のAIロボット開発用シングルボードコンピューター「RDK X5」と、それを利用するロボットカーキット「OriginBot Pro JP」が当社にて発売となりました!「RDK X5」や「OriginBot Pro JP」は、ROS(Robot Operating System)というフレームワークを活用しており、ロボット開発を強力にサポートします。

今回、発売を記念して、当社高須がROSCon JP 2025のワークショップのために書いている原稿を一部再構成しつつ、ROSやRDK X5、OriginBotの紹介記事を公開しています。

第一弾となる本記事では、ROSとROS 2の基礎を紹介していきます。

本記事で得られること

想定読者:これからロボット開発を始める方

本記事ではROS/ROS 2の基本的な概念と、それを使うメリットを学べます。OriginBot Pro JPと、搭載されているRDK X5の理解を深めると同時に、今後のロボット開発の土台を固めることができます。

ROS/ROS 2とは?

ROSは、ロボット用のオープンソースオペレーティングシステムであり、ロボット開発の効率化と柔軟性の向上を可能にします。そのモジュール化された構造により、再利用可能なパッケージを活用することで、開発コストを削減できます。

特に昨今注目すべきはROS 2です。ROS 1はリアルタイム制御に課題がありましたが、ROS 2ではこれが大幅に強化され、より厳密な時間制約を持つ産業用途にも対応するようになりました。教育分野から産業分野まで、幅広い活用が進められています。

ROS 2公式ドキュメント https://docs.ros.org/en/humble/index.html

ROS/ROS 2を使うメリット

ロボット開発においてROS/ROS 2を採用することで、以下のようなメリットが得られます。

  • 開発効率の飛躍的向上: 既存の豊富なパッケージやツールを再利用できるため、ゼロからすべてを開発する場合と比較して、開発期間を大幅に短縮できます。モジュール化された構造は、機能の追加や修正も容易にします。
  • 高い柔軟性と拡張性: 異なるハードウェアやソフトウェアのコンポーネントを容易に統合できます。これにより、特定のハードウェアに依存することなく、システムの変更やアップグレードが比較的簡単に行えます。
  • 開発コストの削減: オープンソースであるため、ライセンス費用が発生せず、開発全体のコストを抑えることができます。
  • 活発なコミュニティと豊富なサポート: 世界中に広がる活発なオープンソースコミュニティが存在し、情報共有や問題解決のためのサポートが得やすい環境です。公式ドキュメントやチュートリアルも充実しています。
  • リアルタイム制御の強化(ROS 2): ROS 2では、DDSの採用とOSレベルでのリアルタイムパッチのサポートにより、産業用ロボットや自動運転システムといった、厳しい時間制約を要求されるアプリケーションにも対応できるようになりました。
  • 複雑なシステムの管理と分散開発: 複雑なロボットシステムでも、モジュール化された「ノード」により管理しやすくなります。ノード間通信を介して、複数の異なる計算単位が連携する分散システムを簡潔に構築できます。
  • マルチプラットフォーム対応(ROS 2): ROS 2はLinuxだけでなく、WindowsやmacOS、さらにはRTOS(リアルタイムOS)など、より多くのプラットフォームをサポートしており、開発環境の選択肢が広がります。

ROS 2 Humbleの全体構成、用語解説など

ROS 2のバージョンの一つ、ROS 2 Humbleにおける基本的な構成要素と特徴を理解することで、より効率的なロボット開発が可能となります。

「複数のハードウェア・ソフトウェアを繋げる」ことにROSの意義があり、それぞれのシステムはLinux、Windowsやマイコン上のFreeRTOSなどで駆動していることがあります。

DDS (Data Distribution Service) の採用とメッセージング

ROS 2のノード間の通信には、DDS (Data Distribution Service)という、リアルタイム性、信頼性、拡張性に優れたデータ配布ミドルウェアが採用されています。これにより、ROS 1のTCP/IPベースの通信よりも、効率的かつ信頼性の高いデータ交換が実現されています。

主要なメッセージング方法は以下の三つです。

  • トピック (Topics): 一方向の非同期通信に用いられます。センサデータ(LiDARスキャンやカメラ画像など)やロボットの現在の位置・速度といった、連続的なデータストリームのやり取りに最適です。
  • サービス (Services): 双方向の同期通信に用いられます。クライアントノードからのリクエストに対し、サーバーノードが処理を行い、レスポンスを返します。ロボットのアームを特定の位置に移動する、地図を保存するといった、応答が必要な特定のタスク実行に適しています。
  • アクション (Actions): サービスとトピックを組み合わせたような仕組みで、目標地点までのナビゲーションや複雑な操作といった、長時間実行されるタスクに使用されます。クライアントはゴールを送信し、サーバーは進行状況のフィードバックを送りながら、最終的な結果を返します。

リアルタイム制御の強化

DDSの採用と、OSレベルでのリアルタイムパッチ(例: PREEMPT_RT)のサポートにより、リアルタイム性を要求されるアプリケーションにも対応できるようになりました。

これにより、産業用ロボットや自動運転システムなど、厳しい時間制約を持つ分野でのROS 2の活用が進んでいます。

セキュリティ機能の強化

ROS 2は、通信の認証、暗号化、アクセス制御などのセキュリティ機能を標準でサポートしています。

これにより、ロボットシステムへの不正アクセスやデータの改ざんを防ぎ、より安全なシステムを構築できます。

マルチプラットフォーム対応

ROS 2は、Linuxだけでなく、WindowsやmacOS、RTOSなど、より多くのプラットフォームをサポートしています。

これにより、開発環境の選択肢が広がり、様々なデバイスでのロボット開発が可能になります。

コンポーネントベースのアーキテクチャ

ROS 2では、ノードをさらに小さな「コンポーネント」に分割し、プラグインのようにロード・アンロードできるようになりました。

これにより、システムのリソース効率が向上し、より柔軟なアプリケーション開発が可能になります。

ローンチシステムの改善

ROS 2のローンチシステムは、Pythonベースで記述され、より強力な機能と柔軟性を提供します。

複数のノードやコンポーネントの起動、パラメータの設定、環境変数の管理などを、より簡潔に記述できるようになりました。

豊富なツールとライブラリ

ROS 1と同様に、ROS 2にも可視化ツール(Rviz2)、デバッグツール(rqt_*)、シミュレーション環境(Gazebo)など、開発を支援する多様なツールとライブラリが提供されています。

これにより、開発者はロボットの動作を効率的にテストし、デバッグすることができます。

--------------------------------------------------------------------------------

ROS 2は、これらの特徴により、研究開発から実用的な産業用アプリケーションまで、幅広い分野でのロボット開発を強力にサポートするシステムとなっています。特にDDSによる柔軟で堅牢なメッセージング機構が、複雑なロボットシステムの構築を可能にしています。

--------------------------------------------------------------------------------

今回はROS/ROS 2の基本とメリットについて紹介しました。第二弾では、RDK X5とOriginBot Proの具体的な仕様や特徴についてさらに詳しく掘り下げていきます。ぜひそちらもご覧ください。

前の記事 【祝発売!】OriginBot Pro JPの魅力【RDK X5 / OriginBot Pro JP 発売記念記事 第二弾】
次の記事 【祝発売!】OriginBotの動作を変更しよう【RDK X5 / OriginBot Pro JP 発売記念記事 第五弾】