【2025年2月最新】ROS 2 Kilted Kaiju完全解説|次世代ロボティクス開発の新機能と移行ガイド

スポンサーリンク

【2025年2月最新】ROS 2 Kilted Kaiju完全解説|次世代ロボティクス開発の新機能と移行ガイド

はじめに:ROS 2の第11世代リリース

2025年5月、Robot Operating System 2(ROS 2)の第11世代リリース「Kilted Kaiju」が公開されました。Ubuntu 24.04(Noble)とWindows 10をターゲットとしたこの短期サポートリリースは、Zenohの正式サポート、rosbag2の大幅強化、ビルドシステムの近代化など、多くの重要な変更を含んでいます。

本記事では、ROS 2公式ドキュメントros2_controlの情報を基に、Kilted Kaijiの新機能と、前バージョンJazzy Jaliscoからの移行ポイントを詳しく解説します。

Kilted Kaijiの基本情報

Kilted KaijiはROS 2の第11リリースで、2025年5月23日に初回リリースされました。2025年7月28日にはパッチリリース1が公開されています。

サポートプラットフォームは、Tier 1としてUbuntu 24.04(Noble)のamd64とarm64、Windows 10(Visual Studio 2019)のamd64が含まれます。Tier 2としてRHEL 9(amd64)、Tier 3としてmacOSとDebian Bookwormが部分的にサポートされています。

前リリースのJazzy Jaliscoが長期サポート(LTS)リリースで2029年5月までサポートされるのに対し、Kilted Kaijuは短期サポートリリースです。本番環境では安定性を重視してJazzyを使い続け、新機能を試すためにKiltedを使うという使い分けが推奨されます。

主要な新機能

RMW Zenohの正式サポート

ROS 2公式ドキュメントによると、rmw_zenoh_cppがTier 1に昇格しました。

“The rmw_zenoh_cpp is now considered Tier 1. There are many PRs in the ROS 2 core packages to make the rmw pass all core tests and work on Tier 1 platforms.”
(rmw_zenoh_cppがTier 1と見なされるようになった。ROS 2コアパッケージには、このrmwがすべてのコアテストに合格し、Tier 1プラットフォームで動作するための多くのPRがある)

Zenohは、低遅延・高スループットの通信を実現するプロトコルで、従来のDDS実装に比べて効率的なリソース使用が可能です。特にリソースが限られた組み込みシステムや、ネットワーク帯域が制限された環境で威力を発揮します。

rosbag2の大幅強化

rosbag2(バッグファイル記録・再生ツール)に複数の重要な機能が追加されました。

アクション記録・再生サポートにより、以前はサービスコールを記録できませんでしたが、Kiltedではアクションも記録・再生可能になりました。「ros2 action echo」CLIコマンドでアクションのイントロスペクションも可能です。

進捗バー表示では、バッグ再生中に進捗状況がビジュアルに表示されます。マルチバッグ再生では、-iフラグを使用して複数のバッグファイルを同時に再生できます。–message-orderオプションにより、時系列順での再生が可能になりました。「ros2 bag info」でトピックサイズの貢献度が表示されます。

rclpyの静的型チェックサポート

Pythonクライアントライブラリ(rclpy)が、pub/sub、クライアント、サーバー、アクションのジェネリック型ヒントをサポートするようになりました。これにより、mypyなどのツールによる静的型チェックが改善され、開発時のエラー検出が容易になります。

非推奨化と削除

ament_target_dependencies()の非推奨化

CMakeマクロ「ament_target_dependencies()」が非推奨となり、モダンなCMakeターゲットを使用した「target_link_libraries()」への置き換えが推奨されています。

従来の書き方では、ament_target_dependencies(my_target rclcpp std_msgs)としていましたが、新しい推奨書き方では、target_link_libraries(my_target rclcpp::rclcpp std_msgs::std_msgs)となります。

RTI Connext Microの非推奨化

RTI Connext Micro RMWパッケージ(rmw_connextddsmicro)はKilted Kaijiでアップデートが停止され、将来のリリースで削除される予定です。

その他の変更

float128のサポートが削除されました(定義の不整合のため)。fastrtpsがfastddsにリネームされましたが、RMW実装名は変更されず、XML Profile環境変数文字列が変更されます。

Gazebo統合

Kilted Kaijiの推奨Gazeboリリースは「Ionic」です。Gazeboは物理シミュレーターで、ロボットの動作をシミュレートするために使用されます。

