2022-10-11

やること

  • EEx 使って、ROS2 のメッセージファイルからコード生成する

Message description specification の fieldtype がプリミティブな型以外の場合の扱いが注意が必要。

その場合の型の表記は"パッケージ名/メッセージ名"になる。例えば、

  • std_msgs/msg/String.msg なら std_msgs/String
  • geometry_msgs/msg/Twist.msg なら geometry_msgs/Twist

同じパッケージ名のメッセージ型を利用して定義されるメッセージはパッケージ名が省略される。

$ cat /opt/ros/foxy/share/geometry_msgs/msg/Twist.msg
# This expresses velocity in free space broken into its linear and angular parts.

Vector3  linear # Vector3 は geometry_msgs パッケージのメッセージ
Vector3  angular

再帰を使うのがややこしかったけど、 TDD で(ユニットテストを mix test.watch 回して)進めてうまくいった。2つある内の1つはクリア!