Files
I150/srcs/RobotNet10/Shared/RobotNet10.Shared/Geometry/AccelWithCovariance.cs
2026-07-03 16:37:12 +07:00

50 lines
1.3 KiB
C#

namespace RobotNet10.Shared.Geometry;
/// <summary>
/// AccelWithCovariance message (geometry_msgs/AccelWithCovariance)
/// An Accel with associated covariance matrix
/// </summary>
public struct AccelWithCovariance
{
/// <summary>
/// Acceleration
/// </summary>
public Accel Accel { get; set; }
/// <summary>
/// Covariance matrix (row-major order)
/// The orientation parameters use a fixed-axis representation.
/// In order, the parameters are:
/// (ax, ay, az, wx, wy, wz)
/// </summary>
public double[] Covariance { get; set; }
/// <summary>
/// Size of covariance matrix (6x6 = 36 elements)
/// </summary>
public const int CovarianceSize = 36;
/// <summary>
/// Default constructor
/// </summary>
public AccelWithCovariance()
{
Accel = new Accel();
Covariance = new double[CovarianceSize];
}
/// <summary>
/// Constructor with parameters
/// </summary>
public AccelWithCovariance(Accel accel, double[] covariance)
{
Accel = accel;
if (covariance == null || covariance.Length != CovarianceSize)
{
throw new ArgumentException($"Covariance array must have {CovarianceSize} elements", nameof(covariance));
}
Covariance = covariance;
}
}