Files
BQP/srcs/RobotNet10/RobotApp/RobotNet10.RobotApp/SLAM/Cartographer/Helpers/RangeDataPayload.cs
2026-07-13 09:25:40 +07:00

26 lines
1.2 KiB
C#

using CartographerSharp.Sensor;
namespace RobotNet10.RobotApp.SLAM.Cartographer.Helpers;
/// <summary>
/// Point cloud data in both base_link and sensor (lidar) frame.
/// Pipeline produces both so Cartographer gets base_link for trajectory and MCL gets sensor_frame without re-transform.
/// </summary>
public sealed class RangeDataPayload
{
/// <summary>Point cloud in base_link (robot) frame — for Cartographer ITrajectoryBuilder.AddSensorData.</summary>
public TimedPointCloudData BaseLink { get; set; }
/// <summary>Point cloud in sensor (lidar) frame — for MCL OnScan (beam angles relative to sensor). SensorPipeline always produces this.</summary>
public TimedPointCloudData SensorFrame { get; set; }
/// <summary>Actual minimum angle (radians) of filtered point cloud in sensor frame — for MCL scan conversion.</summary>
public double ActualAngleMin { get; set; }
/// <summary>Actual maximum angle (radians) of filtered point cloud in sensor frame — for MCL scan conversion.</summary>
public double ActualAngleMax { get; set; }
/// <summary>Actual angle increment (radians) from original scan — for MCL scan conversion.</summary>
public double ActualAngleIncrement { get; set; }
}