ROS-O で ROS1 を使う – ROS-O とは

著者:yamamoto.yosuke

ROS-O で ROS1 を使う – ROS-O とは

ROS1 は最後の公式なバージョン ROS Noetic のサポートが 2025年5月 に終了(End of Life / EOL)し,ROS2 への移行が進みつつあります.

ROS2 が普及しつつあるとは言え,ROS1 で構成されたロボット資産をまだ有効活用したいこともまだあるかと思います.そのようなケースに対応するため,有志によるコミュニティ主導のプロジェクト ROS-O(ロスオー,ROS One)でサポートが終了した後の新しい Ubuntu 環境においても ROS1 を使えるように維持・管理が行われています.

今回は ROS-O で ROS1 を使う方法について次のように何回かの記事に分けて説明する予定です.

  1. ROS-O とは (←今回の記事)
  2. ROS-O のインストール
  3. ROS-O パッケージのソースビルド
  4. ROS-O と ROS2 の併用
  5. ROS-O パッケージのネットワーク apt インストール対応

ROS-O とは

ROS-O(ロスオー,ROS One)は ROS1 の公式最終バージョン ROS Noetic サポート終了後も,より新しい Ubuntu 環境で ROS1 系ソフトウェアを継続利用できるようにするためのコミュニティ主導プロジェクトです.

ROS1 が公式には 2025年5月 に EOL(End of Life)となり Ubuntu 20.04 にて公式対応が終了しました.その結果 Ubuntu 22.04 や 24.04 上で ROS1 のソフトウェアパッケージを apt install などにより簡単に利用することが難しくなりました.

  • ROS1 公式サポートの終了
    • 2025年5月
    • 最終対応 Ubuntu: 20.04
    • 最終バージョン: ROS Noetic

そうのような状況の中で ROS-O では多くの資産が残っている ROS1 ソフトウェアやそのハードウェアをより新しいバージョンの Ubuntu 上でも活用できるよう修正や保守が行われています.

具体的には ROS-O で ROS1 のコアパッケージの主要なリポジトリをフォークし,バグ修正や最新のコンパイラへの対応を一括して引き受ける受け皿として機能しています.また,新しい Python バージョンや C++ 標準,依存ライブラリの変化に伴って従来の ROS1 コードはビルドできなくなることが増えていることに対して ROS-O プロジェクトにて有志によりこれらの変更に追従するための修正が継続的に行われています.

新しい Ubuntu バージョンでの ROS1 資産の活用

ROS-O の重要な要素でもあるのが新しい Ubuntu バージョンでの ROS1 資産の活用です.公式最終バージョンの ROS1 である ROS Noetic は Ubuntu 20.04 での利用が前提でしたが,ROS-O は ROS Noetic が公式にサポートしていた Ubuntu 20.04 よりも新しいバージョンの Ubuntu にも対応するようメンテナンスされています.

  • ROS-O が対応している Ubuntu(2026年5月時点)
    • Ubuntu 22.04
    • Ubuntu 24.04

これらの Ubuntu バージョンにおいて ROS-O は ros-one-* パッケージを apt インストールできる状態で提供しています.

このように Ubuntu 20.04 以前の古いシステムを維持しなくても ROS1 を動かせることにより,研究・教育・産業の各分野にある ROS1 の大きな資産を継続的に利用することができます.

  • ROS1 資産の例
    • 古いロボット
    • 学術コード
    • センサドライバ

例えば特定のロボットやセンサーのドライバが ROS1 にしか対応しておらず,メーカーのサポートも終了しているような場合でも ROS-O を活用することで新しいシステム内で既存のハードウェアを利用できる可能性があります.

ROS-O 併用による段階的な ROS2 移行

ROS2 の普及が進みつつありますが ROS1 から完全移行するにも一部のパッケージが対応されていないような状況はまだあるものと考えられます.ROS-O により新しいバージョンの Ubuntu 上でも ROS1 と ROS2 を併用したシステムを運用しやすくなります.

  • ROS-O と ros1_bridge による ROS1 + ROS2 併用
    • ROS1 ドライバ
    • ros1_bridge
    • ROS2 Navigation

開発者自身のソフトウェアパッケージについても ROS1 パッケージから ROS2 への移植は簡単な場合も多いですが,一部においては ROS1 から ROS2 へのアーキテクチャなどの変更が大きく影響して移植コストが高くなってしまうケースがあります.その場合は既存の ROS1 パッケージを暫定的に ROS-O で運用し,より優先度の高いソフトウェア開発に注力してから順次 ROS1 パッケージの ROS2 移植を進めることができます.

注意点・限界

ROS-O はいくつか注意して利用する必要があります.

  • 公式 OSRF サポートではない
    • ROS-O はコミュニティベースで,Open Robotics 公式長期保守ではない
  • 全 ROS1 パッケージが必ず動くわけではない
    • 古いパッケージは新しい Ubuntu での言語バージョンなどの違いは修正が必要な可能性あり
  • ROS2 ネイティブ機能の恩恵は得られない
    • ROS2 と比べた ROS1 の本質的制約: DDS 非対応, QoS 設定なしなど

参考となるページ


今回の記事はここまでです.

本シリーズ次回の記事では ROS-O のインストール方法について説明する予定です.

テック技販フォースセンサロボット用アンプが ROS2 に対応しました!

著者について

yamamoto.yosuke administrator

コメントを投稿するにはログインしてください。