ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
I don't really know how LGSVL implements odometry, but in my mind odom
is not a fixed frame. My understanding aligns with yours about the chain earth
->map
->odom
->base_link
. Here:
base_link
is between the rear wheels of the carodom
is initially at the spot where the car startsmap
is in the origin of the mapearth
is in the center of the earthNow, the way I understand it, when the car drives, its odometry is not ideal, so there is some wheel slippage. Imagine, for the sake of example, that a car starts from the center of the map (making odom
and map
be at the same spot at the start) and drives straight in x
direction for 10 meters. However, let's say its tires, say the left ones, are deflated. In the odom
frame the position of the base_link
frame will be [10, 0, 0]
. However, in the map frame the car will drift to the left, so its position in the map
frame will actually be smth like [9.5, -0.5, 0]
. One way to deal with this is to _correct_ the position of the vehicle by some alignment with map. We perform the update and move the car to its correct position. Now, the coordinate of base_link
in odom
frame is still [10, 0, 0]
. So there is no way for map
and odom
to be aligned anymore. The way to deal with this is to move odom
frame around making it a dynamic frame.
Does this clear up anything or is it only more confusing?