Class in Zendir.Classes | Inherits from RemoteSensor

Declaration

class LaserRangeFinder;

Description

The LaserRangeFinder class is a sensor that measures the distance to a target using a laser beam. It operates on the time-of-flight principle and provides range measurements with an accuracy that depends on both a fixed error and a proportional error (the standard mm + ppm model). In Unreal, the actual range measurement is performed using a LineTrace; in headless mode, range is computed analytically from registered targets.


Properties

DeclaredDescription
CalibrationRangeBiasRange bias from calibration error models.Applied to TrueRange to produce MeasuredRange when error model is attached.
CalibrationRangeScaleRange scale factor from calibration error models.Applied to TrueRange to produce MeasuredRange when error model is attached.
CaptureOnTickWhen true, the sensor automatically captures range measurements on a scheduledefined by while operational.
DrawDebugTraceWhen enabled on this instance, draws the line-trace ray in the viewport.Requires the global visualization DrawDebug master toggle to also be enabled.
EmitterRotationThe rotation of the emitter in the local coordinate system. Thisis the initial rotation based on the local coordinate system ofthe emitter mesh, cached from Unreal at BeginPlay.
IsDetectedA boolean value indicating if a target has been detected by the laser range finder,based on the target being within the operating range and field of view.
MeasuredRangeThe measured distance to the target. When a calibration error model is attached,this may differ from TrueRange due to calibration bias/scale and user corrections.
NumTargetsThe number of targets that the laser range finder can see.
OperatingRangeThe maximum operating range of the laser range finder.Targets beyond this distance will not be detected.
Out_LaserRangeFinderDataMsgThe laser range finder data message that is output by the sensor.
RangeAccuracyThe 1-sigma range accuracy calculated as RangeAccuracyConstant + RangeAccuracyProportional * TrueRange.
RangeAccuracyConstantThe fixed component of the range accuracy specification.The total 1-sigma accuracy is: RangeAccuracyConstant + RangeAccuracyProportional * TrueRange.
RangeAccuracyProportionalThe proportional component of the range accuracy specification (ppm-style).The total 1-sigma accuracy is: RangeAccuracyConstant + RangeAccuracyProportional * TrueRange.A value of 1e-6 corresponds to 1 ppm (1 mm per km).
ReadyToCaptureSet by the scheduler when an automatic sample is due; cleared after capture.
SampleRateThe minimum time between automatic range samples. If zero or negative, capturesevery simulation tick when is enabled.
TrueRangeThe true geometric distance to the target. This is always the actual distanceregardless of any calibration error models.
VelocityThe rate of change of the measured range, computed from successive calibration-affectedMeasuredRange samples and the elapsed time between those samples.
InheritedDescription
AlignmentErrorPitch-axis boresight misalignment applied by error models.This is a rotation about the local Right axis.
BehavioursA collection of behaviours attached to this object.
CenterOfMassB_BThe center of mass of the component in respect to the body frame (B) of the component. This is isolated from anychildren and exists in isolation.
CenterOfMassDot_LB_BThe center of mass time-derivative of the component within its own local coordinates. This does not include anyof the sub-components and exists in isolation.
CenterOfMassDotB_BThe center of mass time-derivative of the component relative to the body frame (B). This does not include any ofthe sub-components and exists in isolation.
CenterOfMassL_LThe center of mass of the component within its own local coordinates. This does not include any of thesub-components and exists in isolation.
CenterOfMassPrime_LB_BThe center of mass general-derivative of the component within its own local coordinates. This does not includeany of the sub-components and exists in isolation.
CenterOfMassPrimeB_B[m/s] The center of mass general-derivative of the component relative to the body frame (B). This does notinclude any of the sub-components and exists in isolation.
ChildrenA collection of children attached to this object.
CoverageBodyNameThe celestial body name this sensor is registered with in the PlanetCoverageSystem, or null if not registered.
DCM_BNThe rotational DCM matrix between the body frame (B) at the top of this component chain and the inertial frame (N).
DCM_LBThe rotational DCM matrix between the component frame of this object (L) relative to the body frame (B).
DCM_LNThe DCM rotational matrix of the component relative to the inertial origin (N) of the world.
DCM_LPThe DCM matrix of the component in the parent’s frame (P), taken from the Component Transform (PL).
FaultStateSpecification used if state is set to a fault state for the sensor.This will be able to define how the output data is set for this particularsensor.
FieldOfViewField of view of the sensor in degrees, along the sensors Up Vector.
In_DeviceStatusMsgThe Device status message for the physical component whetherthe device is available.
In_TransformMsgThe transform message associated with the root object ofthis particular sensor. This is required for the base levelposition and rotation of the object.
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 independent of any parent or children objects and exists inisolation.
MassDotThe component mass time-derivative defined in the object. This is independent of any parent or children objectsand exists in isolation.
ModelsA collection of models attached to this object.
MomentOfInertia_LBThe 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 and exists in isolation.
MomentOfInertiaB_BThe moment of inertia of this component, measured in the body frame relative to the parented body. This isindependent of 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 withits own local coordinates. This does not include any of the sub-components and exists in isolation.
MomentOfInertiaPrimeB_BThe derivative of the moment of inertia of the component, represented in the body frame (B). This is independentand exists in isolation.
NameThe display name or tag of this object.
OperationStateCurrent operational state of the sensor.
Out_ComponentMassMsgThe component mass message defines the set of mass properties and states of the system within this componentlocally. This is independent of any parent or children properties or objects.
Out_PlanetCoverageMsgOutput message holding this sensor’s cumulative planet coverage (heat map over the celestial body).Values are accumulated dwell time [s] per cell; TotalCoverage is the fraction of cells ever covered(count of non-zero Values / total cells) and does not decrease.Only updated if the sensor is registered with the PlanetCoverageSystem; the message is reset when registered.
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 the inertial frame relative to the inertial point (N).
Position_LB_BThe position of the component relative to the root object of this hierarchy. This is in the inertial frame and ifthe component is the root object, then there will be no position.
Position_LN_NThe position of the inertial world space. This position is derived 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 bein the inertial frame.
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.
Thermal[TEMPORARY] A reference to the thermal model that is attached to this object. This will allow the object to havethermal properties and be able to be used in thermal simulations.

