68 lines
1.8 KiB
C#
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; }
|
|
}
|
|
}
|