Class CorrectPointCloudMotion
Represents a transcoder taking an input point cloud distorted by motion, and generating the corrected output point cloud.
Inherited Members
Namespace: Mechatronics.SensorSDK
Syntax
public class CorrectPointCloudMotion : Transcoder
Remarks
If a lidar moves during acquisition, each depth is measured at a different moment in time, and thus, each point has a different reference frame. This class adjusts the points so they are all expressed in the last pose of the reference frame.
Fields
_correctedPointCloud
Point cloud where motion distortion has been corrected.
Declaration
protected PointCloud _correctedPointCloud
Field Value
Type | Description |
---|---|
PointCloud |
_prevReferenceToWorldPose
Reference frame pose during the last call to Transcode(CustomPassContext).
Declaration
protected Pose _prevReferenceToWorldPose
Field Value
Type | Description |
---|---|
Pose |
beamCount
Declaration
[Tooltip("The number of laser beams stacked vertically.")]
[Field("BeamCount", PortDirection.Left, FieldExtra.Read)]
[SerializeField]
protected PortType<uint> beamCount
Field Value
Type | Description |
---|---|
PortType<UInt32> |
enableCorrection
Declaration
[Tooltip("Whether to apply a correction or act as a passthrough.")]
[Field("EnableCorrection", PortDirection.Left, FieldExtra.Read)]
[SerializeField]
protected PortType<bool> enableCorrection
Field Value
Type | Description |
---|---|
PortType<Boolean> |
inPointCloud
Declaration
[Tooltip("The input point cloud with motion distortion.")]
[Field("InPointCloud", PortDirection.Left, FieldExtra.Read)]
[SerializeField]
protected PortType<PointCloud> inPointCloud
Field Value
Type | Description |
---|---|
PortType<PointCloud> |
isCellsSync
Declaration
[Tooltip("Whether vertically-stacked lasers fire simultaneously or sequentially.")]
[Field("IsCellsSync", PortDirection.Left, FieldExtra.Read)]
[SerializeField]
protected PortType<bool> isCellsSync
Field Value
Type | Description |
---|---|
PortType<Boolean> |
outPointCloud
Declaration
[Tooltip("The output point cloud where motion distortion has been corrected.")]
[Field("OutPointCloud", PortDirection.Right, FieldExtra.Write)]
[SerializeField]
protected PortType<PointCloud> outPointCloud
Field Value
Type | Description |
---|---|
PortType<PointCloud> |
referenceToWorldTransform
The Transform in which the point clouds are expressed.
Declaration
[Binding("Reference frame")]
[SerializeField]
protected Binding<Transform> referenceToWorldTransform
Field Value
Type | Description |
---|---|
Binding<Transform> |
Properties
ReferenceToWorldPose
Retrieves the current pose of the reference frame.
Declaration
protected Pose ReferenceToWorldPose { get; }
Property Value
Type | Description |
---|---|
Pose |
Remarks
If there is no bound transform to the reference frame, returns the identity pose instead.
Methods
Disable()
Disable change event on the inTranscode port and release the graphics resources.
Declaration
public override void Disable()
Overrides
Enable(Scheduler.ClockState)
Initialize the transcoder shader and enable on change event on the on inTranscode port.
Declaration
public override void Enable(Scheduler.ClockState clockState)
Parameters
Type | Name | Description |
---|---|---|
Scheduler.ClockState | clockState | The parameters of the waveform associated to this node |
Overrides
Transcode(CustomPassContext)
Add to the command buffer the conversion of the point cloud buffer into a depth buffer.
Declaration
protected override void Transcode(CustomPassContext ctx)
Parameters
Type | Name | Description |
---|---|---|
CustomPassContext | ctx | Custom pass context |