プログラミングROS ―Pythonによるロボットアプリケーション開発
by Morgan Quigley, Brian Gerkey, William D. Smart, 河田 卓志, 松田 晃一, 福地 正樹, 由谷 哲夫
23章ROSでC++を使う
本書では多くの理由からPythonを使いました。最初の理由は、Pythonはそれほどコンピューターサイエンスの経験がなくても使える言語だからです。次に、Pythonはコアパッケージにたくさんの役に立つ機能があるので、細かいことを気にせずに高いレベルの内容に集中することができます。さらに、ROSはPythonを強力にサポートしています。最後に、本書ではすべてのサンプルを1つの言語で扱いたかったからであり、そういう意味でPythonは適切な言語だったのです。
しかし、ROS開発で他の言語が使いたくなることがあります。例えば、皆さんが使いたいライブラリがPythonでサポートされていなかったり、他の言語での開発のほうがやりやすい場合もあるでしょう。コンパイラー言語がもたらす実行速度の(わずかな)速さに惹かれることもあります。本章では、ROSでサポートされているC++のAPIがPythonとどう違うのか、本書の例をどうやってC++に変換するのかを見ていきます。C++を含めROSのAPIを持つ他の言語でもイディオムやデザインパターンはすべて同じです。コールバックを用い、トピックにメッセージを渡します。しかしながら、構文や特定のデータ構造は若干異なります。Pythonを他の言語に変換する方法がわかれば、ある言語で書かれた例を別の言語に書き直すのは簡単です。
ROSのAPIで最もよくサポートされている言語はPythonとC++です。本章では、C++のAPIに焦点を当てますが、ここで説明することの多くは、他の言語のAPIにも適用できます。構文とデータ構造の違いがわかれば、いろいろなものが同じに見え始め、言語を好きなように切り替えることができるようになります。
23.1 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access