LoginSignup
2
0

【7日目】OSS連携してみたい!(5)PythonでHelloWorld

Last updated at Posted at 2023-12-06

この記事は筆者オンリーのAdvent Calendar 20237日目の記事です。

前回までのあらすじ

OSS連携を試みるため、C++でROS2の簡単なモジュールを作りました。
今回はpythonrobotics等のPython製OSSとの連携を見据えPythonで自作ROSモジュールがAutoware上で動くか確認してみたいと思います

ROS2でモジュール作成

ROSのチュートリアルを参考にまずはAutowareでHelloWorld的なことができるようにカスタマイズしてみようと思います。

Autowareのカスタマイズ

パッケージの作成

Autowareをカスタマイズする方法ですが、公式ページにちょっとだけ記載されております。

まずはROSのチュートリアルを見ながら、簡単なパブリッシャーとサブスクライバーを作ります。

公式サイトの通り、ROS2のパッケージを作成します。

$ cd ~/aichallenge2023-racing/docker/aichallenge/aichallenge_ws/src/aichallenge_submit/
$ ros2 pkg create --build-type ament_python py_pubsub

ROSチュートリアルに従って、package.xmlとCMakeLists.txtを変更します。

パッケージのビルド

次に、Dockerを起動してコードをビルドします。

$ cd /aichallenge/
$ bash clean_build.sh 

以下のようにビルドエラーが発生してしましました
Screenshot from 2023-12-02 10-52-20.png
こちらを参考にダウングレードしてビルドしたら成功しました。

pip install setuptools==58.2.0
cd /aichallenge/
bash clean_build.sh 

以下のようにcpp_pubsubのビルドができれば成功です。
Screenshot from 2023-12-02 10-56-06.png

パッケージの実行

参考記事同様、launchファイルから実行します。本大会ではAutoware-Microを使用しており、autoware_micro_awsim.launch.xmlを変更します。

autoware_micro_awsim.launch.xml
<!-- lane_driving -->
〜割愛〜
<group>
    <node pkg="python_pubsub" exec="talker"/>
    <node pkg="python_pubsub" exec="listener"/>
</group> <!-- Simple Pub Sub -->
</group> <!-- lane_driving -->

実行してみます。今回は併せてAWSIMも実行してみます。

$ bash run_autoware.sh
$ bash run_awsim.sh

Screenshot from 2023-12-03 09-50-44.png
PythonでもHello Worldできることを確認しました。

今後の予定

1.Autowareのメッセージをサブスクライブできるようにする。
2.Autowareのメッセージをパブリッシュし、既存のAutowareがサブスクライブするようにする。
3.OSS連携もできるように変更する。
という流れで行きたいと思います。

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0