Class in Zendir.Classes | Inherits from PhysicalObject

Declaration

class Gimbal;

Description

The Gimbal class provides a single 1-axial gimbal that allows for a component attached to be rotated about a fixed axis. The gimbal will rotate about its local Up-vector, which is a yaw rotation. The gimbal does not move horizontally and does not perform any physical calculations. This means that it will not contribute to the changes in the mass properties of the spacecraft or any torques applied to the spacecraft’s overall orientation. Objects attached to the gimbal will be rotated at the pivot point (the local origin) and gimbals can be stacked for multidimensional rotations. Physics-based estimates, such as forces and moment of inertia calculations are not calculated. As such, the gimbal should be used as a proof of concept design before moving to a more advanced and accurate system, such as the Hinged Rigid Body (HRB) component.


Properties

DeclaredDescription
AngleThe angle at which the gimbal is currently rotated. Thisis set by the gimbal and cannot be set by external classes.
DesiredVelocityThe desired angular velocity of the motor that should spin thegimbal. This velocity will only be met provided the torque does notexceed the limit.
In_CommandGimbalMsgAn optional gimbal command message that will update the target angleand desired velocity based on the message, which can be calculated froma software module or external source.
InertiaThe rotational inertia of the gimbal and all objects attached.By default, if the inertia value is left to be zero,then the rotational inertia of the gimbal is calculated by usinga Cylinder model of I = 0.5 m r^2, where m is the total mass andr is the distance the furthest child is from the cylinder.
IsLimitedA flag whether the gimbal has reached its limits of theangle at which it is able to rotate. This does not necessarilymean it is stuck, but that one direction is restricted.
IsLockedA flag whether the gimbal is able to move. If the gimbal islocked, the gimbal angle will not be changed.
MaxAngleThe maximum angle at which the gimbal can reach. If thegimbal attempts to reach an angle passed this point, the gimbalwill be locked.
MaxTorqueThe maximum torque that can be applied to the gimbalmotor when attempting to change the angle of the gimbal. This is avalue that does not change and the gimbal will only rotate withthe amount of torque.
MinAngleThe minimum angle at which the gimbal can reach. If thegimbal attempts to reach an angle below this point, the gimbalwill be locked.
Out_GimbalStatusMsgThe gimbal message that includes the information about the currentgimbal position and the torque of the gimbal.
OverrideInertiaA flag whether to override the default rotational inertia valuefor determining the torques of the gimbal.
StepAngleThe minimum step angle between each of the steps on thegimbal that it can rotate between.
TargetAngleThe target angle that should be rotated towards. If thetarget angle changes, the gimbal will attempt to rotate towardsthe targeted angle.
TorqueThe current torque of the gimbal motor when attemptingto change the angle of the gimbal.
VelocityThe current angular velocity of the gimbal while it is moving.If the gimbal is not moving, then the velocity will not change overtime.
InheritedDescription
BehavioursA collection of behaviours attached to this object.
CenterOfMassB_BThe center of mass of the component in respect to the bodyframe (B) of the component. This is isolated from any childrenand exists in isolation.
CenterOfMassDot_LB_BThe center of mass time-derivative of the component within itsown local coordinates. This does not include any of the sub-componentsand exists in isolation.
CenterOfMassDotB_BThe center of mass time-derivative of the component relative tothe body frame (B). This does not include any of the sub-componentsand exists in isolation.
CenterOfMassL_LThe center of mass of the component within its own localcoordinates. This does not include any of the sub-components andexists in isolation.
CenterOfMassPrime_LB_BThe center of mass general-derivative of the component within itsown local coordinates. This does not include any of the sub-componentsand exists in isolation.
CenterOfMassPrimeB_B[m/s] The center of mass general-derivative of the component relativeto the body frame (B). This does not include any of the sub-componentsand exists in isolation.
ChildrenA collection of children attached to this object.
DCM_BNThe rotational DCM matrix between the body frame (B) at the topof this component chain and the inertial frame (N).
DCM_LBThe rotational DCM matrix between the component frame of thisobject (L) relative to the body frame (B).
DCM_LNThe DCM rotational matrix of the component relative to theinertial origin (N) of the world.
DCM_LPThe DCM matrix of the component in the parent’s frame (P), takenfrom the Component Transform (PL).
IsEnabledIs true if the object is currently enabled.
LocalForwardThe direction of the transform frame’s forward vector, which is along the Y axis.
LocalRightThe direction of the transform frame’s right vector, which is along the X axis.
LocalUpThe direction of the transform frame’s up vector, which is along the Z axis.
MassThe component mass defined in the object. This is independentof any parent or children objects and exists in isolation.
MassDotThe component mass time-derivative defined in the object. Thisis independent of any parent or children objects and exists in isolation.
ModelsA collection of models attached to this object.
MomentOfInertia_LBThe moment of inertia of the component, measured at thelocal center of mass, represented with its own local coordinates.This does not include any of the sub-components and exists inisolation.
MomentOfInertiaB_BThe moment of inertia of this component, measured inthe body frame relative to the parented body. This is independentof any children and exists in isolation.
MomentOfInertiaPrime_LBThe derivative of the moment of inertia of the component,measured at the local center of mass, represented with its own localcoordinates. This does not include any of the sub-components andexists in isolation.
MomentOfInertiaPrimeB_BThe derivative of the moment of inertia of the component,represented in the body frame (B). This is independent and exists inisolation.
NameThe display name or tag of this object.
Out_ComponentMassMsgThe component mass message defines the set of mass properties andstates of the system within this component locally. This is independentof any parent or children properties or objects.
Out_TransformMsgThis defines the base transform message that stores the state of the transform of this object.
ParentThe currently attached parent object (if any).
Position[m] The position of the object relative to the parent or to world origin, if no parent exists.
Position_BN_NThe position of the body (the root parent B) in theinertial frame relative to the inertial point (N).
Position_LB_BThe position of the component relative to the rootobject of this hierarchy. This is in the inertial frameand if the component is the root object, then there willbe no position.
Position_LN_NThe position of the inertial world space. This position isderived from the world’s transform (N).
Position_LP_PThe position of the object relative to the parented object (P).If there is no parent object, then this will be in the inertialframe.
RootThe root object in the parent chain.
Rotation[-] The rotation of the object relative to the parent or to the world origin, if no parent exists.
ThermalA reference to the thermal model that is attached to this object.This will allow the object to have thermal properties and be ableto be used in thermal simulations.