Ionic Gazeboは、より高速なレンダリング、改善された物理エンジン、センサーシミュレーションの強化を提供します。

Nav2の更新:Route Server

Nav2ドキュメントによると、JazzyからKiltedへの移行では、安定性の改善が追加されました。

nav2_routeのRoute Serverは、フリースペースプランニングではなく、事前定義されたナビゲーショングラフを通じてルートを計算するサーバーを実装しています。

“It may be used to fully replace freespace planning when following a particular route closely.”
(特定のルートに厳密に従う場合、フリースペースプランニングを完全に置き換えるために使用できる)

これは、ロボットが既知のエリア、レーン、またはルート内で決定論的に計画する必要がある産業アプリケーションに有用です。また、道路上の都市センターや広大な距離にわたる自然環境など、屋外ナビゲーションにも役立ちます。

ros2_controlの変更

ros2_control移行ガイドによると、JazzyからKiltedへの変更には、switch_controllersのデフォルト厳密性をROS 2パラメータで選択できる機能が含まれています。デフォルトの動作は引き続きBEST_EFFORTです。

コントローラーの切り替え時に、より厳密な動作(すべてのコントローラーが成功する必要がある)かベストエフォート動作(可能な限り多くのコントローラーを切り替える)かを選択できます。

Windowsでのインストール簡素化

Kilted Kaijiでは、Pixi/Condaパッケージ管理を介したWindowsインストールが簡素化されました。これにより、Windows開発者がROS 2環境をセットアップする際の複雑さが大幅に軽減されます。

テストフィクスチャパッケージ

新しいrmw_test_fixtureとrmw_test_fixture_implementationパッケージが含まれました。これらは、RMWベースの通信分離のためのテストフィクスチャを作成するための拡張可能なメカニズムを提供します。

rmw_test_fixtureパッケージはテスト用のRMW設定APIを提供し、rmw_test_fixture_implementationは適切な拡張機能の発見、読み込み、呼び出しのためのエントリーポイントを提供します。

FAQ:よくある質問と回答

Q1: JazzyとKilted、どちらを使うべきですか?

本番環境にはLTSリリースのJazzy Jaliscoが推奨されます。Kiltedは新機能を試したい開発者や、最新のハードウェアサポートが必要な場合に適しています。

Q2: Zenohとは何ですか?なぜ重要ですか?

ZenohはPub/Subプロトコルで、従来のDDS実装に比べてより軽量で効率的です。特にリソース制限のある環境やネットワーク帯域が限られた状況で有効です。Tier 1昇格により、公式に推奨されるRMW実装となりました。

Q3: ament_target_dependenciesを今すぐ変更する必要がありますか?

非推奨ですがまだ機能します。ただし、将来のリリースで削除される可能性があるため、新規プロジェクトではtarget_link_libraries()を使用し、既存プロジェクトも徐々に移行することをお勧めします。

Q4: Route Serverはどのような用途に適していますか?

工場内の自動搬送車(AGV)、倉庫ロボット、決められたルートを走行する屋外ロボットなど、事前定義されたパスに沿って移動するロボットに最適です。フリースペースプランニングよりも予測可能で効率的な経路計画が可能です。

Q5: ros2_controlの変更は既存のロボットに影響しますか?

デフォルト動作(BEST_EFFORT)は変更されていないため、既存の設定は引き続き動作します。より厳密な動作が必要な場合は、パラメータで明示的に設定できるようになりました。

まとめ:ROS 2エコシステムの継続的な進化

ROS 2 Kilted Kaijiは、ロボティクス開発のための重要なマイルストーンです。Zenohの正式サポート、rosbag2の強化、ビルドシステムの近代化により、開発者はより効率的にロボットシステムを構築できるようになりました。

Nav2のRoute Serverは、産業用途や屋外ナビゲーションに新しい可能性を開きます。ros2_controlの柔軟性向上も、複雑なロボットシステムの制御をより容易にします。

JazzyユーザーがKiltedに移行する際は、ament_target_dependenciesの変更とRMW設定の確認が主要なポイントです。新機能を活用しながら、互換性の問題に注意して段階的に移行することをお勧めします。

ROS 2コミュニティは活発に開発を続けており、今後もさらなる改善が期待されます。ロボティクス開発に携わる方は、最新の動向を把握し、プロジェクトに最適なバージョンを選択してください。

参考資料

コメント

タイトルとURLをコピーしました