robot_localization: erroneous filtered GPS output
Hello,
I am quite new to the robot_localization package and am facing a number of difficulties in using it. I am currently trying to fuse data taken from an Android device's GPS and IMU using this node. To achieve this, I have extracted the GPS and IMU log data and have read it into a bag file, which I then play back to the ekf_localization_node and navsat_transform_node to try to fuse the data.
I have a few difficulties. My GPS doesn't have altitude information, so I estimated the altitude at around 240 and set the field to that value. I notice that while the altitude stays quite constant for maybe 15-20 seconds, its value starts exploding and becoming erratic soon after.
Also, I have input a value of around -79 degrees in the longitude field. However, the filtered GPS topic inexplicably maintains the longitude field in the range of 179-180 degrees instead. I'm not sure what's going on here, and have attached the launch file I am using as well as the bag file I am reading from below.
Would greatly appreciate some feedback on what I am currently doing wrong! Thanks in advance!
Bagfile: https://drive.google.com/file/d/0B_Ld...
Launch file: https://drive.google.com/file/d/0B_Ld...
UPDATE: I have downloaded and tried out the latest version of robot_localization, and it does indeed resolve all issues with the GPS output from the navsat_transform node.
I have also tried to follow up on Porti's suggestion that my frames are not correct, but as far as I can tell this is not the case. I am using the IMU on an Android-powered camera, and have followed the developer's API to process the data coming from the camera. As far as I can tell, I am taking the accelerometer values and inputting them so that x is forward (direction of motion of base_link), y is to the left when facing forward, and z is upward. I understand this to be the standard required by REP 103.
I have also tried exchanging the x and y axes and attempting to zero out any effects of gravity (from the possibility that the camera is skewed). However, all these attempts yield only paths similar to what Porti has plotted. I have enclosed MATLAB graphs of the path output by the node for the various cases listed above. All these graphs have the same jagged, discontinuous shapes as Porti's graph for IMU data. Would anyone be able to suggest any possible causes for this phenomenon?
Thank you in advance for your help!
MATLAB graphs: https://drive.google.com/file/d/0B_Ld... https://drive.google.com/file/d/0B_Ld... https://drive.google.com/file/d/0B_Ld...
I'll have to look at the bag files. Your IMU does have a compass, correct? It could be trouble with acceleration biases.