ROS2の学習方法
最近、大学の研究やインターンを通してROS2を触ることが多いのでROS2をどのように学習しているのかを記録しておきます。
ROS2とは
ROS2とはROSとよばれる主にロボットの開発に使用されるフレームワークのようなものです。
ROS2の良いところ
ROS2がロボット開発で使われる理由として個人的に考える点を紹介します。
- チュートリアルがしっかりしてる(https://docs.ros.org/en/humble/Tutorials.html)
- リアルタイム処理に長けている
- C++, Pythonで書けるため、ロボットに必要な処理速度とCI, CD, Testコードの書きやすさがある
まず、チュートリアルがとにかくしっかりしています。ROS2を使用して開発するうえで必要な部分をほとんど網羅しています。注意する点としてはROS2のTopic, publisher, subscriber, serviceなどの基本的な部分やrqt_graphの使い方といった基本的な部分さえ押さえていればあとはそうなんだなぐらいで大丈夫です。
次に、リアルタイム処理にたけていることです。ROS2は各Nodeから常にTopicという情報をほかのNodeに流すことができるので、リアルタイムで並列処理を多く実行するプロジェクトからするととてもプログラムしやすいものとなっています。ロボットの場合であれば、Perception, Controlなどといった部分を並列処理しなければいけないのでとてもマッチしています。
最後にC++, Pythonを使用できることです。C++では速度が求められる処理、PythonではAIやCI, CD, Testといった速度を重視しない処理を簡単に書くことができるのでC++よりも少ないコストで書くことができます。これは開発スピードを上げていくためにとても重要な部分です。
ROS2の学習方法
- ROS2 TutorialでROS2のNode, Topicといった主機能&ディレクトリ構成(Package)を把握する
- とにかく書く
個人的なROS2の学習方法ですが、Tutorialをさらっとやってあとはとにかくプログラミングをすることです。
すべてのプログラミング言語、フレームワークにいえることですが、チュートリアルをやりたくてその言語、フレームワークを触り始めたわけではなく何かを作りたい、作らないといけないのでチュートリアルをやっているわけですので、チュートリアルはある程度把握するだけで大丈夫だと思います。
あとはとにかく習うより慣れろで書いてみましょう