robot_localization output is non deterministic?
I recently thought I would be really clever and save time tuning robot_localization live on my robot. What I did was to create something akin to UMBMark where I was driving the robot in a rectangular pattern and stopping the robot at roughly the same position and orientation as a my starting point (0,0).
I made around 5-66 laps through this rectangular path (about 2m x 1m) and I recorded my sources of odometry, IMU and static transforms.
Then I was hoping that by playing back the bag file and running the ekf I was hoping to play with the config and tune my localization.
What I noticed instead is when I run the exactly same setup (using a single launch file) I get different results every time. In 5 of my runs here are the results of a final robot_position when the bag finishes:
- (0.338, 0.361)
- (0.336, 0.359)
- (0.482, 0.320)
- (0.394, 0.342)
- (0.319, 0.375)
I was expecting that the results will be very close to one another (like the first and the second result) and I was quite surprised to see such a spread of values.
Is there anything that I'm missing?
how are you playing back the
.bag
exactly? Which options torosbag play
are you specifying?@gbdhoorn: Here is how I launch it from the launch file:
<node pkg="rosbag" type="play" name="player" output="screen" args="--clock $(find dev_platform_base)/bags/bag_filtered.bag"/>
I also set the use_sim_time param to true like this:
.