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つはクリア!