開発ロボット

ROS(Robot Operating System)入門|ロボット開発の標準プラットフォーム【2026年】

更新 AI Beat編集部

ROS(Robot Operating System)入門|ロボット開発の標準プラットフォーム【2026年】
目次
  1. ROSとは
  2. ROSの特徴
  3. ROSの歴史
  4. ROS 1 vs ROS 2
  5. 主な違い
  6. 移行状況
  7. ROS 2の基本概念
  8. ノード(Node)
  9. トピック(Topic)
  10. サービス(Service)
  11. アクション(Action)
  12. 主要パッケージ
  13. ナビゲーション(Nav2)
  14. MoveIt 2
  15. Gazebo
  16. RViz2
  17. 開発環境構築
  18. 推奨環境
  19. インストール手順(Ubuntu)
  20. Hello World(簡単な例)
  21. Publisherノード(Python)
  22. ROS対応ロボット
  23. 研究・教育用
  24. 産業用
  25. サービスロボット
  26. 企業でのROS活用
  27. 採用企業例
  28. 商用利用の注意点
  29. 学習リソース
  30. 公式ドキュメント
  31. 書籍
  32. オンラインコース
  33. 今後の展望
  34. 技術トレンド
  35. ROS 2の進化
  36. まとめ

ROSとは

ROSとは

ROS(Robot Operating System)は、ロボット開発のためのオープンソースのソフトウェアフレームワークです。「Operating System」という名前ですが、WindowsやLinuxのような一般的なOSではなく、ロボット開発に必要なツール、ライブラリ、ミドルウェアの集合体です。

ROSの特徴

  • オープンソース:無料で利用可能
  • モジュラー設計:機能ごとに独立したノード
  • 言語サポート:C++、Python対応
  • 巨大なエコシステム:数千のパッケージが利用可能
  • 産業標準:研究から商用まで広く採用

ROSの歴史

年 出来事
2007年 Willow Garageで開発開始
2010年 ROS 1.0リリース
2017年 ROS 2初版リリース
2020年 ROS 2 Foxyリリース(LTS)
2026年 ROS 2 Jazzyリリース
2025年 ROS 1サポート終了(Noetic)

ROS 1 vs ROS 2

ROS 1 vs ROS 2

主な違い

項目 ROS 1 ROS 2
リアルタイム性 非対応 対応
通信ミドルウェア 独自(TCPROS) DDS標準
セキュリティ なし SROS2対応
マルチプラットフォーム Linuxのみ Linux, Windows, macOS
組み込み対応 困難 micro-ROS対応
複数ロボット 困難 ネイティブ対応

移行状況

  • 研究機関:ROS 2への移行が進行中
  • 企業:新規プロジェクトはROS 2を採用
  • レガシー:ROS 1からの移行ツールが充実

ROS 2の基本概念

ROS 2の基本概念

ノード(Node)

ROSの基本単位。各ノードは特定の機能を担当:

  • センサーノード:カメラ、LiDARからデータ取得
  • 処理ノード:画像認識、経路計画
  • 制御ノード:モーター制御、アーム操作

トピック(Topic)

ノード間の非同期通信:

  • Publish/Subscribe:一対多の通信
  • メッセージ型:データ構造を定義
  • QoS:通信品質の設定

サービス(Service)

同期的なリクエスト/レスポンス通信:

  • Client/Server:一対一の通信
  • 用途:パラメータ取得、状態変更など

アクション(Action)

長時間かかるタスクの管理:

  • Goal:目標の送信
  • Feedback:進捗の報告
  • Result:結果の返却

主要パッケージ

主要パッケージ

ナビゲーション(Nav2)

自律移動のためのパッケージ:

  • SLAM:地図作成と自己位置推定
  • 経路計画:最適ルートの計算
  • 障害物回避:動的環境への対応

MoveIt 2

マニピュレータ制御:

  • モーションプランニング:アーム動作の計画
  • 衝突回避:環境との干渉チェック
  • 逆運動学:目標位置への軌道生成

