using CartographerSharp.Mapping; using RobotNet10.RobotApp.SLAM.Cartographer; namespace RobotNet10.RobotApp.SLAM.Cartographer.Helpers; /// /// Helper class for trajectory-related operations /// public static class TrajectoryHelper { /// /// Build sensor IDs from configuration /// /// Cartographer configuration /// HashSet of sensor IDs public static HashSet BuildSensorIds(CartographerConfiguration config) { var sensorIds = new HashSet(); // Add Lidar sensor IDs foreach (var lidarConfig in config.Sensors.Lidars.Where(l => l.Enabled)) { sensorIds.Add(new ITrajectoryBuilder.SensorId( ITrajectoryBuilder.SensorId.SensorType.Range, lidarConfig.DeviceId)); } // Add IMU sensor ID if (config.Sensors.Imu.Enabled && !string.IsNullOrEmpty(config.Sensors.Imu.DeviceId)) { sensorIds.Add(new ITrajectoryBuilder.SensorId( ITrajectoryBuilder.SensorId.SensorType.Imu, config.Sensors.Imu.DeviceId)); } // Add Odometry sensor ID if (config.UseOdometry) { sensorIds.Add(new ITrajectoryBuilder.SensorId( ITrajectoryBuilder.SensorId.SensorType.Odometry, "odometry")); } return sensorIds; } }