Frames in robot_localization: input messages and core state vector
I am confused with frames used in robot_localization. Below is my understanding: In core state vector, the pose is defined as world->base_link and velocities and accelerations are defined in base_link frame. For input messages, the pose should be defined as (user_frame)->baselink, but there is no requirement on velocities and accelerations. The node will take care of other necessary frame transforms.
If I am correct, then for a message whose
- pose and velocity are both useful for fusion
- child_frame_id is not base_link, but sensor frame, like "camera"
then I need to do frame transform outside the node to let its pose proterty express the pose of base_link, while keep the velocity untouched and expressed in sensor frame.
This makes me confused, since usually it would be better to express varables in one frame. Am I wrong? Or are there any reasons for this design?