この記事は筆者オンリーのAdvent Calendar 20233日目の記事です。
OSS連携を試みるため、ROS2の簡単なモジュールを数回に渡って作っていきたいと思います。
実は簡単なモジュール作成は前回大会でもやっているため、本大会でもできるかの確認です。
ROS2でモジュール作成
こちらの記事を参考にまずはAutowareでHelloWorld的なことができるようにカスタマイズしてみようと思います。
Autowareのカスタマイズ
パッケージの作成
Autowareをカスタマイズする方法ですが、公式ページにちょっとだけ記載されております。
まずはROSチュートリアルのWriting a simple publisher and subscriberを見ながら、簡単なパブリッシャーとサブスクライバーを作ります。
公式サイトの通り、ROS2のパッケージを作成します。
$ cd ~/aichallenge2023-racing/docker/aichallenge/aichallenge_ws/src/aichallenge_submit/
$ ros2 pkg create --build-type ament_cmake cpp_pubsub
ROSチュートリアルに従って、package.xmlとCMakeLists.txtを変更します。
パッケージのビルド
次に、Dockerを起動してコードをビルドします。
$ cd /aichallenge/
$ bash clean_build.sh
以下のようにcpp_pubsubのビルドができれば成功です。
パッケージの実行
参考記事同様、launchファイルから実行します。本大会ではAutoware-Microを使用しており、autoware_micro_awsim.launch.xmlを変更します。
<!-- lane_driving -->
〜割愛〜
<group>
<node pkg="cpp_pubsub" exec="talker"/>
<node pkg="cpp_pubsub" exec="listener"/>
</group> <!-- Simple Pub Sub -->
</group> <!-- lane_driving -->
実行してみます。
$ bash run_autoware.sh
実行されているのが確認できました。
#今後の予定
1.Autowareのメッセージをサブスクライブできるようにする。
2.Autowareのメッセージをパブリッシュし、既存のAutowareがサブスクライブするようにする。
3.OSS連携もできるように変更する。
という流れで行きたいと思います。