增加车队布局与刚体速度分配基础

This commit is contained in:
2026-08-20 17:43:02 +08:00
parent 0d5539e595
commit fea2265e2d
30 changed files with 404 additions and 121 deletions
+67
View File
@@ -0,0 +1,67 @@
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; }
}
}