3 #include "PidControl.h"
15 PositionVelocityControl
158 float m_fltTemperature;
170 virtual void AddRobotPartInterface(RobotPartInterface *lpPart);
171 virtual void RemoveRobotPartInterface(RobotPartInterface *lpPart);
173 virtual void ClearAssistForces();
174 virtual void ApplyMotorAssist();
175 virtual void EnableFeedback();
186 virtual bool EnableMotor();
187 virtual void EnableMotor(
bool bVal);
192 virtual void ServoGain(
float fltVal);
193 virtual float ServoGain();
195 virtual void MaxForce(
float fltVal,
bool bUseScaling =
true);
196 virtual float MaxForce();
197 virtual float MaxForceNotScaled();
199 virtual float MaxVelocity();
200 virtual void MaxVelocity(
float fltVal,
bool bUseScaling =
true);
202 virtual float DesiredPosition();
203 virtual void DesiredPosition(
float fltPosition);
205 virtual float SetPosition();
206 virtual void SetPosition(
float fltVal);
208 virtual float PrevSetPosition();
209 virtual void PrevSetPosition(
float fltVal);
211 virtual bool ReachedSetPosition();
212 virtual void ReachedSetPosition(
bool bVal);
214 virtual float DesiredVelocity();
215 virtual void DesiredVelocity(
float fltVelocity);
217 virtual float SetVelocity();
218 virtual void SetVelocity(
float fltVal);
220 virtual float PrevSetVelocity();
221 virtual void PrevSetVelocity(
float fltVal);
223 virtual float PrevVelocity();
224 virtual void PrevVelocity(
float fltVal);
226 virtual int AssistCountdown();
227 virtual void AssistCountdown(
int iVal);
229 virtual CStdFPoint MotorForceToA();
230 virtual void MotorForceToA(CStdFPoint &vVal);
232 virtual float MotorForceToAMagnitude();
233 virtual void MotorForceToAMagnitude(
float fltVal);
235 virtual CStdFPoint MotorAssistForceToA();
236 virtual void MotorAssistForceToA(CStdFPoint &vVal);
238 virtual CStdFPoint MotorAssistForceToAReport();
239 virtual void MotorAssistForceToAReport(CStdFPoint &vVal);
241 virtual CStdFPoint MotorForceToB();
242 virtual void MotorForceToB(CStdFPoint &vVal);
244 virtual float MotorForceToBMagnitude();
245 virtual void MotorForceToBMagnitude(
float fltVal);
247 virtual CStdFPoint MotorAssistForceToB();
248 virtual void MotorAssistForceToB(CStdFPoint &vVal);
250 virtual CStdFPoint MotorAssistForceToBReport();
251 virtual void MotorAssistForceToBReport(CStdFPoint &vVal);
253 virtual CStdFPoint MotorTorqueToA();
254 virtual void MotorTorqueToA(CStdFPoint &vVal);
256 virtual float MotorTorqueToAMagnitude();
257 virtual void MotorTorqueToAMagnitude(
float fltVal);
259 virtual CStdFPoint MotorAssistTorqueToA();
260 virtual void MotorAssistTorqueToA(CStdFPoint &vVal);
262 virtual CStdFPoint MotorAssistTorqueToAReport();
263 virtual void MotorAssistTorqueToAReport(CStdFPoint &vVal);
265 virtual CStdFPoint MotorTorqueToB();
266 virtual void MotorTorqueToB(CStdFPoint &vVal);
268 virtual float MotorTorqueToBMagnitude();
269 virtual void MotorTorqueToBMagnitude(
float fltVal);
271 virtual CStdFPoint MotorAssistTorqueToB();
272 virtual void MotorAssistTorqueToB(CStdFPoint &vVal);
274 virtual CStdFPoint MotorAssistTorqueToBReport();
275 virtual void MotorAssistTorqueToBReport(CStdFPoint &vVal);
279 virtual float Temperature();
280 virtual void Temperature(
float fltVal);
282 virtual float Voltage();
283 virtual void Voltage(
float fltVal);
285 virtual void MotorInput(
float fltInput);
287 virtual void RobotMotorControl(RobotPartInterface *lpPart);
288 virtual RobotPartInterface *RobotMotorControl();
290 virtual void SetVelocityToDesired();
291 virtual void EnableLock(
bool bOn,
float fltPosition,
float fltMaxLockForce);
293 virtual void Initialize();
294 virtual void ResetSimulation();
296 virtual float *GetDataPointer(
const std::string &strDataType);
297 virtual bool SetData(
const std::string &strDataType,
const std::string &strValue,
bool bThrowError =
true);
298 virtual void QueryProperties(CStdPtrArray<TypeProperty> &aryProperties);
300 virtual void Load(CStdXml &oXml);
The base class for all of the joint type of objects.
Animatlab PID control system. This implements the CStdPid with extra AnimatBase functionality.
float m_fltMaxForceNotScaled
The un=scaled maximum force.
Root namespace for the base simulation library for AnimatLab.
float m_fltDesiredPosition
CStdFPoint m_vMotorForceToB
float m_fltMotorTorqueAMagnitude
The magnitude of the motor torque being applied to body A. (scaled units)
CStdFPoint m_vMotorTorqueToB
CStdFPoint m_vMotorAssistForceToAReport
Force vector that the motor assist is applying to body A. (un-scaled units).
PidControl * m_lpAssistPid
The PID controller for the motor assist system.
CStdFPoint m_vMotorAssistTorqueToB
Torque vector that the motor assist is applying to body B. (scaled units).
CStdFPoint m_vMotorAssistForceToA
Force vector that the motor assist is applying to body A. (scaled units).
CStdFPoint m_vMotorForceToA
float m_fltMotorForceBMagnitude
The magnitude of the motor Force being applied to body B. (scaled units)
float m_fltMotorForceAMagnitude
The magnitude of the motor Force being applied to body A. (scaled units)
RobotPartInterface * m_lpRobotMotorControl
The RobotPartInterface responsible for motor control for this motorized joint.
float m_fltPrevSetPosition
CStdFPoint m_vMotorAssistForceToBReport
Force vector that the motor assist is applying to body B. (un-scaled units).
float m_fltDesiredVelocity
CStdFPoint m_vMotorAssistTorqueToA
Torque vector that the motor assist is applying to body A. (scaled units).
float m_fltPrevSetVelocity
The previous velocity set for the motorized joint in the last time step.
CStdFPoint m_vMotorAssistForceToB
Force vector that the motor assist is applying to body B. (scaled units).
CStdFPoint m_vMotorAssistTorqueToAReport
Torque vector that the motor assist is applying to body A. (un-scaled units).
float m_fltReportSetPosition
This is the variable that is reported to AnimatLab on what the set position was.
float m_fltMotorAssistMagnitudeReport
The reportable motor assist Force magnitude.
float m_fltReportSetVelocity
This is the variable that is reported to AnimatLab on what the set veloicty was.
bool m_bEnableMotor
If true then the motor for this joint is enabled.
float m_fltSetPositionDeltaCheck
Used to check whether the set position has changed.
float m_fltMotorTorqueBMagnitude
The magnitude of the motor torque being applied to body B. (scaled units)
float m_ftlServoGain
The gain of the servo motor.
eJointMotorType
The motor control type for this joint.
eJointMotorType m_eMotorType
Determines the type of motor control this joint uses. The default is velocity controlled, but it can be position controlled, or both position and velocity controlled.
IMotorizedJoint * m_lpPhysicsMotorJoint
The pointer to the physics joint instance.
CStdFPoint m_vMotorTorqueToA
CStdFPoint m_vMotorAssistTorqueToBReport
Torque vector that the motor assist is applying to body B. (un-scaled units).
float m_fltMotorAssistMagnitude
The motor assist Force magnitude.