robot_pose_ekf and GPS
Hi all,
We're porting some of our internal code over to ROS-standard nodes for release, and I've got two questions related to robot_pose_ekf. For background, I have been working primarily from this tutorial (which advises adding a GPS as a VO sensor) and this ROS Answers thread.
Initialization
Is there a reason that this will only initialize on odometry data if it's available? I don't want our odometry publisher to know about the GPS sensor, so it would be ideal if there was a setting to allow it to "snap" to the VO data when it's first received. I can add this and submit a patch, but I wanted to see if there was something I was missing first.
Corrections
Given my review of the source, the VO data is used in a relative sense, same as the other data. Though this makes sense for true visual odometry (scan matching, etc), this isn't the standard way that GPS data would be used for correction. In fact, I'm pretty sure it means that we lose the benefit of the global reference frame the GPS provides.
Given a quick once over on the core code, there doesn't seem to be an explicit correction step at all. Am I missing something?
Wholeheartedly agree, GPS should be used in a more comprehensive ekf (or ukf) framework that provides prediction and correction. Other improvements would be to allow N sensor sources. I would participate in a development effort if there's some interest.
The issues that you mentioned are the reason that we were forced to write our own EKF to properly make use of the GPS on our robot
@DimitriProsser We are looking into writing our own as well. I am curious if there are libraries you recommend. We are looking at bfl and bfilt, leaning toward bflit.
We wrote our entirely from the ground up using pure matrix math with Eigen. I don't recommend this unless you're really good with math and have a lot of time to spend debugging. I'm not familiar with any of the libraries, so I can't really help there unfortunately.
+1 to a new community-developed and supported Kalman filter implementation
Alright, seems I wasn't off base here. Thanks, all!
I am interested in this issue too, I found this stack which is still under development but is worth it to keep an eye http://ros.org/wiki/ethzasl_sensor_fusion
Any news on the idea of a new implementation of the kalman filter? i'll be happy to help