57class ForceActuatorSettings :
public MTM1M3_logevent_forceActuatorSettingsC,
58 public cRIO::Singleton<ForceActuatorSettings> {
60 ForceActuatorSettings(token);
62 void load(YAML::Node doc);
75 float *yForces,
float *zForces);
82 DistributedForces calculateForceFromAngularAcceleration(
float angularAccelerationX,
83 float angularAccelerationY,
84 float angularAccelerationZ);
86 DistributedForces calculateForceFromAngularVelocity(
float angularVelocityX,
float angularVelocityY,
87 float angularVelocityZ);
95 DistributedForces calculateForceDistribution(
float xForce,
float yForce,
float zForce,
float xMoment,
96 float yMoment,
float zMoment);
103 std::vector<float> AccelerationXTable;
104 std::vector<float> AccelerationYTable;
105 std::vector<float> AccelerationZTable;
106 std::vector<float> AzimuthXTable;
107 std::vector<float> AzimuthYTable;
108 std::vector<float> AzimuthZTable;
109 std::vector<float> HardpointForceMomentTable;
110 std::vector<float> ForceDistributionXTable;
111 std::vector<float> ForceDistributionYTable;
112 std::vector<float> ForceDistributionZTable;
113 std::vector<float> MomentDistributionXTable;
114 std::vector<float> MomentDistributionYTable;
115 std::vector<float> MomentDistributionZTable;
116 std::vector<float> ElevationXTable;
117 std::vector<float> ElevationYTable;
118 std::vector<float> ElevationZTable;
119 std::vector<float> StaticXTable;
120 std::vector<float> StaticYTable;
121 std::vector<float> StaticZTable;
122 std::vector<float> ThermalXTable;
123 std::vector<float> ThermalYTable;
124 std::vector<float> ThermalZTable;
125 std::vector<float> VelocityXTable;
126 std::vector<float> VelocityYTable;
127 std::vector<float> VelocityZTable;
128 std::vector<float> VelocityXZTable;
129 std::vector<float> VelocityYZTable;
130 std::vector<float> VelocityXYTable;
132 std::vector<Limit> AberrationLimitZTable;
133 std::vector<Limit> AccelerationLimitXTable;
134 std::vector<Limit> AccelerationLimitYTable;
135 std::vector<Limit> AccelerationLimitZTable;
136 std::vector<Limit> ActiveOpticLimitZTable;
137 std::vector<Limit> AzimuthLimitXTable;
138 std::vector<Limit> AzimuthLimitYTable;
139 std::vector<Limit> AzimuthLimitZTable;
140 std::vector<Limit> BalanceLimitXTable;
141 std::vector<Limit> BalanceLimitYTable;
142 std::vector<Limit> BalanceLimitZTable;
143 std::vector<Limit> ElevationLimitXTable;
144 std::vector<Limit> ElevationLimitYTable;
145 std::vector<Limit> ElevationLimitZTable;
146 std::vector<Limit> OffsetLimitXTable;
147 std::vector<Limit> OffsetLimitYTable;
148 std::vector<Limit> OffsetLimitZTable;
149 std::vector<Limit> StaticLimitXTable;
150 std::vector<Limit> StaticLimitYTable;
151 std::vector<Limit> StaticLimitZTable;
152 std::vector<Limit> ThermalLimitXTable;
153 std::vector<Limit> ThermalLimitYTable;
154 std::vector<Limit> ThermalLimitZTable;
155 std::vector<Limit> VelocityLimitXTable;
156 std::vector<Limit> VelocityLimitYTable;
157 std::vector<Limit> VelocityLimitZTable;
158 std::vector<Limit> CylinderLimitPrimaryTable;
159 std::vector<Limit> CylinderLimitSecondaryTable;
185 bool hardpointBalanceForcesOnInActiveState;
188 void _loadNearNeighborZTable(
const std::string &filename);
189 void _loadNeighborsTable(
const std::string &filename);
190 void _loadFollowingErrorTables(
const std::string &primaryFilename,
const std::string &secondaryFilename);
192 float _measuredForceWarningRatio;