namespace RobotNet10.RobotApp.SLAM.Cartographer;
///
/// Root configuration for Cartographer integration
///
public class CartographerConfiguration
{
///
/// Enable or disable Cartographer service
///
public bool Enable { get; set; } = true;
///
/// Use odometry data if available
///
public bool UseOdometry { get; set; } = true;
///
/// Sensor configuration
///
public SensorConfiguration Sensors { get; set; } = new();
///
/// Trajectory builder configuration
///
public TrajectoryBuilderConfiguration TrajectoryBuilder { get; set; } = new();
///
/// Map builder configuration
///
public MapBuilderConfiguration MapBuilder { get; set; } = new();
///
/// Map storage configuration
///
public MapStorageConfiguration MapStorage { get; set; } = new();
///
/// MCL (Monte Carlo Localization) configuration. When Enabled, SetInitialPoseAsync uses MCL to refine pose before starting Cartographer trajectory (xloc flow).
///
public MclConfiguration Mcl { get; set; } = new();
///
/// Occupancy grid generation configuration.
/// Controls probability thresholds, output mode, wall thinning, and ambiguous cell handling.
///
public OccupancyGridConfiguration OccupancyGrid { get; set; } = new();
}