VR-Forces 4.0.4 Class Documentation
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtSignatureObjectSensor Class Reference

A sensor component which uses the VR-Forces Sensor Signature model for detecting object. More...

Inheritance diagram for DtSignatureObjectSensor:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DtSignatureObjectSensor (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 (const DtString&,DtVrfObject*,DtSimManager*,
virtual ~DtSignatureObjectSensor ()
 destructor
virtual bool init ()
 Calls createPSR(), createDetectableObjectList(), createAndInitSensorMonitor() and initSensorGeometry().
virtual DtString type () const
 Returns a string identifies the class type of component.
virtual int sensorType () const
 Returns the enumerated type of this sensor.
virtual void tick ()
 Overridden from base class to update myLocalSensorPosition (using localSensorPosition()) at the start of each tick.
virtual int determineForceType (DtVrfObject *object, DtRwSensorContactInfo *contactInfo)
 Determines the force type for this object based on the sensor contact info for it.

Static Public Member Functions

static DtSimComponentcreator (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 (const DtString&,DtVrfObject*,DtSimManager*,

Protected Member Functions

virtual bool detectObject (DtVrfObject *object, DtRwSensorContactInfo *contactInfo)
 Returns true if object is detected.
virtual bool continueDetectingObject (DtVrfObject *object, DtRwSensorContactInfo *contactInfo, bool &contactInfoModified)
 Same as detectObject except it is checking for objects we had previously detected.
virtual double minimumSignatureThreshold () const
virtual double apparentSignature (DtVrfObject *object, bool losValueIfTerrainUnavailable) const
 Returns the apparent signature of the specified object using the sensorSignatureManager.
virtual bool determineIdentificationLevel (DtVrfObject *object, DtRwSensorContactInfo *contactInfo, double appSignature, int &level, bool &contactInfoModified)
 Determine varying levels of detection.
virtual void updateSensorContactInfo (DtVrfObject *object, DtRwSensorContactInfo *contactInfo, int updateLevel)
virtual void addDetectionError (DtRwSensorContactInfo *info, int level)
 Uses the sensor positional error set in the sensor descriptor to add error to the contact information.
virtual bool objectInSector (const DtVrfObject *object) const
virtual DtVector localSensorPosition () const
 Overridden to use the offset from the descriptor if the position port is not connected.

Protected Attributes

const
DtSignatureObjectSensorDescriptor
mySignatureObjectSensorDescriptor
DtSymbolString mySensorDomain
DtVector myLocalSensorPosition
DtSignatureDetectLevelDeterminatormyDetectionLevelDeterminator

Private Member Functions

 DtSignatureObjectSensor ()
 default constructor; not implemented
 DtSignatureObjectSensor (const DtSignatureObjectSensor &orig)
 copy constructor; not implemented
const DtSignatureObjectSensoroperator= (const DtSignatureObjectSensor &orig)
 assignment operator; not implemented

Detailed Description

A sensor component which uses the VR-Forces Sensor Signature model for detecting object.

End User Description: This sensor implements the VR-Forces Sensor Signature model in any sensor domain. This sensor can act in any of the sensor domains by specifying the domain name in the descriptor. Objects are detected based on their signature value in the chosen domain, and using the DtPhysicalWorld to propagate the signature though the environment to this sensor's location. Probability of detection is then based on the detection files specified in the descriptor for this sensor. Objects with a higher apparent signature are easier to detect than those with lower signature. This sensor component extends the base DtObjectSensor, so all of the capability for publishing sensor contacts to the GUI is used by this component.

Uses Descriptor Type: DtSignatureObjectSensorDescriptor


Constructor & Destructor Documentation

default constructor; not implemented

copy constructor; not implemented

DtSignatureObjectSensor::DtSignatureObjectSensor ( const DtString name,
DtVrfObject owner,
DtSimManager simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)

(const DtString&,DtVrfObject*,DtSimManager*,

Parameters:
nameReader writer name of this component.
ownerThe DtVrfObject that owns this component
simManagerThe simulation manager (provides access to terrain, message interface, simulation clock).
descThe component descriptor used to initialize this component.
parentRegistryPointer to the parent reader writer registry (the containing object that reads/writes this object).
(const DtString&,DtVrfObject*,DtSimManager*, DtComponentDescriptor*,DtReaderWriterRegistry* parentRegistry)

destructor


Member Function Documentation

const DtSignatureObjectSensor& DtSignatureObjectSensor::operator= ( const DtSignatureObjectSensor orig) [private]

assignment operator; not implemented

virtual bool DtSignatureObjectSensor::init ( ) [virtual]

Calls createPSR(), createDetectableObjectList(), createAndInitSensorMonitor() and initSensorGeometry().

This must be called after construction and before the sensor is used on an entity.

Reimplemented from DtObjectSensor.

Reimplemented in DtRadarObjectSensor.

virtual DtString DtSignatureObjectSensor::type ( ) const [virtual]

Returns a string identifies the class type of component.

Type values are defined in compTypes.h. DtSimComponent creation functions are registered with the DtSimComponentFactory using the type values as the key.

Returns:
DtSignatureObjectSensorType

Reimplemented from DtObjectSensor.

Reimplemented in DtRadarObjectSensor.

virtual int DtSignatureObjectSensor::sensorType ( ) const [virtual]

Returns the enumerated type of this sensor.

It is based on the sensor domain string. "radar" maps to DtSenorTypeRadar. "visual" maps to DtSensorTypeVisual. "sonar" maps to DtSensorTypeSonar. "infrared" maps to DtSensorTypeInfrared. Anything else maps to DtSensorTypeUnknown.

Reimplemented from DtObjectSensor.

Reimplemented in DtRadarObjectSensor.

virtual void DtSignatureObjectSensor::tick ( ) [virtual]

Overridden from base class to update myLocalSensorPosition (using localSensorPosition()) at the start of each tick.

It then calls DtObjectSensor::tick.

Reimplemented from DtObjectSensor.

Reimplemented in DtRadarObjectSensor.

virtual int DtSignatureObjectSensor::determineForceType ( DtVrfObject object,
DtRwSensorContactInfo contactInfo 
) [virtual]

Determines the force type for this object based on the sensor contact info for it.

Currently just uses the detection-level-to-set-force-type parameter from the sensor descriptor to determine at which identification level we would be able to know the force type of the object.

static DtSimComponent* DtSignatureObjectSensor::creator ( const DtString name,
DtVrfObject owner,
DtSimManager simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
) [static]

(const DtString&,DtVrfObject*,DtSimManager*,

Parameters:
nameReader writer name of this component.
ownerThe DtVrfObject that owns this component
simManagerThe simulation manager (provides access to terrain, message interface, simulation clock).
descThe component descriptor used to initialize this component.
parentRegistryPointer to the parent reader writer registry (the containing object that reads/writes this object).
(const DtString&,DtVrfObject*,DtSimManager*, DtComponentDescriptor*,DtReaderWriterRegistry* parentRegistry)

Returns:
New instance of this class.

Reimplemented from DtObjectSensor.

Reimplemented in DtRadarObjectSensor.

virtual bool DtSignatureObjectSensor::detectObject ( DtVrfObject object,
DtRwSensorContactInfo contactInfo 
) [protected, virtual]

Returns true if object is detected.

Calls apparentSignature to determine what the object's signature appears to this sensor based on distance and potentially other factors that could degrade the object's absolute signature. Once the apparent signature is determined the sensor will then call determineIdentificationLevel which will check this apparent signature to see if this sensor is capable of detecting it. If so returns true and creates a DtRwSensorContactInfo for it and return that in contactInfo.

Reimplemented from DtObjectSensor.

Reimplemented in DtRadarObjectSensor.

virtual bool DtSignatureObjectSensor::continueDetectingObject ( DtVrfObject object,
DtRwSensorContactInfo contactInfo,
bool contactInfoModified 
) [protected, virtual]

Same as detectObject except it is checking for objects we had previously detected.

In this case the amount of time that this object has been detected by the sensor will be factored in when determining the identification level. Again returns true if the object is still detected and the contact info is updated. If there were changes in the contact info, contactInfoModified will be true.

Reimplemented from DtObjectSensor.

Reimplemented in DtRadarObjectSensor.

virtual double DtSignatureObjectSensor::minimumSignatureThreshold ( ) const [protected, virtual]
Returns:
The minimum apparent signature that this sensor is capable of sensing. This is specified in the sensor's DtSignatureDetectLevelDeterminator.
virtual double DtSignatureObjectSensor::apparentSignature ( DtVrfObject object,
bool  losValueIfTerrainUnavailable 
) const [protected, virtual]

Returns the apparent signature of the specified object using the sensorSignatureManager.

A DtSignaturePropagatorArgs class is instantiated that holds the object to be detected, the sensing object, the location we are sensing from and the minimum signature threshold below which there's no point in doing further checks. This is passed to the DtSensorSignatureMananger which looks up the DtSignaturePropagator that is specified for the sensor domain--this is configured in the physicalWorldParams.mtl file. The propagator determines how much the absolute signature of the object is degraded by the environment,the physical world, and returns the apparent signature the object has to the sensing object. Degradation effects can be such things as range, time of day, weather conditions, terrain obstruction and so forth. These will depend on the type of DtSignaturePropagator used.

Parameters:
losValueIfTerrainUnavailableThis parameter indicates what to do if the terrain database indicates that data is unavailable (hasn't been streamed/paged in yet). If true, the target can be seen though unavailable data, if false, the target cannot be seen though unavailable data areas.
virtual bool DtSignatureObjectSensor::determineIdentificationLevel ( DtVrfObject object,
DtRwSensorContactInfo contactInfo,
double  appSignature,
int &  level,
bool contactInfoModified 
) [protected, virtual]

Determine varying levels of detection.

Only know full truth at the highest level. Uses the apparent signature of the object and any previous contact info to determine what the combat identification level( CID ) of the object is. This is a measure of how well we know what this object is. A DtSignatureDetectLevelDeterminator is used to obtain the value. The longer the sensor looks at the object and the larger it's apparent signature the higher the identification level will be.

virtual void DtSignatureObjectSensor::updateSensorContactInfo ( DtVrfObject object,
DtRwSensorContactInfo contactInfo,
int  updateLevel 
) [protected, virtual]
virtual void DtSignatureObjectSensor::addDetectionError ( DtRwSensorContactInfo info,
int  level 
) [protected, virtual]

Uses the sensor positional error set in the sensor descriptor to add error to the contact information.

Currently very simple linear relationship based on range. TBD

virtual bool DtSignatureObjectSensor::objectInSector ( const DtVrfObject object) const [protected, virtual]
Returns:
true if the specified object is in the host object's sector of responsibility. Calls down to DtVrfObjectStateRepository::inSOR
virtual DtVector DtSignatureObjectSensor::localSensorPosition ( ) const [protected, virtual]

Overridden to use the offset from the descriptor if the position port is not connected.

Reimplemented from DtObjectSensor.


Member Data Documentation


The documentation for this class was generated from the following file:

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)