ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

That is indeed a big offset in your result but that is not due to robot_localization but rosbag. You can find in the rosbag tutorial a section about the limitation of rosbag :

In the previous section you may have noted that the turtle's path may not have exactly mapped to the original keyboard input - the rough shape should have been the same, but the turtle may not have exactly tracked the same path. The reason for this is that the path tracked by turtlesim is very sensitive to small changes in timing in the system, and rosbag is limited in its ability to exactly duplicate the behavior of a running system in terms of when messages are recorded and processed by rosrecord, and when messages are produced and processed when using rosplay. For nodes like turtlesim, where minor timing changes in when command messages are processed can subtly alter behavior, the user should not expect perfectly mimicked behavior.

So tiny changes in the timestamp of each messages will affect the final localization since robot_localization fuse data from different sensors based on their timestamp. If timestamps differ between two tests then the ouput will differ two.

NB : I'm not saying that robot_localization output is deterministic (as I can't tell), just that the input data wasn't exactly the same each time so the ouput data can't be the same too.

That is indeed a big offset in your result but that is not due to robot_localization but rosbag. You can find in the rosbag tutorial a section about the limitation of rosbag :

In the previous section you may have noted that the turtle's path may not have exactly mapped to the original keyboard input - the rough shape should have been the same, but the turtle may not have exactly tracked the same path. The reason for this is that the path tracked by turtlesim is very sensitive to small changes in timing in the system, and rosbag is limited in its ability to exactly duplicate the behavior of a running system in terms of when messages are recorded and processed by rosrecord, rosrecord, and when messages are produced and processed when using rosplay. rosplay. For nodes like turtlesim, where minor timing changes in when command messages are processed can subtly alter behavior, the user should not expect perfectly mimicked behavior.

So tiny changes in the timestamp of each messages will affect the final localization since robot_localization fuse data from different sensors based on their timestamp. If timestamps differ between two tests then the ouput will differ two.

NB : I'm not saying that robot_localization output is deterministic (as I can't tell), just that the input data wasn't exactly the same each time so the ouput data can't be the same too.