こんにちは、ティアフォーの伊藤です。コロナで自粛中、テレワークに励んでいますが、つい時間を忘れて稼働時間が長くなってしまう今日この頃です。
私はAutowareのプラットフォーム開発を担当していまして、OSやROSといった低レイヤーの部分を中心に見ています。今回はそのOSの部分についてお話したいと思います。
さて、現在Autowareが公式にサポートしているOSはUbuntuになります。
Ubuntuはフリーで使用できる、とても有名なLinuxディストリビューションです。Autowareが研究段階の時から使用されています。
しかしながらAutowareを実用化するにあたり、今までなんとなく使ってきたUbuntuをこのまま使用し続けてよいのか、という議論がありました。
Linuxのディストリビューションには3つの流派があります。
AutowareではDebian系のUbuntuを使っていますので、まずはDebian系の中でDebian対Ubuntuを比較してどちらを採用すべきなのかを検討していきました。
検討では様々な側面について比較しましたが、その代表的なものを紹介したいと思います。
Debian
Ubuntu
Ubuntuは安定性の面で不安視されていますが、別にテストされていないわけではありません。テストはCanonical社が行っていますので、この点については同等と言えるかもしれません。
Debian
Ubuntu
Ubuntuはポイントリリースでkernelのバージョンを上げてきますが、その際にドライバも更新されてしまい、今まで動いていたものが動かなくなる可能性があります。もっとも自動更新をオフにしておけばよいですが、うっかり設定し忘れすることがあり、これは十分なリスクになり得ます。この点についてはDebianのほうが優勢と言えるでしょう。
【補足:Software release timeline】
各ソフトウェアのリリース日の関連性を以下にまとめました。UbuntuはDebianに比べて新しいkernelを導入する傾向にあると思われます。
【補足:CIPについて】
なんとDebianには、CIP(Civil Infrastructure Platform)というDebianベースのSLTS(Super Long Term Support)があります。
Home - Civil Infrastructure Platform
サポート期間が10年以上ありますが、対象はKernelとbusybox+αのみになります。そのため、このままでは対象が限定的ですので、他のパッケージもサポートを受ける場合、cybertrust社のEM Linux(有償)を導入する必要があります。または、自前でメンテナンスをしていく(セキュリティパッチをあてていく)ことになります。
また10年以上も同じプラットフォームを使い続けるのか、という問題もありますが、工場等の設備には非常に適しているディストリビューションと言えるでしょう。
なお、CIPとコラボレーションする予定のプロジェクトに、ELISA(Enabling Linux In Safety Application)というものがあり、こちらはセーフティ分野においてシステム構築や認証を支援するツールやプロセスを作成するオープンソースプロジェクトです。CIPを使うならばELISAに参画したり何らかの形でコラボレーションすると、機能安全に優れたアプリケーションを開発できるかもしれません。
以上、少し話がそれてしまいました。
ELISA - Advancing Open Source Safety-Critical Systems
Debian
Ubuntu
バグがなくなるまでなかなかリリースされないことが、かつてのDebianのデメリットでした。Ubuntuはそれを解消するために計画重視のリリースになっています。どちらかというと、ディストリビューションのリリース計画があらかじめ決まっていたほうが、プロダクトへの導入計画も立てやすいですね。
Debian
Ubuntu
サポートの面からするとバックにCanonicalがいるUbuntuのほうがサポートが厚そうに見えますね。
Debian
Ubuntu
ROS2のプライマリプラットフォームは、Ubuntuと定められています。Autoware AutoはROS2を使用していますので、自然にそれに習うという感じになるでしょうか。
Debian
自らCI環境を構築する必要性がある。 CIでエラーが発生した場合の対処とOSRFへの働きかけが必要。
Ubuntu
OSRF側でUbuntuを使用してCIを回しているので安心ですね。ただ、DebianでもCI環境を構築できますし、OSRF(Open Source Robotics Foundation)とCIに関するノウハウを共有できたりと、OSRFに貢献をしていきたい場合はDebianもよいかもしれません。
Debian
Ubuntu
OTAでSnapを使用する場合、自前でソフトウェアのアップデートシステムを構築するパワーがあればDebianでもよいと思います。それに対し、Public Storeで一般公開しても問題がないとか、Private StoreやCIを手っ取り早く使いたい場合はUbuntuでもよいと思います。こちらは製品の開発方針に拠るところがありまして、優劣はつけ難いです。
Debian
Ubuntu
Webサーバで採用されているLinuxのシェアになりますが、世間ではUbuntuが流行っているようです。
【補足:Historical trends in the usage statistics of Linux subcategories for websites】
引用:https://w3techs.com/technologies/history_details/os-linux
Debian
Ubuntu
ROSを使用している開発者は、ほとんどがUbuntuユーザーです。圧倒的なシェアですが、オープンソースとして使ってもらいやすくするならUbuntuのほうがよさそうですね。
【補足: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
Debian
Ubuntu
実はティアフォーの開発者は皆Ubuntuを使用しておりまして、Debianへ移行する場合は、大きなコスト(時間)がかかってしまいます。したがって、Ubuntuの場合は現状のまま使い続けていればよいのでコストはかかりませんね。
以上、いろいろな側面からDebianとUbuntuを比較していきましたが、オープンソースとしてまずAutowareを普及させたいことを重視して、
という理由から現状はUbuntuを選択しています。
ただ、Ubuntuに替わるOSが台頭してくるようになれば、Autowareエコシステムの基盤になる可能性も十分にありますし、積極的に検討していきたいと考えています。今後とも様々なOSの動向を注視していきたいと思います。
ティアフォーではオープンソースの自動運転ソフトウェア「Autoware」だけではなく、Autowareを下支えするROSやプラットフォームOSの開発や性能改善等も行っております。今回はLinuxについて触れましたが、RTOSの研究や採用検討も進めております。
*本記事に記載されている会社名、製品名、サービス名は、当社または各社、各団体の商標もしくは登録商標です
オープンソースのソフトウェアを一緒に開発していきませんか?
ティアフォーでは、「自動運転の民主化」というビジョンに共感を持ち、自らそれを実現する意欲に満ち溢れた新しい仲間を募集しています。
Media Contact
pr@tier4.jp
Share the post
LinkedIn | Twitter | Facebook | Instagram