LoginSignup
3
0

【13日目】OSS連携してみたい!(10)OSS連携モジュール(C++)を作るにあたっての小ネタ

Last updated at Posted at 2023-12-12

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

前回までのあらすじ

OSS連携を思考するに当たり、Python、C++によるROSモジュールの組み付け、及び関連モジュールの調査を行っていました。
毎日投稿するにあたって端折ってしまいましたが、
ROS2モジュールの作成、Autowareのmsgの受け渡し等に必要な小ネタをちょっと書いていこうと思います。

ROSモジュールの組み付け

ROSのチュートリアルを参照していただければよいかと思います。
たいていはこれで事足ります。

CMakeLists.txt

CMakeLists.txt
find_package(autoware_cmake REQUIRED)
find_package(geometry_msgs REQUIRED)
autoware_package()

を追加します。
AutowareのmsgはAutowareの独自メッセージはもちろん、Autoware内にはROS2のメンバーも入っているので。

ament_auto_add_executable()
には、ビルドしたいcppファイル名を追加します

package.xml

package.xml
<build_depend>autoware_cmake</build_depend>
<depend>autoware_auto_xxx_msgs</depend>
<depend>geometry_msgs</depend>
<depend>motion_utils</depend>

を追加します(xxxはAutowareのモジュール名)。

cppファイル

xxx.hpp
#include <autoware_auto_control_msgs/msg/ackermann_control_command.hpp>
#include <autoware_auto_planning_msgs/msg/trajectory.hpp>
#include <autoware_auto_planning_msgs/msg/trajectory_point.hpp>
#include <geometry_msgs/msg/pose.hpp>
#include <geometry_msgs/msg/twist.hpp>
#include <geometry_msgs/msg/pose_with_covariance_stamped.hpp>
#include <nav_msgs/msg/odometry.hpp>

xmlファイル

作成したパッケージ(モジュール)について、追加を行います。
xxxxxxにはパッケージ名、execにはtalker/listenerを追加します。

autoware_micro_awsim.launch.xml
<node pkg="xxxxxx" exec="talker"/>
<node pkg="xxxxxx" exec="listener"/>

のようにAutoware、ROS2に関連するヘッダファイルをインクルードします。

3
0
0

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
3
0