using RobotNet10.Shared;
using RobotNet10.Shared.Geometry;
namespace RobotNet10.Shared.Sensor;
///
/// Odometry message (nav_msgs/Odometry)
/// This represents an estimate of a position and velocity in free space.
/// The pose in this message should be specified in the coordinate frame given by header.frame_id.
/// The twist in this message should be specified in the coordinate frame given by the child_frame_id.
///
public struct Odometry
{
///
/// Header with timestamp and frame ID (parent frame, typically "odom")
///
public Header Header { get; set; }
///
/// Child frame ID (typically "base_link" or "base_footprint")
///
public string ChildFrameId { get; set; }
///
/// Pose with covariance (PoseWithCovariance)
///
public PoseWithCovariance Pose { get; set; }
///
/// Twist with covariance (TwistWithCovariance)
///
public TwistWithCovariance Twist { get; set; }
///
/// Default constructor
///
public Odometry()
{
Header = new Header();
ChildFrameId = string.Empty;
Pose = new PoseWithCovariance();
Twist = new TwistWithCovariance();
}
///
/// Constructor with parameters
///
public Odometry(Header header, string childFrameId, PoseWithCovariance pose, TwistWithCovariance twist)
{
Header = header;
ChildFrameId = childFrameId;
Pose = pose;
Twist = twist;
}
}