Odometry2Proto message: What are the odometryFrame and robotFrame Fields and how are they used?

Hi Everyone,
I have some questions about the Odometry2Proto structure. it is as described in the documentation as following:

Describes how an entity is moving through space in a local diverging coordinate frame.

struct Odometry2Proto {

The pose of the “robot” relative to the reference odometric frame

odomTRobot @0: Pose2dProto;
speed @1: Vector2dProto;
angularSpeed @2: Float64;
acceleration @3: Vector2dProto;

Contains the name of the odometry frame and the robot frame.

odometryFrame @4: Text;
robotFrame @5: Text;
}

My question relates to properties 4 and 5. There is odometyFrame and robotFrame that are text fieds. Now as it states in the beginning description that the Odometry2Proto “The pose of the “robot” relative to the reference odometric frame”. My thought is these properties (odometyFrame and robotFrame) are how that is referenced, in just not sure how this reference is done or identified.

Can someone shed some light on this?

Thanks!

In general all the ISAAC messages that contains a transformation also contain the name reference frame (as it is referenced in the PoseTree) of this transformation. In this specific case odometryFrame corresponds to the name of the odometry frame in the PoseTree (default value for isaac applications: ‘odom’) and the robotFrame correspond to the name of the robot frame in the PoseTree (default value for isaac applications: ‘robot’). It is the responsibility of the codelet publishing the messages to fill these frame correctly (in this case it would be the codelet in charge of the odometry to decide what is the name of the odometry frame).

The reference frame is just here to help you use the pose if you need to compose with other transform from the PoseTree. In this specific case the odomTRobot is provided just for convenience as you could also access it using:

node()->pose().getPose2XY(odometryFrame, robotFrame, message_time);

Let me know if you have further question.