evalio.pipelines
For more information about the pipelines included in evalio, see the included pipelines section.
Classes:
-
Pipeline–Base class for all pipelines. This class defines the interface for interacting with pipelines, and is intended to be subclassed by specific implementations.
-
CTICP–CT-ICP LiDAR-only pipeline performs continuous-time ICP over a small window of scans to perform more accurate dewarping performance. This is the version based on the 2022-ICRA paper.
-
KissICP–KissICP LiDAR-only pipeline for point cloud registration. KissICP is designed to be simple and easy to use, while still providing good performance with minimal parameter tuning required across datasets.
-
GenZICP–Genz-ICP LiDAR-only pipeline is an extension of KissICP that additionally estimates normals in the local submap voxel map for increased robustness. It also includes a novel weighting scheme for weighting point-to-plane and point-to-point correspondences.
-
LOAM–Lidar Odometry and Mapping (LOAM) pipeline. LOAM is a baseline lidar-only odometry method that pioneered feature-based ICP. Our implementation permits both scan-to-scan or scan-to-map matching.
-
LioSAM–Lidar-Inertial Smoothing and Mapping (LioSAM) pipeline. LioSAM is an extension of LOAM (=> uses planar and edge features) that additionally utilizes an IMU for initializing ICP steps and for dewarping points
-
MadICP–MAD-ICP LiDAR-only pipeline is an extension of KissICP that utilizes a novel kd-tree representation that implicitly computes normals to perform point-to-plane registration.
-
PipelineNotFound–Raised when a pipeline is not found in the registry.
-
UnusedPipelineParam–Raised when a parameter is not used in the pipeline.
-
InvalidPipelineParamType–Raised when a parameter has an invalid type.
Functions:
-
all_pipelines–Get all registered pipelines.
-
get_pipeline–Get a pipeline class by its name.
-
register_pipeline–Add a pipeline or a module containing pipelines to the registry.
-
validate_params–Validate the parameters for a given pipeline.
Pipeline
Base class for all pipelines. This class defines the interface for interacting with pipelines, and is intended to be subclassed by specific implementations.
Methods:
-
__init__–Construct a new pipeline.
-
add_imu–Register an IMU measurement.
-
add_lidar–Register a LiDAR measurement.
-
default_params–Default parameters for the pipeline.
-
initialize–Initialize the pipeline. Must be called after constructing the object and before setting parameters.
-
map–Map of the environment.
-
name–Name of the pipeline.
-
pose–Most recent pose estimate.
-
set_imu_T_lidar–Set the transformation from IMU to LiDAR frame.
-
set_imu_params–Set IMU parameters for the pipeline.
-
set_lidar_params–Set LiDAR parameters for the pipeline.
-
set_params–Set parameters for the pipeline. This will override any default parameters.
-
url–URL for more information about the pipeline.
-
version–Version of the pipeline.
Source code in python/evalio/_cpp/pipelines.pyi
__init__
add_imu
add_imu(mm: ImuMeasurement) -> None
add_lidar
add_lidar(mm: LidarMeasurement) -> dict[str, list[Point]]
default_params
staticmethod
initialize
map
map() -> dict[str, list[Point]]
name
staticmethod
pose
pose() -> SE3
set_imu_T_lidar
set_imu_T_lidar(T: SE3) -> None
set_imu_params
set_imu_params(params: ImuParams) -> None
set_lidar_params
set_lidar_params(params: LidarParams) -> None
set_params
set_params(
params: Mapping[str, bool | int | float | str],
) -> dict[str, bool | int | float | str]
Set parameters for the pipeline. This will override any default parameters.
url
staticmethod
CTICP
Bases: Pipeline
CT-ICP LiDAR-only pipeline performs continuous-time ICP over a small window of scans to perform more accurate dewarping performance. This is the version based on the 2022-ICRA paper.
Source code in python/evalio/_cpp/pipelines.pyi
KissICP
Bases: Pipeline
KissICP LiDAR-only pipeline for point cloud registration. KissICP is designed to be simple and easy to use, while still providing good performance with minimal parameter tuning required across datasets.
Source code in python/evalio/_cpp/pipelines.pyi
GenZICP
Bases: Pipeline
Genz-ICP LiDAR-only pipeline is an extension of KissICP that additionally estimates normals in the local submap voxel map for increased robustness. It also includes a novel weighting scheme for weighting point-to-plane and point-to-point correspondences.
Source code in python/evalio/_cpp/pipelines.pyi
LOAM
Bases: Pipeline
Lidar Odometry and Mapping (LOAM) pipeline. LOAM is a baseline lidar-only odometry method that pioneered feature-based ICP. Our implementation permits both scan-to-scan or scan-to-map matching.
Source code in python/evalio/_cpp/pipelines.pyi
LioSAM
Bases: Pipeline
Lidar-Inertial Smoothing and Mapping (LioSAM) pipeline. LioSAM is an extension of LOAM (=> uses planar and edge features) that additionally utilizes an IMU for initializing ICP steps and for dewarping points
Source code in python/evalio/_cpp/pipelines.pyi
MadICP
Bases: Pipeline
MAD-ICP LiDAR-only pipeline is an extension of KissICP that utilizes a novel kd-tree representation that implicitly computes normals to perform point-to-plane registration.
Source code in python/evalio/_cpp/pipelines.pyi
PipelineNotFound
Bases: CustomException
Raised when a pipeline is not found in the registry.
Source code in python/evalio/pipelines/parser.py
UnusedPipelineParam
Bases: CustomException
Raised when a parameter is not used in the pipeline.
Source code in python/evalio/pipelines/parser.py
InvalidPipelineParamType
Bases: CustomException
Raised when a parameter has an invalid type.
Source code in python/evalio/pipelines/parser.py
all_pipelines
all_pipelines() -> dict[str, type[Pipeline]]
Get all registered pipelines.
Returns:
-
dict[str, type[Pipeline]]–A dictionary mapping pipeline names to their classes.
get_pipeline
get_pipeline(
name: str,
) -> type[Pipeline] | PipelineNotFound
Get a pipeline class by its name.
Parameters:
-
name(str) –The name of the pipeline.
Returns:
-
type[Pipeline] | PipelineNotFound–The pipeline class if found, otherwise a PipelineNotFound error.
Source code in python/evalio/pipelines/parser.py
register_pipeline
register_pipeline(
pipeline: Optional[type[Pipeline]] = None,
module: Optional[ModuleType | str] = None,
) -> int | ImportError
Add a pipeline or a module containing pipelines to the registry.
Parameters:
-
pipeline(Optional[type[Pipeline]], default:None) –A specific pipeline class to add. Defaults to None.
-
module(Optional[ModuleType | str], default:None) –The module to search for pipelines. Defaults to None.
Source code in python/evalio/pipelines/parser.py
validate_params
validate_params(
pipe: type[Pipeline], params: dict[str, Param]
) -> None | InvalidPipelineParamType | UnusedPipelineParam
Validate the parameters for a given pipeline.
Parameters:
Returns:
-
None | InvalidPipelineParamType | UnusedPipelineParam–An error if validation fails, otherwise None.