ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 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 car
  • odom is initially at the spot where the car starts
  • map is in the origin of the map
  • earth is in the center of the earth

Now, 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?