namespace RobotNet10.Shared.Sensor;
///
/// LaserScan message (sensor_msgs/LaserScan)
/// Single scan from a planar laser range-finder
///
public struct LaserScan
{
///
/// Header with timestamp and frame ID
///
public Header Header { get; set; }
///
/// Start angle of the scan (rad)
///
public double AngleMin { get; set; }
///
/// End angle of the scan (rad)
///
public double AngleMax { get; set; }
///
/// Angular distance between measurements (rad)
///
public double AngleIncrement { get; set; }
///
/// Time between measurements (seconds) - if your scanner
/// is moving, this will be used in interpolating position
/// of 3d points
///
public double TimeIncrement { get; set; }
///
/// Time between scans (seconds)
///
public double ScanTime { get; set; }
///
/// Minimum range value (m)
///
public double RangeMin { get; set; }
///
/// Maximum range value (m)
///
public double RangeMax { get; set; }
///
/// Range data (m)
/// (Note: values < range_min or > range_max should be discarded)
///
public double[] Ranges { get; set; }
///
/// Intensity data (device-specific units)
/// If your device does not provide intensities, please leave the array empty
///
public double[] Intensities { get; set; }
///
/// Default constructor
///
public LaserScan()
{
Header = new Header();
AngleMin = 0.0;
AngleMax = 0.0;
AngleIncrement = 0.0;
TimeIncrement = 0.0;
ScanTime = 0.0;
RangeMin = 0.0;
RangeMax = 0.0;
Ranges = [];
Intensities = [];
}
}