How to set datum parameter in robot_localization
Hi all,
I have a rover that uses RTK GPS, IMU and wheel encoders to localize. We perform tests in the same outdoor area using the same trajectory. Our system is configured so that when it first receives an RTK GPS measurement, this value is stored in the datum parameter and only then it launches an EKF global and a navsat_transform node.
Each session the datum is slightly different and therefore the odom->utm
transform is different as well. Is this a good practice? Or should I set a fix datum that is the same for every session and then provide an ~initial_state
parameter to the EKF with the first RTK measurement?
Thanks!
Thanks @JackB ! In this case, we have a base station that we can use as a fix datum. However, in case your rover starts far away from the base station, the EKG global will take some considerable time to converge to the actual position of the rover. How do you go about this?
The only way to prevent the filter "manually" converging is to provide an initial state
I was thinking about doing this but in order to set the
initial_state
parameter I need to convert my first RTK measurement into the odom frame. This is done by the navsat node and requires odometry from the EKF, which in theory I have to initialize at aninitial_state
So it is a chicken or the egg problem. How do you set the initial state given the first RTK measurements?
Well honestly the initial state is a launch parameter, so its supposed to be known a priori before anything else. If you deploy the robot repeatedly on near the same area you can probably just spend time findinf one close enough to the area and use it to make your filter converge faster.
But to be quite honest, the covariance of your RTK measurement should be so low that your filter should converge very fast in my opinion, regardless of how far away you are. Is this not the case?
Yes, it converges pretty fast. Using a datum that is 825km far from my initial position (extreme case where I deploy the system in a very large environment) and it takes about 25s for the filter to attain +-1cm precision. Thanks for your time Jack, I appreciate it!