ROS2チュートリアル体験記 (3/3)

著者:東風上奏絵

ROS2チュートリアル体験記 (3/3)

ROS2のこれから

ROS2はこれからどのように開発が進んでいくのでしょうか.

2018年の9月末頃から,こちらのスレッドで,ROS1からROS2への移行計画についての議論が行われました.簡単に議論内容をまとめてみようと思います.

最初の議論の出発点は,ROS1のリリースをある年度までで辞めることにして,その間の4.5年間にコミュニティ全体でROS2への移行を進め,その後はROS2の開発に集中するというのはどうか,という提案でした.ROS1のリリースをやめる背景には,Python2からPython3への移行の問題もありました.

  • 皆がどう思っているか知りたいんだ.ROS2に完全移行するのに,2023年だったら十分な時間があるだろうか? 2020年にROS1のLTSリリースは必要だろうか?僕の提案は,2020年にROSのリリースはやめて,代わりにROS2の開発に尽力していくこと.

(… So, I’d like to know other users thoughts. Is 2023 enough time to move fully to ROS2? Do we need a LTS release in 2020? My proposal is to forgo a ROS release in 2020 and put the effort in to ROS2 instead. … by mkhansen)

これに対し,複数の賛成意見が寄せられました.

  • すぐにできることではないけれど,ROS1の開発とリリースを徐々に減らしていくことを望んでいるよ.代わりに限られたコミュニティの資源を,2007年に大学院の研究室では作れなかったより良いロボティクスミドルウェアの開発に集中していく必要があるからね.

(… While no one is saying it will happen tomorrow, I’m looking forward to ramping down ROS1 development and future releases. Instead we need to focus our limited community resources on a better robotics middleware that wasn’t built in a graduate student lab in 2007. … by davetcoleman)

  • Willow Garageを2012年に離れてから,ROS1の維持や改良のためのお金はほとんどもらっていないんだ.それにそういうお金があったとしても,チームの人員は限られているからね.

(… Since leaving Willow Garage in 2012, we’ve received approximately $0 directed at maintenance or improvement of ROS 1. And even if we had such funding, we’d still be limited by the number of people on our team. … by gerkey)

その一方で,ROS1からROS2への移行はもっと徐々に進めてほしいという意見もありました.

  • 2020年の4月だと,1年半しかない.既存のROS1パッケージにブリッジして今のROS2のリリースをするのがとても難しくなるよ.合っているよね?ROS1をUbuntu20.04でリリースすれば,もう2年ブリッジのための開発猶予期間ができるよね.

(… To me, that says that after April 2020 (only about 18 months away), it gets a lot harder to run the current ROS2 release with any ROS1 packages bridged in. Is that logic right? By releasing ROS1 on Ubuntu 20.04, you can an extra 2 years of bridge availability. by mikeferguson)

また,ROS1とROS2を共存させていくべきではないかという声もあがりました.

  • 全てのROS1のパッケージをROS2に置き換える代わりに,ROS1とROS2の違いを両側から減らしていく努力もできると思う.コミュニティの分断の衝撃と,最終的な完全移行にかかる負担を減らすために.

(… Instead of porting any package to ROS2, efforts could be spend on reducing the differences between ROS1 and ROS2 from both ends, to reduce the impact of the community split, and all costs of eventual full migration. … by tkruse)

  • ROS1を使ったロボットシステムを提供している会社としては,自分たちのコードを全て新しいミドルウェアに移行するのはとても大変なことになるだろう.僕らのロボットは倉庫で自動のピッキングを行っているのだけど,高い性能と信頼性のためには中身がよく分かるシステムが必要なんだ.このとても複雑なシステムの基盤を交換して,今までと同じ性能まで持っていくのは簡単なことではないと思う.負担の少ないROS2への移行の道筋か,両方を長期的に管理する方法を見つけられるといいのだけど.

