using CartographerSharp.Mapping; using RobotNet10.RobotApp.SLAM.Cartographer; namespace RobotNet10.RobotApp.SLAM.Cartographer; public static class CartographerExtensions { extension(IServiceCollection services) { public IServiceCollection AddCartographer(IConfigurationSection configuration) { // Cartographer / Localization services services.Configure(configuration); // Core Cartographer service (singleton - manages state machine, MapBuilder, sensor pipeline, localization, and occupancy grid) // Also implements IHostedService to start automatically services.AddSingleton(); services.AddSingleton(sp => sp.GetRequiredService()); services.AddHostedService(sp => sp.GetRequiredService()); return services; } } }