robot_localization: Potential transformation error
I am trying to fuse GPS with an IMU and am running into an issue I believe is some sort of transformation error. The transformations between the links and the baselink are specified in my URDF file and echoing tfstatic shows this.
I have 2 gps units mounted to my robot to give me a position and heading and an IMU which outputs a yaw rate.
I have a node which converts the 2 gps information into an odometry message where the x,y position are the UTM coordinates of the rear gps and the heading angle is a straight line extending from the rear gps to the front gps. The frameid in this message is odom and the childframeid is reargps_link.
When the odometry message is the sole input to the EKF the filtered output closely resembles the odometry message (i.e. the x,y position closely tracks the x,y position from the odometry msg), however, adding the IMU as a source results in the filtered output staying at position 0,0 (only the angular information updates) and I have no idea why.
I'm not able to attach the examples here but I can send them individually if needed.
Thanks, Ben
Asked by bmgatten on 2019-09-23 15:41:09 UTC
Answers
I realized that the issue has to do with setting the odom0_pose_rejection_threshold parameter in the .yaml file. The purpose of this parameter is to reject outliers so that they don't influence the filtered odometry result from the EKF. Since the initial x,y position was set to 0,0 my utm coordinates were being rejected.
Asked by bmgatten on 2019-09-23 18:13:00 UTC
Comments