26 lines
1.2 KiB
C#
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; }
|
|
}
|