Files
ParkingRobot/Shared/Fleet/FleetModels.cs
T

68 lines
1.8 KiB
C#

namespace MyParking.Shared
{
// 单车车体系在车队坐标系中的固定位姿。
public readonly struct VehicleLayout
{
public VehicleLayout(int vehicleId, Pose2D poseInFleet)
{
VehicleId = vehicleId;
PoseInFleet = poseInFleet;
}
public int VehicleId { get; }
public Pose2D PoseInFleet { get; }
}
// 车队参考点及该点在车队坐标系中表达的刚体速度。
public readonly struct FleetMotionCommand
{
public FleetMotionCommand(
Point2D referencePointInFleet,
Twist2D twistAtReferencePoint)
{
ReferencePointInFleet = referencePointInFleet;
TwistAtReferencePoint = twistAtReferencePoint;
}
public Point2D ReferencePointInFleet { get; }
public Twist2D TwistAtReferencePoint { get; }
public static FleetMotionCommand RotateAround(
Point2D rotationCenterInFleet,
double omegaRadiansPerSecond)
{
return new FleetMotionCommand(
rotationCenterInFleet,
new Twist2D(
0.0,
0.0,
omegaRadiansPerSecond));
}
public static FleetMotionCommand Stop()
{
return new FleetMotionCommand(
Point2D.Zero,
Twist2D.Zero);
}
}
// 分配给指定车辆、在该车车体系中表达的刚体速度。
public readonly struct FleetMemberCommand
{
public FleetMemberCommand(
int vehicleId,
Twist2D twistInVehicleBody)
{
VehicleId = vehicleId;
TwistInVehicleBody = twistInVehicleBody;
}
public int VehicleId { get; }
public Twist2D TwistInVehicleBody { get; }
}
}