User Manual 4.2 Events: sensors
Introduction
Scope
Here are presented all the events detectors of the theme "sensors".
Javadoc
Those event detectors are available in the packages :
Library | Javadoc |
---|---|
Orekit | Package fr.cnes.sirius.patrius.propagation.event |
Patrius | Package fr.cnes.sirius.patrius.events |
Links
None as of now.
Useful Documents
None as of now.
Package Overview
None as of now.
Features Description
g functions
This section describes the meaning of the g switching function for the "sensors" event detectors :
CircularFieldOfViewDetector
The g switching function for the circular field of view is : [math]g=\alpha_{half aperture}-\alpha_{_{center-targetPosSat}}[/math].
[math]\vec {targetPosSat}[/math] is the satellite-target body vector in the satellite frame; [math]\alpha_{half aperture}[/math] is the fov half aperture angle and [math]\alpha_{center-targetPosSat}[/math] is the absolute value of the angle between target direction and field of view center.
- [math]g \lt 0 :[/math] the target body is outside the field of view:
- [math]g \gt 0 :[/math] the target body is inside the field of view:
CentralBodyMaskCircularFOVDetector
This detector is a combination of the previous circular field of view detector and the [MIS_ORB_Home#HPartialandTotaleclipsebyaspheroid eclipse detector] for an ellipsoid body.
It detects the visibility only when the target is not eclipsed by the central body.
The g switching function is :
[math]g=min(circularFieldOfView, ellipsoidEclipse)[/math].
DihedralFieldOfViewDetector
The g switching function computes the distance between the target and the nearest boundary of the field of view.
The double dihedral field of view is identified by the two following axes:
- [math]axis_ {1}[/math] is the axis of the first dihedral ([math]\vec n_ {1}[/math] is its normal vector)
- [math]axis_ {2}[/math] is the axis of the second dihedral ([math]\vec n_ {2}[/math] is its normal vector)
If these 2 axes are orthogonal, we have a rectangular field of view. Otherwise, we have a trapezoidal field of view.
- [math]center[/math] is the vector representing the fov center (intersection between the two dihedrals central planes).
This axis must be obviously orthogonal to the 2 previous axis, but not necessarily in direct order.
The value of the g function is computed in two steps:
- computing the angular distance between the target body and the first dihedral, and then subtracting it from the fov first half-aperture angle;
- computing the angular distance between the target body and the second dihedral, and then subtracting it from the fov second half-aperture angle;
The lowest distance is then chosen to compute the g function.
- [math]g\lt0 :[/math] the target body is ouside the field of view;
- [math]g\gt0 :[/math] the target body is inside the field of view.
TargetInFieldOfViewDetector
This detector is defined from a sensor of an assembly part (see the Spacecraft user manual for details on sensor models).
A sensor can contain a spherical main target (PVCoordinatesProvider + radius) and a field of view (IFieldOfView) defined in the local frame of the sensor.
The g function of this sensor is positive when AT LEAST A PART this target is in the field, negative otherwise. So it detects the times when the target first enters and totaly leaves the field.
In order to proceed to this computation, the MAIN frame (and so all of the part's frames) is updated from the current SpacecraftState.
SensorInhibitionDetector
This detector is defined from a sensor of an assembly part (see the Spacecraft user manual for details on sensor models).
A sensor can contain an array of couples "inhibition target point" (PVCoordinatesProvider) / "inhibition field" (IFieldOfView) defined in the local frame of the sensor.
The g function of this detector is positive when AT LEAST ONE of the inhibition target is AT LEAST PARTIALLY in its associated inhibition field. So it detects the first and last times of inhibition.
In order to proceed to this computation, the MAIN frame (and so all of the part's frames) is updated from the current SpacecraftState.
MaskingDetector
This detector is defined from a sensor of an assembly part (see the Spacecraft user manual for details on sensor models).
A sensor model can have a list of masking objects. Those objects are :
- Parts of the same spacecraft (that must have A GEOMETRY property)
- Parts of others spacecrafts, built as [MIS_SENSORS_SecondSpc SecondarySpacecraft] objects (that must have A GEOMETRY property)
- Celestial bodies, built as a [MIS_SENSORS_PatriusBodySpheroid GeometricBodyShape] objects.
The g function of this detector is positive when AT LEAST ONE of the potentially masking bodies masks the target, negative otherwise.
The masking happens when the line
segment between the sensor and the target's center is cut between them by the shape of the masking object.
The "getMaskingObjectName" method allows the user to know wich one of the masking objects realises the masking event when occuring.
SensorVisibilityDetector
This detector is defined from a sensor of an assembly part (see the Spacecraft user manual for details on sensor models).
It is based on the three previous ones : the g function is positive when the main target is IN the field of view AND ALL of the inhibition targets are OUT of their associated inhibition field, AND NO masking object cuts the sensor / target center line segment. When used with earth ellipsoid, the computation of sight axis local elevation on earth uses a rapid algorithm with limited accuracy : typically 1.3e-4 degrees (worst case, satellite altitude 250 Km, latitude 45 deg., East sight direction) if sight axis is 25 degrees above horizon, and 1.4e-6 degrees (worst case) if sight axis is 0,25 degrees above horizon.
ExtremaSightAxisDetector
This detector detects local extrema angle between the sight axis of a part having the SENSOR property and a given target. The target is a PVCoordinatesProvder, it means that it can be a point on the central body (TopocentricFrame) or another vehicle (Propagator).
This detector doesn't take into account masking by the earth.
This detector has also been design to work without assembly and part. In this case, the sight axis is given as a Vector3D and is apply to the origin of the orbital local frame taking attitude into account.
The switching function is based on the extrema three body angle detector where P1 is the target, P2 is the origin of the frame (sensor part frame, or orbital local frame) and P3 is the sight axis.
See the [SPC_Home Spacecraft] user manual for details about sensor models and the [MIS_ORB_Home Orbit determination detectors] user manual for details about extrema three bodies angle detector.
Note: for the detection of events linked to the sight axis of an instrument, see also CircularFieldOfViewDetector
and CentralBodyMaskCircularFOVDetector
; they detect the passing of the sight axis close to a target (on ground, fixed or moving target, satellite, celestial body) taking account of the masking by the Earth. Events of the ExtremaSigthAxisDetector
can also be filtered with phenomena detected with CentralBodyMaskCircularFOVDetector
.
Getting Started
Modèle:SpecialInclusion prefix=$theme sub section="GettingStarted"/
Contents
Interfaces
All the detectors implement the interface :
Interface | Summary | Javadoc |
---|---|---|
EventDetector | This interface represents an event finder. | EventDetector |
Classes
Class | Summary | Javadoc |
---|---|---|
CircularFieldOfViewDetector | This class handles target entry/exit events with respect to a satellite sensor circular field of view. | CircularFieldOfViewDetector |
CentralBodyMaskCircularFOVDetector | This class handles target entry/exit events with respect to a satellite sensor circular field of view taking central body masking into account. | CentralBodyMaskCircularFOVDetector |
DihedralFieldOfViewDetector | This class handles target entry/exit events with respect to a satellite sensor dihedral field of view. | DihedralFieldOfViewDetector |
TargetInFieldOfViewDetector | This class handles events representing the time when the main target of a sensor enters the field of view. | TargetInFieldOfViewDetector |
SensorInhibitionDetector | This class handles events representing the time when at least one of the the inhibition target of a sensor enters the field of view. | SensorInhibitionDetector |
MaskingDetector | This class handles events representing the time when at least one of the potentially masking objects that have been set to the sensor model is cutting the sensor / target center line segment. | MaskingDetector |
SensorVisibilityDetector | This class handles events representing the time when, at the same time, 1) the main target of a sensor enters the field of view, 2) masking objects that have been set to the sensor model are not cutting the sensor/target center line segment and 3) no inhibition target is in its inhibition field. | SensorVisibilityDetector |
ExtremaSightAxisDetector | This class handles events representing extrema of the angular angle between a sight axis on a vehicle and a target. This doesn't take into account eventual masking from any occulting body even from central body. | ExtremaSightAxisDetector |