Class OusterOS0Controller
This controller emulate the internal behavior of the Ouster OS0 lidar device to measure the distance and/or intensity.
Inherited Members
Namespace: Mechatronics.SensorSDK
Syntax
[NodeCategory("Controller", "OusterOS0Controller", NodeTick.Synchronous, (LifeCycle)0, 0F, NodeMode.Standard, false)]
public class OusterOS0Controller : NodeRuntime
Fields
_isSamplingOffsetsChanged
Indicates when the sampling offsets change.
Declaration
protected bool _isSamplingOffsetsChanged
Field Value
Type | Description |
---|---|
Boolean |
beams
Declaration
[Tooltip("Define the position and orientation of each cells. (By default there is one positioned and oriented with the photo detector game object.)")]
[Field("Beams", PortDirection.Left, FieldExtra.Read | FieldExtra.ChangeEvent)]
[SerializeField]
protected PortType<OrientedPoints> beams
Field Value
Type | Description |
---|---|
PortType<OrientedPoints> |
boundTransform
Position and orientation of the photosensor in space (scale is ignored).
Declaration
[Binding("Transform")]
[SerializeField]
protected Binding<Transform> boundTransform
Field Value
Type | Description |
---|---|
Binding<Transform> |
frameHeight
Declaration
[Tooltip("Number of samples on the vertical axis of the frame.")]
[Field("FrameHeight", PortDirection.Right, FieldExtra.Write)]
[SerializeField]
protected PortType<uint> frameHeight
Field Value
Type | Description |
---|---|
PortType<UInt32> |
framePeriod
Declaration
[Tooltip("Period that define a frame of data.")]
[Field("framePeriod", PortDirection.Right, FieldExtra.Write)]
[SerializeField]
protected PortType<float> framePeriod
Field Value
Type | Description |
---|---|
PortType<Single> |
frameWidth
Declaration
[Tooltip("Number of samples on the horizontal axis of the frame.")]
[Field("FrameWidth", PortDirection.Right, FieldExtra.Write)]
[SerializeField]
protected PortType<uint> frameWidth
Field Value
Type | Description |
---|---|
PortType<UInt32> |
samplingRate
Declaration
[Tooltip("Sensor sampling frequency (Sample per seconds)")]
[Field("Sampling rate", PortDirection.Left, FieldExtra.Read)]
[SerializeField]
protected PortType<uint> samplingRate
Field Value
Type | Description |
---|---|
PortType<UInt32> |
samplingRequest
Declaration
[Tooltip("List of orientations where to take a sample from.")]
[Field("SamplingRequest", PortDirection.Right, FieldExtra.Write)]
[SerializeField]
protected PortType<SamplingRequest> samplingRequest
Field Value
Type | Description |
---|---|
PortType<SamplingRequest> |
scanMode
Declaration
[Tooltip("Define the frame resolution.")]
[Field("ScanMode", PortDirection.Left, FieldExtra.Read | FieldExtra.ChangeEvent)]
[SerializeField]
protected PortTypeEnum scanMode
Field Value
Type | Description |
---|---|
PortTypeEnum |
Methods
Disable()
Disable change event on ports
Declaration
public override void Disable()
Overrides
Enable(Scheduler.ClockState)
Initialize the controller and enable change event on beams 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
GetScanRate()
Gets the current scan frequency of the sensor.
Declaration
protected virtual double GetScanRate()
Returns
Type | Description |
---|---|
Double | Scan frequency in Hz. |
OnBeamsChange()
Callback for when the beam channel arrangements change.
Declaration
protected void OnBeamsChange()
OnTick(Double, Double, Scheduler.ClockState, Scheduler.Signal)
OnTick event received from the scheduler for this node waveform. This is received for every rising edge of the waveform at the frequency configured in the scheduler.
Declaration
public override bool OnTick(double now, double eventTime, Scheduler.ClockState clockState, Scheduler.Signal signal)
Parameters
Type | Name | Description |
---|---|---|
Double | now | The current time in seconds of the scheduler clocksource |
Double | eventTime | The current time in seconds of the scheduler waveform. This is independant from the clocksource time and aligned to every rising edge time in the waveform. |
Scheduler.ClockState | clockState | The current parameters of the waveform event associated to this node |
Scheduler.Signal | signal | Signals that the scheduler pass to the OnTick event receiver. These are signals that describe the action that should be done in the Node. For example, integrate this tick as multiple events. |
Returns
Type | Description |
---|---|
Boolean | Returns true if time integration was performed |