Using two GPS for robot_localization

asked 2017-11-29 02:08:27 -0500

cheng1234567 gravatar image

Hi

I am planning to use 2 GPS with robot_localization in my robotic project to improve its accuracy. Inside the .yaml file for ekf_global_node, my wheel encoder odometry will be odom0 and imu will be imu0. I let the outputs of the two navsat_transform node be odom1:odometry/gps0 and odom2:odometry/gps1. Do I have to change the _differential for either odom1 or odom2 to true?

my current config for the two gps:

odom1: odometry/gps0
odom1_config: [true,  true,  false,
                     false, false, false,
                     false, false, false,
                     false, false, false,
                     false, false, false]
odom1_queue_size: 10
odom1_nodelay: false
odom1_differential: false
odom1_relative: false

odom2: odometry/gps1
odom2_config: [true,  true,  false,
                     false, false, false,
                     false, false, false,
                     false, false, false,
                     false, false, false]
odom2_queue_size: 10
odom2_nodelay: false
odom2_differential: false
odom2_relative: false

When I show the results on rviz, the odometry/filtered_map seems to only follow one of the gps data and totally ignore the other. I thought it is supposed to find the best position of the robot based on the two gps signals?

Thanks in advance for the help!

edit retag flag offensive close merge delete

Comments

Please post sample input messages for all inputs, as well as you full EKF config. Are you sure that data is publishing for both odometry/gps0 and odometry/gps1? They are reporting in the same frame_id, so no need for differential mode.

Tom Moore gravatar image Tom Moore  ( 2018-01-24 04:30:40 -0500 )edit