(… As a company building solutions based on ROS 1, porting all of our code base to a new middleware would be a major effort. Our robots perform mobile picking in warehouses, where performance and reliability demands require a well-understood system. Exchanging the foundation of this very complex system and getting to a similar performance level again will not be an easy step. … I hope that we can find either a good migration path or ways for maintaining both versions for a longer time. by moritz)

やはりROS1のサポートは必要ではないか,という意見もあり,ROS1をサポートする新たな組織が必要ではないかという提案もありました.

  • Open RoboticsがROS1にかけられるリソースがもうないことは理解しているよ.でも,もし時が来たら,ROS1のメンテナンスを引き継いでくれる組織を見つけようよ.

(… I understand that OSRF cannot commit resources to ROS1 forever. But when that day comes, please let’s try to find a successor organization that takes over stewardship of ROS1…. by Martin_Guenther)

ROSのコミュニティには多様なニーズや必要性を持っている人が所属しているので,これらを可視化して,皆にとってより良い方向性を決めていくべきではないか,という意見もありました.

  • 様々な人が様々なニーズや負担や障害を持っているよね.それだけではなくて,異なる使い方,コミュニティへの貢献の仕方,色々なコードの管理の仕方があるよね.こうした関係性を可視化することはとても価値のあることだと思う.

(… Different segments have different types of needs, requirements, costs, and constraints. Not only that, but different segments use, contribute, and maintain different types code. I think seeing a breakdown and a graph of these relationships of that would be really valuable. … by jbohren)

最後に,スレッドを立てられた方は,これまでの議論を踏まえて,ROS1からROS2移行のために必要な作業をまとめられました.

  • 1. ROS1からROS2に移行したい人向けに80%くらいを自動で置き換えてくれるスクリプトの作成
  • 2. ROS1とROS2共存のためのROS1ブリッジの改良
  • 3. 2020年のUbuntu 18.04, 20.04両方のROS2サポート
  • 4. ROS1 Melodicの2023年までのサポート
  • 5. ROS2のための分かりやすいドキュメント作成

(…

  1. A migration script to do 80% of the ROS1 -> ROS2 conversion for those who want to migrate
  2. An improved ROS1 bridge for running hybrid systems?
  3. ROS2 support in 2020 on both 18.04 and 20.04
  4. Support of Melodic until 2023
  5. Better documentation of ROS2 (see @mikeferguson thread) … by mkhansen)

Open Roboticsの方は,ROS2のこれからをこのように予想しています.

  • 現在のコミュニティの貢献の状態とレベルを考えると,4年半でMelodicが寿命を迎えるもっと前に,ROS2の実装は充実して,とても使いやすくなっているだろうね.もちろん.ROS2がどうなっていようと,たくさんの人は4年半の間やその先も,ROS1を使い続けるだろう.単にROS1のコードを使い慣れているし,信頼できるからね.

(… Given the current status and level of community contributions I expect that ROS 2 will be well-featured and very usable for a wide variety of applications long before Melodic goes EOL in 4.5 years. …

Of course, irrespective of the state of ROS 2 I expect that many many people will still be using ROS 1 in 4.5 years and even after, primarily because of a combination of familiarity and reliance on existing ROS 1 code. by gerkey)

おわりに

いかがでしたでしょうか.

ROS1と比べることで,ROS2での変更点が少し探れたのではないかと考えています.また,執筆者自身は,ROS2との違いを意識することで,逆に,普段何気なくROS1を使っていることに気付かされました.ROS1の理解も少し深まった気がしています.ROS1とROS2の違いは,今回書いた点以外にもあると思いますので,皆様も是非チュートリアルを体験してみてください!

また,ROS2への移行に関する議論は,ROS1を研究で使う者として,しっかりこれからも追っていきたいです.皆様も是非ROS2を試してみてください!

ROS2チュートリアル 体験記 (2/3)
ROS-Industrialのトレーニング教材を日本語訳しました!

著者について

東風上奏絵 contributor

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