Class VelodynePuckController
This controller emulate the internal behavior of the Velodyne Puck lidar device to measure
the distance and/or intensity.
Inheritance
VelodynePuckController
Syntax
[NodeCategory("Controller", "VelodynePuckController", NodeTick.Synchronous, (LifeCycle)0, 0F, NodeMode.Standard, false)]
public class VelodynePuckController : NodeRuntime
Fields
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
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
framePeriod
Declaration
[Tooltip("Period that define a frame of data.")]
[Field("framePeriod", PortDirection.Right, FieldExtra.Write)]
[SerializeField]
protected PortType<float> framePeriod
Field Value
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
isBeamsSync
Declaration
[Tooltip("Tells if all beams are emitted simultaneously or one after the other.)")]
[Field("IsBeamsSync", PortDirection.Left, FieldExtra.Read)]
[SerializeField]
protected PortType<bool> isBeamsSync
Field Value
motorSpeed
Declaration
[Tooltip("Speed in rotation per minutes.)")]
[Field("MotorSpeed", PortDirection.Right, FieldExtra.Write)]
[SerializeField]
protected PortType<float> motorSpeed
Field Value
rotationRate
Declaration
[Tooltip("Number of turn per seconds express in Hz.)")]
[Field("RotationRate", PortDirection.Left, FieldExtra.Read)]
[SerializeField]
protected PortType<float> rotationRate
Field Value
samplingRate
Declaration
[Tooltip("Sensor sampling frequency (Sample per seconds)")]
[Field("Sampling rate", PortDirection.Left, FieldExtra.Read)]
[SerializeField]
protected PortType<uint> samplingRate
Field Value
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
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
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
|
Overrides