「ROS2ではじめよう 次世代ロボットプログラミング」の想定している読者と読者に必要となる前提知識を書いた「はじめに」の一部を転載します。エンジニアやロボット研究者だけでなく、教育者、ビジネスマンにもお読みいただける内容になるように努めたつもりです。

本書の読者

誌面より

ロボット開発、ビジネスに携わる人すべてに読んでいただきたいというのが著者の本心ではありますが、本書のような技術書を読むときによくある理由をいくつか挙げて、読者がそれぞれの目標を達成するために一番おすすめする読み方を紹介します。

新しい物好き

新しい技術や製品が出ると飛びつきたくて仕方ない人種というのは、世の中に存在するものです。かく言う私もその一人です。ROS2の開発体制は盤石です。Open Roboticsだけでなく、ネットの巨人に代表されるような大企業が出資し、専任の開発人員も割り当てているくらいです。今からROS2を学んで自分のものにしておけば、アーリーアダプター間違いなし。ついでに自分だけのROS2対応ロボットも開発してみましょう。こういう方にはぜひ付録も余すことなく本書を隅々まで読み込んでもらいたいです。

ロボット新規事業の検討とサーベイ

企業がロボットに関連する新規事業を検討していて、その下調べをしているのであれば、ROS1のこれまでの経緯とROS2のこれからの展望を理解しておくことは非常に重要です。数年後にはロボットアプリケーションをROS2に対応させないということは、それだけで商機を損なう事態になりかねません。時間に追われるビジネスマンであれば、3章、4章のROS2の基本機能、応用機能の章だけでも一読すれば、ROS2の機能の全体を素早く把握することができます。ROS2があれば、どのようなことができるのか、何を開発しなくてはならなくて、何を開発しなくてよいかをあらかじめ知っている上司は部下からも好まれるはずです。

ROS1パッケージのROS2移行

読者の皆様の中には、すでにROS1を使ってロボットアプリケーションを開発している方もいるでしょう。そのような方々の中にはROS2が普及してきたら、現状のROS1パッケージをROS2に移行したいと思っている方もいるはずです。いつ始めたらいいか、どう始めたらいいか、始めなくてもよいのか、を判断する意味で、ROS2パッケージ開発に必要な情報が記述されている3章、4章、6章をまず読んでください。その次に5章を読んで現在使っている依存パッケージがROS2しているかどうか、していなければ、どう移行するかを検討してみてください。

OSS貢献

現在、ROS1パッケージをROS2対応させる移行作業は鋭意進んでおり、2020年には主要なパッケージは順次ROS2に対応するでしょう。その移行作業に読者の皆様にも積極的に取り組んでみませんか?ROS2パッケージの移行作業は、一朝一夕では終わりません。付録で説明する最近導入された上級者向け昨日に対応していないパッケージも少なくありません。4章と付録の内容の要点を押さえて、既存ROS2パッケージに機能改善、機能追加していく作業はまだまだたくさんあります。 ROS2はROS1と同じく、オープンソースソフトウェア(OSS)です。オープンソースソフトウェアは使うだけでなく、そのソフトウェアの品質向上に貢献することも非常に重要であり、その貢献を通じて得た経験と結果は就職、転職活動にも大いに役立つはずです。ゴールドラッシュならぬ、プルリクエスト[fn:pullrequest]ラッシュに参加してみましょう。

前提知識

誌面より

エンジニア、研究者、教育関係者向け

本書のサンプルコードはC++と一部Pythonを用いて書かれています。 本書を余すことなく理解していただくには、プログラミング言語C++の知識が必要です。特にROS2のC++ソースコードを読むには、モダンC++とも呼ばれるC++11以降[fn:cpp11]の記法をある程度体得しておくことが望ましいです。

ただ、サンプルコードのコメントや本文中で特殊な記法を使っている初出のソースコード部分は説明を加えるように心がけています。まずは肩肘張らずに読み進めてみて、わからない箇所に出会えば、その場で調べて対処するのでも構いません。

ビジネス開発者向け

本書のサンプルコードを読み飛ばせば、プログラミング言語に関する前提知識は問いません。また、専門用語、技術用語に関しては、可能な限り脚注を挿入するようにしています。気軽に読み進めてください。