Gazebo

物理シミュレータ:

  • 3Dシミュレーション:リアルな物理演算
  • センサーシミュレーション:カメラ、LiDAR等
  • ROS 2連携:シームレスな統合

RViz2

可視化ツール:

  • センサーデータ表示:点群、画像、地図
  • ロボット状態表示:関節角度、座標
  • デバッグ支援:問題の視覚的確認

開発環境構築

開発環境構築

推奨環境

  • OS:Ubuntu 22.04 LTS(Humble)/ Ubuntu 24.04 LTS(Jazzy)
  • ROS 2:Humble Hawksbill(LTS)またはJazzy Jalisco
  • Python:3.10以上

インストール手順(Ubuntu)

# リポジトリ追加
sudo apt update && sudo apt install -y software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# インストール
sudo apt update
sudo apt install ros-humble-desktop

# 環境設定
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

Hello World(簡単な例)

Hello World(簡単な例)

Publisherノード(Python)

import rclpy
from rclpy.node import Node
from std_msgs.msg import String

class MinimalPublisher(Node):
    def __init__(self):
        super().__init__('minimal_publisher')
        self.publisher_ = self.create_publisher(String, 'topic', 10)
        timer_period = 0.5
        self.timer = self.create_timer(timer_period, self.timer_callback)
        self.i = 0

    def timer_callback(self):
        msg = String()
        msg.data = f'Hello World: {self.i}'
        self.publisher_.publish(msg)
        self.get_logger().info(f'Publishing: {msg.data}')
        self.i += 1

def main(args=None):
    rclpy.init(args=args)
    minimal_publisher = MinimalPublisher()
    rclpy.spin(minimal_publisher)
    minimal_publisher.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()

ROS対応ロボット

ROS対応ロボット

研究・教育用

  • TurtleBot 4:入門用モバイルロボット
  • Universal Robots:協働ロボットアーム
  • Clearpath Robotics:屋外用研究ロボット

産業用

  • Fetch Robotics:物流ロボット
  • FANUC:産業用ロボットアーム
  • ABB:産業用ロボット

サービスロボット

  • PAL Robotics:サービスロボット
  • SoftBank Robotics:Pepper, NAO

企業でのROS活用

企業でのROS活用

採用企業例

企業 用途
Amazon Robotics 倉庫ロボット
NASA 宇宙探査ロボット
BMW 工場自動化
Bosch 自動運転
Sony aiboの開発

商用利用の注意点

  • ライセンス:BSD/Apache 2.0(商用利用可)
  • サポート:商用サポートサービスあり
  • 認証:産業用にはROS-Industrial推奨

学習リソース

学習リソース

公式ドキュメント

  • ROS 2 Documentation:公式チュートリアル
  • ROS Wiki:パッケージドキュメント

書籍

  • 「Programming Robots with ROS」
  • 「ROS 2入門」(日本語)

オンラインコース

  • The Construct:ROS専門のオンライン学習
  • Udemy:ROS 2コース多数

今後の展望

今後の展望

技術トレンド

  • micro-ROS:組み込み・エッジデバイス対応
  • クラウド連携:AWS RoboMaker、Azure IoT
  • AI統合:深層学習フレームワークとの連携
  • シミュレーション:NVIDIA Isaac Simとの統合

ROS 2の進化

  • 2025年:ROS 1サポート終了、ROS 2一本化
  • 2026年以降:リアルタイム性能のさらなる向上

まとめ

まとめ

ROSは、研究から商用まで幅広く採用されているロボット開発の事実上の標準プラットフォームです。ROS 2への移行が進み、リアルタイム性、セキュリティ、産業用途への対応が強化されています。

ロボット開発を始める方は、まずROS 2 Humbleで基本を学び、シミュレータ(Gazebo)で実験することをお勧めします。豊富なドキュメントとコミュニティのサポートにより、効率的に学習を進められます。

サービスが見つかりません。