-
Notifications
You must be signed in to change notification settings - Fork 952
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lib extration #33
Lib extration #33
Commits on Dec 1, 2017
-
Extracted scan registration component into classes.
* Extracted common scan registration logic into a ScanRegistration base class. This simplifies concrete implementations for different types of lidar sensors. * Extracted velodyne specific scan registration logic into VelodyneScanRegistration class. * Extracted remeining parts of main function into velodyne_scan_registration_node.cpp file. * Added struct for scan registration parameters. * Added struct for (accumulated) IMU states. * Created CircularBuffer class for holding the IMU state data history. * Moved some math functions from common.h to math_util.h. * Changed rotation functions to override input vector / point. Almost all rotations were performed on temporary data structures and then directly stored in their target data structure. Changes to the logic: * Calculate imuShiftFromStart and imuVelocityFromStart values only at the end of a sweep, as they are not used (more than once) inbetween. * Changed calculation of scan start and end indices, by using the individual ring cloud sizes. Bugfixes: * Fixed a copy & paste error in transformToStartIMU. New features: * All buffers within the scan registration components used during feature extration are now dynamic and automatically adapted during processing. Also, the buffer scopes - and with that their typical sizes - are reduced to their required minimum, to reduce the memory footprint. However, the number of scans per sweep in the VelodyneScanRegistration is still required to be 16, due to the scan ring mapping. * There exist two different modi: active and passtive. In active mode, the component works just like before. Passive mode is intended for offline processing of bag files and does not listen to topics nor publish any messages.
Configuration menu - View commit details
-
Copy full SHA for 40ac7a1 - Browse repository at this point
Copy the full SHA 40ac7a1View commit details -
Extracted laser odometry component into own class.
* Let transformToEnd transform a whole cloud at once instead of only one point, since it was only called in loops over whole clouds. * Reduced scopes of variables where possible. Changes to the logic: * Do not publish corner and surface clouds during initialization, as they are anyhow rejected without the corresponding full resolution cloud (which was not sent during initialization). New Features: * All buffers used during optimization are now dynamic and automatically adapted to the currently processed cloud sizes. * Again, there are two modis: active and passive. However, passive mode requires some further work with respect to result management.
Configuration menu - View commit details
-
Copy full SHA for 5fe0300 - Browse repository at this point
Copy the full SHA 5fe0300View commit details -
Extracted transform maintenance component into own class.
No changes to the logic. Active / passive modi added, but passive mode needs further work to be usable.
Configuration menu - View commit details
-
Copy full SHA for d4c0782 - Browse repository at this point
Copy the full SHA d4c0782View commit details
Commits on Dec 2, 2017
-
Removed active/passive modi again...
...as they may be confusing and it's not clear yet how the potential offline version is supposed to work.
Configuration menu - View commit details
-
Copy full SHA for c44f0be - Browse repository at this point
Copy the full SHA c44f0beView commit details -
Extracted laser mapping component into own class.
* Moved code for pose optimization into own function. * Reduced scopes of variables where possible. No changes to the logic. This commit completes the extraction of the code into an object oriented library.
Configuration menu - View commit details
-
Copy full SHA for f7457e7 - Browse repository at this point
Copy the full SHA f7457e7View commit details
Commits on Dec 3, 2017
-
* Moved all class header files into include directory. * Moved Vector3, Angle and Twist class definitions from math_utils.h into own loam_types.h in include directory. * Added publish cloud message function to common.h to simplify publishing of cloud messages. * Made all point calculations / transformations in math_utils.h generic with respect to the pcl point type.
Configuration menu - View commit details
-
Copy full SHA for aa9965d - Browse repository at this point
Copy the full SHA aa9965dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 55d90c4 - Browse repository at this point
Copy the full SHA 55d90c4View commit details
Commits on Dec 4, 2017
-
Further code cleanup in scan registration components.
* Replaced scan start and end indices vectors with one std::pair vector. * Removed _nScans variable from ScanRegistration class and replaced its usage with the size of the scan indices vector. This way feature extration will automatically run for all available scans. * Extracted neighbor marking on feature selection into own function. * Removed some duplicate code for IMU interpolation. * Split interpolation of IMU state and point transformation into two functions and store all relevant information needed for the transformation. This way, multi-laser lidars can use the same IMU interpolation for registering all laser measurements to a given point in time. * Removed point cloud getters. * Automatically generate IMU transformation information cloud when publishing the result. * Removed unnecessary shared pointer declaration of internal cloud buffers. * Some minor simplifications.
1Configuration menu - View commit details
-
Copy full SHA for 44fb3e4 - Browse repository at this point
Copy the full SHA 44fb3e4View commit details -
* Moved Angle, Vector3 and Twist classes into separate header files and removed loam_types.h again.
Configuration menu - View commit details
-
Copy full SHA for 3ca101a - Browse repository at this point
Copy the full SHA 3ca101aView commit details