Class LidarController
A LidarController is a device that control an electric motor and a photosensor to throw laser beams to measure the distance and/or intensity.
Inherited Members
Namespace: Mechatronics.SensorSDK
Assembly: solution.dll
Syntax
[NodeCategory("Controller", "Lidar Controller", NodeTick.Synchronous, (LifeCycle)0, 0, NodeMode.Standard, false)]
public class LidarController : NodeRuntime
Fields
Name | Description |
---|---|
_fireIdxToBeamIdx | A buffer mapping an index in the sorted firing sequence to a beam index in the laser config. |
_firstBeam | The frame index, trigger index and beam index of the next trigger event in a full revolution. |
_frameStart | The time in the current frame, normalized so that one unit is one frame. Can be negative. |
_isTriggerPeriodChanged | Specifies that something change the trigger period. Everything dependent to it should be updated. |
_samplingRequest | This structure is used to send sampling request to a photosensor |
_sortedFiringSequence | Gives the delay for each beam to fire when it's time to sample the simulation, in chronological order. |
_triggerSequence | This buffer describe when the photosensor will launch a firing sequence. Sorted in chronological order. |
frameHeight | |
frameWidth | |
horizontalFoV | |
laserConfig | Contain all information relative to the laser configuration (orientation, offsets and firing sequence) |
laserConfigBinding | Define where the beam are positioned, oriented and their firing sequence. |
motorSpeed | |
rotationRate | |
samplingRate | |
samplingRequest |
Properties
Name | Description |
---|---|
BeamCount | The number of fired beams per trigger. |
FiringSequence | Return the firing sequence out of the laser configuration, sorted in output (elevation) order. |
FramePeriod | The time, in seconds, between consecutive frames. |
HorizontalFoVRatio | The fraction of the horizontal field-of-view covered by the lidar, in (0, 1]. |
MotorSpeed | Speed, in rotations per minute (RPM). |
TriggerCount | The number of triggers per frame. |
TriggerPeriod | The time, in seconds, between consecutive triggers. |
Methods
Name | Description |
---|---|
AreInputsValid() | Determines if the inputs value allow execution of an OnTick call. |
Disable() | Disable change event on ports |
Enable(ClockState) | Initialize the controller and enable change event on beams port. |
GenerateOutputs(double, double) | Generates the sampling request between the two given times, and write all outputs. |
OnLaserConfigChanged(object, EventArgs) | Indicates the laser configuration has changed for the next OnTick call. |
OnTick(double, double, ClockState, 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. |
ResetIfNeeded() | Resets the internal state of the controller if any input has changed, to stay consistent. |
SetTriggerPeriodChanged() | Indicates any input affecting the firing sequence computation has changed for the next OnTick call. |