こんにちは、ティアフォーの伊藤です。
コロナで自粛中、テレワークに励んでいますが、つい時間を忘れて稼働時間が長くなってしまう今日この頃です。
私はAutowareのプラットフォーム開発を担当していまして、OSやROSといった低レイヤーの部分を中心に見ています。今回はそのOSの部分についてお話したいと思います。
さて、現在Autowareが公式にサポートしているOSはUbuntuになります。
Ubuntuはフリーで使用できる、とても有名なLinuxディストリビューションです。Autowareが研究段階の時から使用されています。
しかしながらAutowareを実用化するにあたり、今までなんとなく使ってきたUbuntuをこのまま使用し続けてよいのか、という議論がありました。
Linuxのディストリビューションには3つの流派があります。
AutowareではDebian系のUbuntuを使っていますので、まずはDebian系の中でDebian対Ubuntuを比較してどちらを採用すべきなのかを検討していきました。
Debian vs Ubuntu
検討では様々な側面について比較しましたが、その代表的なものを紹介したいと思います。
- ソフトウェアの安定性
- Basic Foundation
Debian Ubuntu - オリジナルのLinuxディストリビューション。
- unstableブランチから開発開始→ ReleaseCriticalバグなし → testingブランチに昇格 → フリーズ/チェック/細かいバグ修正 → stableとしてリリース。
- ReleaseCriticalバグがなくなるまでリリースはされない。
- ボランティアが活動の主体。
- Linux kernel
Debian Ubuntu - 安定したkernelを導入する傾向。
- ポイントリリースでkernelのバージョンを上げない。
- 新しめのkernelを導入する傾向。
- ポイントリリースでkernelのバージョンを上げてくる(メジャーバージョンを上げてくることもある)。
【補足資料:Software release timeline】
各ソフトウェアのリリース日の関連性を以下にまとめました。
UbuntuはDebianに比べて新しいkernelを導入する傾向にあると思われます。
【補足:CIPについて】
なんとDebianには、CIP(Civil Infrastructure Platform)というDebianベースのSLTS(Super Long Term Support)があります。
サポート期間が10年以上ありますが、対象はKernelとbusybox+αのみになります。そのため、このままでは対象が限定的ですので、他のパッケージもサポートを受ける場合、cybertrust社のEM Linux(有償)を導入する必要があります。または、自前でメンテナンスをしていく(セキュリティパッチをあてていく)ことになります。
また10年以上も同じプラットフォームを使い続けるのか、という問題もありますが、工場等の設備には非常に適しているディストリビューションと言えるでしょう。
なお、CIPとコラボレーションする予定のプロジェクトに、ELISA(Enabling Linux In Safety Application)というものがあり、こちらはセーフティ分野においてシステム構築や認証を支援するツールやプロセスを作成するオープンソースプロジェクトです。CIPを使うならばELISAに参画したり何らかの形でコラボレーションすると、機能安全に優れたアプリケーションを開発できるかもしれません。
以上、少し話がそれてしまいました。
- Basic Foundation
- プロダクト計画との親和性
- Release cycle
Debian Ubuntu - リリースはあらかじめ計画されておらず、プロダクトのリリース計画が立てづらい、と言われている。
- 歴史的には2年おきのリリース。
- ポイントリリースは不定期(ミスが判明してすぐ再リリースすることもある)。
- リリースはあらかじめ計画されており、プロダクトのリリース計画が立てやすい。
- ポイントリリースもあらかじめ計画されている。
- Release cycle
- サポートおよびサポート体制
- ROSとの親和性
- OTAとの親和性
- 使用しているユーザー数
- Enterprise(2020年8月現在)
Debian Ubuntu - 17.7%
- 45.3%
【補足資料:Historical trends in the usage statistics of Linux subcategories for websites】
※引用:https://w3techs.com/technologies/history_details/os-linux - ROS1 2018 Version Survey
Debian Ubuntu - 約5%
- 約90%
【補足資料:ROS1 2018 Version Survey】
Which operating system(s) do you actively use on your ROS1 development workstation?
Which operating system(s) do you actively use on your ROS1 robots?
※情報元:https://discourse.ros.org/t/ros1-2018-version-survey-the-results-are-in/4547
- Enterprise(2020年8月現在)
- プラットフォーム移行にかかるコスト
まとめ
以上、いろいろな側面からDebianとUbuntuを比較していきましたが、オープンソースとしてまずAutowareを普及させたいことを重視して、
- ROS2の主要なプラットフォームはUbuntuなので、まずはAutowareもUbuntu上で動作させるべき。
- Ubuntuは利用者数が多くCommunityも大きいので、Autowareの普及をより最大化できる。
- 途中でkernelが更新されるなどUbuntuにもデメリットはあるが、なんとか運用でカバーする。
という理由から現状はUbuntuを選択しています。
ただ、Ubuntuに替わるOSが台頭してくるようになれば、Autowareエコシステムの基盤になる可能性も十分にありますし、積極的に検討していきたいと考えています。今後とも様々なOSの動向を注視していきたいと思います。
最後に
ティアフォーではオープンソースの自動運転ソフトウェア「Autoware」だけではなく、Autowareを下支えするROSやプラットフォームOSの開発や性能改善等も行っております。今回はLinuxについて触れましたが、RTOSの研究や採用検討も進めております。
ティアフォーではAutowareを下支えすることができる優秀なプラットフォームエンジニアも募集していますので、もしご興味があれば是非エントリーをご検討ください。
※本記事に記載されている会社名、製品名、サービス名は、当社または各社、各団体の商標もしくは登録商標です。