# robot location prediction step

Hi,

In the robot_localisation package, when the use_control param is set to true then the values from the cmd_vel topic are used for the state prediction. But what if its set false. How does the prediction setup work?

I looked at one of the questions posed where it is explained how the prediction step works link.

The transition function for x is x_new = x_old + vx * t + 0.5 * a * t^2

Normally this would mean the vx and aare obtained from the previous state and when the use_control param is true, then these values are obtained from cmd_vel topic.

When I look at the documentation of robot_localisation package, it says

Note: The presence and inclusion of linear acceleration data from an IMU will currently “override” the predicted linear acceleration value.

Which I'm not able to understand as the values from the IMU are used for the correction step and not prediction.

I know I'm assuming something wrong here, but could someone please explain to me how it works?

Thanks Sriram

edit retag close merge delete

Sort by » oldest newest most voted

The prediction step uses the current state to generate a predicted state. If you have use_control set to true and do NOT have an IMU present, it will use the controls to set the state's acceleration values immediately prior to prediction. If you have use_control set to true, and you also have an IMU present and are fusing accelerations, the filter assumes that measurements of acceleration are more accurate than the controls, and will use those. The same logic occurs if you have use_control to false in that case, but there's nothing measuring linear acceleration.

Control commands do not affect velocity during prediction, only acceleration.

more