User Manual 3.3 Events: sensors : Différence entre versions
(→MaskingDetector) |
|||
(5 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | + | __NOTOC__ | |
− | + | ||
== Introduction == | == Introduction == | ||
=== Scope === | === Scope === | ||
Ligne 8 : | Ligne 7 : | ||
Those event detectors are available in the packages : | Those event detectors are available in the packages : | ||
− | |= | + | {| class="wikitable" |
− | |Orekit |[{{JavaDoc3.3}}/org/orekit/propagation/events/package-summary.html Package org.orekit.propagation.event] | + | |- |
− | |Patrius |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/package-summary.html Package fr.cnes.sirius.patrius.events] | + | ! scope="col"| Library |
+ | ! scope="col"| Javadoc | ||
+ | |- | ||
+ | |Orekit | ||
+ | |[{{JavaDoc3.3}}/org/orekit/propagation/events/package-summary.html Package org.orekit.propagation.event] | ||
+ | |- | ||
+ | |Patrius | ||
+ | |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/package-summary.html Package fr.cnes.sirius.patrius.events] | ||
+ | |} | ||
== Features Description == | == Features Description == | ||
Ligne 18 : | Ligne 25 : | ||
==== CircularFieldOfViewDetector ==== | ==== CircularFieldOfViewDetector ==== | ||
− | The g switching function for the circular field of view is : <math>g=\alpha_{half aperture}-\alpha_{_{center-targetPosSat}}</math>. | + | The g switching function for the circular field of view is : <math>g=\alpha_{half aperture}-\alpha_{_{center-targetPosSat}}</math>.<br> |
<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>\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<0 :</math> the target body is outside the field of view: | + | * <math>g < 0 :</math> the target body is outside the field of view: |
− | [[ | + | [[File:circularfov1.png|555x336px]] |
− | * <math>g>0 :</math> the target body is inside the field of view: | + | * <math>g > 0 :</math> the target body is inside the field of view: |
− | [[ | + | [[File:circularfov2.png|547x311px]] |
==== CentralBodyMaskCircularFOVDetector ==== | ==== 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. | + | 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.<br> |
− | It detects the visibility only when the target is not eclipsed by the central body. | + | It detects the visibility only when the target is not eclipsed by the central body.<br> |
− | The g switching function is : | + | The g switching function is : <br> |
<math>g=min(circularFieldOfView, ellipsoidEclipse)</math>. | <math>g=min(circularFieldOfView, ellipsoidEclipse)</math>. | ||
Ligne 48 : | Ligne 55 : | ||
The value of the g function is computed in two steps: | 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; | |
− | [[File:dihedralfov1. | + | [[File:dihedralfov1.png]] |
− | + | #computing the angular distance between the target body and the second dihedral, and then subtracting it from the fov second half-aperture angle; | |
− | + | ||
[[File:Bidihedral2.png]] | [[File:Bidihedral2.png]] | ||
Ligne 62 : | Ligne 68 : | ||
This detector is defined from a sensor of an assembly part (see the Spacecraft user manual for details on sensor models). | 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. | + | A sensor can contain a spherical main target (PVCoordinatesProvider + radius) and a field of view (IFieldOfView) defined in the local frame of the sensor.<br> |
− | 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. | + | 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.<br> |
In order to proceed to this computation, the MAIN frame (and so all of the part's frames) is updated from the current SpacecraftState. | In order to proceed to this computation, the MAIN frame (and so all of the part's frames) is updated from the current SpacecraftState. | ||
Ligne 69 : | Ligne 75 : | ||
This detector is defined from a sensor of an assembly part (see the Spacecraft user manual for details on sensor models). | 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. | + | A sensor can contain an array of couples "inhibition target point" (PVCoordinatesProvider) / "inhibition field" (IFieldOfView) defined in the local frame of the sensor.<br> |
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. | 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. | In order to proceed to this computation, the MAIN frame (and so all of the part's frames) is updated from the current SpacecraftState. | ||
Ligne 79 : | Ligne 85 : | ||
* Parts of the same spacecraft (that must have A GEOMETRY property) | * 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) | + | * 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. | + | * 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 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 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. | ||
Ligne 102 : | Ligne 108 : | ||
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. | 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 <code>CircularFieldOfViewDetector</code> and <code>CentralBodyMaskCircularFOVDetector</code>; 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 <code>ExtremaSigthAxisDetector</code> can also be filtered with phenomena detected with <code>CentralBodyMaskCircularFOVDetector</code>. | + | '''Note''' : for the detection of events linked to the sight axis of an instrument, see also <code>CircularFieldOfViewDetector</code> and <code>CentralBodyMaskCircularFOVDetector</code>; 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 <code>ExtremaSigthAxisDetector</code> can also be filtered with phenomena detected with <code>CentralBodyMaskCircularFOVDetector</code>. |
Ligne 112 : | Ligne 118 : | ||
All the detectors implement the interface : | All the detectors implement the interface : | ||
− | |= | + | {| class="wikitable" |
− | | EventDetector|This interface represents an event finder.|[{{JavaDoc3.3}}/org/orekit/propagation/events/EventDetector.html EventDetector ] | + | |- |
+ | ! scope="col"| Interface | ||
+ | ! scope="col"| Summary | ||
+ | ! scope="col"| Javadoc | ||
+ | |- | ||
+ | | EventDetector | ||
+ | |This interface represents an event finder. | ||
+ | |[{{JavaDoc3.3}}/org/orekit/propagation/events/EventDetector.html EventDetector ] | ||
+ | |} | ||
+ | |||
=== Classes === | === Classes === | ||
− | |= | + | |
− | | CircularFieldOfViewDetector|This class handles target entry/exit events with respect to a satellite sensor circular field of view.|[{{JavaDoc3.3}}/org/orekit/propagation/events/CircularFieldOfViewDetector.html CircularFieldOfViewDetector] | + | {| class="wikitable" |
− | | CentralBodyMaskCircularFOVDetector|This class handles target entry/exit events with respect to a satellite sensor circular field of view taking central body masking into account.|[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/CentralBodyMaskCircularFOVDetector.html CentralBodyMaskCircularFOVDetector] | + | |- |
− | | DihedralFieldOfViewDetector|This class handles target entry/exit events with respect to a satellite sensor dihedral field of view.|[{{JavaDoc3.3}}/org/orekit/propagation/events/DihedralFieldOfViewDetector.html DihedralFieldOfViewDetector] | + | ! scope="col"| Class |
− | | TargetInFieldOfViewDetector |This class handles events representing the time when the main target of a sensor enters the field of view.|[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/TargetInFieldOfViewDetector.html TargetInFieldOfViewDetector] | + | ! scope="col"| Summary |
− | | 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.|[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/SensorInhibitionDetector.html SensorInhibitionDetector ] | + | ! scope="col"| Javadoc |
− | | 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.|[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/MaskingDetector.html 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.|[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/SensorVisibilityDetector.html SensorVisibilityDetector ] | + | | CircularFieldOfViewDetector |
− | | 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. |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/ExtremaSightAxisDetector.html ExtremaSightAxisDetector] | + | |This class handles target entry/exit events with respect to a satellite sensor circular field of view. |
+ | |[{{JavaDoc3.3}}/org/orekit/propagation/events/CircularFieldOfViewDetector.html 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. | ||
+ | |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/CentralBodyMaskCircularFOVDetector.html CentralBodyMaskCircularFOVDetector] | ||
+ | |- | ||
+ | | DihedralFieldOfViewDetector | ||
+ | |This class handles target entry/exit events with respect to a satellite sensor dihedral field of view. | ||
+ | |[{{JavaDoc3.3}}/org/orekit/propagation/events/DihedralFieldOfViewDetector.html DihedralFieldOfViewDetector] | ||
+ | |- | ||
+ | | TargetInFieldOfViewDetector | ||
+ | |This class handles events representing the time when the main target of a sensor enters the field of view. | ||
+ | |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/TargetInFieldOfViewDetector.html 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. | ||
+ | |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/SensorInhibitionDetector.html 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. | ||
+ | |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/MaskingDetector.html 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. | ||
+ | |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/SensorVisibilityDetector.html 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. | ||
+ | |[{{JavaDoc3.3}}/fr/cnes/sirius/patrius/events/sensor/ExtremaSightAxisDetector.html ExtremaSightAxisDetector] | ||
+ | |} | ||
== Tutorials == | == Tutorials == | ||
Ligne 135 : | Ligne 180 : | ||
== [[File:lightBulb.png]] Tips & Tricks == | == [[File:lightBulb.png]] Tips & Tricks == | ||
{{specialInclusion prefix=$theme_sub section="Tips"/}} | {{specialInclusion prefix=$theme_sub section="Tips"/}} | ||
+ | |||
+ | [[Category:User_Manual_3.3_Mission]] |
Version actuelle en date du 1 mars 2018 à 14:48
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 org.orekit.propagation.event |
Patrius | Package fr.cnes.sirius.patrius.events |
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.
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 |
Tutorials
Tutorial 1
Modèle:SpecialInclusion prefix=$theme sub section="Tuto1"/
Tutorial 2
Modèle:SpecialInclusion prefix=$theme sub section="Tuto2"/