Skip to content

[refact] Refactor the Rolling Grid class

Arthur Bourbousson requested to merge refact/RollingGrid into master


Refactoring of the RollingGrid class to be modular.

Now, we can change the KdTree usage without breaking the Slam code.

The main change is that KdTree is not accessible anymore from outside of the Rolling grid class.


  • RollingGrid::GetKdTree()->GetPointCloud() becomes RollingGrid::GetSubMapKdTreePcl()
  • RollingGrid::GetKdTree()->KnnSearch() becomes RollingGrid::KnnSearchSubMap()




I have use car_loop and D7E to test that there is no change relatively to master version.


  • Camel case everywhere except for ROS variables/parameters
  • Lower case for local variables and lambda functions
  • Upper case for pour members, methods and tool functions (in Utils)
  • Precise namespace when calling a function (or this->X or classe.X)
  • Align code (for multiline if and while, "&&" or "||" go in upper line to ensure alignement)
  • Space between if, while, for and parenthesis
  • Space between operators and variables: e.g. a + b
  • Space after ","
  • Mind your commit titles/desc (plurals, he/she + "s", correct tags, title should begin by a verb...)
  • Function names should start with a verb, variable names should start with a name
  • Macros should be between {}
  • Do not use negative boolean (i.e. noJoe)
  • Check minimal size of the types (double -> float -> int -> uint)
  • Check const and ref in functions arguments
  • References should be written "type& name", not "type &name"
  • Update documentation if needed
  • Add MR labels [ROS]/[ROS2]/[PV]
  • If ros/ros2, update task table here
  • Add a comment over each non trivial function in header files
  • Add a header to each new file

Merge request reports