Methods

InheritedDescription
AddObjectReturns a new simulation object with the specified type.
AttachAttempts to attach this object to a new parent. This will only work if the current object is no parented to anyother object.
ContainsModelWithIDReturns true if an attached model satisfies the specified ID.
ContainsModelWithTypeReturns true if an attached model satisfies the specified type.
DestroyRemoves the current object from the simulation.
DetachThis is an action to detach the current object from its parent, if it exists and move it to another object or tojust exist within the simulation.
FindBehavioursWithTypeReturns all attached behaviours that satisfies the specified type.
FindBehaviourWithIDReturns an attached behaviour that satisfies the specified ID.
FindBehaviourWithTypeReturns an attached behaviour that satisfies the specified type.
FindChildrenWithTypeReturns all attached children that satisfies the specified type.
FindChildWithIDReturns an attached child that satisfies the specified ID.
FindChildWithTypeReturns an attached child that satisfies the specified type.
FindModelsWithTypeReturns all attached models that satisfies the specified type.
FindModelWithIDReturns an attached model that satisfies the specified ID.
FindModelWithTypeReturns an attached model that satisfies the specified type.
FindParentWithIDReturns an attached parent that satisfies the specified ID.
FindParentWithTypeReturns an attached parent that satisfies the specified type.
FindRootWithIDReturns a root object that satisfies the specified ID.
FindRootWithTypeReturns a root object that satisfies the specified type.
GetModelReturns a valid assigned model with the specified type.
GetWorldTransformReturns the world transform of the object which is relative to the parent. If no parent exists, this will be thetransform of the object in world space.
ReadBodyTransformThis method will reset the dirty flag on the mass so thatit has been read successfully and is valid.
UpdateMassPropertiesUpdates the mass properties of the current physical object ata particular time.