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; } }