#ifndef LASER_SCAN_H
#define LASER_SCAN_H

#include <vector>
#include "std_msgs/Header.h"
namespace sensor_msgs
{

struct LaserScan
{
    std_msgs::Header header;  // Thời gian và frame của phép đo

    // Góc bắt đầu và kết thúc của tia quét [rad]
    float angle_min = 0.0f;
    float angle_max = 0.0f;
    float angle_increment = 0.0f;  // Khoảng cách góc giữa hai tia quét liên tiếp [rad]

    // Thông tin về thời gian quét
    float time_increment = 0.0f;  // Thời gian giữa hai phép đo liên tiếp [s]
    float scan_time = 0.0f;       // Thời gian hoàn tất một lần quét [s]

    // Giới hạn khoảng đo
    float range_min = 0.0f;  // Giá trị khoảng cách nhỏ nhất [m]
    float range_max = 0.0f;  // Giá trị khoảng cách lớn nhất [m]

    // Dữ liệu chính của laser
    std::vector<float> ranges;       // Dữ liệu khoảng cách [m]
    std::vector<float> intensities;  // Cường độ phản xạ (đơn vị phụ thuộc thiết bị)

    LaserScan() = default;
};

}
#endif // LASER_SCAN_H
