LoginSignup
1

More than 1 year has passed since last update.

ROS2におけるメッセージ -common_interfacesの活用

Posted at

ROS2関係トップページへ

ROS2のpublisher/subscriber概要にて質問を頂いて色々考える機会をもらったので本ページを作成.感謝.

概要

ROS2ノードはメッセージのやり取りによって緩い接続性を実現している.その時,独自メッセージによって自分独自の(プロジェクト独自の)メッセージを実現しても良い.
ただ,よく使用するメッセージは common_interfacesにまとめられており,(特にロボットや器械を対象にすると)結構そろっているので活用しない手はない.

使い方は

common_interfacesの活用

種類を確認

GitHubの公式のcommon_interfacesに色々あるので見てみる.

利用

例えば以下のメッセージを利用する場合.

  • common_interfaces/sensor_msgs/msg/BatteryState.msg

インクルードファイル

#include <sensor_msgs/msg/battery_state.hpp>

package.xml

使用するものを追加.

<depend>sensor_msgs</depend>

CMakeLists.txt

使用するものを追加

find_package(sensor_msgs REQUIRED)

ament_target_dependencies(
...
  "sensor_msgs"
...
)
ament_export_dependencies(
...
  "sensor_msgs"
...
)

メッセージでの利用など

メッセージの型を指定してcreate_publishercreate_subscriptionを利用する.
この時の型は以下のようになる.

sensor_msgs::msg::BatteryState

注意

std_msgsは中の注意書きにあるように「とりあえず使う分だから.長期使用には合いません」みたいなことが書いてある.

The primitive and primitive array types should generally not be relied upon for long-term use.

primitiveprimitive arrayなので ColorRGBAEmptyHeaderは別.

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
1