Methods

DeclaredDescription
AddTargetAdds a target to the list of targets that the laser range finder can sense.
CanCaptureReturns whether an automatic range sample is due and the sensor may capture.
CaptureA method that will capture the data of the payload and store it insome form of byte array.
ClearBufferClears the buffer of the laser range finder, which will remove all datafrom the output message.
GetDynamicEmitterRotationReturns the emitter rotation relative to the sensor body, including alignment error.Cached from the Unreal emitter mesh at BeginPlay.
OnPingExecuted when a sample is created through Unreal and will invoke the capture.This is called from the C++ side after performing a LineTrace.In headless mode (no Unreal), this runs analytical Capture().
OnTraceHitExecuted when a sample is created through Unreal with trace-derived range data.Called from C++ after LineTrace completes. Applies calibration/accuracywithout running analytical target search.
RemoveTargetRemoves a target from the list of targets that the laser range finder can see.
SetSampleRateUpdate the sample rate; resets the next sample time to prevent longer waits when reduced.
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.
DefineAreaOfInterestDefines a new area of interest with finer grid resolution for coverage tracking.
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.
GetAreaOfInterestIdsReturns the Ids of all defined areas of interest, optionally filtered by body name.
GetBodyCoverageForLatLongReturns the accumulated dwell time [s] or sensor-seconds at a specific latitude and longitude for all sensorsregistered for the given celestial body. Auto-routes to the finest AOI containing the point.
GetBoresightDirection_NReturns the effective boresight direction in the inertial frame,accounting for any alignment error applied by error models.
GetCoverageForLatLongReturns the accumulated dwell time [s] at a specific latitude and longitude for this sensor.
GetModelReturns a valid assigned model with the specified type.
GetResolutionForLatLongReturns the best (minimum) resolution achieved at a specific latitude and longitude for this sensor.For Camera sensors this is GSD [m]; for other RemoteSensors this is FOV ground width [m].
GetSensorAoiCoverageMessageReturns this sensor’s accumulated coverage message for an AOI.
GetTotalAoiCoverageMessageReturns the accumulated AOI coverage message from all sensors registered for the AOI’s body.
GetTotalPlanetCoverageReturns the total planet coverage from all sensors registered for the specified celestial body.
GetWorldForward[DEPRECATED] THIS FUNCTION WILL BE REMOVED AND SHOULD NOT BE USED.
GetWorldRight[DEPRECATED] THIS FUNCTION WILL BE REMOVED AND SHOULD NOT BE USED.
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.
GetWorldUp[DEPRECATED] THIS FUNCTION WILL BE REMOVED AND SHOULD NOT BE USED.
IsGroundObjectDetectableReturns whether a ground object is detectable by this sensor based on coverage and resolution.An object is detectable if it was observed and the sensor’s resolution at that location isequal to or better (smaller) than the specified object size.
ReadBodyTransformThis method will reset the dirty flag on the mass so that it has been read successfully and is valid.
RegisterWithCoverageSystemRegisters this sensor with the PlanetCoverageSystem for celestial body coverage analysis.
RemoveAreaOfInterestRemoves an area of interest and clears its accumulated coverage data.
SetWorldTransform[DEPRECATED] THIS FUNCTION WILL BE REMOVED AND SHOULD NOT BE USED.
UnregisterFromCoverageSystemDeregisters this sensor from the PlanetCoverageSystem.
UpdateMassPropertiesUpdates the mass properties of the current physical object at a particular time.
WasGroundObjectObservedReturns whether a ground object’s location was ever observed by this sensor.
WasLocationObservedReturns whether this sensor has observed the given latitude and longitude at least once.