For your information (I am aware that there is a merge conflict) here you can find my refactoring that natively load a rosbag and process it at the maximum speed allowed by your CPU.
This PR is not meant to be merged but is my way to share with you our work and start discussing how such merge can be done in the future, if you want to.
The nice thing about this version is that:
it has the same level of parallelism as the original code, but...
it is deterministic, i.e. given the same rosbag, the result will always be the same.
inter-thread communication is much more lightweight then the ROS transport.
The determinism allows me to introduce more changes with confidence, because I can alwasys double check if a certain change introduced a change in terms of accuracy or not.
For your information (I am aware that there is a merge conflict) here you can find my refactoring that natively load a rosbag and process it at the maximum speed allowed by your CPU.
This PR is not meant to be merged but is my way to share with you our work and start discussing how such merge can be done in the future, if you want to.
The nice thing about this version is that:
The determinism allows me to introduce more changes with confidence, because I can alwasys double check if a certain change introduced a change in terms of accuracy or not.
For instance, there is another branch where I made the whole application considerably faster: https://github.com/facontidavide/LeGO-LOAM/tree/speed_optimization