Kalman Filter in robot_localization: Why are velocities and accelarations given relative to the robot frame?
I'm currently digging myself through the Extended Kalman Filter of the robot_localization package. And I was wondering why an EXTENDED Kalman Filter is needed. As Tom Moore states in this comment, the velocities and accelerations of the state are given relative to the robot frame, in contrary to the position that is (of course) relative to the world frame. Because of that the dynamics function for the x position becomes unlinear:
X = X + cos(yaw) * cos(pitch) * dt * X_velocity + 0.5 * cos(yaw) * cos(pitch) * dt^2 * X_acceleration
If I would have a state that safes the velocities and accelerations relative to the world frame I would get a linear dynamics function and thus wouldn't have to use an EXTENDED Kalman Filter.
X = X + dt * X_velocity + 0.5 * dt^2 * X_acceleration
So what is the reason for having the state contain the velocities and accelerations not relative to the world but to the robot frame?