There are a number of Kalman-like things you can do when your updates are nonlinear.
The “extended Kalman filter” uses a local linear approximation to the update. There are higher-order versions. The EKF unsurprisingly tends to do badly when the update is substantially nonlinear. The “unscented Kalman filter” uses (kinda) a finite-difference approximation instead of the derivative, deliberately taking points that aren’t super-close together to get an approximation that’s meaningful on the scale of your actual uncertainty. Going further in that direction you get “particle filters” which represent your uncertainty not as a Gaussian but by a big pile of samples from its distribution. (There’s a ton of lore on all this stuff. I am in no way an expert on it.)
There are a number of Kalman-like things you can do when your updates are nonlinear.
The “extended Kalman filter” uses a local linear approximation to the update. There are higher-order versions. The EKF unsurprisingly tends to do badly when the update is substantially nonlinear. The “unscented Kalman filter” uses (kinda) a finite-difference approximation instead of the derivative, deliberately taking points that aren’t super-close together to get an approximation that’s meaningful on the scale of your actual uncertainty. Going further in that direction you get “particle filters” which represent your uncertainty not as a Gaussian but by a big pile of samples from its distribution. (There’s a ton of lore on all this stuff. I am in no way an expert on it.)