T
- the type of the field elementspublic class FieldAngularCoordinates<T extends RealFieldElement<T>> extends Object implements TimeShiftable<FieldAngularCoordinates<T>>, Serializable
RealFieldElement
.
The state can be slightly shifted to close dates. This shift is based on a simple quadratic model. It is not intended as a replacement for proper attitude propagation but should be sufficient for either small time shifts or coarse accuracy.
This class is the angular counterpart to FieldPVCoordinates
.
Instances of this class are guaranteed to be immutable.
AngularCoordinates
,
Serialized FormConstructor and Description |
---|
FieldAngularCoordinates(FieldRotation<T> rotation,
FieldVector3D<T> rotationRate)
Builds a rotation/rotation rate pair.
|
FieldAngularCoordinates(FieldRotation<T> rotation,
FieldVector3D<T> rotationRate,
FieldVector3D<T> rotationAcceleration)
Builds a rotation / rotation rate / rotation acceleration triplet.
|
Modifier and Type | Method and Description |
---|---|
FieldAngularCoordinates<T> |
addOffset(FieldAngularCoordinates<T> offset)
Add an offset from the instance.
|
static <T extends RealFieldElement<T>> |
estimateRate(FieldRotation<T> start,
FieldRotation<T> end,
double dt)
Estimate rotation rate between two orientations.
|
FieldRotation<T> |
getRotation()
Get the rotation.
|
FieldVector3D<T> |
getRotationAcceleration()
Get the rotation acceleration.
|
FieldVector3D<T> |
getRotationRate()
Get the rotation rate.
|
FieldAngularCoordinates<T> |
revert()
Revert a rotation / rotation rate / rotation acceleration triplet.
|
FieldAngularCoordinates<T> |
shiftedBy(double dt)
Get a time-shifted state.
|
FieldAngularCoordinates<T> |
subtractOffset(FieldAngularCoordinates<T> offset)
Subtract an offset from the instance.
|
AngularCoordinates |
toAngularCoordinates()
Convert to a regular angular coordinates.
|
public FieldAngularCoordinates(FieldRotation<T> rotation, FieldVector3D<T> rotationRate)
rotation
- rotationrotationRate
- rotation rate Ω (rad/s)public FieldAngularCoordinates(FieldRotation<T> rotation, FieldVector3D<T> rotationRate, FieldVector3D<T> rotationAcceleration)
rotation
- i.e. the orientation of the vehiclerotationRate
- i.e. the spin vectorrotationAcceleration
- angular acceleration vector dΩ/dt (rad²/s²)public static <T extends RealFieldElement<T>> FieldVector3D<T> estimateRate(FieldRotation<T> start, FieldRotation<T> end, double dt)
Estimation is based on a simple fixed rate rotation during the time interval between the two orientations.
T
- the type of the field elementsstart
- start orientationend
- end orientationdt
- time elapsed between the dates of the two orientationspublic FieldAngularCoordinates<T> revert()
Build a triplet which reverse the effect of another triplet.
public FieldAngularCoordinates<T> shiftedBy(double dt)
The state can be slightly shifted to close dates. This shift is based on a simple quadratic model. It is not intended as a replacement for proper attitude propagation but should be sufficient for either small time shifts or coarse accuracy.
shiftedBy
in interface TimeShiftable<FieldAngularCoordinates<T extends RealFieldElement<T>>>
dt
- time shift in secondspublic FieldRotation<T> getRotation()
public FieldVector3D<T> getRotationRate()
public FieldVector3D<T> getRotationAcceleration()
public FieldAngularCoordinates<T> addOffset(FieldAngularCoordinates<T> offset)
We consider here that the offset rotation is applied first and the
instance is applied afterward. Note that angular coordinates do not
commute under this operation, i.e. a.addOffset(b)
and b.addOffset(a)
lead to different results in most cases.
The two methods addOffset
and
subtractOffset
are designed
so that round trip applications are possible. This means that both ac1.subtractOffset(ac2).addOffset(ac2)
and ac1.addOffset(ac2).subtractOffset(ac2)
return angular coordinates equal to ac1.
offset
- offset to subtractsubtractOffset(FieldAngularCoordinates)
public FieldAngularCoordinates<T> subtractOffset(FieldAngularCoordinates<T> offset)
We consider here that the offset Rotation is applied first and the
instance is applied afterward. Note that angular coordinates do not
commute under this operation, i.e. a.subtractOffset(b)
and b.subtractOffset(a)
lead to different results in most cases.
The two methods addOffset
and
subtractOffset
are designed
so that round trip applications are possible. This means that both ac1.subtractOffset(ac2).addOffset(ac2)
and ac1.addOffset(ac2).subtractOffset(ac2)
return angular coordinates equal to ac1.
offset
- offset to subtractaddOffset(FieldAngularCoordinates)
public AngularCoordinates toAngularCoordinates()
Copyright © 2002-2016 CS Systèmes d'information. All rights reserved.